Changeset 69128 in vbox for trunk/src/VBox/Devices/PC/BIOS
- Timestamp:
- Oct 18, 2017 5:07:13 AM (7 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r68934 r69128 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 0 00h, 02bh, 080h, 081h, 02bh, 091h990 db 000h, 000h, 000h, 000h, 000h, 000h, 03fh, 02bh, 0bfh, 081h, 06ah, 091h 991 991 _softrst: ; 0xf0076 LB 0xc 992 db 000h, 000h, 000h, 000h, 000h, 000h, 0 89h, 02dh, 04dh, 03bh, 04dh, 03bh992 db 000h, 000h, 000h, 000h, 000h, 000h, 0c8h, 02dh, 08ch, 03bh, 08ch, 03bh 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h995 db 0 c0h, 07fh, 0a0h, 080h, 0fdh, 08fh, 0a5h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02fh, 02ah, 0e4h, 02ah, 000h, 000h, 000h, 000h 995 db 0ffh, 07fh, 0dfh, 080h, 03ch, 090h, 0e4h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1114 1114 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1115 1115 1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3f eclass=DATA group=DGROUP1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x1 61118 db 'VirtualBox 5.2.0 _RC1', 000h, 000h1119 _bios_prefix_string: ; 0xf0da 4LB 0x81116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP 1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x12 1118 db 'VirtualBox 5.2.0', 000h, 000h 1119 _bios_prefix_string: ; 0xf0da0 LB 0x8 1120 1120 db 'BIOS: ', 000h, 000h 1121 _isotag: ; 0xf0da cLB 0x61121 _isotag: ; 0xf0da8 LB 0x6 1122 1122 db 'CD001', 000h 1123 _eltorito: ; 0xf0d b2LB 0x181123 _eltorito: ; 0xf0dae LB 0x18 1124 1124 db 'EL TORITO SPECIFICATION', 000h 1125 _drivetypes: ; 0xf0dc aLB 0x281125 _drivetypes: ; 0xf0dc6 LB 0x28 1126 1126 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1127 1127 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1128 1128 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1129 _scan_to_scanascii: ; 0xf0d f2LB 0x37a1129 _scan_to_scanascii: ; 0xf0dee LB 0x37a 1130 1130 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1131 1131 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1184 1184 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1185 1185 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1186 _panic_msg_keyb_buffer_full: ; 0xf116 cLB 0x201186 _panic_msg_keyb_buffer_full: ; 0xf1168 LB 0x20 1187 1187 db '%s: keyboard input buffer full', 00ah, 000h 1188 1188 1189 ; Padding 0x47 4 bytes at 0xf118c1190 times 114 0db 01189 ; Padding 0x478 bytes at 0xf1188 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e 18 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e58 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x50 1194 1194 push bp ; 55 … … 1411 1411 push bp ; 55 1412 1412 mov bp, sp ; 89 e5 1413 mov bx, 00da 4h ; bb a40d1413 mov bx, 00da0h ; bb a0 0d 1414 1414 mov cx, ds ; 8c d9 1415 1415 mov ax, strict word 00004h ; b8 04 00 … … 1440 1440 int 010h ; cd 10 1441 1441 jmp short 017b7h ; eb 03 1442 call 07b 7ah ; e8 c3 631442 call 07bb9h ; e8 02 64 1443 1443 mov sp, bp ; 89 ec 1444 1444 pop bp ; 5d … … 1585 1585 mov bx, strict word 0000ah ; bb 0a 00 1586 1586 xor cx, cx ; 31 c9 1587 call 0a0 b0h ; e8 e3 871587 call 0a0f0h ; e8 23 88 1588 1588 mov word [bp-008h], ax ; 89 46 f8 1589 1589 mov cx, dx ; 89 d1 … … 1815 1815 mov dx, word [bp-026h] ; 8b 56 da 1816 1816 mov si, word [bp-01eh] ; 8b 76 e2 1817 call 0a 0e0h ; e8 e3 851817 call 0a120h ; e8 23 86 1818 1818 mov ax, dx ; 89 d0 1819 1819 xor ah, dh ; 30 f4 … … 2254 2254 mov dx, word [es:si] ; 26 8b 14 2255 2255 mov si, strict word 00018h ; be 18 00 2256 call 0a 0e0h ; e8 90 812256 call 0a120h ; e8 d0 81 2257 2257 xor dh, dh ; 30 f6 2258 2258 mov word [bp-014h], dx ; 89 56 ec … … 2264 2264 mov dx, word [es:si] ; 26 8b 14 2265 2265 mov si, strict word 00020h ; be 20 00 2266 call 0a 0e0h ; e8 70 812266 call 0a120h ; e8 b0 81 2267 2267 mov bx, dx ; 89 d3 2268 2268 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2295 2295 mov dx, word [es:si] ; 26 8b 14 2296 2296 mov si, strict word 00008h ; be 08 00 2297 call 0a 0e0h ; e8 1f 812297 call 0a120h ; e8 5f 81 2298 2298 mov word [bp-012h], dx ; 89 56 ee 2299 2299 mov bx, word [bp-016h] ; 8b 5e ea … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00018h ; be 18 00 2306 call 0a 0e0h ; e8 01 812306 call 0a120h ; e8 41 81 2307 2307 mov ah, dl ; 88 d4 2308 2308 and ah, 00fh ; 80 e4 0f … … 2439 2439 pop bp ; 5d 2440 2440 retn ; c3 2441 _ata_detect: ; 0xf2118 LB 0x6 4e2441 _ata_detect: ; 0xf2118 LB 0x68d 2442 2442 push bp ; 55 2443 2443 mov bp, sp ; 89 e5 … … 2448 2448 mov ax, strict word 00040h ; b8 40 00 2449 2449 call 0166ch ; e8 42 f5 2450 mov word [bp-02 6h], ax ; 89 46 da2450 mov word [bp-020h], ax ; 89 46 e0 2451 2451 mov di, 00122h ; bf 22 01 2452 2452 mov es, ax ; 8e c0 2453 mov word [bp-0 22h], di ; 89 7e de2454 mov word [bp-02 0h], ax ; 89 46 e02453 mov word [bp-01ch], di ; 89 7e e4 2454 mov word [bp-02eh], ax ; 89 46 d2 2455 2455 mov byte [es:di+00204h], 000h ; 26 c6 85 04 02 00 2456 2456 mov word [es:di+00206h], 001f0h ; 26 c7 85 06 02 f0 01 … … 2462 2462 mov byte [es:di+0020bh], 00fh ; 26 c6 85 0b 02 0f 2463 2463 xor al, al ; 30 c0 2464 mov byte [bp-010h], al ; 88 46 f0 2464 2465 mov byte [bp-008h], al ; 88 46 f8 2465 mov byte [bp-012h], al ; 88 46 ee2466 2466 mov byte [bp-00ah], al ; 88 46 f6 2467 jmp near 02 6ech ; e9 72052467 jmp near 02725h ; e9 ab 05 2468 2468 mov ax, 000a0h ; b8 a0 00 2469 2469 lea dx, [si+006h] ; 8d 54 06 2470 2470 out DX, AL ; ee 2471 lea di, [si+002h] ; 8d 7c 02 2471 lea bx, [si+002h] ; 8d 5c 02 2472 mov AL, strict byte 055h ; b0 55 2473 mov dx, bx ; 89 da 2474 out DX, AL ; ee 2475 lea di, [si+003h] ; 8d 7c 03 2476 mov AL, strict byte 0aah ; b0 aa 2477 mov dx, di ; 89 fa 2478 out DX, AL ; ee 2479 mov dx, bx ; 89 da 2480 out DX, AL ; ee 2472 2481 mov AL, strict byte 055h ; b0 55 2473 2482 mov dx, di ; 89 fa 2474 2483 out DX, AL ; ee 2475 lea bx, [si+003h] ; 8d 5c 03 2484 mov dx, bx ; 89 da 2485 out DX, AL ; ee 2476 2486 mov AL, strict byte 0aah ; b0 aa 2487 mov dx, di ; 89 fa 2488 out DX, AL ; ee 2477 2489 mov dx, bx ; 89 da 2478 out DX, AL ; ee 2479 mov dx, di ; 89 fa 2480 out DX, AL ; ee 2481 mov AL, strict byte 055h ; b0 55 2482 mov dx, bx ; 89 da 2483 out DX, AL ; ee 2484 mov dx, di ; 89 fa 2485 out DX, AL ; ee 2486 mov AL, strict byte 0aah ; b0 aa 2487 mov dx, bx ; 89 da 2488 out DX, AL ; ee 2490 in AL, DX ; ec 2491 db 02ah, 0e4h 2492 ; sub ah, ah ; 2a e4 2493 mov bx, ax ; 89 c3 2489 2494 mov dx, di ; 89 fa 2490 2495 in AL, DX ; ec 2491 2496 db 02ah, 0e4h 2492 2497 ; sub ah, ah ; 2a e4 2493 mov cx, ax ; 89 c1 2494 mov dx, bx ; 89 da 2495 in AL, DX ; ec 2496 db 02ah, 0e4h 2497 ; sub ah, ah ; 2a e4 2498 cmp cl, 055h ; 80 f9 55 2499 jne short 021f9h ; 75 47 2498 cmp bl, 055h ; 80 fb 55 2499 jne short 021fch ; 75 4a 2500 2500 cmp AL, strict byte 0aah ; 3c aa 2501 jne short 021f 9h ; 75 432501 jne short 021fch ; 75 46 2502 2502 mov al, byte [bp-00ah] ; 8a 46 f6 2503 2503 xor ah, ah ; 30 e4 2504 2504 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2505 les bx, [bp-022h] ; c4 5e de 2505 mov es, [bp-02eh] ; 8e 46 d2 2506 mov bx, word [bp-01ch] ; 8b 5e e4 2506 2507 add bx, ax ; 01 c3 2507 2508 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2508 2509 mov al, byte [bp-00ah] ; 8a 46 f6 2509 2510 xor ah, ah ; 30 e4 2510 call 01d85h ; e8 b 5fb2511 cmp byte [bp-0 10h], 000h ; 80 7e f0002512 je short 021d bh ; 74 052511 call 01d85h ; e8 b2 fb 2512 cmp byte [bp-006h], 000h ; 80 7e fa 00 2513 je short 021deh ; 74 05 2513 2514 mov ax, 000b0h ; b8 b0 00 2514 jmp short 021 deh ; eb 032515 jmp short 021e1h ; eb 03 2515 2516 mov ax, 000a0h ; b8 a0 00 2516 2517 lea dx, [si+006h] ; 8d 54 06 … … 2526 2527 ; sub ah, ah ; 2a e4 2527 2528 cmp bl, 001h ; 80 fb 01 2528 jne short 0223 2h ; 75 3d2529 jne short 02238h ; 75 40 2529 2530 cmp al, bl ; 38 d8 2530 je short 021f bh ; 74 022531 jmp short 0223 2h ; eb 372531 je short 021feh ; 74 02 2532 jmp short 02238h ; eb 3a 2532 2533 lea dx, [si+004h] ; 8d 54 04 2533 2534 in AL, DX ; ec 2534 2535 db 02ah, 0e4h 2535 2536 ; sub ah, ah ; 2a e4 2536 mov bx, ax ; 89 c32537 mov byte [bp-006h], al ; 88 46 fa2537 mov cx, ax ; 89 c1 2538 mov ch, al ; 88 c5 2538 2539 lea dx, [si+005h] ; 8d 54 05 2539 2540 in AL, DX ; ec 2540 2541 db 02ah, 0e4h 2541 2542 ; sub ah, ah ; 2a e4 2542 mov cx, ax ; 89 c12543 mov b h, al ; 88 c72543 mov bx, ax ; 89 c3 2544 mov byte [bp-014h], al ; 88 46 ec 2544 2545 lea dx, [si+007h] ; 8d 54 07 2545 2546 in AL, DX ; ec 2546 2547 db 02ah, 0e4h 2547 2548 ; sub ah, ah ; 2a e4 2548 cmp bl, 014h ; 80 fb142549 jne short 0223 4h ; 75 192550 cmp cl, 0ebh ; 80 f9eb2551 jne short 0223 4h ; 75 142549 cmp cl, 014h ; 80 f9 14 2550 jne short 0223ah ; 75 1c 2551 cmp bl, 0ebh ; 80 fb eb 2552 jne short 0223ah ; 75 17 2552 2553 mov al, byte [bp-00ah] ; 8a 46 f6 2553 2554 xor ah, ah ; 30 e4 2554 2555 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2555 les bx, [bp-022h] ; c4 5e de 2556 mov es, [bp-02eh] ; 8e 46 d2 2557 mov bx, word [bp-01ch] ; 8b 5e e4 2556 2558 add bx, ax ; 01 c3 2557 2559 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2558 jmp short 0227 3h ; eb 3f2559 cmp byte [bp-006h], 000h ; 80 7e fa 002560 jne short 0225 6h ; 75 1c2561 test bh, bh ; 84 ff2562 jne short 0225 6h ; 75 182560 jmp short 0227eh ; eb 44 2561 test ch, ch ; 84 ed 2562 jne short 0225fh ; 75 21 2563 cmp byte [bp-014h], 000h ; 80 7e ec 00 2564 jne short 0225fh ; 75 1b 2563 2565 test al, al ; 84 c0 2564 je short 0225 6h ; 74 142566 je short 0225fh ; 74 17 2565 2567 mov al, byte [bp-00ah] ; 8a 46 f6 2566 2568 xor ah, ah ; 30 e4 2567 2569 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2568 les bx, [bp-022h] ; c4 5e de 2570 mov es, [bp-02eh] ; 8e 46 d2 2571 mov bx, word [bp-01ch] ; 8b 5e e4 2569 2572 add bx, ax ; 01 c3 2570 2573 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2571 jmp short 02273h ; eb 1d 2572 mov al, byte [bp-006h] ; 8a 46 fa 2573 cmp AL, strict byte 0ffh ; 3c ff 2574 jne short 02273h ; 75 16 2575 cmp bh, al ; 38 c7 2576 jne short 02273h ; 75 12 2574 jmp short 0227eh ; eb 1f 2575 cmp ch, 0ffh ; 80 fd ff 2576 jne short 0227eh ; 75 1a 2577 cmp ch, byte [bp-014h] ; 3a 6e ec 2578 jne short 0227eh ; 75 15 2577 2579 mov al, byte [bp-00ah] ; 8a 46 f6 2578 2580 xor ah, ah ; 30 e4 2579 2581 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2580 les bx, [bp-022h] ; c4 5e de 2582 mov es, [bp-02eh] ; 8e 46 d2 2583 mov bx, word [bp-01ch] ; 8b 5e e4 2581 2584 add bx, ax ; 01 c3 2582 2585 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 … … 2588 2591 xor ah, ah ; 30 e4 2589 2592 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2590 les si, [bp-022h] ; c4 76 de 2593 mov es, [bp-02eh] ; 8e 46 d2 2594 mov si, word [bp-01ch] ; 8b 76 e4 2591 2595 add si, ax ; 01 c6 2592 2596 mov al, byte [es:si+022h] ; 26 8a 44 22 2593 mov byte [bp-00 ch], al ; 88 46 f42597 mov byte [bp-00eh], al ; 88 46 f2 2594 2598 cmp AL, strict byte 002h ; 3c 02 2595 jne short 022 ddh ; 75 492599 jne short 022ebh ; 75 49 2596 2600 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2597 2601 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2598 2602 lea dx, [bp-00264h] ; 8d 96 9c fd 2599 mov bx, word [bp-0 22h] ; 8b 5e de2603 mov bx, word [bp-01ch] ; 8b 5e e4 2600 2604 mov word [es:bx+008h], dx ; 26 89 57 08 2601 2605 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 2604 2608 mov cx, strict word 00001h ; b9 01 00 2605 2609 mov bx, 000ech ; bb ec 00 2606 mov ax, word [bp-0 22h] ; 8b 46 de2610 mov ax, word [bp-01ch] ; 8b 46 e4 2607 2611 mov dx, es ; 8c c2 2608 call 01e63h ; e8 a1fb2612 call 01e63h ; e8 93 fb 2609 2613 test ax, ax ; 85 c0 2610 je short 022d 1h ; 74 0b2614 je short 022dfh ; 74 0b 2611 2615 push 00124h ; 68 24 01 2612 2616 push strict byte 00007h ; 6a 07 2613 call 01966h ; e8 98f62617 call 01966h ; e8 8a f6 2614 2618 add sp, strict byte 00004h ; 83 c4 04 2615 2619 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2616 je short 022e 0h ; 74 082620 je short 022eeh ; 74 08 2617 2621 mov ax, strict word 00001h ; b8 01 00 2618 jmp short 022 e2h ; eb 052619 jmp near 024 bfh ; e9 df012622 jmp short 022f0h ; eb 05 2623 jmp near 024ech ; e9 fe 01 2620 2624 xor ax, ax ; 31 c0 2621 mov byte [bp-01 6h], al ; 88 46 ea2622 mov byte [bp-01 8h], 000h ; c6 46 e8002623 mov word [bp-03 4h], 00200h ; c7 46 cc00 022625 mov byte [bp-018h], al ; 88 46 e8 2626 mov byte [bp-016h], 000h ; c6 46 ea 00 2627 mov word [bp-030h], 00200h ; c7 46 d0 00 02 2624 2628 mov ax, word [bp-00262h] ; 8b 86 9e fd 2625 mov word [bp-0 1ch], ax ; 89 46 e42629 mov word [bp-026h], ax ; 89 46 da 2626 2630 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2627 mov word [bp-0 30h], ax ; 89 46 d02631 mov word [bp-028h], ax ; 89 46 d8 2628 2632 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2629 mov word [bp-02 ah], ax ; 89 46 d62633 mov word [bp-02ch], ax ; 89 46 d4 2630 2634 mov si, word [bp-001ech] ; 8b b6 14 fe 2631 2635 mov ax, word [bp-001eah] ; 8b 86 16 fe 2632 mov word [bp-02 8h], ax ; 89 46 d82636 mov word [bp-022h], ax ; 89 46 de 2633 2637 xor ax, ax ; 31 c0 2634 mov word [bp-0 1eh], ax ; 89 46 e22635 mov word [bp-02 ch], ax ; 89 46 d42636 cmp word [bp-02 8h], 00fffh ; 81 7e d8ff 0f2637 jne short 023 3bh ; 75 1e2638 mov word [bp-024h], ax ; 89 46 dc 2639 mov word [bp-02ah], ax ; 89 46 d6 2640 cmp word [bp-022h], 00fffh ; 81 7e de ff 0f 2641 jne short 02349h ; 75 1e 2638 2642 cmp si, strict byte 0ffffh ; 83 fe ff 2639 jne short 023 3bh ; 75 192643 jne short 02349h ; 75 19 2640 2644 mov ax, word [bp-00196h] ; 8b 86 6a fe 2641 mov word [bp-02 ch], ax ; 89 46 d42645 mov word [bp-02ah], ax ; 89 46 d6 2642 2646 mov ax, word [bp-00198h] ; 8b 86 68 fe 2643 mov word [bp-0 1eh], ax ; 89 46 e22647 mov word [bp-024h], ax ; 89 46 dc 2644 2648 mov ax, word [bp-0019ah] ; 8b 86 66 fe 2645 mov word [bp-02 8h], ax ; 89 46 d82649 mov word [bp-022h], ax ; 89 46 de 2646 2650 mov si, word [bp-0019ch] ; 8b b6 64 fe 2647 2651 mov al, byte [bp-00ah] ; 8a 46 f6 2648 2652 cmp AL, strict byte 001h ; 3c 01 2649 jc short 023 4eh ; 72 0c2650 jbe short 023 56h ; 76 122653 jc short 0235ch ; 72 0c 2654 jbe short 02364h ; 76 12 2651 2655 cmp AL, strict byte 003h ; 3c 03 2652 je short 023 5eh ; 74 162656 je short 0236ch ; 74 16 2653 2657 cmp AL, strict byte 002h ; 3c 02 2654 je short 023 5ah ; 74 0e2655 jmp short 023 98h ; eb 4a2658 je short 02368h ; 74 0e 2659 jmp short 023a6h ; eb 4a 2656 2660 test al, al ; 84 c0 2657 jne short 023 98h ; 75 462661 jne short 023a6h ; 75 46 2658 2662 mov BL, strict byte 01eh ; b3 1e 2659 jmp short 0236 0h ; eb 0a2663 jmp short 0236eh ; eb 0a 2660 2664 mov BL, strict byte 026h ; b3 26 2661 jmp short 0236 0h ; eb 062665 jmp short 0236eh ; eb 06 2662 2666 mov BL, strict byte 067h ; b3 67 2663 jmp short 0236 0h ; eb 022667 jmp short 0236eh ; eb 02 2664 2668 mov BL, strict byte 070h ; b3 70 2665 2669 mov al, bl ; 88 d8 … … 2667 2671 ; inc al ; fe c0 2668 2672 xor ah, ah ; 30 e4 2669 call 016ach ; e8 43f32673 call 016ach ; e8 35 f3 2670 2674 xor ah, ah ; 30 e4 2671 2675 mov dx, ax ; 89 c2 2672 2676 sal dx, 008h ; c1 e2 08 2673 2677 mov al, bl ; 88 d8 2674 call 016ach ; e8 37f32678 call 016ach ; e8 29 f3 2675 2679 xor ah, ah ; 30 e4 2676 2680 add ax, dx ; 01 d0 … … 2679 2683 add AL, strict byte 002h ; 04 02 2680 2684 xor ah, ah ; 30 e4 2681 call 016ach ; e8 27f32685 call 016ach ; e8 19 f3 2682 2686 xor ah, ah ; 30 e4 2683 2687 mov word [bp-03ah], ax ; 89 46 c6 2684 2688 mov al, bl ; 88 d8 2685 2689 add AL, strict byte 007h ; 04 07 2686 call 016ach ; e8 1bf32690 call 016ach ; e8 0d f3 2687 2691 xor ah, ah ; 30 e4 2688 2692 mov word [bp-036h], ax ; 89 46 ca 2689 jmp short 023 aah ; eb 122690 push word [bp-02 ch] ; ff 76 d42691 push word [bp-0 1eh] ; ff 76 e22692 push word [bp-02 8h] ; ff 76 d82693 jmp short 023b8h ; eb 12 2694 push word [bp-02ah] ; ff 76 d6 2695 push word [bp-024h] ; ff 76 dc 2696 push word [bp-022h] ; ff 76 de 2693 2697 push si ; 56 2694 2698 mov dx, ss ; 8c d2 2695 2699 lea ax, [bp-03ah] ; 8d 46 c6 2696 call 05a 02h ; e8 58362697 mov bx, 00da 4h ; bb a40d2700 call 05a41h ; e8 89 36 2701 mov bx, 00da0h ; bb a0 0d 2698 2702 mov cx, ds ; 8c d9 2699 2703 mov ax, strict word 00004h ; b8 04 00 2700 call 01923h ; e8 6 ef52704 call 01923h ; e8 60 f5 2701 2705 mov ax, word [bp-036h] ; 8b 46 ca 2702 2706 push ax ; 50 … … 2705 2709 mov ax, word [bp-038h] ; 8b 46 c8 2706 2710 push ax ; 50 2707 push word [bp-02 ah] ; ff 76 d62708 push word [bp-0 30h] ; ff 76 d02709 push word [bp-0 1ch] ; ff 76 e42710 mov al, byte [bp-0 10h] ; 8a 46 f02711 push word [bp-02ch] ; ff 76 d4 2712 push word [bp-028h] ; ff 76 d8 2713 push word [bp-026h] ; ff 76 da 2714 mov al, byte [bp-006h] ; 8a 46 fa 2711 2715 xor ah, ah ; 30 e4 2712 2716 push ax ; 50 2713 mov al, byte [bp-01 4h] ; 8a 46 ec2717 mov al, byte [bp-012h] ; 8a 46 ee 2714 2718 push ax ; 50 2715 2719 push 0014dh ; 68 4d 01 2716 2720 push strict byte 00004h ; 6a 04 2717 call 01966h ; e8 8af52721 call 01966h ; e8 7c f5 2718 2722 add sp, strict byte 00014h ; 83 c4 14 2719 2723 mov al, byte [bp-00ah] ; 8a 46 f6 2720 2724 xor ah, ah ; 30 e4 2721 2725 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2722 les di, [bp-022h] ; c4 7e de 2726 mov es, [bp-02eh] ; 8e 46 d2 2727 mov di, word [bp-01ch] ; 8b 7e e4 2723 2728 add di, ax ; 01 c7 2724 2729 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff 2730 mov al, byte [bp-018h] ; 8a 46 e8 2731 mov byte [es:di+024h], al ; 26 88 45 24 2725 2732 mov al, byte [bp-016h] ; 8a 46 ea 2726 mov byte [es:di+024h], al ; 26 88 45 242727 mov al, byte [bp-018h] ; 8a 46 e82728 2733 mov byte [es:di+026h], al ; 26 88 45 26 2729 mov ax, word [bp-03 4h] ; 8b 46 cc2734 mov ax, word [bp-030h] ; 8b 46 d0 2730 2735 mov word [es:di+028h], ax ; 26 89 45 28 2731 mov ax, word [bp-0 30h] ; 8b 46 d02736 mov ax, word [bp-028h] ; 8b 46 d8 2732 2737 mov word [es:di+030h], ax ; 26 89 45 30 2733 mov ax, word [bp-0 1ch] ; 8b 46 e42738 mov ax, word [bp-026h] ; 8b 46 da 2734 2739 mov word [es:di+032h], ax ; 26 89 45 32 2740 mov ax, word [bp-02ch] ; 8b 46 d4 2741 mov word [es:di+034h], ax ; 26 89 45 34 2735 2742 mov ax, word [bp-02ah] ; 8b 46 d6 2736 mov word [es:di+034h], ax ; 26 89 45 342737 mov ax, word [bp-02ch] ; 8b 46 d42738 2743 mov word [es:di+03ch], ax ; 26 89 45 3c 2739 mov ax, word [bp-0 1eh] ; 8b 46 e22744 mov ax, word [bp-024h] ; 8b 46 dc 2740 2745 mov word [es:di+03ah], ax ; 26 89 45 3a 2741 mov ax, word [bp-02 8h] ; 8b 46 d82746 mov ax, word [bp-022h] ; 8b 46 de 2742 2747 mov word [es:di+038h], ax ; 26 89 45 38 2743 2748 mov word [es:di+036h], si ; 26 89 75 36 … … 2753 2758 mov al, byte [bp-00ah] ; 8a 46 f6 2754 2759 cmp AL, strict byte 002h ; 3c 02 2755 jnc short 024 a9h ; 73 612760 jnc short 024cch ; 73 73 2756 2761 test al, al ; 84 c0 2757 jne short 024 51h ; 75 052762 jne short 02462h ; 75 05 2758 2763 mov di, strict word 0003dh ; bf 3d 00 2759 jmp short 024 54h ; eb 032764 jmp short 02465h ; eb 03 2760 2765 mov di, strict word 0004dh ; bf 4d 00 2761 mov dx, word [bp-026h] ; 8b 56 da 2766 mov dx, word [bp-020h] ; 8b 56 e0 2767 mov al, byte [bp-00ah] ; 8a 46 f6 2768 xor ah, ah ; 30 e4 2769 imul bx, ax, strict byte 00005h ; 6b d8 05 2770 sal bx, 002h ; c1 e3 02 2771 add bx, 00104h ; 81 c3 04 01 2772 xor al, al ; 30 c0 2773 mov es, ax ; 8e c0 2774 mov word [es:bx], di ; 26 89 3f 2775 mov word [es:bx+002h], dx ; 26 89 57 02 2762 2776 mov ax, word [bp-038h] ; 8b 46 c8 2763 2777 mov es, dx ; 8e c2 … … 2766 2780 mov byte [es:di+002h], al ; 26 88 45 02 2767 2781 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2768 mov al, byte [bp-02 ah] ; 8a 46 d62782 mov al, byte [bp-02ch] ; 8a 46 d4 2769 2783 mov byte [es:di+004h], al ; 26 88 45 04 2770 mov ax, word [bp-0 1ch] ; 8b 46 e42784 mov ax, word [bp-026h] ; 8b 46 da 2771 2785 mov word [es:di+009h], ax ; 26 89 45 09 2772 mov al, byte [bp-0 30h] ; 8a 46 d02786 mov al, byte [bp-028h] ; 8a 46 d8 2773 2787 mov byte [es:di+00bh], al ; 26 88 45 0b 2774 mov al, byte [bp-0 2ah] ; 8a 46 d62788 mov al, byte [bp-036h] ; 8a 46 ca 2775 2789 mov byte [es:di+00eh], al ; 26 88 45 0e 2776 2790 xor al, al ; 30 c0 2777 2791 xor ah, ah ; 30 e4 2778 jmp short 024 92h ; eb 052792 jmp short 024bdh ; eb 05 2779 2793 cmp ah, 00fh ; 80 fc 0f 2780 jnc short 024 a1h ; 73 0f2794 jnc short 024ceh ; 73 11 2781 2795 mov bl, ah ; 88 e3 2782 2796 xor bh, bh ; 30 ff … … 2786 2800 db 0feh, 0c4h 2787 2801 ; inc ah ; fe c4 2788 jmp short 0248dh ; eb ec 2802 jmp short 024b8h ; eb ec 2803 jmp short 024d6h ; eb 08 2789 2804 neg al ; f6 d8 2790 2805 mov es, dx ; 8e c2 2791 2806 mov byte [es:di+00fh], al ; 26 88 45 0f 2792 mov bl, byte [bp-0 12h] ; 8a 5e ee2807 mov bl, byte [bp-008h] ; 8a 5e f8 2793 2808 xor bh, bh ; 30 ff 2794 mov es, [bp-02 0h] ; 8e 46 e02795 add bx, word [bp-0 22h] ; 03 5e de2809 mov es, [bp-02eh] ; 8e 46 d2 2810 add bx, word [bp-01ch] ; 03 5e e4 2796 2811 mov al, byte [bp-00ah] ; 8a 46 f6 2797 2812 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2798 inc byte [bp-0 12h] ; fe 46 ee2799 cmp byte [bp-00 ch], 003h ; 80 7e f4032800 jne short 025 22h ; 75 5d2813 inc byte [bp-008h] ; fe 46 f8 2814 cmp byte [bp-00eh], 003h ; 80 7e f2 03 2815 jne short 02552h ; 75 60 2801 2816 mov al, byte [bp-00ah] ; 8a 46 f6 2802 2817 xor ah, ah ; 30 e4 2803 2818 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2804 les bx, [bp-022h] ; c4 5e de 2819 mov es, [bp-02eh] ; 8e 46 d2 2820 mov bx, word [bp-01ch] ; 8b 5e e4 2805 2821 add bx, ax ; 01 c3 2806 2822 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2807 2823 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2808 2824 lea dx, [bp-00264h] ; 8d 96 9c fd 2809 mov bx, word [bp-0 22h] ; 8b 5e de2825 mov bx, word [bp-01ch] ; 8b 5e e4 2810 2826 mov word [es:bx+008h], dx ; 26 89 57 08 2811 2827 mov [es:bx+00ah], ss ; 26 8c 57 0a … … 2814 2830 mov cx, strict word 00001h ; b9 01 00 2815 2831 mov bx, 000a1h ; bb a1 00 2816 mov ax, word [bp-0 22h] ; 8b 46 de2832 mov ax, word [bp-01ch] ; 8b 46 e4 2817 2833 mov dx, es ; 8c c2 2818 call 01e63h ; e8 63 f92834 call 01e63h ; e8 33 f9 2819 2835 test ax, ax ; 85 c0 2820 je short 025 0fh ; 74 0b2836 je short 0253fh ; 74 0b 2821 2837 push 00174h ; 68 74 01 2822 2838 push strict byte 00007h ; 6a 07 2823 call 01966h ; e8 5a f42839 call 01966h ; e8 2a f4 2824 2840 add sp, strict byte 00004h ; 83 c4 04 2825 2841 mov bl, byte [bp-00263h] ; 8a 9e 9d fd 2826 2842 and bl, 01fh ; 80 e3 1f 2827 2843 test byte [bp-00264h], 080h ; f6 86 9c fd 80 2828 je short 02524h ; 74 07 2829 mov ax, strict word 00001h ; b8 01 00 2830 jmp short 02526h ; eb 04 2831 jmp short 02559h ; eb 35 2832 xor ax, ax ; 31 c0 2833 mov dl, byte [bp-00ah] ; 8a 56 f6 2834 xor dh, dh ; 30 f6 2835 imul dx, dx, strict byte 0001ch ; 6b d2 1c 2836 les si, [bp-022h] ; c4 76 de 2837 add si, dx ; 01 d6 2838 mov byte [es:si+023h], bl ; 26 88 5c 23 2839 mov byte [es:si+024h], al ; 26 88 44 24 2840 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2841 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 08 2842 mov bl, byte [bp-008h] ; 8a 5e f8 2844 je short 02554h ; 74 07 2845 mov dx, strict word 00001h ; ba 01 00 2846 jmp short 02556h ; eb 04 2847 jmp short 0258ch ; eb 38 2848 xor dx, dx ; 31 d2 2849 mov al, byte [bp-00ah] ; 8a 46 f6 2850 xor ah, ah ; 30 e4 2851 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2852 mov es, [bp-02eh] ; 8e 46 d2 2853 mov di, word [bp-01ch] ; 8b 7e e4 2854 add di, ax ; 01 c7 2855 mov byte [es:di+023h], bl ; 26 88 5d 23 2856 mov byte [es:di+024h], dl ; 26 88 55 24 2857 mov byte [es:di+026h], 000h ; 26 c6 45 26 00 2858 mov word [es:di+028h], 00800h ; 26 c7 45 28 00 08 2859 mov bl, byte [bp-010h] ; 8a 5e f0 2843 2860 xor bh, bh ; 30 ff 2844 add bx, word [bp-0 22h] ; 03 5e de2861 add bx, word [bp-01ch] ; 03 5e e4 2845 2862 mov al, byte [bp-00ah] ; 8a 46 f6 2846 2863 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2847 inc byte [bp-0 08h] ; fe 46 f82848 mov al, byte [bp-00 ch] ; 8a 46 f42864 inc byte [bp-010h] ; fe 46 f0 2865 mov al, byte [bp-00eh] ; 8a 46 f2 2849 2866 cmp AL, strict byte 003h ; 3c 03 2850 je short 025 8dh ; 74 2d2867 je short 025c3h ; 74 30 2851 2868 cmp AL, strict byte 002h ; 3c 02 2852 jne short 025 bdh ; 75 592869 jne short 025f3h ; 75 5c 2853 2870 mov al, byte [bp-00ah] ; 8a 46 f6 2854 2871 xor ah, ah ; 30 e4 2855 2872 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2856 les di, [bp-022h] ; c4 7e de 2873 mov es, [bp-02eh] ; 8e 46 d2 2874 mov di, word [bp-01ch] ; 8b 7e e4 2857 2875 add di, ax ; 01 c7 2858 2876 mov ax, word [es:di+03ch] ; 26 8b 45 3c … … 2861 2879 mov dx, word [es:di+036h] ; 26 8b 55 36 2862 2880 mov si, strict word 0000bh ; be 0b 00 2863 call 0a 0e0h ; e8 597b2864 mov word [bp-0 24h], dx ; 89 56 dc2881 call 0a120h ; e8 63 7b 2882 mov word [bp-01eh], dx ; 89 56 e2 2865 2883 mov word [bp-032h], cx ; 89 4e ce 2866 2884 mov al, byte [bp-001c3h] ; 8a 86 3d fe … … 2869 2887 sal dx, 008h ; c1 e2 08 2870 2888 mov al, byte [bp-001c4h] ; 8a 86 3c fe 2871 or dx, ax ; 09 c22872 mov byte [bp-00 eh], 00fh ; c6 46 f20f2873 jmp short 025 adh ; eb 092874 dec byte [bp-00 eh] ; fe 4e f22875 cmp byte [bp-00 eh], 000h ; 80 7e f2002876 jbe short 025 b9h ; 76 0c2877 mov cl, byte [bp-00 eh] ; 8a 4e f22878 mov ax, strict word 00001h ; b801 002879 sal ax, CL ; d3 e02880 test dx, ax ; 85 c22881 je short 025 a4h ; 74 eb2889 or ax, dx ; 09 d0 2890 mov byte [bp-00ch], 00fh ; c6 46 f4 0f 2891 jmp short 025e3h ; eb 09 2892 dec byte [bp-00ch] ; fe 4e f4 2893 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2894 jbe short 025efh ; 76 0c 2895 mov cl, byte [bp-00ch] ; 8a 4e f4 2896 mov dx, strict word 00001h ; ba 01 00 2897 sal dx, CL ; d3 e2 2898 test ax, dx ; 85 d0 2899 je short 025dah ; 74 eb 2882 2900 xor di, di ; 31 ff 2883 jmp short 025 c4h ; eb 072884 jmp short 02 5f3h ; eb 342901 jmp short 025fah ; eb 07 2902 jmp short 02629h ; eb 34 2885 2903 cmp di, strict byte 00014h ; 83 ff 14 2886 jnl short 02 5d9h ; 7d 152904 jnl short 0260fh ; 7d 15 2887 2905 mov si, di ; 89 fe 2888 2906 add si, di ; 01 fe … … 2892 2910 mov byte [bp+si-063h], al ; 88 42 9d 2893 2911 inc di ; 47 2894 jmp short 025 bfh ; eb e62912 jmp short 025f5h ; eb e6 2895 2913 mov byte [bp-03ch], 000h ; c6 46 c4 00 2896 2914 mov di, strict word 00027h ; bf 27 00 2897 jmp short 02 5e7h ; eb 052915 jmp short 0261dh ; eb 05 2898 2916 dec di ; 4f 2899 2917 test di, di ; 85 ff 2900 jle short 02 5f3h ; 7e 0c2918 jle short 02629h ; 7e 0c 2901 2919 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2902 jne short 02 5f3h ; 75 062920 jne short 02629h ; 75 06 2903 2921 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2904 jmp short 02 5e2h ; eb ef2905 mov al, byte [bp-00 ch] ; 8a 46 f42922 jmp short 02618h ; eb ef 2923 mov al, byte [bp-00eh] ; 8a 46 f2 2906 2924 cmp AL, strict byte 003h ; 3c 03 2907 je short 026 57h ; 74 5d2925 je short 0268dh ; 74 5d 2908 2926 cmp AL, strict byte 002h ; 3c 02 2909 je short 026 05h ; 74 072927 je short 0263bh ; 74 07 2910 2928 cmp AL, strict byte 001h ; 3c 01 2911 je short 026 62h ; 74 602912 jmp near 02 6e3h ; e9 de002913 cmp byte [bp-0 10h], 000h ; 80 7e f0002914 je short 026 10h ; 74 052929 je short 02698h ; 74 60 2930 jmp near 0271ch ; e9 e1 00 2931 cmp byte [bp-006h], 000h ; 80 7e fa 00 2932 je short 02646h ; 74 05 2915 2933 mov ax, 0019fh ; b8 9f 01 2916 jmp short 026 13h ; eb 032934 jmp short 02649h ; eb 03 2917 2935 mov ax, 001a6h ; b8 a6 01 2918 2936 push ax ; 50 2919 mov al, byte [bp-01 4h] ; 8a 46 ec2937 mov al, byte [bp-012h] ; 8a 46 ee 2920 2938 xor ah, ah ; 30 e4 2921 2939 push ax ; 50 2922 2940 push 001adh ; 68 ad 01 2923 2941 push strict byte 00002h ; 6a 02 2924 call 01966h ; e8 44f32942 call 01966h ; e8 0e f3 2925 2943 add sp, strict byte 00008h ; 83 c4 08 2926 2944 xor di, di ; 31 ff … … 2929 2947 inc di ; 47 2930 2948 test ax, ax ; 85 c0 2931 je short 026 3fh ; 74 0e2949 je short 02675h ; 74 0e 2932 2950 push ax ; 50 2933 2951 push 001b8h ; 68 b8 01 2934 2952 push strict byte 00002h ; 6a 02 2935 call 01966h ; e8 2c f32953 call 01966h ; e8 f6 f2 2936 2954 add sp, strict byte 00006h ; 83 c4 06 2937 jmp short 026 27h ; eb e82955 jmp short 0265dh ; eb e8 2938 2956 push word [bp-032h] ; ff 76 ce 2939 push word [bp-0 24h] ; ff 76 dc2940 mov al, byte [bp-00 eh] ; 8a 46 f22957 push word [bp-01eh] ; ff 76 e2 2958 mov al, byte [bp-00ch] ; 8a 46 f4 2941 2959 push ax ; 50 2942 2960 push 001bbh ; 68 bb 01 2943 2961 push strict byte 00002h ; 6a 02 2944 call 01966h ; e8 15 f32962 call 01966h ; e8 df f2 2945 2963 add sp, strict byte 0000ah ; 83 c4 0a 2946 jmp near 02 6e3h ; e9 8c002947 cmp byte [bp-0 10h], 000h ; 80 7e f0002948 je short 026 64h ; 74 072964 jmp near 0271ch ; e9 8f 00 2965 cmp byte [bp-006h], 000h ; 80 7e fa 00 2966 je short 0269ah ; 74 07 2949 2967 mov ax, 0019fh ; b8 9f 01 2950 jmp short 026 67h ; eb 052951 jmp short 026 c3h ; eb 5f2968 jmp short 0269dh ; eb 05 2969 jmp short 026fch ; eb 62 2952 2970 mov ax, 001a6h ; b8 a6 01 2953 2971 push ax ; 50 2954 mov al, byte [bp-01 4h] ; 8a 46 ec2972 mov al, byte [bp-012h] ; 8a 46 ee 2955 2973 xor ah, ah ; 30 e4 2956 2974 push ax ; 50 2957 2975 push 001adh ; 68 ad 01 2958 2976 push strict byte 00002h ; 6a 02 2959 call 01966h ; e8 f0f22977 call 01966h ; e8 ba f2 2960 2978 add sp, strict byte 00008h ; 83 c4 08 2961 2979 xor di, di ; 31 ff … … 2964 2982 inc di ; 47 2965 2983 test ax, ax ; 85 c0 2966 je short 026 93h ; 74 0e2984 je short 026c9h ; 74 0e 2967 2985 push ax ; 50 2968 2986 push 001b8h ; 68 b8 01 2969 2987 push strict byte 00002h ; 6a 02 2970 call 01966h ; e8 d8f22988 call 01966h ; e8 a2 f2 2971 2989 add sp, strict byte 00006h ; 83 c4 06 2972 jmp short 026 7bh ; eb e82990 jmp short 026b1h ; eb e8 2973 2991 mov al, byte [bp-00ah] ; 8a 46 f6 2974 2992 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2975 les bx, [bp-022h] ; c4 5e de 2993 mov es, [bp-02eh] ; 8e 46 d2 2994 mov bx, word [bp-01ch] ; 8b 5e e4 2976 2995 add bx, ax ; 01 c3 2977 2996 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2978 jne short 026 b0h ; 75 0b2979 mov al, byte [bp-00 eh] ; 8a 46 f22997 jne short 026e9h ; 75 0b 2998 mov al, byte [bp-00ch] ; 8a 46 f4 2980 2999 xor ah, ah ; 30 e4 2981 3000 push ax ; 50 2982 3001 push 001dbh ; 68 db 01 2983 jmp short 026 b9h ; eb 092984 mov al, byte [bp-00 eh] ; 8a 46 f23002 jmp short 026f2h ; eb 09 3003 mov al, byte [bp-00ch] ; 8a 46 f4 2985 3004 xor ah, ah ; 30 e4 2986 3005 push ax ; 50 2987 3006 push 001f5h ; 68 f5 01 2988 3007 push strict byte 00002h ; 6a 02 2989 call 01966h ; e8 a8f23008 call 01966h ; e8 6f f2 2990 3009 add sp, strict byte 00006h ; 83 c4 06 2991 jmp short 02 6e3h ; eb 202992 cmp byte [bp-0 10h], 000h ; 80 7e f0002993 je short 02 6ceh ; 74 053010 jmp short 0271ch ; eb 20 3011 cmp byte [bp-006h], 000h ; 80 7e fa 00 3012 je short 02707h ; 74 05 2994 3013 mov ax, 0019fh ; b8 9f 01 2995 jmp short 02 6d1h ; eb 033014 jmp short 0270ah ; eb 03 2996 3015 mov ax, 001a6h ; b8 a6 01 2997 3016 push ax ; 50 2998 mov al, byte [bp-01 4h] ; 8a 46 ec3017 mov al, byte [bp-012h] ; 8a 46 ee 2999 3018 xor ah, ah ; 30 e4 3000 3019 push ax ; 50 3001 3020 push 00207h ; 68 07 02 3002 3021 push strict byte 00002h ; 6a 02 3003 call 01966h ; e8 86f23022 call 01966h ; e8 4d f2 3004 3023 add sp, strict byte 00008h ; 83 c4 08 3005 3024 inc byte [bp-00ah] ; fe 46 f6 3006 3025 cmp byte [bp-00ah], 008h ; 80 7e f6 08 3007 jnc short 027 3eh ; 73 523026 jnc short 0277ah ; 73 55 3008 3027 mov bl, byte [bp-00ah] ; 8a 5e f6 3009 3028 xor bh, bh ; 30 ff … … 3014 3033 sar ax, 1 ; d1 f8 3015 3034 mov cx, ax ; 89 c1 3016 mov byte [bp-01 4h], al ; 88 46 ec3035 mov byte [bp-012h], al ; 88 46 ee 3017 3036 mov ax, bx ; 89 d8 3018 3037 cwd ; 99 3019 3038 mov bx, strict word 00002h ; bb 02 00 3020 3039 idiv bx ; f7 fb 3021 mov word [bp-0 2eh], dx ; 89 56 d23022 mov al, byte [bp-0 2eh] ; 8a 46 d23023 mov byte [bp-0 10h], al ; 88 46 f03040 mov word [bp-034h], dx ; 89 56 cc 3041 mov al, byte [bp-034h] ; 8a 46 cc 3042 mov byte [bp-006h], al ; 88 46 fa 3024 3043 mov al, cl ; 88 c8 3025 3044 xor ah, ah ; 30 e4 3026 3045 imul ax, ax, strict byte 00006h ; 6b c0 06 3027 les bx, [bp-022h] ; c4 5e de 3046 mov es, [bp-02eh] ; 8e 46 d2 3047 mov bx, word [bp-01ch] ; 8b 5e e4 3028 3048 add bx, ax ; 01 c3 3029 3049 mov si, word [es:bx+00206h] ; 26 8b b7 06 02 … … 3034 3054 mov AL, strict byte 00ah ; b0 0a 3035 3055 out DX, AL ; ee 3036 cmp byte [bp-0 2eh], 000h ; 80 7e d2003037 jne short 027 38h ; 75 033038 jmp near 0217ah ; e9 42fa3056 cmp byte [bp-034h], 000h ; 80 7e cc 00 3057 jne short 02774h ; 75 03 3058 jmp near 0217ah ; e9 06 fa 3039 3059 mov ax, 000b0h ; b8 b0 00 3040 jmp near 0217dh ; e9 3f fa 3041 mov al, byte [bp-012h] ; 8a 46 ee 3042 les bx, [bp-022h] ; c4 5e de 3060 jmp near 0217dh ; e9 03 fa 3061 mov al, byte [bp-008h] ; 8a 46 f8 3062 mov es, [bp-02eh] ; 8e 46 d2 3063 mov bx, word [bp-01ch] ; 8b 5e e4 3043 3064 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 3044 mov al, byte [bp-0 08h] ; 8a 46 f83065 mov al, byte [bp-010h] ; 8a 46 f0 3045 3066 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 3046 mov bl, byte [bp-0 12h] ; 8a 5e ee3067 mov bl, byte [bp-008h] ; 8a 5e f8 3047 3068 xor bh, bh ; 30 ff 3048 3069 mov dx, strict word 00075h ; ba 75 00 3049 3070 mov ax, strict word 00040h ; b8 40 00 3050 call 0165eh ; e8 ffee3071 call 0165eh ; e8 c0 ee 3051 3072 lea sp, [bp-004h] ; 8d 66 fc 3052 3073 pop di ; 5f … … 3054 3075 pop bp ; 5d 3055 3076 retn ; c3 3056 ata_cmd_data_out_: ; 0xf27 66LB 0x28a3077 ata_cmd_data_out_: ; 0xf27a5 LB 0x28a 3057 3078 push bp ; 55 3058 3079 mov bp, sp ; 89 e5 … … 3086 3107 ; sub ah, ah ; 2a e4 3087 3108 test AL, strict byte 080h ; a8 80 3088 je short 02 7c5h ; 74 0f3109 je short 02804h ; 74 0f 3089 3110 mov dx, word [bp-01ah] ; 8b 56 e6 3090 3111 add dx, strict byte 00006h ; 83 c2 06 … … 3092 3113 out DX, AL ; ee 3093 3114 mov ax, strict word 00001h ; b8 01 00 3094 jmp near 02 9e9h ; e9 24 023115 jmp near 02a28h ; e9 24 02 3095 3116 mov es, [bp-00ah] ; 8e 46 f6 3096 3117 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3114 3135 mov ax, word [bp-014h] ; 8b 46 ec 3115 3136 test ax, ax ; 85 c0 3116 je short 028 10h ; 74 033117 jmp near 02 8d7h ; e9 c7 003137 je short 0284fh ; 74 03 3138 jmp near 02916h ; e9 c7 00 3118 3139 xor bx, bx ; 31 db 3119 3140 xor dx, dx ; 31 d2 … … 3124 3145 adc dx, word [bp-00ch] ; 13 56 f4 3125 3146 test dx, dx ; 85 d2 3126 jnbe short 028 37h ; 77 103127 jne short 028 9ah ; 75 713147 jnbe short 02876h ; 77 10 3148 jne short 028d9h ; 75 71 3128 3149 test ax, ax ; 85 c0 3129 jnbe short 028 37h ; 77 0a3130 jne short 028 9ah ; 75 6b3150 jnbe short 02876h ; 77 0a 3151 jne short 028d9h ; 75 6b 3131 3152 cmp bx, 01000h ; 81 fb 00 10 3132 jnbe short 028 37h ; 77 023133 jne short 028 9ah ; 75 633153 jnbe short 02876h ; 77 02 3154 jne short 028d9h ; 75 63 3134 3155 mov ax, word [bp-00ch] ; 8b 46 f4 3135 3156 mov bx, word [bp-00eh] ; 8b 5e f2 … … 3137 3158 mov dx, word [bp-024h] ; 8b 56 dc 3138 3159 mov si, strict word 00018h ; be 18 00 3139 call 0a 0e0h ; e8 97783160 call 0a120h ; e8 98 78 3140 3161 xor dh, dh ; 30 f6 3141 3162 mov word [bp-014h], dx ; 89 56 ec … … 3145 3166 mov dx, word [bp-024h] ; 8b 56 dc 3146 3167 mov si, strict word 00020h ; be 20 00 3147 call 0a 0e0h ; e8 80783168 call 0a120h ; e8 81 78 3148 3169 mov bx, dx ; 89 d3 3149 3170 mov ax, word [bp-022h] ; 8b 46 de … … 3179 3200 mov dx, word [bp-024h] ; 8b 56 dc 3180 3201 mov si, strict word 00008h ; be 08 00 3181 call 0a 0e0h ; e8 2c783202 call 0a120h ; e8 2d 78 3182 3203 mov word [bp-00ch], ax ; 89 46 f4 3183 3204 mov word [bp-00eh], bx ; 89 5e f2 … … 3186 3207 mov word [bp-018h], dx ; 89 56 e8 3187 3208 mov si, strict word 00010h ; be 10 00 3188 call 0a 0e0h ; e8 17783209 call 0a120h ; e8 18 78 3189 3210 mov word [bp-024h], dx ; 89 56 dc 3190 3211 mov ax, dx ; 89 d0 … … 3219 3240 out DX, AL ; ee 3220 3241 cmp byte [bp-006h], 000h ; 80 7e fa 00 3221 je short 029 19h ; 74 053242 je short 02958h ; 74 05 3222 3243 mov ax, 000b0h ; b8 b0 00 3223 jmp short 029 1ch ; eb 033244 jmp short 0295bh ; eb 03 3224 3245 mov ax, 000a0h ; b8 a0 00 3225 3246 mov dl, byte [bp-01ch] ; 8a 56 e4 … … 3240 3261 mov bl, al ; 88 c3 3241 3262 test AL, strict byte 080h ; a8 80 3242 jne short 029 34h ; 75 f13263 jne short 02973h ; 75 f1 3243 3264 test AL, strict byte 001h ; a8 01 3244 je short 029 56h ; 74 0f3265 je short 02995h ; 74 0f 3245 3266 mov dx, word [bp-01ah] ; 8b 56 e6 3246 3267 add dx, strict byte 00006h ; 83 c2 06 … … 3248 3269 out DX, AL ; ee 3249 3270 mov ax, strict word 00002h ; b8 02 00 3250 jmp near 02 9e9h ; e9 93 003271 jmp near 02a28h ; e9 93 00 3251 3272 test bl, 008h ; f6 c3 08 3252 jne short 029 6ah ; 75 0f3273 jne short 029a9h ; 75 0f 3253 3274 mov dx, word [bp-01ah] ; 8b 56 e6 3254 3275 add dx, strict byte 00006h ; 83 c2 06 … … 3256 3277 out DX, AL ; ee 3257 3278 mov ax, strict word 00003h ; b8 03 00 3258 jmp near 02 9e9h ; e9 7f 003279 jmp near 02a28h ; e9 7f 00 3259 3280 sti ; fb 3260 3281 mov ax, word [bp-016h] ; 8b 46 ea 3261 3282 cmp ax, 0f800h ; 3d 00 f8 3262 jc short 029 83h ; 72 103283 jc short 029c2h ; 72 10 3263 3284 sub ax, 00800h ; 2d 00 08 3264 3285 mov dx, word [bp-012h] ; 8b 56 ee … … 3283 3304 mov bl, al ; 88 c3 3284 3305 test AL, strict byte 080h ; a8 80 3285 jne short 029 9fh ; 75 f13306 jne short 029deh ; 75 f1 3286 3307 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 3287 jne short 02 9c8h ; 75 143308 jne short 02a07h ; 75 14 3288 3309 and AL, strict byte 0e9h ; 24 e9 3289 3310 cmp AL, strict byte 040h ; 3c 40 3290 je short 02 9deh ; 74 243311 je short 02a1dh ; 74 24 3291 3312 mov dx, word [bp-01ah] ; 8b 56 e6 3292 3313 add dx, strict byte 00006h ; 83 c2 06 … … 3294 3315 out DX, AL ; ee 3295 3316 mov ax, strict word 00006h ; b8 06 00 3296 jmp short 02 9e9h ; eb 213317 jmp short 02a28h ; eb 21 3297 3318 mov al, bl ; 88 d8 3298 3319 and AL, strict byte 0c9h ; 24 c9 3299 3320 cmp AL, strict byte 048h ; 3c 48 3300 je short 029 6bh ; 74 9b3321 je short 029aah ; 74 9b 3301 3322 mov dx, word [bp-01ah] ; 8b 56 e6 3302 3323 add dx, strict byte 00006h ; 83 c2 06 … … 3304 3325 out DX, AL ; ee 3305 3326 mov ax, strict word 00007h ; b8 07 00 3306 jmp short 02 9e9h ; eb 0b3327 jmp short 02a28h ; eb 0b 3307 3328 mov dx, word [bp-01ah] ; 8b 56 e6 3308 3329 add dx, strict byte 00006h ; 83 c2 06 … … 3315 3336 pop bp ; 5d 3316 3337 retn ; c3 3317 @ata_read_sectors: ; 0xf2 9f0LB 0xb53338 @ata_read_sectors: ; 0xf2a2f LB 0xb5 3318 3339 push bp ; 55 3319 3340 mov bp, sp ; 89 e5 … … 3328 3349 sal dx, 009h ; c1 e2 09 3329 3350 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3330 je short 02a 31h ; 74 1f3351 je short 02a70h ; 74 1f 3331 3352 xor ah, ah ; 30 e4 3332 3353 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3338 3359 mov ax, si ; 89 f0 3339 3360 mov dx, es ; 8c c2 3340 call 01e63h ; e8 37 f43361 call 01e63h ; e8 f8 f3 3341 3362 mov es, [bp-00ch] ; 8e 46 f4 3342 jmp short 02a 96h ; eb 653363 jmp short 02ad5h ; eb 65 3343 3364 xor bx, bx ; 31 db 3344 3365 mov word [bp-00ch], bx ; 89 5e f4 … … 3355 3376 adc di, word [bp-006h] ; 13 7e fa 3356 3377 test di, di ; 85 ff 3357 jnbe short 02a 6dh ; 77 113358 jne short 02a 79h ; 75 1b3378 jnbe short 02aach ; 77 11 3379 jne short 02ab8h ; 75 1b 3359 3380 test bx, bx ; 85 db 3360 jnbe short 02a 6dh ; 77 0b3361 jne short 02a 79h ; 75 153381 jnbe short 02aach ; 77 0b 3382 jne short 02ab8h ; 75 15 3362 3383 cmp word [bp-008h], 01000h ; 81 7e f8 00 10 3363 jnbe short 02a 6dh ; 77 023364 jne short 02a 79h ; 75 0c3384 jnbe short 02aach ; 77 02 3385 jne short 02ab8h ; 75 0c 3365 3386 mov bx, strict word 00024h ; bb 24 00 3366 3387 mov ax, si ; 89 f0 3367 3388 mov dx, es ; 8c c2 3368 call 01e63h ; e8 ecf33369 jmp short 02a 9ch ; eb 233389 call 01e63h ; e8 ad f3 3390 jmp short 02adbh ; eb 23 3370 3391 xor ah, ah ; 30 e4 3371 3392 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3377 3398 mov ax, si ; 89 f0 3378 3399 mov dx, es ; 8c c2 3379 call 01e63h ; e8 d0f33400 call 01e63h ; e8 91 f3 3380 3401 mov es, [bp-006h] ; 8e 46 fa 3381 3402 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3385 3406 pop bp ; 5d 3386 3407 retn 00004h ; c2 04 00 3387 @ata_write_sectors: ; 0xf2a a5LB 0x5b3408 @ata_write_sectors: ; 0xf2ae4 LB 0x5b 3388 3409 push bp ; 55 3389 3410 mov bp, sp ; 89 e5 … … 3394 3415 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3395 3416 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3396 je short 02 ac5h ; 74 0c3417 je short 02b04h ; 74 0c 3397 3418 mov bx, strict word 00030h ; bb 30 00 3398 3419 mov ax, si ; 89 f0 3399 3420 mov dx, es ; 8c c2 3400 call 027 66h ; e8 a3 fc3401 jmp short 02 af7h ; eb 323421 call 027a5h ; e8 a3 fc 3422 jmp short 02b36h ; eb 32 3402 3423 xor ax, ax ; 31 c0 3403 3424 xor bx, bx ; 31 db … … 3410 3431 adc dx, word [es:si+006h] ; 26 13 54 06 3411 3432 test dx, dx ; 85 d2 3412 jnbe short 02 af2h ; 77 0f3413 jne short 02a b9h ; 75 d43433 jnbe short 02b31h ; 77 0f 3434 jne short 02af8h ; 75 d4 3414 3435 test bx, bx ; 85 db 3415 jnbe short 02 af2h ; 77 093416 jne short 02a b9h ; 75 ce3436 jnbe short 02b31h ; 77 09 3437 jne short 02af8h ; 75 ce 3417 3438 cmp ax, 01000h ; 3d 00 10 3418 jnbe short 02 af2h ; 77 023419 jne short 02a b9h ; 75 c73439 jnbe short 02b31h ; 77 02 3440 jne short 02af8h ; 75 c7 3420 3441 mov bx, strict word 00034h ; bb 34 00 3421 jmp short 02a bch ; eb c53442 jmp short 02afbh ; eb c5 3422 3443 lea sp, [bp-004h] ; 8d 66 fc 3423 3444 pop di ; 5f … … 3425 3446 pop bp ; 5d 3426 3447 retn 00004h ; c2 04 00 3427 ata_cmd_packet_: ; 0xf2b 00LB 0x2893448 ata_cmd_packet_: ; 0xf2b3f LB 0x289 3428 3449 push bp ; 55 3429 3450 mov bp, sp ; 89 e5 … … 3436 3457 mov dx, strict word 0000eh ; ba 0e 00 3437 3458 mov ax, strict word 00040h ; b8 40 00 3438 call 0166ch ; e8 55eb3459 call 0166ch ; e8 16 eb 3439 3460 mov word [bp-010h], 00122h ; c7 46 f0 22 01 3440 3461 mov word [bp-012h], ax ; 89 46 ee … … 3445 3466 mov byte [bp-008h], ah ; 88 66 f8 3446 3467 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3447 jne short 02b 52h ; 75 1f3448 mov bx, 00da 4h ; bb a40d3468 jne short 02b91h ; 75 1f 3469 mov bx, 00da0h ; bb a0 0d 3449 3470 mov cx, ds ; 8c d9 3450 3471 mov ax, strict word 00004h ; b8 04 00 3451 call 01923h ; e8 e5ed3472 call 01923h ; e8 a6 ed 3452 3473 push 00221h ; 68 21 02 3453 3474 push 00230h ; 68 30 02 3454 3475 push strict byte 00004h ; 6a 04 3455 call 01966h ; e8 1d ee3476 call 01966h ; e8 de ed 3456 3477 add sp, strict byte 00006h ; 83 c4 06 3457 3478 mov ax, strict word 00001h ; b8 01 00 3458 jmp near 02d 80h ; e9 2e 023479 jmp near 02dbfh ; e9 2e 02 3459 3480 test byte [bp+004h], 001h ; f6 46 04 01 3460 jne short 02b 4ch ; 75 f43481 jne short 02b8bh ; 75 f4 3461 3482 xor ah, ah ; 30 e4 3462 3483 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3473 3494 mov al, byte [bp-006h] ; 8a 46 fa 3474 3495 cmp AL, strict byte 00ch ; 3c 0c 3475 jnc short 02b 8ah ; 73 063496 jnc short 02bc9h ; 73 06 3476 3497 mov byte [bp-006h], 00ch ; c6 46 fa 0c 3477 jmp short 02b 90h ; eb 063478 jbe short 02b 90h ; 76 043498 jmp short 02bcfh ; eb 06 3499 jbe short 02bcfh ; 76 04 3479 3500 mov byte [bp-006h], 010h ; c6 46 fa 10 3480 3501 shr byte [bp-006h], 1 ; d0 6e fa … … 3490 3511 ; sub ah, ah ; 2a e4 3491 3512 test AL, strict byte 080h ; a8 80 3492 je short 02b beh ; 74 063513 je short 02bfdh ; 74 06 3493 3514 mov ax, strict word 00002h ; b8 02 00 3494 jmp near 02d 80h ; e9 c2 013515 jmp near 02dbfh ; e9 c2 01 3495 3516 mov dx, word [bp-00eh] ; 8b 56 f2 3496 3517 add dx, strict byte 00006h ; 83 c2 06 … … 3506 3527 out DX, AL ; ee 3507 3528 cmp byte [bp-008h], 000h ; 80 7e f8 00 3508 je short 02 be4h ; 74 053529 je short 02c23h ; 74 05 3509 3530 mov ax, 000b0h ; b8 b0 00 3510 jmp short 02 be7h ; eb 033531 jmp short 02c26h ; eb 03 3511 3532 mov ax, 000a0h ; b8 a0 00 3512 3533 mov dx, word [bp-00ah] ; 8b 56 f6 … … 3524 3545 mov bx, ax ; 89 c3 3525 3546 test AL, strict byte 080h ; a8 80 3526 jne short 02 bf7h ; 75 f13547 jne short 02c36h ; 75 f1 3527 3548 test AL, strict byte 001h ; a8 01 3528 je short 02c 19h ; 74 0f3549 je short 02c58h ; 74 0f 3529 3550 mov dx, word [bp-00eh] ; 8b 56 f2 3530 3551 add dx, strict byte 00006h ; 83 c2 06 … … 3532 3553 out DX, AL ; ee 3533 3554 mov ax, strict word 00003h ; b8 03 00 3534 jmp near 02d 80h ; e9 67 013555 jmp near 02dbfh ; e9 67 01 3535 3556 test AL, strict byte 008h ; a8 08 3536 jne short 02c 2ch ; 75 0f3557 jne short 02c6bh ; 75 0f 3537 3558 mov dx, word [bp-00eh] ; 8b 56 f2 3538 3559 add dx, strict byte 00006h ; 83 c2 06 … … 3540 3561 out DX, AL ; ee 3541 3562 mov ax, strict word 00004h ; b8 04 00 3542 jmp near 02d 80h ; e9 54 013563 jmp near 02dbfh ; e9 54 01 3543 3564 sti ; fb 3544 3565 mov ax, si ; 89 f0 … … 3553 3574 ; rep es outsw ; f3 26 6f 3554 3575 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3555 jne short 02c 53h ; 75 093576 jne short 02c92h ; 75 09 3556 3577 add dx, strict byte 00007h ; 83 c2 07 3557 3578 in AL, DX ; ec 3558 3579 db 02ah, 0e4h 3559 3580 ; sub ah, ah ; 2a e4 3560 jmp near 02d 63h ; e9 10 013581 jmp near 02da2h ; e9 10 01 3561 3582 mov dx, word [bp-00ah] ; 8b 56 f6 3562 3583 add dx, strict byte 00007h ; 83 c2 07 … … 3566 3587 mov bx, ax ; 89 c3 3567 3588 test AL, strict byte 080h ; a8 80 3568 jne short 02c 53h ; 75 f13589 jne short 02c92h ; 75 f1 3569 3590 test AL, strict byte 088h ; a8 88 3570 je short 02 cc6h ; 74 603591 je short 02d05h ; 74 60 3571 3592 test AL, strict byte 001h ; a8 01 3572 je short 02c 75h ; 74 0b3593 je short 02cb4h ; 74 0b 3573 3594 mov dx, word [bp-00eh] ; 8b 56 f2 3574 3595 add dx, strict byte 00006h ; 83 c2 06 3575 3596 mov AL, strict byte 008h ; b0 08 3576 3597 out DX, AL ; ee 3577 jmp short 02c 13h ; eb 9e3598 jmp short 02c52h ; eb 9e 3578 3599 and AL, strict byte 0c9h ; 24 c9 3579 3600 cmp AL, strict byte 048h ; 3c 48 3580 je short 02c 86h ; 74 0b3601 je short 02cc5h ; 74 0b 3581 3602 mov dx, word [bp-00eh] ; 8b 56 f2 3582 3603 add dx, strict byte 00006h ; 83 c2 06 3583 3604 mov AL, strict byte 008h ; b0 08 3584 3605 out DX, AL ; ee 3585 jmp short 02c 26h ; eb a03606 jmp short 02c65h ; eb a0 3586 3607 mov ax, word [bp+00ch] ; 8b 46 0c 3587 3608 shr ax, 004h ; c1 e8 04 … … 3607 3628 mov ax, word [bp+004h] ; 8b 46 04 3608 3629 cmp bx, ax ; 39 c3 3609 jnc short 02 cc9h ; 73 0c3630 jnc short 02d08h ; 73 0c 3610 3631 mov cx, bx ; 89 d9 3611 3632 sub word [bp+004h], bx ; 29 5e 04 3612 3633 xor bx, bx ; 31 db 3613 jmp short 02 cd2h ; eb 0c3614 jmp near 02d 63h ; e9 9a 003634 jmp short 02d11h ; eb 0c 3635 jmp near 02da2h ; e9 9a 00 3615 3636 mov cx, ax ; 89 c1 3616 3637 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3618 3639 xor ax, ax ; 31 c0 3619 3640 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3620 jne short 02 cf0h ; 75 163641 jne short 02d2fh ; 75 16 3621 3642 cmp bx, word [bp+006h] ; 3b 5e 06 3622 jbe short 02 cf0h ; 76 113643 jbe short 02d2fh ; 76 11 3623 3644 sub bx, word [bp+006h] ; 2b 5e 06 3624 3645 mov word [bp-00ch], bx ; 89 5e f4 … … 3626 3647 mov word [bp+006h], ax ; 89 46 06 3627 3648 mov word [bp+008h], ax ; 89 46 08 3628 jmp short 02 cf9h ; eb 093649 jmp short 02d38h ; eb 09 3629 3650 mov word [bp-00ch], ax ; 89 46 f4 3630 3651 sub word [bp+006h], bx ; 29 5e 06 … … 3635 3656 test byte [bp-00ch], 003h ; f6 46 f4 03 3636 3657 test bl, 001h ; f6 c3 01 3637 je short 02d 1ah ; 74 103658 je short 02d59h ; 74 10 3638 3659 inc bx ; 43 3639 3660 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3640 jbe short 02d 1ah ; 76 093661 jbe short 02d59h ; 76 09 3641 3662 test byte [bp-00ch], 001h ; f6 46 f4 01 3642 je short 02d 1ah ; 74 033663 je short 02d59h ; 74 03 3643 3664 dec word [bp-00ch] ; ff 4e f4 3644 3665 shr bx, 1 ; d1 eb … … 3646 3667 shr word [bp-00ch], 1 ; d1 6e f4 3647 3668 test cx, cx ; 85 c9 3648 je short 02d 2bh ; 74 063669 je short 02d6ah ; 74 06 3649 3670 mov dx, word [bp-00ah] ; 8b 56 f6 3650 3671 in ax, DX ; ed 3651 loop 02d 28h ; e2 fd3672 loop 02d67h ; e2 fd 3652 3673 mov dx, word [bp-00ah] ; 8b 56 f6 3653 3674 mov cx, bx ; 89 d9 … … 3656 3677 mov ax, word [bp-00ch] ; 8b 46 f4 3657 3678 test ax, ax ; 85 c0 3658 je short 02d 41h ; 74 053679 je short 02d80h ; 74 05 3659 3680 mov cx, ax ; 89 c1 3660 3681 in ax, DX ; ed 3661 loop 02d 3eh ; e2 fd3682 loop 02d7dh ; e2 fd 3662 3683 add word [bp+00ch], si ; 01 76 0c 3663 3684 xor ax, ax ; 31 c0 … … 3670 3691 mov ax, word [bp-014h] ; 8b 46 ec 3671 3692 mov word [es:bx+01ch], ax ; 26 89 47 1c 3672 jmp near 02c 53h ; e9 f0 fe3693 jmp near 02c92h ; e9 f0 fe 3673 3694 and AL, strict byte 0e9h ; 24 e9 3674 3695 cmp AL, strict byte 040h ; 3c 40 3675 je short 02d 75h ; 74 0c3696 je short 02db4h ; 74 0c 3676 3697 mov dx, word [bp-00eh] ; 8b 56 f2 3677 3698 add dx, strict byte 00006h ; 83 c2 06 3678 3699 mov AL, strict byte 008h ; b0 08 3679 3700 out DX, AL ; ee 3680 jmp near 02c 26h ; e9 b1 fe3701 jmp near 02c65h ; e9 b1 fe 3681 3702 mov dx, word [bp-00eh] ; 8b 56 f2 3682 3703 add dx, strict byte 00006h ; 83 c2 06 … … 3689 3710 pop bp ; 5d 3690 3711 retn 0000ch ; c2 0c 00 3691 ata_soft_reset_: ; 0xf2d 89LB 0x803712 ata_soft_reset_: ; 0xf2dc8 LB 0x80 3692 3713 push bp ; 55 3693 3714 mov bp, sp ; 89 e5 … … 3699 3720 mov dx, strict word 0000eh ; ba 0e 00 3700 3721 mov ax, strict word 00040h ; b8 40 00 3701 call 0166ch ; e8 d1e83722 call 0166ch ; e8 92 e8 3702 3723 mov dx, bx ; 89 da 3703 3724 shr dx, 1 ; d1 ea … … 3714 3735 out DX, AL ; ee 3715 3736 cmp byte [bp-008h], 000h ; 80 7e f8 00 3716 je short 02 dcbh ; 74 053737 je short 02e0ah ; 74 05 3717 3738 mov ax, 000b0h ; b8 b0 00 3718 jmp short 02 dceh ; eb 033739 jmp short 02e0dh ; eb 03 3719 3740 mov ax, 000a0h ; b8 a0 00 3720 3741 mov dx, cx ; 89 ca … … 3731 3752 ; sub ah, ah ; 2a e4 3732 3753 test AL, strict byte 080h ; a8 80 3733 jne short 02 ddch ; 75 f43754 jne short 02e1bh ; 75 f4 3734 3755 and AL, strict byte 0e9h ; 24 e9 3735 3756 cmp AL, strict byte 040h ; 3c 40 3736 je short 02 df9h ; 74 0b3757 je short 02e38h ; 74 0b 3737 3758 lea dx, [bx+006h] ; 8d 57 06 3738 3759 mov AL, strict byte 008h ; b0 08 3739 3760 out DX, AL ; ee 3740 3761 mov ax, strict word 00001h ; b8 01 00 3741 jmp short 02e 01h ; eb 083762 jmp short 02e40h ; eb 08 3742 3763 lea dx, [bx+006h] ; 8d 57 06 3743 3764 mov AL, strict byte 008h ; b0 08 … … 3750 3771 pop bp ; 5d 3751 3772 retn ; c3 3752 set_diskette_current_cyl_: ; 0xf2e 09LB 0x2b3773 set_diskette_current_cyl_: ; 0xf2e48 LB 0x2b 3753 3774 push bp ; 55 3754 3775 mov bp, sp ; 89 e5 … … 3756 3777 mov dh, al ; 88 c6 3757 3778 cmp AL, strict byte 001h ; 3c 01 3758 jbe short 02e 1eh ; 76 0b3779 jbe short 02e5dh ; 76 0b 3759 3780 push 00250h ; 68 50 02 3760 3781 push strict byte 00007h ; 6a 07 3761 call 01966h ; e8 4beb3782 call 01966h ; e8 0c eb 3762 3783 add sp, strict byte 00004h ; 83 c4 04 3763 3784 mov bl, dh ; 88 f3 … … 3771 3792 pop bp ; 5d 3772 3793 retn ; c3 3773 floppy_wait_for_interrupt_: ; 0xf2e 34LB 0x233794 floppy_wait_for_interrupt_: ; 0xf2e73 LB 0x23 3774 3795 push bp ; 55 3775 3796 mov bp, sp ; 89 e5 … … 3781 3802 mov al, byte [es:bx] ; 26 8a 07 3782 3803 test AL, strict byte 080h ; a8 80 3783 je short 02e 4ch ; 74 043804 je short 02e8bh ; 74 04 3784 3805 and AL, strict byte 080h ; 24 80 3785 jmp short 02e 51h ; eb 053806 jmp short 02e90h ; eb 05 3786 3807 sti ; fb 3787 3808 hlt ; f4 3788 3809 cli ; fa 3789 jmp short 02e 39h ; eb e83810 jmp short 02e78h ; eb e8 3790 3811 lea sp, [bp-002h] ; 8d 66 fe 3791 3812 pop bx ; 5b 3792 3813 pop bp ; 5d 3793 3814 retn ; c3 3794 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e 57LB 0x383815 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e96 LB 0x38 3795 3816 push bp ; 55 3796 3817 mov bp, sp ; 89 e5 … … 3801 3822 mov al, byte [es:bx] ; 26 8a 07 3802 3823 test al, al ; 84 c0 3803 jne short 02e 6bh ; 75 033824 jne short 02eaah ; 75 03 3804 3825 sti ; fb 3805 jmp short 02e 89h ; eb 1e3826 jmp short 02ec8h ; eb 1e 3806 3827 mov bx, strict word 0003eh ; bb 3e 00 3807 3828 mov ax, strict word 00040h ; b8 40 00 … … 3809 3830 mov al, byte [es:bx] ; 26 8a 07 3810 3831 test AL, strict byte 080h ; a8 80 3811 je short 02e 84h ; 74 0a3832 je short 02ec3h ; 74 0a 3812 3833 mov ah, al ; 88 c4 3813 3834 and ah, 07fh ; 80 e4 7f 3814 3835 mov byte [es:bx], ah ; 26 88 27 3815 jmp short 02e 89h ; eb 053836 jmp short 02ec8h ; eb 05 3816 3837 sti ; fb 3817 3838 hlt ; f4 3818 3839 cli ; fa 3819 jmp short 02e 5ch ; eb d33840 jmp short 02e9bh ; eb d3 3820 3841 lea sp, [bp-002h] ; 8d 66 fe 3821 3842 pop bx ; 5b 3822 3843 pop bp ; 5d 3823 3844 retn ; c3 3824 floppy_reset_controller_: ; 0xf2e 8fLB 0x3f3845 floppy_reset_controller_: ; 0xf2ece LB 0x3f 3825 3846 push bp ; 55 3826 3847 mov bp, sp ; 89 e5 … … 3845 3866 and AL, strict byte 0c0h ; 24 c0 3846 3867 cmp AL, strict byte 080h ; 3c 80 3847 jne short 02e a7h ; 75 f43868 jne short 02ee6h ; 75 f4 3848 3869 mov bx, cx ; 89 cb 3849 3870 add bx, 00090h ; 81 c3 90 00 … … 3859 3880 pop bp ; 5d 3860 3881 retn ; c3 3861 floppy_prepare_controller_: ; 0xf2 eceLB 0x743882 floppy_prepare_controller_: ; 0xf2f0d LB 0x74 3862 3883 push bp ; 55 3863 3884 mov bp, sp ; 89 e5 … … 3880 3901 mov byte [bp-008h], al ; 88 46 f8 3881 3902 test cx, cx ; 85 c9 3882 je short 02 efah ; 74 043903 je short 02f39h ; 74 04 3883 3904 mov AL, strict byte 020h ; b0 20 3884 jmp short 02 efch ; eb 023905 jmp short 02f3bh ; eb 02 3885 3906 mov AL, strict byte 010h ; b0 10 3886 3907 or AL, strict byte 00ch ; 0c 0c … … 3902 3923 and AL, strict byte 0c0h ; 24 c0 3903 3924 cmp AL, strict byte 080h ; 3c 80 3904 jne short 02f 1ah ; 75 f43925 jne short 02f59h ; 75 f4 3905 3926 cmp byte [bp-008h], 000h ; 80 7e f8 00 3906 jne short 02f 3ah ; 75 0e3907 call 02e 34h ; e8 05 ff3927 jne short 02f79h ; 75 0e 3928 call 02e73h ; e8 05 ff 3908 3929 mov bx, strict word 0003eh ; bb 3e 00 3909 3930 mov dx, strict word 00040h ; ba 40 00 … … 3916 3937 pop bp ; 5d 3917 3938 retn ; c3 3918 floppy_media_known_: ; 0xf2f 42LB 0x493939 floppy_media_known_: ; 0xf2f81 LB 0x49 3919 3940 push bx ; 53 3920 3941 push dx ; 52 … … 3927 3948 mov bl, bh ; 88 fb 3928 3949 test ax, ax ; 85 c0 3929 je short 02f 5ah ; 74 023950 je short 02f99h ; 74 02 3930 3951 shr bl, 1 ; d0 eb 3931 3952 and bl, 001h ; 80 e3 01 3932 jne short 02f 63h ; 75 043953 jne short 02fa2h ; 75 04 3933 3954 xor bh, bh ; 30 ff 3934 jmp short 02f 85h ; eb 223955 jmp short 02fc4h ; eb 22 3935 3956 mov bx, 00090h ; bb 90 00 3936 3957 test ax, ax ; 85 c0 3937 je short 02f 6dh ; 74 033958 je short 02fach ; 74 03 3938 3959 mov bx, 00091h ; bb 91 00 3939 3960 mov ax, strict word 00040h ; b8 40 00 … … 3943 3964 sar ax, 004h ; c1 f8 04 3944 3965 and AL, strict byte 001h ; 24 01 3945 jne short 02f 82h ; 75 043966 jne short 02fc1h ; 75 04 3946 3967 xor bx, bx ; 31 db 3947 jmp short 02f 85h ; eb 033968 jmp short 02fc4h ; eb 03 3948 3969 mov bx, strict word 00001h ; bb 01 00 3949 3970 mov ax, bx ; 89 d8 … … 3952 3973 pop bx ; 5b 3953 3974 retn ; c3 3954 floppy_read_id_: ; 0xf2f 8bLB 0x523975 floppy_read_id_: ; 0xf2fca LB 0x52 3955 3976 push bp ; 55 3956 3977 mov bp, sp ; 89 e5 … … 3959 3980 push si ; 56 3960 3981 mov bx, ax ; 89 c3 3961 call 02 eceh ; e8 38 ff3982 call 02f0dh ; e8 38 ff 3962 3983 mov AL, strict byte 04ah ; b0 4a 3963 3984 mov dx, 003f5h ; ba f5 03 … … 3965 3986 mov al, bl ; 88 d8 3966 3987 out DX, AL ; ee 3967 call 02e 34h ; e8 92 fe3988 call 02e73h ; e8 92 fe 3968 3989 xor bx, bx ; 31 db 3969 jmp short 02f abh ; eb 053990 jmp short 02feah ; eb 05 3970 3991 cmp bx, strict byte 00007h ; 83 fb 07 3971 jnl short 02f bfh ; 7d 143992 jnl short 02ffeh ; 7d 14 3972 3993 mov dx, 003f5h ; ba f5 03 3973 3994 in AL, DX ; ec … … 3979 4000 mov byte [es:si], al ; 26 88 04 3980 4001 inc bx ; 43 3981 jmp short 02f a6h ; eb e74002 jmp short 02fe5h ; eb e7 3982 4003 mov bx, strict word 00042h ; bb 42 00 3983 4004 mov ax, strict word 00040h ; b8 40 00 … … 3985 4006 mov al, byte [es:bx] ; 26 8a 07 3986 4007 test AL, strict byte 0c0h ; a8 c0 3987 je short 0 2fd2h ; 74 044008 je short 03011h ; 74 04 3988 4009 xor ax, ax ; 31 c0 3989 jmp short 0 2fd5h ; eb 034010 jmp short 03014h ; eb 03 3990 4011 mov ax, strict word 00001h ; b8 01 00 3991 4012 lea sp, [bp-006h] ; 8d 66 fa … … 3995 4016 pop bp ; 5d 3996 4017 retn ; c3 3997 floppy_drive_recal_: ; 0xf 2fddLB 0x414018 floppy_drive_recal_: ; 0xf301c LB 0x41 3998 4019 push bp ; 55 3999 4020 mov bp, sp ; 89 e5 … … 4002 4023 push si ; 56 4003 4024 mov bx, ax ; 89 c3 4004 call 02 eceh ; e8 e6 fe4025 call 02f0dh ; e8 e6 fe 4005 4026 mov AL, strict byte 007h ; b0 07 4006 4027 mov dx, 003f5h ; ba f5 03 … … 4008 4029 mov al, bl ; 88 d8 4009 4030 out DX, AL ; ee 4010 call 02e 34h ; e8 40 fe4031 call 02e73h ; e8 40 fe 4011 4032 test bx, bx ; 85 db 4012 je short 0 2fffh ; 74 074033 je short 0303eh ; 74 07 4013 4034 or AL, strict byte 002h ; 0c 02 4014 4035 mov bx, 00095h ; bb 95 00 4015 jmp short 030 04h ; eb 054036 jmp short 03043h ; eb 05 4016 4037 or AL, strict byte 001h ; 0c 01 4017 4038 mov bx, 00094h ; bb 94 00 … … 4028 4049 pop bp ; 5d 4029 4050 retn ; c3 4030 floppy_media_sense_: ; 0xf30 1eLB 0xe64051 floppy_media_sense_: ; 0xf305d LB 0xe6 4031 4052 push bp ; 55 4032 4053 mov bp, sp ; 89 e5 … … 4037 4058 push di ; 57 4038 4059 mov cx, ax ; 89 c1 4039 call 0 2fddh ; e8 b2 ff4060 call 0301ch ; e8 b2 ff 4040 4061 test ax, ax ; 85 c0 4041 jne short 030 34h ; 75 054062 jne short 03073h ; 75 05 4042 4063 xor dx, dx ; 31 d2 4043 jmp near 03 0f8h ; e9 c4 004064 jmp near 03137h ; e9 c4 00 4044 4065 mov ax, strict word 00010h ; b8 10 00 4045 call 016ach ; e8 72e64066 call 016ach ; e8 33 e6 4046 4067 test cx, cx ; 85 c9 4047 jne short 030 45h ; 75 074068 jne short 03084h ; 75 07 4048 4069 mov dl, al ; 88 c2 4049 4070 shr dl, 004h ; c0 ea 04 4050 jmp short 030 4ah ; eb 054071 jmp short 03089h ; eb 05 4051 4072 mov dl, al ; 88 c2 4052 4073 and dl, 00fh ; 80 e2 0f 4053 4074 cmp dl, 001h ; 80 fa 01 4054 jne short 030 58h ; 75 094075 jne short 03097h ; 75 09 4055 4076 xor dl, dl ; 30 d2 4056 4077 mov DH, strict byte 015h ; b6 15 4057 4078 mov bx, strict word 00001h ; bb 01 00 4058 jmp short 030 96h ; eb 3e4079 jmp short 030d5h ; eb 3e 4059 4080 cmp dl, 002h ; 80 fa 02 4060 jne short 030 63h ; 75 064081 jne short 030a2h ; 75 06 4061 4082 xor dl, dl ; 30 d2 4062 4083 mov DH, strict byte 035h ; b6 35 4063 jmp short 030 53h ; eb f04084 jmp short 03092h ; eb f0 4064 4085 cmp dl, 003h ; 80 fa 03 4065 jne short 030 6eh ; 75 064086 jne short 030adh ; 75 06 4066 4087 xor dl, dl ; 30 d2 4067 4088 mov DH, strict byte 017h ; b6 17 4068 jmp short 030 53h ; eb e54089 jmp short 03092h ; eb e5 4069 4090 cmp dl, 004h ; 80 fa 04 4070 jne short 030 79h ; 75 064091 jne short 030b8h ; 75 06 4071 4092 xor dl, dl ; 30 d2 4072 4093 mov DH, strict byte 017h ; b6 17 4073 jmp short 030 53h ; eb da4094 jmp short 03092h ; eb da 4074 4095 cmp dl, 005h ; 80 fa 05 4075 jne short 030 84h ; 75 064096 jne short 030c3h ; 75 06 4076 4097 mov DL, strict byte 0cch ; b2 cc 4077 4098 mov DH, strict byte 0d7h ; b6 d7 4078 jmp short 030 53h ; eb cf4099 jmp short 03092h ; eb cf 4079 4100 cmp dl, 00eh ; 80 fa 0e 4080 je short 030 8eh ; 74 054101 je short 030cdh ; 74 05 4081 4102 cmp dl, 00fh ; 80 fa 0f 4082 jne short 030 90h ; 75 024083 jmp short 030 7eh ; eb ee4103 jne short 030cfh ; 75 02 4104 jmp short 030bdh ; eb ee 4084 4105 xor dl, dl ; 30 d2 4085 4106 xor dh, dh ; 30 f6 … … 4090 4111 mov byte [es:si], dl ; 26 88 14 4091 4112 mov ax, cx ; 89 c8 4092 call 02f 8bh ; e8 e5 fe4113 call 02fcah ; e8 e5 fe 4093 4114 test ax, ax ; 85 c0 4094 jne short 03 0dch ; 75 324115 jne short 0311bh ; 75 32 4095 4116 mov al, dl ; 88 d0 4096 4117 and AL, strict byte 0c0h ; 24 c0 4097 4118 cmp AL, strict byte 080h ; 3c 80 4098 je short 03 0dch ; 74 2a4119 je short 0311bh ; 74 2a 4099 4120 mov al, dl ; 88 d0 4100 4121 and AL, strict byte 0c0h ; 24 c0 4101 4122 cmp AL, strict byte 0c0h ; 3c c0 4102 je short 03 0c9h ; 74 0f4123 je short 03108h ; 74 0f 4103 4124 mov ah, dl ; 88 d4 4104 4125 and ah, 03fh ; 80 e4 3f 4105 4126 cmp AL, strict byte 040h ; 3c 40 4106 je short 03 0d5h ; 74 124127 je short 03114h ; 74 12 4107 4128 test al, al ; 84 c0 4108 je short 03 0ceh ; 74 074109 jmp short 030 96h ; eb cd4129 je short 0310dh ; 74 07 4130 jmp short 030d5h ; eb cd 4110 4131 and dl, 03fh ; 80 e2 3f 4111 jmp short 030 96h ; eb c84132 jmp short 030d5h ; eb c8 4112 4133 mov dl, ah ; 88 e2 4113 4134 or dl, 040h ; 80 ca 40 4114 jmp short 030 96h ; eb c14135 jmp short 030d5h ; eb c1 4115 4136 mov dl, ah ; 88 e2 4116 4137 or dl, 080h ; 80 ca 80 4117 jmp short 030 96h ; eb ba4138 jmp short 030d5h ; eb ba 4118 4139 test cx, cx ; 85 c9 4119 jne short 03 0e5h ; 75 054140 jne short 03124h ; 75 05 4120 4141 mov si, 00090h ; be 90 00 4121 jmp short 03 0e8h ; eb 034142 jmp short 03127h ; eb 03 4122 4143 mov si, 00091h ; be 91 00 4123 4144 mov di, 0008bh ; bf 8b 00 … … 4136 4157 pop bp ; 5d 4137 4158 retn ; c3 4138 floppy_drive_exists_: ; 0xf31 04LB 0x4b4159 floppy_drive_exists_: ; 0xf3143 LB 0x4b 4139 4160 push bp ; 55 4140 4161 mov bp, sp ; 89 e5 … … 4142 4163 mov dx, ax ; 89 c2 4143 4164 mov ax, strict word 00010h ; b8 10 00 4144 call 016ach ; e8 9ce54165 call 016ach ; e8 5d e5 4145 4166 test dx, dx ; 85 d2 4146 jne short 031 19h ; 75 054167 jne short 03158h ; 75 05 4147 4168 shr al, 004h ; c0 e8 04 4148 jmp short 031 1bh ; eb 024169 jmp short 0315ah ; eb 02 4149 4170 and AL, strict byte 00fh ; 24 0f 4150 4171 test al, al ; 84 c0 4151 je short 031 24h ; 74 054172 je short 03163h ; 74 05 4152 4173 mov ax, strict word 00001h ; b8 01 00 4153 jmp short 031 26h ; eb 024174 jmp short 03165h ; eb 02 4154 4175 xor ah, ah ; 30 e4 4155 4176 lea sp, [bp-002h] ; 8d 66 fe … … 4162 4183 add AL, strict byte 003h ; 04 03 4163 4184 add al, byte [bx+di] ; 02 01 4164 add dl, bh ; 00 fa 4165 cmp cl, byte [di+00e31h] ; 3a 8d 31 0e 4166 xor ch, byte [bx] ; 32 2f 4167 xor ch, byte [bx] ; 32 2f 4168 xor ch, byte [bx] ; 32 2f 4169 db 032h, 0e3h 4170 ; xor ah, bl ; 32 e3 4171 xor ax, 037adh ; 35 ad 37 4172 wait ; 9b 4173 cmp ch, bl ; 38 dd 4174 cmp byte [bx+di], dl ; 38 11 4185 add byte [bx+di], bh ; 00 39 4186 db 03bh, 0cch 4187 ; cmp cx, sp ; 3b cc 4188 xor word [di+032h], cx ; 31 4d 32 4189 outsb ; 6e 4190 xor ch, byte [bp+032h] ; 32 6e 32 4191 outsb ; 6e 4192 xor ah, byte [bp+si] ; 32 22 4193 db 036h, 0ech 4194 ; ss in AL, DX ; 36 ec 4195 aaa ; 37 4196 fidivr dword [bx+si] ; da 38 4197 sbb AL, strict byte 039h ; 1c 39 4198 push ax ; 50 4199 cmp sp, ax ; 39 c4 4175 4200 db 039h 4176 test word [bx+di], di ; 85 39 4177 _int13_diskette_function: ; 0xf314f LB 0x9ce 4201 _int13_diskette_function: ; 0xf318e LB 0x9ce 4178 4202 push bp ; 55 4179 4203 mov bp, sp ; 89 e5 … … 4183 4207 shr ax, 008h ; c1 e8 08 4184 4208 cmp ax, strict word 00018h ; 3d 18 00 4185 jnbe short 031 c0h ; 77 5c4209 jnbe short 031ffh ; 77 5c 4186 4210 push CS ; 0e 4187 4211 pop ES ; 07 4188 4212 mov cx, strict word 0000ch ; b9 0c 00 4189 mov di, 031 2ch ; bf 2c314213 mov di, 0316bh ; bf 6b 31 4190 4214 repne scasb ; f2 ae 4191 4215 sal cx, 1 ; d1 e1 4192 4216 mov di, cx ; 89 cf 4193 mov di, word [cs:di+031 37h] ; 2e 8b bd 37314217 mov di, word [cs:di+03176h] ; 2e 8b bd 76 31 4194 4218 mov dx, word [bp+016h] ; 8b 56 16 4195 4219 xor dh, dh ; 30 f6 … … 4202 4226 mov bl, byte [bp+00eh] ; 8a 5e 0e 4203 4227 cmp bl, 001h ; 80 fb 01 4204 jbe short 031 afh ; 76 1a4228 jbe short 031eeh ; 76 1a 4205 4229 mov ax, word [bp+016h] ; 8b 46 16 4206 4230 xor ah, ah ; 30 e4 … … 4211 4235 mov es, ax ; 8e c0 4212 4236 mov byte [es:bx], 001h ; 26 c6 07 01 4213 jmp near 03 9e7h ; e9 38 084237 jmp near 03a26h ; e9 38 08 4214 4238 mov ax, strict word 00010h ; b8 10 00 4215 call 016ach ; e8 f7e44239 call 016ach ; e8 b8 e4 4216 4240 test bl, bl ; 84 db 4217 jne short 03 1c3h ; 75 0a4241 jne short 03202h ; 75 0a 4218 4242 mov dl, al ; 88 c2 4219 4243 shr dl, 004h ; c0 ea 04 4220 jmp short 03 1c8h ; eb 084221 jmp near 03 afah ; e9 37 094244 jmp short 03207h ; eb 08 4245 jmp near 03b39h ; e9 37 09 4222 4246 mov dl, al ; 88 c2 4223 4247 and dl, 00fh ; 80 e2 0f 4224 4248 test dl, dl ; 84 d2 4225 jne short 03 1e6h ; 75 1a4249 jne short 03225h ; 75 1a 4226 4250 mov ax, word [bp+016h] ; 8b 46 16 4227 4251 xor ah, ah ; 30 e4 … … 4232 4256 mov es, ax ; 8e c0 4233 4257 mov byte [es:bx], 080h ; 26 c6 07 80 4234 jmp near 03 9e7h ; e9 01 084258 jmp near 03a26h ; e9 01 08 4235 4259 mov si, strict word 0003eh ; be 3e 00 4236 4260 mov ax, strict word 00040h ; b8 40 00 … … 4245 4269 xor ah, ah ; 30 e4 4246 4270 xor dx, dx ; 31 d2 4247 call 02e 09h ; e8 ff fb4271 call 02e48h ; e8 ff fb 4248 4272 mov sp, bp ; 89 ec 4249 4273 pop bp ; 5d … … 4260 4284 mov word [bp+016h], dx ; 89 56 16 4261 4285 test bl, bl ; 84 db 4262 je short 032 0ah ; 74 de4263 jmp near 03 9e7h ; e9 b8 074286 je short 03249h ; 74 de 4287 jmp near 03a26h ; e9 b8 07 4264 4288 mov bh, byte [bp+016h] ; 8a 7e 16 4265 4289 mov ax, word [bp+014h] ; 8b 46 14 … … 4273 4297 mov bl, byte [bp+00eh] ; 8a 5e 0e 4274 4298 cmp bl, 001h ; 80 fb 01 4275 jnbe short 032 5fh ; 77 0d4299 jnbe short 0329eh ; 77 0d 4276 4300 cmp AL, strict byte 001h ; 3c 01 4277 jnbe short 032 5fh ; 77 094301 jnbe short 0329eh ; 77 09 4278 4302 test bh, bh ; 84 ff 4279 je short 032 5fh ; 74 054303 je short 0329eh ; 74 05 4280 4304 cmp bh, 048h ; 80 ff 48 4281 jbe short 032 92h ; 76 334282 mov bx, 00da 4h ; bb a40d4305 jbe short 032d1h ; 76 33 4306 mov bx, 00da0h ; bb a0 0d 4283 4307 mov cx, ds ; 8c d9 4284 4308 mov ax, strict word 00004h ; b8 04 00 4285 call 01923h ; e8 b9e64309 call 01923h ; e8 7a e6 4286 4310 push 00275h ; 68 75 02 4287 4311 push 0028dh ; 68 8d 02 4288 4312 push strict byte 00004h ; 6a 04 4289 call 01966h ; e8 f1e64313 call 01966h ; e8 b2 e6 4290 4314 add sp, strict byte 00006h ; 83 c4 06 4291 4315 mov ax, word [bp+016h] ; 8b 46 16 … … 4297 4321 mov es, ax ; 8e c0 4298 4322 mov byte [es:bx], 001h ; 26 c6 07 01 4299 jmp near 033 3ch ; e9 aa 004323 jmp near 0337bh ; e9 aa 00 4300 4324 mov al, bl ; 88 d8 4301 4325 xor ah, ah ; 30 e4 4302 call 031 04h ; e8 6b fe4326 call 03143h ; e8 6b fe 4303 4327 test ax, ax ; 85 c0 4304 jne short 032 b7h ; 75 1a4328 jne short 032f6h ; 75 1a 4305 4329 mov ax, word [bp+016h] ; 8b 46 16 4306 4330 xor ah, ah ; 30 e4 … … 4311 4335 mov es, ax ; 8e c0 4312 4336 mov byte [es:bx], 080h ; 26 c6 07 80 4313 jmp near 033 3ch ; e9 85 004337 jmp near 0337bh ; e9 85 00 4314 4338 mov cl, bl ; 88 d9 4315 4339 xor ch, ch ; 30 ed 4316 4340 mov ax, cx ; 89 c8 4317 call 02f 42h ; e8 82 fc4341 call 02f81h ; e8 82 fc 4318 4342 test ax, ax ; 85 c0 4319 jne short 03 2eah ; 75 264343 jne short 03329h ; 75 26 4320 4344 mov ax, cx ; 89 c8 4321 call 030 1eh ; e8 55 fd4345 call 0305dh ; e8 55 fd 4322 4346 test ax, ax ; 85 c0 4323 jne short 03 2eah ; 75 1d4347 jne short 03329h ; 75 1d 4324 4348 mov ax, word [bp+016h] ; 8b 46 16 4325 4349 xor ah, ah ; 30 e4 … … 4331 4355 mov byte [es:bx], 00ch ; 26 c6 07 0c 4332 4356 mov byte [bp+016h], ch ; 88 6e 16 4333 jmp near 03 9e7h ; e9 fd 064357 jmp near 03a26h ; e9 fd 06 4334 4358 mov ax, word [bp+016h] ; 8b 46 16 4335 4359 shr ax, 008h ; c1 e8 08 4336 4360 cmp ax, strict word 00002h ; 3d 02 00 4337 jne short 033 43h ; 75 4e4361 jne short 03382h ; 75 4e 4338 4362 mov dx, word [bp+006h] ; 8b 56 06 4339 4363 shr dx, 00ch ; c1 ea 0c … … 4345 4369 mov word [bp-008h], si ; 89 76 f8 4346 4370 cmp cx, si ; 39 f1 4347 jbe short 033 11h ; 76 024371 jbe short 03350h ; 76 02 4348 4372 db 0feh, 0c4h 4349 4373 ; inc ah ; fe c4 … … 4356 4380 add dx, cx ; 01 ca 4357 4381 cmp dx, word [bp-008h] ; 3b 56 f8 4358 jnc short 033 46h ; 73 214382 jnc short 03385h ; 73 21 4359 4383 mov ax, word [bp+016h] ; 8b 46 16 4360 4384 xor ah, ah ; 30 e4 … … 4366 4390 mov byte [es:bx], 009h ; 26 c6 07 09 4367 4391 mov byte [bp+016h], 000h ; c6 46 16 00 4368 jmp near 03 9e7h ; e9 a4 064369 jmp near 034 93h ; e9 4d 014392 jmp near 03a26h ; e9 a4 06 4393 jmp near 034d2h ; e9 4d 01 4370 4394 mov AL, strict byte 006h ; b0 06 4371 4395 mov dx, strict word 0000ah ; ba 0a 00 … … 4403 4427 xor ch, ch ; 30 ed 4404 4428 mov ax, cx ; 89 c8 4405 call 02 eceh ; e8 3c fb4429 call 02f0dh ; e8 3c fb 4406 4430 mov AL, strict byte 0e6h ; b0 e6 4407 4431 mov dx, 003f5h ; ba f5 03 … … 4435 4459 mov AL, strict byte 0ffh ; b0 ff 4436 4460 out DX, AL ; ee 4437 call 02e 57h ; e8 85 fa4461 call 02e96h ; e8 85 fa 4438 4462 test al, al ; 84 c0 4439 jne short 03 3f5h ; 75 1f4463 jne short 03434h ; 75 1f 4440 4464 mov ax, cx ; 89 c8 4441 call 02e 8fh ; e8 b4 fa4465 call 02eceh ; e8 b4 fa 4442 4466 mov ax, word [bp+016h] ; 8b 46 16 4443 4467 xor ah, ah ; 30 e4 … … 4448 4472 mov es, ax ; 8e c0 4449 4473 mov byte [es:bx], 080h ; 26 c6 07 80 4450 jmp near 03 2e4h ; e9 ef fe4474 jmp near 03323h ; e9 ef fe 4451 4475 mov dx, 003f4h ; ba f4 03 4452 4476 in AL, DX ; ec … … 4455 4479 and AL, strict byte 0c0h ; 24 c0 4456 4480 cmp AL, strict byte 0c0h ; 3c c0 4457 je short 034 0fh ; 74 0e4481 je short 0344eh ; 74 0e 4458 4482 push 00275h ; 68 75 02 4459 4483 push 002a8h ; 68 a8 02 4460 4484 push strict byte 00007h ; 6a 07 4461 call 01966h ; e8 5ae54485 call 01966h ; e8 1b e5 4462 4486 add sp, strict byte 00006h ; 83 c4 06 4463 4487 xor cx, cx ; 31 c9 4464 jmp short 034 18h ; eb 054488 jmp short 03457h ; eb 05 4465 4489 cmp cx, strict byte 00007h ; 83 f9 07 4466 jnl short 034 2eh ; 7d 164490 jnl short 0346dh ; 7d 16 4467 4491 mov dx, 003f5h ; ba f5 03 4468 4492 in AL, DX ; ec … … 4475 4499 mov byte [es:si], al ; 26 88 04 4476 4500 inc cx ; 41 4477 jmp short 034 13h ; eb e54501 jmp short 03452h ; eb e5 4478 4502 mov si, strict word 00042h ; be 42 00 4479 4503 mov ax, strict word 00040h ; b8 40 00 … … 4481 4505 mov al, byte [es:si] ; 26 8a 04 4482 4506 test AL, strict byte 0c0h ; a8 c0 4483 je short 034 5eh ; 74 214507 je short 0349dh ; 74 21 4484 4508 mov al, bl ; 88 d8 4485 4509 xor ah, ah ; 30 e4 4486 call 02e 8fh ; e8 4b fa4510 call 02eceh ; e8 4b fa 4487 4511 mov ax, word [bp+016h] ; 8b 46 16 4488 4512 xor ah, ah ; 30 e4 … … 4493 4517 mov es, ax ; 8e c0 4494 4518 mov byte [es:bx], 020h ; 26 c6 07 20 4495 jmp near 033 3ch ; e9 de fe4519 jmp near 0337bh ; e9 de fe 4496 4520 mov al, bh ; 88 f8 4497 4521 xor ah, ah ; 30 e4 … … 4514 4538 mov al, bl ; 88 d8 4515 4539 xor ah, ah ; 30 e4 4516 call 02e 09h ; e8 81 f94540 call 02e48h ; e8 81 f9 4517 4541 mov byte [bp+017h], 000h ; c6 46 17 00 4518 4542 and byte [bp+01ch], 0feh ; 80 66 1c fe 4519 jmp near 032 0ah ; e9 77 fd4543 jmp near 03249h ; e9 77 fd 4520 4544 mov ax, word [bp+016h] ; 8b 46 16 4521 4545 shr ax, 008h ; c1 e8 08 4522 4546 cmp ax, strict word 00003h ; 3d 03 00 4523 je short 034 a1h ; 74 034524 jmp near 03 5cch ; e9 2b 014547 je short 034e0h ; 74 03 4548 jmp near 0360bh ; e9 2b 01 4525 4549 mov cx, word [bp+006h] ; 8b 4e 06 4526 4550 shr cx, 00ch ; c1 e9 0c … … 4532 4556 mov word [bp-008h], si ; 89 76 f8 4533 4557 cmp dx, si ; 39 f2 4534 jbe short 034 bdh ; 76 024558 jbe short 034fch ; 76 02 4535 4559 db 0feh, 0c4h 4536 4560 ; inc ah ; fe c4 … … 4543 4567 add dx, cx ; 01 ca 4544 4568 cmp dx, word [bp-008h] ; 3b 56 f8 4545 jnc short 03 4d4h ; 73 034546 jmp near 033 25h ; e9 51 fe4569 jnc short 03513h ; 73 03 4570 jmp near 03364h ; e9 51 fe 4547 4571 mov AL, strict byte 006h ; b0 06 4548 4572 mov dx, strict word 0000ah ; ba 0a 00 … … 4580 4604 xor ch, ch ; 30 ed 4581 4605 mov ax, cx ; 89 c8 4582 call 02 eceh ; e8 ae f94606 call 02f0dh ; e8 ae f9 4583 4607 mov AL, strict byte 0c5h ; b0 c5 4584 4608 mov dx, 003f5h ; ba f5 03 … … 4612 4636 mov AL, strict byte 0ffh ; b0 ff 4613 4637 out DX, AL ; ee 4614 call 02e 57h ; e8 f7 f84638 call 02e96h ; e8 f7 f8 4615 4639 test al, al ; 84 c0 4616 jne short 035 67h ; 75 034617 jmp near 03 3d6h ; e9 6f fe4640 jne short 035a6h ; 75 03 4641 jmp near 03415h ; e9 6f fe 4618 4642 mov dx, 003f4h ; ba f4 03 4619 4643 in AL, DX ; ec … … 4622 4646 and AL, strict byte 0c0h ; 24 c0 4623 4647 cmp AL, strict byte 0c0h ; 3c c0 4624 je short 035 81h ; 74 0e4648 je short 035c0h ; 74 0e 4625 4649 push 00275h ; 68 75 02 4626 4650 push 002a8h ; 68 a8 02 4627 4651 push strict byte 00007h ; 6a 07 4628 call 01966h ; e8 e8e34652 call 01966h ; e8 a9 e3 4629 4653 add sp, strict byte 00006h ; 83 c4 06 4630 4654 xor cx, cx ; 31 c9 4631 jmp short 035 8ah ; eb 054655 jmp short 035c9h ; eb 05 4632 4656 cmp cx, strict byte 00007h ; 83 f9 07 4633 jnl short 035 a0h ; 7d 164657 jnl short 035dfh ; 7d 16 4634 4658 mov dx, 003f5h ; ba f5 03 4635 4659 in AL, DX ; ec … … 4642 4666 mov byte [es:si], al ; 26 88 04 4643 4667 inc cx ; 41 4644 jmp short 035 85h ; eb e54668 jmp short 035c4h ; eb e5 4645 4669 mov si, strict word 00042h ; be 42 00 4646 4670 mov ax, strict word 00040h ; b8 40 00 … … 4648 4672 mov al, byte [es:si] ; 26 8a 04 4649 4673 test AL, strict byte 0c0h ; a8 c0 4650 jne short 035 b2h ; 75 034651 jmp near 034 7ch ; e9 ca fe4674 jne short 035f1h ; 75 03 4675 jmp near 034bbh ; e9 ca fe 4652 4676 mov bx, strict word 00043h ; bb 43 00 4653 4677 mov al, byte [es:bx] ; 26 8a 07 4654 4678 test AL, strict byte 002h ; a8 02 4655 je short 03 5c4h ; 74 084679 je short 03603h ; 74 08 4656 4680 mov word [bp+016h], 00300h ; c7 46 16 00 03 4657 jmp near 03 9e7h ; e9 23 044681 jmp near 03a26h ; e9 23 04 4658 4682 mov word [bp+016h], 00100h ; c7 46 16 00 01 4659 jmp near 03 9e7h ; e9 1b 044683 jmp near 03a26h ; e9 1b 04 4660 4684 mov dl, byte [bp-004h] ; 8a 56 fc 4661 4685 xor dh, dh ; 30 f6 4662 4686 mov al, bl ; 88 d8 4663 4687 xor ah, ah ; 30 e4 4664 call 02e 09h ; e8 31 f84688 call 02e48h ; e8 31 f8 4665 4689 and byte [bp+01ch], 0feh ; 80 66 1c fe 4666 4690 mov byte [bp+017h], 000h ; c6 46 17 00 4667 jmp near 032 0ah ; e9 27 fc4691 jmp near 03249h ; e9 27 fc 4668 4692 mov bh, byte [bp+016h] ; 8a 7e 16 4669 4693 mov ax, word [bp+014h] ; 8b 46 14 … … 4675 4699 mov bl, byte [bp+00eh] ; 8a 5e 0e 4676 4700 cmp bl, 001h ; 80 fb 01 4677 jnbe short 036 12h ; 77 124701 jnbe short 03651h ; 77 12 4678 4702 cmp dl, 001h ; 80 fa 01 4679 jnbe short 036 12h ; 77 0d4703 jnbe short 03651h ; 77 0d 4680 4704 cmp AL, strict byte 04fh ; 3c 4f 4681 jnbe short 036 12h ; 77 094705 jnbe short 03651h ; 77 09 4682 4706 test bh, bh ; 84 ff 4683 je short 036 12h ; 74 054707 je short 03651h ; 74 05 4684 4708 cmp bh, 012h ; 80 ff 12 4685 jbe short 036 2dh ; 76 1b4709 jbe short 0366ch ; 76 1b 4686 4710 mov ax, word [bp+016h] ; 8b 46 16 4687 4711 xor ah, ah ; 30 e4 … … 4695 4719 mov al, bl ; 88 d8 4696 4720 xor ah, ah ; 30 e4 4697 call 031 04h ; e8 d0 fa4721 call 03143h ; e8 d0 fa 4698 4722 test ax, ax ; 85 c0 4699 jne short 036 52h ; 75 1a4723 jne short 03691h ; 75 1a 4700 4724 mov ax, word [bp+016h] ; 8b 46 16 4701 4725 xor ah, ah ; 30 e4 … … 4706 4730 mov es, ax ; 8e c0 4707 4731 mov byte [es:bx], 080h ; 26 c6 07 80 4708 jmp near 03 9e7h ; e9 95 034732 jmp near 03a26h ; e9 95 03 4709 4733 mov cl, bl ; 88 d9 4710 4734 xor ch, ch ; 30 ed 4711 4735 mov ax, cx ; 89 c8 4712 call 02f 42h ; e8 e7 f84736 call 02f81h ; e8 e7 f8 4713 4737 test ax, ax ; 85 c0 4714 jne short 036 6bh ; 75 0c4738 jne short 036aah ; 75 0c 4715 4739 mov ax, cx ; 89 c8 4716 call 030 1eh ; e8 ba f94740 call 0305dh ; e8 ba f9 4717 4741 test ax, ax ; 85 c0 4718 jne short 036 6bh ; 75 034719 jmp near 03 2cdh ; e9 62 fc4742 jne short 036aah ; 75 03 4743 jmp near 0330ch ; e9 62 fc 4720 4744 mov cx, word [bp+006h] ; 8b 4e 06 4721 4745 shr cx, 00ch ; c1 e9 0c … … 4727 4751 mov word [bp-008h], si ; 89 76 f8 4728 4752 cmp dx, si ; 39 f2 4729 jbe short 036 87h ; 76 024753 jbe short 036c6h ; 76 02 4730 4754 db 0feh, 0c4h 4731 4755 ; inc ah ; fe c4 … … 4738 4762 add dx, cx ; 01 ca 4739 4763 cmp dx, word [bp-008h] ; 3b 56 f8 4740 jnc short 036 9eh ; 73 034741 jmp near 033 25h ; e9 87 fc4764 jnc short 036ddh ; 73 03 4765 jmp near 03364h ; e9 87 fc 4742 4766 mov AL, strict byte 006h ; b0 06 4743 4767 mov dx, strict word 0000ah ; ba 0a 00 … … 4775 4799 xor ch, ch ; 30 ed 4776 4800 mov ax, cx ; 89 c8 4777 call 02 eceh ; e8 e4 f74801 call 02f0dh ; e8 e4 f7 4778 4802 mov AL, strict byte 00fh ; b0 0f 4779 4803 mov dx, 003f5h ; ba f5 03 … … 4803 4827 mov AL, strict byte 0f6h ; b0 f6 4804 4828 out DX, AL ; ee 4805 call 02e 57h ; e8 35 f74829 call 02e96h ; e8 35 f7 4806 4830 test al, al ; 84 c0 4807 jne short 037 2eh ; 75 084831 jne short 0376dh ; 75 08 4808 4832 mov ax, cx ; 89 c8 4809 call 02e 8fh ; e8 64 f74810 jmp near 036 38h ; e9 0a ff4833 call 02eceh ; e8 64 f7 4834 jmp near 03677h ; e9 0a ff 4811 4835 mov dx, 003f4h ; ba f4 03 4812 4836 in AL, DX ; ec … … 4815 4839 and AL, strict byte 0c0h ; 24 c0 4816 4840 cmp AL, strict byte 0c0h ; 3c c0 4817 je short 037 48h ; 74 0e4841 je short 03787h ; 74 0e 4818 4842 push 00275h ; 68 75 02 4819 4843 push 002a8h ; 68 a8 02 4820 4844 push strict byte 00007h ; 6a 07 4821 call 01966h ; e8 21 e24845 call 01966h ; e8 e2 e1 4822 4846 add sp, strict byte 00006h ; 83 c4 06 4823 4847 xor cx, cx ; 31 c9 4824 jmp short 037 51h ; eb 054848 jmp short 03790h ; eb 05 4825 4849 cmp cx, strict byte 00007h ; 83 f9 07 4826 jnl short 037 67h ; 7d 164850 jnl short 037a6h ; 7d 16 4827 4851 mov dx, 003f5h ; ba f5 03 4828 4852 in AL, DX ; ec … … 4835 4859 mov byte [es:si], al ; 26 88 04 4836 4860 inc cx ; 41 4837 jmp short 037 4ch ; eb e54861 jmp short 0378bh ; eb e5 4838 4862 mov si, strict word 00042h ; be 42 00 4839 4863 mov ax, strict word 00040h ; b8 40 00 … … 4841 4865 mov al, byte [es:si] ; 26 8a 04 4842 4866 test AL, strict byte 0c0h ; a8 c0 4843 je short 037 91h ; 74 1b4867 je short 037d0h ; 74 1b 4844 4868 mov si, strict word 00043h ; be 43 00 4845 4869 mov al, byte [es:si] ; 26 8a 04 4846 4870 test AL, strict byte 002h ; a8 02 4847 je short 037 83h ; 74 034848 jmp near 035 bch ; e9 39 fe4871 je short 037c2h ; 74 03 4872 jmp near 035fbh ; e9 39 fe 4849 4873 push 00275h ; 68 75 02 4850 4874 push 002bch ; 68 bc 02 4851 4875 push strict byte 00007h ; 6a 07 4852 call 01966h ; e8 d8e14876 call 01966h ; e8 99 e1 4853 4877 add sp, strict byte 00006h ; 83 c4 06 4854 4878 mov byte [bp+017h], 000h ; c6 46 17 00 … … 4860 4884 xor ah, ah ; 30 e4 4861 4885 xor dx, dx ; 31 d2 4862 call 02e 09h ; e8 5f f64863 jmp near 034 8ch ; e9 df fc4886 call 02e48h ; e8 5f f6 4887 jmp near 034cbh ; e9 df fc 4864 4888 mov bl, ah ; 88 e3 4865 4889 cmp ah, 001h ; 80 fc 01 4866 jbe short 03 7d2h ; 76 1e4890 jbe short 03811h ; 76 1e 4867 4891 xor ax, ax ; 31 c0 4868 4892 mov word [bp+016h], ax ; 89 46 16 … … 4875 4899 xor ah, ah ; 30 e4 4876 4900 mov word [bp+012h], ax ; 89 46 12 4877 jmp near 03 8f1h ; e9 1f 014901 jmp near 03930h ; e9 1f 01 4878 4902 mov ax, strict word 00010h ; b8 10 00 4879 call 016ach ; e8 d4de4903 call 016ach ; e8 95 de 4880 4904 mov dl, al ; 88 c2 4881 4905 xor bh, bh ; 30 ff 4882 4906 test AL, strict byte 0f0h ; a8 f0 4883 je short 03 7e2h ; 74 024907 je short 03821h ; 74 02 4884 4908 mov BH, strict byte 001h ; b7 01 4885 4909 test dl, 00fh ; f6 c2 0f 4886 je short 03 7e9h ; 74 024910 je short 03828h ; 74 02 4887 4911 db 0feh, 0c7h 4888 4912 ; inc bh ; fe c7 4889 4913 test bl, bl ; 84 db 4890 jne short 03 7f2h ; 75 054914 jne short 03831h ; 75 05 4891 4915 shr dl, 004h ; c0 ea 04 4892 jmp short 03 7f5h ; eb 034916 jmp short 03834h ; eb 03 4893 4917 and dl, 00fh ; 80 e2 0f 4894 4918 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4906 4930 mov word [bp+012h], ax ; 89 46 12 4907 4931 cmp dl, 003h ; 80 fa 03 4908 jc short 038 31h ; 72 154909 jbe short 038 58h ; 76 3a4932 jc short 03870h ; 72 15 4933 jbe short 03897h ; 76 3a 4910 4934 cmp dl, 005h ; 80 fa 05 4911 jc short 038 5fh ; 72 3c4912 jbe short 038 66h ; 76 414935 jc short 0389eh ; 72 3c 4936 jbe short 038a5h ; 76 41 4913 4937 cmp dl, 00fh ; 80 fa 0f 4914 je short 038 74h ; 74 4a4938 je short 038b3h ; 74 4a 4915 4939 cmp dl, 00eh ; 80 fa 0e 4916 je short 038 6dh ; 74 3e4917 jmp short 038 7bh ; eb 4a4940 je short 038ach ; 74 3e 4941 jmp short 038bah ; eb 4a 4918 4942 cmp dl, 002h ; 80 fa 02 4919 je short 038 51h ; 74 1b4943 je short 03890h ; 74 1b 4920 4944 cmp dl, 001h ; 80 fa 01 4921 je short 038 4ah ; 74 0f4945 je short 03889h ; 74 0f 4922 4946 test dl, dl ; 84 d2 4923 jne short 038 7bh ; 75 3c4947 jne short 038bah ; 75 3c 4924 4948 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4925 4949 mov byte [bp+013h], 000h ; c6 46 13 00 4926 jmp short 038 89h ; eb 3f4950 jmp short 038c8h ; eb 3f 4927 4951 mov word [bp+014h], 02709h ; c7 46 14 09 27 4928 jmp short 038 89h ; eb 384952 jmp short 038c8h ; eb 38 4929 4953 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4930 jmp short 038 89h ; eb 314954 jmp short 038c8h ; eb 31 4931 4955 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4932 jmp short 038 89h ; eb 2a4956 jmp short 038c8h ; eb 2a 4933 4957 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4934 jmp short 038 89h ; eb 234958 jmp short 038c8h ; eb 23 4935 4959 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4936 jmp short 038 89h ; eb 1c4960 jmp short 038c8h ; eb 1c 4937 4961 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4938 jmp short 038 89h ; eb 154962 jmp short 038c8h ; eb 15 4939 4963 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4940 jmp short 038 89h ; eb 0e4964 jmp short 038c8h ; eb 0e 4941 4965 push 00275h ; 68 75 02 4942 4966 push 002cdh ; 68 cd 02 4943 4967 push strict byte 00007h ; 6a 07 4944 call 01966h ; e8 e0e04968 call 01966h ; e8 a1 e0 4945 4969 add sp, strict byte 00006h ; 83 c4 06 4946 4970 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4947 4971 mov al, dl ; 88 d0 4948 4972 xor ah, ah ; 30 e4 4949 call 03b 1dh ; e8 88 024973 call 03b5ch ; e8 88 02 4950 4974 mov word [bp+008h], ax ; 89 46 08 4951 jmp near 034 8ch ; e9 f1 fb4975 jmp near 034cbh ; e9 f1 fb 4952 4976 mov bl, ah ; 88 e3 4953 4977 cmp ah, 001h ; 80 fc 01 4954 jbe short 038 a7h ; 76 054978 jbe short 038e6h ; 76 05 4955 4979 mov word [bp+016h], dx ; 89 56 16 4956 jmp short 03 8f1h ; eb 4a4980 jmp short 03930h ; eb 4a 4957 4981 mov ax, strict word 00010h ; b8 10 00 4958 call 016ach ; e8 ffdd4982 call 016ach ; e8 c0 dd 4959 4983 test bl, bl ; 84 db 4960 jne short 038 b8h ; 75 074984 jne short 038f7h ; 75 07 4961 4985 mov dl, al ; 88 c2 4962 4986 shr dl, 004h ; c0 ea 04 4963 jmp short 038 bdh ; eb 054987 jmp short 038fch ; eb 05 4964 4988 mov dl, al ; 88 c2 4965 4989 and dl, 00fh ; 80 e2 0f … … 4968 4992 xor ah, ah ; 30 e4 4969 4993 test dl, dl ; 84 d2 4970 je short 03 8d7h ; 74 0d4994 je short 03916h ; 74 0d 4971 4995 cmp dl, 001h ; 80 fa 01 4972 jbe short 03 8d4h ; 76 054996 jbe short 03913h ; 76 05 4973 4997 or ah, 002h ; 80 cc 02 4974 jmp short 03 8d7h ; eb 034998 jmp short 03916h ; eb 03 4975 4999 or ah, 001h ; 80 cc 01 4976 5000 mov word [bp+016h], ax ; 89 46 16 4977 jmp near 032 0ah ; e9 2d f95001 jmp near 03249h ; e9 2d f9 4978 5002 cmp ah, 001h ; 80 fc 01 4979 jbe short 03 8f7h ; 76 155003 jbe short 03936h ; 76 15 4980 5004 mov word [bp+016h], si ; 89 76 16 4981 5005 mov bx, strict word 00041h ; bb 41 00 … … 4984 5008 mov byte [es:bx], 001h ; 26 c6 07 01 4985 5009 mov word [bp+01ch], cx ; 89 4e 1c 4986 jmp near 032 0ah ; e9 13 f95010 jmp near 03249h ; e9 13 f9 4987 5011 mov ax, word [bp+016h] ; 8b 46 16 4988 5012 xor ah, ah ; 30 e4 … … 4993 5017 mov es, ax ; 8e c0 4994 5018 mov byte [es:bx], 006h ; 26 c6 07 06 4995 jmp near 03 9e7h ; e9 d6 005019 jmp near 03a26h ; e9 d6 00 4996 5020 mov bl, ah ; 88 e3 4997 5021 mov dl, byte [bp+016h] ; 8a 56 16 4998 5022 cmp ah, 001h ; 80 fc 01 4999 jnbe short 03 8e2h ; 77 c75023 jnbe short 03921h ; 77 c7 5000 5024 mov al, bl ; 88 d8 5001 5025 xor ah, ah ; 30 e4 5002 call 031 04h ; e8 e2 f75026 call 03143h ; e8 e2 f7 5003 5027 test ax, ax ; 85 c0 5004 jne short 039 29h ; 75 035005 jmp near 036 38h ; e9 0f fd5028 jne short 03968h ; 75 03 5029 jmp near 03677h ; e9 0f fd 5006 5030 test bl, bl ; 84 db 5007 je short 039 32h ; 74 055031 je short 03971h ; 74 05 5008 5032 mov bx, 00091h ; bb 91 00 5009 jmp short 039 35h ; eb 035033 jmp short 03974h ; eb 03 5010 5034 mov bx, 00090h ; bb 90 00 5011 5035 mov word [bp-008h], bx ; 89 5e f8 … … 5015 5039 and bl, 00fh ; 80 e3 0f 5016 5040 cmp dl, 002h ; 80 fa 02 5017 jc short 039 57h ; 72 0f5018 jbe short 039 64h ; 76 1a5041 jc short 03996h ; 72 0f 5042 jbe short 039a3h ; 76 1a 5019 5043 cmp dl, 004h ; 80 fa 04 5020 je short 039 5fh ; 74 105044 je short 0399eh ; 74 10 5021 5045 cmp dl, 003h ; 80 fa 03 5022 je short 039 69h ; 74 155023 jmp near 031 95h ; e9 3e f85046 je short 039a8h ; 74 15 5047 jmp near 031d4h ; e9 3e f8 5024 5048 cmp dl, 001h ; 80 fa 01 5025 je short 039 5fh ; 74 035026 jmp near 031 95h ; e9 36 f85049 je short 0399eh ; 74 03 5050 jmp near 031d4h ; e9 36 f8 5027 5051 or bl, 090h ; 80 cb 90 5028 jmp short 039 6ch ; eb 085052 jmp short 039abh ; eb 08 5029 5053 or bl, 070h ; 80 cb 70 5030 jmp short 039 6ch ; eb 035054 jmp short 039abh ; eb 03 5031 5055 or bl, 010h ; 80 cb 10 5032 5056 mov ax, strict word 00040h ; b8 40 00 … … 5038 5062 mov bx, strict word 00041h ; bb 41 00 5039 5063 mov byte [es:bx], al ; 26 88 07 5040 jmp near 034 8ch ; e9 07 fb5064 jmp near 034cbh ; e9 07 fb 5041 5065 mov bl, ah ; 88 e3 5042 5066 mov dl, byte [bp+014h] ; 8a 56 14 … … 5051 5075 mov byte [bp-004h], dl ; 88 56 fc 5052 5076 cmp ah, 001h ; 80 fc 01 5053 jbe short 039 ach ; 76 035054 jmp near 03 8e2h ; e9 36 ff5077 jbe short 039ebh ; 76 03 5078 jmp near 03921h ; e9 36 ff 5055 5079 mov al, bl ; 88 d8 5056 5080 xor ah, ah ; 30 e4 5057 call 031 04h ; e8 51 f75081 call 03143h ; e8 51 f7 5058 5082 test ax, ax ; 85 c0 5059 jne short 039 bah ; 75 035060 jmp near 036 38h ; e9 7e fc5083 jne short 039f9h ; 75 03 5084 jmp near 03677h ; e9 7e fc 5061 5085 mov cl, bl ; 88 d9 5062 5086 xor ch, ch ; 30 ed 5063 5087 mov ax, cx ; 89 c8 5064 call 02f 42h ; e8 7f f55088 call 02f81h ; e8 7f f5 5065 5089 test ax, ax ; 85 c0 5066 jne short 03 9eeh ; 75 275090 jne short 03a2dh ; 75 27 5067 5091 mov ax, cx ; 89 c8 5068 call 030 1eh ; e8 52 f65092 call 0305dh ; e8 52 f6 5069 5093 test ax, ax ; 85 c0 5070 jne short 03 9eeh ; 75 1e5094 jne short 03a2dh ; 75 1e 5071 5095 mov ax, word [bp+016h] ; 8b 46 16 5072 5096 xor ah, ah ; 30 e4 … … 5078 5102 mov byte [es:bx], 00ch ; 26 c6 07 0c 5079 5103 or byte [bp+01ch], 001h ; 80 4e 1c 01 5080 jmp near 032 0ah ; e9 1c f85104 jmp near 03249h ; e9 1c f8 5081 5105 mov ax, strict word 00010h ; b8 10 00 5082 call 016ach ; e8 b8dc5106 call 016ach ; e8 79 dc 5083 5107 test bl, bl ; 84 db 5084 jne short 03 9ffh ; 75 075108 jne short 03a3eh ; 75 07 5085 5109 mov dl, al ; 88 c2 5086 5110 shr dl, 004h ; c0 ea 04 5087 jmp short 03a 04h ; eb 055111 jmp short 03a43h ; eb 05 5088 5112 mov dl, al ; 88 c2 5089 5113 and dl, 00fh ; 80 e2 0f 5090 5114 test bl, bl ; 84 db 5091 je short 03a 0dh ; 74 055115 je short 03a4ch ; 74 05 5092 5116 mov si, 00091h ; be 91 00 5093 jmp short 03a 10h ; eb 035117 jmp short 03a4fh ; eb 03 5094 5118 mov si, 00090h ; be 90 00 5095 5119 mov word [bp-008h], si ; 89 76 f8 … … 5099 5123 and bl, 00fh ; 80 e3 0f 5100 5124 cmp dl, 003h ; 80 fa 03 5101 jc short 03a 3eh ; 72 1b5125 jc short 03a7dh ; 72 1b 5102 5126 mov al, bl ; 88 d8 5103 5127 or AL, strict byte 090h ; 0c 90 5104 5128 cmp dl, 003h ; 80 fa 03 5105 jbe short 03a 7ah ; 76 4e5129 jbe short 03ab9h ; 76 4e 5106 5130 mov ah, bl ; 88 dc 5107 5131 or ah, 010h ; 80 cc 10 5108 5132 cmp dl, 005h ; 80 fa 05 5109 je short 03a 78h ; 74 425133 je short 03ab7h ; 74 42 5110 5134 cmp dl, 004h ; 80 fa 04 5111 je short 03a 87h ; 74 4c5112 jmp near 03a bfh ; e9 81 005135 je short 03ac6h ; 74 4c 5136 jmp near 03afeh ; e9 81 00 5113 5137 cmp dl, 002h ; 80 fa 02 5114 je short 03a 58h ; 74 155138 je short 03a97h ; 74 15 5115 5139 cmp dl, 001h ; 80 fa 01 5116 jne short 03a 8bh ; 75 435140 jne short 03acah ; 75 43 5117 5141 cmp byte [bp-004h], 027h ; 80 7e fc 27 5118 jne short 03a 8bh ; 75 3d5142 jne short 03acah ; 75 3d 5119 5143 cmp bh, 009h ; 80 ff 09 5120 jne short 03a a1h ; 75 4e5144 jne short 03ae0h ; 75 4e 5121 5145 or bl, 090h ; 80 cb 90 5122 jmp short 03a a1h ; eb 495146 jmp short 03ae0h ; eb 49 5123 5147 cmp byte [bp-004h], 027h ; 80 7e fc 27 5124 jne short 03a 68h ; 75 0a5148 jne short 03aa7h ; 75 0a 5125 5149 cmp bh, 009h ; 80 ff 09 5126 jne short 03a 68h ; 75 055150 jne short 03aa7h ; 75 05 5127 5151 or bl, 070h ; 80 cb 70 5128 jmp short 03a a1h ; eb 395152 jmp short 03ae0h ; eb 39 5129 5153 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5130 jne short 03a bfh ; 75 515154 jne short 03afeh ; 75 51 5131 5155 cmp bh, 00fh ; 80 ff 0f 5132 jne short 03a bfh ; 75 4c5156 jne short 03afeh ; 75 4c 5133 5157 or bl, 010h ; 80 cb 10 5134 jmp short 03a bfh ; eb 475135 jmp short 03a a3h ; eb 295158 jmp short 03afeh ; eb 47 5159 jmp short 03ae2h ; eb 29 5136 5160 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5137 jne short 03a bfh ; 75 3f5161 jne short 03afeh ; 75 3f 5138 5162 cmp bh, 009h ; 80 ff 09 5139 je short 03a 89h ; 74 045140 jmp short 03a bfh ; eb 385141 jmp short 03a 8dh ; eb 045163 je short 03ac8h ; 74 04 5164 jmp short 03afeh ; eb 38 5165 jmp short 03acch ; eb 04 5142 5166 mov bl, al ; 88 c3 5143 jmp short 03a bfh ; eb 325167 jmp short 03afeh ; eb 32 5144 5168 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5145 jne short 03a bfh ; 75 2c5169 jne short 03afeh ; 75 2c 5146 5170 cmp bh, 009h ; 80 ff 09 5147 jne short 03a 9ah ; 75 025148 jmp short 03a 89h ; eb ef5171 jne short 03ad9h ; 75 02 5172 jmp short 03ac8h ; eb ef 5149 5173 cmp bh, 012h ; 80 ff 12 5150 jne short 03a bfh ; 75 205174 jne short 03afeh ; 75 20 5151 5175 mov bl, ah ; 88 e3 5152 jmp short 03a bfh ; eb 1c5176 jmp short 03afeh ; eb 1c 5153 5177 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5154 jne short 03a bfh ; 75 165178 jne short 03afeh ; 75 16 5155 5179 cmp bh, 009h ; 80 ff 09 5156 jne short 03a b0h ; 75 025157 jmp short 03a 89h ; eb d95180 jne short 03aefh ; 75 02 5181 jmp short 03ac8h ; eb d9 5158 5182 cmp bh, 012h ; 80 ff 12 5159 jne short 03a b7h ; 75 025160 jmp short 03a 9fh ; eb e85183 jne short 03af6h ; 75 02 5184 jmp short 03adeh ; eb e8 5161 5185 cmp bh, 024h ; 80 ff 24 5162 jne short 03a bfh ; 75 035186 jne short 03afeh ; 75 03 5163 5187 or bl, 0d0h ; 80 cb d0 5164 5188 mov al, bl ; 88 d8 … … 5166 5190 sar ax, 004h ; c1 f8 04 5167 5191 test AL, strict byte 001h ; a8 01 5168 jne short 03 acdh ; 75 035169 jmp near 03 9d0h ; e9 03 ff5192 jne short 03b0ch ; 75 03 5193 jmp near 03a0fh ; e9 03 ff 5170 5194 mov ax, strict word 00040h ; b8 40 00 5171 5195 mov es, ax ; 8e c0 … … 5175 5199 mov al, dl ; 88 d0 5176 5200 xor ah, ah ; 30 e4 5177 call 03b 1dh ; e8 39 005201 call 03b5ch ; e8 39 00 5178 5202 mov word [bp+008h], ax ; 89 46 08 5179 5203 mov byte [bp+017h], 000h ; c6 46 17 00 … … 5182 5206 mov es, ax ; 8e c0 5183 5207 mov byte [es:bx], 000h ; 26 c6 07 00 5184 jmp near 034 8ch ; e9 92 f95185 mov bx, 00da 4h ; bb a40d5208 jmp near 034cbh ; e9 92 f9 5209 mov bx, 00da0h ; bb a0 0d 5186 5210 mov cx, ds ; 8c d9 5187 5211 mov ax, strict word 00004h ; b8 04 00 5188 call 01923h ; e8 1e de5212 call 01923h ; e8 df dd 5189 5213 mov ax, word [bp+016h] ; 8b 46 16 5190 5214 shr ax, 008h ; c1 e8 08 … … 5193 5217 push 002e2h ; 68 e2 02 5194 5218 push strict byte 00004h ; 6a 04 5195 call 01966h ; e8 4fde5219 call 01966h ; e8 10 de 5196 5220 add sp, strict byte 00008h ; 83 c4 08 5197 jmp near 031 95h ; e9 78 f65198 get_floppy_dpt_: ; 0xf3b 1dLB 0x305221 jmp near 031d4h ; e9 78 f6 5222 get_floppy_dpt_: ; 0xf3b5c LB 0x30 5199 5223 push bx ; 53 5200 5224 push dx ; 52 … … 5203 5227 mov dl, al ; 88 c2 5204 5228 xor ax, ax ; 31 c0 5205 jmp short 03b 2eh ; eb 065229 jmp short 03b6dh ; eb 06 5206 5230 inc ax ; 40 5207 5231 cmp ax, strict word 00007h ; 3d 07 00 5208 jnc short 03b 46h ; 73 185232 jnc short 03b85h ; 73 18 5209 5233 mov bx, ax ; 89 c3 5210 5234 add bx, ax ; 01 c3 5211 5235 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5212 jne short 03b 28h ; 75 f05236 jne short 03b67h ; 75 f0 5213 5237 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5214 5238 xor ah, ah ; 30 e4 5215 5239 imul ax, ax, strict byte 0000dh ; 6b c0 0d 5216 5240 add ax, strict word 00000h ; 05 00 00 5217 jmp short 03b 49h ; eb 035241 jmp short 03b88h ; eb 03 5218 5242 mov ax, strict word 00041h ; b8 41 00 5219 5243 pop bp ; 5d … … 5221 5245 pop bx ; 5b 5222 5246 retn ; c3 5223 dummy_soft_reset_: ; 0xf3b 4dLB 0x75247 dummy_soft_reset_: ; 0xf3b8c LB 0x7 5224 5248 push bp ; 55 5225 5249 mov bp, sp ; 89 e5 … … 5227 5251 pop bp ; 5d 5228 5252 retn ; c3 5229 _cdemu_init: ; 0xf3b 54LB 0x185253 _cdemu_init: ; 0xf3b93 LB 0x18 5230 5254 push bp ; 55 5231 5255 mov bp, sp ; 89 e5 5232 5256 mov dx, strict word 0000eh ; ba 0e 00 5233 5257 mov ax, strict word 00040h ; b8 40 00 5234 call 0166ch ; e8 0c db5258 call 0166ch ; e8 cd da 5235 5259 xor bx, bx ; 31 db 5236 5260 mov dx, 00366h ; ba 66 03 5237 call 0165eh ; e8 f6da5261 call 0165eh ; e8 b7 da 5238 5262 mov sp, bp ; 89 ec 5239 5263 pop bp ; 5d 5240 5264 retn ; c3 5241 _cdemu_isactive: ; 0xf3b 6cLB 0x165265 _cdemu_isactive: ; 0xf3bab LB 0x16 5242 5266 push bp ; 55 5243 5267 mov bp, sp ; 89 e5 5244 5268 mov dx, strict word 0000eh ; ba 0e 00 5245 5269 mov ax, strict word 00040h ; b8 40 00 5246 call 0166ch ; e8 f4da5270 call 0166ch ; e8 b5 da 5247 5271 mov dx, 00366h ; ba 66 03 5248 call 01650h ; e8 d2da5272 call 01650h ; e8 93 da 5249 5273 mov sp, bp ; 89 ec 5250 5274 pop bp ; 5d 5251 5275 retn ; c3 5252 _cdemu_emulated_drive: ; 0xf3b 82LB 0x165276 _cdemu_emulated_drive: ; 0xf3bc1 LB 0x16 5253 5277 push bp ; 55 5254 5278 mov bp, sp ; 89 e5 5255 5279 mov dx, strict word 0000eh ; ba 0e 00 5256 5280 mov ax, strict word 00040h ; b8 40 00 5257 call 0166ch ; e8 deda5281 call 0166ch ; e8 9f da 5258 5282 mov dx, 00368h ; ba 68 03 5259 call 01650h ; e8 bcda5283 call 01650h ; e8 7d da 5260 5284 mov sp, bp ; 89 ec 5261 5285 pop bp ; 5d 5262 5286 retn ; c3 5263 _int13_eltorito: ; 0xf3b 98LB 0x1905287 _int13_eltorito: ; 0xf3bd7 LB 0x190 5264 5288 push bp ; 55 5265 5289 mov bp, sp ; 89 e5 … … 5268 5292 mov dx, strict word 0000eh ; ba 0e 00 5269 5293 mov ax, strict word 00040h ; b8 40 00 5270 call 0166ch ; e8 c6da5294 call 0166ch ; e8 87 da 5271 5295 mov si, 00366h ; be 66 03 5272 5296 mov di, ax ; 89 c7 … … 5274 5298 shr ax, 008h ; c1 e8 08 5275 5299 cmp ax, strict word 0004bh ; 3d 4b 00 5276 jc short 03b c0h ; 72 0a5277 jbe short 03 be7h ; 76 2f5300 jc short 03bffh ; 72 0a 5301 jbe short 03c26h ; 76 2f 5278 5302 cmp ax, strict word 0004dh ; 3d 4d 00 5279 jbe short 03 bc5h ; 76 085280 jmp near 03 cech ; e9 2c 015303 jbe short 03c04h ; 76 08 5304 jmp near 03d2bh ; e9 2c 01 5281 5305 cmp ax, strict word 0004ah ; 3d 4a 00 5282 jne short 03 be4h ; 75 1f5283 mov bx, 00da 4h ; bb a40d5306 jne short 03c23h ; 75 1f 5307 mov bx, 00da0h ; bb a0 0d 5284 5308 mov cx, ds ; 8c d9 5285 5309 mov ax, strict word 00004h ; b8 04 00 5286 call 01923h ; e8 53dd5310 call 01923h ; e8 14 dd 5287 5311 push word [bp+016h] ; ff 76 16 5288 5312 push 002fch ; 68 fc 02 5289 5313 push 0030bh ; 68 0b 03 5290 5314 push strict byte 00004h ; 6a 04 5291 call 01966h ; e8 88dd5315 call 01966h ; e8 49 dd 5292 5316 add sp, strict byte 00008h ; 83 c4 08 5293 jmp near 03d 07h ; e9 23 015294 jmp near 03 cech ; e9 05 015317 jmp near 03d46h ; e9 23 01 5318 jmp near 03d2bh ; e9 05 01 5295 5319 mov dx, word [bp+00ah] ; 8b 56 0a 5296 5320 mov ax, word [bp+004h] ; 8b 46 04 5297 5321 mov bx, strict word 00013h ; bb 13 00 5298 call 0165eh ; e8 6bda5322 call 0165eh ; e8 2c da 5299 5323 mov es, di ; 8e c7 5300 5324 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5303 5327 inc dx ; 42 5304 5328 mov ax, word [bp+004h] ; 8b 46 04 5305 call 0165eh ; e8 59da5329 call 0165eh ; e8 1a da 5306 5330 mov es, di ; 8e c7 5307 5331 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5311 5335 inc dx ; 42 5312 5336 mov ax, word [bp+004h] ; 8b 46 04 5313 call 0165eh ; e8 46da5337 call 0165eh ; e8 07 da 5314 5338 mov es, di ; 8e c7 5315 5339 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5318 5342 add dx, strict byte 00003h ; 83 c2 03 5319 5343 mov ax, word [bp+004h] ; 8b 46 04 5320 call 0165eh ; e8 32 da5344 call 0165eh ; e8 f3 d9 5321 5345 mov es, di ; 8e c7 5322 5346 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5325 5349 add dx, strict byte 00004h ; 83 c2 04 5326 5350 mov ax, word [bp+004h] ; 8b 46 04 5327 call 0169ah ; e8 58da5351 call 0169ah ; e8 19 da 5328 5352 mov es, di ; 8e c7 5329 5353 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5331 5355 add dx, strict byte 00008h ; 83 c2 08 5332 5356 mov ax, word [bp+004h] ; 8b 46 04 5333 call 0167ah ; e8 26 da5357 call 0167ah ; e8 e7 d9 5334 5358 mov es, di ; 8e c7 5335 5359 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5337 5361 add dx, strict byte 0000ah ; 83 c2 0a 5338 5362 mov ax, word [bp+004h] ; 8b 46 04 5339 call 0167ah ; e8 14 da5363 call 0167ah ; e8 d5 d9 5340 5364 mov es, di ; 8e c7 5341 5365 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5343 5367 add dx, strict byte 0000ch ; 83 c2 0c 5344 5368 mov ax, word [bp+004h] ; 8b 46 04 5345 call 0167ah ; e8 02 da5369 call 0167ah ; e8 c3 d9 5346 5370 mov es, di ; 8e c7 5347 5371 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5349 5373 add dx, strict byte 0000eh ; 83 c2 0e 5350 5374 mov ax, word [bp+004h] ; 8b 46 04 5351 call 0167ah ; e8 f0d95375 call 0167ah ; e8 b1 d9 5352 5376 mov es, di ; 8e c7 5353 5377 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5356 5380 add dx, strict byte 00010h ; 83 c2 10 5357 5381 mov ax, word [bp+004h] ; 8b 46 04 5358 call 0165eh ; e8 c0d95382 call 0165eh ; e8 81 d9 5359 5383 mov es, di ; 8e c7 5360 5384 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5363 5387 add dx, strict byte 00011h ; 83 c2 11 5364 5388 mov ax, word [bp+004h] ; 8b 46 04 5365 call 0165eh ; e8 acd95389 call 0165eh ; e8 6d d9 5366 5390 mov es, di ; 8e c7 5367 5391 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5370 5394 add dx, strict byte 00012h ; 83 c2 12 5371 5395 mov ax, word [bp+004h] ; 8b 46 04 5372 call 0165eh ; e8 98d95396 call 0165eh ; e8 59 d9 5373 5397 test byte [bp+016h], 0ffh ; f6 46 16 ff 5374 jne short 03 cd2h ; 75 065398 jne short 03d11h ; 75 06 5375 5399 mov es, di ; 8e c7 5376 5400 mov byte [es:si], 000h ; 26 c6 04 00 … … 5379 5403 mov dx, strict word 00074h ; ba 74 00 5380 5404 mov ax, strict word 00040h ; b8 40 00 5381 call 0165eh ; e8 7dd95405 call 0165eh ; e8 3e d9 5382 5406 and byte [bp+01ch], 0feh ; 80 66 1c fe 5383 5407 lea sp, [bp-004h] ; 8d 66 fc … … 5386 5410 pop bp ; 5d 5387 5411 retn ; c3 5388 mov bx, 00da 4h ; bb a40d5412 mov bx, 00da0h ; bb a0 0d 5389 5413 mov cx, ds ; 8c d9 5390 5414 mov ax, strict word 00004h ; b8 04 00 5391 call 01923h ; e8 2c dc5415 call 01923h ; e8 ed db 5392 5416 mov ax, word [bp+016h] ; 8b 46 16 5393 5417 shr ax, 008h ; c1 e8 08 … … 5395 5419 push 002fch ; 68 fc 02 5396 5420 push 00333h ; 68 33 03 5397 jmp near 03 bd9h ; e9 d2 fe5421 jmp near 03c18h ; e9 d2 fe 5398 5422 mov ax, word [bp+016h] ; 8b 46 16 5399 5423 xor ah, ah ; 30 e4 … … 5405 5429 mov dx, strict word 00074h ; ba 74 00 5406 5430 mov ax, strict word 00040h ; b8 40 00 5407 call 0165eh ; e8 3c d95431 call 0165eh ; e8 fd d8 5408 5432 or byte [bp+01ch], 001h ; 80 4e 1c 01 5409 jmp short 03 ce5h ; eb bd5410 device_is_cdrom_: ; 0xf3d 28LB 0x355433 jmp short 03d24h ; eb bd 5434 device_is_cdrom_: ; 0xf3d67 LB 0x35 5411 5435 push bp ; 55 5412 5436 mov bp, sp ; 89 e5 … … 5416 5440 mov dx, strict word 0000eh ; ba 0e 00 5417 5441 mov ax, strict word 00040h ; b8 40 00 5418 call 0166ch ; e8 34 d95442 call 0166ch ; e8 f5 d8 5419 5443 cmp bl, 010h ; 80 fb 10 5420 jc short 03d 41h ; 72 045444 jc short 03d80h ; 72 04 5421 5445 xor ax, ax ; 31 c0 5422 jmp short 03d 56h ; eb 155446 jmp short 03d95h ; eb 15 5423 5447 xor bh, bh ; 30 ff 5424 5448 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5426 5450 add bx, 00122h ; 81 c3 22 01 5427 5451 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5428 jne short 03d 3dh ; 75 ea5452 jne short 03d7ch ; 75 ea 5429 5453 mov ax, strict word 00001h ; b8 01 00 5430 5454 lea sp, [bp-004h] ; 8d 66 fc … … 5433 5457 pop bp ; 5d 5434 5458 retn ; c3 5435 cdrom_boot_: ; 0xf3d 5dLB 0x4355459 cdrom_boot_: ; 0xf3d9c LB 0x435 5436 5460 push bp ; 55 5437 5461 mov bp, sp ; 89 e5 … … 5444 5468 mov dx, strict word 0000eh ; ba 0e 00 5445 5469 mov ax, strict word 00040h ; b8 40 00 5446 call 0166ch ; e8 fad85470 call 0166ch ; e8 bb d8 5447 5471 mov word [bp-012h], ax ; 89 46 ee 5448 5472 mov si, 00366h ; be 66 03 … … 5451 5475 mov word [bp-010h], ax ; 89 46 f0 5452 5476 mov byte [bp-00ch], 000h ; c6 46 f4 00 5453 jmp short 03d 92h ; eb 095477 jmp short 03dd1h ; eb 09 5454 5478 inc byte [bp-00ch] ; fe 46 f4 5455 5479 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5456 jnc short 03d 9eh ; 73 0c5480 jnc short 03dddh ; 73 0c 5457 5481 mov al, byte [bp-00ch] ; 8a 46 f4 5458 5482 xor ah, ah ; 30 e4 5459 call 03d 28h ; e8 8e ff5483 call 03d67h ; e8 8e ff 5460 5484 test ax, ax ; 85 c0 5461 je short 03d 89h ; 74 eb5485 je short 03dc8h ; 74 eb 5462 5486 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5463 jc short 03d aah ; 72 065487 jc short 03de9h ; 72 06 5464 5488 mov ax, strict word 00002h ; b8 02 00 5465 jmp near 041 2fh ; e9 85 035489 jmp near 0416eh ; e9 85 03 5466 5490 mov cx, strict word 0000ch ; b9 0c 00 5467 5491 xor bx, bx ; 31 db 5468 5492 mov dx, ss ; 8c d2 5469 5493 lea ax, [bp-026h] ; 8d 46 da 5470 call 0a1 00h ; e8 49635494 call 0a140h ; e8 4a 63 5471 5495 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5472 5496 mov ax, strict word 00011h ; b8 11 00 … … 5485 5509 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5486 5510 mov byte [bp-00eh], 000h ; c6 46 f2 00 5487 jmp short 03 df5h ; eb 095511 jmp short 03e34h ; eb 09 5488 5512 inc byte [bp-00eh] ; fe 46 f2 5489 5513 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5490 jnbe short 03e 31h ; 77 3c5514 jnbe short 03e70h ; 77 3c 5491 5515 mov al, byte [bp-00ch] ; 8a 46 f4 5492 5516 xor ah, ah ; 30 e4 … … 5512 5536 call word [word di+0006ah] ; ff 95 6a 00 5513 5537 test ax, ax ; 85 c0 5514 jne short 03 dech ; 75 bb5538 jne short 03e2bh ; 75 bb 5515 5539 test ax, ax ; 85 c0 5516 je short 03e 3bh ; 74 065540 je short 03e7ah ; 74 06 5517 5541 mov ax, strict word 00003h ; b8 03 00 5518 jmp near 041 2fh ; e9 f4 025542 jmp near 0416eh ; e9 f4 02 5519 5543 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5520 je short 03e 48h ; 74 065544 je short 03e87h ; 74 06 5521 5545 mov ax, strict word 00004h ; b8 04 00 5522 jmp near 041 2fh ; e9 e7 025546 jmp near 0416eh ; e9 e7 02 5523 5547 xor di, di ; 31 ff 5524 jmp short 03e 52h ; eb 065548 jmp short 03e91h ; eb 06 5525 5549 inc di ; 47 5526 5550 cmp di, strict byte 00005h ; 83 ff 05 5527 jnc short 03e 62h ; 73 105551 jnc short 03ea1h ; 73 10 5528 5552 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5529 cmp al, byte [di+00da ch] ; 3a 85 ac0d5530 je short 03e 4ch ; 74 f05553 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5554 je short 03e8bh ; 74 f0 5531 5555 mov ax, strict word 00005h ; b8 05 00 5532 jmp near 041 2fh ; e9 cd 025556 jmp near 0416eh ; e9 cd 02 5533 5557 xor di, di ; 31 ff 5534 jmp short 03e 6ch ; eb 065558 jmp short 03eabh ; eb 06 5535 5559 inc di ; 47 5536 5560 cmp di, strict byte 00017h ; 83 ff 17 5537 jnc short 03e 7ch ; 73 105561 jnc short 03ebbh ; 73 10 5538 5562 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5539 cmp al, byte [di+00d b2h] ; 3a 85 b20d5540 je short 03e 66h ; 74 f05563 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5564 je short 03ea5h ; 74 f0 5541 5565 mov ax, strict word 00006h ; b8 06 00 5542 jmp near 041 2fh ; e9 b3 025566 jmp near 0416eh ; e9 b3 02 5543 5567 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5544 5568 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5575 5599 call word [word di+0006ah] ; ff 95 6a 00 5576 5600 test ax, ax ; 85 c0 5577 je short 03 edeh ; 74 065601 je short 03f1dh ; 74 06 5578 5602 mov ax, strict word 00007h ; b8 07 00 5579 jmp near 041 2fh ; e9 51 025603 jmp near 0416eh ; e9 51 02 5580 5604 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5581 je short 03 eebh ; 74 065605 je short 03f2ah ; 74 06 5582 5606 mov ax, strict word 00008h ; b8 08 00 5583 jmp near 041 2fh ; e9 44 025607 jmp near 0416eh ; e9 44 02 5584 5608 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5585 je short 03 ef8h ; 74 065609 je short 03f37h ; 74 06 5586 5610 mov ax, strict word 00009h ; b8 09 00 5587 jmp near 041 2fh ; e9 37 025611 jmp near 0416eh ; e9 37 02 5588 5612 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5589 je short 03f 05h ; 74 065613 je short 03f44h ; 74 06 5590 5614 mov ax, strict word 0000ah ; b8 0a 00 5591 jmp near 041 2fh ; e9 2a 025615 jmp near 0416eh ; e9 2a 02 5592 5616 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5593 jne short 03 effh ; 75 f35617 jne short 03f3eh ; 75 f3 5594 5618 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5595 je short 03f 19h ; 74 065619 je short 03f58h ; 74 06 5596 5620 mov ax, strict word 0000bh ; b8 0b 00 5597 jmp near 041 2fh ; e9 16 025621 jmp near 0416eh ; e9 16 02 5598 5622 mov al, byte [bp-00805h] ; 8a 86 fb f7 5599 5623 mov es, [bp-014h] ; 8e 46 ec 5600 5624 mov byte [es:si+001h], al ; 26 88 44 01 5601 5625 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5602 jne short 03f 32h ; 75 075626 jne short 03f71h ; 75 07 5603 5627 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5604 jmp short 03f 45h ; eb 135628 jmp short 03f84h ; eb 13 5605 5629 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5606 jnc short 03f 40h ; 73 075630 jnc short 03f7fh ; 73 07 5607 5631 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5608 jmp short 03f 45h ; eb 055632 jmp short 03f84h ; eb 05 5609 5633 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5610 5634 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 5625 5649 mov word [bp-01ah], ax ; 89 46 e6 5626 5650 test ax, ax ; 85 c0 5627 jne short 03f 74h ; 75 055651 jne short 03fb3h ; 75 05 5628 5652 mov word [bp-01ah], 007c0h ; c7 46 e6 c0 07 5629 5653 mov ax, word [bp-01ah] ; 8b 46 e6 … … 5634 5658 mov word [es:si+00eh], di ; 26 89 7c 0e 5635 5659 test di, di ; 85 ff 5636 je short 03f 96h ; 74 065660 je short 03fd5h ; 74 06 5637 5661 cmp di, 00400h ; 81 ff 00 04 5638 jbe short 03f 9ch ; 76 065662 jbe short 03fdbh ; 76 06 5639 5663 mov ax, strict word 0000ch ; b8 0c 00 5640 jmp near 041 2fh ; e9 93 015664 jmp near 0416eh ; e9 93 01 5641 5665 mov ax, word [bp-007feh] ; 8b 86 02 f8 5642 5666 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5682 5706 sal ax, 1 ; d1 e0 5683 5707 rcl di, 1 ; d1 d7 5684 loop 040 10h ; e2 fa5708 loop 0404fh ; e2 fa 5685 5709 push di ; 57 5686 5710 push ax ; 50 … … 5697 5721 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5698 5722 test ax, ax ; 85 c0 5699 je short 040 44h ; 74 065723 je short 04083h ; 74 06 5700 5724 mov ax, strict word 0000dh ; b8 0d 00 5701 jmp near 041 2fh ; e9 eb 005725 jmp near 0416eh ; e9 eb 00 5702 5726 mov es, [bp-014h] ; 8e 46 ec 5703 5727 mov al, byte [es:si+001h] ; 26 8a 44 01 5704 5728 cmp AL, strict byte 002h ; 3c 02 5705 jc short 040 5ch ; 72 0d5706 jbe short 040 77h ; 76 265729 jc short 0409bh ; 72 0d 5730 jbe short 040b6h ; 76 26 5707 5731 cmp AL, strict byte 004h ; 3c 04 5708 je short 040 87h ; 74 325732 je short 040c6h ; 74 32 5709 5733 cmp AL, strict byte 003h ; 3c 03 5710 je short 040 7fh ; 74 265711 jmp near 04 0d4h ; e9 78 005734 je short 040beh ; 74 26 5735 jmp near 04113h ; e9 78 00 5712 5736 cmp AL, strict byte 001h ; 3c 01 5713 jne short 04 0d4h ; 75 745737 jne short 04113h ; 75 74 5714 5738 mov es, [bp-014h] ; 8e 46 ec 5715 5739 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5716 5740 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5717 5741 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5718 jmp short 04 0d4h ; eb 5d5742 jmp short 04113h ; eb 5d 5719 5743 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5720 jmp short 040 69h ; eb ea5744 jmp short 040a8h ; eb ea 5721 5745 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5722 jmp short 040 69h ; eb e25746 jmp short 040a8h ; eb e2 5723 5747 mov dx, 001c4h ; ba c4 01 5724 5748 mov ax, word [bp-01ah] ; 8b 46 e6 5725 call 01650h ; e8 c0d55749 call 01650h ; e8 81 d5 5726 5750 and AL, strict byte 03fh ; 24 3f 5727 5751 xor ah, ah ; 30 e4 … … 5730 5754 mov dx, 001c4h ; ba c4 01 5731 5755 mov ax, word [bp-01ah] ; 8b 46 e6 5732 call 01650h ; e8 acd55756 call 01650h ; e8 6d d5 5733 5757 and ax, 000c0h ; 25 c0 00 5734 5758 mov bx, ax ; 89 c3 … … 5736 5760 mov dx, 001c5h ; ba c5 01 5737 5761 mov ax, word [bp-01ah] ; 8b 46 e6 5738 call 01650h ; e8 9bd55762 call 01650h ; e8 5c d5 5739 5763 xor ah, ah ; 30 e4 5740 5764 add ax, bx ; 01 d8 … … 5744 5768 mov dx, 001c3h ; ba c3 01 5745 5769 mov ax, word [bp-01ah] ; 8b 46 e6 5746 call 01650h ; e8 86d55770 call 01650h ; e8 47 d5 5747 5771 xor ah, ah ; 30 e4 5748 5772 inc ax ; 40 … … 5751 5775 mov es, [bp-014h] ; 8e 46 ec 5752 5776 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5753 je short 041 15h ; 74 375777 je short 04154h ; 74 37 5754 5778 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5755 jne short 04 0fdh ; 75 185779 jne short 0413ch ; 75 18 5756 5780 mov dx, strict word 00010h ; ba 10 00 5757 5781 mov ax, strict word 00040h ; b8 40 00 5758 call 01650h ; e8 62d55782 call 01650h ; e8 23 d5 5759 5783 mov bl, al ; 88 c3 5760 5784 or bl, 041h ; 80 cb 41 … … 5762 5786 mov dx, strict word 00010h ; ba 10 00 5763 5787 mov ax, strict word 00040h ; b8 40 00 5764 jmp short 041 12h ; eb 155788 jmp short 04151h ; eb 15 5765 5789 mov dx, 00304h ; ba 04 03 5766 5790 mov ax, word [bp-012h] ; 8b 46 ee 5767 call 01650h ; e8 4ad55791 call 01650h ; e8 0b d5 5768 5792 mov bl, al ; 88 c3 5769 5793 db 0feh, 0c3h … … 5772 5796 mov dx, 00304h ; ba 04 03 5773 5797 mov ax, word [bp-012h] ; 8b 46 ee 5774 call 0165eh ; e8 49d55798 call 0165eh ; e8 0a d5 5775 5799 mov es, [bp-014h] ; 8e 46 ec 5776 5800 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5777 je short 041 23h ; 74 045801 je short 04162h ; 74 04 5778 5802 mov byte [es:si], 001h ; 26 c6 04 01 5779 5803 mov es, [bp-014h] ; 8e 46 ec … … 5790 5814 retn ; c3 5791 5815 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 38h, 045h, 037h5793 db 042h, 0 6ah, 042h, 094h, 042h, 05fh, 042h, 094h, 042h, 05fh, 042h, 086h, 044h, 06ch, 044h, 038h5794 db 045h, 0 38h, 045h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 06ch, 044h, 02fh, 045h, 06ch5795 db 044h, 0 38h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h, 045h, 038h5796 db 045h, 0 38h, 045h, 038h, 045h, 038h, 045h, 038h, 045h5797 _int13_cdemu: ; 0xf41 92LB 0x4425816 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 077h, 045h, 076h 5817 db 042h, 0a9h, 042h, 0d3h, 042h, 09eh, 042h, 0d3h, 042h, 09eh, 042h, 0c5h, 044h, 0abh, 044h, 077h 5818 db 045h, 077h, 045h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 0abh, 044h, 06eh, 045h, 0abh 5819 db 044h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h 5820 db 045h, 077h, 045h, 077h, 045h, 077h, 045h, 077h, 045h 5821 _int13_cdemu: ; 0xf41d1 LB 0x442 5798 5822 push bp ; 55 5799 5823 mov bp, sp ; 89 e5 … … 5803 5827 mov dx, strict word 0000eh ; ba 0e 00 5804 5828 mov ax, strict word 00040h ; b8 40 00 5805 call 0166ch ; e8 c9d45829 call 0166ch ; e8 8a d4 5806 5830 mov di, 00366h ; bf 66 03 5807 5831 mov cx, ax ; 89 c1 … … 5819 5843 mov dx, strict word 00074h ; ba 74 00 5820 5844 mov ax, strict word 00040h ; b8 40 00 5821 call 0165eh ; e8 8cd45845 call 0165eh ; e8 4d d4 5822 5846 mov es, cx ; 8e c1 5823 5847 cmp byte [es:di], 000h ; 26 80 3d 00 5824 je short 04 1e9h ; 74 0f5848 je short 04228h ; 74 0f 5825 5849 mov al, byte [es:di+002h] ; 26 8a 45 02 5826 5850 xor ah, ah ; 30 e4 … … 5828 5852 xor dh, dh ; 30 f6 5829 5853 cmp ax, dx ; 39 d0 5830 je short 042 12h ; 74 295831 mov bx, 00da 4h ; bb a40d5854 je short 04251h ; 74 29 5855 mov bx, 00da0h ; bb a0 0d 5832 5856 mov cx, ds ; 8c d9 5833 5857 mov ax, strict word 00004h ; b8 04 00 5834 call 01923h ; e8 2f d75858 call 01923h ; e8 f0 d6 5835 5859 mov ax, word [bp+012h] ; 8b 46 12 5836 5860 xor ah, ah ; 30 e4 … … 5842 5866 push 00358h ; 68 58 03 5843 5867 push strict byte 00004h ; 6a 04 5844 call 01966h ; e8 5ad75868 call 01966h ; e8 1b d7 5845 5869 add sp, strict byte 0000ah ; 83 c4 0a 5846 jmp near 045 58h ; e9 46 035870 jmp near 04597h ; e9 46 03 5847 5871 mov ax, word [bp+016h] ; 8b 46 16 5848 5872 shr ax, 008h ; c1 e8 08 5849 5873 cmp ax, strict word 00050h ; 3d 50 00 5850 jnbe short 042 91h ; 77 745874 jnbe short 042d0h ; 77 74 5851 5875 push CS ; 0e 5852 5876 pop ES ; 07 5853 5877 mov cx, strict word 0001eh ; b9 1e 00 5854 mov di, 041 39h ; bf 39415878 mov di, 04178h ; bf 78 41 5855 5879 repne scasb ; f2 ae 5856 5880 sal cx, 1 ; d1 e1 5857 5881 mov di, cx ; 89 cf 5858 mov ax, word [cs:di+041 56h] ; 2e 8b 85 56415882 mov ax, word [cs:di+04195h] ; 2e 8b 85 95 41 5859 5883 mov bx, word [bp+016h] ; 8b 5e 16 5860 5884 xor bh, bh ; 30 ff … … 5869 5893 add bx, bx ; 01 db 5870 5894 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5871 je short 042 5ch ; 74 095895 je short 0429bh ; 74 09 5872 5896 mov al, byte [bp-006h] ; 8a 46 fa 5873 5897 xor ah, ah ; 30 e4 5874 5898 call word [word bx+00076h] ; ff 97 76 00 5875 jmp near 044 6ch ; e9 0d 025899 jmp near 044abh ; e9 0d 02 5876 5900 mov ax, word [bp+016h] ; 8b 46 16 5877 5901 xor ah, ah ; 30 e4 5878 5902 or ah, 003h ; 80 cc 03 5879 jmp near 045 60h ; e9 f6 025903 jmp near 0459fh ; e9 f6 02 5880 5904 mov dx, strict word 00074h ; ba 74 00 5881 5905 mov ax, strict word 00040h ; b8 40 00 5882 call 01650h ; e8 ddd35906 call 01650h ; e8 9e d3 5883 5907 mov cl, al ; 88 c1 5884 5908 xor ah, ah ; 30 e4 … … 5889 5913 mov dx, strict word 00074h ; ba 74 00 5890 5914 mov ax, strict word 00040h ; b8 40 00 5891 call 0165eh ; e8 d4d35915 call 0165eh ; e8 95 d3 5892 5916 test cl, cl ; 84 c9 5893 je short 04 2eeh ; 74 605894 jmp near 045 74h ; e9 e3 025895 jmp near 045 38h ; e9 a4 025917 je short 0432dh ; 74 60 5918 jmp near 045b3h ; e9 e3 02 5919 jmp near 04577h ; e9 a4 02 5896 5920 mov es, [bp-008h] ; 8e 46 f8 5897 5921 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5917 5941 mov word [bp-00ah], cx ; 89 4e f6 5918 5942 test cx, cx ; 85 c9 5919 je short 04 2fch ; 74 1e5943 je short 0433bh ; 74 1e 5920 5944 cmp di, word [bp-010h] ; 3b 7e f0 5921 jc short 04 2ebh ; 72 085945 jc short 0432ah ; 72 08 5922 5946 cmp ax, dx ; 39 d0 5923 jnc short 04 2ebh ; 73 045947 jnc short 0432ah ; 73 04 5924 5948 cmp si, bx ; 39 de 5925 jc short 04 2f1h ; 72 065926 jmp near 045 58h ; e9 6a 025927 jmp near 044 70h ; e9 7f 015949 jc short 04330h ; 72 06 5950 jmp near 04597h ; e9 6a 02 5951 jmp near 044afh ; e9 7f 01 5928 5952 mov dx, word [bp+016h] ; 8b 56 16 5929 5953 shr dx, 008h ; c1 ea 08 5930 5954 cmp dx, strict byte 00004h ; 83 fa 04 5931 jne short 04 2ffh ; 75 035932 jmp near 044 6ch ; e9 6d 015955 jne short 0433eh ; 75 03 5956 jmp near 044abh ; e9 6d 01 5933 5957 mov dx, word [bp+010h] ; 8b 56 10 5934 5958 shr dx, 004h ; c1 ea 04 … … 5941 5965 xor dl, dl ; 30 d2 5942 5966 xor cx, cx ; 31 c9 5943 call 0a0 90h ; e8 735d5967 call 0a0d0h ; e8 74 5d 5944 5968 xor bx, bx ; 31 db 5945 5969 add ax, si ; 01 f0 … … 5947 5971 mov bx, di ; 89 fb 5948 5972 xor cx, cx ; 31 c9 5949 call 0a0 90h ; e8 665d5973 call 0a0d0h ; e8 67 5d 5950 5974 mov bx, ax ; 89 c3 5951 5975 mov ax, word [bp-010h] ; 8b 46 f0 … … 5982 6006 mov dx, ss ; 8c d2 5983 6007 lea ax, [bp-02eh] ; 8d 46 d2 5984 call 0a1 00h ; e8 7f5d6008 call 0a140h ; e8 80 5d 5985 6009 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5986 6010 mov ax, word [bp-014h] ; 8b 46 ec … … 6032 6056 sal si, 1 ; d1 e6 6033 6057 rcl di, 1 ; d1 d7 6034 loop 044 03h ; e2 fa6058 loop 04442h ; e2 fa 6035 6059 push di ; 57 6036 6060 push si ; 56 … … 6048 6072 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 6049 6073 test al, al ; 84 c0 6050 je short 044 6ch ; 74 376051 mov bx, 00da 4h ; bb a40d6074 je short 044abh ; 74 37 6075 mov bx, 00da0h ; bb a0 0d 6052 6076 mov cx, ds ; 8c d9 6053 6077 mov ax, strict word 00004h ; b8 04 00 6054 call 01923h ; e8 e3d46078 call 01923h ; e8 a4 d4 6055 6079 mov al, dl ; 88 d0 6056 6080 xor ah, ah ; 30 e4 … … 6062 6086 push 0038eh ; 68 8e 03 6063 6087 push strict byte 00004h ; 6a 04 6064 call 01966h ; e8 0f d56088 call 01966h ; e8 d0 d4 6065 6089 add sp, strict byte 0000ah ; 83 c4 0a 6066 6090 mov ax, word [bp+016h] ; 8b 46 16 … … 6069 6093 mov word [bp+016h], ax ; 89 46 16 6070 6094 mov byte [bp+016h], 000h ; c6 46 16 00 6071 jmp near 045 63h ; e9 f7 006095 jmp near 045a2h ; e9 f7 00 6072 6096 mov byte [bp+017h], 000h ; c6 46 17 00 6073 6097 xor bx, bx ; 31 db 6074 6098 mov dx, strict word 00074h ; ba 74 00 6075 6099 mov ax, strict word 00040h ; b8 40 00 6076 call 0165eh ; e8 e3d16100 call 0165eh ; e8 a4 d1 6077 6101 and byte [bp+01ch], 0feh ; 80 66 1c fe 6078 6102 lea sp, [bp-004h] ; 8d 66 fc … … 6122 6146 mov word [bp+010h], ax ; 89 46 10 6123 6147 cmp dl, 003h ; 80 fa 03 6124 je short 045 12h ; 74 1a6148 je short 04551h ; 74 1a 6125 6149 cmp dl, 002h ; 80 fa 02 6126 je short 045 0eh ; 74 116150 je short 0454dh ; 74 11 6127 6151 cmp dl, 001h ; 80 fa 01 6128 jne short 045 16h ; 75 146152 jne short 04555h ; 75 14 6129 6153 mov ax, word [bp+010h] ; 8b 46 10 6130 6154 xor al, al ; 30 c0 6131 6155 or AL, strict byte 002h ; 0c 02 6132 6156 mov word [bp+010h], ax ; 89 46 10 6133 jmp short 045 16h ; eb 086157 jmp short 04555h ; eb 08 6134 6158 or AL, strict byte 004h ; 0c 04 6135 jmp short 045 09h ; eb f76159 jmp short 04548h ; eb f7 6136 6160 or AL, strict byte 005h ; 0c 05 6137 jmp short 045 09h ; eb f36161 jmp short 04548h ; eb f3 6138 6162 mov es, [bp-008h] ; 8e 46 f8 6139 6163 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6140 jc short 045 23h ; 72 036141 jmp near 044 6ch ; e9 49 ff6164 jc short 04562h ; 72 03 6165 jmp near 044abh ; e9 49 ff 6142 6166 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6143 6167 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6144 jmp short 045 20h ; eb f16168 jmp short 0455fh ; eb f1 6145 6169 or bh, 003h ; 80 cf 03 6146 6170 mov word [bp+016h], bx ; 89 5e 16 6147 jmp near 044 70h ; e9 38 ff6148 mov bx, 00da 4h ; bb a40d6171 jmp near 044afh ; e9 38 ff 6172 mov bx, 00da0h ; bb a0 0d 6149 6173 mov cx, ds ; 8c d9 6150 6174 mov ax, strict word 00004h ; b8 04 00 6151 call 01923h ; e8 e0d36175 call 01923h ; e8 a1 d3 6152 6176 mov ax, word [bp+016h] ; 8b 46 16 6153 6177 shr ax, 008h ; c1 e8 08 … … 6156 6180 push 003afh ; 68 af 03 6157 6181 push strict byte 00004h ; 6a 04 6158 call 01966h ; e8 11 d46182 call 01966h ; e8 d2 d3 6159 6183 add sp, strict byte 00008h ; 83 c4 08 6160 6184 mov ax, word [bp+016h] ; 8b 46 16 … … 6167 6191 mov dx, strict word 00074h ; ba 74 00 6168 6192 mov ax, strict word 00040h ; b8 40 00 6169 call 0165eh ; e8 ead06193 call 0165eh ; e8 ab d0 6170 6194 or byte [bp+01ch], 001h ; 80 4e 1c 01 6171 jmp near 044 7fh ; e9 04 ff6195 jmp near 044beh ; e9 04 ff 6172 6196 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6173 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 c2h, 046h, 0f7h6174 db 04 ah, 07fh, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 074h, 046h, 0c2h, 046h, 0f7h, 04ah, 0c2h6175 db 04 6h, 0c2h, 046h, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0f7h, 04ah, 0a6h, 046h, 0f7h6176 db 04 ah, 0c2h, 046h, 0afh, 046h, 0deh, 046h, 074h, 046h, 0deh, 046h, 020h, 048h, 0bbh, 048h, 0deh6177 db 04 6h, 0e3h, 048h, 011h, 04bh, 019h, 04bh, 0c2h, 046h6178 _int13_cdrom: ; 0xf4 5d4LB 0x57d6197 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 001h, 047h, 036h 6198 db 04bh, 0beh, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 0b3h, 046h, 001h, 047h, 036h, 04bh, 001h 6199 db 047h, 001h, 047h, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 036h, 04bh, 0e5h, 046h, 036h 6200 db 04bh, 001h, 047h, 0eeh, 046h, 01dh, 047h, 0b3h, 046h, 01dh, 047h, 05fh, 048h, 0fah, 048h, 01dh 6201 db 047h, 022h, 049h, 050h, 04bh, 058h, 04bh, 001h, 047h 6202 _int13_cdrom: ; 0xf4613 LB 0x57d 6179 6203 push bp ; 55 6180 6204 mov bp, sp ; 89 e5 … … 6184 6208 mov dx, strict word 0000eh ; ba 0e 00 6185 6209 mov ax, strict word 00040h ; b8 40 00 6186 call 0166ch ; e8 87d06210 call 0166ch ; e8 48 d0 6187 6211 mov word [bp-016h], ax ; 89 46 ea 6188 6212 mov si, 00122h ; be 22 01 … … 6191 6215 mov dx, strict word 00074h ; ba 74 00 6192 6216 mov ax, strict word 00040h ; b8 40 00 6193 call 0165eh ; e8 65d06217 call 0165eh ; e8 26 d0 6194 6218 mov ax, word [bp+010h] ; 8b 46 10 6195 6219 xor ah, ah ; 30 e4 6196 6220 cmp ax, 000e0h ; 3d e0 00 6197 jc short 046 08h ; 72 056221 jc short 04647h ; 72 05 6198 6222 cmp ax, 000f0h ; 3d f0 00 6199 jc short 046 26h ; 72 1e6223 jc short 04665h ; 72 1e 6200 6224 mov ax, word [bp+010h] ; 8b 46 10 6201 6225 xor ah, ah ; 30 e4 … … 6207 6231 push 003ebh ; 68 eb 03 6208 6232 push strict byte 00004h ; 6a 04 6209 call 01966h ; e8 46d36233 call 01966h ; e8 07 d3 6210 6234 add sp, strict byte 0000ah ; 83 c4 0a 6211 jmp near 04b 2fh ; e9 09 056235 jmp near 04b6eh ; e9 09 05 6212 6236 mov ax, word [bp+010h] ; 8b 46 10 6213 6237 xor ah, ah ; 30 e4 … … 6218 6242 mov byte [bp-006h], dl ; 88 56 fa 6219 6243 cmp dl, 010h ; 80 fa 10 6220 jc short 046 4fh ; 72 106244 jc short 0468eh ; 72 10 6221 6245 push ax ; 50 6222 6246 mov ax, word [bp+018h] ; 8b 46 18 … … 6225 6249 push 003dfh ; 68 df 03 6226 6250 push 00416h ; 68 16 04 6227 jmp short 046 1bh ; eb cc6251 jmp short 0465ah ; eb cc 6228 6252 mov ax, word [bp+018h] ; 8b 46 18 6229 6253 shr ax, 008h ; c1 e8 08 6230 6254 cmp ax, strict word 00050h ; 3d 50 00 6231 jnbe short 04 6c2h ; 77 686255 jnbe short 04701h ; 77 68 6232 6256 push CS ; 0e 6233 6257 pop ES ; 07 6234 6258 mov cx, strict word 0001eh ; b9 1e 00 6235 mov di, 045 7bh ; bf 7b456259 mov di, 045bah ; bf ba 45 6236 6260 repne scasb ; f2 ae 6237 6261 sal cx, 1 ; d1 e1 6238 6262 mov di, cx ; 89 cf 6239 mov ax, word [cs:di+045 98h] ; 2e 8b 85 98456263 mov ax, word [cs:di+045d7h] ; 2e 8b 85 d7 45 6240 6264 mov bx, word [bp+018h] ; 8b 5e 18 6241 6265 xor bh, bh ; 30 ff … … 6244 6268 xor ah, ah ; 30 e4 6245 6269 or ah, 003h ; 80 cc 03 6246 jmp near 04b 37h ; e9 b8 046270 jmp near 04b76h ; e9 b8 04 6247 6271 mov dx, strict word 00074h ; ba 74 00 6248 6272 mov ax, strict word 00040h ; b8 40 00 6249 call 01650h ; e8 c8cf6273 call 01650h ; e8 89 cf 6250 6274 mov cl, al ; 88 c1 6251 6275 xor ah, ah ; 30 e4 … … 6256 6280 mov dx, strict word 00074h ; ba 74 00 6257 6281 mov ax, strict word 00040h ; b8 40 00 6258 call 0165eh ; e8 bfcf6282 call 0165eh ; e8 80 cf 6259 6283 test cl, cl ; 84 c9 6260 je short 046 bfh ; 74 1c6261 jmp near 04b 4bh ; e9 a5 046284 je short 046feh ; 74 1c 6285 jmp near 04b8ah ; e9 a5 04 6262 6286 or bh, 002h ; 80 cf 02 6263 6287 mov word [bp+018h], bx ; 89 5e 18 6264 jmp near 04b 3ah ; e9 8b 046288 jmp near 04b79h ; e9 8b 04 6265 6289 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6266 6290 or bh, 030h ; 80 cf 30 6267 6291 mov word [bp+018h], bx ; 89 5e 18 6268 6292 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6269 jmp near 04 afbh ; e9 39 046270 mov bx, 00da 4h ; bb a40d6293 jmp near 04b3ah ; e9 39 04 6294 mov bx, 00da0h ; bb a0 0d 6271 6295 mov cx, ds ; 8c d9 6272 6296 mov ax, strict word 00004h ; b8 04 00 6273 call 01923h ; e8 56d26297 call 01923h ; e8 17 d2 6274 6298 mov ax, word [bp+018h] ; 8b 46 18 6275 6299 shr ax, 008h ; c1 e8 08 … … 6278 6302 push 00333h ; 68 33 03 6279 6303 push strict byte 00004h ; 6a 04 6280 jmp short 047 1eh ; eb 406304 jmp short 0475dh ; eb 40 6281 6305 mov bx, word [bp+00ch] ; 8b 5e 0c 6282 6306 mov es, [bp+006h] ; 8e 46 06 … … 6293 6317 mov word [bp-022h], ax ; 89 46 de 6294 6318 or ax, word [bp-00eh] ; 0b 46 f2 6295 je short 047 27h ; 74 186319 je short 04766h ; 74 18 6296 6320 mov ax, word [bp+018h] ; 8b 46 18 6297 6321 shr ax, 008h ; c1 e8 08 … … 6300 6324 push 00448h ; 68 48 04 6301 6325 push strict byte 00007h ; 6a 07 6302 call 01966h ; e8 45d26326 call 01966h ; e8 06 d2 6303 6327 add sp, strict byte 00008h ; 83 c4 08 6304 jmp near 04b 2fh ; e9 08 046328 jmp near 04b6eh ; e9 08 04 6305 6329 mov es, [bp-010h] ; 8e 46 f0 6306 6330 mov bx, word [bp-014h] ; 8b 5e ec … … 6313 6337 mov word [bp-012h], ax ; 89 46 ee 6314 6338 cmp ax, strict word 00044h ; 3d 44 00 6315 je short 047 4eh ; 74 056339 je short 0478dh ; 74 05 6316 6340 cmp ax, strict word 00047h ; 3d 47 00 6317 jne short 047 51h ; 75 036318 jmp near 04 af7h ; e9 a6 036341 jne short 04790h ; 75 03 6342 jmp near 04b36h ; e9 a6 03 6319 6343 mov cx, strict word 0000ch ; b9 0c 00 6320 6344 xor bx, bx ; 31 db 6321 6345 mov dx, ss ; 8c d2 6322 6346 lea ax, [bp-030h] ; 8d 46 d0 6323 call 0a1 00h ; e8 a2596347 call 0a140h ; e8 a3 59 6324 6348 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6325 6349 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6353 6377 sal ax, 1 ; d1 e0 6354 6378 rcl dx, 1 ; d1 d2 6355 loop 047 aeh ; e2 fa6379 loop 047edh ; e2 fa 6356 6380 push dx ; 52 6357 6381 push ax ; 50 … … 6371 6395 shr dx, 1 ; d1 ea 6372 6396 rcr ax, 1 ; d1 d8 6373 loop 04 7ddh ; e2 fa6397 loop 0481ch ; e2 fa 6374 6398 mov es, [bp-010h] ; 8e 46 f0 6375 6399 mov bx, word [bp-014h] ; 8b 5e ec 6376 6400 mov word [es:bx+002h], ax ; 26 89 47 02 6377 6401 cmp byte [bp-018h], 000h ; 80 7e e8 00 6378 je short 048 46h ; 74 536379 mov bx, 00da 4h ; bb a40d6402 je short 04885h ; 74 53 6403 mov bx, 00da0h ; bb a0 0d 6380 6404 mov cx, ds ; 8c d9 6381 6405 mov ax, strict word 00004h ; b8 04 00 6382 call 01923h ; e8 25 d16406 call 01923h ; e8 e6 d0 6383 6407 mov al, byte [bp-018h] ; 8a 46 e8 6384 6408 xor ah, ah ; 30 e4 … … 6388 6412 push 00471h ; 68 71 04 6389 6413 push strict byte 00004h ; 6a 04 6390 call 01966h ; e8 54d16414 call 01966h ; e8 15 d1 6391 6415 add sp, strict byte 0000ah ; 83 c4 0a 6392 6416 mov ax, word [bp+018h] ; 8b 46 18 6393 6417 xor ah, ah ; 30 e4 6394 6418 or ah, 00ch ; 80 cc 0c 6395 jmp near 04b 37h ; e9 17 036419 jmp near 04b76h ; e9 17 03 6396 6420 cmp bx, strict byte 00002h ; 83 fb 02 6397 jnbe short 048 8eh ; 77 696421 jnbe short 048cdh ; 77 69 6398 6422 mov al, byte [bp-006h] ; 8a 46 fa 6399 6423 xor ah, ah ; 30 e4 … … 6404 6428 mov al, byte [es:di+025h] ; 26 8a 45 25 6405 6429 cmp bx, strict byte 00002h ; 83 fb 02 6406 je short 048 a4h ; 74 676430 je short 048e3h ; 74 67 6407 6431 cmp bx, strict byte 00001h ; 83 fb 01 6408 je short 048 7eh ; 74 3c6432 je short 048bdh ; 74 3c 6409 6433 test bx, bx ; 85 db 6410 je short 048 49h ; 74 036411 jmp near 04 af7h ; e9 ae 026434 je short 04888h ; 74 03 6435 jmp near 04b36h ; e9 ae 02 6412 6436 cmp AL, strict byte 0ffh ; 3c ff 6413 jne short 048 5fh ; 75 126437 jne short 0489eh ; 75 12 6414 6438 mov ax, word [bp+018h] ; 8b 46 18 6415 6439 xor ah, ah ; 30 e4 … … 6418 6442 xor al, al ; 30 c0 6419 6443 or AL, strict byte 001h ; 0c 01 6420 jmp near 04b 37h ; e9 d8 026444 jmp near 04b76h ; e9 d8 02 6421 6445 mov dl, byte [bp-006h] ; 8a 56 fa 6422 6446 xor dh, dh ; 30 f6 … … 6431 6455 or AL, strict byte 001h ; 0c 01 6432 6456 mov word [bp+018h], ax ; 89 46 18 6433 jmp short 048 46h ; eb c86457 jmp short 04885h ; eb c8 6434 6458 test al, al ; 84 c0 6435 jne short 048 91h ; 75 0f6459 jne short 048d0h ; 75 0f 6436 6460 or bh, 0b0h ; 80 cf b0 6437 6461 mov word [bp+018h], bx ; 89 5e 18 6438 6462 mov byte [bp+018h], al ; 88 46 18 6439 jmp near 04b 3ah ; e9 ac 026440 jmp near 04b 2fh ; e9 9e 026463 jmp near 04b79h ; e9 ac 02 6464 jmp near 04b6eh ; e9 9e 02 6441 6465 mov dl, byte [bp-006h] ; 8a 56 fa 6442 6466 xor dh, dh ; 30 f6 … … 6448 6472 mov byte [es:si+025h], al ; 26 88 44 25 6449 6473 test al, al ; 84 c0 6450 jne short 048 b6h ; 75 0e6474 jne short 048f5h ; 75 0e 6451 6475 xor ah, ah ; 30 e4 6452 6476 mov dx, word [bp+018h] ; 8b 56 18 … … 6454 6478 or dx, ax ; 09 c2 6455 6479 mov word [bp+018h], dx ; 89 56 18 6456 jmp short 048 46h ; eb 906480 jmp short 04885h ; eb 90 6457 6481 mov ax, strict word 00001h ; b8 01 00 6458 jmp short 048 aah ; eb ef6482 jmp short 048e9h ; eb ef 6459 6483 mov al, byte [bp-006h] ; 8a 46 fa 6460 6484 xor ah, ah ; 30 e4 … … 6464 6488 mov al, byte [es:si+025h] ; 26 8a 44 25 6465 6489 test al, al ; 84 c0 6466 je short 04 8d6h ; 74 066490 je short 04915h ; 74 06 6467 6491 or bh, 0b1h ; 80 cf b1 6468 jmp near 046 a9h ; e9 d3 fd6469 je short 04 8ffh ; 74 276492 jmp near 046e8h ; e9 d3 fd 6493 je short 0493eh ; 74 27 6470 6494 mov ax, word [bp+018h] ; 8b 46 18 6471 6495 xor ah, ah ; 30 e4 6472 6496 or ah, 0b1h ; 80 cc b1 6473 jmp near 04b 37h ; e9 54 026497 jmp near 04b76h ; e9 54 02 6474 6498 mov dx, word [bp+00ch] ; 8b 56 0c 6475 6499 mov cx, word [bp+006h] ; 8b 4e 06 … … 6481 6505 mov word [bp-00ch], ax ; 89 46 f4 6482 6506 cmp ax, strict word 0001ah ; 3d 1a 00 6483 jnc short 049 02h ; 73 056484 jmp short 048 8eh ; eb 8f6485 jmp near 04 af7h ; e9 f5 016486 jc short 049 66h ; 72 626507 jnc short 04941h ; 73 05 6508 jmp short 048cdh ; eb 8f 6509 jmp near 04b36h ; e9 f5 01 6510 jc short 049a5h ; 72 62 6487 6511 mov al, byte [bp-006h] ; 8a 46 fa 6488 6512 xor ah, ah ; 30 e4 … … 6508 6532 mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff 6509 6533 cmp word [bp-00ch], strict byte 0001eh ; 83 7e f4 1e 6510 jnc short 049 6fh ; 73 036511 jmp near 04a 2bh ; e9 bc 006534 jnc short 049aeh ; 73 03 6535 jmp near 04a6ah ; e9 bc 00 6512 6536 mov es, [bp-00ah] ; 8e 46 f6 6513 6537 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 6552 6576 xor cl, cl ; 30 c9 6553 6577 xor ch, ch ; 30 ed 6554 jmp short 04a 0bh ; eb 056578 jmp short 04a4ah ; eb 05 6555 6579 cmp ch, 00fh ; 80 fd 0f 6556 jnc short 04a 21h ; 73 166580 jnc short 04a60h ; 73 16 6557 6581 mov al, ch ; 88 e8 6558 6582 xor ah, ah ; 30 e4 … … 6560 6584 add dx, 00356h ; 81 c2 56 03 6561 6585 mov ax, word [bp-016h] ; 8b 46 ea 6562 call 01650h ; e8 35 cc6586 call 01650h ; e8 f6 cb 6563 6587 add cl, al ; 00 c1 6564 6588 db 0feh, 0c5h 6565 6589 ; inc ch ; fe c5 6566 jmp short 04a 06h ; eb e56590 jmp short 04a45h ; eb e5 6567 6591 neg cl ; f6 d9 6568 6592 mov es, [bp-01eh] ; 8e 46 e2 6569 6593 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6570 6594 cmp word [bp-00ch], strict byte 00042h ; 83 7e f4 42 6571 jnc short 04a 34h ; 73 036572 jmp near 04 af7h ; e9 c3 006595 jnc short 04a73h ; 73 03 6596 jmp near 04b36h ; e9 c3 00 6573 6597 mov al, byte [bp-006h] ; 8a 46 fa 6574 6598 xor ah, ah ; 30 e4 … … 6589 6613 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6590 6614 test al, al ; 84 c0 6591 jne short 04a 7ch ; 75 0c6615 jne short 04abbh ; 75 0c 6592 6616 mov word [es:bx+024h], 05349h ; 26 c7 47 24 49 53 6593 6617 mov word [es:bx+026h], 02041h ; 26 c7 47 26 41 20 … … 6598 6622 mov word [es:bx+02eh], 02020h ; 26 c7 47 2e 20 20 6599 6623 test al, al ; 84 c0 6600 jne short 04a b1h ; 75 166624 jne short 04af0h ; 75 16 6601 6625 mov word [es:bx+030h], dx ; 26 89 57 30 6602 6626 mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00 … … 6613 6637 xor al, al ; 30 c0 6614 6638 mov AH, strict byte 01eh ; b4 1e 6615 jmp short 04 adch ; eb 056639 jmp short 04b1bh ; eb 05 6616 6640 cmp ah, 040h ; 80 fc 40 6617 jnc short 04 aeeh ; 73 126641 jnc short 04b2dh ; 73 12 6618 6642 mov dl, ah ; 88 e2 6619 6643 xor dh, dh ; 30 f6 … … 6624 6648 db 0feh, 0c4h 6625 6649 ; inc ah ; fe c4 6626 jmp short 04 ad7h ; eb e96650 jmp short 04b16h ; eb e9 6627 6651 neg al ; f6 d8 6628 6652 mov es, [bp-00ah] ; 8e 46 f6 … … 6632 6656 mov dx, strict word 00074h ; ba 74 00 6633 6657 mov ax, strict word 00040h ; b8 40 00 6634 call 0165eh ; e8 58cb6658 call 0165eh ; e8 19 cb 6635 6659 and byte [bp+01eh], 0feh ; 80 66 1e fe 6636 6660 lea sp, [bp-004h] ; 8d 66 fc … … 6641 6665 or bh, 006h ; 80 cf 06 6642 6666 mov word [bp+018h], bx ; 89 5e 18 6643 jmp short 04b 4bh ; eb 326667 jmp short 04b8ah ; eb 32 6644 6668 cmp bx, strict byte 00006h ; 83 fb 06 6645 je short 04 af7h ; 74 d96669 je short 04b36h ; 74 d9 6646 6670 cmp bx, strict byte 00001h ; 83 fb 01 6647 jc short 04b 2fh ; 72 0c6648 jbe short 04 af7h ; 76 d26671 jc short 04b6eh ; 72 0c 6672 jbe short 04b36h ; 76 d2 6649 6673 cmp bx, strict byte 00003h ; 83 fb 03 6650 jc short 04b 2fh ; 72 056674 jc short 04b6eh ; 72 05 6651 6675 cmp bx, strict byte 00004h ; 83 fb 04 6652 jbe short 04 af7h ; 76 c86676 jbe short 04b36h ; 76 c8 6653 6677 mov ax, word [bp+018h] ; 8b 46 18 6654 6678 xor ah, ah ; 30 e4 … … 6660 6684 mov dx, strict word 00074h ; ba 74 00 6661 6685 mov ax, strict word 00040h ; b8 40 00 6662 call 0165eh ; e8 13 cb6686 call 0165eh ; e8 d4 ca 6663 6687 or byte [bp+01eh], 001h ; 80 4e 1e 01 6664 jmp short 04b 0ah ; eb b96665 print_boot_device_: ; 0xf4b 51LB 0x4b6688 jmp short 04b49h ; eb b9 6689 print_boot_device_: ; 0xf4b90 LB 0x4b 6666 6690 push bp ; 55 6667 6691 mov bp, sp ; 89 e5 6668 6692 push cx ; 51 6669 6693 test al, al ; 84 c0 6670 je short 04b 5eh ; 74 056694 je short 04b9dh ; 74 05 6671 6695 mov dx, strict word 00002h ; ba 02 00 6672 jmp short 04b 78h ; eb 1a6696 jmp short 04bb7h ; eb 1a 6673 6697 test dl, dl ; 84 d2 6674 je short 04b 67h ; 74 056698 je short 04ba6h ; 74 05 6675 6699 mov dx, strict word 00003h ; ba 03 00 6676 jmp short 04b 78h ; eb 116700 jmp short 04bb7h ; eb 11 6677 6701 test bl, 080h ; f6 c3 80 6678 jne short 04b 70h ; 75 046702 jne short 04bafh ; 75 04 6679 6703 xor dh, dh ; 30 f6 6680 jmp short 04b 78h ; eb 086704 jmp short 04bb7h ; eb 08 6681 6705 test bl, 080h ; f6 c3 80 6682 je short 04b 96h ; 74 216706 je short 04bd5h ; 74 21 6683 6707 mov dx, strict word 00001h ; ba 01 00 6684 mov bx, 00da 4h ; bb a40d6708 mov bx, 00da0h ; bb a0 0d 6685 6709 mov cx, ds ; 8c d9 6686 6710 mov ax, strict word 00004h ; b8 04 00 6687 call 01923h ; e8 a0cd6711 call 01923h ; e8 61 cd 6688 6712 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6689 add dx, 00dc ah ; 81 c2 ca0d6713 add dx, 00dc6h ; 81 c2 c6 0d 6690 6714 push dx ; 52 6691 6715 push 00494h ; 68 94 04 6692 6716 push strict byte 00004h ; 6a 04 6693 call 01966h ; e8 d3cd6717 call 01966h ; e8 94 cd 6694 6718 add sp, strict byte 00006h ; 83 c4 06 6695 6719 lea sp, [bp-002h] ; 8d 66 fe … … 6697 6721 pop bp ; 5d 6698 6722 retn ; c3 6699 print_boot_failure_: ; 0xf4b 9cLB 0x966723 print_boot_failure_: ; 0xf4bdb LB 0x96 6700 6724 push bp ; 55 6701 6725 mov bp, sp ; 89 e5 … … 6708 6732 mov si, cx ; 89 ce 6709 6733 test al, al ; 84 c0 6710 je short 04 bcch ; 74 1b6711 mov bx, 00da 4h ; bb a40d6734 je short 04c0bh ; 74 1b 6735 mov bx, 00da0h ; bb a0 0d 6712 6736 mov cx, ds ; 8c d9 6713 6737 mov ax, strict word 00004h ; b8 04 00 6714 call 01923h ; e8 67cd6715 push 00dd eh ; 68 de0d6738 call 01923h ; e8 28 cd 6739 push 00ddah ; 68 da 0d 6716 6740 push 004a8h ; 68 a8 04 6717 6741 push strict byte 00004h ; 6a 04 6718 call 01966h ; e8 9fcd6742 call 01966h ; e8 60 cd 6719 6743 add sp, strict byte 00006h ; 83 c4 06 6720 jmp short 04c 10h ; eb 446744 jmp short 04c4fh ; eb 44 6721 6745 test ah, ah ; 84 e4 6722 je short 04 be0h ; 74 106723 mov bx, 00da 4h ; bb a40d6746 je short 04c1fh ; 74 10 6747 mov bx, 00da0h ; bb a0 0d 6724 6748 mov cx, ds ; 8c d9 6725 6749 mov ax, strict word 00004h ; b8 04 00 6726 call 01923h ; e8 48cd6727 push 00de 8h ; 68 e80d6728 jmp short 04b bfh ; eb df6750 call 01923h ; e8 09 cd 6751 push 00de4h ; 68 e4 0d 6752 jmp short 04bfeh ; eb df 6729 6753 test bl, 080h ; f6 c3 80 6730 je short 04 bf6h ; 74 116731 mov bx, 00da 4h ; bb a40d6754 je short 04c35h ; 74 11 6755 mov bx, 00da0h ; bb a0 0d 6732 6756 mov cx, ds ; 8c d9 6733 6757 mov ax, strict word 00004h ; b8 04 00 6734 call 01923h ; e8 33 cd6758 call 01923h ; e8 f4 cc 6735 6759 push si ; 56 6736 push 00dd 4h ; 68 d40d6737 jmp short 04c 05h ; eb 0f6738 mov bx, 00da 4h ; bb a40d6760 push 00dd0h ; 68 d0 0d 6761 jmp short 04c44h ; eb 0f 6762 mov bx, 00da0h ; bb a0 0d 6739 6763 mov cx, ds ; 8c d9 6740 6764 mov ax, strict word 00004h ; b8 04 00 6741 call 01923h ; e8 22 cd6765 call 01923h ; e8 e3 cc 6742 6766 push si ; 56 6743 push 00dc ah ; 68 ca0d6767 push 00dc6h ; 68 c6 0d 6744 6768 push 004bdh ; 68 bd 04 6745 6769 push strict byte 00004h ; 6a 04 6746 call 01966h ; e8 59cd6770 call 01966h ; e8 1a cd 6747 6771 add sp, strict byte 00008h ; 83 c4 08 6748 6772 cmp byte [bp+004h], 001h ; 80 7e 04 01 6749 jne short 04c 2ah ; 75 146773 jne short 04c69h ; 75 14 6750 6774 test dl, dl ; 84 d2 6751 jne short 04c 1fh ; 75 056775 jne short 04c5eh ; 75 05 6752 6776 push 004d5h ; 68 d5 04 6753 jmp short 04c 22h ; eb 036777 jmp short 04c61h ; eb 03 6754 6778 push 004ffh ; 68 ff 04 6755 6779 push strict byte 00007h ; 6a 07 6756 call 01966h ; e8 3fcd6780 call 01966h ; e8 00 cd 6757 6781 add sp, strict byte 00004h ; 83 c4 04 6758 6782 lea sp, [bp-002h] ; 8d 66 fe … … 6760 6784 pop bp ; 5d 6761 6785 retn 00002h ; c2 02 00 6762 print_cdromboot_failure_: ; 0xf4c 32LB 0x276786 print_cdromboot_failure_: ; 0xf4c71 LB 0x27 6763 6787 push bp ; 55 6764 6788 mov bp, sp ; 89 e5 … … 6767 6791 push dx ; 52 6768 6792 mov dx, ax ; 89 c2 6769 mov bx, 00da 4h ; bb a40d6793 mov bx, 00da0h ; bb a0 0d 6770 6794 mov cx, ds ; 8c d9 6771 6795 mov ax, strict word 00004h ; b8 04 00 6772 call 01923h ; e8 decc6796 call 01923h ; e8 9f cc 6773 6797 push dx ; 52 6774 6798 push 00534h ; 68 34 05 6775 6799 push strict byte 00004h ; 6a 04 6776 call 01966h ; e8 18 cd6800 call 01966h ; e8 d9 cc 6777 6801 add sp, strict byte 00006h ; 83 c4 06 6778 6802 lea sp, [bp-006h] ; 8d 66 fa … … 6782 6806 pop bp ; 5d 6783 6807 retn ; c3 6784 _int19_function: ; 0xf4c 59LB 0x2716808 _int19_function: ; 0xf4c98 LB 0x271 6785 6809 push bp ; 55 6786 6810 mov bp, sp ; 89 e5 … … 6790 6814 mov dx, strict word 0000eh ; ba 0e 00 6791 6815 mov ax, strict word 00040h ; b8 40 00 6792 call 0166ch ; e8 02 ca6816 call 0166ch ; e8 c3 c9 6793 6817 mov bx, ax ; 89 c3 6794 6818 mov word [bp-00eh], ax ; 89 46 f2 6795 6819 mov byte [bp-00ch], 000h ; c6 46 f4 00 6796 6820 mov ax, strict word 0003dh ; b8 3d 00 6797 call 016ach ; e8 33 ca6821 call 016ach ; e8 f4 c9 6798 6822 mov dl, al ; 88 c2 6799 6823 xor dh, dh ; 30 f6 6800 6824 mov ax, strict word 00038h ; b8 38 00 6801 call 016ach ; e8 29 ca6825 call 016ach ; e8 ea c9 6802 6826 and AL, strict byte 0f0h ; 24 f0 6803 6827 xor ah, ah ; 30 e4 … … 6806 6830 or si, ax ; 09 c6 6807 6831 mov ax, strict word 0003ch ; b8 3c 00 6808 call 016ach ; e8 18 ca6832 call 016ach ; e8 d9 c9 6809 6833 and AL, strict byte 00fh ; 24 0f 6810 6834 xor ah, ah ; 30 e4 … … 6813 6837 mov dx, 0037dh ; ba 7d 03 6814 6838 mov ax, bx ; 89 d8 6815 call 01650h ; e8 abc96839 call 01650h ; e8 6c c9 6816 6840 test al, al ; 84 c0 6817 je short 04c b5h ; 74 0c6841 je short 04cf4h ; 74 0c 6818 6842 mov dx, 0037dh ; ba 7d 03 6819 6843 mov ax, bx ; 89 d8 6820 call 01650h ; e8 9fc96844 call 01650h ; e8 60 c9 6821 6845 xor ah, ah ; 30 e4 6822 6846 mov si, ax ; 89 c6 6823 6847 cmp byte [bp+004h], 001h ; 80 7e 04 01 6824 jne short 04 ccbh ; 75 106848 jne short 04d0ah ; 75 10 6825 6849 mov ax, strict word 0003ch ; b8 3c 00 6826 call 016ach ; e8 ebc96850 call 016ach ; e8 ac c9 6827 6851 and AL, strict byte 0f0h ; 24 f0 6828 6852 xor ah, ah ; 30 e4 6829 6853 sar ax, 004h ; c1 f8 04 6830 call 07d abh ; e8 e0 306854 call 07deah ; e8 e0 30 6831 6855 cmp byte [bp+004h], 002h ; 80 7e 04 02 6832 jne short 04 cd4h ; 75 036856 jne short 04d13h ; 75 03 6833 6857 shr si, 004h ; c1 ee 04 6834 6858 cmp byte [bp+004h], 003h ; 80 7e 04 03 6835 jne short 04 cddh ; 75 036859 jne short 04d1ch ; 75 03 6836 6860 shr si, 008h ; c1 ee 08 6837 6861 cmp byte [bp+004h], 004h ; 80 7e 04 04 6838 jne short 04 ce6h ; 75 036862 jne short 04d25h ; 75 03 6839 6863 shr si, 00ch ; c1 ee 0c 6840 6864 cmp si, strict byte 00010h ; 83 fe 10 6841 jnc short 04 cefh ; 73 046865 jnc short 04d2eh ; 73 04 6842 6866 mov byte [bp-00ch], 001h ; c6 46 f4 01 6843 6867 xor al, al ; 30 c0 … … 6845 6869 mov byte [bp-008h], al ; 88 46 f8 6846 6870 mov byte [bp-00ah], al ; 88 46 f6 6847 mov bx, 00da 4h ; bb a40d6871 mov bx, 00da0h ; bb a0 0d 6848 6872 mov cx, ds ; 8c d9 6849 6873 mov ax, strict word 00004h ; b8 04 00 6850 call 01923h ; e8 1e cc6874 call 01923h ; e8 df cb 6851 6875 push si ; 56 6852 6876 mov al, byte [bp+004h] ; 8a 46 04 … … 6855 6879 push 00554h ; 68 54 05 6856 6880 push strict byte 00004h ; 6a 04 6857 call 01966h ; e8 52cc6881 call 01966h ; e8 13 cc 6858 6882 add sp, strict byte 00008h ; 83 c4 08 6859 6883 and si, strict byte 0000fh ; 83 e6 0f 6860 6884 cmp si, strict byte 00002h ; 83 fe 02 6861 jc short 04d 2dh ; 72 0e6862 jbe short 04d 3ch ; 76 1b6885 jc short 04d6ch ; 72 0e 6886 jbe short 04d7bh ; 76 1b 6863 6887 cmp si, strict byte 00004h ; 83 fe 04 6864 je short 04d 5ah ; 74 346888 je short 04d99h ; 74 34 6865 6889 cmp si, strict byte 00003h ; 83 fe 03 6866 je short 04d 50h ; 74 256867 jmp short 04d 89h ; eb 5c6890 je short 04d8fh ; 74 25 6891 jmp short 04dc8h ; eb 5c 6868 6892 cmp si, strict byte 00001h ; 83 fe 01 6869 jne short 04d 89h ; 75 576893 jne short 04dc8h ; 75 57 6870 6894 xor al, al ; 30 c0 6871 6895 mov byte [bp-006h], al ; 88 46 fa 6872 6896 mov byte [bp-008h], al ; 88 46 f8 6873 jmp short 04d a1h ; eb 656897 jmp short 04de0h ; eb 65 6874 6898 mov dx, 0037ch ; ba 7c 03 6875 6899 mov ax, word [bp-00eh] ; 8b 46 f2 6876 call 01650h ; e8 0b c96900 call 01650h ; e8 cc c8 6877 6901 add AL, strict byte 080h ; 04 80 6878 6902 mov byte [bp-006h], al ; 88 46 fa 6879 6903 mov byte [bp-008h], 000h ; c6 46 f8 00 6880 jmp short 04d a1h ; eb 516904 jmp short 04de0h ; eb 51 6881 6905 mov byte [bp-006h], 000h ; c6 46 fa 00 6882 6906 mov byte [bp-008h], 001h ; c6 46 f8 01 6883 jmp short 04d 64h ; eb 0a6907 jmp short 04da3h ; eb 0a 6884 6908 mov byte [bp-00ah], 001h ; c6 46 f6 01 6885 6909 cmp byte [bp-008h], 000h ; 80 7e f8 00 6886 je short 04d a1h ; 74 3d6887 call 03d 5dh ; e8 f6 ef6910 je short 04de0h ; 74 3d 6911 call 03d9ch ; e8 f6 ef 6888 6912 mov bx, ax ; 89 c3 6889 6913 test AL, strict byte 0ffh ; a8 ff 6890 je short 04d 90h ; 74 236891 call 04c 32h ; e8 c2 fe6914 je short 04dcfh ; 74 23 6915 call 04c71h ; e8 c2 fe 6892 6916 mov al, byte [bp-00ch] ; 8a 46 f4 6893 6917 xor ah, ah ; 30 e4 … … 6899 6923 mov al, byte [bp-008h] ; 8a 46 f8 6900 6924 mov cx, strict word 00001h ; b9 01 00 6901 call 04b 9ch ; e8 13 fe6925 call 04bdbh ; e8 13 fe 6902 6926 xor ax, ax ; 31 c0 6903 6927 xor dx, dx ; 31 d2 6904 jmp near 04 ec3h ; e9 33 016928 jmp near 04f02h ; e9 33 01 6905 6929 mov dx, 00372h ; ba 72 03 6906 6930 mov ax, word [bp-00eh] ; 8b 46 f2 6907 call 0166ch ; e8 d3c86931 call 0166ch ; e8 94 c8 6908 6932 mov di, ax ; 89 c7 6909 6933 shr bx, 008h ; c1 eb 08 6910 6934 mov byte [bp-006h], bl ; 88 5e fa 6911 6935 cmp byte [bp-00ah], 001h ; 80 7e f6 01 6912 jne short 04 dfch ; 75 556936 jne short 04e3bh ; 75 55 6913 6937 xor si, si ; 31 f6 6914 6938 mov ax, 0e200h ; b8 00 e2 6915 6939 mov es, ax ; 8e c0 6916 6940 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6917 jne short 04d 70h ; 75 bb6941 jne short 04dafh ; 75 bb 6918 6942 mov cx, ax ; 89 c1 6919 6943 mov si, word [es:si+01ah] ; 26 8b 74 1a 6920 6944 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6921 jne short 04d 70h ; 75 ad6945 jne short 04dafh ; 75 ad 6922 6946 cmp word [es:si], 05024h ; 26 81 3c 24 50 6923 jne short 04d 70h ; 75 a66947 jne short 04dafh ; 75 a6 6924 6948 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6925 6949 mov dx, word [es:di] ; 26 8b 15 6926 6950 mov ax, word [es:di+002h] ; 26 8b 45 02 6927 6951 cmp ax, 06568h ; 3d 68 65 6928 jne short 04 dfeh ; 75 246952 jne short 04e3dh ; 75 24 6929 6953 cmp dx, 07445h ; 81 fa 45 74 6930 jne short 04 dfeh ; 75 1e6954 jne short 04e3dh ; 75 1e 6931 6955 mov bl, byte [bp-006h] ; 8a 5e fa 6932 6956 xor bh, bh ; 30 ff … … 6935 6959 mov al, byte [bp-008h] ; 8a 46 f8 6936 6960 xor ah, ah ; 30 e4 6937 call 04b 51h ; e8 5f fd6961 call 04b90h ; e8 5f fd 6938 6962 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6939 6963 mov word [bp-010h], cx ; 89 4e f0 6940 jmp short 04e 1dh ; eb 216941 jmp short 04e 23h ; eb 256964 jmp short 04e5ch ; eb 21 6965 jmp short 04e62h ; eb 25 6942 6966 mov bl, byte [bp-006h] ; 8a 5e fa 6943 6967 xor bh, bh ; 30 ff … … 6946 6970 mov al, byte [bp-008h] ; 8a 46 f8 6947 6971 xor ah, ah ; 30 e4 6948 call 04b 51h ; e8 41 fd6972 call 04b90h ; e8 41 fd 6949 6973 sti ; fb 6950 6974 mov word [bp-010h], cx ; 89 4e f0 … … 6953 6977 mov word [bp-012h], ax ; 89 46 ee 6954 6978 call far [bp-012h] ; ff 5e ee 6955 jmp near 04d 70h ; e9 4d ff6979 jmp near 04dafh ; e9 4d ff 6956 6980 cmp byte [bp-008h], 000h ; 80 7e f8 00 6957 jne short 04e 50h ; 75 276981 jne short 04e8fh ; 75 27 6958 6982 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6959 jne short 04e 50h ; 75 216983 jne short 04e8fh ; 75 21 6960 6984 mov di, 007c0h ; bf c0 07 6961 6985 mov es, di ; 8e c7 … … 6970 6994 sbb ax, strict byte 00000h ; 83 d8 00 6971 6995 test ax, ax ; 85 c0 6972 je short 04e 50h ; 74 036973 jmp near 04d 70h ; e9 20 ff6996 je short 04e8fh ; 74 03 6997 jmp near 04dafh ; e9 20 ff 6974 6998 cmp byte [bp-006h], 000h ; 80 7e fa 00 6975 je short 04e 5ah ; 74 046999 je short 04e99h ; 74 04 6976 7000 xor bl, bl ; 30 db 6977 jmp short 04e 5ch ; eb 027001 jmp short 04e9bh ; eb 02 6978 7002 mov BL, strict byte 001h ; b3 01 6979 7003 cmp byte [bp-008h], 000h ; 80 7e f8 00 6980 je short 04e 64h ; 74 027004 je short 04ea3h ; 74 02 6981 7005 mov BL, strict byte 001h ; b3 01 6982 7006 xor dx, dx ; 31 d2 6983 7007 mov ax, di ; 89 f8 6984 call 0166ch ; e8 01 c87008 call 0166ch ; e8 c2 c7 6985 7009 mov si, ax ; 89 c6 6986 7010 mov dx, strict word 00002h ; ba 02 00 6987 7011 mov ax, di ; 89 f8 6988 call 0166ch ; e8 f7c77012 call 0166ch ; e8 b8 c7 6989 7013 cmp si, ax ; 39 c6 6990 je short 04e 8ah ; 74 117014 je short 04ec9h ; 74 11 6991 7015 test bl, bl ; 84 db 6992 jne short 04e a2h ; 75 257016 jne short 04ee1h ; 75 25 6993 7017 mov dx, 001feh ; ba fe 01 6994 7018 mov ax, di ; 89 f8 6995 call 0166ch ; e8 e7c77019 call 0166ch ; e8 a8 c7 6996 7020 cmp ax, 0aa55h ; 3d 55 aa 6997 je short 04e a2h ; 74 187021 je short 04ee1h ; 74 18 6998 7022 mov al, byte [bp-00ch] ; 8a 46 f4 6999 7023 xor ah, ah ; 30 e4 … … 7005 7029 mov al, byte [bp-008h] ; 8a 46 f8 7006 7030 xor cx, cx ; 31 c9 7007 jmp near 04d 86h ; e9 e4 fe7031 jmp near 04dc5h ; e9 e4 fe 7008 7032 mov bl, byte [bp-006h] ; 8a 5e fa 7009 7033 xor bh, bh ; 30 ff … … 7012 7036 mov al, byte [bp-008h] ; 8a 46 f8 7013 7037 xor ah, ah ; 30 e4 7014 call 04b 51h ; e8 9d fc7038 call 04b90h ; e8 9d fc 7015 7039 mov al, byte [bp-006h] ; 8a 46 fa 7016 7040 xor ah, ah ; 30 e4 … … 7025 7049 pop bp ; 5d 7026 7050 retn ; c3 7027 keyboard_panic_: ; 0xf4 ecaLB 0x137051 keyboard_panic_: ; 0xf4f09 LB 0x13 7028 7052 push bp ; 55 7029 7053 mov bp, sp ; 89 e5 … … 7031 7055 push 00574h ; 68 74 05 7032 7056 push strict byte 00007h ; 6a 07 7033 call 01966h ; e8 90ca7057 call 01966h ; e8 51 ca 7034 7058 add sp, strict byte 00006h ; 83 c4 06 7035 7059 mov sp, bp ; 89 ec 7036 7060 pop bp ; 5d 7037 7061 retn ; c3 7038 _keyboard_init: ; 0xf4 eddLB 0x26a7062 _keyboard_init: ; 0xf4f1c LB 0x26a 7039 7063 push bp ; 55 7040 7064 mov bp, sp ; 89 e5 … … 7048 7072 ; sub ah, ah ; 2a e4 7049 7073 test AL, strict byte 002h ; a8 02 7050 je short 04f 00h ; 74 0d7074 je short 04f3fh ; 74 0d 7051 7075 dec bx ; 4b 7052 7076 test bx, bx ; 85 db 7053 jbe short 04f 00h ; 76 087077 jbe short 04f3fh ; 76 08 7054 7078 xor al, al ; 30 c0 7055 7079 mov dx, 00080h ; ba 80 00 7056 7080 out DX, AL ; ee 7057 jmp short 04 ee9h ; eb e97081 jmp short 04f28h ; eb e9 7058 7082 test bx, bx ; 85 db 7059 jne short 04f 09h ; 75 057083 jne short 04f48h ; 75 05 7060 7084 xor ax, ax ; 31 c0 7061 call 04 ecah ; e8 c1 ff7085 call 04f09h ; e8 c1 ff 7062 7086 mov bx, strict word 0ffffh ; bb ff ff 7063 7087 mov dx, strict word 00064h ; ba 64 00 … … 7066 7090 ; sub ah, ah ; 2a e4 7067 7091 test AL, strict byte 001h ; a8 01 7068 jne short 04f 23h ; 75 0d7092 jne short 04f62h ; 75 0d 7069 7093 dec bx ; 4b 7070 7094 test bx, bx ; 85 db 7071 jbe short 04f 23h ; 76 087095 jbe short 04f62h ; 76 08 7072 7096 mov AL, strict byte 001h ; b0 01 7073 7097 mov dx, 00080h ; ba 80 00 7074 7098 out DX, AL ; ee 7075 jmp short 04f 0ch ; eb e97099 jmp short 04f4bh ; eb e9 7076 7100 test bx, bx ; 85 db 7077 jne short 04f 2dh ; 75 067101 jne short 04f6ch ; 75 06 7078 7102 mov ax, strict word 00001h ; b8 01 00 7079 call 04 ecah ; e8 9d ff7103 call 04f09h ; e8 9d ff 7080 7104 mov dx, strict word 00060h ; ba 60 00 7081 7105 in AL, DX ; ec … … 7083 7107 ; sub ah, ah ; 2a e4 7084 7108 cmp ax, strict word 00055h ; 3d 55 00 7085 je short 04f 3eh ; 74 067109 je short 04f7dh ; 74 06 7086 7110 mov ax, 003dfh ; b8 df 03 7087 call 04 ecah ; e8 8c ff7111 call 04f09h ; e8 8c ff 7088 7112 mov AL, strict byte 0abh ; b0 ab 7089 7113 mov dx, strict word 00064h ; ba 64 00 … … 7095 7119 ; sub ah, ah ; 2a e4 7096 7120 test AL, strict byte 002h ; a8 02 7097 je short 04f 5eh ; 74 0d7121 je short 04f9dh ; 74 0d 7098 7122 dec bx ; 4b 7099 7123 test bx, bx ; 85 db 7100 jbe short 04f 5eh ; 76 087124 jbe short 04f9dh ; 76 08 7101 7125 mov AL, strict byte 010h ; b0 10 7102 7126 mov dx, 00080h ; ba 80 00 7103 7127 out DX, AL ; ee 7104 jmp short 04f 47h ; eb e97128 jmp short 04f86h ; eb e9 7105 7129 test bx, bx ; 85 db 7106 jne short 04f 68h ; 75 067130 jne short 04fa7h ; 75 06 7107 7131 mov ax, strict word 0000ah ; b8 0a 00 7108 call 04 ecah ; e8 62 ff7132 call 04f09h ; e8 62 ff 7109 7133 mov bx, strict word 0ffffh ; bb ff ff 7110 7134 mov dx, strict word 00064h ; ba 64 00 … … 7113 7137 ; sub ah, ah ; 2a e4 7114 7138 test AL, strict byte 001h ; a8 01 7115 jne short 04f 82h ; 75 0d7139 jne short 04fc1h ; 75 0d 7116 7140 dec bx ; 4b 7117 7141 test bx, bx ; 85 db 7118 jbe short 04f 82h ; 76 087142 jbe short 04fc1h ; 76 08 7119 7143 mov AL, strict byte 011h ; b0 11 7120 7144 mov dx, 00080h ; ba 80 00 7121 7145 out DX, AL ; ee 7122 jmp short 04f 6bh ; eb e97146 jmp short 04faah ; eb e9 7123 7147 test bx, bx ; 85 db 7124 jne short 04f 8ch ; 75 067148 jne short 04fcbh ; 75 06 7125 7149 mov ax, strict word 0000bh ; b8 0b 00 7126 call 04 ecah ; e8 3e ff7150 call 04f09h ; e8 3e ff 7127 7151 mov dx, strict word 00060h ; ba 60 00 7128 7152 in AL, DX ; ec … … 7130 7154 ; sub ah, ah ; 2a e4 7131 7155 test ax, ax ; 85 c0 7132 je short 04f 9ch ; 74 067156 je short 04fdbh ; 74 06 7133 7157 mov ax, 003e0h ; b8 e0 03 7134 call 04 ecah ; e8 2e ff7158 call 04f09h ; e8 2e ff 7135 7159 mov AL, strict byte 0ffh ; b0 ff 7136 7160 mov dx, strict word 00060h ; ba 60 00 … … 7142 7166 ; sub ah, ah ; 2a e4 7143 7167 test AL, strict byte 002h ; a8 02 7144 je short 04f bch ; 74 0d7168 je short 04ffbh ; 74 0d 7145 7169 dec bx ; 4b 7146 7170 test bx, bx ; 85 db 7147 jbe short 04f bch ; 76 087171 jbe short 04ffbh ; 76 08 7148 7172 mov AL, strict byte 020h ; b0 20 7149 7173 mov dx, 00080h ; ba 80 00 7150 7174 out DX, AL ; ee 7151 jmp short 04f a5h ; eb e97175 jmp short 04fe4h ; eb e9 7152 7176 test bx, bx ; 85 db 7153 jne short 0 4fc6h ; 75 067177 jne short 05005h ; 75 06 7154 7178 mov ax, strict word 00014h ; b8 14 00 7155 call 04 ecah ; e8 04 ff7179 call 04f09h ; e8 04 ff 7156 7180 mov bx, strict word 0ffffh ; bb ff ff 7157 7181 mov dx, strict word 00064h ; ba 64 00 … … 7160 7184 ; sub ah, ah ; 2a e4 7161 7185 test AL, strict byte 001h ; a8 01 7162 jne short 0 4fe0h ; 75 0d7186 jne short 0501fh ; 75 0d 7163 7187 dec bx ; 4b 7164 7188 test bx, bx ; 85 db 7165 jbe short 0 4fe0h ; 76 087189 jbe short 0501fh ; 76 08 7166 7190 mov AL, strict byte 021h ; b0 21 7167 7191 mov dx, 00080h ; ba 80 00 7168 7192 out DX, AL ; ee 7169 jmp short 0 4fc9h ; eb e97193 jmp short 05008h ; eb e9 7170 7194 test bx, bx ; 85 db 7171 jne short 0 4feah ; 75 067195 jne short 05029h ; 75 06 7172 7196 mov ax, strict word 00015h ; b8 15 00 7173 call 04 ecah ; e8 e0 fe7197 call 04f09h ; e8 e0 fe 7174 7198 mov dx, strict word 00060h ; ba 60 00 7175 7199 in AL, DX ; ec … … 7177 7201 ; sub ah, ah ; 2a e4 7178 7202 cmp ax, 000fah ; 3d fa 00 7179 je short 0 4ffbh ; 74 067203 je short 0503ah ; 74 06 7180 7204 mov ax, 003e1h ; b8 e1 03 7181 call 04 ecah ; e8 cf fe7205 call 04f09h ; e8 cf fe 7182 7206 mov dx, strict word 00064h ; ba 64 00 7183 7207 in AL, DX ; ec … … 7185 7209 ; sub ah, ah ; 2a e4 7186 7210 test AL, strict byte 001h ; a8 01 7187 jne short 050 0dh ; 75 087211 jne short 0504ch ; 75 08 7188 7212 mov AL, strict byte 031h ; b0 31 7189 7213 mov dx, 00080h ; ba 80 00 7190 7214 out DX, AL ; ee 7191 jmp short 0 4ffbh ; eb ee7215 jmp short 0503ah ; eb ee 7192 7216 mov dx, strict word 00060h ; ba 60 00 7193 7217 in AL, DX ; ec … … 7195 7219 ; sub ah, ah ; 2a e4 7196 7220 cmp ax, 000aah ; 3d aa 00 7197 je short 050 26h ; 74 0e7221 je short 05065h ; 74 0e 7198 7222 in AL, DX ; ec 7199 7223 db 02ah, 0e4h 7200 7224 ; sub ah, ah ; 2a e4 7201 7225 cmp ax, 000aah ; 3d aa 00 7202 je short 050 26h ; 74 067226 je short 05065h ; 74 06 7203 7227 mov ax, 003e2h ; b8 e2 03 7204 call 04 ecah ; e8 a4 fe7228 call 04f09h ; e8 a4 fe 7205 7229 mov AL, strict byte 0f5h ; b0 f5 7206 7230 mov dx, strict word 00060h ; ba 60 00 … … 7212 7236 ; sub ah, ah ; 2a e4 7213 7237 test AL, strict byte 002h ; a8 02 7214 je short 050 46h ; 74 0d7238 je short 05085h ; 74 0d 7215 7239 dec bx ; 4b 7216 7240 test bx, bx ; 85 db 7217 jbe short 050 46h ; 76 087241 jbe short 05085h ; 76 08 7218 7242 mov AL, strict byte 040h ; b0 40 7219 7243 mov dx, 00080h ; ba 80 00 7220 7244 out DX, AL ; ee 7221 jmp short 050 2fh ; eb e97245 jmp short 0506eh ; eb e9 7222 7246 test bx, bx ; 85 db 7223 jne short 050 50h ; 75 067247 jne short 0508fh ; 75 06 7224 7248 mov ax, strict word 00028h ; b8 28 00 7225 call 04 ecah ; e8 7a fe7249 call 04f09h ; e8 7a fe 7226 7250 mov bx, strict word 0ffffh ; bb ff ff 7227 7251 mov dx, strict word 00064h ; ba 64 00 … … 7230 7254 ; sub ah, ah ; 2a e4 7231 7255 test AL, strict byte 001h ; a8 01 7232 jne short 050 6ah ; 75 0d7256 jne short 050a9h ; 75 0d 7233 7257 dec bx ; 4b 7234 7258 test bx, bx ; 85 db 7235 jbe short 050 6ah ; 76 087259 jbe short 050a9h ; 76 08 7236 7260 mov AL, strict byte 041h ; b0 41 7237 7261 mov dx, 00080h ; ba 80 00 7238 7262 out DX, AL ; ee 7239 jmp short 050 53h ; eb e97263 jmp short 05092h ; eb e9 7240 7264 test bx, bx ; 85 db 7241 jne short 050 74h ; 75 067265 jne short 050b3h ; 75 06 7242 7266 mov ax, strict word 00029h ; b8 29 00 7243 call 04 ecah ; e8 56 fe7267 call 04f09h ; e8 56 fe 7244 7268 mov dx, strict word 00060h ; ba 60 00 7245 7269 in AL, DX ; ec … … 7247 7271 ; sub ah, ah ; 2a e4 7248 7272 cmp ax, 000fah ; 3d fa 00 7249 je short 050 85h ; 74 067273 je short 050c4h ; 74 06 7250 7274 mov ax, 003e3h ; b8 e3 03 7251 call 04 ecah ; e8 45 fe7275 call 04f09h ; e8 45 fe 7252 7276 mov AL, strict byte 060h ; b0 60 7253 7277 mov dx, strict word 00064h ; ba 64 00 … … 7259 7283 ; sub ah, ah ; 2a e4 7260 7284 test AL, strict byte 002h ; a8 02 7261 je short 050 a5h ; 74 0d7285 je short 050e4h ; 74 0d 7262 7286 dec bx ; 4b 7263 7287 test bx, bx ; 85 db 7264 jbe short 050 a5h ; 76 087288 jbe short 050e4h ; 76 08 7265 7289 mov AL, strict byte 050h ; b0 50 7266 7290 mov dx, 00080h ; ba 80 00 7267 7291 out DX, AL ; ee 7268 jmp short 050 8eh ; eb e97292 jmp short 050cdh ; eb e9 7269 7293 test bx, bx ; 85 db 7270 jne short 050 afh ; 75 067294 jne short 050eeh ; 75 06 7271 7295 mov ax, strict word 00032h ; b8 32 00 7272 call 04 ecah ; e8 1b fe7296 call 04f09h ; e8 1b fe 7273 7297 mov AL, strict byte 065h ; b0 65 7274 7298 mov dx, strict word 00060h ; ba 60 00 … … 7280 7304 ; sub ah, ah ; 2a e4 7281 7305 test AL, strict byte 002h ; a8 02 7282 je short 05 0cfh ; 74 0d7306 je short 0510eh ; 74 0d 7283 7307 dec bx ; 4b 7284 7308 test bx, bx ; 85 db 7285 jbe short 05 0cfh ; 76 087309 jbe short 0510eh ; 76 08 7286 7310 mov AL, strict byte 060h ; b0 60 7287 7311 mov dx, 00080h ; ba 80 00 7288 7312 out DX, AL ; ee 7289 jmp short 050 b8h ; eb e97313 jmp short 050f7h ; eb e9 7290 7314 test bx, bx ; 85 db 7291 jne short 05 0d9h ; 75 067315 jne short 05118h ; 75 06 7292 7316 mov ax, strict word 0003ch ; b8 3c 00 7293 call 04 ecah ; e8 f1 fd7317 call 04f09h ; e8 f1 fd 7294 7318 mov AL, strict byte 0f4h ; b0 f4 7295 7319 mov dx, strict word 00060h ; ba 60 00 … … 7301 7325 ; sub ah, ah ; 2a e4 7302 7326 test AL, strict byte 002h ; a8 02 7303 je short 05 0f9h ; 74 0d7327 je short 05138h ; 74 0d 7304 7328 dec bx ; 4b 7305 7329 test bx, bx ; 85 db 7306 jbe short 05 0f9h ; 76 087330 jbe short 05138h ; 76 08 7307 7331 mov AL, strict byte 070h ; b0 70 7308 7332 mov dx, 00080h ; ba 80 00 7309 7333 out DX, AL ; ee 7310 jmp short 05 0e2h ; eb e97334 jmp short 05121h ; eb e9 7311 7335 test bx, bx ; 85 db 7312 jne short 051 03h ; 75 067336 jne short 05142h ; 75 06 7313 7337 mov ax, strict word 00046h ; b8 46 00 7314 call 04 ecah ; e8 c7 fd7338 call 04f09h ; e8 c7 fd 7315 7339 mov bx, strict word 0ffffh ; bb ff ff 7316 7340 mov dx, strict word 00064h ; ba 64 00 … … 7319 7343 ; sub ah, ah ; 2a e4 7320 7344 test AL, strict byte 001h ; a8 01 7321 jne short 051 1dh ; 75 0d7345 jne short 0515ch ; 75 0d 7322 7346 dec bx ; 4b 7323 7347 test bx, bx ; 85 db 7324 jbe short 051 1dh ; 76 087348 jbe short 0515ch ; 76 08 7325 7349 mov AL, strict byte 071h ; b0 71 7326 7350 mov dx, 00080h ; ba 80 00 7327 7351 out DX, AL ; ee 7328 jmp short 051 06h ; eb e97352 jmp short 05145h ; eb e9 7329 7353 test bx, bx ; 85 db 7330 jne short 051 27h ; 75 067354 jne short 05166h ; 75 06 7331 7355 mov ax, strict word 00046h ; b8 46 00 7332 call 04 ecah ; e8 a3 fd7356 call 04f09h ; e8 a3 fd 7333 7357 mov dx, strict word 00060h ; ba 60 00 7334 7358 in AL, DX ; ec … … 7336 7360 ; sub ah, ah ; 2a e4 7337 7361 cmp ax, 000fah ; 3d fa 00 7338 je short 051 38h ; 74 067362 je short 05177h ; 74 06 7339 7363 mov ax, 003e4h ; b8 e4 03 7340 call 04 ecah ; e8 92 fd7364 call 04f09h ; e8 92 fd 7341 7365 mov AL, strict byte 0a8h ; b0 a8 7342 7366 mov dx, strict word 00064h ; ba 64 00 7343 7367 out DX, AL ; ee 7344 7368 xor ax, ax ; 31 c0 7345 call 06 5eah ; e8 a7 147369 call 06629h ; e8 a7 14 7346 7370 mov sp, bp ; 89 ec 7347 7371 pop bp ; 5d 7348 7372 retn ; c3 7349 enqueue_key_: ; 0xf51 47LB 0x9e7373 enqueue_key_: ; 0xf5186 LB 0x9e 7350 7374 push bp ; 55 7351 7375 mov bp, sp ; 89 e5 … … 7359 7383 mov dx, strict word 0001ah ; ba 1a 00 7360 7384 mov ax, strict word 00040h ; b8 40 00 7361 call 0166ch ; e8 0f c57385 call 0166ch ; e8 d0 c4 7362 7386 mov di, ax ; 89 c7 7363 7387 mov dx, strict word 0001ch ; ba 1c 00 7364 7388 mov ax, strict word 00040h ; b8 40 00 7365 call 0166ch ; e8 04 c57389 call 0166ch ; e8 c5 c4 7366 7390 mov si, ax ; 89 c6 7367 7391 lea cx, [si+002h] ; 8d 4c 02 7368 7392 cmp cx, strict byte 0003eh ; 83 f9 3e 7369 jc short 051 75h ; 72 037393 jc short 051b4h ; 72 03 7370 7394 mov cx, strict word 0001eh ; b9 1e 00 7371 7395 cmp cx, di ; 39 f9 7372 jne short 051 7dh ; 75 047396 jne short 051bch ; 75 04 7373 7397 xor ax, ax ; 31 c0 7374 jmp short 051 a7h ; eb 2a7398 jmp short 051e6h ; eb 2a 7375 7399 mov al, bl ; 88 d8 7376 7400 xor ah, ah ; 30 e4 … … 7378 7402 mov dx, si ; 89 f2 7379 7403 mov ax, strict word 00040h ; b8 40 00 7380 call 0165eh ; e8 d3c47404 call 0165eh ; e8 94 c4 7381 7405 mov bl, byte [bp-00ah] ; 8a 5e f6 7382 7406 xor bh, bh ; 30 ff 7383 7407 lea dx, [si+001h] ; 8d 54 01 7384 7408 mov ax, strict word 00040h ; b8 40 00 7385 call 0165eh ; e8 c5c47409 call 0165eh ; e8 86 c4 7386 7410 mov bx, cx ; 89 cb 7387 7411 mov dx, strict word 0001ch ; ba 1c 00 7388 7412 mov ax, strict word 00040h ; b8 40 00 7389 call 0167ah ; e8 d6c47413 call 0167ah ; e8 97 c4 7390 7414 mov ax, strict word 00001h ; b8 01 00 7391 7415 lea sp, [bp-008h] ; 8d 66 f8 … … 7397 7421 retn ; c3 7398 7422 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7399 db 01dh, 0 23h, 055h, 0dbh, 052h, 07dh, 052h, 07dh, 052h, 06ah, 053h, 054h, 052h, 0eeh, 053h, 062h7400 db 054h, 0 09h, 055h, 0e7h, 054h, 022h, 053h, 07dh, 052h, 07dh, 052h, 0ach, 053h, 072h, 052h, 042h7401 db 054h, 0 c7h, 054h, 002h, 055h7402 _int09_function: ; 0xf5 1e5LB 0x4947423 db 01dh, 062h, 055h, 01ah, 053h, 0bch, 052h, 0bch, 052h, 0a9h, 053h, 093h, 052h, 02dh, 054h, 0a1h 7424 db 054h, 048h, 055h, 026h, 055h, 061h, 053h, 0bch, 052h, 0bch, 052h, 0ebh, 053h, 0b1h, 052h, 081h 7425 db 054h, 006h, 055h, 041h, 055h 7426 _int09_function: ; 0xf5224 LB 0x494 7403 7427 push bp ; 55 7404 7428 mov bp, sp ; 89 e5 … … 7408 7432 mov byte [bp-00ah], al ; 88 46 f6 7409 7433 test al, al ; 84 c0 7410 jne short 052 0fh ; 75 197411 mov bx, 00da 4h ; bb a40d7434 jne short 0524eh ; 75 19 7435 mov bx, 00da0h ; bb a0 0d 7412 7436 mov cx, ds ; 8c d9 7413 7437 mov ax, strict word 00004h ; b8 04 00 7414 call 01923h ; e8 22 c77438 call 01923h ; e8 e3 c6 7415 7439 push 00587h ; 68 87 05 7416 7440 push strict byte 00004h ; 6a 04 7417 call 01966h ; e8 5dc77441 call 01966h ; e8 1e c7 7418 7442 add sp, strict byte 00004h ; 83 c4 04 7419 jmp near 05 2d5h ; e9 c6 007443 jmp near 05314h ; e9 c6 00 7420 7444 mov dx, strict word 00018h ; ba 18 00 7421 7445 mov ax, strict word 00040h ; b8 40 00 7422 call 01650h ; e8 38 c47446 call 01650h ; e8 f9 c3 7423 7447 mov byte [bp-010h], al ; 88 46 f0 7424 7448 mov byte [bp-008h], al ; 88 46 f8 7425 7449 mov dx, 00096h ; ba 96 00 7426 7450 mov ax, strict word 00040h ; b8 40 00 7427 call 01650h ; e8 29 c47451 call 01650h ; e8 ea c3 7428 7452 mov byte [bp-004h], al ; 88 46 fc 7429 7453 mov byte [bp-00ch], al ; 88 46 f4 7430 7454 mov dx, strict word 00017h ; ba 17 00 7431 7455 mov ax, strict word 00040h ; b8 40 00 7432 call 01650h ; e8 1a c47456 call 01650h ; e8 db c3 7433 7457 mov byte [bp-006h], al ; 88 46 fa 7434 7458 mov byte [bp-00eh], al ; 88 46 f2 … … 7437 7461 pop ES ; 07 7438 7462 mov cx, strict word 00012h ; b9 12 00 7439 mov di, 051 b0h ; bf b0517463 mov di, 051efh ; bf ef 51 7440 7464 repne scasb ; f2 ae 7441 7465 sal cx, 1 ; d1 e1 7442 7466 mov di, cx ; 89 cf 7443 mov ax, word [cs:di+05 1c1h] ; 2e 8b 85 c1 517467 mov ax, word [cs:di+05200h] ; 2e 8b 85 00 52 7444 7468 jmp ax ; ff e0 7445 7469 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7449 7473 mov dx, strict word 00017h ; ba 17 00 7450 7474 mov ax, strict word 00040h ; b8 40 00 7451 call 0165eh ; e8 f6c37475 call 0165eh ; e8 b7 c3 7452 7476 or byte [bp-008h], 040h ; 80 4e f8 40 7453 7477 mov al, byte [bp-008h] ; 8a 46 f8 7454 jmp near 05 4f3h ; e9 81 027478 jmp near 05532h ; e9 81 02 7455 7479 mov al, byte [bp-010h] ; 8a 46 f0 7456 7480 and AL, strict byte 0bfh ; 24 bf 7457 7481 mov byte [bp-008h], al ; 88 46 f8 7458 jmp near 05 4f3h ; e9 76 027482 jmp near 05532h ; e9 76 02 7459 7483 test byte [bp-00ch], 002h ; f6 46 f4 02 7460 jne short 052 b6h ; 75 337484 jne short 052f5h ; 75 33 7461 7485 mov al, byte [bp-00ah] ; 8a 46 f6 7462 7486 and AL, strict byte 07fh ; 24 7f 7463 7487 cmp AL, strict byte 02ah ; 3c 2a 7464 jne short 052 91h ; 75 057488 jne short 052d0h ; 75 05 7465 7489 mov dx, strict word 00002h ; ba 02 00 7466 jmp short 052 94h ; eb 037490 jmp short 052d3h ; eb 03 7467 7491 mov dx, strict word 00001h ; ba 01 00 7468 7492 test byte [bp-00ah], 080h ; f6 46 f6 80 7469 je short 052 a3h ; 74 097493 je short 052e2h ; 74 09 7470 7494 mov al, dl ; 88 d0 7471 7495 not al ; f6 d0 7472 7496 and byte [bp-00eh], al ; 20 46 f2 7473 jmp short 052 a6h ; eb 037497 jmp short 052e5h ; eb 03 7474 7498 or byte [bp-00eh], dl ; 08 56 f2 7475 7499 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7478 7502 mov dx, strict word 00017h ; ba 17 00 7479 7503 mov ax, strict word 00040h ; b8 40 00 7480 call 0165eh ; e8 a8c37504 call 0165eh ; e8 69 c3 7481 7505 mov al, byte [bp-00ah] ; 8a 46 f6 7482 7506 and AL, strict byte 07fh ; 24 7f 7483 7507 cmp AL, strict byte 01dh ; 3c 1d 7484 je short 05 2c3h ; 74 047508 je short 05302h ; 74 04 7485 7509 and byte [bp-00ch], 0feh ; 80 66 f4 fe 7486 7510 and byte [bp-00ch], 0fdh ; 80 66 f4 fd … … 7489 7513 mov dx, 00096h ; ba 96 00 7490 7514 mov ax, strict word 00040h ; b8 40 00 7491 call 0165eh ; e8 89c37515 call 0165eh ; e8 4a c3 7492 7516 lea sp, [bp-002h] ; 8d 66 fe 7493 7517 pop di ; 5f … … 7495 7519 retn ; c3 7496 7520 test byte [bp-004h], 001h ; f6 46 fc 01 7497 jne short 052 b6h ; 75 d57521 jne short 052f5h ; 75 d5 7498 7522 mov al, byte [bp-006h] ; 8a 46 fa 7499 7523 or AL, strict byte 004h ; 0c 04 … … 7503 7527 mov dx, strict word 00017h ; ba 17 00 7504 7528 mov ax, strict word 00040h ; b8 40 00 7505 call 0165eh ; e8 68c37529 call 0165eh ; e8 29 c3 7506 7530 mov al, byte [bp-004h] ; 8a 46 fc 7507 7531 test AL, strict byte 002h ; a8 02 7508 je short 053 0bh ; 74 0e7532 je short 0534ah ; 74 0e 7509 7533 or AL, strict byte 004h ; 0c 04 7510 7534 mov byte [bp-00ch], al ; 88 46 f4 … … 7512 7536 mov bx, ax ; 89 c3 7513 7537 mov dx, 00096h ; ba 96 00 7514 jmp short 053 1ah ; eb 0f7538 jmp short 05359h ; eb 0f 7515 7539 mov al, byte [bp-010h] ; 8a 46 f0 7516 7540 or AL, strict byte 001h ; 0c 01 … … 7520 7544 mov dx, strict word 00018h ; ba 18 00 7521 7545 mov ax, strict word 00040h ; b8 40 00 7522 call 0165eh ; e8 3e c37523 jmp short 052 b6h ; eb 947546 call 0165eh ; e8 ff c2 7547 jmp short 052f5h ; eb 94 7524 7548 test byte [bp-004h], 001h ; f6 46 fc 01 7525 jne short 052 b6h ; 75 8e7549 jne short 052f5h ; 75 8e 7526 7550 mov al, byte [bp-006h] ; 8a 46 fa 7527 7551 and AL, strict byte 0fbh ; 24 fb … … 7531 7555 mov dx, strict word 00017h ; ba 17 00 7532 7556 mov ax, strict word 00040h ; b8 40 00 7533 call 0165eh ; e8 21 c37557 call 0165eh ; e8 e2 c2 7534 7558 mov al, byte [bp-004h] ; 8a 46 fc 7535 7559 test AL, strict byte 002h ; a8 02 7536 je short 053 52h ; 74 0e7560 je short 05391h ; 74 0e 7537 7561 and AL, strict byte 0fbh ; 24 fb 7538 7562 mov byte [bp-00ch], al ; 88 46 f4 … … 7540 7564 mov bx, ax ; 89 c3 7541 7565 mov dx, 00096h ; ba 96 00 7542 jmp short 053 61h ; eb 0f7566 jmp short 053a0h ; eb 0f 7543 7567 mov al, byte [bp-010h] ; 8a 46 f0 7544 7568 and AL, strict byte 0feh ; 24 fe … … 7548 7572 mov dx, strict word 00018h ; ba 18 00 7549 7573 mov ax, strict word 00040h ; b8 40 00 7550 call 0165eh ; e8 f7c27551 jmp near 052 b6h ; e9 4c ff7574 call 0165eh ; e8 b8 c2 7575 jmp near 052f5h ; e9 4c ff 7552 7576 mov al, byte [bp-006h] ; 8a 46 fa 7553 7577 or AL, strict byte 008h ; 0c 08 … … 7557 7581 mov dx, strict word 00017h ; ba 17 00 7558 7582 mov ax, strict word 00040h ; b8 40 00 7559 call 0165eh ; e8 dfc27583 call 0165eh ; e8 a0 c2 7560 7584 mov al, byte [bp-004h] ; 8a 46 fc 7561 7585 test AL, strict byte 002h ; a8 02 7562 je short 053 94h ; 74 0e7586 je short 053d3h ; 74 0e 7563 7587 or AL, strict byte 008h ; 0c 08 7564 7588 mov byte [bp-00ch], al ; 88 46 f4 … … 7566 7590 mov bx, ax ; 89 c3 7567 7591 mov dx, 00096h ; ba 96 00 7568 jmp short 053 a3h ; eb 0f7592 jmp short 053e2h ; eb 0f 7569 7593 mov al, byte [bp-010h] ; 8a 46 f0 7570 7594 or AL, strict byte 002h ; 0c 02 … … 7574 7598 mov dx, strict word 00018h ; ba 18 00 7575 7599 mov ax, strict word 00040h ; b8 40 00 7576 call 0165eh ; e8 b5c27577 jmp near 052 b6h ; e9 0a ff7600 call 0165eh ; e8 76 c2 7601 jmp near 052f5h ; e9 0a ff 7578 7602 mov al, byte [bp-006h] ; 8a 46 fa 7579 7603 and AL, strict byte 0f7h ; 24 f7 … … 7583 7607 mov dx, strict word 00017h ; ba 17 00 7584 7608 mov ax, strict word 00040h ; b8 40 00 7585 call 0165eh ; e8 9dc27609 call 0165eh ; e8 5e c2 7586 7610 mov al, byte [bp-004h] ; 8a 46 fc 7587 7611 test AL, strict byte 002h ; a8 02 7588 je short 05 3d6h ; 74 0e7612 je short 05415h ; 74 0e 7589 7613 and AL, strict byte 0f7h ; 24 f7 7590 7614 mov byte [bp-00ch], al ; 88 46 f4 … … 7592 7616 mov bx, ax ; 89 c3 7593 7617 mov dx, 00096h ; ba 96 00 7594 jmp short 05 3e5h ; eb 0f7618 jmp short 05424h ; eb 0f 7595 7619 mov al, byte [bp-010h] ; 8a 46 f0 7596 7620 and AL, strict byte 0fdh ; 24 fd … … 7600 7624 mov dx, strict word 00018h ; ba 18 00 7601 7625 mov ax, strict word 00040h ; b8 40 00 7602 call 0165eh ; e8 73c27603 jmp near 052 b6h ; e9 c8 fe7626 call 0165eh ; e8 34 c2 7627 jmp near 052f5h ; e9 c8 fe 7604 7628 test byte [bp-004h], 003h ; f6 46 fc 03 7605 jne short 054 14h ; 75 207629 jne short 05453h ; 75 20 7606 7630 mov al, byte [bp-010h] ; 8a 46 f0 7607 7631 or AL, strict byte 020h ; 0c 20 … … 7611 7635 mov dx, strict word 00018h ; ba 18 00 7612 7636 mov ax, strict word 00040h ; b8 40 00 7613 call 0165eh ; e8 55c27637 call 0165eh ; e8 16 c2 7614 7638 mov al, byte [bp-006h] ; 8a 46 fa 7615 7639 xor AL, strict byte 020h ; 34 20 7616 7640 mov byte [bp-00eh], al ; 88 46 f2 7617 jmp near 052 a9h ; e9 95 fe7641 jmp near 052e8h ; e9 95 fe 7618 7642 mov al, byte [bp-010h] ; 8a 46 f0 7619 7643 or AL, strict byte 008h ; 0c 08 … … 7623 7647 mov dx, strict word 00018h ; ba 18 00 7624 7648 mov ax, strict word 00040h ; b8 40 00 7625 call 0165eh ; e8 35 c27649 call 0165eh ; e8 f6 c1 7626 7650 mov AL, strict byte 0aeh ; b0 ae 7627 7651 mov dx, strict word 00064h ; ba 64 00 7628 7652 out DX, AL ; ee 7629 call 0e034h ; e8 02 8c7653 call 0e034h ; e8 c3 8b 7630 7654 mov dx, strict word 00018h ; ba 18 00 7631 7655 mov ax, strict word 00040h ; b8 40 00 7632 call 01650h ; e8 15 c27656 call 01650h ; e8 d6 c1 7633 7657 test AL, strict byte 008h ; a8 08 7634 jne short 054 32h ; 75 f37635 jmp near 052 b6h ; e9 74 fe7658 jne short 05471h ; 75 f3 7659 jmp near 052f5h ; e9 74 fe 7636 7660 test byte [bp-004h], 003h ; f6 46 fc 03 7637 je short 054 4bh ; 74 037638 jmp near 052 b6h ; e9 6b fe7661 je short 0548ah ; 74 03 7662 jmp near 052f5h ; e9 6b fe 7639 7663 mov al, byte [bp-010h] ; 8a 46 f0 7640 7664 and AL, strict byte 0dfh ; 24 df … … 7644 7668 mov dx, strict word 00018h ; ba 18 00 7645 7669 mov ax, strict word 00040h ; b8 40 00 7646 call 0165eh ; e8 fec17647 jmp short 054 48h ; eb e67670 call 0165eh ; e8 bf c1 7671 jmp short 05487h ; eb e6 7648 7672 test byte [bp-004h], 002h ; f6 46 fc 02 7649 je short 054 9bh ; 74 337673 je short 054dah ; 74 33 7650 7674 mov dx, strict word 0001ah ; ba 1a 00 7651 7675 mov ax, strict word 00040h ; b8 40 00 7652 call 0166ch ; e8 fbc17676 call 0166ch ; e8 bc c1 7653 7677 mov bx, ax ; 89 c3 7654 7678 mov dx, strict word 0001ch ; ba 1c 00 7655 7679 mov ax, strict word 00040h ; b8 40 00 7656 call 0167ah ; e8 fec17680 call 0167ah ; e8 bf c1 7657 7681 mov bx, 00080h ; bb 80 00 7658 7682 mov dx, strict word 00071h ; ba 71 00 7659 7683 mov ax, strict word 00040h ; b8 40 00 7660 call 0165eh ; e8 d6c17684 call 0165eh ; e8 97 c1 7661 7685 mov AL, strict byte 0aeh ; b0 ae 7662 7686 mov dx, strict word 00064h ; ba 64 00 … … 7667 7691 xor dx, dx ; 31 d2 7668 7692 xor ax, ax ; 31 c0 7669 call 051 47h ; e8 ae fc7670 jmp short 054 48h ; eb ad7693 call 05186h ; e8 ae fc 7694 jmp short 05487h ; eb ad 7671 7695 mov al, byte [bp-010h] ; 8a 46 f0 7672 7696 or AL, strict byte 010h ; 0c 10 … … 7676 7700 mov dx, strict word 00018h ; ba 18 00 7677 7701 mov ax, strict word 00040h ; b8 40 00 7678 call 0165eh ; e8 aec17702 call 0165eh ; e8 6f c1 7679 7703 mov al, byte [bp-006h] ; 8a 46 fa 7680 7704 xor AL, strict byte 010h ; 34 10 … … 7684 7708 mov dx, strict word 00017h ; ba 17 00 7685 7709 mov ax, strict word 00040h ; b8 40 00 7686 call 0165eh ; e8 99c17687 jmp short 054 48h ; eb 817710 call 0165eh ; e8 5a c1 7711 jmp short 05487h ; eb 81 7688 7712 test byte [bp-004h], 002h ; f6 46 fc 02 7689 je short 05 4d0h ; 74 037690 jmp near 052 b6h ; e9 e6 fd7713 je short 0550fh ; 74 03 7714 jmp near 052f5h ; e9 e6 fd 7691 7715 mov al, byte [bp-010h] ; 8a 46 f0 7692 7716 and AL, strict byte 0efh ; 24 ef … … 7696 7720 mov dx, strict word 00018h ; ba 18 00 7697 7721 mov ax, strict word 00040h ; b8 40 00 7698 call 0165eh ; e8 79c17699 jmp short 05 4cdh ; eb e67722 call 0165eh ; e8 3a c1 7723 jmp short 0550ch ; eb e6 7700 7724 mov al, byte [bp-010h] ; 8a 46 f0 7701 7725 test AL, strict byte 004h ; a8 04 7702 jne short 05 4cdh ; 75 df7726 jne short 0550ch ; 75 df 7703 7727 or AL, strict byte 004h ; 0c 04 7704 7728 mov byte [bp-008h], al ; 88 46 f8 … … 7707 7731 mov dx, strict word 00018h ; ba 18 00 7708 7732 mov ax, strict word 00040h ; b8 40 00 7709 call 0165eh ; e8 5ec17710 jmp short 05 4cdh ; eb cb7733 call 0165eh ; e8 1f c1 7734 jmp short 0550ch ; eb cb 7711 7735 mov al, byte [bp-010h] ; 8a 46 f0 7712 7736 and AL, strict byte 0fbh ; 24 fb 7713 jmp short 05 4d5h ; eb cc7737 jmp short 05514h ; eb cc 7714 7738 mov al, byte [bp-006h] ; 8a 46 fa 7715 7739 and AL, strict byte 00ch ; 24 0c 7716 7740 cmp AL, strict byte 00ch ; 3c 0c 7717 jne short 055 23h ; 75 117741 jne short 05562h ; 75 11 7718 7742 mov bx, 01234h ; bb 34 12 7719 7743 mov dx, strict word 00072h ; ba 72 00 7720 7744 mov ax, strict word 00040h ; b8 40 00 7721 call 0167ah ; e8 5cc17745 call 0167ah ; e8 1d c1 7722 7746 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7723 7747 test byte [bp-008h], 008h ; f6 46 f8 08 7724 je short 055 38h ; 74 0f7748 je short 05577h ; 74 0f 7725 7749 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7726 7750 mov bl, byte [bp-008h] ; 8a 5e f8 7727 7751 xor bh, bh ; 30 ff 7728 7752 mov dx, strict word 00018h ; ba 18 00 7729 jmp near 05 2cfh ; e9 97 fd7753 jmp near 0530eh ; e9 97 fd 7730 7754 mov al, byte [bp-00ah] ; 8a 46 f6 7731 7755 test AL, strict byte 080h ; a8 80 7732 je short 055 76h ; 74 377756 je short 055b5h ; 74 37 7733 7757 cmp AL, strict byte 0fah ; 3c fa 7734 jne short 055 55h ; 75 127758 jne short 05594h ; 75 12 7735 7759 mov dx, 00097h ; ba 97 00 7736 7760 mov ax, strict word 00040h ; b8 40 00 7737 call 01650h ; e8 04 c17761 call 01650h ; e8 c5 c0 7738 7762 mov bl, al ; 88 c3 7739 7763 or bl, 010h ; 80 cb 10 7740 7764 xor bh, bh ; 30 ff 7741 jmp short 055 6bh ; eb 167765 jmp short 055aah ; eb 16 7742 7766 cmp AL, strict byte 0feh ; 3c fe 7743 je short 055 5ch ; 74 037744 jmp near 052 b6h ; e9 5a fd7767 je short 0559bh ; 74 03 7768 jmp near 052f5h ; e9 5a fd 7745 7769 mov dx, 00097h ; ba 97 00 7746 7770 mov ax, strict word 00040h ; b8 40 00 7747 call 01650h ; e8 ebc07771 call 01650h ; e8 ac c0 7748 7772 or AL, strict byte 020h ; 0c 20 7749 7773 xor ah, ah ; 30 e4 … … 7751 7775 mov dx, 00097h ; ba 97 00 7752 7776 mov ax, strict word 00040h ; b8 40 00 7753 call 0165eh ; e8 eac07754 jmp short 055 59h ; eb e37777 call 0165eh ; e8 ab c0 7778 jmp short 05598h ; eb e3 7755 7779 cmp byte [bp-00ah], 058h ; 80 7e f6 58 7756 jbe short 055 9bh ; 76 1f7757 mov bx, 00da 4h ; bb a40d7780 jbe short 055dah ; 76 1f 7781 mov bx, 00da0h ; bb a0 0d 7758 7782 mov cx, ds ; 8c d9 7759 7783 mov ax, strict word 00004h ; b8 04 00 7760 call 01923h ; e8 9cc37784 call 01923h ; e8 5d c3 7761 7785 mov al, byte [bp-00ah] ; 8a 46 f6 7762 7786 xor ah, ah ; 30 e4 … … 7764 7788 push 005a1h ; 68 a1 05 7765 7789 push strict byte 00004h ; 6a 04 7766 call 01966h ; e8 d1c37790 call 01966h ; e8 92 c3 7767 7791 add sp, strict byte 00006h ; 83 c4 06 7768 jmp near 05 2d5h ; e9 3a fd7792 jmp near 05314h ; e9 3a fd 7769 7793 mov al, byte [bp-00eh] ; 8a 46 f2 7770 7794 test AL, strict byte 008h ; a8 08 7771 je short 055 b5h ; 74 137795 je short 055f4h ; 74 13 7772 7796 mov al, byte [bp-00ah] ; 8a 46 f6 7773 7797 xor ah, ah ; 30 e4 7774 7798 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7775 mov dl, byte [bx+00df 8h] ; 8a 97 f80d7776 mov ax, word [bx+00df 8h] ; 8b 87 f80d7777 jmp near 056 45h ; e9 90 007799 mov dl, byte [bx+00df4h] ; 8a 97 f4 0d 7800 mov ax, word [bx+00df4h] ; 8b 87 f4 0d 7801 jmp near 05684h ; e9 90 00 7778 7802 test AL, strict byte 004h ; a8 04 7779 je short 05 5cch ; 74 137803 je short 0560bh ; 74 13 7780 7804 mov al, byte [bp-00ah] ; 8a 46 f6 7781 7805 xor ah, ah ; 30 e4 7782 7806 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7783 mov dl, byte [bx+00df 6h] ; 8a 97 f60d7784 mov ax, word [bx+00df 6h] ; 8b 87 f60d7785 jmp near 056 45h ; e9 79 007807 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7808 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7809 jmp near 05684h ; e9 79 00 7786 7810 mov al, byte [bp-00ch] ; 8a 46 f4 7787 7811 and AL, strict byte 002h ; 24 02 7788 7812 test al, al ; 84 c0 7789 jbe short 05 5e9h ; 76 147813 jbe short 05628h ; 76 14 7790 7814 mov al, byte [bp-00ah] ; 8a 46 f6 7791 7815 cmp AL, strict byte 047h ; 3c 47 7792 jc short 05 5e9h ; 72 0d7816 jc short 05628h ; 72 0d 7793 7817 cmp AL, strict byte 053h ; 3c 53 7794 jnbe short 05 5e9h ; 77 097818 jnbe short 05628h ; 77 09 7795 7819 mov DL, strict byte 0e0h ; b2 e0 7796 7820 xor ah, ah ; 30 e4 7797 7821 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7798 jmp short 056 41h ; eb 587822 jmp short 05680h ; eb 58 7799 7823 test byte [bp-00eh], 003h ; f6 46 f2 03 7800 je short 056 1eh ; 74 2f7824 je short 0565dh ; 74 2f 7801 7825 mov al, byte [bp-00ah] ; 8a 46 f6 7802 7826 xor ah, ah ; 30 e4 7803 7827 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7804 mov al, byte [bx+00df ah] ; 8a 87 fa0d7828 mov al, byte [bx+00df6h] ; 8a 87 f6 0d 7805 7829 mov dx, ax ; 89 c2 7806 7830 mov al, byte [bp-00eh] ; 8a 46 f2 7807 7831 test ax, dx ; 85 d0 7808 je short 056 0eh ; 74 0a7809 mov dl, byte [bx+00d f2h] ; 8a 97 f20d7810 mov ax, word [bx+00d f2h] ; 8b 87 f20d7811 jmp short 056 16h ; eb 087812 mov dl, byte [bx+00df 4h] ; 8a 97 f40d7813 mov ax, word [bx+00df 4h] ; 8b 87 f40d7832 je short 0564dh ; 74 0a 7833 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7834 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7835 jmp short 05655h ; eb 08 7836 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7837 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7814 7838 shr ax, 008h ; c1 e8 08 7815 7839 mov byte [bp-00ah], al ; 88 46 f6 7816 jmp short 056 4bh ; eb 2d7840 jmp short 0568ah ; eb 2d 7817 7841 mov al, byte [bp-00ah] ; 8a 46 f6 7818 7842 xor ah, ah ; 30 e4 7819 7843 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7820 mov al, byte [bx+00df ah] ; 8a 87 fa0d7844 mov al, byte [bx+00df6h] ; 8a 87 f6 0d 7821 7845 mov dx, ax ; 89 c2 7822 7846 mov al, byte [bp-00eh] ; 8a 46 f2 7823 7847 test ax, dx ; 85 d0 7824 je short 056 3dh ; 74 0a7825 mov dl, byte [bx+00df 4h] ; 8a 97 f40d7826 mov ax, word [bx+00df 4h] ; 8b 87 f40d7827 jmp short 056 45h ; eb 087828 mov dl, byte [bx+00d f2h] ; 8a 97 f20d7829 mov ax, word [bx+00d f2h] ; 8b 87 f20d7848 je short 0567ch ; 74 0a 7849 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7850 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7851 jmp short 05684h ; eb 08 7852 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7853 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7830 7854 shr ax, 008h ; c1 e8 08 7831 7855 mov byte [bp-00ah], al ; 88 46 f6 7832 7856 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7833 jne short 056 6bh ; 75 1a7857 jne short 056aah ; 75 1a 7834 7858 test dl, dl ; 84 d2 7835 jne short 056 6bh ; 75 167836 mov bx, 00da 4h ; bb a40d7859 jne short 056aah ; 75 16 7860 mov bx, 00da0h ; bb a0 0d 7837 7861 mov cx, ds ; 8c d9 7838 7862 mov ax, strict word 00004h ; b8 04 00 7839 call 01923h ; e8 c3c27863 call 01923h ; e8 84 c2 7840 7864 push 005d8h ; 68 d8 05 7841 7865 push strict byte 00004h ; 6a 04 7842 call 01966h ; e8 fec27866 call 01966h ; e8 bf c2 7843 7867 add sp, strict byte 00004h ; 83 c4 04 7844 7868 mov bl, dl ; 88 d3 … … 7847 7871 xor ah, ah ; 30 e4 7848 7872 mov dx, bx ; 89 da 7849 jmp near 054 96h ; e9 1d fe7850 dequeue_key_: ; 0xf56 79LB 0x947873 jmp near 054d5h ; e9 1d fe 7874 dequeue_key_: ; 0xf56b8 LB 0x94 7851 7875 push bp ; 55 7852 7876 mov bp, sp ; 89 e5 … … 7861 7885 mov dx, strict word 0001ah ; ba 1a 00 7862 7886 mov ax, strict word 00040h ; b8 40 00 7863 call 0166ch ; e8 d9bf7887 call 0166ch ; e8 9a bf 7864 7888 mov bx, ax ; 89 c3 7865 7889 mov dx, strict word 0001ch ; ba 1c 00 7866 7890 mov ax, strict word 00040h ; b8 40 00 7867 call 0166ch ; e8 cebf7891 call 0166ch ; e8 8f bf 7868 7892 cmp bx, ax ; 39 c3 7869 je short 05 6dfh ; 74 3d7893 je short 0571eh ; 74 3d 7870 7894 mov dx, bx ; 89 da 7871 7895 mov ax, strict word 00040h ; b8 40 00 7872 call 01650h ; e8 a6bf7896 call 01650h ; e8 67 bf 7873 7897 mov cl, al ; 88 c1 7874 7898 lea dx, [bx+001h] ; 8d 57 01 7875 7899 mov ax, strict word 00040h ; b8 40 00 7876 call 01650h ; e8 9bbf7900 call 01650h ; e8 5c bf 7877 7901 mov es, [bp-008h] ; 8e 46 f8 7878 7902 mov byte [es:si], cl ; 26 88 0c … … 7880 7904 mov byte [es:di], al ; 26 88 05 7881 7905 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7882 je short 05 6dah ; 74 137906 je short 05719h ; 74 13 7883 7907 inc bx ; 43 7884 7908 inc bx ; 43 7885 7909 cmp bx, strict byte 0003eh ; 83 fb 3e 7886 jc short 05 6d1h ; 72 037910 jc short 05710h ; 72 03 7887 7911 mov bx, strict word 0001eh ; bb 1e 00 7888 7912 mov dx, strict word 0001ah ; ba 1a 00 7889 7913 mov ax, strict word 00040h ; b8 40 00 7890 call 0167ah ; e8 a0bf7914 call 0167ah ; e8 61 bf 7891 7915 mov ax, strict word 00001h ; b8 01 00 7892 jmp short 05 6e1h ; eb 027916 jmp short 05720h ; eb 02 7893 7917 xor ax, ax ; 31 c0 7894 7918 lea sp, [bp-004h] ; 8d 66 fc … … 7901 7925 or cl, byte [bx+di] ; 0a 09 7902 7926 add ax, 00102h ; 05 02 01 7903 add byte [bp+si], dl ; 00 12 7927 add byte [bx+di+058h], dl ; 00 51 58 7928 or byte [bx+si-066h], bl ; 08 58 9a 7904 7929 pop ax ; 58 7905 leave ; c9 7906 push di ; 57 7907 pop bx ; 5b 7930 out 058h, ax ; e7 58 7931 clc ; f8 7908 7932 pop ax ; 58 7909 test AL, strict byte 058h ; a8 58 7910 mov cx, 0e258h ; b9 58 e2 7933 and word [bx+di+02ah], bx ; 21 59 2a 7934 pop cx ; 59 7935 wait ; 9b 7936 pop cx ; 59 7937 int 059h ; cd 59 7938 std ; fd 7939 pop cx ; 59 7940 db 036h, 05ah 7941 ; ss pop dx ; 36 5a 7942 xchg sp, ax ; 94 7911 7943 pop ax ; 58 7912 jmp short 0575bh ; eb 58 7913 pop sp ; 5c 7914 pop cx ; 59 7915 mov ds, [bx+di-042h] ; 8e 59 be 7916 pop cx ; 59 7917 neg word [bx+di+055h] ; f7 59 55 7918 pop ax ; 58 7919 _int16_function: ; 0xf570d LB 0x2f5 7944 _int16_function: ; 0xf574c LB 0x2f5 7920 7945 push bp ; 55 7921 7946 mov bp, sp ; 89 e5 … … 7924 7949 mov dx, strict word 00017h ; ba 17 00 7925 7950 mov ax, strict word 00040h ; b8 40 00 7926 call 01650h ; e8 33 bf7951 call 01650h ; e8 f4 be 7927 7952 mov cl, al ; 88 c1 7928 7953 mov bl, al ; 88 c3 7929 7954 mov dx, 00097h ; ba 97 00 7930 7955 mov ax, strict word 00040h ; b8 40 00 7931 call 01650h ; e8 26 bf7956 call 01650h ; e8 e7 be 7932 7957 mov bh, al ; 88 c7 7933 7958 mov dl, cl ; 88 ca … … 7939 7964 xor al, dl ; 30 d0 7940 7965 test ax, ax ; 85 c0 7941 je short 057 a9h ; 74 697966 je short 057e8h ; 74 69 7942 7967 cli ; fa 7943 7968 mov AL, strict byte 0edh ; b0 ed … … 7949 7974 ; sub ah, ah ; 2a e4 7950 7975 test AL, strict byte 001h ; a8 01 7951 jne short 057 59h ; 75 087976 jne short 05798h ; 75 08 7952 7977 mov AL, strict byte 021h ; b0 21 7953 7978 mov dx, 00080h ; ba 80 00 7954 7979 out DX, AL ; ee 7955 jmp short 057 47h ; eb ee7980 jmp short 05786h ; eb ee 7956 7981 mov dx, strict word 00060h ; ba 60 00 7957 7982 in AL, DX ; ec … … 7959 7984 ; sub ah, ah ; 2a e4 7960 7985 cmp ax, 000fah ; 3d fa 00 7961 jne short 057 a8h ; 75 447986 jne short 057e7h ; 75 44 7962 7987 mov dl, bh ; 88 fa 7963 7988 and dl, 0c8h ; 80 e2 c8 … … 7979 8004 ; sub ah, ah ; 2a e4 7980 8005 test AL, strict byte 001h ; a8 01 7981 jne short 057 95h ; 75 088006 jne short 057d4h ; 75 08 7982 8007 mov AL, strict byte 021h ; b0 21 7983 8008 mov dx, 00080h ; ba 80 00 7984 8009 out DX, AL ; ee 7985 jmp short 057 83h ; eb ee8010 jmp short 057c2h ; eb ee 7986 8011 mov dx, strict word 00060h ; ba 60 00 7987 8012 in AL, DX ; ec … … 7992 8017 mov dx, 00097h ; ba 97 00 7993 8018 mov ax, strict word 00040h ; b8 40 00 7994 call 0165eh ; e8 b6be8019 call 0165eh ; e8 77 be 7995 8020 sti ; fb 7996 8021 mov ax, word [bp+012h] ; 8b 46 12 7997 8022 shr ax, 008h ; c1 e8 08 7998 8023 cmp ax, 000a2h ; 3d a2 00 7999 jnbe short 058 12h ; 77 5e8024 jnbe short 05851h ; 77 5e 8000 8025 push CS ; 0e 8001 8026 pop ES ; 07 8002 8027 mov cx, strict word 0000ch ; b9 0c 00 8003 mov di, 05 6eah ; bf ea 568028 mov di, 05729h ; bf 29 57 8004 8029 repne scasb ; f2 ae 8005 8030 sal cx, 1 ; d1 e1 8006 8031 mov di, cx ; 89 cf 8007 mov ax, word [cs:di+05 6f5h] ; 2e 8b 85 f5 568032 mov ax, word [cs:di+05734h] ; 2e 8b 85 34 57 8008 8033 jmp ax ; ff e0 8009 8034 push strict byte 00001h ; 6a 01 … … 8012 8037 mov dx, ss ; 8c d2 8013 8038 lea ax, [bp-006h] ; 8d 46 fa 8014 call 056 79h ; e8 a1 fe8039 call 056b8h ; e8 a1 fe 8015 8040 test ax, ax ; 85 c0 8016 jne short 05 7e7h ; 75 0b8041 jne short 05826h ; 75 0b 8017 8042 push 0060fh ; 68 0f 06 8018 8043 push strict byte 00007h ; 6a 07 8019 call 01966h ; e8 82c18044 call 01966h ; e8 43 c1 8020 8045 add sp, strict byte 00004h ; 83 c4 04 8021 8046 cmp byte [bp-006h], 000h ; 80 7e fa 00 8022 je short 05 7f3h ; 74 068047 je short 05832h ; 74 06 8023 8048 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8024 je short 05 7f9h ; 74 068049 je short 05838h ; 74 06 8025 8050 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8026 jne short 05 7fdh ; 75 048051 jne short 0583ch ; 75 04 8027 8052 mov byte [bp-008h], 000h ; c6 46 f8 00 8028 8053 mov al, byte [bp-006h] ; 8a 46 fa … … 8033 8058 or dx, ax ; 09 c2 8034 8059 mov word [bp+012h], dx ; 89 56 12 8035 jmp near 058 55h ; e9 43 008036 mov bx, 00da 4h ; bb a40d8060 jmp near 05894h ; e9 43 00 8061 mov bx, 00da0h ; bb a0 0d 8037 8062 mov cx, ds ; 8c d9 8038 8063 mov ax, strict word 00004h ; b8 04 00 8039 call 01923h ; e8 06 c18064 call 01923h ; e8 c7 c0 8040 8065 mov ax, word [bp+012h] ; 8b 46 12 8041 8066 shr ax, 008h ; c1 e8 08 … … 8043 8068 push 00633h ; 68 33 06 8044 8069 push strict byte 00004h ; 6a 04 8045 call 01966h ; e8 3a c18070 call 01966h ; e8 fb c0 8046 8071 add sp, strict byte 00006h ; 83 c4 06 8047 mov bx, 00da 4h ; bb a40d8072 mov bx, 00da0h ; bb a0 0d 8048 8073 mov cx, ds ; 8c d9 8049 8074 mov ax, strict word 00004h ; b8 04 00 8050 call 01923h ; e8 e9c08075 call 01923h ; e8 aa c0 8051 8076 mov ax, word [bp+00eh] ; 8b 46 0e 8052 8077 push ax ; 50 … … 8059 8084 push 0065bh ; 68 5b 06 8060 8085 push strict byte 00004h ; 6a 04 8061 call 01966h ; e8 14 c18086 call 01966h ; e8 d5 c0 8062 8087 add sp, strict byte 0000ch ; 83 c4 0c 8063 8088 lea sp, [bp-002h] ; 8d 66 fe … … 8072 8097 mov dx, ss ; 8c d2 8073 8098 lea ax, [bp-006h] ; 8d 46 fa 8074 call 056 79h ; e8 09 fe8099 call 056b8h ; e8 09 fe 8075 8100 test ax, ax ; 85 c0 8076 jne short 058 7ah ; 75 068101 jne short 058b9h ; 75 06 8077 8102 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 8078 jmp short 058 55h ; eb db8103 jmp short 05894h ; eb db 8079 8104 cmp byte [bp-006h], 000h ; 80 7e fa 00 8080 je short 058 86h ; 74 068105 je short 058c5h ; 74 06 8081 8106 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8082 je short 058 8ch ; 74 068107 je short 058cbh ; 74 06 8083 8108 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8084 jne short 058 90h ; 75 048109 jne short 058cfh ; 75 04 8085 8110 mov byte [bp-008h], 000h ; c6 46 f8 00 8086 8111 mov al, byte [bp-006h] ; 8a 46 fa … … 8092 8117 mov word [bp+012h], dx ; 89 56 12 8093 8118 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 8094 jmp short 058 55h ; eb ad8119 jmp short 05894h ; eb ad 8095 8120 mov dx, strict word 00017h ; ba 17 00 8096 8121 mov ax, strict word 00040h ; b8 40 00 8097 call 01650h ; e8 9fbd8122 call 01650h ; e8 60 bd 8098 8123 mov dx, word [bp+012h] ; 8b 56 12 8099 8124 mov dl, al ; 88 c2 8100 jmp near 058 0ch ; e9 53 ff8125 jmp near 0584bh ; e9 53 ff 8101 8126 mov dl, byte [bp+010h] ; 8a 56 10 8102 8127 xor dh, dh ; 30 f6 … … 8104 8129 shr ax, 008h ; c1 e8 08 8105 8130 xor ah, ah ; 30 e4 8106 call 051 47h ; e8 7e f88131 call 05186h ; e8 7e f8 8107 8132 test ax, ax ; 85 c0 8108 jne short 05 8dah ; 75 0d8133 jne short 05919h ; 75 0d 8109 8134 mov ax, word [bp+012h] ; 8b 46 12 8110 8135 xor al, al ; 30 c0 8111 8136 or AL, strict byte 001h ; 0c 01 8112 8137 mov word [bp+012h], ax ; 89 46 12 8113 jmp near 058 55h ; e9 7b ff8138 jmp near 05894h ; e9 7b ff 8114 8139 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8115 jmp near 058 55h ; e9 73 ff8140 jmp near 05894h ; e9 73 ff 8116 8141 mov ax, word [bp+012h] ; 8b 46 12 8117 8142 xor al, al ; 30 c0 8118 8143 or AL, strict byte 030h ; 0c 30 8119 jmp short 05 8d4h ; eb e98144 jmp short 05913h ; eb e9 8120 8145 mov byte [bp-004h], 002h ; c6 46 fc 02 8121 8146 xor cx, cx ; 31 c9 … … 8130 8155 ; sub ah, ah ; 2a e4 8131 8156 test AL, strict byte 001h ; a8 01 8132 jne short 059 12h ; 75 0d8157 jne short 05951h ; 75 0d 8133 8158 dec bx ; 4b 8134 8159 test bx, bx ; 85 db 8135 jbe short 059 12h ; 76 088160 jbe short 05951h ; 76 08 8136 8161 mov dx, 00080h ; ba 80 00 8137 8162 in AL, DX ; ec 8138 8163 db 02ah, 0e4h 8139 8164 ; sub ah, ah ; 2a e4 8140 jmp short 05 8fbh ; eb e98165 jmp short 0593ah ; eb e9 8141 8166 test bx, bx ; 85 db 8142 jbe short 059 56h ; 76 408167 jbe short 05995h ; 76 40 8143 8168 mov dx, strict word 00060h ; ba 60 00 8144 8169 in AL, DX ; ec … … 8146 8171 ; sub ah, ah ; 2a e4 8147 8172 cmp ax, 000fah ; 3d fa 00 8148 jne short 059 56h ; 75 358173 jne short 05995h ; 75 35 8149 8174 mov bx, strict word 0ffffh ; bb ff ff 8150 8175 mov dx, strict word 00064h ; ba 64 00 … … 8153 8178 ; sub ah, ah ; 2a e4 8154 8179 test AL, strict byte 001h ; a8 01 8155 jne short 059 3bh ; 75 0d8180 jne short 0597ah ; 75 0d 8156 8181 dec bx ; 4b 8157 8182 test bx, bx ; 85 db 8158 jbe short 059 3bh ; 76 088183 jbe short 0597ah ; 76 08 8159 8184 mov dx, 00080h ; ba 80 00 8160 8185 in AL, DX ; ec 8161 8186 db 02ah, 0e4h 8162 8187 ; sub ah, ah ; 2a e4 8163 jmp short 059 24h ; eb e98188 jmp short 05963h ; eb e9 8164 8189 test bx, bx ; 85 db 8165 jbe short 059 4dh ; 76 0e8190 jbe short 0598ch ; 76 0e 8166 8191 shr cx, 008h ; c1 e9 08 8167 8192 mov dx, strict word 00060h ; ba 60 00 … … 8173 8198 dec byte [bp-004h] ; fe 4e fc 8174 8199 cmp byte [bp-004h], 000h ; 80 7e fc 00 8175 jnbe short 059 21h ; 77 cb8200 jnbe short 05960h ; 77 cb 8176 8201 mov word [bp+00ch], cx ; 89 4e 0c 8177 jmp near 058 55h ; e9 f9 fe8202 jmp near 05894h ; e9 f9 fe 8178 8203 push strict byte 00001h ; 6a 01 8179 8204 mov cx, ss ; 8c d1 … … 8181 8206 mov dx, ss ; 8c d2 8182 8207 lea ax, [bp-006h] ; 8d 46 fa 8183 call 056 79h ; e8 0e fd8208 call 056b8h ; e8 0e fd 8184 8209 test ax, ax ; 85 c0 8185 jne short 059 7ah ; 75 0b8210 jne short 059b9h ; 75 0b 8186 8211 push 0060fh ; 68 0f 06 8187 8212 push strict byte 00007h ; 6a 07 8188 call 01966h ; e8 efbf8213 call 01966h ; e8 b0 bf 8189 8214 add sp, strict byte 00004h ; 83 c4 04 8190 8215 cmp byte [bp-006h], 000h ; 80 7e fa 00 8191 jne short 059 83h ; 75 038192 jmp near 05 7fdh ; e9 7a fe8216 jne short 059c2h ; 75 03 8217 jmp near 0583ch ; e9 7a fe 8193 8218 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8194 jne short 059 8ch ; 75 038195 jmp near 05 7f9h ; e9 6d fe8196 jmp short 059 80h ; eb f28219 jne short 059cbh ; 75 03 8220 jmp near 05838h ; e9 6d fe 8221 jmp short 059bfh ; eb f2 8197 8222 mov ax, word [bp+018h] ; 8b 46 18 8198 8223 mov word [bp+01eh], ax ; 89 46 1e … … 8202 8227 mov dx, ss ; 8c d2 8203 8228 lea ax, [bp-006h] ; 8d 46 fa 8204 call 056 79h ; e8 d6 fc8229 call 056b8h ; e8 d6 fc 8205 8230 test ax, ax ; 85 c0 8206 jne short 059 aah ; 75 038207 jmp near 058 74h ; e9 ca fe8231 jne short 059e9h ; 75 03 8232 jmp near 058b3h ; e9 ca fe 8208 8233 cmp byte [bp-006h], 000h ; 80 7e fa 00 8209 jne short 059 b3h ; 75 038210 jmp near 058 90h ; e9 dd fe8234 jne short 059f2h ; 75 03 8235 jmp near 058cfh ; e9 dd fe 8211 8236 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8212 jne short 059 bch ; 75 038213 jmp near 058 8ch ; e9 d0 fe8214 jmp short 059 b0h ; eb f28237 jne short 059fbh ; 75 03 8238 jmp near 058cbh ; e9 d0 fe 8239 jmp short 059efh ; eb f2 8215 8240 mov dx, strict word 00017h ; ba 17 00 8216 8241 mov ax, strict word 00040h ; b8 40 00 8217 call 01650h ; e8 89bc8242 call 01650h ; e8 4a bc 8218 8243 mov dx, word [bp+012h] ; 8b 56 12 8219 8244 mov dl, al ; 88 c2 … … 8221 8246 mov dx, strict word 00018h ; ba 18 00 8222 8247 mov ax, strict word 00040h ; b8 40 00 8223 call 01650h ; e8 78bc8248 call 01650h ; e8 39 bc 8224 8249 mov bl, al ; 88 c3 8225 8250 and bl, 073h ; 80 e3 73 8226 8251 mov dx, 00096h ; ba 96 00 8227 8252 mov ax, strict word 00040h ; b8 40 00 8228 call 01650h ; e8 6abc8253 call 01650h ; e8 2b bc 8229 8254 and AL, strict byte 00ch ; 24 0c 8230 8255 or al, bl ; 08 d8 … … 8233 8258 xor ah, ah ; 30 e4 8234 8259 sal ax, 008h ; c1 e0 08 8235 jmp near 058 0ah ; e9 13 fe8260 jmp near 05849h ; e9 13 fe 8236 8261 mov ax, word [bp+012h] ; 8b 46 12 8237 8262 xor ah, ah ; 30 e4 8238 8263 or ah, 080h ; 80 cc 80 8239 jmp near 05 8d4h ; e9 d2 fe8240 set_geom_lba_: ; 0xf5a 02LB 0xe78264 jmp near 05913h ; e9 d2 fe 8265 set_geom_lba_: ; 0xf5a41 LB 0xe7 8241 8266 push bx ; 53 8242 8267 push cx ; 51 … … 8254 8279 mov dx, word [bp+00ch] ; 8b 56 0c 8255 8280 mov si, strict word 00020h ; be 20 00 8256 call 0a 0e0h ; e8 b1468281 call 0a120h ; e8 b2 46 8257 8282 test ax, ax ; 85 c0 8258 jne short 05a 3fh ; 75 0c8283 jne short 05a7eh ; 75 0c 8259 8284 test bx, bx ; 85 db 8260 jne short 05a 3fh ; 75 088285 jne short 05a7eh ; 75 08 8261 8286 test cx, cx ; 85 c9 8262 jne short 05a 3fh ; 75 048287 jne short 05a7eh ; 75 04 8263 8288 test dx, dx ; 85 d2 8264 je short 05a 46h ; 74 078289 je short 05a85h ; 74 07 8265 8290 mov bx, strict word 0ffffh ; bb ff ff 8266 8291 mov si, bx ; 89 de 8267 jmp short 05a 4ch ; eb 068292 jmp short 05a8bh ; eb 06 8268 8293 mov bx, word [bp+00ch] ; 8b 5e 0c 8269 8294 mov si, word [bp+00eh] ; 8b 76 0e 8270 8295 mov word [bp-004h], bx ; 89 5e fc 8271 8296 xor bx, bx ; 31 db 8272 jmp short 05a 58h ; eb 058297 jmp short 05a97h ; eb 05 8273 8298 cmp bx, strict byte 00004h ; 83 fb 04 8274 jnl short 05a 7bh ; 7d 238299 jnl short 05abah ; 7d 23 8275 8300 mov ax, word [bp-006h] ; 8b 46 fa 8276 8301 cmp si, ax ; 39 c6 8277 jc short 05a 69h ; 72 0a8278 jne short 05a 72h ; 75 118302 jc short 05aa8h ; 72 0a 8303 jne short 05ab1h ; 75 11 8279 8304 mov ax, word [bp-004h] ; 8b 46 fc 8280 8305 cmp ax, word [bp-008h] ; 3b 46 f8 8281 jnbe short 05a 72h ; 77 098306 jnbe short 05ab1h ; 77 09 8282 8307 mov ax, word [bp-002h] ; 8b 46 fe 8283 8308 inc ax ; 40 … … 8287 8312 rcr word [bp-008h], 1 ; d1 5e f8 8288 8313 inc bx ; 43 8289 jmp short 05a 53h ; eb d88314 jmp short 05a92h ; eb d8 8290 8315 mov ax, word [bp-002h] ; 8b 46 fe 8291 8316 xor dx, dx ; 31 d2 8292 8317 mov bx, strict word 0003fh ; bb 3f 00 8293 8318 xor cx, cx ; 31 c9 8294 call 0a0 90h ; e8 08468319 call 0a0d0h ; e8 09 46 8295 8320 mov bx, ax ; 89 c3 8296 8321 mov cx, dx ; 89 d1 8297 8322 mov ax, word [bp-004h] ; 8b 46 fc 8298 8323 mov dx, si ; 89 f2 8299 call 0a0 b0h ; e8 1c468324 call 0a0f0h ; e8 1d 46 8300 8325 mov word [es:di+002h], ax ; 26 89 45 02 8301 8326 cmp ax, 00400h ; 3d 00 04 8302 jbe short 05a a3h ; 76 068327 jbe short 05ae2h ; 76 06 8303 8328 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8304 8329 mov ax, word [bp-002h] ; 8b 46 fe … … 8311 8336 pop bx ; 5b 8312 8337 retn 00008h ; c2 08 00 8313 jne short 05b14h ; 755b8314 xchg byte [bp+di-04bh], bl ; 86 5b b58338 mov AH, strict byte 05bh ; b4 5b 8339 lds bx, [bp+di-00ch] ; c5 5b f4 8315 8340 pop bx ; 5b 8316 mov CH, strict byte 05bh ; b5 5b 8317 mov CH, strict byte 05bh ; b5 5b 8318 movsw ; a5 8319 pop bp ; 5d 8320 ficomp word [bp-022h] ; de 5e de 8341 hlt ; f4 8342 pop bx ; 5b 8343 hlt ; f4 8344 pop bx ; 5b 8345 in AL, strict byte 05dh ; e4 5d 8346 sbb ax, 01d5fh ; 1d 5f 1d 8347 pop di ; 5f 8348 adc word [bp-006h], bx ; 11 5e fa 8321 8349 pop si ; 5e 8322 rcr byte [di-045h], CL ; d2 5d bb 8350 sbb ax, 01d5fh ; 1d 5f 1d 8351 pop di ; 5f 8352 cli ; fa 8323 8353 pop si ; 5e 8324 ficomp word [bp-022h] ; de 5e de8354 cli ; fa 8325 8355 pop si ; 5e 8326 mov bx, 0bb5eh ; bb 5e bb 8356 sbb ax, 01d5fh ; 1d 5f 1d 8357 pop di ; 5f 8358 jl short 05b76h ; 7c 5e 8359 cli ; fa 8327 8360 pop si ; 5e 8328 ficomp word [bp-022h] ; de 5e de 8361 sbb ax, 01d5fh ; 1d 5f 1d 8362 pop di ; 5f 8363 cli ; fa 8329 8364 pop si ; 5e 8330 cmp ax, 0bb5eh ; 3d 5e bb8365 lodsw ; ad 8331 8366 pop si ; 5e 8332 ficomp word [bp-022h] ; de 5e de 8333 pop si ; 5e 8334 mov bx, 06e5eh ; bb 5e 6e 8335 pop si ; 5e 8336 ficomp word [bp-022h] ; de 5e de 8337 pop si ; 5e 8338 db 0deh 8339 pop si ; 5e 8340 _int13_harddisk: ; 0xf5ae9 LB 0x453 8367 sbb ax, 01d5fh ; 1d 5f 1d 8368 pop di ; 5f 8369 db 01dh 8370 pop di ; 5f 8371 _int13_harddisk: ; 0xf5b28 LB 0x453 8341 8372 push bp ; 55 8342 8373 mov bp, sp ; 89 e5 … … 8345 8376 mov dx, strict word 0000eh ; ba 0e 00 8346 8377 mov ax, strict word 00040h ; b8 40 00 8347 call 0166ch ; e8 70bb8378 call 0166ch ; e8 31 bb 8348 8379 mov si, 00122h ; be 22 01 8349 8380 mov word [bp-010h], ax ; 89 46 f0 … … 8351 8382 mov dx, 0008eh ; ba 8e 00 8352 8383 mov ax, strict word 00040h ; b8 40 00 8353 call 0165eh ; e8 51bb8384 call 0165eh ; e8 12 bb 8354 8385 mov ax, word [bp+00eh] ; 8b 46 0e 8355 8386 xor ah, ah ; 30 e4 8356 8387 cmp ax, 00080h ; 3d 80 00 8357 jc short 05b 1ch ; 72 058388 jc short 05b5bh ; 72 05 8358 8389 cmp ax, 00090h ; 3d 90 00 8359 jc short 05b 3ah ; 72 1e8390 jc short 05b79h ; 72 1e 8360 8391 mov ax, word [bp+00eh] ; 8b 46 0e 8361 8392 xor ah, ah ; 30 e4 … … 8367 8398 push 0068dh ; 68 8d 06 8368 8399 push strict byte 00004h ; 6a 04 8369 call 01966h ; e8 32 be8400 call 01966h ; e8 f3 bd 8370 8401 add sp, strict byte 0000ah ; 83 c4 0a 8371 jmp near 05 ef9h ; e9 bf 038402 jmp near 05f38h ; e9 bf 03 8372 8403 mov ax, word [bp+00eh] ; 8b 46 0e 8373 8404 xor ah, ah ; 30 e4 … … 8378 8409 mov byte [bp-002h], dl ; 88 56 fe 8379 8410 cmp dl, 010h ; 80 fa 10 8380 jc short 05b 63h ; 72 108411 jc short 05ba2h ; 72 10 8381 8412 push ax ; 50 8382 8413 mov ax, word [bp+016h] ; 8b 46 16 … … 8385 8416 push 0067eh ; 68 7e 06 8386 8417 push 006b8h ; 68 b8 06 8387 jmp short 05b 2fh ; eb cc8418 jmp short 05b6eh ; eb cc 8388 8419 mov bx, word [bp+016h] ; 8b 5e 16 8389 8420 shr bx, 008h ; c1 eb 08 8390 8421 cmp bx, strict byte 00018h ; 83 fb 18 8391 jnbe short 05b b2h ; 77 448422 jnbe short 05bf1h ; 77 44 8392 8423 add bx, bx ; 01 db 8393 jmp word [cs:bx+05a b7h] ; 2e ff a7 b75a8424 jmp word [cs:bx+05af6h] ; 2e ff a7 f6 5a 8394 8425 cmp byte [bp-002h], 008h ; 80 7e fe 08 8395 jnc short 05b 83h ; 73 088426 jnc short 05bc2h ; 73 08 8396 8427 mov al, byte [bp-002h] ; 8a 46 fe 8397 8428 xor ah, ah ; 30 e4 8398 call 01d85h ; e8 02 c28399 jmp near 05d bbh ; e9 35 028429 call 01d85h ; e8 c3 c1 8430 jmp near 05dfah ; e9 35 02 8400 8431 mov dx, strict word 00074h ; ba 74 00 8401 8432 mov ax, strict word 00040h ; b8 40 00 8402 call 01650h ; e8 c1ba8433 call 01650h ; e8 82 ba 8403 8434 mov cl, al ; 88 c1 8404 8435 mov dx, word [bp+016h] ; 8b 56 16 … … 8411 8442 mov dx, strict word 00074h ; ba 74 00 8412 8443 mov ax, strict word 00040h ; b8 40 00 8413 call 0165eh ; e8 b3ba8444 call 0165eh ; e8 74 ba 8414 8445 test cl, cl ; 84 c9 8415 je short 05c 13h ; 74 648416 jmp near 05f 15h ; e9 63 038417 jmp near 05 edeh ; e9 29 038446 je short 05c52h ; 74 64 8447 jmp near 05f54h ; e9 63 03 8448 jmp near 05f1dh ; e9 29 03 8418 8449 mov ax, word [bp+016h] ; 8b 46 16 8419 8450 xor ah, ah ; 30 e4 … … 8435 8466 mov ax, word [bp-00ch] ; 8b 46 f4 8436 8467 cmp ax, 00080h ; 3d 80 00 8437 jnbe short 05 bf0h ; 77 048468 jnbe short 05c2fh ; 77 04 8438 8469 test ax, ax ; 85 c0 8439 jne short 05c 16h ; 75 268440 mov bx, 00da 4h ; bb a40d8470 jne short 05c55h ; 75 26 8471 mov bx, 00da0h ; bb a0 0d 8441 8472 mov cx, ds ; 8c d9 8442 8473 mov ax, strict word 00004h ; b8 04 00 8443 call 01923h ; e8 28 bd8474 call 01923h ; e8 e9 bc 8444 8475 mov ax, word [bp+016h] ; 8b 46 16 8445 8476 shr ax, 008h ; c1 e8 08 … … 8448 8479 push 006eah ; 68 ea 06 8449 8480 push strict byte 00004h ; 6a 04 8450 call 01966h ; e8 59bd8481 call 01966h ; e8 1a bd 8451 8482 add sp, strict byte 00008h ; 83 c4 08 8452 jmp near 05 ef9h ; e9 e6 028453 jmp near 05d bfh ; e9 a9 018483 jmp near 05f38h ; e9 e6 02 8484 jmp near 05dfeh ; e9 a9 01 8454 8485 mov al, byte [bp-002h] ; 8a 46 fe 8455 8486 xor ah, ah ; 30 e4 … … 8463 8494 mov word [bp-008h], dx ; 89 56 f8 8464 8495 cmp di, ax ; 39 c7 8465 jnc short 05c 44h ; 73 0c8496 jnc short 05c83h ; 73 0c 8466 8497 cmp cx, word [bp-006h] ; 3b 4e fa 8467 jbe short 05c 44h ; 76 078498 jbe short 05c83h ; 76 07 8468 8499 mov ax, word [bp-004h] ; 8b 46 fc 8469 8500 cmp ax, dx ; 39 d0 8470 jbe short 05c 74h ; 76 308471 mov bx, 00da 4h ; bb a40d8501 jbe short 05cb3h ; 76 30 8502 mov bx, 00da0h ; bb a0 0d 8472 8503 mov cx, ds ; 8c d9 8473 8504 mov ax, strict word 00004h ; b8 04 00 8474 call 01923h ; e8 d4bc8505 call 01923h ; e8 95 bc 8475 8506 push word [bp-004h] ; ff 76 fc 8476 8507 push word [bp-006h] ; ff 76 fa … … 8485 8516 push 00712h ; 68 12 07 8486 8517 push strict byte 00004h ; 6a 04 8487 call 01966h ; e8 f8bc8518 call 01966h ; e8 b9 bc 8488 8519 add sp, strict byte 00010h ; 83 c4 10 8489 jmp near 05 ef9h ; e9 85 028520 jmp near 05f38h ; e9 85 02 8490 8521 mov ax, word [bp+016h] ; 8b 46 16 8491 8522 shr ax, 008h ; c1 e8 08 8492 8523 cmp ax, strict word 00004h ; 3d 04 00 8493 je short 05c 9fh ; 74 208524 je short 05cdeh ; 74 20 8494 8525 mov al, byte [bp-002h] ; 8a 46 fe 8495 8526 xor ah, ah ; 30 e4 … … 8499 8530 add bx, ax ; 01 c3 8500 8531 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8501 jne short 05c a8h ; 75 148532 jne short 05ce7h ; 75 14 8502 8533 mov ax, word [es:bx+034h] ; 26 8b 47 34 8503 8534 cmp ax, word [bp-008h] ; 3b 46 f8 8504 je short 05c a2h ; 74 058505 jmp short 05c a8h ; eb 098506 jmp near 05d bbh ; e9 19 018535 je short 05ce1h ; 74 05 8536 jmp short 05ce7h ; eb 09 8537 jmp near 05dfah ; e9 19 01 8507 8538 cmp byte [bp-002h], 008h ; 80 7e fe 08 8508 jc short 05 cd8h ; 72 308539 jc short 05d17h ; 72 30 8509 8540 mov ax, di ; 89 f8 8510 8541 xor dx, dx ; 31 d2 8511 8542 mov bx, cx ; 89 cb 8512 8543 xor cx, cx ; 31 c9 8513 call 0a0 90h ; e8 dd438544 call 0a0d0h ; e8 de 43 8514 8545 xor bx, bx ; 31 db 8515 8546 add ax, word [bp-006h] ; 03 46 fa … … 8517 8548 mov bx, word [bp-008h] ; 8b 5e f8 8518 8549 xor cx, cx ; 31 c9 8519 call 0a0 90h ; e8 ce438550 call 0a0d0h ; e8 cf 43 8520 8551 xor bx, bx ; 31 db 8521 8552 add ax, word [bp-004h] ; 03 46 fc … … 8573 8604 mov word [bp+016h], bx ; 89 5e 16 8574 8605 test dl, dl ; 84 d2 8575 je short 05d bbh ; 74 468576 mov bx, 00da 4h ; bb a40d8606 je short 05dfah ; 74 46 8607 mov bx, 00da0h ; bb a0 0d 8577 8608 mov cx, ds ; 8c d9 8578 8609 mov ax, strict word 00004h ; b8 04 00 8579 call 01923h ; e8 a3bb8610 call 01923h ; e8 64 bb 8580 8611 mov al, dl ; 88 d0 8581 8612 xor ah, ah ; 30 e4 … … 8587 8618 push 00759h ; 68 59 07 8588 8619 push strict byte 00004h ; 6a 04 8589 call 01966h ; e8 cfbb8620 call 01966h ; e8 90 bb 8590 8621 add sp, strict byte 0000ah ; 83 c4 0a 8591 8622 mov ax, word [bp+016h] ; 8b 46 16 8592 8623 xor ah, ah ; 30 e4 8593 8624 or ah, 00ch ; 80 cc 0c 8594 jmp near 05f 01h ; e9 5c 018595 mov bx, 00da 4h ; bb a40d8625 jmp near 05f40h ; e9 5c 01 8626 mov bx, 00da0h ; bb a0 0d 8596 8627 mov cx, ds ; 8c d9 8597 8628 mov ax, strict word 00004h ; b8 04 00 8598 call 01923h ; e8 73bb8629 call 01923h ; e8 34 bb 8599 8630 push 0077ah ; 68 7a 07 8600 8631 push strict byte 00004h ; 6a 04 8601 call 01966h ; e8 aebb8632 call 01966h ; e8 6f bb 8602 8633 add sp, strict byte 00004h ; 83 c4 04 8603 8634 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8605 8636 mov dx, strict word 00074h ; ba 74 00 8606 8637 mov ax, strict word 00040h ; b8 40 00 8607 call 0165eh ; e8 94b88638 call 0165eh ; e8 55 b8 8608 8639 and byte [bp+01ch], 0feh ; 80 66 1c fe 8609 8640 mov sp, bp ; 89 ec … … 8648 8679 mov dl, al ; 88 c2 8649 8680 mov word [bp+012h], dx ; 89 56 12 8650 jmp near 05d bbh ; e9 7e ff8681 jmp near 05dfah ; e9 7e ff 8651 8682 mov al, byte [bp-002h] ; 8a 46 fe 8652 8683 xor ah, ah ; 30 e4 … … 8665 8696 and AL, strict byte 0c0h ; 24 c0 8666 8697 cmp AL, strict byte 040h ; 3c 40 8667 jne short 05e 63h ; 75 038668 jmp near 05d bbh ; e9 58 ff8698 jne short 05ea2h ; 75 03 8699 jmp near 05dfah ; e9 58 ff 8669 8700 mov ax, word [bp+016h] ; 8b 46 16 8670 8701 xor ah, ah ; 30 e4 8671 8702 or ah, 0aah ; 80 cc aa 8672 jmp near 05f 01h ; e9 93 008703 jmp near 05f40h ; e9 93 00 8673 8704 mov al, byte [bp-002h] ; 8a 46 fe 8674 8705 xor ah, ah ; 30 e4 … … 8685 8716 mov bx, word [bp-006h] ; 8b 5e fa 8686 8717 xor cx, cx ; 31 c9 8687 call 0a0 90h ; e8 f7418718 call 0a0d0h ; e8 f8 41 8688 8719 mov bx, word [bp-004h] ; 8b 5e fc 8689 8720 xor cx, cx ; 31 c9 8690 call 0a0 90h ; e8 ef418721 call 0a0d0h ; e8 f0 41 8691 8722 mov word [bp-00eh], ax ; 89 46 f2 8692 8723 mov word [bp-00ah], dx ; 89 56 f6 … … 8697 8728 or ah, 003h ; 80 cc 03 8698 8729 mov word [bp+016h], ax ; 89 46 16 8699 jmp near 05d bfh ; e9 04 ff8700 mov bx, 00da 4h ; bb a40d8730 jmp near 05dfeh ; e9 04 ff 8731 mov bx, 00da0h ; bb a0 0d 8701 8732 mov cx, ds ; 8c d9 8702 8733 mov ax, strict word 00004h ; b8 04 00 8703 call 01923h ; e8 5dba8734 call 01923h ; e8 1e ba 8704 8735 mov ax, word [bp+016h] ; 8b 46 16 8705 8736 shr ax, 008h ; c1 e8 08 … … 8708 8739 push 00794h ; 68 94 07 8709 8740 push strict byte 00004h ; 6a 04 8710 call 01966h ; e8 8eba8741 call 01966h ; e8 4f ba 8711 8742 add sp, strict byte 00008h ; 83 c4 08 8712 jmp near 05d bbh ; e9 dd fe8713 mov bx, 00da 4h ; bb a40d8743 jmp near 05dfah ; e9 dd fe 8744 mov bx, 00da0h ; bb a0 0d 8714 8745 mov cx, ds ; 8c d9 8715 8746 mov ax, strict word 00004h ; b8 04 00 8716 call 01923h ; e8 3a ba8747 call 01923h ; e8 fb b9 8717 8748 mov ax, word [bp+016h] ; 8b 46 16 8718 8749 shr ax, 008h ; c1 e8 08 … … 8720 8751 push 0067eh ; 68 7e 06 8721 8752 push 007c7h ; 68 c7 07 8722 jmp near 05c 08h ; e9 0f fd8753 jmp near 05c47h ; e9 0f fd 8723 8754 mov ax, word [bp+016h] ; 8b 46 16 8724 8755 xor ah, ah ; 30 e4 … … 8730 8761 mov dx, strict word 00074h ; ba 74 00 8731 8762 mov ax, strict word 00040h ; b8 40 00 8732 call 0165eh ; e8 49b78763 call 0165eh ; e8 0a b7 8733 8764 or byte [bp+01ch], 001h ; 80 4e 1c 01 8734 jmp near 05dceh ; e9 b2 fe 8735 db 0d8h, 05fh, 00bh, 060h, 00bh, 060h, 00bh, 060h, 0fch, 063h, 066h, 061h, 00bh, 060h, 06fh, 061h 8736 db 0fch, 063h, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 0f0h, 05fh, 013h, 064h, 0f0h, 05fh, 0f0h, 05fh 8737 _int13_harddisk_ext: ; 0xf5f3c LB 0x50f 8765 jmp near 05e0dh ; e9 b2 fe 8766 pop SS ; 17 8767 pushaw ; 60 8768 dec dx ; 4a 8769 pushaw ; 60 8770 dec dx ; 4a 8771 pushaw ; 60 8772 dec dx ; 4a 8773 pushaw ; 60 8774 cmp sp, word [si-05bh] ; 3b 64 a5 8775 popaw ; 61 8776 dec dx ; 4a 8777 pushaw ; 60 8778 scasb ; ae 8779 popaw ; 61 8780 cmp sp, word [si+02fh] ; 3b 64 2f 8781 pushaw ; 60 8782 das ; 2f 8783 pushaw ; 60 8784 das ; 2f 8785 pushaw ; 60 8786 das ; 2f 8787 pushaw ; 60 8788 push dx ; 52 8789 db 064h, 02fh 8790 ; fs das ; 64 2f 8791 pushaw ; 60 8792 das ; 2f 8793 pushaw ; 60 8794 _int13_harddisk_ext: ; 0xf5f7b LB 0x50f 8738 8795 push bp ; 55 8739 8796 mov bp, sp ; 89 e5 … … 8741 8798 mov dx, strict word 0000eh ; ba 0e 00 8742 8799 mov ax, strict word 00040h ; b8 40 00 8743 call 0166ch ; e8 21 b78800 call 0166ch ; e8 e2 b6 8744 8801 mov word [bp-012h], ax ; 89 46 ee 8745 8802 mov dx, strict word 0000eh ; ba 0e 00 8746 8803 mov ax, strict word 00040h ; b8 40 00 8747 call 0166ch ; e8 15 b78804 call 0166ch ; e8 d6 b6 8748 8805 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8749 8806 mov word [bp-006h], ax ; 89 46 fa … … 8751 8808 mov dx, 0008eh ; ba 8e 00 8752 8809 mov ax, strict word 00040h ; b8 40 00 8753 call 0165eh ; e8 f4b68810 call 0165eh ; e8 b5 b6 8754 8811 mov ax, word [bp+00eh] ; 8b 46 0e 8755 8812 xor ah, ah ; 30 e4 8756 8813 cmp ax, 00080h ; 3d 80 00 8757 jc short 05f 79h ; 72 058814 jc short 05fb8h ; 72 05 8758 8815 cmp ax, 00090h ; 3d 90 00 8759 jc short 05f 97h ; 72 1e8816 jc short 05fd6h ; 72 1e 8760 8817 mov ax, word [bp+00eh] ; 8b 46 0e 8761 8818 xor ah, ah ; 30 e4 … … 8767 8824 push 0068dh ; 68 8d 06 8768 8825 push strict byte 00004h ; 6a 04 8769 call 01966h ; e8 d5b98826 call 01966h ; e8 96 b9 8770 8827 add sp, strict byte 0000ah ; 83 c4 0a 8771 jmp near 064 29h ; e9 92 048828 jmp near 06468h ; e9 92 04 8772 8829 mov ax, word [bp+00eh] ; 8b 46 0e 8773 8830 xor ah, ah ; 30 e4 … … 8777 8834 mov byte [bp-004h], dl ; 88 56 fc 8778 8835 cmp dl, 010h ; 80 fa 10 8779 jc short 05f beh ; 72 108836 jc short 05ffdh ; 72 10 8780 8837 push ax ; 50 8781 8838 mov ax, word [bp+016h] ; 8b 46 16 … … 8784 8841 push 007f5h ; 68 f5 07 8785 8842 push 006b8h ; 68 b8 06 8786 jmp short 05f 8ch ; eb ce8843 jmp short 05fcbh ; eb ce 8787 8844 mov bx, word [bp+016h] ; 8b 5e 16 8788 8845 shr bx, 008h ; c1 eb 08 8789 8846 sub bx, strict byte 00041h ; 83 eb 41 8790 8847 cmp bx, strict byte 0000fh ; 83 fb 0f 8791 jnbe short 0 5ff0h ; 77 248848 jnbe short 0602fh ; 77 24 8792 8849 add bx, bx ; 01 db 8793 8850 mov dx, word [bp+016h] ; 8b 56 16 8794 8851 xor dh, dh ; 30 f6 8795 jmp word [cs:bx+05f 1ch] ; 2e ff a7 1c5f8852 jmp word [cs:bx+05f5bh] ; 2e ff a7 5b 5f 8796 8853 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8797 8854 mov ax, word [bp+016h] ; 8b 46 16 … … 8800 8857 mov word [bp+016h], ax ; 89 46 16 8801 8858 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8802 jmp near 064 00h ; e9 10 048803 mov bx, 00da 4h ; bb a40d8859 jmp near 0643fh ; e9 10 04 8860 mov bx, 00da0h ; bb a0 0d 8804 8861 mov cx, ds ; 8c d9 8805 8862 mov ax, strict word 00004h ; b8 04 00 8806 call 01923h ; e8 28 b98863 call 01923h ; e8 e9 b8 8807 8864 mov ax, word [bp+016h] ; 8b 46 16 8808 8865 shr ax, 008h ; c1 e8 08 … … 8810 8867 push 007f5h ; 68 f5 07 8811 8868 push 007c7h ; 68 c7 07 8812 jmp near 060 a0h ; e9 95 008869 jmp near 060dfh ; e9 95 00 8813 8870 mov di, word [bp+00ah] ; 8b 7e 0a 8814 8871 mov es, [bp+004h] ; 8e 46 04 … … 8826 8883 xor bx, bx ; 31 db 8827 8884 mov si, strict word 00020h ; be 20 00 8828 call 0a 0f0h ; e8 b2408885 call 0a130h ; e8 b3 40 8829 8886 mov si, ax ; 89 c6 8830 8887 mov word [bp-00ch], bx ; 89 5e f4 … … 8840 8897 mov al, byte [es:bx+022h] ; 26 8a 47 22 8841 8898 cmp si, word [es:bx+03ch] ; 26 3b 77 3c 8842 jnbe short 060 88h ; 77 228843 jne short 060 abh ; 75 438899 jnbe short 060c7h ; 77 22 8900 jne short 060eah ; 75 43 8844 8901 mov di, word [bp-00ch] ; 8b 7e f4 8845 8902 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8846 jnbe short 060 88h ; 77 178903 jnbe short 060c7h ; 77 17 8847 8904 mov di, word [bp-00ch] ; 8b 7e f4 8848 8905 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8849 jne short 060 abh ; 75 318906 jne short 060eah ; 75 31 8850 8907 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 8851 jnbe short 060 88h ; 77 088852 jne short 060 abh ; 75 298908 jnbe short 060c7h ; 77 08 8909 jne short 060eah ; 75 29 8853 8910 cmp dx, word [es:bx+036h] ; 26 3b 57 36 8854 jc short 060 abh ; 72 238855 mov bx, 00da 4h ; bb a40d8911 jc short 060eah ; 72 23 8912 mov bx, 00da0h ; bb a0 0d 8856 8913 mov cx, ds ; 8c d9 8857 8914 mov ax, strict word 00004h ; b8 04 00 8858 call 01923h ; e8 90b88915 call 01923h ; e8 51 b8 8859 8916 mov ax, word [bp+016h] ; 8b 46 16 8860 8917 shr ax, 008h ; c1 e8 08 … … 8863 8920 push 00808h ; 68 08 08 8864 8921 push strict byte 00004h ; 6a 04 8865 call 01966h ; e8 c1b88922 call 01966h ; e8 82 b8 8866 8923 add sp, strict byte 00008h ; 83 c4 08 8867 jmp near 064 29h ; e9 7e 038924 jmp near 06468h ; e9 7e 03 8868 8925 mov di, word [bp+016h] ; 8b 7e 16 8869 8926 shr di, 008h ; c1 ef 08 8870 8927 cmp di, strict byte 00044h ; 83 ff 44 8871 je short 060 bbh ; 74 058928 je short 060fah ; 74 05 8872 8929 cmp di, strict byte 00047h ; 83 ff 47 8873 jne short 060 beh ; 75 038874 jmp near 06 3fch ; e9 3e 038930 jne short 060fdh ; 75 03 8931 jmp near 0643bh ; e9 3e 03 8875 8932 les bx, [bp-008h] ; c4 5e f8 8876 8933 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 … … 8910 8967 mov word [es:bx+002h], ax ; 26 89 47 02 8911 8968 test dl, dl ; 84 d2 8912 je short 061 8dh ; 74 518913 mov bx, 00da 4h ; bb a40d8969 je short 061cch ; 74 51 8970 mov bx, 00da0h ; bb a0 0d 8914 8971 mov cx, ds ; 8c d9 8915 8972 mov ax, strict word 00004h ; b8 04 00 8916 call 01923h ; e8 dcb78973 call 01923h ; e8 9d b7 8917 8974 mov al, dl ; 88 d0 8918 8975 xor ah, ah ; 30 e4 … … 8922 8979 push 00759h ; 68 59 07 8923 8980 push strict byte 00004h ; 6a 04 8924 call 01966h ; e8 0e b88981 call 01966h ; e8 cf b7 8925 8982 add sp, strict byte 0000ah ; 83 c4 0a 8926 8983 mov ax, word [bp+016h] ; 8b 46 16 8927 8984 xor ah, ah ; 30 e4 8928 8985 or ah, 00ch ; 80 cc 0c 8929 jmp near 064 31h ; e9 cb 028986 jmp near 06470h ; e9 cb 02 8930 8987 or dh, 0b2h ; 80 ce b2 8931 8988 mov word [bp+016h], dx ; 89 56 16 8932 jmp near 064 34h ; e9 c5 028989 jmp near 06473h ; e9 c5 02 8933 8990 mov bx, word [bp+00ah] ; 8b 5e 0a 8934 8991 mov ax, word [bp+004h] ; 8b 46 04 … … 8940 8997 mov word [bp-00eh], ax ; 89 46 f2 8941 8998 cmp ax, strict word 0001ah ; 3d 1a 00 8942 jnc short 061 90h ; 73 068943 jmp near 064 29h ; e9 9c 028944 jmp near 06 3fch ; e9 6c 028945 jnc short 061 95h ; 73 038946 jmp near 062 2ch ; e9 97 008999 jnc short 061cfh ; 73 06 9000 jmp near 06468h ; e9 9c 02 9001 jmp near 0643bh ; e9 6c 02 9002 jnc short 061d4h ; 73 03 9003 jmp near 0626bh ; e9 97 00 8947 9004 mov al, byte [bp-004h] ; 8a 46 fc 8948 9005 xor ah, ah ; 30 e4 … … 8983 9040 mov bx, word [bp-00ch] ; 8b 5e f4 8984 9041 mov si, strict word 00020h ; be 20 00 8985 call 0a 0e0h ; e8 be3e9042 call 0a120h ; e8 bf 3e 8986 9043 mov bx, di ; 89 fb 8987 9044 mov word [es:bx+014h], dx ; 26 89 57 14 8988 9045 mov word [es:bx+016h], cx ; 26 89 4f 16 8989 9046 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8990 jc short 062 97h ; 72 659047 jc short 062d6h ; 72 65 8991 9048 mov es, [bp-00ah] ; 8e 46 f6 8992 9049 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 9015 9072 mov dl, byte [es:bx+027h] ; 26 8a 57 27 9016 9073 test dl, dl ; 84 d2 9017 jne short 062 87h ; 75 049074 jne short 062c6h ; 75 04 9018 9075 xor bx, bx ; 31 db 9019 jmp short 062 8ah ; eb 039076 jmp short 062c9h ; eb 03 9020 9077 mov bx, strict word 00008h ; bb 08 00 9021 9078 or bl, 010h ; 80 cb 10 9022 9079 cmp dl, 001h ; 80 fa 01 9023 jne short 062 9ah ; 75 089080 jne short 062d9h ; 75 08 9024 9081 mov ax, strict word 00001h ; b8 01 00 9025 jmp short 062 9ch ; eb 059026 jmp near 063 2dh ; e9 93 009082 jmp short 062dbh ; eb 05 9083 jmp near 0636ch ; e9 93 00 9027 9084 xor ax, ax ; 31 c0 9028 9085 or bx, ax ; 09 c3 9029 9086 cmp dl, 003h ; 80 fa 03 9030 jne short 062 a8h ; 75 059087 jne short 062e7h ; 75 05 9031 9088 mov ax, strict word 00003h ; b8 03 00 9032 jmp short 062 aah ; eb 029089 jmp short 062e9h ; eb 02 9033 9090 xor ax, ax ; 31 c0 9034 9091 or bx, ax ; 09 c3 … … 9057 9114 xor bl, bl ; 30 db 9058 9115 xor bh, bh ; 30 ff 9059 jmp short 063 0fh ; eb 059116 jmp short 0634eh ; eb 05 9060 9117 cmp bh, 00fh ; 80 ff 0f 9061 jnc short 063 23h ; 73 149118 jnc short 06362h ; 73 14 9062 9119 mov dl, bh ; 88 fa 9063 9120 xor dh, dh ; 30 f6 9064 9121 add dx, 00356h ; 81 c2 56 03 9065 9122 mov ax, word [bp-012h] ; 8b 46 ee 9066 call 01650h ; e8 33 b39123 call 01650h ; e8 f4 b2 9067 9124 add bl, al ; 00 c3 9068 9125 db 0feh, 0c7h 9069 9126 ; inc bh ; fe c7 9070 jmp short 063 0ah ; eb e79127 jmp short 06349h ; eb e7 9071 9128 neg bl ; f6 db 9072 9129 les si, [bp-008h] ; c4 76 f8 9073 9130 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9074 9131 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 9075 jnc short 063 36h ; 73 039076 jmp near 06 3fch ; e9 c6 009132 jnc short 06375h ; 73 03 9133 jmp near 0643bh ; e9 c6 00 9077 9134 mov al, byte [bp-004h] ; 8a 46 fc 9078 9135 xor ah, ah ; 30 e4 … … 9093 9150 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9094 9151 test al, al ; 84 c0 9095 jne short 063 7eh ; 75 0c9152 jne short 063bdh ; 75 0c 9096 9153 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9097 9154 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9102 9159 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9103 9160 test al, al ; 84 c0 9104 jne short 063 b3h ; 75 169161 jne short 063f2h ; 75 16 9105 9162 mov word [es:di+030h], dx ; 26 89 55 30 9106 9163 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9117 9174 xor bl, bl ; 30 db 9118 9175 mov BH, strict byte 01eh ; b7 1e 9119 jmp short 06 3deh ; eb 059176 jmp short 0641dh ; eb 05 9120 9177 cmp bh, 040h ; 80 ff 40 9121 jnc short 06 3f3h ; 73 159178 jnc short 06432h ; 73 15 9122 9179 mov al, bh ; 88 f8 9123 9180 xor ah, ah ; 30 e4 … … 9125 9182 add dx, ax ; 01 c2 9126 9183 mov ax, word [bp+004h] ; 8b 46 04 9127 call 01650h ; e8 63b29184 call 01650h ; e8 24 b2 9128 9185 add bl, al ; 00 c3 9129 9186 db 0feh, 0c7h 9130 9187 ; inc bh ; fe c7 9131 jmp short 06 3d9h ; eb e69188 jmp short 06418h ; eb e6 9132 9189 neg bl ; f6 db 9133 9190 mov es, [bp-00ah] ; 8e 46 f6 … … 9137 9194 mov dx, strict word 00074h ; ba 74 00 9138 9195 mov ax, strict word 00040h ; b8 40 00 9139 call 0165eh ; e8 53b29196 call 0165eh ; e8 14 b2 9140 9197 and byte [bp+01ch], 0feh ; 80 66 1c fe 9141 9198 mov sp, bp ; 89 ec … … 9143 9200 retn ; c3 9144 9201 cmp dx, strict byte 00006h ; 83 fa 06 9145 je short 06 3fch ; 74 e49202 je short 0643bh ; 74 e4 9146 9203 cmp dx, strict byte 00001h ; 83 fa 01 9147 jc short 064 29h ; 72 0c9148 jbe short 06 3fch ; 76 dd9204 jc short 06468h ; 72 0c 9205 jbe short 0643bh ; 76 dd 9149 9206 cmp dx, strict byte 00003h ; 83 fa 03 9150 jc short 064 29h ; 72 059207 jc short 06468h ; 72 05 9151 9208 cmp dx, strict byte 00004h ; 83 fa 04 9152 jbe short 06 3fch ; 76 d39209 jbe short 0643bh ; 76 d3 9153 9210 mov ax, word [bp+016h] ; 8b 46 16 9154 9211 xor ah, ah ; 30 e4 … … 9160 9217 mov dx, strict word 00074h ; ba 74 00 9161 9218 mov ax, strict word 00040h ; b8 40 00 9162 call 0165eh ; e8 19 b29219 call 0165eh ; e8 da b1 9163 9220 or byte [bp+01ch], 001h ; 80 4e 1c 01 9164 jmp short 064 0fh ; eb c49165 _int14_function: ; 0xf64 4bLB 0x15c9221 jmp short 0644eh ; eb c4 9222 _int14_function: ; 0xf648a LB 0x15c 9166 9223 push bp ; 55 9167 9224 mov bp, sp ; 89 e5 … … 9171 9228 add dx, dx ; 01 d2 9172 9229 mov ax, strict word 00040h ; b8 40 00 9173 call 0166ch ; e8 11 b29230 call 0166ch ; e8 d2 b1 9174 9231 mov si, ax ; 89 c6 9175 9232 mov bx, ax ; 89 c3 … … 9177 9234 add dx, strict byte 0007ch ; 83 c2 7c 9178 9235 mov ax, strict word 00040h ; b8 40 00 9179 call 01650h ; e8 e5b19236 call 01650h ; e8 a6 b1 9180 9237 mov cl, al ; 88 c1 9181 9238 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9182 jnc short 064 77h ; 73 049239 jnc short 064b6h ; 73 04 9183 9240 test si, si ; 85 f6 9184 jnbe short 064 7ah ; 77 039185 jmp near 065 9dh ; e9 23 019241 jnbe short 064b9h ; 77 03 9242 jmp near 065dch ; e9 23 01 9186 9243 mov al, byte [bp+013h] ; 8a 46 13 9187 9244 cmp AL, strict byte 001h ; 3c 01 9188 jc short 064 8eh ; 72 0d9189 jbe short 06 4eeh ; 76 6b9245 jc short 064cdh ; 72 0d 9246 jbe short 0652dh ; 76 6b 9190 9247 cmp AL, strict byte 003h ; 3c 03 9191 je short 06 4e6h ; 74 5f9248 je short 06525h ; 74 5f 9192 9249 cmp AL, strict byte 002h ; 3c 02 9193 je short 06 4e9h ; 74 5e9194 jmp near 065 97h ; e9 09 019250 je short 06528h ; 74 5e 9251 jmp near 065d6h ; e9 09 01 9195 9252 test al, al ; 84 c0 9196 jne short 06 4ebh ; 75 599253 jne short 0652ah ; 75 59 9197 9254 lea dx, [bx+003h] ; 8d 57 03 9198 9255 in AL, DX ; ec … … 9204 9261 mov al, byte [bp+012h] ; 8a 46 12 9205 9262 test AL, strict byte 0e0h ; a8 e0 9206 jne short 064 b1h ; 75 0c9263 jne short 064f0h ; 75 0c 9207 9264 mov AL, strict byte 017h ; b0 17 9208 9265 mov dx, bx ; 89 da … … 9211 9268 mov dx, si ; 89 f2 9212 9269 out DX, AL ; ee 9213 jmp short 06 4c8h ; eb 179270 jmp short 06507h ; eb 17 9214 9271 and AL, strict byte 0e0h ; 24 e0 9215 9272 xor ah, ah ; 30 e4 … … 9237 9294 ; sub ah, ah ; 2a e4 9238 9295 mov byte [bp+012h], al ; 88 46 12 9239 jmp near 065 78h ; e9 92 009240 jmp near 065 86h ; e9 9d 009241 jmp short 065 3ch ; eb 519242 jmp near 065 97h ; e9 a9 009296 jmp near 065b7h ; e9 92 00 9297 jmp near 065c5h ; e9 9d 00 9298 jmp short 0657bh ; eb 51 9299 jmp near 065d6h ; e9 a9 00 9243 9300 mov dx, strict word 0006ch ; ba 6c 00 9244 9301 mov ax, strict word 00040h ; b8 40 00 9245 call 0166ch ; e8 75b19302 call 0166ch ; e8 36 b1 9246 9303 mov si, ax ; 89 c6 9247 9304 lea dx, [bx+005h] ; 8d 57 05 … … 9251 9308 and ax, strict word 00060h ; 25 60 00 9252 9309 cmp ax, strict word 00060h ; 3d 60 00 9253 je short 065 1eh ; 74 179310 je short 0655dh ; 74 17 9254 9311 test cl, cl ; 84 c9 9255 je short 065 1eh ; 74 139312 je short 0655dh ; 74 13 9256 9313 mov dx, strict word 0006ch ; ba 6c 00 9257 9314 mov ax, strict word 00040h ; b8 40 00 9258 call 0166ch ; e8 58b19315 call 0166ch ; e8 19 b1 9259 9316 cmp ax, si ; 39 f0 9260 je short 06 4f9h ; 74 e19317 je short 06538h ; 74 e1 9261 9318 mov si, ax ; 89 c6 9262 9319 db 0feh, 0c9h 9263 9320 ; dec cl ; fe c9 9264 jmp short 06 4f9h ; eb db9321 jmp short 06538h ; eb db 9265 9322 test cl, cl ; 84 c9 9266 je short 065 28h ; 74 069323 je short 06567h ; 74 06 9267 9324 mov al, byte [bp+012h] ; 8a 46 12 9268 9325 mov dx, bx ; 89 da … … 9274 9331 mov byte [bp+013h], al ; 88 46 13 9275 9332 test cl, cl ; 84 c9 9276 jne short 065 78h ; 75 439333 jne short 065b7h ; 75 43 9277 9334 or AL, strict byte 080h ; 0c 80 9278 9335 mov byte [bp+013h], al ; 88 46 13 9279 jmp short 065 78h ; eb 3c9336 jmp short 065b7h ; eb 3c 9280 9337 mov dx, strict word 0006ch ; ba 6c 00 9281 9338 mov ax, strict word 00040h ; b8 40 00 9282 call 0166ch ; e8 27 b19339 call 0166ch ; e8 e8 b0 9283 9340 mov si, ax ; 89 c6 9284 9341 lea dx, [bx+005h] ; 8d 57 05 … … 9287 9344 ; sub ah, ah ; 2a e4 9288 9345 test AL, strict byte 001h ; a8 01 9289 jne short 065 68h ; 75 179346 jne short 065a7h ; 75 17 9290 9347 test cl, cl ; 84 c9 9291 je short 065 68h ; 74 139348 je short 065a7h ; 74 13 9292 9349 mov dx, strict word 0006ch ; ba 6c 00 9293 9350 mov ax, strict word 00040h ; b8 40 00 9294 call 0166ch ; e8 0e b19351 call 0166ch ; e8 cf b0 9295 9352 cmp ax, si ; 39 f0 9296 je short 065 47h ; 74 e59353 je short 06586h ; 74 e5 9297 9354 mov si, ax ; 89 c6 9298 9355 db 0feh, 0c9h 9299 9356 ; dec cl ; fe c9 9300 jmp short 065 47h ; eb df9357 jmp short 06586h ; eb df 9301 9358 test cl, cl ; 84 c9 9302 je short 065 7eh ; 74 129359 je short 065bdh ; 74 12 9303 9360 mov byte [bp+013h], 000h ; c6 46 13 00 9304 9361 mov dx, bx ; 89 da … … 9308 9365 mov byte [bp+012h], al ; 88 46 12 9309 9366 and byte [bp+01ch], 0feh ; 80 66 1c fe 9310 jmp short 065 a1h ; eb 239367 jmp short 065e0h ; eb 23 9311 9368 lea dx, [bx+005h] ; 8d 57 05 9312 9369 in AL, DX ; ec 9313 9370 db 02ah, 0e4h 9314 9371 ; sub ah, ah ; 2a e4 9315 jmp short 065 37h ; eb b19372 jmp short 06576h ; eb b1 9316 9373 lea dx, [si+005h] ; 8d 54 05 9317 9374 in AL, DX ; ec … … 9323 9380 db 02ah, 0e4h 9324 9381 ; sub ah, ah ; 2a e4 9325 jmp short 065 75h ; eb de9382 jmp short 065b4h ; eb de 9326 9383 or byte [bp+01ch], 001h ; 80 4e 1c 01 9327 jmp short 065 a1h ; eb 049384 jmp short 065e0h ; eb 04 9328 9385 or byte [bp+01ch], 001h ; 80 4e 1c 01 9329 9386 lea sp, [bp-002h] ; 8d 66 fe … … 9331 9388 pop bp ; 5d 9332 9389 retn ; c3 9333 timer_wait_: ; 0xf65 a7LB 0x439390 timer_wait_: ; 0xf65e6 LB 0x43 9334 9391 push bp ; 55 9335 9392 mov bp, sp ; 89 e5 … … 9339 9396 mov bx, strict word 0000fh ; bb 0f 00 9340 9397 xor cx, cx ; 31 c9 9341 call 0a0 b0h ; e8 fb3a9398 call 0a0f0h ; e8 fc 3a 9342 9399 mov cx, ax ; 89 c1 9343 9400 mov bx, dx ; 89 d3 … … 9351 9408 adc bx, strict byte 0ffffh ; 83 d3 ff 9352 9409 cmp bx, strict byte 0ffffh ; 83 fb ff 9353 jne short 06 5d4h ; 75 059410 jne short 06613h ; 75 05 9354 9411 cmp cx, strict byte 0ffffh ; 83 f9 ff 9355 je short 06 5e3h ; 74 0f9412 je short 06622h ; 74 0f 9356 9413 mov dx, strict word 00061h ; ba 61 00 9357 9414 in AL, DX ; ec … … 9360 9417 and AL, strict byte 010h ; 24 10 9361 9418 cmp al, byte [bp-006h] ; 3a 46 fa 9362 jne short 06 5d4h ; 75 f39363 jmp short 06 5c4h ; eb e19419 jne short 06613h ; 75 f3 9420 jmp short 06603h ; eb e1 9364 9421 lea sp, [bp-004h] ; 8d 66 fc 9365 9422 pop cx ; 59 … … 9367 9424 pop bp ; 5d 9368 9425 retn ; c3 9369 set_enable_a20_: ; 0xf6 5eaLB 0x309426 set_enable_a20_: ; 0xf6629 LB 0x30 9370 9427 push bp ; 55 9371 9428 mov bp, sp ; 89 e5 … … 9380 9437 mov cl, al ; 88 c1 9381 9438 test bx, bx ; 85 db 9382 je short 066 03h ; 74 059439 je short 06642h ; 74 05 9383 9440 or AL, strict byte 002h ; 0c 02 9384 9441 out DX, AL ; ee 9385 jmp short 066 06h ; eb 039442 jmp short 06645h ; eb 03 9386 9443 and AL, strict byte 0fdh ; 24 fd 9387 9444 out DX, AL ; ee 9388 9445 test cl, 002h ; f6 c1 02 9389 je short 066 10h ; 74 059446 je short 0664fh ; 74 05 9390 9447 mov ax, strict word 00001h ; b8 01 00 9391 jmp short 066 12h ; eb 029448 jmp short 06651h ; eb 02 9392 9449 xor ax, ax ; 31 c0 9393 9450 lea sp, [bp-006h] ; 8d 66 fa … … 9397 9454 pop bp ; 5d 9398 9455 retn ; c3 9399 set_e820_range_: ; 0xf66 1aLB 0x889456 set_e820_range_: ; 0xf6659 LB 0x88 9400 9457 push si ; 56 9401 9458 push bp ; 55 … … 9427 9484 retn 0000ah ; c2 0a 00 9428 9485 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9429 db 0 ach, 069h, 0ddh, 066h, 0f1h, 066h, 086h, 067h, 08ch, 067h, 091h, 067h, 096h, 067h, 03eh, 068h9430 db 0 69h, 068h, 07fh, 067h, 07fh, 067h, 036h, 069h, 05eh, 069h, 071h, 069h, 080h, 069h, 086h, 067h9431 db 0 87h, 069h9432 _int15_function: ; 0xf66 a2LB 0x33c9486 db 0ebh, 069h, 01ch, 067h, 030h, 067h, 0c5h, 067h, 0cbh, 067h, 0d0h, 067h, 0d5h, 067h, 07dh, 068h 9487 db 0a8h, 068h, 0beh, 067h, 0beh, 067h, 075h, 069h, 09dh, 069h, 0b0h, 069h, 0bfh, 069h, 0c5h, 067h 9488 db 0c6h, 069h 9489 _int15_function: ; 0xf66e1 LB 0x33c 9433 9490 push bp ; 55 9434 9491 mov bp, sp ; 89 e5 … … 9438 9495 shr ax, 008h ; c1 e8 08 9439 9496 cmp ax, 000ech ; 3d ec 00 9440 jnbe short 06 6e7h ; 77 359497 jnbe short 06726h ; 77 35 9441 9498 push CS ; 0e 9442 9499 pop ES ; 07 9443 9500 mov cx, strict word 00011h ; b9 11 00 9444 mov di, 066 70h ; bf 70669501 mov di, 066afh ; bf af 66 9445 9502 repne scasb ; f2 ae 9446 9503 sal cx, 1 ; d1 e1 9447 9504 mov di, cx ; 89 cf 9448 mov si, word [cs:di+066 80h] ; 2e 8b b5 80669505 mov si, word [cs:di+066bfh] ; 2e 8b b5 bf 66 9449 9506 mov ax, word [bp+012h] ; 8b 46 12 9450 9507 xor ah, ah ; 30 e4 … … 9459 9516 xor ah, ah ; 30 e4 9460 9517 cmp ax, 000c0h ; 3d c0 00 9461 je short 06 6eah ; 74 039462 jmp near 069 ach ; e9 c2 029518 je short 06729h ; 74 03 9519 jmp near 069ebh ; e9 c2 02 9463 9520 or byte [bp+018h], 001h ; 80 4e 18 01 9464 jmp near 069 55h ; e9 64 029521 jmp near 06994h ; e9 64 02 9465 9522 mov dx, ax ; 89 c2 9466 9523 cmp ax, strict word 00001h ; 3d 01 00 9467 jc short 067 06h ; 72 0e9468 jbe short 067 1ah ; 76 209524 jc short 06745h ; 72 0e 9525 jbe short 06759h ; 76 20 9469 9526 cmp ax, strict word 00003h ; 3d 03 00 9470 je short 067 47h ; 74 489527 je short 06786h ; 74 48 9471 9528 cmp ax, strict word 00002h ; 3d 02 00 9472 je short 067 2ah ; 74 269473 jmp short 067 54h ; eb 4e9529 je short 06769h ; 74 26 9530 jmp short 06793h ; eb 4e 9474 9531 test ax, ax ; 85 c0 9475 jne short 067 54h ; 75 4a9532 jne short 06793h ; 75 4a 9476 9533 xor ax, ax ; 31 c0 9477 call 06 5eah ; e8 db fe9534 call 06629h ; e8 db fe 9478 9535 and byte [bp+018h], 0feh ; 80 66 18 fe 9479 9536 mov byte [bp+013h], 000h ; c6 46 13 00 9480 jmp near 067 7fh ; e9 65 009537 jmp near 067beh ; e9 65 00 9481 9538 mov ax, strict word 00001h ; b8 01 00 9482 call 06 5eah ; e8 ca fe9539 call 06629h ; e8 ca fe 9483 9540 and byte [bp+018h], 0feh ; 80 66 18 fe 9484 9541 mov byte [bp+013h], dh ; 88 76 13 9485 jmp near 067 7fh ; e9 55 009542 jmp near 067beh ; e9 55 00 9486 9543 mov dx, 00092h ; ba 92 00 9487 9544 in AL, DX ; ec … … 9495 9552 and byte [bp+018h], 0feh ; 80 66 18 fe 9496 9553 mov byte [bp+013h], ah ; 88 66 13 9497 jmp near 067 7fh ; e9 38 009554 jmp near 067beh ; e9 38 00 9498 9555 and byte [bp+018h], 0feh ; 80 66 18 fe 9499 9556 mov byte [bp+013h], ah ; 88 66 13 9500 9557 mov word [bp+00ch], ax ; 89 46 0c 9501 jmp near 067 7fh ; e9 2b 009502 mov bx, 00da 4h ; bb a40d9558 jmp near 067beh ; e9 2b 00 9559 mov bx, 00da0h ; bb a0 0d 9503 9560 mov cx, ds ; 8c d9 9504 9561 mov ax, strict word 00004h ; b8 04 00 9505 call 01923h ; e8 c4b19562 call 01923h ; e8 85 b1 9506 9563 mov ax, word [bp+012h] ; 8b 46 12 9507 9564 xor ah, ah ; 30 e4 … … 9509 9566 push 0082eh ; 68 2e 08 9510 9567 push strict byte 00004h ; 6a 04 9511 call 01966h ; e8 f9b19568 call 01966h ; e8 ba b1 9512 9569 add sp, strict byte 00006h ; 83 c4 06 9513 9570 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9522 9579 retn ; c3 9523 9580 mov word [bp+018h], dx ; 89 56 18 9524 jmp near 068 38h ; e9 ac 009581 jmp near 06877h ; e9 ac 00 9525 9582 mov word [bp+018h], dx ; 89 56 18 9526 jmp short 067 7fh ; eb ee9583 jmp short 067beh ; eb ee 9527 9584 mov word [bp+018h], cx ; 89 4e 18 9528 jmp short 067 7ch ; eb e69585 jmp short 067bbh ; eb e6 9529 9586 test byte [bp+012h], 0ffh ; f6 46 12 ff 9530 jne short 068 0bh ; 75 6f9587 jne short 0684ah ; 75 6f 9531 9588 mov dx, 000a0h ; ba a0 00 9532 9589 mov ax, strict word 00040h ; b8 40 00 9533 call 01650h ; e8 abae9590 call 01650h ; e8 6c ae 9534 9591 test AL, strict byte 001h ; a8 01 9535 jne short 068 08h ; 75 5f9592 jne short 06847h ; 75 5f 9536 9593 mov bx, strict word 00001h ; bb 01 00 9537 9594 mov dx, 000a0h ; ba a0 00 9538 9595 mov ax, strict word 00040h ; b8 40 00 9539 call 0165eh ; e8 a9ae9596 call 0165eh ; e8 6a ae 9540 9597 mov bx, word [bp+014h] ; 8b 5e 14 9541 9598 mov dx, 00098h ; ba 98 00 9542 9599 mov ax, strict word 00040h ; b8 40 00 9543 call 0167ah ; e8 b9ae9600 call 0167ah ; e8 7a ae 9544 9601 mov bx, word [bp+00ch] ; 8b 5e 0c 9545 9602 mov dx, 0009ah ; ba 9a 00 9546 9603 mov ax, strict word 00040h ; b8 40 00 9547 call 0167ah ; e8 adae9604 call 0167ah ; e8 6e ae 9548 9605 mov bx, word [bp+00eh] ; 8b 5e 0e 9549 9606 mov dx, 0009ch ; ba 9c 00 9550 9607 mov ax, strict word 00040h ; b8 40 00 9551 call 0167ah ; e8 a1ae9608 call 0167ah ; e8 62 ae 9552 9609 mov bx, word [bp+010h] ; 8b 5e 10 9553 9610 mov dx, 0009eh ; ba 9e 00 9554 9611 mov ax, strict word 00040h ; b8 40 00 9555 call 0167ah ; e8 95ae9612 call 0167ah ; e8 56 ae 9556 9613 and byte [bp+018h], 0feh ; 80 66 18 fe 9557 9614 mov dx, 000a1h ; ba a1 00 … … 9562 9619 out DX, AL ; ee 9563 9620 mov ax, strict word 0000bh ; b8 0b 00 9564 call 016ach ; e8 b4ae9621 call 016ach ; e8 75 ae 9565 9622 mov dl, al ; 88 c2 9566 9623 or dl, 040h ; 80 ca 40 9567 9624 xor dh, dh ; 30 f6 9568 9625 mov ax, strict word 0000bh ; b8 0b 00 9569 call 016c7h ; e8 c2ae9570 jmp near 067 7fh ; e9 77 ff9571 jmp near 069 4ch ; e9 41 019626 call 016c7h ; e8 83 ae 9627 jmp near 067beh ; e9 77 ff 9628 jmp near 0698bh ; e9 41 01 9572 9629 cmp ax, strict word 00001h ; 3d 01 00 9573 jne short 068 2ch ; 75 1c9630 jne short 0686bh ; 75 1c 9574 9631 xor bx, bx ; 31 db 9575 9632 mov dx, 000a0h ; ba a0 00 9576 9633 mov ax, strict word 00040h ; b8 40 00 9577 call 0165eh ; e8 43ae9634 call 0165eh ; e8 04 ae 9578 9635 and byte [bp+018h], 0feh ; 80 66 18 fe 9579 9636 mov ax, strict word 0000bh ; b8 0b 00 9580 call 016ach ; e8 87ae9637 call 016ach ; e8 48 ae 9581 9638 mov dl, al ; 88 c2 9582 9639 and dl, 0bfh ; 80 e2 bf 9583 jmp short 06 7fdh ; eb d19640 jmp short 0683ch ; eb d1 9584 9641 mov word [bp+018h], dx ; 89 56 18 9585 9642 mov ax, bx ; 89 d8 … … 9589 9646 or bx, ax ; 09 c3 9590 9647 mov word [bp+012h], bx ; 89 5e 12 9591 jmp near 067 7fh ; e9 41 ff9648 jmp near 067beh ; e9 41 ff 9592 9649 mov ax, strict word 00031h ; b8 31 00 9593 call 016ach ; e8 68ae9650 call 016ach ; e8 29 ae 9594 9651 xor ah, ah ; 30 e4 9595 9652 mov dx, ax ; 89 c2 9596 9653 sal dx, 008h ; c1 e2 08 9597 9654 mov ax, strict word 00030h ; b8 30 00 9598 call 016ach ; e8 5bae9655 call 016ach ; e8 1c ae 9599 9656 xor ah, ah ; 30 e4 9600 9657 or dx, ax ; 09 c2 9601 9658 mov word [bp+012h], dx ; 89 56 12 9602 9659 cmp dx, strict byte 0ffc0h ; 83 fa c0 9603 jbe short 068 62h ; 76 059660 jbe short 068a1h ; 76 05 9604 9661 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9605 9662 and byte [bp+018h], 0feh ; 80 66 18 fe 9606 jmp near 067 7fh ; e9 16 ff9663 jmp near 067beh ; e9 16 ff 9607 9664 cli ; fa 9608 9665 mov ax, strict word 00001h ; b8 01 00 9609 call 06 5eah ; e8 7a fd9666 call 06629h ; e8 7a fd 9610 9667 mov dx, word [bp+006h] ; 8b 56 06 9611 9668 add dx, strict byte 00038h ; 83 c2 38 9612 9669 mov ax, word [bp+014h] ; 8b 46 14 9613 9670 mov bx, strict word 0ffffh ; bb ff ff 9614 call 0167ah ; e8 fbad9671 call 0167ah ; e8 bc ad 9615 9672 mov dx, word [bp+006h] ; 8b 56 06 9616 9673 add dx, strict byte 0003ah ; 83 c2 3a 9617 9674 mov ax, word [bp+014h] ; 8b 46 14 9618 9675 xor bx, bx ; 31 db 9619 call 0167ah ; e8 edad9676 call 0167ah ; e8 ae ad 9620 9677 mov dx, word [bp+006h] ; 8b 56 06 9621 9678 add dx, strict byte 0003ch ; 83 c2 3c 9622 9679 mov ax, word [bp+014h] ; 8b 46 14 9623 9680 mov bx, strict word 0000fh ; bb 0f 00 9624 call 0165eh ; e8 c2ad9681 call 0165eh ; e8 83 ad 9625 9682 mov dx, word [bp+006h] ; 8b 56 06 9626 9683 add dx, strict byte 0003dh ; 83 c2 3d 9627 9684 mov ax, word [bp+014h] ; 8b 46 14 9628 9685 mov bx, 0009bh ; bb 9b 00 9629 call 0165eh ; e8 b3ad9686 call 0165eh ; e8 74 ad 9630 9687 mov dx, word [bp+006h] ; 8b 56 06 9631 9688 add dx, strict byte 0003eh ; 83 c2 3e 9632 9689 mov ax, word [bp+014h] ; 8b 46 14 9633 9690 xor bx, bx ; 31 db 9634 call 0167ah ; e8 c1ad9691 call 0167ah ; e8 82 ad 9635 9692 mov AL, strict byte 011h ; b0 11 9636 9693 mov dx, strict word 00020h ; ba 20 00 … … 9662 9719 out DX, AL ; ee 9663 9720 mov si, word [bp+006h] ; 8b 76 06 9664 call 06 8fah ; e8 00 009721 call 06939h ; e8 00 00 9665 9722 pop di ; 5f 9666 9723 add di, strict byte 00018h ; 83 c7 18 … … 9690 9747 push cx ; 51 9691 9748 retf ; cb 9692 jmp near 067 7fh ; e9 49 fe9693 mov bx, 00da 4h ; bb a40d9749 jmp near 067beh ; e9 49 fe 9750 mov bx, 00da0h ; bb a0 0d 9694 9751 mov cx, ds ; 8c d9 9695 9752 mov ax, strict word 00004h ; b8 04 00 9696 call 01923h ; e8 e2af9753 call 01923h ; e8 a3 af 9697 9754 push 0086eh ; 68 6e 08 9698 9755 push strict byte 00004h ; 6a 04 9699 call 01966h ; e8 1d b09756 call 01966h ; e8 de af 9700 9757 add sp, strict byte 00004h ; 83 c4 04 9701 9758 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9704 9761 or ah, 086h ; 80 cc 86 9705 9762 mov word [bp+012h], ax ; 89 46 12 9706 jmp near 067 7fh ; e9 21 fe9763 jmp near 067beh ; e9 21 fe 9707 9764 mov word [bp+018h], cx ; 89 4e 18 9708 9765 mov word [bp+012h], ax ; 89 46 12 9709 9766 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9710 9767 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9711 jmp near 067 7fh ; e9 0e fe9768 jmp near 067beh ; e9 0e fe 9712 9769 mov dx, strict word 0000eh ; ba 0e 00 9713 9770 mov ax, strict word 00040h ; b8 40 00 9714 call 0166ch ; e8 f2ac9771 call 0166ch ; e8 b3 ac 9715 9772 mov word [bp+014h], ax ; 89 46 14 9716 jmp near 068 62h ; e9 e2 fe9773 jmp near 068a1h ; e9 e2 fe 9717 9774 push 0089dh ; 68 9d 08 9718 9775 push strict byte 00008h ; 6a 08 9719 jmp short 069 46h ; eb bf9776 jmp short 06985h ; eb bf 9720 9777 test byte [bp+012h], 0ffh ; f6 46 12 ff 9721 jne short 069 ach ; 75 1f9778 jne short 069ebh ; 75 1f 9722 9779 mov word [bp+012h], ax ; 89 46 12 9723 9780 mov ax, word [bp+00ch] ; 8b 46 0c 9724 9781 xor ah, ah ; 30 e4 9725 9782 cmp ax, strict word 00001h ; 3d 01 00 9726 jc short 069 a5h ; 72 0b9783 jc short 069e4h ; 72 0b 9727 9784 cmp ax, strict word 00003h ; 3d 03 00 9728 jnbe short 069 a5h ; 77 069785 jnbe short 069e4h ; 77 06 9729 9786 mov word [bp+018h], cx ; 89 4e 18 9730 jmp near 067 7fh ; e9 da fd9787 jmp near 067beh ; e9 da fd 9731 9788 or byte [bp+018h], 001h ; 80 4e 18 01 9732 jmp near 067 7fh ; e9 d3 fd9733 mov bx, 00da 4h ; bb a40d9789 jmp near 067beh ; e9 d3 fd 9790 mov bx, 00da0h ; bb a0 0d 9734 9791 mov cx, ds ; 8c d9 9735 9792 mov ax, strict word 00004h ; b8 04 00 9736 call 01923h ; e8 6caf9793 call 01923h ; e8 2d af 9737 9794 push word [bp+00ch] ; ff 76 0c 9738 9795 push word [bp+012h] ; ff 76 12 9739 9796 push 008b4h ; 68 b4 08 9740 9797 push strict byte 00004h ; 6a 04 9741 call 01966h ; e8 a1af9798 call 01966h ; e8 62 af 9742 9799 add sp, strict byte 00008h ; 83 c4 08 9743 jmp short 0694ch ; eb 82 9744 dec ax ; 48 9745 imul bp, word [di+06bh], strict byte 0ff8dh ; 6b 6d 6b 8d 9746 imul bx, sp, strict byte 0006bh ; 6b dc 6b 9747 cli ; fa 9748 imul dx, word [bx], strict byte 0006ch ; 6b 17 6c 9749 cmp word [si+05bh], bp ; 39 6c 5b 9800 jmp short 0698bh ; eb 82 9801 xchg word [bp+di-054h], bp ; 87 6b ac 9802 imul cx, sp, strict byte 0006bh ; 6b cc 6b 9803 sbb bp, word [si+039h] ; 1b 6c 39 9750 9804 insb ; 6c 9751 cbw ; 989805 push si ; 56 9752 9806 insb ; 6c 9753 int3 ; cc 9754 insb ; 6c 9755 _int15_function32: ; 0xf69de LB 0x38a 9807 js short 06a83h ; 78 6c 9808 call far 00b6ch:0d76ch ; 9a 6c d7 6c 0b 9809 insw ; 6d 9810 _int15_function32: ; 0xf6a1d LB 0x38a 9756 9811 push bp ; 55 9757 9812 mov bp, sp ; 89 e5 … … 9765 9820 xor dh, dh ; 30 f6 9766 9821 cmp ax, 000e8h ; 3d e8 00 9767 je short 06a 45h ; 74 4a9822 je short 06a84h ; 74 4a 9768 9823 cmp ax, 000d0h ; 3d d0 00 9769 je short 06a 12h ; 74 129824 je short 06a51h ; 74 12 9770 9825 cmp ax, 00086h ; 3d 86 00 9771 jne short 06a 43h ; 75 3e9826 jne short 06a82h ; 75 3e 9772 9827 sti ; fb 9773 9828 mov dx, word [bp+01ch] ; 8b 56 1c 9774 9829 mov ax, word [bp+018h] ; 8b 46 18 9775 call 065 a7h ; e8 98 fb9776 jmp near 06 bd6h ; e9 c4 019830 call 065e6h ; e8 98 fb 9831 jmp near 06c15h ; e9 c4 01 9777 9832 cmp dx, strict byte 0004fh ; 83 fa 4f 9778 jne short 06a 43h ; 75 2c9833 jne short 06a82h ; 75 2c 9779 9834 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9780 jne short 06a 79h ; 75 5b9835 jne short 06ab8h ; 75 5b 9781 9836 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9782 jne short 06a 79h ; 75 549837 jne short 06ab8h ; 75 54 9783 9838 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9784 jne short 06a 79h ; 75 4d9839 jne short 06ab8h ; 75 4d 9785 9840 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9786 jne short 06a 79h ; 75 469841 jne short 06ab8h ; 75 46 9787 9842 mov ax, word [bp+00ah] ; 8b 46 0a 9788 9843 or ax, word [bp+008h] ; 0b 46 08 9789 jne short 06a 79h ; 75 3e9844 jne short 06ab8h ; 75 3e 9790 9845 mov ax, word [bp+006h] ; 8b 46 06 9791 9846 or ax, word [bp+004h] ; 0b 46 04 9792 je short 06a 47h ; 74 049793 jmp short 06a 79h ; eb 349794 jmp short 06a 6fh ; eb 289847 je short 06a86h ; 74 04 9848 jmp short 06ab8h ; eb 34 9849 jmp short 06aaeh ; eb 28 9795 9850 mov word [bp+028h], bx ; 89 5e 28 9796 9851 mov ax, word [bp+014h] ; 8b 46 14 … … 9804 9859 mov word [bp+020h], 03332h ; c7 46 20 32 33 9805 9860 mov word [bp+022h], 04941h ; c7 46 22 41 49 9806 jmp near 06 bd6h ; e9 67 019861 jmp near 06c15h ; e9 67 01 9807 9862 cmp dx, strict byte 00020h ; 83 fa 20 9808 je short 06a 7fh ; 74 0b9863 je short 06abeh ; 74 0b 9809 9864 cmp dx, strict byte 00001h ; 83 fa 01 9810 je short 06a 7ch ; 74 039811 jmp near 06b ach ; e9 30 019812 jmp near 06d 1ah ; e9 9b 029865 je short 06abbh ; 74 03 9866 jmp near 06bebh ; e9 30 01 9867 jmp near 06d59h ; e9 9b 02 9813 9868 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9814 jne short 06a 79h ; 75 f39869 jne short 06ab8h ; 75 f3 9815 9870 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9816 jne short 06a 79h ; 75 ec9871 jne short 06ab8h ; 75 ec 9817 9872 mov ax, strict word 00035h ; b8 35 00 9818 call 016ach ; e8 19 ac9873 call 016ach ; e8 da ab 9819 9874 mov bl, al ; 88 c3 9820 9875 xor bh, bh ; 30 ff … … 9823 9878 sal bx, 1 ; d1 e3 9824 9879 rcl dx, 1 ; d1 d2 9825 loop 06a 9ch ; e2 fa9880 loop 06adbh ; e2 fa 9826 9881 mov ax, strict word 00034h ; b8 34 00 9827 call 016ach ; e8 04 ac9882 call 016ach ; e8 c5 ab 9828 9883 xor ah, ah ; 30 e4 9829 9884 mov dx, bx ; 89 da … … 9833 9888 adc dx, 00100h ; 81 d2 00 01 9834 9889 cmp dx, 00100h ; 81 fa 00 01 9835 jc short 06 ac2h ; 72 069836 jne short 06 af0h ; 75 329890 jc short 06b01h ; 72 06 9891 jne short 06b2fh ; 75 32 9837 9892 test bx, bx ; 85 db 9838 jnbe short 06 af0h ; 77 2e9893 jnbe short 06b2fh ; 77 2e 9839 9894 mov ax, strict word 00031h ; b8 31 00 9840 call 016ach ; e8 e4ab9895 call 016ach ; e8 a5 ab 9841 9896 mov bl, al ; 88 c3 9842 9897 xor bh, bh ; 30 ff … … 9845 9900 sal bx, 1 ; d1 e3 9846 9901 rcl dx, 1 ; d1 d2 9847 loop 06 ad1h ; e2 fa9902 loop 06b10h ; e2 fa 9848 9903 mov ax, strict word 00030h ; b8 30 00 9849 call 016ach ; e8 cfab9904 call 016ach ; e8 90 ab 9850 9905 xor ah, ah ; 30 e4 9851 9906 or bx, ax ; 09 c3 … … 9853 9908 sal bx, 1 ; d1 e3 9854 9909 rcl dx, 1 ; d1 d2 9855 loop 06 ae4h ; e2 fa9910 loop 06b23h ; e2 fa 9856 9911 add bx, strict byte 00000h ; 83 c3 00 9857 9912 adc dx, strict byte 00010h ; 83 d2 10 9858 9913 mov ax, strict word 00062h ; b8 62 00 9859 call 016ach ; e8 b6ab9914 call 016ach ; e8 77 ab 9860 9915 xor ah, ah ; 30 e4 9861 9916 mov word [bp-00ah], ax ; 89 46 f6 … … 9865 9920 sal word [bp-00ah], 1 ; d1 66 f6 9866 9921 rcl word [bp-008h], 1 ; d1 56 f8 9867 loop 06b 03h ; e2 f89922 loop 06b42h ; e2 f8 9868 9923 mov ax, strict word 00061h ; b8 61 00 9869 call 016ach ; e8 9bab9924 call 016ach ; e8 5c ab 9870 9925 xor ah, ah ; 30 e4 9871 9926 or word [bp-00ah], ax ; 09 46 f6 … … 9874 9929 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9875 9930 mov ax, strict word 00063h ; b8 63 00 9876 call 016ach ; e8 85ab9931 call 016ach ; e8 46 ab 9877 9932 mov byte [bp-004h], al ; 88 46 fc 9878 9933 mov byte [bp-006h], al ; 88 46 fa 9879 9934 mov ax, word [bp+014h] ; 8b 46 14 9880 9935 cmp ax, strict word 00009h ; 3d 09 00 9881 jnbe short 06b ach ; 77 779936 jnbe short 06bebh ; 77 77 9882 9937 mov si, ax ; 89 c6 9883 9938 add si, ax ; 01 c6 … … 9886 9941 mov cx, dx ; 89 d1 9887 9942 adc cx, strict byte 0ffffh ; 83 d1 ff 9888 jmp word [cs:si+06 9cah] ; 2e ff a4 ca 699943 jmp word [cs:si+06a09h] ; 2e ff a4 09 6a 9889 9944 push strict byte 00001h ; 6a 01 9890 9945 push strict byte 00000h ; 6a 00 … … 9896 9951 xor bx, bx ; 31 db 9897 9952 xor cx, cx ; 31 c9 9898 call 066 1ah ; e8 ba fa9953 call 06659h ; e8 ba fa 9899 9954 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 9900 9955 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 9901 jmp near 06 cffh ; e9 92 019956 jmp near 06d3eh ; e9 92 01 9902 9957 push strict byte 00002h ; 6a 02 9903 9958 push strict byte 00000h ; 6a 00 … … 9909 9964 mov bx, 0fc00h ; bb 00 fc 9910 9965 mov cx, strict word 00009h ; b9 09 00 9911 call 066 1ah ; e8 94 fa9966 call 06659h ; e8 94 fa 9912 9967 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 9913 jmp short 06b 65h ; eb d89968 jmp short 06ba4h ; eb d8 9914 9969 push strict byte 00002h ; 6a 02 9915 9970 push strict byte 00000h ; 6a 00 … … 9921 9976 xor bx, bx ; 31 db 9922 9977 mov cx, strict word 0000fh ; b9 0f 00 9923 call 066 1ah ; e8 75 fa9978 call 06659h ; e8 75 fa 9924 9979 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 9925 jmp short 06b 65h ; eb b99926 mov bx, 00da 4h ; bb a40d9980 jmp short 06ba4h ; eb b9 9981 mov bx, 00da0h ; bb a0 0d 9927 9982 mov cx, ds ; 8c d9 9928 9983 mov ax, strict word 00004h ; b8 04 00 9929 call 01923h ; e8 6cad9984 call 01923h ; e8 2d ad 9930 9985 push word [bp+014h] ; ff 76 14 9931 9986 push word [bp+020h] ; ff 76 20 9932 9987 push 008b4h ; 68 b4 08 9933 9988 push strict byte 00004h ; 6a 04 9934 call 01966h ; e8 a1ad9989 call 01966h ; e8 62 ad 9935 9990 add sp, strict byte 00008h ; 83 c4 08 9936 9991 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9952 10007 xor bx, bx ; 31 db 9953 10008 mov cx, strict word 00010h ; b9 10 00 9954 call 066 1ah ; e8 28 fa10009 call 06659h ; e8 28 fa 9955 10010 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 9956 jmp near 06b 65h ; e9 6b ff10011 jmp near 06ba4h ; e9 6b ff 9957 10012 push strict byte 00003h ; 6a 03 9958 10013 push strict byte 00000h ; 6a 00 … … 9964 10019 mov bx, ax ; 89 c3 9965 10020 mov ax, si ; 89 f0 9966 call 066 1ah ; e8 0b fa10021 call 06659h ; e8 0b fa 9967 10022 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 9968 jmp near 06b 65h ; e9 4e ff10023 jmp near 06ba4h ; e9 4e ff 9969 10024 push strict byte 00002h ; 6a 02 9970 10025 push strict byte 00000h ; 6a 00 … … 9976 10031 xor bx, bx ; 31 db 9977 10032 mov cx, 0fec0h ; b9 c0 fe 9978 call 066 1ah ; e8 e9 f910033 call 06659h ; e8 e9 f9 9979 10034 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 9980 jmp near 06b 65h ; e9 2c ff10035 jmp near 06ba4h ; e9 2c ff 9981 10036 push strict byte 00002h ; 6a 02 9982 10037 push strict byte 00000h ; 6a 00 … … 9988 10043 xor bx, bx ; 31 db 9989 10044 mov cx, 0fee0h ; b9 e0 fe 9990 call 066 1ah ; e8 c7 f910045 call 06659h ; e8 c7 f9 9991 10046 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 9992 jmp near 06b 65h ; e9 0a ff10047 jmp near 06ba4h ; e9 0a ff 9993 10048 push strict byte 00002h ; 6a 02 9994 10049 push strict byte 00000h ; 6a 00 … … 10000 10055 xor bx, bx ; 31 db 10001 10056 mov cx, strict word 0fffch ; b9 fc ff 10002 call 066 1ah ; e8 a7 f910057 call 06659h ; e8 a7 f9 10003 10058 cmp byte [bp-004h], 000h ; 80 7e fc 00 10004 jne short 06c 80h ; 75 0710059 jne short 06cbfh ; 75 07 10005 10060 mov ax, word [bp-008h] ; 8b 46 f8 10006 10061 test ax, ax ; 85 c0 10007 je short 06c 90h ; 74 1010062 je short 06ccfh ; 74 10 10008 10063 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10009 jmp near 06b 65h ; e9 dd fe10064 jmp near 06ba4h ; e9 dd fe 10010 10065 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10011 jmp near 06b 65h ; e9 d5 fe10066 jmp near 06ba4h ; e9 d5 fe 10012 10067 mov word [bp+014h], ax ; 89 46 14 10013 10068 mov word [bp+016h], ax ; 89 46 16 10014 jmp short 06 cffh ; eb 6710069 jmp short 06d3eh ; eb 67 10015 10070 push strict byte 00002h ; 6a 02 10016 10071 push strict byte 00000h ; 6a 00 … … 10022 10077 xor bx, bx ; 31 db 10023 10078 xor cx, cx ; 31 c9 10024 call 066 1ah ; e8 6b f910079 call 06659h ; e8 6b f9 10025 10080 cmp byte [bp-004h], 000h ; 80 7e fc 00 10026 jne short 06c bch ; 75 0710081 jne short 06cfbh ; 75 07 10027 10082 mov ax, word [bp-008h] ; 8b 46 f8 10028 10083 test ax, ax ; 85 c0 10029 je short 06 cc4h ; 74 0810084 je short 06d03h ; 74 08 10030 10085 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10031 jmp near 06b 65h ; e9 a1 fe10086 jmp near 06ba4h ; e9 a1 fe 10032 10087 mov word [bp+014h], ax ; 89 46 14 10033 10088 mov word [bp+016h], ax ; 89 46 16 10034 jmp short 06 cffh ; eb 3310089 jmp short 06d3eh ; eb 33 10035 10090 cmp byte [bp-004h], 000h ; 80 7e fc 00 10036 jne short 06 cd8h ; 75 0610091 jne short 06d17h ; 75 06 10037 10092 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10038 je short 06 cffh ; 74 2710093 je short 06d3eh ; 74 27 10039 10094 push strict byte 00001h ; 6a 01 10040 10095 mov al, byte [bp-006h] ; 8a 46 fa … … 10050 10105 xor bx, bx ; 31 db 10051 10106 xor cx, cx ; 31 c9 10052 call 066 1ah ; e8 23 f910107 call 06659h ; e8 23 f9 10053 10108 xor ax, ax ; 31 c0 10054 10109 mov word [bp+014h], ax ; 89 46 14 … … 10059 10114 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10060 10115 and byte [bp+028h], 0feh ; 80 66 28 fe 10061 jmp near 06 bd6h ; e9 bc fe10116 jmp near 06c15h ; e9 bc fe 10062 10117 mov word [bp+028h], bx ; 89 5e 28 10063 10118 mov ax, strict word 00031h ; b8 31 00 10064 call 016ach ; e8 89a910119 call 016ach ; e8 4a a9 10065 10120 xor ah, ah ; 30 e4 10066 10121 mov dx, ax ; 89 c2 10067 10122 sal dx, 008h ; c1 e2 08 10068 10123 mov ax, strict word 00030h ; b8 30 00 10069 call 016ach ; e8 7ca910124 call 016ach ; e8 3d a9 10070 10125 xor ah, ah ; 30 e4 10071 10126 or dx, ax ; 09 c2 10072 10127 mov word [bp+01ch], dx ; 89 56 1c 10073 10128 cmp dx, 03c00h ; 81 fa 00 3c 10074 jbe short 06d 42h ; 76 0510129 jbe short 06d81h ; 76 05 10075 10130 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10076 10131 mov ax, strict word 00035h ; b8 35 00 10077 call 016ach ; e8 64a910132 call 016ach ; e8 25 a9 10078 10133 xor ah, ah ; 30 e4 10079 10134 mov dx, ax ; 89 c2 10080 10135 sal dx, 008h ; c1 e2 08 10081 10136 mov ax, strict word 00034h ; b8 34 00 10082 call 016ach ; e8 57a910137 call 016ach ; e8 18 a9 10083 10138 xor ah, ah ; 30 e4 10084 10139 or dx, ax ; 09 c2 … … 10087 10142 mov word [bp+020h], ax ; 89 46 20 10088 10143 mov word [bp+014h], dx ; 89 56 14 10089 jmp near 06 bd6h ; e9 6e fe10090 _int15_blkmove: ; 0xf6d 68LB 0x18a10144 jmp near 06c15h ; e9 6e fe 10145 _int15_blkmove: ; 0xf6da7 LB 0x18a 10091 10146 push bp ; 55 10092 10147 mov bp, sp ; 89 e5 … … 10097 10152 cli ; fa 10098 10153 mov ax, strict word 00001h ; b8 01 00 10099 call 06 5eah ; e8 74 f810154 call 06629h ; e8 74 f8 10100 10155 mov di, ax ; 89 c7 10101 10156 mov ax, word [bp+006h] ; 8b 46 06 … … 10107 10162 mov byte [bp-006h], dl ; 88 56 fa 10108 10163 cmp cx, ax ; 39 c1 10109 jnc short 06d 95h ; 73 0510164 jnc short 06dd4h ; 73 05 10110 10165 db 0feh, 0c2h 10111 10166 ; inc dl ; fe c2 … … 10115 10170 mov ax, word [bp+006h] ; 8b 46 06 10116 10171 mov bx, strict word 0002fh ; bb 2f 00 10117 call 0167ah ; e8 d6a810172 call 0167ah ; e8 97 a8 10118 10173 mov dx, word [bp+00ah] ; 8b 56 0a 10119 10174 add dx, strict byte 0000ah ; 83 c2 0a 10120 10175 mov ax, word [bp+006h] ; 8b 46 06 10121 10176 mov bx, cx ; 89 cb 10122 call 0167ah ; e8 c8a810177 call 0167ah ; e8 89 a8 10123 10178 mov bl, byte [bp-006h] ; 8a 5e fa 10124 10179 xor bh, bh ; 30 ff … … 10126 10181 add dx, strict byte 0000ch ; 83 c2 0c 10127 10182 mov ax, word [bp+006h] ; 8b 46 06 10128 call 0165eh ; e8 9ba810183 call 0165eh ; e8 5c a8 10129 10184 mov dx, word [bp+00ah] ; 8b 56 0a 10130 10185 add dx, strict byte 0000dh ; 83 c2 0d 10131 10186 mov ax, word [bp+006h] ; 8b 46 06 10132 10187 mov bx, 00093h ; bb 93 00 10133 call 0165eh ; e8 8ca810188 call 0165eh ; e8 4d a8 10134 10189 mov dx, word [bp+00ah] ; 8b 56 0a 10135 10190 add dx, strict byte 0000eh ; 83 c2 0e 10136 10191 mov ax, word [bp+006h] ; 8b 46 06 10137 10192 xor bx, bx ; 31 db 10138 call 0167ah ; e8 9aa810193 call 0167ah ; e8 5b a8 10139 10194 mov dx, word [bp+00ah] ; 8b 56 0a 10140 10195 add dx, strict byte 00020h ; 83 c2 20 10141 10196 mov ax, word [bp+006h] ; 8b 46 06 10142 10197 mov bx, strict word 0ffffh ; bb ff ff 10143 call 0167ah ; e8 8ba810198 call 0167ah ; e8 4c a8 10144 10199 mov dx, word [bp+00ah] ; 8b 56 0a 10145 10200 add dx, strict byte 00022h ; 83 c2 22 10146 10201 mov ax, word [bp+006h] ; 8b 46 06 10147 10202 xor bx, bx ; 31 db 10148 call 0167ah ; e8 7da810203 call 0167ah ; e8 3e a8 10149 10204 mov dx, word [bp+00ah] ; 8b 56 0a 10150 10205 add dx, strict byte 00024h ; 83 c2 24 10151 10206 mov ax, word [bp+006h] ; 8b 46 06 10152 10207 mov bx, strict word 0000fh ; bb 0f 00 10153 call 0165eh ; e8 52a810208 call 0165eh ; e8 13 a8 10154 10209 mov dx, word [bp+00ah] ; 8b 56 0a 10155 10210 add dx, strict byte 00025h ; 83 c2 25 10156 10211 mov ax, word [bp+006h] ; 8b 46 06 10157 10212 mov bx, 0009bh ; bb 9b 00 10158 call 0165eh ; e8 43a810213 call 0165eh ; e8 04 a8 10159 10214 mov dx, word [bp+00ah] ; 8b 56 0a 10160 10215 add dx, strict byte 00026h ; 83 c2 26 10161 10216 mov ax, word [bp+006h] ; 8b 46 06 10162 10217 xor bx, bx ; 31 db 10163 call 0167ah ; e8 51a810218 call 0167ah ; e8 12 a8 10164 10219 mov ax, ss ; 8c d0 10165 10220 mov cx, ax ; 89 c1 … … 10171 10226 mov ax, word [bp+006h] ; 8b 46 06 10172 10227 mov bx, strict word 0ffffh ; bb ff ff 10173 call 0167ah ; e8 35 a810228 call 0167ah ; e8 f6 a7 10174 10229 mov dx, word [bp+00ah] ; 8b 56 0a 10175 10230 add dx, strict byte 0002ah ; 83 c2 2a 10176 10231 mov ax, word [bp+006h] ; 8b 46 06 10177 10232 mov bx, cx ; 89 cb 10178 call 0167ah ; e8 27 a810233 call 0167ah ; e8 e8 a7 10179 10234 mov bl, byte [bp-008h] ; 8a 5e f8 10180 10235 xor bh, bh ; 30 ff … … 10182 10237 add dx, strict byte 0002ch ; 83 c2 2c 10183 10238 mov ax, word [bp+006h] ; 8b 46 06 10184 call 0165eh ; e8 faa710239 call 0165eh ; e8 bb a7 10185 10240 mov dx, word [bp+00ah] ; 8b 56 0a 10186 10241 add dx, strict byte 0002dh ; 83 c2 2d 10187 10242 mov ax, word [bp+006h] ; 8b 46 06 10188 10243 mov bx, 00093h ; bb 93 00 10189 call 0165eh ; e8 eba710244 call 0165eh ; e8 ac a7 10190 10245 mov dx, word [bp+00ah] ; 8b 56 0a 10191 10246 add dx, strict byte 0002eh ; 83 c2 2e 10192 10247 mov ax, word [bp+006h] ; 8b 46 06 10193 10248 xor bx, bx ; 31 db 10194 call 0167ah ; e8 f9a710249 call 0167ah ; e8 ba a7 10195 10250 lea bx, [bp+004h] ; 8d 5e 04 10196 10251 mov si, word [bp+00ah] ; 8b 76 0a … … 10202 10257 mov word [00467h], bx ; 89 1e 67 04 10203 10258 mov [00469h], ss ; 8c 16 69 04 10204 call 06e 9ch ; e8 00 0010259 call 06edbh ; e8 00 00 10205 10260 pop di ; 5f 10206 10261 add di, strict byte 00018h ; 83 c7 18 … … 10234 10289 int3 ; cc 10235 10290 mov ax, di ; 89 f8 10236 call 06 5eah ; e8 08 f710291 call 06629h ; e8 08 f7 10237 10292 sti ; fb 10238 10293 mov byte [bp+017h], 000h ; c6 46 17 00 … … 10243 10298 pop bp ; 5d 10244 10299 retn ; c3 10245 _inv_op_handler: ; 0xf6 ef2LB 0x19b10300 _inv_op_handler: ; 0xf6f31 LB 0x19b 10246 10301 push bp ; 55 10247 10302 mov bp, sp ; 89 e5 … … 10252 10307 les bx, [bp+018h] ; c4 5e 18 10253 10308 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10254 jne short 06f 08h ; 75 0610309 jne short 06f47h ; 75 06 10255 10310 inc word [bp+018h] ; ff 46 18 10256 jmp near 070 86h ; e9 7e 0110311 jmp near 070c5h ; e9 7e 01 10257 10312 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10258 je short 06f 12h ; 74 0310259 jmp near 070 82h ; e9 70 0110313 je short 06f51h ; 74 03 10314 jmp near 070c1h ; e9 70 01 10260 10315 mov si, 00800h ; be 00 08 10261 10316 xor ax, ax ; 31 c0 … … 10286 10341 sal ax, 1 ; d1 e0 10287 10342 rcl dx, 1 ; d1 d2 10288 loop 06f 63h ; e2 fa10343 loop 06fa2h ; e2 fa 10289 10344 cmp bx, dx ; 39 d3 10290 jne short 06f 71h ; 75 0410345 jne short 06fb0h ; 75 04 10291 10346 cmp di, ax ; 39 c7 10292 je short 06f 76h ; 74 0510347 je short 06fb5h ; 74 05 10293 10348 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10294 10349 mov es, [bp-006h] ; 8e 46 fa … … 10301 10356 sal ax, 1 ; d1 e0 10302 10357 rcl dx, 1 ; d1 d2 10303 loop 06f 8ch ; e2 fa10358 loop 06fcbh ; e2 fa 10304 10359 cmp bx, dx ; 39 d3 10305 jne short 06f 9ah ; 75 0410360 jne short 06fd9h ; 75 04 10306 10361 cmp di, ax ; 39 c7 10307 je short 06f 9eh ; 74 0410362 je short 06fddh ; 74 04 10308 10363 or byte [bp-008h], 002h ; 80 4e f8 02 10309 10364 push strict byte 00000h ; 6a 00 … … 10359 10414 mov ax, strict word 00008h ; b8 08 00 10360 10415 test cx, strict word 00001h ; f7 c1 01 00 10361 je near 070 3fh ; 0f 84 02 0010416 je near 0707eh ; 0f 84 02 00 10362 10417 mov es, ax ; 8e c0 10363 10418 test cx, strict word 00002h ; f7 c1 02 00 10364 je near 070 67h ; 0f 84 20 0010419 je near 070a6h ; 0f 84 20 00 10365 10420 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10366 10421 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10379 10434 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10380 10435 iret ; cf 10381 jmp short 070 86h ; eb 0410436 jmp short 070c5h ; eb 04 10382 10437 sti ; fb 10383 10438 hlt ; f4 10384 jmp short 070 83h ; eb fd10439 jmp short 070c2h ; eb fd 10385 10440 lea sp, [bp-004h] ; 8d 66 fc 10386 10441 pop di ; 5f … … 10388 10443 pop bp ; 5d 10389 10444 retn ; c3 10390 init_rtc_: ; 0xf70 8dLB 0x2810445 init_rtc_: ; 0xf70cc LB 0x28 10391 10446 push bp ; 55 10392 10447 mov bp, sp ; 89 e5 … … 10394 10449 mov dx, strict word 00026h ; ba 26 00 10395 10450 mov ax, strict word 0000ah ; b8 0a 00 10396 call 016c7h ; e8 2d a610451 call 016c7h ; e8 ee a5 10397 10452 mov dx, strict word 00002h ; ba 02 00 10398 10453 mov ax, strict word 0000bh ; b8 0b 00 10399 call 016c7h ; e8 24 a610454 call 016c7h ; e8 e5 a5 10400 10455 mov ax, strict word 0000ch ; b8 0c 00 10401 call 016ach ; e8 03 a610456 call 016ach ; e8 c4 a5 10402 10457 mov ax, strict word 0000dh ; b8 0d 00 10403 call 016ach ; e8 fda510458 call 016ach ; e8 be a5 10404 10459 lea sp, [bp-002h] ; 8d 66 fe 10405 10460 pop dx ; 5a 10406 10461 pop bp ; 5d 10407 10462 retn ; c3 10408 rtc_updating_: ; 0xf70 b5LB 0x2110463 rtc_updating_: ; 0xf70f4 LB 0x21 10409 10464 push bp ; 55 10410 10465 mov bp, sp ; 89 e5 … … 10412 10467 mov dx, 061a8h ; ba a8 61 10413 10468 dec dx ; 4a 10414 je short 07 0cdh ; 74 0e10469 je short 0710ch ; 74 0e 10415 10470 mov ax, strict word 0000ah ; b8 0a 00 10416 call 016ach ; e8 e7a510471 call 016ach ; e8 a8 a5 10417 10472 test AL, strict byte 080h ; a8 80 10418 jne short 070 bch ; 75 f310473 jne short 070fbh ; 75 f3 10419 10474 xor ax, ax ; 31 c0 10420 jmp short 07 0d0h ; eb 0310475 jmp short 0710fh ; eb 03 10421 10476 mov ax, strict word 00001h ; b8 01 00 10422 10477 lea sp, [bp-002h] ; 8d 66 fe … … 10424 10479 pop bp ; 5d 10425 10480 retn ; c3 10426 _int70_function: ; 0xf7 0d6LB 0xbf10481 _int70_function: ; 0xf7115 LB 0xbf 10427 10482 push bp ; 55 10428 10483 mov bp, sp ; 89 e5 … … 10430 10485 push ax ; 50 10431 10486 mov ax, strict word 0000bh ; b8 0b 00 10432 call 016ach ; e8 cba510487 call 016ach ; e8 8c a5 10433 10488 mov bl, al ; 88 c3 10434 10489 mov byte [bp-004h], al ; 88 46 fc 10435 10490 mov ax, strict word 0000ch ; b8 0c 00 10436 call 016ach ; e8 c0a510491 call 016ach ; e8 81 a5 10437 10492 mov dl, al ; 88 c2 10438 10493 test bl, 060h ; f6 c3 60 10439 jne short 07 0f6h ; 75 0310440 jmp near 071 7ch ; e9 86 0010494 jne short 07135h ; 75 03 10495 jmp near 071bbh ; e9 86 00 10441 10496 test AL, strict byte 020h ; a8 20 10442 je short 07 0feh ; 74 0410497 je short 0713dh ; 74 04 10443 10498 sti ; fb 10444 10499 int 04ah ; cd 4a 10445 10500 cli ; fa 10446 10501 test dl, 040h ; f6 c2 40 10447 je short 071 66h ; 74 6310502 je short 071a5h ; 74 63 10448 10503 mov dx, 000a0h ; ba a0 00 10449 10504 mov ax, strict word 00040h ; b8 40 00 10450 call 01650h ; e8 44a510505 call 01650h ; e8 05 a5 10451 10506 test al, al ; 84 c0 10452 je short 071 7ch ; 74 6c10507 je short 071bbh ; 74 6c 10453 10508 mov dx, 0009ch ; ba 9c 00 10454 10509 mov ax, strict word 00040h ; b8 40 00 10455 call 01688h ; e8 6fa510510 call 01688h ; e8 30 a5 10456 10511 test dx, dx ; 85 d2 10457 jne short 071 68h ; 75 4b10512 jne short 071a7h ; 75 4b 10458 10513 cmp ax, 003d1h ; 3d d1 03 10459 jnc short 071 68h ; 73 4610514 jnc short 071a7h ; 73 46 10460 10515 mov dx, 00098h ; ba 98 00 10461 10516 mov ax, strict word 00040h ; b8 40 00 10462 call 0166ch ; e8 41a510517 call 0166ch ; e8 02 a5 10463 10518 mov si, ax ; 89 c6 10464 10519 mov dx, 0009ah ; ba 9a 00 10465 10520 mov ax, strict word 00040h ; b8 40 00 10466 call 0166ch ; e8 36 a510521 call 0166ch ; e8 f7 a4 10467 10522 mov cx, ax ; 89 c1 10468 10523 xor bx, bx ; 31 db 10469 10524 mov dx, 000a0h ; ba a0 00 10470 10525 mov ax, strict word 00040h ; b8 40 00 10471 call 0165eh ; e8 1b a510526 call 0165eh ; e8 dc a4 10472 10527 mov dl, byte [bp-004h] ; 8a 56 fc 10473 10528 and dl, 037h ; 80 e2 37 10474 10529 xor dh, dh ; 30 f6 10475 10530 mov ax, strict word 0000bh ; b8 0b 00 10476 call 016c7h ; e8 76a510531 call 016c7h ; e8 37 a5 10477 10532 mov dx, cx ; 89 ca 10478 10533 mov ax, si ; 89 f0 10479 call 01650h ; e8 f8a410534 call 01650h ; e8 b9 a4 10480 10535 mov bl, al ; 88 c3 10481 10536 or bl, 080h ; 80 cb 80 … … 10483 10538 mov dx, cx ; 89 ca 10484 10539 mov ax, si ; 89 f0 10485 call 0165eh ; e8 f8a410486 jmp short 071 7ch ; eb 1410540 call 0165eh ; e8 b9 a4 10541 jmp short 071bbh ; eb 14 10487 10542 mov bx, ax ; 89 c3 10488 10543 add bx, 0fc2fh ; 81 c3 2f fc … … 10491 10546 mov dx, 0009ch ; ba 9c 00 10492 10547 mov ax, strict word 00040h ; b8 40 00 10493 call 0169ah ; e8 1e a510494 call 0e030h ; e8 b16e10548 call 0169ah ; e8 df a4 10549 call 0e030h ; e8 72 6e 10495 10550 lea sp, [bp-002h] ; 8d 66 fe 10496 10551 pop si ; 5e 10497 10552 pop bp ; 5d 10498 10553 retn ; c3 10499 stosw ; ab 10500 jno short 0715ah ; 71 d2 10501 jno short 07181h ; 71 f7 10502 jno short 071bfh ; 71 33 10503 jc short 07113h ; 72 85 10504 jc short 0714ch ; 72 bc 10505 jc short 07195h ; 72 03 10506 jnc short 071f2h ; 73 5e 10554 jmp far 03672h:01171h ; ea 71 11 72 36 10555 jc short 0723dh ; 72 72 10556 jc short 07191h ; 72 c4 10557 jc short 071cah ; 72 fb 10558 jc short 07213h ; 72 42 10559 jnc short 07170h ; 73 9d 10507 10560 db 073h 10508 _int1a_function: ; 0xf71 95LB 0x1d910561 _int1a_function: ; 0xf71d4 LB 0x1d9 10509 10562 push bp ; 55 10510 10563 mov bp, sp ; 89 e5 … … 10512 10565 mov al, byte [bp+013h] ; 8a 46 13 10513 10566 cmp AL, strict byte 007h ; 3c 07 10514 jnbe short 07 1feh ; 77 5e10567 jnbe short 0723dh ; 77 5e 10515 10568 mov bl, al ; 88 c3 10516 10569 xor bh, bh ; 30 ff 10517 10570 add bx, bx ; 01 db 10518 jmp word [cs:bx+071 85h] ; 2e ff a7 857110571 jmp word [cs:bx+071c4h] ; 2e ff a7 c4 71 10519 10572 cli ; fa 10520 10573 mov bx, 0046eh ; bb 6e 04 … … 10531 10584 mov byte [es:bx], 000h ; 26 c6 07 00 10532 10585 sti ; fb 10533 jmp short 07 1feh ; eb 2c10586 jmp short 0723dh ; eb 2c 10534 10587 cli ; fa 10535 10588 mov bx, 0046eh ; bb 6e 04 … … 10545 10598 sti ; fb 10546 10599 mov byte [bp+013h], 000h ; c6 46 13 00 10547 jmp short 07 1feh ; eb 0710548 call 070 b5h ; e8 bb fe10600 jmp short 0723dh ; eb 07 10601 call 070f4h ; e8 bb fe 10549 10602 test ax, ax ; 85 c0 10550 je short 072 01h ; 74 0310551 jmp near 072 2fh ; e9 2e 0010603 je short 07240h ; 74 03 10604 jmp near 0726eh ; e9 2e 00 10552 10605 xor ax, ax ; 31 c0 10553 call 016ach ; e8 a6a410606 call 016ach ; e8 67 a4 10554 10607 mov byte [bp+00fh], al ; 88 46 0f 10555 10608 mov ax, strict word 00002h ; b8 02 00 10556 call 016ach ; e8 9da410609 call 016ach ; e8 5e a4 10557 10610 mov byte [bp+010h], al ; 88 46 10 10558 10611 mov ax, strict word 00004h ; b8 04 00 10559 call 016ach ; e8 94a410612 call 016ach ; e8 55 a4 10560 10613 mov dl, al ; 88 c2 10561 10614 mov byte [bp+011h], al ; 88 46 11 10562 10615 mov ax, strict word 0000bh ; b8 0b 00 10563 call 016ach ; e8 89a410616 call 016ach ; e8 4a a4 10564 10617 and AL, strict byte 001h ; 24 01 10565 10618 mov byte [bp+00eh], al ; 88 46 0e … … 10569 10622 pop bp ; 5d 10570 10623 retn ; c3 10571 call 070 b5h ; e8 7f fe10624 call 070f4h ; e8 7f fe 10572 10625 test ax, ax ; 85 c0 10573 je short 072 3dh ; 74 0310574 call 070 8dh ; e8 50 fe10626 je short 0727ch ; 74 03 10627 call 070cch ; e8 50 fe 10575 10628 mov dl, byte [bp+00fh] ; 8a 56 0f 10576 10629 xor dh, dh ; 30 f6 10577 10630 xor ax, ax ; 31 c0 10578 call 016c7h ; e8 80a410631 call 016c7h ; e8 41 a4 10579 10632 mov dl, byte [bp+010h] ; 8a 56 10 10580 10633 xor dh, dh ; 30 f6 10581 10634 mov ax, strict word 00002h ; b8 02 00 10582 call 016c7h ; e8 75a410635 call 016c7h ; e8 36 a4 10583 10636 mov dl, byte [bp+011h] ; 8a 56 11 10584 10637 xor dh, dh ; 30 f6 10585 10638 mov ax, strict word 00004h ; b8 04 00 10586 call 016c7h ; e8 6aa410639 call 016c7h ; e8 2b a4 10587 10640 mov ax, strict word 0000bh ; b8 0b 00 10588 call 016ach ; e8 49a410641 call 016ach ; e8 0a a4 10589 10642 mov bl, al ; 88 c3 10590 10643 and bl, 060h ; 80 e3 60 … … 10596 10649 xor dh, dh ; 30 f6 10597 10650 mov ax, strict word 0000bh ; b8 0b 00 10598 call 016c7h ; e8 4ba410651 call 016c7h ; e8 0c a4 10599 10652 mov byte [bp+013h], 000h ; c6 46 13 00 10600 10653 mov byte [bp+012h], bl ; 88 5e 12 10601 jmp short 072 2fh ; eb aa10654 jmp short 0726eh ; eb aa 10602 10655 mov byte [bp+013h], 000h ; c6 46 13 00 10603 call 070 b5h ; e8 29 fe10656 call 070f4h ; e8 29 fe 10604 10657 test ax, ax ; 85 c0 10605 je short 072 92h ; 74 0210606 jmp short 072 2fh ; eb 9d10658 je short 072d1h ; 74 02 10659 jmp short 0726eh ; eb 9d 10607 10660 mov ax, strict word 00009h ; b8 09 00 10608 call 016ach ; e8 14 a410661 call 016ach ; e8 d5 a3 10609 10662 mov byte [bp+010h], al ; 88 46 10 10610 10663 mov ax, strict word 00008h ; b8 08 00 10611 call 016ach ; e8 0b a410664 call 016ach ; e8 cc a3 10612 10665 mov byte [bp+00fh], al ; 88 46 0f 10613 10666 mov ax, strict word 00007h ; b8 07 00 10614 call 016ach ; e8 02 a410667 call 016ach ; e8 c3 a3 10615 10668 mov byte [bp+00eh], al ; 88 46 0e 10616 10669 mov ax, strict word 00032h ; b8 32 00 10617 call 016ach ; e8 f9a310670 call 016ach ; e8 ba a3 10618 10671 mov byte [bp+011h], al ; 88 46 11 10619 10672 mov byte [bp+012h], al ; 88 46 12 10620 jmp near 072 2fh ; e9 73 ff10621 call 070 b5h ; e8 f6 fd10673 jmp near 0726eh ; e9 73 ff 10674 call 070f4h ; e8 f6 fd 10622 10675 test ax, ax ; 85 c0 10623 je short 07 2c9h ; 74 0610624 call 070 8dh ; e8 c7 fd10625 jmp near 072 2fh ; e9 66 ff10676 je short 07308h ; 74 06 10677 call 070cch ; e8 c7 fd 10678 jmp near 0726eh ; e9 66 ff 10626 10679 mov dl, byte [bp+010h] ; 8a 56 10 10627 10680 xor dh, dh ; 30 f6 10628 10681 mov ax, strict word 00009h ; b8 09 00 10629 call 016c7h ; e8 f3a310682 call 016c7h ; e8 b4 a3 10630 10683 mov dl, byte [bp+00fh] ; 8a 56 0f 10631 10684 xor dh, dh ; 30 f6 10632 10685 mov ax, strict word 00008h ; b8 08 00 10633 call 016c7h ; e8 e8a310686 call 016c7h ; e8 a9 a3 10634 10687 mov dl, byte [bp+00eh] ; 8a 56 0e 10635 10688 xor dh, dh ; 30 f6 10636 10689 mov ax, strict word 00007h ; b8 07 00 10637 call 016c7h ; e8 dda310690 call 016c7h ; e8 9e a3 10638 10691 mov dl, byte [bp+011h] ; 8a 56 11 10639 10692 xor dh, dh ; 30 f6 10640 10693 mov ax, strict word 00032h ; b8 32 00 10641 call 016c7h ; e8 d2a310694 call 016c7h ; e8 93 a3 10642 10695 mov ax, strict word 0000bh ; b8 0b 00 10643 call 016ach ; e8 b1a310696 call 016ach ; e8 72 a3 10644 10697 mov bl, al ; 88 c3 10645 10698 and bl, 07fh ; 80 e3 7f 10646 jmp near 072 72h ; e9 6f ff10699 jmp near 072b1h ; e9 6f ff 10647 10700 mov ax, strict word 0000bh ; b8 0b 00 10648 call 016ach ; e8 a3a310701 call 016ach ; e8 64 a3 10649 10702 mov bl, al ; 88 c3 10650 10703 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10651 10704 test AL, strict byte 020h ; a8 20 10652 je short 073 17h ; 74 0310653 jmp near 072 2fh ; e9 18 ff10654 call 070 b5h ; e8 9b fd10705 je short 07356h ; 74 03 10706 jmp near 0726eh ; e9 18 ff 10707 call 070f4h ; e8 9b fd 10655 10708 test ax, ax ; 85 c0 10656 je short 073 21h ; 74 0310657 call 070 8dh ; e8 6c fd10709 je short 07360h ; 74 03 10710 call 070cch ; e8 6c fd 10658 10711 mov dl, byte [bp+00fh] ; 8a 56 0f 10659 10712 xor dh, dh ; 30 f6 10660 10713 mov ax, strict word 00001h ; b8 01 00 10661 call 016c7h ; e8 9ba310714 call 016c7h ; e8 5c a3 10662 10715 mov dl, byte [bp+010h] ; 8a 56 10 10663 10716 xor dh, dh ; 30 f6 10664 10717 mov ax, strict word 00003h ; b8 03 00 10665 call 016c7h ; e8 90a310718 call 016c7h ; e8 51 a3 10666 10719 mov dl, byte [bp+011h] ; 8a 56 11 10667 10720 xor dh, dh ; 30 f6 10668 10721 mov ax, strict word 00005h ; b8 05 00 10669 call 016c7h ; e8 85a310722 call 016c7h ; e8 46 a3 10670 10723 mov dx, 000a1h ; ba a1 00 10671 10724 in AL, DX ; ec … … 10679 10732 xor dh, dh ; 30 f6 10680 10733 mov ax, strict word 0000bh ; b8 0b 00 10681 call 016c7h ; e8 6ca310682 jmp near 072 2fh ; e9 d1 fe10734 call 016c7h ; e8 2d a3 10735 jmp near 0726eh ; e9 d1 fe 10683 10736 mov ax, strict word 0000bh ; b8 0b 00 10684 call 016ach ; e8 48a310737 call 016ach ; e8 09 a3 10685 10738 mov bl, al ; 88 c3 10686 10739 mov dl, al ; 88 c2 10687 10740 and dl, 057h ; 80 e2 57 10688 jmp near 072 74h ; e9 06 ff10689 send_to_mouse_ctrl_: ; 0xf73 6eLB 0x3410741 jmp near 072b3h ; e9 06 ff 10742 send_to_mouse_ctrl_: ; 0xf73ad LB 0x34 10690 10743 push bp ; 55 10691 10744 mov bp, sp ; 89 e5 … … 10698 10751 ; sub ah, ah ; 2a e4 10699 10752 test AL, strict byte 002h ; a8 02 10700 je short 073 8dh ; 74 0e10753 je short 073cch ; 74 0e 10701 10754 push 008eeh ; 68 ee 08 10702 push 0116 ch ; 68 6c1110755 push 01168h ; 68 68 11 10703 10756 push strict byte 00007h ; 6a 07 10704 call 01966h ; e8 dca510757 call 01966h ; e8 9d a5 10705 10758 add sp, strict byte 00006h ; 83 c4 06 10706 10759 mov AL, strict byte 0d4h ; b0 d4 … … 10716 10769 pop bp ; 5d 10717 10770 retn ; c3 10718 get_mouse_data_: ; 0xf73 a2LB 0x5d10771 get_mouse_data_: ; 0xf73e1 LB 0x5d 10719 10772 push bp ; 55 10720 10773 mov bp, sp ; 89 e5 … … 10731 10784 and ax, strict word 00021h ; 25 21 00 10732 10785 cmp ax, strict word 00021h ; 3d 21 00 10733 je short 07 3e5h ; 74 2810786 je short 07424h ; 74 28 10734 10787 test cx, cx ; 85 c9 10735 je short 07 3e5h ; 74 2410788 je short 07424h ; 74 24 10736 10789 mov dx, strict word 00061h ; ba 61 00 10737 10790 in AL, DX ; ec … … 10750 10803 xor ah, ah ; 30 e4 10751 10804 cmp dx, ax ; 39 c2 10752 je short 07 3cch ; 74 ea10805 je short 0740bh ; 74 ea 10753 10806 dec cx ; 49 10754 jmp short 073 afh ; eb ca10807 jmp short 073eeh ; eb ca 10755 10808 test cx, cx ; 85 c9 10756 jne short 07 3edh ; 75 0410809 jne short 0742ch ; 75 04 10757 10810 mov AL, strict byte 001h ; b0 01 10758 jmp short 07 3f8h ; eb 0b10811 jmp short 07437h ; eb 0b 10759 10812 mov dx, strict word 00060h ; ba 60 00 10760 10813 in AL, DX ; ec … … 10768 10821 pop bp ; 5d 10769 10822 retn ; c3 10770 set_kbd_command_byte_: ; 0xf7 3ffLB 0x3210823 set_kbd_command_byte_: ; 0xf743e LB 0x32 10771 10824 push bp ; 55 10772 10825 mov bp, sp ; 89 e5 … … 10779 10832 ; sub ah, ah ; 2a e4 10780 10833 test AL, strict byte 002h ; a8 02 10781 je short 074 1eh ; 74 0e10834 je short 0745dh ; 74 0e 10782 10835 push 008f8h ; 68 f8 08 10783 push 0116 ch ; 68 6c1110836 push 01168h ; 68 68 11 10784 10837 push strict byte 00007h ; 6a 07 10785 call 01966h ; e8 4ba510838 call 01966h ; e8 0c a5 10786 10839 add sp, strict byte 00006h ; 83 c4 06 10787 10840 mov AL, strict byte 060h ; b0 60 … … 10796 10849 pop bp ; 5d 10797 10850 retn ; c3 10798 _int74_function: ; 0xf74 31LB 0xd210851 _int74_function: ; 0xf7470 LB 0xd2 10799 10852 push bp ; 55 10800 10853 mov bp, sp ; 89 e5 … … 10802 10855 mov dx, strict word 0000eh ; ba 0e 00 10803 10856 mov ax, strict word 00040h ; b8 40 00 10804 call 0166ch ; e8 2c a210857 call 0166ch ; e8 ed a1 10805 10858 mov cx, ax ; 89 c1 10806 10859 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10811 10864 and AL, strict byte 021h ; 24 21 10812 10865 cmp AL, strict byte 021h ; 3c 21 10813 jne short 074 75h ; 75 2210866 jne short 074b4h ; 75 22 10814 10867 mov dx, strict word 00060h ; ba 60 00 10815 10868 in AL, DX ; ec … … 10819 10872 mov dx, strict word 00026h ; ba 26 00 10820 10873 mov ax, cx ; 89 c8 10821 call 01650h ; e8 eda110874 call 01650h ; e8 ae a1 10822 10875 mov byte [bp-002h], al ; 88 46 fe 10823 10876 mov dx, strict word 00027h ; ba 27 00 10824 10877 mov ax, cx ; 89 c8 10825 call 01650h ; e8 e2a110878 call 01650h ; e8 a3 a1 10826 10879 mov byte [bp-006h], al ; 88 46 fa 10827 10880 test AL, strict byte 080h ; a8 80 10828 jne short 074 78h ; 75 0310829 jmp near 07 4efh ; e9 77 0010881 jne short 074b7h ; 75 03 10882 jmp near 0752eh ; e9 77 00 10830 10883 mov al, byte [bp-006h] ; 8a 46 fa 10831 10884 and AL, strict byte 007h ; 24 07 … … 10841 10894 add dx, strict byte 00028h ; 83 c2 28 10842 10895 mov ax, cx ; 89 c8 10843 call 0165eh ; e8 c3a110896 call 0165eh ; e8 84 a1 10844 10897 mov al, byte [bp-008h] ; 8a 46 f8 10845 10898 cmp al, byte [bp-004h] ; 3a 46 fc 10846 jc short 07 4dfh ; 72 3c10899 jc short 0751eh ; 72 3c 10847 10900 mov dx, strict word 00028h ; ba 28 00 10848 10901 mov ax, cx ; 89 c8 10849 call 01650h ; e8 a5a110902 call 01650h ; e8 66 a1 10850 10903 xor ah, ah ; 30 e4 10851 10904 mov word [bp+00ch], ax ; 89 46 0c 10852 10905 mov dx, strict word 00029h ; ba 29 00 10853 10906 mov ax, cx ; 89 c8 10854 call 01650h ; e8 98a110907 call 01650h ; e8 59 a1 10855 10908 xor ah, ah ; 30 e4 10856 10909 mov word [bp+00ah], ax ; 89 46 0a 10857 10910 mov dx, strict word 0002ah ; ba 2a 00 10858 10911 mov ax, cx ; 89 c8 10859 call 01650h ; e8 8ba110912 call 01650h ; e8 4c a1 10860 10913 xor ah, ah ; 30 e4 10861 10914 mov word [bp+008h], ax ; 89 46 08 … … 10864 10917 mov byte [bp-002h], ah ; 88 66 fe 10865 10918 test byte [bp-006h], 080h ; f6 46 fa 80 10866 je short 07 4e2h ; 74 0a10919 je short 07521h ; 74 0a 10867 10920 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10868 jmp short 07 4e2h ; eb 0310921 jmp short 07521h ; eb 03 10869 10922 inc byte [bp-002h] ; fe 46 fe 10870 10923 mov bl, byte [bp-002h] ; 8a 5e fe … … 10872 10925 mov dx, strict word 00026h ; ba 26 00 10873 10926 mov ax, cx ; 89 c8 10874 call 0165eh ; e8 6fa110927 call 0165eh ; e8 30 a1 10875 10928 mov sp, bp ; 89 ec 10876 10929 pop bp ; 5d 10877 10930 retn ; c3 10878 inc si ; 46 10879 jne short 074b8h ; 75 c2 10880 jne short 07537h ; 75 3f 10881 jbe short 074ceh ; 76 d4 10882 jbe short 0753ch ; 76 40 10883 jnbe short 0748bh ; 77 8d 10884 jne short 07568h ; 75 68 10885 jnbe short 0752fh ; 77 2d 10931 test word [di+001h], si ; 85 75 01 10932 jbe short 075b5h ; 76 7e 10933 jbe short 0754ch ; 76 13 10934 jnbe short 075bah ; 77 7f 10935 jnbe short 07509h ; 77 cc 10936 jne short 074e6h ; 75 a7 10937 jnbe short 075adh ; 77 6c 10886 10938 db 078h 10887 _int15_function_mouse: ; 0xf75 03LB 0x38d10939 _int15_function_mouse: ; 0xf7542 LB 0x38d 10888 10940 push bp ; 55 10889 10941 mov bp, sp ; 89 e5 … … 10892 10944 mov dx, strict word 0000eh ; ba 0e 00 10893 10945 mov ax, strict word 00040h ; b8 40 00 10894 call 0166ch ; e8 59a110946 call 0166ch ; e8 1a a1 10895 10947 mov cx, ax ; 89 c1 10896 10948 cmp byte [bp+012h], 007h ; 80 7e 12 07 10897 jbe short 075 26h ; 76 0b10949 jbe short 07565h ; 76 0b 10898 10950 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10899 10951 mov byte [bp+013h], 001h ; c6 46 13 01 10900 jmp near 078 8ah ; e9 64 0310952 jmp near 078c9h ; e9 64 03 10901 10953 mov ax, strict word 00065h ; b8 65 00 10902 call 07 3ffh ; e8 d3 fe10954 call 0743eh ; e8 d3 fe 10903 10955 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10904 10956 mov byte [bp+013h], 000h ; c6 46 13 00 10905 10957 mov al, byte [bp+012h] ; 8a 46 12 10906 10958 cmp AL, strict byte 007h ; 3c 07 10907 jnbe short 075 9bh ; 77 6010959 jnbe short 075dah ; 77 60 10908 10960 xor ah, ah ; 30 e4 10909 10961 mov si, ax ; 89 c6 10910 10962 add si, ax ; 01 c6 10911 jmp word [cs:si+07 4f3h] ; 2e ff a4 f3 7410963 jmp word [cs:si+07532h] ; 2e ff a4 32 75 10912 10964 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10913 jnbe short 075 9eh ; 77 5210965 jnbe short 075ddh ; 77 52 10914 10966 mov dx, strict word 00027h ; ba 27 00 10915 10967 mov ax, cx ; 89 c8 10916 call 01650h ; e8 fca010968 call 01650h ; e8 bd a0 10917 10969 test AL, strict byte 080h ; a8 80 10918 jne short 075 63h ; 75 0b10970 jne short 075a2h ; 75 0b 10919 10971 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10920 10972 mov byte [bp+013h], 005h ; c6 46 13 05 10921 jmp near 078 84h ; e9 21 0310973 jmp near 078c3h ; e9 21 03 10922 10974 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10923 jne short 075 6dh ; 75 0410975 jne short 075ach ; 75 04 10924 10976 mov AL, strict byte 0f5h ; b0 f5 10925 jmp short 075 6fh ; eb 0210977 jmp short 075aeh ; eb 02 10926 10978 mov AL, strict byte 0f4h ; b0 f4 10927 10979 xor ah, ah ; 30 e4 10928 call 073 6eh ; e8 fa fd10980 call 073adh ; e8 fa fd 10929 10981 test al, al ; 84 c0 10930 jne short 075 a1h ; 75 2910982 jne short 075e0h ; 75 29 10931 10983 mov dx, ss ; 8c d2 10932 10984 lea ax, [bp-008h] ; 8d 46 f8 10933 call 073 a2h ; e8 22 fe10985 call 073e1h ; e8 22 fe 10934 10986 test al, al ; 84 c0 10935 je short 075 8ah ; 74 0610987 je short 075c9h ; 74 06 10936 10988 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10937 jne short 075 a1h ; 75 1710938 jmp near 078 84h ; e9 f7 0210989 jne short 075e0h ; 75 17 10990 jmp near 078c3h ; e9 f7 02 10939 10991 mov al, byte [bp+00dh] ; 8a 46 0d 10940 10992 cmp AL, strict byte 001h ; 3c 01 10941 jc short 075 98h ; 72 0410993 jc short 075d7h ; 72 04 10942 10994 cmp AL, strict byte 008h ; 3c 08 10943 jbe short 075 a4h ; 76 0c10944 jmp near 077 36h ; e9 9b 0110945 jmp near 078 71h ; e9 d3 0210946 jmp near 078 7ch ; e9 db 0210947 jmp near 078 08h ; e9 64 0210995 jbe short 075e3h ; 76 0c 10996 jmp near 07775h ; e9 9b 01 10997 jmp near 078b0h ; e9 d3 02 10998 jmp near 078bbh ; e9 db 02 10999 jmp near 07847h ; e9 64 02 10948 11000 mov dx, strict word 00027h ; ba 27 00 10949 11001 mov ax, cx ; 89 c8 10950 call 01650h ; e8 a4a011002 call 01650h ; e8 65 a0 10951 11003 mov ah, byte [bp+00dh] ; 8a 66 0d 10952 11004 db 0feh, 0cch … … 10958 11010 mov dx, strict word 00027h ; ba 27 00 10959 11011 mov ax, cx ; 89 c8 10960 call 0165eh ; e8 9ca011012 call 0165eh ; e8 5d a0 10961 11013 mov dx, strict word 00026h ; ba 26 00 10962 11014 mov ax, cx ; 89 c8 10963 call 01650h ; e8 86a011015 call 01650h ; e8 47 a0 10964 11016 mov bl, al ; 88 c3 10965 11017 and bl, 0f8h ; 80 e3 f8 … … 10967 11019 mov dx, strict word 00026h ; ba 26 00 10968 11020 mov ax, cx ; 89 c8 10969 call 0165eh ; e8 85a011021 call 0165eh ; e8 46 a0 10970 11022 mov ax, 000ffh ; b8 ff 00 10971 call 073 6eh ; e8 8f fd11023 call 073adh ; e8 8f fd 10972 11024 test al, al ; 84 c0 10973 jne short 075 a1h ; 75 be11025 jne short 075e0h ; 75 be 10974 11026 mov dx, ss ; 8c d2 10975 11027 lea ax, [bp-004h] ; 8d 46 fc 10976 call 073 a2h ; e8 b7 fd11028 call 073e1h ; e8 b7 fd 10977 11029 mov cl, al ; 88 c1 10978 11030 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10979 jne short 07 5fdh ; 75 0a11031 jne short 0763ch ; 75 0a 10980 11032 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10981 11033 mov byte [bp+013h], 004h ; c6 46 13 04 10982 jmp short 075 8ah ; eb 8d11034 jmp short 075c9h ; eb 8d 10983 11035 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10984 je short 076 14h ; 74 1111036 je short 07653h ; 74 11 10985 11037 mov al, byte [bp-004h] ; 8a 46 fc 10986 11038 xor ah, ah ; 30 e4 … … 10988 11040 push 00903h ; 68 03 09 10989 11041 push strict byte 00007h ; 6a 07 10990 call 01966h ; e8 55a311042 call 01966h ; e8 16 a3 10991 11043 add sp, strict byte 00006h ; 83 c4 06 10992 11044 test cl, cl ; 84 c9 10993 jne short 075 a1h ; 75 8911045 jne short 075e0h ; 75 89 10994 11046 mov dx, ss ; 8c d2 10995 11047 lea ax, [bp-008h] ; 8d 46 f8 10996 call 073 a2h ; e8 82 fd11048 call 073e1h ; e8 82 fd 10997 11049 test al, al ; 84 c0 10998 jne short 076 7ah ; 75 5611050 jne short 076b9h ; 75 56 10999 11051 mov dx, ss ; 8c d2 11000 11052 lea ax, [bp-006h] ; 8d 46 fa 11001 call 073 a2h ; e8 76 fd11053 call 073e1h ; e8 76 fd 11002 11054 test al, al ; 84 c0 11003 jne short 076 7ah ; 75 4a11055 jne short 076b9h ; 75 4a 11004 11056 mov al, byte [bp-008h] ; 8a 46 f8 11005 11057 mov byte [bp+00ch], al ; 88 46 0c 11006 11058 mov al, byte [bp-006h] ; 8a 46 fa 11007 11059 mov byte [bp+00dh], al ; 88 46 0d 11008 jmp near 078 84h ; e9 45 0211060 jmp near 078c3h ; e9 45 02 11009 11061 mov al, byte [bp+00dh] ; 8a 46 0d 11010 11062 cmp AL, strict byte 003h ; 3c 03 11011 jc short 076 56h ; 72 1011012 jbe short 076 74h ; 76 2c11063 jc short 07695h ; 72 10 11064 jbe short 076b3h ; 76 2c 11013 11065 cmp AL, strict byte 006h ; 3c 06 11014 je short 076 89h ; 74 3d11066 je short 076c8h ; 74 3d 11015 11067 cmp AL, strict byte 005h ; 3c 05 11016 je short 076 83h ; 74 3311068 je short 076c2h ; 74 33 11017 11069 cmp AL, strict byte 004h ; 3c 04 11018 je short 076 7dh ; 74 2911019 jmp short 076 8fh ; eb 3911070 je short 076bch ; 74 29 11071 jmp short 076ceh ; eb 39 11020 11072 cmp AL, strict byte 002h ; 3c 02 11021 je short 076 6eh ; 74 1411073 je short 076adh ; 74 14 11022 11074 cmp AL, strict byte 001h ; 3c 01 11023 je short 076 68h ; 74 0a11075 je short 076a7h ; 74 0a 11024 11076 test al, al ; 84 c0 11025 jne short 076 8fh ; 75 2d11077 jne short 076ceh ; 75 2d 11026 11078 mov byte [bp-008h], 00ah ; c6 46 f8 0a 11027 jmp short 076 93h ; eb 2b11079 jmp short 076d2h ; eb 2b 11028 11080 mov byte [bp-008h], 014h ; c6 46 f8 14 11029 jmp short 076 93h ; eb 2511081 jmp short 076d2h ; eb 25 11030 11082 mov byte [bp-008h], 028h ; c6 46 f8 28 11031 jmp short 076 93h ; eb 1f11083 jmp short 076d2h ; eb 1f 11032 11084 mov byte [bp-008h], 03ch ; c6 46 f8 3c 11033 jmp short 076 93h ; eb 1911034 jmp near 078 08h ; e9 8b 0111085 jmp short 076d2h ; eb 19 11086 jmp near 07847h ; e9 8b 01 11035 11087 mov byte [bp-008h], 050h ; c6 46 f8 50 11036 jmp short 076 93h ; eb 1011088 jmp short 076d2h ; eb 10 11037 11089 mov byte [bp-008h], 064h ; c6 46 f8 64 11038 jmp short 076 93h ; eb 0a11090 jmp short 076d2h ; eb 0a 11039 11091 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 11040 jmp short 076 93h ; eb 0411092 jmp short 076d2h ; eb 04 11041 11093 mov byte [bp-008h], 000h ; c6 46 f8 00 11042 11094 cmp byte [bp-008h], 000h ; 80 7e f8 00 11043 jbe short 07 6c9h ; 76 3011095 jbe short 07708h ; 76 30 11044 11096 mov ax, 000f3h ; b8 f3 00 11045 call 073 6eh ; e8 cf fc11097 call 073adh ; e8 cf fc 11046 11098 test al, al ; 84 c0 11047 jne short 076 beh ; 75 1b11099 jne short 076fdh ; 75 1b 11048 11100 mov dx, ss ; 8c d2 11049 11101 lea ax, [bp-006h] ; 8d 46 fa 11050 call 073 a2h ; e8 f7 fc11102 call 073e1h ; e8 f7 fc 11051 11103 mov al, byte [bp-008h] ; 8a 46 f8 11052 11104 xor ah, ah ; 30 e4 11053 call 073 6eh ; e8 bb fc11105 call 073adh ; e8 bb fc 11054 11106 mov dx, ss ; 8c d2 11055 11107 lea ax, [bp-006h] ; 8d 46 fa 11056 call 073 a2h ; e8 e7 fc11057 jmp near 078 84h ; e9 c6 0111108 call 073e1h ; e8 e7 fc 11109 jmp near 078c3h ; e9 c6 01 11058 11110 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11059 11111 mov byte [bp+013h], 003h ; c6 46 13 03 11060 jmp near 078 84h ; e9 bb 0111112 jmp near 078c3h ; e9 bb 01 11061 11113 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11062 11114 mov byte [bp+013h], 002h ; c6 46 13 02 11063 jmp near 078 84h ; e9 b0 0111115 jmp near 078c3h ; e9 b0 01 11064 11116 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11065 jnc short 077 36h ; 73 5c11117 jnc short 07775h ; 73 5c 11066 11118 mov ax, 000e8h ; b8 e8 00 11067 call 073 6eh ; e8 8e fc11119 call 073adh ; e8 8e fc 11068 11120 test al, al ; 84 c0 11069 jne short 077 2ch ; 75 4811121 jne short 0776bh ; 75 48 11070 11122 mov dx, ss ; 8c d2 11071 11123 lea ax, [bp-008h] ; 8d 46 f8 11072 call 073 a2h ; e8 b6 fc11124 call 073e1h ; e8 b6 fc 11073 11125 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11074 je short 077 03h ; 74 1111126 je short 07742h ; 74 11 11075 11127 mov al, byte [bp-008h] ; 8a 46 f8 11076 11128 xor ah, ah ; 30 e4 … … 11078 11130 push 0092eh ; 68 2e 09 11079 11131 push strict byte 00007h ; 6a 07 11080 call 01966h ; e8 66a211132 call 01966h ; e8 27 a2 11081 11133 add sp, strict byte 00006h ; 83 c4 06 11082 11134 mov al, byte [bp+00dh] ; 8a 46 0d 11083 11135 xor ah, ah ; 30 e4 11084 call 073 6eh ; e8 63 fc11136 call 073adh ; e8 63 fc 11085 11137 mov dx, ss ; 8c d2 11086 11138 lea ax, [bp-008h] ; 8d 46 f8 11087 call 073 a2h ; e8 8f fc11139 call 073e1h ; e8 8f fc 11088 11140 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11089 je short 077 65h ; 74 4c11141 je short 077a4h ; 74 4c 11090 11142 mov al, byte [bp-008h] ; 8a 46 f8 11091 11143 xor ah, ah ; 30 e4 … … 11093 11145 push 0092eh ; 68 2e 09 11094 11146 push strict byte 00007h ; 6a 07 11095 call 01966h ; e8 3fa211147 call 01966h ; e8 00 a2 11096 11148 add sp, strict byte 00006h ; 83 c4 06 11097 jmp short 077 65h ; eb 3911149 jmp short 077a4h ; eb 39 11098 11150 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11099 11151 mov byte [bp+013h], 003h ; c6 46 13 03 11100 jmp short 077 65h ; eb 2f11152 jmp short 077a4h ; eb 2f 11101 11153 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11102 11154 mov byte [bp+013h], 002h ; c6 46 13 02 11103 jmp short 077 65h ; eb 2511155 jmp short 077a4h ; eb 25 11104 11156 mov ax, 000f2h ; b8 f2 00 11105 call 073 6eh ; e8 28 fc11157 call 073adh ; e8 28 fc 11106 11158 test al, al ; 84 c0 11107 jne short 077 5dh ; 75 1311159 jne short 0779ch ; 75 13 11108 11160 mov dx, ss ; 8c d2 11109 11161 lea ax, [bp-008h] ; 8d 46 f8 11110 call 073 a2h ; e8 50 fc11162 call 073e1h ; e8 50 fc 11111 11163 mov dx, ss ; 8c d2 11112 11164 lea ax, [bp-006h] ; 8d 46 fa 11113 call 073 a2h ; e8 48 fc11114 jmp near 076 36h ; e9 d9 fe11165 call 073e1h ; e8 48 fc 11166 jmp near 07675h ; e9 d9 fe 11115 11167 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11116 11168 mov byte [bp+013h], 003h ; c6 46 13 03 11117 jmp near 078 84h ; e9 1c 0111169 jmp near 078c3h ; e9 1c 01 11118 11170 mov al, byte [bp+00dh] ; 8a 46 0d 11119 11171 test al, al ; 84 c0 11120 jbe short 077 76h ; 76 0711172 jbe short 077b5h ; 76 07 11121 11173 cmp AL, strict byte 002h ; 3c 02 11122 jbe short 07 7ddh ; 76 6a11123 jmp near 078 12h ; e9 9c 0011174 jbe short 0781ch ; 76 6a 11175 jmp near 07851h ; e9 9c 00 11124 11176 mov ax, 000e9h ; b8 e9 00 11125 call 073 6eh ; e8 f2 fb11177 call 073adh ; e8 f2 fb 11126 11178 test al, al ; 84 c0 11127 jne short 07 7e6h ; 75 6611179 jne short 07825h ; 75 66 11128 11180 mov dx, ss ; 8c d2 11129 11181 lea ax, [bp-008h] ; 8d 46 f8 11130 call 073 a2h ; e8 1a fc11182 call 073e1h ; e8 1a fc 11131 11183 mov cl, al ; 88 c1 11132 11184 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11133 je short 077 a1h ; 74 1111185 je short 077e0h ; 74 11 11134 11186 mov al, byte [bp-008h] ; 8a 46 f8 11135 11187 xor ah, ah ; 30 e4 … … 11137 11189 push 0092eh ; 68 2e 09 11138 11190 push strict byte 00007h ; 6a 07 11139 call 01966h ; e8 c8a111191 call 01966h ; e8 89 a1 11140 11192 add sp, strict byte 00006h ; 83 c4 06 11141 11193 test cl, cl ; 84 c9 11142 jne short 078 08h ; 75 6311194 jne short 07847h ; 75 63 11143 11195 mov dx, ss ; 8c d2 11144 11196 lea ax, [bp-008h] ; 8d 46 f8 11145 call 073 a2h ; e8 f5 fb11197 call 073e1h ; e8 f5 fb 11146 11198 test al, al ; 84 c0 11147 jne short 078 08h ; 75 5711199 jne short 07847h ; 75 57 11148 11200 mov dx, ss ; 8c d2 11149 11201 lea ax, [bp-006h] ; 8d 46 fa 11150 call 073 a2h ; e8 e9 fb11202 call 073e1h ; e8 e9 fb 11151 11203 test al, al ; 84 c0 11152 jne short 078 08h ; 75 4b11204 jne short 07847h ; 75 4b 11153 11205 mov dx, ss ; 8c d2 11154 11206 lea ax, [bp-004h] ; 8d 46 fc 11155 call 073 a2h ; e8 dd fb11207 call 073e1h ; e8 dd fb 11156 11208 test al, al ; 84 c0 11157 jne short 078 08h ; 75 3f11209 jne short 07847h ; 75 3f 11158 11210 mov al, byte [bp-008h] ; 8a 46 f8 11159 11211 mov byte [bp+00ch], al ; 88 46 0c … … 11162 11214 mov al, byte [bp-004h] ; 8a 46 fc 11163 11215 mov byte [bp+00eh], al ; 88 46 0e 11164 jmp short 077 65h ; eb 8811216 jmp short 077a4h ; eb 88 11165 11217 cmp AL, strict byte 001h ; 3c 01 11166 jne short 07 7e8h ; 75 0711218 jne short 07827h ; 75 07 11167 11219 mov ax, 000e6h ; b8 e6 00 11168 jmp short 07 7ebh ; eb 0511169 jmp short 078 08h ; eb 2011220 jmp short 0782ah ; eb 05 11221 jmp short 07847h ; eb 20 11170 11222 mov ax, 000e7h ; b8 e7 00 11171 call 073 6eh ; e8 80 fb11223 call 073adh ; e8 80 fb 11172 11224 mov cl, al ; 88 c1 11173 11225 test cl, cl ; 84 c9 11174 jne short 078 04h ; 75 1011226 jne short 07843h ; 75 10 11175 11227 mov dx, ss ; 8c d2 11176 11228 lea ax, [bp-008h] ; 8d 46 f8 11177 call 073 a2h ; e8 a6 fb11229 call 073e1h ; e8 a6 fb 11178 11230 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11179 je short 078 04h ; 74 0211231 je short 07843h ; 74 02 11180 11232 mov CL, strict byte 001h ; b1 01 11181 11233 test cl, cl ; 84 c9 11182 je short 078 6fh ; 74 6711234 je short 078aeh ; 74 67 11183 11235 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11184 11236 mov byte [bp+013h], 003h ; c6 46 13 03 11185 jmp short 078 6fh ; eb 5d11237 jmp short 078aeh ; eb 5d 11186 11238 mov al, byte [bp+00dh] ; 8a 46 0d 11187 11239 xor ah, ah ; 30 e4 … … 11189 11241 push 0095ah ; 68 5a 09 11190 11242 push strict byte 00007h ; 6a 07 11191 call 01966h ; e8 46a111243 call 01966h ; e8 07 a1 11192 11244 add sp, strict byte 00006h ; 83 c4 06 11193 11245 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11194 11246 mov byte [bp+013h], 001h ; c6 46 13 01 11195 jmp short 078 84h ; eb 5711247 jmp short 078c3h ; eb 57 11196 11248 mov si, word [bp+00ch] ; 8b 76 0c 11197 11249 mov bx, si ; 89 f3 11198 11250 mov dx, strict word 00022h ; ba 22 00 11199 11251 mov ax, cx ; 89 c8 11200 call 0167ah ; e8 409e11252 call 0167ah ; e8 01 9e 11201 11253 mov bx, word [bp+014h] ; 8b 5e 14 11202 11254 mov dx, strict word 00024h ; ba 24 00 11203 11255 mov ax, cx ; 89 c8 11204 call 0167ah ; e8 35 9e11256 call 0167ah ; e8 f6 9d 11205 11257 mov dx, strict word 00027h ; ba 27 00 11206 11258 mov ax, cx ; 89 c8 11207 call 01650h ; e8 03 9e11259 call 01650h ; e8 c4 9d 11208 11260 mov ah, al ; 88 c4 11209 11261 test si, si ; 85 f6 11210 jne short 078 61h ; 75 0e11262 jne short 078a0h ; 75 0e 11211 11263 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11212 jne short 078 61h ; 75 0811264 jne short 078a0h ; 75 08 11213 11265 test AL, strict byte 080h ; a8 80 11214 je short 078 63h ; 74 0611266 je short 078a2h ; 74 06 11215 11267 and AL, strict byte 07fh ; 24 7f 11216 jmp short 078 63h ; eb 0211268 jmp short 078a2h ; eb 02 11217 11269 or AL, strict byte 080h ; 0c 80 11218 11270 mov bl, al ; 88 c3 … … 11220 11272 mov dx, strict word 00027h ; ba 27 00 11221 11273 mov ax, cx ; 89 c8 11222 call 0165eh ; e8 ef9d11223 jmp short 078 84h ; eb 1311274 call 0165eh ; e8 b0 9d 11275 jmp short 078c3h ; eb 13 11224 11276 push 00974h ; 68 74 09 11225 11277 push strict byte 00007h ; 6a 07 11226 call 01966h ; e8 eda011278 call 01966h ; e8 ae a0 11227 11279 add sp, strict byte 00004h ; 83 c4 04 11228 11280 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11229 11281 mov byte [bp+013h], 001h ; c6 46 13 01 11230 11282 mov ax, strict word 00047h ; b8 47 00 11231 call 07 3ffh ; e8 75 fb11283 call 0743eh ; e8 75 fb 11232 11284 lea sp, [bp-002h] ; 8d 66 fe 11233 11285 pop si ; 5e 11234 11286 pop bp ; 5d 11235 11287 retn ; c3 11236 _int17_function: ; 0xf78 90LB 0xaf11288 _int17_function: ; 0xf78cf LB 0xaf 11237 11289 push bp ; 55 11238 11290 mov bp, sp ; 89 e5 … … 11244 11296 add dx, strict byte 00008h ; 83 c2 08 11245 11297 mov ax, strict word 00040h ; b8 40 00 11246 call 0166ch ; e8 c89d11298 call 0166ch ; e8 89 9d 11247 11299 mov bx, ax ; 89 c3 11248 11300 mov si, ax ; 89 c6 11249 11301 cmp byte [bp+013h], 003h ; 80 7e 13 03 11250 jnc short 078 bah ; 73 0c11302 jnc short 078f9h ; 73 0c 11251 11303 mov ax, word [bp+00eh] ; 8b 46 0e 11252 11304 cmp ax, strict word 00003h ; 3d 03 00 11253 jnc short 078 bah ; 73 0411305 jnc short 078f9h ; 73 04 11254 11306 test bx, bx ; 85 db 11255 jnbe short 078 bdh ; 77 0311256 jmp near 079 35h ; e9 78 0011307 jnbe short 078fch ; 77 03 11308 jmp near 07974h ; e9 78 00 11257 11309 mov dx, ax ; 89 c2 11258 11310 add dx, strict byte 00078h ; 83 c2 78 11259 11311 mov ax, strict word 00040h ; b8 40 00 11260 call 01650h ; e8 889d11312 call 01650h ; e8 49 9d 11261 11313 xor ah, ah ; 30 e4 11262 11314 mov cx, ax ; 89 c1 11263 11315 sal cx, 008h ; c1 e1 08 11264 11316 cmp byte [bp+013h], 000h ; 80 7e 13 00 11265 jne short 079 01h ; 75 2c11317 jne short 07940h ; 75 2c 11266 11318 mov al, byte [bp+012h] ; 8a 46 12 11267 11319 mov dx, bx ; 89 da … … 11283 11335 ; sub ah, ah ; 2a e4 11284 11336 test AL, strict byte 040h ; a8 40 11285 je short 079 01h ; 74 0711337 je short 07940h ; 74 07 11286 11338 test cx, cx ; 85 c9 11287 je short 079 01h ; 74 0311339 je short 07940h ; 74 03 11288 11340 dec cx ; 49 11289 jmp short 07 8f0h ; eb ef11341 jmp short 0792fh ; eb ef 11290 11342 cmp byte [bp+013h], 001h ; 80 7e 13 01 11291 jne short 079 1ch ; 75 1511343 jne short 0795bh ; 75 15 11292 11344 lea dx, [si+002h] ; 8d 54 02 11293 11345 in AL, DX ; ec … … 11308 11360 mov byte [bp+013h], al ; 88 46 13 11309 11361 test cx, cx ; 85 c9 11310 jne short 079 2fh ; 75 0411362 jne short 0796eh ; 75 04 11311 11363 or byte [bp+013h], 001h ; 80 4e 13 01 11312 11364 and byte [bp+01ch], 0feh ; 80 66 1c fe 11313 jmp short 079 39h ; eb 0411365 jmp short 07978h ; eb 04 11314 11366 or byte [bp+01ch], 001h ; 80 4e 1c 01 11315 11367 lea sp, [bp-002h] ; 8d 66 fe … … 11317 11369 pop bp ; 5d 11318 11370 retn ; c3 11319 wait_: ; 0xf79 3fLB 0xaf11371 wait_: ; 0xf797e LB 0xaf 11320 11372 push bp ; 55 11321 11373 mov bp, sp ; 89 e5 … … 11335 11387 mov dx, 0046ch ; ba 6c 04 11336 11388 xor ax, ax ; 31 c0 11337 call 01688h ; e8 26 9d11389 call 01688h ; e8 e7 9c 11338 11390 mov word [bp-010h], ax ; 89 46 f0 11339 11391 mov bx, dx ; 89 d3 … … 11341 11393 mov dx, 0046ch ; ba 6c 04 11342 11394 xor ax, ax ; 31 c0 11343 call 01688h ; e8 18 9d11395 call 01688h ; e8 d9 9c 11344 11396 mov word [bp-012h], ax ; 89 46 ee 11345 11397 mov di, dx ; 89 d7 11346 11398 cmp dx, bx ; 39 da 11347 jnbe short 079 80h ; 77 0711348 jne short 079 87h ; 75 0c11399 jnbe short 079bfh ; 77 07 11400 jne short 079c6h ; 75 0c 11349 11401 cmp ax, word [bp-010h] ; 3b 46 f0 11350 jbe short 079 87h ; 76 0711402 jbe short 079c6h ; 76 07 11351 11403 sub ax, word [bp-010h] ; 2b 46 f0 11352 11404 sbb dx, bx ; 19 da 11353 jmp short 079 92h ; eb 0b11405 jmp short 079d1h ; eb 0b 11354 11406 cmp dx, bx ; 39 da 11355 jc short 079 92h ; 72 0711356 jne short 079 96h ; 75 0911407 jc short 079d1h ; 72 07 11408 jne short 079d5h ; 75 09 11357 11409 cmp ax, word [bp-010h] ; 3b 46 f0 11358 jnc short 079 96h ; 73 0411410 jnc short 079d5h ; 73 04 11359 11411 sub si, ax ; 29 c6 11360 11412 sbb cx, dx ; 19 d1 … … 11364 11416 mov ax, 00100h ; b8 00 01 11365 11417 int 016h ; cd 16 11366 je short 079 aah ; 74 0511418 je short 079e9h ; 74 05 11367 11419 mov AL, strict byte 001h ; b0 01 11368 jmp near 079 ach ; e9 02 0011420 jmp near 079ebh ; e9 02 00 11369 11421 db 032h, 0c0h 11370 11422 ; xor al, al ; 32 c0 11371 11423 test al, al ; 84 c0 11372 je short 07 9d3h ; 74 2311424 je short 07a12h ; 74 23 11373 11425 db 033h, 0c0h 11374 11426 ; xor ax, ax ; 33 c0 … … 11381 11433 push 00996h ; 68 96 09 11382 11434 push strict byte 00004h ; 6a 04 11383 call 01966h ; e8 a09f11435 call 01966h ; e8 61 9f 11384 11436 add sp, strict byte 00006h ; 83 c4 06 11385 11437 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11386 je short 07 9d3h ; 74 0411438 je short 07a12h ; 74 04 11387 11439 mov al, dl ; 88 d0 11388 jmp short 07 9e5h ; eb 1211440 jmp short 07a24h ; eb 12 11389 11441 test cx, cx ; 85 c9 11390 jnle short 079 67h ; 7f 9011391 jne short 07 9ddh ; 75 0411442 jnle short 079a6h ; 7f 90 11443 jne short 07a1ch ; 75 04 11392 11444 test si, si ; 85 f6 11393 jnbe short 079 67h ; 77 8a11445 jnbe short 079a6h ; 77 8a 11394 11446 mov ax, word [bp-00eh] ; 8b 46 f2 11395 11447 push ax ; 50 … … 11403 11455 pop bp ; 5d 11404 11456 retn ; c3 11405 read_logo_byte_: ; 0xf7 9eeLB 0x1611457 read_logo_byte_: ; 0xf7a2d LB 0x16 11406 11458 push bp ; 55 11407 11459 mov bp, sp ; 89 e5 … … 11418 11470 pop bp ; 5d 11419 11471 retn ; c3 11420 read_logo_word_: ; 0xf7a 04LB 0x1411472 read_logo_word_: ; 0xf7a43 LB 0x14 11421 11473 push bp ; 55 11422 11474 mov bp, sp ; 89 e5 … … 11431 11483 pop bp ; 5d 11432 11484 retn ; c3 11433 print_detected_harddisks_: ; 0xf7a 18LB 0x13a11485 print_detected_harddisks_: ; 0xf7a57 LB 0x13a 11434 11486 push bp ; 55 11435 11487 mov bp, sp ; 89 e5 … … 11443 11495 mov dx, strict word 0000eh ; ba 0e 00 11444 11496 mov ax, strict word 00040h ; b8 40 00 11445 call 0166ch ; e8 419c11497 call 0166ch ; e8 02 9c 11446 11498 mov si, ax ; 89 c6 11447 11499 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11449 11501 xor ch, ch ; 30 ed 11450 11502 mov dx, 00304h ; ba 04 03 11451 call 01650h ; e8 15 9c11503 call 01650h ; e8 d6 9b 11452 11504 mov byte [bp-00ch], al ; 88 46 f4 11453 11505 xor bl, bl ; 30 db 11454 11506 cmp bl, byte [bp-00ch] ; 3a 5e f4 11455 jnc short 07a a2h ; 73 5d11507 jnc short 07ae1h ; 73 5d 11456 11508 mov al, bl ; 88 d8 11457 11509 xor ah, ah ; 30 e4 … … 11459 11511 add dx, 00305h ; 81 c2 05 03 11460 11512 mov ax, si ; 89 f0 11461 call 01650h ; e8 fc9b11513 call 01650h ; e8 bd 9b 11462 11514 mov bh, al ; 88 c7 11463 11515 cmp AL, strict byte 00ch ; 3c 0c 11464 jc short 07a 7fh ; 72 2511516 jc short 07abeh ; 72 25 11465 11517 test cl, cl ; 84 c9 11466 jne short 07a 6bh ; 75 0d11518 jne short 07aaah ; 75 0d 11467 11519 push 009a7h ; 68 a7 09 11468 11520 push strict byte 00002h ; 6a 02 11469 call 01966h ; e8 00 9f11521 call 01966h ; e8 c1 9e 11470 11522 add sp, strict byte 00004h ; 83 c4 04 11471 11523 mov CL, strict byte 001h ; b1 01 … … 11476 11528 push 009bch ; 68 bc 09 11477 11529 push strict byte 00002h ; 6a 02 11478 call 01966h ; e8 ed9e11530 call 01966h ; e8 ae 9e 11479 11531 add sp, strict byte 00006h ; 83 c4 06 11480 jmp near 07b 1fh ; e9 a0 0011532 jmp near 07b5eh ; e9 a0 00 11481 11533 cmp AL, strict byte 008h ; 3c 08 11482 jc short 07a 96h ; 72 1311534 jc short 07ad5h ; 72 13 11483 11535 test ch, ch ; 84 ed 11484 jne short 07a 94h ; 75 0d11536 jne short 07ad3h ; 75 0d 11485 11537 push 009cfh ; 68 cf 09 11486 11538 push strict byte 00002h ; 6a 02 11487 call 01966h ; e8 d79e11539 call 01966h ; e8 98 9e 11488 11540 add sp, strict byte 00004h ; 83 c4 04 11489 11541 mov CH, strict byte 001h ; b5 01 11490 jmp short 07a 6bh ; eb d511542 jmp short 07aaah ; eb d5 11491 11543 cmp AL, strict byte 004h ; 3c 04 11492 jnc short 07a b6h ; 73 1c11544 jnc short 07af5h ; 73 1c 11493 11545 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11494 je short 07a a5h ; 74 0511495 jmp short 07a b6h ; eb 1411496 jmp near 07b 24h ; e9 7f 0011546 je short 07ae4h ; 74 05 11547 jmp short 07af5h ; eb 14 11548 jmp near 07b63h ; e9 7f 00 11497 11549 push 009e4h ; 68 e4 09 11498 11550 push strict byte 00002h ; 6a 02 11499 call 01966h ; e8 b99e11551 call 01966h ; e8 7a 9e 11500 11552 add sp, strict byte 00004h ; 83 c4 04 11501 11553 mov byte [bp-00eh], 001h ; c6 46 f2 01 11502 jmp short 07 acch ; eb 1611554 jmp short 07b0bh ; eb 16 11503 11555 cmp bh, 004h ; 80 ff 04 11504 jc short 07 acch ; 72 1111556 jc short 07b0bh ; 72 11 11505 11557 test cl, cl ; 84 c9 11506 jne short 07 acch ; 75 0d11558 jne short 07b0bh ; 75 0d 11507 11559 push 009f6h ; 68 f6 09 11508 11560 push strict byte 00002h ; 6a 02 11509 call 01966h ; e8 9f9e11561 call 01966h ; e8 60 9e 11510 11562 add sp, strict byte 00004h ; 83 c4 04 11511 11563 mov CL, strict byte 001h ; b1 01 … … 11516 11568 push 00a0ah ; 68 0a 0a 11517 11569 push strict byte 00002h ; 6a 02 11518 call 01966h ; e8 8c9e11570 call 01966h ; e8 4d 9e 11519 11571 add sp, strict byte 00006h ; 83 c4 06 11520 11572 cmp bh, 004h ; 80 ff 04 11521 jc short 07 ae5h ; 72 0311573 jc short 07b24h ; 72 03 11522 11574 sub bh, 004h ; 80 ef 04 11523 11575 mov al, bh ; 88 f8 … … 11528 11580 sar ax, 1 ; d1 f8 11529 11581 test ax, ax ; 85 c0 11530 je short 07 af7h ; 74 0511582 je short 07b36h ; 74 05 11531 11583 push 00a14h ; 68 14 0a 11532 jmp short 07 afah ; eb 0311584 jmp short 07b39h ; eb 03 11533 11585 push 00a1fh ; 68 1f 0a 11534 11586 push strict byte 00002h ; 6a 02 11535 call 01966h ; e8 679e11587 call 01966h ; e8 28 9e 11536 11588 add sp, strict byte 00004h ; 83 c4 04 11537 11589 mov al, bh ; 88 f8 … … 11541 11593 idiv di ; f7 ff 11542 11594 test dx, dx ; 85 d2 11543 je short 07b 15h ; 74 0511595 je short 07b54h ; 74 05 11544 11596 push 00a28h ; 68 28 0a 11545 jmp short 07b 18h ; eb 0311597 jmp short 07b57h ; eb 03 11546 11598 push 00a2eh ; 68 2e 0a 11547 11599 push di ; 57 11548 call 01966h ; e8 4a9e11600 call 01966h ; e8 0b 9e 11549 11601 add sp, strict byte 00004h ; 83 c4 04 11550 11602 db 0feh, 0c3h 11551 11603 ; inc bl ; fe c3 11552 jmp near 07a 40h ; e9 1c ff11604 jmp near 07a7fh ; e9 1c ff 11553 11605 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11554 jne short 07b 3dh ; 75 1311606 jne short 07b7ch ; 75 13 11555 11607 test cl, cl ; 84 c9 11556 jne short 07b 3dh ; 75 0f11608 jne short 07b7ch ; 75 0f 11557 11609 test ch, ch ; 84 ed 11558 jne short 07b 3dh ; 75 0b11610 jne short 07b7ch ; 75 0b 11559 11611 push 00a35h ; 68 35 0a 11560 11612 push strict byte 00002h ; 6a 02 11561 call 01966h ; e8 2c 9e11613 call 01966h ; e8 ed 9d 11562 11614 add sp, strict byte 00004h ; 83 c4 04 11563 11615 push 00a49h ; 68 49 0a 11564 11616 push strict byte 00002h ; 6a 02 11565 call 01966h ; e8 21 9e11617 call 01966h ; e8 e2 9d 11566 11618 add sp, strict byte 00004h ; 83 c4 04 11567 11619 lea sp, [bp-00ah] ; 8d 66 f6 … … 11573 11625 pop bp ; 5d 11574 11626 retn ; c3 11575 get_boot_drive_: ; 0xf7b 52LB 0x2811627 get_boot_drive_: ; 0xf7b91 LB 0x28 11576 11628 push bp ; 55 11577 11629 mov bp, sp ; 89 e5 … … 11581 11633 mov dx, strict word 0000eh ; ba 0e 00 11582 11634 mov ax, strict word 00040h ; b8 40 00 11583 call 0166ch ; e8 0a 9b11635 call 0166ch ; e8 cb 9a 11584 11636 mov dx, 00304h ; ba 04 03 11585 call 01650h ; e8 e89a11637 call 01650h ; e8 a9 9a 11586 11638 sub bl, 002h ; 80 eb 02 11587 11639 cmp bl, al ; 38 c3 11588 jc short 07b 71h ; 72 0211640 jc short 07bb0h ; 72 02 11589 11641 mov BL, strict byte 0ffh ; b3 ff 11590 11642 mov al, bl ; 88 d8 … … 11594 11646 pop bp ; 5d 11595 11647 retn ; c3 11596 show_logo_: ; 0xf7b 7aLB 0x23111648 show_logo_: ; 0xf7bb9 LB 0x231 11597 11649 push bp ; 55 11598 11650 mov bp, sp ; 89 e5 … … 11605 11657 mov dx, strict word 0000eh ; ba 0e 00 11606 11658 mov ax, strict word 00040h ; b8 40 00 11607 call 0166ch ; e8 de9a11659 call 0166ch ; e8 9f 9a 11608 11660 mov si, ax ; 89 c6 11609 11661 xor cl, cl ; 30 c9 … … 11617 11669 mov al, dl ; 88 d0 11618 11670 xor ah, ah ; 30 e4 11619 call 07a 04h ; e8 5d fe11671 call 07a43h ; e8 5d fe 11620 11672 cmp ax, 066bbh ; 3d bb 66 11621 jne short 07b beh ; 75 1211673 jne short 07bfdh ; 75 12 11622 11674 push SS ; 16 11623 11675 pop ES ; 07 … … 11627 11679 mov word [es:di], bx ; 26 89 1d 11628 11680 cmp ax, strict word 0004fh ; 3d 4f 00 11629 je short 07 bc1h ; 74 0311630 jmp near 07c 89h ; e9 c8 0011681 je short 07c00h ; 74 03 11682 jmp near 07cc8h ; e9 c8 00 11631 11683 mov al, dl ; 88 d0 11632 11684 add AL, strict byte 004h ; 04 04 11633 11685 xor ah, ah ; 30 e4 11634 call 07 9eeh ; e8 24 fe11686 call 07a2dh ; e8 24 fe 11635 11687 mov ch, al ; 88 c5 11636 11688 mov byte [bp-012h], al ; 88 46 ee … … 11638 11690 add AL, strict byte 005h ; 04 05 11639 11691 xor ah, ah ; 30 e4 11640 call 07 9eeh ; e8 16 fe11692 call 07a2dh ; e8 16 fe 11641 11693 mov dh, al ; 88 c6 11642 11694 mov byte [bp-010h], al ; 88 46 f0 … … 11644 11696 add AL, strict byte 002h ; 04 02 11645 11697 xor ah, ah ; 30 e4 11646 call 07a 04h ; e8 1e fe11698 call 07a43h ; e8 1e fe 11647 11699 mov bx, ax ; 89 c3 11648 11700 mov word [bp-014h], ax ; 89 46 ec … … 11650 11702 add AL, strict byte 006h ; 04 06 11651 11703 xor ah, ah ; 30 e4 11652 call 07 9eeh ; e8 fa fd11704 call 07a2dh ; e8 fa fd 11653 11705 mov byte [bp-00eh], al ; 88 46 f2 11654 11706 test ch, ch ; 84 ed 11655 jne short 07c 03h ; 75 0811707 jne short 07c42h ; 75 08 11656 11708 test dh, dh ; 84 f6 11657 jne short 07c 03h ; 75 0411709 jne short 07c42h ; 75 04 11658 11710 test bx, bx ; 85 db 11659 je short 07b beh ; 74 bb11711 je short 07bfdh ; 74 bb 11660 11712 mov bx, 00142h ; bb 42 01 11661 11713 mov ax, 04f02h ; b8 02 4f 11662 11714 int 010h ; cd 10 11663 11715 cmp byte [bp-012h], 000h ; 80 7e ee 00 11664 je short 07c 34h ; 74 2311716 je short 07c73h ; 74 23 11665 11717 xor bx, bx ; 31 db 11666 jmp short 07c 1bh ; eb 0611718 jmp short 07c5ah ; eb 06 11667 11719 inc bx ; 43 11668 11720 cmp bx, strict byte 00010h ; 83 fb 10 11669 jnbe short 07c 3bh ; 77 2011721 jnbe short 07c7ah ; 77 20 11670 11722 mov ax, bx ; 89 d8 11671 11723 or ah, 002h ; 80 cc 02 … … 11674 11726 xor dx, dx ; 31 d2 11675 11727 mov ax, strict word 00001h ; b8 01 00 11676 call 079 3fh ; e8 13 fd11728 call 0797eh ; e8 13 fd 11677 11729 cmp AL, strict byte 086h ; 3c 86 11678 jne short 07c 15h ; 75 e511730 jne short 07c54h ; 75 e5 11679 11731 mov CL, strict byte 001h ; b1 01 11680 jmp short 07c 3bh ; eb 0711732 jmp short 07c7ah ; eb 07 11681 11733 mov ax, 00210h ; b8 10 02 11682 11734 mov dx, 003b8h ; ba b8 03 11683 11735 out DX, ax ; ef 11684 11736 test cl, cl ; 84 c9 11685 jne short 07c 51h ; 75 1211737 jne short 07c90h ; 75 12 11686 11738 mov ax, word [bp-014h] ; 8b 46 ec 11687 11739 shr ax, 004h ; c1 e8 04 11688 11740 mov dx, strict word 00001h ; ba 01 00 11689 call 079 3fh ; e8 f4 fc11741 call 0797eh ; e8 f4 fc 11690 11742 cmp AL, strict byte 086h ; 3c 86 11691 jne short 07c 51h ; 75 0211743 jne short 07c90h ; 75 02 11692 11744 mov CL, strict byte 001h ; b1 01 11693 11745 cmp byte [bp-010h], 000h ; 80 7e f0 00 11694 je short 07c 7eh ; 74 2711746 je short 07cbdh ; 74 27 11695 11747 test cl, cl ; 84 c9 11696 jne short 07c 7eh ; 75 2311748 jne short 07cbdh ; 75 23 11697 11749 mov bx, strict word 00010h ; bb 10 00 11698 jmp short 07c 65h ; eb 0511750 jmp short 07ca4h ; eb 05 11699 11751 dec bx ; 4b 11700 11752 test bx, bx ; 85 db 11701 jbe short 07c 89h ; 76 2411753 jbe short 07cc8h ; 76 24 11702 11754 mov ax, bx ; 89 d8 11703 11755 or ah, 002h ; 80 cc 02 … … 11706 11758 xor dx, dx ; 31 d2 11707 11759 mov ax, strict word 00001h ; b8 01 00 11708 call 079 3fh ; e8 c9 fc11760 call 0797eh ; e8 c9 fc 11709 11761 cmp AL, strict byte 086h ; 3c 86 11710 jne short 07c 60h ; 75 e611762 jne short 07c9fh ; 75 e6 11711 11763 mov CL, strict byte 001h ; b1 01 11712 jmp short 07c 89h ; eb 0b11764 jmp short 07cc8h ; eb 0b 11713 11765 test cl, cl ; 84 c9 11714 jne short 07c 89h ; 75 0711766 jne short 07cc8h ; 75 07 11715 11767 mov ax, 00200h ; b8 00 02 11716 11768 mov dx, 003b8h ; ba b8 03 … … 11719 11771 mov dx, 0037dh ; ba 7d 03 11720 11772 mov ax, si ; 89 f0 11721 call 0165eh ; e8 cb9911773 call 0165eh ; e8 8c 99 11722 11774 mov AL, strict byte 003h ; b0 03 11723 11775 mov AH, strict byte 000h ; b4 00 11724 11776 int 010h ; cd 10 11725 11777 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11726 je short 07c b3h ; 74 1411778 je short 07cf2h ; 74 14 11727 11779 cmp byte [bp-012h], 000h ; 80 7e ee 00 11728 jne short 07 cdah ; 75 3511780 jne short 07d19h ; 75 35 11729 11781 cmp byte [bp-010h], 000h ; 80 7e f0 00 11730 jne short 07 cdah ; 75 2f11782 jne short 07d19h ; 75 2f 11731 11783 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11732 je short 07c b6h ; 74 0511733 jmp short 07 cdah ; eb 2711734 jmp near 07d 8eh ; e9 d8 0011784 je short 07cf5h ; 74 05 11785 jmp short 07d19h ; eb 27 11786 jmp near 07dcdh ; e9 d8 00 11735 11787 cmp byte [bp-00eh], 002h ; 80 7e f2 02 11736 jne short 07 cc7h ; 75 0b11788 jne short 07d06h ; 75 0b 11737 11789 push 00a4bh ; 68 4b 0a 11738 11790 push strict byte 00002h ; 6a 02 11739 call 01966h ; e8 a29c11791 call 01966h ; e8 63 9c 11740 11792 add sp, strict byte 00004h ; 83 c4 04 11741 11793 test cl, cl ; 84 c9 11742 jne short 07 cdah ; 75 0f11794 jne short 07d19h ; 75 0f 11743 11795 mov dx, strict word 00001h ; ba 01 00 11744 11796 mov ax, 000c0h ; b8 c0 00 11745 call 079 3fh ; e8 6b fc11797 call 0797eh ; e8 6b fc 11746 11798 cmp AL, strict byte 086h ; 3c 86 11747 jne short 07 cdah ; 75 0211799 jne short 07d19h ; 75 02 11748 11800 mov CL, strict byte 001h ; b1 01 11749 11801 test cl, cl ; 84 c9 11750 je short 07c b3h ; 74 d511802 je short 07cf2h ; 74 d5 11751 11803 mov byte [bp-00ch], 000h ; c6 46 f4 00 11752 11804 mov ax, 00100h ; b8 00 01 … … 11767 11819 push 00a6dh ; 68 6d 0a 11768 11820 push strict byte 00002h ; 6a 02 11769 call 01966h ; e8 5f9c11821 call 01966h ; e8 20 9c 11770 11822 add sp, strict byte 00004h ; 83 c4 04 11771 call 07a 18h ; e8 0b fd11823 call 07a57h ; e8 0b fd 11772 11824 push 00ab1h ; 68 b1 0a 11773 11825 push strict byte 00002h ; 6a 02 11774 call 01966h ; e8 519c11826 call 01966h ; e8 12 9c 11775 11827 add sp, strict byte 00004h ; 83 c4 04 11776 11828 mov dx, strict word 00001h ; ba 01 00 11777 11829 mov ax, strict word 00040h ; b8 40 00 11778 call 079 3fh ; e8 1e fc11830 call 0797eh ; e8 1e fc 11779 11831 mov bl, al ; 88 c3 11780 11832 test al, al ; 84 c0 11781 je short 07d 18h ; 74 f111833 je short 07d57h ; 74 f1 11782 11834 cmp AL, strict byte 030h ; 3c 30 11783 je short 07d 7bh ; 74 5011835 je short 07dbah ; 74 50 11784 11836 cmp bl, 002h ; 80 fb 02 11785 jc short 07d 54h ; 72 2411837 jc short 07d93h ; 72 24 11786 11838 cmp bl, 009h ; 80 fb 09 11787 jnbe short 07d 54h ; 77 1f11839 jnbe short 07d93h ; 77 1f 11788 11840 mov al, bl ; 88 d8 11789 11841 xor ah, ah ; 30 e4 11790 call 07b 52h ; e8 16 fe11842 call 07b91h ; e8 16 fe 11791 11843 cmp AL, strict byte 0ffh ; 3c ff 11792 jne short 07d 42h ; 75 0211793 jmp short 07d 18h ; eb d611844 jne short 07d81h ; 75 02 11845 jmp short 07d57h ; eb d6 11794 11846 mov bl, al ; 88 c3 11795 11847 xor bh, bh ; 30 ff 11796 11848 mov dx, 0037ch ; ba 7c 03 11797 11849 mov ax, si ; 89 f0 11798 call 0165eh ; e8 10 9911850 call 0165eh ; e8 d1 98 11799 11851 mov byte [bp-00ch], 002h ; c6 46 f4 02 11800 jmp short 07d 7bh ; eb 2711852 jmp short 07dbah ; eb 27 11801 11853 cmp bl, 02eh ; 80 fb 2e 11802 je short 07d 69h ; 74 1011854 je short 07da8h ; 74 10 11803 11855 cmp bl, 026h ; 80 fb 26 11804 je short 07d 6fh ; 74 1111856 je short 07daeh ; 74 11 11805 11857 cmp bl, 021h ; 80 fb 21 11806 jne short 07d 75h ; 75 1211858 jne short 07db4h ; 75 12 11807 11859 mov byte [bp-00ch], 001h ; c6 46 f4 01 11808 jmp short 07d 7bh ; eb 1211860 jmp short 07dbah ; eb 12 11809 11861 mov byte [bp-00ch], 003h ; c6 46 f4 03 11810 jmp short 07d 7bh ; eb 0c11862 jmp short 07dbah ; eb 0c 11811 11863 mov byte [bp-00ch], 004h ; c6 46 f4 04 11812 jmp short 07d 7bh ; eb 0611864 jmp short 07dbah ; eb 06 11813 11865 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11814 je short 07d 18h ; 74 9d11866 je short 07d57h ; 74 9d 11815 11867 mov bl, byte [bp-00ch] ; 8a 5e f4 11816 11868 xor bh, bh ; 30 ff 11817 11869 mov dx, 0037dh ; ba 7d 03 11818 11870 mov ax, si ; 89 f0 11819 call 0165eh ; e8 d69811871 call 0165eh ; e8 97 98 11820 11872 mov AL, strict byte 003h ; b0 03 11821 11873 mov AH, strict byte 000h ; b4 00 … … 11830 11882 push DS ; 1e 11831 11883 mov ds, ax ; 8e d8 11832 call 0edbfh ; e8 20 7011884 call 0edbfh ; e8 e1 6f 11833 11885 pop DS ; 1f 11834 11886 pop bp ; 5d … … 11841 11893 pop bp ; 5d 11842 11894 retn ; c3 11843 delay_boot_: ; 0xf7d abLB 0x6b11895 delay_boot_: ; 0xf7dea LB 0x6b 11844 11896 push bp ; 55 11845 11897 mov bp, sp ; 89 e5 … … 11851 11903 mov dx, ax ; 89 c2 11852 11904 test ax, ax ; 85 c0 11853 je short 07e 0ch ; 74 5311905 je short 07e4bh ; 74 53 11854 11906 mov AL, strict byte 034h ; b0 34 11855 11907 out strict byte 043h, AL ; e6 43 … … 11861 11913 push 00afbh ; 68 fb 0a 11862 11914 push strict byte 00002h ; 6a 02 11863 call 01966h ; e8 989b11915 call 01966h ; e8 59 9b 11864 11916 add sp, strict byte 00006h ; 83 c4 06 11865 11917 mov bx, dx ; 89 d3 11866 11918 test bx, bx ; 85 db 11867 jbe short 07 deeh ; 76 1711919 jbe short 07e2dh ; 76 17 11868 11920 push bx ; 53 11869 11921 push 00b19h ; 68 19 0b 11870 11922 push strict byte 00002h ; 6a 02 11871 call 01966h ; e8 869b11923 call 01966h ; e8 47 9b 11872 11924 add sp, strict byte 00006h ; 83 c4 06 11873 11925 xor dx, dx ; 31 d2 11874 11926 mov ax, strict word 00040h ; b8 40 00 11875 call 079 3fh ; e8 54 fb11927 call 0797eh ; e8 54 fb 11876 11928 dec bx ; 4b 11877 jmp short 07 dd3h ; eb e511929 jmp short 07e12h ; eb e5 11878 11930 push 00a49h ; 68 49 0a 11879 11931 push strict byte 00002h ; 6a 02 11880 call 01966h ; e8 709b11932 call 01966h ; e8 31 9b 11881 11933 add sp, strict byte 00004h ; 83 c4 04 11882 11934 mov AL, strict byte 034h ; b0 34 … … 11889 11941 push DS ; 1e 11890 11942 mov ds, ax ; 8e d8 11891 call 0edbfh ; e8 b56f11943 call 0edbfh ; e8 76 6f 11892 11944 pop DS ; 1f 11893 11945 pop bp ; 5d … … 11900 11952 pop bp ; 5d 11901 11953 retn ; c3 11902 scsi_cmd_data_in_: ; 0xf7e 16LB 0xd511954 scsi_cmd_data_in_: ; 0xf7e55 LB 0xd5 11903 11955 push bp ; 55 11904 11956 mov bp, sp ; 89 e5 … … 11916 11968 ; sub ah, ah ; 2a e4 11917 11969 test AL, strict byte 001h ; a8 01 11918 jne short 07e 2ch ; 75 f711970 jne short 07e6bh ; 75 f7 11919 11971 mov al, byte [bp+004h] ; 8a 46 04 11920 11972 cmp AL, strict byte 010h ; 3c 10 11921 jne short 07e 40h ; 75 0411973 jne short 07e7fh ; 75 04 11922 11974 xor ax, ax ; 31 c0 11923 jmp short 07e 42h ; eb 0211975 jmp short 07e81h ; eb 02 11924 11976 xor ah, ah ; 30 e4 11925 11977 mov di, ax ; 89 c7 … … 11929 11981 shr dx, 1 ; d1 ea 11930 11982 rcr ax, 1 ; d1 d8 11931 loop 07e 4ch ; e2 fa11983 loop 07e8bh ; e2 fa 11932 11984 mov cx, ax ; 89 c1 11933 11985 and cx, 000f0h ; 81 e1 f0 00 … … 11947 11999 shr dx, 1 ; d1 ea 11948 12000 rcr ax, 1 ; d1 d8 11949 loop 07e 71h ; e2 fa12001 loop 07eb0h ; e2 fa 11950 12002 mov dx, si ; 89 f2 11951 12003 out DX, AL ; ee … … 11954 12006 xor ah, ah ; 30 e4 11955 12007 cmp cx, ax ; 39 c1 11956 jnc short 07e 93h ; 73 0e12008 jnc short 07ed2h ; 73 0e 11957 12009 les di, [bp-00ah] ; c4 7e f6 11958 12010 add di, cx ; 01 cf … … 11961 12013 out DX, AL ; ee 11962 12014 inc cx ; 41 11963 jmp short 07e 7ch ; eb e912015 jmp short 07ebbh ; eb e9 11964 12016 mov dx, si ; 89 f2 11965 12017 in AL, DX ; ec … … 11967 12019 ; sub ah, ah ; 2a e4 11968 12020 test AL, strict byte 001h ; a8 01 11969 jne short 07e 93h ; 75 f712021 jne short 07ed2h ; 75 f7 11970 12022 test AL, strict byte 002h ; a8 02 11971 je short 07e aeh ; 74 0e12023 je short 07eedh ; 74 0e 11972 12024 lea dx, [si+003h] ; 8d 54 03 11973 12025 xor al, al ; 30 c0 … … 11977 12029 ; sub ah, ah ; 2a e4 11978 12030 mov di, strict word 00004h ; bf 04 00 11979 jmp short 07 ee0h ; eb 3212031 jmp short 07f1fh ; eb 32 11980 12032 lea dx, [si+001h] ; 8d 54 01 11981 12033 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11982 jne short 07e bdh ; 75 0612034 jne short 07efch ; 75 06 11983 12035 cmp bx, 08000h ; 81 fb 00 80 11984 jbe short 07 ed7h ; 76 1a12036 jbe short 07f16h ; 76 1a 11985 12037 mov cx, 08000h ; b9 00 80 11986 12038 les di, [bp+006h] ; c4 7e 06 … … 11991 12043 add ax, 00800h ; 05 00 08 11992 12044 mov word [bp+008h], ax ; 89 46 08 11993 jmp short 07e aeh ; eb d712045 jmp short 07eedh ; eb d7 11994 12046 mov cx, bx ; 89 d9 11995 12047 les di, [bp+006h] ; c4 7e 06 … … 12002 12054 pop bp ; 5d 12003 12055 retn 0000ah ; c2 0a 00 12004 scsi_cmd_data_out_: ; 0xf7 eebLB 0xd512056 scsi_cmd_data_out_: ; 0xf7f2a LB 0xd5 12005 12057 push bp ; 55 12006 12058 mov bp, sp ; 89 e5 … … 12018 12070 ; sub ah, ah ; 2a e4 12019 12071 test AL, strict byte 001h ; a8 01 12020 jne short 07f 01h ; 75 f712072 jne short 07f40h ; 75 f7 12021 12073 mov al, byte [bp+004h] ; 8a 46 04 12022 12074 cmp AL, strict byte 010h ; 3c 10 12023 jne short 07f 15h ; 75 0412075 jne short 07f54h ; 75 04 12024 12076 xor ax, ax ; 31 c0 12025 jmp short 07f 17h ; eb 0212077 jmp short 07f56h ; eb 02 12026 12078 xor ah, ah ; 30 e4 12027 12079 mov si, ax ; 89 c6 … … 12031 12083 shr dx, 1 ; d1 ea 12032 12084 rcr ax, 1 ; d1 d8 12033 loop 07f 21h ; e2 fa12085 loop 07f60h ; e2 fa 12034 12086 mov cx, ax ; 89 c1 12035 12087 and cx, 000f0h ; 81 e1 f0 00 … … 12049 12101 shr dx, 1 ; d1 ea 12050 12102 rcr ax, 1 ; d1 d8 12051 loop 07f 46h ; e2 fa12103 loop 07f85h ; e2 fa 12052 12104 mov dx, di ; 89 fa 12053 12105 out DX, AL ; ee … … 12056 12108 xor ah, ah ; 30 e4 12057 12109 cmp cx, ax ; 39 c1 12058 jnc short 07f 68h ; 73 0e12110 jnc short 07fa7h ; 73 0e 12059 12111 les si, [bp-00ah] ; c4 76 f6 12060 12112 add si, cx ; 01 ce … … 12063 12115 out DX, AL ; ee 12064 12116 inc cx ; 41 12065 jmp short 07f 51h ; eb e912117 jmp short 07f90h ; eb e9 12066 12118 lea dx, [di+001h] ; 8d 55 01 12067 12119 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12068 jne short 07f 77h ; 75 0612120 jne short 07fb6h ; 75 06 12069 12121 cmp bx, 08000h ; 81 fb 00 80 12070 jbe short 07f 92h ; 76 1b12122 jbe short 07fd1h ; 76 1b 12071 12123 mov cx, 08000h ; b9 00 80 12072 12124 les si, [bp+006h] ; c4 76 06 … … 12078 12130 add ax, 00800h ; 05 00 08 12079 12131 mov word [bp+008h], ax ; 89 46 08 12080 jmp short 07f 68h ; eb d612132 jmp short 07fa7h ; eb d6 12081 12133 mov cx, bx ; 89 d9 12082 12134 les si, [bp+006h] ; c4 76 06 … … 12088 12140 ; sub ah, ah ; 2a e4 12089 12141 test AL, strict byte 001h ; a8 01 12090 jne short 07f 9ah ; 75 f712142 jne short 07fd9h ; 75 f7 12091 12143 test AL, strict byte 002h ; a8 02 12092 je short 07f b5h ; 74 0e12144 je short 07ff4h ; 74 0e 12093 12145 lea dx, [di+003h] ; 8d 55 03 12094 12146 xor al, al ; 30 c0 … … 12098 12150 ; sub ah, ah ; 2a e4 12099 12151 mov ax, strict word 00004h ; b8 04 00 12100 jmp short 07f b7h ; eb 0212152 jmp short 07ff6h ; eb 02 12101 12153 xor ax, ax ; 31 c0 12102 12154 lea sp, [bp-004h] ; 8d 66 fc … … 12105 12157 pop bp ; 5d 12106 12158 retn 0000ah ; c2 0a 00 12107 @scsi_read_sectors: ; 0xf7f c0LB 0xe012159 @scsi_read_sectors: ; 0xf7fff LB 0xe0 12108 12160 push bp ; 55 12109 12161 mov bp, sp ; 89 e5 … … 12117 12169 mov byte [bp-006h], al ; 88 46 fa 12118 12170 cmp AL, strict byte 004h ; 3c 04 12119 jbe short 0 7fech ; 76 1112171 jbe short 0802bh ; 76 11 12120 12172 xor ah, ah ; 30 e4 12121 12173 push ax ; 50 … … 12123 12175 push 00b30h ; 68 30 0b 12124 12176 push strict byte 00007h ; 6a 07 12125 call 01966h ; e8 7d9912177 call 01966h ; e8 3e 99 12126 12178 add sp, strict byte 00008h ; 83 c4 08 12127 12179 mov es, [bp+006h] ; 8e 46 06 … … 12163 12215 sal word [bp-00ah], 1 ; d1 66 f6 12164 12216 rcl word [bp-008h], 1 ; d1 56 f8 12165 loop 080 56h ; e2 f812217 loop 08095h ; e2 f8 12166 12218 push word [bp-008h] ; ff 76 f8 12167 12219 push word [bp-00ah] ; ff 76 f6 … … 12172 12224 mov cx, ss ; 8c d1 12173 12225 lea bx, [bp-01ah] ; 8d 5e e6 12174 call 07e 16h ; e8 9e fd12226 call 07e55h ; e8 9e fd 12175 12227 mov ah, al ; 88 c4 12176 12228 test al, al ; 84 c0 12177 jne short 080 93h ; 75 1512229 jne short 080d2h ; 75 15 12178 12230 mov es, [bp+006h] ; 8e 46 06 12179 12231 mov word [es:si+018h], di ; 26 89 7c 18 … … 12189 12241 pop bp ; 5d 12190 12242 retn 00004h ; c2 04 00 12191 @scsi_write_sectors: ; 0xf80 a0LB 0xe012243 @scsi_write_sectors: ; 0xf80df LB 0xe0 12192 12244 push bp ; 55 12193 12245 mov bp, sp ; 89 e5 … … 12201 12253 mov byte [bp-006h], al ; 88 46 fa 12202 12254 cmp AL, strict byte 004h ; 3c 04 12203 jbe short 08 0cch ; 76 1112255 jbe short 0810bh ; 76 11 12204 12256 xor ah, ah ; 30 e4 12205 12257 push ax ; 50 … … 12207 12259 push 00b30h ; 68 30 0b 12208 12260 push strict byte 00007h ; 6a 07 12209 call 01966h ; e8 9d9812261 call 01966h ; e8 5e 98 12210 12262 add sp, strict byte 00008h ; 83 c4 08 12211 12263 mov es, [bp+006h] ; 8e 46 06 … … 12247 12299 sal word [bp-00ah], 1 ; d1 66 f6 12248 12300 rcl word [bp-008h], 1 ; d1 56 f8 12249 loop 081 36h ; e2 f812301 loop 08175h ; e2 f8 12250 12302 push word [bp-008h] ; ff 76 f8 12251 12303 push word [bp-00ah] ; ff 76 f6 … … 12256 12308 mov cx, ss ; 8c d1 12257 12309 lea bx, [bp-01ah] ; 8d 5e e6 12258 call 07 eebh ; e8 93 fd12310 call 07f2ah ; e8 93 fd 12259 12311 mov ah, al ; 88 c4 12260 12312 test al, al ; 84 c0 12261 jne short 081 73h ; 75 1512313 jne short 081b2h ; 75 15 12262 12314 mov es, [bp+006h] ; 8e 46 06 12263 12315 mov word [es:si+018h], di ; 26 89 7c 18 … … 12273 12325 pop bp ; 5d 12274 12326 retn 00004h ; c2 04 00 12275 scsi_cmd_packet_: ; 0xf81 80LB 0x16812327 scsi_cmd_packet_: ; 0xf81bf LB 0x168 12276 12328 push bp ; 55 12277 12329 mov bp, sp ; 89 e5 … … 12285 12337 mov dx, strict word 0000eh ; ba 0e 00 12286 12338 mov ax, strict word 00040h ; b8 40 00 12287 call 0166ch ; e8 d09412339 call 0166ch ; e8 91 94 12288 12340 mov si, 00122h ; be 22 01 12289 12341 mov word [bp-00ah], ax ; 89 46 f6 12290 12342 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12291 jne short 08 1c7h ; 75 1f12292 mov bx, 00da 4h ; bb a40d12343 jne short 08206h ; 75 1f 12344 mov bx, 00da0h ; bb a0 0d 12293 12345 mov cx, ds ; 8c d9 12294 12346 mov ax, strict word 00004h ; b8 04 00 12295 call 01923h ; e8 709712347 call 01923h ; e8 31 97 12296 12348 push 00b62h ; 68 62 0b 12297 12349 push 00b72h ; 68 72 0b 12298 12350 push strict byte 00004h ; 6a 04 12299 call 01966h ; e8 a89712351 call 01966h ; e8 69 97 12300 12352 add sp, strict byte 00006h ; 83 c4 06 12301 12353 mov dx, strict word 00001h ; ba 01 00 12302 jmp near 08 2ddh ; e9 16 0112354 jmp near 0831ch ; e9 16 01 12303 12355 sub di, strict byte 00008h ; 83 ef 08 12304 12356 sal di, 002h ; c1 e7 02 … … 12314 12366 ; sub ah, ah ; 2a e4 12315 12367 test AL, strict byte 001h ; a8 01 12316 jne short 08 1e3h ; 75 f712368 jne short 08222h ; 75 f7 12317 12369 xor ax, ax ; 31 c0 12318 12370 mov dx, word [bp+006h] ; 8b 56 06 … … 12330 12382 shr dx, 1 ; d1 ea 12331 12383 rcr ax, 1 ; d1 d8 12332 loop 082 0eh ; e2 fa12384 loop 0824dh ; e2 fa 12333 12385 and ax, 000f0h ; 25 f0 00 12334 12386 mov cl, byte [bp-006h] ; 8a 4e fa … … 12349 12401 shr dx, 1 ; d1 ea 12350 12402 rcr ax, 1 ; d1 d8 12351 loop 082 36h ; e2 fa12403 loop 08275h ; e2 fa 12352 12404 mov dx, bx ; 89 da 12353 12405 out DX, AL ; ee … … 12356 12408 xor ah, ah ; 30 e4 12357 12409 cmp cx, ax ; 39 c1 12358 jnc short 082 58h ; 73 0e12410 jnc short 08297h ; 73 0e 12359 12411 les di, [bp-00eh] ; c4 7e f2 12360 12412 add di, cx ; 01 cf … … 12363 12415 out DX, AL ; ee 12364 12416 inc cx ; 41 12365 jmp short 082 41h ; eb e912417 jmp short 08280h ; eb e9 12366 12418 mov dx, bx ; 89 da 12367 12419 in AL, DX ; ec … … 12369 12421 ; sub ah, ah ; 2a e4 12370 12422 test AL, strict byte 001h ; a8 01 12371 jne short 082 58h ; 75 f712423 jne short 08297h ; 75 f7 12372 12424 test AL, strict byte 002h ; a8 02 12373 je short 082 73h ; 74 0e12425 je short 082b2h ; 74 0e 12374 12426 lea dx, [bx+003h] ; 8d 57 03 12375 12427 xor al, al ; 30 c0 … … 12379 12431 ; sub ah, ah ; 2a e4 12380 12432 mov dx, strict word 00003h ; ba 03 00 12381 jmp short 08 2ddh ; eb 6a12433 jmp short 0831ch ; eb 6a 12382 12434 mov ax, word [bp+004h] ; 8b 46 04 12383 12435 test ax, ax ; 85 c0 12384 je short 082 82h ; 74 0812436 je short 082c1h ; 74 08 12385 12437 lea dx, [bx+001h] ; 8d 57 01 12386 12438 mov cx, ax ; 89 c1 12387 12439 in AL, DX ; ec 12388 loop 082 7fh ; e2 fd12440 loop 082beh ; e2 fd 12389 12441 mov ax, word [bp+006h] ; 8b 46 06 12390 12442 mov es, [bp-00ah] ; 8e 46 f6 … … 12394 12446 lea ax, [bx+001h] ; 8d 47 01 12395 12447 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12396 jne short 082 a3h ; 75 0712448 jne short 082e2h ; 75 07 12397 12449 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12398 jbe short 082 c0h ; 76 1d12450 jbe short 082ffh ; 76 1d 12399 12451 mov dx, ax ; 89 c2 12400 12452 mov cx, 08000h ; b9 00 80 … … 12406 12458 add ax, 00800h ; 05 00 08 12407 12459 mov word [bp+00eh], ax ; 89 46 0e 12408 jmp short 082 93h ; eb d312460 jmp short 082d2h ; eb d3 12409 12461 mov dx, ax ; 89 c2 12410 12462 mov cx, word [bp+006h] ; 8b 4e 06 … … 12413 12465 mov es, [bp-00ah] ; 8e 46 f6 12414 12466 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12415 je short 08 2dbh ; 74 0712467 je short 0831ah ; 74 07 12416 12468 mov cx, word [es:si+020h] ; 26 8b 4c 20 12417 12469 in AL, DX ; ec 12418 loop 08 2d8h ; e2 fd12470 loop 08317h ; e2 fd 12419 12471 xor dx, dx ; 31 d2 12420 12472 mov ax, dx ; 89 d0 … … 12424 12476 pop bp ; 5d 12425 12477 retn 0000ch ; c2 0c 00 12426 scsi_enumerate_attached_devices_: ; 0xf8 2e8LB 0x4a612478 scsi_enumerate_attached_devices_: ; 0xf8327 LB 0x4a6 12427 12479 push bp ; 55 12428 12480 mov bp, sp ; 89 e5 … … 12436 12488 mov dx, strict word 0000eh ; ba 0e 00 12437 12489 mov ax, strict word 00040h ; b8 40 00 12438 call 0166ch ; e8 6e9312490 call 0166ch ; e8 2f 93 12439 12491 mov di, 00122h ; bf 22 01 12440 12492 mov word [bp-020h], ax ; 89 46 e0 12441 12493 mov word [bp-022h], strict word 00000h ; c7 46 de 00 00 12442 jmp near 087 0ch ; e9 00 0412494 jmp near 0874bh ; e9 00 04 12443 12495 cmp AL, strict byte 004h ; 3c 04 12444 jc short 083 13h ; 72 0312445 jmp near 087 84h ; e9 71 0412496 jc short 08352h ; 72 03 12497 jmp near 087c3h ; e9 71 04 12446 12498 mov cx, strict word 00010h ; b9 10 00 12447 12499 xor bx, bx ; 31 db 12448 12500 mov dx, ss ; 8c d2 12449 12501 lea ax, [bp-046h] ; 8d 46 ba 12450 call 0a1 00h ; e8 e01d12502 call 0a140h ; e8 e1 1d 12451 12503 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12452 12504 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12463 12515 lea bx, [bp-046h] ; 8d 5e ba 12464 12516 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12465 call 07e 16h ; e8 cd fa12517 call 07e55h ; e8 cd fa 12466 12518 test al, al ; 84 c0 12467 je short 083 5bh ; 74 0e12519 je short 0839ah ; 74 0e 12468 12520 push 00b92h ; 68 92 0b 12469 12521 push 00bcbh ; 68 cb 0b 12470 12522 push strict byte 00007h ; 6a 07 12471 call 01966h ; e8 0e 9612523 call 01966h ; e8 cf 95 12472 12524 add sp, strict byte 00006h ; 83 c4 06 12473 12525 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12501 12553 sal ax, 1 ; d1 e0 12502 12554 rcl dx, 1 ; d1 d2 12503 loop 083 aah ; e2 fa12555 loop 083e9h ; e2 fa 12504 12556 or bx, ax ; 09 c3 12505 12557 or dx, si ; 09 f2 … … 12509 12561 mov word [bp-028h], bx ; 89 5e d8 12510 12562 test dx, dx ; 85 d2 12511 jne short 08 3c9h ; 75 0612563 jne short 08408h ; 75 06 12512 12564 cmp bx, 00200h ; 81 fb 00 02 12513 je short 08 3e9h ; 74 2012514 mov bx, 00da 4h ; bb a40d12565 je short 08428h ; 74 20 12566 mov bx, 00da0h ; bb a0 0d 12515 12567 mov cx, ds ; 8c d9 12516 12568 mov ax, strict word 00004h ; b8 04 00 12517 call 01923h ; e8 4f9512569 call 01923h ; e8 10 95 12518 12570 push dx ; 52 12519 12571 push word [bp-028h] ; ff 76 d8 … … 12521 12573 push 00beah ; 68 ea 0b 12522 12574 push strict byte 00004h ; 6a 04 12523 call 01966h ; e8 839512575 call 01966h ; e8 44 95 12524 12576 add sp, strict byte 0000ah ; 83 c4 0a 12525 jmp near 087 00h ; e9 17 0312577 jmp near 0873fh ; e9 17 03 12526 12578 mov al, byte [bp-00ch] ; 8a 46 f4 12527 12579 cmp AL, strict byte 001h ; 3c 01 12528 jc short 08 3fch ; 72 0c12529 jbe short 084 04h ; 76 1212580 jc short 0843bh ; 72 0c 12581 jbe short 08443h ; 76 12 12530 12582 cmp AL, strict byte 003h ; 3c 03 12531 je short 084 0ch ; 74 1612583 je short 0844bh ; 74 16 12532 12584 cmp AL, strict byte 002h ; 3c 02 12533 je short 084 08h ; 74 0e12534 jmp short 084 55h ; eb 5912585 je short 08447h ; 74 0e 12586 jmp short 08494h ; eb 59 12535 12587 test al, al ; 84 c0 12536 jne short 084 55h ; 75 5512588 jne short 08494h ; 75 55 12537 12589 mov BL, strict byte 090h ; b3 90 12538 jmp short 084 0eh ; eb 0a12590 jmp short 0844dh ; eb 0a 12539 12591 mov BL, strict byte 098h ; b3 98 12540 jmp short 084 0eh ; eb 0612592 jmp short 0844dh ; eb 06 12541 12593 mov BL, strict byte 0a0h ; b3 a0 12542 jmp short 084 0eh ; eb 0212594 jmp short 0844dh ; eb 02 12543 12595 mov BL, strict byte 0a8h ; b3 a8 12544 12596 mov cl, bl ; 88 d9 … … 12546 12598 xor ch, ch ; 30 ed 12547 12599 mov ax, cx ; 89 c8 12548 call 016ach ; e8 929212600 call 016ach ; e8 53 92 12549 12601 test al, al ; 84 c0 12550 je short 084 55h ; 74 3712602 je short 08494h ; 74 37 12551 12603 mov al, bl ; 88 d8 12552 12604 db 0feh, 0c0h 12553 12605 ; inc al ; fe c0 12554 12606 xor ah, ah ; 30 e4 12555 call 016ach ; e8 859212607 call 016ach ; e8 46 92 12556 12608 xor ah, ah ; 30 e4 12557 12609 mov dx, ax ; 89 c2 12558 12610 sal dx, 008h ; c1 e2 08 12559 12611 mov al, bl ; 88 d8 12560 call 016ach ; e8 799212612 call 016ach ; e8 3a 92 12561 12613 xor ah, ah ; 30 e4 12562 12614 add ax, dx ; 01 d0 … … 12566 12618 add AL, strict byte 002h ; 04 02 12567 12619 xor ah, ah ; 30 e4 12568 call 016ach ; e8 699212620 call 016ach ; e8 2a 92 12569 12621 xor ah, ah ; 30 e4 12570 12622 mov word [bp-018h], ax ; 89 46 e8 12571 12623 mov ax, cx ; 89 c8 12572 call 016ach ; e8 5f9212624 call 016ach ; e8 20 92 12573 12625 xor ah, ah ; 30 e4 12574 12626 mov word [bp-026h], ax ; 89 46 da 12575 jmp near 085 43h ; e9 ee 0012627 jmp near 08582h ; e9 ee 00 12576 12628 mov ax, word [bp-012h] ; 8b 46 ee 12577 12629 mov bx, word [bp-010h] ; 8b 5e f0 … … 12579 12631 mov dx, word [bp-014h] ; 8b 56 ec 12580 12632 mov si, strict word 0000ch ; be 0c 00 12581 call 0a 0e0h ; e8 791c12633 call 0a120h ; e8 7a 1c 12582 12634 mov word [bp-02ah], ax ; 89 46 d6 12583 12635 mov word [bp-016h], bx ; 89 5e ea … … 12586 12638 mov ax, word [bp-012h] ; 8b 46 ee 12587 12639 test ax, ax ; 85 c0 12588 jnbe short 084 8fh ; 77 1512589 je short 084 7fh ; 74 0312590 jmp near 085 04h ; e9 85 0012640 jnbe short 084ceh ; 77 15 12641 je short 084beh ; 74 03 12642 jmp near 08543h ; e9 85 00 12591 12643 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12592 jnbe short 084 8fh ; 77 0a12593 jne short 084 7ch ; 75 f512644 jnbe short 084ceh ; 77 0a 12645 jne short 084bbh ; 75 f5 12594 12646 cmp word [bp-01ch], strict byte 00040h ; 83 7e e4 40 12595 jnbe short 084 8fh ; 77 0212596 jne short 085 04h ; 75 7512647 jnbe short 084ceh ; 77 02 12648 jne short 08543h ; 75 75 12597 12649 mov word [bp-018h], 000ffh ; c7 46 e8 ff 00 12598 12650 mov word [bp-026h], strict word 0003fh ; c7 46 da 3f 00 … … 12601 12653 mov dx, word [bp-014h] ; 8b 56 ec 12602 12654 mov si, strict word 00006h ; be 06 00 12603 call 0a 0e0h ; e8 381c12655 call 0a120h ; e8 39 1c 12604 12656 mov si, word [bp-01eh] ; 8b 76 e2 12605 12657 add si, dx ; 01 d6 … … 12619 12671 mov dx, si ; 89 f2 12620 12672 mov si, strict word 00008h ; be 08 00 12621 call 0a 0e0h ; e8 081c12673 call 0a120h ; e8 09 1c 12622 12674 mov word [bp-02eh], bx ; 89 5e d2 12623 12675 mov word [bp-030h], cx ; 89 4e d0 … … 12628 12680 mov dx, word [bp-036h] ; 8b 56 ca 12629 12681 mov si, strict word 00010h ; be 10 00 12630 call 0a 0e0h ; e8 ed1b12682 call 0a120h ; e8 ee 1b 12631 12683 mov si, word [bp-032h] ; 8b 76 ce 12632 12684 add si, dx ; 01 d6 … … 12635 12687 mov ax, word [bp-02eh] ; 8b 46 d2 12636 12688 adc ax, bx ; 11 d8 12637 jmp short 085 43h ; eb 3f12689 jmp short 08582h ; eb 3f 12638 12690 test ax, ax ; 85 c0 12639 jnbe short 085 1ah ; 77 1212640 jne short 085 26h ; 75 1c12691 jnbe short 08559h ; 77 12 12692 jne short 08565h ; 75 1c 12641 12693 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12642 jnbe short 085 1ah ; 77 0a12643 jne short 085 26h ; 75 1412694 jnbe short 08559h ; 77 0a 12695 jne short 08565h ; 75 14 12644 12696 cmp word [bp-01ch], strict byte 00020h ; 83 7e e4 20 12645 jnbe short 085 1ah ; 77 0212646 jne short 085 26h ; 75 0c12697 jnbe short 08559h ; 77 02 12698 jne short 08565h ; 75 0c 12647 12699 mov word [bp-018h], 00080h ; c7 46 e8 80 00 12648 12700 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 12649 jmp short 085 3fh ; eb 1912701 jmp short 0857eh ; eb 19 12650 12702 mov word [bp-018h], strict word 00040h ; c7 46 e8 40 00 12651 12703 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 … … 12654 12706 mov dx, word [bp-014h] ; 8b 56 ec 12655 12707 mov si, strict word 0000bh ; be 0b 00 12656 call 0a 0e0h ; e8 a11b12708 call 0a120h ; e8 a2 1b 12657 12709 mov si, dx ; 89 d6 12658 12710 mov dx, cx ; 89 ca … … 12689 12741 mov word [es:bx+034h], ax ; 26 89 47 34 12690 12742 test dx, dx ; 85 d2 12691 jne short 085 b5h ; 75 0612743 jne short 085f4h ; 75 06 12692 12744 cmp si, 00400h ; 81 fe 00 04 12693 jbe short 08 5c3h ; 76 0e12745 jbe short 08602h ; 76 0e 12694 12746 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12695 12747 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12696 jmp short 08 5cbh ; eb 0812748 jmp short 0860ah ; eb 08 12697 12749 mov word [es:bx+02ch], si ; 26 89 77 2c 12698 12750 mov word [es:bx+032h], si ; 26 89 77 32 12699 mov bx, 00da 4h ; bb a40d12751 mov bx, 00da0h ; bb a0 0d 12700 12752 mov cx, ds ; 8c d9 12701 12753 mov ax, strict word 00004h ; b8 04 00 12702 call 01923h ; e8 4d9312754 call 01923h ; e8 0e 93 12703 12755 push word [bp-012h] ; ff 76 ee 12704 12756 push word [bp-010h] ; ff 76 f0 … … 12715 12767 push 00c18h ; 68 18 0c 12716 12768 push strict byte 00004h ; 6a 04 12717 call 01966h ; e8 6b9312769 call 01966h ; e8 2c 93 12718 12770 add sp, strict byte 00018h ; 83 c4 18 12719 12771 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12743 12795 mov dx, strict word 00075h ; ba 75 00 12744 12796 mov ax, strict word 00040h ; b8 40 00 12745 call 01650h ; e8 01 9012797 call 01650h ; e8 c2 8f 12746 12798 mov bl, al ; 88 c3 12747 12799 db 0feh, 0c3h … … 12750 12802 mov dx, strict word 00075h ; ba 75 00 12751 12803 mov ax, strict word 00040h ; b8 40 00 12752 call 0165eh ; e8 00 9012804 call 0165eh ; e8 c1 8f 12753 12805 inc byte [bp-00ch] ; fe 46 f4 12754 jmp near 08 6f5h ; e9 91 0012755 mov bx, 00da 4h ; bb a40d12806 jmp near 08734h ; e9 91 00 12807 mov bx, 00da0h ; bb a0 0d 12756 12808 mov cx, ds ; 8c d9 12757 12809 mov ax, strict word 00004h ; b8 04 00 12758 call 01923h ; e8 b49212810 call 01923h ; e8 75 92 12759 12811 push word [bp-022h] ; ff 76 de 12760 12812 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12763 12815 push 00c46h ; 68 46 0c 12764 12816 push strict byte 00004h ; 6a 04 12765 call 01966h ; e8 e69212817 call 01966h ; e8 a7 92 12766 12818 add sp, strict byte 00008h ; 83 c4 08 12767 12819 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12769 12821 mov byte [bp-00eh], al ; 88 46 f2 12770 12822 test byte [bp-00245h], 080h ; f6 86 bb fd 80 12771 je short 086 97h ; 74 0512823 je short 086d6h ; 74 05 12772 12824 mov dx, strict word 00001h ; ba 01 00 12773 jmp short 086 99h ; eb 0212825 jmp short 086d8h ; eb 02 12774 12826 xor dx, dx ; 31 d2 12775 12827 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12807 12859 inc word [bp-022h] ; ff 46 de 12808 12860 cmp word [bp-022h], strict byte 00010h ; 83 7e de 10 12809 jl short 087 0ch ; 7c 0312810 jmp near 087 84h ; e9 78 0012861 jl short 0874bh ; 7c 03 12862 jmp near 087c3h ; e9 78 00 12811 12863 mov byte [bp-046h], 012h ; c6 46 ba 12 12812 12864 xor al, al ; 30 c0 … … 12827 12879 lea bx, [bp-046h] ; 8d 5e ba 12828 12880 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12829 call 07e 16h ; e8 d7 f612881 call 07e55h ; e8 d7 f6 12830 12882 test al, al ; 84 c0 12831 je short 087 51h ; 74 0e12883 je short 08790h ; 74 0e 12832 12884 push 00b92h ; 68 92 0b 12833 12885 push 00bb2h ; 68 b2 0b 12834 12886 push strict byte 00007h ; 6a 07 12835 call 01966h ; e8 18 9212887 call 01966h ; e8 d9 91 12836 12888 add sp, strict byte 00006h ; 83 c4 06 12837 12889 mov es, [bp-020h] ; 8e 46 e0 … … 12839 12891 mov byte [bp-00ch], al ; 88 46 f4 12840 12892 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12841 jne short 087 6dh ; 75 0a12893 jne short 087ach ; 75 0a 12842 12894 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12843 jne short 087 6dh ; 75 0312844 jmp near 083 0ch ; e9 9f fb12895 jne short 087ach ; 75 03 12896 jmp near 0834bh ; e9 9f fb 12845 12897 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12846 jne short 08 6f5h ; 75 8112898 jne short 08734h ; 75 81 12847 12899 mov al, byte [bp-00246h] ; 8a 86 ba fd 12848 12900 and AL, strict byte 01fh ; 24 1f 12849 12901 cmp AL, strict byte 005h ; 3c 05 12850 jne short 087 81h ; 75 0312851 jmp near 086 64h ; e9 e3 fe12852 jmp near 08 6f5h ; e9 71 ff12902 jne short 087c0h ; 75 03 12903 jmp near 086a3h ; e9 e3 fe 12904 jmp near 08734h ; e9 71 ff 12853 12905 lea sp, [bp-00ah] ; 8d 66 f6 12854 12906 pop di ; 5f … … 12859 12911 pop bp ; 5d 12860 12912 retn ; c3 12861 scsi_pci_init_: ; 0xf87 8eLB 0x2a12913 scsi_pci_init_: ; 0xf87cd LB 0x2a 12862 12914 push bp ; 55 12863 12915 mov bp, sp ; 89 e5 12864 12916 push bx ; 53 12865 12917 push cx ; 51 12866 call 09e b5h ; e8 1f 1712918 call 09ef4h ; e8 1f 17 12867 12919 mov bx, ax ; 89 c3 12868 12920 cmp ax, strict word 0ffffh ; 3d ff ff 12869 je short 087 b1h ; 74 1412921 je short 087f0h ; 74 14 12870 12922 mov dl, bl ; 88 da 12871 12923 xor dh, dh ; 30 f6 … … 12875 12927 mov cx, strict word 00007h ; b9 07 00 12876 12928 mov bx, strict word 00004h ; bb 04 00 12877 call 09f 7eh ; e8 cd 1712929 call 09fbdh ; e8 cd 17 12878 12930 lea sp, [bp-004h] ; 8d 66 fc 12879 12931 pop cx ; 59 … … 12881 12933 pop bp ; 5d 12882 12934 retn ; c3 12883 _scsi_init: ; 0xf87 b8LB 0x8112935 _scsi_init: ; 0xf87f7 LB 0x81 12884 12936 push bp ; 55 12885 12937 mov bp, sp ; 89 e5 12886 12938 mov dx, strict word 0000eh ; ba 0e 00 12887 12939 mov ax, strict word 00040h ; b8 40 00 12888 call 0166ch ; e8 a88e12940 call 0166ch ; e8 69 8e 12889 12941 mov bx, 00122h ; bb 22 01 12890 12942 mov es, ax ; 8e c0 … … 12897 12949 ; sub ah, ah ; 2a e4 12898 12950 cmp AL, strict byte 055h ; 3c 55 12899 jne short 08 7f1h ; 75 1512951 jne short 08830h ; 75 15 12900 12952 xor al, al ; 30 c0 12901 12953 mov dx, 00433h ; ba 33 04 12902 12954 out DX, AL ; ee 12903 12955 mov ax, 00430h ; b8 30 04 12904 call 08 2e8h ; e8 00 fb12956 call 08327h ; e8 00 fb 12905 12957 mov dx, 01040h ; ba 40 10 12906 12958 mov ax, 0104bh ; b8 4b 10 12907 call 087 8eh ; e8 9d ff12959 call 087cdh ; e8 9d ff 12908 12960 mov AL, strict byte 055h ; b0 55 12909 12961 mov dx, 00436h ; ba 36 04 … … 12913 12965 ; sub ah, ah ; 2a e4 12914 12966 cmp AL, strict byte 055h ; 3c 55 12915 jne short 088 13h ; 75 1512967 jne short 08852h ; 75 15 12916 12968 xor al, al ; 30 c0 12917 12969 mov dx, 00437h ; ba 37 04 12918 12970 out DX, AL ; ee 12919 12971 mov ax, 00434h ; b8 34 04 12920 call 08 2e8h ; e8 de fa12972 call 08327h ; e8 de fa 12921 12973 mov dx, strict word 00030h ; ba 30 00 12922 12974 mov ax, 01000h ; b8 00 10 12923 call 087 8eh ; e8 7b ff12975 call 087cdh ; e8 7b ff 12924 12976 mov AL, strict byte 055h ; b0 55 12925 12977 mov dx, 0043ah ; ba 3a 04 … … 12929 12981 ; sub ah, ah ; 2a e4 12930 12982 cmp AL, strict byte 055h ; 3c 55 12931 jne short 088 35h ; 75 1512983 jne short 08874h ; 75 15 12932 12984 xor al, al ; 30 c0 12933 12985 mov dx, 0043bh ; ba 3b 04 12934 12986 out DX, AL ; ee 12935 12987 mov ax, 00438h ; b8 38 04 12936 call 08 2e8h ; e8 bc fa12988 call 08327h ; e8 bc fa 12937 12989 mov dx, strict word 00054h ; ba 54 00 12938 12990 mov ax, 01000h ; b8 00 10 12939 call 087 8eh ; e8 59 ff12991 call 087cdh ; e8 59 ff 12940 12992 mov sp, bp ; 89 ec 12941 12993 pop bp ; 5d 12942 12994 retn ; c3 12943 ahci_ctrl_extract_bits_: ; 0xf88 39LB 0x1c12995 ahci_ctrl_extract_bits_: ; 0xf8878 LB 0x1c 12944 12996 push si ; 56 12945 12997 push bp ; 55 … … 12950 13002 mov cl, byte [bp+006h] ; 8a 4e 06 12951 13003 xor ch, ch ; 30 ed 12952 jcxz 088 50h ; e3 0613004 jcxz 0888fh ; e3 06 12953 13005 shr dx, 1 ; d1 ea 12954 13006 rcr ax, 1 ; d1 d8 12955 loop 088 4ah ; e2 fa13007 loop 08889h ; e2 fa 12956 13008 pop bp ; 5d 12957 13009 pop si ; 5e 12958 13010 retn 00002h ; c2 02 00 12959 ahci_addr_to_phys_: ; 0xf88 55LB 0x1e13011 ahci_addr_to_phys_: ; 0xf8894 LB 0x1e 12960 13012 push bx ; 53 12961 13013 push cx ; 51 … … 12968 13020 sal ax, 1 ; d1 e0 12969 13021 rcl dx, 1 ; d1 d2 12970 loop 088 63h ; e2 fa13022 loop 088a2h ; e2 fa 12971 13023 xor cx, cx ; 31 c9 12972 13024 add ax, bx ; 01 d8 … … 12976 13028 pop bx ; 5b 12977 13029 retn ; c3 12978 ahci_port_cmd_sync_: ; 0xf88 73LB 0x15613030 ahci_port_cmd_sync_: ; 0xf88b2 LB 0x156 12979 13031 push bp ; 55 12980 13032 mov bp, sp ; 89 e5 … … 12991 13043 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12992 13044 cmp AL, strict byte 0ffh ; 3c ff 12993 jne short 088 96h ; 75 0312994 jmp near 08 9c1h ; e9 2b 0113045 jne short 088d5h ; 75 03 13046 jmp near 08a00h ; e9 2b 01 12995 13047 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12996 13048 xor ah, ah ; 30 e4 … … 13005 13057 lea ax, [si+00080h] ; 8d 84 80 00 13006 13058 mov dx, cx ; 89 ca 13007 call 088 55h ; e8 92 ff13059 call 08894h ; e8 92 ff 13008 13060 mov es, cx ; 8e c1 13009 13061 mov word [es:si+008h], ax ; 26 89 44 08 … … 13071 13123 xchg dx, ax ; 92 13072 13124 test dh, 040h ; f6 c6 40 13073 jne short 089 54h ; 75 0413125 jne short 08993h ; 75 04 13074 13126 test AL, strict byte 001h ; a8 01 13075 je short 089 58h ; 74 0413127 je short 08997h ; 74 04 13076 13128 mov AL, strict byte 001h ; b0 01 13077 jmp short 089 5ah ; eb 0213129 jmp short 08999h ; eb 02 13078 13130 xor al, al ; 30 c0 13079 13131 test al, al ; 84 c0 13080 je short 089 27h ; 74 c913132 je short 08966h ; 74 c9 13081 13133 mov al, byte [bp-008h] ; 8a 46 f8 13082 13134 xor ah, ah ; 30 e4 … … 13134 13186 pop bp ; 5d 13135 13187 retn ; c3 13136 ahci_cmd_data_: ; 0xf8 9c9LB 0x26713188 ahci_cmd_data_: ; 0xf8a08 LB 0x267 13137 13189 push bp ; 55 13138 13190 mov bp, sp ; 89 e5 … … 13159 13211 mov ax, 00080h ; b8 80 00 13160 13212 mov dx, word [bp-00ah] ; 8b 56 f6 13161 call 0a1 00h ; e8 f91613213 call 0a140h ; e8 fa 16 13162 13214 mov es, [bp-00ah] ; 8e 46 f6 13163 13215 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13177 13229 mov dx, word [es:si] ; 26 8b 14 13178 13230 mov si, strict word 00008h ; be 08 00 13179 call 0a 0e0h ; e8 951613231 call 0a120h ; e8 96 16 13180 13232 mov es, [bp-00ah] ; 8e 46 f6 13181 13233 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13188 13240 mov dx, word [es:si] ; 26 8b 14 13189 13241 mov si, strict word 00010h ; be 10 00 13190 call 0a 0e0h ; e8 6f1613242 call 0a120h ; e8 70 16 13191 13243 mov es, [bp-00ah] ; 8e 46 f6 13192 13244 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13200 13252 mov dx, word [es:si] ; 26 8b 14 13201 13253 mov si, strict word 00018h ; be 18 00 13202 call 0a 0e0h ; e8 431613254 call 0a120h ; e8 44 16 13203 13255 mov es, [bp-00ah] ; 8e 46 f6 13204 13256 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13211 13263 mov dx, word [es:si] ; 26 8b 14 13212 13264 mov si, strict word 00020h ; be 20 00 13213 call 0a 0e0h ; e8 1d1613265 call 0a120h ; e8 1e 16 13214 13266 mov es, [bp-00ah] ; 8e 46 f6 13215 13267 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13222 13274 mov dx, word [es:si] ; 26 8b 14 13223 13275 mov si, strict word 00028h ; be 28 00 13224 call 0a 0e0h ; e8 f71513276 call 0a120h ; e8 f8 15 13225 13277 mov es, [bp-00ah] ; 8e 46 f6 13226 13278 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13236 13288 mov bx, word [bp-010h] ; 8b 5e f0 13237 13289 xor cx, cx ; 31 c9 13238 call 0a0 90h ; e8 721513290 call 0a0d0h ; e8 73 15 13239 13291 push dx ; 52 13240 13292 push ax ; 50 … … 13246 13298 mov ax, 0026ah ; b8 6a 02 13247 13299 mov dx, word [bp-00ah] ; 8b 56 f6 13248 call 0 9fdeh ; e8 a4 1413300 call 0a01dh ; e8 a4 14 13249 13301 mov es, [bp-00ah] ; 8e 46 f6 13250 13302 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13269 13321 mov ax, word [es:bx+020h] ; 26 8b 47 20 13270 13322 test ax, ax ; 85 c0 13271 je short 08 bcch ; 74 3b13323 je short 08c0bh ; 74 3b 13272 13324 dec ax ; 48 13273 13325 mov es, [bp-00ah] ; 8e 46 f6 … … 13287 13339 mov al, byte [bp-008h] ; 8a 46 f8 13288 13340 cmp AL, strict byte 035h ; 3c 35 13289 jne short 08 bd9h ; 75 0613341 jne short 08c18h ; 75 06 13290 13342 mov byte [bp-008h], 040h ; c6 46 f8 40 13291 jmp short 08 bf0h ; eb 1713343 jmp short 08c2fh ; eb 17 13292 13344 cmp AL, strict byte 0a0h ; 3c a0 13293 jne short 08 bech ; 75 0f13345 jne short 08c2bh ; 75 0f 13294 13346 or byte [bp-008h], 020h ; 80 4e f8 20 13295 13347 les bx, [bp-00eh] ; c4 5e f2 13296 13348 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13297 jmp short 08 bf0h ; eb 0413349 jmp short 08c2fh ; eb 04 13298 13350 mov byte [bp-008h], 000h ; c6 46 f8 00 13299 13351 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13302 13354 mov ax, word [bp-00eh] ; 8b 46 f2 13303 13355 mov dx, word [bp-00ch] ; 8b 56 f4 13304 call 088 73h ; e8 71 fc13356 call 088b2h ; e8 71 fc 13305 13357 mov cx, word [bp-00ch] ; 8b 4e f4 13306 13358 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13309 13361 add ax, 0026ah ; 05 6a 02 13310 13362 mov dx, cx ; 89 ca 13311 call 0a0 55h ; e8 3e 1413363 call 0a094h ; e8 3e 14 13312 13364 mov es, cx ; 8e c1 13313 13365 mov al, byte [es:bx+003h] ; 26 8a 47 03 13314 13366 test al, al ; 84 c0 13315 je short 08c 26h ; 74 0513367 je short 08c65h ; 74 05 13316 13368 mov ax, strict word 00004h ; b8 04 00 13317 jmp short 08c 28h ; eb 0213369 jmp short 08c67h ; eb 02 13318 13370 xor ah, ah ; 30 e4 13319 13371 lea sp, [bp-006h] ; 8d 66 fa … … 13323 13375 pop bp ; 5d 13324 13376 retn ; c3 13325 ahci_port_deinit_current_: ; 0xf8c 30LB 0x18013377 ahci_port_deinit_current_: ; 0xf8c6f LB 0x180 13326 13378 push bp ; 55 13327 13379 mov bp, sp ; 89 e5 … … 13338 13390 mov byte [bp-00ah], al ; 88 46 f6 13339 13391 cmp AL, strict byte 0ffh ; 3c ff 13340 je short 08c b1h ; 74 5f13392 je short 08cf0h ; 74 5f 13341 13393 xor ah, ah ; 30 e4 13342 13394 sal ax, 007h ; c1 e0 07 … … 13382 13434 xchg dx, ax ; 92 13383 13435 test ax, 0c011h ; a9 11 c0 13384 je short 08c b4h ; 74 0713436 je short 08cf3h ; 74 07 13385 13437 mov AL, strict byte 001h ; b0 01 13386 jmp short 08c b6h ; eb 0513387 jmp near 08d a7h ; e9 f3 0013438 jmp short 08cf5h ; eb 05 13439 jmp near 08de6h ; e9 f3 00 13388 13440 xor al, al ; 30 c0 13389 13441 cmp AL, strict byte 001h ; 3c 01 13390 je short 08c 84h ; 74 ca13442 je short 08cc3h ; 74 ca 13391 13443 mov cx, strict word 00020h ; b9 20 00 13392 13444 xor bx, bx ; 31 db 13393 13445 mov ax, di ; 89 f8 13394 13446 mov dx, word [bp-00eh] ; 8b 56 f2 13395 call 0a1 00h ; e8 391413447 call 0a140h ; e8 3a 14 13396 13448 lea ax, [di+00080h] ; 8d 85 80 00 13397 13449 mov cx, strict word 00040h ; b9 40 00 13398 13450 xor bx, bx ; 31 db 13399 13451 mov dx, word [bp-00eh] ; 8b 56 f2 13400 call 0a1 00h ; e8 2a1413452 call 0a140h ; e8 2b 14 13401 13453 lea ax, [di+00200h] ; 8d 85 00 02 13402 13454 mov cx, strict word 00060h ; b9 60 00 13403 13455 xor bx, bx ; 31 db 13404 13456 mov dx, word [bp-00eh] ; 8b 56 f2 13405 call 0a1 00h ; e8 1b1413457 call 0a140h ; e8 1c 14 13406 13458 mov al, byte [bp-00ah] ; 8a 46 f6 13407 13459 xor ah, ah ; 30 e4 … … 13508 13560 pop bp ; 5d 13509 13561 retn ; c3 13510 ahci_port_init_: ; 0xf8d b0LB 0x24d13562 ahci_port_init_: ; 0xf8def LB 0x24d 13511 13563 push bp ; 55 13512 13564 mov bp, sp ; 89 e5 … … 13518 13570 mov word [bp-00ah], dx ; 89 56 f6 13519 13571 mov byte [bp-008h], bl ; 88 5e f8 13520 call 08c 30h ; e8 6c fe13572 call 08c6fh ; e8 6c fe 13521 13573 mov al, bl ; 88 d8 13522 13574 xor ah, ah ; 30 e4 … … 13567 13619 xchg dx, ax ; 92 13568 13620 test ax, 0c011h ; a9 11 c0 13569 je short 08e 35h ; 74 0413621 je short 08e74h ; 74 04 13570 13622 mov AL, strict byte 001h ; b0 01 13571 jmp short 08e 37h ; eb 0213623 jmp short 08e76h ; eb 02 13572 13624 xor al, al ; 30 c0 13573 13625 cmp AL, strict byte 001h ; 3c 01 13574 je short 08e 00h ; 74 c513626 je short 08e3fh ; 74 c5 13575 13627 mov cx, strict word 00020h ; b9 20 00 13576 13628 xor bx, bx ; 31 db 13577 13629 mov ax, si ; 89 f0 13578 13630 mov dx, word [bp-00ah] ; 8b 56 f6 13579 call 0a1 00h ; e8 b81213631 call 0a140h ; e8 b9 12 13580 13632 lea ax, [si+00080h] ; 8d 84 80 00 13581 13633 mov cx, strict word 00040h ; b9 40 00 13582 13634 xor bx, bx ; 31 db 13583 13635 mov dx, word [bp-00ah] ; 8b 56 f6 13584 call 0a1 00h ; e8 a91213636 call 0a140h ; e8 aa 12 13585 13637 lea di, [si+00200h] ; 8d bc 00 02 13586 13638 mov cx, strict word 00060h ; b9 60 00 … … 13588 13640 mov ax, di ; 89 f8 13589 13641 mov dx, word [bp-00ah] ; 8b 56 f6 13590 call 0a1 00h ; e8 981213642 call 0a140h ; e8 99 12 13591 13643 mov bl, byte [bp-008h] ; 8a 5e f8 13592 13644 xor bh, bh ; 30 ff … … 13606 13658 mov ax, di ; 89 f8 13607 13659 mov dx, word [bp-00ah] ; 8b 56 f6 13608 call 088 55h ; e8 bf f913660 call 08894h ; e8 bf f9 13609 13661 mov es, [bp-00ah] ; 8e 46 f6 13610 13662 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13651 13703 mov ax, si ; 89 f0 13652 13704 mov dx, word [bp-00ah] ; 8b 56 f6 13653 call 088 55h ; e8 53 f913705 call 08894h ; e8 53 f9 13654 13706 mov es, [bp-00ah] ; 8e 46 f6 13655 13707 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13756 13808 pop bp ; 5d 13757 13809 retn ; c3 13758 @ahci_read_sectors: ; 0xf 8ffdLB 0xa813810 @ahci_read_sectors: ; 0xf903c LB 0xa8 13759 13811 push bp ; 55 13760 13812 mov bp, sp ; 89 e5 … … 13767 13819 sub bx, strict byte 0000ch ; 83 eb 0c 13768 13820 cmp bx, strict byte 00004h ; 83 fb 04 13769 jbe short 090 23h ; 76 0f13821 jbe short 09062h ; 76 0f 13770 13822 push bx ; 53 13771 13823 push 00c62h ; 68 62 0c 13772 13824 push 00c74h ; 68 74 0c 13773 13825 push strict byte 00007h ; 6a 07 13774 call 01966h ; e8 468913826 call 01966h ; e8 07 89 13775 13827 add sp, strict byte 00008h ; 83 c4 08 13776 13828 xor di, di ; 31 ff … … 13787 13839 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13788 13840 xor ax, ax ; 31 c0 13789 call 08d b0h ; e8 60 fd13841 call 08defh ; e8 60 fd 13790 13842 mov bx, strict word 00025h ; bb 25 00 13791 13843 mov ax, si ; 89 f0 13792 13844 mov dx, word [bp+006h] ; 8b 56 06 13793 call 08 9c9h ; e8 6e f913845 call 08a08h ; e8 6e f9 13794 13846 mov word [bp-006h], ax ; 89 46 fa 13795 13847 mov es, [bp+006h] ; 8e 46 06 … … 13820 13872 pop bp ; 5d 13821 13873 retn 00004h ; c2 04 00 13822 @ahci_write_sectors: ; 0xf90 a5LB 0x8613874 @ahci_write_sectors: ; 0xf90e4 LB 0x86 13823 13875 push bp ; 55 13824 13876 mov bp, sp ; 89 e5 … … 13832 13884 sub dx, strict byte 0000ch ; 83 ea 0c 13833 13885 cmp dx, strict byte 00004h ; 83 fa 04 13834 jbe short 09 0cfh ; 76 0f13886 jbe short 0910eh ; 76 0f 13835 13887 push dx ; 52 13836 13888 push 00c93h ; 68 93 0c 13837 13889 push 00c74h ; 68 74 0c 13838 13890 push strict byte 00007h ; 6a 07 13839 call 01966h ; e8 9a8813891 call 01966h ; e8 5b 88 13840 13892 add sp, strict byte 00008h ; 83 c4 08 13841 13893 xor bx, bx ; 31 db … … 13852 13904 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13853 13905 xor ax, ax ; 31 c0 13854 call 08d b0h ; e8 b6 fc13906 call 08defh ; e8 b6 fc 13855 13907 mov bx, strict word 00035h ; bb 35 00 13856 13908 mov ax, si ; 89 f0 13857 13909 mov dx, cx ; 89 ca 13858 call 08 9c9h ; e8 c5 f813910 call 08a08h ; e8 c5 f8 13859 13911 mov dx, ax ; 89 c2 13860 13912 mov es, cx ; 8e c1 … … 13871 13923 pop bp ; 5d 13872 13924 retn 00004h ; c2 04 00 13873 ahci_cmd_packet_: ; 0xf91 2bLB 0x18a13925 ahci_cmd_packet_: ; 0xf916a LB 0x18a 13874 13926 push bp ; 55 13875 13927 mov bp, sp ; 89 e5 … … 13883 13935 mov dx, strict word 0000eh ; ba 0e 00 13884 13936 mov ax, strict word 00040h ; b8 40 00 13885 call 0166ch ; e8 26 8513937 call 0166ch ; e8 e7 84 13886 13938 mov si, 00122h ; be 22 01 13887 13939 mov word [bp-008h], ax ; 89 46 f8 13888 13940 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13889 jne short 091 71h ; 75 1f13890 mov bx, 00da 4h ; bb a40d13941 jne short 091b0h ; 75 1f 13942 mov bx, 00da0h ; bb a0 0d 13891 13943 mov cx, ds ; 8c d9 13892 13944 mov ax, strict word 00004h ; b8 04 00 13893 call 01923h ; e8 c68713945 call 01923h ; e8 87 87 13894 13946 push 00ca6h ; 68 a6 0c 13895 13947 push 00cb6h ; 68 b6 0c 13896 13948 push strict byte 00004h ; 6a 04 13897 call 01966h ; e8 fe8713949 call 01966h ; e8 bf 87 13898 13950 add sp, strict byte 00006h ; 83 c4 06 13899 13951 mov ax, strict word 00001h ; b8 01 00 13900 jmp near 092 ach ; e9 3b 0113952 jmp near 092ebh ; e9 3b 01 13901 13953 test byte [bp+004h], 001h ; f6 46 04 01 13902 jne short 091 6bh ; 75 f413954 jne short 091aah ; 75 f4 13903 13955 mov ax, word [bp+006h] ; 8b 46 06 13904 13956 mov dx, word [bp+008h] ; 8b 56 08 … … 13906 13958 sal ax, 1 ; d1 e0 13907 13959 rcl dx, 1 ; d1 d2 13908 loop 091 80h ; e2 fa13960 loop 091bfh ; e2 fa 13909 13961 mov es, [bp-008h] ; 8e 46 f8 13910 13962 mov word [es:si], ax ; 26 89 04 … … 13920 13972 mov dx, word [bp+008h] ; 8b 56 08 13921 13973 xor cx, cx ; 31 c9 13922 call 0a0 b0h ; e8 f70e13974 call 0a0f0h ; e8 f8 0e 13923 13975 mov word [es:si+00eh], ax ; 26 89 44 0e 13924 13976 xor di, di ; 31 ff … … 13939 13991 mov bx, ax ; 89 c3 13940 13992 xor al, al ; 30 c0 13941 call 08d b0h ; e8 b8 fb13993 call 08defh ; e8 b8 fb 13942 13994 mov al, byte [bp-006h] ; 8a 46 fa 13943 13995 xor ah, ah ; 30 e4 … … 13947 13999 mov ax, 000c0h ; b8 c0 00 13948 14000 mov dx, word [bp-00ah] ; 8b 56 f6 13949 call 0a1 10h ; e8 030f14001 call 0a150h ; e8 04 0f 13950 14002 mov es, [bp-008h] ; 8e 46 f8 13951 14003 mov word [es:si+018h], di ; 26 89 7c 18 … … 13954 14006 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13955 14007 test ax, ax ; 85 c0 13956 je short 092 4bh ; 74 2714008 je short 0928ah ; 74 27 13957 14009 dec ax ; 48 13958 14010 mov es, [bp-00ah] ; 8e 46 f6 … … 13967 14019 mov ax, si ; 89 f0 13968 14020 mov dx, word [bp-008h] ; 8b 56 f8 13969 call 08 9c9h ; e8 73 f714021 call 08a08h ; e8 73 f7 13970 14022 les bx, [bp-00eh] ; c4 5e f2 13971 14023 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13994 14046 mov ax, word [es:bx+006h] ; 26 8b 47 06 13995 14047 or ax, word [es:bx+004h] ; 26 0b 47 04 13996 jne short 092 aah ; 75 0514048 jne short 092e9h ; 75 05 13997 14049 mov ax, strict word 00004h ; b8 04 00 13998 jmp short 092 ach ; eb 0214050 jmp short 092ebh ; eb 02 13999 14051 xor ax, ax ; 31 c0 14000 14052 lea sp, [bp-004h] ; 8d 66 fc … … 14003 14055 pop bp ; 5d 14004 14056 retn 0000ch ; c2 0c 00 14005 wait_ticks_device_init_: ; 0xf92 b5LB 0x514057 wait_ticks_device_init_: ; 0xf92f4 LB 0x5 14006 14058 push bp ; 55 14007 14059 mov bp, sp ; 89 e5 14008 14060 pop bp ; 5d 14009 14061 retn ; c3 14010 ahci_port_detect_device_: ; 0xf92 baLB 0x4ee14062 ahci_port_detect_device_: ; 0xf92f9 LB 0x4ee 14011 14063 push bp ; 55 14012 14064 mov bp, sp ; 89 e5 … … 14022 14074 xor ch, ch ; 30 ed 14023 14075 mov bx, cx ; 89 cb 14024 call 08d b0h ; e8 d6 fa14076 call 08defh ; e8 d6 fa 14025 14077 mov dx, strict word 0000eh ; ba 0e 00 14026 14078 mov ax, strict word 00040h ; b8 40 00 14027 call 0166ch ; e8 898314079 call 0166ch ; e8 4a 83 14028 14080 mov word [bp-010h], 00122h ; c7 46 f0 22 01 14029 14081 mov word [bp-016h], ax ; 89 46 ea … … 14084 14136 mov ax, word [es:di+002h] ; 26 8b 45 02 14085 14137 cmp ax, word [bp-024h] ; 3b 46 dc 14086 jc short 093 8ch ; 72 1114138 jc short 093cbh ; 72 11 14087 14139 mov ax, word [es:di+002h] ; 26 8b 45 02 14088 14140 cmp ax, word [bp-024h] ; 3b 46 dc 14089 jne short 09 3d8h ; 75 5414141 jne short 09417h ; 75 54 14090 14142 mov ax, word [es:di] ; 26 8b 05 14091 14143 cmp ax, word [bp-01ah] ; 3b 46 e6 14092 jnc short 09 3d8h ; 73 4c14144 jnc short 09417h ; 73 4c 14093 14145 mov al, byte [bp-00ah] ; 8a 46 f6 14094 14146 xor ah, ah ; 30 e4 … … 14118 14170 mov bx, strict word 0000fh ; bb 0f 00 14119 14171 xor cx, cx ; 31 c9 14120 call 088 39h ; e8 68 f414172 call 08878h ; e8 68 f4 14121 14173 cmp ax, strict word 00003h ; 3d 03 00 14122 jne short 093 6fh ; 75 9914123 jmp short 09 3e1h ; eb 0914174 jne short 093aeh ; 75 99 14175 jmp short 09420h ; eb 09 14124 14176 cmp word [bp-01ch], strict byte 00000h ; 83 7e e4 00 14125 jne short 09 3e1h ; 75 0314126 jmp near 097 a0h ; e9 bf 0314177 jne short 09420h ; 75 03 14178 jmp near 097dfh ; e9 bf 03 14127 14179 push strict byte 00000h ; 6a 00 14128 14180 mov bx, strict word 0000fh ; bb 0f 00 … … 14130 14182 mov ax, word [bp-020h] ; 8b 46 e0 14131 14183 mov dx, word [bp-01eh] ; 8b 56 e2 14132 call 088 39h ; e8 48 f414184 call 08878h ; e8 48 f4 14133 14185 cmp ax, strict word 00003h ; 3d 03 00 14134 jne short 09 3deh ; 75 e814186 jne short 0941dh ; 75 e8 14135 14187 mov al, byte [bp-00ah] ; 8a 46 f6 14136 14188 xor ah, ah ; 30 e4 … … 14163 14215 mov byte [bp-008h], al ; 88 46 f8 14164 14216 cmp AL, strict byte 004h ; 3c 04 14165 jnc short 09 3deh ; 73 9914217 jnc short 0941dh ; 73 99 14166 14218 lea ax, [di+00118h] ; 8d 85 18 01 14167 14219 mov es, [bp-018h] ; 8e 46 e8 … … 14213 14265 mov byte [bp-00eh], dl ; 88 56 f2 14214 14266 test bx, bx ; 85 db 14215 jne short 095 0fh ; 75 5714267 jne short 0954eh ; 75 57 14216 14268 cmp ax, 00101h ; 3d 01 01 14217 jne short 095 0fh ; 75 5214269 jne short 0954eh ; 75 52 14218 14270 mov es, [bp-016h] ; 8e 46 ea 14219 14271 mov bx, word [bp-010h] ; 8b 5e f0 … … 14230 14282 mov ax, word [bp-010h] ; 8b 46 f0 14231 14283 mov dx, es ; 8c c2 14232 call 08 9c9h ; e8 cc f414284 call 08a08h ; e8 cc f4 14233 14285 mov al, byte [bp-00eh] ; 8a 46 f2 14234 14286 mov byte [bp-00ch], al ; 88 46 f4 14235 14287 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14236 je short 095 12h ; 74 0814288 je short 09551h ; 74 08 14237 14289 mov ax, strict word 00001h ; b8 01 00 14238 jmp short 095 14h ; eb 0514239 jmp near 09 6dbh ; e9 c9 0114290 jmp short 09553h ; eb 05 14291 jmp near 0971ah ; e9 c9 01 14240 14292 xor ax, ax ; 31 c0 14241 14293 mov dl, al ; 88 c2 … … 14252 14304 mov word [bp-022h], ax ; 89 46 de 14253 14305 cmp di, 00fffh ; 81 ff ff 0f 14254 jne short 095 5ch ; 75 1b14306 jne short 0959bh ; 75 1b 14255 14307 cmp si, strict byte 0ffffh ; 83 fe ff 14256 jne short 095 5ch ; 75 1614308 jne short 0959bh ; 75 16 14257 14309 mov ax, word [bp-00164h] ; 8b 86 9c fe 14258 14310 mov word [bp-022h], ax ; 89 46 de … … 14291 14343 mov al, byte [bp-008h] ; 8a 46 f8 14292 14344 cmp AL, strict byte 001h ; 3c 01 14293 jc short 09 5d4h ; 72 0c14294 jbe short 09 5dch ; 76 1214345 jc short 09613h ; 72 0c 14346 jbe short 0961bh ; 76 12 14295 14347 cmp AL, strict byte 003h ; 3c 03 14296 je short 09 5e4h ; 74 1614348 je short 09623h ; 74 16 14297 14349 cmp AL, strict byte 002h ; 3c 02 14298 je short 09 5e0h ; 74 0e14299 jmp short 096 30h ; eb 5c14350 je short 0961fh ; 74 0e 14351 jmp short 0966fh ; eb 5c 14300 14352 test al, al ; 84 c0 14301 jne short 096 30h ; 75 5814353 jne short 0966fh ; 75 58 14302 14354 mov BL, strict byte 040h ; b3 40 14303 jmp short 09 5e6h ; eb 0a14355 jmp short 09625h ; eb 0a 14304 14356 mov BL, strict byte 048h ; b3 48 14305 jmp short 09 5e6h ; eb 0614357 jmp short 09625h ; eb 06 14306 14358 mov BL, strict byte 050h ; b3 50 14307 jmp short 09 5e6h ; eb 0214359 jmp short 09625h ; eb 02 14308 14360 mov BL, strict byte 058h ; b3 58 14309 14361 mov dl, bl ; 88 da … … 14311 14363 xor dh, dh ; 30 f6 14312 14364 mov ax, dx ; 89 d0 14313 call 016ach ; e8 ba8014365 call 016ach ; e8 7b 80 14314 14366 test al, al ; 84 c0 14315 je short 096 30h ; 74 3a14367 je short 0966fh ; 74 3a 14316 14368 mov al, bl ; 88 d8 14317 14369 db 0feh, 0c0h 14318 14370 ; inc al ; fe c0 14319 14371 xor ah, ah ; 30 e4 14320 call 016ach ; e8 ad8014372 call 016ach ; e8 6e 80 14321 14373 xor ah, ah ; 30 e4 14322 14374 sal ax, 008h ; c1 e0 08 … … 14324 14376 mov al, bl ; 88 d8 14325 14377 xor ah, ah ; 30 e4 14326 call 016ach ; e8 9e8014378 call 016ach ; e8 5f 80 14327 14379 xor ah, ah ; 30 e4 14328 14380 mov cx, word [bp-02ah] ; 8b 4e d6 … … 14331 14383 mov al, bl ; 88 d8 14332 14384 add AL, strict byte 002h ; 04 02 14333 call 016ach ; e8 8d8014385 call 016ach ; e8 4e 80 14334 14386 xor ah, ah ; 30 e4 14335 14387 mov word [bp-032h], ax ; 89 46 ce 14336 14388 mov ax, dx ; 89 d0 14337 call 016ach ; e8 838014389 call 016ach ; e8 44 80 14338 14390 xor ah, ah ; 30 e4 14339 14391 mov word [bp-02eh], ax ; 89 46 d2 14340 jmp short 096 40h ; eb 1014392 jmp short 0967fh ; eb 10 14341 14393 push word [bp-022h] ; ff 76 de 14342 14394 push word [bp-014h] ; ff 76 ec … … 14345 14397 mov dx, ss ; 8c d2 14346 14398 lea ax, [bp-032h] ; 8d 46 ce 14347 call 05a 02h ; e8 c2 c314348 mov bx, 00da 4h ; bb a40d14399 call 05a41h ; e8 c2 c3 14400 mov bx, 00da0h ; bb a0 0d 14349 14401 mov cx, ds ; 8c d9 14350 14402 mov ax, strict word 00004h ; b8 04 00 14351 call 01923h ; e8 d88214403 call 01923h ; e8 99 82 14352 14404 push word [bp-022h] ; ff 76 de 14353 14405 push word [bp-014h] ; ff 76 ec … … 14370 14422 push 00cd6h ; 68 d6 0c 14371 14423 push strict byte 00004h ; 6a 04 14372 call 01966h ; e8 ec8214424 call 01966h ; e8 ad 82 14373 14425 add sp, strict byte 0001ch ; 83 c4 1c 14374 14426 mov al, byte [bp-00ch] ; 8a 46 f4 … … 14402 14454 mov dx, strict word 00075h ; ba 75 00 14403 14455 mov ax, strict word 00040h ; b8 40 00 14404 call 01650h ; e8 877f14456 call 01650h ; e8 48 7f 14405 14457 mov bl, al ; 88 c3 14406 14458 db 0feh, 0c3h … … 14409 14461 mov dx, strict word 00075h ; ba 75 00 14410 14462 mov ax, strict word 00040h ; b8 40 00 14411 call 0165eh ; e8 867f14412 jmp near 097 8fh ; e9 b4 0014463 call 0165eh ; e8 47 7f 14464 jmp near 097ceh ; e9 b4 00 14413 14465 cmp bx, 0eb14h ; 81 fb 14 eb 14414 jne short 097 38h ; 75 5714466 jne short 09777h ; 75 57 14415 14467 cmp ax, 00101h ; 3d 01 01 14416 jne short 097 38h ; 75 5214468 jne short 09777h ; 75 52 14417 14469 mov es, [bp-016h] ; 8e 46 ea 14418 14470 mov bx, word [bp-010h] ; 8b 5e f0 … … 14429 14481 mov ax, word [bp-010h] ; 8b 46 f0 14430 14482 mov dx, es ; 8c c2 14431 call 08 9c9h ; e8 a3 f214483 call 08a08h ; e8 a3 f2 14432 14484 mov al, byte [bp-00eh] ; 8a 46 f2 14433 14485 mov byte [bp-00ch], al ; 88 46 f4 14434 14486 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14435 je short 097 3ah ; 74 0714487 je short 09779h ; 74 07 14436 14488 mov dx, strict word 00001h ; ba 01 00 14437 jmp short 097 3ch ; eb 0414438 jmp short 097 8fh ; eb 5514489 jmp short 0977bh ; eb 04 14490 jmp short 097ceh ; eb 55 14439 14491 xor dx, dx ; 31 d2 14440 14492 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14475 14527 pop bp ; 5d 14476 14528 retn ; c3 14477 ahci_mem_alloc_: ; 0xf97 a8LB 0x4314529 ahci_mem_alloc_: ; 0xf97e7 LB 0x43 14478 14530 push bp ; 55 14479 14531 mov bp, sp ; 89 e5 … … 14485 14537 mov dx, 00413h ; ba 13 04 14486 14538 xor ax, ax ; 31 c0 14487 call 0166ch ; e8 b47e14539 call 0166ch ; e8 75 7e 14488 14540 test ax, ax ; 85 c0 14489 je short 09 7e1h ; 74 2514541 je short 09820h ; 74 25 14490 14542 dec ax ; 48 14491 14543 mov bx, ax ; 89 c3 … … 14494 14546 sal ax, 1 ; d1 e0 14495 14547 rcl dx, 1 ; d1 d2 14496 loop 09 7c4h ; e2 fa14548 loop 09803h ; e2 fa 14497 14549 mov si, ax ; 89 c6 14498 14550 mov di, dx ; 89 d7 … … 14500 14552 shr di, 1 ; d1 ef 14501 14553 rcr si, 1 ; d1 de 14502 loop 09 7d1h ; e2 fa14554 loop 09810h ; e2 fa 14503 14555 mov dx, 00413h ; ba 13 04 14504 14556 xor ax, ax ; 31 c0 14505 call 0167ah ; e8 9b7e14557 call 0167ah ; e8 5c 7e 14506 14558 mov ax, si ; 89 f0 14507 14559 lea sp, [bp-00ah] ; 8d 66 f6 … … 14513 14565 pop bp ; 5d 14514 14566 retn ; c3 14515 ahci_hba_init_: ; 0xf9 7ebLB 0x16d14567 ahci_hba_init_: ; 0xf982a LB 0x16d 14516 14568 push bp ; 55 14517 14569 mov bp, sp ; 89 e5 … … 14525 14577 mov dx, strict word 0000eh ; ba 0e 00 14526 14578 mov ax, strict word 00040h ; b8 40 00 14527 call 0166ch ; e8 6b7e14579 call 0166ch ; e8 2c 7e 14528 14580 mov bx, 00122h ; bb 22 01 14529 14581 mov di, ax ; 89 c7 … … 14542 14594 shr eax, 010h ; 66 c1 e8 10 14543 14595 xchg dx, ax ; 92 14544 call 097 a8h ; e8 83 ff14596 call 097e7h ; e8 83 ff 14545 14597 mov word [bp-010h], ax ; 89 46 f0 14546 14598 test ax, ax ; 85 c0 14547 jne short 098 2fh ; 75 0314548 jmp near 099 37h ; e9 08 0114599 jne short 0986eh ; 75 03 14600 jmp near 09976h ; e9 08 01 14549 14601 mov ax, word [bp-010h] ; 8b 46 f0 14550 14602 mov es, di ; 8e c7 … … 14596 14648 xchg dx, ax ; 92 14597 14649 test AL, strict byte 001h ; a8 01 14598 jne short 098 89h ; 75 de14650 jne short 098c8h ; 75 de 14599 14651 xor ax, ax ; 31 c0 14600 14652 xor cx, cx ; 31 c9 … … 14614 14666 mov bx, strict word 0001fh ; bb 1f 00 14615 14667 xor cx, cx ; 31 c9 14616 call 088 39h ; e8 6a ef14668 call 08878h ; e8 6a ef 14617 14669 db 0feh, 0c0h 14618 14670 ; inc al ; fe c0 14619 14671 mov byte [bp-00ch], al ; 88 46 f4 14620 14672 mov byte [bp-00eh], 000h ; c6 46 f2 00 14621 jmp short 09 8fbh ; eb 2114673 jmp short 0993ah ; eb 21 14622 14674 xor al, al ; 30 c0 14623 14675 test al, al ; 84 c0 14624 je short 09 8f2h ; 74 1214676 je short 09931h ; 74 12 14625 14677 mov bl, byte [bp-00eh] ; 8a 5e f2 14626 14678 xor bh, bh ; 30 ff 14627 14679 xor ax, ax ; 31 c0 14628 14680 mov dx, word [bp-010h] ; 8b 56 f0 14629 call 092 bah ; e8 cd f914681 call 092f9h ; e8 cd f9 14630 14682 dec byte [bp-00ch] ; fe 4e f4 14631 je short 099 35h ; 74 4314683 je short 09974h ; 74 43 14632 14684 inc byte [bp-00eh] ; fe 46 f2 14633 14685 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14634 jnc short 099 35h ; 73 3a14686 jnc short 09974h ; 73 3a 14635 14687 mov cl, byte [bp-00eh] ; 8a 4e f2 14636 14688 xor ch, ch ; 30 ed 14637 14689 mov bx, strict word 00001h ; bb 01 00 14638 14690 xor di, di ; 31 ff 14639 jcxz 099 0dh ; e3 0614691 jcxz 0994ch ; e3 06 14640 14692 sal bx, 1 ; d1 e3 14641 14693 rcl di, 1 ; d1 d7 14642 loop 099 07h ; e2 fa14694 loop 09946h ; e2 fa 14643 14695 mov ax, strict word 0000ch ; b8 0c 00 14644 14696 xor cx, cx ; 31 c9 … … 14656 14708 xchg dx, ax ; 92 14657 14709 test dx, di ; 85 fa 14658 jne short 099 31h ; 75 0414710 jne short 09970h ; 75 04 14659 14711 test ax, bx ; 85 d8 14660 je short 09 8dah ; 74 a914712 je short 09919h ; 74 a9 14661 14713 mov AL, strict byte 001h ; b0 01 14662 jmp short 09 8dch ; eb a714714 jmp short 0991bh ; eb a7 14663 14715 xor ax, ax ; 31 c0 14664 14716 lea sp, [bp-00ah] ; 8d 66 f6 … … 14670 14722 pop bp ; 5d 14671 14723 retn ; c3 14672 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 41h, 09ah, 01fh, 09ah, 025h, 09ah, 02bh, 09ah, 031h14673 db 09ah, 0 37h, 09ah, 03dh, 09ah, 041h, 09ah14674 _ahci_init: ; 0xf99 58LB 0x13a14724 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 080h, 09ah, 05eh, 09ah, 064h, 09ah, 06ah, 09ah, 070h 14725 db 09ah, 076h, 09ah, 07ch, 09ah, 080h, 09ah 14726 _ahci_init: ; 0xf9997 LB 0x13a 14675 14727 push bp ; 55 14676 14728 mov bp, sp ; 89 e5 … … 14680 14732 mov ax, 00601h ; b8 01 06 14681 14733 mov dx, strict word 00001h ; ba 01 00 14682 call 09e adh ; e8 44 0514734 call 09eech ; e8 44 05 14683 14735 mov dx, ax ; 89 c2 14684 14736 cmp ax, strict word 0ffffh ; 3d ff ff 14685 je short 099 bch ; 74 4c14737 je short 099fbh ; 74 4c 14686 14738 xor al, al ; 30 c0 14687 14739 shr ax, 008h ; c1 e8 08 … … 14691 14743 xor ah, ah ; 30 e4 14692 14744 mov bx, strict word 00034h ; bb 34 00 14693 call 09 ed8h ; e8 53 0514745 call 09f17h ; e8 53 05 14694 14746 mov cl, al ; 88 c1 14695 14747 test cl, cl ; 84 c9 14696 je short 099 bfh ; 74 3414748 je short 099feh ; 74 34 14697 14749 mov bl, cl ; 88 cb 14698 14750 xor bh, bh ; 30 ff … … 14705 14757 mov dx, word [bp-00eh] ; 8b 56 f2 14706 14758 mov ax, word [bp-014h] ; 8b 46 ec 14707 call 09 ed8h ; e8 2e 0514759 call 09f17h ; e8 2e 05 14708 14760 cmp AL, strict byte 012h ; 3c 12 14709 je short 099 bfh ; 74 1114761 je short 099feh ; 74 11 14710 14762 mov bl, cl ; 88 cb 14711 14763 db 0feh, 0c3h … … 14714 14766 mov dx, word [bp-00eh] ; 8b 56 f2 14715 14767 mov ax, word [bp-014h] ; 8b 46 ec 14716 jmp short 099 82h ; eb c614717 jmp near 09a 8bh ; e9 cc 0014768 jmp short 099c1h ; eb c6 14769 jmp near 09acah ; e9 cc 00 14718 14770 test cl, cl ; 84 c9 14719 je short 099 bch ; 74 f914771 je short 099fbh ; 74 f9 14720 14772 add cl, 002h ; 80 c1 02 14721 14773 mov bl, cl ; 88 cb … … 14729 14781 mov dx, word [bp-012h] ; 8b 56 ee 14730 14782 mov ax, word [bp-00ch] ; 8b 46 f4 14731 call 09 ed8h ; e8 f3 0414783 call 09f17h ; e8 f3 04 14732 14784 cmp AL, strict byte 010h ; 3c 10 14733 jne short 099 bch ; 75 d314785 jne short 099fbh ; 75 d3 14734 14786 mov byte [bp-008h], 000h ; c6 46 f8 00 14735 14787 mov bl, cl ; 88 cb … … 14738 14790 mov dx, word [bp-012h] ; 8b 56 ee 14739 14791 mov ax, word [bp-00ch] ; 8b 46 f4 14740 call 09f 06h ; e8 09 0514792 call 09f45h ; e8 09 05 14741 14793 mov dx, ax ; 89 c2 14742 14794 and ax, strict word 0000fh ; 25 0f 00 14743 14795 sub ax, strict word 00004h ; 2d 04 00 14744 14796 cmp ax, strict word 0000bh ; 3d 0b 00 14745 jnbe short 09a 41h ; 77 3714797 jnbe short 09a80h ; 77 37 14746 14798 push CS ; 0e 14747 14799 pop ES ; 07 14748 14800 mov cx, strict word 00008h ; b9 08 00 14749 mov di, 099 41h ; bf 419914801 mov di, 09980h ; bf 80 99 14750 14802 repne scasb ; f2 ae 14751 14803 sal cx, 1 ; d1 e1 14752 14804 mov di, cx ; 89 cf 14753 mov ax, word [cs:di-066 b8h] ; 2e 8b 85 489914805 mov ax, word [cs:di-06679h] ; 2e 8b 85 87 99 14754 14806 jmp ax ; ff e0 14755 14807 mov byte [bp-008h], 010h ; c6 46 f8 10 14756 jmp short 09a 41h ; eb 1c14808 jmp short 09a80h ; eb 1c 14757 14809 mov byte [bp-008h], 014h ; c6 46 f8 14 14758 jmp short 09a 41h ; eb 1614810 jmp short 09a80h ; eb 16 14759 14811 mov byte [bp-008h], 018h ; c6 46 f8 18 14760 jmp short 09a 41h ; eb 1014812 jmp short 09a80h ; eb 10 14761 14813 mov byte [bp-008h], 01ch ; c6 46 f8 1c 14762 jmp short 09a 41h ; eb 0a14814 jmp short 09a80h ; eb 0a 14763 14815 mov byte [bp-008h], 020h ; c6 46 f8 20 14764 jmp short 09a 41h ; eb 0414816 jmp short 09a80h ; eb 04 14765 14817 mov byte [bp-008h], 024h ; c6 46 f8 24 14766 14818 mov si, dx ; 89 d6 … … 14769 14821 mov al, byte [bp-008h] ; 8a 46 f8 14770 14822 test al, al ; 84 c0 14771 je short 09a 8bh ; 74 3b14823 je short 09acah ; 74 3b 14772 14824 mov bl, al ; 88 c3 14773 14825 xor bh, bh ; 30 ff … … 14780 14832 mov dx, word [bp-010h] ; 8b 56 f0 14781 14833 mov ax, word [bp-016h] ; 8b 46 ea 14782 call 09f 30h ; e8 c1 0414834 call 09f6fh ; e8 c1 04 14783 14835 test AL, strict byte 001h ; a8 01 14784 je short 09a 8bh ; 74 1814836 je short 09acah ; 74 18 14785 14837 and AL, strict byte 0f0h ; 24 f0 14786 14838 add si, ax ; 01 c6 … … 14789 14841 mov dx, word [bp-010h] ; 8b 56 f0 14790 14842 mov ax, word [bp-016h] ; 8b 46 ea 14791 call 09f 7eh ; e8 f8 0414843 call 09fbdh ; e8 f8 04 14792 14844 mov ax, si ; 89 f0 14793 call 09 7ebh ; e8 60 fd14845 call 0982ah ; e8 60 fd 14794 14846 lea sp, [bp-004h] ; 8d 66 fc 14795 14847 pop di ; 5f … … 14797 14849 pop bp ; 5d 14798 14850 retn ; c3 14799 apm_out_str_: ; 0xf9a 92LB 0x3914851 apm_out_str_: ; 0xf9ad1 LB 0x39 14800 14852 push bp ; 55 14801 14853 mov bp, sp ; 89 e5 … … 14803 14855 mov bx, ax ; 89 c3 14804 14856 cmp byte [bx], 000h ; 80 3f 00 14805 je short 09a a7h ; 74 0a14857 je short 09ae6h ; 74 0a 14806 14858 mov al, byte [bx] ; 8a 07 14807 14859 out DX, AL ; ee … … 14810 14862 db 00ah, 0c0h 14811 14863 ; or al, al ; 0a c0 14812 jne short 09a 9fh ; 75 f814864 jne short 09adeh ; 75 f8 14813 14865 lea sp, [bp-002h] ; 8d 66 fe 14814 14866 pop bx ; 5b 14815 14867 pop bp ; 5d 14816 14868 retn ; c3 14817 in AL, DX ; ec 14818 call far 09afeh:09b74h ; 9a 74 9b fe 9a 14819 sbb word [bp+di-0648ch], bx ; 19 9b 74 9b 14820 inc sp ; 44 14869 sub bx, word [bp+di-0644dh] ; 2b 9b b3 9b 14870 cmp ax, 0589bh ; 3d 9b 58 14821 14871 wait ; 9b 14822 je short 09a56h ; 74 9b 14823 jp short 09a58h ; 7a 9b 14824 dec cx ; 49 14872 mov BL, strict byte 09bh ; b3 9b 14873 sbb word [bp+di-0644dh], strict byte 0ffb9h ; 83 9b b3 9b b9 14825 14874 wait ; 9b 14826 dec cx ; 49 14875 mov byte [bp+di-06478h], bl ; 88 9b 88 9b 14876 mov byte [bp+di-06408h], bl ; 88 9b f8 9b 14877 mov byte [bp+di-06478h], bl ; 88 9b 88 9b 14878 db 0f1h 14827 14879 wait ; 9b 14828 dec cx ; 49 14829 wait ; 9b 14830 mov cx, 0499bh ; b9 9b 49 14831 wait ; 9b 14832 dec cx ; 49 14833 wait ; 9b 14834 mov DL, strict byte 09bh ; b2 9b 14835 _apm_function: ; 0xf9acb LB 0xf3 14880 _apm_function: ; 0xf9b0a LB 0xf3 14836 14881 push bp ; 55 14837 14882 mov bp, sp ; 89 e5 … … 14841 14886 xor ah, ah ; 30 e4 14842 14887 cmp ax, strict word 0000eh ; 3d 0e 00 14843 jnbe short 09b 49h ; 77 6c14888 jnbe short 09b88h ; 77 6c 14844 14889 mov bx, ax ; 89 c3 14845 14890 add bx, ax ; 01 c3 14846 14891 mov dx, word [bp+018h] ; 8b 56 18 14847 14892 or dl, 001h ; 80 ca 01 14848 jmp word [cs:bx-065 53h] ; 2e ff a7 ad9a14893 jmp word [cs:bx-06514h] ; 2e ff a7 ec 9a 14849 14894 mov word [bp+012h], 00102h ; c7 46 12 02 01 14850 14895 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14851 14896 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14852 jmp near 09b 74h ; e9 76 0014897 jmp near 09bb3h ; e9 76 00 14853 14898 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14854 mov word [bp+00ch], 0a1 84h ; c7 46 0c 84 a114899 mov word [bp+00ch], 0a1c4h ; c7 46 0c c4 a1 14855 14900 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14856 14901 mov ax, strict word 0fff0h ; b8 f0 ff 14857 14902 mov word [bp+006h], ax ; 89 46 06 14858 14903 mov word [bp+004h], ax ; 89 46 04 14859 jmp near 09b 74h ; e9 5b 0014904 jmp near 09bb3h ; e9 5b 00 14860 14905 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14861 14906 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14870 14915 mov si, ax ; 89 c6 14871 14916 sal esi, 010h ; 66 c1 e6 10 14872 jmp near 09b 74h ; e9 30 0014917 jmp near 09bb3h ; e9 30 00 14873 14918 sti ; fb 14874 14919 hlt ; f4 14875 jmp near 09b 74h ; e9 2b 0014876 mov bx, 00da 4h ; bb a40d14920 jmp near 09bb3h ; e9 2b 00 14921 mov bx, 00da0h ; bb a0 0d 14877 14922 mov cx, ds ; 8c d9 14878 14923 mov ax, strict word 00004h ; b8 04 00 14879 call 01923h ; e8 cf7d14924 call 01923h ; e8 90 7d 14880 14925 push word [bp+00ch] ; ff 76 0c 14881 14926 push word [bp+012h] ; ff 76 12 14882 14927 push 00d29h ; 68 29 0d 14883 14928 push strict byte 00004h ; 6a 04 14884 call 01966h ; e8 04 7e14929 call 01966h ; e8 c5 7d 14885 14930 add sp, strict byte 00008h ; 83 c4 08 14886 14931 mov ax, word [bp+012h] ; 8b 46 12 … … 14894 14939 retn ; c3 14895 14940 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14896 je short 09b 9fh ; 74 1f14941 je short 09bdeh ; 74 1f 14897 14942 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14898 je short 09b 97h ; 74 1114943 je short 09bd6h ; 74 11 14899 14944 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14900 jne short 09b a7h ; 75 1b14945 jne short 09be6h ; 75 1b 14901 14946 mov dx, 0040fh ; ba 0f 04 14902 14947 mov ax, 00d10h ; b8 10 0d 14903 call 09a 92h ; e8 fd fe14904 jmp short 09b 74h ; eb dd14948 call 09ad1h ; e8 fd fe 14949 jmp short 09bb3h ; eb dd 14905 14950 mov dx, 0040fh ; ba 0f 04 14906 14951 mov ax, 00d18h ; b8 18 0d 14907 jmp short 09b 92h ; eb f314952 jmp short 09bd1h ; eb f3 14908 14953 mov dx, 0040fh ; ba 0f 04 14909 14954 mov ax, 00d20h ; b8 20 0d 14910 jmp short 09b 92h ; eb eb14955 jmp short 09bd1h ; eb eb 14911 14956 or ah, 00ah ; 80 cc 0a 14912 14957 mov word [bp+012h], ax ; 89 46 12 14913 14958 mov word [bp+018h], dx ; 89 56 18 14914 jmp short 09b 74h ; eb c214959 jmp short 09bb3h ; eb c2 14915 14960 mov word [bp+012h], 00102h ; c7 46 12 02 01 14916 jmp short 09b 74h ; eb bb14961 jmp short 09bb3h ; eb bb 14917 14962 or ah, 080h ; 80 cc 80 14918 jmp short 09b aah ; eb ec14919 pci16_select_reg_: ; 0xf9b beLB 0x2414963 jmp short 09be9h ; eb ec 14964 pci16_select_reg_: ; 0xf9bfd LB 0x24 14920 14965 push bp ; 55 14921 14966 mov bp, sp ; 89 e5 … … 14934 14979 pop bp ; 5d 14935 14980 retn ; c3 14936 pci16_find_device_: ; 0xf9 be2LB 0xf914981 pci16_find_device_: ; 0xf9c21 LB 0xf9 14937 14982 push bp ; 55 14938 14983 mov bp, sp ; 89 e5 … … 14948 14993 mov byte [bp-008h], 000h ; c6 46 f8 00 14949 14994 test bl, 007h ; f6 c3 07 14950 jne short 09c 2ah ; 75 2d14995 jne short 09c69h ; 75 2d 14951 14996 mov dx, strict word 0000eh ; ba 0e 00 14952 14997 mov ax, bx ; 89 d8 14953 call 09b beh ; e8 b9 ff14998 call 09bfdh ; e8 b9 ff 14954 14999 mov dx, 00cfeh ; ba fe 0c 14955 15000 in AL, DX ; ec … … 14958 15003 mov byte [bp-006h], al ; 88 46 fa 14959 15004 cmp AL, strict byte 0ffh ; 3c ff 14960 jne short 09c 18h ; 75 0615005 jne short 09c57h ; 75 06 14961 15006 add bx, strict byte 00008h ; 83 c3 08 14962 jmp near 09c abh ; e9 93 0015007 jmp near 09ceah ; e9 93 00 14963 15008 test byte [bp-006h], 080h ; f6 46 fa 80 14964 je short 09c 25h ; 74 0715009 je short 09c64h ; 74 07 14965 15010 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14966 jmp short 09c 2ah ; eb 0515011 jmp short 09c69h ; eb 05 14967 15012 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14968 15013 mov al, byte [bp-006h] ; 8a 46 fa 14969 15014 and AL, strict byte 007h ; 24 07 14970 15015 cmp AL, strict byte 001h ; 3c 01 14971 jne short 09c 52h ; 75 1f15016 jne short 09c91h ; 75 1f 14972 15017 mov ax, bx ; 89 d8 14973 15018 shr ax, 008h ; c1 e8 08 14974 15019 test ax, ax ; 85 c0 14975 jne short 09c 52h ; 75 1615020 jne short 09c91h ; 75 16 14976 15021 mov dx, strict word 0001ah ; ba 1a 00 14977 15022 mov ax, bx ; 89 d8 14978 call 09b beh ; e8 7a ff15023 call 09bfdh ; e8 7a ff 14979 15024 mov dx, 00cfeh ; ba fe 0c 14980 15025 in AL, DX ; ec … … 14982 15027 ; sub ah, ah ; 2a e4 14983 15028 cmp al, byte [bp-008h] ; 3a 46 f8 14984 jbe short 09c 52h ; 76 0315029 jbe short 09c91h ; 76 03 14985 15030 mov byte [bp-008h], al ; 88 46 f8 14986 15031 test di, di ; 85 ff 14987 je short 09c 5bh ; 74 0515032 je short 09c9ah ; 74 05 14988 15033 mov dx, strict word 00008h ; ba 08 00 14989 jmp short 09c 5dh ; eb 0215034 jmp short 09c9ch ; eb 02 14990 15035 xor dx, dx ; 31 d2 14991 15036 mov ax, bx ; 89 d8 14992 call 09b beh ; e8 5c ff15037 call 09bfdh ; e8 5c ff 14993 15038 mov dx, 00cfch ; ba fc 0c 14994 15039 in eax, DX ; 66 ed … … 15001 15046 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 15002 15047 test di, di ; 85 ff 15003 je short 09c 8ch ; 74 0f15048 je short 09ccbh ; 74 0f 15004 15049 mov cx, strict word 00008h ; b9 08 00 15005 15050 shr dx, 1 ; d1 ea 15006 15051 rcr ax, 1 ; d1 d8 15007 loop 09c 80h ; e2 fa15052 loop 09cbfh ; e2 fa 15008 15053 mov word [bp-00ah], ax ; 89 46 f6 15009 15054 mov word [bp-00ch], dx ; 89 56 f4 15010 15055 mov ax, word [bp-00ch] ; 8b 46 f4 15011 15056 cmp ax, word [bp-014h] ; 3b 46 ec 15012 jne short 09c 9ch ; 75 0815057 jne short 09cdbh ; 75 08 15013 15058 mov ax, word [bp-00ah] ; 8b 46 f6 15014 15059 cmp ax, word [bp-012h] ; 3b 46 ee 15015 je short 09c a2h ; 74 0615060 je short 09ce1h ; 74 06 15016 15061 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 15017 je short 09c a8h ; 74 0615062 je short 09ce7h ; 74 06 15018 15063 dec si ; 4e 15019 15064 cmp si, strict byte 0ffffh ; 83 fe ff 15020 je short 09c bch ; 74 1415065 je short 09cfbh ; 74 14 15021 15066 add bx, word [bp-010h] ; 03 5e f0 15022 15067 mov dx, bx ; 89 da … … 15025 15070 xor ah, ah ; 30 e4 15026 15071 cmp dx, ax ; 39 c2 15027 jnbe short 09c bch ; 77 0315028 jmp near 09 bf8h ; e9 3c ff15072 jnbe short 09cfbh ; 77 03 15073 jmp near 09c37h ; e9 3c ff 15029 15074 cmp si, strict byte 0ffffh ; 83 fe ff 15030 jne short 09 cc5h ; 75 0415075 jne short 09d04h ; 75 04 15031 15076 mov ax, bx ; 89 d8 15032 jmp short 09 cc8h ; eb 0315077 jmp short 09d07h ; eb 03 15033 15078 mov ax, strict word 0ffffh ; b8 ff ff 15034 15079 lea sp, [bp-004h] ; 8d 66 fc … … 15037 15082 pop bp ; 5d 15038 15083 retn ; c3 15039 mov sp, 0d59dh ; bc 9d d515040 popfw ; 9d15041 out 09dh, ax ; e7 9d15042 15084 sti ; fb 15043 15085 popfw ; 9d 15044 or ax, 0209eh ; 0d 9e 20 15086 adc AL, strict byte 09eh ; 14 9e 15087 db 026h, 09eh 15088 ; es sahf ; 26 9e 15089 cmp bl, byte [bp-061b4h] ; 3a 9e 4c 9e 15090 pop di ; 5f 15045 15091 sahf ; 9e 15046 _pci16_function: ; 0xf9 cdbLB 0x1d215092 _pci16_function: ; 0xf9d1a LB 0x1d2 15047 15093 push bp ; 55 15048 15094 mov bp, sp ; 89 e5 … … 15058 15104 xor ah, ah ; 30 e4 15059 15105 cmp bx, strict byte 00003h ; 83 fb 03 15060 jc short 09d 0dh ; 72 1315061 jbe short 09d 60h ; 76 6415106 jc short 09d4ch ; 72 13 15107 jbe short 09d9fh ; 76 64 15062 15108 cmp bx, strict byte 0000eh ; 83 fb 0e 15063 je short 09d 68h ; 74 6715109 je short 09da7h ; 74 67 15064 15110 cmp bx, strict byte 00008h ; 83 fb 08 15065 jc short 09d 17h ; 72 1115111 jc short 09d56h ; 72 11 15066 15112 cmp bx, strict byte 0000dh ; 83 fb 0d 15067 jbe short 09d 6bh ; 76 6015068 jmp short 09d 17h ; eb 0a15113 jbe short 09daah ; 76 60 15114 jmp short 09d56h ; eb 0a 15069 15115 cmp bx, strict byte 00002h ; 83 fb 02 15070 je short 09d 36h ; 74 2415116 je short 09d75h ; 74 24 15071 15117 cmp bx, strict byte 00001h ; 83 fb 01 15072 je short 09d 1ah ; 74 0315073 jmp near 09e 79h ; e9 5f 0115118 je short 09d59h ; 74 03 15119 jmp near 09eb8h ; e9 5f 01 15074 15120 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15075 15121 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15077 15123 mov word [bp+018h], 04350h ; c7 46 18 50 43 15078 15124 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15079 jmp near 09e a6h ; e9 70 0115125 jmp near 09ee5h ; e9 70 01 15080 15126 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15081 jne short 09d 42h ; 75 0615127 jne short 09d81h ; 75 06 15082 15128 or ah, 083h ; 80 cc 83 15083 jmp near 09e 9fh ; e9 5d 0115129 jmp near 09edeh ; e9 5d 01 15084 15130 mov bx, word [bp+008h] ; 8b 5e 08 15085 15131 mov dx, word [bp+01ch] ; 8b 56 1c 15086 15132 mov ax, word [bp+018h] ; 8b 46 18 15087 15133 xor cx, cx ; 31 c9 15088 call 09 be2h ; e8 92 fe15134 call 09c21h ; e8 92 fe 15089 15135 cmp ax, strict word 0ffffh ; 3d ff ff 15090 jne short 09d 62h ; 75 0d15136 jne short 09da1h ; 75 0d 15091 15137 mov ax, word [bp+020h] ; 8b 46 20 15092 15138 xor ah, ah ; 30 e4 15093 15139 or ah, 086h ; 80 cc 86 15094 jmp near 09e 9fh ; e9 3f 0115095 jmp short 09d 6dh ; eb 0b15140 jmp near 09edeh ; e9 3f 01 15141 jmp short 09dach ; eb 0b 15096 15142 mov word [bp+014h], ax ; 89 46 14 15097 jmp near 09e a6h ; e9 3e 0115098 jmp near 09e 34h ; e9 c9 0015099 jmp short 09d 92h ; eb 2515143 jmp near 09ee5h ; e9 3e 01 15144 jmp near 09e73h ; e9 c9 00 15145 jmp short 09dd1h ; eb 25 15100 15146 mov bx, word [bp+008h] ; 8b 5e 08 15101 15147 mov ax, word [bp+01ch] ; 8b 46 1c 15102 15148 mov dx, word [bp+01eh] ; 8b 56 1e 15103 15149 mov cx, strict word 00001h ; b9 01 00 15104 call 09 be2h ; e8 66 fe15150 call 09c21h ; e8 66 fe 15105 15151 cmp ax, strict word 0ffffh ; 3d ff ff 15106 jne short 09d 8ch ; 75 0b15152 jne short 09dcbh ; 75 0b 15107 15153 mov ax, word [bp+020h] ; 8b 46 20 15108 15154 xor ah, ah ; 30 e4 15109 15155 or ah, 086h ; 80 cc 86 15110 jmp near 09e 9fh ; e9 13 0115156 jmp near 09edeh ; e9 13 01 15111 15157 mov word [bp+014h], ax ; 89 46 14 15112 jmp near 09e a6h ; e9 14 0115158 jmp near 09ee5h ; e9 14 01 15113 15159 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15114 jc short 09d 9fh ; 72 0615160 jc short 09ddeh ; 72 06 15115 15161 or ah, 087h ; 80 cc 87 15116 jmp near 09e 9fh ; e9 00 0115162 jmp near 09edeh ; e9 00 01 15117 15163 mov dx, word [bp+004h] ; 8b 56 04 15118 15164 mov ax, word [bp+014h] ; 8b 46 14 15119 call 09b beh ; e8 16 fe15165 call 09bfdh ; e8 16 fe 15120 15166 mov bx, word [bp+020h] ; 8b 5e 20 15121 15167 xor bh, bh ; 30 ff 15122 15168 sub bx, strict byte 00008h ; 83 eb 08 15123 15169 cmp bx, strict byte 00005h ; 83 fb 05 15124 jnbe short 09e 1dh ; 77 6815170 jnbe short 09e5ch ; 77 68 15125 15171 add bx, bx ; 01 db 15126 jmp word [cs:bx-06 331h] ; 2e ff a7 cf 9c15172 jmp word [cs:bx-062f2h] ; 2e ff a7 0e 9d 15127 15173 mov bx, word [bp+01ch] ; 8b 5e 1c 15128 15174 xor bl, bl ; 30 db … … 15135 15181 or bx, ax ; 09 c3 15136 15182 mov word [bp+01ch], bx ; 89 5e 1c 15137 jmp short 09e 1dh ; eb 4815183 jmp short 09e5ch ; eb 48 15138 15184 mov dx, word [bp+004h] ; 8b 56 04 15139 15185 xor dh, dh ; 30 f6 … … 15142 15188 in ax, DX ; ed 15143 15189 mov word [bp+01ch], ax ; 89 46 1c 15144 jmp short 09e 1dh ; eb 3615190 jmp short 09e5ch ; eb 36 15145 15191 mov dx, 00cfch ; ba fc 0c 15146 15192 in eax, DX ; 66 ed … … 15151 15197 mov word [bp+01ch], ax ; 89 46 1c 15152 15198 mov word [bp+01eh], dx ; 89 56 1e 15153 jmp short 09e 1dh ; eb 2215199 jmp short 09e5ch ; eb 22 15154 15200 mov ax, word [bp+01ch] ; 8b 46 1c 15155 15201 mov dx, word [bp+004h] ; 8b 56 04 … … 15158 15204 add dx, 00cfch ; 81 c2 fc 0c 15159 15205 out DX, AL ; ee 15160 jmp short 09e 1dh ; eb 1015206 jmp short 09e5ch ; eb 10 15161 15207 mov ax, word [bp+01ch] ; 8b 46 1c 15162 15208 mov dx, word [bp+004h] ; 8b 56 04 … … 15165 15211 add dx, 00cfch ; 81 c2 fc 0c 15166 15212 out DX, ax ; ef 15167 jmp near 09e a6h ; e9 86 0015213 jmp near 09ee5h ; e9 86 00 15168 15214 mov ax, word [bp+01ch] ; 8b 46 1c 15169 15215 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15174 15220 ; mov ax, cx ; 8b c1 15175 15221 out DX, eax ; 66 ef 15176 jmp short 09e a6h ; eb 7215222 jmp short 09ee5h ; eb 72 15177 15223 mov bx, word [bp+004h] ; 8b 5e 04 15178 15224 mov es, [bp+026h] ; 8e 46 26 … … 15181 15227 mov cx, word [0f380h] ; 8b 0e 80 f3 15182 15228 cmp cx, word [es:bx] ; 26 3b 0f 15183 jbe short 09e 5ah ; 76 1115229 jbe short 09e99h ; 76 11 15184 15230 mov ax, word [bp+020h] ; 8b 46 20 15185 15231 xor ah, ah ; 30 e4 … … 15187 15233 mov word [bp+020h], ax ; 89 46 20 15188 15234 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15189 jmp short 09e 6eh ; eb 1415235 jmp short 09eadh ; eb 14 15190 15236 les di, [es:bx+002h] ; 26 c4 7f 02 15191 15237 mov si, 0f1a0h ; be a0 f1 … … 15199 15245 les bx, [bp-008h] ; c4 5e f8 15200 15246 mov word [es:bx], ax ; 26 89 07 15201 jmp short 09e a6h ; eb 2d15202 mov bx, 00da 4h ; bb a40d15247 jmp short 09ee5h ; eb 2d 15248 mov bx, 00da0h ; bb a0 0d 15203 15249 mov cx, ds ; 8c d9 15204 15250 mov ax, strict word 00004h ; b8 04 00 15205 call 01923h ; e8 9f7a15251 call 01923h ; e8 60 7a 15206 15252 mov ax, word [bp+014h] ; 8b 46 14 15207 15253 push ax ; 50 … … 15210 15256 push 00d5ch ; 68 5c 0d 15211 15257 push strict byte 00004h ; 6a 04 15212 call 01966h ; e8 d27a15258 call 01966h ; e8 93 7a 15213 15259 add sp, strict byte 00008h ; 83 c4 08 15214 15260 mov ax, word [bp+020h] ; 8b 46 20 … … 15222 15268 pop bp ; 5d 15223 15269 retn ; c3 15224 pci_find_classcode_: ; 0xf9e adLB 0x815270 pci_find_classcode_: ; 0xf9eec LB 0x8 15225 15271 push bp ; 55 15226 15272 mov bp, sp ; 89 e5 … … 15228 15274 pop bp ; 5d 15229 15275 retn ; c3 15230 pci_find_device_: ; 0xf9e b5LB 0x2315276 pci_find_device_: ; 0xf9ef4 LB 0x23 15231 15277 push bp ; 55 15232 15278 mov bp, sp ; 89 e5 … … 15240 15286 int 01ah ; cd 1a 15241 15287 cmp ah, 000h ; 80 fc 00 15242 je short 09 eceh ; 74 0315288 je short 09f0dh ; 74 03 15243 15289 mov bx, strict word 0ffffh ; bb ff ff 15244 15290 mov ax, bx ; 89 d8 … … 15249 15295 pop bp ; 5d 15250 15296 retn ; c3 15251 pci_read_config_byte_: ; 0xf9 ed8LB 0x2e15297 pci_read_config_byte_: ; 0xf9f17 LB 0x2e 15252 15298 push bp ; 55 15253 15299 mov bp, sp ; 89 e5 … … 15275 15321 pop bp ; 5d 15276 15322 retn ; c3 15277 pci_read_config_word_: ; 0xf9f 06LB 0x2a15323 pci_read_config_word_: ; 0xf9f45 LB 0x2a 15278 15324 push bp ; 55 15279 15325 mov bp, sp ; 89 e5 … … 15299 15345 pop bp ; 5d 15300 15346 retn ; c3 15301 pci_read_config_dword_: ; 0xf9f 30LB 0x4e15347 pci_read_config_dword_: ; 0xf9f6f LB 0x4e 15302 15348 push bp ; 55 15303 15349 mov bp, sp ; 89 e5 … … 15321 15367 int 01ah ; cd 1a 15322 15368 test cx, cx ; 85 c9 15323 jne short 09f 6fh ; 75 1415369 jne short 09faeh ; 75 14 15324 15370 mov al, byte [bp-006h] ; 8a 46 fa 15325 15371 xor ah, ah ; 30 e4 … … 15331 15377 int 01ah ; cd 1a 15332 15378 test cx, cx ; 85 c9 15333 je short 09f 74h ; 74 0515379 je short 09fb3h ; 74 05 15334 15380 mov ax, strict word 00001h ; b8 01 00 15335 jmp short 09f 76h ; eb 0215381 jmp short 09fb5h ; eb 02 15336 15382 xor ax, ax ; 31 c0 15337 15383 cwd ; 99 … … 15341 15387 pop bp ; 5d 15342 15388 retn ; c3 15343 pci_write_config_word_: ; 0xf9f 7eLB 0x2515389 pci_write_config_word_: ; 0xf9fbd LB 0x25 15344 15390 push bp ; 55 15345 15391 mov bp, sp ; 89 e5 … … 15361 15407 pop bp ; 5d 15362 15408 retn ; c3 15363 vds_is_present_: ; 0xf9f a3LB 0x1d15409 vds_is_present_: ; 0xf9fe2 LB 0x1d 15364 15410 push bx ; 53 15365 15411 push bp ; 55 … … 15369 15415 mov es, ax ; 8e c0 15370 15416 test byte [es:bx], 020h ; 26 f6 07 20 15371 je short 09f bbh ; 74 0615417 je short 09ffah ; 74 06 15372 15418 mov ax, strict word 00001h ; b8 01 00 15373 15419 pop bp ; 5d … … 15378 15424 pop bx ; 5b 15379 15425 retn ; c3 15380 vds_real_to_lin_: ; 0xf9f c0LB 0x1e15426 vds_real_to_lin_: ; 0xf9fff LB 0x1e 15381 15427 push bx ; 53 15382 15428 push cx ; 51 … … 15389 15435 sal ax, 1 ; d1 e0 15390 15436 rcl dx, 1 ; d1 d2 15391 loop 0 9fceh ; e2 fa15437 loop 0a00dh ; e2 fa 15392 15438 xor cx, cx ; 31 c9 15393 15439 add ax, bx ; 01 d8 … … 15397 15443 pop bx ; 5b 15398 15444 retn ; c3 15399 vds_build_sg_list_: ; 0xf 9fdeLB 0x7715445 vds_build_sg_list_: ; 0xfa01d LB 0x77 15400 15446 push bp ; 55 15401 15447 mov bp, sp ; 89 e5 … … 15411 15457 mov bx, word [bp+006h] ; 8b 5e 06 15412 15458 mov word [es:di+002h], bx ; 26 89 5d 02 15413 call 09f c0h ; e8 c3 ff15459 call 09fffh ; e8 c3 ff 15414 15460 mov es, si ; 8e c6 15415 15461 mov word [es:di+004h], ax ; 26 89 45 04 15416 15462 mov word [es:di+006h], dx ; 26 89 55 06 15417 15463 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15418 call 09f a3h ; e8 93 ff15464 call 09fe2h ; e8 93 ff 15419 15465 test ax, ax ; 85 c0 15420 je short 0a0 25h ; 74 1115466 je short 0a064h ; 74 11 15421 15467 mov es, si ; 8e c6 15422 15468 mov ax, 08105h ; b8 05 81 15423 15469 mov dx, strict word 00000h ; ba 00 00 15424 15470 int 04bh ; cd 4b 15425 jc short 0a0 22h ; 72 0215471 jc short 0a061h ; 72 02 15426 15472 db 032h, 0c0h 15427 15473 ; xor al, al ; 32 c0 15428 15474 cbw ; 98 15429 jmp short 0a0 4ch ; eb 2715475 jmp short 0a08bh ; eb 27 15430 15476 mov es, si ; 8e c6 15431 15477 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15444 15490 pop bp ; 5d 15445 15491 retn 00004h ; c2 04 00 15446 vds_free_sg_list_: ; 0xfa0 55 LB 0x3b15492 vds_free_sg_list_: ; 0xfa094 LB 0x3c 15447 15493 push bp ; 55 15448 15494 mov bp, sp ; 89 e5 … … 15450 15496 push di ; 57 15451 15497 mov bx, ax ; 89 c3 15452 call 09f a3h ; e8 44 ff15498 call 09fe2h ; e8 44 ff 15453 15499 test ax, ax ; 85 c0 15454 je short 0a0 74h ; 74 1115500 je short 0a0b3h ; 74 11 15455 15501 mov di, bx ; 89 df 15456 15502 mov es, dx ; 8e c2 … … 15458 15504 mov dx, strict word 00000h ; ba 00 00 15459 15505 int 04bh ; cd 4b 15460 jc short 0a0 73h ; 72 0215506 jc short 0a0b2h ; 72 02 15461 15507 db 032h, 0c0h 15462 15508 ; xor al, al ; 32 c0 … … 15469 15515 pop bp ; 5d 15470 15516 retn ; c3 15471 times 0x ddb 015472 __U4M: ; 0xfa0 90 LB 0x2015517 times 0xe db 0 15518 __U4M: ; 0xfa0d0 LB 0x20 15473 15519 pushfw ; 9c 15474 15520 push si ; 56 … … 15497 15543 retn ; c3 15498 15544 times 0x4 db 0 15499 __U4D: ; 0xfa0 b0 LB 0x3015545 __U4D: ; 0xfa0f0 LB 0x30 15500 15546 pushfw ; 9c 15501 15547 push DS ; 1e … … 15512 15558 push dx ; 52 15513 15559 push ax ; 50 15514 call 0a1 95h ; e8 d0 0015560 call 0a1d5h ; e8 d0 00 15515 15561 mov cx, word [bp-002h] ; 8b 4e fe 15516 15562 mov bx, word [bp-004h] ; 8b 5e fc … … 15523 15569 retn ; c3 15524 15570 times 0xe db 0 15525 __U8RS: ; 0xfa 0e0 LB 0x1015571 __U8RS: ; 0xfa120 LB 0x10 15526 15572 test si, si ; 85 f6 15527 je short 0a 0efh ; 74 0b15573 je short 0a12fh ; 74 0b 15528 15574 shr ax, 1 ; d1 e8 15529 15575 rcr bx, 1 ; d1 db … … 15531 15577 rcr dx, 1 ; d1 da 15532 15578 dec si ; 4e 15533 jne short 0a 0e4h ; 75 f515579 jne short 0a124h ; 75 f5 15534 15580 retn ; c3 15535 __U8LS: ; 0xfa 0f0 LB 0x1015581 __U8LS: ; 0xfa130 LB 0x10 15536 15582 test si, si ; 85 f6 15537 je short 0a 0ffh ; 74 0b15583 je short 0a13fh ; 74 0b 15538 15584 sal dx, 1 ; d1 e2 15539 15585 rcl cx, 1 ; d1 d1 … … 15541 15587 rcl ax, 1 ; d1 d0 15542 15588 dec si ; 4e 15543 jne short 0a 0f4h ; 75 f515589 jne short 0a134h ; 75 f5 15544 15590 retn ; c3 15545 _fmemset_: ; 0xfa1 00 LB 0x1015591 _fmemset_: ; 0xfa140 LB 0x10 15546 15592 push di ; 57 15547 15593 mov es, dx ; 8e c2 … … 15554 15600 retn ; c3 15555 15601 times 0x3 db 0 15556 _fmemcpy_: ; 0xfa1 10 LB 0x3a15602 _fmemcpy_: ; 0xfa150 LB 0x3a 15557 15603 push bp ; 55 15558 15604 db 08bh, 0ech … … 15579 15625 add byte [bx+si], al ; 00 00 15580 15626 add byte [bx+si], al ; 00 00 15581 pushaw ; 60 15582 mov ax, word [0a162h] ; a1 62 a1 15583 mov eax, dword [0a166h] ; 66 a1 66 a1 15584 mov eax, dword [0a168h] ; 66 a1 68 a1 15585 push 06aa1h ; 68 a1 6a 15586 mov ax, word [0a16eh] ; a1 6e a1 15587 outsb ; 6e 15588 mov ax, word [0a170h] ; a1 70 a1 15589 jne short 0a0e9h ; 75 a1 15590 jnbe short 0a0ebh ; 77 a1 15591 apm_worker: ; 0xfa14a LB 0x3a 15627 mov AL, byte [0a2a1h] ; a0 a1 a2 15628 mov ax, word [0a1a6h] ; a1 a6 a1 15629 cmpsb ; a6 15630 mov ax, word [0a1a6h] ; a1 a6 a1 15631 test AL, strict byte 0a1h ; a8 a1 15632 test AL, strict byte 0a1h ; a8 a1 15633 stosb ; aa 15634 mov ax, word [0a1aeh] ; a1 ae a1 15635 scasb ; ae 15636 mov ax, word [0a1b0h] ; a1 b0 a1 15637 mov CH, strict byte 0a1h ; b5 a1 15638 mov BH, strict byte 0a1h ; b7 a1 15639 apm_worker: ; 0xfa18a LB 0x3a 15592 15640 sti ; fb 15593 15641 push ax ; 50 … … 15601 15649 pop ax ; 58 15602 15650 mov AH, strict byte 053h ; b4 53 15603 jnc short 0a1 80h ; 73 2515604 jmp word [cs:bp-05e d0h] ; 2e ff a6 30 a115605 jmp short 0a1 7eh ; eb 1c15651 jnc short 0a1c0h ; 73 25 15652 jmp word [cs:bp-05e90h] ; 2e ff a6 70 a1 15653 jmp short 0a1beh ; eb 1c 15606 15654 sti ; fb 15607 15655 hlt ; f4 15608 jmp short 0a1 7eh ; eb 1815609 jmp short 0a1 7eh ; eb 1615610 jmp short 0a1 80h ; eb 1615656 jmp short 0a1beh ; eb 18 15657 jmp short 0a1beh ; eb 16 15658 jmp short 0a1c0h ; eb 16 15611 15659 mov AH, strict byte 080h ; b4 80 15612 jmp short 0a1 82h ; eb 1415613 jmp short 0a1 80h ; eb 1015660 jmp short 0a1c2h ; eb 14 15661 jmp short 0a1c0h ; eb 10 15614 15662 mov ax, 00102h ; b8 02 01 15615 jmp short 0a1 7eh ; eb 0915616 jmp short 0a1 7eh ; eb 0715663 jmp short 0a1beh ; eb 09 15664 jmp short 0a1beh ; eb 07 15617 15665 mov BL, strict byte 000h ; b3 00 15618 15666 mov cx, strict word 00000h ; b9 00 00 15619 jmp short 0a1 7eh ; eb 0015667 jmp short 0a1beh ; eb 00 15620 15668 clc ; f8 15621 15669 retn ; c3 … … 15623 15671 stc ; f9 15624 15672 retn ; c3 15625 apm_pm16_entry: ; 0xfa1 84 LB 0x1115673 apm_pm16_entry: ; 0xfa1c4 LB 0x11 15626 15674 mov AH, strict byte 002h ; b4 02 15627 15675 push DS ; 1e … … 15631 15679 add bp, strict byte 00008h ; 83 c5 08 15632 15680 mov ds, bp ; 8e dd 15633 call 0a1 4ah ; e8 b8 ff15681 call 0a18ah ; e8 b8 ff 15634 15682 pop bp ; 5d 15635 15683 pop DS ; 1f 15636 15684 retf ; cb 15637 _DoUInt32Div: ; 0xfa1 95 LB 0x26b15685 _DoUInt32Div: ; 0xfa1d5 LB 0x26b 15638 15686 push bp ; 55 15639 15687 mov bp, sp ; 89 e5 … … 15653 15701 mov [bp-006h], ds ; 8c 5e fa 15654 15702 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15655 jne short 0a 1e5h ; 75 2215703 jne short 0a225h ; 75 22 15656 15704 mov ax, word [bx] ; 8b 07 15657 15705 test ax, ax ; 85 c0 15658 je short 0a 1e2h ; 74 1915706 je short 0a222h ; 74 19 15659 15707 cmp ax, strict word 00001h ; 3d 01 00 15660 jne short 0a 1e5h ; 75 1715708 jne short 0a225h ; 75 17 15661 15709 xor ax, ax ; 31 c0 15662 15710 mov word [bp+00ah], ax ; 89 46 0a … … 15666 15714 mov ax, word [bp-01ah] ; 8b 46 e6 15667 15715 mov word [bp+006h], ax ; 89 46 06 15668 jmp near 0a 3edh ; e9 08 0215716 jmp near 0a42dh ; e9 08 02 15669 15717 lds bx, [bp-00ch] ; c5 5e f4 15670 15718 mov ax, word [bx+002h] ; 8b 47 02 15671 15719 mov ds, [bp-006h] ; 8e 5e fa 15672 15720 cmp ax, word [si+002h] ; 3b 44 02 15673 je short 0a2 0bh ; 74 1815721 je short 0a24bh ; 74 18 15674 15722 mov ds, [bp-00ah] ; 8e 5e f6 15675 15723 mov ax, word [bx+002h] ; 8b 47 02 15676 15724 mov ds, [bp-006h] ; 8e 5e fa 15677 15725 cmp ax, word [si+002h] ; 3b 44 02 15678 jbe short 0a2 06h ; 76 0515726 jbe short 0a246h ; 76 05 15679 15727 mov ax, strict word 00001h ; b8 01 00 15680 jmp short 0a2 2ch ; eb 2615728 jmp short 0a26ch ; eb 26 15681 15729 mov ax, strict word 0ffffh ; b8 ff ff 15682 jmp short 0a2 2ch ; eb 2115730 jmp short 0a26ch ; eb 21 15683 15731 mov ds, [bp-00ah] ; 8e 5e f6 15684 15732 mov ax, word [bx] ; 8b 07 15685 15733 mov ds, [bp-006h] ; 8e 5e fa 15686 15734 cmp ax, word [si] ; 3b 04 15687 je short 0a2 2ah ; 74 1315735 je short 0a26ah ; 74 13 15688 15736 mov ds, [bp-00ah] ; 8e 5e f6 15689 15737 mov ax, word [bx] ; 8b 07 15690 15738 mov ds, [bp-006h] ; 8e 5e fa 15691 15739 cmp ax, word [si] ; 3b 04 15692 jbe short 0a2 25h ; 76 0215693 jmp short 0a2 01h ; eb dc15740 jbe short 0a265h ; 76 02 15741 jmp short 0a241h ; eb dc 15694 15742 mov ax, strict word 0ffffh ; b8 ff ff 15695 jmp short 0a2 2ch ; eb 0215743 jmp short 0a26ch ; eb 02 15696 15744 xor ax, ax ; 31 c0 15697 15745 test ax, ax ; 85 c0 15698 jnl short 0a2 4eh ; 7d 1e15746 jnl short 0a28eh ; 7d 1e 15699 15747 lds bx, [bp-00ch] ; c5 5e f4 15700 15748 mov ax, word [bx] ; 8b 07 … … 15706 15754 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15707 15755 mov word [bx], strict word 00000h ; c7 07 00 00 15708 jmp short 0a 1e2h ; eb 9415709 jne short 0a2 65h ; 75 1515756 jmp short 0a222h ; eb 94 15757 jne short 0a2a5h ; 75 15 15710 15758 mov ds, [bp-008h] ; 8e 5e f8 15711 15759 mov word [di+002h], ax ; 89 45 02 … … 15714 15762 mov word [bx], strict word 00001h ; c7 07 01 00 15715 15763 mov word [bx+002h], ax ; 89 47 02 15716 jmp near 0a 3edh ; e9 88 0115764 jmp near 0a42dh ; e9 88 01 15717 15765 lds bx, [bp-00ch] ; c5 5e f4 15718 15766 mov ax, word [bx+002h] ; 8b 47 02 15719 15767 test ax, ax ; 85 c0 15720 je short 0a2 80h ; 74 1115768 je short 0a2c0h ; 74 11 15721 15769 push ax ; 50 15722 15770 mov ax, 0f000h ; b8 00 f0 15723 15771 mov ds, ax ; 8e d8 15724 call 0a4 00h ; e8 88 0115772 call 0a440h ; e8 88 01 15725 15773 add sp, strict byte 00002h ; 83 c4 02 15726 15774 add ax, strict word 00010h ; 05 10 00 15727 jmp short 0a2 8dh ; eb 0d15775 jmp short 0a2cdh ; eb 0d 15728 15776 push word [bx] ; ff 37 15729 15777 mov ax, 0f000h ; b8 00 f0 15730 15778 mov ds, ax ; 8e d8 15731 call 0a4 00h ; e8 76 0115779 call 0a440h ; e8 76 01 15732 15780 add sp, strict byte 00002h ; 83 c4 02 15733 15781 mov word [bp-014h], ax ; 89 46 ec … … 15735 15783 mov ax, word [si+002h] ; 8b 44 02 15736 15784 test ax, ax ; 85 c0 15737 je short 0a2 abh ; 74 1115785 je short 0a2ebh ; 74 11 15738 15786 push ax ; 50 15739 15787 mov ax, 0f000h ; b8 00 f0 15740 15788 mov ds, ax ; 8e d8 15741 call 0a4 00h ; e8 5d 0115789 call 0a440h ; e8 5d 01 15742 15790 add sp, strict byte 00002h ; 83 c4 02 15743 15791 add ax, strict word 00010h ; 05 10 00 15744 jmp short 0a2 b8h ; eb 0d15792 jmp short 0a2f8h ; eb 0d 15745 15793 push word [si] ; ff 34 15746 15794 mov ax, 0f000h ; b8 00 f0 15747 15795 mov ds, ax ; 8e d8 15748 call 0a4 00h ; e8 4b 0115796 call 0a440h ; e8 4b 01 15749 15797 add sp, strict byte 00002h ; 83 c4 02 15750 15798 mov dx, word [bp-014h] ; 8b 56 ec … … 15757 15805 mov word [bp-016h], ax ; 89 46 ea 15758 15806 test dx, dx ; 85 d2 15759 je short 0a3 28h ; 74 5615807 je short 0a368h ; 74 56 15760 15808 mov cx, dx ; 89 d1 15761 15809 xor ch, dh ; 30 f5 … … 15763 15811 mov ax, word [si] ; 8b 04 15764 15812 mov dx, word [si+002h] ; 8b 54 02 15765 jcxz 0a 2e6h ; e3 0615813 jcxz 0a326h ; e3 06 15766 15814 sal ax, 1 ; d1 e0 15767 15815 rcl dx, 1 ; d1 d2 15768 loop 0a 2e0h ; e2 fa15816 loop 0a320h ; e2 fa 15769 15817 mov word [bp-018h], ax ; 89 46 e8 15770 15818 mov word [bp-016h], dx ; 89 56 ea … … 15772 15820 lds bx, [bp-00ch] ; c5 5e f4 15773 15821 cmp ax, word [bx+002h] ; 3b 47 02 15774 jnbe short 0a3 06h ; 77 0f15822 jnbe short 0a346h ; 77 0f 15775 15823 mov ax, word [bp-016h] ; 8b 46 ea 15776 15824 cmp ax, word [bx+002h] ; 3b 47 02 15777 jne short 0a3 0ah ; 75 0b15825 jne short 0a34ah ; 75 0b 15778 15826 mov ax, word [bp-018h] ; 8b 46 e8 15779 15827 cmp ax, word [bx] ; 3b 07 15780 jbe short 0a3 0ah ; 76 0415828 jbe short 0a34ah ; 76 04 15781 15829 mov AL, strict byte 001h ; b0 01 15782 jmp short 0a3 0ch ; eb 0215830 jmp short 0a34ch ; eb 02 15783 15831 xor al, al ; 30 c0 15784 15832 test al, al ; 84 c0 15785 je short 0a3 33h ; 74 2315833 je short 0a373h ; 74 23 15786 15834 shr word [bp-016h], 1 ; d1 6e ea 15787 15835 rcr word [bp-018h], 1 ; d1 5e e8 15788 15836 dec word [bp-012h] ; ff 4e ee 15789 jmp short 0a3 33h ; eb 1815837 jmp short 0a373h ; eb 18 15790 15838 mov cx, strict word 0001fh ; b9 1f 00 15791 15839 sal word [bp-018h], 1 ; d1 66 e8 15792 15840 rcl word [bp-016h], 1 ; d1 56 ea 15793 loop 0a3 1eh ; e2 f815794 jmp short 0a3 16h ; eb ee15841 loop 0a35eh ; e2 f8 15842 jmp short 0a356h ; eb ee 15795 15843 mov ax, word [si] ; 8b 04 15796 15844 mov word [bp-018h], ax ; 89 46 e8 … … 15809 15857 mov ds, [bp-006h] ; 8e 5e fa 15810 15858 cmp ax, word [si+002h] ; 3b 44 02 15811 jnbe short 0a3 5fh ; 77 0615812 jne short 0a3 63h ; 75 0815859 jnbe short 0a39fh ; 77 06 15860 jne short 0a3a3h ; 75 08 15813 15861 cmp dx, word [si] ; 3b 14 15814 jc short 0a3 63h ; 72 0415862 jc short 0a3a3h ; 72 04 15815 15863 mov AL, strict byte 001h ; b0 01 15816 jmp short 0a3 65h ; eb 0215864 jmp short 0a3a5h ; eb 02 15817 15865 xor al, al ; 30 c0 15818 15866 test al, al ; 84 c0 15819 je short 0a 3cah ; 74 6115867 je short 0a40ah ; 74 61 15820 15868 mov ds, [bp-008h] ; 8e 5e f8 15821 15869 mov ax, word [di+002h] ; 8b 45 02 15822 15870 cmp ax, word [bp-016h] ; 3b 46 ea 15823 jnbe short 0a3 80h ; 77 0c15871 jnbe short 0a3c0h ; 77 0c 15824 15872 cmp ax, word [bp-016h] ; 3b 46 ea 15825 jne short 0a3 84h ; 75 0b15873 jne short 0a3c4h ; 75 0b 15826 15874 mov ax, word [di] ; 8b 05 15827 15875 cmp ax, word [bp-018h] ; 3b 46 e8 15828 jc short 0a3 84h ; 72 0415876 jc short 0a3c4h ; 72 04 15829 15877 mov AL, strict byte 001h ; b0 01 15830 jmp short 0a3 86h ; eb 0215878 jmp short 0a3c6h ; eb 02 15831 15879 xor al, al ; 30 c0 15832 15880 test al, al ; 84 c0 15833 je short 0a3 b0h ; 74 2615881 je short 0a3f0h ; 74 26 15834 15882 mov ax, word [bp-018h] ; 8b 46 e8 15835 15883 mov ds, [bp-008h] ; 8e 5e f8 … … 15840 15888 xor dx, dx ; 31 d2 15841 15889 mov cx, word [bp-012h] ; 8b 4e ee 15842 jcxz 0a3 a8h ; e3 0615890 jcxz 0a3e8h ; e3 06 15843 15891 sal ax, 1 ; d1 e0 15844 15892 rcl dx, 1 ; d1 d2 15845 loop 0a3 a2h ; e2 fa15893 loop 0a3e2h ; e2 fa 15846 15894 lds bx, [bp-010h] ; c5 5e f0 15847 15895 or word [bx], ax ; 09 07 … … 15852 15900 mov ds, [bp-006h] ; 8e 5e fa 15853 15901 cmp ax, word [si+002h] ; 3b 44 02 15854 jc short 0a 3c6h ; 72 0615855 jne short 0a 3cch ; 75 0a15902 jc short 0a406h ; 72 06 15903 jne short 0a40ch ; 75 0a 15856 15904 cmp dx, word [si] ; 3b 14 15857 jnc short 0a 3cch ; 73 0615905 jnc short 0a40ch ; 73 06 15858 15906 mov AL, strict byte 001h ; b0 01 15859 jmp short 0a 3ceh ; eb 0415860 jmp short 0a 3edh ; eb 2115907 jmp short 0a40eh ; eb 04 15908 jmp short 0a42dh ; eb 21 15861 15909 xor al, al ; 30 c0 15862 15910 test al, al ; 84 c0 15863 je short 0a 3e1h ; 74 0f15864 jmp short 0a 3edh ; eb 1915911 je short 0a421h ; 74 0f 15912 jmp short 0a42dh ; eb 19 15865 15913 mov cx, strict word 0001fh ; b9 1f 00 15866 15914 sal word [bp-018h], 1 ; d1 66 e8 15867 15915 rcl word [bp-016h], 1 ; d1 56 ea 15868 loop 0a 3d7h ; e2 f815869 jmp short 0a 3e7h ; eb 0615916 loop 0a417h ; e2 f8 15917 jmp short 0a427h ; eb 06 15870 15918 shr word [bp-016h], 1 ; d1 6e ea 15871 15919 rcr word [bp-018h], 1 ; d1 5e e8 15872 15920 dec word [bp-012h] ; ff 4e ee 15873 jmp near 0a3 69h ; e9 7c ff15921 jmp near 0a3a9h ; e9 7c ff 15874 15922 mov ax, word [bp-01ch] ; 8b 46 e4 15875 15923 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15880 15928 retn ; c3 15881 15929 times 0x6 db 0 15882 _ASMBitLastSetU16: ; 0xfa4 00 LB 0x1815930 _ASMBitLastSetU16: ; 0xfa440 LB 0x18 15883 15931 push bp ; 55 15884 15932 db 08bh, 0ech … … 15886 15934 mov cx, word [bp+004h] ; 8b 4e 04 15887 15935 test cx, cx ; 85 c9 15888 je short 0a4 14h ; 74 0a15936 je short 0a454h ; 74 0a 15889 15937 mov ax, strict word 00010h ; b8 10 00 15890 15938 sal cx, 1 ; d1 e1 15891 jc short 0a4 16h ; 72 0515939 jc short 0a456h ; 72 05 15892 15940 dec ax ; 48 15893 jmp short 0a4 0dh ; eb f915941 jmp short 0a44dh ; eb f9 15894 15942 db 033h, 0c0h 15895 15943 ; xor ax, ax ; 33 c0 … … 15897 15945 retn ; c3 15898 15946 15899 ; Padding 0x35 e8 bytes at 0xfa41815900 times 13 800db 015947 ; Padding 0x35a8 bytes at 0xfa458 15948 times 13736 db 0 15901 15949 15902 15950 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15945 15993 add bp, strict byte 00008h ; 83 c5 08 15946 15994 push ebp ; 66 55 15947 mov bp, 0a1 86h ; bd 86 a115995 mov bp, 0a1c6h ; bd c6 a1 15948 15996 add byte [bx+si], al ; 00 00 15949 15997 push ebp ; 66 55 … … 16411 16459 cmp AL, strict byte 009h ; 3c 09 16412 16460 jne short 0e0bch ; 75 03 16413 jmp near 0e3 68h ; e9 ac0216461 jmp near 0e350h ; e9 94 02 16414 16462 cmp AL, strict byte 005h ; 3c 05 16415 16463 je short 0e044h ; 74 84 … … 16554 16602 mov dx, 0c800h ; ba 00 c8 16555 16603 call 01600h ; e8 ea 33 16556 call 04 eddh ; e8 c4 6c16604 call 04f1ch ; e8 03 6d 16557 16605 pop DS ; 1f 16558 16606 mov ax, 0ff53h ; b8 53 ff … … 16614 16662 mov word [001c2h], ax ; a3 c2 01 16615 16663 call 0edbfh ; e8 0e 0b 16616 jmp short 0e3 1bh ; eb 6816664 jmp short 0e303h ; eb 50 16617 16665 biosorg_check_before_or_at_0E2C1h: ; 0xfe2b3 LB 0x10 16618 16666 times 0xe db 0 … … 16629 16677 int 002h ; cd 02 16630 16678 iret ; cf 16631 hard_drive_post: ; 0xfe2d2 LB 0x bf16679 hard_drive_post: ; 0xfe2d2 LB 0xa7 16632 16680 db 033h, 0c0h 16633 16681 ; xor ax, ax ; 33 c0 … … 16648 16696 mov ax, 0f000h ; b8 00 f0 16649 16697 mov word [001dah], ax ; a3 da 01 16650 mov ax, strict word 0003dh ; b8 3d 0016651 mov word [00104h], ax ; a3 04 0116652 mov ax, 09fc0h ; b8 c0 9f16653 mov word [00106h], ax ; a3 06 0116654 mov ax, strict word 0004dh ; b8 4d 0016655 mov word [00118h], ax ; a3 18 0116656 mov ax, 09fc0h ; b8 c0 9f16657 mov word [0011ah], ax ; a3 1a 0116658 16698 retn ; c3 16659 16699 mov ax, 0f8bfh ; b8 bf f8 … … 16665 16705 mov ax, 0f000h ; b8 00 f0 16666 16706 mov word [001d6h], ax ; a3 d6 01 16667 call 0e753h ; e8 1d0416707 call 0e753h ; e8 35 04 16668 16708 push CS ; 0e 16669 16709 pop DS ; 1f 16670 16710 cld ; fc 16671 call 01c9fh ; e8 633916672 call 02118h ; e8 d93d16711 call 01c9fh ; e8 7b 39 16712 call 02118h ; e8 f1 3d 16673 16713 sti ; fb 16674 call 099 58h ; e8 15b616714 call 09997h ; e8 6c b6 16675 16715 cli ; fa 16676 call 087 b8h ; e8 71a416677 call 0ed2fh ; e8 e50916678 call 0e2d2h ; e8 85ff16716 call 087f7h ; e8 c8 a4 16717 call 0ed2fh ; e8 fd 09 16718 call 0e2d2h ; e8 9d ff 16679 16719 push CS ; 0e 16680 16720 pop DS ; 1f … … 16682 16722 mov ax, 0c800h ; b8 00 c8 16683 16723 mov dx, 0f000h ; ba 00 f0 16684 call 01600h ; e8 a73216685 call 0178dh ; e8 313416686 call 03b 54h ; e8 f5 5716724 call 01600h ; e8 bf 32 16725 call 0178dh ; e8 49 34 16726 call 03b93h ; e8 4c 58 16687 16727 sti ; fb 16688 16728 int 019h ; cd 19 16689 16729 sti ; fb 16690 16730 hlt ; f4 16691 jmp short 0e3 63h ; eb fd16731 jmp short 0e34bh ; eb fd 16692 16732 cli ; fa 16693 16733 hlt ; f4 … … 16711 16751 sti ; fb 16712 16752 retf 00002h ; ca 02 00 16713 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 91 LB 0x6d16714 times 0x 6bdb 016753 biosorg_check_before_or_at_0E3FCh: ; 0xfe379 LB 0x85 16754 times 0x83 db 0 16715 16755 db 'XM' 16716 16756 int13_handler: ; 0xfe3fe LB 0x3 … … 16786 16826 pop DS ; 1f 16787 16827 cld ; fc 16788 call 064 4bh ; e8 097d16828 call 0648ah ; e8 48 7d 16789 16829 popaw ; 61 16790 16830 pop ES ; 07 … … 16867 16907 pop DS ; 1f 16868 16908 cld ; fc 16869 call 057 0dh ; e8 ca 6e16909 call 0574ch ; e8 09 6f 16870 16910 popaw ; 61 16871 16911 pop DS ; 1f … … 16885 16925 pop DS ; 1f 16886 16926 cld ; fc 16887 call 057 0dh ; e8 a96e16927 call 0574ch ; e8 e8 6e 16888 16928 popaw ; 61 16889 16929 pop DS ; 1f … … 16926 16966 pop DS ; 1f 16927 16967 cld ; fc 16928 call 05 1e5h ; e8 266816968 call 05224h ; e8 65 68 16929 16969 pop ES ; 07 16930 16970 popaw ; 61 … … 16942 16982 pop DS ; 1f 16943 16983 cld ; fc 16944 call 06 ef2h ; e8 1d8516984 call 06f31h ; e8 5c 85 16945 16985 pop DS ; 1f 16946 16986 pop ES ; 07 … … 16964 17004 cld ; fc 16965 17005 push 0ece9h ; 68 e9 ec 16966 jmp near 03b 98h ; e9 274f17006 jmp near 03bd7h ; e9 66 4f 16967 17007 push ES ; 06 16968 17008 push ax ; 50 … … 16970 17010 push cx ; 51 16971 17011 push dx ; 52 16972 call 03b 6ch ; e8 f3 4e17012 call 03babh ; e8 32 4f 16973 17013 cmp AL, strict byte 000h ; 3c 00 16974 17014 je short 0ecabh ; 74 2e 16975 call 03b 82h ; e8 024f17015 call 03bc1h ; e8 41 4f 16976 17016 pop dx ; 5a 16977 17017 push dx ; 52 … … 16991 17031 cld ; fc 16992 17032 push 0ece9h ; 68 e9 ec 16993 jmp near 041 92h ; e9 fb 5417033 jmp near 041d1h ; e9 3a 55 16994 17034 and dl, 0e0h ; 80 e2 e0 16995 17035 db 03ah, 0c2h … … 17031 17071 jne short 0ecc8h ; 75 06 17032 17072 push 0ece9h ; 68 e9 ec 17033 jmp near 031 4fh ; e9 874417073 jmp near 0318eh ; e9 c6 44 17034 17074 int13_notfloppy: ; 0xfecc8 LB 0x14 17035 17075 cmp dl, 0e0h ; 80 fa e0 … … 17037 17077 shr ebx, 010h ; 66 c1 eb 10 17038 17078 push bx ; 53 17039 call 04 5d4h ; e8 ff 5817079 call 04613h ; e8 3e 59 17040 17080 pop bx ; 5b 17041 17081 sal ebx, 010h ; 66 c1 e3 10 … … 17044 17084 cmp ah, 040h ; 80 fc 40 17045 17085 jnbe short 0ece6h ; 77 05 17046 call 05 ae9h ; e8 056e17086 call 05b28h ; e8 44 6e 17047 17087 jmp short 0ece9h ; eb 03 17048 call 05f 3ch ; e8 537217088 call 05f7bh ; e8 92 72 17049 17089 int13_out: ; 0xfece9 LB 0x4 17050 17090 pop DS ; 1f … … 17260 17300 pop DS ; 1f 17261 17301 cld ; fc 17262 call 078 90h ; e8 b38817302 call 078cfh ; e8 f2 88 17263 17303 popaw ; 61 17264 17304 pop ES ; 07 … … 17311 17351 mov ax, strict word 00001h ; b8 01 00 17312 17352 push ax ; 50 17313 call 04c 59h ; e8 895b17353 call 04c98h ; e8 c8 5b 17314 17354 inc sp ; 44 17315 17355 inc sp ; 44 … … 17318 17358 mov ax, strict word 00002h ; b8 02 00 17319 17359 push ax ; 50 17320 call 04c 59h ; e8 7c5b17360 call 04c98h ; e8 bb 5b 17321 17361 inc sp ; 44 17322 17362 inc sp ; 44 … … 17325 17365 mov ax, strict word 00003h ; b8 03 00 17326 17366 push ax ; 50 17327 call 04c 59h ; e8 6f5b17367 call 04c98h ; e8 ae 5b 17328 17368 inc sp ; 44 17329 17369 inc sp ; 44 … … 17332 17372 mov ax, strict word 00004h ; b8 04 00 17333 17373 push ax ; 50 17334 call 04c 59h ; e8 625b17374 call 04c98h ; e8 a1 5b 17335 17375 inc sp ; 44 17336 17376 inc sp ; 44 … … 17483 17523 pop DS ; 1f 17484 17524 cld ; fc 17485 call 06d 68h ; e8 017517525 call 06da7h ; e8 40 75 17486 17526 pop DS ; 1f 17487 17527 pop ES ; 07 … … 17505 17545 cmp ah, 0c2h ; 80 fc c2 17506 17546 je short 0f899h ; 74 0e 17507 call 066 a2h ; e8 146e17547 call 066e1h ; e8 53 6e 17508 17548 popaw ; 61 17509 17549 pop ES ; 07 … … 17511 17551 popfw ; 9d 17512 17552 jmp short 0f8a5h ; eb 11 17513 call 09 acbh ; e8 34a217553 call 09b0ah ; e8 73 a2 17514 17554 jmp short 0f88eh ; eb f5 17515 17555 int15_handler_mouse: ; 0xff899 LB 0x5 17516 call 075 03h ; e8 677c17556 call 07542h ; e8 a6 7c 17517 17557 jmp short 0f88eh ; eb f0 17518 17558 int15_handler32: ; 0xff89e LB 0x7 17519 17559 pushaw ; 60 17520 call 06 9deh ; e8 3c7117560 call 06a1dh ; e8 7b 71 17521 17561 popaw ; 61 17522 17562 jmp short 0f88fh ; eb ea … … 17551 17591 pop DS ; 1f 17552 17592 cld ; fc 17553 call 074 31h ; e8 617b17593 call 07470h ; e8 a0 7b 17554 17594 pop cx ; 59 17555 17595 jcxz 0f8dfh ; e3 0c … … 17583 17623 pop DS ; 1f 17584 17624 cld ; fc 17585 call 07 0d6h ; e8 d1 7717625 call 07115h ; e8 10 78 17586 17626 popaw ; 61 17587 17627 pop DS ; 1f … … 17672 17712 pop DS ; 1f 17673 17713 cld ; fc 17674 call 071 95h ; e8 1e7317714 call 071d4h ; e8 5d 73 17675 17715 popaw ; 61 17676 17716 pop DS ; 1f … … 17777 17817 cpu_reset: ; 0xffff0 LB 0x10 17778 17818 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17779 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 a8h17819 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0e5h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r68934 r69128 1 d155ba841f31c1a57eaef68a9f7f28f6*VBoxPcBios286.rom1 fce56fd1ede722bb71537af5a0525b14 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r68934 r69128 951 951 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 952 952 _pktacc: ; 0xf006a LB 0xc 953 db 000h, 000h, 000h, 000h, 000h, 000h, 0 5dh, 02ch, 01ah, 082h, 089h, 091h953 db 000h, 000h, 000h, 000h, 000h, 000h, 07bh, 02ch, 038h, 082h, 0a7h, 091h 954 954 _softrst: ; 0xf0076 LB 0xc 955 db 000h, 000h, 000h, 000h, 000h, 000h, 0 45h, 02fh, 0b6h, 03ch, 0b6h, 03ch955 db 000h, 000h, 000h, 000h, 000h, 000h, 063h, 02fh, 0d4h, 03ch, 0d4h, 03ch 956 956 _dskacc: ; 0xf0082 LB 0x2e 957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 4dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h958 db 0 64h, 080h, 03fh, 081h, 05fh, 090h, 005h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 06bh, 02bh, 020h, 02ch, 000h, 000h, 000h, 000h 958 db 082h, 080h, 05dh, 081h, 07dh, 090h, 023h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 959 959 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 960 960 … … 1078 1078 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1079 1079 1080 section CONST2 progbits vstart=0xda0 align=1 ; size=0x3f eclass=DATA group=DGROUP1081 _bios_cvs_version_string: ; 0xf0da0 LB 0x1 61082 db 'VirtualBox 5.2.0 _RC1', 000h, 000h1083 _bios_prefix_string: ; 0xf0db 6LB 0x81080 section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP 1081 _bios_cvs_version_string: ; 0xf0da0 LB 0x12 1082 db 'VirtualBox 5.2.0', 000h, 000h 1083 _bios_prefix_string: ; 0xf0db2 LB 0x8 1084 1084 db 'BIOS: ', 000h, 000h 1085 _isotag: ; 0xf0db eLB 0x61085 _isotag: ; 0xf0dba LB 0x6 1086 1086 db 'CD001', 000h 1087 _eltorito: ; 0xf0dc 4LB 0x181087 _eltorito: ; 0xf0dc0 LB 0x18 1088 1088 db 'EL TORITO SPECIFICATION', 000h 1089 _drivetypes: ; 0xf0dd cLB 0x281089 _drivetypes: ; 0xf0dd8 LB 0x28 1090 1090 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1091 1091 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1092 1092 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1093 _scan_to_scanascii: ; 0xf0e0 4LB 0x37a1093 _scan_to_scanascii: ; 0xf0e00 LB 0x37a 1094 1094 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1095 1095 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1148 1148 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1149 1149 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1150 _panic_msg_keyb_buffer_full: ; 0xf117 eLB 0x201150 _panic_msg_keyb_buffer_full: ; 0xf117a LB 0x20 1151 1151 db '%s: keyboard input buffer full', 00ah, 000h 1152 1152 1153 ; Padding 0x46 2 bytes at 0xf119e1154 times 112 2db 01153 ; Padding 0x466 bytes at 0xf119a 1154 times 1126 db 0 1155 1155 1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8b a5 class=CODE group=AUTO1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8bc5 class=CODE group=AUTO 1157 1157 rom_scan_: ; 0xf1600 LB 0x50 1158 1158 push bp ; 55 … … 1501 1501 push bp ; 55 1502 1502 mov bp, sp ; 89 e5 1503 mov bx, 00db 6h ; bb b60d1503 mov bx, 00db2h ; bb b2 0d 1504 1504 mov cx, ds ; 8c d9 1505 1505 mov ax, strict word 00004h ; b8 04 00 … … 1530 1530 int 010h ; cd 10 1531 1531 jmp short 018bah ; eb 03 1532 call 07c 22h ; e8 68631532 call 07c40h ; e8 86 63 1533 1533 mov sp, bp ; 89 ec 1534 1534 pop bp ; 5d … … 1676 1676 mov bx, strict word 0000ah ; bb 0a 00 1677 1677 xor cx, cx ; 31 c9 1678 call 0a0 b0h ; e8 de 861678 call 0a0d0h ; e8 fe 86 1679 1679 mov word [bp-008h], ax ; 89 46 f8 1680 1680 mov cx, dx ; 89 d1 … … 1902 1902 mov dx, word [bp-026h] ; 8b 56 da 1903 1903 mov si, word [bp-01eh] ; 8b 76 e2 1904 call 0a 0f0h ; e8 ec 841904 call 0a110h ; e8 0c 85 1905 1905 mov ax, dx ; 89 d0 1906 1906 xor ah, dh ; 30 f4 … … 2344 2344 mov dx, word [es:si] ; 26 8b 14 2345 2345 mov si, strict word 00018h ; be 18 00 2346 call 0a 0f0h ; e8 90 802346 call 0a110h ; e8 b0 80 2347 2347 xor dh, dh ; 30 f6 2348 2348 mov word [bp-016h], dx ; 89 56 ea … … 2354 2354 mov dx, word [es:si] ; 26 8b 14 2355 2355 mov si, strict word 00020h ; be 20 00 2356 call 0a 0f0h ; e8 70 802356 call 0a110h ; e8 90 80 2357 2357 mov bx, dx ; 89 d3 2358 2358 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2385 2385 mov dx, word [es:si] ; 26 8b 14 2386 2386 mov si, strict word 00008h ; be 08 00 2387 call 0a 0f0h ; e8 1f 802387 call 0a110h ; e8 3f 80 2388 2388 mov word [bp-014h], dx ; 89 56 ec 2389 2389 mov bx, word [bp-018h] ; 8b 5e e8 … … 2394 2394 mov dx, word [es:si] ; 26 8b 14 2395 2395 mov si, strict word 00018h ; be 18 00 2396 call 0a 0f0h ; e8 01 802396 call 0a110h ; e8 21 80 2397 2397 and dx, strict byte 0000fh ; 83 e2 0f 2398 2398 or dl, 040h ; 80 ca 40 … … 2533 2533 pop bp ; 5d 2534 2534 retn ; c3 2535 _ata_detect: ; 0xf2235 LB 0x6 5c2535 _ata_detect: ; 0xf2235 LB 0x67a 2536 2536 push bp ; 55 2537 2537 mov bp, sp ; 89 e5 … … 2542 2542 mov ax, strict word 00040h ; b8 40 00 2543 2543 call 01765h ; e8 1e f5 2544 mov word [bp-02 0h], ax ; 89 46 e02544 mov word [bp-024h], ax ; 89 46 dc 2545 2545 mov di, 00122h ; bf 22 01 2546 2546 mov es, ax ; 8e c0 2547 mov word [bp-02 2h], di ; 89 7e de2548 mov word [bp-0 34h], ax ; 89 46 cc2547 mov word [bp-028h], di ; 89 7e d8 2548 mov word [bp-01ah], ax ; 89 46 e6 2549 2549 mov byte [es:di+00204h], 000h ; 26 c6 85 04 02 00 2550 2550 db 066h, 026h, 0c7h, 085h, 006h, 002h, 0f0h, 001h, 0f0h, 003h … … 2556 2556 mov byte [es:di+0020bh], 00fh ; 26 c6 85 0b 02 0f 2557 2557 xor al, al ; 30 c0 2558 mov byte [bp-006h], al ; 88 46 fa 2558 mov byte [bp-008h], al ; 88 46 f8 2559 mov byte [bp-012h], al ; 88 46 ee 2559 2560 mov byte [bp-010h], al ; 88 46 f0 2560 mov byte [bp-016h], al ; 88 46 ea 2561 jmp near 02815h ; e9 86 05 2561 jmp near 02835h ; e9 a6 05 2562 2562 mov ax, 000a0h ; b8 a0 00 2563 2563 lea dx, [si+006h] ; 8d 54 06 2564 2564 out DX, AL ; ee 2565 lea di, [si+002h] ; 8d 7c 02 2565 lea bx, [si+002h] ; 8d 5c 02 2566 mov AL, strict byte 055h ; b0 55 2567 mov dx, bx ; 89 da 2568 out DX, AL ; ee 2569 lea di, [si+003h] ; 8d 7c 03 2570 mov AL, strict byte 0aah ; b0 aa 2571 mov dx, di ; 89 fa 2572 out DX, AL ; ee 2573 mov dx, bx ; 89 da 2574 out DX, AL ; ee 2566 2575 mov AL, strict byte 055h ; b0 55 2567 2576 mov dx, di ; 89 fa 2568 2577 out DX, AL ; ee 2569 lea bx, [si+003h] ; 8d 5c 03 2578 mov dx, bx ; 89 da 2579 out DX, AL ; ee 2570 2580 mov AL, strict byte 0aah ; b0 aa 2581 mov dx, di ; 89 fa 2582 out DX, AL ; ee 2571 2583 mov dx, bx ; 89 da 2572 out DX, AL ; ee 2573 mov dx, di ; 89 fa 2574 out DX, AL ; ee 2575 mov AL, strict byte 055h ; b0 55 2576 mov dx, bx ; 89 da 2577 out DX, AL ; ee 2578 mov dx, di ; 89 fa 2579 out DX, AL ; ee 2580 mov AL, strict byte 0aah ; b0 aa 2581 mov dx, bx ; 89 da 2582 out DX, AL ; ee 2584 in AL, DX ; ec 2585 db 02ah, 0e4h 2586 ; sub ah, ah ; 2a e4 2587 mov bx, ax ; 89 c3 2583 2588 mov dx, di ; 89 fa 2584 2589 in AL, DX ; ec 2585 2590 db 02ah, 0e4h 2586 2591 ; sub ah, ah ; 2a e4 2587 mov cx, ax ; 89 c1 2588 mov dx, bx ; 89 da 2589 in AL, DX ; ec 2590 db 02ah, 0e4h 2591 ; sub ah, ah ; 2a e4 2592 cmp cl, 055h ; 80 f9 55 2593 jne near 02393h ; 0f 85 ca 00 2592 cmp bl, 055h ; 80 fb 55 2593 jne near 02391h ; 0f 85 c8 00 2594 2594 cmp AL, strict byte 0aah ; 3c aa 2595 jne near 02393h ; 0f 85 c4 00 2596 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2597 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2598 mov es, [bp-034h] ; 8e 46 cc 2599 mov bx, word [bp-022h] ; 8b 5e de 2600 add bx, ax ; 01 c3 2595 jne near 02391h ; 0f 85 c2 00 2596 movzx bx, byte [bp-010h] ; 0f b6 5e f0 2597 imul bx, bx, strict byte 0001ch ; 6b db 1c 2598 mov es, [bp-01ah] ; 8e 46 e6 2599 add bx, word [bp-028h] ; 03 5e d8 2601 2600 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2602 movzx ax, byte [bp-01 6h] ; 0f b6 46 ea2603 call 01e75h ; e8 8 bfb2604 cmp byte [bp-0 0eh], 000h ; 80 7e f2002605 je short 022f 5h ; 74 052601 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2602 call 01e75h ; e8 8d fb 2603 cmp byte [bp-016h], 000h ; 80 7e ea 00 2604 je short 022f3h ; 74 05 2606 2605 mov ax, 000b0h ; b8 b0 00 2607 jmp short 022f 8h ; eb 032606 jmp short 022f6h ; eb 03 2608 2607 mov ax, 000a0h ; b8 a0 00 2609 2608 lea dx, [si+006h] ; 8d 54 06 … … 2619 2618 ; sub ah, ah ; 2a e4 2620 2619 cmp bl, 001h ; 80 fb 01 2621 jne near 0239 3h ; 0f 85 82 002620 jne near 02391h ; 0f 85 82 00 2622 2621 cmp al, bl ; 38 d8 2623 jne near 0239 3h ; 0f 85 7c 002622 jne near 02391h ; 0f 85 7c 00 2624 2623 lea dx, [si+004h] ; 8d 54 04 2625 2624 in AL, DX ; ec … … 2627 2626 ; sub ah, ah ; 2a e4 2628 2627 mov bx, ax ; 89 c3 2629 mov byte [bp-0 18h], al ; 88 46 e82628 mov byte [bp-00ah], al ; 88 46 f6 2630 2629 lea dx, [si+005h] ; 8d 54 05 2631 2630 in AL, DX ; ec … … 2639 2638 ; sub ah, ah ; 2a e4 2640 2639 cmp bl, 014h ; 80 fb 14 2641 jne short 0235 2h ; 75 1b2640 jne short 02350h ; 75 1b 2642 2641 cmp cl, 0ebh ; 80 f9 eb 2643 jne short 0235 2h ; 75 162644 movzx ax, byte [bp-01 6h] ; 0f b6 46 ea2642 jne short 02350h ; 75 16 2643 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2645 2644 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2646 mov es, [bp-0 34h] ; 8e 46 cc2647 mov bx, word [bp-02 2h] ; 8b 5e de2645 mov es, [bp-01ah] ; 8e 46 e6 2646 mov bx, word [bp-028h] ; 8b 5e d8 2648 2647 add bx, ax ; 01 c3 2649 2648 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2650 jmp short 0239 3h ; eb 412651 cmp byte [bp-0 18h], 000h ; 80 7e e8002652 jne short 0237 4h ; 75 1c2649 jmp short 02391h ; eb 41 2650 cmp byte [bp-00ah], 000h ; 80 7e f6 00 2651 jne short 02372h ; 75 1c 2653 2652 test bh, bh ; 84 ff 2654 jne short 0237 4h ; 75 182653 jne short 02372h ; 75 18 2655 2654 test al, al ; 84 c0 2656 je short 0237 4h ; 74 142657 movzx bx, byte [bp-01 6h] ; 0f b6 5e ea2655 je short 02372h ; 74 14 2656 movzx bx, byte [bp-010h] ; 0f b6 5e f0 2658 2657 imul bx, bx, strict byte 0001ch ; 6b db 1c 2659 mov es, [bp-0 34h] ; 8e 46 cc2660 add bx, word [bp-02 2h] ; 03 5e de2658 mov es, [bp-01ah] ; 8e 46 e6 2659 add bx, word [bp-028h] ; 03 5e d8 2661 2660 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2662 jmp short 0239 3h ; eb 1f2663 mov al, byte [bp-0 18h] ; 8a 46 e82661 jmp short 02391h ; eb 1f 2662 mov al, byte [bp-00ah] ; 8a 46 f6 2664 2663 cmp AL, strict byte 0ffh ; 3c ff 2665 jne short 0239 3h ; 75 182664 jne short 02391h ; 75 18 2666 2665 cmp bh, al ; 38 c7 2667 jne short 0239 3h ; 75 142668 movzx ax, byte [bp-01 6h] ; 0f b6 46 ea2666 jne short 02391h ; 75 14 2667 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2669 2668 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2670 mov es, [bp-0 34h] ; 8e 46 cc2671 mov bx, word [bp-02 2h] ; 8b 5e de2669 mov es, [bp-01ah] ; 8e 46 e6 2670 mov bx, word [bp-028h] ; 8b 5e d8 2672 2671 add bx, ax ; 01 c3 2673 2672 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2674 mov dx, word [bp-02 4h] ; 8b 56 dc2673 mov dx, word [bp-020h] ; 8b 56 e0 2675 2674 add dx, strict byte 00006h ; 83 c2 06 2676 2675 mov AL, strict byte 008h ; b0 08 2677 2676 out DX, AL ; ee 2678 movzx si, byte [bp-016h] ; 0f b6 76 ea 2679 imul si, si, strict byte 0001ch ; 6b f6 1c 2680 mov es, [bp-034h] ; 8e 46 cc 2681 add si, word [bp-022h] ; 03 76 de 2677 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2678 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2679 mov es, [bp-01ah] ; 8e 46 e6 2680 mov si, word [bp-028h] ; 8b 76 d8 2681 add si, ax ; 01 c6 2682 2682 mov al, byte [es:si+022h] ; 26 8a 44 22 2683 mov byte [bp-00 ah], al ; 88 46 f62683 mov byte [bp-00ch], al ; 88 46 f4 2684 2684 cmp AL, strict byte 002h ; 3c 02 2685 jne near 02 5e2h ; 0f 85 2c022685 jne near 02601h ; 0f 85 4b 02 2686 2686 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2687 2687 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 2688 2688 lea dx, [bp-00264h] ; 8d 96 9c fd 2689 mov bx, word [bp-02 2h] ; 8b 5e de2689 mov bx, word [bp-028h] ; 8b 5e d8 2690 2690 mov word [es:bx+008h], dx ; 26 89 57 08 2691 2691 mov [es:bx+00ah], ss ; 26 8c 57 0a 2692 mov al, byte [bp-01 6h] ; 8a 46 ea2692 mov al, byte [bp-010h] ; 8a 46 f0 2693 2693 mov byte [es:bx+00ch], al ; 26 88 47 0c 2694 2694 mov cx, strict word 00001h ; b9 01 00 2695 2695 mov bx, 000ech ; bb ec 00 2696 mov ax, word [bp-02 2h] ; 8b 46 de2696 mov ax, word [bp-028h] ; 8b 46 d8 2697 2697 mov dx, es ; 8c c2 2698 2698 call 01f53h ; e8 6f fb … … 2707 2707 ; setne al ; 0f 95 c0 2708 2708 xor ah, ah ; 30 e4 2709 mov byte [bp-01 4h], al ; 88 46 ec2709 mov byte [bp-018h], al ; 88 46 e8 2710 2710 cmp byte [bp-00204h], 000h ; 80 be fc fd 00 2711 2711 db 00fh, 095h, 0c0h 2712 2712 ; setne al ; 0f 95 c0 2713 2713 xor ah, ah ; 30 e4 2714 mov byte [bp-0 12h], al ; 88 46 ee2714 mov byte [bp-00eh], al ; 88 46 f2 2715 2715 mov word [bp-02ah], 00200h ; c7 46 d6 00 02 2716 2716 mov ax, word [bp-00262h] ; 8b 86 9e fd 2717 mov word [bp-0 26h], ax ; 89 46 da2717 mov word [bp-01eh], ax ; 89 46 e2 2718 2718 mov ax, word [bp-0025eh] ; 8b 86 a2 fd 2719 mov word [bp-034h], ax ; 89 46 cc 2720 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2719 2721 mov word [bp-01ch], ax ; 89 46 e4 2720 mov ax, word [bp-00258h] ; 8b 86 a8 fd 2721 mov word [bp-01ah], ax ; 89 46 e6 2722 mov si, word [bp-001ech] ; 8b b6 14 fe 2723 mov ax, word [bp-001eah] ; 8b 86 16 fe 2724 mov word [bp-02ch], ax ; 89 46 d4 2722 mov ax, word [bp-001ech] ; 8b 86 14 fe 2723 mov word [bp-030h], ax ; 89 46 d0 2724 mov si, word [bp-001eah] ; 8b b6 16 fe 2725 2725 xor ax, ax ; 31 c0 2726 mov word [bp-0 28h], ax ; 89 46 d82727 mov word [bp-0 1eh], ax ; 89 46 e22728 cmp word [bp-02ch], 00fffh ; 81 7e d4ff 0f2729 jne short 0245fh ; 75 1 e2730 cmp si, strict byte 0ffffh ; 83 feff2726 mov word [bp-032h], ax ; 89 46 ce 2727 mov word [bp-022h], ax ; 89 46 de 2728 cmp si, 00fffh ; 81 fe ff 0f 2729 jne short 0245fh ; 75 1f 2730 cmp word [bp-030h], strict byte 0ffffh ; 83 7e d0 ff 2731 2731 jne short 0245fh ; 75 19 2732 2732 mov ax, word [bp-00196h] ; 8b 86 6a fe 2733 mov word [bp-0 1eh], ax ; 89 46 e22733 mov word [bp-022h], ax ; 89 46 de 2734 2734 mov ax, word [bp-00198h] ; 8b 86 68 fe 2735 mov word [bp-0 28h], ax ; 89 46 d82736 mov ax, word [bp-0019ah] ; 8b 86 66 fe2737 mov word [bp-02ch], ax ; 89 46 d42738 mov si, word [bp-0019ch] ; 8b b6 64 fe2739 mov al, byte [bp-01 6h] ; 8a 46 ea2735 mov word [bp-032h], ax ; 89 46 ce 2736 mov si, word [bp-0019ah] ; 8b b6 66 fe 2737 mov ax, word [bp-0019ch] ; 8b 86 64 fe 2738 mov word [bp-030h], ax ; 89 46 d0 2739 mov al, byte [bp-010h] ; 8a 46 f0 2740 2740 cmp AL, strict byte 001h ; 3c 01 2741 2741 jc short 02472h ; 72 0c … … 2781 2781 mov word [bp-036h], ax ; 89 46 ca 2782 2782 jmp short 024d1h ; eb 12 2783 push word [bp-01eh] ; ff 76 e2 2784 push word [bp-028h] ; ff 76 d8 2785 push word [bp-02ch] ; ff 76 d4 2783 push word [bp-022h] ; ff 76 de 2784 push word [bp-032h] ; ff 76 ce 2786 2785 push si ; 56 2786 push word [bp-030h] ; ff 76 d0 2787 2787 mov dx, ss ; 8c d2 2788 2788 lea ax, [bp-03ah] ; 8d 46 c6 2789 call 05a d0h ; e8 ff 352790 mov bx, 00db 6h ; bb b60d2789 call 05aeeh ; e8 1d 36 2790 mov bx, 00db2h ; bb b2 0d 2791 2791 mov cx, ds ; 8c d9 2792 2792 mov ax, strict word 00004h ; b8 04 00 … … 2798 2798 mov ax, word [bp-038h] ; 8b 46 c8 2799 2799 push ax ; 50 2800 push dword [bp-01ch] ; 66 ff 76 e4 2801 push word [bp-026h] ; ff 76 da 2802 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 2800 push word [bp-01ch] ; ff 76 e4 2801 push word [bp-034h] ; ff 76 cc 2802 push word [bp-01eh] ; ff 76 e2 2803 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2803 2804 push ax ; 50 2804 movzx ax, byte [bp-00 8h] ; 0f b6 46 f82805 movzx ax, byte [bp-006h] ; 0f b6 46 fa 2805 2806 push ax ; 50 2806 2807 push 0015fh ; 68 5f 01 2807 2808 push strict byte 00004h ; 6a 04 2808 call 01a6bh ; e8 6 af52809 call 01a6bh ; e8 68 f5 2809 2810 add sp, strict byte 00014h ; 83 c4 14 2810 movzx di, byte [bp-016h] ; 0f b6 7e ea 2811 imul di, di, strict byte 0001ch ; 6b ff 1c 2812 mov es, [bp-034h] ; 8e 46 cc 2813 add di, word [bp-022h] ; 03 7e de 2811 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2812 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2813 mov es, [bp-01ah] ; 8e 46 e6 2814 mov di, word [bp-028h] ; 8b 7e d8 2815 add di, ax ; 01 c7 2814 2816 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff 2815 mov al, byte [bp-01 4h] ; 8a 46 ec2817 mov al, byte [bp-018h] ; 8a 46 e8 2816 2818 mov byte [es:di+024h], al ; 26 88 45 24 2817 mov al, byte [bp-0 12h] ; 8a 46 ee2819 mov al, byte [bp-00eh] ; 8a 46 f2 2818 2820 mov byte [es:di+026h], al ; 26 88 45 26 2819 2821 mov ax, word [bp-02ah] ; 8b 46 d6 2820 2822 mov word [es:di+028h], ax ; 26 89 45 28 2823 mov ax, word [bp-034h] ; 8b 46 cc 2824 mov word [es:di+030h], ax ; 26 89 45 30 2825 mov ax, word [bp-01eh] ; 8b 46 e2 2826 mov word [es:di+032h], ax ; 26 89 45 32 2821 2827 mov ax, word [bp-01ch] ; 8b 46 e4 2822 mov word [es:di+030h], ax ; 26 89 45 302823 mov ax, word [bp-026h] ; 8b 46 da2824 mov word [es:di+032h], ax ; 26 89 45 322825 mov ax, word [bp-01ah] ; 8b 46 e62826 2828 mov word [es:di+034h], ax ; 26 89 45 34 2827 mov ax, word [bp-0 1eh] ; 8b 46 e22829 mov ax, word [bp-022h] ; 8b 46 de 2828 2830 mov word [es:di+03ch], ax ; 26 89 45 3c 2829 mov ax, word [bp-0 28h] ; 8b 46 d82831 mov ax, word [bp-032h] ; 8b 46 ce 2830 2832 mov word [es:di+03ah], ax ; 26 89 45 3a 2831 mov ax, word [bp-02ch] ; 8b 46 d42832 mov word [es:di+038h], ax ; 26 89 45 382833 mov word [es:di+036h], si ; 26 89 75 362833 mov word [es:di+038h], si ; 26 89 75 38 2834 mov ax, word [bp-030h] ; 8b 46 d0 2835 mov word [es:di+036h], ax ; 26 89 45 36 2834 2836 lea di, [di+02ah] ; 8d 7d 2a 2835 2837 push DS ; 1e … … 2841 2843 movsw ; a5 2842 2844 pop DS ; 1f 2843 mov al, byte [bp-01 6h] ; 8a 46 ea2845 mov al, byte [bp-010h] ; 8a 46 f0 2844 2846 cmp AL, strict byte 002h ; 3c 02 2845 jnc short 025cdh ; 73 602847 jnc near 025ech ; 0f 83 79 00 2846 2848 test al, al ; 84 c0 2847 jne short 0257 6h ; 75 052849 jne short 0257ch ; 75 05 2848 2850 mov di, strict word 0003dh ; bf 3d 00 2849 jmp short 0257 9h ; eb 032851 jmp short 0257fh ; eb 03 2850 2852 mov di, strict word 0004dh ; bf 4d 00 2851 mov dx, word [bp-020h] ; 8b 56 e0 2853 mov dx, word [bp-024h] ; 8b 56 dc 2854 movzx bx, byte [bp-010h] ; 0f b6 5e f0 2855 imul bx, bx, strict byte 00005h ; 6b db 05 2856 sal bx, 002h ; c1 e3 02 2857 add bx, 00104h ; 81 c3 04 01 2858 xor ax, ax ; 31 c0 2859 mov es, ax ; 8e c0 2860 mov word [es:bx], di ; 26 89 3f 2861 mov word [es:bx+002h], dx ; 26 89 57 02 2852 2862 mov ax, word [bp-038h] ; 8b 46 c8 2853 2863 mov es, dx ; 8e c2 … … 2856 2866 mov byte [es:di+002h], al ; 26 88 45 02 2857 2867 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2858 mov al, byte [bp-01 ah] ; 8a 46 e62868 mov al, byte [bp-01ch] ; 8a 46 e4 2859 2869 mov byte [es:di+004h], al ; 26 88 45 04 2860 mov ax, word [bp-0 26h] ; 8b 46 da2870 mov ax, word [bp-01eh] ; 8b 46 e2 2861 2871 mov word [es:di+009h], ax ; 26 89 45 09 2862 mov al, byte [bp-0 1ch] ; 8a 46 e42872 mov al, byte [bp-034h] ; 8a 46 cc 2863 2873 mov byte [es:di+00bh], al ; 26 88 45 0b 2864 mov al, byte [bp-0 1ah] ; 8a 46 e62874 mov al, byte [bp-036h] ; 8a 46 ca 2865 2875 mov byte [es:di+00eh], al ; 26 88 45 0e 2866 2876 xor al, al ; 30 c0 2867 2877 xor ah, ah ; 30 e4 2868 jmp short 025 b7h ; eb 052878 jmp short 025d6h ; eb 05 2869 2879 cmp ah, 00fh ; 80 fc 0f 2870 jnc short 025 c5h ; 73 0e2880 jnc short 025e4h ; 73 0e 2871 2881 movzx bx, ah ; 0f b6 dc 2872 2882 mov es, dx ; 8e c2 … … 2875 2885 db 0feh, 0c4h 2876 2886 ; inc ah ; fe c4 2877 jmp short 025 b2h ; eb ed2887 jmp short 025d1h ; eb ed 2878 2888 neg al ; f6 d8 2879 2889 mov es, dx ; 8e c2 2880 2890 mov byte [es:di+00fh], al ; 26 88 45 0f 2881 movzx bx, byte [bp-01 0h] ; 0f b6 5e f02882 mov es, [bp-0 34h] ; 8e 46 cc2883 add bx, word [bp-02 2h] ; 03 5e de2884 mov al, byte [bp-01 6h] ; 8a 46 ea2891 movzx bx, byte [bp-012h] ; 0f b6 5e ee 2892 mov es, [bp-01ah] ; 8e 46 e6 2893 add bx, word [bp-028h] ; 03 5e d8 2894 mov al, byte [bp-010h] ; 8a 46 f0 2885 2895 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2886 inc byte [bp-01 0h] ; fe 46 f02887 cmp byte [bp-00 ah], 003h ; 80 7e f6032888 jne near 026 85h ; 0f 85 9b002889 movzx ax, byte [bp-01 6h] ; 0f b6 46 ea2896 inc byte [bp-012h] ; fe 46 ee 2897 cmp byte [bp-00ch], 003h ; 80 7e f4 03 2898 jne near 026a7h ; 0f 85 9e 00 2899 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2890 2900 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2891 mov es, [bp-0 34h] ; 8e 46 cc2892 mov bx, word [bp-02 2h] ; 8b 5e de2901 mov es, [bp-01ah] ; 8e 46 e6 2902 mov bx, word [bp-028h] ; 8b 5e d8 2893 2903 add bx, ax ; 01 c3 2894 2904 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2895 2905 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2896 2906 lea dx, [bp-00264h] ; 8d 96 9c fd 2897 mov bx, word [bp-02 2h] ; 8b 5e de2907 mov bx, word [bp-028h] ; 8b 5e d8 2898 2908 mov word [es:bx+008h], dx ; 26 89 57 08 2899 2909 mov [es:bx+00ah], ss ; 26 8c 57 0a 2900 mov al, byte [bp-01 6h] ; 8a 46 ea2910 mov al, byte [bp-010h] ; 8a 46 f0 2901 2911 mov byte [es:bx+00ch], al ; 26 88 47 0c 2902 2912 mov cx, strict word 00001h ; b9 01 00 2903 2913 mov bx, 000a1h ; bb a1 00 2904 mov ax, word [bp-02 2h] ; 8b 46 de2914 mov ax, word [bp-028h] ; 8b 46 d8 2905 2915 mov dx, es ; 8c c2 2906 call 01f53h ; e8 2cf92916 call 01f53h ; e8 0d f9 2907 2917 test ax, ax ; 85 c0 2908 je short 026 36h ; 74 0b2918 je short 02655h ; 74 0b 2909 2919 push 00186h ; 68 86 01 2910 2920 push strict byte 00007h ; 6a 07 2911 call 01a6bh ; e8 38f42921 call 01a6bh ; e8 19 f4 2912 2922 add sp, strict byte 00004h ; 83 c4 04 2913 2923 mov dl, byte [bp-00263h] ; 8a 96 9d fd … … 2916 2926 db 00fh, 095h, 0c0h 2917 2927 ; setne al ; 0f 95 c0 2918 movzx bx, al ; 0f b6 d8 2928 xor ah, ah ; 30 e4 2929 mov cx, ax ; 89 c1 2919 2930 cmp byte [bp-00204h], 000h ; 80 be fc fd 00 2920 2931 db 00fh, 095h, 0c0h 2921 2932 ; setne al ; 0f 95 c0 2922 2933 xor ah, ah ; 30 e4 2923 movzx cx, byte [bp-016h] ; 0f b6 4e ea 2924 imul cx, cx, strict byte 0001ch ; 6b c9 1c 2925 mov es, [bp-034h] ; 8e 46 cc 2926 mov si, word [bp-022h] ; 8b 76 de 2927 add si, cx ; 01 ce 2934 mov bx, ax ; 89 c3 2935 movzx ax, byte [bp-010h] ; 0f b6 46 f0 2936 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2937 mov es, [bp-01ah] ; 8e 46 e6 2938 mov si, word [bp-028h] ; 8b 76 d8 2939 add si, ax ; 01 c6 2928 2940 mov byte [es:si+023h], dl ; 26 88 54 23 2929 mov byte [es:si+024h], bl ; 26 88 5c 242930 mov byte [es:si+026h], al ; 26 88 44262941 mov byte [es:si+024h], cl ; 26 88 4c 24 2942 mov byte [es:si+026h], bl ; 26 88 5c 26 2931 2943 mov word [es:si+028h], 00800h ; 26 c7 44 28 00 08 2932 movzx bx, byte [bp-00 6h] ; 0f b6 5e fa2933 add bx, word [bp-02 2h] ; 03 5e de2934 mov al, byte [bp-01 6h] ; 8a 46 ea2944 movzx bx, byte [bp-008h] ; 0f b6 5e f8 2945 add bx, word [bp-028h] ; 03 5e d8 2946 mov al, byte [bp-010h] ; 8a 46 f0 2935 2947 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2936 inc byte [bp-00 6h] ; fe 46 fa2937 mov al, byte [bp-00 ah] ; 8a 46 f62948 inc byte [bp-008h] ; fe 46 f8 2949 mov al, byte [bp-00ch] ; 8a 46 f4 2938 2950 cmp AL, strict byte 003h ; 3c 03 2939 je short 026 bdh ; 74 312951 je short 026ddh ; 74 2f 2940 2952 cmp AL, strict byte 002h ; 3c 02 2941 jne near 02720h ; 0f 85 8e 00 2942 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2943 imul ax, ax, strict byte 0001ch ; 6b c0 1c 2944 mov es, [bp-034h] ; 8e 46 cc 2945 mov si, word [bp-022h] ; 8b 76 de 2946 add si, ax ; 01 c6 2947 mov ax, word [es:si+03ch] ; 26 8b 44 3c 2948 mov bx, word [es:si+03ah] ; 26 8b 5c 3a 2949 mov cx, word [es:si+038h] ; 26 8b 4c 38 2950 mov dx, word [es:si+036h] ; 26 8b 54 36 2953 jne near 02740h ; 0f 85 8c 00 2954 movzx di, byte [bp-010h] ; 0f b6 7e f0 2955 imul di, di, strict byte 0001ch ; 6b ff 1c 2956 mov es, [bp-01ah] ; 8e 46 e6 2957 add di, word [bp-028h] ; 03 7e d8 2958 mov ax, word [es:di+03ch] ; 26 8b 45 3c 2959 mov bx, word [es:di+03ah] ; 26 8b 5d 3a 2960 mov cx, word [es:di+038h] ; 26 8b 4d 38 2961 mov dx, word [es:di+036h] ; 26 8b 55 36 2951 2962 mov si, strict word 0000bh ; be 0b 00 2952 call 0a 0f0h ; e8 39 7a2953 mov word [bp-0 30h], dx ; 89 56 d02954 mov word [bp-02 eh], cx ; 89 4e d22963 call 0a110h ; e8 39 7a 2964 mov word [bp-02ch], dx ; 89 56 d4 2965 mov word [bp-026h], cx ; 89 4e da 2955 2966 movzx ax, byte [bp-001c3h] ; 0f b6 86 3d fe 2956 2967 sal ax, 008h ; c1 e0 08 2957 2968 movzx dx, byte [bp-001c4h] ; 0f b6 96 3c fe 2958 2969 or dx, ax ; 09 c2 2959 mov byte [bp-0 0ch], 00fh ; c6 46 f40f2960 jmp short 026 dbh ; eb 092961 dec byte [bp-0 0ch] ; fe 4e f42962 cmp byte [bp-0 0ch], 000h ; 80 7e f4002963 jbe short 02 6e8h ; 76 0d2964 movzx cx, byte [bp-0 0ch] ; 0f b6 4e f42970 mov byte [bp-014h], 00fh ; c6 46 ec 0f 2971 jmp short 026fbh ; eb 09 2972 dec byte [bp-014h] ; fe 4e ec 2973 cmp byte [bp-014h], 000h ; 80 7e ec 00 2974 jbe short 02708h ; 76 0d 2975 movzx cx, byte [bp-014h] ; 0f b6 4e ec 2965 2976 mov ax, strict word 00001h ; b8 01 00 2966 2977 sal ax, CL ; d3 e0 2967 2978 test dx, ax ; 85 c2 2968 je short 026 d2h ; 74 ea2979 je short 026f2h ; 74 ea 2969 2980 xor di, di ; 31 ff 2970 jmp short 02 6f1h ; eb 052981 jmp short 02711h ; eb 05 2971 2982 cmp di, strict byte 00014h ; 83 ff 14 2972 jnl short 027 06h ; 7d 152983 jnl short 02726h ; 7d 15 2973 2984 mov si, di ; 89 fe 2974 2985 add si, di ; 01 fe … … 2978 2989 mov byte [bp+si-063h], al ; 88 42 9d 2979 2990 inc di ; 47 2980 jmp short 02 6ech ; eb e62991 jmp short 0270ch ; eb e6 2981 2992 mov byte [bp-03ch], 000h ; c6 46 c4 00 2982 2993 mov di, strict word 00027h ; bf 27 00 2983 jmp short 027 14h ; eb 052994 jmp short 02734h ; eb 05 2984 2995 dec di ; 4f 2985 2996 test di, di ; 85 ff 2986 jle short 027 20h ; 7e 0c2997 jle short 02740h ; 7e 0c 2987 2998 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2988 jne short 027 20h ; 75 062999 jne short 02740h ; 75 06 2989 3000 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2990 jmp short 027 0fh ; eb ef2991 mov al, byte [bp-00 ah] ; 8a 46 f63001 jmp short 0272fh ; eb ef 3002 mov al, byte [bp-00ch] ; 8a 46 f4 2992 3003 cmp AL, strict byte 003h ; 3c 03 2993 je short 027 83h ; 74 5c3004 je short 027a5h ; 74 5e 2994 3005 cmp AL, strict byte 002h ; 3c 02 2995 je short 027 34h ; 74 093006 je short 02754h ; 74 09 2996 3007 cmp AL, strict byte 001h ; 3c 01 2997 je near 02 7edh ; 0f 84 bc 002998 jmp near 028 0ch ; e9 d8 002999 cmp byte [bp-0 0eh], 000h ; 80 7e f2003000 je short 027 3fh ; 74 053008 je near 0280dh ; 0f 84 bc 00 3009 jmp near 0282ch ; e9 d8 00 3010 cmp byte [bp-016h], 000h ; 80 7e ea 00 3011 je short 0275fh ; 74 05 3001 3012 mov ax, 001b1h ; b8 b1 01 3002 jmp short 027 42h ; eb 033013 jmp short 02762h ; eb 03 3003 3014 mov ax, 001b8h ; b8 b8 01 3004 3015 push ax ; 50 3005 movzx ax, byte [bp-00 8h] ; 0f b6 46 f83016 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3006 3017 push ax ; 50 3007 3018 push 001bfh ; 68 bf 01 3008 3019 push strict byte 00002h ; 6a 02 3009 call 01a6bh ; e8 1b f33020 call 01a6bh ; e8 fb f2 3010 3021 add sp, strict byte 00008h ; 83 c4 08 3011 3022 xor di, di ; 31 ff … … 3013 3024 inc di ; 47 3014 3025 test ax, ax ; 85 c0 3015 je short 027 6ch ; 74 0e3026 je short 0278ch ; 74 0e 3016 3027 push ax ; 50 3017 3028 push 001cah ; 68 ca 01 3018 3029 push strict byte 00002h ; 6a 02 3019 call 01a6bh ; e8 04 f33030 call 01a6bh ; e8 e4 f2 3020 3031 add sp, strict byte 00006h ; 83 c4 06 3021 jmp short 02755h ; eb e9 3022 push dword [bp-030h] ; 66 ff 76 d0 3023 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3032 jmp short 02775h ; eb e9 3033 push word [bp-026h] ; ff 76 da 3034 push word [bp-02ch] ; ff 76 d4 3035 movzx ax, byte [bp-014h] ; 0f b6 46 ec 3024 3036 push ax ; 50 3025 3037 push 001cdh ; 68 cd 01 3026 3038 push strict byte 00002h ; 6a 02 3027 call 01a6bh ; e8 eef23039 call 01a6bh ; e8 cc f2 3028 3040 add sp, strict byte 0000ah ; 83 c4 0a 3029 jmp near 028 0ch ; e9 89003030 cmp byte [bp-0 0eh], 000h ; 80 7e f2003031 je short 027 8eh ; 74 053041 jmp near 0282ch ; e9 87 00 3042 cmp byte [bp-016h], 000h ; 80 7e ea 00 3043 je short 027b0h ; 74 05 3032 3044 mov ax, 001b1h ; b8 b1 01 3033 jmp short 027 91h ; eb 033045 jmp short 027b3h ; eb 03 3034 3046 mov ax, 001b8h ; b8 b8 01 3035 3047 push ax ; 50 3036 movzx ax, byte [bp-00 8h] ; 0f b6 46 f83048 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3037 3049 push ax ; 50 3038 3050 push 001bfh ; 68 bf 01 3039 3051 push strict byte 00002h ; 6a 02 3040 call 01a6bh ; e8 ccf23052 call 01a6bh ; e8 aa f2 3041 3053 add sp, strict byte 00008h ; 83 c4 08 3042 3054 xor di, di ; 31 ff … … 3044 3056 inc di ; 47 3045 3057 test ax, ax ; 85 c0 3046 je short 027 bbh ; 74 0e3058 je short 027ddh ; 74 0e 3047 3059 push ax ; 50 3048 3060 push 001cah ; 68 ca 01 3049 3061 push strict byte 00002h ; 6a 02 3050 call 01a6bh ; e8 b5f23062 call 01a6bh ; e8 93 f2 3051 3063 add sp, strict byte 00006h ; 83 c4 06 3052 jmp short 027a4h ; eb e9 3053 movzx ax, byte [bp-016h] ; 0f b6 46 ea 3054 imul ax, ax, strict byte 0001ch ; 6b c0 1c 3055 mov es, [bp-034h] ; 8e 46 cc 3056 mov bx, word [bp-022h] ; 8b 5e de 3057 add bx, ax ; 01 c3 3064 jmp short 027c6h ; eb e9 3065 movzx bx, byte [bp-010h] ; 0f b6 5e f0 3066 imul bx, bx, strict byte 0001ch ; 6b db 1c 3067 mov es, [bp-01ah] ; 8e 46 e6 3068 add bx, word [bp-028h] ; 03 5e d8 3058 3069 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 3059 jne short 027 dbh ; 75 0a3060 movzx ax, byte [bp-0 0ch] ; 0f b6 46 f43070 jne short 027fbh ; 75 0a 3071 movzx ax, byte [bp-014h] ; 0f b6 46 ec 3061 3072 push ax ; 50 3062 3073 push 001edh ; 68 ed 01 3063 jmp short 02 7e3h ; eb 083064 movzx ax, byte [bp-0 0ch] ; 0f b6 46 f43074 jmp short 02803h ; eb 08 3075 movzx ax, byte [bp-014h] ; 0f b6 46 ec 3065 3076 push ax ; 50 3066 3077 push 00207h ; 68 07 02 3067 3078 push strict byte 00002h ; 6a 02 3068 call 01a6bh ; e8 83 f23079 call 01a6bh ; e8 63 f2 3069 3080 add sp, strict byte 00006h ; 83 c4 06 3070 jmp short 028 0ch ; eb 1f3071 cmp byte [bp-0 0eh], 000h ; 80 7e f2003072 je short 02 7f8h ; 74 053081 jmp short 0282ch ; eb 1f 3082 cmp byte [bp-016h], 000h ; 80 7e ea 00 3083 je short 02818h ; 74 05 3073 3084 mov ax, 001b1h ; b8 b1 01 3074 jmp short 02 7fbh ; eb 033085 jmp short 0281bh ; eb 03 3075 3086 mov ax, 001b8h ; b8 b8 01 3076 3087 push ax ; 50 3077 movzx ax, byte [bp-00 8h] ; 0f b6 46 f83088 movzx ax, byte [bp-006h] ; 0f b6 46 fa 3078 3089 push ax ; 50 3079 3090 push 00219h ; 68 19 02 3080 3091 push strict byte 00002h ; 6a 02 3081 call 01a6bh ; e8 62 f23092 call 01a6bh ; e8 42 f2 3082 3093 add sp, strict byte 00008h ; 83 c4 08 3083 inc byte [bp-01 6h] ; fe 46 ea3084 cmp byte [bp-01 6h], 008h ; 80 7e ea083085 jnc short 028 67h ; 73 523086 movzx bx, byte [bp-01 6h] ; 0f b6 5e ea3094 inc byte [bp-010h] ; fe 46 f0 3095 cmp byte [bp-010h], 008h ; 80 7e f0 08 3096 jnc short 02885h ; 73 50 3097 movzx bx, byte [bp-010h] ; 0f b6 5e f0 3087 3098 mov ax, bx ; 89 d8 3088 3099 cwd ; 99 … … 3091 3102 sar ax, 1 ; d1 f8 3092 3103 mov cx, ax ; 89 c1 3093 mov byte [bp-00 8h], al ; 88 46 f83104 mov byte [bp-006h], al ; 88 46 fa 3094 3105 mov ax, bx ; 89 d8 3095 3106 cwd ; 99 3096 3107 mov bx, strict word 00002h ; bb 02 00 3097 3108 idiv bx ; f7 fb 3098 mov word [bp-032h], dx ; 89 56 ce 3099 mov al, byte [bp-032h] ; 8a 46 ce 3100 mov byte [bp-00eh], al ; 88 46 f2 3101 movzx ax, cl ; 0f b6 c1 3102 imul ax, ax, strict byte 00006h ; 6b c0 06 3103 mov es, [bp-034h] ; 8e 46 cc 3104 mov bx, word [bp-022h] ; 8b 5e de 3105 add bx, ax ; 01 c3 3109 mov word [bp-02eh], dx ; 89 56 d2 3110 mov al, byte [bp-02eh] ; 8a 46 d2 3111 mov byte [bp-016h], al ; 88 46 ea 3112 movzx bx, cl ; 0f b6 d9 3113 imul bx, bx, strict byte 00006h ; 6b db 06 3114 mov es, [bp-01ah] ; 8e 46 e6 3115 add bx, word [bp-028h] ; 03 5e d8 3106 3116 mov si, word [es:bx+00206h] ; 26 8b b7 06 02 3107 3117 mov ax, word [es:bx+00208h] ; 26 8b 87 08 02 3108 mov word [bp-02 4h], ax ; 89 46 dc3118 mov word [bp-020h], ax ; 89 46 e0 3109 3119 mov dx, ax ; 89 c2 3110 3120 add dx, strict byte 00006h ; 83 c2 06 3111 3121 mov AL, strict byte 00ah ; b0 0a 3112 3122 out DX, AL ; ee 3113 cmp byte [bp-0 32h], 000h ; 80 7e ce003114 je near 0228fh ; 0f 84 2efa3123 cmp byte [bp-02eh], 000h ; 80 7e d2 00 3124 je near 0228fh ; 0f 84 10 fa 3115 3125 mov ax, 000b0h ; b8 b0 00 3116 jmp near 02292h ; e9 2bfa3117 mov al, byte [bp-01 0h] ; 8a 46 f03118 mov es, [bp-0 34h] ; 8e 46 cc3119 mov bx, word [bp-02 2h] ; 8b 5e de3126 jmp near 02292h ; e9 0d fa 3127 mov al, byte [bp-012h] ; 8a 46 ee 3128 mov es, [bp-01ah] ; 8e 46 e6 3129 mov bx, word [bp-028h] ; 8b 5e d8 3120 3130 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 3121 mov al, byte [bp-00 6h] ; 8a 46 fa3131 mov al, byte [bp-008h] ; 8a 46 f8 3122 3132 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 3123 movzx bx, byte [bp-01 0h] ; 0f b6 5e f03133 movzx bx, byte [bp-012h] ; 0f b6 5e ee 3124 3134 mov dx, strict word 00075h ; ba 75 00 3125 3135 mov ax, strict word 00040h ; b8 40 00 3126 call 01757h ; e8 cdee3136 call 01757h ; e8 af ee 3127 3137 lea sp, [bp-004h] ; 8d 66 fc 3128 3138 pop di ; 5f … … 3130 3140 pop bp ; 5d 3131 3141 retn ; c3 3132 ata_cmd_data_out_: ; 0xf28 91LB 0x2bc3142 ata_cmd_data_out_: ; 0xf28af LB 0x2bc 3133 3143 push bp ; 55 3134 3144 mov bp, sp ; 89 e5 … … 3161 3171 mov byte [bp-008h], al ; 88 46 f8 3162 3172 cmp AL, strict byte 001h ; 3c 01 3163 jne short 02 8e9h ; 75 073173 jne short 02907h ; 75 07 3164 3174 mov word [bp-020h], 00080h ; c7 46 e0 80 00 3165 jmp short 02 8eeh ; eb 053175 jmp short 0290ch ; eb 05 3166 3176 mov word [bp-020h], 00100h ; c7 46 e0 00 01 3167 3177 mov dx, word [bp-00ah] ; 8b 56 f6 … … 3171 3181 ; sub ah, ah ; 2a e4 3172 3182 test AL, strict byte 080h ; a8 80 3173 je short 029 0ah ; 74 0f3183 je short 02928h ; 74 0f 3174 3184 mov dx, word [bp-012h] ; 8b 56 ee 3175 3185 add dx, strict byte 00006h ; 83 c2 06 … … 3177 3187 out DX, AL ; ee 3178 3188 mov dx, strict word 00001h ; ba 01 00 3179 jmp near 02b 44h ; e9 3a 023189 jmp near 02b62h ; e9 3a 02 3180 3190 mov es, [bp-00ch] ; 8e 46 f4 3181 3191 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3199 3209 mov ax, word [bp-01ch] ; 8b 46 e4 3200 3210 test ax, ax ; 85 c0 3201 jne near 02a 1bh ; 0f 85 c7 003211 jne near 02a39h ; 0f 85 c7 00 3202 3212 xor dx, dx ; 31 d2 3203 3213 xor bx, bx ; 31 db … … 3208 3218 adc ax, word [bp-010h] ; 13 46 f0 3209 3219 test ax, ax ; 85 c0 3210 jnbe short 029 7bh ; 77 103211 jne short 029 deh ; 75 713220 jnbe short 02999h ; 77 10 3221 jne short 029fch ; 75 71 3212 3222 test bx, bx ; 85 db 3213 jnbe short 029 7bh ; 77 0a3214 jne short 029 deh ; 75 6b3223 jnbe short 02999h ; 77 0a 3224 jne short 029fch ; 75 6b 3215 3225 cmp dx, 01000h ; 81 fa 00 10 3216 jnbe short 029 7bh ; 77 023217 jne short 029 deh ; 75 633226 jnbe short 02999h ; 77 02 3227 jne short 029fch ; 75 63 3218 3228 mov ax, word [bp-010h] ; 8b 46 f0 3219 3229 mov bx, word [bp-014h] ; 8b 5e ec … … 3221 3231 mov dx, word [bp-01eh] ; 8b 56 e2 3222 3232 mov si, strict word 00018h ; be 18 00 3223 call 0a 0f0h ; e8 63773233 call 0a110h ; e8 65 77 3224 3234 xor dh, dh ; 30 f6 3225 3235 mov word [bp-01ch], dx ; 89 56 e4 … … 3229 3239 mov dx, word [bp-01eh] ; 8b 56 e2 3230 3240 mov si, strict word 00020h ; be 20 00 3231 call 0a 0f0h ; e8 4c773241 call 0a110h ; e8 4e 77 3232 3242 mov bx, dx ; 89 d3 3233 3243 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3263 3273 mov dx, word [bp-01eh] ; 8b 56 e2 3264 3274 mov si, strict word 00008h ; be 08 00 3265 call 0a 0f0h ; e8 f8763275 call 0a110h ; e8 fa 76 3266 3276 mov word [bp-010h], ax ; 89 46 f0 3267 3277 mov word [bp-014h], bx ; 89 5e ec … … 3270 3280 mov word [bp-026h], dx ; 89 56 da 3271 3281 mov si, strict word 00010h ; be 10 00 3272 call 0a 0f0h ; e8 e3763282 call 0a110h ; e8 e5 76 3273 3283 mov word [bp-01eh], dx ; 89 56 e2 3274 3284 mov ax, dx ; 89 d0 … … 3303 3313 out DX, AL ; ee 3304 3314 cmp byte [bp-006h], 000h ; 80 7e fa 00 3305 je short 02a 5dh ; 74 053315 je short 02a7bh ; 74 05 3306 3316 mov ax, 000b0h ; b8 b0 00 3307 jmp short 02a 60h ; eb 033317 jmp short 02a7eh ; eb 03 3308 3318 mov ax, 000a0h ; b8 a0 00 3309 3319 movzx dx, byte [bp-022h] ; 0f b6 56 de … … 3323 3333 mov dl, al ; 88 c2 3324 3334 test AL, strict byte 080h ; a8 80 3325 jne short 02a 77h ; 75 f13335 jne short 02a95h ; 75 f1 3326 3336 test AL, strict byte 001h ; a8 01 3327 je short 02a 99h ; 74 0f3337 je short 02ab7h ; 74 0f 3328 3338 mov dx, word [bp-012h] ; 8b 56 ee 3329 3339 add dx, strict byte 00006h ; 83 c2 06 … … 3331 3341 out DX, AL ; ee 3332 3342 mov dx, strict word 00002h ; ba 02 00 3333 jmp near 02b 44h ; e9 ab 003343 jmp near 02b62h ; e9 ab 00 3334 3344 test dl, 008h ; f6 c2 08 3335 jne short 02a adh ; 75 0f3345 jne short 02acbh ; 75 0f 3336 3346 mov dx, word [bp-012h] ; 8b 56 ee 3337 3347 add dx, strict byte 00006h ; 83 c2 06 … … 3339 3349 out DX, AL ; ee 3340 3350 mov dx, strict word 00003h ; ba 03 00 3341 jmp near 02b 44h ; e9 97 003351 jmp near 02b62h ; e9 97 00 3342 3352 sti ; fb 3343 3353 mov ax, word [bp-00eh] ; 8b 46 f2 3344 3354 cmp ax, 0f800h ; 3d 00 f8 3345 jc short 02a c6h ; 72 103355 jc short 02ae4h ; 72 10 3346 3356 sub ax, 00800h ; 2d 00 08 3347 3357 mov dx, word [bp-018h] ; 8b 56 e8 … … 3350 3360 mov word [bp-018h], dx ; 89 56 e8 3351 3361 cmp byte [bp-008h], 001h ; 80 7e f8 01 3352 jne short 02a deh ; 75 123362 jne short 02afch ; 75 12 3353 3363 mov dx, word [bp-00ah] ; 8b 56 f6 3354 3364 mov cx, word [bp-020h] ; 8b 4e e0 … … 3357 3367 db 0f3h, 066h, 026h, 06fh 3358 3368 ; rep es outsd ; f3 66 26 6f 3359 jmp short 02 aedh ; eb 0f3369 jmp short 02b0bh ; eb 0f 3360 3370 mov dx, word [bp-00ah] ; 8b 56 f6 3361 3371 mov cx, word [bp-020h] ; 8b 4e e0 … … 3375 3385 mov dl, al ; 88 c2 3376 3386 test AL, strict byte 080h ; a8 80 3377 jne short 02 afah ; 75 f13387 jne short 02b18h ; 75 f1 3378 3388 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3379 jne short 02b 23h ; 75 143389 jne short 02b41h ; 75 14 3380 3390 and AL, strict byte 0e9h ; 24 e9 3381 3391 cmp AL, strict byte 040h ; 3c 40 3382 je short 02b 39h ; 74 243392 je short 02b57h ; 74 24 3383 3393 mov dx, word [bp-012h] ; 8b 56 ee 3384 3394 add dx, strict byte 00006h ; 83 c2 06 … … 3386 3396 out DX, AL ; ee 3387 3397 mov dx, strict word 00006h ; ba 06 00 3388 jmp short 02b 44h ; eb 213398 jmp short 02b62h ; eb 21 3389 3399 mov al, dl ; 88 d0 3390 3400 and AL, strict byte 0c9h ; 24 c9 3391 3401 cmp AL, strict byte 048h ; 3c 48 3392 je short 02a aeh ; 74 833402 je short 02acch ; 74 83 3393 3403 mov dx, word [bp-012h] ; 8b 56 ee 3394 3404 add dx, strict byte 00006h ; 83 c2 06 … … 3396 3406 out DX, AL ; ee 3397 3407 mov dx, strict word 00007h ; ba 07 00 3398 jmp short 02b 44h ; eb 0b3408 jmp short 02b62h ; eb 0b 3399 3409 mov dx, word [bp-012h] ; 8b 56 ee 3400 3410 add dx, strict byte 00006h ; 83 c2 06 … … 3408 3418 pop bp ; 5d 3409 3419 retn ; c3 3410 @ata_read_sectors: ; 0xf2b 4dLB 0xb53420 @ata_read_sectors: ; 0xf2b6b LB 0xb5 3411 3421 push bp ; 55 3412 3422 mov bp, sp ; 89 e5 … … 3421 3431 sal dx, 009h ; c1 e2 09 3422 3432 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3423 je short 02b 8eh ; 74 1f3433 je short 02bach ; 74 1f 3424 3434 xor ah, ah ; 30 e4 3425 3435 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3431 3441 mov ax, si ; 89 f0 3432 3442 mov dx, es ; 8c c2 3433 call 01f53h ; e8 caf33443 call 01f53h ; e8 ac f3 3434 3444 mov es, [bp-00ah] ; 8e 46 f6 3435 jmp short 02 bf3h ; eb 653445 jmp short 02c11h ; eb 65 3436 3446 xor bx, bx ; 31 db 3437 3447 mov word [bp-00ah], bx ; 89 5e f6 … … 3448 3458 adc di, word [bp-00ch] ; 13 7e f4 3449 3459 test di, di ; 85 ff 3450 jnbe short 02b cah ; 77 113451 jne short 02b d6h ; 75 1b3460 jnbe short 02be8h ; 77 11 3461 jne short 02bf4h ; 75 1b 3452 3462 test bx, bx ; 85 db 3453 jnbe short 02b cah ; 77 0b3454 jne short 02b d6h ; 75 153463 jnbe short 02be8h ; 77 0b 3464 jne short 02bf4h ; 75 15 3455 3465 cmp word [bp-006h], 01000h ; 81 7e fa 00 10 3456 jnbe short 02b cah ; 77 023457 jne short 02b d6h ; 75 0c3466 jnbe short 02be8h ; 77 02 3467 jne short 02bf4h ; 75 0c 3458 3468 mov bx, strict word 00024h ; bb 24 00 3459 3469 mov ax, si ; 89 f0 3460 3470 mov dx, es ; 8c c2 3461 call 01f53h ; e8 7ff33462 jmp short 02 bf9h ; eb 233471 call 01f53h ; e8 61 f3 3472 jmp short 02c17h ; eb 23 3463 3473 xor ah, ah ; 30 e4 3464 3474 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3470 3480 mov ax, si ; 89 f0 3471 3481 mov dx, es ; 8c c2 3472 call 01f53h ; e8 63f33482 call 01f53h ; e8 45 f3 3473 3483 mov es, [bp-006h] ; 8e 46 fa 3474 3484 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3478 3488 pop bp ; 5d 3479 3489 retn 00004h ; c2 04 00 3480 @ata_write_sectors: ; 0xf2c 02LB 0x5b3490 @ata_write_sectors: ; 0xf2c20 LB 0x5b 3481 3491 push bp ; 55 3482 3492 mov bp, sp ; 89 e5 … … 3487 3497 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3488 3498 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3489 je short 02c 22h ; 74 0c3499 je short 02c40h ; 74 0c 3490 3500 mov bx, strict word 00030h ; bb 30 00 3491 3501 mov ax, si ; 89 f0 3492 3502 mov dx, es ; 8c c2 3493 call 028 91h ; e8 71 fc3494 jmp short 02c 54h ; eb 323503 call 028afh ; e8 71 fc 3504 jmp short 02c72h ; eb 32 3495 3505 xor ax, ax ; 31 c0 3496 3506 xor bx, bx ; 31 db … … 3503 3513 adc dx, word [es:si+006h] ; 26 13 54 06 3504 3514 test dx, dx ; 85 d2 3505 jnbe short 02c 4fh ; 77 0f3506 jne short 02c 16h ; 75 d43515 jnbe short 02c6dh ; 77 0f 3516 jne short 02c34h ; 75 d4 3507 3517 test bx, bx ; 85 db 3508 jnbe short 02c 4fh ; 77 093509 jne short 02c 16h ; 75 ce3518 jnbe short 02c6dh ; 77 09 3519 jne short 02c34h ; 75 ce 3510 3520 cmp ax, 01000h ; 3d 00 10 3511 jnbe short 02c 4fh ; 77 023512 jne short 02c 16h ; 75 c73521 jnbe short 02c6dh ; 77 02 3522 jne short 02c34h ; 75 c7 3513 3523 mov bx, strict word 00034h ; bb 34 00 3514 jmp short 02c 19h ; eb c53524 jmp short 02c37h ; eb c5 3515 3525 lea sp, [bp-004h] ; 8d 66 fc 3516 3526 pop di ; 5f … … 3518 3528 pop bp ; 5d 3519 3529 retn 00004h ; c2 04 00 3520 ata_cmd_packet_: ; 0xf2c 5dLB 0x2e83530 ata_cmd_packet_: ; 0xf2c7b LB 0x2e8 3521 3531 push bp ; 55 3522 3532 mov bp, sp ; 89 e5 … … 3529 3539 mov dx, strict word 0000eh ; ba 0e 00 3530 3540 mov ax, strict word 00040h ; b8 40 00 3531 call 01765h ; e8 f1ea3541 call 01765h ; e8 d3 ea 3532 3542 mov word [bp-012h], 00122h ; c7 46 ee 22 01 3533 3543 mov word [bp-00eh], ax ; 89 46 f2 … … 3538 3548 mov byte [bp-006h], ah ; 88 66 fa 3539 3549 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3540 jne short 02c afh ; 75 1f3541 mov bx, 00db 6h ; bb b60d3550 jne short 02ccdh ; 75 1f 3551 mov bx, 00db2h ; bb b2 0d 3542 3552 mov cx, ds ; 8c d9 3543 3553 mov ax, strict word 00004h ; b8 04 00 3544 call 01a2ah ; e8 8fed3554 call 01a2ah ; e8 71 ed 3545 3555 push 00233h ; 68 33 02 3546 3556 push 00242h ; 68 42 02 3547 3557 push strict byte 00004h ; 6a 04 3548 call 01a6bh ; e8 c5ed3558 call 01a6bh ; e8 a7 ed 3549 3559 add sp, strict byte 00006h ; 83 c4 06 3550 3560 mov dx, strict word 00001h ; ba 01 00 3551 jmp near 02f 3ah ; e9 8b 023561 jmp near 02f58h ; e9 8b 02 3552 3562 test byte [bp+004h], 001h ; f6 46 04 01 3553 jne short 02c a9h ; 75 f43563 jne short 02cc7h ; 75 f4 3554 3564 xor ah, ah ; 30 e4 3555 3565 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3569 3579 mov al, byte [bp-008h] ; 8a 46 f8 3570 3580 cmp AL, strict byte 00ch ; 3c 0c 3571 jnc short 02 cf2h ; 73 063581 jnc short 02d10h ; 73 06 3572 3582 mov byte [bp-008h], 00ch ; c6 46 f8 0c 3573 jmp short 02 cf8h ; eb 063574 jbe short 02 cf8h ; 76 043583 jmp short 02d16h ; eb 06 3584 jbe short 02d16h ; 76 04 3575 3585 mov byte [bp-008h], 010h ; c6 46 f8 10 3576 3586 shr byte [bp-008h], 1 ; d0 6e f8 … … 3585 3595 ; sub ah, ah ; 2a e4 3586 3596 test AL, strict byte 080h ; a8 80 3587 je short 02d 20h ; 74 063597 je short 02d3eh ; 74 06 3588 3598 mov dx, strict word 00002h ; ba 02 00 3589 jmp near 02f 3ah ; e9 1a 023599 jmp near 02f58h ; e9 1a 02 3590 3600 mov dx, word [bp-010h] ; 8b 56 f0 3591 3601 add dx, strict byte 00006h ; 83 c2 06 … … 3599 3609 out DX, AL ; ee 3600 3610 cmp byte [bp-006h], 000h ; 80 7e fa 00 3601 je short 02d 40h ; 74 053611 je short 02d5eh ; 74 05 3602 3612 mov ax, 000b0h ; b8 b0 00 3603 jmp short 02d 43h ; eb 033613 jmp short 02d61h ; eb 03 3604 3614 mov ax, 000a0h ; b8 a0 00 3605 3615 lea dx, [bx+006h] ; 8d 57 06 … … 3614 3624 mov dl, al ; 88 c2 3615 3625 test AL, strict byte 080h ; a8 80 3616 jne short 02d 4dh ; 75 f43626 jne short 02d6bh ; 75 f4 3617 3627 test AL, strict byte 001h ; a8 01 3618 je short 02d 6ch ; 74 0f3628 je short 02d8ah ; 74 0f 3619 3629 mov dx, word [bp-010h] ; 8b 56 f0 3620 3630 add dx, strict byte 00006h ; 83 c2 06 … … 3622 3632 out DX, AL ; ee 3623 3633 mov dx, strict word 00003h ; ba 03 00 3624 jmp near 02f 3ah ; e9 ce 013634 jmp near 02f58h ; e9 ce 01 3625 3635 test dl, 008h ; f6 c2 08 3626 jne short 02d 80h ; 75 0f3636 jne short 02d9eh ; 75 0f 3627 3637 mov dx, word [bp-010h] ; 8b 56 f0 3628 3638 add dx, strict byte 00006h ; 83 c2 06 … … 3630 3640 out DX, AL ; ee 3631 3641 mov dx, strict word 00004h ; ba 04 00 3632 jmp near 02f 3ah ; e9 ba 013642 jmp near 02f58h ; e9 ba 01 3633 3643 sti ; fb 3634 3644 mov ax, di ; 89 f8 … … 3643 3653 ; rep es outsw ; f3 26 6f 3644 3654 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3645 jne short 02d a9h ; 75 0b3655 jne short 02dc7h ; 75 0b 3646 3656 lea dx, [bx+007h] ; 8d 57 07 3647 3657 in AL, DX ; ec … … 3649 3659 ; sub ah, ah ; 2a e4 3650 3660 mov dl, al ; 88 c2 3651 jmp near 02f 1bh ; e9 72 013661 jmp near 02f39h ; e9 72 01 3652 3662 lea dx, [bx+007h] ; 8d 57 07 3653 3663 in AL, DX ; ec … … 3656 3666 mov dl, al ; 88 c2 3657 3667 test AL, strict byte 080h ; a8 80 3658 jne short 02d a9h ; 75 f43668 jne short 02dc7h ; 75 f4 3659 3669 test AL, strict byte 088h ; a8 88 3660 je near 02f 1bh ; 0f 84 60 013670 je near 02f39h ; 0f 84 60 01 3661 3671 test AL, strict byte 001h ; a8 01 3662 je short 02d cah ; 74 0b3672 je short 02de8h ; 74 0b 3663 3673 mov dx, word [bp-010h] ; 8b 56 f0 3664 3674 add dx, strict byte 00006h ; 83 c2 06 3665 3675 mov AL, strict byte 008h ; b0 08 3666 3676 out DX, AL ; ee 3667 jmp short 02d 66h ; eb 9c3677 jmp short 02d84h ; eb 9c 3668 3678 mov al, dl ; 88 d0 3669 3679 and AL, strict byte 0c9h ; 24 c9 3670 3680 cmp AL, strict byte 048h ; 3c 48 3671 je short 02d ddh ; 74 0b3681 je short 02dfbh ; 74 0b 3672 3682 mov dx, word [bp-010h] ; 8b 56 f0 3673 3683 add dx, strict byte 00006h ; 83 c2 06 3674 3684 mov AL, strict byte 008h ; b0 08 3675 3685 out DX, AL ; ee 3676 jmp short 02d 7ah ; eb 9d3686 jmp short 02d98h ; eb 9d 3677 3687 mov ax, word [bp+00ch] ; 8b 46 0c 3678 3688 shr ax, 004h ; c1 e8 04 … … 3697 3707 mov ax, word [bp+004h] ; 8b 46 04 3698 3708 cmp ax, cx ; 39 c8 3699 jbe short 02e 1dh ; 76 0c3709 jbe short 02e3bh ; 76 0c 3700 3710 mov ax, cx ; 89 c8 3701 3711 sub word [bp+004h], cx ; 29 4e 04 3702 3712 xor ax, cx ; 31 c8 3703 3713 mov word [bp-014h], ax ; 89 46 ec 3704 jmp short 02e 27h ; eb 0a3714 jmp short 02e45h ; eb 0a 3705 3715 mov cx, ax ; 89 c1 3706 3716 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3708 3718 xor ax, ax ; 31 c0 3709 3719 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3710 jne short 02e 50h ; 75 213720 jne short 02e6eh ; 75 21 3711 3721 mov dx, word [bp-014h] ; 8b 56 ec 3712 3722 cmp dx, word [bp+006h] ; 3b 56 06 3713 jbe short 02e 50h ; 76 193723 jbe short 02e6eh ; 76 19 3714 3724 mov ax, word [bp-014h] ; 8b 46 ec 3715 3725 sub ax, word [bp+006h] ; 2b 46 06 … … 3720 3730 mov word [bp+006h], ax ; 89 46 06 3721 3731 mov word [bp+008h], ax ; 89 46 08 3722 jmp short 02e 5ch ; eb 0c3732 jmp short 02e7ah ; eb 0c 3723 3733 mov word [bp-00ch], ax ; 89 46 f4 3724 3734 mov dx, word [bp-014h] ; 8b 56 ec … … 3728 3738 mov al, byte [bp-00ah] ; 8a 46 f6 3729 3739 test cl, 003h ; f6 c1 03 3730 je short 02e 69h ; 74 023740 je short 02e87h ; 74 02 3731 3741 xor al, al ; 30 c0 3732 3742 test byte [bp-014h], 003h ; f6 46 ec 03 3733 je short 02e 71h ; 74 023743 je short 02e8fh ; 74 02 3734 3744 xor al, al ; 30 c0 3735 3745 test byte [bp-00ch], 003h ; f6 46 f4 03 3736 je short 02e 79h ; 74 023746 je short 02e97h ; 74 02 3737 3747 xor al, al ; 30 c0 3738 3748 test byte [bp-014h], 001h ; f6 46 ec 01 3739 je short 02e 91h ; 74 123749 je short 02eafh ; 74 12 3740 3750 inc word [bp-014h] ; ff 46 ec 3741 3751 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3742 jbe short 02e 91h ; 76 093752 jbe short 02eafh ; 76 09 3743 3753 test byte [bp-00ch], 001h ; f6 46 f4 01 3744 je short 02e 91h ; 74 033754 je short 02eafh ; 74 03 3745 3755 dec word [bp-00ch] ; ff 4e f4 3746 3756 cmp AL, strict byte 001h ; 3c 01 3747 jne short 02e a2h ; 75 0d3757 jne short 02ec0h ; 75 0d 3748 3758 shr word [bp-014h], 002h ; c1 6e ec 02 3749 3759 shr cx, 002h ; c1 e9 02 3750 3760 shr word [bp-00ch], 002h ; c1 6e f4 02 3751 jmp short 02e aah ; eb 083761 jmp short 02ec8h ; eb 08 3752 3762 shr word [bp-014h], 1 ; d1 6e ec 3753 3763 shr cx, 1 ; d1 e9 3754 3764 shr word [bp-00ch], 1 ; d1 6e f4 3755 3765 cmp AL, strict byte 001h ; 3c 01 3756 jne short 02e dah ; 75 2c3766 jne short 02ef8h ; 75 2c 3757 3767 test cx, cx ; 85 c9 3758 je short 02e bch ; 74 0a3768 je short 02edah ; 74 0a 3759 3769 mov dx, bx ; 89 da 3760 3770 push eax ; 66 50 3761 3771 in eax, DX ; 66 ed 3762 loop 02e b6h ; e2 fc3772 loop 02ed4h ; e2 fc 3763 3773 pop eax ; 66 58 3764 3774 mov dx, bx ; 89 da … … 3769 3779 mov ax, word [bp-00ch] ; 8b 46 f4 3770 3780 test ax, ax ; 85 c0 3771 je short 02 ef9h ; 74 2b3781 je short 02f17h ; 74 2b 3772 3782 mov cx, ax ; 89 c1 3773 3783 push eax ; 66 50 3774 3784 in eax, DX ; 66 ed 3775 loop 02e d2h ; e2 fc3785 loop 02ef0h ; e2 fc 3776 3786 pop eax ; 66 58 3777 jmp short 02 ef9h ; eb 1f3787 jmp short 02f17h ; eb 1f 3778 3788 test cx, cx ; 85 c9 3779 je short 02 ee3h ; 74 053789 je short 02f01h ; 74 05 3780 3790 mov dx, bx ; 89 da 3781 3791 in ax, DX ; ed 3782 loop 02e e0h ; e2 fd3792 loop 02efeh ; e2 fd 3783 3793 mov dx, bx ; 89 da 3784 3794 mov cx, word [bp-014h] ; 8b 4e ec … … 3787 3797 mov ax, word [bp-00ch] ; 8b 46 f4 3788 3798 test ax, ax ; 85 c0 3789 je short 02 ef9h ; 74 053799 je short 02f17h ; 74 05 3790 3800 mov cx, ax ; 89 c1 3791 3801 in ax, DX ; ed 3792 loop 02 ef6h ; e2 fd3802 loop 02f14h ; e2 fd 3793 3803 add word [bp+00ch], si ; 01 76 0c 3794 3804 xor ax, ax ; 31 c0 … … 3801 3811 mov ax, word [bp-016h] ; 8b 46 ea 3802 3812 mov word [es:si+01ch], ax ; 26 89 44 1c 3803 jmp near 02d a9h ; e9 8e fe3813 jmp near 02dc7h ; e9 8e fe 3804 3814 mov al, dl ; 88 d0 3805 3815 and AL, strict byte 0e9h ; 24 e9 3806 3816 cmp AL, strict byte 040h ; 3c 40 3807 je short 02f 2fh ; 74 0c3817 je short 02f4dh ; 74 0c 3808 3818 mov dx, word [bp-010h] ; 8b 56 f0 3809 3819 add dx, strict byte 00006h ; 83 c2 06 3810 3820 mov AL, strict byte 008h ; b0 08 3811 3821 out DX, AL ; ee 3812 jmp near 02d 7ah ; e9 4b fe3822 jmp near 02d98h ; e9 4b fe 3813 3823 mov dx, word [bp-010h] ; 8b 56 f0 3814 3824 add dx, strict byte 00006h ; 83 c2 06 … … 3822 3832 pop bp ; 5d 3823 3833 retn 0000ch ; c2 0c 00 3824 ata_soft_reset_: ; 0xf2f 45LB 0x803834 ata_soft_reset_: ; 0xf2f63 LB 0x80 3825 3835 push bp ; 55 3826 3836 mov bp, sp ; 89 e5 … … 3832 3842 mov dx, strict word 0000eh ; ba 0e 00 3833 3843 mov ax, strict word 00040h ; b8 40 00 3834 call 01765h ; e8 0e e83844 call 01765h ; e8 f0 e7 3835 3845 mov dx, bx ; 89 da 3836 3846 shr dx, 1 ; d1 ea … … 3847 3857 out DX, AL ; ee 3848 3858 cmp byte [bp-008h], 000h ; 80 7e f8 00 3849 je short 02f 87h ; 74 053859 je short 02fa5h ; 74 05 3850 3860 mov ax, 000b0h ; b8 b0 00 3851 jmp short 02f 8ah ; eb 033861 jmp short 02fa8h ; eb 03 3852 3862 mov ax, 000a0h ; b8 a0 00 3853 3863 mov dx, cx ; 89 ca … … 3864 3874 ; sub ah, ah ; 2a e4 3865 3875 test AL, strict byte 080h ; a8 80 3866 jne short 02f 98h ; 75 f43876 jne short 02fb6h ; 75 f4 3867 3877 and AL, strict byte 0e9h ; 24 e9 3868 3878 cmp AL, strict byte 040h ; 3c 40 3869 je short 02f b5h ; 74 0b3879 je short 02fd3h ; 74 0b 3870 3880 lea dx, [bx+006h] ; 8d 57 06 3871 3881 mov AL, strict byte 008h ; b0 08 3872 3882 out DX, AL ; ee 3873 3883 mov ax, strict word 00001h ; b8 01 00 3874 jmp short 02f bdh ; eb 083884 jmp short 02fdbh ; eb 08 3875 3885 lea dx, [bx+006h] ; 8d 57 06 3876 3886 mov AL, strict byte 008h ; b0 08 … … 3883 3893 pop bp ; 5d 3884 3894 retn ; c3 3885 set_diskette_current_cyl_: ; 0xf2f c5LB 0x2a3895 set_diskette_current_cyl_: ; 0xf2fe3 LB 0x2a 3886 3896 push bp ; 55 3887 3897 mov bp, sp ; 89 e5 … … 3889 3899 mov dh, al ; 88 c6 3890 3900 cmp AL, strict byte 001h ; 3c 01 3891 jbe short 02f dah ; 76 0b3901 jbe short 02ff8h ; 76 0b 3892 3902 push 00262h ; 68 62 02 3893 3903 push strict byte 00007h ; 6a 07 3894 call 01a6bh ; e8 94ea3904 call 01a6bh ; e8 76 ea 3895 3905 add sp, strict byte 00004h ; 83 c4 04 3896 3906 movzx bx, dh ; 0f b6 de … … 3903 3913 pop bp ; 5d 3904 3914 retn ; c3 3905 floppy_wait_for_interrupt_: ; 0xf 2fefLB 0x233915 floppy_wait_for_interrupt_: ; 0xf300d LB 0x23 3906 3916 push bp ; 55 3907 3917 mov bp, sp ; 89 e5 … … 3913 3923 mov al, byte [es:bx] ; 26 8a 07 3914 3924 test AL, strict byte 080h ; a8 80 3915 je short 030 07h ; 74 043925 je short 03025h ; 74 04 3916 3926 and AL, strict byte 080h ; 24 80 3917 jmp short 030 0ch ; eb 053927 jmp short 0302ah ; eb 05 3918 3928 sti ; fb 3919 3929 hlt ; f4 3920 3930 cli ; fa 3921 jmp short 0 2ff4h ; eb e83931 jmp short 03012h ; eb e8 3922 3932 lea sp, [bp-002h] ; 8d 66 fe 3923 3933 pop bx ; 5b 3924 3934 pop bp ; 5d 3925 3935 retn ; c3 3926 floppy_wait_for_interrupt_or_timeout_: ; 0xf30 12LB 0x383936 floppy_wait_for_interrupt_or_timeout_: ; 0xf3030 LB 0x38 3927 3937 push bp ; 55 3928 3938 mov bp, sp ; 89 e5 … … 3933 3943 mov al, byte [es:bx] ; 26 8a 07 3934 3944 test al, al ; 84 c0 3935 jne short 030 26h ; 75 033945 jne short 03044h ; 75 03 3936 3946 sti ; fb 3937 jmp short 030 44h ; eb 1e3947 jmp short 03062h ; eb 1e 3938 3948 mov bx, strict word 0003eh ; bb 3e 00 3939 3949 mov ax, strict word 00040h ; b8 40 00 … … 3941 3951 mov al, byte [es:bx] ; 26 8a 07 3942 3952 test AL, strict byte 080h ; a8 80 3943 je short 030 3fh ; 74 0a3953 je short 0305dh ; 74 0a 3944 3954 mov ah, al ; 88 c4 3945 3955 and ah, 07fh ; 80 e4 7f 3946 3956 mov byte [es:bx], ah ; 26 88 27 3947 jmp short 030 44h ; eb 053957 jmp short 03062h ; eb 05 3948 3958 sti ; fb 3949 3959 hlt ; f4 3950 3960 cli ; fa 3951 jmp short 030 17h ; eb d33961 jmp short 03035h ; eb d3 3952 3962 lea sp, [bp-002h] ; 8d 66 fe 3953 3963 pop bx ; 5b 3954 3964 pop bp ; 5d 3955 3965 retn ; c3 3956 floppy_reset_controller_: ; 0xf30 4aLB 0x423966 floppy_reset_controller_: ; 0xf3068 LB 0x42 3957 3967 push bp ; 55 3958 3968 mov bp, sp ; 89 e5 … … 3978 3988 and AL, strict byte 0c0h ; 24 c0 3979 3989 cmp AL, strict byte 080h ; 3c 80 3980 jne short 030 65h ; 75 f43990 jne short 03083h ; 75 f4 3981 3991 mov bx, cx ; 89 cb 3982 3992 add bx, 00090h ; 81 c3 90 00 … … 3992 4002 pop bp ; 5d 3993 4003 retn ; c3 3994 floppy_prepare_controller_: ; 0xf30 8cLB 0x744004 floppy_prepare_controller_: ; 0xf30aa LB 0x74 3995 4005 push bp ; 55 3996 4006 mov bp, sp ; 89 e5 … … 4013 4023 mov byte [bp-008h], al ; 88 46 f8 4014 4024 test cx, cx ; 85 c9 4015 je short 030 b8h ; 74 044025 je short 030d6h ; 74 04 4016 4026 mov AL, strict byte 020h ; b0 20 4017 jmp short 030 bah ; eb 024027 jmp short 030d8h ; eb 02 4018 4028 mov AL, strict byte 010h ; b0 10 4019 4029 or AL, strict byte 00ch ; 0c 0c … … 4035 4045 and AL, strict byte 0c0h ; 24 c0 4036 4046 cmp AL, strict byte 080h ; 3c 80 4037 jne short 030 d8h ; 75 f44047 jne short 030f6h ; 75 f4 4038 4048 cmp byte [bp-008h], 000h ; 80 7e f8 00 4039 jne short 03 0f8h ; 75 0e4040 call 0 2fefh ; e8 02 ff4049 jne short 03116h ; 75 0e 4050 call 0300dh ; e8 02 ff 4041 4051 mov bx, strict word 0003eh ; bb 3e 00 4042 4052 mov dx, strict word 00040h ; ba 40 00 … … 4049 4059 pop bp ; 5d 4050 4060 retn ; c3 4051 floppy_media_known_: ; 0xf31 00LB 0x494061 floppy_media_known_: ; 0xf311e LB 0x49 4052 4062 push bx ; 53 4053 4063 push dx ; 52 … … 4060 4070 mov bl, bh ; 88 fb 4061 4071 test ax, ax ; 85 c0 4062 je short 031 18h ; 74 024072 je short 03136h ; 74 02 4063 4073 shr bl, 1 ; d0 eb 4064 4074 and bl, 001h ; 80 e3 01 4065 jne short 031 21h ; 75 044075 jne short 0313fh ; 75 04 4066 4076 xor bh, bh ; 30 ff 4067 jmp short 031 43h ; eb 224077 jmp short 03161h ; eb 22 4068 4078 mov bx, 00090h ; bb 90 00 4069 4079 test ax, ax ; 85 c0 4070 je short 031 2bh ; 74 034080 je short 03149h ; 74 03 4071 4081 mov bx, 00091h ; bb 91 00 4072 4082 mov ax, strict word 00040h ; b8 40 00 … … 4076 4086 sar ax, 004h ; c1 f8 04 4077 4087 and AL, strict byte 001h ; 24 01 4078 jne short 031 40h ; 75 044088 jne short 0315eh ; 75 04 4079 4089 xor bx, bx ; 31 db 4080 jmp short 031 43h ; eb 034090 jmp short 03161h ; eb 03 4081 4091 mov bx, strict word 00001h ; bb 01 00 4082 4092 mov ax, bx ; 89 d8 … … 4085 4095 pop bx ; 5b 4086 4096 retn ; c3 4087 floppy_read_id_: ; 0xf31 49LB 0x4e4097 floppy_read_id_: ; 0xf3167 LB 0x4e 4088 4098 push bp ; 55 4089 4099 mov bp, sp ; 89 e5 … … 4092 4102 push si ; 56 4093 4103 mov bx, ax ; 89 c3 4094 call 030 8ch ; e8 38 ff4104 call 030aah ; e8 38 ff 4095 4105 mov AL, strict byte 04ah ; b0 4a 4096 4106 mov dx, 003f5h ; ba f5 03 … … 4098 4108 mov al, bl ; 88 d8 4099 4109 out DX, AL ; ee 4100 call 0 2fefh ; e8 8f fe4110 call 0300dh ; e8 8f fe 4101 4111 xor bx, bx ; 31 db 4102 jmp short 031 69h ; eb 054112 jmp short 03187h ; eb 05 4103 4113 cmp bx, strict byte 00007h ; 83 fb 07 4104 jnl short 031 7dh ; 7d 144114 jnl short 0319bh ; 7d 14 4105 4115 mov dx, 003f5h ; ba f5 03 4106 4116 in AL, DX ; ec … … 4112 4122 mov byte [es:si], al ; 26 88 04 4113 4123 inc bx ; 43 4114 jmp short 031 64h ; eb e74124 jmp short 03182h ; eb e7 4115 4125 mov bx, strict word 00042h ; bb 42 00 4116 4126 mov ax, strict word 00040h ; b8 40 00 … … 4127 4137 pop bp ; 5d 4128 4138 retn ; c3 4129 floppy_drive_recal_: ; 0xf31 97LB 0x414139 floppy_drive_recal_: ; 0xf31b5 LB 0x41 4130 4140 push bp ; 55 4131 4141 mov bp, sp ; 89 e5 … … 4134 4144 push si ; 56 4135 4145 mov bx, ax ; 89 c3 4136 call 030 8ch ; e8 ea fe4146 call 030aah ; e8 ea fe 4137 4147 mov AL, strict byte 007h ; b0 07 4138 4148 mov dx, 003f5h ; ba f5 03 … … 4140 4150 mov al, bl ; 88 d8 4141 4151 out DX, AL ; ee 4142 call 0 2fefh ; e8 41 fe4152 call 0300dh ; e8 41 fe 4143 4153 test bx, bx ; 85 db 4144 je short 031 b9h ; 74 074154 je short 031d7h ; 74 07 4145 4155 or AL, strict byte 002h ; 0c 02 4146 4156 mov bx, 00095h ; bb 95 00 4147 jmp short 031 beh ; eb 054157 jmp short 031dch ; eb 05 4148 4158 or AL, strict byte 001h ; 0c 01 4149 4159 mov bx, 00094h ; bb 94 00 … … 4160 4170 pop bp ; 5d 4161 4171 retn ; c3 4162 floppy_media_sense_: ; 0xf31 d8LB 0xe44172 floppy_media_sense_: ; 0xf31f6 LB 0xe4 4163 4173 push bp ; 55 4164 4174 mov bp, sp ; 89 e5 … … 4168 4178 push si ; 56 4169 4179 mov bx, ax ; 89 c3 4170 call 031 97h ; e8 b3 ff4180 call 031b5h ; e8 b3 ff 4171 4181 test ax, ax ; 85 c0 4172 jne short 03 1edh ; 75 054182 jne short 0320bh ; 75 05 4173 4183 xor dx, dx ; 31 d2 4174 jmp near 032 b1h ; e9 c4 004184 jmp near 032cfh ; e9 c4 00 4175 4185 mov ax, strict word 00010h ; b8 10 00 4176 call 017a5h ; e8 b2e54186 call 017a5h ; e8 94 e5 4177 4187 test bx, bx ; 85 db 4178 jne short 03 1feh ; 75 074188 jne short 0321ch ; 75 07 4179 4189 mov dl, al ; 88 c2 4180 4190 shr dl, 004h ; c0 ea 04 4181 jmp short 032 03h ; eb 054191 jmp short 03221h ; eb 05 4182 4192 mov dl, al ; 88 c2 4183 4193 and dl, 00fh ; 80 e2 0f 4184 4194 cmp dl, 001h ; 80 fa 01 4185 jne short 032 11h ; 75 094195 jne short 0322fh ; 75 09 4186 4196 xor dl, dl ; 30 d2 4187 4197 mov DH, strict byte 015h ; b6 15 4188 4198 mov cx, strict word 00001h ; b9 01 00 4189 jmp short 032 4fh ; eb 3e4199 jmp short 0326dh ; eb 3e 4190 4200 cmp dl, 002h ; 80 fa 02 4191 jne short 032 1ch ; 75 064201 jne short 0323ah ; 75 06 4192 4202 xor dl, dl ; 30 d2 4193 4203 mov DH, strict byte 035h ; b6 35 4194 jmp short 032 0ch ; eb f04204 jmp short 0322ah ; eb f0 4195 4205 cmp dl, 003h ; 80 fa 03 4196 jne short 032 27h ; 75 064206 jne short 03245h ; 75 06 4197 4207 xor dl, dl ; 30 d2 4198 4208 mov DH, strict byte 017h ; b6 17 4199 jmp short 032 0ch ; eb e54209 jmp short 0322ah ; eb e5 4200 4210 cmp dl, 004h ; 80 fa 04 4201 jne short 032 32h ; 75 064211 jne short 03250h ; 75 06 4202 4212 xor dl, dl ; 30 d2 4203 4213 mov DH, strict byte 017h ; b6 17 4204 jmp short 032 0ch ; eb da4214 jmp short 0322ah ; eb da 4205 4215 cmp dl, 005h ; 80 fa 05 4206 jne short 032 3dh ; 75 064216 jne short 0325bh ; 75 06 4207 4217 mov DL, strict byte 0cch ; b2 cc 4208 4218 mov DH, strict byte 0d7h ; b6 d7 4209 jmp short 032 0ch ; eb cf4219 jmp short 0322ah ; eb cf 4210 4220 cmp dl, 00eh ; 80 fa 0e 4211 je short 032 47h ; 74 054221 je short 03265h ; 74 05 4212 4222 cmp dl, 00fh ; 80 fa 0f 4213 jne short 032 49h ; 75 024214 jmp short 032 37h ; eb ee4223 jne short 03267h ; 75 02 4224 jmp short 03255h ; eb ee 4215 4225 xor dl, dl ; 30 d2 4216 4226 xor dh, dh ; 30 f6 … … 4221 4231 mov byte [es:si], dl ; 26 88 14 4222 4232 mov ax, bx ; 89 d8 4223 call 031 49h ; e8 ea fe4233 call 03167h ; e8 ea fe 4224 4234 test ax, ax ; 85 c0 4225 jne short 032 95h ; 75 324235 jne short 032b3h ; 75 32 4226 4236 mov al, dl ; 88 d0 4227 4237 and AL, strict byte 0c0h ; 24 c0 4228 4238 cmp AL, strict byte 080h ; 3c 80 4229 je short 032 95h ; 74 2a4239 je short 032b3h ; 74 2a 4230 4240 mov al, dl ; 88 d0 4231 4241 and AL, strict byte 0c0h ; 24 c0 4232 4242 cmp AL, strict byte 0c0h ; 3c c0 4233 je short 032 82h ; 74 0f4243 je short 032a0h ; 74 0f 4234 4244 mov ah, dl ; 88 d4 4235 4245 and ah, 03fh ; 80 e4 3f 4236 4246 cmp AL, strict byte 040h ; 3c 40 4237 je short 032 8eh ; 74 124247 je short 032ach ; 74 12 4238 4248 test al, al ; 84 c0 4239 je short 032 87h ; 74 074240 jmp short 032 4fh ; eb cd4249 je short 032a5h ; 74 07 4250 jmp short 0326dh ; eb cd 4241 4251 and dl, 03fh ; 80 e2 3f 4242 jmp short 032 4fh ; eb c84252 jmp short 0326dh ; eb c8 4243 4253 mov dl, ah ; 88 e2 4244 4254 or dl, 040h ; 80 ca 40 4245 jmp short 032 4fh ; eb c14255 jmp short 0326dh ; eb c1 4246 4256 mov dl, ah ; 88 e2 4247 4257 or dl, 080h ; 80 ca 80 4248 jmp short 032 4fh ; eb ba4258 jmp short 0326dh ; eb ba 4249 4259 test bx, bx ; 85 db 4250 4260 db 00fh, 095h, 0c0h … … 4266 4276 pop bp ; 5d 4267 4277 retn ; c3 4268 floppy_drive_exists_: ; 0xf32 bcLB 0x474278 floppy_drive_exists_: ; 0xf32da LB 0x47 4269 4279 push bp ; 55 4270 4280 mov bp, sp ; 89 e5 … … 4272 4282 mov dx, ax ; 89 c2 4273 4283 mov ax, strict word 00010h ; b8 10 00 4274 call 017a5h ; e8 dde44284 call 017a5h ; e8 bf e4 4275 4285 test dx, dx ; 85 d2 4276 jne short 032 d1h ; 75 054286 jne short 032efh ; 75 05 4277 4287 shr al, 004h ; c0 e8 04 4278 jmp short 032 d3h ; eb 024288 jmp short 032f1h ; eb 02 4279 4289 and AL, strict byte 00fh ; 24 0f 4280 4290 test al, al ; 84 c0 … … 4291 4301 add AL, strict byte 003h ; 04 03 4292 4302 add al, byte [bx+di] ; 02 01 4293 add byte [si+03ch], ah ; 00 64 3c 4294 inc bx ; 43 4295 db 033h, 0c0h 4296 ; xor ax, ax ; 33 c0 4297 db 033h, 0e0h 4298 ; xor sp, ax ; 33 e0 4299 db 033h, 0e0h 4300 ; xor sp, ax ; 33 e0 4301 db 033h, 0e0h 4302 ; xor sp, ax ; 33 e0 4303 xor bx, word [bp+di+037h] ; 33 5b 37 4304 sbb word [bx+di], di ; 19 39 4305 or word [bp+si], di ; 09 3a 4306 dec bx ; 4b 4307 cmp bh, byte [bx+03ah] ; 3a 7f 3a 4308 db 0f1h 4309 db 03ah 4310 _int13_diskette_function: ; 0xf3303 LB 0x984 4303 add byte [bp+si+0613ch], al ; 00 82 3c 61 4304 db 033h, 0deh 4305 ; xor bx, si ; 33 de 4306 db 033h, 0feh 4307 ; xor di, si ; 33 fe 4308 db 033h, 0feh 4309 ; xor di, si ; 33 fe 4310 db 033h, 0feh 4311 ; xor di, si ; 33 fe 4312 xor di, word [bx+di+037h] ; 33 79 37 4313 aaa ; 37 4314 cmp word [bx], sp ; 39 27 4315 cmp ch, byte [bx+di+03ah] ; 3a 69 3a 4316 popfw ; 9d 4317 cmp cl, byte [bx] ; 3a 0f 4318 db 03bh 4319 _int13_diskette_function: ; 0xf3321 LB 0x984 4311 4320 push bp ; 55 4312 4321 mov bp, sp ; 89 e5 … … 4316 4325 shr ax, 008h ; c1 e8 08 4317 4326 cmp ax, strict word 00018h ; 3d 18 00 4318 jnbe near 03c 64h ; 0f 87 4a 094327 jnbe near 03c82h ; 0f 87 4a 09 4319 4328 push CS ; 0e 4320 4329 pop ES ; 07 4321 4330 mov cx, strict word 0000ch ; b9 0c 00 4322 mov di, 032 e0h ; bf e0324331 mov di, 032feh ; bf fe 32 4323 4332 repne scasb ; f2 ae 4324 4333 sal cx, 1 ; d1 e1 4325 4334 mov di, cx ; 89 cf 4326 mov di, word [cs:di+03 2ebh] ; 2e 8b bd eb 324335 mov di, word [cs:di+03309h] ; 2e 8b bd 09 33 4327 4336 mov dx, word [bp+016h] ; 8b 56 16 4328 4337 xor dh, dh ; 30 f6 … … 4335 4344 mov bl, byte [bp+00eh] ; 8a 5e 0e 4336 4345 cmp bl, 001h ; 80 fb 01 4337 jbe short 033 65h ; 76 1a4346 jbe short 03383h ; 76 1a 4338 4347 mov ax, word [bp+016h] ; 8b 46 16 4339 4348 xor ah, ah ; 30 e4 … … 4344 4353 mov es, ax ; 8e c0 4345 4354 mov byte [es:bx], 001h ; 26 c6 07 01 4346 jmp near 03b 51h ; e9 ec 074355 jmp near 03b6fh ; e9 ec 07 4347 4356 mov ax, strict word 00010h ; b8 10 00 4348 call 017a5h ; e8 3ae44357 call 017a5h ; e8 1c e4 4349 4358 test bl, bl ; 84 db 4350 jne short 033 76h ; 75 074359 jne short 03394h ; 75 07 4351 4360 mov dl, al ; 88 c2 4352 4361 shr dl, 004h ; c0 ea 04 4353 jmp short 033 7bh ; eb 054362 jmp short 03399h ; eb 05 4354 4363 mov dl, al ; 88 c2 4355 4364 and dl, 00fh ; 80 e2 0f 4356 4365 test dl, dl ; 84 d2 4357 jne short 033 99h ; 75 1a4366 jne short 033b7h ; 75 1a 4358 4367 mov ax, word [bp+016h] ; 8b 46 16 4359 4368 xor ah, ah ; 30 e4 … … 4364 4373 mov es, ax ; 8e c0 4365 4374 mov byte [es:bx], 080h ; 26 c6 07 80 4366 jmp near 03b 51h ; e9 b8 074375 jmp near 03b6fh ; e9 b8 07 4367 4376 mov si, strict word 0003eh ; be 3e 00 4368 4377 mov ax, strict word 00040h ; b8 40 00 … … 4376 4385 movzx ax, bl ; 0f b6 c3 4377 4386 xor dx, dx ; 31 d2 4378 call 02f c5h ; e8 09 fc4387 call 02fe3h ; e8 09 fc 4379 4388 mov sp, bp ; 89 ec 4380 4389 pop bp ; 5d … … 4390 4399 mov word [bp+016h], dx ; 89 56 16 4391 4400 test al, al ; 84 c0 4392 je short 033 bch ; 74 df4393 jmp near 03b 51h ; e9 71 074401 je short 033dah ; 74 df 4402 jmp near 03b6fh ; e9 71 07 4394 4403 mov bh, byte [bp+016h] ; 8a 7e 16 4395 4404 mov ax, word [bp+014h] ; 8b 46 14 … … 4403 4412 mov bl, byte [bp+00eh] ; 8a 5e 0e 4404 4413 cmp bl, 001h ; 80 fb 01 4405 jnbe short 034 10h ; 77 0d4414 jnbe short 0342eh ; 77 0d 4406 4415 cmp AL, strict byte 001h ; 3c 01 4407 jnbe short 034 10h ; 77 094416 jnbe short 0342eh ; 77 09 4408 4417 test bh, bh ; 84 ff 4409 je short 034 10h ; 74 054418 je short 0342eh ; 74 05 4410 4419 cmp bh, 048h ; 80 ff 48 4411 jbe short 034 43h ; 76 334412 mov bx, 00db 6h ; bb b60d4420 jbe short 03461h ; 76 33 4421 mov bx, 00db2h ; bb b2 0d 4413 4422 mov cx, ds ; 8c d9 4414 4423 mov ax, strict word 00004h ; b8 04 00 4415 call 01a2ah ; e8 0f e64424 call 01a2ah ; e8 f1 e5 4416 4425 push 00287h ; 68 87 02 4417 4426 push 0029fh ; 68 9f 02 4418 4427 push strict byte 00004h ; 6a 04 4419 call 01a6bh ; e8 45e64428 call 01a6bh ; e8 27 e6 4420 4429 add sp, strict byte 00006h ; 83 c4 06 4421 4430 mov ax, word [bp+016h] ; 8b 46 16 … … 4427 4436 mov es, ax ; 8e c0 4428 4437 mov byte [es:bx], 001h ; 26 c6 07 01 4429 jmp near 034 ceh ; e9 8b 004438 jmp near 034ech ; e9 8b 00 4430 4439 movzx ax, bl ; 0f b6 c3 4431 call 032 bch ; e8 73 fe4440 call 032dah ; e8 73 fe 4432 4441 test ax, ax ; 85 c0 4433 je near 035 65h ; 0f 84 16 014442 je near 03583h ; 0f 84 16 01 4434 4443 movzx cx, bl ; 0f b6 cb 4435 4444 mov ax, cx ; 89 c8 4436 call 031 00h ; e8 a9 fc4445 call 0311eh ; e8 a9 fc 4437 4446 test ax, ax ; 85 c0 4438 jne short 034 7dh ; 75 224447 jne short 0349bh ; 75 22 4439 4448 mov ax, cx ; 89 c8 4440 call 031 d8h ; e8 78 fd4449 call 031f6h ; e8 78 fd 4441 4450 test ax, ax ; 85 c0 4442 jne short 034 7dh ; 75 194451 jne short 0349bh ; 75 19 4443 4452 mov ax, word [bp+016h] ; 8b 46 16 4444 4453 xor ah, ah ; 30 e4 … … 4449 4458 mov es, ax ; 8e c0 4450 4459 mov byte [es:bx], 00ch ; 26 c6 07 0c 4451 jmp short 034 ceh ; eb 514460 jmp short 034ech ; eb 51 4452 4461 mov ax, word [bp+016h] ; 8b 46 16 4453 4462 shr ax, 008h ; c1 e8 08 4454 4463 cmp ax, strict word 00002h ; 3d 02 00 4455 jne near 036 19h ; 0f 85 8f 014464 jne near 03637h ; 0f 85 8f 01 4456 4465 mov dx, word [bp+006h] ; 8b 56 06 4457 4466 shr dx, 00ch ; c1 ea 0c … … 4463 4472 mov word [bp-008h], si ; 89 76 f8 4464 4473 cmp cx, si ; 39 f1 4465 jbe short 034 a6h ; 76 024474 jbe short 034c4h ; 76 02 4466 4475 db 0feh, 0c4h 4467 4476 ; inc ah ; fe c4 … … 4472 4481 add dx, cx ; 01 ca 4473 4482 cmp dx, word [bp-008h] ; 3b 56 f8 4474 jnc short 034 d5h ; 73 1e4483 jnc short 034f3h ; 73 1e 4475 4484 mov ax, word [bp+016h] ; 8b 46 16 4476 4485 xor ah, ah ; 30 e4 … … 4482 4491 mov byte [es:bx], 009h ; 26 c6 07 09 4483 4492 mov byte [bp+016h], 000h ; c6 46 16 00 4484 jmp near 03b 51h ; e9 7c 064493 jmp near 03b6fh ; e9 7c 06 4485 4494 mov AL, strict byte 006h ; b0 06 4486 4495 mov dx, strict word 0000ah ; ba 0a 00 … … 4517 4526 movzx cx, bl ; 0f b6 cb 4518 4527 mov ax, cx ; 89 c8 4519 call 030 8ch ; e8 6c fb4528 call 030aah ; e8 6c fb 4520 4529 mov AL, strict byte 0e6h ; b0 e6 4521 4530 mov dx, 003f5h ; ba f5 03 … … 4545 4554 mov AL, strict byte 0ffh ; b0 ff 4546 4555 out DX, AL ; ee 4547 call 030 12h ; e8 b6 fa4556 call 03030h ; e8 b6 fa 4548 4557 test al, al ; 84 c0 4549 jne short 035 7fh ; 75 1f4558 jne short 0359dh ; 75 1f 4550 4559 mov ax, cx ; 89 c8 4551 call 030 4ah ; e8 e5 fa4560 call 03068h ; e8 e5 fa 4552 4561 mov ax, word [bp+016h] ; 8b 46 16 4553 4562 xor ah, ah ; 30 e4 … … 4558 4567 mov es, ax ; 8e c0 4559 4568 mov byte [es:bx], 080h ; 26 c6 07 80 4560 jmp near 034 ceh ; e9 4f ff4569 jmp near 034ech ; e9 4f ff 4561 4570 mov dx, 003f4h ; ba f4 03 4562 4571 in AL, DX ; ec … … 4565 4574 and AL, strict byte 0c0h ; 24 c0 4566 4575 cmp AL, strict byte 0c0h ; 3c c0 4567 je short 035 99h ; 74 0e4576 je short 035b7h ; 74 0e 4568 4577 push 00287h ; 68 87 02 4569 4578 push 002bah ; 68 ba 02 4570 4579 push strict byte 00007h ; 6a 07 4571 call 01a6bh ; e8 d5e44580 call 01a6bh ; e8 b7 e4 4572 4581 add sp, strict byte 00006h ; 83 c4 06 4573 4582 xor cx, cx ; 31 c9 4574 jmp short 035 a2h ; eb 054583 jmp short 035c0h ; eb 05 4575 4584 cmp cx, strict byte 00007h ; 83 f9 07 4576 jnl short 035 b8h ; 7d 164585 jnl short 035d6h ; 7d 16 4577 4586 mov dx, 003f5h ; ba f5 03 4578 4587 in AL, DX ; ec … … 4585 4594 mov byte [es:si], al ; 26 88 04 4586 4595 inc cx ; 41 4587 jmp short 035 9dh ; eb e54596 jmp short 035bbh ; eb e5 4588 4597 mov si, strict word 00042h ; be 42 00 4589 4598 mov ax, strict word 00040h ; b8 40 00 … … 4591 4600 mov al, byte [es:si] ; 26 8a 04 4592 4601 test AL, strict byte 0c0h ; a8 c0 4593 je short 03 5e7h ; 74 204602 je short 03605h ; 74 20 4594 4603 movzx ax, bl ; 0f b6 c3 4595 call 030 4ah ; e8 7d fa4604 call 03068h ; e8 7d fa 4596 4605 mov ax, word [bp+016h] ; 8b 46 16 4597 4606 xor ah, ah ; 30 e4 … … 4602 4611 mov es, ax ; 8e c0 4603 4612 mov byte [es:bx], 020h ; 26 c6 07 20 4604 jmp near 034 ceh ; e9 e7 fe4613 jmp near 034ech ; e9 e7 fe 4605 4614 movzx ax, bh ; 0f b6 c7 4606 4615 sal ax, 009h ; c1 e0 09 … … 4620 4629 movzx dx, byte [bp-002h] ; 0f b6 56 fe 4621 4630 movzx ax, bl ; 0f b6 c3 4622 call 02f c5h ; e8 b7 f94631 call 02fe3h ; e8 b7 f9 4623 4632 mov byte [bp+017h], 000h ; c6 46 17 00 4624 4633 and byte [bp+01ch], 0feh ; 80 66 1c fe 4625 jmp near 033 bch ; e9 a3 fd4634 jmp near 033dah ; e9 a3 fd 4626 4635 mov ax, word [bp+016h] ; 8b 46 16 4627 4636 shr ax, 008h ; c1 e8 08 4628 4637 cmp ax, strict word 00003h ; 3d 03 00 4629 jne near 037 46h ; 0f 85 20 014638 jne near 03764h ; 0f 85 20 01 4630 4639 mov cx, word [bp+006h] ; 8b 4e 06 4631 4640 shr cx, 00ch ; c1 e9 0c … … 4637 4646 mov word [bp-008h], si ; 89 76 f8 4638 4647 cmp dx, si ; 39 f2 4639 jbe short 036 42h ; 76 024648 jbe short 03660h ; 76 02 4640 4649 db 0feh, 0c4h 4641 4650 ; inc ah ; fe c4 … … 4646 4655 add dx, cx ; 01 ca 4647 4656 cmp dx, word [bp-008h] ; 3b 56 f8 4648 jc near 034 b7h ; 0f 82 62 fe4657 jc near 034d5h ; 0f 82 62 fe 4649 4658 mov AL, strict byte 006h ; b0 06 4650 4659 mov dx, strict word 0000ah ; ba 0a 00 … … 4681 4690 movzx cx, bl ; 0f b6 cb 4682 4691 mov ax, cx ; 89 c8 4683 call 030 8ch ; e8 ec f94692 call 030aah ; e8 ec f9 4684 4693 mov AL, strict byte 0c5h ; b0 c5 4685 4694 mov dx, 003f5h ; ba f5 03 … … 4709 4718 mov AL, strict byte 0ffh ; b0 ff 4710 4719 out DX, AL ; ee 4711 call 030 12h ; e8 36 f94720 call 03030h ; e8 36 f9 4712 4721 test al, al ; 84 c0 4713 je near 035 60h ; 0f 84 7e fe4722 je near 0357eh ; 0f 84 7e fe 4714 4723 mov dx, 003f4h ; ba f4 03 4715 4724 in AL, DX ; ec … … 4718 4727 and AL, strict byte 0c0h ; 24 c0 4719 4728 cmp AL, strict byte 0c0h ; 3c c0 4720 je short 03 6fch ; 74 0e4729 je short 0371ah ; 74 0e 4721 4730 push 00287h ; 68 87 02 4722 4731 push 002bah ; 68 ba 02 4723 4732 push strict byte 00007h ; 6a 07 4724 call 01a6bh ; e8 72e34733 call 01a6bh ; e8 54 e3 4725 4734 add sp, strict byte 00006h ; 83 c4 06 4726 4735 xor cx, cx ; 31 c9 4727 jmp short 037 05h ; eb 054736 jmp short 03723h ; eb 05 4728 4737 cmp cx, strict byte 00007h ; 83 f9 07 4729 jnl short 037 1bh ; 7d 164738 jnl short 03739h ; 7d 16 4730 4739 mov dx, 003f5h ; ba f5 03 4731 4740 in AL, DX ; ec … … 4738 4747 mov byte [es:si], al ; 26 88 04 4739 4748 inc cx ; 41 4740 jmp short 037 00h ; eb e54749 jmp short 0371eh ; eb e5 4741 4750 mov si, strict word 00042h ; be 42 00 4742 4751 mov ax, strict word 00040h ; b8 40 00 … … 4744 4753 mov al, byte [es:si] ; 26 8a 04 4745 4754 test AL, strict byte 0c0h ; a8 c0 4746 je near 036 04h ; 0f 84 d8 fe4755 je near 03622h ; 0f 84 d8 fe 4747 4756 mov bx, strict word 00043h ; bb 43 00 4748 4757 mov al, byte [es:bx] ; 26 8a 07 4749 4758 test AL, strict byte 002h ; a8 02 4750 je short 037 3eh ; 74 084759 je short 0375ch ; 74 08 4751 4760 mov word [bp+016h], 00300h ; c7 46 16 00 03 4752 jmp near 03b 51h ; e9 13 044761 jmp near 03b6fh ; e9 13 04 4753 4762 mov word [bp+016h], 00100h ; c7 46 16 00 01 4754 jmp near 03b 51h ; e9 0b 044763 jmp near 03b6fh ; e9 0b 04 4755 4764 movzx dx, byte [bp-002h] ; 0f b6 56 fe 4756 4765 movzx ax, bl ; 0f b6 c3 4757 call 02f c5h ; e8 75 f84766 call 02fe3h ; e8 75 f8 4758 4767 and byte [bp+01ch], 0feh ; 80 66 1c fe 4759 4768 mov byte [bp+017h], 000h ; c6 46 17 00 4760 jmp near 033 bch ; e9 61 fc4769 jmp near 033dah ; e9 61 fc 4761 4770 mov bh, byte [bp+016h] ; 8a 7e 16 4762 4771 mov ax, word [bp+014h] ; 8b 46 14 … … 4768 4777 mov bl, byte [bp+00eh] ; 8a 5e 0e 4769 4778 cmp bl, 001h ; 80 fb 01 4770 jnbe short 037 8ah ; 77 124779 jnbe short 037a8h ; 77 12 4771 4780 cmp dl, 001h ; 80 fa 01 4772 jnbe short 037 8ah ; 77 0d4781 jnbe short 037a8h ; 77 0d 4773 4782 cmp AL, strict byte 04fh ; 3c 4f 4774 jnbe short 037 8ah ; 77 094783 jnbe short 037a8h ; 77 09 4775 4784 test bh, bh ; 84 ff 4776 je short 037 8ah ; 74 054785 je short 037a8h ; 74 05 4777 4786 cmp bh, 012h ; 80 ff 12 4778 jbe short 037 a5h ; 76 1b4787 jbe short 037c3h ; 76 1b 4779 4788 mov ax, word [bp+016h] ; 8b 46 16 4780 4789 xor ah, ah ; 30 e4 … … 4787 4796 or byte [bp+01ch], 001h ; 80 4e 1c 01 4788 4797 movzx ax, bl ; 0f b6 c3 4789 call 032 bch ; e8 11 fb4798 call 032dah ; e8 11 fb 4790 4799 test ax, ax ; 85 c0 4791 jne short 037 c9h ; 75 1a4800 jne short 037e7h ; 75 1a 4792 4801 mov ax, word [bp+016h] ; 8b 46 16 4793 4802 xor ah, ah ; 30 e4 … … 4798 4807 mov es, ax ; 8e c0 4799 4808 mov byte [es:bx], 080h ; 26 c6 07 80 4800 jmp near 03b 51h ; e9 88 034809 jmp near 03b6fh ; e9 88 03 4801 4810 movzx cx, bl ; 0f b6 cb 4802 4811 mov ax, cx ; 89 c8 4803 call 031 00h ; e8 2f f94812 call 0311eh ; e8 2f f9 4804 4813 test ax, ax ; 85 c0 4805 jne short 037 e0h ; 75 0b4814 jne short 037feh ; 75 0b 4806 4815 mov ax, cx ; 89 c8 4807 call 031 d8h ; e8 fe f94816 call 031f6h ; e8 fe f9 4808 4817 test ax, ax ; 85 c0 4809 je near 034 64h ; 0f 84 84 fc4818 je near 03482h ; 0f 84 84 fc 4810 4819 mov dx, word [bp+006h] ; 8b 56 06 4811 4820 shr dx, 00ch ; c1 ea 0c … … 4817 4826 mov word [bp-008h], si ; 89 76 f8 4818 4827 cmp cx, si ; 39 f1 4819 jbe short 03 7fch ; 76 024828 jbe short 0381ah ; 76 02 4820 4829 db 0feh, 0c4h 4821 4830 ; inc ah ; fe c4 … … 4826 4835 add dx, cx ; 01 ca 4827 4836 cmp dx, word [bp-008h] ; 3b 56 f8 4828 jc near 034 b7h ; 0f 82 a8 fc4837 jc near 034d5h ; 0f 82 a8 fc 4829 4838 mov AL, strict byte 006h ; b0 06 4830 4839 mov dx, strict word 0000ah ; ba 0a 00 … … 4861 4870 movzx cx, bl ; 0f b6 cb 4862 4871 mov ax, cx ; 89 c8 4863 call 030 8ch ; e8 32 f84872 call 030aah ; e8 32 f8 4864 4873 mov AL, strict byte 00fh ; b0 0f 4865 4874 mov dx, 003f5h ; ba f5 03 … … 4887 4896 mov AL, strict byte 0f6h ; b0 f6 4888 4897 out DX, AL ; ee 4889 call 030 12h ; e8 82 f74898 call 03030h ; e8 82 f7 4890 4899 test al, al ; 84 c0 4891 jne short 038 9ch ; 75 084900 jne short 038bah ; 75 08 4892 4901 mov ax, cx ; 89 c8 4893 call 030 4ah ; e8 b1 f74894 jmp near 037 afh ; e9 13 ff4902 call 03068h ; e8 b1 f7 4903 jmp near 037cdh ; e9 13 ff 4895 4904 mov dx, 003f4h ; ba f4 03 4896 4905 in AL, DX ; ec … … 4899 4908 and AL, strict byte 0c0h ; 24 c0 4900 4909 cmp AL, strict byte 0c0h ; 3c c0 4901 je short 038 b6h ; 74 0e4910 je short 038d4h ; 74 0e 4902 4911 push 00287h ; 68 87 02 4903 4912 push 002bah ; 68 ba 02 4904 4913 push strict byte 00007h ; 6a 07 4905 call 01a6bh ; e8 b8e14914 call 01a6bh ; e8 9a e1 4906 4915 add sp, strict byte 00006h ; 83 c4 06 4907 4916 xor cx, cx ; 31 c9 4908 jmp short 038 bfh ; eb 054917 jmp short 038ddh ; eb 05 4909 4918 cmp cx, strict byte 00007h ; 83 f9 07 4910 jnl short 038 d5h ; 7d 164919 jnl short 038f3h ; 7d 16 4911 4920 mov dx, 003f5h ; ba f5 03 4912 4921 in AL, DX ; ec … … 4919 4928 mov byte [es:si], al ; 26 88 04 4920 4929 inc cx ; 41 4921 jmp short 038 bah ; eb e54930 jmp short 038d8h ; eb e5 4922 4931 mov si, strict word 00042h ; be 42 00 4923 4932 mov ax, strict word 00040h ; b8 40 00 … … 4925 4934 mov al, byte [es:si] ; 26 8a 04 4926 4935 test AL, strict byte 0c0h ; a8 c0 4927 je short 03 8feh ; 74 1a4936 je short 0391ch ; 74 1a 4928 4937 mov si, strict word 00043h ; be 43 00 4929 4938 mov al, byte [es:si] ; 26 8a 04 4930 4939 test AL, strict byte 002h ; a8 02 4931 jne near 037 36h ; 0f 85 46 fe4940 jne near 03754h ; 0f 85 46 fe 4932 4941 push 00287h ; 68 87 02 4933 4942 push 002ceh ; 68 ce 02 4934 4943 push strict byte 00007h ; 6a 07 4935 call 01a6bh ; e8 70e14944 call 01a6bh ; e8 52 e1 4936 4945 add sp, strict byte 00006h ; 83 c4 06 4937 4946 mov byte [bp+017h], 000h ; c6 46 17 00 … … 4942 4951 movzx ax, bl ; 0f b6 c3 4943 4952 xor dx, dx ; 31 d2 4944 call 02f c5h ; e8 af f64945 jmp near 036 12h ; e9 f9 fc4953 call 02fe3h ; e8 af f6 4954 jmp near 03630h ; e9 f9 fc 4946 4955 mov bl, ah ; 88 e3 4947 4956 cmp ah, 001h ; 80 fc 01 4948 jbe short 039 3dh ; 76 1d4957 jbe short 0395bh ; 76 1d 4949 4958 xor ax, ax ; 31 c0 4950 4959 mov word [bp+016h], ax ; 89 46 16 … … 4956 4965 movzx ax, bh ; 0f b6 c7 4957 4966 mov word [bp+012h], ax ; 89 46 12 4958 jmp near 03a 5fh ; e9 22 014967 jmp near 03a7dh ; e9 22 01 4959 4968 mov ax, strict word 00010h ; b8 10 00 4960 call 017a5h ; e8 62de4969 call 017a5h ; e8 44 de 4961 4970 mov dl, al ; 88 c2 4962 4971 xor bh, bh ; 30 ff 4963 4972 test AL, strict byte 0f0h ; a8 f0 4964 je short 039 4dh ; 74 024973 je short 0396bh ; 74 02 4965 4974 mov BH, strict byte 001h ; b7 01 4966 4975 test dl, 00fh ; f6 c2 0f 4967 je short 039 54h ; 74 024976 je short 03972h ; 74 02 4968 4977 db 0feh, 0c7h 4969 4978 ; inc bh ; fe c7 4970 4979 test bl, bl ; 84 db 4971 jne short 039 5dh ; 75 054980 jne short 0397bh ; 75 05 4972 4981 shr dl, 004h ; c0 ea 04 4973 jmp short 039 60h ; eb 034982 jmp short 0397eh ; eb 03 4974 4983 and dl, 00fh ; 80 e2 0f 4975 4984 mov byte [bp+011h], 000h ; c6 46 11 00 … … 4987 4996 mov word [bp+012h], ax ; 89 46 12 4988 4997 cmp dl, 003h ; 80 fa 03 4989 jc short 039 a0h ; 72 154990 jbe short 039 c7h ; 76 3a4998 jc short 039beh ; 72 15 4999 jbe short 039e5h ; 76 3a 4991 5000 cmp dl, 005h ; 80 fa 05 4992 jc short 039 ceh ; 72 3c4993 jbe short 039 d5h ; 76 415001 jc short 039ech ; 72 3c 5002 jbe short 039f3h ; 76 41 4994 5003 cmp dl, 00fh ; 80 fa 0f 4995 je short 03 9e3h ; 74 4a5004 je short 03a01h ; 74 4a 4996 5005 cmp dl, 00eh ; 80 fa 0e 4997 je short 039 dch ; 74 3e4998 jmp short 03 9eah ; eb 4a5006 je short 039fah ; 74 3e 5007 jmp short 03a08h ; eb 4a 4999 5008 cmp dl, 002h ; 80 fa 02 5000 je short 039 c0h ; 74 1b5009 je short 039deh ; 74 1b 5001 5010 cmp dl, 001h ; 80 fa 01 5002 je short 039 b9h ; 74 0f5011 je short 039d7h ; 74 0f 5003 5012 test dl, dl ; 84 d2 5004 jne short 03 9eah ; 75 3c5013 jne short 03a08h ; 75 3c 5005 5014 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 5006 5015 mov byte [bp+013h], 000h ; c6 46 13 00 5007 jmp short 03 9f8h ; eb 3f5016 jmp short 03a16h ; eb 3f 5008 5017 mov word [bp+014h], 02709h ; c7 46 14 09 27 5009 jmp short 03 9f8h ; eb 385018 jmp short 03a16h ; eb 38 5010 5019 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 5011 jmp short 03 9f8h ; eb 315020 jmp short 03a16h ; eb 31 5012 5021 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 5013 jmp short 03 9f8h ; eb 2a5022 jmp short 03a16h ; eb 2a 5014 5023 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 5015 jmp short 03 9f8h ; eb 235024 jmp short 03a16h ; eb 23 5016 5025 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 5017 jmp short 03 9f8h ; eb 1c5026 jmp short 03a16h ; eb 1c 5018 5027 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 5019 jmp short 03 9f8h ; eb 155028 jmp short 03a16h ; eb 15 5020 5029 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 5021 jmp short 03 9f8h ; eb 0e5030 jmp short 03a16h ; eb 0e 5022 5031 push 00287h ; 68 87 02 5023 5032 push 002dfh ; 68 df 02 5024 5033 push strict byte 00007h ; 6a 07 5025 call 01a6bh ; e8 76e05034 call 01a6bh ; e8 58 e0 5026 5035 add sp, strict byte 00006h ; 83 c4 06 5027 5036 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5028 5037 movzx ax, dl ; 0f b6 c2 5029 call 03c 87h ; e8 84 025038 call 03ca5h ; e8 84 02 5030 5039 mov word [bp+008h], ax ; 89 46 08 5031 jmp near 036 12h ; e9 09 fc5040 jmp near 03630h ; e9 09 fc 5032 5041 mov bl, ah ; 88 e3 5033 5042 cmp ah, 001h ; 80 fc 01 5034 jbe short 03a 15h ; 76 055043 jbe short 03a33h ; 76 05 5035 5044 mov word [bp+016h], dx ; 89 56 16 5036 jmp short 03a 5fh ; eb 4a5045 jmp short 03a7dh ; eb 4a 5037 5046 mov ax, strict word 00010h ; b8 10 00 5038 call 017a5h ; e8 8add5047 call 017a5h ; e8 6c dd 5039 5048 test bl, bl ; 84 db 5040 jne short 03a 26h ; 75 075049 jne short 03a44h ; 75 07 5041 5050 mov dl, al ; 88 c2 5042 5051 shr dl, 004h ; c0 ea 04 5043 jmp short 03a 2bh ; eb 055052 jmp short 03a49h ; eb 05 5044 5053 mov dl, al ; 88 c2 5045 5054 and dl, 00fh ; 80 e2 0f … … 5048 5057 xor ah, ah ; 30 e4 5049 5058 test dl, dl ; 84 d2 5050 je short 03a 45h ; 74 0d5059 je short 03a63h ; 74 0d 5051 5060 cmp dl, 001h ; 80 fa 01 5052 jbe short 03a 42h ; 76 055061 jbe short 03a60h ; 76 05 5053 5062 or ah, 002h ; 80 cc 02 5054 jmp short 03a 45h ; eb 035063 jmp short 03a63h ; eb 03 5055 5064 or ah, 001h ; 80 cc 01 5056 5065 mov word [bp+016h], ax ; 89 46 16 5057 jmp near 033 bch ; e9 71 f95066 jmp near 033dah ; e9 71 f9 5058 5067 cmp ah, 001h ; 80 fc 01 5059 jbe short 03a 65h ; 76 155068 jbe short 03a83h ; 76 15 5060 5069 mov word [bp+016h], si ; 89 76 16 5061 5070 mov bx, strict word 00041h ; bb 41 00 … … 5064 5073 mov byte [es:bx], 001h ; 26 c6 07 01 5065 5074 mov word [bp+01ch], cx ; 89 4e 1c 5066 jmp near 033 bch ; e9 57 f95075 jmp near 033dah ; e9 57 f9 5067 5076 mov ax, word [bp+016h] ; 8b 46 16 5068 5077 xor ah, ah ; 30 e4 … … 5073 5082 mov es, ax ; 8e c0 5074 5083 mov byte [es:bx], 006h ; 26 c6 07 06 5075 jmp near 03b 51h ; e9 d2 005084 jmp near 03b6fh ; e9 d2 00 5076 5085 mov bl, ah ; 88 e3 5077 5086 mov dl, byte [bp+016h] ; 8a 56 16 5078 5087 cmp ah, 001h ; 80 fc 01 5079 jnbe short 03a 50h ; 77 c75088 jnbe short 03a6eh ; 77 c7 5080 5089 movzx ax, bl ; 0f b6 c3 5081 call 032 bch ; e8 2d f85090 call 032dah ; e8 2d f8 5082 5091 test ax, ax ; 85 c0 5083 je near 037 afh ; 0f 84 1a fd5092 je near 037cdh ; 0f 84 1a fd 5084 5093 test bl, bl ; 84 db 5085 5094 db 00fh, 095h, 0c0h … … 5093 5102 and bl, 00fh ; 80 e3 0f 5094 5103 cmp dl, 002h ; 80 fa 02 5095 jc short 03a c3h ; 72 0f5096 jbe short 03a d0h ; 76 1a5104 jc short 03ae1h ; 72 0f 5105 jbe short 03aeeh ; 76 1a 5097 5106 cmp dl, 004h ; 80 fa 04 5098 je short 03a cbh ; 74 105107 je short 03ae9h ; 74 10 5099 5108 cmp dl, 003h ; 80 fa 03 5100 je short 03a d5h ; 74 155101 jmp near 033 4bh ; e9 88 f85109 je short 03af3h ; 74 15 5110 jmp near 03369h ; e9 88 f8 5102 5111 cmp dl, 001h ; 80 fa 01 5103 je short 03a cbh ; 74 035104 jmp near 033 4bh ; e9 80 f85112 je short 03ae9h ; 74 03 5113 jmp near 03369h ; e9 80 f8 5105 5114 or bl, 090h ; 80 cb 90 5106 jmp short 03a d8h ; eb 085115 jmp short 03af6h ; eb 08 5107 5116 or bl, 070h ; 80 cb 70 5108 jmp short 03a d8h ; eb 035117 jmp short 03af6h ; eb 03 5109 5118 or bl, 010h ; 80 cb 10 5110 5119 mov ax, strict word 00040h ; b8 40 00 … … 5116 5125 mov bx, strict word 00041h ; bb 41 00 5117 5126 mov byte [es:bx], al ; 26 88 07 5118 jmp near 036 12h ; e9 21 fb5127 jmp near 03630h ; e9 21 fb 5119 5128 mov bl, ah ; 88 e3 5120 5129 mov dl, byte [bp+014h] ; 8a 56 14 … … 5130 5139 mov byte [bp-002h], dl ; 88 56 fe 5131 5140 cmp ah, 001h ; 80 fc 01 5132 jnbe near 03a 50h ; 0f 87 37 ff5141 jnbe near 03a6eh ; 0f 87 37 ff 5133 5142 movzx ax, bl ; 0f b6 c3 5134 call 032 bch ; e8 9d f75143 call 032dah ; e8 9d f7 5135 5144 test ax, ax ; 85 c0 5136 je near 037 afh ; 0f 84 8a fc5145 je near 037cdh ; 0f 84 8a fc 5137 5146 movzx cx, bl ; 0f b6 cb 5138 5147 mov ax, cx ; 89 c8 5139 call 031 00h ; e8 d3 f55148 call 0311eh ; e8 d3 f5 5140 5149 test ax, ax ; 85 c0 5141 jne short 03b 58h ; 75 275150 jne short 03b76h ; 75 27 5142 5151 mov ax, cx ; 89 c8 5143 call 031 d8h ; e8 a2 f65152 call 031f6h ; e8 a2 f6 5144 5153 test ax, ax ; 85 c0 5145 jne short 03b 58h ; 75 1e5154 jne short 03b76h ; 75 1e 5146 5155 mov ax, word [bp+016h] ; 8b 46 16 5147 5156 xor ah, ah ; 30 e4 … … 5153 5162 mov byte [es:bx], 00ch ; 26 c6 07 0c 5154 5163 or byte [bp+01ch], 001h ; 80 4e 1c 01 5155 jmp near 033 bch ; e9 64 f85164 jmp near 033dah ; e9 64 f8 5156 5165 mov ax, strict word 00010h ; b8 10 00 5157 call 017a5h ; e8 47dc5166 call 017a5h ; e8 29 dc 5158 5167 test bl, bl ; 84 db 5159 jne short 03b 69h ; 75 075168 jne short 03b87h ; 75 07 5160 5169 mov dl, al ; 88 c2 5161 5170 shr dl, 004h ; c0 ea 04 5162 jmp short 03b 6eh ; eb 055171 jmp short 03b8ch ; eb 05 5163 5172 mov dl, al ; 88 c2 5164 5173 and dl, 00fh ; 80 e2 0f … … 5174 5183 and bl, 00fh ; 80 e3 0f 5175 5184 cmp dl, 003h ; 80 fa 03 5176 jc short 03b aah ; 72 1d5185 jc short 03bc8h ; 72 1d 5177 5186 mov al, bl ; 88 d8 5178 5187 or AL, strict byte 090h ; 0c 90 5179 5188 cmp dl, 003h ; 80 fa 03 5180 jbe short 03 bebh ; 76 555189 jbe short 03c09h ; 76 55 5181 5190 mov ah, bl ; 88 dc 5182 5191 or ah, 010h ; 80 cc 10 5183 5192 cmp dl, 005h ; 80 fa 05 5184 je near 03c 10h ; 0f 84 6e 005193 je near 03c2eh ; 0f 84 6e 00 5185 5194 cmp dl, 004h ; 80 fa 04 5186 je short 03 bfah ; 74 535187 jmp near 03c 2ch ; e9 82 005195 je short 03c18h ; 74 53 5196 jmp near 03c4ah ; e9 82 00 5188 5197 cmp dl, 002h ; 80 fa 02 5189 je short 03b cbh ; 74 1c5198 je short 03be9h ; 74 1c 5190 5199 cmp dl, 001h ; 80 fa 01 5191 jne near 03c 2ch ; 0f 85 76 005200 jne near 03c4ah ; 0f 85 76 00 5192 5201 cmp byte [bp-002h], 027h ; 80 7e fe 27 5193 jne near 03c 2ch ; 0f 85 6e 005202 jne near 03c4ah ; 0f 85 6e 00 5194 5203 cmp bh, 009h ; 80 ff 09 5195 jne near 03c 2ch ; 0f 85 67 005204 jne near 03c4ah ; 0f 85 67 00 5196 5205 or bl, 090h ; 80 cb 90 5197 jmp near 03c 2ch ; e9 61 005206 jmp near 03c4ah ; e9 61 00 5198 5207 cmp byte [bp-002h], 027h ; 80 7e fe 27 5199 jne short 03b dbh ; 75 0a5208 jne short 03bf9h ; 75 0a 5200 5209 cmp bh, 009h ; 80 ff 09 5201 jne short 03b dbh ; 75 055210 jne short 03bf9h ; 75 05 5202 5211 or bl, 070h ; 80 cb 70 5203 jmp short 03c 2ch ; eb 515212 jmp short 03c4ah ; eb 51 5204 5213 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5205 jne short 03c 2ch ; 75 4b5214 jne short 03c4ah ; 75 4b 5206 5215 cmp bh, 00fh ; 80 ff 0f 5207 jne short 03c 2ch ; 75 465216 jne short 03c4ah ; 75 46 5208 5217 or bl, 010h ; 80 cb 10 5209 jmp short 03c 2ch ; eb 415218 jmp short 03c4ah ; eb 41 5210 5219 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5211 jne short 03c 2ch ; 75 3b5220 jne short 03c4ah ; 75 3b 5212 5221 cmp bh, 009h ; 80 ff 09 5213 jne short 03c 2ch ; 75 365222 jne short 03c4ah ; 75 36 5214 5223 mov bl, al ; 88 c3 5215 jmp short 03c 2ch ; eb 325224 jmp short 03c4ah ; eb 32 5216 5225 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5217 jne short 03c 2ch ; 75 2c5226 jne short 03c4ah ; 75 2c 5218 5227 cmp bh, 009h ; 80 ff 09 5219 jne short 03c 07h ; 75 025220 jmp short 03 bf6h ; eb ef5228 jne short 03c25h ; 75 02 5229 jmp short 03c14h ; eb ef 5221 5230 cmp bh, 012h ; 80 ff 12 5222 jne short 03c 2ch ; 75 205231 jne short 03c4ah ; 75 20 5223 5232 mov bl, ah ; 88 e3 5224 jmp short 03c 2ch ; eb 1c5233 jmp short 03c4ah ; eb 1c 5225 5234 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5226 jne short 03c 2ch ; 75 165235 jne short 03c4ah ; 75 16 5227 5236 cmp bh, 009h ; 80 ff 09 5228 jne short 03c 1dh ; 75 025229 jmp short 03 bf6h ; eb d95237 jne short 03c3bh ; 75 02 5238 jmp short 03c14h ; eb d9 5230 5239 cmp bh, 012h ; 80 ff 12 5231 jne short 03c 24h ; 75 025232 jmp short 03c 0ch ; eb e85240 jne short 03c42h ; 75 02 5241 jmp short 03c2ah ; eb e8 5233 5242 cmp bh, 024h ; 80 ff 24 5234 jne short 03c 2ch ; 75 035243 jne short 03c4ah ; 75 03 5235 5244 or bl, 0d0h ; 80 cb d0 5236 5245 movzx ax, bl ; 0f b6 c3 5237 5246 sar ax, 004h ; c1 f8 04 5238 5247 test AL, strict byte 001h ; a8 01 5239 je near 03b 3ah ; 0f 84 02 ff5248 je near 03b58h ; 0f 84 02 ff 5240 5249 mov ax, strict word 00040h ; b8 40 00 5241 5250 mov es, ax ; 8e c0 … … 5244 5253 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5245 5254 movzx ax, dl ; 0f b6 c2 5246 call 03c 87h ; e8 39 005255 call 03ca5h ; e8 39 00 5247 5256 mov word [bp+008h], ax ; 89 46 08 5248 5257 mov byte [bp+017h], 000h ; c6 46 17 00 … … 5251 5260 mov es, ax ; 8e c0 5252 5261 mov byte [es:bx], 000h ; 26 c6 07 00 5253 jmp near 036 12h ; e9 ae f95254 mov bx, 00db 6h ; bb b60d5262 jmp near 03630h ; e9 ae f9 5263 mov bx, 00db2h ; bb b2 0d 5255 5264 mov cx, ds ; 8c d9 5256 5265 mov ax, strict word 00004h ; b8 04 00 5257 call 01a2ah ; e8 bbdd5266 call 01a2ah ; e8 9d dd 5258 5267 mov ax, word [bp+016h] ; 8b 46 16 5259 5268 shr ax, 008h ; c1 e8 08 … … 5262 5271 push 002f4h ; 68 f4 02 5263 5272 push strict byte 00004h ; 6a 04 5264 call 01a6bh ; e8 eadd5273 call 01a6bh ; e8 cc dd 5265 5274 add sp, strict byte 00008h ; 83 c4 08 5266 jmp near 033 4bh ; e9 c4 f65267 get_floppy_dpt_: ; 0xf3c 87LB 0x2f5275 jmp near 03369h ; e9 c4 f6 5276 get_floppy_dpt_: ; 0xf3ca5 LB 0x2f 5268 5277 push bx ; 53 5269 5278 push dx ; 52 … … 5272 5281 mov dl, al ; 88 c2 5273 5282 xor ax, ax ; 31 c0 5274 jmp short 03c 98h ; eb 065283 jmp short 03cb6h ; eb 06 5275 5284 inc ax ; 40 5276 5285 cmp ax, strict word 00007h ; 3d 07 00 5277 jnc short 03c afh ; 73 175286 jnc short 03ccdh ; 73 17 5278 5287 mov bx, ax ; 89 c3 5279 5288 add bx, ax ; 01 c3 5280 5289 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5281 jne short 03c 92h ; 75 f05290 jne short 03cb0h ; 75 f0 5282 5291 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 5283 5292 imul ax, ax, strict byte 0000dh ; 6b c0 0d 5284 5293 add ax, strict word 00000h ; 05 00 00 5285 jmp short 03c b2h ; eb 035294 jmp short 03cd0h ; eb 03 5286 5295 mov ax, strict word 00041h ; b8 41 00 5287 5296 pop bp ; 5d … … 5289 5298 pop bx ; 5b 5290 5299 retn ; c3 5291 dummy_soft_reset_: ; 0xf3c b6LB 0x75300 dummy_soft_reset_: ; 0xf3cd4 LB 0x7 5292 5301 push bp ; 55 5293 5302 mov bp, sp ; 89 e5 … … 5295 5304 pop bp ; 5d 5296 5305 retn ; c3 5297 _cdemu_init: ; 0xf3c bdLB 0x185306 _cdemu_init: ; 0xf3cdb LB 0x18 5298 5307 push bp ; 55 5299 5308 mov bp, sp ; 89 e5 5300 5309 mov dx, strict word 0000eh ; ba 0e 00 5301 5310 mov ax, strict word 00040h ; b8 40 00 5302 call 01765h ; e8 9cda5311 call 01765h ; e8 7e da 5303 5312 xor bx, bx ; 31 db 5304 5313 mov dx, 00366h ; ba 66 03 5305 call 01757h ; e8 86da5314 call 01757h ; e8 68 da 5306 5315 mov sp, bp ; 89 ec 5307 5316 pop bp ; 5d 5308 5317 retn ; c3 5309 _cdemu_isactive: ; 0xf3c d5LB 0x165318 _cdemu_isactive: ; 0xf3cf3 LB 0x16 5310 5319 push bp ; 55 5311 5320 mov bp, sp ; 89 e5 5312 5321 mov dx, strict word 0000eh ; ba 0e 00 5313 5322 mov ax, strict word 00040h ; b8 40 00 5314 call 01765h ; e8 84da5323 call 01765h ; e8 66 da 5315 5324 mov dx, 00366h ; ba 66 03 5316 call 01749h ; e8 62da5325 call 01749h ; e8 44 da 5317 5326 mov sp, bp ; 89 ec 5318 5327 pop bp ; 5d 5319 5328 retn ; c3 5320 _cdemu_emulated_drive: ; 0xf3 cebLB 0x165329 _cdemu_emulated_drive: ; 0xf3d09 LB 0x16 5321 5330 push bp ; 55 5322 5331 mov bp, sp ; 89 e5 5323 5332 mov dx, strict word 0000eh ; ba 0e 00 5324 5333 mov ax, strict word 00040h ; b8 40 00 5325 call 01765h ; e8 6eda5334 call 01765h ; e8 50 da 5326 5335 mov dx, 00368h ; ba 68 03 5327 call 01749h ; e8 4cda5336 call 01749h ; e8 2e da 5328 5337 mov sp, bp ; 89 ec 5329 5338 pop bp ; 5d 5330 5339 retn ; c3 5331 _int13_eltorito: ; 0xf3d 01LB 0x1895340 _int13_eltorito: ; 0xf3d1f LB 0x189 5332 5341 push bp ; 55 5333 5342 mov bp, sp ; 89 e5 … … 5336 5345 mov dx, strict word 0000eh ; ba 0e 00 5337 5346 mov ax, strict word 00040h ; b8 40 00 5338 call 01765h ; e8 56da5347 call 01765h ; e8 38 da 5339 5348 mov si, 00366h ; be 66 03 5340 5349 mov di, ax ; 89 c7 … … 5342 5351 shr ax, 008h ; c1 e8 08 5343 5352 cmp ax, strict word 0004bh ; 3d 4b 00 5344 jc short 03d 29h ; 72 0a5345 jbe short 03d 4fh ; 76 2e5353 jc short 03d47h ; 72 0a 5354 jbe short 03d6dh ; 76 2e 5346 5355 cmp ax, strict word 0004dh ; 3d 4d 00 5347 jbe short 03d 30h ; 76 0a5348 jmp near 03e 4eh ; e9 25 015356 jbe short 03d4eh ; 76 0a 5357 jmp near 03e6ch ; e9 25 01 5349 5358 cmp ax, strict word 0004ah ; 3d 4a 00 5350 jne near 03e 4eh ; 0f 85 1e 015351 mov bx, 00db 6h ; bb b60d5359 jne near 03e6ch ; 0f 85 1e 01 5360 mov bx, 00db2h ; bb b2 0d 5352 5361 mov cx, ds ; 8c d9 5353 5362 mov ax, strict word 00004h ; b8 04 00 5354 call 01a2ah ; e8 efdc5363 call 01a2ah ; e8 d1 dc 5355 5364 push word [bp+016h] ; ff 76 16 5356 5365 push 0030eh ; 68 0e 03 5357 5366 push 0031dh ; 68 1d 03 5358 5367 push strict byte 00004h ; 6a 04 5359 call 01a6bh ; e8 22dd5368 call 01a6bh ; e8 04 dd 5360 5369 add sp, strict byte 00008h ; 83 c4 08 5361 jmp near 03e 69h ; e9 1a 015370 jmp near 03e87h ; e9 1a 01 5362 5371 mov dx, word [bp+00ah] ; 8b 56 0a 5363 5372 mov ax, word [bp+004h] ; 8b 46 04 5364 5373 mov bx, strict word 00013h ; bb 13 00 5365 call 01757h ; e8 fcd95374 call 01757h ; e8 de d9 5366 5375 mov es, di ; 8e c7 5367 5376 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 5369 5378 inc dx ; 42 5370 5379 mov ax, word [bp+004h] ; 8b 46 04 5371 call 01757h ; e8 ebd95380 call 01757h ; e8 cd d9 5372 5381 mov es, di ; 8e c7 5373 5382 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 5376 5385 inc dx ; 42 5377 5386 mov ax, word [bp+004h] ; 8b 46 04 5378 call 01757h ; e8 d9d95387 call 01757h ; e8 bb d9 5379 5388 mov es, di ; 8e c7 5380 5389 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 5382 5391 add dx, strict byte 00003h ; 83 c2 03 5383 5392 mov ax, word [bp+004h] ; 8b 46 04 5384 call 01757h ; e8 c6d95393 call 01757h ; e8 a8 d9 5385 5394 mov es, di ; 8e c7 5386 5395 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5389 5398 add dx, strict byte 00004h ; 83 c2 04 5390 5399 mov ax, word [bp+004h] ; 8b 46 04 5391 call 01793h ; e8 ecd95400 call 01793h ; e8 ce d9 5392 5401 mov es, di ; 8e c7 5393 5402 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5395 5404 add dx, strict byte 00008h ; 83 c2 08 5396 5405 mov ax, word [bp+004h] ; 8b 46 04 5397 call 01773h ; e8 bad95406 call 01773h ; e8 9c d9 5398 5407 mov es, di ; 8e c7 5399 5408 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5401 5410 add dx, strict byte 0000ah ; 83 c2 0a 5402 5411 mov ax, word [bp+004h] ; 8b 46 04 5403 call 01773h ; e8 a8d95412 call 01773h ; e8 8a d9 5404 5413 mov es, di ; 8e c7 5405 5414 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5407 5416 add dx, strict byte 0000ch ; 83 c2 0c 5408 5417 mov ax, word [bp+004h] ; 8b 46 04 5409 call 01773h ; e8 96d95418 call 01773h ; e8 78 d9 5410 5419 mov es, di ; 8e c7 5411 5420 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5413 5422 add dx, strict byte 0000eh ; 83 c2 0e 5414 5423 mov ax, word [bp+004h] ; 8b 46 04 5415 call 01773h ; e8 84d95424 call 01773h ; e8 66 d9 5416 5425 mov es, di ; 8e c7 5417 5426 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 5419 5428 add dx, strict byte 00010h ; 83 c2 10 5420 5429 mov ax, word [bp+004h] ; 8b 46 04 5421 call 01757h ; e8 55d95430 call 01757h ; e8 37 d9 5422 5431 mov es, di ; 8e c7 5423 5432 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 5425 5434 add dx, strict byte 00011h ; 83 c2 11 5426 5435 mov ax, word [bp+004h] ; 8b 46 04 5427 call 01757h ; e8 42d95436 call 01757h ; e8 24 d9 5428 5437 mov es, di ; 8e c7 5429 5438 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 5431 5440 add dx, strict byte 00012h ; 83 c2 12 5432 5441 mov ax, word [bp+004h] ; 8b 46 04 5433 call 01757h ; e8 2fd95442 call 01757h ; e8 11 d9 5434 5443 test byte [bp+016h], 0ffh ; f6 46 16 ff 5435 jne short 03e 34h ; 75 065444 jne short 03e52h ; 75 06 5436 5445 mov es, di ; 8e c7 5437 5446 mov byte [es:si], 000h ; 26 c6 04 00 … … 5440 5449 mov dx, strict word 00074h ; ba 74 00 5441 5450 mov ax, strict word 00040h ; b8 40 00 5442 call 01757h ; e8 14 d95451 call 01757h ; e8 f6 d8 5443 5452 and byte [bp+01ch], 0feh ; 80 66 1c fe 5444 5453 lea sp, [bp-004h] ; 8d 66 fc … … 5447 5456 pop bp ; 5d 5448 5457 retn ; c3 5449 mov bx, 00db 6h ; bb b60d5458 mov bx, 00db2h ; bb b2 0d 5450 5459 mov cx, ds ; 8c d9 5451 5460 mov ax, strict word 00004h ; b8 04 00 5452 call 01a2ah ; e8 d1db5461 call 01a2ah ; e8 b3 db 5453 5462 mov ax, word [bp+016h] ; 8b 46 16 5454 5463 shr ax, 008h ; c1 e8 08 … … 5456 5465 push 0030eh ; 68 0e 03 5457 5466 push 00345h ; 68 45 03 5458 jmp near 03d 44h ; e9 db fe5467 jmp near 03d62h ; e9 db fe 5459 5468 mov ax, word [bp+016h] ; 8b 46 16 5460 5469 xor ah, ah ; 30 e4 … … 5466 5475 mov dx, strict word 00074h ; ba 74 00 5467 5476 mov ax, strict word 00040h ; b8 40 00 5468 call 01757h ; e8 d3d85477 call 01757h ; e8 b5 d8 5469 5478 or byte [bp+01ch], 001h ; 80 4e 1c 01 5470 jmp short 03e 47h ; eb bd5471 device_is_cdrom_: ; 0xf3e 8aLB 0x355479 jmp short 03e65h ; eb bd 5480 device_is_cdrom_: ; 0xf3ea8 LB 0x35 5472 5481 push bp ; 55 5473 5482 mov bp, sp ; 89 e5 … … 5477 5486 mov dx, strict word 0000eh ; ba 0e 00 5478 5487 mov ax, strict word 00040h ; b8 40 00 5479 call 01765h ; e8 cbd85488 call 01765h ; e8 ad d8 5480 5489 cmp bl, 010h ; 80 fb 10 5481 jc short 03e a3h ; 72 045490 jc short 03ec1h ; 72 04 5482 5491 xor ax, ax ; 31 c0 5483 jmp short 03e b8h ; eb 155492 jmp short 03ed6h ; eb 15 5484 5493 xor bh, bh ; 30 ff 5485 5494 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5487 5496 add bx, 00122h ; 81 c3 22 01 5488 5497 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5489 jne short 03e 9fh ; 75 ea5498 jne short 03ebdh ; 75 ea 5490 5499 mov ax, strict word 00001h ; b8 01 00 5491 5500 lea sp, [bp-004h] ; 8d 66 fc … … 5494 5503 pop bp ; 5d 5495 5504 retn ; c3 5496 cdrom_boot_: ; 0xf3e bfLB 0x4175505 cdrom_boot_: ; 0xf3edd LB 0x417 5497 5506 push bp ; 55 5498 5507 mov bp, sp ; 89 e5 … … 5505 5514 mov dx, strict word 0000eh ; ba 0e 00 5506 5515 mov ax, strict word 00040h ; b8 40 00 5507 call 01765h ; e8 91d85516 call 01765h ; e8 73 d8 5508 5517 mov word [bp-018h], ax ; 89 46 e8 5509 5518 mov si, 00366h ; be 66 03 … … 5512 5521 mov word [bp-012h], ax ; 89 46 ee 5513 5522 mov byte [bp-00ch], 000h ; c6 46 f4 00 5514 jmp short 03 ef4h ; eb 095523 jmp short 03f12h ; eb 09 5515 5524 inc byte [bp-00ch] ; fe 46 f4 5516 5525 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5517 jnc short 03 effh ; 73 0b5526 jnc short 03f1dh ; 73 0b 5518 5527 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5519 call 03e 8ah ; e8 8f ff5528 call 03ea8h ; e8 8f ff 5520 5529 test ax, ax ; 85 c0 5521 je short 03 eebh ; 74 ec5530 je short 03f09h ; 74 ec 5522 5531 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5523 jc short 03f 0bh ; 72 065532 jc short 03f29h ; 72 06 5524 5533 mov ax, strict word 00002h ; b8 02 00 5525 jmp near 042 73h ; e9 68 035534 jmp near 04291h ; e9 68 03 5526 5535 mov cx, strict word 0000ch ; b9 0c 00 5527 5536 xor bx, bx ; 31 db 5528 5537 mov dx, ss ; 8c d2 5529 5538 lea ax, [bp-026h] ; 8d 46 da 5530 call 0a1 10h ; e8 f8615539 call 0a130h ; e8 fa 61 5531 5540 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5532 5541 mov ax, strict word 00011h ; b8 11 00 … … 5544 5553 ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08 5545 5554 mov byte [bp-00eh], 000h ; c6 46 f2 00 5546 jmp short 03f 50h ; eb 095555 jmp short 03f6eh ; eb 09 5547 5556 inc byte [bp-00eh] ; fe 46 f2 5548 5557 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5549 jnbe short 03f 86h ; 77 365558 jnbe short 03fa4h ; 77 36 5550 5559 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5551 5560 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 5567 5576 call word [word di+0006ah] ; ff 95 6a 00 5568 5577 test ax, ax ; 85 c0 5569 jne short 03f 47h ; 75 c15578 jne short 03f65h ; 75 c1 5570 5579 test ax, ax ; 85 c0 5571 je short 03f 90h ; 74 065580 je short 03faeh ; 74 06 5572 5581 mov ax, strict word 00003h ; b8 03 00 5573 jmp near 042 73h ; e9 e3 025582 jmp near 04291h ; e9 e3 02 5574 5583 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5575 je short 03f 9dh ; 74 065584 je short 03fbbh ; 74 06 5576 5585 mov ax, strict word 00004h ; b8 04 00 5577 jmp near 042 73h ; e9 d6 025586 jmp near 04291h ; e9 d6 02 5578 5587 xor di, di ; 31 ff 5579 jmp short 03f a7h ; eb 065588 jmp short 03fc5h ; eb 06 5580 5589 inc di ; 47 5581 5590 cmp di, strict byte 00005h ; 83 ff 05 5582 jnc short 03f b7h ; 73 105591 jnc short 03fd5h ; 73 10 5583 5592 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5584 cmp al, byte [di+00db eh] ; 3a 85 be0d5585 je short 03f a1h ; 74 f05593 cmp al, byte [di+00dbah] ; 3a 85 ba 0d 5594 je short 03fbfh ; 74 f0 5586 5595 mov ax, strict word 00005h ; b8 05 00 5587 jmp near 042 73h ; e9 bc 025596 jmp near 04291h ; e9 bc 02 5588 5597 xor di, di ; 31 ff 5589 jmp short 03f c1h ; eb 065598 jmp short 03fdfh ; eb 06 5590 5599 inc di ; 47 5591 5600 cmp di, strict byte 00017h ; 83 ff 17 5592 jnc short 03f d1h ; 73 105601 jnc short 03fefh ; 73 10 5593 5602 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5594 cmp al, byte [di+00dc 4h] ; 3a 85 c40d5595 je short 03f bbh ; 74 f05603 cmp al, byte [di+00dc0h] ; 3a 85 c0 0d 5604 je short 03fd9h ; 74 f0 5596 5605 mov ax, strict word 00006h ; b8 06 00 5597 jmp near 042 73h ; e9 a2 025606 jmp near 04291h ; e9 a2 02 5598 5607 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5599 5608 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5626 5635 call word [word di+0006ah] ; ff 95 6a 00 5627 5636 test ax, ax ; 85 c0 5628 je short 040 2dh ; 74 065637 je short 0404bh ; 74 06 5629 5638 mov ax, strict word 00007h ; b8 07 00 5630 jmp near 042 73h ; e9 46 025639 jmp near 04291h ; e9 46 02 5631 5640 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5632 je short 040 3ah ; 74 065641 je short 04058h ; 74 06 5633 5642 mov ax, strict word 00008h ; b8 08 00 5634 jmp near 042 73h ; e9 39 025643 jmp near 04291h ; e9 39 02 5635 5644 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5636 je short 040 47h ; 74 065645 je short 04065h ; 74 06 5637 5646 mov ax, strict word 00009h ; b8 09 00 5638 jmp near 042 73h ; e9 2c 025647 jmp near 04291h ; e9 2c 02 5639 5648 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5640 je short 040 54h ; 74 065649 je short 04072h ; 74 06 5641 5650 mov ax, strict word 0000ah ; b8 0a 00 5642 jmp near 042 73h ; e9 1f 025651 jmp near 04291h ; e9 1f 02 5643 5652 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5644 jne short 040 4eh ; 75 f35653 jne short 0406ch ; 75 f3 5645 5654 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5646 je short 040 68h ; 74 065655 je short 04086h ; 74 06 5647 5656 mov ax, strict word 0000bh ; b8 0b 00 5648 jmp near 042 73h ; e9 0b 025657 jmp near 04291h ; e9 0b 02 5649 5658 mov al, byte [bp-00805h] ; 8a 86 fb f7 5650 5659 mov es, [bp-010h] ; 8e 46 f0 5651 5660 mov byte [es:si+001h], al ; 26 88 44 01 5652 5661 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5653 jne short 040 81h ; 75 075662 jne short 0409fh ; 75 07 5654 5663 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5655 jmp short 040 94h ; eb 135664 jmp short 040b2h ; eb 13 5656 5665 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5657 jnc short 040 8fh ; 73 075666 jnc short 040adh ; 73 07 5658 5667 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5659 jmp short 040 94h ; eb 055668 jmp short 040b2h ; eb 05 5660 5669 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5661 5670 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 5675 5684 mov word [bp-016h], ax ; 89 46 ea 5676 5685 test ax, ax ; 85 c0 5677 jne short 040 c2h ; 75 055686 jne short 040e0h ; 75 05 5678 5687 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 5679 5688 mov ax, word [bp-016h] ; 8b 46 ea … … 5684 5693 mov word [es:si+00eh], di ; 26 89 7c 0e 5685 5694 test di, di ; 85 ff 5686 je short 04 0e4h ; 74 065695 je short 04102h ; 74 06 5687 5696 cmp di, 00400h ; 81 ff 00 04 5688 jbe short 04 0eah ; 76 065697 jbe short 04108h ; 76 06 5689 5698 mov ax, strict word 0000ch ; b8 0c 00 5690 jmp near 042 73h ; e9 89 015699 jmp near 04291h ; e9 89 01 5691 5700 mov ax, word [bp-007feh] ; 8b 86 02 f8 5692 5701 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5728 5737 sal ax, 1 ; d1 e0 5729 5738 rcl di, 1 ; d1 d7 5730 loop 041 58h ; e2 fa5739 loop 04176h ; e2 fa 5731 5740 push di ; 57 5732 5741 push ax ; 50 … … 5741 5750 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5742 5751 test ax, ax ; 85 c0 5743 je short 041 88h ; 74 065752 je short 041a6h ; 74 06 5744 5753 mov ax, strict word 0000dh ; b8 0d 00 5745 jmp near 042 73h ; e9 eb 005754 jmp near 04291h ; e9 eb 00 5746 5755 mov es, [bp-010h] ; 8e 46 f0 5747 5756 mov al, byte [es:si+001h] ; 26 8a 44 01 5748 5757 cmp AL, strict byte 002h ; 3c 02 5749 jc short 041 a0h ; 72 0d5750 jbe short 041 b8h ; 76 235758 jc short 041beh ; 72 0d 5759 jbe short 041d6h ; 76 23 5751 5760 cmp AL, strict byte 004h ; 3c 04 5752 je short 041 ceh ; 74 355761 je short 041ech ; 74 35 5753 5762 cmp AL, strict byte 003h ; 3c 03 5754 je short 041 c3h ; 74 265755 jmp near 042 1ch ; e9 7c 005763 je short 041e1h ; 74 26 5764 jmp near 0423ah ; e9 7c 00 5756 5765 cmp AL, strict byte 001h ; 3c 01 5757 jne short 042 1ch ; 75 785766 jne short 0423ah ; 75 78 5758 5767 mov es, [bp-010h] ; 8e 46 f0 5759 5768 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 5760 5769 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 5761 5770 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5762 jmp short 042 1ch ; eb 645771 jmp short 0423ah ; eb 64 5763 5772 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 5764 5773 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 5765 jmp short 041 b0h ; eb ed5774 jmp short 041ceh ; eb ed 5766 5775 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 5767 5776 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 5768 jmp short 041 b0h ; eb e25777 jmp short 041ceh ; eb e2 5769 5778 mov dx, 001c4h ; ba c4 01 5770 5779 mov ax, word [bp-016h] ; 8b 46 ea 5771 call 01749h ; e8 72d55780 call 01749h ; e8 54 d5 5772 5781 and AL, strict byte 03fh ; 24 3f 5773 5782 xor ah, ah ; 30 e4 … … 5776 5785 mov dx, 001c4h ; ba c4 01 5777 5786 mov ax, word [bp-016h] ; 8b 46 ea 5778 call 01749h ; e8 5ed55787 call 01749h ; e8 40 d5 5779 5788 movzx bx, al ; 0f b6 d8 5780 5789 and bl, 0c0h ; 80 e3 c0 … … 5782 5791 mov dx, 001c5h ; ba c5 01 5783 5792 mov ax, word [bp-016h] ; 8b 46 ea 5784 call 01749h ; e8 4cd55793 call 01749h ; e8 2e d5 5785 5794 xor ah, ah ; 30 e4 5786 5795 add ax, bx ; 01 d8 … … 5790 5799 mov dx, 001c3h ; ba c3 01 5791 5800 mov ax, word [bp-016h] ; 8b 46 ea 5792 call 01749h ; e8 37d55801 call 01749h ; e8 19 d5 5793 5802 xor ah, ah ; 30 e4 5794 5803 inc ax ; 40 … … 5797 5806 mov es, [bp-010h] ; 8e 46 f0 5798 5807 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5799 je short 042 5ah ; 74 345808 je short 04278h ; 74 34 5800 5809 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5801 jne short 042 43h ; 75 165810 jne short 04261h ; 75 16 5802 5811 mov dx, strict word 00010h ; ba 10 00 5803 5812 mov ax, strict word 00040h ; b8 40 00 5804 call 01749h ; e8 13 d55813 call 01749h ; e8 f5 d4 5805 5814 or AL, strict byte 041h ; 0c 41 5806 5815 movzx bx, al ; 0f b6 d8 5807 5816 mov dx, strict word 00010h ; ba 10 00 5808 5817 mov ax, strict word 00040h ; b8 40 00 5809 jmp short 042 57h ; eb 145818 jmp short 04275h ; eb 14 5810 5819 mov dx, 00304h ; ba 04 03 5811 5820 mov ax, word [bp-018h] ; 8b 46 e8 5812 call 01749h ; e8 fdd45821 call 01749h ; e8 df d4 5813 5822 db 0feh, 0c0h 5814 5823 ; inc al ; fe c0 … … 5816 5825 mov dx, 00304h ; ba 04 03 5817 5826 mov ax, word [bp-018h] ; 8b 46 e8 5818 call 01757h ; e8 fdd45827 call 01757h ; e8 df d4 5819 5828 mov es, [bp-010h] ; 8e 46 f0 5820 5829 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5821 je short 042 68h ; 74 045830 je short 04286h ; 74 04 5822 5831 mov byte [es:si], 001h ; 26 c6 04 01 5823 5832 mov es, [bp-010h] ; 8e 46 f0 … … 5833 5842 retn ; c3 5834 5843 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5835 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 6eh, 046h, 07ch5836 db 043h, 0 c6h, 043h, 0eeh, 043h, 0bbh, 043h, 0eeh, 043h, 0bbh, 043h, 0c4h, 045h, 0a1h, 043h, 06eh5837 db 046h, 0 6eh, 046h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 0a1h, 043h, 065h, 046h, 0a1h5838 db 043h, 0 6eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h, 06eh5839 db 046h, 0 6eh, 046h, 06eh, 046h, 06eh, 046h, 06eh, 046h5840 _int13_cdemu: ; 0xf42 d6LB 0x4345844 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 08ch, 046h, 09ah 5845 db 043h, 0e4h, 043h, 00ch, 044h, 0d9h, 043h, 00ch, 044h, 0d9h, 043h, 0e2h, 045h, 0bfh, 043h, 08ch 5846 db 046h, 08ch, 046h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 0bfh, 043h, 083h, 046h, 0bfh 5847 db 043h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch 5848 db 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h, 08ch, 046h 5849 _int13_cdemu: ; 0xf42f4 LB 0x434 5841 5850 push bp ; 55 5842 5851 mov bp, sp ; 89 e5 … … 5846 5855 mov dx, strict word 0000eh ; ba 0e 00 5847 5856 mov ax, strict word 00040h ; b8 40 00 5848 call 01765h ; e8 7ed45857 call 01765h ; e8 60 d4 5849 5858 mov di, 00366h ; bf 66 03 5850 5859 mov cx, ax ; 89 c1 … … 5862 5871 mov dx, strict word 00074h ; ba 74 00 5863 5872 mov ax, strict word 00040h ; b8 40 00 5864 call 01757h ; e8 41d45873 call 01757h ; e8 23 d4 5865 5874 mov es, cx ; 8e c1 5866 5875 cmp byte [es:di], 000h ; 26 80 3d 00 5867 je short 043 2ch ; 74 0e5876 je short 0434ah ; 74 0e 5868 5877 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5869 5878 mov ax, word [bp+012h] ; 8b 46 12 5870 5879 xor ah, ah ; 30 e4 5871 5880 cmp dx, ax ; 39 c2 5872 je short 043 55h ; 74 295873 mov bx, 00db 6h ; bb b60d5881 je short 04373h ; 74 29 5882 mov bx, 00db2h ; bb b2 0d 5874 5883 mov cx, ds ; 8c d9 5875 5884 mov ax, strict word 00004h ; b8 04 00 5876 call 01a2ah ; e8 f3d65885 call 01a2ah ; e8 d5 d6 5877 5886 mov ax, word [bp+012h] ; 8b 46 12 5878 5887 xor ah, ah ; 30 e4 … … 5884 5893 push 0036ah ; 68 6a 03 5885 5894 push strict byte 00004h ; 6a 04 5886 call 01a6bh ; e8 1c d75895 call 01a6bh ; e8 fe d6 5887 5896 add sp, strict byte 0000ah ; 83 c4 0a 5888 jmp near 046 8eh ; e9 39 035897 jmp near 046ach ; e9 39 03 5889 5898 mov ax, word [bp+016h] ; 8b 46 16 5890 5899 shr ax, 008h ; c1 e8 08 5891 5900 cmp ax, strict word 00050h ; 3d 50 00 5892 jnbe near 046 6eh ; 0f 87 0c 035901 jnbe near 0468ch ; 0f 87 0c 03 5893 5902 push CS ; 0e 5894 5903 pop ES ; 07 5895 5904 mov cx, strict word 0001eh ; b9 1e 00 5896 mov di, 042 7dh ; bf 7d425905 mov di, 0429bh ; bf 9b 42 5897 5906 repne scasb ; f2 ae 5898 5907 sal cx, 1 ; d1 e1 5899 5908 mov di, cx ; 89 cf 5900 mov ax, word [cs:di+042 9ah] ; 2e 8b 85 9a425909 mov ax, word [cs:di+042b8h] ; 2e 8b 85 b8 42 5901 5910 mov bx, word [bp+016h] ; 8b 5e 16 5902 5911 xor bh, bh ; 30 ff … … 5909 5918 add bx, bx ; 01 db 5910 5919 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5911 je near 043 a1h ; 0f 84 08 005920 je near 043bfh ; 0f 84 08 00 5912 5921 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5913 5922 call word [word bx+00076h] ; ff 97 76 00 … … 5916 5925 mov dx, strict word 00074h ; ba 74 00 5917 5926 mov ax, strict word 00040h ; b8 40 00 5918 call 01757h ; e8 a7d35927 call 01757h ; e8 89 d3 5919 5928 and byte [bp+01ch], 0feh ; 80 66 1c fe 5920 5929 lea sp, [bp-004h] ; 8d 66 fc … … 5926 5935 xor ah, ah ; 30 e4 5927 5936 or ah, 003h ; 80 cc 03 5928 jmp near 046 96h ; e9 d0 025937 jmp near 046b4h ; e9 d0 02 5929 5938 mov dx, strict word 00074h ; ba 74 00 5930 5939 mov ax, strict word 00040h ; b8 40 00 5931 call 01749h ; e8 7ad35940 call 01749h ; e8 5c d3 5932 5941 mov cl, al ; 88 c1 5933 5942 movzx ax, cl ; 0f b6 c1 … … 5938 5947 mov dx, strict word 00074h ; ba 74 00 5939 5948 mov ax, strict word 00040h ; b8 40 00 5940 call 01757h ; e8 70d35949 call 01757h ; e8 52 d3 5941 5950 test cl, cl ; 84 c9 5942 je short 043 a5h ; 74 ba5943 jmp near 046 aah ; e9 bc 025951 je short 043c3h ; 74 ba 5952 jmp near 046c8h ; e9 bc 02 5944 5953 mov es, [bp-008h] ; 8e 46 f8 5945 5954 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5965 5974 mov word [bp-00ah], cx ; 89 4e f6 5966 5975 test cx, cx ; 85 c9 5967 jne short 044 3bh ; 75 035968 jmp near 043 a1h ; e9 66 ff5976 jne short 04459h ; 75 03 5977 jmp near 043bfh ; e9 66 ff 5969 5978 cmp di, word [bp-010h] ; 3b 7e f0 5970 jc near 046 8eh ; 0f 82 4c 025979 jc near 046ach ; 0f 82 4c 02 5971 5980 cmp ax, dx ; 39 d0 5972 jnc near 046 8eh ; 0f 83 46 025981 jnc near 046ach ; 0f 83 46 02 5973 5982 cmp si, bx ; 39 de 5974 jnc near 046 8eh ; 0f 83 40 025983 jnc near 046ach ; 0f 83 40 02 5975 5984 mov dx, word [bp+016h] ; 8b 56 16 5976 5985 shr dx, 008h ; c1 ea 08 5977 5986 cmp dx, strict byte 00004h ; 83 fa 04 5978 jne short 044 5ch ; 75 035979 jmp near 043 a1h ; e9 45 ff5987 jne short 0447ah ; 75 03 5988 jmp near 043bfh ; e9 45 ff 5980 5989 mov dx, word [bp+010h] ; 8b 56 10 5981 5990 shr dx, 004h ; c1 ea 04 … … 5988 5997 xor dl, dl ; 30 d2 5989 5998 xor cx, cx ; 31 c9 5990 call 0a0 70h ; e8 f65b5999 call 0a090h ; e8 f8 5b 5991 6000 xor bx, bx ; 31 db 5992 6001 add ax, si ; 01 f0 … … 5994 6003 mov bx, di ; 89 fb 5995 6004 xor cx, cx ; 31 c9 5996 call 0a0 70h ; e8 e95b6005 call 0a090h ; e8 eb 5b 5997 6006 mov bx, ax ; 89 c3 5998 6007 mov ax, word [bp-010h] ; 8b 46 f0 … … 6029 6038 mov dx, ss ; 8c d2 6030 6039 lea ax, [bp-02eh] ; 8d 46 d2 6031 call 0a1 10h ; e8 325c6040 call 0a130h ; e8 34 5c 6032 6041 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6033 6042 mov ax, word [bp-014h] ; 8b 46 ec … … 6077 6086 sal si, 1 ; d1 e6 6078 6087 rcl di, 1 ; d1 d7 6079 loop 045 5eh ; e2 fa6088 loop 0457ch ; e2 fa 6080 6089 push di ; 57 6081 6090 push si ; 56 … … 6092 6101 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 6093 6102 test al, al ; 84 c0 6094 je near 043 a1h ; 0f 84 13 fe6095 mov bx, 00db 6h ; bb b60d6103 je near 043bfh ; 0f 84 13 fe 6104 mov bx, 00db2h ; bb b2 0d 6096 6105 mov cx, ds ; 8c d9 6097 6106 mov ax, strict word 00004h ; b8 04 00 6098 call 01a2ah ; e8 91d46107 call 01a2ah ; e8 73 d4 6099 6108 movzx ax, dl ; 0f b6 c2 6100 6109 push ax ; 50 … … 6105 6114 push 003a0h ; 68 a0 03 6106 6115 push strict byte 00004h ; 6a 04 6107 call 01a6bh ; e8 bcd46116 call 01a6bh ; e8 9e d4 6108 6117 add sp, strict byte 0000ah ; 83 c4 0a 6109 6118 mov ax, word [bp+016h] ; 8b 46 16 … … 6112 6121 mov word [bp+016h], ax ; 89 46 16 6113 6122 mov byte [bp+016h], 000h ; c6 46 16 00 6114 jmp near 046 99h ; e9 d5 006123 jmp near 046b7h ; e9 d5 00 6115 6124 mov es, [bp-008h] ; 8e 46 f8 6116 6125 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 6151 6160 mov word [bp+010h], ax ; 89 46 10 6152 6161 cmp dl, 003h ; 80 fa 03 6153 je short 046 48h ; 74 1a6162 je short 04666h ; 74 1a 6154 6163 cmp dl, 002h ; 80 fa 02 6155 je short 046 44h ; 74 116164 je short 04662h ; 74 11 6156 6165 cmp dl, 001h ; 80 fa 01 6157 jne short 046 4ch ; 75 146166 jne short 0466ah ; 75 14 6158 6167 mov ax, word [bp+010h] ; 8b 46 10 6159 6168 xor al, al ; 30 c0 6160 6169 or AL, strict byte 002h ; 0c 02 6161 6170 mov word [bp+010h], ax ; 89 46 10 6162 jmp short 046 4ch ; eb 086171 jmp short 0466ah ; eb 08 6163 6172 or AL, strict byte 004h ; 0c 04 6164 jmp short 046 3fh ; eb f76173 jmp short 0465dh ; eb f7 6165 6174 or AL, strict byte 005h ; 0c 05 6166 jmp short 046 3fh ; eb f36175 jmp short 0465dh ; eb f3 6167 6176 mov es, [bp-008h] ; 8e 46 f8 6168 6177 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6169 jnc near 043 a1h ; 0f 83 49 fd6178 jnc near 043bfh ; 0f 83 49 fd 6170 6179 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6171 6180 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6172 jmp near 043 a1h ; e9 3c fd6181 jmp near 043bfh ; e9 3c fd 6173 6182 or bh, 003h ; 80 cf 03 6174 6183 mov word [bp+016h], bx ; 89 5e 16 6175 jmp near 043 a5h ; e9 37 fd6176 mov bx, 00db 6h ; bb b60d6184 jmp near 043c3h ; e9 37 fd 6185 mov bx, 00db2h ; bb b2 0d 6177 6186 mov cx, ds ; 8c d9 6178 6187 mov ax, strict word 00004h ; b8 04 00 6179 call 01a2ah ; e8 b1d36188 call 01a2ah ; e8 93 d3 6180 6189 mov ax, word [bp+016h] ; 8b 46 16 6181 6190 shr ax, 008h ; c1 e8 08 … … 6184 6193 push 003c1h ; 68 c1 03 6185 6194 push strict byte 00004h ; 6a 04 6186 call 01a6bh ; e8 e0d36195 call 01a6bh ; e8 c2 d3 6187 6196 add sp, strict byte 00008h ; 83 c4 08 6188 6197 mov ax, word [bp+016h] ; 8b 46 16 … … 6195 6204 mov dx, strict word 00074h ; ba 74 00 6196 6205 mov ax, strict word 00040h ; b8 40 00 6197 call 01757h ; e8 add06206 call 01757h ; e8 8f d0 6198 6207 or byte [bp+01ch], 001h ; 80 4e 1c 01 6199 jmp near 043 b4h ; e9 03 fd6208 jmp near 043d2h ; e9 03 fd 6200 6209 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6201 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 4fh, 04ch, 0cbh6202 db 049h, 0 b7h, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0ach, 047h, 04fh, 04ch, 0cbh, 049h, 04fh6203 db 04ch, 0 4fh, 04ch, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0cbh, 049h, 0e1h, 047h, 0cbh6204 db 049h, 0 4fh, 04ch, 0eah, 047h, 0fdh, 047h, 0ach, 047h, 0fdh, 047h, 02bh, 049h, 0e5h, 049h, 0fdh6205 db 04 7h, 00ch, 04ah, 008h, 04ch, 010h, 04ch, 04fh, 04ch6206 _int13_cdrom: ; 0xf47 0aLB 0x5626210 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 06dh, 04ch, 0e9h 6211 db 049h, 0d5h, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0cah, 047h, 06dh, 04ch, 0e9h, 049h, 06dh 6212 db 04ch, 06dh, 04ch, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0e9h, 049h, 0ffh, 047h, 0e9h 6213 db 049h, 06dh, 04ch, 008h, 048h, 01bh, 048h, 0cah, 047h, 01bh, 048h, 049h, 049h, 003h, 04ah, 01bh 6214 db 048h, 02ah, 04ah, 026h, 04ch, 02eh, 04ch, 06dh, 04ch 6215 _int13_cdrom: ; 0xf4728 LB 0x562 6207 6216 push bp ; 55 6208 6217 mov bp, sp ; 89 e5 … … 6212 6221 mov dx, strict word 0000eh ; ba 0e 00 6213 6222 mov ax, strict word 00040h ; b8 40 00 6214 call 01765h ; e8 4ad06223 call 01765h ; e8 2c d0 6215 6224 mov word [bp-01ah], ax ; 89 46 e6 6216 6225 mov si, 00122h ; be 22 01 … … 6219 6228 mov dx, strict word 00074h ; ba 74 00 6220 6229 mov ax, strict word 00040h ; b8 40 00 6221 call 01757h ; e8 28d06230 call 01757h ; e8 0a d0 6222 6231 mov ax, word [bp+010h] ; 8b 46 10 6223 6232 xor ah, ah ; 30 e4 6224 6233 cmp ax, 000e0h ; 3d e0 00 6225 jc short 047 3eh ; 72 056234 jc short 0475ch ; 72 05 6226 6235 cmp ax, 000f0h ; 3d f0 00 6227 jc short 047 5ch ; 72 1e6236 jc short 0477ah ; 72 1e 6228 6237 mov ax, word [bp+010h] ; 8b 46 10 6229 6238 xor ah, ah ; 30 e4 … … 6235 6244 push 003fdh ; 68 fd 03 6236 6245 push strict byte 00004h ; 6a 04 6237 call 01a6bh ; e8 15 d36246 call 01a6bh ; e8 f7 d2 6238 6247 add sp, strict byte 0000ah ; 83 c4 0a 6239 jmp near 04c 2ch ; e9 d0 046248 jmp near 04c4ah ; e9 d0 04 6240 6249 mov ax, word [bp+010h] ; 8b 46 10 6241 6250 xor ah, ah ; 30 e4 … … 6246 6255 mov byte [bp-008h], dl ; 88 56 f8 6247 6256 cmp dl, 010h ; 80 fa 10 6248 jc short 047 85h ; 72 106257 jc short 047a3h ; 72 10 6249 6258 push ax ; 50 6250 6259 mov ax, word [bp+018h] ; 8b 46 18 … … 6253 6262 push 003f1h ; 68 f1 03 6254 6263 push 00428h ; 68 28 04 6255 jmp short 047 51h ; eb cc6264 jmp short 0476fh ; eb cc 6256 6265 mov ax, word [bp+018h] ; 8b 46 18 6257 6266 shr ax, 008h ; c1 e8 08 6258 6267 cmp ax, strict word 00050h ; 3d 50 00 6259 jnbe near 04c 4fh ; 0f 87 bd 046268 jnbe near 04c6dh ; 0f 87 bd 04 6260 6269 push CS ; 0e 6261 6270 pop ES ; 07 6262 6271 mov cx, strict word 0001eh ; b9 1e 00 6263 mov di, 046 b1h ; bf b1466272 mov di, 046cfh ; bf cf 46 6264 6273 repne scasb ; f2 ae 6265 6274 sal cx, 1 ; d1 e1 6266 6275 mov di, cx ; 89 cf 6267 mov ax, word [cs:di+046 ceh] ; 2e 8b 85 ce466276 mov ax, word [cs:di+046ech] ; 2e 8b 85 ec 46 6268 6277 mov bx, word [bp+018h] ; 8b 5e 18 6269 6278 xor bh, bh ; 30 ff … … 6272 6281 xor ah, ah ; 30 e4 6273 6282 or ah, 003h ; 80 cc 03 6274 jmp near 04c 34h ; e9 7d 046283 jmp near 04c52h ; e9 7d 04 6275 6284 mov dx, strict word 00074h ; ba 74 00 6276 6285 mov ax, strict word 00040h ; b8 40 00 6277 call 01749h ; e8 89cf6286 call 01749h ; e8 6b cf 6278 6287 mov cl, al ; 88 c1 6279 6288 movzx ax, cl ; 0f b6 c1 … … 6284 6293 mov dx, strict word 00074h ; ba 74 00 6285 6294 mov ax, strict word 00040h ; b8 40 00 6286 call 01757h ; e8 7fcf6295 call 01757h ; e8 61 cf 6287 6296 test cl, cl ; 84 c9 6288 je near 049 cfh ; 0f 84 f1 016289 jmp near 04c 48h ; e9 67 046297 je near 049edh ; 0f 84 f1 01 6298 jmp near 04c66h ; e9 67 04 6290 6299 or bh, 002h ; 80 cf 02 6291 6300 mov word [bp+018h], bx ; 89 5e 18 6292 jmp near 04c 37h ; e9 4d 046301 jmp near 04c55h ; e9 4d 04 6293 6302 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6294 6303 or bh, 030h ; 80 cf 30 6295 6304 mov word [bp+018h], bx ; 89 5e 18 6296 6305 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6297 jmp near 049 cfh ; e9 d2 016306 jmp near 049edh ; e9 d2 01 6298 6307 mov bx, word [bp+00ch] ; 8b 5e 0c 6299 6308 mov es, [bp+006h] ; 8e 46 06 … … 6310 6319 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 6311 6320 or di, ax ; 09 c7 6312 je short 048 45h ; 74 186321 je short 04863h ; 74 18 6313 6322 mov ax, word [bp+018h] ; 8b 46 18 6314 6323 shr ax, 008h ; c1 e8 08 … … 6317 6326 push 0045ah ; 68 5a 04 6318 6327 push strict byte 00007h ; 6a 07 6319 call 01a6bh ; e8 2cd26328 call 01a6bh ; e8 0e d2 6320 6329 add sp, strict byte 00008h ; 83 c4 08 6321 jmp near 04c 2ch ; e9 e7 036330 jmp near 04c4ah ; e9 e7 03 6322 6331 les bx, [bp-014h] ; c4 5e ec 6323 6332 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 6329 6338 mov word [bp-016h], ax ; 89 46 ea 6330 6339 cmp ax, strict word 00044h ; 3d 44 00 6331 je near 049 cbh ; 0f 84 66 016340 je near 049e9h ; 0f 84 66 01 6332 6341 cmp ax, strict word 00047h ; 3d 47 00 6333 je near 049 cbh ; 0f 84 5f 016342 je near 049e9h ; 0f 84 5f 01 6334 6343 mov cx, strict word 0000ch ; b9 0c 00 6335 6344 xor bx, bx ; 31 db 6336 6345 mov dx, ss ; 8c d2 6337 6346 lea ax, [bp-02ch] ; 8d 46 d4 6338 call 0a1 10h ; e8 97586347 call 0a130h ; e8 99 58 6339 6348 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6340 6349 mov ax, word [bp-018h] ; 8b 46 e8 … … 6364 6373 sal ax, 1 ; d1 e0 6365 6374 rcl bx, 1 ; d1 d3 6366 loop 048 c3h ; e2 fa6375 loop 048e1h ; e2 fa 6367 6376 push bx ; 53 6368 6377 push ax ; 50 … … 6380 6389 shr di, 1 ; d1 ef 6381 6390 rcr ax, 1 ; d1 d8 6382 loop 04 8edh ; e2 fa6391 loop 0490bh ; e2 fa 6383 6392 les bx, [bp-014h] ; c4 5e ec 6384 6393 mov word [es:bx+002h], ax ; 26 89 47 02 6385 6394 test dl, dl ; 84 d2 6386 je near 049 cbh ; 0f 84 cb 006387 mov bx, 00db 6h ; bb b60d6395 je near 049e9h ; 0f 84 cb 00 6396 mov bx, 00db2h ; bb b2 0d 6388 6397 mov cx, ds ; 8c d9 6389 6398 mov ax, strict word 00004h ; b8 04 00 6390 call 01a2ah ; e8 1fd16399 call 01a2ah ; e8 01 d1 6391 6400 movzx ax, dl ; 0f b6 c2 6392 6401 push ax ; 50 … … 6395 6404 push 00483h ; 68 83 04 6396 6405 push strict byte 00004h ; 6a 04 6397 call 01a6bh ; e8 4ed16406 call 01a6bh ; e8 30 d1 6398 6407 add sp, strict byte 0000ah ; 83 c4 0a 6399 6408 mov ax, word [bp+018h] ; 8b 46 18 6400 6409 xor ah, ah ; 30 e4 6401 6410 or ah, 00ch ; 80 cc 0c 6402 jmp near 04c 34h ; e9 09 036411 jmp near 04c52h ; e9 09 03 6403 6412 cmp bx, strict byte 00002h ; 83 fb 02 6404 jnbe near 04c 2ch ; 0f 87 fa 026413 jnbe near 04c4ah ; 0f 87 fa 02 6405 6414 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6406 6415 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6410 6419 mov al, byte [es:di+025h] ; 26 8a 45 25 6411 6420 cmp bx, strict byte 00002h ; 83 fb 02 6412 je short 049 bch ; 74 736421 je short 049dah ; 74 73 6413 6422 cmp bx, strict byte 00001h ; 83 fb 01 6414 je short 049 89h ; 74 3b6423 je short 049a7h ; 74 3b 6415 6424 test bx, bx ; 85 db 6416 jne near 049 cbh ; 0f 85 77 006425 jne near 049e9h ; 0f 85 77 00 6417 6426 cmp AL, strict byte 0ffh ; 3c ff 6418 jne short 049 6ah ; 75 126427 jne short 04988h ; 75 12 6419 6428 mov ax, word [bp+018h] ; 8b 46 18 6420 6429 xor ah, ah ; 30 e4 … … 6423 6432 xor al, al ; 30 c0 6424 6433 or AL, strict byte 001h ; 0c 01 6425 jmp near 04c 34h ; e9 ca 026434 jmp near 04c52h ; e9 ca 02 6426 6435 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6427 6436 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6435 6444 or AL, strict byte 001h ; 0c 01 6436 6445 mov word [bp+018h], ax ; 89 46 18 6437 jmp near 049 cbh ; e9 42 006446 jmp near 049e9h ; e9 42 00 6438 6447 test al, al ; 84 c0 6439 jne short 049 99h ; 75 0c6448 jne short 049b7h ; 75 0c 6440 6449 or bh, 0b0h ; 80 cf b0 6441 6450 mov word [bp+018h], bx ; 89 5e 18 6442 6451 mov byte [bp+018h], al ; 88 46 18 6443 jmp near 04c 37h ; e9 9e 026452 jmp near 04c55h ; e9 9e 02 6444 6453 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6445 6454 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6456 6465 xor al, al ; 30 c0 6457 6466 or ax, dx ; 09 d0 6458 jmp short 049 83h ; eb c76467 jmp short 049a1h ; eb c7 6459 6468 test al, al ; 84 c0 6460 6469 db 00fh, 095h, 0c0h … … 6468 6477 mov dx, strict word 00074h ; ba 74 00 6469 6478 mov ax, strict word 00040h ; b8 40 00 6470 call 01757h ; e8 7dcd6479 call 01757h ; e8 5f cd 6471 6480 and byte [bp+01eh], 0feh ; 80 66 1e fe 6472 6481 lea sp, [bp-004h] ; 8d 66 fc … … 6481 6490 mov al, byte [es:si+025h] ; 26 8a 44 25 6482 6491 test al, al ; 84 c0 6483 je short 04 9ffh ; 74 066492 je short 04a1dh ; 74 06 6484 6493 or bh, 0b1h ; 80 cf b1 6485 jmp near 04 7e4h ; e9 e5 fd6486 je short 049 cbh ; 74 ca6494 jmp near 04802h ; e9 e5 fd 6495 je short 049e9h ; 74 ca 6487 6496 mov ax, word [bp+018h] ; 8b 46 18 6488 6497 xor ah, ah ; 30 e4 6489 6498 or ah, 0b1h ; 80 cc b1 6490 jmp near 04c 34h ; e9 28 026499 jmp near 04c52h ; e9 28 02 6491 6500 mov dx, word [bp+00ch] ; 8b 56 0c 6492 6501 mov cx, word [bp+006h] ; 8b 4e 06 … … 6498 6507 mov word [bp-00eh], ax ; 89 46 f2 6499 6508 cmp ax, strict word 0001ah ; 3d 1a 00 6500 jc near 04c 2ch ; 0f 82 04 026501 jc short 04a 79h ; 72 4f6509 jc near 04c4ah ; 0f 82 04 02 6510 jc short 04a97h ; 72 4f 6502 6511 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6503 6512 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6522 6531 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 6523 6532 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 6524 jc near 04b 50h ; 0f 82 cf 006533 jc near 04b6eh ; 0f 82 cf 00 6525 6534 mov es, [bp-00ah] ; 8e 46 f6 6526 6535 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 6574 6583 xor cl, cl ; 30 c9 6575 6584 xor ch, ch ; 30 ed 6576 jmp short 04b 33h ; eb 056585 jmp short 04b51h ; eb 05 6577 6586 cmp ch, 00fh ; 80 fd 0f 6578 jnc short 04b 46h ; 73 136587 jnc short 04b64h ; 73 13 6579 6588 movzx dx, ch ; 0f b6 d5 6580 6589 add dx, 00356h ; 81 c2 56 03 6581 6590 mov ax, word [bp-01ah] ; 8b 46 e6 6582 call 01749h ; e8 09 cc6591 call 01749h ; e8 eb cb 6583 6592 add cl, al ; 00 c1 6584 6593 db 0feh, 0c5h 6585 6594 ; inc ch ; fe c5 6586 jmp short 04b 2eh ; eb e86595 jmp short 04b4ch ; eb e8 6587 6596 neg cl ; f6 d9 6588 6597 mov es, [bp-00ch] ; 8e 46 f4 6589 6598 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6590 6599 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 6591 jc near 049 cbh ; 0f 82 73 fe6600 jc near 049e9h ; 0f 82 73 fe 6592 6601 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6593 6602 cwd ; 99 … … 6607 6616 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6608 6617 test al, al ; 84 c0 6609 jne short 04b 99h ; 75 096618 jne short 04bb7h ; 75 09 6610 6619 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 6611 6620 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 6616 6625 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 6617 6626 test al, al ; 84 c0 6618 jne short 04b c5h ; 75 136627 jne short 04be3h ; 75 13 6619 6628 mov word [es:bx+030h], dx ; 26 89 57 30 6620 6629 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 6631 6640 xor al, al ; 30 c0 6632 6641 mov AH, strict byte 01eh ; b4 1e 6633 jmp short 04 bedh ; eb 056642 jmp short 04c0bh ; eb 05 6634 6643 cmp ah, 040h ; 80 fc 40 6635 jnc short 04 bfch ; 73 0f6644 jnc short 04c1ah ; 73 0f 6636 6645 movzx si, ah ; 0f b6 f4 6637 6646 mov es, [bp-00ah] ; 8e 46 f6 … … 6640 6649 db 0feh, 0c4h 6641 6650 ; inc ah ; fe c4 6642 jmp short 04 be8h ; eb ec6651 jmp short 04c06h ; eb ec 6643 6652 neg al ; f6 d8 6644 6653 mov es, [bp-00ah] ; 8e 46 f6 6645 6654 mov byte [es:bx+041h], al ; 26 88 47 41 6646 jmp near 049 cbh ; e9 c3 fd6655 jmp near 049e9h ; e9 c3 fd 6647 6656 or bh, 006h ; 80 cf 06 6648 6657 mov word [bp+018h], bx ; 89 5e 18 6649 jmp short 04c 48h ; eb 386658 jmp short 04c66h ; eb 38 6650 6659 cmp bx, strict byte 00006h ; 83 fb 06 6651 je near 049 cbh ; 0f 84 b4 fd6660 je near 049e9h ; 0f 84 b4 fd 6652 6661 cmp bx, strict byte 00001h ; 83 fb 01 6653 jc short 04c 2ch ; 72 106654 jbe near 049 cbh ; 0f 86 ab fd6662 jc short 04c4ah ; 72 10 6663 jbe near 049e9h ; 0f 86 ab fd 6655 6664 cmp bx, strict byte 00003h ; 83 fb 03 6656 jc short 04c 2ch ; 72 076665 jc short 04c4ah ; 72 07 6657 6666 cmp bx, strict byte 00004h ; 83 fb 04 6658 jbe near 049 cbh ; 0f 86 9f fd6667 jbe near 049e9h ; 0f 86 9f fd 6659 6668 mov ax, word [bp+018h] ; 8b 46 18 6660 6669 xor ah, ah ; 30 e4 … … 6666 6675 mov dx, strict word 00074h ; ba 74 00 6667 6676 mov ax, strict word 00040h ; b8 40 00 6668 call 01757h ; e8 0f cb6677 call 01757h ; e8 f1 ca 6669 6678 or byte [bp+01eh], 001h ; 80 4e 1e 01 6670 jmp near 049 deh ; e9 8f fd6671 mov bx, 00db 6h ; bb b60d6679 jmp near 049fch ; e9 8f fd 6680 mov bx, 00db2h ; bb b2 0d 6672 6681 mov cx, ds ; 8c d9 6673 6682 mov ax, strict word 00004h ; b8 04 00 6674 call 01a2ah ; e8 d0cd6683 call 01a2ah ; e8 b2 cd 6675 6684 mov ax, word [bp+018h] ; 8b 46 18 6676 6685 shr ax, 008h ; c1 e8 08 … … 6679 6688 push 00345h ; 68 45 03 6680 6689 push strict byte 00004h ; 6a 04 6681 jmp near 048 3ch ; e9 d0 fb6682 print_boot_device_: ; 0xf4c 6cLB 0x4b6690 jmp near 0485ah ; e9 d0 fb 6691 print_boot_device_: ; 0xf4c8a LB 0x4b 6683 6692 push bp ; 55 6684 6693 mov bp, sp ; 89 e5 6685 6694 push cx ; 51 6686 6695 test al, al ; 84 c0 6687 je short 04c 79h ; 74 056696 je short 04c97h ; 74 05 6688 6697 mov dx, strict word 00002h ; ba 02 00 6689 jmp short 04c 93h ; eb 1a6698 jmp short 04cb1h ; eb 1a 6690 6699 test dl, dl ; 84 d2 6691 je short 04c 82h ; 74 056700 je short 04ca0h ; 74 05 6692 6701 mov dx, strict word 00003h ; ba 03 00 6693 jmp short 04c 93h ; eb 116702 jmp short 04cb1h ; eb 11 6694 6703 test bl, 080h ; f6 c3 80 6695 jne short 04c 8bh ; 75 046704 jne short 04ca9h ; 75 04 6696 6705 xor dh, dh ; 30 f6 6697 jmp short 04c 93h ; eb 086706 jmp short 04cb1h ; eb 08 6698 6707 test bl, 080h ; f6 c3 80 6699 je short 04c b1h ; 74 216708 je short 04ccfh ; 74 21 6700 6709 mov dx, strict word 00001h ; ba 01 00 6701 mov bx, 00db 6h ; bb b60d6710 mov bx, 00db2h ; bb b2 0d 6702 6711 mov cx, ds ; 8c d9 6703 6712 mov ax, strict word 00004h ; b8 04 00 6704 call 01a2ah ; e8 8ccd6713 call 01a2ah ; e8 6e cd 6705 6714 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6706 add dx, 00dd ch ; 81 c2 dc0d6715 add dx, 00dd8h ; 81 c2 d8 0d 6707 6716 push dx ; 52 6708 6717 push 004a6h ; 68 a6 04 6709 6718 push strict byte 00004h ; 6a 04 6710 call 01a6bh ; e8 bdcd6719 call 01a6bh ; e8 9f cd 6711 6720 add sp, strict byte 00006h ; 83 c4 06 6712 6721 lea sp, [bp-002h] ; 8d 66 fe … … 6714 6723 pop bp ; 5d 6715 6724 retn ; c3 6716 print_boot_failure_: ; 0xf4c b7LB 0x936725 print_boot_failure_: ; 0xf4cd5 LB 0x93 6717 6726 push bp ; 55 6718 6727 mov bp, sp ; 89 e5 … … 6723 6732 movzx si, ah ; 0f b6 f4 6724 6733 test al, al ; 84 c0 6725 je short 04 ce4h ; 74 1b6726 mov bx, 00db 6h ; bb b60d6734 je short 04d02h ; 74 1b 6735 mov bx, 00db2h ; bb b2 0d 6727 6736 mov cx, ds ; 8c d9 6728 6737 mov ax, strict word 00004h ; b8 04 00 6729 call 01a2ah ; e8 56cd6730 push 00d f0h ; 68 f00d6738 call 01a2ah ; e8 38 cd 6739 push 00dech ; 68 ec 0d 6731 6740 push 004bah ; 68 ba 04 6732 6741 push strict byte 00004h ; 6a 04 6733 call 01a6bh ; e8 8ccd6742 call 01a6bh ; e8 6e cd 6734 6743 add sp, strict byte 00006h ; 83 c4 06 6735 jmp short 04d 28h ; eb 446744 jmp short 04d46h ; eb 44 6736 6745 test dl, dl ; 84 d2 6737 je short 04 cf8h ; 74 106738 mov bx, 00db 6h ; bb b60d6746 je short 04d16h ; 74 10 6747 mov bx, 00db2h ; bb b2 0d 6739 6748 mov cx, ds ; 8c d9 6740 6749 mov ax, strict word 00004h ; b8 04 00 6741 call 01a2ah ; e8 37cd6742 push 00df ah ; 68 fa0d6743 jmp short 04c d7h ; eb df6750 call 01a2ah ; e8 19 cd 6751 push 00df6h ; 68 f6 0d 6752 jmp short 04cf5h ; eb df 6744 6753 test bl, 080h ; f6 c3 80 6745 je short 04d 0eh ; 74 116746 mov bx, 00db 6h ; bb b60d6754 je short 04d2ch ; 74 11 6755 mov bx, 00db2h ; bb b2 0d 6747 6756 mov cx, ds ; 8c d9 6748 6757 mov ax, strict word 00004h ; b8 04 00 6749 call 01a2ah ; e8 22cd6758 call 01a2ah ; e8 04 cd 6750 6759 push si ; 56 6751 push 00de 6h ; 68 e60d6752 jmp short 04d 1dh ; eb 0f6753 mov bx, 00db 6h ; bb b60d6760 push 00de2h ; 68 e2 0d 6761 jmp short 04d3bh ; eb 0f 6762 mov bx, 00db2h ; bb b2 0d 6754 6763 mov cx, ds ; 8c d9 6755 6764 mov ax, strict word 00004h ; b8 04 00 6756 call 01a2ah ; e8 11 cd6765 call 01a2ah ; e8 f3 cc 6757 6766 push si ; 56 6758 push 00dd ch ; 68 dc0d6767 push 00dd8h ; 68 d8 0d 6759 6768 push 004cfh ; 68 cf 04 6760 6769 push strict byte 00004h ; 6a 04 6761 call 01a6bh ; e8 46cd6770 call 01a6bh ; e8 28 cd 6762 6771 add sp, strict byte 00008h ; 83 c4 08 6763 6772 cmp byte [bp+004h], 001h ; 80 7e 04 01 6764 jne short 04d 42h ; 75 146773 jne short 04d60h ; 75 14 6765 6774 test dh, dh ; 84 f6 6766 jne short 04d 37h ; 75 056775 jne short 04d55h ; 75 05 6767 6776 push 004e7h ; 68 e7 04 6768 jmp short 04d 3ah ; eb 036777 jmp short 04d58h ; eb 03 6769 6778 push 00511h ; 68 11 05 6770 6779 push strict byte 00007h ; 6a 07 6771 call 01a6bh ; e8 2ccd6780 call 01a6bh ; e8 0e cd 6772 6781 add sp, strict byte 00004h ; 83 c4 04 6773 6782 lea sp, [bp-002h] ; 8d 66 fe … … 6775 6784 pop bp ; 5d 6776 6785 retn 00002h ; c2 02 00 6777 print_cdromboot_failure_: ; 0xf4d 4aLB 0x276786 print_cdromboot_failure_: ; 0xf4d68 LB 0x27 6778 6787 push bp ; 55 6779 6788 mov bp, sp ; 89 e5 … … 6782 6791 push dx ; 52 6783 6792 mov dx, ax ; 89 c2 6784 mov bx, 00db 6h ; bb b60d6793 mov bx, 00db2h ; bb b2 0d 6785 6794 mov cx, ds ; 8c d9 6786 6795 mov ax, strict word 00004h ; b8 04 00 6787 call 01a2ah ; e8 cdcc6796 call 01a2ah ; e8 af cc 6788 6797 push dx ; 52 6789 6798 push 00546h ; 68 46 05 6790 6799 push strict byte 00004h ; 6a 04 6791 call 01a6bh ; e8 05 cd6800 call 01a6bh ; e8 e7 cc 6792 6801 add sp, strict byte 00006h ; 83 c4 06 6793 6802 lea sp, [bp-006h] ; 8d 66 fa … … 6797 6806 pop bp ; 5d 6798 6807 retn ; c3 6799 _int19_function: ; 0xf4d 71LB 0x2566808 _int19_function: ; 0xf4d8f LB 0x256 6800 6809 push bp ; 55 6801 6810 mov bp, sp ; 89 e5 … … 6805 6814 mov dx, strict word 0000eh ; ba 0e 00 6806 6815 mov ax, strict word 00040h ; b8 40 00 6807 call 01765h ; e8 e3c96816 call 01765h ; e8 c5 c9 6808 6817 mov bx, ax ; 89 c3 6809 6818 mov word [bp-00eh], ax ; 89 46 f2 6810 6819 mov byte [bp-008h], 000h ; c6 46 f8 00 6811 6820 mov ax, strict word 0003dh ; b8 3d 00 6812 call 017a5h ; e8 14 ca6821 call 017a5h ; e8 f6 c9 6813 6822 movzx si, al ; 0f b6 f0 6814 6823 mov ax, strict word 00038h ; b8 38 00 6815 call 017a5h ; e8 0b ca6824 call 017a5h ; e8 ed c9 6816 6825 and AL, strict byte 0f0h ; 24 f0 6817 6826 xor ah, ah ; 30 e4 … … 6819 6828 or si, ax ; 09 c6 6820 6829 mov ax, strict word 0003ch ; b8 3c 00 6821 call 017a5h ; e8 fcc96830 call 017a5h ; e8 de c9 6822 6831 and AL, strict byte 00fh ; 24 0f 6823 6832 xor ah, ah ; 30 e4 … … 6826 6835 mov dx, 0037dh ; ba 7d 03 6827 6836 mov ax, bx ; 89 d8 6828 call 01749h ; e8 8fc96837 call 01749h ; e8 71 c9 6829 6838 test al, al ; 84 c0 6830 je short 04d c9h ; 74 0b6839 je short 04de7h ; 74 0b 6831 6840 mov dx, 0037dh ; ba 7d 03 6832 6841 mov ax, bx ; 89 d8 6833 call 01749h ; e8 83c96842 call 01749h ; e8 65 c9 6834 6843 movzx si, al ; 0f b6 f0 6835 6844 cmp byte [bp+004h], 001h ; 80 7e 04 01 6836 jne short 04d dfh ; 75 106845 jne short 04dfdh ; 75 10 6837 6846 mov ax, strict word 0003ch ; b8 3c 00 6838 call 017a5h ; e8 d0c96847 call 017a5h ; e8 b2 c9 6839 6848 and AL, strict byte 0f0h ; 24 f0 6840 6849 xor ah, ah ; 30 e4 6841 6850 sar ax, 004h ; c1 f8 04 6842 call 07e 53h ; e8 74 306851 call 07e71h ; e8 74 30 6843 6852 cmp byte [bp+004h], 002h ; 80 7e 04 02 6844 jne short 04 de8h ; 75 036853 jne short 04e06h ; 75 03 6845 6854 shr si, 004h ; c1 ee 04 6846 6855 cmp byte [bp+004h], 003h ; 80 7e 04 03 6847 jne short 04 df1h ; 75 036856 jne short 04e0fh ; 75 03 6848 6857 shr si, 008h ; c1 ee 08 6849 6858 cmp byte [bp+004h], 004h ; 80 7e 04 04 6850 jne short 04 dfah ; 75 036859 jne short 04e18h ; 75 03 6851 6860 shr si, 00ch ; c1 ee 0c 6852 6861 cmp si, strict byte 00010h ; 83 fe 10 6853 jnc short 04e 03h ; 73 046862 jnc short 04e21h ; 73 04 6854 6863 mov byte [bp-008h], 001h ; c6 46 f8 01 6855 6864 xor al, al ; 30 c0 … … 6857 6866 mov byte [bp-00ah], al ; 88 46 f6 6858 6867 mov byte [bp-00ch], al ; 88 46 f4 6859 mov bx, 00db 6h ; bb b60d6868 mov bx, 00db2h ; bb b2 0d 6860 6869 mov cx, ds ; 8c d9 6861 6870 mov ax, strict word 00004h ; b8 04 00 6862 call 01a2ah ; e8 11 cc6871 call 01a2ah ; e8 f3 cb 6863 6872 push si ; 56 6864 6873 movzx ax, byte [bp+004h] ; 0f b6 46 04 … … 6866 6875 push 00566h ; 68 66 05 6867 6876 push strict byte 00004h ; 6a 04 6868 call 01a6bh ; e8 44cc6877 call 01a6bh ; e8 26 cc 6869 6878 add sp, strict byte 00008h ; 83 c4 08 6870 6879 and si, strict byte 0000fh ; 83 e6 0f 6871 6880 cmp si, strict byte 00002h ; 83 fe 02 6872 jc short 04e 40h ; 72 0e6873 jbe short 04e 4fh ; 76 1b6881 jc short 04e5eh ; 72 0e 6882 jbe short 04e6dh ; 76 1b 6874 6883 cmp si, strict byte 00004h ; 83 fe 04 6875 je short 04e 6dh ; 74 346884 je short 04e8bh ; 74 34 6876 6885 cmp si, strict byte 00003h ; 83 fe 03 6877 je short 04e 63h ; 74 256878 jmp short 04e 9ah ; eb 5a6886 je short 04e81h ; 74 25 6887 jmp short 04eb8h ; eb 5a 6879 6888 cmp si, strict byte 00001h ; 83 fe 01 6880 jne short 04e 9ah ; 75 556889 jne short 04eb8h ; 75 55 6881 6890 xor al, al ; 30 c0 6882 6891 mov byte [bp-006h], al ; 88 46 fa 6883 6892 mov byte [bp-00ah], al ; 88 46 f6 6884 jmp short 04e b2h ; eb 636893 jmp short 04ed0h ; eb 63 6885 6894 mov dx, 0037ch ; ba 7c 03 6886 6895 mov ax, word [bp-00eh] ; 8b 46 f2 6887 call 01749h ; e8 f1c86896 call 01749h ; e8 d3 c8 6888 6897 add AL, strict byte 080h ; 04 80 6889 6898 mov byte [bp-006h], al ; 88 46 fa 6890 6899 mov byte [bp-00ah], 000h ; c6 46 f6 00 6891 jmp short 04e b2h ; eb 4f6900 jmp short 04ed0h ; eb 4f 6892 6901 mov byte [bp-006h], 000h ; c6 46 fa 00 6893 6902 mov byte [bp-00ah], 001h ; c6 46 f6 01 6894 jmp short 04e 77h ; eb 0a6903 jmp short 04e95h ; eb 0a 6895 6904 mov byte [bp-00ch], 001h ; c6 46 f4 01 6896 6905 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6897 je short 04e b2h ; 74 3b6898 call 03e bfh ; e8 45 f06906 je short 04ed0h ; 74 3b 6907 call 03eddh ; e8 45 f0 6899 6908 mov bx, ax ; 89 c3 6900 6909 test AL, strict byte 0ffh ; a8 ff 6901 je short 04e a1h ; 74 216902 call 04d 4ah ; e8 c7 fe6910 je short 04ebfh ; 74 21 6911 call 04d68h ; e8 c7 fe 6903 6912 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6904 6913 push ax ; 50 … … 6907 6916 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6908 6917 mov cx, strict word 00001h ; b9 01 00 6909 call 04c b7h ; e8 1d fe6918 call 04cd5h ; e8 1d fe 6910 6919 xor ax, ax ; 31 c0 6911 6920 xor dx, dx ; 31 d2 6912 jmp near 04f c0h ; e9 1f 016921 jmp near 04fdeh ; e9 1f 01 6913 6922 mov dx, 00372h ; ba 72 03 6914 6923 mov ax, word [bp-00eh] ; 8b 46 f2 6915 call 01765h ; e8 bbc86924 call 01765h ; e8 9d c8 6916 6925 mov di, ax ; 89 c7 6917 6926 shr bx, 008h ; c1 eb 08 6918 6927 mov byte [bp-006h], bl ; 88 5e fa 6919 6928 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6920 jne near 04f 2eh ; 0f 85 74 006929 jne near 04f4ch ; 0f 85 74 00 6921 6930 xor si, si ; 31 f6 6922 6931 mov ax, 0e200h ; b8 00 e2 6923 6932 mov es, ax ; 8e c0 6924 6933 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6925 jne short 04e 83h ; 75 bb6934 jne short 04ea1h ; 75 bb 6926 6935 mov cx, ax ; 89 c1 6927 6936 mov si, word [es:si+01ah] ; 26 8b 74 1a 6928 6937 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6929 jne short 04e 83h ; 75 ad6938 jne short 04ea1h ; 75 ad 6930 6939 cmp word [es:si], 05024h ; 26 81 3c 24 50 6931 jne short 04e 83h ; 75 a66940 jne short 04ea1h ; 75 a6 6932 6941 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6933 6942 mov dx, word [es:di] ; 26 8b 15 6934 6943 mov ax, word [es:di+002h] ; 26 8b 45 02 6935 6944 cmp ax, 06568h ; 3d 68 65 6936 jne short 04f 0ch ; 75 1f6945 jne short 04f2ah ; 75 1f 6937 6946 cmp dx, 07445h ; 81 fa 45 74 6938 jne short 04f 0ch ; 75 196947 jne short 04f2ah ; 75 19 6939 6948 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6940 6949 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6941 6950 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6942 call 04c 6ch ; e8 6a fd6951 call 04c8ah ; e8 6a fd 6943 6952 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6944 6953 mov word [bp-010h], cx ; 89 4e f0 6945 jmp short 04f 28h ; eb 1c6954 jmp short 04f46h ; eb 1c 6946 6955 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6947 6956 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6948 6957 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6949 call 04c 6ch ; e8 51 fd6958 call 04c8ah ; e8 51 fd 6950 6959 sti ; fb 6951 6960 mov word [bp-010h], cx ; 89 4e f0 … … 6954 6963 mov word [bp-012h], ax ; 89 46 ee 6955 6964 call far [bp-012h] ; ff 5e ee 6956 jmp near 04e 83h ; e9 55 ff6965 jmp near 04ea1h ; e9 55 ff 6957 6966 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6958 jne short 04f 5ah ; 75 266967 jne short 04f78h ; 75 26 6959 6968 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6960 jne short 04f 5ah ; 75 206969 jne short 04f78h ; 75 20 6961 6970 mov di, 007c0h ; bf c0 07 6962 6971 mov es, di ; 8e c7 … … 6971 6980 sbb ax, strict byte 00000h ; 83 d8 00 6972 6981 test ax, ax ; 85 c0 6973 jne near 04e 83h ; 0f 85 29 ff6982 jne near 04ea1h ; 0f 85 29 ff 6974 6983 cmp byte [bp-006h], 000h ; 80 7e fa 00 6975 6984 db 00fh, 094h, 0c1h 6976 6985 ; sete cl ; 0f 94 c1 6977 6986 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6978 je short 04f 69h ; 74 026987 je short 04f87h ; 74 02 6979 6988 mov CL, strict byte 001h ; b1 01 6980 6989 xor dx, dx ; 31 d2 6981 6990 mov ax, di ; 89 f8 6982 call 01765h ; e8 f5c76991 call 01765h ; e8 d7 c7 6983 6992 mov bx, ax ; 89 c3 6984 6993 mov dx, strict word 00002h ; ba 02 00 6985 6994 mov ax, di ; 89 f8 6986 call 01765h ; e8 ebc76995 call 01765h ; e8 cd c7 6987 6996 cmp bx, ax ; 39 c3 6988 je short 04f 8fh ; 74 116997 je short 04fadh ; 74 11 6989 6998 test cl, cl ; 84 c9 6990 jne short 04f a5h ; 75 236999 jne short 04fc3h ; 75 23 6991 7000 mov dx, 001feh ; ba fe 01 6992 7001 mov ax, di ; 89 f8 6993 call 01765h ; e8 dbc77002 call 01765h ; e8 bd c7 6994 7003 cmp ax, 0aa55h ; 3d 55 aa 6995 je short 04f a5h ; 74 167004 je short 04fc3h ; 74 16 6996 7005 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6997 7006 push ax ; 50 … … 7000 7009 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 7001 7010 xor cx, cx ; 31 c9 7002 jmp near 04e 97h ; e9 f2 fe7011 jmp near 04eb5h ; e9 f2 fe 7003 7012 movzx bx, byte [bp-006h] ; 0f b6 5e fa 7004 7013 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 7005 7014 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 7006 call 04c 6ch ; e8 b8 fc7015 call 04c8ah ; e8 b8 fc 7007 7016 movzx bx, byte [bp-006h] ; 0f b6 5e fa 7008 7017 xor dx, dx ; 31 d2 … … 7015 7024 pop bp ; 5d 7016 7025 retn ; c3 7017 keyboard_panic_: ; 0xf4f c7LB 0x137026 keyboard_panic_: ; 0xf4fe5 LB 0x13 7018 7027 push bp ; 55 7019 7028 mov bp, sp ; 89 e5 … … 7021 7030 push 00586h ; 68 86 05 7022 7031 push strict byte 00007h ; 6a 07 7023 call 01a6bh ; e8 98ca7032 call 01a6bh ; e8 7a ca 7024 7033 add sp, strict byte 00006h ; 83 c4 06 7025 7034 mov sp, bp ; 89 ec 7026 7035 pop bp ; 5d 7027 7036 retn ; c3 7028 _keyboard_init: ; 0xf4f daLB 0x26a7037 _keyboard_init: ; 0xf4ff8 LB 0x26a 7029 7038 push bp ; 55 7030 7039 mov bp, sp ; 89 e5 … … 7038 7047 ; sub ah, ah ; 2a e4 7039 7048 test AL, strict byte 002h ; a8 02 7040 je short 0 4ffdh ; 74 0d7049 je short 0501bh ; 74 0d 7041 7050 dec bx ; 4b 7042 7051 test bx, bx ; 85 db 7043 jbe short 0 4ffdh ; 76 087052 jbe short 0501bh ; 76 08 7044 7053 xor al, al ; 30 c0 7045 7054 mov dx, 00080h ; ba 80 00 7046 7055 out DX, AL ; ee 7047 jmp short 0 4fe6h ; eb e97056 jmp short 05004h ; eb e9 7048 7057 test bx, bx ; 85 db 7049 jne short 050 06h ; 75 057058 jne short 05024h ; 75 05 7050 7059 xor ax, ax ; 31 c0 7051 call 04f c7h ; e8 c1 ff7060 call 04fe5h ; e8 c1 ff 7052 7061 mov bx, strict word 0ffffh ; bb ff ff 7053 7062 mov dx, strict word 00064h ; ba 64 00 … … 7056 7065 ; sub ah, ah ; 2a e4 7057 7066 test AL, strict byte 001h ; a8 01 7058 jne short 050 20h ; 75 0d7067 jne short 0503eh ; 75 0d 7059 7068 dec bx ; 4b 7060 7069 test bx, bx ; 85 db 7061 jbe short 050 20h ; 76 087070 jbe short 0503eh ; 76 08 7062 7071 mov AL, strict byte 001h ; b0 01 7063 7072 mov dx, 00080h ; ba 80 00 7064 7073 out DX, AL ; ee 7065 jmp short 050 09h ; eb e97074 jmp short 05027h ; eb e9 7066 7075 test bx, bx ; 85 db 7067 jne short 050 2ah ; 75 067076 jne short 05048h ; 75 06 7068 7077 mov ax, strict word 00001h ; b8 01 00 7069 call 04f c7h ; e8 9d ff7078 call 04fe5h ; e8 9d ff 7070 7079 mov dx, strict word 00060h ; ba 60 00 7071 7080 in AL, DX ; ec … … 7073 7082 ; sub ah, ah ; 2a e4 7074 7083 cmp ax, strict word 00055h ; 3d 55 00 7075 je short 050 3bh ; 74 067084 je short 05059h ; 74 06 7076 7085 mov ax, 003dfh ; b8 df 03 7077 call 04f c7h ; e8 8c ff7086 call 04fe5h ; e8 8c ff 7078 7087 mov AL, strict byte 0abh ; b0 ab 7079 7088 mov dx, strict word 00064h ; ba 64 00 … … 7085 7094 ; sub ah, ah ; 2a e4 7086 7095 test AL, strict byte 002h ; a8 02 7087 je short 050 5bh ; 74 0d7096 je short 05079h ; 74 0d 7088 7097 dec bx ; 4b 7089 7098 test bx, bx ; 85 db 7090 jbe short 050 5bh ; 76 087099 jbe short 05079h ; 76 08 7091 7100 mov AL, strict byte 010h ; b0 10 7092 7101 mov dx, 00080h ; ba 80 00 7093 7102 out DX, AL ; ee 7094 jmp short 050 44h ; eb e97103 jmp short 05062h ; eb e9 7095 7104 test bx, bx ; 85 db 7096 jne short 050 65h ; 75 067105 jne short 05083h ; 75 06 7097 7106 mov ax, strict word 0000ah ; b8 0a 00 7098 call 04f c7h ; e8 62 ff7107 call 04fe5h ; e8 62 ff 7099 7108 mov bx, strict word 0ffffh ; bb ff ff 7100 7109 mov dx, strict word 00064h ; ba 64 00 … … 7103 7112 ; sub ah, ah ; 2a e4 7104 7113 test AL, strict byte 001h ; a8 01 7105 jne short 050 7fh ; 75 0d7114 jne short 0509dh ; 75 0d 7106 7115 dec bx ; 4b 7107 7116 test bx, bx ; 85 db 7108 jbe short 050 7fh ; 76 087117 jbe short 0509dh ; 76 08 7109 7118 mov AL, strict byte 011h ; b0 11 7110 7119 mov dx, 00080h ; ba 80 00 7111 7120 out DX, AL ; ee 7112 jmp short 050 68h ; eb e97121 jmp short 05086h ; eb e9 7113 7122 test bx, bx ; 85 db 7114 jne short 050 89h ; 75 067123 jne short 050a7h ; 75 06 7115 7124 mov ax, strict word 0000bh ; b8 0b 00 7116 call 04f c7h ; e8 3e ff7125 call 04fe5h ; e8 3e ff 7117 7126 mov dx, strict word 00060h ; ba 60 00 7118 7127 in AL, DX ; ec … … 7120 7129 ; sub ah, ah ; 2a e4 7121 7130 test ax, ax ; 85 c0 7122 je short 050 99h ; 74 067131 je short 050b7h ; 74 06 7123 7132 mov ax, 003e0h ; b8 e0 03 7124 call 04f c7h ; e8 2e ff7133 call 04fe5h ; e8 2e ff 7125 7134 mov AL, strict byte 0ffh ; b0 ff 7126 7135 mov dx, strict word 00060h ; ba 60 00 … … 7132 7141 ; sub ah, ah ; 2a e4 7133 7142 test AL, strict byte 002h ; a8 02 7134 je short 050 b9h ; 74 0d7143 je short 050d7h ; 74 0d 7135 7144 dec bx ; 4b 7136 7145 test bx, bx ; 85 db 7137 jbe short 050 b9h ; 76 087146 jbe short 050d7h ; 76 08 7138 7147 mov AL, strict byte 020h ; b0 20 7139 7148 mov dx, 00080h ; ba 80 00 7140 7149 out DX, AL ; ee 7141 jmp short 050 a2h ; eb e97150 jmp short 050c0h ; eb e9 7142 7151 test bx, bx ; 85 db 7143 jne short 050 c3h ; 75 067152 jne short 050e1h ; 75 06 7144 7153 mov ax, strict word 00014h ; b8 14 00 7145 call 04f c7h ; e8 04 ff7154 call 04fe5h ; e8 04 ff 7146 7155 mov bx, strict word 0ffffh ; bb ff ff 7147 7156 mov dx, strict word 00064h ; ba 64 00 … … 7150 7159 ; sub ah, ah ; 2a e4 7151 7160 test AL, strict byte 001h ; a8 01 7152 jne short 050 ddh ; 75 0d7161 jne short 050fbh ; 75 0d 7153 7162 dec bx ; 4b 7154 7163 test bx, bx ; 85 db 7155 jbe short 050 ddh ; 76 087164 jbe short 050fbh ; 76 08 7156 7165 mov AL, strict byte 021h ; b0 21 7157 7166 mov dx, 00080h ; ba 80 00 7158 7167 out DX, AL ; ee 7159 jmp short 050 c6h ; eb e97168 jmp short 050e4h ; eb e9 7160 7169 test bx, bx ; 85 db 7161 jne short 05 0e7h ; 75 067170 jne short 05105h ; 75 06 7162 7171 mov ax, strict word 00015h ; b8 15 00 7163 call 04f c7h ; e8 e0 fe7172 call 04fe5h ; e8 e0 fe 7164 7173 mov dx, strict word 00060h ; ba 60 00 7165 7174 in AL, DX ; ec … … 7167 7176 ; sub ah, ah ; 2a e4 7168 7177 cmp ax, 000fah ; 3d fa 00 7169 je short 05 0f8h ; 74 067178 je short 05116h ; 74 06 7170 7179 mov ax, 003e1h ; b8 e1 03 7171 call 04f c7h ; e8 cf fe7180 call 04fe5h ; e8 cf fe 7172 7181 mov dx, strict word 00064h ; ba 64 00 7173 7182 in AL, DX ; ec … … 7175 7184 ; sub ah, ah ; 2a e4 7176 7185 test AL, strict byte 001h ; a8 01 7177 jne short 051 0ah ; 75 087186 jne short 05128h ; 75 08 7178 7187 mov AL, strict byte 031h ; b0 31 7179 7188 mov dx, 00080h ; ba 80 00 7180 7189 out DX, AL ; ee 7181 jmp short 05 0f8h ; eb ee7190 jmp short 05116h ; eb ee 7182 7191 mov dx, strict word 00060h ; ba 60 00 7183 7192 in AL, DX ; ec … … 7185 7194 ; sub ah, ah ; 2a e4 7186 7195 cmp ax, 000aah ; 3d aa 00 7187 je short 051 23h ; 74 0e7196 je short 05141h ; 74 0e 7188 7197 in AL, DX ; ec 7189 7198 db 02ah, 0e4h 7190 7199 ; sub ah, ah ; 2a e4 7191 7200 cmp ax, 000aah ; 3d aa 00 7192 je short 051 23h ; 74 067201 je short 05141h ; 74 06 7193 7202 mov ax, 003e2h ; b8 e2 03 7194 call 04f c7h ; e8 a4 fe7203 call 04fe5h ; e8 a4 fe 7195 7204 mov AL, strict byte 0f5h ; b0 f5 7196 7205 mov dx, strict word 00060h ; ba 60 00 … … 7202 7211 ; sub ah, ah ; 2a e4 7203 7212 test AL, strict byte 002h ; a8 02 7204 je short 051 43h ; 74 0d7213 je short 05161h ; 74 0d 7205 7214 dec bx ; 4b 7206 7215 test bx, bx ; 85 db 7207 jbe short 051 43h ; 76 087216 jbe short 05161h ; 76 08 7208 7217 mov AL, strict byte 040h ; b0 40 7209 7218 mov dx, 00080h ; ba 80 00 7210 7219 out DX, AL ; ee 7211 jmp short 051 2ch ; eb e97220 jmp short 0514ah ; eb e9 7212 7221 test bx, bx ; 85 db 7213 jne short 051 4dh ; 75 067222 jne short 0516bh ; 75 06 7214 7223 mov ax, strict word 00028h ; b8 28 00 7215 call 04f c7h ; e8 7a fe7224 call 04fe5h ; e8 7a fe 7216 7225 mov bx, strict word 0ffffh ; bb ff ff 7217 7226 mov dx, strict word 00064h ; ba 64 00 … … 7220 7229 ; sub ah, ah ; 2a e4 7221 7230 test AL, strict byte 001h ; a8 01 7222 jne short 051 67h ; 75 0d7231 jne short 05185h ; 75 0d 7223 7232 dec bx ; 4b 7224 7233 test bx, bx ; 85 db 7225 jbe short 051 67h ; 76 087234 jbe short 05185h ; 76 08 7226 7235 mov AL, strict byte 041h ; b0 41 7227 7236 mov dx, 00080h ; ba 80 00 7228 7237 out DX, AL ; ee 7229 jmp short 051 50h ; eb e97238 jmp short 0516eh ; eb e9 7230 7239 test bx, bx ; 85 db 7231 jne short 051 71h ; 75 067240 jne short 0518fh ; 75 06 7232 7241 mov ax, strict word 00029h ; b8 29 00 7233 call 04f c7h ; e8 56 fe7242 call 04fe5h ; e8 56 fe 7234 7243 mov dx, strict word 00060h ; ba 60 00 7235 7244 in AL, DX ; ec … … 7237 7246 ; sub ah, ah ; 2a e4 7238 7247 cmp ax, 000fah ; 3d fa 00 7239 je short 051 82h ; 74 067248 je short 051a0h ; 74 06 7240 7249 mov ax, 003e3h ; b8 e3 03 7241 call 04f c7h ; e8 45 fe7250 call 04fe5h ; e8 45 fe 7242 7251 mov AL, strict byte 060h ; b0 60 7243 7252 mov dx, strict word 00064h ; ba 64 00 … … 7249 7258 ; sub ah, ah ; 2a e4 7250 7259 test AL, strict byte 002h ; a8 02 7251 je short 051 a2h ; 74 0d7260 je short 051c0h ; 74 0d 7252 7261 dec bx ; 4b 7253 7262 test bx, bx ; 85 db 7254 jbe short 051 a2h ; 76 087263 jbe short 051c0h ; 76 08 7255 7264 mov AL, strict byte 050h ; b0 50 7256 7265 mov dx, 00080h ; ba 80 00 7257 7266 out DX, AL ; ee 7258 jmp short 051 8bh ; eb e97267 jmp short 051a9h ; eb e9 7259 7268 test bx, bx ; 85 db 7260 jne short 051 ach ; 75 067269 jne short 051cah ; 75 06 7261 7270 mov ax, strict word 00032h ; b8 32 00 7262 call 04f c7h ; e8 1b fe7271 call 04fe5h ; e8 1b fe 7263 7272 mov AL, strict byte 065h ; b0 65 7264 7273 mov dx, strict word 00060h ; ba 60 00 … … 7270 7279 ; sub ah, ah ; 2a e4 7271 7280 test AL, strict byte 002h ; a8 02 7272 je short 051 cch ; 74 0d7281 je short 051eah ; 74 0d 7273 7282 dec bx ; 4b 7274 7283 test bx, bx ; 85 db 7275 jbe short 051 cch ; 76 087284 jbe short 051eah ; 76 08 7276 7285 mov AL, strict byte 060h ; b0 60 7277 7286 mov dx, 00080h ; ba 80 00 7278 7287 out DX, AL ; ee 7279 jmp short 051 b5h ; eb e97288 jmp short 051d3h ; eb e9 7280 7289 test bx, bx ; 85 db 7281 jne short 051 d6h ; 75 067290 jne short 051f4h ; 75 06 7282 7291 mov ax, strict word 0003ch ; b8 3c 00 7283 call 04f c7h ; e8 f1 fd7292 call 04fe5h ; e8 f1 fd 7284 7293 mov AL, strict byte 0f4h ; b0 f4 7285 7294 mov dx, strict word 00060h ; ba 60 00 … … 7291 7300 ; sub ah, ah ; 2a e4 7292 7301 test AL, strict byte 002h ; a8 02 7293 je short 05 1f6h ; 74 0d7302 je short 05214h ; 74 0d 7294 7303 dec bx ; 4b 7295 7304 test bx, bx ; 85 db 7296 jbe short 05 1f6h ; 76 087305 jbe short 05214h ; 76 08 7297 7306 mov AL, strict byte 070h ; b0 70 7298 7307 mov dx, 00080h ; ba 80 00 7299 7308 out DX, AL ; ee 7300 jmp short 051 dfh ; eb e97309 jmp short 051fdh ; eb e9 7301 7310 test bx, bx ; 85 db 7302 jne short 052 00h ; 75 067311 jne short 0521eh ; 75 06 7303 7312 mov ax, strict word 00046h ; b8 46 00 7304 call 04f c7h ; e8 c7 fd7313 call 04fe5h ; e8 c7 fd 7305 7314 mov bx, strict word 0ffffh ; bb ff ff 7306 7315 mov dx, strict word 00064h ; ba 64 00 … … 7309 7318 ; sub ah, ah ; 2a e4 7310 7319 test AL, strict byte 001h ; a8 01 7311 jne short 052 1ah ; 75 0d7320 jne short 05238h ; 75 0d 7312 7321 dec bx ; 4b 7313 7322 test bx, bx ; 85 db 7314 jbe short 052 1ah ; 76 087323 jbe short 05238h ; 76 08 7315 7324 mov AL, strict byte 071h ; b0 71 7316 7325 mov dx, 00080h ; ba 80 00 7317 7326 out DX, AL ; ee 7318 jmp short 052 03h ; eb e97327 jmp short 05221h ; eb e9 7319 7328 test bx, bx ; 85 db 7320 jne short 052 24h ; 75 067329 jne short 05242h ; 75 06 7321 7330 mov ax, strict word 00046h ; b8 46 00 7322 call 04f c7h ; e8 a3 fd7331 call 04fe5h ; e8 a3 fd 7323 7332 mov dx, strict word 00060h ; ba 60 00 7324 7333 in AL, DX ; ec … … 7326 7335 ; sub ah, ah ; 2a e4 7327 7336 cmp ax, 000fah ; 3d fa 00 7328 je short 052 35h ; 74 067337 je short 05253h ; 74 06 7329 7338 mov ax, 003e4h ; b8 e4 03 7330 call 04f c7h ; e8 92 fd7339 call 04fe5h ; e8 92 fd 7331 7340 mov AL, strict byte 0a8h ; b0 a8 7332 7341 mov dx, strict word 00064h ; ba 64 00 7333 7342 out DX, AL ; ee 7334 7343 xor ax, ax ; 31 c0 7335 call 066 94h ; e8 54 147344 call 066b2h ; e8 54 14 7336 7345 mov sp, bp ; 89 ec 7337 7346 pop bp ; 5d 7338 7347 retn ; c3 7339 enqueue_key_: ; 0xf52 44LB 0x997348 enqueue_key_: ; 0xf5262 LB 0x99 7340 7349 push bp ; 55 7341 7350 mov bp, sp ; 89 e5 … … 7349 7358 mov dx, strict word 0001ah ; ba 1a 00 7350 7359 mov ax, strict word 00040h ; b8 40 00 7351 call 01765h ; e8 0b c57360 call 01765h ; e8 ed c4 7352 7361 mov di, ax ; 89 c7 7353 7362 mov dx, strict word 0001ch ; ba 1c 00 7354 7363 mov ax, strict word 00040h ; b8 40 00 7355 call 01765h ; e8 00 c57364 call 01765h ; e8 e2 c4 7356 7365 mov si, ax ; 89 c6 7357 7366 lea cx, [si+002h] ; 8d 4c 02 7358 7367 cmp cx, strict byte 0003eh ; 83 f9 3e 7359 jc short 052 72h ; 72 037368 jc short 05290h ; 72 03 7360 7369 mov cx, strict word 0001eh ; b9 1e 00 7361 7370 cmp cx, di ; 39 f9 7362 jne short 052 7ah ; 75 047371 jne short 05298h ; 75 04 7363 7372 xor ax, ax ; 31 c0 7364 jmp short 052 9fh ; eb 257373 jmp short 052bdh ; eb 25 7365 7374 xor bh, bh ; 30 ff 7366 7375 mov dx, si ; 89 f2 7367 7376 mov ax, strict word 00040h ; b8 40 00 7368 call 01757h ; e8 d3c47377 call 01757h ; e8 b5 c4 7369 7378 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7370 7379 lea dx, [si+001h] ; 8d 54 01 7371 7380 mov ax, strict word 00040h ; b8 40 00 7372 call 01757h ; e8 c6c47381 call 01757h ; e8 a8 c4 7373 7382 mov bx, cx ; 89 cb 7374 7383 mov dx, strict word 0001ch ; ba 1c 00 7375 7384 mov ax, strict word 00040h ; b8 40 00 7376 call 01773h ; e8 d7c47385 call 01773h ; e8 b9 c4 7377 7386 mov ax, strict word 00001h ; b8 01 00 7378 7387 lea sp, [bp-008h] ; 8d 66 f8 … … 7384 7393 retn ; c3 7385 7394 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7386 db 01dh, 0 05h, 056h, 0ceh, 053h, 076h, 053h, 076h, 053h, 057h, 054h, 04ch, 053h, 0d5h, 054h, 043h7387 db 055h, 0 ebh, 055h, 0c7h, 055h, 012h, 054h, 076h, 053h, 076h, 053h, 096h, 054h, 068h, 053h, 024h7388 db 055h, 0 a8h, 055h, 0e4h, 055h7389 _int09_function: ; 0xf52 ddLB 0x4747395 db 01dh, 023h, 056h, 0ech, 053h, 094h, 053h, 094h, 053h, 075h, 054h, 06ah, 053h, 0f3h, 054h, 061h 7396 db 055h, 009h, 056h, 0e5h, 055h, 030h, 054h, 094h, 053h, 094h, 053h, 0b4h, 054h, 086h, 053h, 042h 7397 db 055h, 0c6h, 055h, 002h, 056h 7398 _int09_function: ; 0xf52fb LB 0x474 7390 7399 push bp ; 55 7391 7400 mov bp, sp ; 89 e5 … … 7395 7404 mov byte [bp-00ch], al ; 88 46 f4 7396 7405 test al, al ; 84 c0 7397 jne short 053 07h ; 75 197398 mov bx, 00db 6h ; bb b60d7406 jne short 05325h ; 75 19 7407 mov bx, 00db2h ; bb b2 0d 7399 7408 mov cx, ds ; 8c d9 7400 7409 mov ax, strict word 00004h ; b8 04 00 7401 call 01a2ah ; e8 31c77410 call 01a2ah ; e8 13 c7 7402 7411 push 00599h ; 68 99 05 7403 7412 push strict byte 00004h ; 6a 04 7404 call 01a6bh ; e8 6ac77413 call 01a6bh ; e8 4c c7 7405 7414 add sp, strict byte 00004h ; 83 c4 04 7406 jmp near 053 c8h ; e9 c1 007415 jmp near 053e6h ; e9 c1 00 7407 7416 mov dx, strict word 00018h ; ba 18 00 7408 7417 mov ax, strict word 00040h ; b8 40 00 7409 call 01749h ; e8 39c47418 call 01749h ; e8 1b c4 7410 7419 mov byte [bp-006h], al ; 88 46 fa 7411 7420 mov byte [bp-00ah], al ; 88 46 f6 7412 7421 mov dx, 00096h ; ba 96 00 7413 7422 mov ax, strict word 00040h ; b8 40 00 7414 call 01749h ; e8 2ac47423 call 01749h ; e8 0c c4 7415 7424 mov byte [bp-00eh], al ; 88 46 f2 7416 7425 mov byte [bp-004h], al ; 88 46 fc 7417 7426 mov dx, strict word 00017h ; ba 17 00 7418 7427 mov ax, strict word 00040h ; b8 40 00 7419 call 01749h ; e8 1b c47428 call 01749h ; e8 fd c3 7420 7429 mov byte [bp-010h], al ; 88 46 f0 7421 7430 mov byte [bp-008h], al ; 88 46 f8 … … 7424 7433 pop ES ; 07 7425 7434 mov cx, strict word 00012h ; b9 12 00 7426 mov di, 052 a8h ; bf a8527435 mov di, 052c6h ; bf c6 52 7427 7436 repne scasb ; f2 ae 7428 7437 sal cx, 1 ; d1 e1 7429 7438 mov di, cx ; 89 cf 7430 mov ax, word [cs:di+052 b9h] ; 2e 8b 85 b9527439 mov ax, word [cs:di+052d7h] ; 2e 8b 85 d7 52 7431 7440 jmp ax ; ff e0 7432 7441 xor byte [bp-008h], 040h ; 80 76 f8 40 … … 7434 7443 mov dx, strict word 00017h ; ba 17 00 7435 7444 mov ax, strict word 00040h ; b8 40 00 7436 call 01757h ; e8 fac37445 call 01757h ; e8 dc c3 7437 7446 or byte [bp-00ah], 040h ; 80 4e f6 40 7438 7447 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7439 jmp near 055 d8h ; e9 70 027448 jmp near 055f6h ; e9 70 02 7440 7449 mov al, byte [bp-006h] ; 8a 46 fa 7441 7450 and AL, strict byte 0bfh ; 24 bf 7442 7451 mov byte [bp-00ah], al ; 88 46 f6 7443 7452 movzx bx, al ; 0f b6 d8 7444 jmp near 055 d8h ; e9 62 027453 jmp near 055f6h ; e9 62 02 7445 7454 test byte [bp-004h], 002h ; f6 46 fc 02 7446 jne near 053 aah ; 0f 85 2c 007455 jne near 053c8h ; 0f 85 2c 00 7447 7456 mov al, byte [bp-00ch] ; 8a 46 f4 7448 7457 and AL, strict byte 07fh ; 24 7f … … 7454 7463 mov dl, al ; 88 c2 7455 7464 test byte [bp-00ch], 080h ; f6 46 f4 80 7456 je short 053 9ah ; 74 077465 je short 053b8h ; 74 07 7457 7466 not al ; f6 d0 7458 7467 and byte [bp-008h], al ; 20 46 f8 7459 jmp short 053 9dh ; eb 037468 jmp short 053bbh ; eb 03 7460 7469 or byte [bp-008h], al ; 08 46 f8 7461 7470 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7462 7471 mov dx, strict word 00017h ; ba 17 00 7463 7472 mov ax, strict word 00040h ; b8 40 00 7464 call 01757h ; e8 adc37473 call 01757h ; e8 8f c3 7465 7474 mov al, byte [bp-00ch] ; 8a 46 f4 7466 7475 and AL, strict byte 07fh ; 24 7f 7467 7476 cmp AL, strict byte 01dh ; 3c 1d 7468 je short 053 b7h ; 74 047477 je short 053d5h ; 74 04 7469 7478 and byte [bp-004h], 0feh ; 80 66 fc fe 7470 7479 and byte [bp-004h], 0fdh ; 80 66 fc fd … … 7472 7481 mov dx, 00096h ; ba 96 00 7473 7482 mov ax, strict word 00040h ; b8 40 00 7474 call 01757h ; e8 8fc37483 call 01757h ; e8 71 c3 7475 7484 lea sp, [bp-002h] ; 8d 66 fe 7476 7485 pop di ; 5f … … 7478 7487 retn ; c3 7479 7488 test byte [bp-00eh], 001h ; f6 46 f2 01 7480 jne short 053 aah ; 75 d67489 jne short 053c8h ; 75 d6 7481 7490 mov al, byte [bp-010h] ; 8a 46 f0 7482 7491 or AL, strict byte 004h ; 0c 04 … … 7485 7494 mov dx, strict word 00017h ; ba 17 00 7486 7495 mov ax, strict word 00040h ; b8 40 00 7487 call 01757h ; e8 6fc37496 call 01757h ; e8 51 c3 7488 7497 mov al, byte [bp-00eh] ; 8a 46 f2 7489 7498 test AL, strict byte 002h ; a8 02 7490 je short 05 3fch ; 74 0d7499 je short 0541ah ; 74 0d 7491 7500 or AL, strict byte 004h ; 0c 04 7492 7501 mov byte [bp-004h], al ; 88 46 fc 7493 7502 movzx bx, al ; 0f b6 d8 7494 7503 mov dx, 00096h ; ba 96 00 7495 jmp short 054 0ah ; eb 0e7504 jmp short 05428h ; eb 0e 7496 7505 mov al, byte [bp-006h] ; 8a 46 fa 7497 7506 or AL, strict byte 001h ; 0c 01 … … 7500 7509 mov dx, strict word 00018h ; ba 18 00 7501 7510 mov ax, strict word 00040h ; b8 40 00 7502 call 01757h ; e8 47c37503 jmp short 053 aah ; eb 987511 call 01757h ; e8 29 c3 7512 jmp short 053c8h ; eb 98 7504 7513 test byte [bp-00eh], 001h ; f6 46 f2 01 7505 jne short 053 aah ; 75 927514 jne short 053c8h ; 75 92 7506 7515 mov al, byte [bp-010h] ; 8a 46 f0 7507 7516 and AL, strict byte 0fbh ; 24 fb … … 7510 7519 mov dx, strict word 00017h ; ba 17 00 7511 7520 mov ax, strict word 00040h ; b8 40 00 7512 call 01757h ; e8 2bc37521 call 01757h ; e8 0d c3 7513 7522 mov al, byte [bp-00eh] ; 8a 46 f2 7514 7523 test AL, strict byte 002h ; a8 02 7515 je short 054 40h ; 74 0d7524 je short 0545eh ; 74 0d 7516 7525 and AL, strict byte 0fbh ; 24 fb 7517 7526 mov byte [bp-004h], al ; 88 46 fc 7518 7527 movzx bx, al ; 0f b6 d8 7519 7528 mov dx, 00096h ; ba 96 00 7520 jmp short 054 4eh ; eb 0e7529 jmp short 0546ch ; eb 0e 7521 7530 mov al, byte [bp-006h] ; 8a 46 fa 7522 7531 and AL, strict byte 0feh ; 24 fe … … 7525 7534 mov dx, strict word 00018h ; ba 18 00 7526 7535 mov ax, strict word 00040h ; b8 40 00 7527 call 01757h ; e8 03 c37528 jmp near 053 aah ; e9 53 ff7536 call 01757h ; e8 e5 c2 7537 jmp near 053c8h ; e9 53 ff 7529 7538 mov al, byte [bp-010h] ; 8a 46 f0 7530 7539 or AL, strict byte 008h ; 0c 08 … … 7533 7542 mov dx, strict word 00017h ; ba 17 00 7534 7543 mov ax, strict word 00040h ; b8 40 00 7535 call 01757h ; e8 ecc27544 call 01757h ; e8 ce c2 7536 7545 mov al, byte [bp-00eh] ; 8a 46 f2 7537 7546 test AL, strict byte 002h ; a8 02 7538 je short 054 7fh ; 74 0d7547 je short 0549dh ; 74 0d 7539 7548 or AL, strict byte 008h ; 0c 08 7540 7549 mov byte [bp-004h], al ; 88 46 fc 7541 7550 movzx bx, al ; 0f b6 d8 7542 7551 mov dx, 00096h ; ba 96 00 7543 jmp short 054 8dh ; eb 0e7552 jmp short 054abh ; eb 0e 7544 7553 mov al, byte [bp-006h] ; 8a 46 fa 7545 7554 or AL, strict byte 002h ; 0c 02 … … 7548 7557 mov dx, strict word 00018h ; ba 18 00 7549 7558 mov ax, strict word 00040h ; b8 40 00 7550 call 01757h ; e8 c4c27551 jmp near 053 aah ; e9 14 ff7559 call 01757h ; e8 a6 c2 7560 jmp near 053c8h ; e9 14 ff 7552 7561 mov al, byte [bp-010h] ; 8a 46 f0 7553 7562 and AL, strict byte 0f7h ; 24 f7 … … 7556 7565 mov dx, strict word 00017h ; ba 17 00 7557 7566 mov ax, strict word 00040h ; b8 40 00 7558 call 01757h ; e8 adc27567 call 01757h ; e8 8f c2 7559 7568 mov al, byte [bp-00eh] ; 8a 46 f2 7560 7569 test AL, strict byte 002h ; a8 02 7561 je short 054 beh ; 74 0d7570 je short 054dch ; 74 0d 7562 7571 and AL, strict byte 0f7h ; 24 f7 7563 7572 mov byte [bp-004h], al ; 88 46 fc 7564 7573 movzx bx, al ; 0f b6 d8 7565 7574 mov dx, 00096h ; ba 96 00 7566 jmp short 054 cch ; eb 0e7575 jmp short 054eah ; eb 0e 7567 7576 mov al, byte [bp-006h] ; 8a 46 fa 7568 7577 and AL, strict byte 0fdh ; 24 fd … … 7571 7580 mov dx, strict word 00018h ; ba 18 00 7572 7581 mov ax, strict word 00040h ; b8 40 00 7573 call 01757h ; e8 85c27574 jmp near 053 aah ; e9 d5 fe7582 call 01757h ; e8 67 c2 7583 jmp near 053c8h ; e9 d5 fe 7575 7584 test byte [bp-00eh], 003h ; f6 46 f2 03 7576 jne short 05 4f7h ; 75 1c7585 jne short 05515h ; 75 1c 7577 7586 mov al, byte [bp-006h] ; 8a 46 fa 7578 7587 or AL, strict byte 020h ; 0c 20 … … 7581 7590 mov dx, strict word 00018h ; ba 18 00 7582 7591 mov ax, strict word 00040h ; b8 40 00 7583 call 01757h ; e8 68c27592 call 01757h ; e8 4a c2 7584 7593 mov al, byte [bp-010h] ; 8a 46 f0 7585 7594 xor AL, strict byte 020h ; 34 20 7586 jmp near 055 96h ; e9 9f 007595 jmp near 055b4h ; e9 9f 00 7587 7596 mov al, byte [bp-006h] ; 8a 46 fa 7588 7597 or AL, strict byte 008h ; 0c 08 … … 7591 7600 mov dx, strict word 00018h ; ba 18 00 7592 7601 mov ax, strict word 00040h ; b8 40 00 7593 call 01757h ; e8 4cc27602 call 01757h ; e8 2e c2 7594 7603 mov AL, strict byte 0aeh ; b0 ae 7595 7604 mov dx, strict word 00064h ; ba 64 00 7596 7605 out DX, AL ; ee 7597 call 0e034h ; e8 208b7606 call 0e034h ; e8 02 8b 7598 7607 mov dx, strict word 00018h ; ba 18 00 7599 7608 mov ax, strict word 00040h ; b8 40 00 7600 call 01749h ; e8 2cc27609 call 01749h ; e8 0e c2 7601 7610 test AL, strict byte 008h ; a8 08 7602 jne short 055 14h ; 75 f37603 jmp near 053 aah ; e9 86 fe7611 jne short 05532h ; 75 f3 7612 jmp near 053c8h ; e9 86 fe 7604 7613 test byte [bp-00eh], 003h ; f6 46 f2 03 7605 jne near 053 aah ; 0f 85 7e fe7614 jne near 053c8h ; 0f 85 7e fe 7606 7615 mov al, byte [bp-006h] ; 8a 46 fa 7607 7616 and AL, strict byte 0dfh ; 24 df … … 7610 7619 mov dx, strict word 00018h ; ba 18 00 7611 7620 mov ax, strict word 00040h ; b8 40 00 7612 call 01757h ; e8 17 c27613 jmp near 053 aah ; e9 67 fe7621 call 01757h ; e8 f9 c1 7622 jmp near 053c8h ; e9 67 fe 7614 7623 test byte [bp-00eh], 002h ; f6 46 f2 02 7615 je short 055 7dh ; 74 347624 je short 0559bh ; 74 34 7616 7625 mov dx, strict word 0001ah ; ba 1a 00 7617 7626 mov ax, strict word 00040h ; b8 40 00 7618 call 01765h ; e8 13 c27627 call 01765h ; e8 f5 c1 7619 7628 mov bx, ax ; 89 c3 7620 7629 mov dx, strict word 0001ch ; ba 1c 00 7621 7630 mov ax, strict word 00040h ; b8 40 00 7622 call 01773h ; e8 16 c27631 call 01773h ; e8 f8 c1 7623 7632 mov bx, 00080h ; bb 80 00 7624 7633 mov dx, strict word 00071h ; ba 71 00 7625 7634 mov ax, strict word 00040h ; b8 40 00 7626 call 01757h ; e8 eec17635 call 01757h ; e8 d0 c1 7627 7636 mov AL, strict byte 0aeh ; b0 ae 7628 7637 mov dx, strict word 00064h ; ba 64 00 … … 7633 7642 xor dx, dx ; 31 d2 7634 7643 xor ax, ax ; 31 c0 7635 call 052 44h ; e8 ca fc7636 jmp near 053 aah ; e9 2d fe7644 call 05262h ; e8 ca fc 7645 jmp near 053c8h ; e9 2d fe 7637 7646 mov al, byte [bp-006h] ; 8a 46 fa 7638 7647 or AL, strict byte 010h ; 0c 10 … … 7641 7650 mov dx, strict word 00018h ; ba 18 00 7642 7651 mov ax, strict word 00040h ; b8 40 00 7643 call 01757h ; e8 c6c17652 call 01757h ; e8 a8 c1 7644 7653 mov al, byte [bp-010h] ; 8a 46 f0 7645 7654 xor AL, strict byte 010h ; 34 10 … … 7648 7657 mov dx, strict word 00017h ; ba 17 00 7649 7658 mov ax, strict word 00040h ; b8 40 00 7650 call 01757h ; e8 b2c17651 jmp near 053 aah ; e9 02 fe7659 call 01757h ; e8 94 c1 7660 jmp near 053c8h ; e9 02 fe 7652 7661 test byte [bp-00eh], 002h ; f6 46 f2 02 7653 jne near 053 aah ; 0f 85 fa fd7662 jne near 053c8h ; 0f 85 fa fd 7654 7663 mov al, byte [bp-006h] ; 8a 46 fa 7655 7664 and AL, strict byte 0efh ; 24 ef … … 7658 7667 mov dx, strict word 00018h ; ba 18 00 7659 7668 mov ax, strict word 00040h ; b8 40 00 7660 call 01757h ; e8 93c17661 jmp near 053 aah ; e9 e3 fd7669 call 01757h ; e8 75 c1 7670 jmp near 053c8h ; e9 e3 fd 7662 7671 mov al, byte [bp-006h] ; 8a 46 fa 7663 7672 test AL, strict byte 004h ; a8 04 7664 jne near 053 aah ; 0f 85 da fd7673 jne near 053c8h ; 0f 85 da fd 7665 7674 or AL, strict byte 004h ; 0c 04 7666 7675 mov byte [bp-00ah], al ; 88 46 f6 … … 7668 7677 mov dx, strict word 00018h ; ba 18 00 7669 7678 mov ax, strict word 00040h ; b8 40 00 7670 call 01757h ; e8 76c17671 jmp near 053 aah ; e9 c6 fd7679 call 01757h ; e8 58 c1 7680 jmp near 053c8h ; e9 c6 fd 7672 7681 mov al, byte [bp-006h] ; 8a 46 fa 7673 7682 and AL, strict byte 0fbh ; 24 fb 7674 jmp short 055 d2h ; eb e77683 jmp short 055f0h ; eb e7 7675 7684 mov al, byte [bp-010h] ; 8a 46 f0 7676 7685 and AL, strict byte 00ch ; 24 0c 7677 7686 cmp AL, strict byte 00ch ; 3c 0c 7678 jne short 056 05h ; 75 117687 jne short 05623h ; 75 11 7679 7688 mov bx, 01234h ; bb 34 12 7680 7689 mov dx, strict word 00072h ; ba 72 00 7681 7690 mov ax, strict word 00040h ; b8 40 00 7682 call 01773h ; e8 73c17691 call 01773h ; e8 55 c1 7683 7692 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7684 7693 test byte [bp-00ah], 008h ; f6 46 f6 08 7685 je short 056 19h ; 74 0e7694 je short 05637h ; 74 0e 7686 7695 and byte [bp-00ah], 0f7h ; 80 66 f6 f7 7687 7696 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7688 7697 mov dx, strict word 00018h ; ba 18 00 7689 jmp near 053 c2h ; e9 a9 fd7698 jmp near 053e0h ; e9 a9 fd 7690 7699 mov al, byte [bp-00ch] ; 8a 46 f4 7691 7700 test AL, strict byte 080h ; a8 80 7692 je short 056 57h ; 74 377701 je short 05675h ; 74 37 7693 7702 cmp AL, strict byte 0fah ; 3c fa 7694 jne short 056 34h ; 75 107703 jne short 05652h ; 75 10 7695 7704 mov dx, 00097h ; ba 97 00 7696 7705 mov ax, strict word 00040h ; b8 40 00 7697 call 01749h ; e8 1c c17706 call 01749h ; e8 fe c0 7698 7707 mov dl, al ; 88 c2 7699 7708 or dl, 010h ; 80 ca 10 7700 jmp short 056 48h ; eb 147709 jmp short 05666h ; eb 14 7701 7710 cmp AL, strict byte 0feh ; 3c fe 7702 jne near 053 aah ; 0f 85 70 fd7711 jne near 053c8h ; 0f 85 70 fd 7703 7712 mov dx, 00097h ; ba 97 00 7704 7713 mov ax, strict word 00040h ; b8 40 00 7705 call 01749h ; e8 06 c17714 call 01749h ; e8 e8 c0 7706 7715 mov dl, al ; 88 c2 7707 7716 or dl, 020h ; 80 ca 20 … … 7709 7718 mov dx, 00097h ; ba 97 00 7710 7719 mov ax, strict word 00040h ; b8 40 00 7711 call 01757h ; e8 03 c17712 jmp near 053 aah ; e9 53 fd7720 call 01757h ; e8 e5 c0 7721 jmp near 053c8h ; e9 53 fd 7713 7722 cmp byte [bp-00ch], 058h ; 80 7e f4 58 7714 jbe short 056 7bh ; 76 1e7715 mov bx, 00db 6h ; bb b60d7723 jbe short 05699h ; 76 1e 7724 mov bx, 00db2h ; bb b2 0d 7716 7725 mov cx, ds ; 8c d9 7717 7726 mov ax, strict word 00004h ; b8 04 00 7718 call 01a2ah ; e8 c2c37727 call 01a2ah ; e8 a4 c3 7719 7728 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7720 7729 push ax ; 50 7721 7730 push 005b3h ; 68 b3 05 7722 7731 push strict byte 00004h ; 6a 04 7723 call 01a6bh ; e8 f6c37732 call 01a6bh ; e8 d8 c3 7724 7733 add sp, strict byte 00006h ; 83 c4 06 7725 jmp near 053 c8h ; e9 4d fd7734 jmp near 053e6h ; e9 4d fd 7726 7735 mov al, byte [bp-008h] ; 8a 46 f8 7727 7736 test AL, strict byte 008h ; a8 08 7728 je short 056 94h ; 74 127737 je short 056b2h ; 74 12 7729 7738 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7730 7739 imul bx, bx, strict byte 0000ah ; 6b db 0a 7731 mov dl, byte [bx+00e0 ah] ; 8a 97 0a0e7732 mov ax, word [bx+00e0 ah] ; 8b 87 0a0e7733 jmp near 057 22h ; e9 8e 007740 mov dl, byte [bx+00e06h] ; 8a 97 06 0e 7741 mov ax, word [bx+00e06h] ; 8b 87 06 0e 7742 jmp near 05740h ; e9 8e 00 7734 7743 test AL, strict byte 004h ; a8 04 7735 je short 056 aah ; 74 127744 je short 056c8h ; 74 12 7736 7745 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7737 7746 imul bx, bx, strict byte 0000ah ; 6b db 0a 7738 mov dl, byte [bx+00e0 8h] ; 8a 97 080e7739 mov ax, word [bx+00e0 8h] ; 8b 87 080e7740 jmp near 057 22h ; e9 78 007747 mov dl, byte [bx+00e04h] ; 8a 97 04 0e 7748 mov ax, word [bx+00e04h] ; 8b 87 04 0e 7749 jmp near 05740h ; e9 78 00 7741 7750 mov al, byte [bp-004h] ; 8a 46 fc 7742 7751 and AL, strict byte 002h ; 24 02 7743 7752 test al, al ; 84 c0 7744 jbe short 056 c8h ; 76 157753 jbe short 056e6h ; 76 15 7745 7754 mov al, byte [bp-00ch] ; 8a 46 f4 7746 7755 cmp AL, strict byte 047h ; 3c 47 7747 jc short 056 c8h ; 72 0e7756 jc short 056e6h ; 72 0e 7748 7757 cmp AL, strict byte 053h ; 3c 53 7749 jnbe short 056 c8h ; 77 0a7758 jnbe short 056e6h ; 77 0a 7750 7759 mov DL, strict byte 0e0h ; b2 e0 7751 7760 movzx bx, al ; 0f b6 d8 7752 7761 imul bx, bx, strict byte 0000ah ; 6b db 0a 7753 jmp short 057 1eh ; eb 567762 jmp short 0573ch ; eb 56 7754 7763 test byte [bp-008h], 003h ; f6 46 f8 03 7755 je short 05 6fch ; 74 2e7764 je short 0571ah ; 74 2e 7756 7765 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7757 7766 imul bx, bx, strict byte 0000ah ; 6b db 0a 7758 movzx ax, byte [bx+00e0 ch] ; 0f b6 87 0c0e7767 movzx ax, byte [bx+00e08h] ; 0f b6 87 08 0e 7759 7768 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7760 7769 test dx, ax ; 85 c2 7761 je short 05 6ech ; 74 0a7762 mov dl, byte [bx+00e0 4h] ; 8a 97 040e7763 mov ax, word [bx+00e0 4h] ; 8b 87 040e7764 jmp short 05 6f4h ; eb 087765 mov dl, byte [bx+00e0 6h] ; 8a 97 060e7766 mov ax, word [bx+00e0 6h] ; 8b 87 060e7770 je short 0570ah ; 74 0a 7771 mov dl, byte [bx+00e00h] ; 8a 97 00 0e 7772 mov ax, word [bx+00e00h] ; 8b 87 00 0e 7773 jmp short 05712h ; eb 08 7774 mov dl, byte [bx+00e02h] ; 8a 97 02 0e 7775 mov ax, word [bx+00e02h] ; 8b 87 02 0e 7767 7776 shr ax, 008h ; c1 e8 08 7768 7777 mov byte [bp-00ch], al ; 88 46 f4 7769 jmp short 057 28h ; eb 2c7778 jmp short 05746h ; eb 2c 7770 7779 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7771 7780 imul bx, bx, strict byte 0000ah ; 6b db 0a 7772 movzx ax, byte [bx+00e0 ch] ; 0f b6 87 0c0e7781 movzx ax, byte [bx+00e08h] ; 0f b6 87 08 0e 7773 7782 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7774 7783 test dx, ax ; 85 c2 7775 je short 057 1ah ; 74 0a7776 mov dl, byte [bx+00e0 6h] ; 8a 97 060e7777 mov ax, word [bx+00e0 6h] ; 8b 87 060e7778 jmp short 057 22h ; eb 087779 mov dl, byte [bx+00e0 4h] ; 8a 97 040e7780 mov ax, word [bx+00e0 4h] ; 8b 87 040e7784 je short 05738h ; 74 0a 7785 mov dl, byte [bx+00e02h] ; 8a 97 02 0e 7786 mov ax, word [bx+00e02h] ; 8b 87 02 0e 7787 jmp short 05740h ; eb 08 7788 mov dl, byte [bx+00e00h] ; 8a 97 00 0e 7789 mov ax, word [bx+00e00h] ; 8b 87 00 0e 7781 7790 shr ax, 008h ; c1 e8 08 7782 7791 mov byte [bp-00ch], al ; 88 46 f4 7783 7792 cmp byte [bp-00ch], 000h ; 80 7e f4 00 7784 jne short 057 48h ; 75 1a7793 jne short 05766h ; 75 1a 7785 7794 test dl, dl ; 84 d2 7786 jne short 057 48h ; 75 167787 mov bx, 00db 6h ; bb b60d7795 jne short 05766h ; 75 16 7796 mov bx, 00db2h ; bb b2 0d 7788 7797 mov cx, ds ; 8c d9 7789 7798 mov ax, strict word 00004h ; b8 04 00 7790 call 01a2ah ; e8 edc27799 call 01a2ah ; e8 cf c2 7791 7800 push 005eah ; 68 ea 05 7792 7801 push strict byte 00004h ; 6a 04 7793 call 01a6bh ; e8 26c37802 call 01a6bh ; e8 08 c3 7794 7803 add sp, strict byte 00004h ; 83 c4 04 7795 7804 xor dh, dh ; 30 f6 7796 7805 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7797 jmp near 055 77h ; e9 26 fe7798 dequeue_key_: ; 0xf57 51LB 0x947806 jmp near 05595h ; e9 26 fe 7807 dequeue_key_: ; 0xf576f LB 0x94 7799 7808 push bp ; 55 7800 7809 mov bp, sp ; 89 e5 … … 7809 7818 mov dx, strict word 0001ah ; ba 1a 00 7810 7819 mov ax, strict word 00040h ; b8 40 00 7811 call 01765h ; e8 fabf7820 call 01765h ; e8 dc bf 7812 7821 mov bx, ax ; 89 c3 7813 7822 mov dx, strict word 0001ch ; ba 1c 00 7814 7823 mov ax, strict word 00040h ; b8 40 00 7815 call 01765h ; e8 efbf7824 call 01765h ; e8 d1 bf 7816 7825 cmp bx, ax ; 39 c3 7817 je short 057 b7h ; 74 3d7826 je short 057d5h ; 74 3d 7818 7827 mov dx, bx ; 89 da 7819 7828 mov ax, strict word 00040h ; b8 40 00 7820 call 01749h ; e8 c7bf7829 call 01749h ; e8 a9 bf 7821 7830 mov cl, al ; 88 c1 7822 7831 lea dx, [bx+001h] ; 8d 57 01 7823 7832 mov ax, strict word 00040h ; b8 40 00 7824 call 01749h ; e8 bcbf7833 call 01749h ; e8 9e bf 7825 7834 mov es, [bp-008h] ; 8e 46 f8 7826 7835 mov byte [es:si], cl ; 26 88 0c … … 7828 7837 mov byte [es:di], al ; 26 88 05 7829 7838 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7830 je short 057 b2h ; 74 137839 je short 057d0h ; 74 13 7831 7840 inc bx ; 43 7832 7841 inc bx ; 43 7833 7842 cmp bx, strict byte 0003eh ; 83 fb 3e 7834 jc short 057 a9h ; 72 037843 jc short 057c7h ; 72 03 7835 7844 mov bx, strict word 0001eh ; bb 1e 00 7836 7845 mov dx, strict word 0001ah ; ba 1a 00 7837 7846 mov ax, strict word 00040h ; b8 40 00 7838 call 01773h ; e8 c1bf7847 call 01773h ; e8 a3 bf 7839 7848 mov ax, strict word 00001h ; b8 01 00 7840 jmp short 057 b9h ; eb 027849 jmp short 057d7h ; eb 02 7841 7850 xor ax, ax ; 31 c0 7842 7851 lea sp, [bp-004h] ; 8d 66 fc … … 7849 7858 or cl, byte [bx+di] ; 0a 09 7850 7859 add ax, 00102h ; 05 02 01 7851 add byte [ bx-064a6h], al ; 00 87 5a 9b7860 add byte [di-046a6h], ah ; 00 a5 5a b9 7852 7861 pop ax ; 58 7853 loop 0582bh ; e2 58 7854 das ; 2f 7862 add byte [bx+di+04dh], bl ; 00 59 4d 7855 7863 pop cx ; 59 7856 aas ; 3f7864 pop bp ; 5d 7857 7865 pop cx ; 59 7858 imul bx, word [bx+di+072h], 0e359h ; 69 59 72 59 e37866 xchg word [bx+di-070h], bx ; 87 59 90 7859 7867 pop cx ; 59 7860 adc AL, strict byte 05ah ; 14 5a 7861 inc dx ; 42 7868 add word [bp+si+032h], bx ; 01 5a 32 7862 7869 pop dx ; 5a 7863 jl short 0583dh ; 7c 5a 7864 db 0cah 7870 pushaw ; 60 7865 7871 pop dx ; 5a 7866 _int16_function: ; 0xf57e5 LB 0x2eb 7872 db 09ah 7873 pop dx ; 5a 7874 db 0e8h 7875 pop dx ; 5a 7876 _int16_function: ; 0xf5803 LB 0x2eb 7867 7877 push bp ; 55 7868 7878 mov bp, sp ; 89 e5 … … 7871 7881 mov dx, strict word 00017h ; ba 17 00 7872 7882 mov ax, strict word 00040h ; b8 40 00 7873 call 01749h ; e8 54bf7883 call 01749h ; e8 36 bf 7874 7884 mov cl, al ; 88 c1 7875 7885 mov bl, al ; 88 c3 7876 7886 mov dx, 00097h ; ba 97 00 7877 7887 mov ax, strict word 00040h ; b8 40 00 7878 call 01749h ; e8 47bf7888 call 01749h ; e8 29 bf 7879 7889 mov bh, al ; 88 c7 7880 7890 movzx dx, cl ; 0f b6 d1 … … 7885 7895 xor al, dl ; 30 d0 7886 7896 test ax, ax ; 85 c0 7887 je short 058 79h ; 74 627897 je short 05897h ; 74 62 7888 7898 cli ; fa 7889 7899 mov AL, strict byte 0edh ; b0 ed … … 7895 7905 ; sub ah, ah ; 2a e4 7896 7906 test AL, strict byte 001h ; a8 01 7897 jne short 058 30h ; 75 087907 jne short 0584eh ; 75 08 7898 7908 mov AL, strict byte 021h ; b0 21 7899 7909 mov dx, 00080h ; ba 80 00 7900 7910 out DX, AL ; ee 7901 jmp short 058 1eh ; eb ee7911 jmp short 0583ch ; eb ee 7902 7912 mov dx, strict word 00060h ; ba 60 00 7903 7913 in AL, DX ; ec … … 7905 7915 ; sub ah, ah ; 2a e4 7906 7916 cmp ax, 000fah ; 3d fa 00 7907 jne short 058 78h ; 75 3d7917 jne short 05896h ; 75 3d 7908 7918 and bh, 0c8h ; 80 e7 c8 7909 7919 movzx dx, bl ; 0f b6 d3 … … 7921 7931 ; sub ah, ah ; 2a e4 7922 7932 test AL, strict byte 001h ; a8 01 7923 jne short 058 66h ; 75 087933 jne short 05884h ; 75 08 7924 7934 mov AL, strict byte 021h ; b0 21 7925 7935 mov dx, 00080h ; ba 80 00 7926 7936 out DX, AL ; ee 7927 jmp short 058 54h ; eb ee7937 jmp short 05872h ; eb ee 7928 7938 mov dx, strict word 00060h ; ba 60 00 7929 7939 in AL, DX ; ec … … 7933 7943 mov dx, 00097h ; ba 97 00 7934 7944 mov ax, strict word 00040h ; b8 40 00 7935 call 01757h ; e8 dfbe7945 call 01757h ; e8 c1 be 7936 7946 sti ; fb 7937 7947 mov ax, word [bp+012h] ; 8b 46 12 7938 7948 shr ax, 008h ; c1 e8 08 7939 7949 cmp ax, 000a2h ; 3d a2 00 7940 jnbe near 05a 87h ; 0f 87 01 027950 jnbe near 05aa5h ; 0f 87 01 02 7941 7951 push CS ; 0e 7942 7952 pop ES ; 07 7943 7953 mov cx, strict word 0000ch ; b9 0c 00 7944 mov di, 057 c2h ; bf c2577954 mov di, 057e0h ; bf e0 57 7945 7955 repne scasb ; f2 ae 7946 7956 sal cx, 1 ; d1 e1 7947 7957 mov di, cx ; 89 cf 7948 mov ax, word [cs:di+057 cdh] ; 2e 8b 85 cd577958 mov ax, word [cs:di+057ebh] ; 2e 8b 85 eb 57 7949 7959 jmp ax ; ff e0 7950 7960 push strict byte 00001h ; 6a 01 … … 7953 7963 mov dx, ss ; 8c d2 7954 7964 lea ax, [bp-006h] ; 8d 46 fa 7955 call 057 51h ; e8 a7 fe7965 call 0576fh ; e8 a7 fe 7956 7966 test ax, ax ; 85 c0 7957 jne short 058 b9h ; 75 0b7967 jne short 058d7h ; 75 0b 7958 7968 push 00621h ; 68 21 06 7959 7969 push strict byte 00007h ; 6a 07 7960 call 01a6bh ; e8 b5c17970 call 01a6bh ; e8 97 c1 7961 7971 add sp, strict byte 00004h ; 83 c4 04 7962 7972 cmp byte [bp-006h], 000h ; 80 7e fa 00 7963 je short 058 c5h ; 74 067973 je short 058e3h ; 74 06 7964 7974 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7965 je short 058 cbh ; 74 067975 je short 058e9h ; 74 06 7966 7976 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7967 jne short 058 cfh ; 75 047977 jne short 058edh ; 75 04 7968 7978 mov byte [bp-008h], 000h ; c6 46 f8 00 7969 7979 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7972 7982 or dx, ax ; 09 c2 7973 7983 mov word [bp+012h], dx ; 89 56 12 7974 jmp near 05a cah ; e9 e8 017984 jmp near 05ae8h ; e9 e8 01 7975 7985 mov ax, word [bp+018h] ; 8b 46 18 7976 7986 mov word [bp+01eh], ax ; 89 46 1e … … 7980 7990 mov dx, ss ; 8c d2 7981 7991 lea ax, [bp-006h] ; 8d 46 fa 7982 call 057 51h ; e8 5a fe7992 call 0576fh ; e8 5a fe 7983 7993 test ax, ax ; 85 c0 7984 jne short 059 02h ; 75 077994 jne short 05920h ; 75 07 7985 7995 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 7986 jmp near 05a cah ; e9 c8 017996 jmp near 05ae8h ; e9 c8 01 7987 7997 cmp byte [bp-006h], 000h ; 80 7e fa 00 7988 je short 059 0eh ; 74 067998 je short 0592ch ; 74 06 7989 7999 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7990 je short 059 14h ; 74 068000 je short 05932h ; 74 06 7991 8001 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7992 jne short 059 18h ; 75 048002 jne short 05936h ; 75 04 7993 8003 mov byte [bp-008h], 000h ; c6 46 f8 00 7994 8004 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7998 8008 mov word [bp+012h], dx ; 89 56 12 7999 8009 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 8000 jmp near 05a cah ; e9 9b 018010 jmp near 05ae8h ; e9 9b 01 8001 8011 mov dx, strict word 00017h ; ba 17 00 8002 8012 mov ax, strict word 00040h ; b8 40 00 8003 call 01749h ; e8 11 be8013 call 01749h ; e8 f3 bd 8004 8014 mov dx, word [bp+012h] ; 8b 56 12 8005 8015 mov dl, al ; 88 c2 8006 jmp short 058 dch ; eb 9d8016 jmp short 058fah ; eb 9d 8007 8017 mov al, byte [bp+010h] ; 8a 46 10 8008 8018 movzx dx, al ; 0f b6 d0 … … 8010 8020 shr ax, 008h ; c1 e8 08 8011 8021 xor ah, ah ; 30 e4 8012 call 052 44h ; e8 f4 f88022 call 05262h ; e8 f4 f8 8013 8023 test ax, ax ; 85 c0 8014 jne short 059 61h ; 75 0d8024 jne short 0597fh ; 75 0d 8015 8025 mov ax, word [bp+012h] ; 8b 46 12 8016 8026 xor al, al ; 30 c0 8017 8027 or AL, strict byte 001h ; 0c 01 8018 8028 mov word [bp+012h], ax ; 89 46 12 8019 jmp near 05a cah ; e9 69 018029 jmp near 05ae8h ; e9 69 01 8020 8030 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8021 jmp near 05a cah ; e9 61 018031 jmp near 05ae8h ; e9 61 01 8022 8032 mov ax, word [bp+012h] ; 8b 46 12 8023 8033 xor al, al ; 30 c0 8024 8034 or AL, strict byte 030h ; 0c 30 8025 jmp short 059 5bh ; eb e98035 jmp short 05979h ; eb e9 8026 8036 mov byte [bp-004h], 002h ; c6 46 fc 02 8027 8037 xor cx, cx ; 31 c9 … … 8036 8046 ; sub ah, ah ; 2a e4 8037 8047 test AL, strict byte 001h ; a8 01 8038 jne short 059 99h ; 75 0d8048 jne short 059b7h ; 75 0d 8039 8049 dec bx ; 4b 8040 8050 test bx, bx ; 85 db 8041 jbe short 059 99h ; 76 088051 jbe short 059b7h ; 76 08 8042 8052 mov dx, 00080h ; ba 80 00 8043 8053 in AL, DX ; ec 8044 8054 db 02ah, 0e4h 8045 8055 ; sub ah, ah ; 2a e4 8046 jmp short 059 82h ; eb e98056 jmp short 059a0h ; eb e9 8047 8057 test bx, bx ; 85 db 8048 jbe short 059 ddh ; 76 408058 jbe short 059fbh ; 76 40 8049 8059 mov dx, strict word 00060h ; ba 60 00 8050 8060 in AL, DX ; ec … … 8052 8062 ; sub ah, ah ; 2a e4 8053 8063 cmp ax, 000fah ; 3d fa 00 8054 jne short 059 ddh ; 75 358064 jne short 059fbh ; 75 35 8055 8065 mov bx, strict word 0ffffh ; bb ff ff 8056 8066 mov dx, strict word 00064h ; ba 64 00 … … 8059 8069 ; sub ah, ah ; 2a e4 8060 8070 test AL, strict byte 001h ; a8 01 8061 jne short 059 c2h ; 75 0d8071 jne short 059e0h ; 75 0d 8062 8072 dec bx ; 4b 8063 8073 test bx, bx ; 85 db 8064 jbe short 059 c2h ; 76 088074 jbe short 059e0h ; 76 08 8065 8075 mov dx, 00080h ; ba 80 00 8066 8076 in AL, DX ; ec 8067 8077 db 02ah, 0e4h 8068 8078 ; sub ah, ah ; 2a e4 8069 jmp short 059 abh ; eb e98079 jmp short 059c9h ; eb e9 8070 8080 test bx, bx ; 85 db 8071 jbe short 059 d4h ; 76 0e8081 jbe short 059f2h ; 76 0e 8072 8082 shr cx, 008h ; c1 e9 08 8073 8083 mov dx, strict word 00060h ; ba 60 00 … … 8079 8089 dec byte [bp-004h] ; fe 4e fc 8080 8090 cmp byte [bp-004h], 000h ; 80 7e fc 00 8081 jnbe short 059 a8h ; 77 cb8091 jnbe short 059c6h ; 77 cb 8082 8092 mov word [bp+00ch], cx ; 89 4e 0c 8083 jmp near 05a cah ; e9 e7 008093 jmp near 05ae8h ; e9 e7 00 8084 8094 push strict byte 00001h ; 6a 01 8085 8095 mov cx, ss ; 8c d1 … … 8087 8097 mov dx, ss ; 8c d2 8088 8098 lea ax, [bp-006h] ; 8d 46 fa 8089 call 057 51h ; e8 5f fd8099 call 0576fh ; e8 5f fd 8090 8100 test ax, ax ; 85 c0 8091 jne short 05a 01h ; 75 0b8101 jne short 05a1fh ; 75 0b 8092 8102 push 00621h ; 68 21 06 8093 8103 push strict byte 00007h ; 6a 07 8094 call 01a6bh ; e8 6dc08104 call 01a6bh ; e8 4f c0 8095 8105 add sp, strict byte 00004h ; 83 c4 04 8096 8106 cmp byte [bp-006h], 000h ; 80 7e fa 00 8097 je near 058 cfh ; 0f 84 c6 fe8107 je near 058edh ; 0f 84 c6 fe 8098 8108 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8099 je near 058 cbh ; 0f 84 ba fe8100 jmp near 058 cfh ; e9 bb fe8109 je near 058e9h ; 0f 84 ba fe 8110 jmp near 058edh ; e9 bb fe 8101 8111 mov ax, word [bp+018h] ; 8b 46 18 8102 8112 mov word [bp+01eh], ax ; 89 46 1e … … 8106 8116 mov dx, ss ; 8c d2 8107 8117 lea ax, [bp-006h] ; 8d 46 fa 8108 call 057 51h ; e8 28 fd8118 call 0576fh ; e8 28 fd 8109 8119 test ax, ax ; 85 c0 8110 je near 05 8fbh ; 0f 84 cc fe8120 je near 05919h ; 0f 84 cc fe 8111 8121 cmp byte [bp-006h], 000h ; 80 7e fa 00 8112 je near 059 18h ; 0f 84 e1 fe8122 je near 05936h ; 0f 84 e1 fe 8113 8123 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8114 je near 059 14h ; 0f 84 d5 fe8115 jmp near 059 18h ; e9 d6 fe8124 je near 05932h ; 0f 84 d5 fe 8125 jmp near 05936h ; e9 d6 fe 8116 8126 mov dx, strict word 00017h ; ba 17 00 8117 8127 mov ax, strict word 00040h ; b8 40 00 8118 call 01749h ; e8 febc8128 call 01749h ; e8 e0 bc 8119 8129 mov dx, word [bp+012h] ; 8b 56 12 8120 8130 mov dl, al ; 88 c2 … … 8122 8132 mov dx, strict word 00018h ; ba 18 00 8123 8133 mov ax, strict word 00040h ; b8 40 00 8124 call 01749h ; e8 edbc8134 call 01749h ; e8 cf bc 8125 8135 mov bl, al ; 88 c3 8126 8136 and bl, 073h ; 80 e3 73 8127 8137 mov dx, 00096h ; ba 96 00 8128 8138 mov ax, strict word 00040h ; b8 40 00 8129 call 01749h ; e8 dfbc8139 call 01749h ; e8 c1 bc 8130 8140 and AL, strict byte 00ch ; 24 0c 8131 8141 or bl, al ; 08 c3 … … 8134 8144 movzx ax, bl ; 0f b6 c3 8135 8145 sal ax, 008h ; c1 e0 08 8136 jmp near 058 dah ; e9 5e fe8146 jmp near 058f8h ; e9 5e fe 8137 8147 mov ax, word [bp+012h] ; 8b 46 12 8138 8148 xor ah, ah ; 30 e4 8139 8149 or ah, 080h ; 80 cc 80 8140 jmp near 059 5bh ; e9 d4 fe8141 mov bx, 00db 6h ; bb b60d8150 jmp near 05979h ; e9 d4 fe 8151 mov bx, 00db2h ; bb b2 0d 8142 8152 mov cx, ds ; 8c d9 8143 8153 mov ax, strict word 00004h ; b8 04 00 8144 call 01a2ah ; e8 98bf8154 call 01a2ah ; e8 7a bf 8145 8155 mov ax, word [bp+012h] ; 8b 46 12 8146 8156 shr ax, 008h ; c1 e8 08 … … 8148 8158 push 00645h ; 68 45 06 8149 8159 push strict byte 00004h ; 6a 04 8150 call 01a6bh ; e8 cabf8160 call 01a6bh ; e8 ac bf 8151 8161 add sp, strict byte 00006h ; 83 c4 06 8152 mov bx, 00db 6h ; bb b60d8162 mov bx, 00db2h ; bb b2 0d 8153 8163 mov cx, ds ; 8c d9 8154 8164 mov ax, strict word 00004h ; b8 04 00 8155 call 01a2ah ; e8 7bbf8165 call 01a2ah ; e8 5d bf 8156 8166 mov ax, word [bp+00eh] ; 8b 46 0e 8157 8167 push ax ; 50 … … 8164 8174 push 0066dh ; 68 6d 06 8165 8175 push strict byte 00004h ; 6a 04 8166 call 01a6bh ; e8 a4bf8176 call 01a6bh ; e8 86 bf 8167 8177 add sp, strict byte 0000ch ; 83 c4 0c 8168 8178 lea sp, [bp-002h] ; 8d 66 fe … … 8170 8180 pop bp ; 5d 8171 8181 retn ; c3 8172 set_geom_lba_: ; 0xf5a d0LB 0xe58182 set_geom_lba_: ; 0xf5aee LB 0xe5 8173 8183 push bx ; 53 8174 8184 push cx ; 51 … … 8185 8195 mov dx, word [bp+00ch] ; 8b 56 0c 8186 8196 mov si, strict word 00020h ; be 20 00 8187 call 0a 0f0h ; e8 f5458197 call 0a110h ; e8 f7 45 8188 8198 test ax, ax ; 85 c0 8189 jne short 05b 0bh ; 75 0c8199 jne short 05b29h ; 75 0c 8190 8200 test bx, bx ; 85 db 8191 jne short 05b 0bh ; 75 088201 jne short 05b29h ; 75 08 8192 8202 test cx, cx ; 85 c9 8193 jne short 05b 0bh ; 75 048203 jne short 05b29h ; 75 04 8194 8204 test dx, dx ; 85 d2 8195 je short 05b 12h ; 74 078205 je short 05b30h ; 74 07 8196 8206 mov bx, strict word 0ffffh ; bb ff ff 8197 8207 mov si, bx ; 89 de 8198 jmp short 05b 18h ; eb 068208 jmp short 05b36h ; eb 06 8199 8209 mov bx, word [bp+00ch] ; 8b 5e 0c 8200 8210 mov si, word [bp+00eh] ; 8b 76 0e 8201 8211 mov word [bp-004h], bx ; 89 5e fc 8202 8212 xor bx, bx ; 31 db 8203 jmp short 05b 24h ; eb 058213 jmp short 05b42h ; eb 05 8204 8214 cmp bx, strict byte 00004h ; 83 fb 04 8205 jnl short 05b 47h ; 7d 238215 jnl short 05b65h ; 7d 23 8206 8216 mov ax, word [bp-006h] ; 8b 46 fa 8207 8217 cmp si, ax ; 39 c6 8208 jc short 05b 35h ; 72 0a8209 jne short 05b 3eh ; 75 118218 jc short 05b53h ; 72 0a 8219 jne short 05b5ch ; 75 11 8210 8220 mov ax, word [bp-004h] ; 8b 46 fc 8211 8221 cmp ax, word [bp-008h] ; 3b 46 f8 8212 jnbe short 05b 3eh ; 77 098222 jnbe short 05b5ch ; 77 09 8213 8223 mov ax, word [bp-002h] ; 8b 46 fe 8214 8224 inc ax ; 40 … … 8218 8228 rcr word [bp-008h], 1 ; d1 5e f8 8219 8229 inc bx ; 43 8220 jmp short 05b 1fh ; eb d88230 jmp short 05b3dh ; eb d8 8221 8231 mov ax, word [bp-002h] ; 8b 46 fe 8222 8232 xor dx, dx ; 31 d2 8223 8233 mov bx, strict word 0003fh ; bb 3f 00 8224 8234 xor cx, cx ; 31 c9 8225 call 0a0 70h ; e8 1c458235 call 0a090h ; e8 1e 45 8226 8236 mov bx, ax ; 89 c3 8227 8237 mov cx, dx ; 89 d1 8228 8238 mov ax, word [bp-004h] ; 8b 46 fc 8229 8239 mov dx, si ; 89 f2 8230 call 0a0 b0h ; e8 50458240 call 0a0d0h ; e8 52 45 8231 8241 mov word [es:di+002h], ax ; 26 89 45 02 8232 8242 cmp ax, 00400h ; 3d 00 04 8233 jbe short 05b 6fh ; 76 068243 jbe short 05b8dh ; 76 06 8234 8244 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8235 8245 mov ax, word [bp-002h] ; 8b 46 fe … … 8242 8252 pop bx ; 5b 8243 8253 retn 00008h ; c2 08 00 8244 inc bx ; 438254 popaw ; 61 8245 8255 pop sp ; 5c 8246 imul bx, word [si-06ah], 0965ch ; 69 5c 96 5c 968256 xchg word [si-04ch], bx ; 87 5c b4 8247 8257 pop sp ; 5c 8248 xchg si, ax ; 96 8249 pop sp ; 5c 8250 jnbe short 05bedh ; 77 5e 8251 movsw ; a5 8258 mov AH, strict byte 05ch ; b4 5c 8259 mov AH, strict byte 05ch ; b4 5c 8260 xchg bp, ax ; 95 8261 pop si ; 5e 8262 retn ; c3 8252 8263 pop di ; 5f 8253 movsw ; a58264 retn ; c3 8254 8265 pop di ; 5f 8255 nop ; 908266 scasb ; ae 8256 8267 pop si ; 5e 8257 db 082h, 05fh, 0a5h, 05fh 8258 ; sbb byte [bx-05bh], 05fh ; 82 5f a5 5f 8259 movsw ; a5 8268 mov AL, byte [0c35fh] ; a0 5f c3 8260 8269 pop di ; 5f 8261 db 082h, 05fh, 082h, 05fh 8262 ; sbb byte [bx-07eh], 05fh ; 82 5f 82 5f 8263 movsw ; a5 8270 retn ; c3 8264 8271 pop di ; 5f 8265 mov sw ; a58272 mov AL, byte [0a05fh] ; a0 5f a0 8266 8273 pop di ; 5f 8267 push ES ; 068274 retn ; c3 8268 8275 pop di ; 5f 8269 db 082h, 05fh, 0a5h, 05fh 8270 ; sbb byte [bx-05bh], 05fh ; 82 5f a5 5f 8271 movsw ; a5 8276 retn ; c3 8272 8277 pop di ; 5f 8273 db 082h, 05fh, 036h, 05fh 8274 ; sbb byte [bx+036h], 05fh ; 82 5f 36 5f 8275 movsw ; a5 8278 and AL, strict byte 05fh ; 24 5f 8279 mov AL, byte [0c35fh] ; a0 5f c3 8276 8280 pop di ; 5f 8277 movsw ; a58281 retn ; c3 8278 8282 pop di ; 5f 8279 mov sw ; a58283 mov AL, byte [0545fh] ; a0 5f 54 8280 8284 pop di ; 5f 8281 _int13_harddisk: ; 0xf5bb5 LB 0x44e 8285 retn ; c3 8286 pop di ; 5f 8287 retn ; c3 8288 pop di ; 5f 8289 retn ; c3 8290 pop di ; 5f 8291 _int13_harddisk: ; 0xf5bd3 LB 0x44e 8282 8292 push bp ; 55 8283 8293 mov bp, sp ; 89 e5 … … 8286 8296 mov dx, strict word 0000eh ; ba 0e 00 8287 8297 mov ax, strict word 00040h ; b8 40 00 8288 call 01765h ; e8 9dbb8298 call 01765h ; e8 7f bb 8289 8299 mov si, 00122h ; be 22 01 8290 8300 mov word [bp-004h], ax ; 89 46 fc … … 8292 8302 mov dx, 0008eh ; ba 8e 00 8293 8303 mov ax, strict word 00040h ; b8 40 00 8294 call 01757h ; e8 7ebb8304 call 01757h ; e8 60 bb 8295 8305 mov ax, word [bp+00eh] ; 8b 46 0e 8296 8306 xor ah, ah ; 30 e4 8297 8307 cmp ax, 00080h ; 3d 80 00 8298 jc short 05 be8h ; 72 058308 jc short 05c06h ; 72 05 8299 8309 cmp ax, 00090h ; 3d 90 00 8300 jc short 05c 06h ; 72 1e8310 jc short 05c24h ; 72 1e 8301 8311 mov ax, word [bp+00eh] ; 8b 46 0e 8302 8312 xor ah, ah ; 30 e4 … … 8308 8318 push 0069fh ; 68 9f 06 8309 8319 push strict byte 00004h ; 6a 04 8310 call 01a6bh ; e8 6bbe8320 call 01a6bh ; e8 4d be 8311 8321 add sp, strict byte 0000ah ; 83 c4 0a 8312 jmp near 05f c0h ; e9 ba 038322 jmp near 05fdeh ; e9 ba 03 8313 8323 mov ax, word [bp+00eh] ; 8b 46 0e 8314 8324 xor ah, ah ; 30 e4 … … 8319 8329 mov byte [bp-002h], dl ; 88 56 fe 8320 8330 cmp dl, 010h ; 80 fa 10 8321 jc short 05c 2fh ; 72 108331 jc short 05c4dh ; 72 10 8322 8332 push ax ; 50 8323 8333 mov ax, word [bp+016h] ; 8b 46 16 … … 8326 8336 push 00690h ; 68 90 06 8327 8337 push 006cah ; 68 ca 06 8328 jmp short 05 bfbh ; eb cc8338 jmp short 05c19h ; eb cc 8329 8339 mov bx, word [bp+016h] ; 8b 5e 16 8330 8340 shr bx, 008h ; c1 eb 08 8331 8341 cmp bx, strict byte 00018h ; 83 fb 18 8332 jnbe near 05f a5h ; 0f 87 69 038342 jnbe near 05fc3h ; 0f 87 69 03 8333 8343 add bx, bx ; 01 db 8334 jmp word [cs:bx+05b 83h] ; 2e ff a7 835b8344 jmp word [cs:bx+05ba1h] ; 2e ff a7 a1 5b 8335 8345 cmp byte [bp-002h], 008h ; 80 7e fe 08 8336 jnc near 05c 52h ; 0f 83 07 008346 jnc near 05c70h ; 0f 83 07 00 8337 8347 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8338 call 01e75h ; e8 23c28348 call 01e75h ; e8 05 c2 8339 8349 mov byte [bp+017h], 000h ; c6 46 17 00 8340 8350 xor bx, bx ; 31 db 8341 8351 mov dx, strict word 00074h ; ba 74 00 8342 8352 mov ax, strict word 00040h ; b8 40 00 8343 call 01757h ; e8 f6ba8353 call 01757h ; e8 d8 ba 8344 8354 and byte [bp+01ch], 0feh ; 80 66 1c fe 8345 8355 mov sp, bp ; 89 ec … … 8348 8358 mov dx, strict word 00074h ; ba 74 00 8349 8359 mov ax, strict word 00040h ; b8 40 00 8350 call 01749h ; e8 d7ba8360 call 01749h ; e8 b9 ba 8351 8361 mov cl, al ; 88 c1 8352 8362 mov dx, word [bp+016h] ; 8b 56 16 … … 8359 8369 mov dx, strict word 00074h ; ba 74 00 8360 8370 mov ax, strict word 00040h ; b8 40 00 8361 call 01757h ; e8 c8ba8371 call 01757h ; e8 aa ba 8362 8372 test cl, cl ; 84 c9 8363 je short 05c 56h ; 74 c38364 jmp near 05f dch ; e9 46 038373 je short 05c74h ; 74 c3 8374 jmp near 05ffah ; e9 46 03 8365 8375 mov ax, word [bp+016h] ; 8b 46 16 8366 8376 xor ah, ah ; 30 e4 … … 8382 8392 mov ax, word [bp-00ch] ; 8b 46 f4 8383 8393 cmp ax, 00080h ; 3d 80 00 8384 jnbe short 05c d1h ; 77 048394 jnbe short 05cefh ; 77 04 8385 8395 test ax, ax ; 85 c0 8386 jne short 05 cf4h ; 75 238387 mov bx, 00db 6h ; bb b60d8396 jne short 05d12h ; 75 23 8397 mov bx, 00db2h ; bb b2 0d 8388 8398 mov cx, ds ; 8c d9 8389 8399 mov ax, strict word 00004h ; b8 04 00 8390 call 01a2ah ; e8 4ebd8400 call 01a2ah ; e8 30 bd 8391 8401 mov ax, word [bp+016h] ; 8b 46 16 8392 8402 shr ax, 008h ; c1 e8 08 … … 8395 8405 push 006fch ; 68 fc 06 8396 8406 push strict byte 00004h ; 6a 04 8397 call 01a6bh ; e8 7dbd8407 call 01a6bh ; e8 5f bd 8398 8408 add sp, strict byte 00008h ; 83 c4 08 8399 jmp near 05f c0h ; e9 cc 028409 jmp near 05fdeh ; e9 cc 02 8400 8410 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8401 8411 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8408 8418 mov word [bp-00ah], dx ; 89 56 f6 8409 8419 cmp di, ax ; 39 c7 8410 jnc short 05d 21h ; 73 0c8420 jnc short 05d3fh ; 73 0c 8411 8421 cmp cx, word [bp-008h] ; 3b 4e f8 8412 jbe short 05d 21h ; 76 078422 jbe short 05d3fh ; 76 07 8413 8423 mov ax, word [bp-006h] ; 8b 46 fa 8414 8424 cmp ax, dx ; 39 d0 8415 jbe short 05d 4fh ; 76 2e8416 mov bx, 00db 6h ; bb b60d8425 jbe short 05d6dh ; 76 2e 8426 mov bx, 00db2h ; bb b2 0d 8417 8427 mov cx, ds ; 8c d9 8418 8428 mov ax, strict word 00004h ; b8 04 00 8419 call 01a2ah ; e8 febc8429 call 01a2ah ; e8 e0 bc 8420 8430 push dword [bp-008h] ; 66 ff 76 f8 8421 8431 push di ; 57 … … 8429 8439 push 00724h ; 68 24 07 8430 8440 push strict byte 00004h ; 6a 04 8431 call 01a6bh ; e8 22bd8441 call 01a6bh ; e8 04 bd 8432 8442 add sp, strict byte 00010h ; 83 c4 10 8433 jmp near 05f c0h ; e9 71 028443 jmp near 05fdeh ; e9 71 02 8434 8444 mov ax, word [bp+016h] ; 8b 46 16 8435 8445 shr ax, 008h ; c1 e8 08 8436 8446 cmp ax, strict word 00004h ; 3d 04 00 8437 jne short 05d 5dh ; 75 038438 jmp near 05c 52h ; e9 f5 fe8447 jne short 05d7bh ; 75 03 8448 jmp near 05c70h ; e9 f5 fe 8439 8449 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8440 8450 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 8442 8452 add bx, si ; 01 f3 8443 8453 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8444 jne short 05d 7eh ; 75 0f8454 jne short 05d9ch ; 75 0f 8445 8455 mov ax, word [es:bx+034h] ; 26 8b 47 34 8446 8456 cmp ax, word [bp-00ah] ; 3b 46 f6 8447 jne short 05d 7eh ; 75 068457 jne short 05d9ch ; 75 06 8448 8458 cmp byte [bp-002h], 008h ; 80 7e fe 08 8449 jc short 05d aeh ; 72 308459 jc short 05dcch ; 72 30 8450 8460 mov ax, di ; 89 f8 8451 8461 xor dx, dx ; 31 d2 8452 8462 mov bx, cx ; 89 cb 8453 8463 xor cx, cx ; 31 c9 8454 call 0a0 70h ; e8 e7428464 call 0a090h ; e8 e9 42 8455 8465 xor bx, bx ; 31 db 8456 8466 add ax, word [bp-008h] ; 03 46 f8 … … 8458 8468 mov bx, word [bp-00ah] ; 8b 5e f6 8459 8469 xor cx, cx ; 31 c9 8460 call 0a0 70h ; e8 d8428470 call 0a090h ; e8 da 42 8461 8471 xor bx, bx ; 31 db 8462 8472 add ax, word [bp-006h] ; 03 46 fa … … 8513 8523 mov word [bp+016h], bx ; 89 5e 16 8514 8524 test dl, dl ; 84 d2 8515 je near 05c 52h ; 0f 84 0a fe8516 mov bx, 00db 6h ; bb b60d8525 je near 05c70h ; 0f 84 0a fe 8526 mov bx, 00db2h ; bb b2 0d 8517 8527 mov cx, ds ; 8c d9 8518 8528 mov ax, strict word 00004h ; b8 04 00 8519 call 01a2ah ; e8 d7bb8529 call 01a2ah ; e8 b9 bb 8520 8530 movzx ax, dl ; 0f b6 c2 8521 8531 push ax ; 50 … … 8526 8536 push 0076bh ; 68 6b 07 8527 8537 push strict byte 00004h ; 6a 04 8528 call 01a6bh ; e8 02 bc8538 call 01a6bh ; e8 e4 bb 8529 8539 add sp, strict byte 0000ah ; 83 c4 0a 8530 8540 mov ax, word [bp+016h] ; 8b 46 16 8531 8541 xor ah, ah ; 30 e4 8532 8542 or ah, 00ch ; 80 cc 0c 8533 jmp near 05f c8h ; e9 51 018534 mov bx, 00db 6h ; bb b60d8543 jmp near 05fe6h ; e9 51 01 8544 mov bx, 00db2h ; bb b2 0d 8535 8545 mov cx, ds ; 8c d9 8536 8546 mov ax, strict word 00004h ; b8 04 00 8537 call 01a2ah ; e8 a8bb8547 call 01a2ah ; e8 8a bb 8538 8548 push 0078ch ; 68 8c 07 8539 8549 push strict byte 00004h ; 6a 04 8540 call 01a6bh ; e8 e1bb8550 call 01a6bh ; e8 c3 bb 8541 8551 add sp, strict byte 00004h ; 83 c4 04 8542 jmp near 05c 52h ; e9 c2 fd8552 jmp near 05c70h ; e9 c2 fd 8543 8553 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8544 8554 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8583 8593 or dx, ax ; 09 c2 8584 8594 mov word [bp+012h], dx ; 89 56 12 8585 jmp near 05c 52h ; e9 4c fd8595 jmp near 05c70h ; e9 4c fd 8586 8596 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8587 8597 cwd ; 99 … … 8599 8609 and AL, strict byte 0c0h ; 24 c0 8600 8610 cmp AL, strict byte 040h ; 3c 40 8601 jne short 05f 2bh ; 75 038602 jmp near 05c 52h ; e9 27 fd8611 jne short 05f49h ; 75 03 8612 jmp near 05c70h ; e9 27 fd 8603 8613 mov ax, word [bp+016h] ; 8b 46 16 8604 8614 xor ah, ah ; 30 e4 8605 8615 or ah, 0aah ; 80 cc aa 8606 jmp near 05f c8h ; e9 92 008616 jmp near 05fe6h ; e9 92 00 8607 8617 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8608 8618 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8618 8628 mov bx, word [bp-008h] ; 8b 5e f8 8619 8629 xor cx, cx ; 31 c9 8620 call 0a0 70h ; e8 10418630 call 0a090h ; e8 12 41 8621 8631 mov bx, word [bp-006h] ; 8b 5e fa 8622 8632 xor cx, cx ; 31 c9 8623 call 0a0 70h ; e8 08418633 call 0a090h ; e8 0a 41 8624 8634 mov word [bp-010h], ax ; 89 46 f0 8625 8635 mov word [bp-00eh], dx ; 89 56 f2 … … 8630 8640 or ah, 003h ; 80 cc 03 8631 8641 mov word [bp+016h], ax ; 89 46 16 8632 jmp near 05c 56h ; e9 d4 fc8633 mov bx, 00db 6h ; bb b60d8642 jmp near 05c74h ; e9 d4 fc 8643 mov bx, 00db2h ; bb b2 0d 8634 8644 mov cx, ds ; 8c d9 8635 8645 mov ax, strict word 00004h ; b8 04 00 8636 call 01a2ah ; e8 9dba8646 call 01a2ah ; e8 7f ba 8637 8647 mov ax, word [bp+016h] ; 8b 46 16 8638 8648 shr ax, 008h ; c1 e8 08 … … 8641 8651 push 007a6h ; 68 a6 07 8642 8652 push strict byte 00004h ; 6a 04 8643 call 01a6bh ; e8 ccba8653 call 01a6bh ; e8 ae ba 8644 8654 add sp, strict byte 00008h ; 83 c4 08 8645 jmp near 05c 52h ; e9 ad fc8646 mov bx, 00db 6h ; bb b60d8655 jmp near 05c70h ; e9 ad fc 8656 mov bx, 00db2h ; bb b2 0d 8647 8657 mov cx, ds ; 8c d9 8648 8658 mov ax, strict word 00004h ; b8 04 00 8649 call 01a2ah ; e8 7aba8659 call 01a2ah ; e8 5c ba 8650 8660 mov ax, word [bp+016h] ; 8b 46 16 8651 8661 shr ax, 008h ; c1 e8 08 … … 8653 8663 push 00690h ; 68 90 06 8654 8664 push 007d9h ; 68 d9 07 8655 jmp near 05 ce9h ; e9 29 fd8665 jmp near 05d07h ; e9 29 fd 8656 8666 mov ax, word [bp+016h] ; 8b 46 16 8657 8667 xor ah, ah ; 30 e4 … … 8663 8673 mov dx, strict word 00074h ; ba 74 00 8664 8674 mov ax, strict word 00040h ; b8 40 00 8665 call 01757h ; e8 7bb78675 call 01757h ; e8 5d b7 8666 8676 or byte [bp+01ch], 001h ; 80 4e 1c 01 8667 jmp near 05c 65h ; e9 82 fc8668 mov ax, word [0b960h] ; a1 60 b98677 jmp near 05c83h ; e9 82 fc 8678 mov di, 0d760h ; bf 60 d7 8669 8679 pushaw ; 60 8670 mov cx, 0b960h ; b9 60 b98680 xlatb ; d7 8671 8681 pushaw ; 60 8672 lea sp, [si+00eh] ; 8d 64 0e 8673 bound di, [bx+di+01460h] ; 62 b9 60 14 8674 bound cx, [di-0239ch] ; 62 8d 64 dc 8675 fsub qword [fs:si-024h] ; 64 dc 64 dc 8676 fsub qword [fs:si-05ch] ; 64 dc 64 a4 8677 fsub qword [fs:si-024h] ; 64 dc 64 dc 8682 xlatb ; d7 8683 pushaw ; 60 8684 stosw ; ab 8685 db 064h, 02ch, 062h 8686 ; fs sub AL, strict byte 062h ; 64 2c 62 8687 xlatb ; d7 8688 pushaw ; 60 8689 xor ah, byte [bp+si-055h] ; 32 62 ab 8690 db 064h, 0fah 8691 ; fs cli ; 64 fa 8692 db 064h, 0fah 8693 ; fs cli ; 64 fa 8694 db 064h, 0fah 8695 ; fs cli ; 64 fa 8696 db 064h, 0fah 8697 ; fs cli ; 64 fa 8698 db 064h, 0c2h, 064h, 0fah 8699 ; fs retn 0fa64h ; 64 c2 64 fa 8700 db 064h, 0fah 8701 ; fs cli ; 64 fa 8678 8702 db 064h 8679 _int13_harddisk_ext: ; 0xf60 03LB 0x4f48703 _int13_harddisk_ext: ; 0xf6021 LB 0x4f4 8680 8704 push bp ; 55 8681 8705 mov bp, sp ; 89 e5 … … 8683 8707 mov dx, strict word 0000eh ; ba 0e 00 8684 8708 mov ax, strict word 00040h ; b8 40 00 8685 call 01765h ; e8 53b78709 call 01765h ; e8 35 b7 8686 8710 mov word [bp-014h], ax ; 89 46 ec 8687 8711 mov dx, strict word 0000eh ; ba 0e 00 8688 8712 mov ax, strict word 00040h ; b8 40 00 8689 call 01765h ; e8 47b78713 call 01765h ; e8 29 b7 8690 8714 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8691 8715 mov word [bp-006h], ax ; 89 46 fa … … 8693 8717 mov dx, 0008eh ; ba 8e 00 8694 8718 mov ax, strict word 00040h ; b8 40 00 8695 call 01757h ; e8 26b78719 call 01757h ; e8 08 b7 8696 8720 mov ax, word [bp+00eh] ; 8b 46 0e 8697 8721 xor ah, ah ; 30 e4 8698 8722 cmp ax, 00080h ; 3d 80 00 8699 jc short 060 40h ; 72 058723 jc short 0605eh ; 72 05 8700 8724 cmp ax, 00090h ; 3d 90 00 8701 jc short 060 5eh ; 72 1e8725 jc short 0607ch ; 72 1e 8702 8726 mov ax, word [bp+00eh] ; 8b 46 0e 8703 8727 xor ah, ah ; 30 e4 … … 8709 8733 push 0069fh ; 68 9f 06 8710 8734 push strict byte 00004h ; 6a 04 8711 call 01a6bh ; e8 13 ba8735 call 01a6bh ; e8 f5 b9 8712 8736 add sp, strict byte 0000ah ; 83 c4 0a 8713 jmp near 064 bah ; e9 5c 048737 jmp near 064d8h ; e9 5c 04 8714 8738 mov ax, word [bp+00eh] ; 8b 46 0e 8715 8739 xor ah, ah ; 30 e4 … … 8719 8743 mov byte [bp-004h], dl ; 88 56 fc 8720 8744 cmp dl, 010h ; 80 fa 10 8721 jc short 060 85h ; 72 108745 jc short 060a3h ; 72 10 8722 8746 push ax ; 50 8723 8747 mov ax, word [bp+016h] ; 8b 46 16 … … 8726 8750 push 00807h ; 68 07 08 8727 8751 push 006cah ; 68 ca 06 8728 jmp short 060 53h ; eb ce8752 jmp short 06071h ; eb ce 8729 8753 mov bx, word [bp+016h] ; 8b 5e 16 8730 8754 shr bx, 008h ; c1 eb 08 8731 8755 sub bx, strict byte 00041h ; 83 eb 41 8732 8756 cmp bx, strict byte 0000fh ; 83 fb 0f 8733 jnbe near 064 dch ; 0f 87 47 048757 jnbe near 064fah ; 0f 87 47 04 8734 8758 add bx, bx ; 01 db 8735 8759 mov ax, word [bp+016h] ; 8b 46 16 8736 8760 xor ah, ah ; 30 e4 8737 jmp word [cs:bx+0 5fe3h] ; 2e ff a7 e3 5f8761 jmp word [cs:bx+06001h] ; 2e ff a7 01 60 8738 8762 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8739 8763 mov ax, word [bp+016h] ; 8b 46 16 … … 8742 8766 mov word [bp+016h], ax ; 89 46 16 8743 8767 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8744 jmp near 064 91h ; e9 d8 038768 jmp near 064afh ; e9 d8 03 8745 8769 mov di, word [bp+00ah] ; 8b 7e 0a 8746 8770 mov es, [bp+004h] ; 8e 46 04 … … 8758 8782 xor bx, bx ; 31 db 8759 8783 mov si, strict word 00020h ; be 20 00 8760 call 0a1 00h ; e8 14408784 call 0a120h ; e8 16 40 8761 8785 mov word [bp-00eh], bx ; 89 5e f2 8762 8786 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8770 8794 mov bl, byte [es:di+022h] ; 26 8a 5d 22 8771 8795 cmp ax, word [es:di+03ch] ; 26 3b 45 3c 8772 jnbe short 061 33h ; 77 228773 jne short 061 56h ; 75 438796 jnbe short 06151h ; 77 22 8797 jne short 06174h ; 75 43 8774 8798 mov si, word [bp-00eh] ; 8b 76 f2 8775 8799 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8776 jnbe short 061 33h ; 77 178800 jnbe short 06151h ; 77 17 8777 8801 mov si, word [bp-00eh] ; 8b 76 f2 8778 8802 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8779 jne short 061 56h ; 75 318803 jne short 06174h ; 75 31 8780 8804 cmp cx, word [es:di+038h] ; 26 3b 4d 38 8781 jnbe short 061 33h ; 77 088782 jne short 061 56h ; 75 298805 jnbe short 06151h ; 77 08 8806 jne short 06174h ; 75 29 8783 8807 cmp dx, word [es:di+036h] ; 26 3b 55 36 8784 jc short 061 56h ; 72 238785 mov bx, 00db 6h ; bb b60d8808 jc short 06174h ; 72 23 8809 mov bx, 00db2h ; bb b2 0d 8786 8810 mov cx, ds ; 8c d9 8787 8811 mov ax, strict word 00004h ; b8 04 00 8788 call 01a2ah ; e8 ecb88812 call 01a2ah ; e8 ce b8 8789 8813 mov ax, word [bp+016h] ; 8b 46 16 8790 8814 shr ax, 008h ; c1 e8 08 … … 8793 8817 push 0081ah ; 68 1a 08 8794 8818 push strict byte 00004h ; 6a 04 8795 call 01a6bh ; e8 1b b98819 call 01a6bh ; e8 fd b8 8796 8820 add sp, strict byte 00008h ; 83 c4 08 8797 jmp near 064 bah ; e9 64 038821 jmp near 064d8h ; e9 64 03 8798 8822 mov di, word [bp+016h] ; 8b 7e 16 8799 8823 shr di, 008h ; c1 ef 08 8800 8824 cmp di, strict byte 00044h ; 83 ff 44 8801 je near 064 8dh ; 0f 84 2a 038825 je near 064abh ; 0f 84 2a 03 8802 8826 cmp di, strict byte 00047h ; 83 ff 47 8803 je near 064 8dh ; 0f 84 23 038827 je near 064abh ; 0f 84 23 03 8804 8828 les si, [bp-008h] ; c4 76 f8 8805 8829 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h … … 8838 8862 mov word [es:bx+002h], ax ; 26 89 47 02 8839 8863 test dl, dl ; 84 d2 8840 je near 064 8dh ; 0f 84 a8 028841 mov bx, 00db 6h ; bb b60d8864 je near 064abh ; 0f 84 a8 02 8865 mov bx, 00db2h ; bb b2 0d 8842 8866 mov cx, ds ; 8c d9 8843 8867 mov ax, strict word 00004h ; b8 04 00 8844 call 01a2ah ; e8 3ab88868 call 01a2ah ; e8 1c b8 8845 8869 movzx ax, dl ; 0f b6 c2 8846 8870 push ax ; 50 … … 8849 8873 push 0076bh ; 68 6b 07 8850 8874 push strict byte 00004h ; 6a 04 8851 call 01a6bh ; e8 6bb88875 call 01a6bh ; e8 4d b8 8852 8876 add sp, strict byte 0000ah ; 83 c4 0a 8853 8877 mov ax, word [bp+016h] ; 8b 46 16 8854 8878 xor ah, ah ; 30 e4 8855 8879 or ah, 00ch ; 80 cc 0c 8856 jmp near 064 c2h ; e9 b4 028880 jmp near 064e0h ; e9 b4 02 8857 8881 or ah, 0b2h ; 80 cc b2 8858 jmp near 064 c2h ; e9 ae 028882 jmp near 064e0h ; e9 ae 02 8859 8883 mov bx, word [bp+00ah] ; 8b 5e 0a 8860 8884 mov ax, word [bp+004h] ; 8b 46 04 … … 8866 8890 mov word [bp-010h], ax ; 89 46 f0 8867 8891 cmp ax, strict word 0001ah ; 3d 1a 00 8868 jc near 064 bah ; 0f 82 89 028869 jc near 062 d0h ; 0f 82 9b 008892 jc near 064d8h ; 0f 82 89 02 8893 jc near 062eeh ; 0f 82 9b 00 8870 8894 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8871 8895 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8909 8933 mov bx, word [bp-00eh] ; 8b 5e f2 8910 8934 mov si, strict word 00020h ; be 20 00 8911 call 0a 0f0h ; e8 2a3e8935 call 0a110h ; e8 2c 3e 8912 8936 mov bx, di ; 89 fb 8913 8937 mov word [es:bx+014h], dx ; 26 89 57 14 8914 8938 mov word [es:bx+016h], cx ; 26 89 4f 16 8915 8939 cmp word [bp-010h], strict byte 0001eh ; 83 7e f0 1e 8916 jc near 063 d5h ; 0f 82 fd 008940 jc near 063f3h ; 0f 82 fd 00 8917 8941 mov es, [bp-00ah] ; 8e 46 f6 8918 8942 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 8940 8964 mov al, byte [es:bx+027h] ; 26 8a 47 27 8941 8965 test al, al ; 84 c0 8942 jne short 063 2fh ; 75 048966 jne short 0634dh ; 75 04 8943 8967 xor bx, bx ; 31 db 8944 jmp short 063 32h ; eb 038968 jmp short 06350h ; eb 03 8945 8969 mov bx, strict word 00008h ; bb 08 00 8946 8970 or bl, 010h ; 80 cb 10 … … 8956 8980 or bx, cx ; 09 cb 8957 8981 cmp AL, strict byte 003h ; 3c 03 8958 jne short 063 53h ; 75 058982 jne short 06371h ; 75 05 8959 8983 mov ax, strict word 00003h ; b8 03 00 8960 jmp short 063 55h ; eb 028984 jmp short 06373h ; eb 02 8961 8985 xor ax, ax ; 31 c0 8962 8986 or bx, ax ; 09 c3 … … 8984 9008 xor bl, bl ; 30 db 8985 9009 xor bh, bh ; 30 ff 8986 jmp short 063 b8h ; eb 059010 jmp short 063d6h ; eb 05 8987 9011 cmp bh, 00fh ; 80 ff 0f 8988 jnc short 063 cbh ; 73 139012 jnc short 063e9h ; 73 13 8989 9013 movzx dx, bh ; 0f b6 d7 8990 9014 add dx, 00356h ; 81 c2 56 03 8991 9015 mov ax, word [bp-014h] ; 8b 46 ec 8992 call 01749h ; e8 84b39016 call 01749h ; e8 66 b3 8993 9017 add bl, al ; 00 c3 8994 9018 db 0feh, 0c7h 8995 9019 ; inc bh ; fe c7 8996 jmp short 063 b3h ; eb e89020 jmp short 063d1h ; eb e8 8997 9021 neg bl ; f6 db 8998 9022 les si, [bp-008h] ; c4 76 f8 8999 9023 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9000 9024 cmp word [bp-010h], strict byte 00042h ; 83 7e f0 42 9001 jc near 064 8dh ; 0f 82 b0 009025 jc near 064abh ; 0f 82 b0 00 9002 9026 movzx ax, byte [bp-004h] ; 0f b6 46 fc 9003 9027 cwd ; 99 … … 9017 9041 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9018 9042 test al, al ; 84 c0 9019 jne short 064 1eh ; 75 099043 jne short 0643ch ; 75 09 9020 9044 db 066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h 9021 9045 ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20 … … 9026 9050 ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20 9027 9051 test al, al ; 84 c0 9028 jne short 064 4ah ; 75 139052 jne short 06468h ; 75 13 9029 9053 mov word [es:di+030h], dx ; 26 89 55 30 9030 9054 db 066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h … … 9041 9065 xor bl, bl ; 30 db 9042 9066 mov BH, strict byte 01eh ; b7 1e 9043 jmp short 064 72h ; eb 059067 jmp short 06490h ; eb 05 9044 9068 cmp bh, 040h ; 80 ff 40 9045 jnc short 064 84h ; 73 129069 jnc short 064a2h ; 73 12 9046 9070 movzx dx, bh ; 0f b6 d7 9047 9071 add dx, word [bp+00ah] ; 03 56 0a 9048 9072 mov ax, word [bp+004h] ; 8b 46 04 9049 call 01749h ; e8 cbb29073 call 01749h ; e8 ad b2 9050 9074 add bl, al ; 00 c3 9051 9075 db 0feh, 0c7h 9052 9076 ; inc bh ; fe c7 9053 jmp short 064 6dh ; eb e99077 jmp short 0648bh ; eb e9 9054 9078 neg bl ; f6 db 9055 9079 mov es, [bp-00ah] ; 8e 46 f6 … … 9059 9083 mov dx, strict word 00074h ; ba 74 00 9060 9084 mov ax, strict word 00040h ; b8 40 00 9061 call 01757h ; e8 bbb29085 call 01757h ; e8 9d b2 9062 9086 and byte [bp+01ch], 0feh ; 80 66 1c fe 9063 9087 mov sp, bp ; 89 ec … … 9065 9089 retn ; c3 9066 9090 cmp ax, strict word 00006h ; 3d 06 00 9067 je short 064 8dh ; 74 e49091 je short 064abh ; 74 e4 9068 9092 cmp ax, strict word 00001h ; 3d 01 00 9069 jc short 064 bah ; 72 0c9070 jbe short 064 8dh ; 76 dd9093 jc short 064d8h ; 72 0c 9094 jbe short 064abh ; 76 dd 9071 9095 cmp ax, strict word 00003h ; 3d 03 00 9072 jc short 064 bah ; 72 059096 jc short 064d8h ; 72 05 9073 9097 cmp ax, strict word 00004h ; 3d 04 00 9074 jbe short 064 8dh ; 76 d39098 jbe short 064abh ; 76 d3 9075 9099 mov ax, word [bp+016h] ; 8b 46 16 9076 9100 xor ah, ah ; 30 e4 … … 9082 9106 mov dx, strict word 00074h ; ba 74 00 9083 9107 mov ax, strict word 00040h ; b8 40 00 9084 call 01757h ; e8 81b29108 call 01757h ; e8 63 b2 9085 9109 or byte [bp+01ch], 001h ; 80 4e 1c 01 9086 jmp short 064 a0h ; eb c49087 mov bx, 00db 6h ; bb b60d9110 jmp short 064beh ; eb c4 9111 mov bx, 00db2h ; bb b2 0d 9088 9112 mov cx, ds ; 8c d9 9089 9113 mov ax, strict word 00004h ; b8 04 00 9090 call 01a2ah ; e8 43b59114 call 01a2ah ; e8 25 b5 9091 9115 mov ax, word [bp+016h] ; 8b 46 16 9092 9116 shr ax, 008h ; c1 e8 08 … … 9094 9118 push 00807h ; 68 07 08 9095 9119 push 007d9h ; 68 d9 07 9096 jmp near 061 4bh ; e9 54 fc9097 _int14_function: ; 0xf6 4f7LB 0x15a9120 jmp near 06169h ; e9 54 fc 9121 _int14_function: ; 0xf6515 LB 0x15a 9098 9122 push bp ; 55 9099 9123 mov bp, sp ; 89 e5 … … 9103 9127 add dx, dx ; 01 d2 9104 9128 mov ax, strict word 00040h ; b8 40 00 9105 call 01765h ; e8 5eb29129 call 01765h ; e8 40 b2 9106 9130 mov si, ax ; 89 c6 9107 9131 mov bx, ax ; 89 c3 … … 9109 9133 add dx, strict byte 0007ch ; 83 c2 7c 9110 9134 mov ax, strict word 00040h ; b8 40 00 9111 call 01749h ; e8 32b29135 call 01749h ; e8 14 b2 9112 9136 mov cl, al ; 88 c1 9113 9137 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9114 jnc near 066 47h ; 0f 83 26 019138 jnc near 06665h ; 0f 83 26 01 9115 9139 test si, si ; 85 f6 9116 jbe near 066 47h ; 0f 86 20 019140 jbe near 06665h ; 0f 86 20 01 9117 9141 mov al, byte [bp+013h] ; 8a 46 13 9118 9142 cmp AL, strict byte 001h ; 3c 01 9119 jc short 065 3fh ; 72 119120 jbe short 065 98h ; 76 689143 jc short 0655dh ; 72 11 9144 jbe short 065b6h ; 76 68 9121 9145 cmp AL, strict byte 003h ; 3c 03 9122 je near 066 30h ; 0f 84 fa 009146 je near 0664eh ; 0f 84 fa 00 9123 9147 cmp AL, strict byte 002h ; 3c 02 9124 je near 06 5e6h ; 0f 84 aa 009125 jmp near 066 41h ; e9 02 019148 je near 06604h ; 0f 84 aa 00 9149 jmp near 0665fh ; e9 02 01 9126 9150 test al, al ; 84 c0 9127 jne near 066 41h ; 0f 85 fc 009151 jne near 0665fh ; 0f 85 fc 00 9128 9152 lea dx, [bx+003h] ; 8d 57 03 9129 9153 in AL, DX ; ec … … 9135 9159 mov al, byte [bp+012h] ; 8a 46 12 9136 9160 test AL, strict byte 0e0h ; a8 e0 9137 jne short 065 64h ; 75 0c9161 jne short 06582h ; 75 0c 9138 9162 mov AL, strict byte 017h ; b0 17 9139 9163 mov dx, bx ; 89 da … … 9142 9166 mov dx, si ; 89 f2 9143 9167 out DX, AL ; ee 9144 jmp short 065 7ah ; eb 169168 jmp short 06598h ; eb 16 9145 9169 and AL, strict byte 0e0h ; 24 e0 9146 9170 movzx cx, al ; 0f b6 c8 … … 9167 9191 ; sub ah, ah ; 2a e4 9168 9192 mov byte [bp+012h], al ; 88 46 12 9169 jmp near 066 22h ; e9 8a 009193 jmp near 06640h ; e9 8a 00 9170 9194 mov dx, strict word 0006ch ; ba 6c 00 9171 9195 mov ax, strict word 00040h ; b8 40 00 9172 call 01765h ; e8 c4b19196 call 01765h ; e8 a6 b1 9173 9197 mov si, ax ; 89 c6 9174 9198 lea dx, [bx+005h] ; 8d 57 05 … … 9178 9202 and ax, strict word 00060h ; 25 60 00 9179 9203 cmp ax, strict word 00060h ; 3d 60 00 9180 je short 065 c8h ; 74 179204 je short 065e6h ; 74 17 9181 9205 test cl, cl ; 84 c9 9182 je short 065 c8h ; 74 139206 je short 065e6h ; 74 13 9183 9207 mov dx, strict word 0006ch ; ba 6c 00 9184 9208 mov ax, strict word 00040h ; b8 40 00 9185 call 01765h ; e8 a7b19209 call 01765h ; e8 89 b1 9186 9210 cmp ax, si ; 39 f0 9187 je short 065 a3h ; 74 e19211 je short 065c1h ; 74 e1 9188 9212 mov si, ax ; 89 c6 9189 9213 db 0feh, 0c9h 9190 9214 ; dec cl ; fe c9 9191 jmp short 065 a3h ; eb db9215 jmp short 065c1h ; eb db 9192 9216 test cl, cl ; 84 c9 9193 je short 065 d2h ; 74 069217 je short 065f0h ; 74 06 9194 9218 mov al, byte [bp+012h] ; 8a 46 12 9195 9219 mov dx, bx ; 89 da … … 9201 9225 mov byte [bp+013h], al ; 88 46 13 9202 9226 test cl, cl ; 84 c9 9203 jne short 066 22h ; 75 439227 jne short 06640h ; 75 43 9204 9228 or AL, strict byte 080h ; 0c 80 9205 9229 mov byte [bp+013h], al ; 88 46 13 9206 jmp short 066 22h ; eb 3c9230 jmp short 06640h ; eb 3c 9207 9231 mov dx, strict word 0006ch ; ba 6c 00 9208 9232 mov ax, strict word 00040h ; b8 40 00 9209 call 01765h ; e8 76b19233 call 01765h ; e8 58 b1 9210 9234 mov si, ax ; 89 c6 9211 9235 lea dx, [bx+005h] ; 8d 57 05 … … 9214 9238 ; sub ah, ah ; 2a e4 9215 9239 test AL, strict byte 001h ; a8 01 9216 jne short 066 12h ; 75 179240 jne short 06630h ; 75 17 9217 9241 test cl, cl ; 84 c9 9218 je short 066 12h ; 74 139242 je short 06630h ; 74 13 9219 9243 mov dx, strict word 0006ch ; ba 6c 00 9220 9244 mov ax, strict word 00040h ; b8 40 00 9221 call 01765h ; e8 5db19245 call 01765h ; e8 3f b1 9222 9246 cmp ax, si ; 39 f0 9223 je short 06 5f1h ; 74 e59247 je short 0660fh ; 74 e5 9224 9248 mov si, ax ; 89 c6 9225 9249 db 0feh, 0c9h 9226 9250 ; dec cl ; fe c9 9227 jmp short 06 5f1h ; eb df9251 jmp short 0660fh ; eb df 9228 9252 test cl, cl ; 84 c9 9229 je short 066 28h ; 74 129253 je short 06646h ; 74 12 9230 9254 mov byte [bp+013h], 000h ; c6 46 13 00 9231 9255 mov dx, bx ; 89 da … … 9235 9259 mov byte [bp+012h], al ; 88 46 12 9236 9260 and byte [bp+01ch], 0feh ; 80 66 1c fe 9237 jmp short 066 4bh ; eb 239261 jmp short 06669h ; eb 23 9238 9262 lea dx, [bx+005h] ; 8d 57 05 9239 9263 in AL, DX ; ec 9240 9264 db 02ah, 0e4h 9241 9265 ; sub ah, ah ; 2a e4 9242 jmp short 065 e1h ; eb b19266 jmp short 065ffh ; eb b1 9243 9267 lea dx, [si+005h] ; 8d 54 05 9244 9268 in AL, DX ; ec … … 9250 9274 db 02ah, 0e4h 9251 9275 ; sub ah, ah ; 2a e4 9252 jmp short 066 1fh ; eb de9276 jmp short 0663dh ; eb de 9253 9277 or byte [bp+01ch], 001h ; 80 4e 1c 01 9254 jmp short 066 4bh ; eb 049278 jmp short 06669h ; eb 04 9255 9279 or byte [bp+01ch], 001h ; 80 4e 1c 01 9256 9280 lea sp, [bp-002h] ; 8d 66 fe … … 9258 9282 pop bp ; 5d 9259 9283 retn ; c3 9260 timer_wait_: ; 0xf66 51LB 0x439284 timer_wait_: ; 0xf666f LB 0x43 9261 9285 push bp ; 55 9262 9286 mov bp, sp ; 89 e5 … … 9266 9290 mov bx, strict word 0000fh ; bb 0f 00 9267 9291 xor cx, cx ; 31 c9 9268 call 0a0 b0h ; e8 513a9292 call 0a0d0h ; e8 53 3a 9269 9293 mov cx, ax ; 89 c1 9270 9294 mov bx, dx ; 89 d3 … … 9278 9302 adc bx, strict byte 0ffffh ; 83 d3 ff 9279 9303 cmp bx, strict byte 0ffffh ; 83 fb ff 9280 jne short 066 7eh ; 75 059304 jne short 0669ch ; 75 05 9281 9305 cmp cx, strict byte 0ffffh ; 83 f9 ff 9282 je short 066 8dh ; 74 0f9306 je short 066abh ; 74 0f 9283 9307 mov dx, strict word 00061h ; ba 61 00 9284 9308 in AL, DX ; ec … … 9287 9311 and AL, strict byte 010h ; 24 10 9288 9312 cmp al, byte [bp-006h] ; 3a 46 fa 9289 jne short 066 7eh ; 75 f39290 jmp short 066 6eh ; eb e19313 jne short 0669ch ; 75 f3 9314 jmp short 0668ch ; eb e1 9291 9315 lea sp, [bp-004h] ; 8d 66 fc 9292 9316 pop cx ; 59 … … 9294 9318 pop bp ; 5d 9295 9319 retn ; c3 9296 set_enable_a20_: ; 0xf66 94LB 0x2c9320 set_enable_a20_: ; 0xf66b2 LB 0x2c 9297 9321 push bp ; 55 9298 9322 mov bp, sp ; 89 e5 … … 9307 9331 mov cl, al ; 88 c1 9308 9332 test bx, bx ; 85 db 9309 je short 066 adh ; 74 059333 je short 066cbh ; 74 05 9310 9334 or AL, strict byte 002h ; 0c 02 9311 9335 out DX, AL ; ee 9312 jmp short 066 b0h ; eb 039336 jmp short 066ceh ; eb 03 9313 9337 and AL, strict byte 0fdh ; 24 fd 9314 9338 out DX, AL ; ee … … 9323 9347 pop bp ; 5d 9324 9348 retn ; c3 9325 set_e820_range_: ; 0xf66 c0LB 0x899349 set_e820_range_: ; 0xf66de LB 0x89 9326 9350 push si ; 56 9327 9351 push bp ; 55 … … 9352 9376 retn 0000ah ; c2 0a 00 9353 9377 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9354 db 0 4dh, 06ah, 086h, 067h, 099h, 067h, 02eh, 068h, 034h, 068h, 039h, 068h, 03eh, 068h, 0e0h, 068h9355 db 0 0ah, 069h, 027h, 068h, 027h, 068h, 0d7h, 069h, 0ffh, 069h, 012h, 06ah, 021h, 06ah, 02eh, 068h9356 db 0 28h, 06ah9357 _int15_function: ; 0xf67 49LB 0x3369378 db 06bh, 06ah, 0a4h, 067h, 0b7h, 067h, 04ch, 068h, 052h, 068h, 057h, 068h, 05ch, 068h, 0feh, 068h 9379 db 028h, 069h, 045h, 068h, 045h, 068h, 0f5h, 069h, 01dh, 06ah, 030h, 06ah, 03fh, 06ah, 04ch, 068h 9380 db 046h, 06ah 9381 _int15_function: ; 0xf6767 LB 0x336 9358 9382 push bp ; 55 9359 9383 mov bp, sp ; 89 e5 … … 9363 9387 shr ax, 008h ; c1 e8 08 9364 9388 cmp ax, 000ech ; 3d ec 00 9365 jnbe near 06a 4dh ; 0f 87 f2 029389 jnbe near 06a6bh ; 0f 87 f2 02 9366 9390 push CS ; 0e 9367 9391 pop ES ; 07 9368 9392 mov cx, strict word 00011h ; b9 11 00 9369 mov di, 067 17h ; bf 17679393 mov di, 06735h ; bf 35 67 9370 9394 repne scasb ; f2 ae 9371 9395 sal cx, 1 ; d1 e1 9372 9396 mov di, cx ; 89 cf 9373 mov si, word [cs:di+067 27h] ; 2e 8b b5 27679397 mov si, word [cs:di+06745h] ; 2e 8b b5 45 67 9374 9398 mov ax, word [bp+012h] ; 8b 46 12 9375 9399 xor ah, ah ; 30 e4 … … 9384 9408 xor ah, ah ; 30 e4 9385 9409 cmp ax, 000c0h ; 3d c0 00 9386 jne near 06a 4dh ; 0f 85 bb 029410 jne near 06a6bh ; 0f 85 bb 02 9387 9411 or byte [bp+018h], 001h ; 80 4e 18 01 9388 jmp near 06 9f6h ; e9 5d 029412 jmp near 06a14h ; e9 5d 02 9389 9413 mov dx, ax ; 89 c2 9390 9414 cmp ax, strict word 00001h ; 3d 01 00 9391 jc short 067 aeh ; 72 0e9392 jbe short 067 c2h ; 76 209415 jc short 067cch ; 72 0e 9416 jbe short 067e0h ; 76 20 9393 9417 cmp ax, strict word 00003h ; 3d 03 00 9394 je short 06 7efh ; 74 489418 je short 0680dh ; 74 48 9395 9419 cmp ax, strict word 00002h ; 3d 02 00 9396 je short 067 d2h ; 74 269397 jmp short 06 7fch ; eb 4e9420 je short 067f0h ; 74 26 9421 jmp short 0681ah ; eb 4e 9398 9422 test ax, ax ; 85 c0 9399 jne short 06 7fch ; 75 4a9423 jne short 0681ah ; 75 4a 9400 9424 xor ax, ax ; 31 c0 9401 call 066 94h ; e8 dd fe9425 call 066b2h ; e8 dd fe 9402 9426 and byte [bp+018h], 0feh ; 80 66 18 fe 9403 9427 mov byte [bp+013h], 000h ; c6 46 13 00 9404 jmp near 068 27h ; e9 65 009428 jmp near 06845h ; e9 65 00 9405 9429 mov ax, strict word 00001h ; b8 01 00 9406 call 066 94h ; e8 cc fe9430 call 066b2h ; e8 cc fe 9407 9431 and byte [bp+018h], 0feh ; 80 66 18 fe 9408 9432 mov byte [bp+013h], dh ; 88 76 13 9409 jmp near 068 27h ; e9 55 009433 jmp near 06845h ; e9 55 00 9410 9434 mov dx, 00092h ; ba 92 00 9411 9435 in AL, DX ; ec … … 9419 9443 and byte [bp+018h], 0feh ; 80 66 18 fe 9420 9444 mov byte [bp+013h], ah ; 88 66 13 9421 jmp near 068 27h ; e9 38 009445 jmp near 06845h ; e9 38 00 9422 9446 and byte [bp+018h], 0feh ; 80 66 18 fe 9423 9447 mov byte [bp+013h], ah ; 88 66 13 9424 9448 mov word [bp+00ch], ax ; 89 46 0c 9425 jmp near 068 27h ; e9 2b 009426 mov bx, 00db 6h ; bb b60d9449 jmp near 06845h ; e9 2b 00 9450 mov bx, 00db2h ; bb b2 0d 9427 9451 mov cx, ds ; 8c d9 9428 9452 mov ax, strict word 00004h ; b8 04 00 9429 call 01a2ah ; e8 23b29453 call 01a2ah ; e8 05 b2 9430 9454 mov ax, word [bp+012h] ; 8b 46 12 9431 9455 xor ah, ah ; 30 e4 … … 9433 9457 push 00840h ; 68 40 08 9434 9458 push strict byte 00004h ; 6a 04 9435 call 01a6bh ; e8 56b29459 call 01a6bh ; e8 38 b2 9436 9460 add sp, strict byte 00006h ; 83 c4 06 9437 9461 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9446 9470 retn ; c3 9447 9471 mov word [bp+018h], bx ; 89 5e 18 9448 jmp near 068 dah ; e9 a6 009472 jmp near 068f8h ; e9 a6 00 9449 9473 mov word [bp+018h], bx ; 89 5e 18 9450 jmp short 068 27h ; eb ee9474 jmp short 06845h ; eb ee 9451 9475 mov word [bp+018h], cx ; 89 4e 18 9452 jmp short 068 24h ; eb e69476 jmp short 06842h ; eb e6 9453 9477 test byte [bp+012h], 0ffh ; f6 46 12 ff 9454 jne short 068 b0h ; 75 6c9478 jne short 068ceh ; 75 6c 9455 9479 mov dx, 000a0h ; ba a0 00 9456 9480 mov ax, strict word 00040h ; b8 40 00 9457 call 01749h ; e8 fcae9481 call 01749h ; e8 de ae 9458 9482 test AL, strict byte 001h ; a8 01 9459 jne near 06 9edh ; 0f 85 9a 019483 jne near 06a0bh ; 0f 85 9a 01 9460 9484 mov bx, strict word 00001h ; bb 01 00 9461 9485 mov dx, 000a0h ; ba a0 00 9462 9486 mov ax, strict word 00040h ; b8 40 00 9463 call 01757h ; e8 f8ae9487 call 01757h ; e8 da ae 9464 9488 mov bx, word [bp+014h] ; 8b 5e 14 9465 9489 mov dx, 00098h ; ba 98 00 9466 9490 mov ax, strict word 00040h ; b8 40 00 9467 call 01773h ; e8 08 af9491 call 01773h ; e8 ea ae 9468 9492 mov bx, word [bp+00ch] ; 8b 5e 0c 9469 9493 mov dx, 0009ah ; ba 9a 00 9470 9494 mov ax, strict word 00040h ; b8 40 00 9471 call 01773h ; e8 fcae9495 call 01773h ; e8 de ae 9472 9496 mov bx, word [bp+00eh] ; 8b 5e 0e 9473 9497 mov dx, 0009ch ; ba 9c 00 9474 9498 mov ax, strict word 00040h ; b8 40 00 9475 call 01773h ; e8 f0ae9499 call 01773h ; e8 d2 ae 9476 9500 mov bx, word [bp+010h] ; 8b 5e 10 9477 9501 mov dx, 0009eh ; ba 9e 00 9478 9502 mov ax, strict word 00040h ; b8 40 00 9479 call 01773h ; e8 e4ae9503 call 01773h ; e8 c6 ae 9480 9504 and byte [bp+018h], 0feh ; 80 66 18 fe 9481 9505 mov dx, 000a1h ; ba a1 00 … … 9486 9510 out DX, AL ; ee 9487 9511 mov ax, strict word 0000bh ; b8 0b 00 9488 call 017a5h ; e8 03 af9512 call 017a5h ; e8 e5 ae 9489 9513 or AL, strict byte 040h ; 0c 40 9490 9514 movzx dx, al ; 0f b6 d0 9491 9515 mov ax, strict word 0000bh ; b8 0b 00 9492 call 017c2h ; e8 15 af9493 jmp near 068 27h ; e9 77 ff9516 call 017c2h ; e8 f7 ae 9517 jmp near 06845h ; e9 77 ff 9494 9518 cmp ax, strict word 00001h ; 3d 01 00 9495 jne short 068 ceh ; 75 199519 jne short 068ech ; 75 19 9496 9520 xor bx, bx ; 31 db 9497 9521 mov dx, 000a0h ; ba a0 00 9498 9522 mov ax, strict word 00040h ; b8 40 00 9499 call 01757h ; e8 97ae9523 call 01757h ; e8 79 ae 9500 9524 and byte [bp+018h], 0feh ; 80 66 18 fe 9501 9525 mov ax, strict word 0000bh ; b8 0b 00 9502 call 017a5h ; e8 dbae9526 call 017a5h ; e8 bd ae 9503 9527 and AL, strict byte 0bfh ; 24 bf 9504 jmp short 068 a4h ; eb d69528 jmp short 068c2h ; eb d6 9505 9529 mov word [bp+018h], bx ; 89 5e 18 9506 9530 mov ax, dx ; 89 d0 … … 9510 9534 or dx, ax ; 09 c2 9511 9535 mov word [bp+012h], dx ; 89 56 12 9512 jmp near 068 27h ; e9 47 ff9536 jmp near 06845h ; e9 47 ff 9513 9537 mov ax, strict word 00031h ; b8 31 00 9514 call 017a5h ; e8 bfae9538 call 017a5h ; e8 a1 ae 9515 9539 movzx dx, al ; 0f b6 d0 9516 9540 sal dx, 008h ; c1 e2 08 9517 9541 mov ax, strict word 00030h ; b8 30 00 9518 call 017a5h ; e8 b3ae9542 call 017a5h ; e8 95 ae 9519 9543 xor ah, ah ; 30 e4 9520 9544 or dx, ax ; 09 c2 9521 9545 mov word [bp+012h], dx ; 89 56 12 9522 9546 cmp dx, strict byte 0ffc0h ; 83 fa c0 9523 jbe short 069 03h ; 76 059547 jbe short 06921h ; 76 05 9524 9548 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9525 9549 and byte [bp+018h], 0feh ; 80 66 18 fe 9526 jmp near 068 27h ; e9 1d ff9550 jmp near 06845h ; e9 1d ff 9527 9551 cli ; fa 9528 9552 mov ax, strict word 00001h ; b8 01 00 9529 call 066 94h ; e8 83 fd9553 call 066b2h ; e8 83 fd 9530 9554 mov dx, word [bp+006h] ; 8b 56 06 9531 9555 add dx, strict byte 00038h ; 83 c2 38 9532 9556 mov ax, word [bp+014h] ; 8b 46 14 9533 9557 mov bx, strict word 0ffffh ; bb ff ff 9534 call 01773h ; e8 53ae9558 call 01773h ; e8 35 ae 9535 9559 mov dx, word [bp+006h] ; 8b 56 06 9536 9560 add dx, strict byte 0003ah ; 83 c2 3a 9537 9561 mov ax, word [bp+014h] ; 8b 46 14 9538 9562 xor bx, bx ; 31 db 9539 call 01773h ; e8 45ae9563 call 01773h ; e8 27 ae 9540 9564 mov dx, word [bp+006h] ; 8b 56 06 9541 9565 add dx, strict byte 0003ch ; 83 c2 3c 9542 9566 mov ax, word [bp+014h] ; 8b 46 14 9543 9567 mov bx, strict word 0000fh ; bb 0f 00 9544 call 01757h ; e8 1a ae9568 call 01757h ; e8 fc ad 9545 9569 mov dx, word [bp+006h] ; 8b 56 06 9546 9570 add dx, strict byte 0003dh ; 83 c2 3d 9547 9571 mov ax, word [bp+014h] ; 8b 46 14 9548 9572 mov bx, 0009bh ; bb 9b 00 9549 call 01757h ; e8 0b ae9573 call 01757h ; e8 ed ad 9550 9574 mov dx, word [bp+006h] ; 8b 56 06 9551 9575 add dx, strict byte 0003eh ; 83 c2 3e 9552 9576 mov ax, word [bp+014h] ; 8b 46 14 9553 9577 xor bx, bx ; 31 db 9554 call 01773h ; e8 19 ae9578 call 01773h ; e8 fb ad 9555 9579 mov AL, strict byte 011h ; b0 11 9556 9580 mov dx, strict word 00020h ; ba 20 00 … … 9582 9606 out DX, AL ; ee 9583 9607 mov si, word [bp+006h] ; 8b 76 06 9584 call 069 9bh ; e8 00 009608 call 069b9h ; e8 00 00 9585 9609 pop di ; 5f 9586 9610 add di, strict byte 00018h ; 83 c7 18 … … 9610 9634 push cx ; 51 9611 9635 retf ; cb 9612 jmp near 068 27h ; e9 50 fe9613 mov bx, 00db 6h ; bb b60d9636 jmp near 06845h ; e9 50 fe 9637 mov bx, 00db2h ; bb b2 0d 9614 9638 mov cx, ds ; 8c d9 9615 9639 mov ax, strict word 00004h ; b8 04 00 9616 call 01a2ah ; e8 48b09640 call 01a2ah ; e8 2a b0 9617 9641 push 00880h ; 68 80 08 9618 9642 push strict byte 00004h ; 6a 04 9619 call 01a6bh ; e8 81b09643 call 01a6bh ; e8 63 b0 9620 9644 add sp, strict byte 00004h ; 83 c4 04 9621 9645 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9624 9648 or ah, 086h ; 80 cc 86 9625 9649 mov word [bp+012h], ax ; 89 46 12 9626 jmp near 068 27h ; e9 28 fe9650 jmp near 06845h ; e9 28 fe 9627 9651 mov word [bp+018h], cx ; 89 4e 18 9628 9652 mov word [bp+012h], ax ; 89 46 12 9629 9653 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9630 9654 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9631 jmp near 068 27h ; e9 15 fe9655 jmp near 06845h ; e9 15 fe 9632 9656 mov dx, strict word 0000eh ; ba 0e 00 9633 9657 mov ax, strict word 00040h ; b8 40 00 9634 call 01765h ; e8 4aad9658 call 01765h ; e8 2c ad 9635 9659 mov word [bp+014h], ax ; 89 46 14 9636 jmp near 069 03h ; e9 e2 fe9660 jmp near 06921h ; e9 e2 fe 9637 9661 push 008afh ; 68 af 08 9638 9662 push strict byte 00008h ; 6a 08 9639 jmp short 06 9e7h ; eb bf9663 jmp short 06a05h ; eb bf 9640 9664 test byte [bp+012h], 0ffh ; f6 46 12 ff 9641 jne short 06a 4dh ; 75 1f9665 jne short 06a6bh ; 75 1f 9642 9666 mov word [bp+012h], ax ; 89 46 12 9643 9667 mov ax, word [bp+00ch] ; 8b 46 0c 9644 9668 xor ah, ah ; 30 e4 9645 9669 cmp ax, strict word 00001h ; 3d 01 00 9646 jc short 06a 46h ; 72 0b9670 jc short 06a64h ; 72 0b 9647 9671 cmp ax, strict word 00003h ; 3d 03 00 9648 jnbe short 06a 46h ; 77 069672 jnbe short 06a64h ; 77 06 9649 9673 mov word [bp+018h], cx ; 89 4e 18 9650 jmp near 068 27h ; e9 e1 fd9674 jmp near 06845h ; e9 e1 fd 9651 9675 or byte [bp+018h], 001h ; 80 4e 18 01 9652 jmp near 068 27h ; e9 da fd9653 mov bx, 00db 6h ; bb b60d9676 jmp near 06845h ; e9 da fd 9677 mov bx, 00db2h ; bb b2 0d 9654 9678 mov cx, ds ; 8c d9 9655 9679 mov ax, strict word 00004h ; b8 04 00 9656 call 01a2ah ; e8 d2af9680 call 01a2ah ; e8 b4 af 9657 9681 push word [bp+00ch] ; ff 76 0c 9658 9682 push word [bp+012h] ; ff 76 12 9659 9683 push 008c6h ; 68 c6 08 9660 9684 push strict byte 00004h ; 6a 04 9661 call 01a6bh ; e8 05 b09685 call 01a6bh ; e8 e7 af 9662 9686 add sp, strict byte 00008h ; 83 c4 08 9663 jmp short 069edh ; eb 82 9664 clc ; f8 9665 imul bx, word [bp+si], strict byte 0006ch ; 6b 1a 6c 9666 cmp ax, 05f6ch ; 3d 6c 5f 9687 jmp short 06a0bh ; eb 82 9688 push SS ; 16 9667 9689 insb ; 6c 9668 jnle short 06ae1h ; 7f 6c 9669 sahf ; 9e 9690 cmp byte [si+05bh], ch ; 38 6c 5b 9670 9691 insb ; 6c 9671 retn 0e66ch ; c2 6c e6 9692 jnl short 06afdh ; 7d 6c 9693 popfw ; 9d 9672 9694 insb ; 6c 9673 and ax, 0516dh ; 25 6d 51 9695 mov sp, 0e06ch ; bc 6c e0 9696 insb ; 6c 9697 add AL, strict byte 06dh ; 04 6d 9698 inc bx ; 43 9674 9699 insw ; 6d 9675 _int15_function32: ; 0xf6a7f LB 0x396 9700 outsw ; 6f 9701 insw ; 6d 9702 _int15_function32: ; 0xf6a9d LB 0x396 9676 9703 push bp ; 55 9677 9704 mov bp, sp ; 89 e5 … … 9685 9712 xor dh, dh ; 30 f6 9686 9713 cmp ax, 000e8h ; 3d e8 00 9687 je near 06b 1ch ; 0f 84 7e 009714 je near 06b3ah ; 0f 84 7e 00 9688 9715 cmp ax, 000d0h ; 3d d0 00 9689 je short 06a b7h ; 74 149716 je short 06ad5h ; 74 14 9690 9717 cmp ax, 00086h ; 3d 86 00 9691 jne near 06 de5h ; 0f 85 3b 039718 jne near 06e03h ; 0f 85 3b 03 9692 9719 sti ; fb 9693 9720 mov dx, word [bp+01ch] ; 8b 56 1c 9694 9721 mov ax, word [bp+018h] ; 8b 46 18 9695 call 066 51h ; e8 9d fb9696 jmp near 06e 0fh ; e9 58 039722 call 0666fh ; e8 9d fb 9723 jmp near 06e2dh ; e9 58 03 9697 9724 cmp dx, strict byte 0004fh ; 83 fa 4f 9698 jne near 06 de5h ; 0f 85 27 039725 jne near 06e03h ; 0f 85 27 03 9699 9726 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9700 jne near 06 de5h ; 0f 85 1e 039727 jne near 06e03h ; 0f 85 1e 03 9701 9728 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9702 jne near 06 de5h ; 0f 85 15 039729 jne near 06e03h ; 0f 85 15 03 9703 9730 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9704 jne near 06 de5h ; 0f 85 0c 039731 jne near 06e03h ; 0f 85 0c 03 9705 9732 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9706 jne near 06 de5h ; 0f 85 03 039733 jne near 06e03h ; 0f 85 03 03 9707 9734 mov ax, word [bp+00ah] ; 8b 46 0a 9708 9735 or ax, word [bp+008h] ; 0b 46 08 9709 jne near 06 de5h ; 0f 85 f9 029736 jne near 06e03h ; 0f 85 f9 02 9710 9737 mov ax, word [bp+006h] ; 8b 46 06 9711 9738 or ax, word [bp+004h] ; 0b 46 04 9712 jne near 06 de5h ; 0f 85 ef 029739 jne near 06e03h ; 0f 85 ef 02 9713 9740 mov word [bp+028h], bx ; 89 5e 28 9714 9741 mov ax, word [bp+014h] ; 8b 46 14 … … 9721 9748 mov word [bp+006h], ax ; 89 46 06 9722 9749 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 9723 jmp near 06e 0fh ; e9 f3 029750 jmp near 06e2dh ; e9 f3 02 9724 9751 cmp dx, strict byte 00020h ; 83 fa 20 9725 je short 06b 2bh ; 74 0a9752 je short 06b49h ; 74 0a 9726 9753 cmp dx, strict byte 00001h ; 83 fa 01 9727 je near 06d 98h ; 0f 84 70 029728 jmp near 06 de5h ; e9 ba 029754 je near 06db6h ; 0f 84 70 02 9755 jmp near 06e03h ; e9 ba 02 9729 9756 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9730 jne near 06 de5h ; 0f 85 b1 029757 jne near 06e03h ; 0f 85 b1 02 9731 9758 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9732 jne near 06 de5h ; 0f 85 a8 029759 jne near 06e03h ; 0f 85 a8 02 9733 9760 mov ax, strict word 00035h ; b8 35 00 9734 call 017a5h ; e8 62ac9761 call 017a5h ; e8 44 ac 9735 9762 movzx bx, al ; 0f b6 d8 9736 9763 xor dx, dx ; 31 d2 … … 9738 9765 sal bx, 1 ; d1 e3 9739 9766 rcl dx, 1 ; d1 d2 9740 loop 06b 4bh ; e2 fa9767 loop 06b69h ; e2 fa 9741 9768 mov ax, strict word 00034h ; b8 34 00 9742 call 017a5h ; e8 4eac9769 call 017a5h ; e8 30 ac 9743 9770 xor ah, ah ; 30 e4 9744 9771 mov dx, bx ; 89 da … … 9748 9775 adc dx, 00100h ; 81 d2 00 01 9749 9776 cmp dx, 00100h ; 81 fa 00 01 9750 jc short 06b 71h ; 72 069751 jne short 06b 9eh ; 75 319777 jc short 06b8fh ; 72 06 9778 jne short 06bbch ; 75 31 9752 9779 test bx, bx ; 85 db 9753 jnbe short 06b 9eh ; 77 2d9780 jnbe short 06bbch ; 77 2d 9754 9781 mov ax, strict word 00031h ; b8 31 00 9755 call 017a5h ; e8 2eac9782 call 017a5h ; e8 10 ac 9756 9783 movzx bx, al ; 0f b6 d8 9757 9784 xor dx, dx ; 31 d2 … … 9759 9786 sal bx, 1 ; d1 e3 9760 9787 rcl dx, 1 ; d1 d2 9761 loop 06b 7fh ; e2 fa9788 loop 06b9dh ; e2 fa 9762 9789 mov ax, strict word 00030h ; b8 30 00 9763 call 017a5h ; e8 1a ac9790 call 017a5h ; e8 fc ab 9764 9791 xor ah, ah ; 30 e4 9765 9792 or bx, ax ; 09 c3 … … 9767 9794 sal bx, 1 ; d1 e3 9768 9795 rcl dx, 1 ; d1 d2 9769 loop 06b 92h ; e2 fa9796 loop 06bb0h ; e2 fa 9770 9797 add bx, strict byte 00000h ; 83 c3 00 9771 9798 adc dx, strict byte 00010h ; 83 d2 10 9772 9799 mov ax, strict word 00062h ; b8 62 00 9773 call 017a5h ; e8 01 ac9800 call 017a5h ; e8 e3 ab 9774 9801 xor ah, ah ; 30 e4 9775 9802 mov word [bp-00ah], ax ; 89 46 f6 … … 9779 9806 sal word [bp-00ah], 1 ; d1 66 f6 9780 9807 rcl word [bp-008h], 1 ; d1 56 f8 9781 loop 06b b1h ; e2 f89808 loop 06bcfh ; e2 f8 9782 9809 mov ax, strict word 00061h ; b8 61 00 9783 call 017a5h ; e8 e6ab9810 call 017a5h ; e8 c8 ab 9784 9811 xor ah, ah ; 30 e4 9785 9812 or word [bp-00ah], ax ; 09 46 f6 … … 9788 9815 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9789 9816 mov ax, strict word 00063h ; b8 63 00 9790 call 017a5h ; e8 d0ab9817 call 017a5h ; e8 b2 ab 9791 9818 mov byte [bp-004h], al ; 88 46 fc 9792 9819 mov byte [bp-006h], al ; 88 46 fa 9793 9820 mov ax, word [bp+014h] ; 8b 46 14 9794 9821 cmp ax, strict word 00009h ; 3d 09 00 9795 jnbe near 06 de5h ; 0f 87 00 029822 jnbe near 06e03h ; 0f 87 00 02 9796 9823 mov si, ax ; 89 c6 9797 9824 add si, ax ; 01 c6 … … 9800 9827 mov cx, dx ; 89 d1 9801 9828 adc cx, strict byte 0ffffh ; 83 d1 ff 9802 jmp word [cs:si+06a 6bh] ; 2e ff a4 6b6a9829 jmp word [cs:si+06a89h] ; 2e ff a4 89 6a 9803 9830 push strict byte 00001h ; 6a 01 9804 9831 push dword 000000000h ; 66 6a 00 … … 9809 9836 xor bx, bx ; 31 db 9810 9837 xor cx, cx ; 31 c9 9811 call 066 c0h ; e8 b1 fa9838 call 066deh ; e8 b1 fa 9812 9839 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9813 jmp near 06d 82h ; e9 68 019840 jmp near 06da0h ; e9 68 01 9814 9841 push strict byte 00002h ; 6a 02 9815 9842 push dword 000000000h ; 66 6a 00 … … 9820 9847 mov bx, 0fc00h ; bb 00 fc 9821 9848 mov cx, strict word 00009h ; b9 09 00 9822 call 066 c0h ; e8 8e fa9849 call 066deh ; e8 8e fa 9823 9850 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9824 jmp near 06d 82h ; e9 45 019851 jmp near 06da0h ; e9 45 01 9825 9852 push strict byte 00002h ; 6a 02 9826 9853 push dword 000000000h ; 66 6a 00 … … 9831 9858 xor bx, bx ; 31 db 9832 9859 mov cx, strict word 0000fh ; b9 0f 00 9833 call 066 c0h ; e8 6c fa9860 call 066deh ; e8 6c fa 9834 9861 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9835 jmp near 06d 82h ; e9 23 019862 jmp near 06da0h ; e9 23 01 9836 9863 push strict byte 00001h ; 6a 01 9837 9864 push dword 000000000h ; 66 6a 00 … … 9842 9869 xor bx, bx ; 31 db 9843 9870 mov cx, strict word 00010h ; b9 10 00 9844 call 066 c0h ; e8 4c fa9871 call 066deh ; e8 4c fa 9845 9872 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9846 jmp near 06d 82h ; e9 03 019873 jmp near 06da0h ; e9 03 01 9847 9874 push strict byte 00003h ; 6a 03 9848 9875 push dword 000000000h ; 66 6a 00 … … 9853 9880 mov bx, ax ; 89 c3 9854 9881 mov ax, si ; 89 f0 9855 call 066 c0h ; e8 2d fa9882 call 066deh ; e8 2d fa 9856 9883 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9857 jmp near 06d 82h ; e9 e4 009884 jmp near 06da0h ; e9 e4 00 9858 9885 push strict byte 00002h ; 6a 02 9859 9886 push dword 000000000h ; 66 6a 00 … … 9864 9891 xor bx, bx ; 31 db 9865 9892 mov cx, 0fec0h ; b9 c0 fe 9866 call 066 c0h ; e8 09 fa9893 call 066deh ; e8 09 fa 9867 9894 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9868 jmp near 06d 82h ; e9 c0 009895 jmp near 06da0h ; e9 c0 00 9869 9896 push strict byte 00002h ; 6a 02 9870 9897 push dword 000000000h ; 66 6a 00 … … 9875 9902 xor bx, bx ; 31 db 9876 9903 mov cx, 0fee0h ; b9 e0 fe 9877 call 066 c0h ; e8 e5 f99904 call 066deh ; e8 e5 f9 9878 9905 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9879 jmp near 06d 82h ; e9 9c 009906 jmp near 06da0h ; e9 9c 00 9880 9907 push strict byte 00002h ; 6a 02 9881 9908 push dword 000000000h ; 66 6a 00 … … 9885 9912 xor bx, bx ; 31 db 9886 9913 mov cx, strict word 0fffch ; b9 fc ff 9887 call 066 c0h ; e8 c4 f99914 call 066deh ; e8 c4 f9 9888 9915 cmp byte [bp-004h], 000h ; 80 7e fc 00 9889 jne short 06d 09h ; 75 079916 jne short 06d27h ; 75 07 9890 9917 mov ax, word [bp-008h] ; 8b 46 f8 9891 9918 test ax, ax ; 85 c0 9892 je short 06d 1dh ; 74 149919 je short 06d3bh ; 74 14 9893 9920 mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00 9894 jmp short 06d 82h ; eb 6f9921 jmp short 06da0h ; eb 6f 9895 9922 mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00 9896 jmp short 06d 82h ; eb 659923 jmp short 06da0h ; eb 65 9897 9924 mov word [bp+014h], ax ; 89 46 14 9898 9925 mov word [bp+016h], ax ; 89 46 16 9899 jmp short 06d 82h ; eb 5d9926 jmp short 06da0h ; eb 5d 9900 9927 push strict byte 00002h ; 6a 02 9901 9928 push dword 000000000h ; 66 6a 00 … … 9905 9932 xor bx, bx ; 31 db 9906 9933 xor cx, cx ; 31 c9 9907 call 066 c0h ; e8 86 f99934 call 066deh ; e8 86 f9 9908 9935 cmp byte [bp-004h], 000h ; 80 7e fc 00 9909 jne short 06d 47h ; 75 079936 jne short 06d65h ; 75 07 9910 9937 mov ax, word [bp-008h] ; 8b 46 f8 9911 9938 test ax, ax ; 85 c0 9912 je short 06d 49h ; 74 029913 jmp short 06d 09h ; eb c09939 je short 06d67h ; 74 02 9940 jmp short 06d27h ; eb c0 9914 9941 mov word [bp+014h], ax ; 89 46 14 9915 9942 mov word [bp+016h], ax ; 89 46 16 9916 jmp short 06d 82h ; eb 319943 jmp short 06da0h ; eb 31 9917 9944 cmp byte [bp-004h], 000h ; 80 7e fc 00 9918 jne short 06d 5dh ; 75 069945 jne short 06d7bh ; 75 06 9919 9946 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9920 je short 06d 82h ; 74 259947 je short 06da0h ; 74 25 9921 9948 push strict byte 00001h ; 6a 01 9922 9949 mov al, byte [bp-006h] ; 8a 46 fa … … 9931 9958 xor bx, bx ; 31 db 9932 9959 xor cx, cx ; 31 c9 9933 call 066 c0h ; e8 46 f99960 call 066deh ; e8 46 f9 9934 9961 xor ax, ax ; 31 c0 9935 9962 mov word [bp+014h], ax ; 89 46 14 … … 9938 9965 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9939 9966 and byte [bp+028h], 0feh ; 80 66 28 fe 9940 jmp short 06e 0fh ; eb 779967 jmp short 06e2dh ; eb 77 9941 9968 mov word [bp+028h], bx ; 89 5e 28 9942 9969 mov ax, strict word 00031h ; b8 31 00 9943 call 017a5h ; e8 04 aa9970 call 017a5h ; e8 e6 a9 9944 9971 xor ah, ah ; 30 e4 9945 9972 mov dx, ax ; 89 c2 9946 9973 sal dx, 008h ; c1 e2 08 9947 9974 mov ax, strict word 00030h ; b8 30 00 9948 call 017a5h ; e8 f7a99975 call 017a5h ; e8 d9 a9 9949 9976 xor ah, ah ; 30 e4 9950 9977 or dx, ax ; 09 c2 9951 9978 mov word [bp+01ch], dx ; 89 56 1c 9952 9979 cmp dx, 03c00h ; 81 fa 00 3c 9953 jbe short 06d c0h ; 76 059980 jbe short 06ddeh ; 76 05 9954 9981 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9955 9982 mov ax, strict word 00035h ; b8 35 00 9956 call 017a5h ; e8 dfa99983 call 017a5h ; e8 c1 a9 9957 9984 xor ah, ah ; 30 e4 9958 9985 mov dx, ax ; 89 c2 9959 9986 sal dx, 008h ; c1 e2 08 9960 9987 mov ax, strict word 00034h ; b8 34 00 9961 call 017a5h ; e8 d2a99988 call 017a5h ; e8 b4 a9 9962 9989 xor ah, ah ; 30 e4 9963 9990 or dx, ax ; 09 c2 … … 9966 9993 mov word [bp+020h], ax ; 89 46 20 9967 9994 mov word [bp+014h], dx ; 89 56 14 9968 jmp short 06e 0fh ; eb 2a9969 mov bx, 00db 6h ; bb b60d9995 jmp short 06e2dh ; eb 2a 9996 mov bx, 00db2h ; bb b2 0d 9970 9997 mov cx, ds ; 8c d9 9971 9998 mov ax, strict word 00004h ; b8 04 00 9972 call 01a2ah ; e8 3aac9999 call 01a2ah ; e8 1c ac 9973 10000 push word [bp+014h] ; ff 76 14 9974 10001 push word [bp+020h] ; ff 76 20 9975 10002 push 008c6h ; 68 c6 08 9976 10003 push strict byte 00004h ; 6a 04 9977 call 01a6bh ; e8 6dac10004 call 01a6bh ; e8 4f ac 9978 10005 add sp, strict byte 00008h ; 83 c4 08 9979 10006 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9986 10013 pop bp ; 5d 9987 10014 retn ; c3 9988 _int15_blkmove: ; 0xf6e 15LB 0x1ab10015 _int15_blkmove: ; 0xf6e33 LB 0x1ab 9989 10016 push bp ; 55 9990 10017 mov bp, sp ; 89 e5 … … 9995 10022 cli ; fa 9996 10023 mov ax, strict word 00001h ; b8 01 00 9997 call 066 94h ; e8 71 f810024 call 066b2h ; e8 71 f8 9998 10025 mov di, ax ; 89 c7 9999 10026 mov ax, word [bp+006h] ; 8b 46 06 … … 10005 10032 mov byte [bp-006h], dl ; 88 56 fa 10006 10033 cmp cx, ax ; 39 c1 10007 jnc short 06e 42h ; 73 0510034 jnc short 06e60h ; 73 05 10008 10035 db 0feh, 0c2h 10009 10036 ; inc dl ; fe c2 … … 10013 10040 mov ax, word [bp+006h] ; 8b 46 06 10014 10041 mov bx, strict word 0002fh ; bb 2f 00 10015 call 01773h ; e8 22a910042 call 01773h ; e8 04 a9 10016 10043 mov dx, word [bp+00ah] ; 8b 56 0a 10017 10044 add dx, strict byte 0000ah ; 83 c2 0a 10018 10045 mov ax, word [bp+006h] ; 8b 46 06 10019 10046 mov bx, cx ; 89 cb 10020 call 01773h ; e8 14 a910047 call 01773h ; e8 f6 a8 10021 10048 movzx bx, byte [bp-006h] ; 0f b6 5e fa 10022 10049 mov dx, word [bp+00ah] ; 8b 56 0a 10023 10050 add dx, strict byte 0000ch ; 83 c2 0c 10024 10051 mov ax, word [bp+006h] ; 8b 46 06 10025 call 01757h ; e8 e8a810052 call 01757h ; e8 ca a8 10026 10053 mov dx, word [bp+00ah] ; 8b 56 0a 10027 10054 add dx, strict byte 0000dh ; 83 c2 0d 10028 10055 mov ax, word [bp+006h] ; 8b 46 06 10029 10056 mov bx, 00093h ; bb 93 00 10030 call 01757h ; e8 d9a810057 call 01757h ; e8 bb a8 10031 10058 mov dx, word [bp+00ah] ; 8b 56 0a 10032 10059 add dx, strict byte 0000eh ; 83 c2 0e 10033 10060 mov ax, word [bp+006h] ; 8b 46 06 10034 10061 xor bx, bx ; 31 db 10035 call 01773h ; e8 e7a810062 call 01773h ; e8 c9 a8 10036 10063 mov dx, word [bp+00ah] ; 8b 56 0a 10037 10064 add dx, strict byte 00020h ; 83 c2 20 10038 10065 mov ax, word [bp+006h] ; 8b 46 06 10039 10066 mov bx, strict word 0ffffh ; bb ff ff 10040 call 01773h ; e8 d8a810067 call 01773h ; e8 ba a8 10041 10068 mov dx, word [bp+00ah] ; 8b 56 0a 10042 10069 add dx, strict byte 00022h ; 83 c2 22 10043 10070 mov ax, word [bp+006h] ; 8b 46 06 10044 10071 xor bx, bx ; 31 db 10045 call 01773h ; e8 caa810072 call 01773h ; e8 ac a8 10046 10073 mov dx, word [bp+00ah] ; 8b 56 0a 10047 10074 add dx, strict byte 00024h ; 83 c2 24 10048 10075 mov ax, word [bp+006h] ; 8b 46 06 10049 10076 mov bx, strict word 0000fh ; bb 0f 00 10050 call 01757h ; e8 9fa810077 call 01757h ; e8 81 a8 10051 10078 mov dx, word [bp+00ah] ; 8b 56 0a 10052 10079 add dx, strict byte 00025h ; 83 c2 25 10053 10080 mov ax, word [bp+006h] ; 8b 46 06 10054 10081 mov bx, 0009bh ; bb 9b 00 10055 call 01757h ; e8 90a810082 call 01757h ; e8 72 a8 10056 10083 mov dx, word [bp+00ah] ; 8b 56 0a 10057 10084 add dx, strict byte 00026h ; 83 c2 26 10058 10085 mov ax, word [bp+006h] ; 8b 46 06 10059 10086 xor bx, bx ; 31 db 10060 call 01773h ; e8 9ea810087 call 01773h ; e8 80 a8 10061 10088 mov ax, ss ; 8c d0 10062 10089 mov cx, ax ; 89 c1 … … 10068 10095 mov ax, word [bp+006h] ; 8b 46 06 10069 10096 mov bx, strict word 0ffffh ; bb ff ff 10070 call 01773h ; e8 82a810097 call 01773h ; e8 64 a8 10071 10098 mov dx, word [bp+00ah] ; 8b 56 0a 10072 10099 add dx, strict byte 0002ah ; 83 c2 2a 10073 10100 mov ax, word [bp+006h] ; 8b 46 06 10074 10101 mov bx, cx ; 89 cb 10075 call 01773h ; e8 74a810102 call 01773h ; e8 56 a8 10076 10103 movzx bx, byte [bp-008h] ; 0f b6 5e f8 10077 10104 mov dx, word [bp+00ah] ; 8b 56 0a 10078 10105 add dx, strict byte 0002ch ; 83 c2 2c 10079 10106 mov ax, word [bp+006h] ; 8b 46 06 10080 call 01757h ; e8 48a810107 call 01757h ; e8 2a a8 10081 10108 mov dx, word [bp+00ah] ; 8b 56 0a 10082 10109 add dx, strict byte 0002dh ; 83 c2 2d 10083 10110 mov ax, word [bp+006h] ; 8b 46 06 10084 10111 mov bx, 00093h ; bb 93 00 10085 call 01757h ; e8 39a810112 call 01757h ; e8 1b a8 10086 10113 mov dx, word [bp+00ah] ; 8b 56 0a 10087 10114 add dx, strict byte 0002eh ; 83 c2 2e 10088 10115 mov ax, word [bp+006h] ; 8b 46 06 10089 10116 xor bx, bx ; 31 db 10090 call 01773h ; e8 47a810117 call 01773h ; e8 29 a8 10091 10118 lea ax, [bp+004h] ; 8d 46 04 10092 10119 mov si, word [bp+00ah] ; 8b 76 0a … … 10100 10127 mov word [00467h], sp ; 89 26 67 04 10101 10128 mov [00469h], ss ; 8c 16 69 04 10102 call 06f 4bh ; e8 00 0010129 call 06f69h ; e8 00 00 10103 10130 pop di ; 5f 10104 10131 add di, strict byte 0001bh ; 83 c7 1b … … 10123 10150 cld ; fc 10124 10151 rep movsw ; f3 a5 10125 call 06f 7fh ; e8 00 0010152 call 06f9dh ; e8 00 00 10126 10153 pop ax ; 58 10127 10154 push 0f000h ; 68 00 f0 … … 10144 10171 pop DS ; 1f 10145 10172 mov ax, di ; 89 f8 10146 call 066 94h ; e8 e4 f610173 call 066b2h ; e8 e4 f6 10147 10174 sti ; fb 10148 10175 mov byte [bp+017h], 000h ; c6 46 17 00 … … 10153 10180 pop bp ; 5d 10154 10181 retn ; c3 10155 _inv_op_handler: ; 0xf6f c0LB 0x19510182 _inv_op_handler: ; 0xf6fde LB 0x195 10156 10183 push bp ; 55 10157 10184 mov bp, sp ; 89 e5 … … 10162 10189 les bx, [bp+018h] ; c4 5e 18 10163 10190 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10164 jne short 06f d6h ; 75 0610191 jne short 06ff4h ; 75 06 10165 10192 inc word [bp+018h] ; ff 46 18 10166 jmp near 071 4eh ; e9 78 0110193 jmp near 0716ch ; e9 78 01 10167 10194 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10168 jne near 071 4ah ; 0f 85 6b 0110195 jne near 07168h ; 0f 85 6b 01 10169 10196 mov si, 00800h ; be 00 08 10170 10197 xor ax, ax ; 31 c0 … … 10194 10221 sal ax, 1 ; d1 e0 10195 10222 rcl dx, 1 ; d1 d2 10196 loop 070 2fh ; e2 fa10223 loop 0704dh ; e2 fa 10197 10224 cmp bx, dx ; 39 d3 10198 jne short 070 3dh ; 75 0410225 jne short 0705bh ; 75 04 10199 10226 cmp di, ax ; 39 c7 10200 je short 070 42h ; 74 0510227 je short 07060h ; 74 05 10201 10228 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10202 10229 mov es, [bp-006h] ; 8e 46 fa … … 10208 10235 sal ax, 1 ; d1 e0 10209 10236 rcl dx, 1 ; d1 d2 10210 loop 070 57h ; e2 fa10237 loop 07075h ; e2 fa 10211 10238 cmp di, dx ; 39 d7 10212 jne short 070 65h ; 75 0410239 jne short 07083h ; 75 04 10213 10240 cmp bx, ax ; 39 c3 10214 je short 070 69h ; 74 0410241 je short 07087h ; 74 04 10215 10242 or byte [bp-008h], 002h ; 80 4e f8 02 10216 10243 push strict byte 00000h ; 6a 00 … … 10262 10289 mov ax, strict word 00008h ; b8 08 00 10263 10290 test cx, strict word 00001h ; f7 c1 01 00 10264 je near 071 07h ; 0f 84 02 0010291 je near 07125h ; 0f 84 02 00 10265 10292 mov es, ax ; 8e c0 10266 10293 test cx, strict word 00002h ; f7 c1 02 00 10267 je near 071 2fh ; 0f 84 20 0010294 je near 0714dh ; 0f 84 20 00 10268 10295 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10269 10296 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10282 10309 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10283 10310 iret ; cf 10284 jmp short 071 4eh ; eb 0410311 jmp short 0716ch ; eb 04 10285 10312 sti ; fb 10286 10313 hlt ; f4 10287 jmp short 071 4bh ; eb fd10314 jmp short 07169h ; eb fd 10288 10315 lea sp, [bp-004h] ; 8d 66 fc 10289 10316 pop di ; 5f … … 10291 10318 pop bp ; 5d 10292 10319 retn ; c3 10293 init_rtc_: ; 0xf71 55LB 0x2810320 init_rtc_: ; 0xf7173 LB 0x28 10294 10321 push bp ; 55 10295 10322 mov bp, sp ; 89 e5 … … 10297 10324 mov dx, strict word 00026h ; ba 26 00 10298 10325 mov ax, strict word 0000ah ; b8 0a 00 10299 call 017c2h ; e8 60a610326 call 017c2h ; e8 42 a6 10300 10327 mov dx, strict word 00002h ; ba 02 00 10301 10328 mov ax, strict word 0000bh ; b8 0b 00 10302 call 017c2h ; e8 57a610329 call 017c2h ; e8 39 a6 10303 10330 mov ax, strict word 0000ch ; b8 0c 00 10304 call 017a5h ; e8 34a610331 call 017a5h ; e8 16 a6 10305 10332 mov ax, strict word 0000dh ; b8 0d 00 10306 call 017a5h ; e8 2ea610333 call 017a5h ; e8 10 a6 10307 10334 lea sp, [bp-002h] ; 8d 66 fe 10308 10335 pop dx ; 5a 10309 10336 pop bp ; 5d 10310 10337 retn ; c3 10311 rtc_updating_: ; 0xf71 7dLB 0x2110338 rtc_updating_: ; 0xf719b LB 0x21 10312 10339 push bp ; 55 10313 10340 mov bp, sp ; 89 e5 … … 10315 10342 mov dx, 061a8h ; ba a8 61 10316 10343 dec dx ; 4a 10317 je short 071 95h ; 74 0e10344 je short 071b3h ; 74 0e 10318 10345 mov ax, strict word 0000ah ; b8 0a 00 10319 call 017a5h ; e8 18 a610346 call 017a5h ; e8 fa a5 10320 10347 test AL, strict byte 080h ; a8 80 10321 jne short 071 84h ; 75 f310348 jne short 071a2h ; 75 f3 10322 10349 xor ax, ax ; 31 c0 10323 jmp short 071 98h ; eb 0310350 jmp short 071b6h ; eb 03 10324 10351 mov ax, strict word 00001h ; b8 01 00 10325 10352 lea sp, [bp-002h] ; 8d 66 fe … … 10327 10354 pop bp ; 5d 10328 10355 retn ; c3 10329 _int70_function: ; 0xf71 9eLB 0xbe10356 _int70_function: ; 0xf71bc LB 0xbe 10330 10357 push bp ; 55 10331 10358 mov bp, sp ; 89 e5 … … 10333 10360 push ax ; 50 10334 10361 mov ax, strict word 0000bh ; b8 0b 00 10335 call 017a5h ; e8 fca510362 call 017a5h ; e8 de a5 10336 10363 mov dl, al ; 88 c2 10337 10364 mov byte [bp-004h], al ; 88 46 fc 10338 10365 mov ax, strict word 0000ch ; b8 0c 00 10339 call 017a5h ; e8 f1a510366 call 017a5h ; e8 d3 a5 10340 10367 mov dh, al ; 88 c6 10341 10368 test dl, 060h ; f6 c2 60 10342 je near 072 43h ; 0f 84 86 0010369 je near 07261h ; 0f 84 86 00 10343 10370 test AL, strict byte 020h ; a8 20 10344 je short 071 c5h ; 74 0410371 je short 071e3h ; 74 04 10345 10372 sti ; fb 10346 10373 int 04ah ; cd 4a 10347 10374 cli ; fa 10348 10375 test dh, 040h ; f6 c6 40 10349 je near 072 43h ; 0f 84 77 0010376 je near 07261h ; 0f 84 77 00 10350 10377 mov dx, 000a0h ; ba a0 00 10351 10378 mov ax, strict word 00040h ; b8 40 00 10352 call 01749h ; e8 74a510379 call 01749h ; e8 56 a5 10353 10380 test al, al ; 84 c0 10354 je short 072 43h ; 74 6a10381 je short 07261h ; 74 6a 10355 10382 mov dx, 0009ch ; ba 9c 00 10356 10383 mov ax, strict word 00040h ; b8 40 00 10357 call 01781h ; e8 9fa510384 call 01781h ; e8 81 a5 10358 10385 test dx, dx ; 85 d2 10359 jne short 072 2fh ; 75 4910386 jne short 0724dh ; 75 49 10360 10387 cmp ax, 003d1h ; 3d d1 03 10361 jnc short 072 2fh ; 73 4410388 jnc short 0724dh ; 73 44 10362 10389 mov dx, 00098h ; ba 98 00 10363 10390 mov ax, strict word 00040h ; b8 40 00 10364 call 01765h ; e8 71a510391 call 01765h ; e8 53 a5 10365 10392 mov si, ax ; 89 c6 10366 10393 mov dx, 0009ah ; ba 9a 00 10367 10394 mov ax, strict word 00040h ; b8 40 00 10368 call 01765h ; e8 66a510395 call 01765h ; e8 48 a5 10369 10396 mov cx, ax ; 89 c1 10370 10397 xor bx, bx ; 31 db 10371 10398 mov dx, 000a0h ; ba a0 00 10372 10399 mov ax, strict word 00040h ; b8 40 00 10373 call 01757h ; e8 4ba510400 call 01757h ; e8 2d a5 10374 10401 mov al, byte [bp-004h] ; 8a 46 fc 10375 10402 and AL, strict byte 037h ; 24 37 10376 10403 movzx dx, al ; 0f b6 d0 10377 10404 mov ax, strict word 0000bh ; b8 0b 00 10378 call 017c2h ; e8 a8a510405 call 017c2h ; e8 8a a5 10379 10406 mov dx, cx ; 89 ca 10380 10407 mov ax, si ; 89 f0 10381 call 01749h ; e8 28a510408 call 01749h ; e8 0a a5 10382 10409 or AL, strict byte 080h ; 0c 80 10383 10410 movzx bx, al ; 0f b6 d8 10384 10411 mov dx, cx ; 89 ca 10385 10412 mov ax, si ; 89 f0 10386 call 01757h ; e8 2aa510387 jmp short 072 43h ; eb 1410413 call 01757h ; e8 0c a5 10414 jmp short 07261h ; eb 14 10388 10415 mov bx, ax ; 89 c3 10389 10416 add bx, 0fc2fh ; 81 c3 2f fc … … 10392 10419 mov dx, 0009ch ; ba 9c 00 10393 10420 mov ax, strict word 00040h ; b8 40 00 10394 call 01793h ; e8 50a510395 call 0e030h ; e8 ea6d10421 call 01793h ; e8 32 a5 10422 call 0e030h ; e8 cc 6d 10396 10423 lea sp, [bp-002h] ; 8d 66 fe 10397 10424 pop si ; 5e 10398 10425 pop bp ; 5d 10399 10426 retn ; c3 10400 jnc short 072c0h ; 73 7210401 pushfw ; 9c10402 jc short 072 12h ; 72 c110403 jc short 072 46h ; 72 f310404 j c short 07297h ; 72 4210405 jnc short 072 d1h ; 73 7a10406 jnc short 072 16h ; 73 bd10407 jnc short 072 6fh ; 73 1410427 xchg cx, ax ; 91 10428 jc short 07227h ; 72 ba 10429 jc short 0724eh ; 72 df 10430 jc short 07282h ; 72 11 10431 jnc short 072d3h ; 73 60 10432 jnc short 0720dh ; 73 98 10433 jnc short 07252h ; 73 db 10434 jnc short 072abh ; 73 32 10408 10435 db 074h 10409 _int1a_function: ; 0xf72 5cLB 0x1c810436 _int1a_function: ; 0xf727a LB 0x1c8 10410 10437 push bp ; 55 10411 10438 mov bp, sp ; 89 e5 … … 10413 10440 mov al, byte [bp+013h] ; 8a 46 13 10414 10441 cmp AL, strict byte 007h ; 3c 07 10415 jnbe near 072 98h ; 0f 87 2f 0010442 jnbe near 072b6h ; 0f 87 2f 00 10416 10443 movzx bx, al ; 0f b6 d8 10417 10444 add bx, bx ; 01 db 10418 jmp word [cs:bx+072 4ch] ; 2e ff a7 4c7210445 jmp word [cs:bx+0726ah] ; 2e ff a7 6a 72 10419 10446 cli ; fa 10420 10447 mov bx, 0046eh ; bb 6e 04 … … 10447 10474 sti ; fb 10448 10475 mov byte [bp+013h], 000h ; c6 46 13 00 10449 jmp short 072 98h ; eb d710450 call 071 7dh ; e8 b9 fe10476 jmp short 072b6h ; eb d7 10477 call 0719bh ; e8 b9 fe 10451 10478 test ax, ax ; 85 c0 10452 je short 072 cah ; 74 0210453 jmp short 072 98h ; eb ce10479 je short 072e8h ; 74 02 10480 jmp short 072b6h ; eb ce 10454 10481 xor ax, ax ; 31 c0 10455 call 017a5h ; e8 d6a410482 call 017a5h ; e8 b8 a4 10456 10483 mov byte [bp+00fh], al ; 88 46 0f 10457 10484 mov ax, strict word 00002h ; b8 02 00 10458 call 017a5h ; e8 cda410485 call 017a5h ; e8 af a4 10459 10486 mov byte [bp+010h], al ; 88 46 10 10460 10487 mov ax, strict word 00004h ; b8 04 00 10461 call 017a5h ; e8 c4a410488 call 017a5h ; e8 a6 a4 10462 10489 mov bl, al ; 88 c3 10463 10490 mov byte [bp+011h], al ; 88 46 11 10464 10491 mov ax, strict word 0000bh ; b8 0b 00 10465 call 017a5h ; e8 b9a410492 call 017a5h ; e8 9b a4 10466 10493 and AL, strict byte 001h ; 24 01 10467 10494 mov byte [bp+00eh], al ; 88 46 0e 10468 jmp short 073 38h ; eb 4510469 call 071 7dh ; e8 87 fe10495 jmp short 07356h ; eb 45 10496 call 0719bh ; e8 87 fe 10470 10497 test ax, ax ; 85 c0 10471 je short 07 2fdh ; 74 0310472 call 071 55h ; e8 58 fe10498 je short 0731bh ; 74 03 10499 call 07173h ; e8 58 fe 10473 10500 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10474 10501 xor ax, ax ; 31 c0 10475 call 017c2h ; e8 bca410502 call 017c2h ; e8 9e a4 10476 10503 movzx dx, byte [bp+010h] ; 0f b6 56 10 10477 10504 mov ax, strict word 00002h ; b8 02 00 10478 call 017c2h ; e8 b2a410505 call 017c2h ; e8 94 a4 10479 10506 movzx dx, byte [bp+011h] ; 0f b6 56 11 10480 10507 mov ax, strict word 00004h ; b8 04 00 10481 call 017c2h ; e8 a8a410508 call 017c2h ; e8 8a a4 10482 10509 mov ax, strict word 0000bh ; b8 0b 00 10483 call 017a5h ; e8 85a410510 call 017a5h ; e8 67 a4 10484 10511 mov bl, al ; 88 c3 10485 10512 and bl, 060h ; 80 e3 60 … … 10490 10517 movzx dx, bl ; 0f b6 d3 10491 10518 mov ax, strict word 0000bh ; b8 0b 00 10492 call 017c2h ; e8 8aa410519 call 017c2h ; e8 6c a4 10493 10520 mov byte [bp+013h], 000h ; c6 46 13 00 10494 10521 mov byte [bp+012h], bl ; 88 5e 12 10495 jmp near 072 98h ; e9 56 ff10522 jmp near 072b6h ; e9 56 ff 10496 10523 mov byte [bp+013h], 000h ; c6 46 13 00 10497 call 071 7dh ; e8 34 fe10524 call 0719bh ; e8 34 fe 10498 10525 test ax, ax ; 85 c0 10499 je short 073 50h ; 74 0310500 jmp near 072 98h ; e9 48 ff10526 je short 0736eh ; 74 03 10527 jmp near 072b6h ; e9 48 ff 10501 10528 mov ax, strict word 00009h ; b8 09 00 10502 call 017a5h ; e8 4fa410529 call 017a5h ; e8 31 a4 10503 10530 mov byte [bp+010h], al ; 88 46 10 10504 10531 mov ax, strict word 00008h ; b8 08 00 10505 call 017a5h ; e8 46a410532 call 017a5h ; e8 28 a4 10506 10533 mov byte [bp+00fh], al ; 88 46 0f 10507 10534 mov ax, strict word 00007h ; b8 07 00 10508 call 017a5h ; e8 3da410535 call 017a5h ; e8 1f a4 10509 10536 mov byte [bp+00eh], al ; 88 46 0e 10510 10537 mov ax, strict word 00032h ; b8 32 00 10511 call 017a5h ; e8 34a410538 call 017a5h ; e8 16 a4 10512 10539 mov byte [bp+011h], al ; 88 46 11 10513 10540 mov byte [bp+012h], al ; 88 46 12 10514 jmp near 072 98h ; e9 1e ff10515 call 071 7dh ; e8 00 fe10541 jmp near 072b6h ; e9 1e ff 10542 call 0719bh ; e8 00 fe 10516 10543 test ax, ax ; 85 c0 10517 je short 073 87h ; 74 0610518 call 071 55h ; e8 d1 fd10519 jmp near 072 98h ; e9 11 ff10544 je short 073a5h ; 74 06 10545 call 07173h ; e8 d1 fd 10546 jmp near 072b6h ; e9 11 ff 10520 10547 movzx dx, byte [bp+010h] ; 0f b6 56 10 10521 10548 mov ax, strict word 00009h ; b8 09 00 10522 call 017c2h ; e8 31a410549 call 017c2h ; e8 13 a4 10523 10550 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10524 10551 mov ax, strict word 00008h ; b8 08 00 10525 call 017c2h ; e8 27a410552 call 017c2h ; e8 09 a4 10526 10553 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 10527 10554 mov ax, strict word 00007h ; b8 07 00 10528 call 017c2h ; e8 1d a410555 call 017c2h ; e8 ff a3 10529 10556 movzx dx, byte [bp+011h] ; 0f b6 56 11 10530 10557 mov ax, strict word 00032h ; b8 32 00 10531 call 017c2h ; e8 13 a410558 call 017c2h ; e8 f5 a3 10532 10559 mov ax, strict word 0000bh ; b8 0b 00 10533 call 017a5h ; e8 f0a310560 call 017a5h ; e8 d2 a3 10534 10561 mov bl, al ; 88 c3 10535 10562 and bl, 07fh ; 80 e3 7f 10536 jmp near 073 2fh ; e9 72 ff10563 jmp near 0734dh ; e9 72 ff 10537 10564 mov ax, strict word 0000bh ; b8 0b 00 10538 call 017a5h ; e8 e2a310565 call 017a5h ; e8 c4 a3 10539 10566 mov bl, al ; 88 c3 10540 10567 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10541 10568 test AL, strict byte 020h ; a8 20 10542 je short 073 d1h ; 74 0310543 jmp near 072 98h ; e9 c7 fe10544 call 071 7dh ; e8 a9 fd10569 je short 073efh ; 74 03 10570 jmp near 072b6h ; e9 c7 fe 10571 call 0719bh ; e8 a9 fd 10545 10572 test ax, ax ; 85 c0 10546 je short 073 dbh ; 74 0310547 call 071 55h ; e8 7a fd10573 je short 073f9h ; 74 03 10574 call 07173h ; e8 7a fd 10548 10575 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10549 10576 mov ax, strict word 00001h ; b8 01 00 10550 call 017c2h ; e8 dda310577 call 017c2h ; e8 bf a3 10551 10578 movzx dx, byte [bp+010h] ; 0f b6 56 10 10552 10579 mov ax, strict word 00003h ; b8 03 00 10553 call 017c2h ; e8 d3a310580 call 017c2h ; e8 b5 a3 10554 10581 movzx dx, byte [bp+011h] ; 0f b6 56 11 10555 10582 mov ax, strict word 00005h ; b8 05 00 10556 call 017c2h ; e8 c9a310583 call 017c2h ; e8 ab a3 10557 10584 mov dx, 000a1h ; ba a1 00 10558 10585 in AL, DX ; ec … … 10566 10593 movzx dx, al ; 0f b6 d0 10567 10594 mov ax, strict word 0000bh ; b8 0b 00 10568 call 017c2h ; e8 b1a310569 jmp near 072 98h ; e9 84 fe10595 call 017c2h ; e8 93 a3 10596 jmp near 072b6h ; e9 84 fe 10570 10597 mov ax, strict word 0000bh ; b8 0b 00 10571 call 017a5h ; e8 8ba310598 call 017a5h ; e8 6d a3 10572 10599 mov bl, al ; 88 c3 10573 10600 and AL, strict byte 057h ; 24 57 10574 10601 movzx dx, al ; 0f b6 d0 10575 jmp near 073 32h ; e9 0e ff10576 send_to_mouse_ctrl_: ; 0xf74 24LB 0x3410602 jmp near 07350h ; e9 0e ff 10603 send_to_mouse_ctrl_: ; 0xf7442 LB 0x34 10577 10604 push bp ; 55 10578 10605 mov bp, sp ; 89 e5 … … 10585 10612 ; sub ah, ah ; 2a e4 10586 10613 test AL, strict byte 002h ; a8 02 10587 je short 074 43h ; 74 0e10614 je short 07461h ; 74 0e 10588 10615 push 00900h ; 68 00 09 10589 push 0117 eh ; 68 7e1110616 push 0117ah ; 68 7a 11 10590 10617 push strict byte 00007h ; 6a 07 10591 call 01a6bh ; e8 2ba610618 call 01a6bh ; e8 0d a6 10592 10619 add sp, strict byte 00006h ; 83 c4 06 10593 10620 mov AL, strict byte 0d4h ; b0 d4 … … 10603 10630 pop bp ; 5d 10604 10631 retn ; c3 10605 get_mouse_data_: ; 0xf74 58LB 0x5c10632 get_mouse_data_: ; 0xf7476 LB 0x5c 10606 10633 push bp ; 55 10607 10634 mov bp, sp ; 89 e5 … … 10618 10645 and ax, strict word 00021h ; 25 21 00 10619 10646 cmp ax, strict word 00021h ; 3d 21 00 10620 je short 074 9ah ; 74 2710647 je short 074b8h ; 74 27 10621 10648 test cx, cx ; 85 c9 10622 je short 074 9ah ; 74 2310649 je short 074b8h ; 74 23 10623 10650 mov dx, strict word 00061h ; ba 61 00 10624 10651 in AL, DX ; ec … … 10636 10663 movzx ax, byte [bp-006h] ; 0f b6 46 fa 10637 10664 cmp dx, ax ; 39 c2 10638 je short 074 82h ; 74 eb10665 je short 074a0h ; 74 eb 10639 10666 dec cx ; 49 10640 jmp short 074 65h ; eb cb10667 jmp short 07483h ; eb cb 10641 10668 test cx, cx ; 85 c9 10642 jne short 074 a2h ; 75 0410669 jne short 074c0h ; 75 04 10643 10670 mov AL, strict byte 001h ; b0 01 10644 jmp short 074 adh ; eb 0b10671 jmp short 074cbh ; eb 0b 10645 10672 mov dx, strict word 00060h ; ba 60 00 10646 10673 in AL, DX ; ec … … 10654 10681 pop bp ; 5d 10655 10682 retn ; c3 10656 set_kbd_command_byte_: ; 0xf74 b4LB 0x3210683 set_kbd_command_byte_: ; 0xf74d2 LB 0x32 10657 10684 push bp ; 55 10658 10685 mov bp, sp ; 89 e5 … … 10665 10692 ; sub ah, ah ; 2a e4 10666 10693 test AL, strict byte 002h ; a8 02 10667 je short 074 d3h ; 74 0e10694 je short 074f1h ; 74 0e 10668 10695 push 0090ah ; 68 0a 09 10669 push 0117 eh ; 68 7e1110696 push 0117ah ; 68 7a 11 10670 10697 push strict byte 00007h ; 6a 07 10671 call 01a6bh ; e8 9ba510698 call 01a6bh ; e8 7d a5 10672 10699 add sp, strict byte 00006h ; 83 c4 06 10673 10700 mov AL, strict byte 060h ; b0 60 … … 10682 10709 pop bp ; 5d 10683 10710 retn ; c3 10684 _int74_function: ; 0xf7 4e6LB 0xca10711 _int74_function: ; 0xf7504 LB 0xca 10685 10712 push bp ; 55 10686 10713 mov bp, sp ; 89 e5 … … 10688 10715 mov dx, strict word 0000eh ; ba 0e 00 10689 10716 mov ax, strict word 00040h ; b8 40 00 10690 call 01765h ; e8 70a210717 call 01765h ; e8 52 a2 10691 10718 mov cx, ax ; 89 c1 10692 10719 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10697 10724 and AL, strict byte 021h ; 24 21 10698 10725 cmp AL, strict byte 021h ; 3c 21 10699 jne near 075 9ch ; 0f 85 92 0010726 jne near 075bah ; 0f 85 92 00 10700 10727 mov dx, strict word 00060h ; ba 60 00 10701 10728 in AL, DX ; ec … … 10705 10732 mov dx, strict word 00026h ; ba 26 00 10706 10733 mov ax, cx ; 89 c8 10707 call 01749h ; e8 2fa210734 call 01749h ; e8 11 a2 10708 10735 mov byte [bp-006h], al ; 88 46 fa 10709 10736 mov dx, strict word 00027h ; ba 27 00 10710 10737 mov ax, cx ; 89 c8 10711 call 01749h ; e8 24a210738 call 01749h ; e8 06 a2 10712 10739 mov byte [bp-008h], al ; 88 46 f8 10713 10740 test AL, strict byte 080h ; a8 80 10714 je short 075 9ch ; 74 7010741 je short 075bah ; 74 70 10715 10742 mov al, byte [bp-008h] ; 8a 46 f8 10716 10743 and AL, strict byte 007h ; 24 07 … … 10723 10750 add dx, strict byte 00028h ; 83 c2 28 10724 10751 mov ax, cx ; 89 c8 10725 call 01757h ; e8 0e a210752 call 01757h ; e8 f0 a1 10726 10753 mov al, byte [bp-004h] ; 8a 46 fc 10727 10754 cmp al, byte [bp-002h] ; 3a 46 fe 10728 jc short 075 8dh ; 72 3c10755 jc short 075abh ; 72 3c 10729 10756 mov dx, strict word 00028h ; ba 28 00 10730 10757 mov ax, cx ; 89 c8 10731 call 01749h ; e8 f0a110758 call 01749h ; e8 d2 a1 10732 10759 xor ah, ah ; 30 e4 10733 10760 mov word [bp+00ch], ax ; 89 46 0c 10734 10761 mov dx, strict word 00029h ; ba 29 00 10735 10762 mov ax, cx ; 89 c8 10736 call 01749h ; e8 e3a110763 call 01749h ; e8 c5 a1 10737 10764 xor ah, ah ; 30 e4 10738 10765 mov word [bp+00ah], ax ; 89 46 0a 10739 10766 mov dx, strict word 0002ah ; ba 2a 00 10740 10767 mov ax, cx ; 89 c8 10741 call 01749h ; e8 d6a110768 call 01749h ; e8 b8 a1 10742 10769 xor ah, ah ; 30 e4 10743 10770 mov word [bp+008h], ax ; 89 46 08 … … 10746 10773 mov byte [bp-006h], ah ; 88 66 fa 10747 10774 test byte [bp-008h], 080h ; f6 46 f8 80 10748 je short 075 90h ; 74 0a10775 je short 075aeh ; 74 0a 10749 10776 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10750 jmp short 075 90h ; eb 0310777 jmp short 075aeh ; eb 03 10751 10778 inc byte [bp-006h] ; fe 46 fa 10752 10779 movzx bx, byte [bp-006h] ; 0f b6 5e fa 10753 10780 mov dx, strict word 00026h ; ba 26 00 10754 10781 mov ax, cx ; 89 c8 10755 call 01757h ; e8 bba110782 call 01757h ; e8 9d a1 10756 10783 mov sp, bp ; 89 ec 10757 10784 pop bp ; 5d 10758 10785 retn ; c3 10759 hlt ; f4 10760 jne short 0760dh ; 75 6a 10761 jbe short 07592h ; 76 ed 10762 jbe short 07625h ; 76 7e 10763 jnbe short 07595h ; 77 ec 10764 jnbe short 075ebh ; 77 40 10765 jbe short 075c1h ; 76 14 10766 js short 07588h ; 78 d9 10786 adc dh, byte [bp-078h] ; 12 76 88 10787 jbe short 075ceh ; 76 0b 10788 jnbe short 07561h ; 77 9c 10789 jnbe short 075d1h ; 77 0a 10790 js short 07627h ; 78 5e 10791 jbe short 075fdh ; 76 32 10792 js short 075c4h ; 78 f7 10767 10793 db 078h 10768 _int15_function_mouse: ; 0xf75 b0LB 0x38b10794 _int15_function_mouse: ; 0xf75ce LB 0x38b 10769 10795 push bp ; 55 10770 10796 mov bp, sp ; 89 e5 … … 10773 10799 mov dx, strict word 0000eh ; ba 0e 00 10774 10800 mov ax, strict word 00040h ; b8 40 00 10775 call 01765h ; e8 a5a110801 call 01765h ; e8 87 a1 10776 10802 mov cx, ax ; 89 c1 10777 10803 cmp byte [bp+012h], 007h ; 80 7e 12 07 10778 jbe short 075 d3h ; 76 0b10804 jbe short 075f1h ; 76 0b 10779 10805 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10780 10806 mov byte [bp+013h], 001h ; c6 46 13 01 10781 jmp near 079 35h ; e9 62 0310807 jmp near 07953h ; e9 62 03 10782 10808 mov ax, strict word 00065h ; b8 65 00 10783 call 074 b4h ; e8 db fe10809 call 074d2h ; e8 db fe 10784 10810 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10785 10811 mov byte [bp+013h], 000h ; c6 46 13 00 10786 10812 mov al, byte [bp+012h] ; 8a 46 12 10787 10813 cmp AL, strict byte 007h ; 3c 07 10788 jnbe near 079 1ch ; 0f 87 32 0310814 jnbe near 0793ah ; 0f 87 32 03 10789 10815 movzx si, al ; 0f b6 f0 10790 10816 add si, si ; 01 f6 10791 jmp word [cs:si+075 a0h] ; 2e ff a4 a07510817 jmp word [cs:si+075beh] ; 2e ff a4 be 75 10792 10818 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10793 jnbe near 079 27h ; 0f 87 2b 0310819 jnbe near 07945h ; 0f 87 2b 03 10794 10820 mov dx, strict word 00027h ; ba 27 00 10795 10821 mov ax, cx ; 89 c8 10796 call 01749h ; e8 45a110822 call 01749h ; e8 27 a1 10797 10823 test AL, strict byte 080h ; a8 80 10798 jne short 076 13h ; 75 0b10824 jne short 07631h ; 75 0b 10799 10825 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10800 10826 mov byte [bp+013h], 005h ; c6 46 13 05 10801 jmp near 079 2fh ; e9 1c 0310827 jmp near 0794dh ; e9 1c 03 10802 10828 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10803 10829 db 00fh, 094h, 0c0h … … 10805 10831 add AL, strict byte 0f4h ; 04 f4 10806 10832 xor ah, ah ; 30 e4 10807 call 074 24h ; e8 03 fe10833 call 07442h ; e8 03 fe 10808 10834 test al, al ; 84 c0 10809 jne near 078 b5h ; 0f 85 8e 0210835 jne near 078d3h ; 0f 85 8e 02 10810 10836 mov dx, ss ; 8c d2 10811 10837 lea ax, [bp-008h] ; 8d 46 f8 10812 call 074 58h ; e8 29 fe10838 call 07476h ; e8 29 fe 10813 10839 test al, al ; 84 c0 10814 je near 079 2fh ; 0f 84 fa 0210840 je near 0794dh ; 0f 84 fa 02 10815 10841 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10816 jne near 078 b5h ; 0f 85 78 0210817 jmp near 079 2fh ; e9 ef 0210842 jne near 078d3h ; 0f 85 78 02 10843 jmp near 0794dh ; e9 ef 02 10818 10844 mov al, byte [bp+00dh] ; 8a 46 0d 10819 10845 cmp AL, strict byte 001h ; 3c 01 10820 jc short 076 4bh ; 72 0410846 jc short 07669h ; 72 04 10821 10847 cmp AL, strict byte 008h ; 3c 08 10822 jbe short 076 4eh ; 76 0310823 jmp near 077 e1h ; e9 93 0110848 jbe short 0766ch ; 76 03 10849 jmp near 077ffh ; e9 93 01 10824 10850 mov dx, strict word 00027h ; ba 27 00 10825 10851 mov ax, cx ; 89 c8 10826 call 01749h ; e8 f3a010852 call 01749h ; e8 d5 a0 10827 10853 mov ah, byte [bp+00dh] ; 8a 66 0d 10828 10854 db 0feh, 0cch … … 10833 10859 mov dx, strict word 00027h ; ba 27 00 10834 10860 mov ax, cx ; 89 c8 10835 call 01757h ; e8 eda010861 call 01757h ; e8 cf a0 10836 10862 mov dx, strict word 00026h ; ba 26 00 10837 10863 mov ax, cx ; 89 c8 10838 call 01749h ; e8 d7a010864 call 01749h ; e8 b9 a0 10839 10865 and AL, strict byte 0f8h ; 24 f8 10840 10866 movzx bx, al ; 0f b6 d8 10841 10867 mov dx, strict word 00026h ; ba 26 00 10842 10868 mov ax, cx ; 89 c8 10843 call 01757h ; e8 d8a010869 call 01757h ; e8 ba a0 10844 10870 mov ax, 000ffh ; b8 ff 00 10845 call 074 24h ; e8 9f fd10871 call 07442h ; e8 9f fd 10846 10872 test al, al ; 84 c0 10847 jne near 078 b5h ; 0f 85 2a 0210873 jne near 078d3h ; 0f 85 2a 02 10848 10874 mov dx, ss ; 8c d2 10849 10875 lea ax, [bp-004h] ; 8d 46 fc 10850 call 074 58h ; e8 c5 fd10876 call 07476h ; e8 c5 fd 10851 10877 mov cl, al ; 88 c1 10852 10878 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10853 jne short 076 a6h ; 75 0b10879 jne short 076c4h ; 75 0b 10854 10880 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10855 10881 mov byte [bp+013h], 004h ; c6 46 13 04 10856 jmp near 079 2fh ; e9 89 0210882 jmp near 0794dh ; e9 89 02 10857 10883 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10858 je short 076 bch ; 74 1010884 je short 076dah ; 74 10 10859 10885 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10860 10886 push ax ; 50 10861 10887 push 00915h ; 68 15 09 10862 10888 push strict byte 00007h ; 6a 07 10863 call 01a6bh ; e8 b2a310889 call 01a6bh ; e8 94 a3 10864 10890 add sp, strict byte 00006h ; 83 c4 06 10865 10891 test cl, cl ; 84 c9 10866 jne near 078 b5h ; 0f 85 f3 0110892 jne near 078d3h ; 0f 85 f3 01 10867 10893 mov dx, ss ; 8c d2 10868 10894 lea ax, [bp-008h] ; 8d 46 f8 10869 call 074 58h ; e8 8e fd10895 call 07476h ; e8 8e fd 10870 10896 test al, al ; 84 c0 10871 jne near 078 b5h ; 0f 85 e5 0110897 jne near 078d3h ; 0f 85 e5 01 10872 10898 mov dx, ss ; 8c d2 10873 10899 lea ax, [bp-006h] ; 8d 46 fa 10874 call 074 58h ; e8 80 fd10900 call 07476h ; e8 80 fd 10875 10901 test al, al ; 84 c0 10876 jne near 078 b5h ; 0f 85 d7 0110902 jne near 078d3h ; 0f 85 d7 01 10877 10903 mov al, byte [bp-008h] ; 8a 46 f8 10878 10904 mov byte [bp+00ch], al ; 88 46 0c 10879 10905 mov al, byte [bp-006h] ; 8a 46 fa 10880 10906 mov byte [bp+00dh], al ; 88 46 0d 10881 jmp near 079 2fh ; e9 42 0210907 jmp near 0794dh ; e9 42 02 10882 10908 mov al, byte [bp+00dh] ; 8a 46 0d 10883 10909 cmp AL, strict byte 003h ; 3c 03 10884 jc short 077 04h ; 72 1010885 jbe short 077 22h ; 76 2c10910 jc short 07722h ; 72 10 10911 jbe short 07740h ; 76 2c 10886 10912 cmp AL, strict byte 006h ; 3c 06 10887 je short 077 34h ; 74 3a10913 je short 07752h ; 74 3a 10888 10914 cmp AL, strict byte 005h ; 3c 05 10889 je short 077 2eh ; 74 3010915 je short 0774ch ; 74 30 10890 10916 cmp AL, strict byte 004h ; 3c 04 10891 je short 077 28h ; 74 2610892 jmp short 077 3ah ; eb 3610917 je short 07746h ; 74 26 10918 jmp short 07758h ; eb 36 10893 10919 cmp AL, strict byte 002h ; 3c 02 10894 je short 077 1ch ; 74 1410920 je short 0773ah ; 74 14 10895 10921 cmp AL, strict byte 001h ; 3c 01 10896 je short 077 16h ; 74 0a10922 je short 07734h ; 74 0a 10897 10923 test al, al ; 84 c0 10898 jne short 077 3ah ; 75 2a10924 jne short 07758h ; 75 2a 10899 10925 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10900 jmp short 077 3eh ; eb 2810926 jmp short 0775ch ; eb 28 10901 10927 mov byte [bp-008h], 014h ; c6 46 f8 14 10902 jmp short 077 3eh ; eb 2210928 jmp short 0775ch ; eb 22 10903 10929 mov byte [bp-008h], 028h ; c6 46 f8 28 10904 jmp short 077 3eh ; eb 1c10930 jmp short 0775ch ; eb 1c 10905 10931 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10906 jmp short 077 3eh ; eb 1610932 jmp short 0775ch ; eb 16 10907 10933 mov byte [bp-008h], 050h ; c6 46 f8 50 10908 jmp short 077 3eh ; eb 1010934 jmp short 0775ch ; eb 10 10909 10935 mov byte [bp-008h], 064h ; c6 46 f8 64 10910 jmp short 077 3eh ; eb 0a10936 jmp short 0775ch ; eb 0a 10911 10937 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10912 jmp short 077 3eh ; eb 0410938 jmp short 0775ch ; eb 04 10913 10939 mov byte [bp-008h], 000h ; c6 46 f8 00 10914 10940 cmp byte [bp-008h], 000h ; 80 7e f8 00 10915 jbe short 077 73h ; 76 2f10941 jbe short 07791h ; 76 2f 10916 10942 mov ax, 000f3h ; b8 f3 00 10917 call 074 24h ; e8 da fc10943 call 07442h ; e8 da fc 10918 10944 test al, al ; 84 c0 10919 jne short 077 68h ; 75 1a10945 jne short 07786h ; 75 1a 10920 10946 mov dx, ss ; 8c d2 10921 10947 lea ax, [bp-006h] ; 8d 46 fa 10922 call 074 58h ; e8 02 fd10948 call 07476h ; e8 02 fd 10923 10949 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10924 call 074 24h ; e8 c7 fc10950 call 07442h ; e8 c7 fc 10925 10951 mov dx, ss ; 8c d2 10926 10952 lea ax, [bp-006h] ; 8d 46 fa 10927 call 074 58h ; e8 f3 fc10928 jmp near 079 2fh ; e9 c7 0110953 call 07476h ; e8 f3 fc 10954 jmp near 0794dh ; e9 c7 01 10929 10955 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10930 10956 mov byte [bp+013h], 003h ; c6 46 13 03 10931 jmp near 079 2fh ; e9 bc 0110957 jmp near 0794dh ; e9 bc 01 10932 10958 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10933 10959 mov byte [bp+013h], 002h ; c6 46 13 02 10934 jmp near 079 2fh ; e9 b1 0110960 jmp near 0794dh ; e9 b1 01 10935 10961 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10936 jnc short 077 e1h ; 73 5d10962 jnc short 077ffh ; 73 5d 10937 10963 mov ax, 000e8h ; b8 e8 00 10938 call 074 24h ; e8 9a fc10964 call 07442h ; e8 9a fc 10939 10965 test al, al ; 84 c0 10940 jne short 077 d6h ; 75 4810966 jne short 077f4h ; 75 48 10941 10967 mov dx, ss ; 8c d2 10942 10968 lea ax, [bp-008h] ; 8d 46 f8 10943 call 074 58h ; e8 c2 fc10969 call 07476h ; e8 c2 fc 10944 10970 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10945 je short 077 ach ; 74 1010971 je short 077cah ; 74 10 10946 10972 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10947 10973 push ax ; 50 10948 10974 push 00940h ; 68 40 09 10949 10975 push strict byte 00007h ; 6a 07 10950 call 01a6bh ; e8 c2a210976 call 01a6bh ; e8 a4 a2 10951 10977 add sp, strict byte 00006h ; 83 c4 06 10952 10978 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10953 call 074 24h ; e8 71 fc10979 call 07442h ; e8 71 fc 10954 10980 mov dx, ss ; 8c d2 10955 10981 lea ax, [bp-008h] ; 8d 46 f8 10956 call 074 58h ; e8 9d fc10982 call 07476h ; e8 9d fc 10957 10983 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10958 je near 079 2fh ; 0f 84 6c 0110984 je near 0794dh ; 0f 84 6c 01 10959 10985 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10960 10986 push ax ; 50 10961 10987 push 00940h ; 68 40 09 10962 10988 push strict byte 00007h ; 6a 07 10963 call 01a6bh ; e8 9ba210989 call 01a6bh ; e8 7d a2 10964 10990 add sp, strict byte 00006h ; 83 c4 06 10965 jmp near 079 2fh ; e9 59 0110991 jmp near 0794dh ; e9 59 01 10966 10992 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10967 10993 mov byte [bp+013h], 003h ; c6 46 13 03 10968 jmp near 079 2fh ; e9 4e 0110994 jmp near 0794dh ; e9 4e 01 10969 10995 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10970 10996 mov byte [bp+013h], 002h ; c6 46 13 02 10971 jmp near 079 2fh ; e9 43 0110997 jmp near 0794dh ; e9 43 01 10972 10998 mov ax, 000f2h ; b8 f2 00 10973 call 074 24h ; e8 32 fc10999 call 07442h ; e8 32 fc 10974 11000 test al, al ; 84 c0 10975 jne short 078 09h ; 75 1311001 jne short 07827h ; 75 13 10976 11002 mov dx, ss ; 8c d2 10977 11003 lea ax, [bp-008h] ; 8d 46 f8 10978 call 074 58h ; e8 5a fc11004 call 07476h ; e8 5a fc 10979 11005 mov dx, ss ; 8c d2 10980 11006 lea ax, [bp-006h] ; 8d 46 fa 10981 call 074 58h ; e8 52 fc10982 jmp near 07 6e4h ; e9 db fe11007 call 07476h ; e8 52 fc 11008 jmp near 07702h ; e9 db fe 10983 11009 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10984 11010 mov byte [bp+013h], 003h ; c6 46 13 03 10985 jmp near 079 2fh ; e9 1b 0111011 jmp near 0794dh ; e9 1b 01 10986 11012 mov al, byte [bp+00dh] ; 8a 46 0d 10987 11013 test al, al ; 84 c0 10988 jbe short 078 22h ; 76 0711014 jbe short 07840h ; 76 07 10989 11015 cmp AL, strict byte 002h ; 3c 02 10990 jbe short 078 8bh ; 76 6c10991 jmp near 078 bfh ; e9 9d 0011016 jbe short 078a9h ; 76 6c 11017 jmp near 078ddh ; e9 9d 00 10992 11018 mov ax, 000e9h ; b8 e9 00 10993 call 074 24h ; e8 fc fb11019 call 07442h ; e8 fc fb 10994 11020 test al, al ; 84 c0 10995 jne near 078 b5h ; 0f 85 87 0011021 jne near 078d3h ; 0f 85 87 00 10996 11022 mov dx, ss ; 8c d2 10997 11023 lea ax, [bp-008h] ; 8d 46 f8 10998 call 074 58h ; e8 22 fc11024 call 07476h ; e8 22 fc 10999 11025 mov cl, al ; 88 c1 11000 11026 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11001 je short 078 4eh ; 74 1011027 je short 0786ch ; 74 10 11002 11028 movzx ax, byte [bp-008h] ; 0f b6 46 f8 11003 11029 push ax ; 50 11004 11030 push 00940h ; 68 40 09 11005 11031 push strict byte 00007h ; 6a 07 11006 call 01a6bh ; e8 20a211032 call 01a6bh ; e8 02 a2 11007 11033 add sp, strict byte 00006h ; 83 c4 06 11008 11034 test cl, cl ; 84 c9 11009 jne short 078 b5h ; 75 6311035 jne short 078d3h ; 75 63 11010 11036 mov dx, ss ; 8c d2 11011 11037 lea ax, [bp-008h] ; 8d 46 f8 11012 call 074 58h ; e8 fe fb11038 call 07476h ; e8 fe fb 11013 11039 test al, al ; 84 c0 11014 jne short 078 b5h ; 75 5711040 jne short 078d3h ; 75 57 11015 11041 mov dx, ss ; 8c d2 11016 11042 lea ax, [bp-006h] ; 8d 46 fa 11017 call 074 58h ; e8 f2 fb11043 call 07476h ; e8 f2 fb 11018 11044 test al, al ; 84 c0 11019 jne short 078 b5h ; 75 4b11045 jne short 078d3h ; 75 4b 11020 11046 mov dx, ss ; 8c d2 11021 11047 lea ax, [bp-004h] ; 8d 46 fc 11022 call 074 58h ; e8 e6 fb11048 call 07476h ; e8 e6 fb 11023 11049 test al, al ; 84 c0 11024 jne short 078 b5h ; 75 3f11050 jne short 078d3h ; 75 3f 11025 11051 mov al, byte [bp-008h] ; 8a 46 f8 11026 11052 mov byte [bp+00ch], al ; 88 46 0c … … 11029 11055 mov al, byte [bp-004h] ; 8a 46 fc 11030 11056 mov byte [bp+00eh], al ; 88 46 0e 11031 jmp near 079 2fh ; e9 a4 0011057 jmp near 0794dh ; e9 a4 00 11032 11058 cmp AL, strict byte 001h ; 3c 01 11033 jne short 078 94h ; 75 0511059 jne short 078b2h ; 75 05 11034 11060 mov ax, 000e6h ; b8 e6 00 11035 jmp short 078 97h ; eb 0311061 jmp short 078b5h ; eb 03 11036 11062 mov ax, 000e7h ; b8 e7 00 11037 call 074 24h ; e8 8a fb11063 call 07442h ; e8 8a fb 11038 11064 mov cl, al ; 88 c1 11039 11065 test cl, cl ; 84 c9 11040 jne short 078 afh ; 75 0f11066 jne short 078cdh ; 75 0f 11041 11067 mov dx, ss ; 8c d2 11042 11068 lea ax, [bp-008h] ; 8d 46 f8 11043 call 074 58h ; e8 b0 fb11069 call 07476h ; e8 b0 fb 11044 11070 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11045 11071 db 00fh, 095h, 0c1h 11046 11072 ; setne cl ; 0f 95 c1 11047 11073 test cl, cl ; 84 c9 11048 je near 079 2fh ; 0f 84 7a 0011074 je near 0794dh ; 0f 84 7a 00 11049 11075 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11050 11076 mov byte [bp+013h], 003h ; c6 46 13 03 11051 jmp short 079 2fh ; eb 7011077 jmp short 0794dh ; eb 70 11052 11078 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 11053 11079 push ax ; 50 11054 11080 push 0096ch ; 68 6c 09 11055 11081 push strict byte 00007h ; 6a 07 11056 call 01a6bh ; e8 9fa111082 call 01a6bh ; e8 81 a1 11057 11083 add sp, strict byte 00006h ; 83 c4 06 11058 11084 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11059 11085 mov byte [bp+013h], 001h ; c6 46 13 01 11060 jmp short 079 2fh ; eb 5611086 jmp short 0794dh ; eb 56 11061 11087 mov si, word [bp+00ch] ; 8b 76 0c 11062 11088 mov bx, si ; 89 f3 11063 11089 mov dx, strict word 00022h ; ba 22 00 11064 11090 mov ax, cx ; 89 c8 11065 call 01773h ; e8 8d9e11091 call 01773h ; e8 6f 9e 11066 11092 mov bx, word [bp+014h] ; 8b 5e 14 11067 11093 mov dx, strict word 00024h ; ba 24 00 11068 11094 mov ax, cx ; 89 c8 11069 call 01773h ; e8 829e11095 call 01773h ; e8 64 9e 11070 11096 mov dx, strict word 00027h ; ba 27 00 11071 11097 mov ax, cx ; 89 c8 11072 call 01749h ; e8 509e11098 call 01749h ; e8 32 9e 11073 11099 mov ah, al ; 88 c4 11074 11100 test si, si ; 85 f6 11075 jne short 079 0dh ; 75 0e11101 jne short 0792bh ; 75 0e 11076 11102 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11077 jne short 079 0dh ; 75 0811103 jne short 0792bh ; 75 08 11078 11104 test AL, strict byte 080h ; a8 80 11079 je short 079 0fh ; 74 0611105 je short 0792dh ; 74 06 11080 11106 and AL, strict byte 07fh ; 24 7f 11081 jmp short 079 0fh ; eb 0211107 jmp short 0792dh ; eb 02 11082 11108 or AL, strict byte 080h ; 0c 80 11083 11109 movzx bx, al ; 0f b6 d8 11084 11110 mov dx, strict word 00027h ; ba 27 00 11085 11111 mov ax, cx ; 89 c8 11086 call 01757h ; e8 3d9e11087 jmp short 079 2fh ; eb 1311112 call 01757h ; e8 1f 9e 11113 jmp short 0794dh ; eb 13 11088 11114 push 00986h ; 68 86 09 11089 11115 push strict byte 00007h ; 6a 07 11090 call 01a6bh ; e8 47a111116 call 01a6bh ; e8 29 a1 11091 11117 add sp, strict byte 00004h ; 83 c4 04 11092 11118 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11093 11119 mov byte [bp+013h], 001h ; c6 46 13 01 11094 11120 mov ax, strict word 00047h ; b8 47 00 11095 call 074 b4h ; e8 7f fb11121 call 074d2h ; e8 7f fb 11096 11122 lea sp, [bp-002h] ; 8d 66 fe 11097 11123 pop si ; 5e 11098 11124 pop bp ; 5d 11099 11125 retn ; c3 11100 _int17_function: ; 0xf79 3bLB 0xb311126 _int17_function: ; 0xf7959 LB 0xb3 11101 11127 push bp ; 55 11102 11128 mov bp, sp ; 89 e5 … … 11108 11134 add dx, strict byte 00008h ; 83 c2 08 11109 11135 mov ax, strict word 00040h ; b8 40 00 11110 call 01765h ; e8 16 9e11136 call 01765h ; e8 f8 9d 11111 11137 mov bx, ax ; 89 c3 11112 11138 mov si, ax ; 89 c6 11113 11139 cmp byte [bp+013h], 003h ; 80 7e 13 03 11114 jnc near 07 9e4h ; 0f 83 89 0011140 jnc near 07a02h ; 0f 83 89 00 11115 11141 mov ax, word [bp+00eh] ; 8b 46 0e 11116 11142 cmp ax, strict word 00003h ; 3d 03 00 11117 jnc near 07 9e4h ; 0f 83 7f 0011143 jnc near 07a02h ; 0f 83 7f 00 11118 11144 test bx, bx ; 85 db 11119 jbe near 07 9e4h ; 0f 86 79 0011145 jbe near 07a02h ; 0f 86 79 00 11120 11146 mov dx, ax ; 89 c2 11121 11147 add dx, strict byte 00078h ; 83 c2 78 11122 11148 mov ax, strict word 00040h ; b8 40 00 11123 call 01749h ; e8 d39d11149 call 01749h ; e8 b5 9d 11124 11150 movzx cx, al ; 0f b6 c8 11125 11151 sal cx, 008h ; c1 e1 08 11126 11152 cmp byte [bp+013h], 000h ; 80 7e 13 00 11127 jne short 079 afh ; 75 2d11153 jne short 079cdh ; 75 2d 11128 11154 mov al, byte [bp+012h] ; 8a 46 12 11129 11155 mov dx, bx ; 89 da … … 11145 11171 ; sub ah, ah ; 2a e4 11146 11172 test AL, strict byte 040h ; a8 40 11147 je short 079 afh ; 74 0711173 je short 079cdh ; 74 07 11148 11174 test cx, cx ; 85 c9 11149 je short 079 afh ; 74 0311175 je short 079cdh ; 74 03 11150 11176 dec cx ; 49 11151 jmp short 079 9eh ; eb ef11177 jmp short 079bch ; eb ef 11152 11178 cmp byte [bp+013h], 001h ; 80 7e 13 01 11153 jne short 079 cbh ; 75 1611179 jne short 079e9h ; 75 16 11154 11180 lea dx, [si+002h] ; 8d 54 02 11155 11181 in AL, DX ; ec … … 11170 11196 mov byte [bp+013h], al ; 88 46 13 11171 11197 test cx, cx ; 85 c9 11172 jne short 079 deh ; 75 0411198 jne short 079fch ; 75 04 11173 11199 or byte [bp+013h], 001h ; 80 4e 13 01 11174 11200 and byte [bp+01ch], 0feh ; 80 66 1c fe 11175 jmp short 07 9e8h ; eb 0411201 jmp short 07a06h ; eb 04 11176 11202 or byte [bp+01ch], 001h ; 80 4e 1c 01 11177 11203 lea sp, [bp-002h] ; 8d 66 fe … … 11179 11205 pop bp ; 5d 11180 11206 retn ; c3 11181 wait_: ; 0xf7 9eeLB 0xb211207 wait_: ; 0xf7a0c LB 0xb2 11182 11208 push bp ; 55 11183 11209 mov bp, sp ; 89 e5 … … 11197 11223 mov dx, 0046ch ; ba 6c 04 11198 11224 xor ax, ax ; 31 c0 11199 call 01781h ; e8 709d11225 call 01781h ; e8 52 9d 11200 11226 mov word [bp-00eh], ax ; 89 46 f2 11201 11227 mov bx, dx ; 89 d3 … … 11203 11229 mov dx, 0046ch ; ba 6c 04 11204 11230 xor ax, ax ; 31 c0 11205 call 01781h ; e8 629d11231 call 01781h ; e8 44 9d 11206 11232 mov word [bp-012h], ax ; 89 46 ee 11207 11233 mov di, dx ; 89 d7 11208 11234 cmp dx, bx ; 39 da 11209 jnbe short 07a 2fh ; 77 0711210 jne short 07a 36h ; 75 0c11235 jnbe short 07a4dh ; 77 07 11236 jne short 07a54h ; 75 0c 11211 11237 cmp ax, word [bp-00eh] ; 3b 46 f2 11212 jbe short 07a 36h ; 76 0711238 jbe short 07a54h ; 76 07 11213 11239 sub ax, word [bp-00eh] ; 2b 46 f2 11214 11240 sbb dx, bx ; 19 da 11215 jmp short 07a 41h ; eb 0b11241 jmp short 07a5fh ; eb 0b 11216 11242 cmp dx, bx ; 39 da 11217 jc short 07a 41h ; 72 0711218 jne short 07a 45h ; 75 0911243 jc short 07a5fh ; 72 07 11244 jne short 07a63h ; 75 09 11219 11245 cmp ax, word [bp-00eh] ; 3b 46 f2 11220 jnc short 07a 45h ; 73 0411246 jnc short 07a63h ; 73 04 11221 11247 sub si, ax ; 29 c6 11222 11248 sbb cx, dx ; 19 d1 … … 11226 11252 mov ax, 00100h ; b8 00 01 11227 11253 int 016h ; cd 16 11228 je near 07a 5bh ; 0f 84 05 0011254 je near 07a79h ; 0f 84 05 00 11229 11255 mov AL, strict byte 001h ; b0 01 11230 jmp near 07a 5dh ; e9 02 0011256 jmp near 07a7bh ; e9 02 00 11231 11257 db 032h, 0c0h 11232 11258 ; xor al, al ; 32 c0 11233 11259 test al, al ; 84 c0 11234 je short 07a 85h ; 74 2411260 je short 07aa3h ; 74 24 11235 11261 db 033h, 0c0h 11236 11262 ; xor ax, ax ; 33 c0 … … 11243 11269 push 009a8h ; 68 a8 09 11244 11270 push strict byte 00004h ; 6a 04 11245 call 01a6bh ; e8 f39f11271 call 01a6bh ; e8 d5 9f 11246 11272 add sp, strict byte 00006h ; 83 c4 06 11247 11273 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11248 je short 07a 85h ; 74 0411274 je short 07aa3h ; 74 04 11249 11275 mov al, dl ; 88 d0 11250 jmp short 07a 97h ; eb 1211276 jmp short 07ab5h ; eb 12 11251 11277 test cx, cx ; 85 c9 11252 jnle short 07a 16h ; 7f 8d11253 jne short 07a 8fh ; 75 0411278 jnle short 07a34h ; 7f 8d 11279 jne short 07aadh ; 75 04 11254 11280 test si, si ; 85 f6 11255 jnbe short 07a 16h ; 77 8711281 jnbe short 07a34h ; 77 87 11256 11282 mov ax, word [bp-010h] ; 8b 46 f0 11257 11283 push ax ; 50 … … 11265 11291 pop bp ; 5d 11266 11292 retn ; c3 11267 read_logo_byte_: ; 0xf7a a0LB 0x1611293 read_logo_byte_: ; 0xf7abe LB 0x16 11268 11294 push bp ; 55 11269 11295 mov bp, sp ; 89 e5 … … 11280 11306 pop bp ; 5d 11281 11307 retn ; c3 11282 read_logo_word_: ; 0xf7a b6LB 0x1411308 read_logo_word_: ; 0xf7ad4 LB 0x14 11283 11309 push bp ; 55 11284 11310 mov bp, sp ; 89 e5 … … 11293 11319 pop bp ; 5d 11294 11320 retn ; c3 11295 print_detected_harddisks_: ; 0xf7a caLB 0x13011321 print_detected_harddisks_: ; 0xf7ae8 LB 0x130 11296 11322 push bp ; 55 11297 11323 mov bp, sp ; 89 e5 … … 11305 11331 mov dx, strict word 0000eh ; ba 0e 00 11306 11332 mov ax, strict word 00040h ; b8 40 00 11307 call 01765h ; e8 889c11333 call 01765h ; e8 6a 9c 11308 11334 mov si, ax ; 89 c6 11309 11335 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11311 11337 xor ch, ch ; 30 ed 11312 11338 mov dx, 00304h ; ba 04 03 11313 call 01749h ; e8 5c9c11339 call 01749h ; e8 3e 9c 11314 11340 mov byte [bp-00eh], al ; 88 46 f2 11315 11341 xor bl, bl ; 30 db 11316 11342 cmp bl, byte [bp-00eh] ; 3a 5e f2 11317 jnc near 07b cch ; 0f 83 d3 0011343 jnc near 07beah ; 0f 83 d3 00 11318 11344 movzx dx, bl ; 0f b6 d3 11319 11345 add dx, 00305h ; 81 c2 05 03 11320 11346 mov ax, si ; 89 f0 11321 call 01749h ; e8 449c11347 call 01749h ; e8 26 9c 11322 11348 mov bh, al ; 88 c7 11323 11349 cmp AL, strict byte 00ch ; 3c 0c 11324 jc short 07b 2fh ; 72 2411350 jc short 07b4dh ; 72 24 11325 11351 test cl, cl ; 84 c9 11326 jne short 07b 1ch ; 75 0d11352 jne short 07b3ah ; 75 0d 11327 11353 push 009b9h ; 68 b9 09 11328 11354 push strict byte 00002h ; 6a 02 11329 call 01a6bh ; e8 549f11355 call 01a6bh ; e8 36 9f 11330 11356 add sp, strict byte 00004h ; 83 c4 04 11331 11357 mov CL, strict byte 001h ; b1 01 … … 11335 11361 push 009ceh ; 68 ce 09 11336 11362 push strict byte 00002h ; 6a 02 11337 call 01a6bh ; e8 429f11363 call 01a6bh ; e8 24 9f 11338 11364 add sp, strict byte 00006h ; 83 c4 06 11339 jmp near 07b c7h ; e9 98 0011365 jmp near 07be5h ; e9 98 00 11340 11366 cmp AL, strict byte 008h ; 3c 08 11341 jc short 07b 46h ; 72 1311367 jc short 07b64h ; 72 13 11342 11368 test ch, ch ; 84 ed 11343 jne short 07b 44h ; 75 0d11369 jne short 07b62h ; 75 0d 11344 11370 push 009e1h ; 68 e1 09 11345 11371 push strict byte 00002h ; 6a 02 11346 call 01a6bh ; e8 2c9f11372 call 01a6bh ; e8 0e 9f 11347 11373 add sp, strict byte 00004h ; 83 c4 04 11348 11374 mov CH, strict byte 001h ; b5 01 11349 jmp short 07b 1ch ; eb d611375 jmp short 07b3ah ; eb d6 11350 11376 cmp AL, strict byte 004h ; 3c 04 11351 jnc short 07b 61h ; 73 1711377 jnc short 07b7fh ; 73 17 11352 11378 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11353 jne short 07b 61h ; 75 1111379 jne short 07b7fh ; 75 11 11354 11380 push 009f6h ; 68 f6 09 11355 11381 push strict byte 00002h ; 6a 02 11356 call 01a6bh ; e8 13 9f11382 call 01a6bh ; e8 f5 9e 11357 11383 add sp, strict byte 00004h ; 83 c4 04 11358 11384 mov byte [bp-00ch], 001h ; c6 46 f4 01 11359 jmp short 07b 77h ; eb 1611385 jmp short 07b95h ; eb 16 11360 11386 cmp bh, 004h ; 80 ff 04 11361 jc short 07b 77h ; 72 1111387 jc short 07b95h ; 72 11 11362 11388 test cl, cl ; 84 c9 11363 jne short 07b 77h ; 75 0d11389 jne short 07b95h ; 75 0d 11364 11390 push 00a08h ; 68 08 0a 11365 11391 push strict byte 00002h ; 6a 02 11366 call 01a6bh ; e8 f99e11392 call 01a6bh ; e8 db 9e 11367 11393 add sp, strict byte 00004h ; 83 c4 04 11368 11394 mov CL, strict byte 001h ; b1 01 … … 11372 11398 push 00a1ch ; 68 1c 0a 11373 11399 push strict byte 00002h ; 6a 02 11374 call 01a6bh ; e8 e79e11400 call 01a6bh ; e8 c9 9e 11375 11401 add sp, strict byte 00006h ; 83 c4 06 11376 11402 cmp bh, 004h ; 80 ff 04 11377 jc short 07b 8fh ; 72 0311403 jc short 07badh ; 72 03 11378 11404 sub bh, 004h ; 80 ef 04 11379 11405 movzx ax, bh ; 0f b6 c7 … … 11383 11409 sar ax, 1 ; d1 f8 11384 11410 test ax, ax ; 85 c0 11385 je short 07b a0h ; 74 0511411 je short 07bbeh ; 74 05 11386 11412 push 00a26h ; 68 26 0a 11387 jmp short 07b a3h ; eb 0311413 jmp short 07bc1h ; eb 03 11388 11414 push 00a31h ; 68 31 0a 11389 11415 push strict byte 00002h ; 6a 02 11390 call 01a6bh ; e8 c39e11416 call 01a6bh ; e8 a5 9e 11391 11417 add sp, strict byte 00004h ; 83 c4 04 11392 11418 movzx ax, bh ; 0f b6 c7 … … 11395 11421 idiv di ; f7 ff 11396 11422 test dx, dx ; 85 d2 11397 je short 07b bdh ; 74 0511423 je short 07bdbh ; 74 05 11398 11424 push 00a3ah ; 68 3a 0a 11399 jmp short 07b c0h ; eb 0311425 jmp short 07bdeh ; eb 03 11400 11426 push 00a40h ; 68 40 0a 11401 11427 push di ; 57 11402 call 01a6bh ; e8 a79e11428 call 01a6bh ; e8 89 9e 11403 11429 add sp, strict byte 00004h ; 83 c4 04 11404 11430 db 0feh, 0c3h 11405 11431 ; inc bl ; fe c3 11406 jmp near 07 af2h ; e9 26 ff11432 jmp near 07b10h ; e9 26 ff 11407 11433 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11408 jne short 07 be5h ; 75 1311434 jne short 07c03h ; 75 13 11409 11435 test cl, cl ; 84 c9 11410 jne short 07 be5h ; 75 0f11436 jne short 07c03h ; 75 0f 11411 11437 test ch, ch ; 84 ed 11412 jne short 07 be5h ; 75 0b11438 jne short 07c03h ; 75 0b 11413 11439 push 00a47h ; 68 47 0a 11414 11440 push strict byte 00002h ; 6a 02 11415 call 01a6bh ; e8 899e11441 call 01a6bh ; e8 6b 9e 11416 11442 add sp, strict byte 00004h ; 83 c4 04 11417 11443 push 00a5bh ; 68 5b 0a 11418 11444 push strict byte 00002h ; 6a 02 11419 call 01a6bh ; e8 7e9e11445 call 01a6bh ; e8 60 9e 11420 11446 add sp, strict byte 00004h ; 83 c4 04 11421 11447 lea sp, [bp-00ah] ; 8d 66 f6 … … 11427 11453 pop bp ; 5d 11428 11454 retn ; c3 11429 get_boot_drive_: ; 0xf7 bfaLB 0x2811455 get_boot_drive_: ; 0xf7c18 LB 0x28 11430 11456 push bp ; 55 11431 11457 mov bp, sp ; 89 e5 … … 11435 11461 mov dx, strict word 0000eh ; ba 0e 00 11436 11462 mov ax, strict word 00040h ; b8 40 00 11437 call 01765h ; e8 5b9b11463 call 01765h ; e8 3d 9b 11438 11464 mov dx, 00304h ; ba 04 03 11439 call 01749h ; e8 399b11465 call 01749h ; e8 1b 9b 11440 11466 sub bl, 002h ; 80 eb 02 11441 11467 cmp bl, al ; 38 c3 11442 jc short 07c 19h ; 72 0211468 jc short 07c37h ; 72 02 11443 11469 mov BL, strict byte 0ffh ; b3 ff 11444 11470 mov al, bl ; 88 d8 … … 11448 11474 pop bp ; 5d 11449 11475 retn ; c3 11450 show_logo_: ; 0xf7c 22LB 0x23111476 show_logo_: ; 0xf7c40 LB 0x231 11451 11477 push bp ; 55 11452 11478 mov bp, sp ; 89 e5 … … 11459 11485 mov dx, strict word 0000eh ; ba 0e 00 11460 11486 mov ax, strict word 00040h ; b8 40 00 11461 call 01765h ; e8 2f9b11487 call 01765h ; e8 11 9b 11462 11488 mov si, ax ; 89 c6 11463 11489 xor cl, cl ; 30 c9 … … 11470 11496 out strict byte 040h, AL ; e6 40 11471 11497 movzx ax, dl ; 0f b6 c2 11472 call 07a b6h ; e8 68 fe11498 call 07ad4h ; e8 68 fe 11473 11499 cmp ax, 066bbh ; 3d bb 66 11474 jne near 07d 33h ; 0f 85 de 0011500 jne near 07d51h ; 0f 85 de 00 11475 11501 push SS ; 16 11476 11502 pop ES ; 07 … … 11480 11506 mov word [es:di], bx ; 26 89 1d 11481 11507 cmp ax, strict word 0004fh ; 3d 4f 00 11482 jne near 07d 33h ; 0f 85 ca 0011508 jne near 07d51h ; 0f 85 ca 00 11483 11509 mov al, dl ; 88 d0 11484 11510 add AL, strict byte 004h ; 04 04 11485 11511 xor ah, ah ; 30 e4 11486 call 07a a0h ; e8 2e fe11512 call 07abeh ; e8 2e fe 11487 11513 mov ch, al ; 88 c5 11488 11514 mov byte [bp-00ch], al ; 88 46 f4 … … 11490 11516 add AL, strict byte 005h ; 04 05 11491 11517 xor ah, ah ; 30 e4 11492 call 07a a0h ; e8 20 fe11518 call 07abeh ; e8 20 fe 11493 11519 mov dh, al ; 88 c6 11494 11520 mov byte [bp-010h], al ; 88 46 f0 … … 11496 11522 add AL, strict byte 002h ; 04 02 11497 11523 xor ah, ah ; 30 e4 11498 call 07a b6h ; e8 28 fe11524 call 07ad4h ; e8 28 fe 11499 11525 mov bx, ax ; 89 c3 11500 11526 mov word [bp-014h], ax ; 89 46 ec … … 11502 11528 add AL, strict byte 006h ; 04 06 11503 11529 xor ah, ah ; 30 e4 11504 call 07a a0h ; e8 04 fe11530 call 07abeh ; e8 04 fe 11505 11531 mov byte [bp-012h], al ; 88 46 ee 11506 11532 test ch, ch ; 84 ed 11507 jne short 07c adh ; 75 0a11533 jne short 07ccbh ; 75 0a 11508 11534 test dh, dh ; 84 f6 11509 jne short 07c adh ; 75 0611535 jne short 07ccbh ; 75 06 11510 11536 test bx, bx ; 85 db 11511 je near 07d 33h ; 0f 84 86 0011537 je near 07d51h ; 0f 84 86 00 11512 11538 mov bx, 00142h ; bb 42 01 11513 11539 mov ax, 04f02h ; b8 02 4f 11514 11540 int 010h ; cd 10 11515 11541 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11516 je short 07c deh ; 74 2311542 je short 07cfch ; 74 23 11517 11543 xor bx, bx ; 31 db 11518 jmp short 07c c5h ; eb 0611544 jmp short 07ce3h ; eb 06 11519 11545 inc bx ; 43 11520 11546 cmp bx, strict byte 00010h ; 83 fb 10 11521 jnbe short 07 ce5h ; 77 2011547 jnbe short 07d03h ; 77 20 11522 11548 mov ax, bx ; 89 d8 11523 11549 or ah, 002h ; 80 cc 02 … … 11526 11552 xor dx, dx ; 31 d2 11527 11553 mov ax, strict word 00001h ; b8 01 00 11528 call 07 9eeh ; e8 18 fd11554 call 07a0ch ; e8 18 fd 11529 11555 cmp AL, strict byte 086h ; 3c 86 11530 jne short 07c bfh ; 75 e511556 jne short 07cddh ; 75 e5 11531 11557 mov CL, strict byte 001h ; b1 01 11532 jmp short 07 ce5h ; eb 0711558 jmp short 07d03h ; eb 07 11533 11559 mov ax, 00210h ; b8 10 02 11534 11560 mov dx, 003b8h ; ba b8 03 11535 11561 out DX, ax ; ef 11536 11562 test cl, cl ; 84 c9 11537 jne short 07 cfbh ; 75 1211563 jne short 07d19h ; 75 12 11538 11564 mov ax, word [bp-014h] ; 8b 46 ec 11539 11565 shr ax, 004h ; c1 e8 04 11540 11566 mov dx, strict word 00001h ; ba 01 00 11541 call 07 9eeh ; e8 f9 fc11567 call 07a0ch ; e8 f9 fc 11542 11568 cmp AL, strict byte 086h ; 3c 86 11543 jne short 07 cfbh ; 75 0211569 jne short 07d19h ; 75 02 11544 11570 mov CL, strict byte 001h ; b1 01 11545 11571 cmp byte [bp-010h], 000h ; 80 7e f0 00 11546 je short 07d 28h ; 74 2711572 je short 07d46h ; 74 27 11547 11573 test cl, cl ; 84 c9 11548 jne short 07d 28h ; 75 2311574 jne short 07d46h ; 75 23 11549 11575 mov bx, strict word 00010h ; bb 10 00 11550 jmp short 07d 0fh ; eb 0511576 jmp short 07d2dh ; eb 05 11551 11577 dec bx ; 4b 11552 11578 test bx, bx ; 85 db 11553 jbe short 07d 33h ; 76 2411579 jbe short 07d51h ; 76 24 11554 11580 mov ax, bx ; 89 d8 11555 11581 or ah, 002h ; 80 cc 02 … … 11558 11584 xor dx, dx ; 31 d2 11559 11585 mov ax, strict word 00001h ; b8 01 00 11560 call 07 9eeh ; e8 ce fc11586 call 07a0ch ; e8 ce fc 11561 11587 cmp AL, strict byte 086h ; 3c 86 11562 jne short 07d 0ah ; 75 e611588 jne short 07d28h ; 75 e6 11563 11589 mov CL, strict byte 001h ; b1 01 11564 jmp short 07d 33h ; eb 0b11590 jmp short 07d51h ; eb 0b 11565 11591 test cl, cl ; 84 c9 11566 jne short 07d 33h ; 75 0711592 jne short 07d51h ; 75 07 11567 11593 mov ax, 00200h ; b8 00 02 11568 11594 mov dx, 003b8h ; ba b8 03 … … 11571 11597 mov dx, 0037dh ; ba 7d 03 11572 11598 mov ax, si ; 89 f0 11573 call 01757h ; e8 1a 9a11599 call 01757h ; e8 fc 99 11574 11600 mov AL, strict byte 003h ; b0 03 11575 11601 mov AH, strict byte 000h ; b4 00 11576 11602 int 010h ; cd 10 11577 11603 cmp byte [bp-012h], 000h ; 80 7e ee 00 11578 je near 07e 34h ; 0f 84 e9 0011604 je near 07e52h ; 0f 84 e9 00 11579 11605 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11580 jne short 07d 81h ; 75 3011606 jne short 07d9fh ; 75 30 11581 11607 cmp byte [bp-010h], 000h ; 80 7e f0 00 11582 jne short 07d 81h ; 75 2a11608 jne short 07d9fh ; 75 2a 11583 11609 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11584 jne short 07d 81h ; 75 2411610 jne short 07d9fh ; 75 24 11585 11611 cmp byte [bp-012h], 002h ; 80 7e ee 02 11586 jne short 07d 6eh ; 75 0b11612 jne short 07d8ch ; 75 0b 11587 11613 push 00a5dh ; 68 5d 0a 11588 11614 push strict byte 00002h ; 6a 02 11589 call 01a6bh ; e8 00 9d11615 call 01a6bh ; e8 e2 9c 11590 11616 add sp, strict byte 00004h ; 83 c4 04 11591 11617 test cl, cl ; 84 c9 11592 jne short 07d 81h ; 75 0f11618 jne short 07d9fh ; 75 0f 11593 11619 mov dx, strict word 00001h ; ba 01 00 11594 11620 mov ax, 000c0h ; b8 c0 00 11595 call 07 9eeh ; e8 73 fc11621 call 07a0ch ; e8 73 fc 11596 11622 cmp AL, strict byte 086h ; 3c 86 11597 jne short 07d 81h ; 75 0211623 jne short 07d9fh ; 75 02 11598 11624 mov CL, strict byte 001h ; b1 01 11599 11625 test cl, cl ; 84 c9 11600 je near 07e 34h ; 0f 84 ad 0011626 je near 07e52h ; 0f 84 ad 00 11601 11627 mov byte [bp-00eh], 000h ; c6 46 f2 00 11602 11628 mov ax, 00100h ; b8 00 01 … … 11617 11643 push 00a7fh ; 68 7f 0a 11618 11644 push strict byte 00002h ; 6a 02 11619 call 01a6bh ; e8 bb9c11645 call 01a6bh ; e8 9d 9c 11620 11646 add sp, strict byte 00004h ; 83 c4 04 11621 call 07a cah ; e8 14 fd11647 call 07ae8h ; e8 14 fd 11622 11648 push 00ac3h ; 68 c3 0a 11623 11649 push strict byte 00002h ; 6a 02 11624 call 01a6bh ; e8 ad9c11650 call 01a6bh ; e8 8f 9c 11625 11651 add sp, strict byte 00004h ; 83 c4 04 11626 11652 mov dx, strict word 00001h ; ba 01 00 11627 11653 mov ax, strict word 00040h ; b8 40 00 11628 call 07 9eeh ; e8 24 fc11654 call 07a0ch ; e8 24 fc 11629 11655 mov bl, al ; 88 c3 11630 11656 test al, al ; 84 c0 11631 je short 07d c1h ; 74 f111657 je short 07ddfh ; 74 f1 11632 11658 cmp AL, strict byte 030h ; 3c 30 11633 je short 07e 22h ; 74 4e11659 je short 07e40h ; 74 4e 11634 11660 cmp bl, 002h ; 80 fb 02 11635 jc short 07 dfbh ; 72 2211661 jc short 07e19h ; 72 22 11636 11662 cmp bl, 009h ; 80 fb 09 11637 jnbe short 07 dfbh ; 77 1d11663 jnbe short 07e19h ; 77 1d 11638 11664 movzx ax, bl ; 0f b6 c3 11639 call 07 bfah ; e8 16 fe11665 call 07c18h ; e8 16 fe 11640 11666 cmp AL, strict byte 0ffh ; 3c ff 11641 jne short 07 deah ; 75 0211642 jmp short 07d c1h ; eb d711667 jne short 07e08h ; 75 02 11668 jmp short 07ddfh ; eb d7 11643 11669 movzx bx, al ; 0f b6 d8 11644 11670 mov dx, 0037ch ; ba 7c 03 11645 11671 mov ax, si ; 89 f0 11646 call 01757h ; e8 629911672 call 01757h ; e8 44 99 11647 11673 mov byte [bp-00eh], 002h ; c6 46 f2 02 11648 jmp short 07e 22h ; eb 2711674 jmp short 07e40h ; eb 27 11649 11675 cmp bl, 02eh ; 80 fb 2e 11650 je short 07e 10h ; 74 1011676 je short 07e2eh ; 74 10 11651 11677 cmp bl, 026h ; 80 fb 26 11652 je short 07e 16h ; 74 1111678 je short 07e34h ; 74 11 11653 11679 cmp bl, 021h ; 80 fb 21 11654 jne short 07e 1ch ; 75 1211680 jne short 07e3ah ; 75 12 11655 11681 mov byte [bp-00eh], 001h ; c6 46 f2 01 11656 jmp short 07e 22h ; eb 1211682 jmp short 07e40h ; eb 12 11657 11683 mov byte [bp-00eh], 003h ; c6 46 f2 03 11658 jmp short 07e 22h ; eb 0c11684 jmp short 07e40h ; eb 0c 11659 11685 mov byte [bp-00eh], 004h ; c6 46 f2 04 11660 jmp short 07e 22h ; eb 0611686 jmp short 07e40h ; eb 06 11661 11687 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11662 je short 07d c1h ; 74 9f11688 je short 07ddfh ; 74 9f 11663 11689 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 11664 11690 mov dx, 0037dh ; ba 7d 03 11665 11691 mov ax, si ; 89 f0 11666 call 01757h ; e8 299911692 call 01757h ; e8 0b 99 11667 11693 mov AL, strict byte 003h ; b0 03 11668 11694 mov AH, strict byte 000h ; b4 00 … … 11677 11703 push DS ; 1e 11678 11704 mov ds, ax ; 8e d8 11679 call 0edbfh ; e8 796f11705 call 0edbfh ; e8 5b 6f 11680 11706 pop DS ; 1f 11681 11707 popad ; 66 61 … … 11688 11714 pop bp ; 5d 11689 11715 retn ; c3 11690 delay_boot_: ; 0xf7e 53LB 0x6711716 delay_boot_: ; 0xf7e71 LB 0x67 11691 11717 push bp ; 55 11692 11718 mov bp, sp ; 89 e5 … … 11695 11721 mov dx, ax ; 89 c2 11696 11722 test ax, ax ; 85 c0 11697 je short 07e b3h ; 74 5511723 je short 07ed1h ; 74 55 11698 11724 mov AL, strict byte 034h ; b0 34 11699 11725 out strict byte 043h, AL ; e6 43 … … 11705 11731 push 00b0dh ; 68 0d 0b 11706 11732 push strict byte 00002h ; 6a 02 11707 call 01a6bh ; e8 f89b11733 call 01a6bh ; e8 da 9b 11708 11734 add sp, strict byte 00006h ; 83 c4 06 11709 11735 mov bx, dx ; 89 d3 11710 11736 test bx, bx ; 85 db 11711 jbe short 07e 93h ; 76 1711737 jbe short 07eb1h ; 76 17 11712 11738 push bx ; 53 11713 11739 push 00b2bh ; 68 2b 0b 11714 11740 push strict byte 00002h ; 6a 02 11715 call 01a6bh ; e8 e69b11741 call 01a6bh ; e8 c8 9b 11716 11742 add sp, strict byte 00006h ; 83 c4 06 11717 11743 xor dx, dx ; 31 d2 11718 11744 mov ax, strict word 00040h ; b8 40 00 11719 call 07 9eeh ; e8 5e fb11745 call 07a0ch ; e8 5e fb 11720 11746 dec bx ; 4b 11721 jmp short 07e 78h ; eb e511747 jmp short 07e96h ; eb e5 11722 11748 push 00a5bh ; 68 5b 0a 11723 11749 push strict byte 00002h ; 6a 02 11724 call 01a6bh ; e8 d09b11750 call 01a6bh ; e8 b2 9b 11725 11751 add sp, strict byte 00004h ; 83 c4 04 11726 11752 mov AL, strict byte 034h ; b0 34 … … 11733 11759 push DS ; 1e 11734 11760 mov ds, ax ; 8e d8 11735 call 0edbfh ; e8 0f 6f11761 call 0edbfh ; e8 f1 6e 11736 11762 pop DS ; 1f 11737 11763 popad ; 66 61 … … 11741 11767 pop bp ; 5d 11742 11768 retn ; c3 11743 scsi_cmd_data_in_: ; 0xf7e baLB 0xd511769 scsi_cmd_data_in_: ; 0xf7ed8 LB 0xd5 11744 11770 push bp ; 55 11745 11771 mov bp, sp ; 89 e5 … … 11757 11783 ; sub ah, ah ; 2a e4 11758 11784 test AL, strict byte 001h ; a8 01 11759 jne short 07e d0h ; 75 f711785 jne short 07eeeh ; 75 f7 11760 11786 cmp byte [bp+004h], 010h ; 80 7e 04 10 11761 jne short 07 ee3h ; 75 0411787 jne short 07f01h ; 75 04 11762 11788 xor ax, ax ; 31 c0 11763 jmp short 07 ee7h ; eb 0411789 jmp short 07f05h ; eb 04 11764 11790 movzx ax, byte [bp+004h] ; 0f b6 46 04 11765 11791 mov di, ax ; 89 c7 … … 11769 11795 shr dx, 1 ; d1 ea 11770 11796 rcr ax, 1 ; d1 d8 11771 loop 07 ef1h ; e2 fa11797 loop 07f0fh ; e2 fa 11772 11798 mov cx, ax ; 89 c1 11773 11799 and cx, 000f0h ; 81 e1 f0 00 … … 11787 11813 shr dx, 1 ; d1 ea 11788 11814 rcr ax, 1 ; d1 d8 11789 loop 07f 16h ; e2 fa11815 loop 07f34h ; e2 fa 11790 11816 mov dx, si ; 89 f2 11791 11817 out DX, AL ; ee … … 11793 11819 movzx ax, byte [bp+004h] ; 0f b6 46 04 11794 11820 cmp cx, ax ; 39 c1 11795 jnc short 07f 37h ; 73 0e11821 jnc short 07f55h ; 73 0e 11796 11822 les di, [bp-00ah] ; c4 7e f6 11797 11823 add di, cx ; 01 cf … … 11800 11826 out DX, AL ; ee 11801 11827 inc cx ; 41 11802 jmp short 07f 21h ; eb ea11828 jmp short 07f3fh ; eb ea 11803 11829 mov dx, si ; 89 f2 11804 11830 in AL, DX ; ec … … 11806 11832 ; sub ah, ah ; 2a e4 11807 11833 test AL, strict byte 001h ; a8 01 11808 jne short 07f 37h ; 75 f711834 jne short 07f55h ; 75 f7 11809 11835 test AL, strict byte 002h ; a8 02 11810 je short 07f 52h ; 74 0e11836 je short 07f70h ; 74 0e 11811 11837 lea dx, [si+003h] ; 8d 54 03 11812 11838 xor al, al ; 30 c0 … … 11816 11842 ; sub ah, ah ; 2a e4 11817 11843 mov di, strict word 00004h ; bf 04 00 11818 jmp short 07f 84h ; eb 3211844 jmp short 07fa2h ; eb 32 11819 11845 lea dx, [si+001h] ; 8d 54 01 11820 11846 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11821 jne short 07f 61h ; 75 0611847 jne short 07f7fh ; 75 06 11822 11848 cmp bx, 08000h ; 81 fb 00 80 11823 jbe short 07f 7bh ; 76 1a11849 jbe short 07f99h ; 76 1a 11824 11850 mov cx, 08000h ; b9 00 80 11825 11851 les di, [bp+006h] ; c4 7e 06 … … 11830 11856 add ax, 00800h ; 05 00 08 11831 11857 mov word [bp+008h], ax ; 89 46 08 11832 jmp short 07f 52h ; eb d711858 jmp short 07f70h ; eb d7 11833 11859 mov cx, bx ; 89 d9 11834 11860 les di, [bp+006h] ; c4 7e 06 … … 11841 11867 pop bp ; 5d 11842 11868 retn 0000ah ; c2 0a 00 11843 scsi_cmd_data_out_: ; 0xf7f 8fLB 0xd511869 scsi_cmd_data_out_: ; 0xf7fad LB 0xd5 11844 11870 push bp ; 55 11845 11871 mov bp, sp ; 89 e5 … … 11857 11883 ; sub ah, ah ; 2a e4 11858 11884 test AL, strict byte 001h ; a8 01 11859 jne short 07f a5h ; 75 f711885 jne short 07fc3h ; 75 f7 11860 11886 cmp byte [bp+004h], 010h ; 80 7e 04 10 11861 jne short 07f b8h ; 75 0411887 jne short 07fd6h ; 75 04 11862 11888 xor ax, ax ; 31 c0 11863 jmp short 07f bch ; eb 0411889 jmp short 07fdah ; eb 04 11864 11890 movzx ax, byte [bp+004h] ; 0f b6 46 04 11865 11891 mov si, ax ; 89 c6 … … 11869 11895 shr dx, 1 ; d1 ea 11870 11896 rcr ax, 1 ; d1 d8 11871 loop 07f c6h ; e2 fa11897 loop 07fe4h ; e2 fa 11872 11898 mov cx, ax ; 89 c1 11873 11899 and cx, 000f0h ; 81 e1 f0 00 … … 11887 11913 shr dx, 1 ; d1 ea 11888 11914 rcr ax, 1 ; d1 d8 11889 loop 0 7febh ; e2 fa11915 loop 08009h ; e2 fa 11890 11916 mov dx, di ; 89 fa 11891 11917 out DX, AL ; ee … … 11893 11919 movzx ax, byte [bp+004h] ; 0f b6 46 04 11894 11920 cmp cx, ax ; 39 c1 11895 jnc short 080 0ch ; 73 0e11921 jnc short 0802ah ; 73 0e 11896 11922 les si, [bp-00ah] ; c4 76 f6 11897 11923 add si, cx ; 01 ce … … 11900 11926 out DX, AL ; ee 11901 11927 inc cx ; 41 11902 jmp short 0 7ff6h ; eb ea11928 jmp short 08014h ; eb ea 11903 11929 lea dx, [di+001h] ; 8d 55 01 11904 11930 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11905 jne short 080 1bh ; 75 0611931 jne short 08039h ; 75 06 11906 11932 cmp bx, 08000h ; 81 fb 00 80 11907 jbe short 080 36h ; 76 1b11933 jbe short 08054h ; 76 1b 11908 11934 mov cx, 08000h ; b9 00 80 11909 11935 les si, [bp+006h] ; c4 76 06 … … 11915 11941 add ax, 00800h ; 05 00 08 11916 11942 mov word [bp+008h], ax ; 89 46 08 11917 jmp short 080 0ch ; eb d611943 jmp short 0802ah ; eb d6 11918 11944 mov cx, bx ; 89 d9 11919 11945 les si, [bp+006h] ; c4 76 06 … … 11925 11951 ; sub ah, ah ; 2a e4 11926 11952 test AL, strict byte 001h ; a8 01 11927 jne short 080 3eh ; 75 f711953 jne short 0805ch ; 75 f7 11928 11954 test AL, strict byte 002h ; a8 02 11929 je short 080 59h ; 74 0e11955 je short 08077h ; 74 0e 11930 11956 lea dx, [di+003h] ; 8d 55 03 11931 11957 xor al, al ; 30 c0 … … 11935 11961 ; sub ah, ah ; 2a e4 11936 11962 mov ax, strict word 00004h ; b8 04 00 11937 jmp short 080 5bh ; eb 0211963 jmp short 08079h ; eb 02 11938 11964 xor ax, ax ; 31 c0 11939 11965 lea sp, [bp-004h] ; 8d 66 fc … … 11942 11968 pop bp ; 5d 11943 11969 retn 0000ah ; c2 0a 00 11944 @scsi_read_sectors: ; 0xf80 64LB 0xdb11970 @scsi_read_sectors: ; 0xf8082 LB 0xdb 11945 11971 push bp ; 55 11946 11972 mov bp, sp ; 89 e5 … … 11954 11980 mov byte [bp-006h], al ; 88 46 fa 11955 11981 cmp AL, strict byte 004h ; 3c 04 11956 jbe short 080 92h ; 76 1311982 jbe short 080b0h ; 76 13 11957 11983 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11958 11984 push ax ; 50 … … 11960 11986 push 00b42h ; 68 42 0b 11961 11987 push strict byte 00007h ; 6a 07 11962 call 01a6bh ; e8 dc9911988 call 01a6bh ; e8 be 99 11963 11989 add sp, strict byte 00008h ; 83 c4 08 11964 11990 mov es, [bp+006h] ; 8e 46 06 … … 11999 12025 sal word [bp-00ah], 1 ; d1 66 f6 12000 12026 rcl word [bp-008h], 1 ; d1 56 f8 12001 loop 08 0fbh ; e2 f812027 loop 08119h ; e2 f8 12002 12028 push dword [bp-00ah] ; 66 ff 76 f6 12003 12029 db 066h, 026h, 0ffh, 074h, 008h … … 12007 12033 mov cx, ss ; 8c d1 12008 12034 lea bx, [bp-01ah] ; 8d 5e e6 12009 call 07e bah ; e8 a2 fd12035 call 07ed8h ; e8 a2 fd 12010 12036 mov ah, al ; 88 c4 12011 12037 test al, al ; 84 c0 12012 jne short 081 33h ; 75 1512038 jne short 08151h ; 75 15 12013 12039 mov es, [bp+006h] ; 8e 46 06 12014 12040 mov word [es:si+018h], di ; 26 89 7c 18 … … 12023 12049 pop bp ; 5d 12024 12050 retn 00004h ; c2 04 00 12025 @scsi_write_sectors: ; 0xf81 3fLB 0xdb12051 @scsi_write_sectors: ; 0xf815d LB 0xdb 12026 12052 push bp ; 55 12027 12053 mov bp, sp ; 89 e5 … … 12035 12061 mov byte [bp-006h], al ; 88 46 fa 12036 12062 cmp AL, strict byte 004h ; 3c 04 12037 jbe short 081 6dh ; 76 1312063 jbe short 0818bh ; 76 13 12038 12064 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12039 12065 push ax ; 50 … … 12041 12067 push 00b42h ; 68 42 0b 12042 12068 push strict byte 00007h ; 6a 07 12043 call 01a6bh ; e8 01 9912069 call 01a6bh ; e8 e3 98 12044 12070 add sp, strict byte 00008h ; 83 c4 08 12045 12071 mov es, [bp+006h] ; 8e 46 06 … … 12080 12106 sal word [bp-00ah], 1 ; d1 66 f6 12081 12107 rcl word [bp-008h], 1 ; d1 56 f8 12082 loop 081 d6h ; e2 f812108 loop 081f4h ; e2 f8 12083 12109 push dword [bp-00ah] ; 66 ff 76 f6 12084 12110 db 066h, 026h, 0ffh, 074h, 008h … … 12088 12114 mov cx, ss ; 8c d1 12089 12115 lea bx, [bp-01ah] ; 8d 5e e6 12090 call 07f 8fh ; e8 9c fd12116 call 07fadh ; e8 9c fd 12091 12117 mov ah, al ; 88 c4 12092 12118 test al, al ; 84 c0 12093 jne short 082 0eh ; 75 1512119 jne short 0822ch ; 75 15 12094 12120 mov es, [bp+006h] ; 8e 46 06 12095 12121 mov word [es:si+018h], di ; 26 89 7c 18 … … 12104 12130 pop bp ; 5d 12105 12131 retn 00004h ; c2 04 00 12106 scsi_cmd_packet_: ; 0xf82 1aLB 0x16612132 scsi_cmd_packet_: ; 0xf8238 LB 0x166 12107 12133 push bp ; 55 12108 12134 mov bp, sp ; 89 e5 … … 12116 12142 mov dx, strict word 0000eh ; ba 0e 00 12117 12143 mov ax, strict word 00040h ; b8 40 00 12118 call 01765h ; e8 2f9512144 call 01765h ; e8 11 95 12119 12145 mov si, 00122h ; be 22 01 12120 12146 mov word [bp-00eh], ax ; 89 46 f2 12121 12147 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12122 jne short 082 61h ; 75 1f12123 mov bx, 00db 6h ; bb b60d12148 jne short 0827fh ; 75 1f 12149 mov bx, 00db2h ; bb b2 0d 12124 12150 mov cx, ds ; 8c d9 12125 12151 mov ax, strict word 00004h ; b8 04 00 12126 call 01a2ah ; e8 dd9712152 call 01a2ah ; e8 bf 97 12127 12153 push 00b74h ; 68 74 0b 12128 12154 push 00b84h ; 68 84 0b 12129 12155 push strict byte 00004h ; 6a 04 12130 call 01a6bh ; e8 13 9812156 call 01a6bh ; e8 f5 97 12131 12157 add sp, strict byte 00006h ; 83 c4 06 12132 12158 mov dx, strict word 00001h ; ba 01 00 12133 jmp near 083 75h ; e9 14 0112159 jmp near 08393h ; e9 14 01 12134 12160 sub di, strict byte 00008h ; 83 ef 08 12135 12161 sal di, 002h ; c1 e7 02 … … 12145 12171 ; sub ah, ah ; 2a e4 12146 12172 test AL, strict byte 001h ; a8 01 12147 jne short 082 7dh ; 75 f712173 jne short 0829bh ; 75 f7 12148 12174 xor ax, ax ; 31 c0 12149 12175 mov dx, word [bp+006h] ; 8b 56 06 … … 12161 12187 shr dx, 1 ; d1 ea 12162 12188 rcr ax, 1 ; d1 d8 12163 loop 082 a8h ; e2 fa12189 loop 082c6h ; e2 fa 12164 12190 and ax, 000f0h ; 25 f0 00 12165 12191 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 12179 12205 shr dx, 1 ; d1 ea 12180 12206 rcr ax, 1 ; d1 d8 12181 loop 082 cfh ; e2 fa12207 loop 082edh ; e2 fa 12182 12208 mov dx, bx ; 89 da 12183 12209 out DX, AL ; ee … … 12185 12211 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12186 12212 cmp cx, ax ; 39 c1 12187 jnc short 08 2f0h ; 73 0e12213 jnc short 0830eh ; 73 0e 12188 12214 les di, [bp-00ch] ; c4 7e f4 12189 12215 add di, cx ; 01 cf … … 12192 12218 out DX, AL ; ee 12193 12219 inc cx ; 41 12194 jmp short 082 dah ; eb ea12220 jmp short 082f8h ; eb ea 12195 12221 mov dx, bx ; 89 da 12196 12222 in AL, DX ; ec … … 12198 12224 ; sub ah, ah ; 2a e4 12199 12225 test AL, strict byte 001h ; a8 01 12200 jne short 08 2f0h ; 75 f712226 jne short 0830eh ; 75 f7 12201 12227 test AL, strict byte 002h ; a8 02 12202 je short 083 0bh ; 74 0e12228 je short 08329h ; 74 0e 12203 12229 lea dx, [bx+003h] ; 8d 57 03 12204 12230 xor al, al ; 30 c0 … … 12208 12234 ; sub ah, ah ; 2a e4 12209 12235 mov dx, strict word 00003h ; ba 03 00 12210 jmp short 083 75h ; eb 6a12236 jmp short 08393h ; eb 6a 12211 12237 mov ax, word [bp+004h] ; 8b 46 04 12212 12238 test ax, ax ; 85 c0 12213 je short 083 1ah ; 74 0812239 je short 08338h ; 74 08 12214 12240 lea dx, [bx+001h] ; 8d 57 01 12215 12241 mov cx, ax ; 89 c1 12216 12242 in AL, DX ; ec 12217 loop 083 17h ; e2 fd12243 loop 08335h ; e2 fd 12218 12244 mov ax, word [bp+006h] ; 8b 46 06 12219 12245 mov es, [bp-00eh] ; 8e 46 f2 … … 12223 12249 lea ax, [bx+001h] ; 8d 47 01 12224 12250 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12225 jne short 083 3bh ; 75 0712251 jne short 08359h ; 75 07 12226 12252 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12227 jbe short 083 58h ; 76 1d12253 jbe short 08376h ; 76 1d 12228 12254 mov dx, ax ; 89 c2 12229 12255 mov cx, 08000h ; b9 00 80 … … 12235 12261 add ax, 00800h ; 05 00 08 12236 12262 mov word [bp+00eh], ax ; 89 46 0e 12237 jmp short 083 2bh ; eb d312263 jmp short 08349h ; eb d3 12238 12264 mov dx, ax ; 89 c2 12239 12265 mov cx, word [bp+006h] ; 8b 4e 06 … … 12242 12268 mov es, [bp-00eh] ; 8e 46 f2 12243 12269 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12244 je short 083 73h ; 74 0712270 je short 08391h ; 74 07 12245 12271 mov cx, word [es:si+020h] ; 26 8b 4c 20 12246 12272 in AL, DX ; ec 12247 loop 083 70h ; e2 fd12273 loop 0838eh ; e2 fd 12248 12274 xor dx, dx ; 31 d2 12249 12275 mov ax, dx ; 89 d0 … … 12253 12279 pop bp ; 5d 12254 12280 retn 0000ch ; c2 0c 00 12255 scsi_enumerate_attached_devices_: ; 0xf83 80LB 0x48212281 scsi_enumerate_attached_devices_: ; 0xf839e LB 0x482 12256 12282 push bp ; 55 12257 12283 mov bp, sp ; 89 e5 … … 12265 12291 mov dx, strict word 0000eh ; ba 0e 00 12266 12292 mov ax, strict word 00040h ; b8 40 00 12267 call 01765h ; e8 cf9312293 call 01765h ; e8 b1 93 12268 12294 mov di, 00122h ; bf 22 01 12269 12295 mov word [bp-02eh], ax ; 89 46 d2 12270 12296 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 12271 jmp near 087 84h ; e9 e0 0312297 jmp near 087a2h ; e9 e0 03 12272 12298 cmp AL, strict byte 004h ; 3c 04 12273 jnc near 08 7f8h ; 0f 83 4e 0412299 jnc near 08816h ; 0f 83 4e 04 12274 12300 mov cx, strict word 00010h ; b9 10 00 12275 12301 xor bx, bx ; 31 db 12276 12302 mov dx, ss ; 8c d2 12277 12303 lea ax, [bp-046h] ; 8d 46 ba 12278 call 0a1 10h ; e8 591d12304 call 0a130h ; e8 5b 1d 12279 12305 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12280 12306 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12289 12315 lea bx, [bp-046h] ; 8d 5e ba 12290 12316 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12291 call 07e bah ; e8 dc fa12317 call 07ed8h ; e8 dc fa 12292 12318 test al, al ; 84 c0 12293 je short 08 3f0h ; 74 0e12319 je short 0840eh ; 74 0e 12294 12320 push 00ba4h ; 68 a4 0b 12295 12321 push 00bddh ; 68 dd 0b 12296 12322 push strict byte 00007h ; 6a 07 12297 call 01a6bh ; e8 7e9612323 call 01a6bh ; e8 60 96 12298 12324 add sp, strict byte 00006h ; 83 c4 06 12299 12325 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12325 12351 sal ax, 1 ; d1 e0 12326 12352 rcl dx, 1 ; d1 d2 12327 loop 084 3eh ; e2 fa12353 loop 0845ch ; e2 fa 12328 12354 or bx, ax ; 09 c3 12329 12355 or dx, si ; 09 f2 … … 12332 12358 mov word [bp-024h], bx ; 89 5e dc 12333 12359 test dx, dx ; 85 d2 12334 jne short 084 5ch ; 75 0612360 jne short 0847ah ; 75 06 12335 12361 cmp bx, 00200h ; 81 fb 00 02 12336 je short 084 7ch ; 74 2012337 mov bx, 00db 6h ; bb b60d12362 je short 0849ah ; 74 20 12363 mov bx, 00db2h ; bb b2 0d 12338 12364 mov cx, ds ; 8c d9 12339 12365 mov ax, strict word 00004h ; b8 04 00 12340 call 01a2ah ; e8 c39512366 call 01a2ah ; e8 a5 95 12341 12367 push dx ; 52 12342 12368 push word [bp-024h] ; ff 76 dc … … 12344 12370 push 00bfch ; 68 fc 0b 12345 12371 push strict byte 00004h ; 6a 04 12346 call 01a6bh ; e8 f59512372 call 01a6bh ; e8 d7 95 12347 12373 add sp, strict byte 0000ah ; 83 c4 0a 12348 jmp near 087 7bh ; e9 ff 0212374 jmp near 08799h ; e9 ff 02 12349 12375 mov al, byte [bp-00ch] ; 8a 46 f4 12350 12376 cmp AL, strict byte 001h ; 3c 01 12351 jc short 084 8fh ; 72 0c12352 jbe short 084 97h ; 76 1212377 jc short 084adh ; 72 0c 12378 jbe short 084b5h ; 76 12 12353 12379 cmp AL, strict byte 003h ; 3c 03 12354 je short 084 9fh ; 74 1612380 je short 084bdh ; 74 16 12355 12381 cmp AL, strict byte 002h ; 3c 02 12356 je short 084 9bh ; 74 0e12357 jmp short 08 4e8h ; eb 5912382 je short 084b9h ; 74 0e 12383 jmp short 08506h ; eb 59 12358 12384 test al, al ; 84 c0 12359 jne short 08 4e8h ; 75 5512385 jne short 08506h ; 75 55 12360 12386 mov BL, strict byte 090h ; b3 90 12361 jmp short 084 a1h ; eb 0a12387 jmp short 084bfh ; eb 0a 12362 12388 mov BL, strict byte 098h ; b3 98 12363 jmp short 084 a1h ; eb 0612389 jmp short 084bfh ; eb 06 12364 12390 mov BL, strict byte 0a0h ; b3 a0 12365 jmp short 084 a1h ; eb 0212391 jmp short 084bfh ; eb 02 12366 12392 mov BL, strict byte 0a8h ; b3 a8 12367 12393 mov al, bl ; 88 d8 … … 12369 12395 movzx cx, al ; 0f b6 c8 12370 12396 mov ax, cx ; 89 c8 12371 call 017a5h ; e8 f89212397 call 017a5h ; e8 da 92 12372 12398 test al, al ; 84 c0 12373 je short 08 4e8h ; 74 3712399 je short 08506h ; 74 37 12374 12400 mov al, bl ; 88 d8 12375 12401 db 0feh, 0c0h 12376 12402 ; inc al ; fe c0 12377 12403 xor ah, ah ; 30 e4 12378 call 017a5h ; e8 eb9212404 call 017a5h ; e8 cd 92 12379 12405 movzx dx, al ; 0f b6 d0 12380 12406 sal dx, 008h ; c1 e2 08 12381 12407 movzx ax, bl ; 0f b6 c3 12382 call 017a5h ; e8 df9212408 call 017a5h ; e8 c1 92 12383 12409 xor ah, ah ; 30 e4 12384 12410 add ax, dx ; 01 d0 … … 12388 12414 add AL, strict byte 002h ; 04 02 12389 12415 xor ah, ah ; 30 e4 12390 call 017a5h ; e8 cf9212416 call 017a5h ; e8 b1 92 12391 12417 xor ah, ah ; 30 e4 12392 12418 mov word [bp-034h], ax ; 89 46 cc 12393 12419 mov ax, cx ; 89 c8 12394 call 017a5h ; e8 c59212420 call 017a5h ; e8 a7 92 12395 12421 xor ah, ah ; 30 e4 12396 12422 mov word [bp-032h], ax ; 89 46 ce 12397 jmp near 085 d1h ; e9 e9 0012423 jmp near 085efh ; e9 e9 00 12398 12424 mov ax, word [bp-010h] ; 8b 46 f0 12399 12425 mov bx, word [bp-030h] ; 8b 5e d0 … … 12401 12427 mov dx, word [bp-016h] ; 8b 56 ea 12402 12428 mov si, strict word 0000ch ; be 0c 00 12403 call 0a 0f0h ; e8 f61b12429 call 0a110h ; e8 f8 1b 12404 12430 mov word [bp-018h], ax ; 89 46 e8 12405 12431 mov word [bp-014h], bx ; 89 5e ec … … 12408 12434 mov ax, word [bp-010h] ; 8b 46 f0 12409 12435 test ax, ax ; 85 c0 12410 jnbe short 085 23h ; 77 1612411 jne near 085 96h ; 0f 85 85 0012436 jnbe short 08541h ; 77 16 12437 jne near 085b4h ; 0f 85 85 00 12412 12438 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12413 jnbe short 085 23h ; 77 0c12414 jne near 085 96h ; 0f 85 7b 0012439 jnbe short 08541h ; 77 0c 12440 jne near 085b4h ; 0f 85 7b 00 12415 12441 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12416 jnbe short 085 23h ; 77 0212417 jne short 085 96h ; 75 7312442 jnbe short 08541h ; 77 02 12443 jne short 085b4h ; 75 73 12418 12444 mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00 12419 12445 mov bx, word [bp-030h] ; 8b 5e d0 … … 12421 12447 mov dx, word [bp-016h] ; 8b 56 ea 12422 12448 mov si, strict word 00006h ; be 06 00 12423 call 0a 0f0h ; e8 b61b12449 call 0a110h ; e8 b8 1b 12424 12450 mov si, word [bp-020h] ; 8b 76 e0 12425 12451 add si, dx ; 01 d6 … … 12439 12465 mov dx, si ; 89 f2 12440 12466 mov si, strict word 00008h ; be 08 00 12441 call 0a 0f0h ; e8 861b12467 call 0a110h ; e8 88 1b 12442 12468 mov word [bp-022h], bx ; 89 5e de 12443 12469 mov word [bp-02ch], cx ; 89 4e d4 … … 12448 12474 mov dx, word [bp-02ah] ; 8b 56 d6 12449 12475 mov si, strict word 00010h ; be 10 00 12450 call 0a 0f0h ; e8 6b1b12476 call 0a110h ; e8 6d 1b 12451 12477 mov si, word [bp-01ah] ; 8b 76 e6 12452 12478 add si, dx ; 01 d6 … … 12455 12481 mov ax, word [bp-022h] ; 8b 46 de 12456 12482 adc ax, bx ; 11 d8 12457 jmp short 085 d1h ; eb 3b12483 jmp short 085efh ; eb 3b 12458 12484 test ax, ax ; 85 c0 12459 jnbe short 085 ach ; 77 1212460 jne short 085 b6h ; 75 1a12485 jnbe short 085cah ; 77 12 12486 jne short 085d4h ; 75 1a 12461 12487 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12462 jnbe short 085 ach ; 77 0a12463 jne short 085 b6h ; 75 1212488 jnbe short 085cah ; 77 0a 12489 jne short 085d4h ; 75 12 12464 12490 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12465 jnbe short 085 ach ; 77 0212466 jne short 085 b6h ; 75 0a12491 jnbe short 085cah ; 77 02 12492 jne short 085d4h ; 75 0a 12467 12493 mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00 12468 jmp short 085 cdh ; eb 1712494 jmp short 085ebh ; eb 17 12469 12495 mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00 12470 12496 mov bx, word [bp-030h] ; 8b 5e d0 … … 12472 12498 mov dx, word [bp-016h] ; 8b 56 ea 12473 12499 mov si, strict word 0000bh ; be 0b 00 12474 call 0a 0f0h ; e8 231b12500 call 0a110h ; e8 25 1b 12475 12501 mov si, dx ; 89 d6 12476 12502 mov dx, cx ; 89 ca … … 12505 12531 mov word [es:bx+034h], ax ; 26 89 47 34 12506 12532 test dx, dx ; 85 d2 12507 jne short 086 3eh ; 75 0612533 jne short 0865ch ; 75 06 12508 12534 cmp si, 00400h ; 81 fe 00 04 12509 jbe short 086 4ch ; 76 0e12535 jbe short 0866ah ; 76 0e 12510 12536 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12511 12537 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12512 jmp short 086 54h ; eb 0812538 jmp short 08672h ; eb 08 12513 12539 mov word [es:bx+02ch], si ; 26 89 77 2c 12514 12540 mov word [es:bx+032h], si ; 26 89 77 32 12515 mov bx, 00db 6h ; bb b60d12541 mov bx, 00db2h ; bb b2 0d 12516 12542 mov cx, ds ; 8c d9 12517 12543 mov ax, strict word 00004h ; b8 04 00 12518 call 01a2ah ; e8 cb9312544 call 01a2ah ; e8 ad 93 12519 12545 push word [bp-010h] ; ff 76 f0 12520 12546 push word [bp-030h] ; ff 76 d0 … … 12529 12555 push 00c2ah ; 68 2a 0c 12530 12556 push strict byte 00004h ; 6a 04 12531 call 01a6bh ; e8 ea9312557 call 01a6bh ; e8 cc 93 12532 12558 add sp, strict byte 00018h ; 83 c4 18 12533 12559 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 … … 12554 12580 mov dx, strict word 00075h ; ba 75 00 12555 12581 mov ax, strict word 00040h ; b8 40 00 12556 call 01749h ; e8 789012582 call 01749h ; e8 5a 90 12557 12583 db 0feh, 0c0h 12558 12584 ; inc al ; fe c0 … … 12560 12586 mov dx, strict word 00075h ; ba 75 00 12561 12587 mov ax, strict word 00040h ; b8 40 00 12562 call 01757h ; e8 789012588 call 01757h ; e8 5a 90 12563 12589 inc byte [bp-00ch] ; fe 46 f4 12564 jmp near 087 70h ; e9 8b 0012565 mov bx, 00db 6h ; bb b60d12590 jmp near 0878eh ; e9 8b 00 12591 mov bx, 00db2h ; bb b2 0d 12566 12592 mov cx, ds ; 8c d9 12567 12593 mov ax, strict word 00004h ; b8 04 00 12568 call 01a2ah ; e8 3a9312594 call 01a2ah ; e8 1c 93 12569 12595 push word [bp-01eh] ; ff 76 e2 12570 12596 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 12572 12598 push 00c58h ; 68 58 0c 12573 12599 push strict byte 00004h ; 6a 04 12574 call 01a6bh ; e8 6b9312600 call 01a6bh ; e8 4d 93 12575 12601 add sp, strict byte 00008h ; 83 c4 08 12576 12602 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12613 12639 inc word [bp-01eh] ; ff 46 e2 12614 12640 cmp word [bp-01eh], strict byte 00010h ; 83 7e e2 10 12615 jnl short 08 7f8h ; 7d 7412641 jnl short 08816h ; 7d 74 12616 12642 mov byte [bp-046h], 012h ; c6 46 ba 12 12617 12643 xor al, al ; 30 c0 … … 12630 12656 lea bx, [bp-046h] ; 8d 5e ba 12631 12657 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12632 call 07e bah ; e8 05 f712658 call 07ed8h ; e8 05 f7 12633 12659 test al, al ; 84 c0 12634 je short 087 c7h ; 74 0e12660 je short 087e5h ; 74 0e 12635 12661 push 00ba4h ; 68 a4 0b 12636 12662 push 00bc4h ; 68 c4 0b 12637 12663 push strict byte 00007h ; 6a 07 12638 call 01a6bh ; e8 a79212664 call 01a6bh ; e8 89 92 12639 12665 add sp, strict byte 00006h ; 83 c4 06 12640 12666 mov es, [bp-02eh] ; 8e 46 d2 … … 12642 12668 mov byte [bp-00ch], al ; 88 46 f4 12643 12669 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12644 jne short 08 7e2h ; 75 0912670 jne short 08800h ; 75 09 12645 12671 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12646 je near 083 a4h ; 0f 84 c2 fb12672 je near 083c2h ; 0f 84 c2 fb 12647 12673 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12648 jne short 087 70h ; 75 8712674 jne short 0878eh ; 75 87 12649 12675 mov al, byte [bp-00246h] ; 8a 86 ba fd 12650 12676 and AL, strict byte 01fh ; 24 1f 12651 12677 cmp AL, strict byte 005h ; 3c 05 12652 je near 08 6e5h ; 0f 84 f0 fe12653 jmp near 087 70h ; e9 78 ff12678 je near 08703h ; 0f 84 f0 fe 12679 jmp near 0878eh ; e9 78 ff 12654 12680 lea sp, [bp-00ah] ; 8d 66 f6 12655 12681 pop di ; 5f … … 12660 12686 pop bp ; 5d 12661 12687 retn ; c3 12662 scsi_pci_init_: ; 0xf88 02LB 0x2d12688 scsi_pci_init_: ; 0xf8820 LB 0x2d 12663 12689 push bp ; 55 12664 12690 mov bp, sp ; 89 e5 … … 12666 12692 push cx ; 51 12667 12693 push si ; 56 12668 call 09e d3h ; e8 c8 1612694 call 09ef1h ; e8 c8 16 12669 12695 mov dx, ax ; 89 c2 12670 12696 cmp ax, strict word 0ffffh ; 3d ff ff 12671 je short 088 27h ; 74 1512697 je short 08845h ; 74 15 12672 12698 movzx si, dl ; 0f b6 f2 12673 12699 mov ax, dx ; 89 d0 … … 12677 12703 mov bx, strict word 00004h ; bb 04 00 12678 12704 mov dx, si ; 89 f2 12679 call 09f 65h ; e8 3e 1712705 call 09f83h ; e8 3e 17 12680 12706 lea sp, [bp-006h] ; 8d 66 fa 12681 12707 pop si ; 5e … … 12684 12710 pop bp ; 5d 12685 12711 retn ; c3 12686 _scsi_init: ; 0xf88 2fLB 0x8112712 _scsi_init: ; 0xf884d LB 0x81 12687 12713 push bp ; 55 12688 12714 mov bp, sp ; 89 e5 12689 12715 mov dx, strict word 0000eh ; ba 0e 00 12690 12716 mov ax, strict word 00040h ; b8 40 00 12691 call 01765h ; e8 2a8f12717 call 01765h ; e8 0c 8f 12692 12718 mov bx, 00122h ; bb 22 01 12693 12719 mov es, ax ; 8e c0 … … 12700 12726 ; sub ah, ah ; 2a e4 12701 12727 cmp AL, strict byte 055h ; 3c 55 12702 jne short 088 68h ; 75 1512728 jne short 08886h ; 75 15 12703 12729 xor al, al ; 30 c0 12704 12730 mov dx, 00433h ; ba 33 04 12705 12731 out DX, AL ; ee 12706 12732 mov ax, 00430h ; b8 30 04 12707 call 083 80h ; e8 21 fb12733 call 0839eh ; e8 21 fb 12708 12734 mov dx, 01040h ; ba 40 10 12709 12735 mov ax, 0104bh ; b8 4b 10 12710 call 088 02h ; e8 9a ff12736 call 08820h ; e8 9a ff 12711 12737 mov AL, strict byte 055h ; b0 55 12712 12738 mov dx, 00436h ; ba 36 04 … … 12716 12742 ; sub ah, ah ; 2a e4 12717 12743 cmp AL, strict byte 055h ; 3c 55 12718 jne short 088 8ah ; 75 1512744 jne short 088a8h ; 75 15 12719 12745 xor al, al ; 30 c0 12720 12746 mov dx, 00437h ; ba 37 04 12721 12747 out DX, AL ; ee 12722 12748 mov ax, 00434h ; b8 34 04 12723 call 083 80h ; e8 ff fa12749 call 0839eh ; e8 ff fa 12724 12750 mov dx, strict word 00030h ; ba 30 00 12725 12751 mov ax, 01000h ; b8 00 10 12726 call 088 02h ; e8 78 ff12752 call 08820h ; e8 78 ff 12727 12753 mov AL, strict byte 055h ; b0 55 12728 12754 mov dx, 0043ah ; ba 3a 04 … … 12732 12758 ; sub ah, ah ; 2a e4 12733 12759 cmp AL, strict byte 055h ; 3c 55 12734 jne short 088 ach ; 75 1512760 jne short 088cah ; 75 15 12735 12761 xor al, al ; 30 c0 12736 12762 mov dx, 0043bh ; ba 3b 04 12737 12763 out DX, AL ; ee 12738 12764 mov ax, 00438h ; b8 38 04 12739 call 083 80h ; e8 dd fa12765 call 0839eh ; e8 dd fa 12740 12766 mov dx, strict word 00054h ; ba 54 00 12741 12767 mov ax, 01000h ; b8 00 10 12742 call 088 02h ; e8 56 ff12768 call 08820h ; e8 56 ff 12743 12769 mov sp, bp ; 89 ec 12744 12770 pop bp ; 5d 12745 12771 retn ; c3 12746 ahci_ctrl_extract_bits_: ; 0xf88 b0LB 0x1b12772 ahci_ctrl_extract_bits_: ; 0xf88ce LB 0x1b 12747 12773 push si ; 56 12748 12774 push bp ; 55 … … 12752 12778 and dx, cx ; 21 ca 12753 12779 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12754 jcxz 088 c6h ; e3 0612780 jcxz 088e4h ; e3 06 12755 12781 shr dx, 1 ; d1 ea 12756 12782 rcr ax, 1 ; d1 d8 12757 loop 088 c0h ; e2 fa12783 loop 088deh ; e2 fa 12758 12784 pop bp ; 5d 12759 12785 pop si ; 5e 12760 12786 retn 00002h ; c2 02 00 12761 ahci_addr_to_phys_: ; 0xf88 cbLB 0x1e12787 ahci_addr_to_phys_: ; 0xf88e9 LB 0x1e 12762 12788 push bx ; 53 12763 12789 push cx ; 51 … … 12770 12796 sal ax, 1 ; d1 e0 12771 12797 rcl dx, 1 ; d1 d2 12772 loop 088 d9h ; e2 fa12798 loop 088f7h ; e2 fa 12773 12799 xor cx, cx ; 31 c9 12774 12800 add ax, bx ; 01 d8 … … 12778 12804 pop bx ; 5b 12779 12805 retn ; c3 12780 ahci_port_cmd_sync_: ; 0xf8 8e9LB 0x14b12806 ahci_port_cmd_sync_: ; 0xf8907 LB 0x14b 12781 12807 push bp ; 55 12782 12808 mov bp, sp ; 89 e5 … … 12793 12819 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12794 12820 cmp ah, 0ffh ; 80 fc ff 12795 je near 08a 2ch ; 0f 84 20 0112821 je near 08a4ah ; 0f 84 20 01 12796 12822 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12797 12823 xor di, di ; 31 ff … … 12805 12831 lea ax, [si+00080h] ; 8d 84 80 00 12806 12832 mov dx, cx ; 89 ca 12807 call 088 cbh ; e8 96 ff12833 call 088e9h ; e8 96 ff 12808 12834 mov es, cx ; 8e c1 12809 12835 mov word [es:si+008h], ax ; 26 89 44 08 … … 12868 12894 xchg dx, ax ; 92 12869 12895 test dh, 040h ; f6 c6 40 12870 jne short 089 c2h ; 75 0412896 jne short 089e0h ; 75 04 12871 12897 test AL, strict byte 001h ; a8 01 12872 je short 089 c6h ; 74 0412898 je short 089e4h ; 74 04 12873 12899 mov AL, strict byte 001h ; b0 01 12874 jmp short 089 c8h ; eb 0212900 jmp short 089e6h ; eb 02 12875 12901 xor al, al ; 30 c0 12876 12902 test al, al ; 84 c0 12877 je short 089 96h ; 74 ca12903 je short 089b4h ; 74 ca 12878 12904 movzx di, byte [bp-008h] ; 0f b6 7e f8 12879 12905 sal di, 007h ; c1 e7 07 … … 12929 12955 pop bp ; 5d 12930 12956 retn ; c3 12931 ahci_cmd_data_: ; 0xf8a 34LB 0x26212957 ahci_cmd_data_: ; 0xf8a52 LB 0x262 12932 12958 push bp ; 55 12933 12959 mov bp, sp ; 89 e5 … … 12954 12980 mov ax, 00080h ; b8 80 00 12955 12981 mov dx, word [bp-00ah] ; 8b 56 f6 12956 call 0a1 10h ; e8 9e1612982 call 0a130h ; e8 a0 16 12957 12983 mov es, [bp-00ah] ; 8e 46 f6 12958 12984 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12972 12998 mov dx, word [es:si] ; 26 8b 14 12973 12999 mov si, strict word 00008h ; be 08 00 12974 call 0a 0f0h ; e8 3a1613000 call 0a110h ; e8 3c 16 12975 13001 mov es, [bp-00ah] ; 8e 46 f6 12976 13002 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12983 13009 mov dx, word [es:si] ; 26 8b 14 12984 13010 mov si, strict word 00010h ; be 10 00 12985 call 0a 0f0h ; e8 141613011 call 0a110h ; e8 16 16 12986 13012 mov es, [bp-00ah] ; 8e 46 f6 12987 13013 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12995 13021 mov dx, word [es:si] ; 26 8b 14 12996 13022 mov si, strict word 00018h ; be 18 00 12997 call 0a 0f0h ; e8 e81513023 call 0a110h ; e8 ea 15 12998 13024 mov es, [bp-00ah] ; 8e 46 f6 12999 13025 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13006 13032 mov dx, word [es:si] ; 26 8b 14 13007 13033 mov si, strict word 00020h ; be 20 00 13008 call 0a 0f0h ; e8 c21513034 call 0a110h ; e8 c4 15 13009 13035 mov es, [bp-00ah] ; 8e 46 f6 13010 13036 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13017 13043 mov dx, word [es:si] ; 26 8b 14 13018 13044 mov si, strict word 00028h ; be 28 00 13019 call 0a 0f0h ; e8 9c1513045 call 0a110h ; e8 9e 15 13020 13046 mov es, [bp-00ah] ; 8e 46 f6 13021 13047 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13031 13057 mov bx, word [bp-010h] ; 8b 5e f0 13032 13058 xor cx, cx ; 31 c9 13033 call 0a0 70h ; e8 e71413059 call 0a090h ; e8 e9 14 13034 13060 push dx ; 52 13035 13061 push ax ; 50 … … 13041 13067 mov ax, 0026ah ; b8 6a 02 13042 13068 mov dx, word [bp-00ah] ; 8b 56 f6 13043 call 09f bch ; e8 17 1413069 call 09fdah ; e8 17 14 13044 13070 mov es, [bp-00ah] ; 8e 46 f6 13045 13071 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 13062 13088 mov ax, word [es:bx+020h] ; 26 8b 47 20 13063 13089 test ax, ax ; 85 c0 13064 je short 08c 33h ; 74 3913090 je short 08c51h ; 74 39 13065 13091 dec ax ; 48 13066 13092 mov es, [bp-00ah] ; 8e 46 f6 … … 13078 13104 mov al, byte [bp-008h] ; 8a 46 f8 13079 13105 cmp AL, strict byte 035h ; 3c 35 13080 jne short 08c 40h ; 75 0613106 jne short 08c5eh ; 75 06 13081 13107 mov byte [bp-008h], 040h ; c6 46 f8 40 13082 jmp short 08c 57h ; eb 1713108 jmp short 08c75h ; eb 17 13083 13109 cmp AL, strict byte 0a0h ; 3c a0 13084 jne short 08c 53h ; 75 0f13110 jne short 08c71h ; 75 0f 13085 13111 or byte [bp-008h], 020h ; 80 4e f8 20 13086 13112 les bx, [bp-00eh] ; c4 5e f2 13087 13113 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13088 jmp short 08c 57h ; eb 0413114 jmp short 08c75h ; eb 04 13089 13115 mov byte [bp-008h], 000h ; c6 46 f8 00 13090 13116 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13092 13118 mov ax, word [bp-00eh] ; 8b 46 f2 13093 13119 mov dx, word [bp-00ch] ; 8b 56 f4 13094 call 08 8e9h ; e8 81 fc13120 call 08907h ; e8 81 fc 13095 13121 mov cx, word [bp-00ch] ; 8b 4e f4 13096 13122 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13099 13125 add ax, 0026ah ; 05 6a 02 13100 13126 mov dx, cx ; 89 ca 13101 call 0a0 35h ; e8 b8 1313127 call 0a053h ; e8 b8 13 13102 13128 mov es, cx ; 8e c1 13103 13129 mov al, byte [es:bx+003h] ; 26 8a 47 03 13104 13130 test al, al ; 84 c0 13105 je short 08c 8ch ; 74 0513131 je short 08caah ; 74 05 13106 13132 mov ax, strict word 00004h ; b8 04 00 13107 jmp short 08c 8eh ; eb 0213133 jmp short 08cach ; eb 02 13108 13134 xor ah, ah ; 30 e4 13109 13135 lea sp, [bp-006h] ; 8d 66 fa … … 13113 13139 pop bp ; 5d 13114 13140 retn ; c3 13115 ahci_port_deinit_current_: ; 0xf8c 96LB 0x17f13141 ahci_port_deinit_current_: ; 0xf8cb4 LB 0x17f 13116 13142 push bp ; 55 13117 13143 mov bp, sp ; 89 e5 … … 13128 13154 mov byte [bp-00ah], al ; 88 46 f6 13129 13155 cmp AL, strict byte 0ffh ; 3c ff 13130 je near 08e 0ch ; 0f 84 52 0113156 je near 08e2ah ; 0f 84 52 01 13131 13157 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13132 13158 sal ax, 007h ; c1 e0 07 … … 13171 13197 xchg dx, ax ; 92 13172 13198 test ax, 0c011h ; a9 11 c0 13173 je short 08d 1ah ; 74 0413199 je short 08d38h ; 74 04 13174 13200 mov AL, strict byte 001h ; b0 01 13175 jmp short 08d 1ch ; eb 0213201 jmp short 08d3ah ; eb 02 13176 13202 xor al, al ; 30 c0 13177 13203 cmp AL, strict byte 001h ; 3c 01 13178 je short 08 ceeh ; 74 ce13204 je short 08d0ch ; 74 ce 13179 13205 mov cx, strict word 00020h ; b9 20 00 13180 13206 xor bx, bx ; 31 db 13181 13207 mov ax, di ; 89 f8 13182 13208 mov dx, word [bp-00ch] ; 8b 56 f4 13183 call 0a1 10h ; e8 e31313209 call 0a130h ; e8 e5 13 13184 13210 lea ax, [di+00080h] ; 8d 85 80 00 13185 13211 mov cx, strict word 00040h ; b9 40 00 13186 13212 xor bx, bx ; 31 db 13187 13213 mov dx, word [bp-00ch] ; 8b 56 f4 13188 call 0a1 10h ; e8 d41313214 call 0a130h ; e8 d6 13 13189 13215 lea ax, [di+00200h] ; 8d 85 00 02 13190 13216 mov cx, strict word 00060h ; b9 60 00 13191 13217 xor bx, bx ; 31 db 13192 13218 mov dx, word [bp-00ch] ; 8b 56 f4 13193 call 0a1 10h ; e8 c51313219 call 0a130h ; e8 c7 13 13194 13220 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13195 13221 sal ax, 007h ; c1 e0 07 … … 13295 13321 pop bp ; 5d 13296 13322 retn ; c3 13297 ahci_port_init_: ; 0xf8e 15LB 0x24a13323 ahci_port_init_: ; 0xf8e33 LB 0x24a 13298 13324 push bp ; 55 13299 13325 mov bp, sp ; 89 e5 … … 13305 13331 mov word [bp-00ah], dx ; 89 56 f6 13306 13332 mov byte [bp-008h], bl ; 88 5e f8 13307 call 08c 96h ; e8 6d fe13333 call 08cb4h ; e8 6d fe 13308 13334 movzx ax, bl ; 0f b6 c3 13309 13335 sal ax, 007h ; c1 e0 07 … … 13352 13378 xchg dx, ax ; 92 13353 13379 test ax, 0c011h ; a9 11 c0 13354 je short 08e 98h ; 74 0413380 je short 08eb6h ; 74 04 13355 13381 mov AL, strict byte 001h ; b0 01 13356 jmp short 08e 9ah ; eb 0213382 jmp short 08eb8h ; eb 02 13357 13383 xor al, al ; 30 c0 13358 13384 cmp AL, strict byte 001h ; 3c 01 13359 je short 08e 64h ; 74 c613385 je short 08e82h ; 74 c6 13360 13386 mov cx, strict word 00020h ; b9 20 00 13361 13387 xor bx, bx ; 31 db 13362 13388 mov ax, si ; 89 f0 13363 13389 mov dx, word [bp-00ah] ; 8b 56 f6 13364 call 0a1 10h ; e8 651213390 call 0a130h ; e8 67 12 13365 13391 lea ax, [si+00080h] ; 8d 84 80 00 13366 13392 mov cx, strict word 00040h ; b9 40 00 13367 13393 xor bx, bx ; 31 db 13368 13394 mov dx, word [bp-00ah] ; 8b 56 f6 13369 call 0a1 10h ; e8 561213395 call 0a130h ; e8 58 12 13370 13396 lea di, [si+00200h] ; 8d bc 00 02 13371 13397 mov cx, strict word 00060h ; b9 60 00 … … 13373 13399 mov ax, di ; 89 f8 13374 13400 mov dx, word [bp-00ah] ; 8b 56 f6 13375 call 0a1 10h ; e8 451213401 call 0a130h ; e8 47 12 13376 13402 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13377 13403 sal bx, 007h ; c1 e3 07 … … 13390 13416 mov ax, di ; 89 f8 13391 13417 mov dx, word [bp-00ah] ; 8b 56 f6 13392 call 088 cbh ; e8 d3 f913418 call 088e9h ; e8 d3 f9 13393 13419 mov es, [bp-00ah] ; 8e 46 f6 13394 13420 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13435 13461 mov ax, si ; 89 f0 13436 13462 mov dx, word [bp-00ah] ; 8b 56 f6 13437 call 088 cbh ; e8 67 f913463 call 088e9h ; e8 67 f9 13438 13464 mov es, [bp-00ah] ; 8e 46 f6 13439 13465 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13540 13566 pop bp ; 5d 13541 13567 retn ; c3 13542 @ahci_read_sectors: ; 0xf90 5fLB 0xa613568 @ahci_read_sectors: ; 0xf907d LB 0xa6 13543 13569 push bp ; 55 13544 13570 mov bp, sp ; 89 e5 … … 13550 13576 sub di, strict byte 0000ch ; 83 ef 0c 13551 13577 cmp di, strict byte 00004h ; 83 ff 04 13552 jbe short 090 84h ; 76 0f13578 jbe short 090a2h ; 76 0f 13553 13579 push di ; 57 13554 13580 push 00c74h ; 68 74 0c 13555 13581 push 00c86h ; 68 86 0c 13556 13582 push strict byte 00007h ; 6a 07 13557 call 01a6bh ; e8 ea8913583 call 01a6bh ; e8 cc 89 13558 13584 add sp, strict byte 00008h ; 83 c4 08 13559 13585 xor bx, bx ; 31 db … … 13569 13595 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13570 13596 xor ax, ax ; 31 c0 13571 call 08e 15h ; e8 65 fd13597 call 08e33h ; e8 65 fd 13572 13598 mov bx, strict word 00025h ; bb 25 00 13573 13599 mov ax, si ; 89 f0 13574 13600 mov dx, word [bp+006h] ; 8b 56 06 13575 call 08a 34h ; e8 79 f913601 call 08a52h ; e8 79 f9 13576 13602 mov word [bp-006h], ax ; 89 46 fa 13577 13603 mov es, [bp+006h] ; 8e 46 06 … … 13602 13628 pop bp ; 5d 13603 13629 retn 00004h ; c2 04 00 13604 @ahci_write_sectors: ; 0xf91 05LB 0x8413630 @ahci_write_sectors: ; 0xf9123 LB 0x84 13605 13631 push bp ; 55 13606 13632 mov bp, sp ; 89 e5 … … 13613 13639 sub dx, strict byte 0000ch ; 83 ea 0c 13614 13640 cmp dx, strict byte 00004h ; 83 fa 04 13615 jbe short 091 2eh ; 76 0f13641 jbe short 0914ch ; 76 0f 13616 13642 push dx ; 52 13617 13643 push 00ca5h ; 68 a5 0c 13618 13644 push 00c86h ; 68 86 0c 13619 13645 push strict byte 00007h ; 6a 07 13620 call 01a6bh ; e8 408913646 call 01a6bh ; e8 22 89 13621 13647 add sp, strict byte 00008h ; 83 c4 08 13622 13648 xor bx, bx ; 31 db … … 13632 13658 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13633 13659 xor ax, ax ; 31 c0 13634 call 08e 15h ; e8 bd fc13660 call 08e33h ; e8 bd fc 13635 13661 mov bx, strict word 00035h ; bb 35 00 13636 13662 mov ax, si ; 89 f0 13637 13663 mov dx, cx ; 89 ca 13638 call 08a 34h ; e8 d2 f813664 call 08a52h ; e8 d2 f8 13639 13665 mov dx, ax ; 89 c2 13640 13666 mov es, cx ; 8e c1 … … 13651 13677 pop bp ; 5d 13652 13678 retn 00004h ; c2 04 00 13653 ahci_cmd_packet_: ; 0xf91 89LB 0x18313679 ahci_cmd_packet_: ; 0xf91a7 LB 0x183 13654 13680 push bp ; 55 13655 13681 mov bp, sp ; 89 e5 … … 13663 13689 mov dx, strict word 0000eh ; ba 0e 00 13664 13690 mov ax, strict word 00040h ; b8 40 00 13665 call 01765h ; e8 c18513691 call 01765h ; e8 a3 85 13666 13692 mov si, 00122h ; be 22 01 13667 13693 mov word [bp-008h], ax ; 89 46 f8 13668 13694 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13669 jne short 091 cfh ; 75 1f13670 mov bx, 00db 6h ; bb b60d13695 jne short 091edh ; 75 1f 13696 mov bx, 00db2h ; bb b2 0d 13671 13697 mov cx, ds ; 8c d9 13672 13698 mov ax, strict word 00004h ; b8 04 00 13673 call 01a2ah ; e8 6f8813699 call 01a2ah ; e8 51 88 13674 13700 push 00cb8h ; 68 b8 0c 13675 13701 push 00cc8h ; 68 c8 0c 13676 13702 push strict byte 00004h ; 6a 04 13677 call 01a6bh ; e8 a58813703 call 01a6bh ; e8 87 88 13678 13704 add sp, strict byte 00006h ; 83 c4 06 13679 13705 mov ax, strict word 00001h ; b8 01 00 13680 jmp near 093 03h ; e9 34 0113706 jmp near 09321h ; e9 34 01 13681 13707 test byte [bp+004h], 001h ; f6 46 04 01 13682 jne short 091 c9h ; 75 f413708 jne short 091e7h ; 75 f4 13683 13709 mov ax, word [bp+006h] ; 8b 46 06 13684 13710 mov dx, word [bp+008h] ; 8b 56 08 … … 13686 13712 sal ax, 1 ; d1 e0 13687 13713 rcl dx, 1 ; d1 d2 13688 loop 091 deh ; e2 fa13714 loop 091fch ; e2 fa 13689 13715 mov es, [bp-008h] ; 8e 46 f8 13690 13716 mov word [es:si], ax ; 26 89 04 … … 13700 13726 mov dx, word [bp+008h] ; 8b 56 08 13701 13727 xor cx, cx ; 31 c9 13702 call 0a0 b0h ; e8 9c0e13728 call 0a0d0h ; e8 9e 0e 13703 13729 mov word [es:si+00eh], ax ; 26 89 44 0e 13704 13730 xor di, di ; 31 ff … … 13717 13743 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13718 13744 xor ax, ax ; 31 c0 13719 call 08e 15h ; e8 c5 fb13745 call 08e33h ; e8 c5 fb 13720 13746 movzx ax, byte [bp-006h] ; 0f b6 46 fa 13721 13747 push ax ; 50 … … 13724 13750 mov ax, 000c0h ; b8 c0 00 13725 13751 mov dx, word [bp-00ah] ; 8b 56 f6 13726 call 0a1 20h ; e8 bc0e13752 call 0a140h ; e8 be 0e 13727 13753 mov es, [bp-008h] ; 8e 46 f8 13728 13754 mov word [es:si+018h], di ; 26 89 7c 18 … … 13731 13757 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13732 13758 test ax, ax ; 85 c0 13733 je short 092 a2h ; 74 2713759 je short 092c0h ; 74 27 13734 13760 dec ax ; 48 13735 13761 mov es, [bp-00ah] ; 8e 46 f6 … … 13744 13770 mov ax, si ; 89 f0 13745 13771 mov dx, word [bp-008h] ; 8b 56 f8 13746 call 08a 34h ; e8 87 f713772 call 08a52h ; e8 87 f7 13747 13773 les bx, [bp-00eh] ; c4 5e f2 13748 13774 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 13771 13797 mov ax, word [es:bx+006h] ; 26 8b 47 06 13772 13798 or ax, word [es:bx+004h] ; 26 0b 47 04 13773 jne short 093 01h ; 75 0513799 jne short 0931fh ; 75 05 13774 13800 mov ax, strict word 00004h ; b8 04 00 13775 jmp short 093 03h ; eb 0213801 jmp short 09321h ; eb 02 13776 13802 xor ax, ax ; 31 c0 13777 13803 lea sp, [bp-004h] ; 8d 66 fc … … 13780 13806 pop bp ; 5d 13781 13807 retn 0000ch ; c2 0c 00 13782 wait_ticks_device_init_: ; 0xf93 0cLB 0x513808 wait_ticks_device_init_: ; 0xf932a LB 0x5 13783 13809 push bp ; 55 13784 13810 mov bp, sp ; 89 e5 13785 13811 pop bp ; 5d 13786 13812 retn ; c3 13787 ahci_port_detect_device_: ; 0xf93 11LB 0x4b813813 ahci_port_detect_device_: ; 0xf932f LB 0x4b8 13788 13814 push bp ; 55 13789 13815 mov bp, sp ; 89 e5 … … 13798 13824 movzx di, bl ; 0f b6 fb 13799 13825 mov bx, di ; 89 fb 13800 call 08e 15h ; e8 e5 fa13826 call 08e33h ; e8 e5 fa 13801 13827 mov dx, strict word 0000eh ; ba 0e 00 13802 13828 mov ax, strict word 00040h ; b8 40 00 13803 call 01765h ; e8 2c8413829 call 01765h ; e8 0e 84 13804 13830 mov word [bp-012h], 00122h ; c7 46 ee 22 01 13805 13831 mov word [bp-010h], ax ; 89 46 f0 … … 13860 13886 mov ax, word [es:di+002h] ; 26 8b 45 02 13861 13887 cmp ax, word [bp-01ch] ; 3b 46 e4 13862 jc short 09 3e2h ; 72 1113888 jc short 09400h ; 72 11 13863 13889 mov ax, word [es:di+002h] ; 26 8b 45 02 13864 13890 cmp ax, word [bp-01ch] ; 3b 46 e4 13865 jne short 094 2dh ; 75 5313891 jne short 0944bh ; 75 53 13866 13892 mov ax, word [es:di] ; 26 8b 05 13867 13893 cmp ax, word [bp-024h] ; 3b 46 dc 13868 jnc short 094 2dh ; 73 4b13894 jnc short 0944bh ; 73 4b 13869 13895 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13870 13896 sal ax, 007h ; c1 e0 07 … … 13893 13919 mov bx, strict word 0000fh ; bb 0f 00 13894 13920 xor cx, cx ; 31 c9 13895 call 088 b0h ; e8 8a f413921 call 088ceh ; e8 8a f4 13896 13922 cmp ax, strict word 00003h ; 3d 03 00 13897 jne short 093 c5h ; 75 9a13898 jmp short 094 35h ; eb 0813923 jne short 093e3h ; 75 9a 13924 jmp short 09453h ; eb 08 13899 13925 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 13900 je near 097 c1h ; 0f 84 8c 0313926 je near 097dfh ; 0f 84 8c 03 13901 13927 push strict byte 00000h ; 6a 00 13902 13928 mov bx, strict word 0000fh ; bb 0f 00 … … 13904 13930 mov ax, word [bp-028h] ; 8b 46 d8 13905 13931 mov dx, word [bp-022h] ; 8b 56 de 13906 call 088 b0h ; e8 6b f413932 call 088ceh ; e8 6b f4 13907 13933 cmp ax, strict word 00003h ; 3d 03 00 13908 jne near 097 c1h ; 0f 85 75 0313934 jne near 097dfh ; 0f 85 75 03 13909 13935 movzx di, byte [bp-008h] ; 0f b6 7e f8 13910 13936 sal di, 007h ; c1 e7 07 … … 13934 13960 mov byte [bp-00ah], al ; 88 46 f6 13935 13961 cmp AL, strict byte 004h ; 3c 04 13936 jnc near 097 c1h ; 0f 83 2a 0313962 jnc near 097dfh ; 0f 83 2a 03 13937 13963 lea ax, [di+00118h] ; 8d 85 18 01 13938 13964 mov es, [bp-02ah] ; 8e 46 d6 … … 13985 14011 mov byte [bp-00eh], dl ; 88 56 f2 13986 14012 test ax, ax ; 85 c0 13987 jne near 097 13h ; 0f 85 05 0214013 jne near 09731h ; 0f 85 05 02 13988 14014 cmp bx, 00101h ; 81 fb 01 01 13989 jne near 097 13h ; 0f 85 fd 0114015 jne near 09731h ; 0f 85 fd 01 13990 14016 les bx, [bp-012h] ; c4 5e ee 13991 14017 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 14001 14027 mov ax, word [bp-012h] ; 8b 46 ee 14002 14028 mov dx, es ; 8c c2 14003 call 08a 34h ; e8 ea f414029 call 08a52h ; e8 ea f4 14004 14030 mov al, byte [bp-00eh] ; 8a 46 f2 14005 14031 mov byte [bp-00ch], al ; 88 46 f4 … … 14018 14044 mov dword [bp-018h], strict dword 000000000h ; 66 c7 46 e8 00 00 00 00 14019 14045 cmp si, 00fffh ; 81 fe ff 0f 14020 jne short 095 a0h ; 75 1b14046 jne short 095beh ; 75 1b 14021 14047 cmp di, strict byte 0ffffh ; 83 ff ff 14022 jne short 095 a0h ; 75 1614048 jne short 095beh ; 75 16 14023 14049 mov dx, word [bp-00164h] ; 8b 96 9c fe 14024 14050 mov word [bp-016h], dx ; 89 56 ea … … 14055 14081 mov al, byte [bp-00ah] ; 8a 46 f6 14056 14082 cmp AL, strict byte 001h ; 3c 01 14057 jc short 096 16h ; 72 0c14058 jbe short 096 1eh ; 76 1214083 jc short 09634h ; 72 0c 14084 jbe short 0963ch ; 76 12 14059 14085 cmp AL, strict byte 003h ; 3c 03 14060 je short 096 26h ; 74 1614086 je short 09644h ; 74 16 14061 14087 cmp AL, strict byte 002h ; 3c 02 14062 je short 096 22h ; 74 0e14063 jmp short 096 73h ; eb 5d14088 je short 09640h ; 74 0e 14089 jmp short 09691h ; eb 5d 14064 14090 test al, al ; 84 c0 14065 jne short 096 73h ; 75 5914091 jne short 09691h ; 75 59 14066 14092 mov BL, strict byte 040h ; b3 40 14067 jmp short 096 28h ; eb 0a14093 jmp short 09646h ; eb 0a 14068 14094 mov BL, strict byte 048h ; b3 48 14069 jmp short 096 28h ; eb 0614095 jmp short 09646h ; eb 06 14070 14096 mov BL, strict byte 050h ; b3 50 14071 jmp short 096 28h ; eb 0214097 jmp short 09646h ; eb 02 14072 14098 mov BL, strict byte 058h ; b3 58 14073 14099 mov al, bl ; 88 d8 … … 14075 14101 movzx dx, al ; 0f b6 d0 14076 14102 mov ax, dx ; 89 d0 14077 call 017a5h ; e8 718114103 call 017a5h ; e8 53 81 14078 14104 test al, al ; 84 c0 14079 je short 096 73h ; 74 3b14105 je short 09691h ; 74 3b 14080 14106 mov al, bl ; 88 d8 14081 14107 db 0feh, 0c0h 14082 14108 ; inc al ; fe c0 14083 14109 xor ah, ah ; 30 e4 14084 call 017a5h ; e8 648114110 call 017a5h ; e8 46 81 14085 14111 xor ah, ah ; 30 e4 14086 14112 sal ax, 008h ; c1 e0 08 14087 14113 mov word [bp-02ch], ax ; 89 46 d4 14088 14114 movzx ax, bl ; 0f b6 c3 14089 call 017a5h ; e8 568114115 call 017a5h ; e8 38 81 14090 14116 xor ah, ah ; 30 e4 14091 14117 mov cx, word [bp-02ch] ; 8b 4e d4 … … 14095 14121 add AL, strict byte 002h ; 04 02 14096 14122 xor ah, ah ; 30 e4 14097 call 017a5h ; e8 438114123 call 017a5h ; e8 25 81 14098 14124 xor ah, ah ; 30 e4 14099 14125 mov word [bp-032h], ax ; 89 46 ce 14100 14126 mov ax, dx ; 89 d0 14101 call 017a5h ; e8 398114127 call 017a5h ; e8 1b 81 14102 14128 xor ah, ah ; 30 e4 14103 14129 mov word [bp-02eh], ax ; 89 46 d2 14104 jmp short 096 81h ; eb 0e14130 jmp short 0969fh ; eb 0e 14105 14131 push dword [bp-018h] ; 66 ff 76 e8 14106 14132 push si ; 56 … … 14108 14134 mov dx, ss ; 8c d2 14109 14135 lea ax, [bp-032h] ; 8d 46 ce 14110 call 05a d0h ; e8 4f c414111 mov bx, 00db 6h ; bb b60d14136 call 05aeeh ; e8 4f c4 14137 mov bx, 00db2h ; bb b2 0d 14112 14138 mov cx, ds ; 8c d9 14113 14139 mov ax, strict word 00004h ; b8 04 00 14114 call 01a2ah ; e8 9e8314140 call 01a2ah ; e8 80 83 14115 14141 push dword [bp-018h] ; 66 ff 76 e8 14116 14142 push si ; 56 … … 14131 14157 push 00ce8h ; 68 e8 0c 14132 14158 push strict byte 00004h ; 6a 04 14133 call 01a6bh ; e8 b28314159 call 01a6bh ; e8 94 83 14134 14160 add sp, strict byte 0001ch ; 83 c4 1c 14135 14161 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 14159 14185 mov dx, strict word 00075h ; ba 75 00 14160 14186 mov ax, strict word 00040h ; b8 40 00 14161 call 01749h ; e8 478014187 call 01749h ; e8 29 80 14162 14188 db 0feh, 0c0h 14163 14189 ; inc al ; fe c0 … … 14165 14191 mov dx, strict word 00075h ; ba 75 00 14166 14192 mov ax, strict word 00040h ; b8 40 00 14167 call 01757h ; e8 478014168 jmp near 097 b3h ; e9 a0 0014193 call 01757h ; e8 29 80 14194 jmp near 097d1h ; e9 a0 00 14169 14195 cmp ax, 0eb14h ; 3d 14 eb 14170 jne near 097 b3h ; 0f 85 99 0014196 jne near 097d1h ; 0f 85 99 00 14171 14197 cmp bx, 00101h ; 81 fb 01 01 14172 jne near 097 b3h ; 0f 85 91 0014198 jne near 097d1h ; 0f 85 91 00 14173 14199 les bx, [bp-012h] ; c4 5e ee 14174 14200 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 14184 14210 mov ax, word [bp-012h] ; 8b 46 ee 14185 14211 mov dx, es ; 8c c2 14186 call 08a 34h ; e8 de f214212 call 08a52h ; e8 de f2 14187 14213 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14188 14214 db 00fh, 095h, 0c0h … … 14223 14249 pop bp ; 5d 14224 14250 retn ; c3 14225 ahci_mem_alloc_: ; 0xf97 c9LB 0x4314251 ahci_mem_alloc_: ; 0xf97e7 LB 0x43 14226 14252 push bp ; 55 14227 14253 mov bp, sp ; 89 e5 … … 14233 14259 mov dx, 00413h ; ba 13 04 14234 14260 xor ax, ax ; 31 c0 14235 call 01765h ; e8 8c7f14261 call 01765h ; e8 6e 7f 14236 14262 test ax, ax ; 85 c0 14237 je short 098 02h ; 74 2514263 je short 09820h ; 74 25 14238 14264 dec ax ; 48 14239 14265 mov bx, ax ; 89 c3 … … 14242 14268 sal ax, 1 ; d1 e0 14243 14269 rcl dx, 1 ; d1 d2 14244 loop 09 7e5h ; e2 fa14270 loop 09803h ; e2 fa 14245 14271 mov si, ax ; 89 c6 14246 14272 mov di, dx ; 89 d7 … … 14248 14274 shr di, 1 ; d1 ef 14249 14275 rcr si, 1 ; d1 de 14250 loop 09 7f2h ; e2 fa14276 loop 09810h ; e2 fa 14251 14277 mov dx, 00413h ; ba 13 04 14252 14278 xor ax, ax ; 31 c0 14253 call 01773h ; e8 737f14279 call 01773h ; e8 55 7f 14254 14280 mov ax, si ; 89 f0 14255 14281 lea sp, [bp-00ah] ; 8d 66 f6 … … 14261 14287 pop bp ; 5d 14262 14288 retn ; c3 14263 ahci_hba_init_: ; 0xf98 0cLB 0x16614289 ahci_hba_init_: ; 0xf982a LB 0x166 14264 14290 push bp ; 55 14265 14291 mov bp, sp ; 89 e5 … … 14273 14299 mov dx, strict word 0000eh ; ba 0e 00 14274 14300 mov ax, strict word 00040h ; b8 40 00 14275 call 01765h ; e8 437f14301 call 01765h ; e8 25 7f 14276 14302 mov bx, 00122h ; bb 22 01 14277 14303 mov di, ax ; 89 c7 … … 14290 14316 shr eax, 010h ; 66 c1 e8 10 14291 14317 xchg dx, ax ; 92 14292 call 097 c9h ; e8 83 ff14318 call 097e7h ; e8 83 ff 14293 14319 mov word [bp-010h], ax ; 89 46 f0 14294 14320 test ax, ax ; 85 c0 14295 je near 099 51h ; 0f 84 02 0114321 je near 0996fh ; 0f 84 02 01 14296 14322 mov ax, word [bp-010h] ; 8b 46 f0 14297 14323 mov es, di ; 8e c7 … … 14343 14369 xchg dx, ax ; 92 14344 14370 test AL, strict byte 001h ; a8 01 14345 jne short 098 a5h ; 75 de14371 jne short 098c3h ; 75 de 14346 14372 xor ax, ax ; 31 c0 14347 14373 xor cx, cx ; 31 c9 … … 14361 14387 mov bx, strict word 0001fh ; bb 1f 00 14362 14388 xor cx, cx ; 31 c9 14363 call 088 b0h ; e8 c5 ef14389 call 088ceh ; e8 c5 ef 14364 14390 db 0feh, 0c0h 14365 14391 ; inc al ; fe c0 14366 14392 mov byte [bp-00eh], al ; 88 46 f2 14367 14393 mov byte [bp-00ch], 000h ; c6 46 f4 00 14368 jmp short 099 16h ; eb 2014394 jmp short 09934h ; eb 20 14369 14395 xor al, al ; 30 c0 14370 14396 test al, al ; 84 c0 14371 je short 099 0dh ; 74 1114397 je short 0992bh ; 74 11 14372 14398 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14373 14399 xor ax, ax ; 31 c0 14374 14400 mov dx, word [bp-010h] ; 8b 56 f0 14375 call 093 11h ; e8 09 fa14401 call 0932fh ; e8 09 fa 14376 14402 dec byte [bp-00eh] ; fe 4e f2 14377 je short 099 4fh ; 74 4214403 je short 0996dh ; 74 42 14378 14404 inc byte [bp-00ch] ; fe 46 f4 14379 14405 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14380 jnc short 099 4fh ; 73 3914406 jnc short 0996dh ; 73 39 14381 14407 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14382 14408 mov bx, strict word 00001h ; bb 01 00 14383 14409 xor di, di ; 31 ff 14384 jcxz 099 27h ; e3 0614410 jcxz 09945h ; e3 06 14385 14411 sal bx, 1 ; d1 e3 14386 14412 rcl di, 1 ; d1 d7 14387 loop 099 21h ; e2 fa14413 loop 0993fh ; e2 fa 14388 14414 mov ax, strict word 0000ch ; b8 0c 00 14389 14415 xor cx, cx ; 31 c9 … … 14401 14427 xchg dx, ax ; 92 14402 14428 test dx, di ; 85 fa 14403 jne short 099 4bh ; 75 0414429 jne short 09969h ; 75 04 14404 14430 test ax, bx ; 85 d8 14405 je short 09 8f6h ; 74 ab14431 je short 09914h ; 74 ab 14406 14432 mov AL, strict byte 001h ; b0 01 14407 jmp short 09 8f8h ; eb a914433 jmp short 09916h ; eb a9 14408 14434 xor ax, ax ; 31 c0 14409 14435 lea sp, [bp-00ah] ; 8d 66 f6 … … 14415 14441 pop bp ; 5d 14416 14442 retn ; c3 14417 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 42h, 09ah, 020h, 09ah, 026h, 09ah, 02ch, 09ah, 032h14418 db 09ah, 0 38h, 09ah, 03eh, 09ah, 042h, 09ah14419 _ahci_init: ; 0xf99 72LB 0x11614443 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 060h, 09ah, 03eh, 09ah, 044h, 09ah, 04ah, 09ah, 050h 14444 db 09ah, 056h, 09ah, 05ch, 09ah, 060h, 09ah 14445 _ahci_init: ; 0xf9990 LB 0x116 14420 14446 push bp ; 55 14421 14447 mov bp, sp ; 89 e5 … … 14425 14451 mov ax, 00601h ; b8 01 06 14426 14452 mov dx, strict word 00001h ; ba 01 00 14427 call 09e a8h ; e8 25 0514453 call 09ec6h ; e8 25 05 14428 14454 mov bx, ax ; 89 c3 14429 14455 cmp ax, strict word 0ffffh ; 3d ff ff 14430 je near 09a 81h ; 0f 84 f5 0014456 je near 09a9fh ; 0f 84 f5 00 14431 14457 xor al, al ; 30 c0 14432 14458 shr ax, 008h ; c1 e8 08 … … 14436 14462 xor ah, ah ; 30 e4 14437 14463 mov bx, strict word 00034h ; bb 34 00 14438 call 09 ef8h ; e8 56 0514464 call 09f16h ; e8 56 05 14439 14465 mov cl, al ; 88 c1 14440 14466 test cl, cl ; 84 c9 14441 je short 099 cbh ; 74 2314467 je short 099e9h ; 74 23 14442 14468 movzx bx, cl ; 0f b6 d9 14443 14469 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14445 14471 mov dx, di ; 89 fa 14446 14472 mov ax, si ; 89 f0 14447 call 09 ef8h ; e8 3e 0514473 call 09f16h ; e8 3e 05 14448 14474 cmp AL, strict byte 012h ; 3c 12 14449 je short 099 cbh ; 74 0d14475 je short 099e9h ; 74 0d 14450 14476 mov al, cl ; 88 c8 14451 14477 db 0feh, 0c0h … … 14454 14480 mov dx, di ; 89 fa 14455 14481 mov ax, si ; 89 f0 14456 jmp short 099 9fh ; eb d414482 jmp short 099bdh ; eb d4 14457 14483 test cl, cl ; 84 c9 14458 je near 09a 81h ; 0f 84 b0 0014484 je near 09a9fh ; 0f 84 b0 00 14459 14485 add cl, 002h ; 80 c1 02 14460 14486 movzx bx, cl ; 0f b6 d9 … … 14463 14489 mov dx, si ; 89 f2 14464 14490 mov ax, di ; 89 f8 14465 call 09 ef8h ; e8 12 0514491 call 09f16h ; e8 12 05 14466 14492 cmp AL, strict byte 010h ; 3c 10 14467 jne near 09a 81h ; 0f 85 95 0014493 jne near 09a9fh ; 0f 85 95 00 14468 14494 mov byte [bp-006h], 000h ; c6 46 fa 00 14469 14495 mov al, cl ; 88 c8 … … 14472 14498 mov dx, si ; 89 f2 14473 14499 mov ax, di ; 89 f8 14474 call 09f 1ch ; e8 1e 0514500 call 09f3ah ; e8 1e 05 14475 14501 mov dx, ax ; 89 c2 14476 14502 and ax, strict word 0000fh ; 25 0f 00 14477 14503 sub ax, strict word 00004h ; 2d 04 00 14478 14504 cmp ax, strict word 0000bh ; 3d 0b 00 14479 jnbe short 09a 42h ; 77 3714505 jnbe short 09a60h ; 77 37 14480 14506 push CS ; 0e 14481 14507 pop ES ; 07 14482 14508 mov cx, strict word 00008h ; b9 08 00 14483 mov di, 099 5bh ; bf 5b9914509 mov di, 09979h ; bf 79 99 14484 14510 repne scasb ; f2 ae 14485 14511 sal cx, 1 ; d1 e1 14486 14512 mov di, cx ; 89 cf 14487 mov ax, word [cs:di-066 9eh] ; 2e 8b 85 629914513 mov ax, word [cs:di-06680h] ; 2e 8b 85 80 99 14488 14514 jmp ax ; ff e0 14489 14515 mov byte [bp-006h], 010h ; c6 46 fa 10 14490 jmp short 09a 42h ; eb 1c14516 jmp short 09a60h ; eb 1c 14491 14517 mov byte [bp-006h], 014h ; c6 46 fa 14 14492 jmp short 09a 42h ; eb 1614518 jmp short 09a60h ; eb 16 14493 14519 mov byte [bp-006h], 018h ; c6 46 fa 18 14494 jmp short 09a 42h ; eb 1014520 jmp short 09a60h ; eb 10 14495 14521 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14496 jmp short 09a 42h ; eb 0a14522 jmp short 09a60h ; eb 0a 14497 14523 mov byte [bp-006h], 020h ; c6 46 fa 20 14498 jmp short 09a 42h ; eb 0414524 jmp short 09a60h ; eb 04 14499 14525 mov byte [bp-006h], 024h ; c6 46 fa 24 14500 14526 mov cx, dx ; 89 d1 … … 14503 14529 mov al, byte [bp-006h] ; 8a 46 fa 14504 14530 test al, al ; 84 c0 14505 je short 09a 81h ; 74 3014531 je short 09a9fh ; 74 30 14506 14532 movzx bx, al ; 0f b6 d8 14507 14533 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14509 14535 mov dx, di ; 89 fa 14510 14536 mov ax, si ; 89 f0 14511 call 09f 3eh ; e8 db 0414537 call 09f5ch ; e8 db 04 14512 14538 test AL, strict byte 001h ; a8 01 14513 je short 09a 81h ; 74 1a14539 je short 09a9fh ; 74 1a 14514 14540 and AL, strict byte 0f0h ; 24 f0 14515 14541 add ax, cx ; 01 c8 … … 14519 14545 mov dx, di ; 89 fa 14520 14546 mov ax, si ; 89 f0 14521 call 09f 65h ; e8 ea 0414547 call 09f83h ; e8 ea 04 14522 14548 mov ax, word [bp-00ch] ; 8b 46 f4 14523 call 098 0ch ; e8 8b fd14549 call 0982ah ; e8 8b fd 14524 14550 lea sp, [bp-004h] ; 8d 66 fc 14525 14551 pop di ; 5f … … 14527 14553 pop bp ; 5d 14528 14554 retn ; c3 14529 apm_out_str_: ; 0xf9a 88LB 0x3914555 apm_out_str_: ; 0xf9aa6 LB 0x39 14530 14556 push bp ; 55 14531 14557 mov bp, sp ; 89 e5 … … 14533 14559 mov bx, ax ; 89 c3 14534 14560 cmp byte [bx], 000h ; 80 3f 00 14535 je short 09a 9dh ; 74 0a14561 je short 09abbh ; 74 0a 14536 14562 mov al, byte [bx] ; 8a 07 14537 14563 out DX, AL ; ee … … 14540 14566 db 00ah, 0c0h 14541 14567 ; or al, al ; 0a c0 14542 jne short 09a 95h ; 75 f814568 jne short 09ab3h ; 75 f8 14543 14569 lea sp, [bp-002h] ; 8d 66 fe 14544 14570 pop bx ; 5b 14545 14571 pop bp ; 5d 14546 14572 retn ; c3 14547 in AL, strict byte 09ah ; e4 9a 14548 mov AL, strict byte 09bh ; b0 9b 14549 neg byte [bp+si-064efh] ; f6 9a 11 9b 14550 mov AL, strict byte 09bh ; b0 9b 14551 cmp AL, strict byte 09bh ; 3c 9b 14552 mov AL, strict byte 09bh ; b0 9b 14553 inc cx ; 41 14573 add bl, byte [bp+di-06432h] ; 02 9b ce 9b 14574 adc AL, strict byte 09bh ; 14 9b 14575 das ; 2f 14554 14576 wait ; 9b 14555 test word [bp+di-0647bh], bx ; 85 9b 85 9b 14556 test word [bp+di-06480h], bx ; 85 9b 80 9b 14557 test word [bp+di-0647bh], bx ; 85 9b 85 9b 14558 jns short 09a5ch ; 79 9b 14559 _apm_function: ; 0xf9ac1 LB 0xf5 14577 into ; ce 14578 wait ; 9b 14579 pop dx ; 5a 14580 wait ; 9b 14581 into ; ce 14582 wait ; 9b 14583 pop di ; 5f 14584 wait ; 9b 14585 mov word [0a39bh], ax ; a3 9b a3 14586 wait ; 9b 14587 mov word [09e9bh], ax ; a3 9b 9e 14588 wait ; 9b 14589 mov word [0a39bh], ax ; a3 9b a3 14590 wait ; 9b 14591 xchg di, ax ; 97 14592 wait ; 9b 14593 _apm_function: ; 0xf9adf LB 0xf5 14560 14594 push bp ; 55 14561 14595 mov bp, sp ; 89 e5 … … 14565 14599 xor ah, ah ; 30 e4 14566 14600 cmp ax, strict word 0000eh ; 3d 0e 00 14567 jnbe near 09b 85h ; 0f 87 b0 0014601 jnbe near 09ba3h ; 0f 87 b0 00 14568 14602 mov bx, ax ; 89 c3 14569 14603 add bx, ax ; 01 c3 14570 14604 mov dx, word [bp+018h] ; 8b 56 18 14571 14605 or dl, 001h ; 80 ca 01 14572 jmp word [cs:bx-065 5dh] ; 2e ff a7 a39a14606 jmp word [cs:bx-0653fh] ; 2e ff a7 c1 9a 14573 14607 mov word [bp+012h], 00102h ; c7 46 12 02 01 14574 14608 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14575 14609 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14576 jmp near 09b b0h ; e9 ba 0014610 jmp near 09bceh ; e9 ba 00 14577 14611 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14578 mov word [bp+00ch], 0a1 94h ; c7 46 0c 94 a114612 mov word [bp+00ch], 0a1b4h ; c7 46 0c b4 a1 14579 14613 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14580 14614 mov ax, strict word 0fff0h ; b8 f0 ff 14581 14615 mov word [bp+006h], ax ; 89 46 06 14582 14616 mov word [bp+004h], ax ; 89 46 04 14583 jmp near 09b b0h ; e9 9f 0014617 jmp near 09bceh ; e9 9f 00 14584 14618 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14585 14619 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14594 14628 mov si, ax ; 89 c6 14595 14629 sal esi, 010h ; 66 c1 e6 10 14596 jmp near 09b b0h ; e9 74 0014630 jmp near 09bceh ; e9 74 00 14597 14631 sti ; fb 14598 14632 hlt ; f4 14599 jmp near 09b b0h ; e9 6f 0014633 jmp near 09bceh ; e9 6f 00 14600 14634 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14601 je short 09b 66h ; 74 1f14635 je short 09b84h ; 74 1f 14602 14636 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14603 je short 09b 5eh ; 74 1114637 je short 09b7ch ; 74 11 14604 14638 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14605 jne short 09b 6eh ; 75 1b14639 jne short 09b8ch ; 75 1b 14606 14640 mov dx, 0040fh ; ba 0f 04 14607 14641 mov ax, 00d22h ; b8 22 0d 14608 call 09a 88h ; e8 2c ff14609 jmp short 09b b0h ; eb 5214642 call 09aa6h ; e8 2c ff 14643 jmp short 09bceh ; eb 52 14610 14644 mov dx, 0040fh ; ba 0f 04 14611 14645 mov ax, 00d2ah ; b8 2a 0d 14612 jmp short 09b 59h ; eb f314646 jmp short 09b77h ; eb f3 14613 14647 mov dx, 0040fh ; ba 0f 04 14614 14648 mov ax, 00d32h ; b8 32 0d 14615 jmp short 09b 59h ; eb eb14649 jmp short 09b77h ; eb eb 14616 14650 or ah, 00ah ; 80 cc 0a 14617 14651 mov word [bp+012h], ax ; 89 46 12 14618 14652 mov word [bp+018h], dx ; 89 56 18 14619 jmp short 09b b0h ; eb 3714653 jmp short 09bceh ; eb 37 14620 14654 mov word [bp+012h], 00102h ; c7 46 12 02 01 14621 jmp short 09b b0h ; eb 3014655 jmp short 09bceh ; eb 30 14622 14656 or ah, 080h ; 80 cc 80 14623 jmp short 09b 71h ; eb ec14624 mov bx, 00db 6h ; bb b60d14657 jmp short 09b8fh ; eb ec 14658 mov bx, 00db2h ; bb b2 0d 14625 14659 mov cx, ds ; 8c d9 14626 14660 mov ax, strict word 00004h ; b8 04 00 14627 call 01a2ah ; e8 9a7e14661 call 01a2ah ; e8 7c 7e 14628 14662 push word [bp+00ch] ; ff 76 0c 14629 14663 push word [bp+012h] ; ff 76 12 14630 14664 push 00d3bh ; 68 3b 0d 14631 14665 push strict byte 00004h ; 6a 04 14632 call 01a6bh ; e8 cd7e14666 call 01a6bh ; e8 af 7e 14633 14667 add sp, strict byte 00008h ; 83 c4 08 14634 14668 mov ax, word [bp+012h] ; 8b 46 12 … … 14641 14675 pop bp ; 5d 14642 14676 retn ; c3 14643 pci16_select_reg_: ; 0xf9b b6LB 0x2414677 pci16_select_reg_: ; 0xf9bd4 LB 0x24 14644 14678 push bp ; 55 14645 14679 mov bp, sp ; 89 e5 … … 14658 14692 pop bp ; 5d 14659 14693 retn ; c3 14660 pci16_find_device_: ; 0xf9b daLB 0xf714694 pci16_find_device_: ; 0xf9bf8 LB 0xf7 14661 14695 push bp ; 55 14662 14696 mov bp, sp ; 89 e5 … … 14672 14706 mov byte [bp-008h], 000h ; c6 46 f8 00 14673 14707 test bl, 007h ; f6 c3 07 14674 jne short 09c 22h ; 75 2d14708 jne short 09c40h ; 75 2d 14675 14709 mov dx, strict word 0000eh ; ba 0e 00 14676 14710 mov ax, bx ; 89 d8 14677 call 09b b6h ; e8 b9 ff14711 call 09bd4h ; e8 b9 ff 14678 14712 mov dx, 00cfeh ; ba fe 0c 14679 14713 in AL, DX ; ec … … 14682 14716 mov byte [bp-006h], al ; 88 46 fa 14683 14717 cmp AL, strict byte 0ffh ; 3c ff 14684 jne short 09c 10h ; 75 0614718 jne short 09c2eh ; 75 06 14685 14719 add bx, strict byte 00008h ; 83 c3 08 14686 jmp near 09c a3h ; e9 93 0014720 jmp near 09cc1h ; e9 93 00 14687 14721 test byte [bp-006h], 080h ; f6 46 fa 80 14688 je short 09c 1dh ; 74 0714722 je short 09c3bh ; 74 07 14689 14723 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14690 jmp short 09c 22h ; eb 0514724 jmp short 09c40h ; eb 05 14691 14725 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14692 14726 mov al, byte [bp-006h] ; 8a 46 fa 14693 14727 and AL, strict byte 007h ; 24 07 14694 14728 cmp AL, strict byte 001h ; 3c 01 14695 jne short 09c 4ah ; 75 1f14729 jne short 09c68h ; 75 1f 14696 14730 mov ax, bx ; 89 d8 14697 14731 shr ax, 008h ; c1 e8 08 14698 14732 test ax, ax ; 85 c0 14699 jne short 09c 4ah ; 75 1614733 jne short 09c68h ; 75 16 14700 14734 mov dx, strict word 0001ah ; ba 1a 00 14701 14735 mov ax, bx ; 89 d8 14702 call 09b b6h ; e8 7a ff14736 call 09bd4h ; e8 7a ff 14703 14737 mov dx, 00cfeh ; ba fe 0c 14704 14738 in AL, DX ; ec … … 14706 14740 ; sub ah, ah ; 2a e4 14707 14741 cmp al, byte [bp-008h] ; 3a 46 f8 14708 jbe short 09c 4ah ; 76 0314742 jbe short 09c68h ; 76 03 14709 14743 mov byte [bp-008h], al ; 88 46 f8 14710 14744 test di, di ; 85 ff 14711 je short 09c 53h ; 74 0514745 je short 09c71h ; 74 05 14712 14746 mov dx, strict word 00008h ; ba 08 00 14713 jmp short 09c 55h ; eb 0214747 jmp short 09c73h ; eb 02 14714 14748 xor dx, dx ; 31 d2 14715 14749 mov ax, bx ; 89 d8 14716 call 09b b6h ; e8 5c ff14750 call 09bd4h ; e8 5c ff 14717 14751 mov dx, 00cfch ; ba fc 0c 14718 14752 in eax, DX ; 66 ed … … 14725 14759 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14726 14760 test di, di ; 85 ff 14727 je short 09c 84h ; 74 0f14761 je short 09ca2h ; 74 0f 14728 14762 mov cx, strict word 00008h ; b9 08 00 14729 14763 shr dx, 1 ; d1 ea 14730 14764 rcr ax, 1 ; d1 d8 14731 loop 09c 78h ; e2 fa14765 loop 09c96h ; e2 fa 14732 14766 mov word [bp-00eh], ax ; 89 46 f2 14733 14767 mov word [bp-00ch], dx ; 89 56 f4 14734 14768 mov ax, word [bp-00ch] ; 8b 46 f4 14735 14769 cmp ax, word [bp-014h] ; 3b 46 ec 14736 jne short 09c 94h ; 75 0814770 jne short 09cb2h ; 75 08 14737 14771 mov ax, word [bp-00eh] ; 8b 46 f2 14738 14772 cmp ax, word [bp-012h] ; 3b 46 ee 14739 je short 09c 9ah ; 74 0614773 je short 09cb8h ; 74 06 14740 14774 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14741 je short 09c a0h ; 74 0614775 je short 09cbeh ; 74 06 14742 14776 dec si ; 4e 14743 14777 cmp si, strict byte 0ffffh ; 83 fe ff 14744 je short 09c b2h ; 74 1214778 je short 09cd0h ; 74 12 14745 14779 add bx, word [bp-00ah] ; 03 5e f6 14746 14780 mov dx, bx ; 89 da … … 14748 14782 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14749 14783 cmp dx, ax ; 39 c2 14750 jbe near 09 bf0h ; 0f 86 3e ff14784 jbe near 09c0eh ; 0f 86 3e ff 14751 14785 cmp si, strict byte 0ffffh ; 83 fe ff 14752 jne short 09c bbh ; 75 0414786 jne short 09cd9h ; 75 04 14753 14787 mov ax, bx ; 89 d8 14754 jmp short 09c beh ; eb 0314788 jmp short 09cdch ; eb 03 14755 14789 mov ax, strict word 0ffffh ; b8 ff ff 14756 14790 lea sp, [bp-004h] ; 8d 66 fc … … 14759 14793 pop bp ; 5d 14760 14794 retn ; c3 14761 mov BL, strict byte 09dh ; b3 9d 14762 int 09dh ; cd 9d 14763 loopne 09c68h ; e0 9d 14764 cmc ; f5 14795 rcr word [di-06215h], 1 ; d1 9d eb 9d 14796 db 0feh 14765 14797 popfw ; 9d 14766 or byte [bp-061e5h], bl ; 08 9e 1b 9e 14767 _pci16_function: ; 0xf9cd1 LB 0x1d7 14798 adc bx, word [bp-061dah] ; 13 9e 26 9e 14799 db 039h 14800 sahf ; 9e 14801 _pci16_function: ; 0xf9cef LB 0x1d7 14768 14802 push bp ; 55 14769 14803 mov bp, sp ; 89 e5 … … 14779 14813 xor ah, ah ; 30 e4 14780 14814 cmp bx, strict byte 00003h ; 83 fb 03 14781 jc short 09d 0ah ; 72 1a14782 jbe short 09d 62h ; 76 7014815 jc short 09d28h ; 72 1a 14816 jbe short 09d80h ; 76 70 14783 14817 cmp bx, strict byte 0000eh ; 83 fb 0e 14784 je near 09e 2fh ; 0f 84 36 0114818 je near 09e4dh ; 0f 84 36 01 14785 14819 cmp bx, strict byte 00008h ; 83 fb 08 14786 jc near 09e 74h ; 0f 82 74 0114820 jc near 09e92h ; 0f 82 74 01 14787 14821 cmp bx, strict byte 0000dh ; 83 fb 0d 14788 jbe near 09d 87h ; 0f 86 80 0014789 jmp near 09e 74h ; e9 6a 0114822 jbe near 09da5h ; 0f 86 80 00 14823 jmp near 09e92h ; e9 6a 01 14790 14824 cmp bx, strict byte 00002h ; 83 fb 02 14791 je short 09d 32h ; 74 2314825 je short 09d50h ; 74 23 14792 14826 cmp bx, strict byte 00001h ; 83 fb 01 14793 jne near 09e 74h ; 0f 85 5e 0114827 jne near 09e92h ; 0f 85 5e 01 14794 14828 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14795 14829 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14797 14831 mov word [bp+018h], 04350h ; c7 46 18 50 43 14798 14832 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14799 jmp near 09e a1h ; e9 6f 0114833 jmp near 09ebfh ; e9 6f 01 14800 14834 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14801 jne short 09d 3eh ; 75 0614835 jne short 09d5ch ; 75 06 14802 14836 or ah, 083h ; 80 cc 83 14803 jmp near 09e 9ah ; e9 5c 0114837 jmp near 09eb8h ; e9 5c 01 14804 14838 mov bx, word [bp+008h] ; 8b 5e 08 14805 14839 mov dx, word [bp+01ch] ; 8b 56 1c 14806 14840 mov ax, word [bp+018h] ; 8b 46 18 14807 14841 xor cx, cx ; 31 c9 14808 call 09b dah ; e8 8e fe14842 call 09bf8h ; e8 8e fe 14809 14843 cmp ax, strict word 0ffffh ; 3d ff ff 14810 jne short 09d 5ch ; 75 0b14844 jne short 09d7ah ; 75 0b 14811 14845 mov ax, word [bp+020h] ; 8b 46 20 14812 14846 xor ah, ah ; 30 e4 14813 14847 or ah, 086h ; 80 cc 86 14814 jmp near 09e 9ah ; e9 3e 0114848 jmp near 09eb8h ; e9 3e 01 14815 14849 mov word [bp+014h], ax ; 89 46 14 14816 jmp near 09e a1h ; e9 3f 0114850 jmp near 09ebfh ; e9 3f 01 14817 14851 mov bx, word [bp+008h] ; 8b 5e 08 14818 14852 mov ax, word [bp+01ch] ; 8b 46 1c 14819 14853 mov dx, word [bp+01eh] ; 8b 56 1e 14820 14854 mov cx, strict word 00001h ; b9 01 00 14821 call 09b dah ; e8 69 fe14855 call 09bf8h ; e8 69 fe 14822 14856 cmp ax, strict word 0ffffh ; 3d ff ff 14823 jne short 09d 81h ; 75 0b14857 jne short 09d9fh ; 75 0b 14824 14858 mov ax, word [bp+020h] ; 8b 46 20 14825 14859 xor ah, ah ; 30 e4 14826 14860 or ah, 086h ; 80 cc 86 14827 jmp near 09e 9ah ; e9 19 0114861 jmp near 09eb8h ; e9 19 01 14828 14862 mov word [bp+014h], ax ; 89 46 14 14829 jmp near 09e a1h ; e9 1a 0114863 jmp near 09ebfh ; e9 1a 01 14830 14864 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14831 jc short 09d 94h ; 72 0614865 jc short 09db2h ; 72 06 14832 14866 or ah, 087h ; 80 cc 87 14833 jmp near 09e 9ah ; e9 06 0114867 jmp near 09eb8h ; e9 06 01 14834 14868 mov dx, word [bp+004h] ; 8b 56 04 14835 14869 mov ax, word [bp+014h] ; 8b 46 14 14836 call 09b b6h ; e8 19 fe14870 call 09bd4h ; e8 19 fe 14837 14871 mov bx, word [bp+020h] ; 8b 5e 20 14838 14872 xor bh, bh ; 30 ff 14839 14873 sub bx, strict byte 00008h ; 83 eb 08 14840 14874 cmp bx, strict byte 00005h ; 83 fb 05 14841 jnbe near 09e a1h ; 0f 87 f5 0014875 jnbe near 09ebfh ; 0f 87 f5 00 14842 14876 add bx, bx ; 01 db 14843 jmp word [cs:bx-063 3bh] ; 2e ff a7 c59c14877 jmp word [cs:bx-0631dh] ; 2e ff a7 e3 9c 14844 14878 mov bx, word [bp+01ch] ; 8b 5e 1c 14845 14879 xor bl, bl ; 30 db … … 14852 14886 or bx, ax ; 09 c3 14853 14887 mov word [bp+01ch], bx ; 89 5e 1c 14854 jmp near 09e a1h ; e9 d4 0014888 jmp near 09ebfh ; e9 d4 00 14855 14889 mov dx, word [bp+004h] ; 8b 56 04 14856 14890 xor dh, dh ; 30 f6 … … 14859 14893 in ax, DX ; ed 14860 14894 mov word [bp+01ch], ax ; 89 46 1c 14861 jmp near 09e a1h ; e9 c1 0014895 jmp near 09ebfh ; e9 c1 00 14862 14896 mov dx, 00cfch ; ba fc 0c 14863 14897 in eax, DX ; 66 ed … … 14868 14902 mov word [bp+01ch], ax ; 89 46 1c 14869 14903 mov word [bp+01eh], dx ; 89 56 1e 14870 jmp near 09e a1h ; e9 ac 0014904 jmp near 09ebfh ; e9 ac 00 14871 14905 mov ax, word [bp+01ch] ; 8b 46 1c 14872 14906 mov dx, word [bp+004h] ; 8b 56 04 … … 14875 14909 add dx, 00cfch ; 81 c2 fc 0c 14876 14910 out DX, AL ; ee 14877 jmp near 09e a1h ; e9 99 0014911 jmp near 09ebfh ; e9 99 00 14878 14912 mov ax, word [bp+01ch] ; 8b 46 1c 14879 14913 mov dx, word [bp+004h] ; 8b 56 04 … … 14882 14916 add dx, 00cfch ; 81 c2 fc 0c 14883 14917 out DX, ax ; ef 14884 jmp near 09e a1h ; e9 86 0014918 jmp near 09ebfh ; e9 86 00 14885 14919 mov ax, word [bp+01ch] ; 8b 46 1c 14886 14920 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14891 14925 ; mov ax, cx ; 8b c1 14892 14926 out DX, eax ; 66 ef 14893 jmp short 09e a1h ; eb 7214927 jmp short 09ebfh ; eb 72 14894 14928 mov bx, word [bp+004h] ; 8b 5e 04 14895 14929 mov es, [bp+026h] ; 8e 46 26 … … 14898 14932 mov cx, word [0f370h] ; 8b 0e 70 f3 14899 14933 cmp cx, word [es:bx] ; 26 3b 0f 14900 jbe short 09e 55h ; 76 1114934 jbe short 09e73h ; 76 11 14901 14935 mov ax, word [bp+020h] ; 8b 46 20 14902 14936 xor ah, ah ; 30 e4 … … 14904 14938 mov word [bp+020h], ax ; 89 46 20 14905 14939 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14906 jmp short 09e 69h ; eb 1414940 jmp short 09e87h ; eb 14 14907 14941 les di, [es:bx+002h] ; 26 c4 7f 02 14908 14942 mov si, 0f190h ; be 90 f1 … … 14916 14950 les bx, [bp-008h] ; c4 5e f8 14917 14951 mov word [es:bx], ax ; 26 89 07 14918 jmp short 09e a1h ; eb 2d14919 mov bx, 00db 6h ; bb b60d14952 jmp short 09ebfh ; eb 2d 14953 mov bx, 00db2h ; bb b2 0d 14920 14954 mov cx, ds ; 8c d9 14921 14955 mov ax, strict word 00004h ; b8 04 00 14922 call 01a2ah ; e8 ab7b14956 call 01a2ah ; e8 8d 7b 14923 14957 mov ax, word [bp+014h] ; 8b 46 14 14924 14958 push ax ; 50 … … 14927 14961 push 00d6eh ; 68 6e 0d 14928 14962 push strict byte 00004h ; 6a 04 14929 call 01a6bh ; e8 dc7b14963 call 01a6bh ; e8 be 7b 14930 14964 add sp, strict byte 00008h ; 83 c4 08 14931 14965 mov ax, word [bp+020h] ; 8b 46 20 … … 14939 14973 pop bp ; 5d 14940 14974 retn ; c3 14941 pci_find_classcode_: ; 0xf9e a8LB 0x2b14975 pci_find_classcode_: ; 0xf9ec6 LB 0x2b 14942 14976 push bp ; 55 14943 14977 mov bp, sp ; 89 e5 … … 14954 14988 int 01ah ; cd 1a 14955 14989 cmp ah, 000h ; 80 fc 00 14956 je near 09e c9h ; 0f 84 03 0014990 je near 09ee7h ; 0f 84 03 00 14957 14991 mov bx, strict word 0ffffh ; bb ff ff 14958 14992 mov ax, bx ; 89 d8 … … 14963 14997 pop bp ; 5d 14964 14998 retn ; c3 14965 pci_find_device_: ; 0xf9e d3LB 0x2514999 pci_find_device_: ; 0xf9ef1 LB 0x25 14966 15000 push bp ; 55 14967 15001 mov bp, sp ; 89 e5 … … 14975 15009 int 01ah ; cd 1a 14976 15010 cmp ah, 000h ; 80 fc 00 14977 je near 09 eeeh ; 0f 84 03 0015011 je near 09f0ch ; 0f 84 03 00 14978 15012 mov bx, strict word 0ffffh ; bb ff ff 14979 15013 mov ax, bx ; 89 d8 … … 14984 15018 pop bp ; 5d 14985 15019 retn ; c3 14986 pci_read_config_byte_: ; 0xf9 ef8LB 0x2415020 pci_read_config_byte_: ; 0xf9f16 LB 0x24 14987 15021 push bp ; 55 14988 15022 mov bp, sp ; 89 e5 … … 15003 15037 pop bp ; 5d 15004 15038 retn ; c3 15005 pci_read_config_word_: ; 0xf9f 1cLB 0x2215039 pci_read_config_word_: ; 0xf9f3a LB 0x22 15006 15040 push bp ; 55 15007 15041 mov bp, sp ; 89 e5 … … 15022 15056 pop bp ; 5d 15023 15057 retn ; c3 15024 pci_read_config_dword_: ; 0xf9f 3eLB 0x2715058 pci_read_config_dword_: ; 0xf9f5c LB 0x27 15025 15059 push bp ; 55 15026 15060 mov bp, sp ; 89 e5 … … 15043 15077 pop bp ; 5d 15044 15078 retn ; c3 15045 pci_write_config_word_: ; 0xf9f 65LB 0x1c15079 pci_write_config_word_: ; 0xf9f83 LB 0x1c 15046 15080 push bp ; 55 15047 15081 mov bp, sp ; 89 e5 … … 15058 15092 pop bp ; 5d 15059 15093 retn ; c3 15060 vds_is_present_: ; 0xf9f 81LB 0x1d15094 vds_is_present_: ; 0xf9f9f LB 0x1d 15061 15095 push bx ; 53 15062 15096 push bp ; 55 … … 15066 15100 mov es, ax ; 8e c0 15067 15101 test byte [es:bx], 020h ; 26 f6 07 20 15068 je short 09f 99h ; 74 0615102 je short 09fb7h ; 74 06 15069 15103 mov ax, strict word 00001h ; b8 01 00 15070 15104 pop bp ; 5d … … 15075 15109 pop bx ; 5b 15076 15110 retn ; c3 15077 vds_real_to_lin_: ; 0xf9f 9eLB 0x1e15111 vds_real_to_lin_: ; 0xf9fbc LB 0x1e 15078 15112 push bx ; 53 15079 15113 push cx ; 51 … … 15086 15120 sal ax, 1 ; d1 e0 15087 15121 rcl dx, 1 ; d1 d2 15088 loop 09f ach ; e2 fa15122 loop 09fcah ; e2 fa 15089 15123 xor cx, cx ; 31 c9 15090 15124 add ax, bx ; 01 d8 … … 15094 15128 pop bx ; 5b 15095 15129 retn ; c3 15096 vds_build_sg_list_: ; 0xf9f bcLB 0x7915130 vds_build_sg_list_: ; 0xf9fda LB 0x79 15097 15131 push bp ; 55 15098 15132 mov bp, sp ; 89 e5 … … 15108 15142 mov bx, word [bp+006h] ; 8b 5e 06 15109 15143 mov word [es:di+002h], bx ; 26 89 5d 02 15110 call 09f 9eh ; e8 c3 ff15144 call 09fbch ; e8 c3 ff 15111 15145 mov es, si ; 8e c6 15112 15146 mov word [es:di+004h], ax ; 26 89 45 04 15113 15147 mov word [es:di+006h], dx ; 26 89 55 06 15114 15148 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15115 call 09f 81h ; e8 93 ff15149 call 09f9fh ; e8 93 ff 15116 15150 test ax, ax ; 85 c0 15117 je short 0a0 05h ; 74 1315151 je short 0a023h ; 74 13 15118 15152 mov es, si ; 8e c6 15119 15153 mov ax, 08105h ; b8 05 81 15120 15154 mov dx, strict word 00000h ; ba 00 00 15121 15155 int 04bh ; cd 4b 15122 jc near 0a0 02h ; 0f 82 02 0015156 jc near 0a020h ; 0f 82 02 00 15123 15157 db 032h, 0c0h 15124 15158 ; xor al, al ; 32 c0 15125 15159 cbw ; 98 15126 jmp short 0a0 2ch ; eb 2715160 jmp short 0a04ah ; eb 27 15127 15161 mov es, si ; 8e c6 15128 15162 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15141 15175 pop bp ; 5d 15142 15176 retn 00004h ; c2 04 00 15143 vds_free_sg_list_: ; 0xfa0 35 LB 0x3b15177 vds_free_sg_list_: ; 0xfa053 LB 0x3d 15144 15178 push bp ; 55 15145 15179 mov bp, sp ; 89 e5 … … 15147 15181 push di ; 57 15148 15182 mov bx, ax ; 89 c3 15149 call 09f 81h ; e8 42 ff15183 call 09f9fh ; e8 42 ff 15150 15184 test ax, ax ; 85 c0 15151 je short 0a0 56h ; 74 1315185 je short 0a074h ; 74 13 15152 15186 mov di, bx ; 89 df 15153 15187 mov es, dx ; 8e c2 … … 15155 15189 mov dx, strict word 00000h ; ba 00 00 15156 15190 int 04bh ; cd 4b 15157 jc near 0a0 55h ; 0f 82 02 0015191 jc near 0a073h ; 0f 82 02 00 15158 15192 db 032h, 0c0h 15159 15193 ; xor al, al ; 32 c0 … … 15166 15200 pop bp ; 5d 15167 15201 retn ; c3 15168 times 0x bdb 015169 __U4M: ; 0xfa0 70 LB 0x4015202 times 0xd db 0 15203 __U4M: ; 0xfa090 LB 0x40 15170 15204 pushfw ; 9c 15171 15205 push eax ; 66 50 … … 15193 15227 retn ; c3 15194 15228 times 0xf db 0 15195 __U4D: ; 0xfa0 b0 LB 0x4015229 __U4D: ; 0xfa0d0 LB 0x40 15196 15230 pushfw ; 9c 15197 15231 push eax ; 66 50 … … 15224 15258 retn ; c3 15225 15259 times 0x7 db 0 15226 __U8RS: ; 0xfa 0f0 LB 0x1015260 __U8RS: ; 0xfa110 LB 0x10 15227 15261 test si, si ; 85 f6 15228 je short 0a 0ffh ; 74 0b15262 je short 0a11fh ; 74 0b 15229 15263 shr ax, 1 ; d1 e8 15230 15264 rcr bx, 1 ; d1 db … … 15232 15266 rcr dx, 1 ; d1 da 15233 15267 dec si ; 4e 15234 jne short 0a 0f4h ; 75 f515268 jne short 0a114h ; 75 f5 15235 15269 retn ; c3 15236 __U8LS: ; 0xfa1 00 LB 0x1015270 __U8LS: ; 0xfa120 LB 0x10 15237 15271 test si, si ; 85 f6 15238 je short 0a1 0fh ; 74 0b15272 je short 0a12fh ; 74 0b 15239 15273 sal dx, 1 ; d1 e2 15240 15274 rcl cx, 1 ; d1 d1 … … 15242 15276 rcl ax, 1 ; d1 d0 15243 15277 dec si ; 4e 15244 jne short 0a1 04h ; 75 f515278 jne short 0a124h ; 75 f5 15245 15279 retn ; c3 15246 _fmemset_: ; 0xfa1 10 LB 0x1015280 _fmemset_: ; 0xfa130 LB 0x10 15247 15281 push di ; 57 15248 15282 mov es, dx ; 8e c2 … … 15255 15289 retn ; c3 15256 15290 times 0x3 db 0 15257 _fmemcpy_: ; 0xfa1 20 LB 0x3a15291 _fmemcpy_: ; 0xfa140 LB 0x3a 15258 15292 push bp ; 55 15259 15293 db 08bh, 0ech … … 15280 15314 add byte [bx+si], al ; 00 00 15281 15315 add byte [bx+si], al ; 00 00 15282 jo short 0a0e3h ; 70 a115283 jc short 0a0e5h ; 72 a115284 jbe short 0a0e7h ; 76 a115285 jbe short 0a0e9h ; 76 a115286 jbe short 0a0ebh ; 76 a115287 js short 0a0edh ; 78 a115288 js short 0a0efh ; 78 a115289 jp short 0a0f1h ; 7a a115290 jle short 0a0f3h ; 7e a115291 jle short 0a0f5h ; 7e a115292 and byte [bx+di-05e7bh], 087h ; 80 a1 85 a1 8715293 db 0a1h15294 apm_worker: ; 0xfa1 5a LB 0x3a15316 nop ; 90 15317 mov ax, word [0a192h] ; a1 92 a1 15318 xchg si, ax ; 96 15319 mov ax, word [0a196h] ; a1 96 a1 15320 xchg si, ax ; 96 15321 mov ax, word [0a198h] ; a1 98 a1 15322 cbw ; 98 15323 mov ax, word [0a19ah] ; a1 9a a1 15324 sahf ; 9e 15325 mov ax, word [0a19eh] ; a1 9e a1 15326 mov AL, byte [0a5a1h] ; a0 a1 a5 15327 mov ax, word [0a1a7h] ; a1 a7 a1 15328 apm_worker: ; 0xfa17a LB 0x3a 15295 15329 sti ; fb 15296 15330 push ax ; 50 … … 15304 15338 pop ax ; 58 15305 15339 mov AH, strict byte 053h ; b4 53 15306 jnc short 0a1 90h ; 73 2515307 jmp word [cs:bp-05e c0h] ; 2e ff a6 40 a115308 jmp short 0a1 8eh ; eb 1c15340 jnc short 0a1b0h ; 73 25 15341 jmp word [cs:bp-05ea0h] ; 2e ff a6 60 a1 15342 jmp short 0a1aeh ; eb 1c 15309 15343 sti ; fb 15310 15344 hlt ; f4 15311 jmp short 0a1 8eh ; eb 1815312 jmp short 0a1 8eh ; eb 1615313 jmp short 0a1 90h ; eb 1615345 jmp short 0a1aeh ; eb 18 15346 jmp short 0a1aeh ; eb 16 15347 jmp short 0a1b0h ; eb 16 15314 15348 mov AH, strict byte 080h ; b4 80 15315 jmp short 0a1 92h ; eb 1415316 jmp short 0a1 90h ; eb 1015349 jmp short 0a1b2h ; eb 14 15350 jmp short 0a1b0h ; eb 10 15317 15351 mov ax, 00102h ; b8 02 01 15318 jmp short 0a1 8eh ; eb 0915319 jmp short 0a1 8eh ; eb 0715352 jmp short 0a1aeh ; eb 09 15353 jmp short 0a1aeh ; eb 07 15320 15354 mov BL, strict byte 000h ; b3 00 15321 15355 mov cx, strict word 00000h ; b9 00 00 15322 jmp short 0a1 8eh ; eb 0015356 jmp short 0a1aeh ; eb 00 15323 15357 clc ; f8 15324 15358 retn ; c3 … … 15326 15360 stc ; f9 15327 15361 retn ; c3 15328 apm_pm16_entry: ; 0xfa1 94 LB 0x1115362 apm_pm16_entry: ; 0xfa1b4 LB 0x11 15329 15363 mov AH, strict byte 002h ; b4 02 15330 15364 push DS ; 1e … … 15334 15368 add bp, strict byte 00008h ; 83 c5 08 15335 15369 mov ds, bp ; 8e dd 15336 call 0a1 5ah ; e8 b8 ff15370 call 0a17ah ; e8 b8 ff 15337 15371 pop bp ; 5d 15338 15372 pop DS ; 1f 15339 15373 retf ; cb 15340 15374 15341 ; Padding 0x38 5b bytes at 0xfa1a515342 times 14 427db 015375 ; Padding 0x383b bytes at 0xfa1c5 15376 times 14395 db 0 15343 15377 15344 15378 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15387 15421 add bp, strict byte 00008h ; 83 c5 08 15388 15422 push ebp ; 66 55 15389 mov bp, 0a1 96h ; bd 96 a115423 mov bp, 0a1b6h ; bd b6 a1 15390 15424 add byte [bx+si], al ; 00 00 15391 15425 push ebp ; 66 55 … … 15855 15889 cmp AL, strict byte 009h ; 3c 09 15856 15890 jne short 0e0bch ; 75 03 15857 jmp near 0e3 7bh ; e9 bf0215891 jmp near 0e363h ; e9 a7 02 15858 15892 cmp AL, strict byte 005h ; 3c 05 15859 15893 je short 0e044h ; 74 84 … … 16001 16035 mov dx, 0c800h ; ba 00 c8 16002 16036 call 01600h ; e8 e1 33 16003 call 04f dah ; e8 b86d16037 call 04ff8h ; e8 d6 6d 16004 16038 pop DS ; 1f 16005 16039 mov ax, 0ff53h ; b8 53 ff … … 16061 16095 mov word [001c2h], ax ; a3 c2 01 16062 16096 call 0edbfh ; e8 05 0b 16063 jmp short 0e3 1bh ; eb 5f16097 jmp short 0e303h ; eb 47 16064 16098 biosorg_check_before_or_at_0E2C1h: ; 0xfe2bc LB 0x7 16065 16099 add byte [bx+si], al ; 00 00 … … 16077 16111 int 002h ; cd 02 16078 16112 iret ; cf 16079 hard_drive_post: ; 0xfe2d2 LB 0x d216113 hard_drive_post: ; 0xfe2d2 LB 0xba 16080 16114 db 033h, 0c0h 16081 16115 ; xor ax, ax ; 33 c0 … … 16096 16130 mov ax, 0f000h ; b8 00 f0 16097 16131 mov word [001dah], ax ; a3 da 01 16098 mov ax, strict word 0003dh ; b8 3d 0016099 mov word [00104h], ax ; a3 04 0116100 mov ax, 09fc0h ; b8 c0 9f16101 mov word [00106h], ax ; a3 06 0116102 mov ax, strict word 0004dh ; b8 4d 0016103 mov word [00118h], ax ; a3 18 0116104 mov ax, 09fc0h ; b8 c0 9f16105 mov word [0011ah], ax ; a3 1a 0116106 16132 retn ; c3 16107 16133 mov ax, 0f8c1h ; b8 c1 f8 … … 16113 16139 mov ax, 0f000h ; b8 00 f0 16114 16140 mov word [001d6h], ax ; a3 d6 01 16115 call 0e753h ; e8 1d0416141 call 0e753h ; e8 35 04 16116 16142 push CS ; 0e 16117 16143 pop DS ; 1f 16118 16144 cld ; fc 16119 16145 pushad ; 66 60 16120 call 01692h ; e8 543316146 call 01692h ; e8 6c 33 16121 16147 popad ; 66 61 16122 call 01da8h ; e8 653a16123 call 02235h ; e8 ef 3e16148 call 01da8h ; e8 7d 3a 16149 call 02235h ; e8 07 3f 16124 16150 sti ; fb 16125 call 099 72h ; e8 28b616151 call 09990h ; e8 5e b6 16126 16152 cli ; fa 16127 call 088 2fh ; e8 e1 a416128 call 0ed2fh ; e8 de0916129 call 0e2d2h ; e8 7eff16153 call 0884dh ; e8 17 a5 16154 call 0ed2fh ; e8 f6 09 16155 call 0e2d2h ; e8 96 ff 16130 16156 push CS ; 0e 16131 16157 pop DS ; 1f … … 16133 16159 mov ax, 0c800h ; b8 00 c8 16134 16160 mov dx, 0f000h ; ba 00 f0 16135 call 01600h ; e8 a03216161 call 01600h ; e8 b8 32 16136 16162 db 066h, 033h, 0c0h 16137 16163 ; xor eax, eax ; 66 33 c0 … … 16142 16168 db 066h, 033h, 0d2h 16143 16169 ; xor edx, edx ; 66 33 d2 16144 call 01890h ; e8 213516145 call 03c bdh ; e8 4b5916170 call 01890h ; e8 39 35 16171 call 03cdbh ; e8 81 59 16146 16172 sti ; fb 16147 16173 int 019h ; cd 19 16148 16174 sti ; fb 16149 16175 hlt ; f4 16150 jmp short 0e3 76h ; eb fd16176 jmp short 0e35eh ; eb fd 16151 16177 cli ; fa 16152 16178 hlt ; f4 … … 16170 16196 sti ; fb 16171 16197 retf 00002h ; ca 02 00 16172 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 a4 LB 0x5a16173 times 0x 58db 016198 biosorg_check_before_or_at_0E3FCh: ; 0xfe38c LB 0x72 16199 times 0x70 db 0 16174 16200 db 'XM' 16175 16201 int13_handler: ; 0xfe3fe LB 0x3 … … 16245 16271 pop DS ; 1f 16246 16272 cld ; fc 16247 call 06 4f7h ; e8 b57d16273 call 06515h ; e8 d3 7d 16248 16274 popaw ; 61 16249 16275 pop ES ; 07 … … 16326 16352 pop DS ; 1f 16327 16353 cld ; fc 16328 call 05 7e5h ; e8 a26f16354 call 05803h ; e8 c0 6f 16329 16355 popaw ; 61 16330 16356 pop DS ; 1f … … 16344 16370 pop DS ; 1f 16345 16371 cld ; fc 16346 call 05 7e5h ; e8 816f16372 call 05803h ; e8 9f 6f 16347 16373 popaw ; 61 16348 16374 pop DS ; 1f … … 16439 16465 pop DS ; 1f 16440 16466 cld ; fc 16441 call 052 ddh ; e8 1e6916467 call 052fbh ; e8 3c 69 16442 16468 pop ES ; 07 16443 16469 popaw ; 61 … … 16455 16481 pop DS ; 1f 16456 16482 cld ; fc 16457 call 06f c0h ; e8 eb 8516483 call 06fdeh ; e8 09 86 16458 16484 pop DS ; 1f 16459 16485 pop ES ; 07 … … 16477 16503 cld ; fc 16478 16504 push 0ece9h ; 68 e9 ec 16479 jmp near 03d 01h ; e9 905016505 jmp near 03d1fh ; e9 ae 50 16480 16506 push ES ; 06 16481 16507 push ax ; 50 … … 16483 16509 push cx ; 51 16484 16510 push dx ; 52 16485 call 03c d5h ; e8 5c5016511 call 03cf3h ; e8 7a 50 16486 16512 cmp AL, strict byte 000h ; 3c 00 16487 16513 je short 0ecabh ; 74 2e 16488 call 03 cebh ; e8 6b5016514 call 03d09h ; e8 89 50 16489 16515 pop dx ; 5a 16490 16516 push dx ; 52 … … 16504 16530 cld ; fc 16505 16531 push 0ece9h ; 68 e9 ec 16506 jmp near 042 d6h ; e9 3f5616532 jmp near 042f4h ; e9 5d 56 16507 16533 and dl, 0e0h ; 80 e2 e0 16508 16534 db 03ah, 0c2h … … 16544 16570 jne short 0ecc8h ; 75 06 16545 16571 push 0ece9h ; 68 e9 ec 16546 jmp near 033 03h ; e9 3b4616572 jmp near 03321h ; e9 59 46 16547 16573 int13_notfloppy: ; 0xfecc8 LB 0x14 16548 16574 cmp dl, 0e0h ; 80 fa e0 … … 16550 16576 shr ebx, 010h ; 66 c1 eb 10 16551 16577 push bx ; 53 16552 call 047 0ah ; e8 355a16578 call 04728h ; e8 53 5a 16553 16579 pop bx ; 5b 16554 16580 sal ebx, 010h ; 66 c1 e3 10 … … 16557 16583 cmp ah, 040h ; 80 fc 40 16558 16584 jnbe short 0ece6h ; 77 05 16559 call 05b b5h ; e8 d16e16585 call 05bd3h ; e8 ef 6e 16560 16586 jmp short 0ece9h ; eb 03 16561 call 060 03h ; e8 1a7316587 call 06021h ; e8 38 73 16562 16588 int13_out: ; 0xfece9 LB 0x4 16563 16589 pop DS ; 1f … … 16775 16801 pop DS ; 1f 16776 16802 cld ; fc 16777 call 079 3bh ; e8 5e8916803 call 07959h ; e8 7c 89 16778 16804 popaw ; 61 16779 16805 pop ES ; 07 … … 16826 16852 mov ax, strict word 00001h ; b8 01 00 16827 16853 push ax ; 50 16828 call 04d 71h ; e8 a15c16854 call 04d8fh ; e8 bf 5c 16829 16855 inc sp ; 44 16830 16856 inc sp ; 44 … … 16833 16859 mov ax, strict word 00002h ; b8 02 00 16834 16860 push ax ; 50 16835 call 04d 71h ; e8 945c16861 call 04d8fh ; e8 b2 5c 16836 16862 inc sp ; 44 16837 16863 inc sp ; 44 … … 16840 16866 mov ax, strict word 00003h ; b8 03 00 16841 16867 push ax ; 50 16842 call 04d 71h ; e8 875c16868 call 04d8fh ; e8 a5 5c 16843 16869 inc sp ; 44 16844 16870 inc sp ; 44 … … 16847 16873 mov ax, strict word 00004h ; b8 04 00 16848 16874 push ax ; 50 16849 call 04d 71h ; e8 7a5c16875 call 04d8fh ; e8 98 5c 16850 16876 inc sp ; 44 16851 16877 inc sp ; 44 … … 16989 17015 pop DS ; 1f 16990 17016 cld ; fc 16991 call 06e 15h ; e8 ae7517017 call 06e33h ; e8 cc 75 16992 17018 pop DS ; 1f 16993 17019 pop ES ; 07 … … 17011 17037 cmp ah, 0c2h ; 80 fc c2 17012 17038 je short 0f899h ; 74 0e 17013 call 067 49h ; e8 bb6e17039 call 06767h ; e8 d9 6e 17014 17040 popaw ; 61 17015 17041 pop ES ; 07 … … 17017 17043 popfw ; 9d 17018 17044 jmp short 0f8a7h ; eb 13 17019 call 09a c1h ; e8 2aa217045 call 09adfh ; e8 48 a2 17020 17046 jmp short 0f88eh ; eb f5 17021 17047 int15_handler_mouse: ; 0xff899 LB 0x5 17022 call 075 b0h ; e8 147d17048 call 075ceh ; e8 32 7d 17023 17049 jmp short 0f88eh ; eb f0 17024 17050 int15_handler32: ; 0xff89e LB 0x9 17025 17051 pushad ; 66 60 17026 call 06a 7fh ; e8 dc7117052 call 06a9dh ; e8 fa 71 17027 17053 popad ; 66 61 17028 17054 jmp short 0f88fh ; eb e8 … … 17057 17083 pop DS ; 1f 17058 17084 cld ; fc 17059 call 07 4e6h ; e8 147c17085 call 07504h ; e8 32 7c 17060 17086 pop cx ; 59 17061 17087 jcxz 0f8e1h ; e3 0c … … 17089 17115 pop DS ; 1f 17090 17116 cld ; fc 17091 call 071 9eh ; e8 977817117 call 071bch ; e8 b5 78 17092 17118 popaw ; 61 17093 17119 pop DS ; 1f … … 17171 17197 cld ; fc 17172 17198 pushad ; 66 60 17173 call 09c d1h ; e8 549e17199 call 09cefh ; e8 72 9e 17174 17200 popad ; 66 61 17175 17201 pop DS ; 1f … … 17182 17208 pop DS ; 1f 17183 17209 cld ; fc 17184 call 072 5ch ; e8 d17317210 call 0727ah ; e8 ef 73 17185 17211 popaw ; 61 17186 17212 pop DS ; 1f … … 17285 17311 cpu_reset: ; 0xffff0 LB 0x10 17286 17312 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17287 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 97h17313 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 010h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r68934 r69128 1 6036b256cf58d884819ecdbbb6307d91*VBoxPcBios386.rom1 5c1e6f4b33cd5a3287fb46724322322f *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r68934 r69128 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 0 a1h, 02bh, 00bh, 082h, 0ech, 091h990 db 000h, 000h, 000h, 000h, 000h, 000h, 0c1h, 02bh, 02bh, 082h, 00ch, 092h 991 991 _softrst: ; 0xf0076 LB 0xc 992 db 000h, 000h, 000h, 000h, 000h, 000h, 0 2ch, 02eh, 02eh, 03ch, 02eh, 03ch992 db 000h, 000h, 000h, 000h, 000h, 000h, 04ch, 02eh, 04eh, 03ch, 04eh, 03ch 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 85h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h995 db 0 39h, 080h, 022h, 081h, 0bah, 090h, 064h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0a5h, 02ah, 066h, 02bh, 000h, 000h, 000h, 000h 995 db 059h, 080h, 042h, 081h, 0dah, 090h, 084h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1114 1114 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1115 1115 1116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3f eclass=DATA group=DGROUP1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x1 61118 db 'VirtualBox 5.2.0 _RC1', 000h, 000h1119 _bios_prefix_string: ; 0xf0da 4LB 0x81116 section CONST2 progbits vstart=0xd8e align=1 ; size=0x3fa class=DATA group=DGROUP 1117 _bios_cvs_version_string: ; 0xf0d8e LB 0x12 1118 db 'VirtualBox 5.2.0', 000h, 000h 1119 _bios_prefix_string: ; 0xf0da0 LB 0x8 1120 1120 db 'BIOS: ', 000h, 000h 1121 _isotag: ; 0xf0da cLB 0x61121 _isotag: ; 0xf0da8 LB 0x6 1122 1122 db 'CD001', 000h 1123 _eltorito: ; 0xf0d b2LB 0x181123 _eltorito: ; 0xf0dae LB 0x18 1124 1124 db 'EL TORITO SPECIFICATION', 000h 1125 _drivetypes: ; 0xf0dc aLB 0x281125 _drivetypes: ; 0xf0dc6 LB 0x28 1126 1126 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1127 1127 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1128 1128 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1129 _scan_to_scanascii: ; 0xf0d f2LB 0x37a1129 _scan_to_scanascii: ; 0xf0dee LB 0x37a 1130 1130 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1131 1131 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1184 1184 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1185 1185 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1186 _panic_msg_keyb_buffer_full: ; 0xf116 cLB 0x201186 _panic_msg_keyb_buffer_full: ; 0xf1168 LB 0x20 1187 1187 db '%s: keyboard input buffer full', 00ah, 000h 1188 1188 1189 ; Padding 0x47 4 bytes at 0xf118c1190 times 114 0db 01189 ; Padding 0x478 bytes at 0xf1188 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e b8 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ed8 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x52 1194 1194 push bp ; 55 … … 1418 1418 push bp ; 55 1419 1419 mov bp, sp ; 89 e5 1420 mov bx, 00da 4h ; bb a40d1420 mov bx, 00da0h ; bb a0 0d 1421 1421 mov cx, ds ; 8c d9 1422 1422 mov ax, strict word 00004h ; b8 04 00 … … 1450 1450 int 010h ; cd 10 1451 1451 jmp short 017c3h ; eb 03 1452 call 07b ceh ; e8 0b 641452 call 07beeh ; e8 2b 64 1453 1453 mov sp, bp ; 89 ec 1454 1454 pop bp ; 5d … … 1596 1596 mov bx, strict word 0000ah ; bb 0a 00 1597 1597 xor cx, cx ; 31 c9 1598 call 0a1 50h ; e8 73 881598 call 0a170h ; e8 93 88 1599 1599 mov word [bp-008h], ax ; 89 46 f8 1600 1600 mov cx, dx ; 89 d1 … … 1833 1833 mov dx, word [bp-026h] ; 8b 56 da 1834 1834 mov si, word [bp-01eh] ; 8b 76 e2 1835 call 0a1 80h ; e8 68 861835 call 0a1a0h ; e8 88 86 1836 1836 mov ax, dx ; 89 d0 1837 1837 xor ah, dh ; 30 f4 … … 2294 2294 mov dx, word [es:si] ; 26 8b 14 2295 2295 mov si, strict word 00018h ; be 18 00 2296 call 0a1 80h ; e8 ee 812296 call 0a1a0h ; e8 0e 82 2297 2297 xor dh, dh ; 30 f6 2298 2298 mov word [bp-014h], dx ; 89 56 ec … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00020h ; be 20 00 2306 call 0a1 80h ; e8 ce 812306 call 0a1a0h ; e8 ee 81 2307 2307 mov bx, dx ; 89 d3 2308 2308 mov word [bp-010h], dx ; 89 56 f0 … … 2336 2336 mov dx, word [es:si] ; 26 8b 14 2337 2337 mov si, strict word 00008h ; be 08 00 2338 call 0a1 80h ; e8 7b 812338 call 0a1a0h ; e8 9b 81 2339 2339 mov word [bp-010h], dx ; 89 56 f0 2340 2340 mov bx, word [bp-016h] ; 8b 5e ea … … 2345 2345 mov dx, word [es:si] ; 26 8b 14 2346 2346 mov si, strict word 00018h ; be 18 00 2347 call 0a1 80h ; e8 5d 812347 call 0a1a0h ; e8 7d 81 2348 2348 mov bl, dl ; 88 d3 2349 2349 and bl, 00fh ; 80 e3 0f … … 2476 2476 pop bp ; 5d 2477 2477 retn ; c3 2478 _ata_detect: ; 0xf2154 LB 0x6 a32478 _ata_detect: ; 0xf2154 LB 0x6c3 2479 2479 push bp ; 55 2480 2480 mov bp, sp ; 89 e5 … … 2485 2485 mov ax, strict word 00040h ; b8 40 00 2486 2486 call 0166eh ; e8 08 f5 2487 mov word [bp-02 4h], ax ; 89 46 dc2487 mov word [bp-028h], ax ; 89 46 d8 2488 2488 mov bx, 00122h ; bb 22 01 2489 2489 mov es, ax ; 8e c0 2490 mov word [bp-0 1eh], bx ; 89 5e e22491 mov word [bp-02 2h], ax ; 89 46 de2490 mov word [bp-02eh], bx ; 89 5e d2 2491 mov word [bp-02ah], ax ; 89 46 d6 2492 2492 mov byte [es:bx+00204h], 000h ; 26 c6 87 04 02 00 2493 2493 mov word [es:bx+00206h], 001f0h ; 26 c7 87 06 02 f0 01 … … 2499 2499 mov byte [es:bx+0020bh], 00fh ; 26 c6 87 0b 02 0f 2500 2500 xor al, al ; 30 c0 2501 mov byte [bp-0 0ch], al ; 88 46 f42502 mov byte [bp-00 8h], al ; 88 46 f82503 mov byte [bp-01 0h], al ; 88 46 f02504 jmp near 027 75h ; e9 bf 052501 mov byte [bp-012h], al ; 88 46 ee 2502 mov byte [bp-00ah], al ; 88 46 f6 2503 mov byte [bp-014h], al ; 88 46 ec 2504 jmp near 02795h ; e9 df 05 2505 2505 mov ax, 000a0h ; b8 a0 00 2506 2506 lea dx, [bx+006h] ; 8d 57 06 … … 2537 2537 cmp AL, strict byte 0aah ; 3c aa 2538 2538 jne short 0223ah ; 75 48 2539 mov al, byte [bp-01 0h] ; 8a 46 f02539 mov al, byte [bp-014h] ; 8a 46 ec 2540 2540 xor ah, ah ; 30 e4 2541 2541 mov dx, strict word 0001ch ; ba 1c 00 2542 2542 imul dx ; f7 ea 2543 mov es, [bp-02 2h] ; 8e 46 de2544 mov si, word [bp-0 1eh] ; 8b 76 e22543 mov es, [bp-02ah] ; 8e 46 d6 2544 mov si, word [bp-02eh] ; 8b 76 d2 2545 2545 add si, ax ; 01 c6 2546 2546 mov byte [es:si+022h], 001h ; 26 c6 44 22 01 2547 mov al, byte [bp-01 0h] ; 8a 46 f02547 mov al, byte [bp-014h] ; 8a 46 ec 2548 2548 xor ah, ah ; 30 e4 2549 2549 call 01db8h ; e8 a7 fb 2550 cmp byte [bp-01 4h], 000h ; 80 7e ec002550 cmp byte [bp-01ah], 000h ; 80 7e e6 00 2551 2551 je short 0221ch ; 74 05 2552 2552 mov ax, 000b0h ; b8 b0 00 … … 2579 2579 db 02ah, 0e4h 2580 2580 ; sub ah, ah ; 2a e4 2581 mov word [bp-0 32h], ax ; 89 46 ce2582 mov al, byte [bp-0 32h] ; 8a 46 ce2583 mov byte [bp-00 ah], al ; 88 46 f62581 mov word [bp-02ch], ax ; 89 46 d4 2582 mov al, byte [bp-02ch] ; 8a 46 d4 2583 mov byte [bp-006h], al ; 88 46 fa 2584 2584 lea dx, [bx+007h] ; 8d 57 07 2585 2585 in AL, DX ; ec … … 2588 2588 cmp cl, 014h ; 80 f9 14 2589 2589 jne short 0227fh ; 75 1f 2590 cmp byte [bp-0 32h], 0ebh ; 80 7e ceeb2590 cmp byte [bp-02ch], 0ebh ; 80 7e d4 eb 2591 2591 jne short 0227fh ; 75 19 2592 mov al, byte [bp-01 0h] ; 8a 46 f02592 mov al, byte [bp-014h] ; 8a 46 ec 2593 2593 xor ah, ah ; 30 e4 2594 2594 mov dx, strict word 0001ch ; ba 1c 00 2595 2595 imul dx ; f7 ea 2596 mov es, [bp-02 2h] ; 8e 46 de2597 mov bx, word [bp-0 1eh] ; 8b 5e e22596 mov es, [bp-02ah] ; 8e 46 d6 2597 mov bx, word [bp-02eh] ; 8b 5e d2 2598 2598 add bx, ax ; 01 c3 2599 2599 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 … … 2601 2601 test ch, ch ; 84 ed 2602 2602 jne short 022a6h ; 75 23 2603 cmp byte [bp-00 ah], 000h ; 80 7e f6002603 cmp byte [bp-006h], 000h ; 80 7e fa 00 2604 2604 jne short 022a6h ; 75 1d 2605 2605 test al, al ; 84 c0 2606 2606 je short 022a6h ; 74 19 2607 mov al, byte [bp-01 0h] ; 8a 46 f02607 mov al, byte [bp-014h] ; 8a 46 ec 2608 2608 xor ah, ah ; 30 e4 2609 2609 mov dx, strict word 0001ch ; ba 1c 00 2610 2610 imul dx ; f7 ea 2611 mov es, [bp-02 2h] ; 8e 46 de2612 mov bx, word [bp-0 1eh] ; 8b 5e e22611 mov es, [bp-02ah] ; 8e 46 d6 2612 mov bx, word [bp-02eh] ; 8b 5e d2 2613 2613 add bx, ax ; 01 c3 2614 2614 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 … … 2616 2616 cmp ch, 0ffh ; 80 fd ff 2617 2617 jne short 022c7h ; 75 1c 2618 cmp ch, byte [bp-00 ah] ; 3a 6e f62618 cmp ch, byte [bp-006h] ; 3a 6e fa 2619 2619 jne short 022c7h ; 75 17 2620 mov al, byte [bp-01 0h] ; 8a 46 f02620 mov al, byte [bp-014h] ; 8a 46 ec 2621 2621 xor ah, ah ; 30 e4 2622 2622 mov dx, strict word 0001ch ; ba 1c 00 2623 2623 imul dx ; f7 ea 2624 mov es, [bp-02 2h] ; 8e 46 de2625 mov bx, word [bp-0 1eh] ; 8b 5e e22624 mov es, [bp-02ah] ; 8e 46 d6 2625 mov bx, word [bp-02eh] ; 8b 5e d2 2626 2626 add bx, ax ; 01 c3 2627 2627 mov byte [es:bx+022h], 000h ; 26 c6 47 22 00 2628 mov dx, word [bp-0 28h] ; 8b 56 d82628 mov dx, word [bp-032h] ; 8b 56 ce 2629 2629 add dx, strict byte 00006h ; 83 c2 06 2630 2630 mov AL, strict byte 008h ; b0 08 2631 2631 out DX, AL ; ee 2632 mov al, byte [bp-01 0h] ; 8a 46 f02632 mov al, byte [bp-014h] ; 8a 46 ec 2633 2633 xor ah, ah ; 30 e4 2634 2634 mov dx, strict word 0001ch ; ba 1c 00 2635 2635 imul dx ; f7 ea 2636 mov es, [bp-02 2h] ; 8e 46 de2637 mov bx, word [bp-0 1eh] ; 8b 5e e22636 mov es, [bp-02ah] ; 8e 46 d6 2637 mov bx, word [bp-02eh] ; 8b 5e d2 2638 2638 add bx, ax ; 01 c3 2639 2639 mov al, byte [es:bx+022h] ; 26 8a 47 22 2640 mov byte [bp-01 2h], al ; 88 46 ee2640 mov byte [bp-018h], al ; 88 46 e8 2641 2641 cmp AL, strict byte 002h ; 3c 02 2642 2642 jne short 02339h ; 75 4c … … 2644 2644 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2645 2645 lea dx, [bp-00268h] ; 8d 96 98 fd 2646 mov bx, word [bp-0 1eh] ; 8b 5e e22646 mov bx, word [bp-02eh] ; 8b 5e d2 2647 2647 mov word [es:bx+008h], dx ; 26 89 57 08 2648 2648 mov [es:bx+00ah], ss ; 26 8c 57 0a 2649 mov al, byte [bp-01 0h] ; 8a 46 f02649 mov al, byte [bp-014h] ; 8a 46 ec 2650 2650 mov byte [es:bx+00ch], al ; 26 88 47 0c 2651 2651 mov cx, strict word 00001h ; b9 01 00 2652 2652 mov bx, 000ech ; bb ec 00 2653 mov ax, word [bp-0 1eh] ; 8b 46 e22653 mov ax, word [bp-02eh] ; 8b 46 d2 2654 2654 mov dx, es ; 8c c2 2655 2655 call 01e9dh ; e8 82 fb … … 2666 2666 mov ax, strict word 00001h ; b8 01 00 2667 2667 jmp short 0233eh ; eb 05 2668 jmp near 025 20h ; e9 e4 012668 jmp near 02540h ; e9 04 02 2669 2669 xor ax, ax ; 31 c0 2670 mov byte [bp-0 1ah], al ; 88 46 e62671 mov byte [bp-00 6h], 000h ; c6 46 fa002672 mov word [bp-03 6h], 00200h ; c7 46 ca00 022670 mov byte [bp-008h], al ; 88 46 f8 2671 mov byte [bp-00eh], 000h ; c6 46 f2 00 2672 mov word [bp-038h], 00200h ; c7 46 c8 00 02 2673 2673 mov ax, word [bp-00266h] ; 8b 86 9a fd 2674 mov word [bp-02 ch], ax ; 89 46 d42674 mov word [bp-026h], ax ; 89 46 da 2675 2675 mov ax, word [bp-00262h] ; 8b 86 9e fd 2676 mov word [bp-0 34h], ax ; 89 46 cc2676 mov word [bp-01eh], ax ; 89 46 e2 2677 2677 mov ax, word [bp-0025ch] ; 8b 86 a4 fd 2678 mov word [bp-020h], ax ; 89 46 e0 2679 mov ax, word [bp-001f0h] ; 8b 86 10 fe 2680 mov word [bp-030h], ax ; 89 46 d0 2681 mov si, word [bp-001eeh] ; 8b b6 12 fe 2682 xor ax, ax ; 31 c0 2678 2683 mov word [bp-01ch], ax ; 89 46 e4 2679 mov si, word [bp-001f0h] ; 8b b6 10 fe 2680 mov ax, word [bp-001eeh] ; 8b 86 12 fe 2681 mov word [bp-030h], ax ; 89 46 d0 2682 xor ax, ax ; 31 c0 2683 mov word [bp-02eh], ax ; 89 46 d2 2684 mov word [bp-020h], ax ; 89 46 e0 2685 cmp word [bp-030h], 00fffh ; 81 7e d0 ff 0f 2686 jne short 02397h ; 75 1e 2687 cmp si, strict byte 0ffffh ; 83 fe ff 2684 mov word [bp-024h], ax ; 89 46 dc 2685 cmp si, 00fffh ; 81 fe ff 0f 2686 jne short 02397h ; 75 1f 2687 cmp word [bp-030h], strict byte 0ffffh ; 83 7e d0 ff 2688 2688 jne short 02397h ; 75 19 2689 2689 mov ax, word [bp-0019ah] ; 8b 86 66 fe 2690 mov word [bp-02 0h], ax ; 89 46 e02690 mov word [bp-024h], ax ; 89 46 dc 2691 2691 mov ax, word [bp-0019ch] ; 8b 86 64 fe 2692 mov word [bp-02eh], ax ; 89 46 d2 2693 mov ax, word [bp-0019eh] ; 8b 86 62 fe 2692 mov word [bp-01ch], ax ; 89 46 e4 2693 mov si, word [bp-0019eh] ; 8b b6 62 fe 2694 mov ax, word [bp-001a0h] ; 8b 86 60 fe 2694 2695 mov word [bp-030h], ax ; 89 46 d0 2695 mov si, word [bp-001a0h] ; 8b b6 60 fe 2696 mov al, byte [bp-010h] ; 8a 46 f0 2696 mov al, byte [bp-014h] ; 8a 46 ec 2697 2697 cmp AL, strict byte 001h ; 3c 01 2698 2698 jc short 023aah ; 72 0c … … 2735 2735 mov word [bp-03ah], ax ; 89 46 c6 2736 2736 jmp short 02401h ; eb 12 2737 push word [bp-020h] ; ff 76 e0 2738 push word [bp-02eh] ; ff 76 d2 2737 push word [bp-024h] ; ff 76 dc 2738 push word [bp-01ch] ; ff 76 e4 2739 push si ; 56 2739 2740 push word [bp-030h] ; ff 76 d0 2740 push si ; 562741 2741 mov dx, ss ; 8c d2 2742 2742 lea ax, [bp-03eh] ; 8d 46 c2 2743 call 05b 7fh ; e8 7e 372744 mov bx, 00da 4h ; bb a40d2743 call 05b9fh ; e8 9e 37 2744 mov bx, 00da0h ; bb a0 0d 2745 2745 mov cx, ds ; 8c d9 2746 2746 mov ax, strict word 00004h ; b8 04 00 … … 2752 2752 mov ax, word [bp-03ch] ; 8b 46 c4 2753 2753 push ax ; 50 2754 push word [bp-0 1ch] ; ff 76 e42755 push word [bp-0 34h] ; ff 76 cc2756 push word [bp-02 ch] ; ff 76 d42757 mov al, byte [bp-01 4h] ; 8a 46 ec2758 xor ah, ah ; 30 e4 2759 push ax ; 50 2760 mov al, byte [bp-0 18h] ; 8a 46 e82754 push word [bp-020h] ; ff 76 e0 2755 push word [bp-01eh] ; ff 76 e2 2756 push word [bp-026h] ; ff 76 da 2757 mov al, byte [bp-01ah] ; 8a 46 e6 2758 xor ah, ah ; 30 e4 2759 push ax ; 50 2760 mov al, byte [bp-00ch] ; 8a 46 f4 2761 2761 push ax ; 50 2762 2762 mov ax, 0014dh ; b8 4d 01 … … 2766 2766 call 01976h ; e8 40 f5 2767 2767 add sp, strict byte 00014h ; 83 c4 14 2768 mov al, byte [bp-01 0h] ; 8a 46 f02768 mov al, byte [bp-014h] ; 8a 46 ec 2769 2769 xor ah, ah ; 30 e4 2770 2770 mov dx, strict word 0001ch ; ba 1c 00 2771 2771 imul dx ; f7 ea 2772 mov es, [bp-02 2h] ; 8e 46 de2773 mov di, word [bp-0 1eh] ; 8b 7e e22772 mov es, [bp-02ah] ; 8e 46 d6 2773 mov di, word [bp-02eh] ; 8b 7e d2 2774 2774 add di, ax ; 01 c7 2775 2775 mov byte [es:di+023h], 0ffh ; 26 c6 45 23 ff 2776 mov al, byte [bp-0 1ah] ; 8a 46 e62776 mov al, byte [bp-008h] ; 8a 46 f8 2777 2777 mov byte [es:di+024h], al ; 26 88 45 24 2778 mov al, byte [bp-00 6h] ; 8a 46 fa2778 mov al, byte [bp-00eh] ; 8a 46 f2 2779 2779 mov byte [es:di+026h], al ; 26 88 45 26 2780 mov ax, word [bp-03 6h] ; 8b 46 ca2780 mov ax, word [bp-038h] ; 8b 46 c8 2781 2781 mov word [es:di+028h], ax ; 26 89 45 28 2782 mov ax, word [bp-0 34h] ; 8b 46 cc2782 mov ax, word [bp-01eh] ; 8b 46 e2 2783 2783 mov word [es:di+030h], ax ; 26 89 45 30 2784 mov ax, word [bp-02 ch] ; 8b 46 d42784 mov ax, word [bp-026h] ; 8b 46 da 2785 2785 mov word [es:di+032h], ax ; 26 89 45 32 2786 mov ax, word [bp-020h] ; 8b 46 e0 2787 mov word [es:di+034h], ax ; 26 89 45 34 2788 mov ax, word [bp-024h] ; 8b 46 dc 2789 mov word [es:di+03ch], ax ; 26 89 45 3c 2786 2790 mov ax, word [bp-01ch] ; 8b 46 e4 2787 mov word [es:di+034h], ax ; 26 89 45 342788 mov ax, word [bp-020h] ; 8b 46 e02789 mov word [es:di+03ch], ax ; 26 89 45 3c2790 mov ax, word [bp-02eh] ; 8b 46 d22791 2791 mov word [es:di+03ah], ax ; 26 89 45 3a 2792 mov word [es:di+038h], si ; 26 89 75 38 2792 2793 mov ax, word [bp-030h] ; 8b 46 d0 2793 mov word [es:di+038h], ax ; 26 89 45 38 2794 mov word [es:di+036h], si ; 26 89 75 36 2794 mov word [es:di+036h], ax ; 26 89 45 36 2795 2795 lea di, [di+02ah] ; 8d 7d 2a 2796 2796 push DS ; 1e … … 2802 2802 movsw ; a5 2803 2803 pop DS ; 1f 2804 mov al, byte [bp-01 0h] ; 8a 46 f02804 mov al, byte [bp-014h] ; 8a 46 ec 2805 2805 cmp AL, strict byte 002h ; 3c 02 2806 jnc short 0250 ah ; 73 632806 jnc short 0250bh ; 73 64 2807 2807 test al, al ; 84 c0 2808 2808 jne short 024b0h ; 75 05 … … 2810 2810 jmp short 024b3h ; eb 03 2811 2811 mov di, strict word 0004dh ; bf 4d 00 2812 mov dx, word [bp-024h] ; 8b 56 dc 2812 mov cx, word [bp-028h] ; 8b 4e d8 2813 mov al, byte [bp-014h] ; 8a 46 ec 2814 xor ah, ah ; 30 e4 2815 mov dx, strict word 00005h ; ba 05 00 2816 imul dx ; f7 ea 2817 mov bx, ax ; 89 c3 2818 sal bx, 1 ; d1 e3 2819 sal bx, 1 ; d1 e3 2820 add bx, 00104h ; 81 c3 04 01 2821 xor ax, ax ; 31 c0 2822 mov es, ax ; 8e c0 2823 mov word [es:bx], di ; 26 89 3f 2824 mov word [es:bx+002h], cx ; 26 89 4f 02 2813 2825 mov bx, word [bp-03ch] ; 8b 5e c4 2814 mov es, dx ; 8e c22826 mov es, cx ; 8e c1 2815 2827 mov word [es:di], bx ; 26 89 1d 2816 2828 mov bl, byte [bp-03eh] ; 8a 5e c2 2817 2829 mov byte [es:di+002h], bl ; 26 88 5d 02 2818 2830 mov byte [es:di+003h], 0a0h ; 26 c6 45 03 a0 2819 mov al, byte [bp-0 1ch] ; 8a 46 e42831 mov al, byte [bp-020h] ; 8a 46 e0 2820 2832 mov byte [es:di+004h], al ; 26 88 45 04 2821 mov ax, word [bp-02 ch] ; 8b 46 d42833 mov ax, word [bp-026h] ; 8b 46 da 2822 2834 mov word [es:di+009h], ax ; 26 89 45 09 2823 mov al, byte [bp-0 34h] ; 8a 46 cc2835 mov al, byte [bp-01eh] ; 8a 46 e2 2824 2836 mov byte [es:di+00bh], al ; 26 88 45 0b 2825 mov al, byte [bp-01ch] ; 8a 46 e42826 mov byte [es:di+00eh], al ; 26 88 450e2837 mov bl, byte [bp-03ah] ; 8a 5e c6 2838 mov byte [es:di+00eh], bl ; 26 88 5d 0e 2827 2839 xor bl, bl ; 30 db 2840 xor al, al ; 30 c0 2841 jmp short 02511h ; eb 06 2842 jmp short 0252ah ; eb 1d 2843 cmp AL, strict byte 00fh ; 3c 0f 2844 jnc short 02522h ; 73 11 2845 mov dl, al ; 88 c2 2846 xor dh, dh ; 30 f6 2847 mov es, cx ; 8e c1 2848 mov si, di ; 89 fe 2849 add si, dx ; 01 d6 2850 add bl, byte [es:si] ; 26 02 1c 2851 db 0feh, 0c0h 2852 ; inc al ; fe c0 2853 jmp short 0250dh ; eb eb 2854 neg bl ; f6 db 2855 mov es, cx ; 8e c1 2856 mov byte [es:di+00fh], bl ; 26 88 5d 0f 2857 mov bl, byte [bp-00ah] ; 8a 5e f6 2828 2858 xor bh, bh ; 30 ff 2829 jmp short 024f1h ; eb 05 2830 cmp bh, 00fh ; 80 ff 0f 2831 jnc short 02502h ; 73 11 2832 mov al, bh ; 88 f8 2833 xor ah, ah ; 30 e4 2834 mov es, dx ; 8e c2 2835 mov si, di ; 89 fe 2836 add si, ax ; 01 c6 2837 add bl, byte [es:si] ; 26 02 1c 2838 db 0feh, 0c7h 2839 ; inc bh ; fe c7 2840 jmp short 024ech ; eb ea 2841 neg bl ; f6 db 2842 mov es, dx ; 8e c2 2843 mov byte [es:di+00fh], bl ; 26 88 5d 0f 2844 mov bl, byte [bp-008h] ; 8a 5e f8 2845 xor bh, bh ; 30 ff 2846 mov es, [bp-022h] ; 8e 46 de 2847 add bx, word [bp-01eh] ; 03 5e e2 2848 mov al, byte [bp-010h] ; 8a 46 f0 2859 mov es, [bp-02ah] ; 8e 46 d6 2860 add bx, word [bp-02eh] ; 03 5e d2 2861 mov al, byte [bp-014h] ; 8a 46 ec 2849 2862 mov byte [es:bx+001e3h], al ; 26 88 87 e3 01 2850 inc byte [bp-00 8h] ; fe 46 f82851 cmp byte [bp-01 2h], 003h ; 80 7e ee032852 jne short 025 8dh ; 75 672853 mov al, byte [bp-01 0h] ; 8a 46 f02863 inc byte [bp-00ah] ; fe 46 f6 2864 cmp byte [bp-018h], 003h ; 80 7e e8 03 2865 jne short 025adh ; 75 67 2866 mov al, byte [bp-014h] ; 8a 46 ec 2854 2867 xor ah, ah ; 30 e4 2855 2868 mov dx, strict word 0001ch ; ba 1c 00 2856 2869 imul dx ; f7 ea 2857 mov es, [bp-02 2h] ; 8e 46 de2858 mov bx, word [bp-0 1eh] ; 8b 5e e22870 mov es, [bp-02ah] ; 8e 46 d6 2871 mov bx, word [bp-02eh] ; 8b 5e d2 2859 2872 add bx, ax ; 01 c3 2860 2873 mov byte [es:bx+023h], 005h ; 26 c6 47 23 05 2861 2874 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2862 2875 lea dx, [bp-00268h] ; 8d 96 98 fd 2863 mov bx, word [bp-0 1eh] ; 8b 5e e22876 mov bx, word [bp-02eh] ; 8b 5e d2 2864 2877 mov word [es:bx+008h], dx ; 26 89 57 08 2865 2878 mov [es:bx+00ah], ss ; 26 8c 57 0a 2866 mov al, byte [bp-01 0h] ; 8a 46 f02879 mov al, byte [bp-014h] ; 8a 46 ec 2867 2880 mov byte [es:bx+00ch], al ; 26 88 47 0c 2868 2881 mov cx, strict word 00001h ; b9 01 00 2869 2882 mov bx, 000a1h ; bb a1 00 2870 mov ax, word [bp-0 1eh] ; 8b 46 e22883 mov ax, word [bp-02eh] ; 8b 46 d2 2871 2884 mov dx, es ; 8c c2 2872 call 01e9dh ; e8 37 f92885 call 01e9dh ; e8 17 f9 2873 2886 test ax, ax ; 85 c0 2874 je short 025 78h ; 74 0e2887 je short 02598h ; 74 0e 2875 2888 mov ax, 00174h ; b8 74 01 2876 2889 push ax ; 50 2877 2890 mov ax, strict word 00007h ; b8 07 00 2878 2891 push ax ; 50 2879 call 01976h ; e8 01 f42892 call 01976h ; e8 e1 f3 2880 2893 add sp, strict byte 00004h ; 83 c4 04 2881 2894 mov al, byte [bp-00267h] ; 8a 86 99 fd 2882 2895 and AL, strict byte 01fh ; 24 1f 2883 mov byte [bp-01 6h], al ; 88 46 ea2896 mov byte [bp-010h], al ; 88 46 f0 2884 2897 test byte [bp-00268h], 080h ; f6 86 98 fd 80 2885 je short 025 8fh ; 74 072898 je short 025afh ; 74 07 2886 2899 mov cx, strict word 00001h ; b9 01 00 2887 jmp short 025 91h ; eb 042888 jmp short 025 cch ; eb 3d2900 jmp short 025b1h ; eb 04 2901 jmp short 025ech ; eb 3d 2889 2902 xor cx, cx ; 31 c9 2890 mov al, byte [bp-01 0h] ; 8a 46 f02903 mov al, byte [bp-014h] ; 8a 46 ec 2891 2904 xor ah, ah ; 30 e4 2892 2905 mov dx, strict word 0001ch ; ba 1c 00 2893 2906 imul dx ; f7 ea 2894 mov es, [bp-02 2h] ; 8e 46 de2895 mov bx, word [bp-0 1eh] ; 8b 5e e22907 mov es, [bp-02ah] ; 8e 46 d6 2908 mov bx, word [bp-02eh] ; 8b 5e d2 2896 2909 add bx, ax ; 01 c3 2897 mov al, byte [bp-01 6h] ; 8a 46 ea2910 mov al, byte [bp-010h] ; 8a 46 f0 2898 2911 mov byte [es:bx+023h], al ; 26 88 47 23 2899 2912 mov byte [es:bx+024h], cl ; 26 88 4f 24 2900 2913 mov byte [es:bx+026h], 000h ; 26 c6 47 26 00 2901 2914 mov word [es:bx+028h], 00800h ; 26 c7 47 28 00 08 2902 mov bl, byte [bp-0 0ch] ; 8a 5e f42915 mov bl, byte [bp-012h] ; 8a 5e ee 2903 2916 xor bh, bh ; 30 ff 2904 add bx, word [bp-0 1eh] ; 03 5e e22905 mov al, byte [bp-01 0h] ; 8a 46 f02917 add bx, word [bp-02eh] ; 03 5e d2 2918 mov al, byte [bp-014h] ; 8a 46 ec 2906 2919 mov byte [es:bx+001f4h], al ; 26 88 87 f4 01 2907 inc byte [bp-0 0ch] ; fe 46 f42908 mov al, byte [bp-01 2h] ; 8a 46 ee2920 inc byte [bp-012h] ; fe 46 ee 2921 mov al, byte [bp-018h] ; 8a 46 e8 2909 2922 cmp AL, strict byte 003h ; 3c 03 2910 je short 026 05h ; 74 322923 je short 02625h ; 74 32 2911 2924 cmp AL, strict byte 002h ; 3c 02 2912 jne short 026 2ch ; 75 552913 mov al, byte [bp-01 0h] ; 8a 46 f02925 jne short 0264ch ; 75 55 2926 mov al, byte [bp-014h] ; 8a 46 ec 2914 2927 xor ah, ah ; 30 e4 2915 2928 mov dx, strict word 0001ch ; ba 1c 00 2916 2929 imul dx ; f7 ea 2917 mov es, [bp-02 2h] ; 8e 46 de2918 mov di, word [bp-0 1eh] ; 8b 7e e22930 mov es, [bp-02ah] ; 8e 46 d6 2931 mov di, word [bp-02eh] ; 8b 7e d2 2919 2932 add di, ax ; 01 c7 2920 2933 mov ax, word [es:di+03ch] ; 26 8b 45 3c … … 2923 2936 mov dx, word [es:di+036h] ; 26 8b 55 36 2924 2937 mov si, strict word 0000bh ; be 0b 00 2925 call 0a1 80h ; e8 81 7b2926 mov word [bp-02 ah], dx ; 89 56 d62927 mov word [bp-0 26h], cx ; 89 4e da2938 call 0a1a0h ; e8 81 7b 2939 mov word [bp-022h], dx ; 89 56 de 2940 mov word [bp-036h], cx ; 89 4e ca 2928 2941 mov dh, byte [bp-001c7h] ; 8a b6 39 fe 2929 2942 mov dl, byte [bp-001c8h] ; 8a 96 38 fe 2930 mov byte [bp-0 0eh], 00fh ; c6 46 f20f2931 jmp short 026 1ch ; eb 092932 dec byte [bp-0 0eh] ; fe 4e f22933 cmp byte [bp-0 0eh], 000h ; 80 7e f2002934 jbe short 026 28h ; 76 0c2935 mov cl, byte [bp-0 0eh] ; 8a 4e f22943 mov byte [bp-016h], 00fh ; c6 46 ea 0f 2944 jmp short 0263ch ; eb 09 2945 dec byte [bp-016h] ; fe 4e ea 2946 cmp byte [bp-016h], 000h ; 80 7e ea 00 2947 jbe short 02648h ; 76 0c 2948 mov cl, byte [bp-016h] ; 8a 4e ea 2936 2949 mov ax, strict word 00001h ; b8 01 00 2937 2950 sal ax, CL ; d3 e0 2938 2951 test dx, ax ; 85 c2 2939 je short 026 13h ; 74 eb2952 je short 02633h ; 74 eb 2940 2953 xor di, di ; 31 ff 2941 jmp short 026 33h ; eb 072942 jmp short 026 62h ; eb 342954 jmp short 02653h ; eb 07 2955 jmp short 02682h ; eb 34 2943 2956 cmp di, strict byte 00014h ; 83 ff 14 2944 jnl short 026 48h ; 7d 152957 jnl short 02668h ; 7d 15 2945 2958 mov si, di ; 89 fe 2946 2959 sal si, 1 ; d1 e6 … … 2950 2963 mov byte [bp+si-067h], al ; 88 42 99 2951 2964 inc di ; 47 2952 jmp short 026 2eh ; eb e62965 jmp short 0264eh ; eb e6 2953 2966 mov byte [bp-040h], 000h ; c6 46 c0 00 2954 2967 mov di, strict word 00027h ; bf 27 00 2955 jmp short 026 56h ; eb 052968 jmp short 02676h ; eb 05 2956 2969 dec di ; 4f 2957 2970 test di, di ; 85 ff 2958 jle short 026 62h ; 7e 0c2971 jle short 02682h ; 7e 0c 2959 2972 cmp byte [bp+di-068h], 020h ; 80 7b 98 20 2960 jne short 026 62h ; 75 062973 jne short 02682h ; 75 06 2961 2974 mov byte [bp+di-068h], 000h ; c6 43 98 00 2962 jmp short 026 51h ; eb ef2963 mov al, byte [bp-01 2h] ; 8a 46 ee2975 jmp short 02671h ; eb ef 2976 mov al, byte [bp-018h] ; 8a 46 e8 2964 2977 cmp AL, strict byte 003h ; 3c 03 2965 je short 026 cfh ; 74 662978 je short 026efh ; 74 66 2966 2979 cmp AL, strict byte 002h ; 3c 02 2967 je short 026 74h ; 74 072980 je short 02694h ; 74 07 2968 2981 cmp AL, strict byte 001h ; 3c 01 2969 je short 026 dah ; 74 692970 jmp near 027 6ch ; e9 f8 002971 cmp byte [bp-01 4h], 000h ; 80 7e ec002972 je short 026 7fh ; 74 052982 je short 026fah ; 74 69 2983 jmp near 0278ch ; e9 f8 00 2984 cmp byte [bp-01ah], 000h ; 80 7e e6 00 2985 je short 0269fh ; 74 05 2973 2986 mov ax, 0019fh ; b8 9f 01 2974 jmp short 026 82h ; eb 032987 jmp short 026a2h ; eb 03 2975 2988 mov ax, 001a6h ; b8 a6 01 2976 2989 push ax ; 50 2977 mov al, byte [bp-0 18h] ; 8a 46 e82990 mov al, byte [bp-00ch] ; 8a 46 f4 2978 2991 xor ah, ah ; 30 e4 2979 2992 push ax ; 50 … … 2982 2995 mov ax, strict word 00002h ; b8 02 00 2983 2996 push ax ; 50 2984 call 01976h ; e8 e2 f22997 call 01976h ; e8 c2 f2 2985 2998 add sp, strict byte 00008h ; 83 c4 08 2986 2999 xor di, di ; 31 ff … … 2989 3002 inc di ; 47 2990 3003 test ax, ax ; 85 c0 2991 je short 026 b4h ; 74 113004 je short 026d4h ; 74 11 2992 3005 push ax ; 50 2993 3006 mov ax, 001b8h ; b8 b8 01 … … 2995 3008 mov ax, strict word 00002h ; b8 02 00 2996 3009 push ax ; 50 2997 call 01976h ; e8 c7 f23010 call 01976h ; e8 a7 f2 2998 3011 add sp, strict byte 00006h ; 83 c4 06 2999 jmp short 026 99h ; eb e53000 push word [bp-0 26h] ; ff 76 da3001 push word [bp-02 ah] ; ff 76 d63002 mov al, byte [bp-0 0eh] ; 8a 46 f23012 jmp short 026b9h ; eb e5 3013 push word [bp-036h] ; ff 76 ca 3014 push word [bp-022h] ; ff 76 de 3015 mov al, byte [bp-016h] ; 8a 46 ea 3003 3016 push ax ; 50 3004 3017 mov ax, 001bbh ; b8 bb 01 … … 3006 3019 mov ax, strict word 00002h ; b8 02 00 3007 3020 push ax ; 50 3008 call 01976h ; e8 ad f23021 call 01976h ; e8 8d f2 3009 3022 add sp, strict byte 0000ah ; 83 c4 0a 3010 jmp near 027 6ch ; e9 9d 003011 cmp byte [bp-01 4h], 000h ; 80 7e ec003012 je short 026 dch ; 74 073023 jmp near 0278ch ; e9 9d 00 3024 cmp byte [bp-01ah], 000h ; 80 7e e6 00 3025 je short 026fch ; 74 07 3013 3026 mov ax, 0019fh ; b8 9f 01 3014 jmp short 026 dfh ; eb 053015 jmp short 027 49h ; eb 6d3027 jmp short 026ffh ; eb 05 3028 jmp short 02769h ; eb 6d 3016 3029 mov ax, 001a6h ; b8 a6 01 3017 3030 push ax ; 50 3018 mov al, byte [bp-0 18h] ; 8a 46 e83031 mov al, byte [bp-00ch] ; 8a 46 f4 3019 3032 xor ah, ah ; 30 e4 3020 3033 push ax ; 50 … … 3023 3036 mov ax, strict word 00002h ; b8 02 00 3024 3037 push ax ; 50 3025 call 01976h ; e8 85 f23038 call 01976h ; e8 65 f2 3026 3039 add sp, strict byte 00008h ; 83 c4 08 3027 3040 xor di, di ; 31 ff … … 3030 3043 inc di ; 47 3031 3044 test ax, ax ; 85 c0 3032 je short 027 11h ; 74 113045 je short 02731h ; 74 11 3033 3046 push ax ; 50 3034 3047 mov ax, 001b8h ; b8 b8 01 … … 3036 3049 mov ax, strict word 00002h ; b8 02 00 3037 3050 push ax ; 50 3038 call 01976h ; e8 6a f23051 call 01976h ; e8 4a f2 3039 3052 add sp, strict byte 00006h ; 83 c4 06 3040 jmp short 02 6f6h ; eb e53041 mov al, byte [bp-01 0h] ; 8a 46 f03053 jmp short 02716h ; eb e5 3054 mov al, byte [bp-014h] ; 8a 46 ec 3042 3055 mov dx, strict word 0001ch ; ba 1c 00 3043 3056 imul dx ; f7 ea 3044 mov es, [bp-02 2h] ; 8e 46 de3045 mov bx, word [bp-0 1eh] ; 8b 5e e23057 mov es, [bp-02ah] ; 8e 46 d6 3058 mov bx, word [bp-02eh] ; 8b 5e d2 3046 3059 add bx, ax ; 01 c3 3047 3060 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 3048 jne short 027 33h ; 75 0b3049 mov al, byte [bp-0 0eh] ; 8a 46 f23061 jne short 02753h ; 75 0b 3062 mov al, byte [bp-016h] ; 8a 46 ea 3050 3063 xor ah, ah ; 30 e4 3051 3064 push ax ; 50 3052 3065 mov ax, 001dbh ; b8 db 01 3053 jmp short 027 3ch ; eb 093054 mov al, byte [bp-0 0eh] ; 8a 46 f23066 jmp short 0275ch ; eb 09 3067 mov al, byte [bp-016h] ; 8a 46 ea 3055 3068 xor ah, ah ; 30 e4 3056 3069 push ax ; 50 … … 3059 3072 mov ax, strict word 00002h ; b8 02 00 3060 3073 push ax ; 50 3061 call 01976h ; e8 32 f23074 call 01976h ; e8 12 f2 3062 3075 add sp, strict byte 00006h ; 83 c4 06 3063 jmp short 027 6ch ; eb 233064 cmp byte [bp-01 4h], 000h ; 80 7e ec003065 je short 027 54h ; 74 053076 jmp short 0278ch ; eb 23 3077 cmp byte [bp-01ah], 000h ; 80 7e e6 00 3078 je short 02774h ; 74 05 3066 3079 mov ax, 0019fh ; b8 9f 01 3067 jmp short 027 57h ; eb 033080 jmp short 02777h ; eb 03 3068 3081 mov ax, 001a6h ; b8 a6 01 3069 3082 push ax ; 50 3070 mov al, byte [bp-0 18h] ; 8a 46 e83083 mov al, byte [bp-00ch] ; 8a 46 f4 3071 3084 xor ah, ah ; 30 e4 3072 3085 push ax ; 50 … … 3075 3088 mov ax, strict word 00002h ; b8 02 00 3076 3089 push ax ; 50 3077 call 01976h ; e8 0d f23090 call 01976h ; e8 ed f1 3078 3091 add sp, strict byte 00008h ; 83 c4 08 3079 inc byte [bp-01 0h] ; fe 46 f03080 cmp byte [bp-01 0h], 008h ; 80 7e f0083081 jnc short 027 cch ; 73 573082 mov bl, byte [bp-01 0h] ; 8a 5e f03092 inc byte [bp-014h] ; fe 46 ec 3093 cmp byte [bp-014h], 008h ; 80 7e ec 08 3094 jnc short 027ech ; 73 57 3095 mov bl, byte [bp-014h] ; 8a 5e ec 3083 3096 xor bh, bh ; 30 ff 3084 3097 mov ax, bx ; 89 d8 … … 3088 3101 sar ax, 1 ; d1 f8 3089 3102 mov cx, ax ; 89 c1 3090 mov byte [bp-0 18h], al ; 88 46 e83103 mov byte [bp-00ch], al ; 88 46 f4 3091 3104 mov ax, bx ; 89 d8 3092 3105 cwd ; 99 3093 3106 mov bx, strict word 00002h ; bb 02 00 3094 3107 idiv bx ; f7 fb 3095 mov word [bp-03 8h], dx ; 89 56 c83096 mov al, byte [bp-03 8h] ; 8a 46 c83097 mov byte [bp-01 4h], al ; 88 46 ec3108 mov word [bp-034h], dx ; 89 56 cc 3109 mov al, byte [bp-034h] ; 8a 46 cc 3110 mov byte [bp-01ah], al ; 88 46 e6 3098 3111 mov al, cl ; 88 c8 3099 3112 xor ah, ah ; 30 e4 3100 3113 mov dx, strict word 00006h ; ba 06 00 3101 3114 imul dx ; f7 ea 3102 mov es, [bp-02 2h] ; 8e 46 de3103 mov si, word [bp-0 1eh] ; 8b 76 e23115 mov es, [bp-02ah] ; 8e 46 d6 3116 mov si, word [bp-02eh] ; 8b 76 d2 3104 3117 add si, ax ; 01 c6 3105 3118 mov bx, word [es:si+00206h] ; 26 8b 9c 06 02 3106 3119 mov ax, word [es:si+00208h] ; 26 8b 84 08 02 3107 mov word [bp-0 28h], ax ; 89 46 d83120 mov word [bp-032h], ax ; 89 46 ce 3108 3121 mov dx, ax ; 89 c2 3109 3122 add dx, strict byte 00006h ; 83 c2 06 3110 3123 mov AL, strict byte 00ah ; b0 0a 3111 3124 out DX, AL ; ee 3112 cmp byte [bp-03 8h], 000h ; 80 7e c8003113 jne short 027 c6h ; 75 033114 jmp near 021b6h ; e9 f0 f93125 cmp byte [bp-034h], 000h ; 80 7e cc 00 3126 jne short 027e6h ; 75 03 3127 jmp near 021b6h ; e9 d0 f9 3115 3128 mov ax, 000b0h ; b8 b0 00 3116 jmp near 021b9h ; e9 ed f93117 mov al, byte [bp-00 8h] ; 8a 46 f83118 mov es, [bp-02 2h] ; 8e 46 de3119 mov bx, word [bp-0 1eh] ; 8b 5e e23129 jmp near 021b9h ; e9 cd f9 3130 mov al, byte [bp-00ah] ; 8a 46 f6 3131 mov es, [bp-02ah] ; 8e 46 d6 3132 mov bx, word [bp-02eh] ; 8b 5e d2 3120 3133 mov byte [es:bx+001e2h], al ; 26 88 87 e2 01 3121 mov al, byte [bp-0 0ch] ; 8a 46 f43134 mov al, byte [bp-012h] ; 8a 46 ee 3122 3135 mov byte [es:bx+001f3h], al ; 26 88 87 f3 01 3123 mov bl, byte [bp-00 8h] ; 8a 5e f83136 mov bl, byte [bp-00ah] ; 8a 5e f6 3124 3137 xor bh, bh ; 30 ff 3125 3138 mov dx, strict word 00075h ; ba 75 00 3126 3139 mov ax, strict word 00040h ; b8 40 00 3127 call 01660h ; e8 70 ee3140 call 01660h ; e8 50 ee 3128 3141 lea sp, [bp-004h] ; 8d 66 fc 3129 3142 pop di ; 5f … … 3131 3144 pop bp ; 5d 3132 3145 retn ; c3 3133 ata_cmd_data_out_: ; 0xf2 7f7 LB 0x28e3146 ata_cmd_data_out_: ; 0xf2817 LB 0x28e 3134 3147 push bp ; 55 3135 3148 mov bp, sp ; 89 e5 … … 3164 3177 ; sub ah, ah ; 2a e4 3165 3178 test AL, strict byte 080h ; a8 80 3166 je short 028 58h ; 74 0f3179 je short 02878h ; 74 0f 3167 3180 mov dx, word [bp-00eh] ; 8b 56 f2 3168 3181 add dx, strict byte 00006h ; 83 c2 06 … … 3170 3183 out DX, AL ; ee 3171 3184 mov ax, strict word 00001h ; b8 01 00 3172 jmp near 02a 7eh ; e9 26 023185 jmp near 02a9eh ; e9 26 02 3173 3186 mov es, [bp-00ah] ; 8e 46 f6 3174 3187 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3192 3205 mov ax, word [bp-014h] ; 8b 46 ec 3193 3206 test ax, ax ; 85 c0 3194 je short 028 a3h ; 74 033195 jmp near 029 6ah ; e9 c7 003207 je short 028c3h ; 74 03 3208 jmp near 0298ah ; e9 c7 00 3196 3209 xor bx, bx ; 31 db 3197 3210 xor dx, dx ; 31 d2 … … 3202 3215 adc ax, word [bp-00ch] ; 13 46 f4 3203 3216 test ax, ax ; 85 c0 3204 jnbe short 028 cah ; 77 103205 jne short 029 2dh ; 75 713217 jnbe short 028eah ; 77 10 3218 jne short 0294dh ; 75 71 3206 3219 test dx, dx ; 85 d2 3207 jnbe short 028 cah ; 77 0a3208 jne short 029 2dh ; 75 6b3220 jnbe short 028eah ; 77 0a 3221 jne short 0294dh ; 75 6b 3209 3222 cmp bx, 01000h ; 81 fb 00 10 3210 jnbe short 028 cah ; 77 023211 jne short 029 2dh ; 75 633223 jnbe short 028eah ; 77 02 3224 jne short 0294dh ; 75 63 3212 3225 mov ax, word [bp-00ch] ; 8b 46 f4 3213 3226 mov bx, word [bp-020h] ; 8b 5e e0 … … 3215 3228 mov dx, word [bp-022h] ; 8b 56 de 3216 3229 mov si, strict word 00018h ; be 18 00 3217 call 0a1 80h ; e8 a4 783230 call 0a1a0h ; e8 a4 78 3218 3231 xor dh, dh ; 30 f6 3219 3232 mov word [bp-014h], dx ; 89 56 ec … … 3223 3236 mov dx, word [bp-022h] ; 8b 56 de 3224 3237 mov si, strict word 00020h ; be 20 00 3225 call 0a1 80h ; e8 8d 783238 call 0a1a0h ; e8 8d 78 3226 3239 mov bx, dx ; 89 d3 3227 3240 mov word [bp-024h], dx ; 89 56 dc … … 3257 3270 mov dx, word [bp-022h] ; 8b 56 de 3258 3271 mov si, strict word 00008h ; be 08 00 3259 call 0a1 80h ; e8 39 783272 call 0a1a0h ; e8 39 78 3260 3273 mov word [bp-00ch], ax ; 89 46 f4 3261 3274 mov word [bp-020h], bx ; 89 5e e0 … … 3264 3277 mov word [bp-024h], dx ; 89 56 dc 3265 3278 mov si, strict word 00010h ; be 10 00 3266 call 0a1 80h ; e8 24 783279 call 0a1a0h ; e8 24 78 3267 3280 mov word [bp-022h], dx ; 89 56 de 3268 3281 mov ax, dx ; 89 d0 … … 3297 3310 out DX, AL ; ee 3298 3311 cmp byte [bp-006h], 000h ; 80 7e fa 00 3299 je short 029 ach ; 74 053312 je short 029cch ; 74 05 3300 3313 mov ax, 000b0h ; b8 b0 00 3301 jmp short 029 afh ; eb 033314 jmp short 029cfh ; eb 03 3302 3315 mov ax, 000a0h ; b8 a0 00 3303 3316 mov dl, byte [bp-018h] ; 8a 56 e8 … … 3318 3331 mov bl, al ; 88 c3 3319 3332 test AL, strict byte 080h ; a8 80 3320 jne short 029 c7h ; 75 f13333 jne short 029e7h ; 75 f1 3321 3334 test AL, strict byte 001h ; a8 01 3322 je short 02 9e9h ; 74 0f3335 je short 02a09h ; 74 0f 3323 3336 mov dx, word [bp-00eh] ; 8b 56 f2 3324 3337 add dx, strict byte 00006h ; 83 c2 06 … … 3326 3339 out DX, AL ; ee 3327 3340 mov ax, strict word 00002h ; b8 02 00 3328 jmp near 02a 7eh ; e9 95 003341 jmp near 02a9eh ; e9 95 00 3329 3342 test bl, 008h ; f6 c3 08 3330 jne short 02 9fdh ; 75 0f3343 jne short 02a1dh ; 75 0f 3331 3344 mov dx, word [bp-00eh] ; 8b 56 f2 3332 3345 add dx, strict byte 00006h ; 83 c2 06 … … 3334 3347 out DX, AL ; ee 3335 3348 mov ax, strict word 00003h ; b8 03 00 3336 jmp near 02a 7eh ; e9 81 003349 jmp near 02a9eh ; e9 81 00 3337 3350 sti ; fb 3338 3351 mov ax, word [bp-016h] ; 8b 46 ea 3339 3352 cmp ax, 0f800h ; 3d 00 f8 3340 jc short 02a 18h ; 72 123353 jc short 02a38h ; 72 12 3341 3354 mov dx, ax ; 89 c2 3342 3355 sub dx, 00800h ; 81 ea 00 08 … … 3362 3375 mov bl, al ; 88 c3 3363 3376 test AL, strict byte 080h ; a8 80 3364 jne short 02a 34h ; 75 f13377 jne short 02a54h ; 75 f1 3365 3378 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3366 jne short 02a 5dh ; 75 143379 jne short 02a7dh ; 75 14 3367 3380 and AL, strict byte 0e9h ; 24 e9 3368 3381 cmp AL, strict byte 040h ; 3c 40 3369 je short 02a 73h ; 74 243382 je short 02a93h ; 74 24 3370 3383 mov dx, word [bp-00eh] ; 8b 56 f2 3371 3384 add dx, strict byte 00006h ; 83 c2 06 … … 3373 3386 out DX, AL ; ee 3374 3387 mov ax, strict word 00006h ; b8 06 00 3375 jmp short 02a 7eh ; eb 213388 jmp short 02a9eh ; eb 21 3376 3389 mov al, bl ; 88 d8 3377 3390 and AL, strict byte 0c9h ; 24 c9 3378 3391 cmp AL, strict byte 048h ; 3c 48 3379 je short 02 9feh ; 74 993392 je short 02a1eh ; 74 99 3380 3393 mov dx, word [bp-00eh] ; 8b 56 f2 3381 3394 add dx, strict byte 00006h ; 83 c2 06 … … 3383 3396 out DX, AL ; ee 3384 3397 mov ax, strict word 00007h ; b8 07 00 3385 jmp short 02a 7eh ; eb 0b3398 jmp short 02a9eh ; eb 0b 3386 3399 mov dx, word [bp-00eh] ; 8b 56 f2 3387 3400 add dx, strict byte 00006h ; 83 c2 06 … … 3394 3407 pop bp ; 5d 3395 3408 retn ; c3 3396 @ata_read_sectors: ; 0xf2a 85 LB 0xc13409 @ata_read_sectors: ; 0xf2aa5 LB 0xc1 3397 3410 push bp ; 55 3398 3411 mov bp, sp ; 89 e5 … … 3409 3422 mov cx, dx ; 89 d1 3410 3423 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3411 je short 02a cdh ; 74 233424 je short 02aedh ; 74 23 3412 3425 xor ah, ah ; 30 e4 3413 3426 mov di, strict word 0001ch ; bf 1c 00 … … 3421 3434 mov bx, 000c4h ; bb c4 00 3422 3435 mov ax, si ; 89 f0 3423 call 01e9dh ; e8 d5 f33436 call 01e9dh ; e8 b5 f3 3424 3437 mov es, [bp-00ah] ; 8e 46 f6 3425 jmp short 02b 37h ; eb 6a3438 jmp short 02b57h ; eb 6a 3426 3439 xor di, di ; 31 ff 3427 3440 mov word [bp-008h], di ; 89 7e f8 … … 3437 3450 adc dx, word [bp-00ah] ; 13 56 f6 3438 3451 test dx, dx ; 85 d2 3439 jnbe short 02b 08h ; 77 123440 jne short 02b 16h ; 75 1e3452 jnbe short 02b28h ; 77 12 3453 jne short 02b36h ; 75 1e 3441 3454 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 3442 jnbe short 02b 08h ; 77 0a3443 jne short 02b 16h ; 75 163455 jnbe short 02b28h ; 77 0a 3456 jne short 02b36h ; 75 16 3444 3457 cmp di, 01000h ; 81 ff 00 10 3445 jnbe short 02b 08h ; 77 023446 jne short 02b 16h ; 75 0e3458 jnbe short 02b28h ; 77 02 3459 jne short 02b36h ; 75 0e 3447 3460 mov cx, bx ; 89 d9 3448 3461 mov bx, strict word 00024h ; bb 24 00 3449 3462 mov ax, si ; 89 f0 3450 3463 mov dx, es ; 8c c2 3451 call 01e9dh ; e8 89 f33452 jmp short 02b 3dh ; eb 273464 call 01e9dh ; e8 69 f3 3465 jmp short 02b5dh ; eb 27 3453 3466 xor ah, ah ; 30 e4 3454 3467 mov di, strict word 0001ch ; bf 1c 00 … … 3462 3475 mov bx, 000c4h ; bb c4 00 3463 3476 mov ax, si ; 89 f0 3464 call 01e9dh ; e8 69 f33477 call 01e9dh ; e8 49 f3 3465 3478 mov es, [bp-006h] ; 8e 46 fa 3466 3479 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3470 3483 pop bp ; 5d 3471 3484 retn 00004h ; c2 04 00 3472 @ata_write_sectors: ; 0xf2b 46 LB 0x5b3485 @ata_write_sectors: ; 0xf2b66 LB 0x5b 3473 3486 push bp ; 55 3474 3487 mov bp, sp ; 89 e5 … … 3479 3492 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3480 3493 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3481 je short 02b 66h ; 74 0c3494 je short 02b86h ; 74 0c 3482 3495 mov bx, strict word 00030h ; bb 30 00 3483 3496 mov ax, si ; 89 f0 3484 3497 mov dx, es ; 8c c2 3485 call 02 7f7h ; e8 93 fc3486 jmp short 02b 98h ; eb 323498 call 02817h ; e8 93 fc 3499 jmp short 02bb8h ; eb 32 3487 3500 xor ax, ax ; 31 c0 3488 3501 xor bx, bx ; 31 db … … 3495 3508 adc dx, word [es:si+006h] ; 26 13 54 06 3496 3509 test dx, dx ; 85 d2 3497 jnbe short 02b 93h ; 77 0f3498 jne short 02b 5ah ; 75 d43510 jnbe short 02bb3h ; 77 0f 3511 jne short 02b7ah ; 75 d4 3499 3512 test bx, bx ; 85 db 3500 jnbe short 02b 93h ; 77 093501 jne short 02b 5ah ; 75 ce3513 jnbe short 02bb3h ; 77 09 3514 jne short 02b7ah ; 75 ce 3502 3515 cmp ax, 01000h ; 3d 00 10 3503 jnbe short 02b 93h ; 77 023504 jne short 02b 5ah ; 75 c73516 jnbe short 02bb3h ; 77 02 3517 jne short 02b7ah ; 75 c7 3505 3518 mov bx, strict word 00034h ; bb 34 00 3506 jmp short 02b 5dh ; eb c53519 jmp short 02b7dh ; eb c5 3507 3520 lea sp, [bp-004h] ; 8d 66 fc 3508 3521 pop di ; 5f … … 3510 3523 pop bp ; 5d 3511 3524 retn 00004h ; c2 04 00 3512 ata_cmd_packet_: ; 0xf2b a1 LB 0x28b3525 ata_cmd_packet_: ; 0xf2bc1 LB 0x28b 3513 3526 push bp ; 55 3514 3527 mov bp, sp ; 89 e5 … … 3522 3535 mov dx, strict word 0000eh ; ba 0e 00 3523 3536 mov ax, strict word 00040h ; b8 40 00 3524 call 0166eh ; e8 b4 ea3537 call 0166eh ; e8 94 ea 3525 3538 mov word [bp-010h], 00122h ; c7 46 f0 22 01 3526 3539 mov word [bp-00eh], ax ; 89 46 f2 … … 3530 3543 and cl, 001h ; 80 e1 01 3531 3544 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3532 jne short 02 bf6h ; 75 233533 mov bx, 00da 4h ; bb a40d3545 jne short 02c16h ; 75 23 3546 mov bx, 00da0h ; bb a0 0d 3534 3547 mov cx, ds ; 8c d9 3535 3548 mov ax, strict word 00004h ; b8 04 00 3536 call 01933h ; e8 55 ed3549 call 01933h ; e8 35 ed 3537 3550 mov ax, 00221h ; b8 21 02 3538 3551 push ax ; 50 … … 3541 3554 mov ax, strict word 00004h ; b8 04 00 3542 3555 push ax ; 50 3543 call 01976h ; e8 89 ed3556 call 01976h ; e8 69 ed 3544 3557 add sp, strict byte 00006h ; 83 c4 06 3545 3558 mov ax, strict word 00001h ; b8 01 00 3546 jmp near 02e 23h ; e9 2d 023559 jmp near 02e43h ; e9 2d 02 3547 3560 test byte [bp+004h], 001h ; f6 46 04 01 3548 jne short 02 bf0h ; 75 f43561 jne short 02c10h ; 75 f4 3549 3562 xor ah, ah ; 30 e4 3550 3563 mov dx, strict word 00006h ; ba 06 00 … … 3561 3574 mov al, byte [bp-006h] ; 8a 46 fa 3562 3575 cmp AL, strict byte 00ch ; 3c 0c 3563 jnc short 02c 2dh ; 73 063576 jnc short 02c4dh ; 73 06 3564 3577 mov byte [bp-006h], 00ch ; c6 46 fa 0c 3565 jmp short 02c 33h ; eb 063566 jbe short 02c 33h ; 76 043578 jmp short 02c53h ; eb 06 3579 jbe short 02c53h ; 76 04 3567 3580 mov byte [bp-006h], 010h ; c6 46 fa 10 3568 3581 shr byte [bp-006h], 1 ; d0 6e fa … … 3577 3590 ; sub ah, ah ; 2a e4 3578 3591 test AL, strict byte 080h ; a8 80 3579 je short 02c 5eh ; 74 063592 je short 02c7eh ; 74 06 3580 3593 mov ax, strict word 00002h ; b8 02 00 3581 jmp near 02e 23h ; e9 c5 013594 jmp near 02e43h ; e9 c5 01 3582 3595 mov dx, word [bp-008h] ; 8b 56 f8 3583 3596 add dx, strict byte 00006h ; 83 c2 06 … … 3593 3606 out DX, AL ; ee 3594 3607 test cl, cl ; 84 c9 3595 je short 02c 82h ; 74 053608 je short 02ca2h ; 74 05 3596 3609 mov ax, 000b0h ; b8 b0 00 3597 jmp short 02c 85h ; eb 033610 jmp short 02ca5h ; eb 03 3598 3611 mov ax, 000a0h ; b8 a0 00 3599 3612 mov dx, word [bp-012h] ; 8b 56 ee … … 3611 3624 mov bl, al ; 88 c3 3612 3625 test AL, strict byte 080h ; a8 80 3613 jne short 02c 95h ; 75 f13626 jne short 02cb5h ; 75 f1 3614 3627 test AL, strict byte 001h ; a8 01 3615 je short 02c b7h ; 74 0f3628 je short 02cd7h ; 74 0f 3616 3629 mov dx, word [bp-008h] ; 8b 56 f8 3617 3630 add dx, strict byte 00006h ; 83 c2 06 … … 3619 3632 out DX, AL ; ee 3620 3633 mov ax, strict word 00003h ; b8 03 00 3621 jmp near 02e 23h ; e9 6c 013634 jmp near 02e43h ; e9 6c 01 3622 3635 test bl, 008h ; f6 c3 08 3623 jne short 02c cbh ; 75 0f3636 jne short 02cebh ; 75 0f 3624 3637 mov dx, word [bp-008h] ; 8b 56 f8 3625 3638 add dx, strict byte 00006h ; 83 c2 06 … … 3627 3640 out DX, AL ; ee 3628 3641 mov ax, strict word 00004h ; b8 04 00 3629 jmp near 02e 23h ; e9 58 013642 jmp near 02e43h ; e9 58 01 3630 3643 sti ; fb 3631 3644 mov CL, strict byte 004h ; b1 04 … … 3641 3654 ; rep es outsw ; f3 26 6f 3642 3655 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3643 jne short 02 cf5h ; 75 0b3656 jne short 02d15h ; 75 0b 3644 3657 add dx, strict byte 00007h ; 83 c2 07 3645 3658 in AL, DX ; ec … … 3647 3660 ; sub ah, ah ; 2a e4 3648 3661 mov bl, al ; 88 c3 3649 jmp near 02e 04h ; e9 0f 013662 jmp near 02e24h ; e9 0f 01 3650 3663 mov dx, word [bp-012h] ; 8b 56 ee 3651 3664 add dx, strict byte 00007h ; 83 c2 07 … … 3655 3668 mov bl, al ; 88 c3 3656 3669 test AL, strict byte 080h ; a8 80 3657 jne short 02 cf5h ; 75 f13670 jne short 02d15h ; 75 f1 3658 3671 test AL, strict byte 088h ; a8 88 3659 je short 02d 6ah ; 74 623672 je short 02d8ah ; 74 62 3660 3673 test AL, strict byte 001h ; a8 01 3661 je short 02d 17h ; 74 0b3674 je short 02d37h ; 74 0b 3662 3675 mov dx, word [bp-008h] ; 8b 56 f8 3663 3676 add dx, strict byte 00006h ; 83 c2 06 3664 3677 mov AL, strict byte 008h ; b0 08 3665 3678 out DX, AL ; ee 3666 jmp short 02c b1h ; eb 9a3679 jmp short 02cd1h ; eb 9a 3667 3680 mov al, bl ; 88 d8 3668 3681 and AL, strict byte 0c9h ; 24 c9 3669 3682 cmp AL, strict byte 048h ; 3c 48 3670 je short 02d 2ah ; 74 0b3683 je short 02d4ah ; 74 0b 3671 3684 mov dx, word [bp-008h] ; 8b 56 f8 3672 3685 add dx, strict byte 00006h ; 83 c2 06 3673 3686 mov AL, strict byte 008h ; b0 08 3674 3687 out DX, AL ; ee 3675 jmp short 02c c5h ; eb 9b3688 jmp short 02ce5h ; eb 9b 3676 3689 mov CL, strict byte 004h ; b1 04 3677 3690 mov ax, word [bp+00ch] ; 8b 46 0c … … 3698 3711 mov ax, word [bp+004h] ; 8b 46 04 3699 3712 cmp bx, ax ; 39 c3 3700 jnc short 02d 6dh ; 73 0c3713 jnc short 02d8dh ; 73 0c 3701 3714 mov cx, bx ; 89 d9 3702 3715 sub word [bp+004h], bx ; 29 5e 04 3703 3716 xor bx, bx ; 31 db 3704 jmp short 02d 76h ; eb 0c3705 jmp near 02e 04h ; e9 97 003717 jmp short 02d96h ; eb 0c 3718 jmp near 02e24h ; e9 97 00 3706 3719 mov cx, ax ; 89 c1 3707 3720 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3709 3722 xor ax, ax ; 31 c0 3710 3723 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3711 jne short 02d 94h ; 75 163724 jne short 02db4h ; 75 16 3712 3725 cmp bx, word [bp+006h] ; 3b 5e 06 3713 jbe short 02d 94h ; 76 113726 jbe short 02db4h ; 76 11 3714 3727 sub bx, word [bp+006h] ; 2b 5e 06 3715 3728 mov word [bp-014h], bx ; 89 5e ec … … 3717 3730 mov word [bp+006h], ax ; 89 46 06 3718 3731 mov word [bp+008h], ax ; 89 46 08 3719 jmp short 02d 9dh ; eb 093732 jmp short 02dbdh ; eb 09 3720 3733 mov word [bp-014h], ax ; 89 46 ec 3721 3734 sub word [bp+006h], bx ; 29 5e 06 … … 3726 3739 test byte [bp-014h], 003h ; f6 46 ec 03 3727 3740 test bl, 001h ; f6 c3 01 3728 je short 02d beh ; 74 103741 je short 02ddeh ; 74 10 3729 3742 inc bx ; 43 3730 3743 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 3731 jbe short 02d beh ; 76 093744 jbe short 02ddeh ; 76 09 3732 3745 test byte [bp-014h], 001h ; f6 46 ec 01 3733 je short 02d beh ; 74 033746 je short 02ddeh ; 74 03 3734 3747 dec word [bp-014h] ; ff 4e ec 3735 3748 shr bx, 1 ; d1 eb … … 3737 3750 shr word [bp-014h], 1 ; d1 6e ec 3738 3751 test cx, cx ; 85 c9 3739 je short 02d cfh ; 74 063752 je short 02defh ; 74 06 3740 3753 mov dx, word [bp-012h] ; 8b 56 ee 3741 3754 in ax, DX ; ed 3742 loop 02d cch ; e2 fd3755 loop 02dech ; e2 fd 3743 3756 mov dx, word [bp-012h] ; 8b 56 ee 3744 3757 mov cx, bx ; 89 d9 … … 3747 3760 mov ax, word [bp-014h] ; 8b 46 ec 3748 3761 test ax, ax ; 85 c0 3749 je short 02 de5h ; 74 053762 je short 02e05h ; 74 05 3750 3763 mov cx, ax ; 89 c1 3751 3764 in ax, DX ; ed 3752 loop 02 de2h ; e2 fd3765 loop 02e02h ; e2 fd 3753 3766 add word [bp+00ch], si ; 01 76 0c 3754 3767 xor ax, ax ; 31 c0 … … 3760 3773 mov ax, word [bp-00ah] ; 8b 46 f6 3761 3774 mov word [es:bx+01ch], ax ; 26 89 47 1c 3762 jmp near 02 cf5h ; e9 f1 fe3775 jmp near 02d15h ; e9 f1 fe 3763 3776 mov al, bl ; 88 d8 3764 3777 and AL, strict byte 0e9h ; 24 e9 3765 3778 cmp AL, strict byte 040h ; 3c 40 3766 je short 02e 18h ; 74 0c3779 je short 02e38h ; 74 0c 3767 3780 mov dx, word [bp-008h] ; 8b 56 f8 3768 3781 add dx, strict byte 00006h ; 83 c2 06 3769 3782 mov AL, strict byte 008h ; b0 08 3770 3783 out DX, AL ; ee 3771 jmp near 02c c5h ; e9 ad fe3784 jmp near 02ce5h ; e9 ad fe 3772 3785 mov dx, word [bp-008h] ; 8b 56 f8 3773 3786 add dx, strict byte 00006h ; 83 c2 06 … … 3780 3793 pop bp ; 5d 3781 3794 retn 0000ch ; c2 0c 00 3782 ata_soft_reset_: ; 0xf2e 2c LB 0x843795 ata_soft_reset_: ; 0xf2e4c LB 0x84 3783 3796 push bp ; 55 3784 3797 mov bp, sp ; 89 e5 … … 3790 3803 mov dx, strict word 0000eh ; ba 0e 00 3791 3804 mov ax, strict word 00040h ; b8 40 00 3792 call 0166eh ; e8 30 e83805 call 0166eh ; e8 10 e8 3793 3806 mov es, ax ; 8e c0 3794 3807 mov ax, bx ; 89 d8 … … 3807 3820 out DX, AL ; ee 3808 3821 cmp byte [bp-008h], 000h ; 80 7e f8 00 3809 je short 02e 72h ; 74 053822 je short 02e92h ; 74 05 3810 3823 mov ax, 000b0h ; b8 b0 00 3811 jmp short 02e 75h ; eb 033824 jmp short 02e95h ; eb 03 3812 3825 mov ax, 000a0h ; b8 a0 00 3813 3826 mov dx, cx ; 89 ca … … 3824 3837 ; sub ah, ah ; 2a e4 3825 3838 test AL, strict byte 080h ; a8 80 3826 jne short 02e 83h ; 75 f43839 jne short 02ea3h ; 75 f4 3827 3840 and AL, strict byte 0e9h ; 24 e9 3828 3841 cmp AL, strict byte 040h ; 3c 40 3829 je short 02e a0h ; 74 0b3842 je short 02ec0h ; 74 0b 3830 3843 lea dx, [bx+006h] ; 8d 57 06 3831 3844 mov AL, strict byte 008h ; b0 08 3832 3845 out DX, AL ; ee 3833 3846 mov ax, strict word 00001h ; b8 01 00 3834 jmp short 02e a8h ; eb 083847 jmp short 02ec8h ; eb 08 3835 3848 lea dx, [bx+006h] ; 8d 57 06 3836 3849 mov AL, strict byte 008h ; b0 08 … … 3843 3856 pop bp ; 5d 3844 3857 retn ; c3 3845 set_diskette_current_cyl_: ; 0xf2e b0 LB 0x2c3858 set_diskette_current_cyl_: ; 0xf2ed0 LB 0x2c 3846 3859 push bp ; 55 3847 3860 mov bp, sp ; 89 e5 … … 3849 3862 mov bl, al ; 88 c3 3850 3863 cmp AL, strict byte 001h ; 3c 01 3851 jbe short 02e c8h ; 76 0e3864 jbe short 02ee8h ; 76 0e 3852 3865 mov ax, 00250h ; b8 50 02 3853 3866 push ax ; 50 3854 3867 mov ax, strict word 00007h ; b8 07 00 3855 3868 push ax ; 50 3856 call 01976h ; e8 b1 ea3869 call 01976h ; e8 91 ea 3857 3870 add sp, strict byte 00004h ; 83 c4 04 3858 3871 xor bh, bh ; 30 ff … … 3865 3878 pop bp ; 5d 3866 3879 retn ; c3 3867 floppy_wait_for_interrupt_: ; 0xf2e dc LB 0x233880 floppy_wait_for_interrupt_: ; 0xf2efc LB 0x23 3868 3881 push bp ; 55 3869 3882 mov bp, sp ; 89 e5 … … 3875 3888 mov al, byte [es:bx] ; 26 8a 07 3876 3889 test AL, strict byte 080h ; a8 80 3877 je short 02 ef4h ; 74 043890 je short 02f14h ; 74 04 3878 3891 and AL, strict byte 080h ; 24 80 3879 jmp short 02 ef9h ; eb 053892 jmp short 02f19h ; eb 05 3880 3893 sti ; fb 3881 3894 hlt ; f4 3882 3895 cli ; fa 3883 jmp short 02 ee1h ; eb e83896 jmp short 02f01h ; eb e8 3884 3897 lea sp, [bp-002h] ; 8d 66 fe 3885 3898 pop bx ; 5b 3886 3899 pop bp ; 5d 3887 3900 retn ; c3 3888 floppy_wait_for_interrupt_or_timeout_: ; 0xf2 eff LB 0x383901 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f1f LB 0x38 3889 3902 push bp ; 55 3890 3903 mov bp, sp ; 89 e5 … … 3895 3908 mov al, byte [es:bx] ; 26 8a 07 3896 3909 test al, al ; 84 c0 3897 jne short 02f 13h ; 75 033910 jne short 02f33h ; 75 03 3898 3911 sti ; fb 3899 jmp short 02f 31h ; eb 1e3912 jmp short 02f51h ; eb 1e 3900 3913 mov bx, strict word 0003eh ; bb 3e 00 3901 3914 mov ax, strict word 00040h ; b8 40 00 … … 3903 3916 mov al, byte [es:bx] ; 26 8a 07 3904 3917 test AL, strict byte 080h ; a8 80 3905 je short 02f 2ch ; 74 0a3918 je short 02f4ch ; 74 0a 3906 3919 mov ah, al ; 88 c4 3907 3920 and ah, 07fh ; 80 e4 7f 3908 3921 mov byte [es:bx], ah ; 26 88 27 3909 jmp short 02f 31h ; eb 053922 jmp short 02f51h ; eb 05 3910 3923 sti ; fb 3911 3924 hlt ; f4 3912 3925 cli ; fa 3913 jmp short 02f 04h ; eb d33926 jmp short 02f24h ; eb d3 3914 3927 lea sp, [bp-002h] ; 8d 66 fe 3915 3928 pop bx ; 5b 3916 3929 pop bp ; 5d 3917 3930 retn ; c3 3918 floppy_reset_controller_: ; 0xf2f 37 LB 0x3f3931 floppy_reset_controller_: ; 0xf2f57 LB 0x3f 3919 3932 push bp ; 55 3920 3933 mov bp, sp ; 89 e5 … … 3939 3952 and AL, strict byte 0c0h ; 24 c0 3940 3953 cmp AL, strict byte 080h ; 3c 80 3941 jne short 02f 4fh ; 75 f43954 jne short 02f6fh ; 75 f4 3942 3955 mov bx, cx ; 89 cb 3943 3956 add bx, 00090h ; 81 c3 90 00 … … 3953 3966 pop bp ; 5d 3954 3967 retn ; c3 3955 floppy_prepare_controller_: ; 0xf2f 76 LB 0x753968 floppy_prepare_controller_: ; 0xf2f96 LB 0x75 3956 3969 push bp ; 55 3957 3970 mov bp, sp ; 89 e5 … … 3974 3987 mov byte [bp-008h], al ; 88 46 f8 3975 3988 test cx, cx ; 85 c9 3976 je short 02f a2h ; 74 043989 je short 02fc2h ; 74 04 3977 3990 mov AL, strict byte 020h ; b0 20 3978 jmp short 02f a4h ; eb 023991 jmp short 02fc4h ; eb 02 3979 3992 mov AL, strict byte 010h ; b0 10 3980 3993 or AL, strict byte 00ch ; 0c 0c … … 3997 4010 and AL, strict byte 0c0h ; 24 c0 3998 4011 cmp AL, strict byte 080h ; 3c 80 3999 jne short 02f c3h ; 75 f44012 jne short 02fe3h ; 75 f4 4000 4013 cmp byte [bp-008h], 000h ; 80 7e f8 00 4001 jne short 0 2fe3h ; 75 0e4002 call 02e dch ; e8 04 ff4014 jne short 03003h ; 75 0e 4015 call 02efch ; e8 04 ff 4003 4016 mov bx, strict word 0003eh ; bb 3e 00 4004 4017 mov dx, strict word 00040h ; ba 40 00 … … 4011 4024 pop bp ; 5d 4012 4025 retn ; c3 4013 floppy_media_known_: ; 0xf 2feb LB 0x4c4026 floppy_media_known_: ; 0xf300b LB 0x4c 4014 4027 push bx ; 53 4015 4028 push cx ; 51 … … 4023 4036 mov bl, bh ; 88 fb 4024 4037 test ax, ax ; 85 c0 4025 je short 030 04h ; 74 024038 je short 03024h ; 74 02 4026 4039 shr bl, 1 ; d0 eb 4027 4040 and bl, 001h ; 80 e3 01 4028 jne short 030 0dh ; 75 044041 jne short 0302dh ; 75 04 4029 4042 xor bh, bh ; 30 ff 4030 jmp short 030 30h ; eb 234043 jmp short 03050h ; eb 23 4031 4044 mov bx, 00090h ; bb 90 00 4032 4045 test ax, ax ; 85 c0 4033 je short 030 17h ; 74 034046 je short 03037h ; 74 03 4034 4047 mov bx, 00091h ; bb 91 00 4035 4048 mov ax, strict word 00040h ; b8 40 00 … … 4040 4053 sar ax, CL ; d3 f8 4041 4054 and AL, strict byte 001h ; 24 01 4042 jne short 030 2dh ; 75 044055 jne short 0304dh ; 75 04 4043 4056 xor bx, bx ; 31 db 4044 jmp short 030 30h ; eb 034057 jmp short 03050h ; eb 03 4045 4058 mov bx, strict word 00001h ; bb 01 00 4046 4059 mov ax, bx ; 89 d8 … … 4050 4063 pop bx ; 5b 4051 4064 retn ; c3 4052 floppy_read_id_: ; 0xf30 37 LB 0x524065 floppy_read_id_: ; 0xf3057 LB 0x52 4053 4066 push bp ; 55 4054 4067 mov bp, sp ; 89 e5 … … 4057 4070 push si ; 56 4058 4071 mov bx, ax ; 89 c3 4059 call 02f 76h ; e8 34 ff4072 call 02f96h ; e8 34 ff 4060 4073 mov AL, strict byte 04ah ; b0 4a 4061 4074 mov dx, 003f5h ; ba f5 03 … … 4063 4076 mov al, bl ; 88 d8 4064 4077 out DX, AL ; ee 4065 call 02e dch ; e8 8e fe4078 call 02efch ; e8 8e fe 4066 4079 xor bx, bx ; 31 db 4067 jmp short 030 57h ; eb 054080 jmp short 03077h ; eb 05 4068 4081 cmp bx, strict byte 00007h ; 83 fb 07 4069 jnl short 030 6bh ; 7d 144082 jnl short 0308bh ; 7d 14 4070 4083 mov dx, 003f5h ; ba f5 03 4071 4084 in AL, DX ; ec … … 4077 4090 mov byte [es:si], al ; 26 88 04 4078 4091 inc bx ; 43 4079 jmp short 030 52h ; eb e74092 jmp short 03072h ; eb e7 4080 4093 mov bx, strict word 00042h ; bb 42 00 4081 4094 mov ax, strict word 00040h ; b8 40 00 … … 4083 4096 mov al, byte [es:bx] ; 26 8a 07 4084 4097 test AL, strict byte 0c0h ; a8 c0 4085 je short 030 7eh ; 74 044098 je short 0309eh ; 74 04 4086 4099 xor ax, ax ; 31 c0 4087 jmp short 030 81h ; eb 034100 jmp short 030a1h ; eb 03 4088 4101 mov ax, strict word 00001h ; b8 01 00 4089 4102 lea sp, [bp-006h] ; 8d 66 fa … … 4093 4106 pop bp ; 5d 4094 4107 retn ; c3 4095 floppy_drive_recal_: ; 0xf30 89 LB 0x414108 floppy_drive_recal_: ; 0xf30a9 LB 0x41 4096 4109 push bp ; 55 4097 4110 mov bp, sp ; 89 e5 … … 4100 4113 push si ; 56 4101 4114 mov bx, ax ; 89 c3 4102 call 02f 76h ; e8 e2 fe4115 call 02f96h ; e8 e2 fe 4103 4116 mov AL, strict byte 007h ; b0 07 4104 4117 mov dx, 003f5h ; ba f5 03 … … 4106 4119 mov al, bl ; 88 d8 4107 4120 out DX, AL ; ee 4108 call 02e dch ; e8 3c fe4121 call 02efch ; e8 3c fe 4109 4122 test bx, bx ; 85 db 4110 je short 030 abh ; 74 074123 je short 030cbh ; 74 07 4111 4124 or AL, strict byte 002h ; 0c 02 4112 4125 mov bx, 00095h ; bb 95 00 4113 jmp short 030 b0h ; eb 054126 jmp short 030d0h ; eb 05 4114 4127 or AL, strict byte 001h ; 0c 01 4115 4128 mov bx, 00094h ; bb 94 00 … … 4126 4139 pop bp ; 5d 4127 4140 retn ; c3 4128 floppy_media_sense_: ; 0xf30 ca LB 0xe74141 floppy_media_sense_: ; 0xf30ea LB 0xe7 4129 4142 push bp ; 55 4130 4143 mov bp, sp ; 89 e5 … … 4135 4148 push di ; 57 4136 4149 mov si, ax ; 89 c6 4137 call 030 89h ; e8 b2 ff4150 call 030a9h ; e8 b2 ff 4138 4151 test ax, ax ; 85 c0 4139 jne short 03 0e0h ; 75 054152 jne short 03100h ; 75 05 4140 4153 xor dx, dx ; 31 d2 4141 jmp near 031 a5h ; e9 c5 004154 jmp near 031c5h ; e9 c5 00 4142 4155 mov ax, strict word 00010h ; b8 10 00 4143 call 016aeh ; e8 c8 e54156 call 016aeh ; e8 a8 e5 4144 4157 test si, si ; 85 f6 4145 jne short 03 0f2h ; 75 084158 jne short 03112h ; 75 08 4146 4159 mov CL, strict byte 004h ; b1 04 4147 4160 mov dl, al ; 88 c2 4148 4161 shr dl, CL ; d2 ea 4149 jmp short 03 0f7h ; eb 054162 jmp short 03117h ; eb 05 4150 4163 mov dl, al ; 88 c2 4151 4164 and dl, 00fh ; 80 e2 0f 4152 4165 cmp dl, 001h ; 80 fa 01 4153 jne short 031 05h ; 75 094166 jne short 03125h ; 75 09 4154 4167 xor dl, dl ; 30 d2 4155 4168 mov DH, strict byte 015h ; b6 15 4156 4169 mov bx, strict word 00001h ; bb 01 00 4157 jmp short 031 43h ; eb 3e4170 jmp short 03163h ; eb 3e 4158 4171 cmp dl, 002h ; 80 fa 02 4159 jne short 031 10h ; 75 064172 jne short 03130h ; 75 06 4160 4173 xor dl, dl ; 30 d2 4161 4174 mov DH, strict byte 035h ; b6 35 4162 jmp short 031 00h ; eb f04175 jmp short 03120h ; eb f0 4163 4176 cmp dl, 003h ; 80 fa 03 4164 jne short 031 1bh ; 75 064177 jne short 0313bh ; 75 06 4165 4178 xor dl, dl ; 30 d2 4166 4179 mov DH, strict byte 017h ; b6 17 4167 jmp short 031 00h ; eb e54180 jmp short 03120h ; eb e5 4168 4181 cmp dl, 004h ; 80 fa 04 4169 jne short 031 26h ; 75 064182 jne short 03146h ; 75 06 4170 4183 xor dl, dl ; 30 d2 4171 4184 mov DH, strict byte 017h ; b6 17 4172 jmp short 031 00h ; eb da4185 jmp short 03120h ; eb da 4173 4186 cmp dl, 005h ; 80 fa 05 4174 jne short 031 31h ; 75 064187 jne short 03151h ; 75 06 4175 4188 mov DL, strict byte 0cch ; b2 cc 4176 4189 mov DH, strict byte 0d7h ; b6 d7 4177 jmp short 031 00h ; eb cf4190 jmp short 03120h ; eb cf 4178 4191 cmp dl, 00eh ; 80 fa 0e 4179 je short 031 3bh ; 74 054192 je short 0315bh ; 74 05 4180 4193 cmp dl, 00fh ; 80 fa 0f 4181 jne short 031 3dh ; 75 024182 jmp short 031 2bh ; eb ee4194 jne short 0315dh ; 75 02 4195 jmp short 0314bh ; eb ee 4183 4196 xor dl, dl ; 30 d2 4184 4197 xor dh, dh ; 30 f6 … … 4189 4202 mov byte [es:di], dl ; 26 88 15 4190 4203 mov ax, si ; 89 f0 4191 call 030 37h ; e8 e4 fe4204 call 03057h ; e8 e4 fe 4192 4205 test ax, ax ; 85 c0 4193 jne short 031 89h ; 75 324206 jne short 031a9h ; 75 32 4194 4207 mov al, dl ; 88 d0 4195 4208 and AL, strict byte 0c0h ; 24 c0 4196 4209 cmp AL, strict byte 080h ; 3c 80 4197 je short 031 89h ; 74 2a4210 je short 031a9h ; 74 2a 4198 4211 mov al, dl ; 88 d0 4199 4212 and AL, strict byte 0c0h ; 24 c0 4200 4213 cmp AL, strict byte 0c0h ; 3c c0 4201 je short 031 76h ; 74 0f4214 je short 03196h ; 74 0f 4202 4215 mov ah, dl ; 88 d4 4203 4216 and ah, 03fh ; 80 e4 3f 4204 4217 cmp AL, strict byte 040h ; 3c 40 4205 je short 031 82h ; 74 124218 je short 031a2h ; 74 12 4206 4219 test al, al ; 84 c0 4207 je short 031 7bh ; 74 074208 jmp short 031 43h ; eb cd4220 je short 0319bh ; 74 07 4221 jmp short 03163h ; eb cd 4209 4222 and dl, 03fh ; 80 e2 3f 4210 jmp short 031 43h ; eb c84223 jmp short 03163h ; eb c8 4211 4224 mov dl, ah ; 88 e2 4212 4225 or dl, 040h ; 80 ca 40 4213 jmp short 031 43h ; eb c14226 jmp short 03163h ; eb c1 4214 4227 mov dl, ah ; 88 e2 4215 4228 or dl, 080h ; 80 ca 80 4216 jmp short 031 43h ; eb ba4229 jmp short 03163h ; eb ba 4217 4230 test si, si ; 85 f6 4218 jne short 031 92h ; 75 054231 jne short 031b2h ; 75 05 4219 4232 mov si, 00090h ; be 90 00 4220 jmp short 031 95h ; eb 034233 jmp short 031b5h ; eb 03 4221 4234 mov si, 00091h ; be 91 00 4222 4235 mov di, 0008bh ; bf 8b 00 … … 4235 4248 pop bp ; 5d 4236 4249 retn ; c3 4237 floppy_drive_exists_: ; 0xf31 b1 LB 0x4e4250 floppy_drive_exists_: ; 0xf31d1 LB 0x4e 4238 4251 push bp ; 55 4239 4252 mov bp, sp ; 89 e5 … … 4242 4255 mov dx, ax ; 89 c2 4243 4256 mov ax, strict word 00010h ; b8 10 00 4244 call 016aeh ; e8 f0 e44257 call 016aeh ; e8 d0 e4 4245 4258 test dx, dx ; 85 d2 4246 jne short 031 c8h ; 75 064259 jne short 031e8h ; 75 06 4247 4260 mov CL, strict byte 004h ; b1 04 4248 4261 shr al, CL ; d2 e8 4249 jmp short 031 cah ; eb 024262 jmp short 031eah ; eb 02 4250 4263 and AL, strict byte 00fh ; 24 0f 4251 4264 test al, al ; 84 c0 4252 je short 031 d3h ; 74 054265 je short 031f3h ; 74 05 4253 4266 mov ax, strict word 00001h ; b8 01 00 4254 jmp short 031 d5h ; eb 024267 jmp short 031f5h ; eb 02 4255 4268 xor ah, ah ; 30 e4 4256 4269 lea sp, [bp-004h] ; 8d 66 fc … … 4264 4277 add AL, strict byte 003h ; 04 03 4265 4278 add al, byte [bx+di] ; 02 01 4266 add dh, d l ; 00 d64267 cmp di, word [di] ; 3b 3d4268 xor bh, byte [bx-026ceh] ; 32 bf 32 d94269 db 032h, 0d9h4270 ; xor bl, cl ; 32 d94271 db 032h, 0d9h4272 ; xor bl, cl ; 32 d94273 xor cl, byte [bp+si+06e36h] ; 32 8a 36 6e4274 cmp byte [bx+di+039h], ch ; 38 69 394275 lodsb ; ac4276 cmp ax, sp ; 39 e04277 cmp word [si+03ah], dx ; 39 54 3a4278 _int13_diskette_function: ; 0xf3 1ff LB 0x9fd4279 add dh, dh ; 00 f6 4280 cmp bx, word [di+032h] ; 3b 5d 32 4281 fbstp [bp+si] ; df 32 4282 stc ; f9 4283 db 032h, 0f9h 4284 ; xor bh, cl ; 32 f9 4285 db 032h, 0f9h 4286 ; xor bh, cl ; 32 f9 4287 xor ch, byte [bp+si-071cah] ; 32 aa 36 8e 4288 cmp byte [bx+di-033c7h], cl ; 38 89 39 cc 4289 cmp word [bx+si], ax ; 39 00 4290 cmp dh, byte [si+03ah] ; 3a 74 3a 4291 _int13_diskette_function: ; 0xf321f LB 0x9fd 4279 4292 push bp ; 55 4280 4293 mov bp, sp ; 89 e5 … … 4285 4298 mov dx, ax ; 89 c2 4286 4299 cmp ax, strict word 00018h ; 3d 18 00 4287 jnbe short 032 71h ; 77 5c4300 jnbe short 03291h ; 77 5c 4288 4301 push CS ; 0e 4289 4302 pop ES ; 07 4290 4303 mov cx, strict word 0000ch ; b9 0c 00 4291 mov di, 031 dch ; bf dc 314304 mov di, 031fch ; bf fc 31 4292 4305 repne scasb ; f2 ae 4293 4306 sal cx, 1 ; d1 e1 4294 4307 mov di, cx ; 89 cf 4295 mov di, word [cs:di+03 1e7h] ; 2e 8b bd e7 314308 mov di, word [cs:di+03207h] ; 2e 8b bd 07 32 4296 4309 mov cx, word [bp+016h] ; 8b 4e 16 4297 4310 xor ch, ch ; 30 ed … … 4304 4317 mov bl, byte [bp+00eh] ; 8a 5e 0e 4305 4318 cmp bl, 001h ; 80 fb 01 4306 jbe short 032 5fh ; 76 1a4319 jbe short 0327fh ; 76 1a 4307 4320 mov ax, word [bp+016h] ; 8b 46 16 4308 4321 xor ah, ah ; 30 e4 … … 4313 4326 mov es, ax ; 8e c0 4314 4327 mov byte [es:bx], 001h ; 26 c6 07 01 4315 jmp near 03a c1h ; e9 62 084328 jmp near 03ae1h ; e9 62 08 4316 4329 mov ax, strict word 00010h ; b8 10 00 4317 call 016aeh ; e8 49 e44330 call 016aeh ; e8 29 e4 4318 4331 test bl, bl ; 84 db 4319 jne short 032 74h ; 75 0b4332 jne short 03294h ; 75 0b 4320 4333 mov CL, strict byte 004h ; b1 04 4321 4334 mov dl, al ; 88 c2 4322 4335 shr dl, CL ; d2 ea 4323 jmp short 032 79h ; eb 084324 jmp near 03b d6h ; e9 62 094336 jmp short 03299h ; eb 08 4337 jmp near 03bf6h ; e9 62 09 4325 4338 mov dl, al ; 88 c2 4326 4339 and dl, 00fh ; 80 e2 0f 4327 4340 test dl, dl ; 84 d2 4328 jne short 032 97h ; 75 1a4341 jne short 032b7h ; 75 1a 4329 4342 mov ax, word [bp+016h] ; 8b 46 16 4330 4343 xor ah, ah ; 30 e4 … … 4335 4348 mov es, ax ; 8e c0 4336 4349 mov byte [es:bx], 080h ; 26 c6 07 80 4337 jmp near 03a c1h ; e9 2a 084350 jmp near 03ae1h ; e9 2a 08 4338 4351 mov si, strict word 0003eh ; be 3e 00 4339 4352 mov ax, strict word 00040h ; b8 40 00 … … 4348 4361 xor ah, ah ; 30 e4 4349 4362 xor dx, dx ; 31 d2 4350 call 02e b0h ; e8 f5 fb4363 call 02ed0h ; e8 f5 fb 4351 4364 mov sp, bp ; 89 ec 4352 4365 pop bp ; 5d … … 4360 4373 mov word [bp+016h], cx ; 89 4e 16 4361 4374 test dl, dl ; 84 d2 4362 je short 032 bbh ; 74 e54363 jmp near 03a c1h ; e9 e8 074375 je short 032dbh ; 74 e5 4376 jmp near 03ae1h ; e9 e8 07 4364 4377 mov bh, byte [bp+016h] ; 8a 7e 16 4365 4378 mov al, byte [bp+015h] ; 8a 46 15 … … 4372 4385 mov bl, byte [bp+00eh] ; 8a 5e 0e 4373 4386 cmp bl, 001h ; 80 fb 01 4374 jnbe short 033 05h ; 77 0d4387 jnbe short 03325h ; 77 0d 4375 4388 cmp AL, strict byte 001h ; 3c 01 4376 jnbe short 033 05h ; 77 094389 jnbe short 03325h ; 77 09 4377 4390 test bh, bh ; 84 ff 4378 je short 033 05h ; 74 054391 je short 03325h ; 74 05 4379 4392 cmp bh, 048h ; 80 ff 48 4380 jbe short 033 3ch ; 76 374381 mov bx, 00da 4h ; bb a40d4393 jbe short 0335ch ; 76 37 4394 mov bx, 00da0h ; bb a0 0d 4382 4395 mov cx, ds ; 8c d9 4383 4396 mov ax, strict word 00004h ; b8 04 00 4384 call 01933h ; e8 23 e64397 call 01933h ; e8 03 e6 4385 4398 mov ax, 00275h ; b8 75 02 4386 4399 push ax ; 50 … … 4389 4402 mov ax, strict word 00004h ; b8 04 00 4390 4403 push ax ; 50 4391 call 01976h ; e8 57 e64404 call 01976h ; e8 37 e6 4392 4405 add sp, strict byte 00006h ; 83 c4 06 4393 4406 mov ax, word [bp+016h] ; 8b 46 16 … … 4399 4412 mov es, ax ; 8e c0 4400 4413 mov byte [es:bx], 001h ; 26 c6 07 01 4401 jmp near 03 3e6h ; e9 aa 004414 jmp near 03406h ; e9 aa 00 4402 4415 mov al, bl ; 88 d8 4403 4416 xor ah, ah ; 30 e4 4404 call 031 b1h ; e8 6e fe4417 call 031d1h ; e8 6e fe 4405 4418 test ax, ax ; 85 c0 4406 jne short 033 61h ; 75 1a4419 jne short 03381h ; 75 1a 4407 4420 mov ax, word [bp+016h] ; 8b 46 16 4408 4421 xor ah, ah ; 30 e4 … … 4413 4426 mov es, ax ; 8e c0 4414 4427 mov byte [es:bx], 080h ; 26 c6 07 80 4415 jmp near 03 3e6h ; e9 85 004428 jmp near 03406h ; e9 85 00 4416 4429 mov cl, bl ; 88 d9 4417 4430 xor ch, ch ; 30 ed 4418 4431 mov ax, cx ; 89 c8 4419 call 0 2febh ; e8 81 fc4432 call 0300bh ; e8 81 fc 4420 4433 test ax, ax ; 85 c0 4421 jne short 033 94h ; 75 264434 jne short 033b4h ; 75 26 4422 4435 mov ax, cx ; 89 c8 4423 call 030 cah ; e8 57 fd4436 call 030eah ; e8 57 fd 4424 4437 test ax, ax ; 85 c0 4425 jne short 033 94h ; 75 1d4438 jne short 033b4h ; 75 1d 4426 4439 mov ax, word [bp+016h] ; 8b 46 16 4427 4440 xor ah, ah ; 30 e4 … … 4433 4446 mov byte [es:bx], 00ch ; 26 c6 07 0c 4434 4447 mov byte [bp+016h], ch ; 88 6e 16 4435 jmp near 03a c1h ; e9 2d 074448 jmp near 03ae1h ; e9 2d 07 4436 4449 mov al, byte [bp+017h] ; 8a 46 17 4437 4450 xor ah, ah ; 30 e4 4438 4451 cmp ax, strict word 00002h ; 3d 02 00 4439 jne short 03 3edh ; 75 4f4452 jne short 0340dh ; 75 4f 4440 4453 mov CL, strict byte 00ch ; b1 0c 4441 4454 mov ax, word [bp+006h] ; 8b 46 06 … … 4449 4462 mov word [bp-00ch], si ; 89 76 f4 4450 4463 cmp dx, si ; 39 f2 4451 jbe short 033 bch ; 76 024464 jbe short 033dch ; 76 02 4452 4465 db 0feh, 0c5h 4453 4466 ; inc ch ; fe c5 … … 4461 4474 add ax, word [bp-00eh] ; 03 46 f2 4462 4475 cmp ax, word [bp-00ch] ; 3b 46 f4 4463 jnc short 03 3f0h ; 73 1d4476 jnc short 03410h ; 73 1d 4464 4477 mov ax, word [bp+016h] ; 8b 46 16 4465 4478 mov ah, cl ; 88 cc … … 4470 4483 mov byte [es:bx], cl ; 26 88 0f 4471 4484 mov byte [bp+016h], 000h ; c6 46 16 00 4472 jmp near 03a c1h ; e9 d4 064473 jmp near 035 3ah ; e9 4a 014485 jmp near 03ae1h ; e9 d4 06 4486 jmp near 0355ah ; e9 4a 01 4474 4487 mov AL, strict byte 006h ; b0 06 4475 4488 mov dx, strict word 0000ah ; ba 0a 00 … … 4503 4516 xor ch, ch ; 30 ed 4504 4517 mov ax, cx ; 89 c8 4505 call 02f 76h ; e8 43 fb4518 call 02f96h ; e8 43 fb 4506 4519 mov AL, strict byte 0e6h ; b0 e6 4507 4520 mov dx, 003f5h ; ba f5 03 … … 4536 4549 mov AL, strict byte 0ffh ; b0 ff 4537 4550 out DX, AL ; ee 4538 call 02 effh ; e8 8b fa4551 call 02f1fh ; e8 8b fa 4539 4552 test al, al ; 84 c0 4540 jne short 034 97h ; 75 1f4553 jne short 034b7h ; 75 1f 4541 4554 mov ax, cx ; 89 c8 4542 call 02f 37h ; e8 ba fa4555 call 02f57h ; e8 ba fa 4543 4556 mov ax, word [bp+016h] ; 8b 46 16 4544 4557 xor ah, ah ; 30 e4 … … 4549 4562 mov es, ax ; 8e c0 4550 4563 mov byte [es:bx], 080h ; 26 c6 07 80 4551 jmp near 033 8eh ; e9 f7 fe4564 jmp near 033aeh ; e9 f7 fe 4552 4565 mov dx, 003f4h ; ba f4 03 4553 4566 in AL, DX ; ec … … 4556 4569 and AL, strict byte 0c0h ; 24 c0 4557 4570 cmp AL, strict byte 0c0h ; 3c c0 4558 je short 034 b5h ; 74 124571 je short 034d5h ; 74 12 4559 4572 mov ax, 00275h ; b8 75 02 4560 4573 push ax ; 50 … … 4563 4576 mov ax, strict word 00007h ; b8 07 00 4564 4577 push ax ; 50 4565 call 01976h ; e8 c4 e44578 call 01976h ; e8 a4 e4 4566 4579 add sp, strict byte 00006h ; 83 c4 06 4567 4580 xor cx, cx ; 31 c9 4568 jmp short 034 beh ; eb 054581 jmp short 034deh ; eb 05 4569 4582 cmp cx, strict byte 00007h ; 83 f9 07 4570 jnl short 034 d4h ; 7d 164583 jnl short 034f4h ; 7d 16 4571 4584 mov dx, 003f5h ; ba f5 03 4572 4585 in AL, DX ; ec … … 4579 4592 mov byte [es:si], al ; 26 88 04 4580 4593 inc cx ; 41 4581 jmp short 034 b9h ; eb e54594 jmp short 034d9h ; eb e5 4582 4595 mov si, strict word 00042h ; be 42 00 4583 4596 mov ax, strict word 00040h ; b8 40 00 … … 4585 4598 mov al, byte [es:si] ; 26 8a 04 4586 4599 test AL, strict byte 0c0h ; a8 c0 4587 je short 035 04h ; 74 214600 je short 03524h ; 74 21 4588 4601 mov al, bl ; 88 d8 4589 4602 xor ah, ah ; 30 e4 4590 call 02f 37h ; e8 4d fa4603 call 02f57h ; e8 4d fa 4591 4604 mov ax, word [bp+016h] ; 8b 46 16 4592 4605 xor ah, ah ; 30 e4 … … 4597 4610 mov es, ax ; 8e c0 4598 4611 mov byte [es:bx], 020h ; 26 c6 07 20 4599 jmp near 03 3e6h ; e9 e2 fe4612 jmp near 03406h ; e9 e2 fe 4600 4613 mov al, bh ; 88 f8 4601 4614 xor ah, ah ; 30 e4 … … 4619 4632 mov al, bl ; 88 d8 4620 4633 xor ah, ah ; 30 e4 4621 call 02e b0h ; e8 81 f94634 call 02ed0h ; e8 81 f9 4622 4635 mov byte [bp+017h], 000h ; c6 46 17 00 4623 4636 and byte [bp+01ch], 0feh ; 80 66 1c fe 4624 jmp near 032 bbh ; e9 81 fd4637 jmp near 032dbh ; e9 81 fd 4625 4638 mov al, byte [bp+017h] ; 8a 46 17 4626 4639 xor ah, ah ; 30 e4 4627 4640 cmp ax, strict word 00003h ; 3d 03 00 4628 je short 035 47h ; 74 034629 jmp near 036 73h ; e9 2c 014641 je short 03567h ; 74 03 4642 jmp near 03693h ; e9 2c 01 4630 4643 mov CL, strict byte 00ch ; b1 0c 4631 4644 mov dx, word [bp+006h] ; 8b 56 06 … … 4639 4652 mov word [bp-00ch], si ; 89 76 f4 4640 4653 cmp ax, si ; 39 f0 4641 jbe short 035 65h ; 76 024654 jbe short 03585h ; 76 02 4642 4655 db 0feh, 0c5h 4643 4656 ; inc ch ; fe c5 … … 4651 4664 add ax, word [bp-00eh] ; 03 46 f2 4652 4665 cmp ax, word [bp-00ch] ; 3b 46 f4 4653 jnc short 035 7fh ; 73 034654 jmp near 033 d3h ; e9 54 fe4666 jnc short 0359fh ; 73 03 4667 jmp near 033f3h ; e9 54 fe 4655 4668 mov AL, strict byte 006h ; b0 06 4656 4669 mov dx, strict word 0000ah ; ba 0a 00 … … 4684 4697 xor ch, ch ; 30 ed 4685 4698 mov ax, cx ; 89 c8 4686 call 02f 76h ; e8 b4 f94699 call 02f96h ; e8 b4 f9 4687 4700 mov AL, strict byte 0c5h ; b0 c5 4688 4701 mov dx, 003f5h ; ba f5 03 … … 4717 4730 mov AL, strict byte 0ffh ; b0 ff 4718 4731 out DX, AL ; ee 4719 call 02 effh ; e8 fc f84732 call 02f1fh ; e8 fc f8 4720 4733 test al, al ; 84 c0 4721 jne short 036 0ah ; 75 034722 jmp near 034 78h ; e9 6e fe4734 jne short 0362ah ; 75 03 4735 jmp near 03498h ; e9 6e fe 4723 4736 mov dx, 003f4h ; ba f4 03 4724 4737 in AL, DX ; ec … … 4727 4740 and AL, strict byte 0c0h ; 24 c0 4728 4741 cmp AL, strict byte 0c0h ; 3c c0 4729 je short 036 28h ; 74 124742 je short 03648h ; 74 12 4730 4743 mov ax, 00275h ; b8 75 02 4731 4744 push ax ; 50 … … 4734 4747 mov ax, strict word 00007h ; b8 07 00 4735 4748 push ax ; 50 4736 call 01976h ; e8 51 e34749 call 01976h ; e8 31 e3 4737 4750 add sp, strict byte 00006h ; 83 c4 06 4738 4751 xor cx, cx ; 31 c9 4739 jmp short 036 31h ; eb 054752 jmp short 03651h ; eb 05 4740 4753 cmp cx, strict byte 00007h ; 83 f9 07 4741 jnl short 036 47h ; 7d 164754 jnl short 03667h ; 7d 16 4742 4755 mov dx, 003f5h ; ba f5 03 4743 4756 in AL, DX ; ec … … 4750 4763 mov byte [es:si], al ; 26 88 04 4751 4764 inc cx ; 41 4752 jmp short 036 2ch ; eb e54765 jmp short 0364ch ; eb e5 4753 4766 mov si, strict word 00042h ; be 42 00 4754 4767 mov ax, strict word 00040h ; b8 40 00 … … 4756 4769 mov al, byte [es:si] ; 26 8a 04 4757 4770 test AL, strict byte 0c0h ; a8 c0 4758 jne short 036 59h ; 75 034759 jmp near 035 23h ; e9 ca fe4771 jne short 03679h ; 75 03 4772 jmp near 03543h ; e9 ca fe 4760 4773 mov bx, strict word 00043h ; bb 43 00 4761 4774 mov al, byte [es:bx] ; 26 8a 07 4762 4775 test AL, strict byte 002h ; a8 02 4763 je short 036 6bh ; 74 084776 je short 0368bh ; 74 08 4764 4777 mov word [bp+016h], 00300h ; c7 46 16 00 03 4765 jmp near 03a c1h ; e9 56 044778 jmp near 03ae1h ; e9 56 04 4766 4779 mov word [bp+016h], 00100h ; c7 46 16 00 01 4767 jmp near 03a c1h ; e9 4e 044780 jmp near 03ae1h ; e9 4e 04 4768 4781 mov dl, byte [bp-004h] ; 8a 56 fc 4769 4782 xor dh, dh ; 30 f6 4770 4783 mov al, bl ; 88 d8 4771 4784 xor ah, ah ; 30 e4 4772 call 02e b0h ; e8 31 f84785 call 02ed0h ; e8 31 f8 4773 4786 and byte [bp+01ch], 0feh ; 80 66 1c fe 4774 4787 mov byte [bp+017h], 000h ; c6 46 17 00 4775 jmp near 032 bbh ; e9 31 fc4788 jmp near 032dbh ; e9 31 fc 4776 4789 mov bh, byte [bp+016h] ; 8a 7e 16 4777 4790 mov dl, byte [bp+015h] ; 8a 56 15 … … 4783 4796 mov bl, byte [bp+00eh] ; 8a 5e 0e 4784 4797 cmp bl, 001h ; 80 fb 01 4785 jnbe short 036 b7h ; 77 124798 jnbe short 036d7h ; 77 12 4786 4799 cmp AL, strict byte 001h ; 3c 01 4787 jnbe short 036 b7h ; 77 0e4800 jnbe short 036d7h ; 77 0e 4788 4801 cmp dl, 04fh ; 80 fa 4f 4789 jnbe short 036 b7h ; 77 094802 jnbe short 036d7h ; 77 09 4790 4803 test bh, bh ; 84 ff 4791 je short 036 b7h ; 74 054804 je short 036d7h ; 74 05 4792 4805 cmp bh, 012h ; 80 ff 12 4793 jbe short 036 d2h ; 76 1b4806 jbe short 036f2h ; 76 1b 4794 4807 mov ax, word [bp+016h] ; 8b 46 16 4795 4808 xor ah, ah ; 30 e4 … … 4803 4816 mov al, bl ; 88 d8 4804 4817 xor ah, ah ; 30 e4 4805 call 031 b1h ; e8 d8 fa4818 call 031d1h ; e8 d8 fa 4806 4819 test ax, ax ; 85 c0 4807 jne short 03 6f7h ; 75 1a4820 jne short 03717h ; 75 1a 4808 4821 mov ax, word [bp+016h] ; 8b 46 16 4809 4822 xor ah, ah ; 30 e4 … … 4814 4827 mov es, ax ; 8e c0 4815 4828 mov byte [es:bx], 080h ; 26 c6 07 80 4816 jmp near 03a c1h ; e9 ca 034829 jmp near 03ae1h ; e9 ca 03 4817 4830 mov cl, bl ; 88 d9 4818 4831 xor ch, ch ; 30 ed 4819 4832 mov ax, cx ; 89 c8 4820 call 0 2febh ; e8 eb f84833 call 0300bh ; e8 eb f8 4821 4834 test ax, ax ; 85 c0 4822 jne short 037 10h ; 75 0c4835 jne short 03730h ; 75 0c 4823 4836 mov ax, cx ; 89 c8 4824 call 030 cah ; e8 c1 f94837 call 030eah ; e8 c1 f9 4825 4838 test ax, ax ; 85 c0 4826 jne short 037 10h ; 75 034827 jmp near 033 77h ; e9 67 fc4839 jne short 03730h ; 75 03 4840 jmp near 03397h ; e9 67 fc 4828 4841 mov CL, strict byte 00ch ; b1 0c 4829 4842 mov ax, word [bp+006h] ; 8b 46 06 … … 4837 4850 mov word [bp-00ch], si ; 89 76 f4 4838 4851 cmp dx, si ; 39 f2 4839 jbe short 037 2eh ; 76 024852 jbe short 0374eh ; 76 02 4840 4853 db 0feh, 0c5h 4841 4854 ; inc ch ; fe c5 … … 4849 4862 add ax, word [bp-00eh] ; 03 46 f2 4850 4863 cmp ax, word [bp-00ch] ; 3b 46 f4 4851 jnc short 037 5fh ; 73 1a4864 jnc short 0377fh ; 73 1a 4852 4865 mov ax, word [bp+016h] ; 8b 46 16 4853 4866 xor ah, ah ; 30 e4 … … 4858 4871 mov es, ax ; 8e c0 4859 4872 mov byte [es:bx], 009h ; 26 c6 07 09 4860 jmp near 03 3e6h ; e9 87 fc4873 jmp near 03406h ; e9 87 fc 4861 4874 mov AL, strict byte 006h ; b0 06 4862 4875 mov dx, strict word 0000ah ; ba 0a 00 … … 4890 4903 xor ch, ch ; 30 ed 4891 4904 mov ax, cx ; 89 c8 4892 call 02f 76h ; e8 d4 f74905 call 02f96h ; e8 d4 f7 4893 4906 mov AL, strict byte 00fh ; b0 0f 4894 4907 mov dx, 003f5h ; ba f5 03 … … 4919 4932 mov AL, strict byte 0f6h ; b0 f6 4920 4933 out DX, AL ; ee 4921 call 02 effh ; e8 24 f74934 call 02f1fh ; e8 24 f7 4922 4935 test al, al ; 84 c0 4923 jne short 03 7e7h ; 75 084936 jne short 03807h ; 75 08 4924 4937 mov ax, cx ; 89 c8 4925 call 02f 37h ; e8 53 f74926 jmp near 036 ddh ; e9 f6 fe4938 call 02f57h ; e8 53 f7 4939 jmp near 036fdh ; e9 f6 fe 4927 4940 mov dx, 003f4h ; ba f4 03 4928 4941 in AL, DX ; ec … … 4931 4944 and AL, strict byte 0c0h ; 24 c0 4932 4945 cmp AL, strict byte 0c0h ; 3c c0 4933 je short 038 05h ; 74 124946 je short 03825h ; 74 12 4934 4947 mov ax, 00275h ; b8 75 02 4935 4948 push ax ; 50 … … 4938 4951 mov ax, strict word 00007h ; b8 07 00 4939 4952 push ax ; 50 4940 call 01976h ; e8 74 e14953 call 01976h ; e8 54 e1 4941 4954 add sp, strict byte 00006h ; 83 c4 06 4942 4955 xor cx, cx ; 31 c9 4943 jmp short 038 0eh ; eb 054956 jmp short 0382eh ; eb 05 4944 4957 cmp cx, strict byte 00007h ; 83 f9 07 4945 jnl short 038 24h ; 7d 164958 jnl short 03844h ; 7d 16 4946 4959 mov dx, 003f5h ; ba f5 03 4947 4960 in AL, DX ; ec … … 4954 4967 mov byte [es:si], al ; 26 88 04 4955 4968 inc cx ; 41 4956 jmp short 038 09h ; eb e54969 jmp short 03829h ; eb e5 4957 4970 mov si, strict word 00042h ; be 42 00 4958 4971 mov ax, strict word 00040h ; b8 40 00 … … 4960 4973 mov al, byte [es:si] ; 26 8a 04 4961 4974 test AL, strict byte 0c0h ; a8 c0 4962 je short 038 52h ; 74 1f4975 je short 03872h ; 74 1f 4963 4976 mov si, strict word 00043h ; be 43 00 4964 4977 mov al, byte [es:si] ; 26 8a 04 4965 4978 test AL, strict byte 002h ; a8 02 4966 je short 038 40h ; 74 034967 jmp near 036 63h ; e9 23 fe4979 je short 03860h ; 74 03 4980 jmp near 03683h ; e9 23 fe 4968 4981 mov ax, 00275h ; b8 75 02 4969 4982 push ax ; 50 … … 4972 4985 mov ax, strict word 00007h ; b8 07 00 4973 4986 push ax ; 50 4974 call 01976h ; e8 27 e14987 call 01976h ; e8 07 e1 4975 4988 add sp, strict byte 00006h ; 83 c4 06 4976 4989 mov byte [bp+017h], 000h ; c6 46 17 00 … … 4982 4995 xor ah, ah ; 30 e4 4983 4996 xor dx, dx ; 31 d2 4984 call 02e b0h ; e8 45 f64985 jmp near 035 33h ; e9 c5 fc4997 call 02ed0h ; e8 45 f6 4998 jmp near 03553h ; e9 c5 fc 4986 4999 mov bl, dl ; 88 d3 4987 5000 cmp dl, 001h ; 80 fa 01 4988 jbe short 038 9bh ; 76 265001 jbe short 038bbh ; 76 26 4989 5002 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4990 5003 mov word [bp+010h], strict word 00000h ; c7 46 10 00 00 … … 4995 5008 mov dl, bh ; 88 fa 4996 5009 mov word [bp+012h], dx ; 89 56 12 4997 jmp near 039 c0h ; e9 25 015010 jmp near 039e0h ; e9 25 01 4998 5011 mov ax, strict word 00010h ; b8 10 00 4999 call 016aeh ; e8 0d de5012 call 016aeh ; e8 ed dd 5000 5013 mov dl, al ; 88 c2 5001 5014 xor bh, bh ; 30 ff 5002 5015 test AL, strict byte 0f0h ; a8 f0 5003 je short 038 abh ; 74 025016 je short 038cbh ; 74 02 5004 5017 mov BH, strict byte 001h ; b7 01 5005 5018 test dl, 00fh ; f6 c2 0f 5006 je short 038 b2h ; 74 025019 je short 038d2h ; 74 02 5007 5020 db 0feh, 0c7h 5008 5021 ; inc bh ; fe c7 5009 5022 test bl, bl ; 84 db 5010 jne short 038 bch ; 75 065023 jne short 038dch ; 75 06 5011 5024 mov CL, strict byte 004h ; b1 04 5012 5025 shr dl, CL ; d2 ea 5013 jmp short 038 bfh ; eb 035026 jmp short 038dfh ; eb 03 5014 5027 and dl, 00fh ; 80 e2 0f 5015 5028 mov byte [bp+011h], 000h ; c6 46 11 00 … … 5027 5040 mov word [bp+012h], ax ; 89 46 12 5028 5041 cmp dl, 003h ; 80 fa 03 5029 jc short 03 8fbh ; 72 155030 jbe short 039 22h ; 76 3a5042 jc short 0391bh ; 72 15 5043 jbe short 03942h ; 76 3a 5031 5044 cmp dl, 005h ; 80 fa 05 5032 jc short 039 29h ; 72 3c5033 jbe short 039 30h ; 76 415045 jc short 03949h ; 72 3c 5046 jbe short 03950h ; 76 41 5034 5047 cmp dl, 00fh ; 80 fa 0f 5035 je short 039 3eh ; 74 4a5048 je short 0395eh ; 74 4a 5036 5049 cmp dl, 00eh ; 80 fa 0e 5037 je short 039 37h ; 74 3e5038 jmp short 039 45h ; eb 4a5050 je short 03957h ; 74 3e 5051 jmp short 03965h ; eb 4a 5039 5052 cmp dl, 002h ; 80 fa 02 5040 je short 039 1bh ; 74 1b5053 je short 0393bh ; 74 1b 5041 5054 cmp dl, 001h ; 80 fa 01 5042 je short 039 14h ; 74 0f5055 je short 03934h ; 74 0f 5043 5056 test dl, dl ; 84 d2 5044 jne short 039 45h ; 75 3c5057 jne short 03965h ; 75 3c 5045 5058 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 5046 5059 mov byte [bp+013h], 000h ; c6 46 13 00 5047 jmp short 039 57h ; eb 435060 jmp short 03977h ; eb 43 5048 5061 mov word [bp+014h], 02709h ; c7 46 14 09 27 5049 jmp short 039 57h ; eb 3c5062 jmp short 03977h ; eb 3c 5050 5063 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 5051 jmp short 039 57h ; eb 355064 jmp short 03977h ; eb 35 5052 5065 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 5053 jmp short 039 57h ; eb 2e5066 jmp short 03977h ; eb 2e 5054 5067 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 5055 jmp short 039 57h ; eb 275068 jmp short 03977h ; eb 27 5056 5069 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 5057 jmp short 039 57h ; eb 205070 jmp short 03977h ; eb 20 5058 5071 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 5059 jmp short 039 57h ; eb 195072 jmp short 03977h ; eb 19 5060 5073 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 5061 jmp short 039 57h ; eb 125074 jmp short 03977h ; eb 12 5062 5075 mov ax, 00275h ; b8 75 02 5063 5076 push ax ; 50 … … 5066 5079 mov ax, strict word 00007h ; b8 07 00 5067 5080 push ax ; 50 5068 call 01976h ; e8 22 e05081 call 01976h ; e8 02 e0 5069 5082 add sp, strict byte 00006h ; 83 c4 06 5070 5083 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5071 5084 mov al, dl ; 88 d0 5072 5085 xor ah, ah ; 30 e4 5073 call 03 bfch ; e8 99 025086 call 03c1ch ; e8 99 02 5074 5087 mov word [bp+008h], ax ; 89 46 08 5075 jmp near 035 33h ; e9 ca fb5088 jmp near 03553h ; e9 ca fb 5076 5089 mov bl, dl ; 88 d3 5077 5090 cmp dl, 001h ; 80 fa 01 5078 jbe short 039 75h ; 76 055091 jbe short 03995h ; 76 05 5079 5092 mov word [bp+016h], cx ; 89 4e 16 5080 jmp short 039 c0h ; eb 4b5093 jmp short 039e0h ; eb 4b 5081 5094 mov ax, strict word 00010h ; b8 10 00 5082 call 016aeh ; e8 33 dd5095 call 016aeh ; e8 13 dd 5083 5096 test bl, bl ; 84 db 5084 jne short 039 87h ; 75 085097 jne short 039a7h ; 75 08 5085 5098 mov CL, strict byte 004h ; b1 04 5086 5099 mov dl, al ; 88 c2 5087 5100 shr dl, CL ; d2 ea 5088 jmp short 039 8ch ; eb 055101 jmp short 039ach ; eb 05 5089 5102 mov dl, al ; 88 c2 5090 5103 and dl, 00fh ; 80 e2 0f … … 5093 5106 xor ah, ah ; 30 e4 5094 5107 test dl, dl ; 84 d2 5095 je short 039 a6h ; 74 0d5108 je short 039c6h ; 74 0d 5096 5109 cmp dl, 001h ; 80 fa 01 5097 jbe short 039 a3h ; 76 055110 jbe short 039c3h ; 76 05 5098 5111 or ah, 002h ; 80 cc 02 5099 jmp short 039 a6h ; eb 035112 jmp short 039c6h ; eb 03 5100 5113 or ah, 001h ; 80 cc 01 5101 5114 mov word [bp+016h], ax ; 89 46 16 5102 jmp near 032 bbh ; e9 0f f95115 jmp near 032dbh ; e9 0f f9 5103 5116 cmp dl, 001h ; 80 fa 01 5104 jbe short 039 c6h ; 76 155117 jbe short 039e6h ; 76 15 5105 5118 mov word [bp+016h], si ; 89 76 16 5106 5119 mov bx, strict word 00041h ; bb 41 00 … … 5109 5122 mov byte [es:bx], 001h ; 26 c6 07 01 5110 5123 mov word [bp+01ch], ax ; 89 46 1c 5111 jmp near 032 bbh ; e9 f5 f85124 jmp near 032dbh ; e9 f5 f8 5112 5125 mov ax, word [bp+016h] ; 8b 46 16 5113 5126 xor ah, ah ; 30 e4 … … 5118 5131 mov es, ax ; 8e c0 5119 5132 mov byte [es:bx], 006h ; 26 c6 07 06 5120 jmp near 03a c1h ; e9 e1 005133 jmp near 03ae1h ; e9 e1 00 5121 5134 mov bl, dl ; 88 d3 5122 5135 mov cl, byte [bp+016h] ; 8a 4e 16 5123 5136 cmp dl, 001h ; 80 fa 01 5124 jnbe short 039 b1h ; 77 c75137 jnbe short 039d1h ; 77 c7 5125 5138 mov al, bl ; 88 d8 5126 5139 xor ah, ah ; 30 e4 5127 call 031 b1h ; e8 c0 f75140 call 031d1h ; e8 c0 f7 5128 5141 test ax, ax ; 85 c0 5129 jne short 03 9f8h ; 75 035130 jmp near 036 ddh ; e9 e5 fc5142 jne short 03a18h ; 75 03 5143 jmp near 036fdh ; e9 e5 fc 5131 5144 test bl, bl ; 84 db 5132 je short 03a 01h ; 74 055145 je short 03a21h ; 74 05 5133 5146 mov bx, 00091h ; bb 91 00 5134 jmp short 03a 04h ; eb 035147 jmp short 03a24h ; eb 03 5135 5148 mov bx, 00090h ; bb 90 00 5136 5149 mov word [bp-00ch], bx ; 89 5e f4 … … 5140 5153 and bl, 00fh ; 80 e3 0f 5141 5154 cmp cl, 002h ; 80 f9 02 5142 jc short 03a 26h ; 72 0f5143 jbe short 03a 33h ; 76 1a5155 jc short 03a46h ; 72 0f 5156 jbe short 03a53h ; 76 1a 5144 5157 cmp cl, 004h ; 80 f9 04 5145 je short 03a 2eh ; 74 105158 je short 03a4eh ; 74 10 5146 5159 cmp cl, 003h ; 80 f9 03 5147 je short 03a 38h ; 74 155148 jmp near 032 45h ; e9 1f f85160 je short 03a58h ; 74 15 5161 jmp near 03265h ; e9 1f f8 5149 5162 cmp cl, 001h ; 80 f9 01 5150 je short 03a 2eh ; 74 035151 jmp near 032 45h ; e9 17 f85163 je short 03a4eh ; 74 03 5164 jmp near 03265h ; e9 17 f8 5152 5165 or bl, 090h ; 80 cb 90 5153 jmp short 03a 3bh ; eb 085166 jmp short 03a5bh ; eb 08 5154 5167 or bl, 070h ; 80 cb 70 5155 jmp short 03a 3bh ; eb 035168 jmp short 03a5bh ; eb 03 5156 5169 or bl, 010h ; 80 cb 10 5157 5170 mov ax, strict word 00040h ; b8 40 00 … … 5163 5176 mov bx, strict word 00041h ; bb 41 00 5164 5177 mov byte [es:bx], al ; 26 88 07 5165 jmp near 035 33h ; e9 df fa5178 jmp near 03553h ; e9 df fa 5166 5179 mov bl, dl ; 88 d3 5167 5180 mov cl, byte [bp+014h] ; 8a 4e 14 … … 5181 5194 mov byte [bp-004h], cl ; 88 4e fc 5182 5195 cmp dl, 001h ; 80 fa 01 5183 jbe short 03a 86h ; 76 035184 jmp near 039 b1h ; e9 2b ff5196 jbe short 03aa6h ; 76 03 5197 jmp near 039d1h ; e9 2b ff 5185 5198 mov al, bl ; 88 d8 5186 5199 xor ah, ah ; 30 e4 5187 call 031 b1h ; e8 24 f75200 call 031d1h ; e8 24 f7 5188 5201 test ax, ax ; 85 c0 5189 jne short 03a 94h ; 75 035190 jmp near 036 ddh ; e9 49 fc5202 jne short 03ab4h ; 75 03 5203 jmp near 036fdh ; e9 49 fc 5191 5204 mov cl, bl ; 88 d9 5192 5205 xor ch, ch ; 30 ed 5193 5206 mov ax, cx ; 89 c8 5194 call 0 2febh ; e8 4e f55207 call 0300bh ; e8 4e f5 5195 5208 test ax, ax ; 85 c0 5196 jne short 03a c8h ; 75 275209 jne short 03ae8h ; 75 27 5197 5210 mov ax, cx ; 89 c8 5198 call 030 cah ; e8 24 f65211 call 030eah ; e8 24 f6 5199 5212 test ax, ax ; 85 c0 5200 jne short 03a c8h ; 75 1e5213 jne short 03ae8h ; 75 1e 5201 5214 mov ax, word [bp+016h] ; 8b 46 16 5202 5215 xor ah, ah ; 30 e4 … … 5208 5221 mov byte [es:bx], 00ch ; 26 c6 07 0c 5209 5222 or byte [bp+01ch], 001h ; 80 4e 1c 01 5210 jmp near 032 bbh ; e9 f3 f75223 jmp near 032dbh ; e9 f3 f7 5211 5224 mov ax, strict word 00010h ; b8 10 00 5212 call 016aeh ; e8 e0 db5225 call 016aeh ; e8 c0 db 5213 5226 test bl, bl ; 84 db 5214 jne short 03a dah ; 75 085227 jne short 03afah ; 75 08 5215 5228 mov CL, strict byte 004h ; b1 04 5216 5229 mov dl, al ; 88 c2 5217 5230 shr dl, CL ; d2 ea 5218 jmp short 03a dfh ; eb 055231 jmp short 03affh ; eb 05 5219 5232 mov dl, al ; 88 c2 5220 5233 and dl, 00fh ; 80 e2 0f 5221 5234 test bl, bl ; 84 db 5222 je short 03 ae8h ; 74 055235 je short 03b08h ; 74 05 5223 5236 mov si, 00091h ; be 91 00 5224 jmp short 03 aebh ; eb 035237 jmp short 03b0bh ; eb 03 5225 5238 mov si, 00090h ; be 90 00 5226 5239 mov word [bp-00ch], si ; 89 76 f4 … … 5230 5243 and bl, 00fh ; 80 e3 0f 5231 5244 cmp dl, 003h ; 80 fa 03 5232 jc short 03b 19h ; 72 1b5245 jc short 03b39h ; 72 1b 5233 5246 mov al, bl ; 88 d8 5234 5247 or AL, strict byte 090h ; 0c 90 5235 5248 cmp dl, 003h ; 80 fa 03 5236 jbe short 03b 55h ; 76 4e5249 jbe short 03b75h ; 76 4e 5237 5250 mov ah, bl ; 88 dc 5238 5251 or ah, 010h ; 80 cc 10 5239 5252 cmp dl, 005h ; 80 fa 05 5240 je short 03b 53h ; 74 425253 je short 03b73h ; 74 42 5241 5254 cmp dl, 004h ; 80 fa 04 5242 je short 03b 62h ; 74 4c5243 jmp near 03b 9ah ; e9 81 005255 je short 03b82h ; 74 4c 5256 jmp near 03bbah ; e9 81 00 5244 5257 cmp dl, 002h ; 80 fa 02 5245 je short 03b 33h ; 74 155258 je short 03b53h ; 74 15 5246 5259 cmp dl, 001h ; 80 fa 01 5247 jne short 03b 66h ; 75 435260 jne short 03b86h ; 75 43 5248 5261 cmp byte [bp-004h], 027h ; 80 7e fc 27 5249 jne short 03b 66h ; 75 3d5262 jne short 03b86h ; 75 3d 5250 5263 cmp bh, 009h ; 80 ff 09 5251 jne short 03b 7ch ; 75 4e5264 jne short 03b9ch ; 75 4e 5252 5265 or bl, 090h ; 80 cb 90 5253 jmp short 03b 7ch ; eb 495266 jmp short 03b9ch ; eb 49 5254 5267 cmp byte [bp-004h], 027h ; 80 7e fc 27 5255 jne short 03b 43h ; 75 0a5268 jne short 03b63h ; 75 0a 5256 5269 cmp bh, 009h ; 80 ff 09 5257 jne short 03b 43h ; 75 055270 jne short 03b63h ; 75 05 5258 5271 or bl, 070h ; 80 cb 70 5259 jmp short 03b 7ch ; eb 395272 jmp short 03b9ch ; eb 39 5260 5273 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5261 jne short 03b 9ah ; 75 515274 jne short 03bbah ; 75 51 5262 5275 cmp bh, 00fh ; 80 ff 0f 5263 jne short 03b 9ah ; 75 4c5276 jne short 03bbah ; 75 4c 5264 5277 or bl, 010h ; 80 cb 10 5265 jmp short 03b 9ah ; eb 475266 jmp short 03b 7eh ; eb 295278 jmp short 03bbah ; eb 47 5279 jmp short 03b9eh ; eb 29 5267 5280 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5268 jne short 03b 9ah ; 75 3f5281 jne short 03bbah ; 75 3f 5269 5282 cmp bh, 009h ; 80 ff 09 5270 je short 03b 64h ; 74 045271 jmp short 03b 9ah ; eb 385272 jmp short 03b 68h ; eb 045283 je short 03b84h ; 74 04 5284 jmp short 03bbah ; eb 38 5285 jmp short 03b88h ; eb 04 5273 5286 mov bl, al ; 88 c3 5274 jmp short 03b 9ah ; eb 325287 jmp short 03bbah ; eb 32 5275 5288 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5276 jne short 03b 9ah ; 75 2c5289 jne short 03bbah ; 75 2c 5277 5290 cmp bh, 009h ; 80 ff 09 5278 jne short 03b 75h ; 75 025279 jmp short 03b 64h ; eb ef5291 jne short 03b95h ; 75 02 5292 jmp short 03b84h ; eb ef 5280 5293 cmp bh, 012h ; 80 ff 12 5281 jne short 03b 9ah ; 75 205294 jne short 03bbah ; 75 20 5282 5295 mov bl, ah ; 88 e3 5283 jmp short 03b 9ah ; eb 1c5296 jmp short 03bbah ; eb 1c 5284 5297 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5285 jne short 03b 9ah ; 75 165298 jne short 03bbah ; 75 16 5286 5299 cmp bh, 009h ; 80 ff 09 5287 jne short 03b 8bh ; 75 025288 jmp short 03b 64h ; eb d95300 jne short 03babh ; 75 02 5301 jmp short 03b84h ; eb d9 5289 5302 cmp bh, 012h ; 80 ff 12 5290 jne short 03b 92h ; 75 025291 jmp short 03b 7ah ; eb e85303 jne short 03bb2h ; 75 02 5304 jmp short 03b9ah ; eb e8 5292 5305 cmp bh, 024h ; 80 ff 24 5293 jne short 03b 9ah ; 75 035306 jne short 03bbah ; 75 03 5294 5307 or bl, 0d0h ; 80 cb d0 5295 5308 mov al, bl ; 88 d8 … … 5298 5311 sar ax, CL ; d3 f8 5299 5312 test AL, strict byte 001h ; a8 01 5300 jne short 03b a9h ; 75 035301 jmp near 03a aah ; e9 01 ff5313 jne short 03bc9h ; 75 03 5314 jmp near 03acah ; e9 01 ff 5302 5315 mov ax, strict word 00040h ; b8 40 00 5303 5316 mov es, ax ; 8e c0 … … 5307 5320 mov al, dl ; 88 d0 5308 5321 xor ah, ah ; 30 e4 5309 call 03 bfch ; e8 3c 005322 call 03c1ch ; e8 3c 00 5310 5323 mov word [bp+008h], ax ; 89 46 08 5311 5324 mov byte [bp+017h], 000h ; c6 46 17 00 … … 5314 5327 mov es, ax ; 8e c0 5315 5328 mov byte [es:bx], 000h ; 26 c6 07 00 5316 jmp near 035 33h ; e9 5d f95317 mov bx, 00da 4h ; bb a40d5329 jmp near 03553h ; e9 5d f9 5330 mov bx, 00da0h ; bb a0 0d 5318 5331 mov cx, ds ; 8c d9 5319 5332 mov ax, strict word 00004h ; b8 04 00 5320 call 01933h ; e8 52 dd5333 call 01933h ; e8 32 dd 5321 5334 mov al, byte [bp+017h] ; 8a 46 17 5322 5335 xor ah, ah ; 30 e4 … … 5328 5341 mov ax, strict word 00004h ; b8 04 00 5329 5342 push ax ; 50 5330 call 01976h ; e8 80 dd5343 call 01976h ; e8 60 dd 5331 5344 add sp, strict byte 00008h ; 83 c4 08 5332 jmp near 032 45h ; e9 49 f65333 get_floppy_dpt_: ; 0xf3 bfc LB 0x325345 jmp near 03265h ; e9 49 f6 5346 get_floppy_dpt_: ; 0xf3c1c LB 0x32 5334 5347 push bx ; 53 5335 5348 push dx ; 52 … … 5338 5351 mov dl, al ; 88 c2 5339 5352 xor ax, ax ; 31 c0 5340 jmp short 03c 0dh ; eb 065353 jmp short 03c2dh ; eb 06 5341 5354 inc ax ; 40 5342 5355 cmp ax, strict word 00007h ; 3d 07 00 5343 jnc short 03c 27h ; 73 1a5356 jnc short 03c47h ; 73 1a 5344 5357 mov bx, ax ; 89 c3 5345 5358 sal bx, 1 ; d1 e3 5346 5359 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5347 jne short 03c 07h ; 75 f05360 jne short 03c27h ; 75 f0 5348 5361 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5349 5362 xor ah, ah ; 30 e4 … … 5351 5364 imul bx ; f7 eb 5352 5365 add ax, strict word 00000h ; 05 00 00 5353 jmp short 03c 2ah ; eb 035366 jmp short 03c4ah ; eb 03 5354 5367 mov ax, strict word 00041h ; b8 41 00 5355 5368 pop bp ; 5d … … 5357 5370 pop bx ; 5b 5358 5371 retn ; c3 5359 dummy_soft_reset_: ; 0xf3c 2e LB 0x75372 dummy_soft_reset_: ; 0xf3c4e LB 0x7 5360 5373 push bp ; 55 5361 5374 mov bp, sp ; 89 e5 … … 5363 5376 pop bp ; 5d 5364 5377 retn ; c3 5365 _cdemu_init: ; 0xf3c 35 LB 0x185378 _cdemu_init: ; 0xf3c55 LB 0x18 5366 5379 push bp ; 55 5367 5380 mov bp, sp ; 89 e5 5368 5381 mov dx, strict word 0000eh ; ba 0e 00 5369 5382 mov ax, strict word 00040h ; b8 40 00 5370 call 0166eh ; e8 2d da5383 call 0166eh ; e8 0d da 5371 5384 xor bx, bx ; 31 db 5372 5385 mov dx, 00366h ; ba 66 03 5373 call 01660h ; e8 17 da5386 call 01660h ; e8 f7 d9 5374 5387 mov sp, bp ; 89 ec 5375 5388 pop bp ; 5d 5376 5389 retn ; c3 5377 _cdemu_isactive: ; 0xf3c 4d LB 0x165390 _cdemu_isactive: ; 0xf3c6d LB 0x16 5378 5391 push bp ; 55 5379 5392 mov bp, sp ; 89 e5 5380 5393 mov dx, strict word 0000eh ; ba 0e 00 5381 5394 mov ax, strict word 00040h ; b8 40 00 5382 call 0166eh ; e8 15 da5395 call 0166eh ; e8 f5 d9 5383 5396 mov dx, 00366h ; ba 66 03 5384 call 01652h ; e8 f3 d95397 call 01652h ; e8 d3 d9 5385 5398 mov sp, bp ; 89 ec 5386 5399 pop bp ; 5d 5387 5400 retn ; c3 5388 _cdemu_emulated_drive: ; 0xf3c 63 LB 0x165401 _cdemu_emulated_drive: ; 0xf3c83 LB 0x16 5389 5402 push bp ; 55 5390 5403 mov bp, sp ; 89 e5 5391 5404 mov dx, strict word 0000eh ; ba 0e 00 5392 5405 mov ax, strict word 00040h ; b8 40 00 5393 call 0166eh ; e8 ff d95406 call 0166eh ; e8 df d9 5394 5407 mov dx, 00368h ; ba 68 03 5395 call 01652h ; e8 dd d95408 call 01652h ; e8 bd d9 5396 5409 mov sp, bp ; 89 ec 5397 5410 pop bp ; 5d 5398 5411 retn ; c3 5399 _int13_eltorito: ; 0xf3c 79 LB 0x1915412 _int13_eltorito: ; 0xf3c99 LB 0x191 5400 5413 push bp ; 55 5401 5414 mov bp, sp ; 89 e5 … … 5404 5417 mov dx, strict word 0000eh ; ba 0e 00 5405 5418 mov ax, strict word 00040h ; b8 40 00 5406 call 0166eh ; e8 e7 d95419 call 0166eh ; e8 c7 d9 5407 5420 mov si, 00366h ; be 66 03 5408 5421 mov di, ax ; 89 c7 … … 5410 5423 xor ah, ah ; 30 e4 5411 5424 cmp ax, strict word 0004bh ; 3d 4b 00 5412 jc short 03c a0h ; 72 0a5413 jbe short 03c cbh ; 76 335425 jc short 03cc0h ; 72 0a 5426 jbe short 03cebh ; 76 33 5414 5427 cmp ax, strict word 0004dh ; 3d 4d 00 5415 jbe short 03c a5h ; 76 085416 jmp near 03d d0h ; e9 30 015428 jbe short 03cc5h ; 76 08 5429 jmp near 03df0h ; e9 30 01 5417 5430 cmp ax, strict word 0004ah ; 3d 4a 00 5418 jne short 03c c8h ; 75 235419 mov bx, 00da 4h ; bb a40d5431 jne short 03ce8h ; 75 23 5432 mov bx, 00da0h ; bb a0 0d 5420 5433 mov cx, ds ; 8c d9 5421 5434 mov ax, strict word 00004h ; b8 04 00 5422 call 01933h ; e8 83 dc5435 call 01933h ; e8 63 dc 5423 5436 push word [bp+016h] ; ff 76 16 5424 5437 mov ax, 002fch ; b8 fc 02 … … 5428 5441 mov ax, strict word 00004h ; b8 04 00 5429 5442 push ax ; 50 5430 call 01976h ; e8 b4 dc5443 call 01976h ; e8 94 dc 5431 5444 add sp, strict byte 00008h ; 83 c4 08 5432 jmp near 03 debh ; e9 23 015433 jmp near 03d d0h ; e9 05 015445 jmp near 03e0bh ; e9 23 01 5446 jmp near 03df0h ; e9 05 01 5434 5447 mov dx, word [bp+00ah] ; 8b 56 0a 5435 5448 mov ax, word [bp+004h] ; 8b 46 04 5436 5449 mov bx, strict word 00013h ; bb 13 00 5437 call 01660h ; e8 89 d95450 call 01660h ; e8 69 d9 5438 5451 mov es, di ; 8e c7 5439 5452 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5442 5455 inc dx ; 42 5443 5456 mov ax, word [bp+004h] ; 8b 46 04 5444 call 01660h ; e8 77 d95457 call 01660h ; e8 57 d9 5445 5458 mov es, di ; 8e c7 5446 5459 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5450 5463 inc dx ; 42 5451 5464 mov ax, word [bp+004h] ; 8b 46 04 5452 call 01660h ; e8 64 d95465 call 01660h ; e8 44 d9 5453 5466 mov es, di ; 8e c7 5454 5467 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5457 5470 add dx, strict byte 00003h ; 83 c2 03 5458 5471 mov ax, word [bp+004h] ; 8b 46 04 5459 call 01660h ; e8 50 d95472 call 01660h ; e8 30 d9 5460 5473 mov es, di ; 8e c7 5461 5474 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5464 5477 add dx, strict byte 00004h ; 83 c2 04 5465 5478 mov ax, word [bp+004h] ; 8b 46 04 5466 call 0169ch ; e8 76 d95479 call 0169ch ; e8 56 d9 5467 5480 mov es, di ; 8e c7 5468 5481 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5470 5483 add dx, strict byte 00008h ; 83 c2 08 5471 5484 mov ax, word [bp+004h] ; 8b 46 04 5472 call 0167ch ; e8 44 d95485 call 0167ch ; e8 24 d9 5473 5486 mov es, di ; 8e c7 5474 5487 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5476 5489 add dx, strict byte 0000ah ; 83 c2 0a 5477 5490 mov ax, word [bp+004h] ; 8b 46 04 5478 call 0167ch ; e8 32 d95491 call 0167ch ; e8 12 d9 5479 5492 mov es, di ; 8e c7 5480 5493 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5482 5495 add dx, strict byte 0000ch ; 83 c2 0c 5483 5496 mov ax, word [bp+004h] ; 8b 46 04 5484 call 0167ch ; e8 20 d95497 call 0167ch ; e8 00 d9 5485 5498 mov es, di ; 8e c7 5486 5499 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5488 5501 add dx, strict byte 0000eh ; 83 c2 0e 5489 5502 mov ax, word [bp+004h] ; 8b 46 04 5490 call 0167ch ; e8 0e d95503 call 0167ch ; e8 ee d8 5491 5504 mov es, di ; 8e c7 5492 5505 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5495 5508 add dx, strict byte 00010h ; 83 c2 10 5496 5509 mov ax, word [bp+004h] ; 8b 46 04 5497 call 01660h ; e8 de d85510 call 01660h ; e8 be d8 5498 5511 mov es, di ; 8e c7 5499 5512 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5502 5515 add dx, strict byte 00011h ; 83 c2 11 5503 5516 mov ax, word [bp+004h] ; 8b 46 04 5504 call 01660h ; e8 ca d85517 call 01660h ; e8 aa d8 5505 5518 mov es, di ; 8e c7 5506 5519 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5509 5522 add dx, strict byte 00012h ; 83 c2 12 5510 5523 mov ax, word [bp+004h] ; 8b 46 04 5511 call 01660h ; e8 b6 d85524 call 01660h ; e8 96 d8 5512 5525 test byte [bp+016h], 0ffh ; f6 46 16 ff 5513 jne short 03d b6h ; 75 065526 jne short 03dd6h ; 75 06 5514 5527 mov es, di ; 8e c7 5515 5528 mov byte [es:si], 000h ; 26 c6 04 00 … … 5518 5531 mov dx, strict word 00074h ; ba 74 00 5519 5532 mov ax, strict word 00040h ; b8 40 00 5520 call 01660h ; e8 9b d85533 call 01660h ; e8 7b d8 5521 5534 and byte [bp+01ch], 0feh ; 80 66 1c fe 5522 5535 lea sp, [bp-004h] ; 8d 66 fc … … 5525 5538 pop bp ; 5d 5526 5539 retn ; c3 5527 mov bx, 00da 4h ; bb a40d5540 mov bx, 00da0h ; bb a0 0d 5528 5541 mov cx, ds ; 8c d9 5529 5542 mov ax, strict word 00004h ; b8 04 00 5530 call 01933h ; e8 58 db5543 call 01933h ; e8 38 db 5531 5544 mov al, byte [bp+017h] ; 8a 46 17 5532 5545 xor ah, ah ; 30 e4 … … 5535 5548 push ax ; 50 5536 5549 mov ax, 00333h ; b8 33 03 5537 jmp near 03c bah ; e9 cf fe5550 jmp near 03cdah ; e9 cf fe 5538 5551 mov ax, word [bp+016h] ; 8b 46 16 5539 5552 xor ah, ah ; 30 e4 … … 5544 5557 mov dx, strict word 00074h ; ba 74 00 5545 5558 mov ax, strict word 00040h ; b8 40 00 5546 call 01660h ; e8 5c d85559 call 01660h ; e8 3c d8 5547 5560 or byte [bp+01ch], 001h ; 80 4e 1c 01 5548 jmp short 03d c9h ; eb bf5549 device_is_cdrom_: ; 0xf3e 0a LB 0x3f5561 jmp short 03de9h ; eb bf 5562 device_is_cdrom_: ; 0xf3e2a LB 0x3f 5550 5563 push bp ; 55 5551 5564 mov bp, sp ; 89 e5 … … 5556 5569 mov dx, strict word 0000eh ; ba 0e 00 5557 5570 mov ax, strict word 00040h ; b8 40 00 5558 call 0166eh ; e8 53 d85571 call 0166eh ; e8 33 d8 5559 5572 mov cx, ax ; 89 c1 5560 5573 cmp bl, 010h ; 80 fb 10 5561 jc short 03e 26h ; 72 045574 jc short 03e46h ; 72 04 5562 5575 xor ax, ax ; 31 c0 5563 jmp short 03e 41h ; eb 1b5576 jmp short 03e61h ; eb 1b 5564 5577 mov al, bl ; 88 d8 5565 5578 xor ah, ah ; 30 e4 … … 5570 5583 add bx, 00122h ; 81 c3 22 01 5571 5584 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5572 jne short 03e 22h ; 75 e45585 jne short 03e42h ; 75 e4 5573 5586 mov ax, strict word 00001h ; b8 01 00 5574 5587 lea sp, [bp-006h] ; 8d 66 fa … … 5578 5591 pop bp ; 5d 5579 5592 retn ; c3 5580 cdrom_boot_: ; 0xf3e 49 LB 0x43e5593 cdrom_boot_: ; 0xf3e69 LB 0x43e 5581 5594 push bp ; 55 5582 5595 mov bp, sp ; 89 e5 … … 5589 5602 mov dx, strict word 0000eh ; ba 0e 00 5590 5603 mov ax, strict word 00040h ; b8 40 00 5591 call 0166eh ; e8 10 d85604 call 0166eh ; e8 f0 d7 5592 5605 mov word [bp-018h], ax ; 89 46 e8 5593 5606 mov si, 00366h ; be 66 03 … … 5596 5609 mov word [bp-010h], ax ; 89 46 f0 5597 5610 mov byte [bp-00eh], 000h ; c6 46 f2 00 5598 jmp short 03e 7eh ; eb 095611 jmp short 03e9eh ; eb 09 5599 5612 inc byte [bp-00eh] ; fe 46 f2 5600 5613 cmp byte [bp-00eh], 010h ; 80 7e f2 10 5601 jnc short 03e 8ah ; 73 0c5614 jnc short 03eaah ; 73 0c 5602 5615 mov al, byte [bp-00eh] ; 8a 46 f2 5603 5616 xor ah, ah ; 30 e4 5604 call 03e 0ah ; e8 84 ff5617 call 03e2ah ; e8 84 ff 5605 5618 test ax, ax ; 85 c0 5606 je short 03e 75h ; 74 eb5619 je short 03e95h ; 74 eb 5607 5620 cmp byte [bp-00eh], 010h ; 80 7e f2 10 5608 jc short 03e 96h ; 72 065621 jc short 03eb6h ; 72 06 5609 5622 mov ax, strict word 00002h ; b8 02 00 5610 jmp near 042 24h ; e9 8e 035623 jmp near 04244h ; e9 8e 03 5611 5624 mov cx, strict word 0000ch ; b9 0c 00 5612 5625 xor bx, bx ; 31 db 5613 5626 mov dx, ss ; 8c d2 5614 5627 lea ax, [bp-026h] ; 8d 46 da 5615 call 0a1 a0h ; e8 fd 625628 call 0a1c0h ; e8 fd 62 5616 5629 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5617 5630 mov ax, strict word 00011h ; b8 11 00 … … 5629 5642 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5630 5643 mov byte [bp-00ch], 000h ; c6 46 f4 00 5631 jmp short 03e deh ; eb 095644 jmp short 03efeh ; eb 09 5632 5645 inc byte [bp-00ch] ; fe 46 f4 5633 5646 cmp byte [bp-00ch], 004h ; 80 7e f4 04 5634 jnbe short 03f 20h ; 77 425647 jnbe short 03f40h ; 77 42 5635 5648 mov al, byte [bp-00eh] ; 8a 46 f2 5636 5649 xor ah, ah ; 30 e4 … … 5661 5674 call word [word di+0006ah] ; ff 95 6a 00 5662 5675 test ax, ax ; 85 c0 5663 jne short 03e d5h ; 75 b55676 jne short 03ef5h ; 75 b5 5664 5677 test ax, ax ; 85 c0 5665 je short 03f 2ah ; 74 065678 je short 03f4ah ; 74 06 5666 5679 mov ax, strict word 00003h ; b8 03 00 5667 jmp near 042 24h ; e9 fa 025680 jmp near 04244h ; e9 fa 02 5668 5681 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5669 je short 03f 37h ; 74 065682 je short 03f57h ; 74 06 5670 5683 mov ax, strict word 00004h ; b8 04 00 5671 jmp near 042 24h ; e9 ed 025684 jmp near 04244h ; e9 ed 02 5672 5685 xor di, di ; 31 ff 5673 jmp short 03f 41h ; eb 065686 jmp short 03f61h ; eb 06 5674 5687 inc di ; 47 5675 5688 cmp di, strict byte 00005h ; 83 ff 05 5676 jnc short 03f 51h ; 73 105689 jnc short 03f71h ; 73 10 5677 5690 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5678 cmp al, byte [di+00da ch] ; 3a 85 ac0d5679 je short 03f 3bh ; 74 f05691 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5692 je short 03f5bh ; 74 f0 5680 5693 mov ax, strict word 00005h ; b8 05 00 5681 jmp near 042 24h ; e9 d3 025694 jmp near 04244h ; e9 d3 02 5682 5695 xor di, di ; 31 ff 5683 jmp short 03f 5bh ; eb 065696 jmp short 03f7bh ; eb 06 5684 5697 inc di ; 47 5685 5698 cmp di, strict byte 00017h ; 83 ff 17 5686 jnc short 03f 6bh ; 73 105699 jnc short 03f8bh ; 73 10 5687 5700 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5688 cmp al, byte [di+00d b2h] ; 3a 85 b20d5689 je short 03f 55h ; 74 f05701 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5702 je short 03f75h ; 74 f0 5690 5703 mov ax, strict word 00006h ; b8 06 00 5691 jmp near 042 24h ; e9 b9 025704 jmp near 04244h ; e9 b9 02 5692 5705 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5693 5706 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5729 5742 call word [word di+0006ah] ; ff 95 6a 00 5730 5743 test ax, ax ; 85 c0 5731 je short 03f d3h ; 74 065744 je short 03ff3h ; 74 06 5732 5745 mov ax, strict word 00007h ; b8 07 00 5733 jmp near 042 24h ; e9 51 025746 jmp near 04244h ; e9 51 02 5734 5747 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5735 je short 0 3fe0h ; 74 065748 je short 04000h ; 74 06 5736 5749 mov ax, strict word 00008h ; b8 08 00 5737 jmp near 042 24h ; e9 44 025750 jmp near 04244h ; e9 44 02 5738 5751 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5739 je short 0 3fedh ; 74 065752 je short 0400dh ; 74 06 5740 5753 mov ax, strict word 00009h ; b8 09 00 5741 jmp near 042 24h ; e9 37 025754 jmp near 04244h ; e9 37 02 5742 5755 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5743 je short 0 3ffah ; 74 065756 je short 0401ah ; 74 06 5744 5757 mov ax, strict word 0000ah ; b8 0a 00 5745 jmp near 042 24h ; e9 2a 025758 jmp near 04244h ; e9 2a 02 5746 5759 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5747 jne short 0 3ff4h ; 75 f35760 jne short 04014h ; 75 f3 5748 5761 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5749 je short 040 0eh ; 74 065762 je short 0402eh ; 74 06 5750 5763 mov ax, strict word 0000bh ; b8 0b 00 5751 jmp near 042 24h ; e9 16 025764 jmp near 04244h ; e9 16 02 5752 5765 mov al, byte [bp-00805h] ; 8a 86 fb f7 5753 5766 mov es, [bp-016h] ; 8e 46 ea 5754 5767 mov byte [es:si+001h], al ; 26 88 44 01 5755 5768 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5756 jne short 040 27h ; 75 075769 jne short 04047h ; 75 07 5757 5770 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5758 jmp short 040 3ah ; eb 135771 jmp short 0405ah ; eb 13 5759 5772 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5760 jnc short 040 35h ; 73 075773 jnc short 04055h ; 73 07 5761 5774 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5762 jmp short 040 3ah ; eb 055775 jmp short 0405ah ; eb 05 5763 5776 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5764 5777 mov bl, byte [bp-00eh] ; 8a 5e f2 … … 5779 5792 mov word [bp-014h], ax ; 89 46 ec 5780 5793 test ax, ax ; 85 c0 5781 jne short 040 69h ; 75 055794 jne short 04089h ; 75 05 5782 5795 mov word [bp-014h], 007c0h ; c7 46 ec c0 07 5783 5796 mov ax, word [bp-014h] ; 8b 46 ec … … 5788 5801 mov word [es:si+00eh], bx ; 26 89 5c 0e 5789 5802 test bx, bx ; 85 db 5790 je short 040 8bh ; 74 065803 je short 040abh ; 74 06 5791 5804 cmp bx, 00400h ; 81 fb 00 04 5792 jbe short 040 91h ; 76 065805 jbe short 040b1h ; 76 06 5793 5806 mov ax, strict word 0000ch ; b8 0c 00 5794 jmp near 042 24h ; e9 93 015807 jmp near 04244h ; e9 93 01 5795 5808 mov ax, word [bp-007feh] ; 8b 86 02 f8 5796 5809 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5840 5853 sal ax, 1 ; d1 e0 5841 5854 rcl di, 1 ; d1 d7 5842 loop 041 09h ; e2 fa5855 loop 04129h ; e2 fa 5843 5856 push di ; 57 5844 5857 push ax ; 50 … … 5855 5868 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5856 5869 test ax, ax ; 85 c0 5857 je short 041 3bh ; 74 065870 je short 0415bh ; 74 06 5858 5871 mov ax, strict word 0000dh ; b8 0d 00 5859 jmp near 042 24h ; e9 e9 005872 jmp near 04244h ; e9 e9 00 5860 5873 mov es, [bp-016h] ; 8e 46 ea 5861 5874 mov al, byte [es:si+001h] ; 26 8a 44 01 5862 5875 cmp AL, strict byte 002h ; 3c 02 5863 jc short 041 53h ; 72 0d5864 jbe short 041 6eh ; 76 265876 jc short 04173h ; 72 0d 5877 jbe short 0418eh ; 76 26 5865 5878 cmp AL, strict byte 004h ; 3c 04 5866 je short 041 7eh ; 74 325879 je short 0419eh ; 74 32 5867 5880 cmp AL, strict byte 003h ; 3c 03 5868 je short 041 76h ; 74 265869 jmp near 041 cch ; e9 79 005881 je short 04196h ; 74 26 5882 jmp near 041ech ; e9 79 00 5870 5883 cmp AL, strict byte 001h ; 3c 01 5871 jne short 041 cch ; 75 755884 jne short 041ech ; 75 75 5872 5885 mov es, [bp-016h] ; 8e 46 ea 5873 5886 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5874 5887 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5875 5888 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5876 jmp short 041 cch ; eb 5e5889 jmp short 041ech ; eb 5e 5877 5890 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5878 jmp short 041 60h ; eb ea5891 jmp short 04180h ; eb ea 5879 5892 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5880 jmp short 041 60h ; eb e25893 jmp short 04180h ; eb e2 5881 5894 mov dx, 001c4h ; ba c4 01 5882 5895 mov ax, word [bp-014h] ; 8b 46 ec 5883 call 01652h ; e8 cb d45896 call 01652h ; e8 ab d4 5884 5897 and AL, strict byte 03fh ; 24 3f 5885 5898 xor ah, ah ; 30 e4 … … 5888 5901 mov dx, 001c4h ; ba c4 01 5889 5902 mov ax, word [bp-014h] ; 8b 46 ec 5890 call 01652h ; e8 b7 d45903 call 01652h ; e8 97 d4 5891 5904 and ax, 000c0h ; 25 c0 00 5892 5905 mov bx, ax ; 89 c3 … … 5895 5908 mov dx, 001c5h ; ba c5 01 5896 5909 mov ax, word [bp-014h] ; 8b 46 ec 5897 call 01652h ; e8 a5 d45910 call 01652h ; e8 85 d4 5898 5911 xor ah, ah ; 30 e4 5899 5912 add ax, bx ; 01 d8 … … 5903 5916 mov dx, 001c3h ; ba c3 01 5904 5917 mov ax, word [bp-014h] ; 8b 46 ec 5905 call 01652h ; e8 90 d45918 call 01652h ; e8 70 d4 5906 5919 xor ah, ah ; 30 e4 5907 5920 inc ax ; 40 … … 5910 5923 mov es, [bp-016h] ; 8e 46 ea 5911 5924 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5912 je short 042 0dh ; 74 375925 je short 0422dh ; 74 37 5913 5926 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5914 jne short 04 1f5h ; 75 185927 jne short 04215h ; 75 18 5915 5928 mov dx, strict word 00010h ; ba 10 00 5916 5929 mov ax, strict word 00040h ; b8 40 00 5917 call 01652h ; e8 6c d45930 call 01652h ; e8 4c d4 5918 5931 mov bl, al ; 88 c3 5919 5932 or bl, 041h ; 80 cb 41 … … 5921 5934 mov dx, strict word 00010h ; ba 10 00 5922 5935 mov ax, strict word 00040h ; b8 40 00 5923 jmp short 042 0ah ; eb 155936 jmp short 0422ah ; eb 15 5924 5937 mov dx, 00304h ; ba 04 03 5925 5938 mov ax, word [bp-018h] ; 8b 46 e8 5926 call 01652h ; e8 54 d45939 call 01652h ; e8 34 d4 5927 5940 mov bl, al ; 88 c3 5928 5941 db 0feh, 0c3h … … 5931 5944 mov dx, 00304h ; ba 04 03 5932 5945 mov ax, word [bp-018h] ; 8b 46 e8 5933 call 01660h ; e8 53 d45946 call 01660h ; e8 33 d4 5934 5947 mov es, [bp-016h] ; 8e 46 ea 5935 5948 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5936 je short 042 1bh ; 74 045949 je short 0423bh ; 74 04 5937 5950 mov byte [es:si], 001h ; 26 c6 04 01 5938 5951 mov es, [bp-016h] ; 8e 46 ea … … 5948 5961 retn ; c3 5949 5962 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5950 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 3eh, 046h, 02eh5951 db 043h, 0 63h, 043h, 088h, 043h, 058h, 043h, 088h, 043h, 058h, 043h, 087h, 045h, 06dh, 045h, 03eh5952 db 046h, 0 3eh, 046h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 06dh, 045h, 035h, 046h, 06dh5953 db 045h, 0 3eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h, 03eh5954 db 046h, 0 3eh, 046h, 03eh, 046h, 03eh, 046h, 03eh, 046h5955 _int13_cdemu: ; 0xf42 87 LB 0x4535963 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 05eh, 046h, 04eh 5964 db 043h, 083h, 043h, 0a8h, 043h, 078h, 043h, 0a8h, 043h, 078h, 043h, 0a7h, 045h, 08dh, 045h, 05eh 5965 db 046h, 05eh, 046h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 08dh, 045h, 055h, 046h, 08dh 5966 db 045h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh 5967 db 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h, 05eh, 046h 5968 _int13_cdemu: ; 0xf42a7 LB 0x453 5956 5969 push bp ; 55 5957 5970 mov bp, sp ; 89 e5 … … 5961 5974 mov dx, strict word 0000eh ; ba 0e 00 5962 5975 mov ax, strict word 00040h ; b8 40 00 5963 call 0166eh ; e8 d6 d35976 call 0166eh ; e8 b6 d3 5964 5977 mov di, 00366h ; bf 66 03 5965 5978 mov cx, ax ; 89 c1 … … 5977 5990 mov dx, strict word 00074h ; ba 74 00 5978 5991 mov ax, strict word 00040h ; b8 40 00 5979 call 01660h ; e8 99 d35992 call 01660h ; e8 79 d3 5980 5993 mov es, cx ; 8e c1 5981 5994 cmp byte [es:di], 000h ; 26 80 3d 00 5982 je short 042 deh ; 74 0f5995 je short 042feh ; 74 0f 5983 5996 mov al, byte [es:di+002h] ; 26 8a 45 02 5984 5997 xor ah, ah ; 30 e4 … … 5986 5999 xor dh, dh ; 30 f6 5987 6000 cmp ax, dx ; 39 d0 5988 je short 043 08h ; 74 2a5989 mov bx, 00da 4h ; bb a40d6001 je short 04328h ; 74 2a 6002 mov bx, 00da0h ; bb a0 0d 5990 6003 mov cx, ds ; 8c d9 5991 6004 mov ax, strict word 00004h ; b8 04 00 5992 call 01933h ; e8 4a d66005 call 01933h ; e8 2a d6 5993 6006 mov ax, word [bp+012h] ; 8b 46 12 5994 6007 xor ah, ah ; 30 e4 … … 6002 6015 mov ax, strict word 00004h ; b8 04 00 6003 6016 push ax ; 50 6004 call 01976h ; e8 74 d66017 call 01976h ; e8 54 d6 6005 6018 add sp, strict byte 0000ah ; 83 c4 0a 6006 jmp near 046 61h ; e9 59 036019 jmp near 04681h ; e9 59 03 6007 6020 mov al, byte [bp+017h] ; 8a 46 17 6008 6021 xor ah, ah ; 30 e4 6009 6022 mov dx, ax ; 89 c2 6010 6023 cmp ax, strict word 00050h ; 3d 50 00 6011 jnbe short 043 85h ; 77 716024 jnbe short 043a5h ; 77 71 6012 6025 push CS ; 0e 6013 6026 pop ES ; 07 6014 6027 mov cx, strict word 0001eh ; b9 1e 00 6015 mov di, 042 2eh ; bf 2e 426028 mov di, 0424eh ; bf 4e 42 6016 6029 repne scasb ; f2 ae 6017 6030 sal cx, 1 ; d1 e1 6018 6031 mov di, cx ; 89 cf 6019 mov ax, word [cs:di+042 4bh] ; 2e 8b 85 4b 426032 mov ax, word [cs:di+0426bh] ; 2e 8b 85 6b 42 6020 6033 mov bx, word [bp+016h] ; 8b 5e 16 6021 6034 xor bh, bh ; 30 ff … … 6031 6044 sal bx, 1 ; d1 e3 6032 6045 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 6033 je short 043 55h ; 74 096046 je short 04375h ; 74 09 6034 6047 mov al, byte [bp-006h] ; 8a 46 fa 6035 6048 xor ah, ah ; 30 e4 6036 6049 call word [word bx+00076h] ; ff 97 76 00 6037 jmp near 045 6dh ; e9 15 026050 jmp near 0458dh ; e9 15 02 6038 6051 mov ax, word [bp+016h] ; 8b 46 16 6039 6052 xor ah, ah ; 30 e4 6040 6053 or ah, 003h ; 80 cc 03 6041 jmp near 046 69h ; e9 06 036054 jmp near 04689h ; e9 06 03 6042 6055 mov dx, strict word 00074h ; ba 74 00 6043 6056 mov ax, strict word 00040h ; b8 40 00 6044 call 01652h ; e8 e6 d26057 call 01652h ; e8 c6 d2 6045 6058 mov cl, al ; 88 c1 6046 6059 mov bh, al ; 88 c7 … … 6049 6062 mov dx, strict word 00074h ; ba 74 00 6050 6063 mov ax, strict word 00040h ; b8 40 00 6051 call 01660h ; e8 e2 d26064 call 01660h ; e8 c2 d2 6052 6065 test cl, cl ; 84 c9 6053 je short 04 3e7h ; 74 656054 jmp near 046 7ah ; e9 f5 026055 jmp near 046 3eh ; e9 b6 026066 je short 04407h ; 74 65 6067 jmp near 0469ah ; e9 f5 02 6068 jmp near 0465eh ; e9 b6 02 6056 6069 mov es, [bp-012h] ; 8e 46 ee 6057 6070 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 6079 6092 mov word [bp-014h], cx ; 89 4e ec 6080 6093 test cx, cx ; 85 c9 6081 je short 04 3f4h ; 74 1d6094 je short 04414h ; 74 1d 6082 6095 cmp di, word [bp-00ah] ; 3b 7e f6 6083 jc short 04 3e4h ; 72 086096 jc short 04404h ; 72 08 6084 6097 cmp ax, dx ; 39 d0 6085 jnc short 04 3e4h ; 73 046098 jnc short 04404h ; 73 04 6086 6099 cmp bx, si ; 39 f3 6087 jnbe short 04 3eah ; 77 066088 jmp near 046 61h ; e9 7a 026089 jmp near 045 71h ; e9 87 016100 jnbe short 0440ah ; 77 06 6101 jmp near 04681h ; e9 7a 02 6102 jmp near 04591h ; e9 87 01 6090 6103 mov dl, byte [bp+017h] ; 8a 56 17 6091 6104 xor dh, dh ; 30 f6 6092 6105 cmp dx, strict byte 00004h ; 83 fa 04 6093 jne short 04 3f7h ; 75 036094 jmp near 045 6dh ; e9 76 016106 jne short 04417h ; 75 03 6107 jmp near 0458dh ; e9 76 01 6095 6108 mov CL, strict byte 004h ; b1 04 6096 6109 mov dx, word [bp+010h] ; 8b 56 10 … … 6105 6118 xor dl, dl ; 30 d2 6106 6119 xor cx, cx ; 31 c9 6107 call 0a1 30h ; e8 18 5d6120 call 0a150h ; e8 18 5d 6108 6121 xor bx, bx ; 31 db 6109 6122 add ax, si ; 01 f0 … … 6111 6124 mov bx, di ; 89 fb 6112 6125 xor cx, cx ; 31 c9 6113 call 0a1 30h ; e8 0b 5d6126 call 0a150h ; e8 0b 5d 6114 6127 mov bx, ax ; 89 c3 6115 6128 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6146 6159 mov dx, ss ; 8c d2 6147 6160 lea ax, [bp-030h] ; 8d 46 d0 6148 call 0a1 a0h ; e8 24 5d6161 call 0a1c0h ; e8 24 5d 6149 6162 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6150 6163 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6199 6212 sal si, 1 ; d1 e6 6200 6213 rcl di, 1 ; d1 d7 6201 loop 045 01h ; e2 fa6214 loop 04521h ; e2 fa 6202 6215 push di ; 57 6203 6216 push si ; 56 … … 6215 6228 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 6216 6229 test al, al ; 84 c0 6217 je short 045 6dh ; 74 386218 mov bx, 00da 4h ; bb a40d6230 je short 0458dh ; 74 38 6231 mov bx, 00da0h ; bb a0 0d 6219 6232 mov cx, ds ; 8c d9 6220 6233 mov ax, strict word 00004h ; b8 04 00 6221 call 01933h ; e8 f3 d36234 call 01933h ; e8 d3 d3 6222 6235 mov al, dl ; 88 d0 6223 6236 xor ah, ah ; 30 e4 … … 6231 6244 mov ax, strict word 00004h ; b8 04 00 6232 6245 push ax ; 50 6233 call 01976h ; e8 1e d46246 call 01976h ; e8 fe d3 6234 6247 add sp, strict byte 0000ah ; 83 c4 0a 6235 6248 mov ax, word [bp+016h] ; 8b 46 16 … … 6238 6251 mov word [bp+016h], ax ; 89 46 16 6239 6252 mov byte [bp+016h], 000h ; c6 46 16 00 6240 jmp near 046 6ch ; e9 ff 006253 jmp near 0468ch ; e9 ff 00 6241 6254 mov byte [bp+017h], 000h ; c6 46 17 00 6242 6255 xor bx, bx ; 31 db 6243 6256 mov dx, strict word 00074h ; ba 74 00 6244 6257 mov ax, strict word 00040h ; b8 40 00 6245 call 01660h ; e8 e4 d06258 call 01660h ; e8 c4 d0 6246 6259 and byte [bp+01ch], 0feh ; 80 66 1c fe 6247 6260 lea sp, [bp-004h] ; 8d 66 fc … … 6293 6306 mov word [bp+010h], cx ; 89 4e 10 6294 6307 cmp AL, strict byte 003h ; 3c 03 6295 je short 046 17h ; 74 1c6308 je short 04637h ; 74 1c 6296 6309 cmp AL, strict byte 002h ; 3c 02 6297 je short 046 0fh ; 74 106310 je short 0462fh ; 74 10 6298 6311 cmp AL, strict byte 001h ; 3c 01 6299 jne short 046 1ch ; 75 196312 jne short 0463ch ; 75 19 6300 6313 mov ax, word [bp+010h] ; 8b 46 10 6301 6314 xor al, al ; 30 c0 6302 6315 or AL, strict byte 002h ; 0c 02 6303 6316 mov word [bp+010h], ax ; 89 46 10 6304 jmp short 046 1ch ; eb 0d6317 jmp short 0463ch ; eb 0d 6305 6318 or cl, 004h ; 80 c9 04 6306 6319 mov word [bp+010h], cx ; 89 4e 10 6307 jmp short 046 1ch ; eb 056320 jmp short 0463ch ; eb 05 6308 6321 or cl, 005h ; 80 c9 05 6309 jmp short 046 12h ; eb f66322 jmp short 04632h ; eb f6 6310 6323 mov es, [bp-012h] ; 8e 46 ee 6311 6324 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6312 jc short 046 29h ; 72 036313 jmp near 045 6dh ; e9 44 ff6325 jc short 04649h ; 72 03 6326 jmp near 0458dh ; e9 44 ff 6314 6327 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6315 6328 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6316 jmp short 046 26h ; eb f16329 jmp short 04646h ; eb f1 6317 6330 or bh, 003h ; 80 cf 03 6318 6331 mov word [bp+016h], bx ; 89 5e 16 6319 jmp near 045 71h ; e9 33 ff6320 mov bx, 00da 4h ; bb a40d6332 jmp near 04591h ; e9 33 ff 6333 mov bx, 00da0h ; bb a0 0d 6321 6334 mov cx, ds ; 8c d9 6322 6335 mov ax, strict word 00004h ; b8 04 00 6323 call 01933h ; e8 ea d26336 call 01933h ; e8 ca d2 6324 6337 mov al, byte [bp+017h] ; 8a 46 17 6325 6338 xor ah, ah ; 30 e4 … … 6331 6344 mov ax, strict word 00004h ; b8 04 00 6332 6345 push ax ; 50 6333 call 01976h ; e8 18 d36346 call 01976h ; e8 f8 d2 6334 6347 add sp, strict byte 00008h ; 83 c4 08 6335 6348 mov ax, word [bp+016h] ; 8b 46 16 … … 6341 6354 mov dx, strict word 00074h ; ba 74 00 6342 6355 mov ax, strict word 00040h ; b8 40 00 6343 call 01660h ; e8 e6 cf6356 call 01660h ; e8 c6 cf 6344 6357 or byte [bp+01ch], 001h ; 80 4e 1c 01 6345 jmp near 045 80h ; e9 ff fe6358 jmp near 045a0h ; e9 ff fe 6346 6359 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6347 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 c3h, 047h, 008h6348 db 04ch, 0 85h, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 07ah, 047h, 0c3h, 047h, 008h, 04ch, 0c3h6349 db 047h, 0 c3h, 047h, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 008h, 04ch, 0a7h, 047h, 008h6350 db 04ch, 0 c3h, 047h, 0b0h, 047h, 0e1h, 047h, 07ah, 047h, 0e1h, 047h, 02ah, 049h, 0cah, 049h, 0e1h6351 db 04 7h, 0f4h, 049h, 022h, 04ch, 02ah, 04ch, 0c3h, 047h6352 _int13_cdrom: ; 0xf46 da LB 0x5856360 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0e3h, 047h, 028h 6361 db 04ch, 0a5h, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 09ah, 047h, 0e3h, 047h, 028h, 04ch, 0e3h 6362 db 047h, 0e3h, 047h, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 028h, 04ch, 0c7h, 047h, 028h 6363 db 04ch, 0e3h, 047h, 0d0h, 047h, 001h, 048h, 09ah, 047h, 001h, 048h, 04ah, 049h, 0eah, 049h, 001h 6364 db 048h, 014h, 04ah, 042h, 04ch, 04ah, 04ch, 0e3h, 047h 6365 _int13_cdrom: ; 0xf46fa LB 0x585 6353 6366 push bp ; 55 6354 6367 mov bp, sp ; 89 e5 … … 6358 6371 mov dx, strict word 0000eh ; ba 0e 00 6359 6372 mov ax, strict word 00040h ; b8 40 00 6360 call 0166eh ; e8 83 cf6373 call 0166eh ; e8 63 cf 6361 6374 mov word [bp-018h], ax ; 89 46 e8 6362 6375 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 … … 6365 6378 mov dx, strict word 00074h ; ba 74 00 6366 6379 mov ax, strict word 00040h ; b8 40 00 6367 call 01660h ; e8 5f cf6380 call 01660h ; e8 3f cf 6368 6381 mov ax, word [bp+010h] ; 8b 46 10 6369 6382 xor ah, ah ; 30 e4 6370 6383 cmp ax, 000e0h ; 3d e0 00 6371 jc short 047 10h ; 72 056384 jc short 04730h ; 72 05 6372 6385 cmp ax, 000f0h ; 3d f0 00 6373 jc short 047 2fh ; 72 1f6386 jc short 0474fh ; 72 1f 6374 6387 mov ax, word [bp+010h] ; 8b 46 10 6375 6388 xor ah, ah ; 30 e4 … … 6383 6396 mov ax, strict word 00004h ; b8 04 00 6384 6397 push ax ; 50 6385 call 01976h ; e8 4d d26398 call 01976h ; e8 2d d2 6386 6399 add sp, strict byte 0000ah ; 83 c4 0a 6387 jmp near 04c 40h ; e9 11 056400 jmp near 04c60h ; e9 11 05 6388 6401 mov ax, word [bp+010h] ; 8b 46 10 6389 6402 xor ah, ah ; 30 e4 … … 6393 6406 mov byte [bp-008h], dl ; 88 56 f8 6394 6407 cmp dl, 010h ; 80 fa 10 6395 jc short 047 54h ; 72 0e6408 jc short 04774h ; 72 0e 6396 6409 push ax ; 50 6397 6410 mov al, byte [bp+019h] ; 8a 46 19 … … 6400 6413 push ax ; 50 6401 6414 mov ax, 00416h ; b8 16 04 6402 jmp short 047 21h ; eb cd6415 jmp short 04741h ; eb cd 6403 6416 mov al, byte [bp+019h] ; 8a 46 19 6404 6417 xor ah, ah ; 30 e4 6405 6418 mov dx, ax ; 89 c2 6406 6419 cmp ax, strict word 00050h ; 3d 50 00 6407 jnbe short 047 c3h ; 77 636420 jnbe short 047e3h ; 77 63 6408 6421 push CS ; 0e 6409 6422 pop ES ; 07 6410 6423 mov cx, strict word 0001eh ; b9 1e 00 6411 mov di, 046 81h ; bf 81 466424 mov di, 046a1h ; bf a1 46 6412 6425 repne scasb ; f2 ae 6413 6426 sal cx, 1 ; d1 e1 6414 6427 mov di, cx ; 89 cf 6415 mov ax, word [cs:di+046 9eh] ; 2e 8b 85 9e 466428 mov ax, word [cs:di+046beh] ; 2e 8b 85 be 46 6416 6429 mov bx, word [bp+018h] ; 8b 5e 18 6417 6430 xor bh, bh ; 30 ff … … 6420 6433 xor ah, ah ; 30 e4 6421 6434 or ah, 003h ; 80 cc 03 6422 jmp near 04c 48h ; e9 c3 046435 jmp near 04c68h ; e9 c3 04 6423 6436 mov dx, strict word 00074h ; ba 74 00 6424 6437 mov ax, strict word 00040h ; b8 40 00 6425 call 01652h ; e8 c4 ce6438 call 01652h ; e8 a4 ce 6426 6439 mov cl, al ; 88 c1 6427 6440 mov bh, al ; 88 c7 … … 6430 6443 mov dx, strict word 00074h ; ba 74 00 6431 6444 mov ax, strict word 00040h ; b8 40 00 6432 call 01660h ; e8 c0 ce6445 call 01660h ; e8 a0 ce 6433 6446 test cl, cl ; 84 c9 6434 je short 047 c0h ; 74 1c6435 jmp near 04c 59h ; e9 b2 046447 je short 047e0h ; 74 1c 6448 jmp near 04c79h ; e9 b2 04 6436 6449 or bh, 002h ; 80 cf 02 6437 6450 mov word [bp+018h], bx ; 89 5e 18 6438 jmp near 04c 4bh ; e9 9b 046451 jmp near 04c6bh ; e9 9b 04 6439 6452 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6440 6453 or bh, 030h ; 80 cf 30 6441 6454 mov word [bp+018h], bx ; 89 5e 18 6442 6455 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6443 jmp near 04c 0ch ; e9 49 046444 mov bx, 00da 4h ; bb a40d6456 jmp near 04c2ch ; e9 49 04 6457 mov bx, 00da0h ; bb a0 0d 6445 6458 mov cx, ds ; 8c d9 6446 6459 mov ax, strict word 00004h ; b8 04 00 6447 call 01933h ; e8 65 d16460 call 01933h ; e8 45 d1 6448 6461 mov al, byte [bp+019h] ; 8a 46 19 6449 6462 xor ah, ah ; 30 e4 … … 6454 6467 push ax ; 50 6455 6468 mov ax, strict word 00004h ; b8 04 00 6456 jmp short 048 22h ; eb 416469 jmp short 04842h ; eb 41 6457 6470 mov bx, word [bp+00ch] ; 8b 5e 0c 6458 6471 mov es, [bp+006h] ; 8e 46 06 … … 6469 6482 mov word [bp-012h], ax ; 89 46 ee 6470 6483 or ax, word [bp-014h] ; 0b 46 ec 6471 je short 048 2ch ; 74 1b6484 je short 0484ch ; 74 1b 6472 6485 mov al, byte [bp+019h] ; 8a 46 19 6473 6486 xor ah, ah ; 30 e4 … … 6479 6492 mov ax, strict word 00007h ; b8 07 00 6480 6493 push ax ; 50 6481 call 01976h ; e8 50 d16494 call 01976h ; e8 30 d1 6482 6495 add sp, strict byte 00008h ; 83 c4 08 6483 jmp near 04c 40h ; e9 14 046496 jmp near 04c60h ; e9 14 04 6484 6497 mov es, [bp-020h] ; 8e 46 e0 6485 6498 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 6492 6505 mov ax, word [bp-010h] ; 8b 46 f0 6493 6506 cmp ax, strict word 00044h ; 3d 44 00 6494 je short 048 54h ; 74 056507 je short 04874h ; 74 05 6495 6508 cmp ax, strict word 00047h ; 3d 47 00 6496 jne short 048 57h ; 75 036497 jmp near 04c 08h ; e9 b1 036509 jne short 04877h ; 75 03 6510 jmp near 04c28h ; e9 b1 03 6498 6511 mov cx, strict word 0000ch ; b9 0c 00 6499 6512 xor bx, bx ; 31 db 6500 6513 mov dx, ss ; 8c d2 6501 6514 lea ax, [bp-02eh] ; 8d 46 d2 6502 call 0a1 a0h ; e8 3c 596515 call 0a1c0h ; e8 3c 59 6503 6516 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6504 6517 mov ax, word [bp-014h] ; 8b 46 ec … … 6533 6546 sal bx, 1 ; d1 e3 6534 6547 rcl si, 1 ; d1 d6 6535 loop 048 b6h ; e2 fa6548 loop 048d6h ; e2 fa 6536 6549 push si ; 56 6537 6550 push bx ; 53 … … 6552 6565 shr dx, 1 ; d1 ea 6553 6566 rcr ax, 1 ; d1 d8 6554 loop 04 8e6h ; e2 fa6567 loop 04906h ; e2 fa 6555 6568 mov es, [bp-020h] ; 8e 46 e0 6556 6569 mov word [es:di+002h], ax ; 26 89 45 02 6557 6570 cmp byte [bp-016h], 000h ; 80 7e ea 00 6558 je short 049 50h ; 74 576559 mov bx, 00da 4h ; bb a40d6571 je short 04970h ; 74 57 6572 mov bx, 00da0h ; bb a0 0d 6560 6573 mov cx, ds ; 8c d9 6561 6574 mov ax, strict word 00004h ; b8 04 00 6562 call 01933h ; e8 2f d06575 call 01933h ; e8 0f d0 6563 6576 mov al, byte [bp-016h] ; 8a 46 ea 6564 6577 xor ah, ah ; 30 e4 … … 6571 6584 mov ax, strict word 00004h ; b8 04 00 6572 6585 push ax ; 50 6573 call 01976h ; e8 5a d06586 call 01976h ; e8 3a d0 6574 6587 add sp, strict byte 0000ah ; 83 c4 0a 6575 6588 mov ax, word [bp+018h] ; 8b 46 18 6576 6589 xor ah, ah ; 30 e4 6577 6590 or ah, 00ch ; 80 cc 0c 6578 jmp near 04c 48h ; e9 1e 036591 jmp near 04c68h ; e9 1e 03 6579 6592 cmp bx, strict byte 00002h ; 83 fb 02 6580 jnbe short 049 9bh ; 77 6c6593 jnbe short 049bbh ; 77 6c 6581 6594 mov al, byte [bp-008h] ; 8a 46 f8 6582 6595 xor ah, ah ; 30 e4 … … 6587 6600 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6588 6601 cmp bx, strict byte 00002h ; 83 fb 02 6589 je short 049 b3h ; 74 6c6602 je short 049d3h ; 74 6c 6590 6603 cmp bx, strict byte 00001h ; 83 fb 01 6591 je short 049 8bh ; 74 3f6604 je short 049abh ; 74 3f 6592 6605 test bx, bx ; 85 db 6593 je short 049 53h ; 74 036594 jmp near 04c 08h ; e9 b5 026606 je short 04973h ; 74 03 6607 jmp near 04c28h ; e9 b5 02 6595 6608 cmp cl, 0ffh ; 80 f9 ff 6596 jne short 049 6ah ; 75 126609 jne short 0498ah ; 75 12 6597 6610 mov ax, word [bp+018h] ; 8b 46 18 6598 6611 xor ah, ah ; 30 e4 … … 6601 6614 xor al, al ; 30 c0 6602 6615 or AL, strict byte 001h ; 0c 01 6603 jmp near 04c 48h ; e9 de 026616 jmp near 04c68h ; e9 de 02 6604 6617 mov al, byte [bp-008h] ; 8a 46 f8 6605 6618 xor ah, ah ; 30 e4 … … 6615 6628 or AL, strict byte 001h ; 0c 01 6616 6629 mov word [bp+018h], ax ; 89 46 18 6617 jmp short 049 50h ; eb c56630 jmp short 04970h ; eb c5 6618 6631 test cl, cl ; 84 c9 6619 jne short 049 9eh ; 75 0f6632 jne short 049beh ; 75 0f 6620 6633 or bh, 0b0h ; 80 cf b0 6621 6634 mov word [bp+018h], bx ; 89 5e 18 6622 6635 mov byte [bp+018h], cl ; 88 4e 18 6623 jmp near 04c 4bh ; e9 b0 026624 jmp near 04c 40h ; e9 a2 026636 jmp near 04c6bh ; e9 b0 02 6637 jmp near 04c60h ; e9 a2 02 6625 6638 mov al, byte [bp-008h] ; 8a 46 f8 6626 6639 xor ah, ah ; 30 e4 … … 6633 6646 mov byte [es:bx+025h], cl ; 26 88 4f 25 6634 6647 test cl, cl ; 84 c9 6635 jne short 049 c5h ; 75 0e6648 jne short 049e5h ; 75 0e 6636 6649 xor ax, ax ; 31 c0 6637 6650 mov dx, word [bp+018h] ; 8b 56 18 … … 6639 6652 or dx, ax ; 09 c2 6640 6653 mov word [bp+018h], dx ; 89 56 18 6641 jmp short 049 50h ; eb 8b6654 jmp short 04970h ; eb 8b 6642 6655 mov ax, strict word 00001h ; b8 01 00 6643 jmp short 049 b9h ; eb ef6656 jmp short 049d9h ; eb ef 6644 6657 mov al, byte [bp-008h] ; 8a 46 f8 6645 6658 xor ah, ah ; 30 e4 … … 6650 6663 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6651 6664 test cl, cl ; 84 c9 6652 je short 04 9e7h ; 74 066665 je short 04a07h ; 74 06 6653 6666 or bh, 0b1h ; 80 cf b1 6654 jmp near 047 aah ; e9 c3 fd6655 je short 04a 0eh ; 74 256667 jmp near 047cah ; e9 c3 fd 6668 je short 04a2eh ; 74 25 6656 6669 mov ax, word [bp+018h] ; 8b 46 18 6657 6670 xor ah, ah ; 30 e4 6658 6671 or ah, 0b1h ; 80 cc b1 6659 jmp near 04c 48h ; e9 54 026672 jmp near 04c68h ; e9 54 02 6660 6673 mov bx, word [bp+00ch] ; 8b 5e 0c 6661 6674 mov cx, word [bp+006h] ; 8b 4e 06 … … 6666 6679 mov word [bp-01eh], ax ; 89 46 e2 6667 6680 cmp ax, strict word 0001ah ; 3d 1a 00 6668 jnc short 04a 11h ; 73 056669 jmp short 049 9bh ; eb 8d6670 jmp near 04c 08h ; e9 f7 016671 jc short 04a 73h ; 72 606681 jnc short 04a31h ; 73 05 6682 jmp short 049bbh ; eb 8d 6683 jmp near 04c28h ; e9 f7 01 6684 jc short 04a93h ; 72 60 6672 6685 mov al, byte [bp-008h] ; 8a 46 f8 6673 6686 xor ah, ah ; 30 e4 … … 6692 6705 mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff 6693 6706 cmp word [bp-01eh], strict byte 0001eh ; 83 7e e2 1e 6694 jnc short 04a 7ch ; 73 036695 jmp near 04b 3ch ; e9 c0 006707 jnc short 04a9ch ; 73 03 6708 jmp near 04b5ch ; e9 c0 00 6696 6709 mov es, [bp-00ah] ; 8e 46 f6 6697 6710 mov word [es:si], strict word 0001eh ; 26 c7 04 1e 00 … … 6738 6751 xor bl, bl ; 30 db 6739 6752 xor bh, bh ; 30 ff 6740 jmp short 04b 1ch ; eb 056753 jmp short 04b3ch ; eb 05 6741 6754 cmp bh, 00fh ; 80 ff 0f 6742 jnc short 04b 32h ; 73 166755 jnc short 04b52h ; 73 16 6743 6756 mov al, bh ; 88 f8 6744 6757 xor ah, ah ; 30 e4 … … 6746 6759 add dx, 00356h ; 81 c2 56 03 6747 6760 mov ax, word [bp-018h] ; 8b 46 e8 6748 call 01652h ; e8 26 cb6761 call 01652h ; e8 06 cb 6749 6762 add bl, al ; 00 c3 6750 6763 db 0feh, 0c7h 6751 6764 ; inc bh ; fe c7 6752 jmp short 04b 17h ; eb e56765 jmp short 04b37h ; eb e5 6753 6766 neg bl ; f6 db 6754 6767 les di, [bp-00eh] ; c4 7e f2 6755 6768 mov byte [es:di+00243h], bl ; 26 88 9d 43 02 6756 6769 cmp word [bp-01eh], strict byte 00042h ; 83 7e e2 42 6757 jnc short 04b 45h ; 73 036758 jmp near 04c 08h ; e9 c3 006770 jnc short 04b65h ; 73 03 6771 jmp near 04c28h ; e9 c3 00 6759 6772 mov al, byte [bp-008h] ; 8a 46 f8 6760 6773 xor ah, ah ; 30 e4 … … 6776 6789 mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00 6777 6790 test al, al ; 84 c0 6778 jne short 04b 8fh ; 75 0c6791 jne short 04bafh ; 75 0c 6779 6792 mov word [es:si+024h], 05349h ; 26 c7 44 24 49 53 6780 6793 mov word [es:si+026h], 02041h ; 26 c7 44 26 41 20 … … 6785 6798 mov word [es:si+02eh], 02020h ; 26 c7 44 2e 20 20 6786 6799 test al, al ; 84 c0 6787 jne short 04b c4h ; 75 166800 jne short 04be4h ; 75 16 6788 6801 mov word [es:si+030h], dx ; 26 89 54 30 6789 6802 mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00 … … 6800 6813 xor al, al ; 30 c0 6801 6814 mov AH, strict byte 01eh ; b4 1e 6802 jmp short 04 befh ; eb 056815 jmp short 04c0fh ; eb 05 6803 6816 cmp ah, 040h ; 80 fc 40 6804 jnc short 04 bffh ; 73 106817 jnc short 04c1fh ; 73 10 6805 6818 mov bl, ah ; 88 e3 6806 6819 xor bh, bh ; 30 ff … … 6810 6823 db 0feh, 0c4h 6811 6824 ; inc ah ; fe c4 6812 jmp short 04 beah ; eb eb6825 jmp short 04c0ah ; eb eb 6813 6826 neg al ; f6 d8 6814 6827 mov es, [bp-00ah] ; 8e 46 f6 … … 6818 6831 mov dx, strict word 00074h ; ba 74 00 6819 6832 mov ax, strict word 00040h ; b8 40 00 6820 call 01660h ; e8 49 ca6833 call 01660h ; e8 29 ca 6821 6834 and byte [bp+01eh], 0feh ; 80 66 1e fe 6822 6835 lea sp, [bp-004h] ; 8d 66 fc … … 6827 6840 or bh, 006h ; 80 cf 06 6828 6841 mov word [bp+018h], bx ; 89 5e 18 6829 jmp short 04c 59h ; eb 2f6842 jmp short 04c79h ; eb 2f 6830 6843 cmp bx, strict byte 00006h ; 83 fb 06 6831 je short 04c 08h ; 74 d96844 je short 04c28h ; 74 d9 6832 6845 cmp bx, strict byte 00001h ; 83 fb 01 6833 jc short 04c 40h ; 72 0c6834 jbe short 04c 08h ; 76 d26846 jc short 04c60h ; 72 0c 6847 jbe short 04c28h ; 76 d2 6835 6848 cmp bx, strict byte 00003h ; 83 fb 03 6836 jc short 04c 40h ; 72 056849 jc short 04c60h ; 72 05 6837 6850 cmp bx, strict byte 00004h ; 83 fb 04 6838 jbe short 04c 08h ; 76 c86851 jbe short 04c28h ; 76 c8 6839 6852 mov ax, word [bp+018h] ; 8b 46 18 6840 6853 xor ah, ah ; 30 e4 … … 6845 6858 mov dx, strict word 00074h ; ba 74 00 6846 6859 mov ax, strict word 00040h ; b8 40 00 6847 call 01660h ; e8 07 ca6860 call 01660h ; e8 e7 c9 6848 6861 or byte [bp+01eh], 001h ; 80 4e 1e 01 6849 jmp short 04c 1bh ; eb bc6850 print_boot_device_: ; 0xf4c 5f LB 0x516862 jmp short 04c3bh ; eb bc 6863 print_boot_device_: ; 0xf4c7f LB 0x51 6851 6864 push bp ; 55 6852 6865 mov bp, sp ; 89 e5 6853 6866 push cx ; 51 6854 6867 test al, al ; 84 c0 6855 je short 04c 6ch ; 74 056868 je short 04c8ch ; 74 05 6856 6869 mov dx, strict word 00002h ; ba 02 00 6857 jmp short 04c 86h ; eb 1a6870 jmp short 04ca6h ; eb 1a 6858 6871 test dl, dl ; 84 d2 6859 je short 04c 75h ; 74 056872 je short 04c95h ; 74 05 6860 6873 mov dx, strict word 00003h ; ba 03 00 6861 jmp short 04c 86h ; eb 116874 jmp short 04ca6h ; eb 11 6862 6875 test bl, 080h ; f6 c3 80 6863 jne short 04c 7eh ; 75 046876 jne short 04c9eh ; 75 04 6864 6877 xor dh, dh ; 30 f6 6865 jmp short 04c 86h ; eb 086878 jmp short 04ca6h ; eb 08 6866 6879 test bl, 080h ; f6 c3 80 6867 je short 04c aah ; 74 276880 je short 04ccah ; 74 27 6868 6881 mov dx, strict word 00001h ; ba 01 00 6869 mov bx, 00da 4h ; bb a40d6882 mov bx, 00da0h ; bb a0 0d 6870 6883 mov cx, ds ; 8c d9 6871 6884 mov ax, strict word 00004h ; b8 04 00 6872 call 01933h ; e8 a2 cc6885 call 01933h ; e8 82 cc 6873 6886 mov ax, dx ; 89 d0 6874 6887 mov dx, strict word 0000ah ; ba 0a 00 6875 6888 imul dx ; f7 ea 6876 add ax, 00dc ah ; 05 ca0d6889 add ax, 00dc6h ; 05 c6 0d 6877 6890 push ax ; 50 6878 6891 mov ax, 00494h ; b8 94 04 … … 6880 6893 mov ax, strict word 00004h ; b8 04 00 6881 6894 push ax ; 50 6882 call 01976h ; e8 cf cc6895 call 01976h ; e8 af cc 6883 6896 add sp, strict byte 00006h ; 83 c4 06 6884 6897 lea sp, [bp-002h] ; 8d 66 fe … … 6886 6899 pop bp ; 5d 6887 6900 retn ; c3 6888 print_boot_failure_: ; 0xf4c b0 LB 0x9f6901 print_boot_failure_: ; 0xf4cd0 LB 0x9f 6889 6902 push bp ; 55 6890 6903 mov bp, sp ; 89 e5 … … 6896 6909 mov si, cx ; 89 ce 6897 6910 test al, al ; 84 c0 6898 je short 04 ce2h ; 74 1f6899 mov bx, 00da 4h ; bb a40d6911 je short 04d02h ; 74 1f 6912 mov bx, 00da0h ; bb a0 0d 6900 6913 mov cx, ds ; 8c d9 6901 6914 mov ax, strict word 00004h ; b8 04 00 6902 call 01933h ; e8 65 cc6903 mov cx, 00dd eh ; b9 de0d6915 call 01933h ; e8 45 cc 6916 mov cx, 00ddah ; b9 da 0d 6904 6917 push cx ; 51 6905 6918 mov cx, 004a8h ; b9 a8 04 … … 6907 6920 mov cx, strict word 00004h ; b9 04 00 6908 6921 push cx ; 51 6909 call 01976h ; e8 99 cc6922 call 01976h ; e8 79 cc 6910 6923 add sp, strict byte 00006h ; 83 c4 06 6911 jmp short 04d 2ah ; eb 486924 jmp short 04d4ah ; eb 48 6912 6925 test dl, dl ; 84 d2 6913 je short 04 cf6h ; 74 106914 mov bx, 00da 4h ; bb a40d6926 je short 04d16h ; 74 10 6927 mov bx, 00da0h ; bb a0 0d 6915 6928 mov cx, ds ; 8c d9 6916 6929 mov ax, strict word 00004h ; b8 04 00 6917 call 01933h ; e8 42 cc6918 mov cx, 00de 8h ; b9 e80d6919 jmp short 04c d1h ; eb db6930 call 01933h ; e8 22 cc 6931 mov cx, 00de4h ; b9 e4 0d 6932 jmp short 04cf1h ; eb db 6920 6933 test bl, 080h ; f6 c3 80 6921 je short 04d 0ch ; 74 116922 mov bx, 00da 4h ; bb a40d6934 je short 04d2ch ; 74 11 6935 mov bx, 00da0h ; bb a0 0d 6923 6936 mov cx, ds ; 8c d9 6924 6937 mov ax, strict word 00004h ; b8 04 00 6925 call 01933h ; e8 2d cc6938 call 01933h ; e8 0d cc 6926 6939 push si ; 56 6927 mov cx, 00dd 4h ; b9 d40d6928 jmp short 04d 1bh ; eb 0f6929 mov bx, 00da 4h ; bb a40d6940 mov cx, 00dd0h ; b9 d0 0d 6941 jmp short 04d3bh ; eb 0f 6942 mov bx, 00da0h ; bb a0 0d 6930 6943 mov cx, ds ; 8c d9 6931 6944 mov ax, strict word 00004h ; b8 04 00 6932 call 01933h ; e8 1c cc6945 call 01933h ; e8 fc cb 6933 6946 push si ; 56 6934 mov cx, 00dc ah ; b9 ca0d6947 mov cx, 00dc6h ; b9 c6 0d 6935 6948 push cx ; 51 6936 6949 mov cx, 004bdh ; b9 bd 04 … … 6938 6951 mov cx, strict word 00004h ; b9 04 00 6939 6952 push cx ; 51 6940 call 01976h ; e8 4f cc6953 call 01976h ; e8 2f cc 6941 6954 add sp, strict byte 00008h ; 83 c4 08 6942 6955 cmp byte [bp+004h], 001h ; 80 7e 04 01 6943 jne short 04d 47h ; 75 176956 jne short 04d67h ; 75 17 6944 6957 test dh, dh ; 84 f6 6945 jne short 04d 39h ; 75 056958 jne short 04d59h ; 75 05 6946 6959 mov dx, 004d5h ; ba d5 04 6947 jmp short 04d 3ch ; eb 036960 jmp short 04d5ch ; eb 03 6948 6961 mov dx, 004ffh ; ba ff 04 6949 6962 push dx ; 52 6950 6963 mov dx, strict word 00007h ; ba 07 00 6951 6964 push dx ; 52 6952 call 01976h ; e8 32 cc6965 call 01976h ; e8 12 cc 6953 6966 add sp, strict byte 00004h ; 83 c4 04 6954 6967 lea sp, [bp-002h] ; 8d 66 fe … … 6956 6969 pop bp ; 5d 6957 6970 retn 00002h ; c2 02 00 6958 print_cdromboot_failure_: ; 0xf4d 4f LB 0x2a6971 print_cdromboot_failure_: ; 0xf4d6f LB 0x2a 6959 6972 push bp ; 55 6960 6973 mov bp, sp ; 89 e5 … … 6963 6976 push dx ; 52 6964 6977 mov dx, ax ; 89 c2 6965 mov bx, 00da 4h ; bb a40d6978 mov bx, 00da0h ; bb a0 0d 6966 6979 mov cx, ds ; 8c d9 6967 6980 mov ax, strict word 00004h ; b8 04 00 6968 call 01933h ; e8 d1 cb6981 call 01933h ; e8 b1 cb 6969 6982 push dx ; 52 6970 6983 mov dx, 00534h ; ba 34 05 … … 6972 6985 mov dx, strict word 00004h ; ba 04 00 6973 6986 push dx ; 52 6974 call 01976h ; e8 08 cc6987 call 01976h ; e8 e8 cb 6975 6988 add sp, strict byte 00006h ; 83 c4 06 6976 6989 lea sp, [bp-006h] ; 8d 66 fa … … 6980 6993 pop bp ; 5d 6981 6994 retn ; c3 6982 _int19_function: ; 0xf4d 79 LB 0x28d6995 _int19_function: ; 0xf4d99 LB 0x28d 6983 6996 push bp ; 55 6984 6997 mov bp, sp ; 89 e5 … … 6988 7001 mov dx, strict word 0000eh ; ba 0e 00 6989 7002 mov ax, strict word 00040h ; b8 40 00 6990 call 0166eh ; e8 e4 c87003 call 0166eh ; e8 c4 c8 6991 7004 mov bx, ax ; 89 c3 6992 7005 mov di, ax ; 89 c7 6993 7006 mov byte [bp-00ch], 000h ; c6 46 f4 00 6994 7007 mov ax, strict word 0003dh ; b8 3d 00 6995 call 016aeh ; e8 16 c97008 call 016aeh ; e8 f6 c8 6996 7009 mov dl, al ; 88 c2 6997 7010 xor dh, dh ; 30 f6 6998 7011 mov word [bp-00eh], dx ; 89 56 f2 6999 7012 mov ax, strict word 00038h ; b8 38 00 7000 call 016aeh ; e8 09 c97013 call 016aeh ; e8 e9 c8 7001 7014 and AL, strict byte 0f0h ; 24 f0 7002 7015 mov byte [bp-010h], al ; 88 46 f0 … … 7008 7021 mov word [bp-00eh], dx ; 89 56 f2 7009 7022 mov ax, strict word 0003ch ; b8 3c 00 7010 call 016aeh ; e8 ef c87023 call 016aeh ; e8 cf c8 7011 7024 and AL, strict byte 00fh ; 24 0f 7012 7025 xor ah, ah ; 30 e4 … … 7016 7029 mov dx, 0037dh ; ba 7d 03 7017 7030 mov ax, bx ; 89 d8 7018 call 01652h ; e8 80 c87031 call 01652h ; e8 60 c8 7019 7032 test al, al ; 84 c0 7020 je short 04 de3h ; 74 0d7033 je short 04e03h ; 74 0d 7021 7034 mov dx, 0037dh ; ba 7d 03 7022 7035 mov ax, bx ; 89 d8 7023 call 01652h ; e8 74 c87036 call 01652h ; e8 54 c8 7024 7037 xor ah, ah ; 30 e4 7025 7038 mov word [bp-00eh], ax ; 89 46 f2 7026 7039 cmp byte [bp+004h], 001h ; 80 7e 04 01 7027 jne short 04 dfah ; 75 117040 jne short 04e1ah ; 75 11 7028 7041 mov ax, strict word 0003ch ; b8 3c 00 7029 call 016aeh ; e8 bf c87042 call 016aeh ; e8 9f c8 7030 7043 and AL, strict byte 0f0h ; 24 f0 7031 7044 xor ah, ah ; 30 e4 7032 7045 mov CL, strict byte 004h ; b1 04 7033 7046 sar ax, CL ; d3 f8 7034 call 07e 1dh ; e8 23 307047 call 07e3dh ; e8 23 30 7035 7048 cmp byte [bp+004h], 002h ; 80 7e 04 02 7036 jne short 04e 05h ; 75 057049 jne short 04e25h ; 75 05 7037 7050 mov CL, strict byte 004h ; b1 04 7038 7051 shr word [bp-00eh], CL ; d3 6e f2 7039 7052 cmp byte [bp+004h], 003h ; 80 7e 04 03 7040 jne short 04e 13h ; 75 087053 jne short 04e33h ; 75 08 7041 7054 mov al, byte [bp-00dh] ; 8a 46 f3 7042 7055 xor ah, ah ; 30 e4 7043 7056 mov word [bp-00eh], ax ; 89 46 f2 7044 7057 cmp byte [bp+004h], 004h ; 80 7e 04 04 7045 jne short 04e 1eh ; 75 057058 jne short 04e3eh ; 75 05 7046 7059 mov CL, strict byte 00ch ; b1 0c 7047 7060 shr word [bp-00eh], CL ; d3 6e f2 7048 7061 cmp word [bp-00eh], strict byte 00010h ; 83 7e f2 10 7049 jnc short 04e 28h ; 73 047062 jnc short 04e48h ; 73 04 7050 7063 mov byte [bp-00ch], 001h ; c6 46 f4 01 7051 7064 xor al, al ; 30 c0 … … 7053 7066 mov byte [bp-008h], al ; 88 46 f8 7054 7067 mov byte [bp-00ah], al ; 88 46 f6 7055 mov bx, 00da 4h ; bb a40d7068 mov bx, 00da0h ; bb a0 0d 7056 7069 mov cx, ds ; 8c d9 7057 7070 mov ax, strict word 00004h ; b8 04 00 7058 call 01933h ; e8 f5 ca7071 call 01933h ; e8 d5 ca 7059 7072 push word [bp-00eh] ; ff 76 f2 7060 7073 mov al, byte [bp+004h] ; 8a 46 04 … … 7065 7078 mov ax, strict word 00004h ; b8 04 00 7066 7079 push ax ; 50 7067 call 01976h ; e8 24 cb7080 call 01976h ; e8 04 cb 7068 7081 add sp, strict byte 00008h ; 83 c4 08 7069 7082 mov ax, word [bp-00eh] ; 8b 46 f2 7070 7083 and ax, strict word 0000fh ; 25 0f 00 7071 7084 cmp ax, strict word 00002h ; 3d 02 00 7072 jc short 04e 6eh ; 72 0e7073 jbe short 04e 7dh ; 76 1b7085 jc short 04e8eh ; 72 0e 7086 jbe short 04e9dh ; 76 1b 7074 7087 cmp ax, strict word 00004h ; 3d 04 00 7075 je short 04e 9ah ; 74 337088 je short 04ebah ; 74 33 7076 7089 cmp ax, strict word 00003h ; 3d 03 00 7077 je short 04e 90h ; 74 247078 jmp short 04e c9h ; eb 5b7090 je short 04eb0h ; 74 24 7091 jmp short 04ee9h ; eb 5b 7079 7092 cmp ax, strict word 00001h ; 3d 01 00 7080 jne short 04e c9h ; 75 567093 jne short 04ee9h ; 75 56 7081 7094 xor al, al ; 30 c0 7082 7095 mov byte [bp-006h], al ; 88 46 fa 7083 7096 mov byte [bp-008h], al ; 88 46 f8 7084 jmp short 04e ddh ; eb 607097 jmp short 04efdh ; eb 60 7085 7098 mov dx, 0037ch ; ba 7c 03 7086 7099 mov ax, di ; 89 f8 7087 call 01652h ; e8 cd c77100 call 01652h ; e8 ad c7 7088 7101 add AL, strict byte 080h ; 04 80 7089 7102 mov byte [bp-006h], al ; 88 46 fa 7090 7103 mov byte [bp-008h], 000h ; c6 46 f8 00 7091 jmp short 04e ddh ; eb 4d7104 jmp short 04efdh ; eb 4d 7092 7105 mov byte [bp-006h], 000h ; c6 46 fa 00 7093 7106 mov byte [bp-008h], 001h ; c6 46 f8 01 7094 jmp short 04e a4h ; eb 0a7107 jmp short 04ec4h ; eb 0a 7095 7108 mov byte [bp-00ah], 001h ; c6 46 f6 01 7096 7109 cmp byte [bp-008h], 000h ; 80 7e f8 00 7097 je short 04e ddh ; 74 397098 call 03e 49h ; e8 a2 ef7110 je short 04efdh ; 74 39 7111 call 03e69h ; e8 a2 ef 7099 7112 mov bx, ax ; 89 c3 7100 7113 test AL, strict byte 0ffh ; a8 ff 7101 je short 04e d0h ; 74 237102 call 04d 4fh ; e8 9f fe7114 je short 04ef0h ; 74 23 7115 call 04d6fh ; e8 9f fe 7103 7116 mov al, byte [bp-00ch] ; 8a 46 f4 7104 7117 xor ah, ah ; 30 e4 … … 7110 7123 mov al, byte [bp-008h] ; 8a 46 f8 7111 7124 mov cx, strict word 00001h ; b9 01 00 7112 call 04c b0h ; e8 e7 fd7125 call 04cd0h ; e8 e7 fd 7113 7126 xor ax, ax ; 31 c0 7114 7127 xor dx, dx ; 31 d2 7115 jmp near 0 4fffh ; e9 2f 017128 jmp near 0501fh ; e9 2f 01 7116 7129 mov dx, 00372h ; ba 72 03 7117 7130 mov ax, di ; 89 f8 7118 call 0166eh ; e8 96 c77131 call 0166eh ; e8 76 c7 7119 7132 mov si, ax ; 89 c6 7120 7133 mov byte [bp-006h], bh ; 88 7e fa 7121 7134 cmp byte [bp-00ah], 001h ; 80 7e f6 01 7122 jne short 04f 38h ; 75 557135 jne short 04f58h ; 75 55 7123 7136 xor si, si ; 31 f6 7124 7137 mov ax, 0e200h ; b8 00 e2 7125 7138 mov es, ax ; 8e c0 7126 7139 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 7127 jne short 04e b0h ; 75 bf7140 jne short 04ed0h ; 75 bf 7128 7141 mov cx, ax ; 89 c1 7129 7142 mov si, word [es:si+01ah] ; 26 8b 74 1a 7130 7143 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 7131 jne short 04e b0h ; 75 b17144 jne short 04ed0h ; 75 b1 7132 7145 cmp word [es:si], 05024h ; 26 81 3c 24 50 7133 jne short 04e b0h ; 75 aa7146 jne short 04ed0h ; 75 aa 7134 7147 mov bx, word [es:si+00eh] ; 26 8b 5c 0e 7135 7148 mov dx, word [es:bx] ; 26 8b 17 7136 7149 mov ax, word [es:bx+002h] ; 26 8b 47 02 7137 7150 cmp ax, 06568h ; 3d 68 65 7138 jne short 04f 3ah ; 75 247151 jne short 04f5ah ; 75 24 7139 7152 cmp dx, 07445h ; 81 fa 45 74 7140 jne short 04f 3ah ; 75 1e7153 jne short 04f5ah ; 75 1e 7141 7154 mov bl, byte [bp-006h] ; 8a 5e fa 7142 7155 xor bh, bh ; 30 ff … … 7145 7158 mov al, byte [bp-008h] ; 8a 46 f8 7146 7159 xor ah, ah ; 30 e4 7147 call 04c 5fh ; e8 31 fd7160 call 04c7fh ; e8 31 fd 7148 7161 mov word [bp-014h], strict word 00006h ; c7 46 ec 06 00 7149 7162 mov word [bp-012h], cx ; 89 4e ee 7150 jmp short 04f 59h ; eb 217151 jmp short 04f 5fh ; eb 257163 jmp short 04f79h ; eb 21 7164 jmp short 04f7fh ; eb 25 7152 7165 mov bl, byte [bp-006h] ; 8a 5e fa 7153 7166 xor bh, bh ; 30 ff … … 7156 7169 mov al, byte [bp-008h] ; 8a 46 f8 7157 7170 xor ah, ah ; 30 e4 7158 call 04c 5fh ; e8 13 fd7171 call 04c7fh ; e8 13 fd 7159 7172 sti ; fb 7160 7173 mov word [bp-012h], cx ; 89 4e ee … … 7163 7176 mov word [bp-014h], ax ; 89 46 ec 7164 7177 call far [bp-014h] ; ff 5e ec 7165 jmp near 04e b0h ; e9 51 ff7178 jmp near 04ed0h ; e9 51 ff 7166 7179 cmp byte [bp-008h], 000h ; 80 7e f8 00 7167 jne short 04f 8ch ; 75 277180 jne short 04fach ; 75 27 7168 7181 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7169 jne short 04f 8ch ; 75 217182 jne short 04fach ; 75 21 7170 7183 mov si, 007c0h ; be c0 07 7171 7184 mov es, si ; 8e c6 … … 7180 7193 sbb ax, strict byte 00000h ; 83 d8 00 7181 7194 test ax, ax ; 85 c0 7182 je short 04f 8ch ; 74 037183 jmp near 04e b0h ; e9 24 ff7195 je short 04fach ; 74 03 7196 jmp near 04ed0h ; e9 24 ff 7184 7197 cmp byte [bp-006h], 000h ; 80 7e fa 00 7185 je short 04f 96h ; 74 047198 je short 04fb6h ; 74 04 7186 7199 xor bl, bl ; 30 db 7187 jmp short 04f 98h ; eb 027200 jmp short 04fb8h ; eb 02 7188 7201 mov BL, strict byte 001h ; b3 01 7189 7202 cmp byte [bp-008h], 000h ; 80 7e f8 00 7190 je short 04f a0h ; 74 027203 je short 04fc0h ; 74 02 7191 7204 mov BL, strict byte 001h ; b3 01 7192 7205 xor dx, dx ; 31 d2 7193 7206 mov ax, si ; 89 f0 7194 call 0166eh ; e8 c7 c67207 call 0166eh ; e8 a7 c6 7195 7208 mov di, ax ; 89 c7 7196 7209 mov dx, strict word 00002h ; ba 02 00 7197 7210 mov ax, si ; 89 f0 7198 call 0166eh ; e8 bd c67211 call 0166eh ; e8 9d c6 7199 7212 cmp di, ax ; 39 c7 7200 je short 04f c6h ; 74 117213 je short 04fe6h ; 74 11 7201 7214 test bl, bl ; 84 db 7202 jne short 04f deh ; 75 257215 jne short 04ffeh ; 75 25 7203 7216 mov dx, 001feh ; ba fe 01 7204 7217 mov ax, si ; 89 f0 7205 call 0166eh ; e8 ad c67218 call 0166eh ; e8 8d c6 7206 7219 cmp ax, 0aa55h ; 3d 55 aa 7207 je short 04f deh ; 74 187220 je short 04ffeh ; 74 18 7208 7221 mov al, byte [bp-00ch] ; 8a 46 f4 7209 7222 xor ah, ah ; 30 e4 … … 7215 7228 mov al, byte [bp-008h] ; 8a 46 f8 7216 7229 xor cx, cx ; 31 c9 7217 jmp near 04e c6h ; e9 e8 fe7230 jmp near 04ee6h ; e9 e8 fe 7218 7231 mov bl, byte [bp-006h] ; 8a 5e fa 7219 7232 xor bh, bh ; 30 ff … … 7222 7235 mov al, byte [bp-008h] ; 8a 46 f8 7223 7236 xor ah, ah ; 30 e4 7224 call 04c 5fh ; e8 6f fc7237 call 04c7fh ; e8 6f fc 7225 7238 mov al, byte [bp-006h] ; 8a 46 fa 7226 7239 xor ah, ah ; 30 e4 … … 7235 7248 pop bp ; 5d 7236 7249 retn ; c3 7237 keyboard_panic_: ; 0xf50 06 LB 0x167250 keyboard_panic_: ; 0xf5026 LB 0x16 7238 7251 push bp ; 55 7239 7252 mov bp, sp ; 89 e5 … … 7243 7256 mov ax, strict word 00007h ; b8 07 00 7244 7257 push ax ; 50 7245 call 01976h ; e8 61 c97258 call 01976h ; e8 41 c9 7246 7259 add sp, strict byte 00006h ; 83 c4 06 7247 7260 mov sp, bp ; 89 ec 7248 7261 pop bp ; 5d 7249 7262 retn ; c3 7250 _keyboard_init: ; 0xf50 1c LB 0x26a7263 _keyboard_init: ; 0xf503c LB 0x26a 7251 7264 push bp ; 55 7252 7265 mov bp, sp ; 89 e5 … … 7260 7273 ; sub ah, ah ; 2a e4 7261 7274 test AL, strict byte 002h ; a8 02 7262 je short 050 3fh ; 74 0d7275 je short 0505fh ; 74 0d 7263 7276 dec bx ; 4b 7264 7277 test bx, bx ; 85 db 7265 jbe short 050 3fh ; 76 087278 jbe short 0505fh ; 76 08 7266 7279 xor al, al ; 30 c0 7267 7280 mov dx, 00080h ; ba 80 00 7268 7281 out DX, AL ; ee 7269 jmp short 050 28h ; eb e97282 jmp short 05048h ; eb e9 7270 7283 test bx, bx ; 85 db 7271 jne short 050 48h ; 75 057284 jne short 05068h ; 75 05 7272 7285 xor ax, ax ; 31 c0 7273 call 050 06h ; e8 be ff7286 call 05026h ; e8 be ff 7274 7287 mov bx, strict word 0ffffh ; bb ff ff 7275 7288 mov dx, strict word 00064h ; ba 64 00 … … 7278 7291 ; sub ah, ah ; 2a e4 7279 7292 test AL, strict byte 001h ; a8 01 7280 jne short 050 62h ; 75 0d7293 jne short 05082h ; 75 0d 7281 7294 dec bx ; 4b 7282 7295 test bx, bx ; 85 db 7283 jbe short 050 62h ; 76 087296 jbe short 05082h ; 76 08 7284 7297 mov AL, strict byte 001h ; b0 01 7285 7298 mov dx, 00080h ; ba 80 00 7286 7299 out DX, AL ; ee 7287 jmp short 050 4bh ; eb e97300 jmp short 0506bh ; eb e9 7288 7301 test bx, bx ; 85 db 7289 jne short 050 6ch ; 75 067302 jne short 0508ch ; 75 06 7290 7303 mov ax, strict word 00001h ; b8 01 00 7291 call 050 06h ; e8 9a ff7304 call 05026h ; e8 9a ff 7292 7305 mov dx, strict word 00060h ; ba 60 00 7293 7306 in AL, DX ; ec … … 7295 7308 ; sub ah, ah ; 2a e4 7296 7309 cmp ax, strict word 00055h ; 3d 55 00 7297 je short 050 7dh ; 74 067310 je short 0509dh ; 74 06 7298 7311 mov ax, 003dfh ; b8 df 03 7299 call 050 06h ; e8 89 ff7312 call 05026h ; e8 89 ff 7300 7313 mov AL, strict byte 0abh ; b0 ab 7301 7314 mov dx, strict word 00064h ; ba 64 00 … … 7307 7320 ; sub ah, ah ; 2a e4 7308 7321 test AL, strict byte 002h ; a8 02 7309 je short 050 9dh ; 74 0d7322 je short 050bdh ; 74 0d 7310 7323 dec bx ; 4b 7311 7324 test bx, bx ; 85 db 7312 jbe short 050 9dh ; 76 087325 jbe short 050bdh ; 76 08 7313 7326 mov AL, strict byte 010h ; b0 10 7314 7327 mov dx, 00080h ; ba 80 00 7315 7328 out DX, AL ; ee 7316 jmp short 050 86h ; eb e97329 jmp short 050a6h ; eb e9 7317 7330 test bx, bx ; 85 db 7318 jne short 050 a7h ; 75 067331 jne short 050c7h ; 75 06 7319 7332 mov ax, strict word 0000ah ; b8 0a 00 7320 call 050 06h ; e8 5f ff7333 call 05026h ; e8 5f ff 7321 7334 mov bx, strict word 0ffffh ; bb ff ff 7322 7335 mov dx, strict word 00064h ; ba 64 00 … … 7325 7338 ; sub ah, ah ; 2a e4 7326 7339 test AL, strict byte 001h ; a8 01 7327 jne short 050 c1h ; 75 0d7340 jne short 050e1h ; 75 0d 7328 7341 dec bx ; 4b 7329 7342 test bx, bx ; 85 db 7330 jbe short 050 c1h ; 76 087343 jbe short 050e1h ; 76 08 7331 7344 mov AL, strict byte 011h ; b0 11 7332 7345 mov dx, 00080h ; ba 80 00 7333 7346 out DX, AL ; ee 7334 jmp short 050 aah ; eb e97347 jmp short 050cah ; eb e9 7335 7348 test bx, bx ; 85 db 7336 jne short 050 cbh ; 75 067349 jne short 050ebh ; 75 06 7337 7350 mov ax, strict word 0000bh ; b8 0b 00 7338 call 050 06h ; e8 3b ff7351 call 05026h ; e8 3b ff 7339 7352 mov dx, strict word 00060h ; ba 60 00 7340 7353 in AL, DX ; ec … … 7342 7355 ; sub ah, ah ; 2a e4 7343 7356 test ax, ax ; 85 c0 7344 je short 050 dbh ; 74 067357 je short 050fbh ; 74 06 7345 7358 mov ax, 003e0h ; b8 e0 03 7346 call 050 06h ; e8 2b ff7359 call 05026h ; e8 2b ff 7347 7360 mov AL, strict byte 0ffh ; b0 ff 7348 7361 mov dx, strict word 00060h ; ba 60 00 … … 7354 7367 ; sub ah, ah ; 2a e4 7355 7368 test AL, strict byte 002h ; a8 02 7356 je short 05 0fbh ; 74 0d7369 je short 0511bh ; 74 0d 7357 7370 dec bx ; 4b 7358 7371 test bx, bx ; 85 db 7359 jbe short 05 0fbh ; 76 087372 jbe short 0511bh ; 76 08 7360 7373 mov AL, strict byte 020h ; b0 20 7361 7374 mov dx, 00080h ; ba 80 00 7362 7375 out DX, AL ; ee 7363 jmp short 05 0e4h ; eb e97376 jmp short 05104h ; eb e9 7364 7377 test bx, bx ; 85 db 7365 jne short 051 05h ; 75 067378 jne short 05125h ; 75 06 7366 7379 mov ax, strict word 00014h ; b8 14 00 7367 call 050 06h ; e8 01 ff7380 call 05026h ; e8 01 ff 7368 7381 mov bx, strict word 0ffffh ; bb ff ff 7369 7382 mov dx, strict word 00064h ; ba 64 00 … … 7372 7385 ; sub ah, ah ; 2a e4 7373 7386 test AL, strict byte 001h ; a8 01 7374 jne short 051 1fh ; 75 0d7387 jne short 0513fh ; 75 0d 7375 7388 dec bx ; 4b 7376 7389 test bx, bx ; 85 db 7377 jbe short 051 1fh ; 76 087390 jbe short 0513fh ; 76 08 7378 7391 mov AL, strict byte 021h ; b0 21 7379 7392 mov dx, 00080h ; ba 80 00 7380 7393 out DX, AL ; ee 7381 jmp short 051 08h ; eb e97394 jmp short 05128h ; eb e9 7382 7395 test bx, bx ; 85 db 7383 jne short 051 29h ; 75 067396 jne short 05149h ; 75 06 7384 7397 mov ax, strict word 00015h ; b8 15 00 7385 call 050 06h ; e8 dd fe7398 call 05026h ; e8 dd fe 7386 7399 mov dx, strict word 00060h ; ba 60 00 7387 7400 in AL, DX ; ec … … 7389 7402 ; sub ah, ah ; 2a e4 7390 7403 cmp ax, 000fah ; 3d fa 00 7391 je short 051 3ah ; 74 067404 je short 0515ah ; 74 06 7392 7405 mov ax, 003e1h ; b8 e1 03 7393 call 050 06h ; e8 cc fe7406 call 05026h ; e8 cc fe 7394 7407 mov dx, strict word 00064h ; ba 64 00 7395 7408 in AL, DX ; ec … … 7397 7410 ; sub ah, ah ; 2a e4 7398 7411 test AL, strict byte 001h ; a8 01 7399 jne short 051 4ch ; 75 087412 jne short 0516ch ; 75 08 7400 7413 mov AL, strict byte 031h ; b0 31 7401 7414 mov dx, 00080h ; ba 80 00 7402 7415 out DX, AL ; ee 7403 jmp short 051 3ah ; eb ee7416 jmp short 0515ah ; eb ee 7404 7417 mov dx, strict word 00060h ; ba 60 00 7405 7418 in AL, DX ; ec … … 7407 7420 ; sub ah, ah ; 2a e4 7408 7421 cmp ax, 000aah ; 3d aa 00 7409 je short 051 65h ; 74 0e7422 je short 05185h ; 74 0e 7410 7423 in AL, DX ; ec 7411 7424 db 02ah, 0e4h 7412 7425 ; sub ah, ah ; 2a e4 7413 7426 cmp ax, 000aah ; 3d aa 00 7414 je short 051 65h ; 74 067427 je short 05185h ; 74 06 7415 7428 mov ax, 003e2h ; b8 e2 03 7416 call 050 06h ; e8 a1 fe7429 call 05026h ; e8 a1 fe 7417 7430 mov AL, strict byte 0f5h ; b0 f5 7418 7431 mov dx, strict word 00060h ; ba 60 00 … … 7424 7437 ; sub ah, ah ; 2a e4 7425 7438 test AL, strict byte 002h ; a8 02 7426 je short 051 85h ; 74 0d7439 je short 051a5h ; 74 0d 7427 7440 dec bx ; 4b 7428 7441 test bx, bx ; 85 db 7429 jbe short 051 85h ; 76 087442 jbe short 051a5h ; 76 08 7430 7443 mov AL, strict byte 040h ; b0 40 7431 7444 mov dx, 00080h ; ba 80 00 7432 7445 out DX, AL ; ee 7433 jmp short 051 6eh ; eb e97446 jmp short 0518eh ; eb e9 7434 7447 test bx, bx ; 85 db 7435 jne short 051 8fh ; 75 067448 jne short 051afh ; 75 06 7436 7449 mov ax, strict word 00028h ; b8 28 00 7437 call 050 06h ; e8 77 fe7450 call 05026h ; e8 77 fe 7438 7451 mov bx, strict word 0ffffh ; bb ff ff 7439 7452 mov dx, strict word 00064h ; ba 64 00 … … 7442 7455 ; sub ah, ah ; 2a e4 7443 7456 test AL, strict byte 001h ; a8 01 7444 jne short 051 a9h ; 75 0d7457 jne short 051c9h ; 75 0d 7445 7458 dec bx ; 4b 7446 7459 test bx, bx ; 85 db 7447 jbe short 051 a9h ; 76 087460 jbe short 051c9h ; 76 08 7448 7461 mov AL, strict byte 041h ; b0 41 7449 7462 mov dx, 00080h ; ba 80 00 7450 7463 out DX, AL ; ee 7451 jmp short 051 92h ; eb e97464 jmp short 051b2h ; eb e9 7452 7465 test bx, bx ; 85 db 7453 jne short 051 b3h ; 75 067466 jne short 051d3h ; 75 06 7454 7467 mov ax, strict word 00029h ; b8 29 00 7455 call 050 06h ; e8 53 fe7468 call 05026h ; e8 53 fe 7456 7469 mov dx, strict word 00060h ; ba 60 00 7457 7470 in AL, DX ; ec … … 7459 7472 ; sub ah, ah ; 2a e4 7460 7473 cmp ax, 000fah ; 3d fa 00 7461 je short 051 c4h ; 74 067474 je short 051e4h ; 74 06 7462 7475 mov ax, 003e3h ; b8 e3 03 7463 call 050 06h ; e8 42 fe7476 call 05026h ; e8 42 fe 7464 7477 mov AL, strict byte 060h ; b0 60 7465 7478 mov dx, strict word 00064h ; ba 64 00 … … 7471 7484 ; sub ah, ah ; 2a e4 7472 7485 test AL, strict byte 002h ; a8 02 7473 je short 05 1e4h ; 74 0d7486 je short 05204h ; 74 0d 7474 7487 dec bx ; 4b 7475 7488 test bx, bx ; 85 db 7476 jbe short 05 1e4h ; 76 087489 jbe short 05204h ; 76 08 7477 7490 mov AL, strict byte 050h ; b0 50 7478 7491 mov dx, 00080h ; ba 80 00 7479 7492 out DX, AL ; ee 7480 jmp short 051 cdh ; eb e97493 jmp short 051edh ; eb e9 7481 7494 test bx, bx ; 85 db 7482 jne short 05 1eeh ; 75 067495 jne short 0520eh ; 75 06 7483 7496 mov ax, strict word 00032h ; b8 32 00 7484 call 050 06h ; e8 18 fe7497 call 05026h ; e8 18 fe 7485 7498 mov AL, strict byte 065h ; b0 65 7486 7499 mov dx, strict word 00060h ; ba 60 00 … … 7492 7505 ; sub ah, ah ; 2a e4 7493 7506 test AL, strict byte 002h ; a8 02 7494 je short 052 0eh ; 74 0d7507 je short 0522eh ; 74 0d 7495 7508 dec bx ; 4b 7496 7509 test bx, bx ; 85 db 7497 jbe short 052 0eh ; 76 087510 jbe short 0522eh ; 76 08 7498 7511 mov AL, strict byte 060h ; b0 60 7499 7512 mov dx, 00080h ; ba 80 00 7500 7513 out DX, AL ; ee 7501 jmp short 05 1f7h ; eb e97514 jmp short 05217h ; eb e9 7502 7515 test bx, bx ; 85 db 7503 jne short 052 18h ; 75 067516 jne short 05238h ; 75 06 7504 7517 mov ax, strict word 0003ch ; b8 3c 00 7505 call 050 06h ; e8 ee fd7518 call 05026h ; e8 ee fd 7506 7519 mov AL, strict byte 0f4h ; b0 f4 7507 7520 mov dx, strict word 00060h ; ba 60 00 … … 7513 7526 ; sub ah, ah ; 2a e4 7514 7527 test AL, strict byte 002h ; a8 02 7515 je short 052 38h ; 74 0d7528 je short 05258h ; 74 0d 7516 7529 dec bx ; 4b 7517 7530 test bx, bx ; 85 db 7518 jbe short 052 38h ; 76 087531 jbe short 05258h ; 76 08 7519 7532 mov AL, strict byte 070h ; b0 70 7520 7533 mov dx, 00080h ; ba 80 00 7521 7534 out DX, AL ; ee 7522 jmp short 052 21h ; eb e97535 jmp short 05241h ; eb e9 7523 7536 test bx, bx ; 85 db 7524 jne short 052 42h ; 75 067537 jne short 05262h ; 75 06 7525 7538 mov ax, strict word 00046h ; b8 46 00 7526 call 050 06h ; e8 c4 fd7539 call 05026h ; e8 c4 fd 7527 7540 mov bx, strict word 0ffffh ; bb ff ff 7528 7541 mov dx, strict word 00064h ; ba 64 00 … … 7531 7544 ; sub ah, ah ; 2a e4 7532 7545 test AL, strict byte 001h ; a8 01 7533 jne short 052 5ch ; 75 0d7546 jne short 0527ch ; 75 0d 7534 7547 dec bx ; 4b 7535 7548 test bx, bx ; 85 db 7536 jbe short 052 5ch ; 76 087549 jbe short 0527ch ; 76 08 7537 7550 mov AL, strict byte 071h ; b0 71 7538 7551 mov dx, 00080h ; ba 80 00 7539 7552 out DX, AL ; ee 7540 jmp short 052 45h ; eb e97553 jmp short 05265h ; eb e9 7541 7554 test bx, bx ; 85 db 7542 jne short 052 66h ; 75 067555 jne short 05286h ; 75 06 7543 7556 mov ax, strict word 00046h ; b8 46 00 7544 call 050 06h ; e8 a0 fd7557 call 05026h ; e8 a0 fd 7545 7558 mov dx, strict word 00060h ; ba 60 00 7546 7559 in AL, DX ; ec … … 7548 7561 ; sub ah, ah ; 2a e4 7549 7562 cmp ax, 000fah ; 3d fa 00 7550 je short 052 77h ; 74 067563 je short 05297h ; 74 06 7551 7564 mov ax, 003e4h ; b8 e4 03 7552 call 050 06h ; e8 8f fd7565 call 05026h ; e8 8f fd 7553 7566 mov AL, strict byte 0a8h ; b0 a8 7554 7567 mov dx, strict word 00064h ; ba 64 00 7555 7568 out DX, AL ; ee 7556 7569 xor ax, ax ; 31 c0 7557 call 067 7eh ; e8 fc 147570 call 0679eh ; e8 fc 14 7558 7571 mov sp, bp ; 89 ec 7559 7572 pop bp ; 5d 7560 7573 retn ; c3 7561 enqueue_key_: ; 0xf52 86 LB 0x9e7574 enqueue_key_: ; 0xf52a6 LB 0x9e 7562 7575 push bp ; 55 7563 7576 mov bp, sp ; 89 e5 … … 7571 7584 mov dx, strict word 0001ah ; ba 1a 00 7572 7585 mov ax, strict word 00040h ; b8 40 00 7573 call 0166eh ; e8 d2 c37586 call 0166eh ; e8 b2 c3 7574 7587 mov di, ax ; 89 c7 7575 7588 mov dx, strict word 0001ch ; ba 1c 00 7576 7589 mov ax, strict word 00040h ; b8 40 00 7577 call 0166eh ; e8 c7 c37590 call 0166eh ; e8 a7 c3 7578 7591 mov si, ax ; 89 c6 7579 7592 lea cx, [si+002h] ; 8d 4c 02 7580 7593 cmp cx, strict byte 0003eh ; 83 f9 3e 7581 jc short 052 b4h ; 72 037594 jc short 052d4h ; 72 03 7582 7595 mov cx, strict word 0001eh ; b9 1e 00 7583 7596 cmp cx, di ; 39 f9 7584 jne short 052 bch ; 75 047597 jne short 052dch ; 75 04 7585 7598 xor ax, ax ; 31 c0 7586 jmp short 05 2e6h ; eb 2a7599 jmp short 05306h ; eb 2a 7587 7600 mov al, bl ; 88 d8 7588 7601 xor ah, ah ; 30 e4 … … 7590 7603 mov dx, si ; 89 f2 7591 7604 mov ax, strict word 00040h ; b8 40 00 7592 call 01660h ; e8 96 c37605 call 01660h ; e8 76 c3 7593 7606 mov bl, byte [bp-00ah] ; 8a 5e f6 7594 7607 xor bh, bh ; 30 ff 7595 7608 lea dx, [si+001h] ; 8d 54 01 7596 7609 mov ax, strict word 00040h ; b8 40 00 7597 call 01660h ; e8 88 c37610 call 01660h ; e8 68 c3 7598 7611 mov bx, cx ; 89 cb 7599 7612 mov dx, strict word 0001ch ; ba 1c 00 7600 7613 mov ax, strict word 00040h ; b8 40 00 7601 call 0167ch ; e8 99 c37614 call 0167ch ; e8 79 c3 7602 7615 mov ax, strict word 00001h ; b8 01 00 7603 7616 lea sp, [bp-008h] ; 8d 66 f8 … … 7609 7622 retn ; c3 7610 7623 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7611 db 01dh, 0 6ah, 056h, 025h, 054h, 0c5h, 053h, 0c5h, 053h, 0b4h, 054h, 096h, 053h, 038h, 055h, 0a9h7612 db 055h, 0 50h, 056h, 02eh, 056h, 06ch, 054h, 0c5h, 053h, 0c5h, 053h, 0f6h, 054h, 0b6h, 053h, 089h7613 db 055h, 0 0eh, 056h, 049h, 056h7614 _int09_function: ; 0xf53 24 LB 0x4cd7624 db 01dh, 08ah, 056h, 045h, 054h, 0e5h, 053h, 0e5h, 053h, 0d4h, 054h, 0b6h, 053h, 058h, 055h, 0c9h 7625 db 055h, 070h, 056h, 04eh, 056h, 08ch, 054h, 0e5h, 053h, 0e5h, 053h, 016h, 055h, 0d6h, 053h, 0a9h 7626 db 055h, 02eh, 056h, 069h, 056h 7627 _int09_function: ; 0xf5344 LB 0x4cd 7615 7628 push bp ; 55 7616 7629 mov bp, sp ; 89 e5 … … 7620 7633 mov byte [bp-004h], al ; 88 46 fc 7621 7634 test al, al ; 84 c0 7622 jne short 053 51h ; 75 1c7623 mov bx, 00da 4h ; bb a40d7635 jne short 05371h ; 75 1c 7636 mov bx, 00da0h ; bb a0 0d 7624 7637 mov cx, ds ; 8c d9 7625 7638 mov ax, strict word 00004h ; b8 04 00 7626 call 01933h ; e8 f3 c57639 call 01933h ; e8 d3 c5 7627 7640 mov ax, 00587h ; b8 87 05 7628 7641 push ax ; 50 7629 7642 mov ax, strict word 00004h ; b8 04 00 7630 7643 push ax ; 50 7631 call 01976h ; e8 2b c67644 call 01976h ; e8 0b c6 7632 7645 add sp, strict byte 00004h ; 83 c4 04 7633 jmp near 054 1fh ; e9 ce 007646 jmp near 0543fh ; e9 ce 00 7634 7647 mov dx, strict word 00018h ; ba 18 00 7635 7648 mov ax, strict word 00040h ; b8 40 00 7636 call 01652h ; e8 f8 c27649 call 01652h ; e8 d8 c2 7637 7650 mov byte [bp-006h], al ; 88 46 fa 7638 7651 mov byte [bp-008h], al ; 88 46 f8 7639 7652 mov dx, 00096h ; ba 96 00 7640 7653 mov ax, strict word 00040h ; b8 40 00 7641 call 01652h ; e8 e9 c27654 call 01652h ; e8 c9 c2 7642 7655 mov byte [bp-00ah], al ; 88 46 f6 7643 7656 mov byte [bp-010h], al ; 88 46 f0 7644 7657 mov dx, strict word 00017h ; ba 17 00 7645 7658 mov ax, strict word 00040h ; b8 40 00 7646 call 01652h ; e8 da c27659 call 01652h ; e8 ba c2 7647 7660 mov byte [bp-00ch], al ; 88 46 f4 7648 7661 mov byte [bp-00eh], al ; 88 46 f2 … … 7651 7664 pop ES ; 07 7652 7665 mov cx, strict word 00012h ; b9 12 00 7653 mov di, 05 2efh ; bf ef 527666 mov di, 0530fh ; bf 0f 53 7654 7667 repne scasb ; f2 ae 7655 7668 sal cx, 1 ; d1 e1 7656 7669 mov di, cx ; 89 cf 7657 mov ax, word [cs:di+053 00h] ; 2e 8b 85 00 537670 mov ax, word [cs:di+05320h] ; 2e 8b 85 20 53 7658 7671 jmp ax ; ff e0 7659 7672 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7662 7675 mov dx, strict word 00017h ; ba 17 00 7663 7676 mov ax, strict word 00040h ; b8 40 00 7664 call 01660h ; e8 b8 c27677 call 01660h ; e8 98 c2 7665 7678 or byte [bp-008h], 040h ; 80 4e f8 40 7666 7679 mov al, byte [bp-008h] ; 8a 46 f8 7667 7680 xor ah, ah ; 30 e4 7668 7681 mov bx, ax ; 89 c3 7669 jmp near 056 3eh ; e9 88 027682 jmp near 0565eh ; e9 88 02 7670 7683 mov al, byte [bp-006h] ; 8a 46 fa 7671 7684 and AL, strict byte 0bfh ; 24 bf … … 7673 7686 mov bl, al ; 88 c3 7674 7687 xor bh, bh ; 30 ff 7675 jmp near 056 3eh ; e9 79 027688 jmp near 0565eh ; e9 79 02 7676 7689 test byte [bp-010h], 002h ; f6 46 f0 02 7677 jne short 05 3feh ; 75 337690 jne short 0541eh ; 75 33 7678 7691 mov al, byte [bp-004h] ; 8a 46 fc 7679 7692 and AL, strict byte 07fh ; 24 7f 7680 7693 cmp AL, strict byte 02ah ; 3c 2a 7681 jne short 053 d9h ; 75 057694 jne short 053f9h ; 75 05 7682 7695 mov bx, strict word 00002h ; bb 02 00 7683 jmp short 053 dch ; eb 037696 jmp short 053fch ; eb 03 7684 7697 mov bx, strict word 00001h ; bb 01 00 7685 7698 test byte [bp-004h], 080h ; f6 46 fc 80 7686 je short 05 3ebh ; 74 097699 je short 0540bh ; 74 09 7687 7700 mov al, bl ; 88 d8 7688 7701 not al ; f6 d0 7689 7702 and byte [bp-00eh], al ; 20 46 f2 7690 jmp short 05 3eeh ; eb 037703 jmp short 0540eh ; eb 03 7691 7704 or byte [bp-00eh], bl ; 08 5e f2 7692 7705 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7695 7708 mov dx, strict word 00017h ; ba 17 00 7696 7709 mov ax, strict word 00040h ; b8 40 00 7697 call 01660h ; e8 62 c27710 call 01660h ; e8 42 c2 7698 7711 mov al, byte [bp-004h] ; 8a 46 fc 7699 7712 and AL, strict byte 07fh ; 24 7f 7700 7713 cmp AL, strict byte 01dh ; 3c 1d 7701 je short 054 0bh ; 74 047714 je short 0542bh ; 74 04 7702 7715 and byte [bp-010h], 0feh ; 80 66 f0 fe 7703 7716 and byte [bp-010h], 0fdh ; 80 66 f0 fd … … 7707 7720 mov dx, 00096h ; ba 96 00 7708 7721 mov ax, strict word 00040h ; b8 40 00 7709 call 01660h ; e8 41 c27722 call 01660h ; e8 21 c2 7710 7723 lea sp, [bp-002h] ; 8d 66 fe 7711 7724 pop di ; 5f … … 7713 7726 retn ; c3 7714 7727 test byte [bp-00ah], 001h ; f6 46 f6 01 7715 jne short 05 3feh ; 75 d37728 jne short 0541eh ; 75 d3 7716 7729 mov al, byte [bp-00ch] ; 8a 46 f4 7717 7730 or AL, strict byte 004h ; 0c 04 … … 7721 7734 mov dx, strict word 00017h ; ba 17 00 7722 7735 mov ax, strict word 00040h ; b8 40 00 7723 call 01660h ; e8 20 c27736 call 01660h ; e8 00 c2 7724 7737 mov al, byte [bp-00ah] ; 8a 46 f6 7725 7738 test AL, strict byte 002h ; a8 02 7726 je short 054 55h ; 74 0e7739 je short 05475h ; 74 0e 7727 7740 or AL, strict byte 004h ; 0c 04 7728 7741 mov byte [bp-010h], al ; 88 46 f0 … … 7730 7743 mov bx, ax ; 89 c3 7731 7744 mov dx, 00096h ; ba 96 00 7732 jmp short 054 64h ; eb 0f7745 jmp short 05484h ; eb 0f 7733 7746 mov al, byte [bp-006h] ; 8a 46 fa 7734 7747 or AL, strict byte 001h ; 0c 01 … … 7738 7751 mov dx, strict word 00018h ; ba 18 00 7739 7752 mov ax, strict word 00040h ; b8 40 00 7740 call 01660h ; e8 f6 c17741 jmp short 05 3feh ; eb 927753 call 01660h ; e8 d6 c1 7754 jmp short 0541eh ; eb 92 7742 7755 test byte [bp-00ah], 001h ; f6 46 f6 01 7743 jne short 05 3feh ; 75 8c7756 jne short 0541eh ; 75 8c 7744 7757 mov al, byte [bp-00ch] ; 8a 46 f4 7745 7758 and AL, strict byte 0fbh ; 24 fb … … 7749 7762 mov dx, strict word 00017h ; ba 17 00 7750 7763 mov ax, strict word 00040h ; b8 40 00 7751 call 01660h ; e8 d9 c17764 call 01660h ; e8 b9 c1 7752 7765 mov al, byte [bp-00ah] ; 8a 46 f6 7753 7766 test AL, strict byte 002h ; a8 02 7754 je short 054 9ch ; 74 0e7767 je short 054bch ; 74 0e 7755 7768 and AL, strict byte 0fbh ; 24 fb 7756 7769 mov byte [bp-010h], al ; 88 46 f0 … … 7758 7771 mov bx, ax ; 89 c3 7759 7772 mov dx, 00096h ; ba 96 00 7760 jmp short 054 abh ; eb 0f7773 jmp short 054cbh ; eb 0f 7761 7774 mov al, byte [bp-006h] ; 8a 46 fa 7762 7775 and AL, strict byte 0feh ; 24 fe … … 7766 7779 mov dx, strict word 00018h ; ba 18 00 7767 7780 mov ax, strict word 00040h ; b8 40 00 7768 call 01660h ; e8 af c17769 jmp near 05 3feh ; e9 4a ff7781 call 01660h ; e8 8f c1 7782 jmp near 0541eh ; e9 4a ff 7770 7783 mov al, byte [bp-00ch] ; 8a 46 f4 7771 7784 or AL, strict byte 008h ; 0c 08 … … 7775 7788 mov dx, strict word 00017h ; ba 17 00 7776 7789 mov ax, strict word 00040h ; b8 40 00 7777 call 01660h ; e8 97 c17790 call 01660h ; e8 77 c1 7778 7791 mov al, byte [bp-00ah] ; 8a 46 f6 7779 7792 test AL, strict byte 002h ; a8 02 7780 je short 054 deh ; 74 0e7793 je short 054feh ; 74 0e 7781 7794 or AL, strict byte 008h ; 0c 08 7782 7795 mov byte [bp-010h], al ; 88 46 f0 … … 7784 7797 mov bx, ax ; 89 c3 7785 7798 mov dx, 00096h ; ba 96 00 7786 jmp short 05 4edh ; eb 0f7799 jmp short 0550dh ; eb 0f 7787 7800 mov al, byte [bp-006h] ; 8a 46 fa 7788 7801 or AL, strict byte 002h ; 0c 02 … … 7792 7805 mov dx, strict word 00018h ; ba 18 00 7793 7806 mov ax, strict word 00040h ; b8 40 00 7794 call 01660h ; e8 6d c17795 jmp near 05 3feh ; e9 08 ff7807 call 01660h ; e8 4d c1 7808 jmp near 0541eh ; e9 08 ff 7796 7809 mov al, byte [bp-00ch] ; 8a 46 f4 7797 7810 and AL, strict byte 0f7h ; 24 f7 … … 7801 7814 mov dx, strict word 00017h ; ba 17 00 7802 7815 mov ax, strict word 00040h ; b8 40 00 7803 call 01660h ; e8 55 c17816 call 01660h ; e8 35 c1 7804 7817 mov al, byte [bp-00ah] ; 8a 46 f6 7805 7818 test AL, strict byte 002h ; a8 02 7806 je short 055 20h ; 74 0e7819 je short 05540h ; 74 0e 7807 7820 and AL, strict byte 0f7h ; 24 f7 7808 7821 mov byte [bp-010h], al ; 88 46 f0 … … 7810 7823 mov bx, ax ; 89 c3 7811 7824 mov dx, 00096h ; ba 96 00 7812 jmp short 055 2fh ; eb 0f7825 jmp short 0554fh ; eb 0f 7813 7826 mov al, byte [bp-006h] ; 8a 46 fa 7814 7827 and AL, strict byte 0fdh ; 24 fd … … 7818 7831 mov dx, strict word 00018h ; ba 18 00 7819 7832 mov ax, strict word 00040h ; b8 40 00 7820 call 01660h ; e8 2b c17821 jmp near 05 3feh ; e9 c6 fe7833 call 01660h ; e8 0b c1 7834 jmp near 0541eh ; e9 c6 fe 7822 7835 test byte [bp-00ah], 003h ; f6 46 f6 03 7823 jne short 055 5bh ; 75 1d7836 jne short 0557bh ; 75 1d 7824 7837 mov al, byte [bp-006h] ; 8a 46 fa 7825 7838 or AL, strict byte 020h ; 0c 20 … … 7829 7842 mov dx, strict word 00018h ; ba 18 00 7830 7843 mov ax, strict word 00040h ; b8 40 00 7831 call 01660h ; e8 0d c17844 call 01660h ; e8 ed c0 7832 7845 mov al, byte [bp-00ch] ; 8a 46 f4 7833 7846 xor AL, strict byte 020h ; 34 20 7834 jmp near 05 5fch ; e9 a1 007847 jmp near 0561ch ; e9 a1 00 7835 7848 mov al, byte [bp-006h] ; 8a 46 fa 7836 7849 or AL, strict byte 008h ; 0c 08 … … 7840 7853 mov dx, strict word 00018h ; ba 18 00 7841 7854 mov ax, strict word 00040h ; b8 40 00 7842 call 01660h ; e8 f0 c07855 call 01660h ; e8 d0 c0 7843 7856 mov AL, strict byte 0aeh ; b0 ae 7844 7857 mov dx, strict word 00064h ; ba 64 00 7845 7858 out DX, AL ; ee 7846 call 0e034h ; e8 bb 8a7859 call 0e034h ; e8 9b 8a 7847 7860 mov dx, strict word 00018h ; ba 18 00 7848 7861 mov ax, strict word 00040h ; b8 40 00 7849 call 01652h ; e8 d0 c07862 call 01652h ; e8 b0 c0 7850 7863 test AL, strict byte 008h ; a8 08 7851 jne short 055 79h ; 75 f37852 jmp near 05 3feh ; e9 75 fe7864 jne short 05599h ; 75 f3 7865 jmp near 0541eh ; e9 75 fe 7853 7866 test byte [bp-00ah], 003h ; f6 46 f6 03 7854 je short 055 92h ; 74 037855 jmp near 05 3feh ; e9 6c fe7867 je short 055b2h ; 74 03 7868 jmp near 0541eh ; e9 6c fe 7856 7869 mov al, byte [bp-006h] ; 8a 46 fa 7857 7870 and AL, strict byte 0dfh ; 24 df … … 7861 7874 mov dx, strict word 00018h ; ba 18 00 7862 7875 mov ax, strict word 00040h ; b8 40 00 7863 call 01660h ; e8 b9 c07864 jmp short 055 8fh ; eb e67876 call 01660h ; e8 99 c0 7877 jmp short 055afh ; eb e6 7865 7878 test byte [bp-00ah], 002h ; f6 46 f6 02 7866 je short 05 5e2h ; 74 337879 je short 05602h ; 74 33 7867 7880 mov dx, strict word 0001ah ; ba 1a 00 7868 7881 mov ax, strict word 00040h ; b8 40 00 7869 call 0166eh ; e8 b6 c07882 call 0166eh ; e8 96 c0 7870 7883 mov bx, ax ; 89 c3 7871 7884 mov dx, strict word 0001ch ; ba 1c 00 7872 7885 mov ax, strict word 00040h ; b8 40 00 7873 call 0167ch ; e8 b9 c07886 call 0167ch ; e8 99 c0 7874 7887 mov bx, 00080h ; bb 80 00 7875 7888 mov dx, strict word 00071h ; ba 71 00 7876 7889 mov ax, strict word 00040h ; b8 40 00 7877 call 01660h ; e8 91 c07890 call 01660h ; e8 71 c0 7878 7891 mov AL, strict byte 0aeh ; b0 ae 7879 7892 mov dx, strict word 00064h ; ba 64 00 … … 7884 7897 xor dx, dx ; 31 d2 7885 7898 xor ax, ax ; 31 c0 7886 call 052 86h ; e8 a6 fc7887 jmp short 055 8fh ; eb ad7899 call 052a6h ; e8 a6 fc 7900 jmp short 055afh ; eb ad 7888 7901 mov al, byte [bp-006h] ; 8a 46 fa 7889 7902 or AL, strict byte 010h ; 0c 10 … … 7893 7906 mov dx, strict word 00018h ; ba 18 00 7894 7907 mov ax, strict word 00040h ; b8 40 00 7895 call 01660h ; e8 69 c07908 call 01660h ; e8 49 c0 7896 7909 mov al, byte [bp-00ch] ; 8a 46 f4 7897 7910 xor AL, strict byte 010h ; 34 10 … … 7901 7914 mov dx, strict word 00017h ; ba 17 00 7902 7915 mov ax, strict word 00040h ; b8 40 00 7903 call 01660h ; e8 54 c07904 jmp short 055 8fh ; eb 817916 call 01660h ; e8 34 c0 7917 jmp short 055afh ; eb 81 7905 7918 test byte [bp-00ah], 002h ; f6 46 f6 02 7906 je short 056 17h ; 74 037907 jmp near 05 3feh ; e9 e7 fd7919 je short 05637h ; 74 03 7920 jmp near 0541eh ; e9 e7 fd 7908 7921 mov al, byte [bp-006h] ; 8a 46 fa 7909 7922 and AL, strict byte 0efh ; 24 ef … … 7913 7926 mov dx, strict word 00018h ; ba 18 00 7914 7927 mov ax, strict word 00040h ; b8 40 00 7915 call 01660h ; e8 34 c07916 jmp short 056 14h ; eb e67928 call 01660h ; e8 14 c0 7929 jmp short 05634h ; eb e6 7917 7930 mov al, byte [bp-006h] ; 8a 46 fa 7918 7931 test AL, strict byte 004h ; a8 04 7919 jne short 056 14h ; 75 df7932 jne short 05634h ; 75 df 7920 7933 or AL, strict byte 004h ; 0c 04 7921 7934 mov byte [bp-008h], al ; 88 46 f8 … … 7924 7937 mov dx, strict word 00018h ; ba 18 00 7925 7938 mov ax, strict word 00040h ; b8 40 00 7926 call 01660h ; e8 19 c07927 jmp short 056 14h ; eb cb7939 call 01660h ; e8 f9 bf 7940 jmp short 05634h ; eb cb 7928 7941 mov al, byte [bp-006h] ; 8a 46 fa 7929 7942 and AL, strict byte 0fbh ; 24 fb 7930 jmp short 056 37h ; eb e77943 jmp short 05657h ; eb e7 7931 7944 mov al, byte [bp-00ch] ; 8a 46 f4 7932 7945 and AL, strict byte 00ch ; 24 0c 7933 7946 cmp AL, strict byte 00ch ; 3c 0c 7934 jne short 056 6ah ; 75 117947 jne short 0568ah ; 75 11 7935 7948 mov bx, 01234h ; bb 34 12 7936 7949 mov dx, strict word 00072h ; ba 72 00 7937 7950 mov ax, strict word 00040h ; b8 40 00 7938 call 0167ch ; e8 17 c07951 call 0167ch ; e8 f7 bf 7939 7952 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7940 7953 test byte [bp-008h], 008h ; f6 46 f8 08 7941 je short 056 81h ; 74 117954 je short 056a1h ; 74 11 7942 7955 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7943 7956 mov al, byte [bp-008h] ; 8a 46 f8 … … 7945 7958 mov bx, ax ; 89 c3 7946 7959 mov dx, strict word 00018h ; ba 18 00 7947 jmp near 054 19h ; e9 98 fd7960 jmp near 05439h ; e9 98 fd 7948 7961 mov al, byte [bp-004h] ; 8a 46 fc 7949 7962 test AL, strict byte 080h ; a8 80 7950 je short 056 bfh ; 74 377963 je short 056dfh ; 74 37 7951 7964 cmp AL, strict byte 0fah ; 3c fa 7952 jne short 056 9eh ; 75 127965 jne short 056beh ; 75 12 7953 7966 mov dx, 00097h ; ba 97 00 7954 7967 mov ax, strict word 00040h ; b8 40 00 7955 call 01652h ; e8 bd bf7968 call 01652h ; e8 9d bf 7956 7969 mov bl, al ; 88 c3 7957 7970 or bl, 010h ; 80 cb 10 7958 7971 xor bh, bh ; 30 ff 7959 jmp short 056 b4h ; eb 167972 jmp short 056d4h ; eb 16 7960 7973 cmp AL, strict byte 0feh ; 3c fe 7961 je short 056 a5h ; 74 037962 jmp near 05 3feh ; e9 59 fd7974 je short 056c5h ; 74 03 7975 jmp near 0541eh ; e9 59 fd 7963 7976 mov dx, 00097h ; ba 97 00 7964 7977 mov ax, strict word 00040h ; b8 40 00 7965 call 01652h ; e8 a4 bf7978 call 01652h ; e8 84 bf 7966 7979 or AL, strict byte 020h ; 0c 20 7967 7980 xor ah, ah ; 30 e4 … … 7969 7982 mov dx, 00097h ; ba 97 00 7970 7983 mov ax, strict word 00040h ; b8 40 00 7971 call 01660h ; e8 a3 bf7972 jmp short 056 a2h ; eb e37984 call 01660h ; e8 83 bf 7985 jmp short 056c2h ; eb e3 7973 7986 cmp byte [bp-004h], 058h ; 80 7e fc 58 7974 jbe short 05 6e7h ; 76 227975 mov bx, 00da 4h ; bb a40d7987 jbe short 05707h ; 76 22 7988 mov bx, 00da0h ; bb a0 0d 7976 7989 mov cx, ds ; 8c d9 7977 7990 mov ax, strict word 00004h ; b8 04 00 7978 call 01933h ; e8 63 c27991 call 01933h ; e8 43 c2 7979 7992 mov al, byte [bp-004h] ; 8a 46 fc 7980 7993 xor ah, ah ; 30 e4 … … 7984 7997 mov ax, strict word 00004h ; b8 04 00 7985 7998 push ax ; 50 7986 call 01976h ; e8 95 c27999 call 01976h ; e8 75 c2 7987 8000 add sp, strict byte 00006h ; 83 c4 06 7988 jmp near 054 1fh ; e9 38 fd8001 jmp near 0543fh ; e9 38 fd 7989 8002 mov al, byte [bp-00eh] ; 8a 46 f2 7990 8003 test AL, strict byte 008h ; a8 08 7991 je short 057 08h ; 74 1a8004 je short 05728h ; 74 1a 7992 8005 mov al, byte [bp-004h] ; 8a 46 fc 7993 8006 xor ah, ah ; 30 e4 … … 7995 8008 imul bx ; f7 eb 7996 8009 mov bx, ax ; 89 c3 7997 mov al, byte [bx+00df 8h] ; 8a 87 f80d8010 mov al, byte [bx+00df4h] ; 8a 87 f4 0d 7998 8011 mov byte [bp-012h], al ; 88 46 ee 7999 mov al, byte [bx+00df 9h] ; 8a 87 f90d8000 jmp near 057 bah ; e9 b2 008012 mov al, byte [bx+00df5h] ; 8a 87 f5 0d 8013 jmp near 057dah ; e9 b2 00 8001 8014 test AL, strict byte 004h ; a8 04 8002 je short 05726h ; 74 1a 8015 je short 05746h ; 74 1a 8016 mov al, byte [bp-004h] ; 8a 46 fc 8017 xor ah, ah ; 30 e4 8018 mov dx, strict word 0000ah ; ba 0a 00 8019 imul dx ; f7 ea 8020 mov bx, ax ; 89 c3 8021 mov al, byte [bx+00df2h] ; 8a 87 f2 0d 8022 mov byte [bp-012h], al ; 88 46 ee 8023 mov al, byte [bx+00df3h] ; 8a 87 f3 0d 8024 jmp near 057dah ; e9 94 00 8025 mov al, byte [bp-010h] ; 8a 46 f0 8026 and AL, strict byte 002h ; 24 02 8027 test al, al ; 84 c0 8028 jbe short 05769h ; 76 1a 8029 mov al, byte [bp-004h] ; 8a 46 fc 8030 cmp AL, strict byte 047h ; 3c 47 8031 jc short 05769h ; 72 13 8032 cmp AL, strict byte 053h ; 3c 53 8033 jnbe short 05769h ; 77 0f 8034 mov byte [bp-012h], 0e0h ; c6 46 ee e0 8035 xor ah, ah ; 30 e4 8036 mov dx, strict word 0000ah ; ba 0a 00 8037 imul dx ; f7 ea 8038 mov bx, ax ; 89 c3 8039 jmp short 057d6h ; eb 6d 8040 test byte [bp-00eh], 003h ; f6 46 f2 03 8041 je short 057a7h ; 74 38 8003 8042 mov al, byte [bp-004h] ; 8a 46 fc 8004 8043 xor ah, ah ; 30 e4 … … 8007 8046 mov bx, ax ; 89 c3 8008 8047 mov al, byte [bx+00df6h] ; 8a 87 f6 0d 8009 mov byte [bp-012h], al ; 88 46 ee8010 mov al, byte [bx+00df7h] ; 8a 87 f7 0d8011 jmp near 057bah ; e9 94 008012 mov al, byte [bp-010h] ; 8a 46 f08013 and AL, strict byte 002h ; 24 028014 test al, al ; 84 c08015 jbe short 05749h ; 76 1a8016 mov al, byte [bp-004h] ; 8a 46 fc8017 cmp AL, strict byte 047h ; 3c 478018 jc short 05749h ; 72 138019 cmp AL, strict byte 053h ; 3c 538020 jnbe short 05749h ; 77 0f8021 mov byte [bp-012h], 0e0h ; c6 46 ee e08022 xor ah, ah ; 30 e48023 mov dx, strict word 0000ah ; ba 0a 008024 imul dx ; f7 ea8025 mov bx, ax ; 89 c38026 jmp short 057b6h ; eb 6d8027 test byte [bp-00eh], 003h ; f6 46 f2 038028 je short 05787h ; 74 388029 mov al, byte [bp-004h] ; 8a 46 fc8030 xor ah, ah ; 30 e48031 mov dx, strict word 0000ah ; ba 0a 008032 imul dx ; f7 ea8033 mov bx, ax ; 89 c38034 mov al, byte [bx+00dfah] ; 8a 87 fa 0d8035 8048 xor ah, ah ; 30 e4 8036 8049 mov dx, ax ; 89 c2 8037 8050 mov al, byte [bp-00eh] ; 8a 46 f2 8038 8051 test ax, dx ; 85 d0 8039 je short 057 77h ; 74 0d8040 mov al, byte [bx+00d f2h] ; 8a 87 f20d8052 je short 05797h ; 74 0d 8053 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 8041 8054 mov byte [bp-012h], al ; 88 46 ee 8042 mov al, byte [bx+00d f3h] ; 8a 87 f30d8043 jmp short 057 82h ; eb 0b8044 mov al, byte [bx+00df 4h] ; 8a 87 f40d8055 mov al, byte [bx+00defh] ; 8a 87 ef 0d 8056 jmp short 057a2h ; eb 0b 8057 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 8045 8058 mov byte [bp-012h], al ; 88 46 ee 8046 mov al, byte [bx+00df 5h] ; 8a 87 f50d8059 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 8047 8060 mov byte [bp-004h], al ; 88 46 fc 8048 jmp short 057 bdh ; eb 368061 jmp short 057ddh ; eb 36 8049 8062 mov al, byte [bp-004h] ; 8a 46 fc 8050 8063 xor ah, ah ; 30 e4 … … 8052 8065 imul bx ; f7 eb 8053 8066 mov bx, ax ; 89 c3 8054 mov al, byte [bx+00df ah] ; 8a 87 fa0d8067 mov al, byte [bx+00df6h] ; 8a 87 f6 0d 8055 8068 xor ah, ah ; 30 e4 8056 8069 mov dx, ax ; 89 c2 8057 8070 mov al, byte [bp-00eh] ; 8a 46 f2 8058 8071 test ax, dx ; 85 d0 8059 je short 057 afh ; 74 0d8060 mov al, byte [bx+00df 4h] ; 8a 87 f40d8072 je short 057cfh ; 74 0d 8073 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 8061 8074 mov byte [bp-012h], al ; 88 46 ee 8062 mov al, byte [bx+00df 5h] ; 8a 87 f50d8063 jmp short 057 bah ; eb 0b8064 mov al, byte [bx+00d f2h] ; 8a 87 f20d8075 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 8076 jmp short 057dah ; eb 0b 8077 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 8065 8078 mov byte [bp-012h], al ; 88 46 ee 8066 mov al, byte [bx+00d f3h] ; 8a 87 f30d8079 mov al, byte [bx+00defh] ; 8a 87 ef 0d 8067 8080 mov byte [bp-004h], al ; 88 46 fc 8068 8081 cmp byte [bp-004h], 000h ; 80 7e fc 00 8069 jne short 05 7e2h ; 75 1f8082 jne short 05802h ; 75 1f 8070 8083 cmp byte [bp-012h], 000h ; 80 7e ee 00 8071 jne short 05 7e2h ; 75 198072 mov bx, 00da 4h ; bb a40d8084 jne short 05802h ; 75 19 8085 mov bx, 00da0h ; bb a0 0d 8073 8086 mov cx, ds ; 8c d9 8074 8087 mov ax, strict word 00004h ; b8 04 00 8075 call 01933h ; e8 5f c18088 call 01933h ; e8 3f c1 8076 8089 mov ax, 005d8h ; b8 d8 05 8077 8090 push ax ; 50 8078 8091 mov ax, strict word 00004h ; b8 04 00 8079 8092 push ax ; 50 8080 call 01976h ; e8 97 c18093 call 01976h ; e8 77 c1 8081 8094 add sp, strict byte 00004h ; 83 c4 04 8082 8095 mov bl, byte [bp-012h] ; 8a 5e ee … … 8085 8098 xor ah, ah ; 30 e4 8086 8099 mov dx, bx ; 89 da 8087 jmp near 055 ddh ; e9 ec fd8088 dequeue_key_: ; 0xf5 7f1 LB 0x948100 jmp near 055fdh ; e9 ec fd 8101 dequeue_key_: ; 0xf5811 LB 0x94 8089 8102 push bp ; 55 8090 8103 mov bp, sp ; 89 e5 … … 8099 8112 mov dx, strict word 0001ah ; ba 1a 00 8100 8113 mov ax, strict word 00040h ; b8 40 00 8101 call 0166eh ; e8 63 be8114 call 0166eh ; e8 43 be 8102 8115 mov bx, ax ; 89 c3 8103 8116 mov dx, strict word 0001ch ; ba 1c 00 8104 8117 mov ax, strict word 00040h ; b8 40 00 8105 call 0166eh ; e8 58 be8118 call 0166eh ; e8 38 be 8106 8119 cmp bx, ax ; 39 c3 8107 je short 058 57h ; 74 3d8120 je short 05877h ; 74 3d 8108 8121 mov dx, bx ; 89 da 8109 8122 mov ax, strict word 00040h ; b8 40 00 8110 call 01652h ; e8 30 be8123 call 01652h ; e8 10 be 8111 8124 mov cl, al ; 88 c1 8112 8125 lea dx, [bx+001h] ; 8d 57 01 8113 8126 mov ax, strict word 00040h ; b8 40 00 8114 call 01652h ; e8 25 be8127 call 01652h ; e8 05 be 8115 8128 mov es, [bp-008h] ; 8e 46 f8 8116 8129 mov byte [es:si], cl ; 26 88 0c … … 8118 8131 mov byte [es:di], al ; 26 88 05 8119 8132 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 8120 je short 058 52h ; 74 138133 je short 05872h ; 74 13 8121 8134 inc bx ; 43 8122 8135 inc bx ; 43 8123 8136 cmp bx, strict byte 0003eh ; 83 fb 3e 8124 jc short 058 49h ; 72 038137 jc short 05869h ; 72 03 8125 8138 mov bx, strict word 0001eh ; bb 1e 00 8126 8139 mov dx, strict word 0001ah ; ba 1a 00 8127 8140 mov ax, strict word 00040h ; b8 40 00 8128 call 0167ch ; e8 2a be8141 call 0167ch ; e8 0a be 8129 8142 mov ax, strict word 00001h ; b8 01 00 8130 jmp short 058 59h ; eb 028143 jmp short 05879h ; eb 02 8131 8144 xor ax, ax ; 31 c0 8132 8145 lea sp, [bp-004h] ; 8d 66 fc … … 8139 8152 or cl, byte [bx+di] ; 0a 09 8140 8153 add ax, 00102h ; 05 02 01 8141 add byte [di+0 4859h], cl ; 00 8d 59 488154 add byte [di+06859h], ch ; 00 ad 59 68 8142 8155 pop cx ; 59 8143 fstp qword [bx+di+022h] ; dd 59 22 8156 std ; fd 8157 pop cx ; 59 8158 inc dx ; 42 8144 8159 pop dx ; 5a 8145 xor ax, 05c5ah ; 35 5a 5c8160 push bp ; 55 8146 8161 pop dx ; 5a 8147 pop edx ; 66 5a 8148 aad 05ah ; d5 5a 8149 or AL, strict byte 05bh ; 0c 5b 8150 cmp ax, 0745bh ; 3d 5b 74 8162 jl short 058f3h ; 7c 5a 8163 xchg byte [bp+si-00bh], bl ; 86 5a f5 8164 pop dx ; 5a 8165 sub AL, strict byte 05bh ; 2c 5b 8166 pop bp ; 5d 8151 8167 pop bx ; 5b 8152 xlatb ; d7 8168 xchg sp, ax ; 94 8169 pop bx ; 5b 8170 db 0f7h 8153 8171 pop cx ; 59 8154 _int16_function: ; 0xf58 85 LB 0x2fa8172 _int16_function: ; 0xf58a5 LB 0x2fa 8155 8173 push bp ; 55 8156 8174 mov bp, sp ; 89 e5 … … 8159 8177 mov dx, strict word 00017h ; ba 17 00 8160 8178 mov ax, strict word 00040h ; b8 40 00 8161 call 01652h ; e8 bd bd8179 call 01652h ; e8 9d bd 8162 8180 mov cl, al ; 88 c1 8163 8181 mov bl, al ; 88 c3 8164 8182 mov dx, 00097h ; ba 97 00 8165 8183 mov ax, strict word 00040h ; b8 40 00 8166 call 01652h ; e8 b0 bd8184 call 01652h ; e8 90 bd 8167 8185 mov bh, al ; 88 c7 8168 8186 mov dl, cl ; 88 ca … … 8175 8193 xor al, dl ; 30 d0 8176 8194 test ax, ax ; 85 c0 8177 je short 059 27h ; 74 6e8195 je short 05947h ; 74 6e 8178 8196 cli ; fa 8179 8197 mov AL, strict byte 0edh ; b0 ed … … 8185 8203 ; sub ah, ah ; 2a e4 8186 8204 test AL, strict byte 001h ; a8 01 8187 jne short 058 d2h ; 75 088205 jne short 058f2h ; 75 08 8188 8206 mov AL, strict byte 021h ; b0 21 8189 8207 mov dx, 00080h ; ba 80 00 8190 8208 out DX, AL ; ee 8191 jmp short 058 c0h ; eb ee8209 jmp short 058e0h ; eb ee 8192 8210 mov dx, strict word 00060h ; ba 60 00 8193 8211 in AL, DX ; ec … … 8195 8213 ; sub ah, ah ; 2a e4 8196 8214 cmp ax, 000fah ; 3d fa 00 8197 jne short 059 26h ; 75 498215 jne short 05946h ; 75 49 8198 8216 and bh, 0c8h ; 80 e7 c8 8199 8217 mov al, bl ; 88 d8 … … 8218 8236 ; sub ah, ah ; 2a e4 8219 8237 test AL, strict byte 001h ; a8 01 8220 jne short 059 13h ; 75 088238 jne short 05933h ; 75 08 8221 8239 mov AL, strict byte 021h ; b0 21 8222 8240 mov dx, 00080h ; ba 80 00 8223 8241 out DX, AL ; ee 8224 jmp short 059 01h ; eb ee8242 jmp short 05921h ; eb ee 8225 8243 mov dx, strict word 00060h ; ba 60 00 8226 8244 in AL, DX ; ec … … 8231 8249 mov dx, 00097h ; ba 97 00 8232 8250 mov ax, strict word 00040h ; b8 40 00 8233 call 01660h ; e8 3a bd8251 call 01660h ; e8 1a bd 8234 8252 sti ; fb 8235 8253 mov CL, strict byte 008h ; b1 08 … … 8237 8255 shr ax, CL ; d3 e8 8238 8256 cmp ax, 000a2h ; 3d a2 00 8239 jnbe short 059 8dh ; 77 5a8257 jnbe short 059adh ; 77 5a 8240 8258 push CS ; 0e 8241 8259 pop ES ; 07 8242 8260 mov cx, strict word 0000ch ; b9 0c 00 8243 mov di, 058 62h ; bf 62 588261 mov di, 05882h ; bf 82 58 8244 8262 repne scasb ; f2 ae 8245 8263 sal cx, 1 ; d1 e1 8246 8264 mov di, cx ; 89 cf 8247 mov ax, word [cs:di+058 6dh] ; 2e 8b 85 6d 588265 mov ax, word [cs:di+0588dh] ; 2e 8b 85 8d 58 8248 8266 jmp ax ; ff e0 8249 8267 mov ax, strict word 00001h ; b8 01 00 … … 8253 8271 mov dx, ss ; 8c d2 8254 8272 lea ax, [bp-006h] ; 8d 46 fa 8255 call 05 7f1h ; e8 98 fe8273 call 05811h ; e8 98 fe 8256 8274 test ax, ax ; 85 c0 8257 jne short 059 6bh ; 75 0e8275 jne short 0598bh ; 75 0e 8258 8276 mov ax, 0060fh ; b8 0f 06 8259 8277 push ax ; 50 8260 8278 mov ax, strict word 00007h ; b8 07 00 8261 8279 push ax ; 50 8262 call 01976h ; e8 0e c08280 call 01976h ; e8 ee bf 8263 8281 add sp, strict byte 00004h ; 83 c4 04 8264 8282 cmp byte [bp-006h], 000h ; 80 7e fa 00 8265 je short 059 77h ; 74 068283 je short 05997h ; 74 06 8266 8284 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8267 je short 059 7dh ; 74 068285 je short 0599dh ; 74 06 8268 8286 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8269 jne short 059 81h ; 75 048287 jne short 059a1h ; 75 04 8270 8288 mov byte [bp-008h], 000h ; c6 46 f8 00 8271 8289 mov ah, byte [bp-006h] ; 8a 66 fa 8272 8290 mov al, byte [bp-008h] ; 8a 46 f8 8273 8291 mov word [bp+012h], ax ; 89 46 12 8274 jmp near 059 d7h ; e9 4a 008275 mov bx, 00da 4h ; bb a40d8292 jmp near 059f7h ; e9 4a 00 8293 mov bx, 00da0h ; bb a0 0d 8276 8294 mov cx, ds ; 8c d9 8277 8295 mov ax, strict word 00004h ; b8 04 00 8278 call 01933h ; e8 9b bf8296 call 01933h ; e8 7b bf 8279 8297 mov CL, strict byte 008h ; b1 08 8280 8298 mov ax, word [bp+012h] ; 8b 46 12 … … 8285 8303 mov ax, strict word 00004h ; b8 04 00 8286 8304 push ax ; 50 8287 call 01976h ; e8 cb bf8305 call 01976h ; e8 ab bf 8288 8306 add sp, strict byte 00006h ; 83 c4 06 8289 mov bx, 00da 4h ; bb a40d8307 mov bx, 00da0h ; bb a0 0d 8290 8308 mov cx, ds ; 8c d9 8291 8309 mov ax, strict word 00004h ; b8 04 00 8292 call 01933h ; e8 7a bf8310 call 01933h ; e8 5a bf 8293 8311 mov ax, word [bp+00eh] ; 8b 46 0e 8294 8312 push ax ; 50 … … 8303 8321 mov ax, strict word 00004h ; b8 04 00 8304 8322 push ax ; 50 8305 call 01976h ; e8 a2 bf8323 call 01976h ; e8 82 bf 8306 8324 add sp, strict byte 0000ch ; 83 c4 0c 8307 8325 lea sp, [bp-002h] ; 8d 66 fe … … 8317 8335 mov dx, ss ; 8c d2 8318 8336 lea ax, [bp-006h] ; 8d 46 fa 8319 call 05 7f1h ; e8 fe fd8337 call 05811h ; e8 fe fd 8320 8338 test ax, ax ; 85 c0 8321 jne short 05 9fdh ; 75 068339 jne short 05a1dh ; 75 06 8322 8340 or word [bp+01eh], strict byte 00040h ; 83 4e 1e 40 8323 jmp short 059 d7h ; eb da8341 jmp short 059f7h ; eb da 8324 8342 cmp byte [bp-006h], 000h ; 80 7e fa 00 8325 je short 05a 09h ; 74 068343 je short 05a29h ; 74 06 8326 8344 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8327 je short 05a 0fh ; 74 068345 je short 05a2fh ; 74 06 8328 8346 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8329 jne short 05a 13h ; 75 048347 jne short 05a33h ; 75 04 8330 8348 mov byte [bp-008h], 000h ; c6 46 f8 00 8331 8349 mov dh, byte [bp-006h] ; 8a 76 fa … … 8333 8351 mov word [bp+012h], dx ; 89 56 12 8334 8352 and word [bp+01eh], strict byte 0ffbfh ; 83 66 1e bf 8335 jmp short 059 d7h ; eb b58353 jmp short 059f7h ; eb b5 8336 8354 mov dx, strict word 00017h ; ba 17 00 8337 8355 mov ax, strict word 00040h ; b8 40 00 8338 call 01652h ; e8 27 bc8356 call 01652h ; e8 07 bc 8339 8357 mov dx, word [bp+012h] ; 8b 56 12 8340 8358 mov dl, al ; 88 c2 8341 8359 mov word [bp+012h], dx ; 89 56 12 8342 jmp short 059 d7h ; eb a28360 jmp short 059f7h ; eb a2 8343 8361 mov dl, byte [bp+010h] ; 8a 56 10 8344 8362 xor dh, dh ; 30 f6 … … 8347 8365 shr ax, CL ; d3 e8 8348 8366 xor ah, ah ; 30 e4 8349 call 052 86h ; e8 40 f88367 call 052a6h ; e8 40 f8 8350 8368 test ax, ax ; 85 c0 8351 jne short 05a 54h ; 75 0a8369 jne short 05a74h ; 75 0a 8352 8370 mov ax, word [bp+012h] ; 8b 46 12 8353 8371 xor al, al ; 30 c0 8354 8372 or AL, strict byte 001h ; 0c 01 8355 jmp near 059 87h ; e9 33 ff8373 jmp near 059a7h ; e9 33 ff 8356 8374 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8357 jmp near 059 d7h ; e9 7b ff8375 jmp near 059f7h ; e9 7b ff 8358 8376 mov ax, word [bp+012h] ; 8b 46 12 8359 8377 xor al, al ; 30 c0 8360 8378 or AL, strict byte 030h ; 0c 30 8361 jmp near 059 87h ; e9 21 ff8379 jmp near 059a7h ; e9 21 ff 8362 8380 mov byte [bp-004h], 002h ; c6 46 fc 02 8363 8381 xor cx, cx ; 31 c9 … … 8372 8390 ; sub ah, ah ; 2a e4 8373 8391 test AL, strict byte 001h ; a8 01 8374 jne short 05a 8dh ; 75 0d8392 jne short 05aadh ; 75 0d 8375 8393 dec bx ; 4b 8376 8394 test bx, bx ; 85 db 8377 jbe short 05a 8dh ; 76 088395 jbe short 05aadh ; 76 08 8378 8396 mov dx, 00080h ; ba 80 00 8379 8397 in AL, DX ; ec 8380 8398 db 02ah, 0e4h 8381 8399 ; sub ah, ah ; 2a e4 8382 jmp short 05a 76h ; eb e98400 jmp short 05a96h ; eb e9 8383 8401 test bx, bx ; 85 db 8384 jbe short 05a cfh ; 76 3e8402 jbe short 05aefh ; 76 3e 8385 8403 mov dx, strict word 00060h ; ba 60 00 8386 8404 in AL, DX ; ec … … 8388 8406 ; sub ah, ah ; 2a e4 8389 8407 cmp ax, 000fah ; 3d fa 00 8390 jne short 05a cfh ; 75 338408 jne short 05aefh ; 75 33 8391 8409 mov bx, strict word 0ffffh ; bb ff ff 8392 8410 mov dx, strict word 00064h ; ba 64 00 … … 8395 8413 ; sub ah, ah ; 2a e4 8396 8414 test AL, strict byte 001h ; a8 01 8397 jne short 05a b6h ; 75 0d8415 jne short 05ad6h ; 75 0d 8398 8416 dec bx ; 4b 8399 8417 test bx, bx ; 85 db 8400 jbe short 05a b6h ; 76 088418 jbe short 05ad6h ; 76 08 8401 8419 mov dx, 00080h ; ba 80 00 8402 8420 in AL, DX ; ec 8403 8421 db 02ah, 0e4h 8404 8422 ; sub ah, ah ; 2a e4 8405 jmp short 05a 9fh ; eb e98423 jmp short 05abfh ; eb e9 8406 8424 test bx, bx ; 85 db 8407 jbe short 05a c6h ; 76 0c8425 jbe short 05ae6h ; 76 0c 8408 8426 mov bl, ch ; 88 eb 8409 8427 mov dx, strict word 00060h ; ba 60 00 … … 8415 8433 dec byte [bp-004h] ; fe 4e fc 8416 8434 cmp byte [bp-004h], 000h ; 80 7e fc 00 8417 jnbe short 05a 9ch ; 77 cd8435 jnbe short 05abch ; 77 cd 8418 8436 mov word [bp+00ch], cx ; 89 4e 0c 8419 jmp near 059 d7h ; e9 02 ff8437 jmp near 059f7h ; e9 02 ff 8420 8438 mov ax, strict word 00001h ; b8 01 00 8421 8439 push ax ; 50 … … 8424 8442 mov dx, ss ; 8c d2 8425 8443 lea ax, [bp-006h] ; 8d 46 fa 8426 call 05 7f1h ; e8 0b fd8444 call 05811h ; e8 0b fd 8427 8445 test ax, ax ; 85 c0 8428 jne short 05 af8h ; 75 0e8446 jne short 05b18h ; 75 0e 8429 8447 mov ax, 0060fh ; b8 0f 06 8430 8448 push ax ; 50 8431 8449 mov ax, strict word 00007h ; b8 07 00 8432 8450 push ax ; 50 8433 call 01976h ; e8 81 be8451 call 01976h ; e8 61 be 8434 8452 add sp, strict byte 00004h ; 83 c4 04 8435 8453 cmp byte [bp-006h], 000h ; 80 7e fa 00 8436 jne short 05b 01h ; 75 038437 jmp near 059 81h ; e9 80 fe8454 jne short 05b21h ; 75 03 8455 jmp near 059a1h ; e9 80 fe 8438 8456 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8439 jne short 05b 0ah ; 75 038440 jmp near 059 7dh ; e9 73 fe8441 jmp short 05 afeh ; eb f28457 jne short 05b2ah ; 75 03 8458 jmp near 0599dh ; e9 73 fe 8459 jmp short 05b1eh ; eb f2 8442 8460 mov ax, word [bp+018h] ; 8b 46 18 8443 8461 mov word [bp+01eh], ax ; 89 46 1e … … 8448 8466 mov dx, ss ; 8c d2 8449 8467 lea ax, [bp-006h] ; 8d 46 fa 8450 call 05 7f1h ; e8 cf fc8468 call 05811h ; e8 cf fc 8451 8469 test ax, ax ; 85 c0 8452 jne short 05b 29h ; 75 038453 jmp near 05 9f7h ; e9 ce fe8470 jne short 05b49h ; 75 03 8471 jmp near 05a17h ; e9 ce fe 8454 8472 cmp byte [bp-006h], 000h ; 80 7e fa 00 8455 jne short 05b 32h ; 75 038456 jmp near 05a 13h ; e9 e1 fe8473 jne short 05b52h ; 75 03 8474 jmp near 05a33h ; e9 e1 fe 8457 8475 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8458 jne short 05b 3bh ; 75 038459 jmp near 05a 0fh ; e9 d4 fe8460 jmp short 05b 2fh ; eb f28476 jne short 05b5bh ; 75 03 8477 jmp near 05a2fh ; e9 d4 fe 8478 jmp short 05b4fh ; eb f2 8461 8479 mov dx, strict word 00017h ; ba 17 00 8462 8480 mov ax, strict word 00040h ; b8 40 00 8463 call 01652h ; e8 0c bb8481 call 01652h ; e8 ec ba 8464 8482 mov dx, word [bp+012h] ; 8b 56 12 8465 8483 mov dl, al ; 88 c2 … … 8467 8485 mov dx, strict word 00018h ; ba 18 00 8468 8486 mov ax, strict word 00040h ; b8 40 00 8469 call 01652h ; e8 fb ba8487 call 01652h ; e8 db ba 8470 8488 mov bl, al ; 88 c3 8471 8489 and bl, 073h ; 80 e3 73 8472 8490 mov dx, 00096h ; ba 96 00 8473 8491 mov ax, strict word 00040h ; b8 40 00 8474 call 01652h ; e8 ed ba8492 call 01652h ; e8 cd ba 8475 8493 mov ah, al ; 88 c4 8476 8494 and ah, 00ch ; 80 e4 0c … … 8478 8496 mov dx, word [bp+012h] ; 8b 56 12 8479 8497 mov dh, ah ; 88 e6 8480 jmp near 05a 30h ; e9 bc fe8498 jmp near 05a50h ; e9 bc fe 8481 8499 mov ax, word [bp+012h] ; 8b 46 12 8482 8500 xor ah, ah ; 30 e4 8483 8501 or ah, 080h ; 80 cc 80 8484 jmp near 059 87h ; e9 08 fe8485 set_geom_lba_: ; 0xf5b 7f LB 0xeb8502 jmp near 059a7h ; e9 08 fe 8503 set_geom_lba_: ; 0xf5b9f LB 0xeb 8486 8504 push bx ; 53 8487 8505 push cx ; 51 … … 8501 8519 mov dx, word [bp+00ch] ; 8b 56 0c 8502 8520 mov si, strict word 00020h ; be 20 00 8503 call 0a1 80h ; e8 d2 458521 call 0a1a0h ; e8 d2 45 8504 8522 test ax, ax ; 85 c0 8505 jne short 05b beh ; 75 0c8523 jne short 05bdeh ; 75 0c 8506 8524 test bx, bx ; 85 db 8507 jne short 05b beh ; 75 088525 jne short 05bdeh ; 75 08 8508 8526 test cx, cx ; 85 c9 8509 jne short 05b beh ; 75 048527 jne short 05bdeh ; 75 04 8510 8528 test dx, dx ; 85 d2 8511 je short 05b c5h ; 74 078529 je short 05be5h ; 74 07 8512 8530 mov bx, strict word 0ffffh ; bb ff ff 8513 8531 mov si, bx ; 89 de 8514 jmp short 05b cbh ; eb 068532 jmp short 05bebh ; eb 06 8515 8533 mov bx, word [bp+00ch] ; 8b 5e 0c 8516 8534 mov si, word [bp+00eh] ; 8b 76 0e 8517 8535 mov word [bp-004h], bx ; 89 5e fc 8518 8536 xor bx, bx ; 31 db 8519 jmp short 05b d7h ; eb 058537 jmp short 05bf7h ; eb 05 8520 8538 cmp bx, strict byte 00004h ; 83 fb 04 8521 jnl short 05 bfah ; 7d 238539 jnl short 05c1ah ; 7d 23 8522 8540 mov ax, word [bp-006h] ; 8b 46 fa 8523 8541 cmp si, ax ; 39 c6 8524 jc short 05 be8h ; 72 0a8525 jne short 05 bf1h ; 75 118542 jc short 05c08h ; 72 0a 8543 jne short 05c11h ; 75 11 8526 8544 mov ax, word [bp-004h] ; 8b 46 fc 8527 8545 cmp ax, word [bp-008h] ; 3b 46 f8 8528 jnbe short 05 bf1h ; 77 098546 jnbe short 05c11h ; 77 09 8529 8547 mov ax, word [bp-002h] ; 8b 46 fe 8530 8548 inc ax ; 40 … … 8534 8552 rcr word [bp-008h], 1 ; d1 5e f8 8535 8553 inc bx ; 43 8536 jmp short 05b d2h ; eb d88554 jmp short 05bf2h ; eb d8 8537 8555 mov ax, word [bp-002h] ; 8b 46 fe 8538 8556 xor dx, dx ; 31 d2 8539 8557 mov bx, strict word 0003fh ; bb 3f 00 8540 8558 xor cx, cx ; 31 c9 8541 call 0a1 30h ; e8 29 458559 call 0a150h ; e8 29 45 8542 8560 mov bx, ax ; 89 c3 8543 8561 mov cx, dx ; 89 d1 8544 8562 mov ax, word [bp-004h] ; 8b 46 fc 8545 8563 mov dx, si ; 89 f2 8546 call 0a1 50h ; e8 3d 458564 call 0a170h ; e8 3d 45 8547 8565 mov word [es:di+002h], ax ; 26 89 45 02 8548 8566 cmp ax, 00400h ; 3d 00 04 8549 jbe short 05c 22h ; 76 068567 jbe short 05c42h ; 76 06 8550 8568 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8551 8569 mov ax, word [bp-002h] ; 8b 46 fe … … 8559 8577 pop bx ; 5b 8560 8578 retn 00008h ; c2 08 00 8561 neg byte [si+007h] ; f6 5c 078579 push SS ; 16 8562 8580 pop bp ; 5d 8563 da s ; 2f8581 daa ; 27 8564 8582 pop bp ; 5d 8565 d as ; 2f8583 dec di ; 4f 8566 8584 pop bp ; 5d 8567 d as ; 2f8585 dec di ; 4f 8568 8586 pop bp ; 5d 8569 sbb ax, 0595fh ; 1d 5f 59 8587 dec di ; 4f 8588 pop bp ; 5d 8589 cmp ax, 0795fh ; 3d 5f 79 8570 8590 pushaw ; 60 8571 pop cx ; 59 8591 jns short 05cc8h ; 79 60 8592 insw ; 6d 8593 pop di ; 5f 8594 push bx ; 53 8572 8595 pushaw ; 60 8573 dec bp ; 4d8574 pop di ; 5f8575 xor sp, word [bx+si+059h] ; 33 60 598596 jns short 05cceh ; 79 60 8597 jns short 05cd0h ; 79 60 8598 push bx ; 53 8576 8599 pushaw ; 60 8577 p op cx ; 598600 push bx ; 53 8578 8601 pushaw ; 60 8579 xor sp, word [bx+si+033h] ; 33 60 33 8602 jns short 05cd6h ; 79 60 8603 jns short 05cd8h ; 79 60 8604 rcr word [bx+053h], CL ; d3 5f 53 8580 8605 pushaw ; 60 8581 pop cx ; 59 8606 jns short 05cdeh ; 79 60 8607 jns short 05ce0h ; 79 60 8608 push bx ; 53 8582 8609 pushaw ; 60 8583 pop cx ; 59 8584 pushaw ; 60 8585 mov BL, strict byte 05fh ; b3 5f 8586 xor sp, word [bx+si+059h] ; 33 60 59 8587 pushaw ; 60 8588 pop cx ; 59 8589 pushaw ; 60 8590 xor sp, word [bx+si-01ch] ; 33 60 e4 8591 pop di ; 5f 8592 pop cx ; 59 8593 pushaw ; 60 8594 pop cx ; 59 8595 pushaw ; 60 8596 pop cx ; 59 8597 pushaw ; 60 8598 _int13_harddisk: ; 0xf5c6a LB 0x44a 8610 add AL, strict byte 060h ; 04 60 8611 jns short 05ce6h ; 79 60 8612 jns short 05ce8h ; 79 60 8613 jns short 05ceah ; 79 60 8614 _int13_harddisk: ; 0xf5c8a LB 0x44a 8599 8615 push bp ; 55 8600 8616 mov bp, sp ; 89 e5 … … 8603 8619 mov dx, strict word 0000eh ; ba 0e 00 8604 8620 mov ax, strict word 00040h ; b8 40 00 8605 call 0166eh ; e8 f1 b98621 call 0166eh ; e8 d1 b9 8606 8622 mov si, 00122h ; be 22 01 8607 8623 mov word [bp-006h], ax ; 89 46 fa … … 8609 8625 mov dx, 0008eh ; ba 8e 00 8610 8626 mov ax, strict word 00040h ; b8 40 00 8611 call 01660h ; e8 d2 b98627 call 01660h ; e8 b2 b9 8612 8628 mov ax, word [bp+00eh] ; 8b 46 0e 8613 8629 xor ah, ah ; 30 e4 8614 8630 cmp ax, 00080h ; 3d 80 00 8615 jc short 05c 9dh ; 72 058631 jc short 05cbdh ; 72 05 8616 8632 cmp ax, 00090h ; 3d 90 00 8617 jc short 05c bch ; 72 1f8633 jc short 05cdch ; 72 1f 8618 8634 mov ax, word [bp+00eh] ; 8b 46 0e 8619 8635 xor ah, ah ; 30 e4 … … 8627 8643 mov ax, strict word 00004h ; b8 04 00 8628 8644 push ax ; 50 8629 call 01976h ; e8 c0 bc8645 call 01976h ; e8 a0 bc 8630 8646 add sp, strict byte 0000ah ; 83 c4 0a 8631 jmp near 060 74h ; e9 b8 038647 jmp near 06094h ; e9 b8 03 8632 8648 mov ax, word [bp+00eh] ; 8b 46 0e 8633 8649 xor ah, ah ; 30 e4 … … 8638 8654 mov byte [bp-002h], dl ; 88 56 fe 8639 8655 cmp dl, 010h ; 80 fa 10 8640 jc short 05 ce3h ; 72 0e8656 jc short 05d03h ; 72 0e 8641 8657 push ax ; 50 8642 8658 mov al, byte [bp+017h] ; 8a 46 17 … … 8645 8661 push ax ; 50 8646 8662 mov ax, 006b8h ; b8 b8 06 8647 jmp short 05c aeh ; eb cb8663 jmp short 05cceh ; eb cb 8648 8664 mov al, byte [bp+017h] ; 8a 46 17 8649 8665 xor ah, ah ; 30 e4 8650 8666 cmp ax, strict word 00018h ; 3d 18 00 8651 jnbe short 05d 2ch ; 77 3f8667 jnbe short 05d4ch ; 77 3f 8652 8668 mov bx, ax ; 89 c3 8653 8669 sal bx, 1 ; d1 e3 8654 jmp word [cs:bx+05c 38h] ; 2e ff a7 38 5c8670 jmp word [cs:bx+05c58h] ; 2e ff a7 58 5c 8655 8671 cmp byte [bp-002h], 008h ; 80 7e fe 08 8656 jnc short 05d 04h ; 73 088672 jnc short 05d24h ; 73 08 8657 8673 mov al, byte [bp-002h] ; 8a 46 fe 8658 8674 xor ah, ah ; 30 e4 8659 call 01db8h ; e8 b4 c08660 jmp near 05f 36h ; e9 2f 028675 call 01db8h ; e8 94 c0 8676 jmp near 05f56h ; e9 2f 02 8661 8677 mov dx, strict word 00074h ; ba 74 00 8662 8678 mov ax, strict word 00040h ; b8 40 00 8663 call 01652h ; e8 42 b98679 call 01652h ; e8 22 b9 8664 8680 mov cl, al ; 88 c1 8665 8681 mov dx, word [bp+016h] ; 8b 56 16 … … 8669 8685 mov dx, strict word 00074h ; ba 74 00 8670 8686 mov ax, strict word 00040h ; b8 40 00 8671 call 01660h ; e8 3b b98687 call 01660h ; e8 1b b9 8672 8688 test cl, cl ; 84 c9 8673 je short 05d 8bh ; 74 628674 jmp near 060 8dh ; e9 61 038675 jmp near 060 59h ; e9 2a 038689 je short 05dabh ; 74 62 8690 jmp near 060adh ; e9 61 03 8691 jmp near 06079h ; e9 2a 03 8676 8692 mov ax, word [bp+016h] ; 8b 46 16 8677 8693 xor ah, ah ; 30 e4 … … 8692 8708 mov ax, word [bp-00ah] ; 8b 46 f6 8693 8709 cmp ax, 00080h ; 3d 80 00 8694 jnbe short 05d 65h ; 77 048710 jnbe short 05d85h ; 77 04 8695 8711 test ax, ax ; 85 c0 8696 jne short 05d 8eh ; 75 298697 mov bx, 00da 4h ; bb a40d8712 jne short 05daeh ; 75 29 8713 mov bx, 00da0h ; bb a0 0d 8698 8714 mov cx, ds ; 8c d9 8699 8715 mov ax, strict word 00004h ; b8 04 00 8700 call 01933h ; e8 c3 bb8716 call 01933h ; e8 a3 bb 8701 8717 mov al, byte [bp+017h] ; 8a 46 17 8702 8718 xor ah, ah ; 30 e4 … … 8708 8724 mov ax, strict word 00004h ; b8 04 00 8709 8725 push ax ; 50 8710 call 01976h ; e8 f1 bb8726 call 01976h ; e8 d1 bb 8711 8727 add sp, strict byte 00008h ; 83 c4 08 8712 jmp near 060 74h ; e9 e9 028713 jmp near 05f 3ah ; e9 ac 018728 jmp near 06094h ; e9 e9 02 8729 jmp near 05f5ah ; e9 ac 01 8714 8730 mov al, byte [bp-002h] ; 8a 46 fe 8715 8731 xor ah, ah ; 30 e4 … … 8724 8740 mov word [bp-00eh], dx ; 89 56 f2 8725 8741 cmp ax, word [bp-00ch] ; 3b 46 f4 8726 jbe short 05d bch ; 76 098742 jbe short 05ddch ; 76 09 8727 8743 cmp cx, word [bp-008h] ; 3b 4e f8 8728 jbe short 05d bch ; 76 048744 jbe short 05ddch ; 76 04 8729 8745 cmp di, dx ; 39 d7 8730 jbe short 05 dedh ; 76 318731 mov bx, 00da 4h ; bb a40d8746 jbe short 05e0dh ; 76 31 8747 mov bx, 00da0h ; bb a0 0d 8732 8748 mov cx, ds ; 8c d9 8733 8749 mov ax, strict word 00004h ; b8 04 00 8734 call 01933h ; e8 6c bb8750 call 01933h ; e8 4c bb 8735 8751 push di ; 57 8736 8752 push word [bp-008h] ; ff 76 f8 … … 8747 8763 mov ax, strict word 00004h ; b8 04 00 8748 8764 push ax ; 50 8749 call 01976h ; e8 8f bb8765 call 01976h ; e8 6f bb 8750 8766 add sp, strict byte 00010h ; 83 c4 10 8751 jmp near 060 74h ; e9 87 028767 jmp near 06094h ; e9 87 02 8752 8768 mov al, byte [bp+017h] ; 8a 46 17 8753 8769 xor ah, ah ; 30 e4 8754 8770 cmp ax, strict word 00004h ; 3d 04 00 8755 je short 05e 17h ; 74 208771 je short 05e37h ; 74 20 8756 8772 mov al, byte [bp-002h] ; 8a 46 fe 8757 8773 mov dx, strict word 0001ch ; ba 1c 00 … … 8761 8777 add bx, ax ; 01 c3 8762 8778 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8763 jne short 05e 20h ; 75 148779 jne short 05e40h ; 75 14 8764 8780 mov ax, word [es:bx+034h] ; 26 8b 47 34 8765 8781 cmp ax, word [bp-00eh] ; 3b 46 f2 8766 je short 05e 1ah ; 74 058767 jmp short 05e 20h ; eb 098768 jmp near 05f 36h ; e9 1c 018782 je short 05e3ah ; 74 05 8783 jmp short 05e40h ; eb 09 8784 jmp near 05f56h ; e9 1c 01 8769 8785 cmp byte [bp-002h], 008h ; 80 7e fe 08 8770 jc short 05e 4fh ; 72 2f8786 jc short 05e6fh ; 72 2f 8771 8787 mov ax, word [bp-00ch] ; 8b 46 f4 8772 8788 xor dx, dx ; 31 d2 8773 8789 mov bx, cx ; 89 cb 8774 8790 xor cx, cx ; 31 c9 8775 call 0a1 30h ; e8 04 438791 call 0a150h ; e8 04 43 8776 8792 xor bx, bx ; 31 db 8777 8793 add ax, word [bp-008h] ; 03 46 f8 … … 8779 8795 mov bx, word [bp-00eh] ; 8b 5e f2 8780 8796 xor cx, cx ; 31 c9 8781 call 0a1 30h ; e8 f5 428797 call 0a150h ; e8 f5 42 8782 8798 xor bx, bx ; 31 db 8783 8799 add ax, di ; 01 f8 … … 8836 8852 mov word [bp+016h], bx ; 89 5e 16 8837 8853 test dl, dl ; 84 d2 8838 je short 05f 36h ; 74 4a8839 mov bx, 00da 4h ; bb a40d8854 je short 05f56h ; 74 4a 8855 mov bx, 00da0h ; bb a0 0d 8840 8856 mov cx, ds ; 8c d9 8841 8857 mov ax, strict word 00004h ; b8 04 00 8842 call 01933h ; e8 3c ba8858 call 01933h ; e8 1c ba 8843 8859 mov al, dl ; 88 d0 8844 8860 xor ah, ah ; 30 e4 … … 8852 8868 mov ax, strict word 00004h ; b8 04 00 8853 8869 push ax ; 50 8854 call 01976h ; e8 67 ba8870 call 01976h ; e8 47 ba 8855 8871 add sp, strict byte 0000ah ; 83 c4 0a 8856 8872 mov ax, word [bp+016h] ; 8b 46 16 8857 8873 xor ah, ah ; 30 e4 8858 8874 or ah, 00ch ; 80 cc 0c 8859 jmp near 060 7ch ; e9 5f 018860 mov bx, 00da 4h ; bb a40d8875 jmp near 0609ch ; e9 5f 01 8876 mov bx, 00da0h ; bb a0 0d 8861 8877 mov cx, ds ; 8c d9 8862 8878 mov ax, strict word 00004h ; b8 04 00 8863 call 01933h ; e8 0b ba8879 call 01933h ; e8 eb b9 8864 8880 mov ax, 0077ah ; b8 7a 07 8865 8881 push ax ; 50 8866 8882 mov ax, strict word 00004h ; b8 04 00 8867 8883 push ax ; 50 8868 call 01976h ; e8 43 ba8884 call 01976h ; e8 23 ba 8869 8885 add sp, strict byte 00004h ; 83 c4 04 8870 8886 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8872 8888 mov dx, strict word 00074h ; ba 74 00 8873 8889 mov ax, strict word 00040h ; b8 40 00 8874 call 01660h ; e8 1b b78890 call 01660h ; e8 fb b6 8875 8891 and byte [bp+01ch], 0feh ; 80 66 1c fe 8876 8892 mov sp, bp ; 89 ec … … 8915 8931 or ax, dx ; 09 d0 8916 8932 mov word [bp+012h], ax ; 89 46 12 8917 jmp short 05f 36h ; eb 838933 jmp short 05f56h ; eb 83 8918 8934 mov al, byte [bp-002h] ; 8a 46 fe 8919 8935 cwd ; 99 … … 8932 8948 and AL, strict byte 0c0h ; 24 c0 8933 8949 cmp AL, strict byte 040h ; 3c 40 8934 jne short 05f d9h ; 75 038935 jmp near 05f 36h ; e9 5d ff8950 jne short 05ff9h ; 75 03 8951 jmp near 05f56h ; e9 5d ff 8936 8952 mov ax, word [bp+016h] ; 8b 46 16 8937 8953 xor ah, ah ; 30 e4 8938 8954 or ah, 0aah ; 80 cc aa 8939 jmp near 060 7ch ; e9 98 008955 jmp near 0609ch ; e9 98 00 8940 8956 mov al, byte [bp-002h] ; 8a 46 fe 8941 8957 xor ah, ah ; 30 e4 … … 8953 8969 mov bx, word [bp-008h] ; 8b 5e f8 8954 8970 xor cx, cx ; 31 c9 8955 call 0a1 30h ; e8 1e 418971 call 0a150h ; e8 1e 41 8956 8972 mov bx, di ; 89 fb 8957 8973 xor cx, cx ; 31 c9 8958 call 0a1 30h ; e8 17 418974 call 0a150h ; e8 17 41 8959 8975 mov word [bp-010h], ax ; 89 46 f0 8960 8976 mov word [bp-004h], dx ; 89 56 fc … … 8965 8981 or ah, 003h ; 80 cc 03 8966 8982 mov word [bp+016h], ax ; 89 46 16 8967 jmp near 05f 3ah ; e9 07 ff8968 mov bx, 00da 4h ; bb a40d8983 jmp near 05f5ah ; e9 07 ff 8984 mov bx, 00da0h ; bb a0 0d 8969 8985 mov cx, ds ; 8c d9 8970 8986 mov ax, strict word 00004h ; b8 04 00 8971 call 01933h ; e8 f5 b88987 call 01933h ; e8 d5 b8 8972 8988 mov al, byte [bp+017h] ; 8a 46 17 8973 8989 xor ah, ah ; 30 e4 … … 8979 8995 mov ax, strict word 00004h ; b8 04 00 8980 8996 push ax ; 50 8981 call 01976h ; e8 23 b98997 call 01976h ; e8 03 b9 8982 8998 add sp, strict byte 00008h ; 83 c4 08 8983 jmp near 05f 36h ; e9 dd fe8984 mov bx, 00da 4h ; bb a40d8999 jmp near 05f56h ; e9 dd fe 9000 mov bx, 00da0h ; bb a0 0d 8985 9001 mov cx, ds ; 8c d9 8986 9002 mov ax, strict word 00004h ; b8 04 00 8987 call 01933h ; e8 cf b89003 call 01933h ; e8 af b8 8988 9004 mov al, byte [bp+017h] ; 8a 46 17 8989 9005 xor ah, ah ; 30 e4 … … 8992 9008 push ax ; 50 8993 9009 mov ax, 007c7h ; b8 c7 07 8994 jmp near 05d 7dh ; e9 09 fd9010 jmp near 05d9dh ; e9 09 fd 8995 9011 mov ax, word [bp+016h] ; 8b 46 16 8996 9012 xor ah, ah ; 30 e4 … … 9001 9017 mov dx, strict word 00074h ; ba 74 00 9002 9018 mov ax, strict word 00040h ; b8 40 00 9003 call 01660h ; e8 d3 b59019 call 01660h ; e8 b3 b5 9004 9020 or byte [bp+01ch], 001h ; 80 4e 1c 01 9005 jmp near 05f 49h ; e9 b5 fe9006 dec si ; 4e9021 jmp near 05f69h ; e9 b5 fe 9022 outsb ; 6e 9007 9023 popaw ; 61 9008 and word [bx+di-07fh], 08161h ; 81 61 81 61 819024 mov ax, word [0a161h] ; a1 61 a1 9009 9025 popaw ; 61 9010 xchg bx, ax ; 93 9011 mul byte [gs:bp+si-07fh] ; 65 f6 62 81 9026 mov ax, word [0b361h] ; a1 61 b3 9027 db 065h, 016h 9028 ; gs push SS ; 65 16 9029 arpl [bx+di+01c61h], sp ; 63 a1 61 1c 9030 arpl [bp+di-0799bh], si ; 63 b3 65 86 9012 9031 popaw ; 61 9013 cld ; fc 9014 bound dx, [bp+di+06665h] ; 62 93 65 66 9032 xchg byte [bx+di-07ah], ah ; 86 61 86 9015 9033 popaw ; 61 9016 popad ; 66 61 9017 popad ; 66 61 9018 popad ; 66 61 9019 stosb ; aa 9020 db 065h, 066h, 061h 9021 ; gs popad ; 65 66 61 9022 popad ; 66 61 9023 _int13_harddisk_ext: ; 0xf60b4 LB 0x52b 9034 xchg byte [bx+di-036h], ah ; 86 61 ca 9035 xchg byte [gs:bx+di-07ah], ah ; 65 86 61 86 9036 popaw ; 61 9037 _int13_harddisk_ext: ; 0xf60d4 LB 0x52b 9024 9038 push bp ; 55 9025 9039 mov bp, sp ; 89 e5 … … 9027 9041 mov dx, strict word 0000eh ; ba 0e 00 9028 9042 mov ax, strict word 00040h ; b8 40 00 9029 call 0166eh ; e8 ab b59043 call 0166eh ; e8 8b b5 9030 9044 mov word [bp-018h], ax ; 89 46 e8 9031 9045 mov dx, strict word 0000eh ; ba 0e 00 9032 9046 mov ax, strict word 00040h ; b8 40 00 9033 call 0166eh ; e8 9f b59047 call 0166eh ; e8 7f b5 9034 9048 mov word [bp-008h], 00122h ; c7 46 f8 22 01 9035 9049 mov word [bp-006h], ax ; 89 46 fa … … 9037 9051 mov dx, 0008eh ; ba 8e 00 9038 9052 mov ax, strict word 00040h ; b8 40 00 9039 call 01660h ; e8 7e b59053 call 01660h ; e8 5e b5 9040 9054 mov ax, word [bp+00eh] ; 8b 46 0e 9041 9055 xor ah, ah ; 30 e4 9042 9056 cmp ax, 00080h ; 3d 80 00 9043 jc short 06 0f1h ; 72 059057 jc short 06111h ; 72 05 9044 9058 cmp ax, 00090h ; 3d 90 00 9045 jc short 061 10h ; 72 1f9059 jc short 06130h ; 72 1f 9046 9060 mov ax, word [bp+00eh] ; 8b 46 0e 9047 9061 xor ah, ah ; 30 e4 … … 9055 9069 mov ax, strict word 00004h ; b8 04 00 9056 9070 push ax ; 50 9057 call 01976h ; e8 6c b89071 call 01976h ; e8 4c b8 9058 9072 add sp, strict byte 0000ah ; 83 c4 0a 9059 jmp near 065 c0h ; e9 b0 049073 jmp near 065e0h ; e9 b0 04 9060 9074 mov ax, word [bp+00eh] ; 8b 46 0e 9061 9075 xor ah, ah ; 30 e4 … … 9065 9079 mov byte [bp-004h], dl ; 88 56 fc 9066 9080 cmp dl, 010h ; 80 fa 10 9067 jc short 061 35h ; 72 0e9081 jc short 06155h ; 72 0e 9068 9082 push ax ; 50 9069 9083 mov al, byte [bp+017h] ; 8a 46 17 … … 9072 9086 push ax ; 50 9073 9087 mov ax, 006b8h ; b8 b8 06 9074 jmp short 061 02h ; eb cd9088 jmp short 06122h ; eb cd 9075 9089 mov bl, byte [bp+017h] ; 8a 5e 17 9076 9090 xor bh, bh ; 30 ff 9077 9091 sub bx, strict byte 00041h ; 83 eb 41 9078 9092 cmp bx, strict byte 0000fh ; 83 fb 0f 9079 jnbe short 061 66h ; 77 249093 jnbe short 06186h ; 77 24 9080 9094 sal bx, 1 ; d1 e3 9081 9095 mov ax, word [bp+016h] ; 8b 46 16 9082 9096 xor ah, ah ; 30 e4 9083 jmp word [cs:bx+060 94h] ; 2e ff a7 94 609097 jmp word [cs:bx+060b4h] ; 2e ff a7 b4 60 9084 9098 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 9085 9099 mov ax, word [bp+016h] ; 8b 46 16 … … 9088 9102 mov word [bp+016h], ax ; 89 46 16 9089 9103 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 9090 jmp near 065 97h ; e9 31 049091 mov bx, 00da 4h ; bb a40d9104 jmp near 065b7h ; e9 31 04 9105 mov bx, 00da0h ; bb a0 0d 9092 9106 mov cx, ds ; 8c d9 9093 9107 mov ax, strict word 00004h ; b8 04 00 9094 call 01933h ; e8 c2 b79108 call 01933h ; e8 a2 b7 9095 9109 mov al, byte [bp+017h] ; 8a 46 17 9096 9110 xor ah, ah ; 30 e4 … … 9099 9113 push ax ; 50 9100 9114 mov ax, 007c7h ; b8 c7 07 9101 jmp near 062 1eh ; e9 9d 009115 jmp near 0623eh ; e9 9d 00 9102 9116 mov di, word [bp+00ah] ; 8b 7e 0a 9103 9117 mov es, [bp+004h] ; 8e 46 04 … … 9115 9129 xor bx, bx ; 31 db 9116 9130 mov si, strict word 00020h ; be 20 00 9117 call 0a1 90h ; e8 dc 3f9131 call 0a1b0h ; e8 dc 3f 9118 9132 mov word [bp-00eh], ax ; 89 46 f2 9119 9133 mov word [bp-010h], bx ; 89 5e f0 … … 9132 9146 mov dx, word [bp-00eh] ; 8b 56 f2 9133 9147 cmp dx, word [es:bx+03ch] ; 26 3b 57 3c 9134 jnbe short 062 06h ; 77 229135 jne short 062 2ch ; 75 469148 jnbe short 06226h ; 77 22 9149 jne short 0624ch ; 75 46 9136 9150 mov dx, word [bp-010h] ; 8b 56 f0 9137 9151 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9138 jnbe short 062 06h ; 77 179152 jnbe short 06226h ; 77 17 9139 9153 mov dx, word [bp-010h] ; 8b 56 f0 9140 9154 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9141 jne short 062 2ch ; 75 349155 jne short 0624ch ; 75 34 9142 9156 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 9143 jnbe short 062 06h ; 77 089144 jne short 062 2ch ; 75 2c9157 jnbe short 06226h ; 77 08 9158 jne short 0624ch ; 75 2c 9145 9159 cmp si, word [es:bx+036h] ; 26 3b 77 36 9146 jc short 062 2ch ; 72 269147 mov bx, 00da 4h ; bb a40d9160 jc short 0624ch ; 72 26 9161 mov bx, 00da0h ; bb a0 0d 9148 9162 mov cx, ds ; 8c d9 9149 9163 mov ax, strict word 00004h ; b8 04 00 9150 call 01933h ; e8 22 b79164 call 01933h ; e8 02 b7 9151 9165 mov al, byte [bp+017h] ; 8a 46 17 9152 9166 xor ah, ah ; 30 e4 … … 9158 9172 mov ax, strict word 00004h ; b8 04 00 9159 9173 push ax ; 50 9160 call 01976h ; e8 50 b79174 call 01976h ; e8 30 b7 9161 9175 add sp, strict byte 00008h ; 83 c4 08 9162 jmp near 065 c0h ; e9 94 039176 jmp near 065e0h ; e9 94 03 9163 9177 mov ah, byte [bp+017h] ; 8a 66 17 9164 9178 mov byte [bp-012h], ah ; 88 66 ee 9165 9179 mov byte [bp-011h], 000h ; c6 46 ef 00 9166 9180 cmp word [bp-012h], strict byte 00044h ; 83 7e ee 44 9167 je short 062 42h ; 74 069181 je short 06262h ; 74 06 9168 9182 cmp word [bp-012h], strict byte 00047h ; 83 7e ee 47 9169 jne short 062 45h ; 75 039170 jmp near 065 93h ; e9 4e 039183 jne short 06265h ; 75 03 9184 jmp near 065b3h ; e9 4e 03 9171 9185 les bx, [bp-008h] ; c4 5e f8 9172 9186 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 … … 9206 9220 mov word [es:bx+002h], ax ; 26 89 47 02 9207 9221 test dl, dl ; 84 d2 9208 je short 063 1ah ; 74 549209 mov bx, 00da 4h ; bb a40d9222 je short 0633ah ; 74 54 9223 mov bx, 00da0h ; bb a0 0d 9210 9224 mov cx, ds ; 8c d9 9211 9225 mov ax, strict word 00004h ; b8 04 00 9212 call 01933h ; e8 62 b69226 call 01933h ; e8 42 b6 9213 9227 mov al, dl ; 88 d0 9214 9228 xor ah, ah ; 30 e4 … … 9221 9235 mov ax, strict word 00004h ; b8 04 00 9222 9236 push ax ; 50 9223 call 01976h ; e8 8e b69237 call 01976h ; e8 6e b6 9224 9238 add sp, strict byte 0000ah ; 83 c4 0a 9225 9239 mov ax, word [bp+016h] ; 8b 46 16 9226 9240 xor ah, ah ; 30 e4 9227 9241 or ah, 00ch ; 80 cc 0c 9228 jmp near 065 c8h ; e9 d2 029242 jmp near 065e8h ; e9 d2 02 9229 9243 or ah, 0b2h ; 80 cc b2 9230 jmp near 065 c8h ; e9 cc 029244 jmp near 065e8h ; e9 cc 02 9231 9245 mov bx, word [bp+00ah] ; 8b 5e 0a 9232 9246 mov ax, word [bp+004h] ; 8b 46 04 … … 9238 9252 mov word [bp-014h], ax ; 89 46 ec 9239 9253 cmp ax, strict word 0001ah ; 3d 1a 00 9240 jnc short 063 1dh ; 73 069241 jmp near 065 c0h ; e9 a6 029242 jmp near 065 93h ; e9 76 029243 jnc short 063 22h ; 73 039244 jmp near 063 b5h ; e9 93 009254 jnc short 0633dh ; 73 06 9255 jmp near 065e0h ; e9 a6 02 9256 jmp near 065b3h ; e9 76 02 9257 jnc short 06342h ; 73 03 9258 jmp near 063d5h ; e9 93 00 9245 9259 mov al, byte [bp-004h] ; 8a 46 fc 9246 9260 xor ah, ah ; 30 e4 … … 9280 9294 mov dx, si ; 89 f2 9281 9295 mov si, strict word 00020h ; be 20 00 9282 call 0a1 80h ; e8 d5 3d9296 call 0a1a0h ; e8 d5 3d 9283 9297 mov bx, di ; 89 fb 9284 9298 mov word [es:bx+014h], dx ; 26 89 57 14 9285 9299 mov word [es:bx+016h], cx ; 26 89 4f 16 9286 9300 cmp word [bp-014h], strict byte 0001eh ; 83 7e ec 1e 9287 jc short 064 27h ; 72 6c9301 jc short 06447h ; 72 6c 9288 9302 mov es, [bp-00ah] ; 8e 46 f6 9289 9303 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 9316 9330 mov al, byte [es:bx+027h] ; 26 8a 47 27 9317 9331 test al, al ; 84 c0 9318 jne short 064 18h ; 75 049332 jne short 06438h ; 75 04 9319 9333 xor si, si ; 31 f6 9320 jmp short 064 1bh ; eb 039334 jmp short 0643bh ; eb 03 9321 9335 mov si, strict word 00008h ; be 08 00 9322 9336 or si, strict byte 00010h ; 83 ce 10 9323 9337 cmp AL, strict byte 001h ; 3c 01 9324 jne short 064 2ah ; 75 089338 jne short 0644ah ; 75 08 9325 9339 mov dx, strict word 00001h ; ba 01 00 9326 jmp short 064 2ch ; eb 059327 jmp near 064 c2h ; e9 98 009340 jmp short 0644ch ; eb 05 9341 jmp near 064e2h ; e9 98 00 9328 9342 xor dx, dx ; 31 d2 9329 9343 or si, dx ; 09 d6 9330 9344 cmp AL, strict byte 003h ; 3c 03 9331 jne short 064 37h ; 75 059345 jne short 06457h ; 75 05 9332 9346 mov ax, strict word 00003h ; b8 03 00 9333 jmp short 064 39h ; eb 029347 jmp short 06459h ; eb 02 9334 9348 xor ax, ax ; 31 c0 9335 9349 or si, ax ; 09 c6 … … 9360 9374 xor bl, bl ; 30 db 9361 9375 xor bh, bh ; 30 ff 9362 jmp short 064 a2h ; eb 059376 jmp short 064c2h ; eb 05 9363 9377 cmp bh, 00fh ; 80 ff 0f 9364 jnc short 064 b8h ; 73 169378 jnc short 064d8h ; 73 16 9365 9379 mov al, bh ; 88 f8 9366 9380 xor ah, ah ; 30 e4 … … 9368 9382 add dx, 00356h ; 81 c2 56 03 9369 9383 mov ax, word [bp-018h] ; 8b 46 e8 9370 call 01652h ; e8 a0 b19384 call 01652h ; e8 80 b1 9371 9385 add bl, al ; 00 c3 9372 9386 db 0feh, 0c7h 9373 9387 ; inc bh ; fe c7 9374 jmp short 064 9dh ; eb e59388 jmp short 064bdh ; eb e5 9375 9389 neg bl ; f6 db 9376 9390 les si, [bp-008h] ; c4 76 f8 9377 9391 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9378 9392 cmp word [bp-014h], strict byte 00042h ; 83 7e ec 42 9379 jnc short 064 cbh ; 73 039380 jmp near 065 93h ; e9 c8 009393 jnc short 064ebh ; 73 03 9394 jmp near 065b3h ; e9 c8 00 9381 9395 mov al, byte [bp-004h] ; 8a 46 fc 9382 9396 xor ah, ah ; 30 e4 … … 9398 9412 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9399 9413 test al, al ; 84 c0 9400 jne short 065 15h ; 75 0c9414 jne short 06535h ; 75 0c 9401 9415 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9402 9416 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9407 9421 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9408 9422 test al, al ; 84 c0 9409 jne short 065 4ah ; 75 169423 jne short 0656ah ; 75 16 9410 9424 mov word [es:di+030h], dx ; 26 89 55 30 9411 9425 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9422 9436 xor bl, bl ; 30 db 9423 9437 mov BH, strict byte 01eh ; b7 1e 9424 jmp short 065 75h ; eb 059438 jmp short 06595h ; eb 05 9425 9439 cmp bh, 040h ; 80 ff 40 9426 jnc short 065 8ah ; 73 159440 jnc short 065aah ; 73 15 9427 9441 mov al, bh ; 88 f8 9428 9442 xor ah, ah ; 30 e4 … … 9430 9444 add dx, ax ; 01 c2 9431 9445 mov ax, word [bp+004h] ; 8b 46 04 9432 call 01652h ; e8 ce b09446 call 01652h ; e8 ae b0 9433 9447 add bl, al ; 00 c3 9434 9448 db 0feh, 0c7h 9435 9449 ; inc bh ; fe c7 9436 jmp short 065 70h ; eb e69450 jmp short 06590h ; eb e6 9437 9451 neg bl ; f6 db 9438 9452 mov es, [bp-00ah] ; 8e 46 f6 … … 9442 9456 mov dx, strict word 00074h ; ba 74 00 9443 9457 mov ax, strict word 00040h ; b8 40 00 9444 call 01660h ; e8 be b09458 call 01660h ; e8 9e b0 9445 9459 and byte [bp+01ch], 0feh ; 80 66 1c fe 9446 9460 mov sp, bp ; 89 ec … … 9448 9462 retn ; c3 9449 9463 cmp ax, strict word 00006h ; 3d 06 00 9450 je short 065 93h ; 74 e49464 je short 065b3h ; 74 e4 9451 9465 cmp ax, strict word 00001h ; 3d 01 00 9452 jc short 065 c0h ; 72 0c9453 jbe short 065 93h ; 76 dd9466 jc short 065e0h ; 72 0c 9467 jbe short 065b3h ; 76 dd 9454 9468 cmp ax, strict word 00003h ; 3d 03 00 9455 jc short 065 c0h ; 72 059469 jc short 065e0h ; 72 05 9456 9470 cmp ax, strict word 00004h ; 3d 04 00 9457 jbe short 065 93h ; 76 d39471 jbe short 065b3h ; 76 d3 9458 9472 mov ax, word [bp+016h] ; 8b 46 16 9459 9473 xor ah, ah ; 30 e4 … … 9464 9478 mov dx, strict word 00074h ; ba 74 00 9465 9479 mov ax, strict word 00040h ; b8 40 00 9466 call 01660h ; e8 87 b09480 call 01660h ; e8 67 b0 9467 9481 or byte [bp+01ch], 001h ; 80 4e 1c 01 9468 jmp short 065 a6h ; eb c79469 _int14_function: ; 0xf65 df LB 0x15c9482 jmp short 065c6h ; eb c7 9483 _int14_function: ; 0xf65ff LB 0x15c 9470 9484 push bp ; 55 9471 9485 mov bp, sp ; 89 e5 … … 9475 9489 sal dx, 1 ; d1 e2 9476 9490 mov ax, strict word 00040h ; b8 40 00 9477 call 0166eh ; e8 7f b09491 call 0166eh ; e8 5f b0 9478 9492 mov si, ax ; 89 c6 9479 9493 mov bx, ax ; 89 c3 … … 9481 9495 add dx, strict byte 0007ch ; 83 c2 7c 9482 9496 mov ax, strict word 00040h ; b8 40 00 9483 call 01652h ; e8 53 b09497 call 01652h ; e8 33 b0 9484 9498 mov cl, al ; 88 c1 9485 9499 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9486 jnc short 066 0bh ; 73 049500 jnc short 0662bh ; 73 04 9487 9501 test si, si ; 85 f6 9488 jnbe short 066 0eh ; 77 039489 jmp near 067 31h ; e9 23 019502 jnbe short 0662eh ; 77 03 9503 jmp near 06751h ; e9 23 01 9490 9504 mov al, byte [bp+013h] ; 8a 46 13 9491 9505 cmp AL, strict byte 001h ; 3c 01 9492 jc short 066 22h ; 72 0d9493 jbe short 066 82h ; 76 6b9506 jc short 06642h ; 72 0d 9507 jbe short 066a2h ; 76 6b 9494 9508 cmp AL, strict byte 003h ; 3c 03 9495 je short 066 7ah ; 74 5f9509 je short 0669ah ; 74 5f 9496 9510 cmp AL, strict byte 002h ; 3c 02 9497 je short 066 7dh ; 74 5e9498 jmp near 067 2bh ; e9 09 019511 je short 0669dh ; 74 5e 9512 jmp near 0674bh ; e9 09 01 9499 9513 test al, al ; 84 c0 9500 jne short 066 7fh ; 75 599514 jne short 0669fh ; 75 59 9501 9515 lea dx, [bx+003h] ; 8d 57 03 9502 9516 in AL, DX ; ec … … 9508 9522 mov al, byte [bp+012h] ; 8a 46 12 9509 9523 test AL, strict byte 0e0h ; a8 e0 9510 jne short 066 45h ; 75 0c9524 jne short 06665h ; 75 0c 9511 9525 mov AL, strict byte 017h ; b0 17 9512 9526 mov dx, bx ; 89 da … … 9515 9529 mov dx, si ; 89 f2 9516 9530 out DX, AL ; ee 9517 jmp short 066 5ch ; eb 179531 jmp short 0667ch ; eb 17 9518 9532 and AL, strict byte 0e0h ; 24 e0 9519 9533 xor ah, ah ; 30 e4 … … 9542 9556 ; sub ah, ah ; 2a e4 9543 9557 mov byte [bp+012h], al ; 88 46 12 9544 jmp near 067 0ch ; e9 92 009545 jmp near 067 1ah ; e9 9d 009546 jmp short 066 d0h ; eb 519547 jmp near 067 2bh ; e9 a9 009558 jmp near 0672ch ; e9 92 00 9559 jmp near 0673ah ; e9 9d 00 9560 jmp short 066f0h ; eb 51 9561 jmp near 0674bh ; e9 a9 00 9548 9562 mov dx, strict word 0006ch ; ba 6c 00 9549 9563 mov ax, strict word 00040h ; b8 40 00 9550 call 0166eh ; e8 e3 af9564 call 0166eh ; e8 c3 af 9551 9565 mov si, ax ; 89 c6 9552 9566 lea dx, [bx+005h] ; 8d 57 05 … … 9556 9570 and ax, strict word 00060h ; 25 60 00 9557 9571 cmp ax, strict word 00060h ; 3d 60 00 9558 je short 066 b2h ; 74 179572 je short 066d2h ; 74 17 9559 9573 test cl, cl ; 84 c9 9560 je short 066 b2h ; 74 139574 je short 066d2h ; 74 13 9561 9575 mov dx, strict word 0006ch ; ba 6c 00 9562 9576 mov ax, strict word 00040h ; b8 40 00 9563 call 0166eh ; e8 c6 af9577 call 0166eh ; e8 a6 af 9564 9578 cmp ax, si ; 39 f0 9565 je short 066 8dh ; 74 e19579 je short 066adh ; 74 e1 9566 9580 mov si, ax ; 89 c6 9567 9581 db 0feh, 0c9h 9568 9582 ; dec cl ; fe c9 9569 jmp short 066 8dh ; eb db9583 jmp short 066adh ; eb db 9570 9584 test cl, cl ; 84 c9 9571 je short 066 bch ; 74 069585 je short 066dch ; 74 06 9572 9586 mov al, byte [bp+012h] ; 8a 46 12 9573 9587 mov dx, bx ; 89 da … … 9579 9593 mov byte [bp+013h], al ; 88 46 13 9580 9594 test cl, cl ; 84 c9 9581 jne short 067 0ch ; 75 439595 jne short 0672ch ; 75 43 9582 9596 or AL, strict byte 080h ; 0c 80 9583 9597 mov byte [bp+013h], al ; 88 46 13 9584 jmp short 067 0ch ; eb 3c9598 jmp short 0672ch ; eb 3c 9585 9599 mov dx, strict word 0006ch ; ba 6c 00 9586 9600 mov ax, strict word 00040h ; b8 40 00 9587 call 0166eh ; e8 95 af9601 call 0166eh ; e8 75 af 9588 9602 mov si, ax ; 89 c6 9589 9603 lea dx, [bx+005h] ; 8d 57 05 … … 9592 9606 ; sub ah, ah ; 2a e4 9593 9607 test AL, strict byte 001h ; a8 01 9594 jne short 06 6fch ; 75 179608 jne short 0671ch ; 75 17 9595 9609 test cl, cl ; 84 c9 9596 je short 06 6fch ; 74 139610 je short 0671ch ; 74 13 9597 9611 mov dx, strict word 0006ch ; ba 6c 00 9598 9612 mov ax, strict word 00040h ; b8 40 00 9599 call 0166eh ; e8 7c af9613 call 0166eh ; e8 5c af 9600 9614 cmp ax, si ; 39 f0 9601 je short 066 dbh ; 74 e59615 je short 066fbh ; 74 e5 9602 9616 mov si, ax ; 89 c6 9603 9617 db 0feh, 0c9h 9604 9618 ; dec cl ; fe c9 9605 jmp short 066 dbh ; eb df9619 jmp short 066fbh ; eb df 9606 9620 test cl, cl ; 84 c9 9607 je short 067 12h ; 74 129621 je short 06732h ; 74 12 9608 9622 mov byte [bp+013h], 000h ; c6 46 13 00 9609 9623 mov dx, bx ; 89 da … … 9613 9627 mov byte [bp+012h], al ; 88 46 12 9614 9628 and byte [bp+01ch], 0feh ; 80 66 1c fe 9615 jmp short 067 35h ; eb 239629 jmp short 06755h ; eb 23 9616 9630 lea dx, [bx+005h] ; 8d 57 05 9617 9631 in AL, DX ; ec 9618 9632 db 02ah, 0e4h 9619 9633 ; sub ah, ah ; 2a e4 9620 jmp short 066 cbh ; eb b19634 jmp short 066ebh ; eb b1 9621 9635 lea dx, [si+005h] ; 8d 54 05 9622 9636 in AL, DX ; ec … … 9628 9642 db 02ah, 0e4h 9629 9643 ; sub ah, ah ; 2a e4 9630 jmp short 067 09h ; eb de9644 jmp short 06729h ; eb de 9631 9645 or byte [bp+01ch], 001h ; 80 4e 1c 01 9632 jmp short 067 35h ; eb 049646 jmp short 06755h ; eb 04 9633 9647 or byte [bp+01ch], 001h ; 80 4e 1c 01 9634 9648 lea sp, [bp-002h] ; 8d 66 fe … … 9636 9650 pop bp ; 5d 9637 9651 retn ; c3 9638 timer_wait_: ; 0xf67 3b LB 0x439652 timer_wait_: ; 0xf675b LB 0x43 9639 9653 push bp ; 55 9640 9654 mov bp, sp ; 89 e5 … … 9644 9658 mov bx, strict word 0000fh ; bb 0f 00 9645 9659 xor cx, cx ; 31 c9 9646 call 0a1 50h ; e8 07 3a9660 call 0a170h ; e8 07 3a 9647 9661 mov cx, ax ; 89 c1 9648 9662 mov bx, dx ; 89 d3 … … 9656 9670 adc bx, strict byte 0ffffh ; 83 d3 ff 9657 9671 cmp bx, strict byte 0ffffh ; 83 fb ff 9658 jne short 067 68h ; 75 059672 jne short 06788h ; 75 05 9659 9673 cmp cx, strict byte 0ffffh ; 83 f9 ff 9660 je short 067 77h ; 74 0f9674 je short 06797h ; 74 0f 9661 9675 mov dx, strict word 00061h ; ba 61 00 9662 9676 in AL, DX ; ec … … 9665 9679 and AL, strict byte 010h ; 24 10 9666 9680 cmp al, byte [bp-006h] ; 3a 46 fa 9667 jne short 067 68h ; 75 f39668 jmp short 067 58h ; eb e19681 jne short 06788h ; 75 f3 9682 jmp short 06778h ; eb e1 9669 9683 lea sp, [bp-004h] ; 8d 66 fc 9670 9684 pop cx ; 59 … … 9672 9686 pop bp ; 5d 9673 9687 retn ; c3 9674 set_enable_a20_: ; 0xf67 7e LB 0x309688 set_enable_a20_: ; 0xf679e LB 0x30 9675 9689 push bp ; 55 9676 9690 mov bp, sp ; 89 e5 … … 9685 9699 mov cl, al ; 88 c1 9686 9700 test bx, bx ; 85 db 9687 je short 067 97h ; 74 059701 je short 067b7h ; 74 05 9688 9702 or AL, strict byte 002h ; 0c 02 9689 9703 out DX, AL ; ee 9690 jmp short 067 9ah ; eb 039704 jmp short 067bah ; eb 03 9691 9705 and AL, strict byte 0fdh ; 24 fd 9692 9706 out DX, AL ; ee 9693 9707 test cl, 002h ; f6 c1 02 9694 je short 067 a4h ; 74 059708 je short 067c4h ; 74 05 9695 9709 mov ax, strict word 00001h ; b8 01 00 9696 jmp short 067 a6h ; eb 029710 jmp short 067c6h ; eb 02 9697 9711 xor ax, ax ; 31 c0 9698 9712 lea sp, [bp-006h] ; 8d 66 fa … … 9702 9716 pop bp ; 5d 9703 9717 retn ; c3 9704 set_e820_range_: ; 0xf67 ae LB 0x889718 set_e820_range_: ; 0xf67ce LB 0x88 9705 9719 push si ; 56 9706 9720 push bp ; 55 … … 9732 9746 retn 0000ah ; c2 0a 00 9733 9747 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9734 db 0 43h, 06bh, 072h, 068h, 086h, 068h, 022h, 069h, 028h, 069h, 02dh, 069h, 032h, 069h, 0dah, 069h9735 db 0 feh, 069h, 01bh, 069h, 01bh, 069h, 0c8h, 06ah, 0f3h, 06ah, 006h, 06bh, 015h, 06bh, 022h, 069h9736 db 0 1eh, 06bh9737 _int15_function: ; 0xf68 36 LB 0x3439748 db 063h, 06bh, 092h, 068h, 0a6h, 068h, 042h, 069h, 048h, 069h, 04dh, 069h, 052h, 069h, 0fah, 069h 9749 db 01eh, 06ah, 03bh, 069h, 03bh, 069h, 0e8h, 06ah, 013h, 06bh, 026h, 06bh, 035h, 06bh, 042h, 069h 9750 db 03eh, 06bh 9751 _int15_function: ; 0xf6856 LB 0x343 9738 9752 push bp ; 55 9739 9753 mov bp, sp ; 89 e5 … … 9744 9758 mov dx, ax ; 89 c2 9745 9759 cmp ax, 000ech ; 3d ec 00 9746 jnbe short 068 7ch ; 77 359760 jnbe short 0689ch ; 77 35 9747 9761 push CS ; 0e 9748 9762 pop ES ; 07 9749 9763 mov cx, strict word 00011h ; b9 11 00 9750 mov di, 068 04h ; bf 04 689764 mov di, 06824h ; bf 24 68 9751 9765 repne scasb ; f2 ae 9752 9766 sal cx, 1 ; d1 e1 9753 9767 mov di, cx ; 89 cf 9754 mov si, word [cs:di+068 14h] ; 2e 8b b5 14 689768 mov si, word [cs:di+06834h] ; 2e 8b b5 34 68 9755 9769 mov ax, word [bp+012h] ; 8b 46 12 9756 9770 xor ah, ah ; 30 e4 … … 9765 9779 xor ah, ah ; 30 e4 9766 9780 cmp ax, 000c0h ; 3d c0 00 9767 je short 068 7fh ; 74 039768 jmp near 06b 43h ; e9 c4 029781 je short 0689fh ; 74 03 9782 jmp near 06b63h ; e9 c4 02 9769 9783 or byte [bp+018h], 001h ; 80 4e 18 01 9770 jmp near 06 aeah ; e9 64 029784 jmp near 06b0ah ; e9 64 02 9771 9785 mov dx, ax ; 89 c2 9772 9786 cmp ax, strict word 00001h ; 3d 01 00 9773 jc short 068 9bh ; 72 0e9774 jbe short 068 afh ; 76 209787 jc short 068bbh ; 72 0e 9788 jbe short 068cfh ; 76 20 9775 9789 cmp ax, strict word 00003h ; 3d 03 00 9776 je short 06 8e0h ; 74 4c9790 je short 06900h ; 74 4c 9777 9791 cmp ax, strict word 00002h ; 3d 02 00 9778 je short 068 bfh ; 74 269779 jmp short 06 8edh ; eb 529792 je short 068dfh ; 74 26 9793 jmp short 0690dh ; eb 52 9780 9794 test ax, ax ; 85 c0 9781 jne short 06 8edh ; 75 4e9795 jne short 0690dh ; 75 4e 9782 9796 xor ax, ax ; 31 c0 9783 call 067 7eh ; e8 da fe9797 call 0679eh ; e8 da fe 9784 9798 and byte [bp+018h], 0feh ; 80 66 18 fe 9785 9799 mov byte [bp+013h], 000h ; c6 46 13 00 9786 jmp near 069 1bh ; e9 6c 009800 jmp near 0693bh ; e9 6c 00 9787 9801 mov ax, strict word 00001h ; b8 01 00 9788 call 067 7eh ; e8 c9 fe9802 call 0679eh ; e8 c9 fe 9789 9803 and byte [bp+018h], 0feh ; 80 66 18 fe 9790 9804 mov byte [bp+013h], dh ; 88 76 13 9791 jmp near 069 1bh ; e9 5c 009805 jmp near 0693bh ; e9 5c 00 9792 9806 mov dx, 00092h ; ba 92 00 9793 9807 in AL, DX ; ec … … 9803 9817 xor al, dl ; 30 d0 9804 9818 mov byte [bp+013h], al ; 88 46 13 9805 jmp near 069 1bh ; e9 3b 009819 jmp near 0693bh ; e9 3b 00 9806 9820 and byte [bp+018h], 0feh ; 80 66 18 fe 9807 9821 mov byte [bp+013h], ah ; 88 66 13 9808 9822 mov word [bp+00ch], ax ; 89 46 0c 9809 jmp near 069 1bh ; e9 2e 009810 mov bx, 00da 4h ; bb a40d9823 jmp near 0693bh ; e9 2e 00 9824 mov bx, 00da0h ; bb a0 0d 9811 9825 mov cx, ds ; 8c d9 9812 9826 mov ax, strict word 00004h ; b8 04 00 9813 call 01933h ; e8 3b b09827 call 01933h ; e8 1b b0 9814 9828 mov ax, word [bp+012h] ; 8b 46 12 9815 9829 xor ah, ah ; 30 e4 … … 9819 9833 mov ax, strict word 00004h ; b8 04 00 9820 9834 push ax ; 50 9821 call 01976h ; e8 6d b09835 call 01976h ; e8 4d b0 9822 9836 add sp, strict byte 00006h ; 83 c4 06 9823 9837 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9832 9846 retn ; c3 9833 9847 mov word [bp+018h], dx ; 89 56 18 9834 jmp near 069 d4h ; e9 ac 009848 jmp near 069f4h ; e9 ac 00 9835 9849 mov word [bp+018h], dx ; 89 56 18 9836 jmp short 069 1bh ; eb ee9850 jmp short 0693bh ; eb ee 9837 9851 mov word [bp+018h], cx ; 89 4e 18 9838 jmp short 069 18h ; eb e69852 jmp short 06938h ; eb e6 9839 9853 test byte [bp+012h], 0ffh ; f6 46 12 ff 9840 jne short 069 a7h ; 75 6f9854 jne short 069c7h ; 75 6f 9841 9855 mov dx, 000a0h ; ba a0 00 9842 9856 mov ax, strict word 00040h ; b8 40 00 9843 call 01652h ; e8 11 ad9857 call 01652h ; e8 f1 ac 9844 9858 test AL, strict byte 001h ; a8 01 9845 jne short 069 a4h ; 75 5f9859 jne short 069c4h ; 75 5f 9846 9860 mov bx, strict word 00001h ; bb 01 00 9847 9861 mov dx, 000a0h ; ba a0 00 9848 9862 mov ax, strict word 00040h ; b8 40 00 9849 call 01660h ; e8 0f ad9863 call 01660h ; e8 ef ac 9850 9864 mov bx, word [bp+014h] ; 8b 5e 14 9851 9865 mov dx, 00098h ; ba 98 00 9852 9866 mov ax, strict word 00040h ; b8 40 00 9853 call 0167ch ; e8 1f ad9867 call 0167ch ; e8 ff ac 9854 9868 mov bx, word [bp+00ch] ; 8b 5e 0c 9855 9869 mov dx, 0009ah ; ba 9a 00 9856 9870 mov ax, strict word 00040h ; b8 40 00 9857 call 0167ch ; e8 13 ad9871 call 0167ch ; e8 f3 ac 9858 9872 mov bx, word [bp+00eh] ; 8b 5e 0e 9859 9873 mov dx, 0009ch ; ba 9c 00 9860 9874 mov ax, strict word 00040h ; b8 40 00 9861 call 0167ch ; e8 07 ad9875 call 0167ch ; e8 e7 ac 9862 9876 mov bx, word [bp+010h] ; 8b 5e 10 9863 9877 mov dx, 0009eh ; ba 9e 00 9864 9878 mov ax, strict word 00040h ; b8 40 00 9865 call 0167ch ; e8 fb ac9879 call 0167ch ; e8 db ac 9866 9880 and byte [bp+018h], 0feh ; 80 66 18 fe 9867 9881 mov dx, 000a1h ; ba a1 00 … … 9872 9886 out DX, AL ; ee 9873 9887 mov ax, strict word 0000bh ; b8 0b 00 9874 call 016aeh ; e8 1a ad9888 call 016aeh ; e8 fa ac 9875 9889 mov dl, al ; 88 c2 9876 9890 or dl, 040h ; 80 ca 40 9877 9891 xor dh, dh ; 30 f6 9878 9892 mov ax, strict word 0000bh ; b8 0b 00 9879 call 016c9h ; e8 28 ad9880 jmp near 069 1bh ; e9 77 ff9881 jmp near 06 ae1h ; e9 3a 019893 call 016c9h ; e8 08 ad 9894 jmp near 0693bh ; e9 77 ff 9895 jmp near 06b01h ; e9 3a 01 9882 9896 cmp ax, strict word 00001h ; 3d 01 00 9883 jne short 069 c8h ; 75 1c9897 jne short 069e8h ; 75 1c 9884 9898 xor bx, bx ; 31 db 9885 9899 mov dx, 000a0h ; ba a0 00 9886 9900 mov ax, strict word 00040h ; b8 40 00 9887 call 01660h ; e8 a9 ac9901 call 01660h ; e8 89 ac 9888 9902 and byte [bp+018h], 0feh ; 80 66 18 fe 9889 9903 mov ax, strict word 0000bh ; b8 0b 00 9890 call 016aeh ; e8 ed ac9904 call 016aeh ; e8 cd ac 9891 9905 mov dl, al ; 88 c2 9892 9906 and dl, 0bfh ; 80 e2 bf 9893 jmp short 069 99h ; eb d19907 jmp short 069b9h ; eb d1 9894 9908 mov word [bp+018h], dx ; 89 56 18 9895 9909 mov ax, bx ; 89 d8 … … 9899 9913 or bx, ax ; 09 c3 9900 9914 mov word [bp+012h], bx ; 89 5e 12 9901 jmp near 069 1bh ; e9 41 ff9915 jmp near 0693bh ; e9 41 ff 9902 9916 mov ax, strict word 00031h ; b8 31 00 9903 call 016aeh ; e8 ce ac9917 call 016aeh ; e8 ae ac 9904 9918 mov dh, al ; 88 c6 9905 9919 mov ax, strict word 00030h ; b8 30 00 9906 call 016aeh ; e8 c6 ac9920 call 016aeh ; e8 a6 ac 9907 9921 mov dl, al ; 88 c2 9908 9922 mov word [bp+012h], dx ; 89 56 12 9909 9923 cmp dx, strict byte 0ffc0h ; 83 fa c0 9910 jbe short 06 9f7h ; 76 059924 jbe short 06a17h ; 76 05 9911 9925 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9912 9926 and byte [bp+018h], 0feh ; 80 66 18 fe 9913 jmp near 069 1bh ; e9 1d ff9927 jmp near 0693bh ; e9 1d ff 9914 9928 cli ; fa 9915 9929 mov ax, strict word 00001h ; b8 01 00 9916 call 067 7eh ; e8 79 fd9930 call 0679eh ; e8 79 fd 9917 9931 mov dx, word [bp+006h] ; 8b 56 06 9918 9932 add dx, strict byte 00038h ; 83 c2 38 9919 9933 mov ax, word [bp+014h] ; 8b 46 14 9920 9934 mov bx, strict word 0ffffh ; bb ff ff 9921 call 0167ch ; e8 68 ac9935 call 0167ch ; e8 48 ac 9922 9936 mov dx, word [bp+006h] ; 8b 56 06 9923 9937 add dx, strict byte 0003ah ; 83 c2 3a 9924 9938 mov ax, word [bp+014h] ; 8b 46 14 9925 9939 xor bx, bx ; 31 db 9926 call 0167ch ; e8 5a ac9940 call 0167ch ; e8 3a ac 9927 9941 mov dx, word [bp+006h] ; 8b 56 06 9928 9942 add dx, strict byte 0003ch ; 83 c2 3c 9929 9943 mov ax, word [bp+014h] ; 8b 46 14 9930 9944 mov bx, strict word 0000fh ; bb 0f 00 9931 call 01660h ; e8 2f ac9945 call 01660h ; e8 0f ac 9932 9946 mov dx, word [bp+006h] ; 8b 56 06 9933 9947 add dx, strict byte 0003dh ; 83 c2 3d 9934 9948 mov ax, word [bp+014h] ; 8b 46 14 9935 9949 mov bx, 0009bh ; bb 9b 00 9936 call 01660h ; e8 20 ac9950 call 01660h ; e8 00 ac 9937 9951 mov dx, word [bp+006h] ; 8b 56 06 9938 9952 add dx, strict byte 0003eh ; 83 c2 3e 9939 9953 mov ax, word [bp+014h] ; 8b 46 14 9940 9954 xor bx, bx ; 31 db 9941 call 0167ch ; e8 2e ac9955 call 0167ch ; e8 0e ac 9942 9956 mov AL, strict byte 011h ; b0 11 9943 9957 mov dx, strict word 00020h ; ba 20 00 … … 9968 9982 out DX, AL ; ee 9969 9983 mov si, word [bp+006h] ; 8b 76 06 9970 call 06a 8ch ; e8 00 009984 call 06aach ; e8 00 00 9971 9985 pop di ; 5f 9972 9986 add di, strict byte 00018h ; 83 c7 18 … … 9996 10010 push cx ; 51 9997 10011 retf ; cb 9998 jmp near 069 1bh ; e9 53 fe9999 mov bx, 00da 4h ; bb a40d10012 jmp near 0693bh ; e9 53 fe 10013 mov bx, 00da0h ; bb a0 0d 10000 10014 mov cx, ds ; 8c d9 10001 10015 mov ax, strict word 00004h ; b8 04 00 10002 call 01933h ; e8 60 ae10016 call 01933h ; e8 40 ae 10003 10017 mov ax, 0086eh ; b8 6e 08 10004 10018 push ax ; 50 10005 10019 mov ax, strict word 00004h ; b8 04 00 10006 10020 push ax ; 50 10007 call 01976h ; e8 98 ae10021 call 01976h ; e8 78 ae 10008 10022 add sp, strict byte 00004h ; 83 c4 04 10009 10023 or byte [bp+018h], 001h ; 80 4e 18 01 … … 10012 10026 or ah, 086h ; 80 cc 86 10013 10027 mov word [bp+012h], ax ; 89 46 12 10014 jmp near 069 1bh ; e9 28 fe10028 jmp near 0693bh ; e9 28 fe 10015 10029 mov word [bp+018h], cx ; 89 4e 18 10016 10030 mov word [bp+012h], ax ; 89 46 12 10017 10031 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 10018 10032 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 10019 jmp near 069 1bh ; e9 15 fe10033 jmp near 0693bh ; e9 15 fe 10020 10034 mov dx, strict word 0000eh ; ba 0e 00 10021 10035 mov ax, strict word 00040h ; b8 40 00 10022 call 0166eh ; e8 5f ab10036 call 0166eh ; e8 3f ab 10023 10037 mov word [bp+014h], ax ; 89 46 14 10024 jmp near 06 9f7h ; e9 e2 fe10038 jmp near 06a17h ; e9 e2 fe 10025 10039 mov ax, 0089dh ; b8 9d 08 10026 10040 push ax ; 50 10027 10041 mov ax, strict word 00008h ; b8 08 00 10028 jmp short 06a dah ; eb bc10042 jmp short 06afah ; eb bc 10029 10043 test byte [bp+012h], 0ffh ; f6 46 12 ff 10030 jne short 06b 43h ; 75 1f10044 jne short 06b63h ; 75 1f 10031 10045 mov word [bp+012h], ax ; 89 46 12 10032 10046 mov ax, word [bp+00ch] ; 8b 46 0c 10033 10047 xor ah, ah ; 30 e4 10034 10048 cmp ax, strict word 00001h ; 3d 01 00 10035 jc short 06b 3ch ; 72 0b10049 jc short 06b5ch ; 72 0b 10036 10050 cmp ax, strict word 00003h ; 3d 03 00 10037 jnbe short 06b 3ch ; 77 0610051 jnbe short 06b5ch ; 77 06 10038 10052 mov word [bp+018h], cx ; 89 4e 18 10039 jmp near 069 1bh ; e9 df fd10053 jmp near 0693bh ; e9 df fd 10040 10054 or byte [bp+018h], 001h ; 80 4e 18 01 10041 jmp near 069 1bh ; e9 d8 fd10042 mov bx, 00da 4h ; bb a40d10055 jmp near 0693bh ; e9 d8 fd 10056 mov bx, 00da0h ; bb a0 0d 10043 10057 mov cx, ds ; 8c d9 10044 10058 mov ax, strict word 00004h ; b8 04 00 10045 call 01933h ; e8 e5 ad10059 call 01933h ; e8 c5 ad 10046 10060 push word [bp+00ch] ; ff 76 0c 10047 10061 push word [bp+012h] ; ff 76 12 … … 10050 10064 mov ax, strict word 00004h ; b8 04 00 10051 10065 push ax ; 50 10052 call 01976h ; e8 17 ae10066 call 01976h ; e8 f7 ad 10053 10067 add sp, strict byte 00008h ; 83 c4 08 10054 jmp near 06ae1h ; e9 7c ff 10055 loop 06bd3h ; e2 6c 10056 or AL, strict byte 06dh ; 0c 6d 10057 db 064h, 06dh 10058 ; fs insw ; 64 6d 10059 mov word [di-057h], bp ; 89 6d a9 10068 jmp near 06b01h ; e9 7c ff 10069 add ch, byte [di+02ch] ; 02 6d 2c 10060 10070 insw ; 6d 10061 enter 0ee6dh, 06dh ; c8 6d ee 6d 10062 adc AL, strict byte 06eh ; 14 6e 10063 push cx ; 51 10071 test byte [di-057h], ch ; 84 6d a9 10072 insw ; 6d 10073 leave ; c9 10074 insw ; 6d 10075 call 079ffh ; e8 6d 0e 10064 10076 outsb ; 6e 10065 db 085h 10077 xor AL, strict byte 06eh ; 34 6e 10078 jno short 06c05h ; 71 6e 10079 movsw ; a5 10066 10080 outsb ; 6e 10067 _int15_function32: ; 0xf6b 79 LB 0x39e10081 _int15_function32: ; 0xf6b99 LB 0x39e 10068 10082 push bp ; 55 10069 10083 mov bp, sp ; 89 e5 … … 10077 10091 xor dh, dh ; 30 f6 10078 10092 cmp ax, 000e8h ; 3d e8 00 10079 je short 06b dfh ; 74 4a10093 je short 06bffh ; 74 4a 10080 10094 cmp ax, 000d0h ; 3d d0 00 10081 je short 06b ach ; 74 1210095 je short 06bcch ; 74 12 10082 10096 cmp ax, 00086h ; 3d 86 00 10083 jne short 06b ddh ; 75 3e10097 jne short 06bfdh ; 75 3e 10084 10098 sti ; fb 10085 10099 mov dx, word [bp+01ch] ; 8b 56 1c 10086 10100 mov ax, word [bp+018h] ; 8b 46 18 10087 call 067 3bh ; e8 92 fb10088 jmp near 06d 5eh ; e9 b2 0110101 call 0675bh ; e8 92 fb 10102 jmp near 06d7eh ; e9 b2 01 10089 10103 cmp dx, strict byte 0004fh ; 83 fa 4f 10090 jne short 06b ddh ; 75 2c10104 jne short 06bfdh ; 75 2c 10091 10105 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 10092 jne short 06c 13h ; 75 5b10106 jne short 06c33h ; 75 5b 10093 10107 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 10094 jne short 06c 13h ; 75 5410108 jne short 06c33h ; 75 54 10095 10109 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 10096 jne short 06c 13h ; 75 4d10110 jne short 06c33h ; 75 4d 10097 10111 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 10098 jne short 06c 13h ; 75 4610112 jne short 06c33h ; 75 46 10099 10113 mov ax, word [bp+00ah] ; 8b 46 0a 10100 10114 or ax, word [bp+008h] ; 0b 46 08 10101 jne short 06c 13h ; 75 3e10115 jne short 06c33h ; 75 3e 10102 10116 mov ax, word [bp+006h] ; 8b 46 06 10103 10117 or ax, word [bp+004h] ; 0b 46 04 10104 je short 06 be1h ; 74 0410105 jmp short 06c 13h ; eb 3410106 jmp short 06c 09h ; eb 2810118 je short 06c01h ; 74 04 10119 jmp short 06c33h ; eb 34 10120 jmp short 06c29h ; eb 28 10107 10121 mov word [bp+028h], bx ; 89 5e 28 10108 10122 mov ax, word [bp+014h] ; 8b 46 14 … … 10116 10130 mov word [bp+020h], 03332h ; c7 46 20 32 33 10117 10131 mov word [bp+022h], 04941h ; c7 46 22 41 49 10118 jmp near 06d 5eh ; e9 55 0110132 jmp near 06d7eh ; e9 55 01 10119 10133 cmp dx, strict byte 00020h ; 83 fa 20 10120 je short 06c 19h ; 74 0b10134 je short 06c39h ; 74 0b 10121 10135 cmp dx, strict byte 00001h ; 83 fa 01 10122 je short 06c 16h ; 74 0310123 jmp near 06d 31h ; e9 1b 0110124 jmp near 06e d7h ; e9 be 0210136 je short 06c36h ; 74 03 10137 jmp near 06d51h ; e9 1b 01 10138 jmp near 06ef7h ; e9 be 02 10125 10139 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 10126 jne short 06c 13h ; 75 f310140 jne short 06c33h ; 75 f3 10127 10141 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 10128 jne short 06c 13h ; 75 ec10142 jne short 06c33h ; 75 ec 10129 10143 mov ax, strict word 00035h ; b8 35 00 10130 call 016aeh ; e8 81 aa10144 call 016aeh ; e8 61 aa 10131 10145 mov bl, al ; 88 c3 10132 10146 xor bh, bh ; 30 ff … … 10135 10149 sal bx, 1 ; d1 e3 10136 10150 rcl dx, 1 ; d1 d2 10137 loop 06c 36h ; e2 fa10151 loop 06c56h ; e2 fa 10138 10152 mov ax, strict word 00034h ; b8 34 00 10139 call 016aeh ; e8 6c aa10153 call 016aeh ; e8 4c aa 10140 10154 xor ah, ah ; 30 e4 10141 10155 mov dx, bx ; 89 da … … 10145 10159 adc dx, 00100h ; 81 d2 00 01 10146 10160 cmp dx, 00100h ; 81 fa 00 01 10147 jc short 06c 5ch ; 72 0610148 jne short 06c 8ah ; 75 3210161 jc short 06c7ch ; 72 06 10162 jne short 06caah ; 75 32 10149 10163 test bx, bx ; 85 db 10150 jnbe short 06c 8ah ; 77 2e10164 jnbe short 06caah ; 77 2e 10151 10165 mov ax, strict word 00031h ; b8 31 00 10152 call 016aeh ; e8 4c aa10166 call 016aeh ; e8 2c aa 10153 10167 mov bl, al ; 88 c3 10154 10168 xor bh, bh ; 30 ff … … 10157 10171 sal bx, 1 ; d1 e3 10158 10172 rcl dx, 1 ; d1 d2 10159 loop 06c 6bh ; e2 fa10173 loop 06c8bh ; e2 fa 10160 10174 mov ax, strict word 00030h ; b8 30 00 10161 call 016aeh ; e8 37 aa10175 call 016aeh ; e8 17 aa 10162 10176 xor ah, ah ; 30 e4 10163 10177 or bx, ax ; 09 c3 … … 10165 10179 sal bx, 1 ; d1 e3 10166 10180 rcl dx, 1 ; d1 d2 10167 loop 06c 7eh ; e2 fa10181 loop 06c9eh ; e2 fa 10168 10182 add bx, strict byte 00000h ; 83 c3 00 10169 10183 adc dx, strict byte 00010h ; 83 d2 10 10170 10184 mov ax, strict word 00062h ; b8 62 00 10171 call 016aeh ; e8 1e aa10185 call 016aeh ; e8 fe a9 10172 10186 xor ah, ah ; 30 e4 10173 10187 mov word [bp-00ah], ax ; 89 46 f6 … … 10177 10191 sal word [bp-00ah], 1 ; d1 66 f6 10178 10192 rcl word [bp-008h], 1 ; d1 56 f8 10179 loop 06c 9dh ; e2 f810193 loop 06cbdh ; e2 f8 10180 10194 mov ax, strict word 00061h ; b8 61 00 10181 call 016aeh ; e8 03 aa10195 call 016aeh ; e8 e3 a9 10182 10196 xor ah, ah ; 30 e4 10183 10197 or word [bp-00ah], ax ; 09 46 f6 … … 10186 10200 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10187 10201 mov ax, strict word 00063h ; b8 63 00 10188 call 016aeh ; e8 ed a910202 call 016aeh ; e8 cd a9 10189 10203 mov byte [bp-004h], al ; 88 46 fc 10190 10204 mov byte [bp-006h], al ; 88 46 fa 10191 10205 mov ax, word [bp+014h] ; 8b 46 14 10192 10206 cmp ax, strict word 00009h ; 3d 09 00 10193 jnbe short 06d 31h ; 77 6210207 jnbe short 06d51h ; 77 62 10194 10208 mov si, ax ; 89 c6 10195 10209 sal si, 1 ; d1 e6 … … 10198 10212 mov cx, dx ; 89 d1 10199 10213 adc cx, strict byte 0ffffh ; 83 d1 ff 10200 jmp word [cs:si+06b 65h] ; 2e ff a4 65 6b10214 jmp word [cs:si+06b85h] ; 2e ff a4 85 6b 10201 10215 mov ax, strict word 00001h ; b8 01 00 10202 10216 push ax ; 50 … … 10212 10226 xor bx, bx ; 31 db 10213 10227 xor cx, cx ; 31 c9 10214 call 067 aeh ; e8 af fa10228 call 067ceh ; e8 af fa 10215 10229 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 10216 10230 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 10217 jmp near 06e bch ; e9 b0 0110231 jmp near 06edch ; e9 b0 01 10218 10232 mov ax, strict word 00002h ; b8 02 00 10219 10233 push ax ; 50 … … 10229 10243 mov bx, 0fc00h ; bb 00 fc 10230 10244 mov cx, strict word 00009h ; b9 09 00 10231 call 067 aeh ; e8 84 fa10245 call 067ceh ; e8 84 fa 10232 10246 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 10233 jmp short 06d 04h ; eb d310234 mov bx, 00da 4h ; bb a40d10247 jmp short 06d24h ; eb d3 10248 mov bx, 00da0h ; bb a0 0d 10235 10249 mov cx, ds ; 8c d9 10236 10250 mov ax, strict word 00004h ; b8 04 00 10237 call 01933h ; e8 f7 ab10251 call 01933h ; e8 d7 ab 10238 10252 push word [bp+014h] ; ff 76 14 10239 10253 push word [bp+020h] ; ff 76 20 … … 10242 10256 mov ax, strict word 00004h ; b8 04 00 10243 10257 push ax ; 50 10244 call 01976h ; e8 29 ac10258 call 01976h ; e8 09 ac 10245 10259 add sp, strict byte 00008h ; 83 c4 08 10246 10260 or byte [bp+028h], 001h ; 80 4e 28 01 … … 10266 10280 xor bx, bx ; 31 db 10267 10281 mov cx, strict word 0000fh ; b9 0f 00 10268 call 067 aeh ; e8 2d fa10282 call 067ceh ; e8 2d fa 10269 10283 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 10270 jmp near 06d 04h ; e9 7b ff10284 jmp near 06d24h ; e9 7b ff 10271 10285 mov dx, strict word 00001h ; ba 01 00 10272 10286 push dx ; 52 … … 10280 10294 xor bx, bx ; 31 db 10281 10295 mov cx, strict word 00010h ; b9 10 00 10282 call 067 aeh ; e8 0d fa10296 call 067ceh ; e8 0d fa 10283 10297 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 10284 jmp near 06d 04h ; e9 5b ff10298 jmp near 06d24h ; e9 5b ff 10285 10299 mov si, strict word 00003h ; be 03 00 10286 10300 push si ; 56 … … 10294 10308 mov bx, ax ; 89 c3 10295 10309 mov ax, si ; 89 f0 10296 call 067 aeh ; e8 ee f910310 call 067ceh ; e8 ee f9 10297 10311 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 10298 jmp near 06d 04h ; e9 3c ff10312 jmp near 06d24h ; e9 3c ff 10299 10313 mov ax, strict word 00002h ; b8 02 00 10300 10314 push ax ; 50 … … 10310 10324 xor bx, bx ; 31 db 10311 10325 mov cx, 0fec0h ; b9 c0 fe 10312 call 067 aeh ; e8 c8 f910326 call 067ceh ; e8 c8 f9 10313 10327 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10314 jmp near 06d 04h ; e9 16 ff10328 jmp near 06d24h ; e9 16 ff 10315 10329 mov ax, strict word 00002h ; b8 02 00 10316 10330 push ax ; 50 … … 10326 10340 xor bx, bx ; 31 db 10327 10341 mov cx, 0fee0h ; b9 e0 fe 10328 call 067 aeh ; e8 a2 f910342 call 067ceh ; e8 a2 f9 10329 10343 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10330 jmp near 06d 04h ; e9 f0 fe10344 jmp near 06d24h ; e9 f0 fe 10331 10345 mov ax, strict word 00002h ; b8 02 00 10332 10346 push ax ; 50 … … 10340 10354 xor bx, bx ; 31 db 10341 10355 mov cx, strict word 0fffch ; b9 fc ff 10342 call 067 aeh ; e8 82 f910356 call 067ceh ; e8 82 f9 10343 10357 cmp byte [bp-004h], 000h ; 80 7e fc 00 10344 jne short 06e 39h ; 75 0710358 jne short 06e59h ; 75 07 10345 10359 mov ax, word [bp-008h] ; 8b 46 f8 10346 10360 test ax, ax ; 85 c0 10347 je short 06e 49h ; 74 1010361 je short 06e69h ; 74 10 10348 10362 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10349 jmp near 06d 04h ; e9 c3 fe10363 jmp near 06d24h ; e9 c3 fe 10350 10364 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10351 jmp near 06d 04h ; e9 bb fe10365 jmp near 06d24h ; e9 bb fe 10352 10366 mov word [bp+014h], ax ; 89 46 14 10353 10367 mov word [bp+016h], ax ; 89 46 16 10354 jmp short 06e bch ; eb 6b10368 jmp short 06edch ; eb 6b 10355 10369 mov ax, strict word 00002h ; b8 02 00 10356 10370 push ax ; 50 … … 10364 10378 xor bx, bx ; 31 db 10365 10379 xor cx, cx ; 31 c9 10366 call 067 aeh ; e8 46 f910380 call 067ceh ; e8 46 f9 10367 10381 cmp byte [bp-004h], 000h ; 80 7e fc 00 10368 jne short 06e 75h ; 75 0710382 jne short 06e95h ; 75 07 10369 10383 mov ax, word [bp-008h] ; 8b 46 f8 10370 10384 test ax, ax ; 85 c0 10371 je short 06e 7dh ; 74 0810385 je short 06e9dh ; 74 08 10372 10386 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10373 jmp near 06d 04h ; e9 87 fe10387 jmp near 06d24h ; e9 87 fe 10374 10388 mov word [bp+014h], ax ; 89 46 14 10375 10389 mov word [bp+016h], ax ; 89 46 16 10376 jmp short 06e bch ; eb 3710390 jmp short 06edch ; eb 37 10377 10391 cmp byte [bp-004h], 000h ; 80 7e fc 00 10378 jne short 06e 91h ; 75 0610392 jne short 06eb1h ; 75 06 10379 10393 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10380 je short 06e bch ; 74 2b10394 je short 06edch ; 74 2b 10381 10395 mov ax, strict word 00001h ; b8 01 00 10382 10396 push ax ; 50 … … 10394 10408 xor bx, bx ; 31 db 10395 10409 xor cx, cx ; 31 c9 10396 call 067 aeh ; e8 fa f810410 call 067ceh ; e8 fa f8 10397 10411 xor ax, ax ; 31 c0 10398 10412 mov word [bp+014h], ax ; 89 46 14 … … 10403 10417 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10404 10418 and byte [bp+028h], 0feh ; 80 66 28 fe 10405 jmp near 06d 5eh ; e9 87 fe10419 jmp near 06d7eh ; e9 87 fe 10406 10420 mov word [bp+028h], bx ; 89 5e 28 10407 10421 mov ax, strict word 00031h ; b8 31 00 10408 call 016aeh ; e8 ce a710422 call 016aeh ; e8 ae a7 10409 10423 mov dh, al ; 88 c6 10410 10424 mov ax, strict word 00030h ; b8 30 00 10411 call 016aeh ; e8 c6 a710425 call 016aeh ; e8 a6 a7 10412 10426 mov dl, al ; 88 c2 10413 10427 mov word [bp+01ch], dx ; 89 56 1c 10414 10428 cmp dx, 03c00h ; 81 fa 00 3c 10415 jbe short 06 ef8h ; 76 0510429 jbe short 06f18h ; 76 05 10416 10430 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10417 10431 mov ax, strict word 00035h ; b8 35 00 10418 call 016aeh ; e8 b0 a710432 call 016aeh ; e8 90 a7 10419 10433 mov dh, al ; 88 c6 10420 10434 mov ax, strict word 00034h ; b8 34 00 10421 call 016aeh ; e8 a8 a710435 call 016aeh ; e8 88 a7 10422 10436 mov dl, al ; 88 c2 10423 10437 mov word [bp+018h], dx ; 89 56 18 … … 10425 10439 mov word [bp+020h], ax ; 89 46 20 10426 10440 mov word [bp+014h], dx ; 89 56 14 10427 jmp near 06d 5eh ; e9 47 fe10428 _inv_op_handler: ; 0xf6f 17 LB 0x18f10441 jmp near 06d7eh ; e9 47 fe 10442 _inv_op_handler: ; 0xf6f37 LB 0x18f 10429 10443 push bp ; 55 10430 10444 mov bp, sp ; 89 e5 … … 10435 10449 les bx, [bp+018h] ; c4 5e 18 10436 10450 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10437 jne short 06f 2dh ; 75 0610451 jne short 06f4dh ; 75 06 10438 10452 inc word [bp+018h] ; ff 46 18 10439 jmp near 070 9fh ; e9 72 0110453 jmp near 070bfh ; e9 72 01 10440 10454 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10441 je short 06f 37h ; 74 0310442 jmp near 070 9bh ; e9 64 0110455 je short 06f57h ; 74 03 10456 jmp near 070bbh ; e9 64 01 10443 10457 mov si, 00800h ; be 00 08 10444 10458 xor ax, ax ; 31 c0 … … 10469 10483 sal ax, 1 ; d1 e0 10470 10484 rcl dx, 1 ; d1 d2 10471 loop 06f 88h ; e2 fa10485 loop 06fa8h ; e2 fa 10472 10486 cmp bx, dx ; 39 d3 10473 jne short 06f 96h ; 75 0410487 jne short 06fb6h ; 75 04 10474 10488 cmp di, ax ; 39 c7 10475 je short 06f 9bh ; 74 0510489 je short 06fbbh ; 74 05 10476 10490 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 10477 10491 mov es, [bp-008h] ; 8e 46 f8 … … 10484 10498 sal ax, 1 ; d1 e0 10485 10499 rcl dx, 1 ; d1 d2 10486 loop 06f b1h ; e2 fa10500 loop 06fd1h ; e2 fa 10487 10501 cmp bx, dx ; 39 d3 10488 jne short 06f bfh ; 75 0410502 jne short 06fdfh ; 75 04 10489 10503 cmp di, ax ; 39 c7 10490 je short 06f c3h ; 74 0410504 je short 06fe3h ; 74 04 10491 10505 or byte [bp-006h], 002h ; 80 4e fa 02 10492 10506 xor ax, ax ; 31 c0 … … 10538 10552 mov ax, strict word 00008h ; b8 08 00 10539 10553 test cx, strict word 00001h ; f7 c1 01 00 10540 je near 070 58h ; 0f 84 02 0010554 je near 07078h ; 0f 84 02 00 10541 10555 mov es, ax ; 8e c0 10542 10556 test cx, strict word 00002h ; f7 c1 02 00 10543 je near 070 80h ; 0f 84 20 0010557 je near 070a0h ; 0f 84 20 00 10544 10558 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10545 10559 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10558 10572 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10559 10573 iret ; cf 10560 jmp short 070 9fh ; eb 0410574 jmp short 070bfh ; eb 04 10561 10575 sti ; fb 10562 10576 hlt ; f4 10563 jmp short 070 9ch ; eb fd10577 jmp short 070bch ; eb fd 10564 10578 lea sp, [bp-004h] ; 8d 66 fc 10565 10579 pop di ; 5f … … 10567 10581 pop bp ; 5d 10568 10582 retn ; c3 10569 init_rtc_: ; 0xf70 a6 LB 0x2810583 init_rtc_: ; 0xf70c6 LB 0x28 10570 10584 push bp ; 55 10571 10585 mov bp, sp ; 89 e5 … … 10573 10587 mov dx, strict word 00026h ; ba 26 00 10574 10588 mov ax, strict word 0000ah ; b8 0a 00 10575 call 016c9h ; e8 16 a610589 call 016c9h ; e8 f6 a5 10576 10590 mov dx, strict word 00002h ; ba 02 00 10577 10591 mov ax, strict word 0000bh ; b8 0b 00 10578 call 016c9h ; e8 0d a610592 call 016c9h ; e8 ed a5 10579 10593 mov ax, strict word 0000ch ; b8 0c 00 10580 call 016aeh ; e8 ec a510594 call 016aeh ; e8 cc a5 10581 10595 mov ax, strict word 0000dh ; b8 0d 00 10582 call 016aeh ; e8 e6 a510596 call 016aeh ; e8 c6 a5 10583 10597 lea sp, [bp-002h] ; 8d 66 fe 10584 10598 pop dx ; 5a 10585 10599 pop bp ; 5d 10586 10600 retn ; c3 10587 rtc_updating_: ; 0xf70 ce LB 0x2110601 rtc_updating_: ; 0xf70ee LB 0x21 10588 10602 push bp ; 55 10589 10603 mov bp, sp ; 89 e5 … … 10591 10605 mov dx, 061a8h ; ba a8 61 10592 10606 dec dx ; 4a 10593 je short 07 0e6h ; 74 0e10607 je short 07106h ; 74 0e 10594 10608 mov ax, strict word 0000ah ; b8 0a 00 10595 call 016aeh ; e8 d0 a510609 call 016aeh ; e8 b0 a5 10596 10610 test AL, strict byte 080h ; a8 80 10597 jne short 070 d5h ; 75 f310611 jne short 070f5h ; 75 f3 10598 10612 xor ax, ax ; 31 c0 10599 jmp short 07 0e9h ; eb 0310613 jmp short 07109h ; eb 03 10600 10614 mov ax, strict word 00001h ; b8 01 00 10601 10615 lea sp, [bp-002h] ; 8d 66 fe … … 10603 10617 pop bp ; 5d 10604 10618 retn ; c3 10605 _int70_function: ; 0xf7 0ef LB 0xbf10619 _int70_function: ; 0xf710f LB 0xbf 10606 10620 push bp ; 55 10607 10621 mov bp, sp ; 89 e5 … … 10609 10623 push ax ; 50 10610 10624 mov ax, strict word 0000bh ; b8 0b 00 10611 call 016aeh ; e8 b4 a510625 call 016aeh ; e8 94 a5 10612 10626 mov bl, al ; 88 c3 10613 10627 mov byte [bp-004h], al ; 88 46 fc 10614 10628 mov ax, strict word 0000ch ; b8 0c 00 10615 call 016aeh ; e8 a9 a510629 call 016aeh ; e8 89 a5 10616 10630 mov dl, al ; 88 c2 10617 10631 test bl, 060h ; f6 c3 60 10618 jne short 071 0fh ; 75 0310619 jmp near 071 95h ; e9 86 0010632 jne short 0712fh ; 75 03 10633 jmp near 071b5h ; e9 86 00 10620 10634 test AL, strict byte 020h ; a8 20 10621 je short 071 17h ; 74 0410635 je short 07137h ; 74 04 10622 10636 sti ; fb 10623 10637 int 04ah ; cd 4a 10624 10638 cli ; fa 10625 10639 test dl, 040h ; f6 c2 40 10626 je short 071 7fh ; 74 6310640 je short 0719fh ; 74 63 10627 10641 mov dx, 000a0h ; ba a0 00 10628 10642 mov ax, strict word 00040h ; b8 40 00 10629 call 01652h ; e8 2d a510643 call 01652h ; e8 0d a5 10630 10644 test al, al ; 84 c0 10631 je short 071 95h ; 74 6c10645 je short 071b5h ; 74 6c 10632 10646 mov dx, 0009ch ; ba 9c 00 10633 10647 mov ax, strict word 00040h ; b8 40 00 10634 call 0168ah ; e8 58 a510648 call 0168ah ; e8 38 a5 10635 10649 test dx, dx ; 85 d2 10636 jne short 071 81h ; 75 4b10650 jne short 071a1h ; 75 4b 10637 10651 cmp ax, 003d1h ; 3d d1 03 10638 jnc short 071 81h ; 73 4610652 jnc short 071a1h ; 73 46 10639 10653 mov dx, 00098h ; ba 98 00 10640 10654 mov ax, strict word 00040h ; b8 40 00 10641 call 0166eh ; e8 2a a510655 call 0166eh ; e8 0a a5 10642 10656 mov si, ax ; 89 c6 10643 10657 mov dx, 0009ah ; ba 9a 00 10644 10658 mov ax, strict word 00040h ; b8 40 00 10645 call 0166eh ; e8 1f a510659 call 0166eh ; e8 ff a4 10646 10660 mov cx, ax ; 89 c1 10647 10661 xor bx, bx ; 31 db 10648 10662 mov dx, 000a0h ; ba a0 00 10649 10663 mov ax, strict word 00040h ; b8 40 00 10650 call 01660h ; e8 04 a510664 call 01660h ; e8 e4 a4 10651 10665 mov dl, byte [bp-004h] ; 8a 56 fc 10652 10666 and dl, 037h ; 80 e2 37 10653 10667 xor dh, dh ; 30 f6 10654 10668 mov ax, strict word 0000bh ; b8 0b 00 10655 call 016c9h ; e8 5f a510669 call 016c9h ; e8 3f a5 10656 10670 mov dx, cx ; 89 ca 10657 10671 mov ax, si ; 89 f0 10658 call 01652h ; e8 e1 a410672 call 01652h ; e8 c1 a4 10659 10673 mov bl, al ; 88 c3 10660 10674 or bl, 080h ; 80 cb 80 … … 10662 10676 mov dx, cx ; 89 ca 10663 10677 mov ax, si ; 89 f0 10664 call 01660h ; e8 e1 a410665 jmp short 071 95h ; eb 1410678 call 01660h ; e8 c1 a4 10679 jmp short 071b5h ; eb 14 10666 10680 mov bx, ax ; 89 c3 10667 10681 add bx, 0fc2fh ; 81 c3 2f fc … … 10670 10684 mov dx, 0009ch ; ba 9c 00 10671 10685 mov ax, strict word 00040h ; b8 40 00 10672 call 0169ch ; e8 07 a510673 call 0e030h ; e8 98 6e10686 call 0169ch ; e8 e7 a4 10687 call 0e030h ; e8 78 6e 10674 10688 lea sp, [bp-002h] ; 8d 66 fe 10675 10689 pop si ; 5e 10676 10690 pop bp ; 5d 10677 10691 retn ; c3 10678 les si, [bx+di-015h] ; c4 71 eb10679 jno short 071b3h ; 71 1010680 jc short 07 1f1h ; 72 4c10681 jc short 071 45h ; 72 9e10682 jc short 071 7eh ; 72 d510683 jc short 07 1c7h ; 72 1c10684 jnc short 07 224h ; 73 7710692 in AL, strict byte 071h ; e4 71 10693 or si, word [bp+si+030h] ; 0b 72 30 10694 jc short 07231h ; 72 6c 10695 jc short 07185h ; 72 be 10696 jc short 071beh ; 72 f5 10697 jc short 07207h ; 72 3c 10698 jnc short 07164h ; 73 97 10685 10699 db 073h 10686 _int1a_function: ; 0xf71 ae LB 0x1d910700 _int1a_function: ; 0xf71ce LB 0x1d9 10687 10701 push bp ; 55 10688 10702 mov bp, sp ; 89 e5 … … 10690 10704 mov al, byte [bp+013h] ; 8a 46 13 10691 10705 cmp AL, strict byte 007h ; 3c 07 10692 jnbe short 072 17h ; 77 5e10706 jnbe short 07237h ; 77 5e 10693 10707 mov bl, al ; 88 c3 10694 10708 xor bh, bh ; 30 ff 10695 10709 sal bx, 1 ; d1 e3 10696 jmp word [cs:bx+071 9eh] ; 2e ff a7 9e 7110710 jmp word [cs:bx+071beh] ; 2e ff a7 be 71 10697 10711 cli ; fa 10698 10712 mov bx, 0046eh ; bb 6e 04 … … 10709 10723 mov byte [es:bx], 000h ; 26 c6 07 00 10710 10724 sti ; fb 10711 jmp short 072 17h ; eb 2c10725 jmp short 07237h ; eb 2c 10712 10726 cli ; fa 10713 10727 mov bx, 0046eh ; bb 6e 04 … … 10723 10737 sti ; fb 10724 10738 mov byte [bp+013h], 000h ; c6 46 13 00 10725 jmp short 072 17h ; eb 0710726 call 070 ceh ; e8 bb fe10739 jmp short 07237h ; eb 07 10740 call 070eeh ; e8 bb fe 10727 10741 test ax, ax ; 85 c0 10728 je short 072 1ah ; 74 0310729 jmp near 072 48h ; e9 2e 0010742 je short 0723ah ; 74 03 10743 jmp near 07268h ; e9 2e 00 10730 10744 xor ax, ax ; 31 c0 10731 call 016aeh ; e8 8f a410745 call 016aeh ; e8 6f a4 10732 10746 mov byte [bp+00fh], al ; 88 46 0f 10733 10747 mov ax, strict word 00002h ; b8 02 00 10734 call 016aeh ; e8 86 a410748 call 016aeh ; e8 66 a4 10735 10749 mov byte [bp+010h], al ; 88 46 10 10736 10750 mov ax, strict word 00004h ; b8 04 00 10737 call 016aeh ; e8 7d a410751 call 016aeh ; e8 5d a4 10738 10752 mov dl, al ; 88 c2 10739 10753 mov byte [bp+011h], al ; 88 46 11 10740 10754 mov ax, strict word 0000bh ; b8 0b 00 10741 call 016aeh ; e8 72 a410755 call 016aeh ; e8 52 a4 10742 10756 and AL, strict byte 001h ; 24 01 10743 10757 mov byte [bp+00eh], al ; 88 46 0e … … 10747 10761 pop bp ; 5d 10748 10762 retn ; c3 10749 call 070 ceh ; e8 7f fe10763 call 070eeh ; e8 7f fe 10750 10764 test ax, ax ; 85 c0 10751 je short 072 56h ; 74 0310752 call 070 a6h ; e8 50 fe10765 je short 07276h ; 74 03 10766 call 070c6h ; e8 50 fe 10753 10767 mov dl, byte [bp+00fh] ; 8a 56 0f 10754 10768 xor dh, dh ; 30 f6 10755 10769 xor ax, ax ; 31 c0 10756 call 016c9h ; e8 69 a410770 call 016c9h ; e8 49 a4 10757 10771 mov dl, byte [bp+010h] ; 8a 56 10 10758 10772 xor dh, dh ; 30 f6 10759 10773 mov ax, strict word 00002h ; b8 02 00 10760 call 016c9h ; e8 5e a410774 call 016c9h ; e8 3e a4 10761 10775 mov dl, byte [bp+011h] ; 8a 56 11 10762 10776 xor dh, dh ; 30 f6 10763 10777 mov ax, strict word 00004h ; b8 04 00 10764 call 016c9h ; e8 53 a410778 call 016c9h ; e8 33 a4 10765 10779 mov ax, strict word 0000bh ; b8 0b 00 10766 call 016aeh ; e8 32 a410780 call 016aeh ; e8 12 a4 10767 10781 mov bl, al ; 88 c3 10768 10782 and bl, 060h ; 80 e3 60 … … 10774 10788 xor dh, dh ; 30 f6 10775 10789 mov ax, strict word 0000bh ; b8 0b 00 10776 call 016c9h ; e8 34 a410790 call 016c9h ; e8 14 a4 10777 10791 mov byte [bp+013h], 000h ; c6 46 13 00 10778 10792 mov byte [bp+012h], bl ; 88 5e 12 10779 jmp short 072 48h ; eb aa10793 jmp short 07268h ; eb aa 10780 10794 mov byte [bp+013h], 000h ; c6 46 13 00 10781 call 070 ceh ; e8 29 fe10795 call 070eeh ; e8 29 fe 10782 10796 test ax, ax ; 85 c0 10783 je short 072 abh ; 74 0210784 jmp short 072 48h ; eb 9d10797 je short 072cbh ; 74 02 10798 jmp short 07268h ; eb 9d 10785 10799 mov ax, strict word 00009h ; b8 09 00 10786 call 016aeh ; e8 fd a310800 call 016aeh ; e8 dd a3 10787 10801 mov byte [bp+010h], al ; 88 46 10 10788 10802 mov ax, strict word 00008h ; b8 08 00 10789 call 016aeh ; e8 f4 a310803 call 016aeh ; e8 d4 a3 10790 10804 mov byte [bp+00fh], al ; 88 46 0f 10791 10805 mov ax, strict word 00007h ; b8 07 00 10792 call 016aeh ; e8 eb a310806 call 016aeh ; e8 cb a3 10793 10807 mov byte [bp+00eh], al ; 88 46 0e 10794 10808 mov ax, strict word 00032h ; b8 32 00 10795 call 016aeh ; e8 e2 a310809 call 016aeh ; e8 c2 a3 10796 10810 mov byte [bp+011h], al ; 88 46 11 10797 10811 mov byte [bp+012h], al ; 88 46 12 10798 jmp near 072 48h ; e9 73 ff10799 call 070 ceh ; e8 f6 fd10812 jmp near 07268h ; e9 73 ff 10813 call 070eeh ; e8 f6 fd 10800 10814 test ax, ax ; 85 c0 10801 je short 07 2e2h ; 74 0610802 call 070 a6h ; e8 c7 fd10803 jmp near 072 48h ; e9 66 ff10815 je short 07302h ; 74 06 10816 call 070c6h ; e8 c7 fd 10817 jmp near 07268h ; e9 66 ff 10804 10818 mov dl, byte [bp+010h] ; 8a 56 10 10805 10819 xor dh, dh ; 30 f6 10806 10820 mov ax, strict word 00009h ; b8 09 00 10807 call 016c9h ; e8 dc a310821 call 016c9h ; e8 bc a3 10808 10822 mov dl, byte [bp+00fh] ; 8a 56 0f 10809 10823 xor dh, dh ; 30 f6 10810 10824 mov ax, strict word 00008h ; b8 08 00 10811 call 016c9h ; e8 d1 a310825 call 016c9h ; e8 b1 a3 10812 10826 mov dl, byte [bp+00eh] ; 8a 56 0e 10813 10827 xor dh, dh ; 30 f6 10814 10828 mov ax, strict word 00007h ; b8 07 00 10815 call 016c9h ; e8 c6 a310829 call 016c9h ; e8 a6 a3 10816 10830 mov dl, byte [bp+011h] ; 8a 56 11 10817 10831 xor dh, dh ; 30 f6 10818 10832 mov ax, strict word 00032h ; b8 32 00 10819 call 016c9h ; e8 bb a310833 call 016c9h ; e8 9b a3 10820 10834 mov ax, strict word 0000bh ; b8 0b 00 10821 call 016aeh ; e8 9a a310835 call 016aeh ; e8 7a a3 10822 10836 mov bl, al ; 88 c3 10823 10837 and bl, 07fh ; 80 e3 7f 10824 jmp near 072 8bh ; e9 6f ff10838 jmp near 072abh ; e9 6f ff 10825 10839 mov ax, strict word 0000bh ; b8 0b 00 10826 call 016aeh ; e8 8c a310840 call 016aeh ; e8 6c a3 10827 10841 mov bl, al ; 88 c3 10828 10842 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10829 10843 test AL, strict byte 020h ; a8 20 10830 je short 073 30h ; 74 0310831 jmp near 072 48h ; e9 18 ff10832 call 070 ceh ; e8 9b fd10844 je short 07350h ; 74 03 10845 jmp near 07268h ; e9 18 ff 10846 call 070eeh ; e8 9b fd 10833 10847 test ax, ax ; 85 c0 10834 je short 073 3ah ; 74 0310835 call 070 a6h ; e8 6c fd10848 je short 0735ah ; 74 03 10849 call 070c6h ; e8 6c fd 10836 10850 mov dl, byte [bp+00fh] ; 8a 56 0f 10837 10851 xor dh, dh ; 30 f6 10838 10852 mov ax, strict word 00001h ; b8 01 00 10839 call 016c9h ; e8 84 a310853 call 016c9h ; e8 64 a3 10840 10854 mov dl, byte [bp+010h] ; 8a 56 10 10841 10855 xor dh, dh ; 30 f6 10842 10856 mov ax, strict word 00003h ; b8 03 00 10843 call 016c9h ; e8 79 a310857 call 016c9h ; e8 59 a3 10844 10858 mov dl, byte [bp+011h] ; 8a 56 11 10845 10859 xor dh, dh ; 30 f6 10846 10860 mov ax, strict word 00005h ; b8 05 00 10847 call 016c9h ; e8 6e a310861 call 016c9h ; e8 4e a3 10848 10862 mov dx, 000a1h ; ba a1 00 10849 10863 in AL, DX ; ec … … 10857 10871 xor dh, dh ; 30 f6 10858 10872 mov ax, strict word 0000bh ; b8 0b 00 10859 call 016c9h ; e8 55 a310860 jmp near 072 48h ; e9 d1 fe10873 call 016c9h ; e8 35 a3 10874 jmp near 07268h ; e9 d1 fe 10861 10875 mov ax, strict word 0000bh ; b8 0b 00 10862 call 016aeh ; e8 31 a310876 call 016aeh ; e8 11 a3 10863 10877 mov bl, al ; 88 c3 10864 10878 mov dl, al ; 88 c2 10865 10879 and dl, 057h ; 80 e2 57 10866 jmp near 072 8dh ; e9 06 ff10867 send_to_mouse_ctrl_: ; 0xf73 87 LB 0x3810880 jmp near 072adh ; e9 06 ff 10881 send_to_mouse_ctrl_: ; 0xf73a7 LB 0x38 10868 10882 push bp ; 55 10869 10883 mov bp, sp ; 89 e5 … … 10876 10890 ; sub ah, ah ; 2a e4 10877 10891 test AL, strict byte 002h ; a8 02 10878 je short 073 aah ; 74 1210892 je short 073cah ; 74 12 10879 10893 mov ax, 008eeh ; b8 ee 08 10880 10894 push ax ; 50 10881 mov ax, 0116 ch ; b8 6c1110895 mov ax, 01168h ; b8 68 11 10882 10896 push ax ; 50 10883 10897 mov ax, strict word 00007h ; b8 07 00 10884 10898 push ax ; 50 10885 call 01976h ; e8 cf a510899 call 01976h ; e8 af a5 10886 10900 add sp, strict byte 00006h ; 83 c4 06 10887 10901 mov AL, strict byte 0d4h ; b0 d4 … … 10897 10911 pop bp ; 5d 10898 10912 retn ; c3 10899 get_mouse_data_: ; 0xf73 bf LB 0x5d10913 get_mouse_data_: ; 0xf73df LB 0x5d 10900 10914 push bp ; 55 10901 10915 mov bp, sp ; 89 e5 … … 10912 10926 and ax, strict word 00021h ; 25 21 00 10913 10927 cmp ax, strict word 00021h ; 3d 21 00 10914 je short 074 02h ; 74 2810928 je short 07422h ; 74 28 10915 10929 test cx, cx ; 85 c9 10916 je short 074 02h ; 74 2410930 je short 07422h ; 74 24 10917 10931 mov dx, strict word 00061h ; ba 61 00 10918 10932 in AL, DX ; ec … … 10931 10945 xor ah, ah ; 30 e4 10932 10946 cmp dx, ax ; 39 c2 10933 je short 07 3e9h ; 74 ea10947 je short 07409h ; 74 ea 10934 10948 dec cx ; 49 10935 jmp short 073 cch ; eb ca10949 jmp short 073ech ; eb ca 10936 10950 test cx, cx ; 85 c9 10937 jne short 074 0ah ; 75 0410951 jne short 0742ah ; 75 04 10938 10952 mov AL, strict byte 001h ; b0 01 10939 jmp short 074 15h ; eb 0b10953 jmp short 07435h ; eb 0b 10940 10954 mov dx, strict word 00060h ; ba 60 00 10941 10955 in AL, DX ; ec … … 10949 10963 pop bp ; 5d 10950 10964 retn ; c3 10951 set_kbd_command_byte_: ; 0xf74 1c LB 0x3610965 set_kbd_command_byte_: ; 0xf743c LB 0x36 10952 10966 push bp ; 55 10953 10967 mov bp, sp ; 89 e5 … … 10960 10974 ; sub ah, ah ; 2a e4 10961 10975 test AL, strict byte 002h ; a8 02 10962 je short 074 3fh ; 74 1210976 je short 0745fh ; 74 12 10963 10977 mov ax, 008f8h ; b8 f8 08 10964 10978 push ax ; 50 10965 mov ax, 0116 ch ; b8 6c1110979 mov ax, 01168h ; b8 68 11 10966 10980 push ax ; 50 10967 10981 mov ax, strict word 00007h ; b8 07 00 10968 10982 push ax ; 50 10969 call 01976h ; e8 3a a510983 call 01976h ; e8 1a a5 10970 10984 add sp, strict byte 00006h ; 83 c4 06 10971 10985 mov AL, strict byte 060h ; b0 60 … … 10980 10994 pop bp ; 5d 10981 10995 retn ; c3 10982 _int74_function: ; 0xf74 52 LB 0xd210996 _int74_function: ; 0xf7472 LB 0xd2 10983 10997 push bp ; 55 10984 10998 mov bp, sp ; 89 e5 … … 10986 11000 mov dx, strict word 0000eh ; ba 0e 00 10987 11001 mov ax, strict word 00040h ; b8 40 00 10988 call 0166eh ; e8 0d a211002 call 0166eh ; e8 ed a1 10989 11003 mov cx, ax ; 89 c1 10990 11004 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10995 11009 and AL, strict byte 021h ; 24 21 10996 11010 cmp AL, strict byte 021h ; 3c 21 10997 jne short 074 96h ; 75 2211011 jne short 074b6h ; 75 22 10998 11012 mov dx, strict word 00060h ; ba 60 00 10999 11013 in AL, DX ; ec … … 11003 11017 mov dx, strict word 00026h ; ba 26 00 11004 11018 mov ax, cx ; 89 c8 11005 call 01652h ; e8 ce a111019 call 01652h ; e8 ae a1 11006 11020 mov byte [bp-002h], al ; 88 46 fe 11007 11021 mov dx, strict word 00027h ; ba 27 00 11008 11022 mov ax, cx ; 89 c8 11009 call 01652h ; e8 c3 a111023 call 01652h ; e8 a3 a1 11010 11024 mov byte [bp-006h], al ; 88 46 fa 11011 11025 test AL, strict byte 080h ; a8 80 11012 jne short 074 99h ; 75 0311013 jmp near 075 10h ; e9 77 0011026 jne short 074b9h ; 75 03 11027 jmp near 07530h ; e9 77 00 11014 11028 mov al, byte [bp-006h] ; 8a 46 fa 11015 11029 and AL, strict byte 007h ; 24 07 … … 11025 11039 add dx, strict byte 00028h ; 83 c2 28 11026 11040 mov ax, cx ; 89 c8 11027 call 01660h ; e8 a4 a111041 call 01660h ; e8 84 a1 11028 11042 mov al, byte [bp-008h] ; 8a 46 f8 11029 11043 cmp al, byte [bp-004h] ; 3a 46 fc 11030 jc short 075 00h ; 72 3c11044 jc short 07520h ; 72 3c 11031 11045 mov dx, strict word 00028h ; ba 28 00 11032 11046 mov ax, cx ; 89 c8 11033 call 01652h ; e8 86 a111047 call 01652h ; e8 66 a1 11034 11048 xor ah, ah ; 30 e4 11035 11049 mov word [bp+00ch], ax ; 89 46 0c 11036 11050 mov dx, strict word 00029h ; ba 29 00 11037 11051 mov ax, cx ; 89 c8 11038 call 01652h ; e8 79 a111052 call 01652h ; e8 59 a1 11039 11053 xor ah, ah ; 30 e4 11040 11054 mov word [bp+00ah], ax ; 89 46 0a 11041 11055 mov dx, strict word 0002ah ; ba 2a 00 11042 11056 mov ax, cx ; 89 c8 11043 call 01652h ; e8 6c a111057 call 01652h ; e8 4c a1 11044 11058 xor ah, ah ; 30 e4 11045 11059 mov word [bp+008h], ax ; 89 46 08 … … 11048 11062 mov byte [bp-002h], ah ; 88 66 fe 11049 11063 test byte [bp-006h], 080h ; f6 46 fa 80 11050 je short 075 03h ; 74 0a11064 je short 07523h ; 74 0a 11051 11065 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 11052 jmp short 075 03h ; eb 0311066 jmp short 07523h ; eb 03 11053 11067 inc byte [bp-002h] ; fe 46 fe 11054 11068 mov bl, byte [bp-002h] ; 8a 5e fe … … 11056 11070 mov dx, strict word 00026h ; ba 26 00 11057 11071 mov ax, cx ; 89 c8 11058 call 01660h ; e8 50 a111072 call 01660h ; e8 30 a1 11059 11073 mov sp, bp ; 89 ec 11060 11074 pop bp ; 5d 11061 11075 retn ; c3 11062 db 066h, 075h, 0e2h 11063 ; jne short 074f9h ; 66 75 e2 11064 jne short 0757bh ; 75 62 11065 jbe short 07512h ; 76 f7 11066 jbe short 07586h ; 76 69 11067 jnbe short 074cch ; 77 ad 11068 jne short 074b2h ; 75 91 11069 jnbe short 07581h ; 77 5e 11076 xchg byte [di+002h], dh ; 86 75 02 11077 jbe short 074bbh ; 76 82 11078 jbe short 07552h ; 76 17 11079 jnbe short 074c6h ; 77 89 11080 jnbe short 0750ch ; 77 cd 11081 jne short 074f2h ; 75 b1 11082 jnbe short 075c1h ; 77 7e 11070 11083 db 078h 11071 _int15_function_mouse: ; 0xf75 24 LB 0x3a011084 _int15_function_mouse: ; 0xf7544 LB 0x3a0 11072 11085 push bp ; 55 11073 11086 mov bp, sp ; 89 e5 … … 11076 11089 mov dx, strict word 0000eh ; ba 0e 00 11077 11090 mov ax, strict word 00040h ; b8 40 00 11078 call 0166eh ; e8 3a a111091 call 0166eh ; e8 1a a1 11079 11092 mov cx, ax ; 89 c1 11080 11093 cmp byte [bp+012h], 007h ; 80 7e 12 07 11081 jbe short 075 47h ; 76 0b11094 jbe short 07567h ; 76 0b 11082 11095 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11083 11096 mov byte [bp+013h], 001h ; c6 46 13 01 11084 jmp near 078 beh ; e9 77 0311097 jmp near 078deh ; e9 77 03 11085 11098 mov ax, strict word 00065h ; b8 65 00 11086 call 074 1ch ; e8 cf fe11099 call 0743ch ; e8 cf fe 11087 11100 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 11088 11101 mov byte [bp+013h], 000h ; c6 46 13 00 11089 11102 mov bl, byte [bp+012h] ; 8a 5e 12 11090 11103 cmp bl, 007h ; 80 fb 07 11091 jnbe short 075 bbh ; 77 5e11104 jnbe short 075dbh ; 77 5e 11092 11105 xor bh, bh ; 30 ff 11093 11106 sal bx, 1 ; d1 e3 11094 jmp word [cs:bx+075 14h] ; 2e ff a7 14 7511107 jmp word [cs:bx+07534h] ; 2e ff a7 34 75 11095 11108 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 11096 jnbe short 075 beh ; 77 5211109 jnbe short 075deh ; 77 52 11097 11110 mov dx, strict word 00027h ; ba 27 00 11098 11111 mov ax, cx ; 89 c8 11099 call 01652h ; e8 de a011112 call 01652h ; e8 be a0 11100 11113 test AL, strict byte 080h ; a8 80 11101 jne short 075 83h ; 75 0b11114 jne short 075a3h ; 75 0b 11102 11115 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11103 11116 mov byte [bp+013h], 005h ; c6 46 13 05 11104 jmp near 078 b8h ; e9 35 0311117 jmp near 078d8h ; e9 35 03 11105 11118 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 11106 jne short 075 8dh ; 75 0411119 jne short 075adh ; 75 04 11107 11120 mov AL, strict byte 0f5h ; b0 f5 11108 jmp short 075 8fh ; eb 0211121 jmp short 075afh ; eb 02 11109 11122 mov AL, strict byte 0f4h ; b0 f4 11110 11123 xor ah, ah ; 30 e4 11111 call 073 87h ; e8 f3 fd11124 call 073a7h ; e8 f3 fd 11112 11125 test al, al ; 84 c0 11113 jne short 075 c1h ; 75 2911126 jne short 075e1h ; 75 29 11114 11127 mov dx, ss ; 8c d2 11115 11128 lea ax, [bp-006h] ; 8d 46 fa 11116 call 073 bfh ; e8 1f fe11129 call 073dfh ; e8 1f fe 11117 11130 test al, al ; 84 c0 11118 je short 075 aah ; 74 0611131 je short 075cah ; 74 06 11119 11132 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11120 jne short 075 c1h ; 75 1711121 jmp near 078 b8h ; e9 0b 0311133 jne short 075e1h ; 75 17 11134 jmp near 078d8h ; e9 0b 03 11122 11135 mov al, byte [bp+00dh] ; 8a 46 0d 11123 11136 cmp AL, strict byte 001h ; 3c 01 11124 jc short 075 b8h ; 72 0411137 jc short 075d8h ; 72 04 11125 11138 cmp AL, strict byte 008h ; 3c 08 11126 jbe short 075 c4h ; 76 0c11127 jmp near 077 5fh ; e9 a4 0111128 jmp near 078 a2h ; e9 e4 0211129 jmp near 078 b0h ; e9 ef 0211130 jmp near 078 36h ; e9 72 0211139 jbe short 075e4h ; 76 0c 11140 jmp near 0777fh ; e9 a4 01 11141 jmp near 078c2h ; e9 e4 02 11142 jmp near 078d0h ; e9 ef 02 11143 jmp near 07856h ; e9 72 02 11131 11144 mov dx, strict word 00027h ; ba 27 00 11132 11145 mov ax, cx ; 89 c8 11133 call 01652h ; e8 86 a011146 call 01652h ; e8 66 a0 11134 11147 mov ah, byte [bp+00dh] ; 8a 66 0d 11135 11148 db 0feh, 0cch … … 11141 11154 mov dx, strict word 00027h ; ba 27 00 11142 11155 mov ax, cx ; 89 c8 11143 call 01660h ; e8 7e a011156 call 01660h ; e8 5e a0 11144 11157 mov dx, strict word 00026h ; ba 26 00 11145 11158 mov ax, cx ; 89 c8 11146 call 01652h ; e8 68 a011159 call 01652h ; e8 48 a0 11147 11160 mov bl, al ; 88 c3 11148 11161 and bl, 0f8h ; 80 e3 f8 … … 11150 11163 mov dx, strict word 00026h ; ba 26 00 11151 11164 mov ax, cx ; 89 c8 11152 call 01660h ; e8 67 a011165 call 01660h ; e8 47 a0 11153 11166 mov ax, 000ffh ; b8 ff 00 11154 call 073 87h ; e8 88 fd11167 call 073a7h ; e8 88 fd 11155 11168 test al, al ; 84 c0 11156 jne short 075 c1h ; 75 be11169 jne short 075e1h ; 75 be 11157 11170 mov dx, ss ; 8c d2 11158 11171 lea ax, [bp-008h] ; 8d 46 f8 11159 call 073 bfh ; e8 b4 fd11172 call 073dfh ; e8 b4 fd 11160 11173 mov cl, al ; 88 c1 11161 11174 cmp byte [bp-008h], 0feh ; 80 7e f8 fe 11162 jne short 076 1dh ; 75 0a11175 jne short 0763dh ; 75 0a 11163 11176 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11164 11177 mov byte [bp+013h], 004h ; c6 46 13 04 11165 jmp short 075 aah ; eb 8d11178 jmp short 075cah ; eb 8d 11166 11179 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11167 je short 076 37h ; 74 1411180 je short 07657h ; 74 14 11168 11181 mov al, byte [bp-008h] ; 8a 46 f8 11169 11182 xor ah, ah ; 30 e4 … … 11173 11186 mov ax, strict word 00007h ; b8 07 00 11174 11187 push ax ; 50 11175 call 01976h ; e8 42 a311188 call 01976h ; e8 22 a3 11176 11189 add sp, strict byte 00006h ; 83 c4 06 11177 11190 test cl, cl ; 84 c9 11178 jne short 075 c1h ; 75 8611191 jne short 075e1h ; 75 86 11179 11192 mov dx, ss ; 8c d2 11180 11193 lea ax, [bp-006h] ; 8d 46 fa 11181 call 073 bfh ; e8 7c fd11194 call 073dfh ; e8 7c fd 11182 11195 test al, al ; 84 c0 11183 jne short 076 9dh ; 75 5611196 jne short 076bdh ; 75 56 11184 11197 mov dx, ss ; 8c d2 11185 11198 lea ax, [bp-004h] ; 8d 46 fc 11186 call 073 bfh ; e8 70 fd11199 call 073dfh ; e8 70 fd 11187 11200 test al, al ; 84 c0 11188 jne short 076 9dh ; 75 4a11201 jne short 076bdh ; 75 4a 11189 11202 mov al, byte [bp-006h] ; 8a 46 fa 11190 11203 mov byte [bp+00ch], al ; 88 46 0c 11191 11204 mov al, byte [bp-004h] ; 8a 46 fc 11192 11205 mov byte [bp+00dh], al ; 88 46 0d 11193 jmp near 078 b8h ; e9 56 0211206 jmp near 078d8h ; e9 56 02 11194 11207 mov al, byte [bp+00dh] ; 8a 46 0d 11195 11208 cmp AL, strict byte 003h ; 3c 03 11196 jc short 076 79h ; 72 1011197 jbe short 076 97h ; 76 2c11209 jc short 07699h ; 72 10 11210 jbe short 076b7h ; 76 2c 11198 11211 cmp AL, strict byte 006h ; 3c 06 11199 je short 076 ach ; 74 3d11212 je short 076cch ; 74 3d 11200 11213 cmp AL, strict byte 005h ; 3c 05 11201 je short 076 a6h ; 74 3311214 je short 076c6h ; 74 33 11202 11215 cmp AL, strict byte 004h ; 3c 04 11203 je short 076 a0h ; 74 2911204 jmp short 076 b2h ; eb 3911216 je short 076c0h ; 74 29 11217 jmp short 076d2h ; eb 39 11205 11218 cmp AL, strict byte 002h ; 3c 02 11206 je short 076 91h ; 74 1411219 je short 076b1h ; 74 14 11207 11220 cmp AL, strict byte 001h ; 3c 01 11208 je short 076 8bh ; 74 0a11221 je short 076abh ; 74 0a 11209 11222 test al, al ; 84 c0 11210 jne short 076 b2h ; 75 2d11223 jne short 076d2h ; 75 2d 11211 11224 mov byte [bp-006h], 00ah ; c6 46 fa 0a 11212 jmp short 076 b6h ; eb 2b11225 jmp short 076d6h ; eb 2b 11213 11226 mov byte [bp-006h], 014h ; c6 46 fa 14 11214 jmp short 076 b6h ; eb 2511227 jmp short 076d6h ; eb 25 11215 11228 mov byte [bp-006h], 028h ; c6 46 fa 28 11216 jmp short 076 b6h ; eb 1f11229 jmp short 076d6h ; eb 1f 11217 11230 mov byte [bp-006h], 03ch ; c6 46 fa 3c 11218 jmp short 076 b6h ; eb 1911219 jmp near 078 36h ; e9 96 0111231 jmp short 076d6h ; eb 19 11232 jmp near 07856h ; e9 96 01 11220 11233 mov byte [bp-006h], 050h ; c6 46 fa 50 11221 jmp short 076 b6h ; eb 1011234 jmp short 076d6h ; eb 10 11222 11235 mov byte [bp-006h], 064h ; c6 46 fa 64 11223 jmp short 076 b6h ; eb 0a11236 jmp short 076d6h ; eb 0a 11224 11237 mov byte [bp-006h], 0c8h ; c6 46 fa c8 11225 jmp short 076 b6h ; eb 0411238 jmp short 076d6h ; eb 04 11226 11239 mov byte [bp-006h], 000h ; c6 46 fa 00 11227 11240 cmp byte [bp-006h], 000h ; 80 7e fa 00 11228 jbe short 07 6ech ; 76 3011241 jbe short 0770ch ; 76 30 11229 11242 mov ax, 000f3h ; b8 f3 00 11230 call 073 87h ; e8 c5 fc11243 call 073a7h ; e8 c5 fc 11231 11244 test al, al ; 84 c0 11232 jne short 07 6e1h ; 75 1b11245 jne short 07701h ; 75 1b 11233 11246 mov dx, ss ; 8c d2 11234 11247 lea ax, [bp-004h] ; 8d 46 fc 11235 call 073 bfh ; e8 f1 fc11248 call 073dfh ; e8 f1 fc 11236 11249 mov al, byte [bp-006h] ; 8a 46 fa 11237 11250 xor ah, ah ; 30 e4 11238 call 073 87h ; e8 b1 fc11251 call 073a7h ; e8 b1 fc 11239 11252 mov dx, ss ; 8c d2 11240 11253 lea ax, [bp-004h] ; 8d 46 fc 11241 call 073 bfh ; e8 e1 fc11242 jmp near 078 b8h ; e9 d7 0111254 call 073dfh ; e8 e1 fc 11255 jmp near 078d8h ; e9 d7 01 11243 11256 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11244 11257 mov byte [bp+013h], 003h ; c6 46 13 03 11245 jmp near 078 b8h ; e9 cc 0111258 jmp near 078d8h ; e9 cc 01 11246 11259 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11247 11260 mov byte [bp+013h], 002h ; c6 46 13 02 11248 jmp near 078 b8h ; e9 c1 0111261 jmp near 078d8h ; e9 c1 01 11249 11262 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11250 jnc short 077 5fh ; 73 6211263 jnc short 0777fh ; 73 62 11251 11264 mov ax, 000e8h ; b8 e8 00 11252 call 073 87h ; e8 84 fc11265 call 073a7h ; e8 84 fc 11253 11266 test al, al ; 84 c0 11254 jne short 077 55h ; 75 4e11267 jne short 07775h ; 75 4e 11255 11268 mov dx, ss ; 8c d2 11256 11269 lea ax, [bp-006h] ; 8d 46 fa 11257 call 073 bfh ; e8 b0 fc11270 call 073dfh ; e8 b0 fc 11258 11271 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11259 je short 077 29h ; 74 1411272 je short 07749h ; 74 14 11260 11273 mov al, byte [bp-006h] ; 8a 46 fa 11261 11274 xor ah, ah ; 30 e4 … … 11265 11278 mov ax, strict word 00007h ; b8 07 00 11266 11279 push ax ; 50 11267 call 01976h ; e8 50 a211280 call 01976h ; e8 30 a2 11268 11281 add sp, strict byte 00006h ; 83 c4 06 11269 11282 mov al, byte [bp+00dh] ; 8a 46 0d 11270 11283 xor ah, ah ; 30 e4 11271 call 073 87h ; e8 56 fc11284 call 073a7h ; e8 56 fc 11272 11285 mov dx, ss ; 8c d2 11273 11286 lea ax, [bp-006h] ; 8d 46 fa 11274 call 073 bfh ; e8 86 fc11287 call 073dfh ; e8 86 fc 11275 11288 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11276 je short 077 8eh ; 74 4f11289 je short 077aeh ; 74 4f 11277 11290 mov al, byte [bp-006h] ; 8a 46 fa 11278 11291 xor ah, ah ; 30 e4 … … 11282 11295 mov ax, strict word 00007h ; b8 07 00 11283 11296 push ax ; 50 11284 call 01976h ; e8 26 a211297 call 01976h ; e8 06 a2 11285 11298 add sp, strict byte 00006h ; 83 c4 06 11286 jmp short 077 8eh ; eb 3911299 jmp short 077aeh ; eb 39 11287 11300 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11288 11301 mov byte [bp+013h], 003h ; c6 46 13 03 11289 jmp short 077 8eh ; eb 2f11302 jmp short 077aeh ; eb 2f 11290 11303 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11291 11304 mov byte [bp+013h], 002h ; c6 46 13 02 11292 jmp short 077 8eh ; eb 2511305 jmp short 077aeh ; eb 25 11293 11306 mov ax, 000f2h ; b8 f2 00 11294 call 073 87h ; e8 18 fc11307 call 073a7h ; e8 18 fc 11295 11308 test al, al ; 84 c0 11296 jne short 077 86h ; 75 1311309 jne short 077a6h ; 75 13 11297 11310 mov dx, ss ; 8c d2 11298 11311 lea ax, [bp-006h] ; 8d 46 fa 11299 call 073 bfh ; e8 44 fc11312 call 073dfh ; e8 44 fc 11300 11313 mov dx, ss ; 8c d2 11301 11314 lea ax, [bp-004h] ; 8d 46 fc 11302 call 073 bfh ; e8 3c fc11303 jmp near 076 59h ; e9 d3 fe11315 call 073dfh ; e8 3c fc 11316 jmp near 07679h ; e9 d3 fe 11304 11317 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11305 11318 mov byte [bp+013h], 003h ; c6 46 13 03 11306 jmp near 078 b8h ; e9 27 0111319 jmp near 078d8h ; e9 27 01 11307 11320 mov al, byte [bp+00dh] ; 8a 46 0d 11308 11321 test al, al ; 84 c0 11309 jbe short 077 a1h ; 76 0911322 jbe short 077c1h ; 76 09 11310 11323 cmp AL, strict byte 002h ; 3c 02 11311 jbe short 077 9fh ; 76 0311312 jmp near 078 40h ; e9 a1 0011313 jmp short 078 0bh ; eb 6a11324 jbe short 077bfh ; 76 03 11325 jmp near 07860h ; e9 a1 00 11326 jmp short 0782bh ; eb 6a 11314 11327 mov ax, 000e9h ; b8 e9 00 11315 call 073 87h ; e8 e0 fb11328 call 073a7h ; e8 e0 fb 11316 11329 test al, al ; 84 c0 11317 jne short 078 14h ; 75 6911330 jne short 07834h ; 75 69 11318 11331 mov dx, ss ; 8c d2 11319 11332 lea ax, [bp-006h] ; 8d 46 fa 11320 call 073 bfh ; e8 0c fc11333 call 073dfh ; e8 0c fc 11321 11334 mov cl, al ; 88 c1 11322 11335 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11323 je short 077 cfh ; 74 1411336 je short 077efh ; 74 14 11324 11337 mov al, byte [bp-006h] ; 8a 46 fa 11325 11338 xor ah, ah ; 30 e4 … … 11329 11342 mov ax, strict word 00007h ; b8 07 00 11330 11343 push ax ; 50 11331 call 01976h ; e8 aa a111344 call 01976h ; e8 8a a1 11332 11345 add sp, strict byte 00006h ; 83 c4 06 11333 11346 test cl, cl ; 84 c9 11334 jne short 078 36h ; 75 6311347 jne short 07856h ; 75 63 11335 11348 mov dx, ss ; 8c d2 11336 11349 lea ax, [bp-006h] ; 8d 46 fa 11337 call 073 bfh ; e8 e4 fb11350 call 073dfh ; e8 e4 fb 11338 11351 test al, al ; 84 c0 11339 jne short 078 36h ; 75 5711352 jne short 07856h ; 75 57 11340 11353 mov dx, ss ; 8c d2 11341 11354 lea ax, [bp-004h] ; 8d 46 fc 11342 call 073 bfh ; e8 d8 fb11355 call 073dfh ; e8 d8 fb 11343 11356 test al, al ; 84 c0 11344 jne short 078 36h ; 75 4b11357 jne short 07856h ; 75 4b 11345 11358 mov dx, ss ; 8c d2 11346 11359 lea ax, [bp-008h] ; 8d 46 f8 11347 call 073 bfh ; e8 cc fb11360 call 073dfh ; e8 cc fb 11348 11361 test al, al ; 84 c0 11349 jne short 078 36h ; 75 3f11362 jne short 07856h ; 75 3f 11350 11363 mov al, byte [bp-006h] ; 8a 46 fa 11351 11364 mov byte [bp+00ch], al ; 88 46 0c … … 11354 11367 mov al, byte [bp-008h] ; 8a 46 f8 11355 11368 mov byte [bp+00eh], al ; 88 46 0e 11356 jmp short 077 8eh ; eb 8311369 jmp short 077aeh ; eb 83 11357 11370 cmp AL, strict byte 001h ; 3c 01 11358 jne short 078 16h ; 75 0711371 jne short 07836h ; 75 07 11359 11372 mov ax, 000e6h ; b8 e6 00 11360 jmp short 078 19h ; eb 0511361 jmp short 078 36h ; eb 2011373 jmp short 07839h ; eb 05 11374 jmp short 07856h ; eb 20 11362 11375 mov ax, 000e7h ; b8 e7 00 11363 call 073 87h ; e8 6b fb11376 call 073a7h ; e8 6b fb 11364 11377 mov cl, al ; 88 c1 11365 11378 test cl, cl ; 84 c9 11366 jne short 078 32h ; 75 1011379 jne short 07852h ; 75 10 11367 11380 mov dx, ss ; 8c d2 11368 11381 lea ax, [bp-006h] ; 8d 46 fa 11369 call 073 bfh ; e8 95 fb11382 call 073dfh ; e8 95 fb 11370 11383 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11371 je short 078 32h ; 74 0211384 je short 07852h ; 74 02 11372 11385 mov CL, strict byte 001h ; b1 01 11373 11386 test cl, cl ; 84 c9 11374 je short 078 a0h ; 74 6a11387 je short 078c0h ; 74 6a 11375 11388 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11376 11389 mov byte [bp+013h], 003h ; c6 46 13 03 11377 jmp short 078 a0h ; eb 6011390 jmp short 078c0h ; eb 60 11378 11391 mov al, byte [bp+00dh] ; 8a 46 0d 11379 11392 xor ah, ah ; 30 e4 … … 11383 11396 mov ax, strict word 00007h ; b8 07 00 11384 11397 push ax ; 50 11385 call 01976h ; e8 25 a111398 call 01976h ; e8 05 a1 11386 11399 add sp, strict byte 00006h ; 83 c4 06 11387 11400 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11388 11401 mov byte [bp+013h], 001h ; c6 46 13 01 11389 jmp short 078 b8h ; eb 5a11402 jmp short 078d8h ; eb 5a 11390 11403 mov si, word [bp+00ch] ; 8b 76 0c 11391 11404 mov bx, si ; 89 f3 11392 11405 mov dx, strict word 00022h ; ba 22 00 11393 11406 mov ax, cx ; 89 c8 11394 call 0167ch ; e8 11 9e11407 call 0167ch ; e8 f1 9d 11395 11408 mov bx, word [bp+014h] ; 8b 5e 14 11396 11409 mov dx, strict word 00024h ; ba 24 00 11397 11410 mov ax, cx ; 89 c8 11398 call 0167ch ; e8 06 9e11411 call 0167ch ; e8 e6 9d 11399 11412 mov dx, strict word 00027h ; ba 27 00 11400 11413 mov ax, cx ; 89 c8 11401 call 01652h ; e8 d4 9d11414 call 01652h ; e8 b4 9d 11402 11415 mov ah, al ; 88 c4 11403 11416 test si, si ; 85 f6 11404 jne short 078 92h ; 75 0e11417 jne short 078b2h ; 75 0e 11405 11418 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11406 jne short 078 92h ; 75 0811419 jne short 078b2h ; 75 08 11407 11420 test AL, strict byte 080h ; a8 80 11408 je short 078 94h ; 74 0611421 je short 078b4h ; 74 06 11409 11422 and AL, strict byte 07fh ; 24 7f 11410 jmp short 078 94h ; eb 0211423 jmp short 078b4h ; eb 02 11411 11424 or AL, strict byte 080h ; 0c 80 11412 11425 mov bl, al ; 88 c3 … … 11414 11427 mov dx, strict word 00027h ; ba 27 00 11415 11428 mov ax, cx ; 89 c8 11416 call 01660h ; e8 c0 9d11417 jmp short 078 b8h ; eb 1611429 call 01660h ; e8 a0 9d 11430 jmp short 078d8h ; eb 16 11418 11431 mov ax, 00974h ; b8 74 09 11419 11432 push ax ; 50 11420 11433 mov ax, strict word 00007h ; b8 07 00 11421 11434 push ax ; 50 11422 call 01976h ; e8 c9 a011435 call 01976h ; e8 a9 a0 11423 11436 add sp, strict byte 00004h ; 83 c4 04 11424 11437 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11425 11438 mov byte [bp+013h], 001h ; c6 46 13 01 11426 11439 mov ax, strict word 00047h ; b8 47 00 11427 call 074 1ch ; e8 5e fb11440 call 0743ch ; e8 5e fb 11428 11441 lea sp, [bp-002h] ; 8d 66 fe 11429 11442 pop si ; 5e 11430 11443 pop bp ; 5d 11431 11444 retn ; c3 11432 _int17_function: ; 0xf78 c4 LB 0xac11445 _int17_function: ; 0xf78e4 LB 0xac 11433 11446 push bp ; 55 11434 11447 mov bp, sp ; 89 e5 … … 11440 11453 add dx, strict byte 00008h ; 83 c2 08 11441 11454 mov ax, strict word 00040h ; b8 40 00 11442 call 0166eh ; e8 96 9d11455 call 0166eh ; e8 76 9d 11443 11456 mov bx, ax ; 89 c3 11444 11457 mov si, ax ; 89 c6 11445 11458 cmp byte [bp+013h], 003h ; 80 7e 13 03 11446 jnc short 07 8eeh ; 73 0c11459 jnc short 0790eh ; 73 0c 11447 11460 mov ax, word [bp+00eh] ; 8b 46 0e 11448 11461 cmp ax, strict word 00003h ; 3d 03 00 11449 jnc short 07 8eeh ; 73 0411462 jnc short 0790eh ; 73 04 11450 11463 test bx, bx ; 85 db 11451 jnbe short 07 8f1h ; 77 0311452 jmp near 079 66h ; e9 75 0011464 jnbe short 07911h ; 77 03 11465 jmp near 07986h ; e9 75 00 11453 11466 mov dx, ax ; 89 c2 11454 11467 add dx, strict byte 00078h ; 83 c2 78 11455 11468 mov ax, strict word 00040h ; b8 40 00 11456 call 01652h ; e8 56 9d11469 call 01652h ; e8 36 9d 11457 11470 mov ch, al ; 88 c5 11458 11471 xor cl, cl ; 30 c9 11459 11472 cmp byte [bp+013h], 000h ; 80 7e 13 00 11460 jne short 079 32h ; 75 2c11473 jne short 07952h ; 75 2c 11461 11474 mov al, byte [bp+012h] ; 8a 46 12 11462 11475 mov dx, bx ; 89 da … … 11478 11491 ; sub ah, ah ; 2a e4 11479 11492 test AL, strict byte 040h ; a8 40 11480 je short 079 32h ; 74 0711493 je short 07952h ; 74 07 11481 11494 test cx, cx ; 85 c9 11482 je short 079 32h ; 74 0311495 je short 07952h ; 74 03 11483 11496 dec cx ; 49 11484 jmp short 079 21h ; eb ef11497 jmp short 07941h ; eb ef 11485 11498 cmp byte [bp+013h], 001h ; 80 7e 13 01 11486 jne short 079 4dh ; 75 1511499 jne short 0796dh ; 75 15 11487 11500 lea dx, [si+002h] ; 8d 54 02 11488 11501 in AL, DX ; ec … … 11503 11516 mov byte [bp+013h], al ; 88 46 13 11504 11517 test cx, cx ; 85 c9 11505 jne short 079 60h ; 75 0411518 jne short 07980h ; 75 04 11506 11519 or byte [bp+013h], 001h ; 80 4e 13 01 11507 11520 and byte [bp+01ch], 0feh ; 80 66 1c fe 11508 jmp short 079 6ah ; eb 0411521 jmp short 0798ah ; eb 04 11509 11522 or byte [bp+01ch], 001h ; 80 4e 1c 01 11510 11523 lea sp, [bp-002h] ; 8d 66 fe … … 11512 11525 pop bp ; 5d 11513 11526 retn ; c3 11514 wait_: ; 0xf79 70 LB 0xb211527 wait_: ; 0xf7990 LB 0xb2 11515 11528 push bp ; 55 11516 11529 mov bp, sp ; 89 e5 … … 11530 11543 mov dx, 0046ch ; ba 6c 04 11531 11544 xor ax, ax ; 31 c0 11532 call 0168ah ; e8 f7 9c11545 call 0168ah ; e8 d7 9c 11533 11546 mov word [bp-00eh], ax ; 89 46 f2 11534 11547 mov bx, dx ; 89 d3 … … 11536 11549 mov dx, 0046ch ; ba 6c 04 11537 11550 xor ax, ax ; 31 c0 11538 call 0168ah ; e8 e9 9c11551 call 0168ah ; e8 c9 9c 11539 11552 mov word [bp-012h], ax ; 89 46 ee 11540 11553 mov di, dx ; 89 d7 11541 11554 cmp dx, bx ; 39 da 11542 jnbe short 079 b1h ; 77 0711543 jne short 079 b8h ; 75 0c11555 jnbe short 079d1h ; 77 07 11556 jne short 079d8h ; 75 0c 11544 11557 cmp ax, word [bp-00eh] ; 3b 46 f2 11545 jbe short 079 b8h ; 76 0711558 jbe short 079d8h ; 76 07 11546 11559 sub ax, word [bp-00eh] ; 2b 46 f2 11547 11560 sbb dx, bx ; 19 da 11548 jmp short 079 c3h ; eb 0b11561 jmp short 079e3h ; eb 0b 11549 11562 cmp dx, bx ; 39 da 11550 jc short 079 c3h ; 72 0711551 jne short 079 c7h ; 75 0911563 jc short 079e3h ; 72 07 11564 jne short 079e7h ; 75 09 11552 11565 cmp ax, word [bp-00eh] ; 3b 46 f2 11553 jnc short 079 c7h ; 73 0411566 jnc short 079e7h ; 73 04 11554 11567 sub si, ax ; 29 c6 11555 11568 sbb cx, dx ; 19 d1 … … 11559 11572 mov ax, 00100h ; b8 00 01 11560 11573 int 016h ; cd 16 11561 je short 079 dbh ; 74 0511574 je short 079fbh ; 74 05 11562 11575 mov AL, strict byte 001h ; b0 01 11563 jmp near 079 ddh ; e9 02 0011576 jmp near 079fdh ; e9 02 00 11564 11577 db 032h, 0c0h 11565 11578 ; xor al, al ; 32 c0 11566 11579 test al, al ; 84 c0 11567 je short 07a 07h ; 74 2611580 je short 07a27h ; 74 26 11568 11581 db 033h, 0c0h 11569 11582 ; xor ax, ax ; 33 c0 … … 11578 11591 mov ax, strict word 00004h ; b8 04 00 11579 11592 push ax ; 50 11580 call 01976h ; e8 7c 9f11593 call 01976h ; e8 5c 9f 11581 11594 add sp, strict byte 00006h ; 83 c4 06 11582 11595 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11583 je short 07a 07h ; 74 0411596 je short 07a27h ; 74 04 11584 11597 mov al, dl ; 88 d0 11585 jmp short 07a 19h ; eb 1211598 jmp short 07a39h ; eb 12 11586 11599 test cx, cx ; 85 c9 11587 jnle short 079 98h ; 7f 8d11588 jne short 07a 11h ; 75 0411600 jnle short 079b8h ; 7f 8d 11601 jne short 07a31h ; 75 04 11589 11602 test si, si ; 85 f6 11590 jnbe short 079 98h ; 77 8711603 jnbe short 079b8h ; 77 87 11591 11604 mov ax, word [bp-010h] ; 8b 46 f0 11592 11605 push ax ; 50 … … 11600 11613 pop bp ; 5d 11601 11614 retn ; c3 11602 read_logo_byte_: ; 0xf7a 22 LB 0x1611615 read_logo_byte_: ; 0xf7a42 LB 0x16 11603 11616 push bp ; 55 11604 11617 mov bp, sp ; 89 e5 … … 11615 11628 pop bp ; 5d 11616 11629 retn ; c3 11617 read_logo_word_: ; 0xf7a 38 LB 0x1411630 read_logo_word_: ; 0xf7a58 LB 0x14 11618 11631 push bp ; 55 11619 11632 mov bp, sp ; 89 e5 … … 11628 11641 pop bp ; 5d 11629 11642 retn ; c3 11630 print_detected_harddisks_: ; 0xf7a 4c LB 0x15a11643 print_detected_harddisks_: ; 0xf7a6c LB 0x15a 11631 11644 push bp ; 55 11632 11645 mov bp, sp ; 89 e5 … … 11638 11651 mov dx, strict word 0000eh ; ba 0e 00 11639 11652 mov ax, strict word 00040h ; b8 40 00 11640 call 0166eh ; e8 0f 9c11653 call 0166eh ; e8 ef 9b 11641 11654 mov si, ax ; 89 c6 11642 11655 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11644 11657 mov byte [bp-00ch], ch ; 88 6e f4 11645 11658 mov dx, 00304h ; ba 04 03 11646 call 01652h ; e8 e2 9b11659 call 01652h ; e8 c2 9b 11647 11660 mov byte [bp-00ah], al ; 88 46 f6 11648 11661 xor cl, cl ; 30 c9 11649 11662 cmp cl, byte [bp-00ah] ; 3a 4e f6 11650 jnc short 07a d8h ; 73 5e11663 jnc short 07af8h ; 73 5e 11651 11664 mov al, cl ; 88 c8 11652 11665 xor ah, ah ; 30 e4 … … 11654 11667 add dx, 00305h ; 81 c2 05 03 11655 11668 mov ax, si ; 89 f0 11656 call 01652h ; e8 c9 9b11669 call 01652h ; e8 a9 9b 11657 11670 mov bl, al ; 88 c3 11658 11671 cmp AL, strict byte 00ch ; 3c 0c 11659 jc short 07a bah ; 72 2b11672 jc short 07adah ; 72 2b 11660 11673 test ch, ch ; 84 ed 11661 jne short 07a a3h ; 75 1011674 jne short 07ac3h ; 75 10 11662 11675 mov ax, 009a7h ; b8 a7 09 11663 11676 push ax ; 50 11664 11677 mov ax, strict word 00002h ; b8 02 00 11665 11678 push ax ; 50 11666 call 01976h ; e8 d8 9e11679 call 01976h ; e8 b8 9e 11667 11680 add sp, strict byte 00004h ; 83 c4 04 11668 11681 mov CH, strict byte 001h ; b5 01 … … 11675 11688 mov ax, strict word 00002h ; b8 02 00 11676 11689 push ax ; 50 11677 call 01976h ; e8 c2 9e11690 call 01976h ; e8 a2 9e 11678 11691 add sp, strict byte 00006h ; 83 c4 06 11679 jmp near 07b 6ch ; e9 b2 0011692 jmp near 07b8ch ; e9 b2 00 11680 11693 cmp AL, strict byte 008h ; 3c 08 11681 jc short 07a dbh ; 72 1d11694 jc short 07afbh ; 72 1d 11682 11695 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11683 jne short 07a d6h ; 75 1211696 jne short 07af6h ; 75 12 11684 11697 mov ax, 009cfh ; b8 cf 09 11685 11698 push ax ; 50 11686 11699 mov ax, strict word 00002h ; b8 02 00 11687 11700 push ax ; 50 11688 call 01976h ; e8 a7 9e11701 call 01976h ; e8 87 9e 11689 11702 add sp, strict byte 00004h ; 83 c4 04 11690 11703 mov byte [bp-00ch], 001h ; c6 46 f4 01 11691 jmp short 07a a3h ; eb cb11692 jmp near 07b 71h ; e9 96 0011704 jmp short 07ac3h ; eb cb 11705 jmp near 07b91h ; e9 96 00 11693 11706 cmp AL, strict byte 004h ; 3c 04 11694 jnc short 07 af9h ; 73 1a11707 jnc short 07b19h ; 73 1a 11695 11708 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11696 jne short 07 af9h ; 75 1411709 jne short 07b19h ; 75 14 11697 11710 mov ax, 009e4h ; b8 e4 09 11698 11711 push ax ; 50 11699 11712 mov ax, strict word 00002h ; b8 02 00 11700 11713 push ax ; 50 11701 call 01976h ; e8 86 9e11714 call 01976h ; e8 66 9e 11702 11715 add sp, strict byte 00004h ; 83 c4 04 11703 11716 mov byte [bp-00eh], 001h ; c6 46 f2 01 11704 jmp short 07b 12h ; eb 1911717 jmp short 07b32h ; eb 19 11705 11718 cmp bl, 004h ; 80 fb 04 11706 jc short 07b 12h ; 72 1411719 jc short 07b32h ; 72 14 11707 11720 test ch, ch ; 84 ed 11708 jne short 07b 12h ; 75 1011721 jne short 07b32h ; 75 10 11709 11722 mov ax, 009f6h ; b8 f6 09 11710 11723 push ax ; 50 11711 11724 mov ax, strict word 00002h ; b8 02 00 11712 11725 push ax ; 50 11713 call 01976h ; e8 69 9e11726 call 01976h ; e8 49 9e 11714 11727 add sp, strict byte 00004h ; 83 c4 04 11715 11728 mov CH, strict byte 001h ; b5 01 … … 11722 11735 mov ax, strict word 00002h ; b8 02 00 11723 11736 push ax ; 50 11724 call 01976h ; e8 53 9e11737 call 01976h ; e8 33 9e 11725 11738 add sp, strict byte 00006h ; 83 c4 06 11726 11739 cmp bl, 004h ; 80 fb 04 11727 jc short 07b 2eh ; 72 0311740 jc short 07b4eh ; 72 03 11728 11741 sub bl, 004h ; 80 eb 04 11729 11742 mov al, bl ; 88 d8 … … 11734 11747 sar ax, 1 ; d1 f8 11735 11748 test ax, ax ; 85 c0 11736 je short 07b 40h ; 74 0511749 je short 07b60h ; 74 05 11737 11750 mov ax, 00a14h ; b8 14 0a 11738 jmp short 07b 43h ; eb 0311751 jmp short 07b63h ; eb 03 11739 11752 mov ax, 00a1fh ; b8 1f 0a 11740 11753 push ax ; 50 11741 11754 mov ax, strict word 00002h ; b8 02 00 11742 11755 push ax ; 50 11743 call 01976h ; e8 2b 9e11756 call 01976h ; e8 0b 9e 11744 11757 add sp, strict byte 00004h ; 83 c4 04 11745 11758 mov al, bl ; 88 d8 … … 11749 11762 idiv bx ; f7 fb 11750 11763 test dx, dx ; 85 d2 11751 je short 07b 61h ; 74 0511764 je short 07b81h ; 74 05 11752 11765 mov ax, 00a28h ; b8 28 0a 11753 jmp short 07b 64h ; eb 0311766 jmp short 07b84h ; eb 03 11754 11767 mov ax, 00a2eh ; b8 2e 0a 11755 11768 push ax ; 50 11756 11769 push bx ; 53 11757 call 01976h ; e8 0d 9e11770 call 01976h ; e8 ed 9d 11758 11771 add sp, strict byte 00004h ; 83 c4 04 11759 11772 db 0feh, 0c1h 11760 11773 ; inc cl ; fe c1 11761 jmp near 07a 75h ; e9 04 ff11774 jmp near 07a95h ; e9 04 ff 11762 11775 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11763 jne short 07b 8fh ; 75 1811776 jne short 07bafh ; 75 18 11764 11777 test ch, ch ; 84 ed 11765 jne short 07b 8fh ; 75 1411778 jne short 07bafh ; 75 14 11766 11779 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11767 jne short 07b 8fh ; 75 0e11780 jne short 07bafh ; 75 0e 11768 11781 mov ax, 00a35h ; b8 35 0a 11769 11782 push ax ; 50 11770 11783 mov ax, strict word 00002h ; b8 02 00 11771 11784 push ax ; 50 11772 call 01976h ; e8 ea 9d11785 call 01976h ; e8 ca 9d 11773 11786 add sp, strict byte 00004h ; 83 c4 04 11774 11787 mov ax, 00a49h ; b8 49 0a … … 11776 11789 mov ax, strict word 00002h ; b8 02 00 11777 11790 push ax ; 50 11778 call 01976h ; e8 dc 9d11791 call 01976h ; e8 bc 9d 11779 11792 add sp, strict byte 00004h ; 83 c4 04 11780 11793 lea sp, [bp-008h] ; 8d 66 f8 … … 11785 11798 pop bp ; 5d 11786 11799 retn ; c3 11787 get_boot_drive_: ; 0xf7b a6 LB 0x2811800 get_boot_drive_: ; 0xf7bc6 LB 0x28 11788 11801 push bp ; 55 11789 11802 mov bp, sp ; 89 e5 … … 11793 11806 mov dx, strict word 0000eh ; ba 0e 00 11794 11807 mov ax, strict word 00040h ; b8 40 00 11795 call 0166eh ; e8 b8 9a11808 call 0166eh ; e8 98 9a 11796 11809 mov dx, 00304h ; ba 04 03 11797 call 01652h ; e8 96 9a11810 call 01652h ; e8 76 9a 11798 11811 sub bl, 002h ; 80 eb 02 11799 11812 cmp bl, al ; 38 c3 11800 jc short 07b c5h ; 72 0211813 jc short 07be5h ; 72 02 11801 11814 mov BL, strict byte 0ffh ; b3 ff 11802 11815 mov al, bl ; 88 d8 … … 11806 11819 pop bp ; 5d 11807 11820 retn ; c3 11808 show_logo_: ; 0xf7b ce LB 0x24f11821 show_logo_: ; 0xf7bee LB 0x24f 11809 11822 push bp ; 55 11810 11823 mov bp, sp ; 89 e5 … … 11817 11830 mov dx, strict word 0000eh ; ba 0e 00 11818 11831 mov ax, strict word 00040h ; b8 40 00 11819 call 0166eh ; e8 8c 9a11832 call 0166eh ; e8 6c 9a 11820 11833 mov si, ax ; 89 c6 11821 11834 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11829 11842 mov al, cl ; 88 c8 11830 11843 xor ah, ah ; 30 e4 11831 call 07a 38h ; e8 3b fe11844 call 07a58h ; e8 3b fe 11832 11845 cmp ax, 066bbh ; 3d bb 66 11833 jne short 07c 14h ; 75 1211846 jne short 07c34h ; 75 12 11834 11847 push SS ; 16 11835 11848 pop ES ; 07 … … 11839 11852 mov word [es:di], bx ; 26 89 1d 11840 11853 cmp ax, strict word 0004fh ; 3d 4f 00 11841 je short 07c 17h ; 74 0311842 jmp near 07 cech ; e9 d5 0011854 je short 07c37h ; 74 03 11855 jmp near 07d0ch ; e9 d5 00 11843 11856 mov al, cl ; 88 c8 11844 11857 add AL, strict byte 004h ; 04 04 11845 11858 xor ah, ah ; 30 e4 11846 call 07a 22h ; e8 02 fe11859 call 07a42h ; e8 02 fe 11847 11860 mov bl, al ; 88 c3 11848 11861 mov byte [bp-014h], al ; 88 46 ec … … 11850 11863 add AL, strict byte 005h ; 04 05 11851 11864 xor ah, ah ; 30 e4 11852 call 07a 22h ; e8 f4 fd11865 call 07a42h ; e8 f4 fd 11853 11866 mov bh, al ; 88 c7 11854 11867 mov byte [bp-012h], al ; 88 46 ee … … 11856 11869 add AL, strict byte 002h ; 04 02 11857 11870 xor ah, ah ; 30 e4 11858 call 07a 38h ; e8 fc fd11871 call 07a58h ; e8 fc fd 11859 11872 mov dx, ax ; 89 c2 11860 11873 mov word [bp-016h], ax ; 89 46 ea … … 11862 11875 add AL, strict byte 006h ; 04 06 11863 11876 xor ah, ah ; 30 e4 11864 call 07a 22h ; e8 d8 fd11877 call 07a42h ; e8 d8 fd 11865 11878 mov byte [bp-010h], al ; 88 46 f0 11866 11879 test bl, bl ; 84 db 11867 jne short 07c 59h ; 75 0811880 jne short 07c79h ; 75 08 11868 11881 test bh, bh ; 84 ff 11869 jne short 07c 59h ; 75 0411882 jne short 07c79h ; 75 04 11870 11883 test dx, dx ; 85 d2 11871 je short 07c 14h ; 74 bb11884 je short 07c34h ; 74 bb 11872 11885 mov bx, 00142h ; bb 42 01 11873 11886 mov ax, 04f02h ; b8 02 4f 11874 11887 int 010h ; cd 10 11875 11888 cmp byte [bp-014h], 000h ; 80 7e ec 00 11876 je short 07c 8ch ; 74 2511889 je short 07cach ; 74 25 11877 11890 xor cx, cx ; 31 c9 11878 jmp short 07c 71h ; eb 0611891 jmp short 07c91h ; eb 06 11879 11892 inc cx ; 41 11880 11893 cmp cx, strict byte 00010h ; 83 f9 10 11881 jnbe short 07c 93h ; 77 2211894 jnbe short 07cb3h ; 77 22 11882 11895 mov ax, cx ; 89 c8 11883 11896 or ah, 002h ; 80 cc 02 … … 11886 11899 xor dx, dx ; 31 d2 11887 11900 mov ax, strict word 00001h ; b8 01 00 11888 call 079 70h ; e8 ee fc11901 call 07990h ; e8 ee fc 11889 11902 cmp AL, strict byte 086h ; 3c 86 11890 jne short 07c 6bh ; 75 e511903 jne short 07c8bh ; 75 e5 11891 11904 mov byte [bp-00ch], 001h ; c6 46 f4 01 11892 jmp short 07c 93h ; eb 0711905 jmp short 07cb3h ; eb 07 11893 11906 mov ax, 00210h ; b8 10 02 11894 11907 mov dx, 003b8h ; ba b8 03 11895 11908 out DX, ax ; ef 11896 11909 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11897 jne short 07c aeh ; 75 1511910 jne short 07cceh ; 75 15 11898 11911 mov CL, strict byte 004h ; b1 04 11899 11912 mov ax, word [bp-016h] ; 8b 46 ea 11900 11913 shr ax, CL ; d3 e8 11901 11914 mov dx, strict word 00001h ; ba 01 00 11902 call 079 70h ; e8 ca fc11915 call 07990h ; e8 ca fc 11903 11916 cmp AL, strict byte 086h ; 3c 86 11904 jne short 07c aeh ; 75 0411917 jne short 07cceh ; 75 04 11905 11918 mov byte [bp-00ch], 001h ; c6 46 f4 01 11906 11919 cmp byte [bp-012h], 000h ; 80 7e ee 00 11907 je short 07c dfh ; 74 2b11920 je short 07cffh ; 74 2b 11908 11921 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11909 jne short 07c dfh ; 75 2511922 jne short 07cffh ; 75 25 11910 11923 mov cx, strict word 00010h ; b9 10 00 11911 jmp short 07c c4h ; eb 0511924 jmp short 07ce4h ; eb 05 11912 11925 dec cx ; 49 11913 11926 test cx, cx ; 85 c9 11914 jbe short 07 cech ; 76 2811927 jbe short 07d0ch ; 76 28 11915 11928 mov ax, cx ; 89 c8 11916 11929 or ah, 002h ; 80 cc 02 … … 11919 11932 xor dx, dx ; 31 d2 11920 11933 mov ax, strict word 00001h ; b8 01 00 11921 call 079 70h ; e8 9b fc11934 call 07990h ; e8 9b fc 11922 11935 cmp AL, strict byte 086h ; 3c 86 11923 jne short 07c bfh ; 75 e611936 jne short 07cdfh ; 75 e6 11924 11937 mov byte [bp-00ch], 001h ; c6 46 f4 01 11925 jmp short 07 cech ; eb 0d11938 jmp short 07d0ch ; eb 0d 11926 11939 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11927 jne short 07 cech ; 75 0711940 jne short 07d0ch ; 75 07 11928 11941 mov ax, 00200h ; b8 00 02 11929 11942 mov dx, 003b8h ; ba b8 03 … … 11932 11945 mov dx, 0037dh ; ba 7d 03 11933 11946 mov ax, si ; 89 f0 11934 call 01660h ; e8 6a 9911947 call 01660h ; e8 4a 99 11935 11948 mov AL, strict byte 003h ; b0 03 11936 11949 mov AH, strict byte 000h ; b4 00 11937 11950 int 010h ; cd 10 11938 11951 cmp byte [bp-010h], 000h ; 80 7e f0 00 11939 je short 07d 16h ; 74 1411952 je short 07d36h ; 74 14 11940 11953 cmp byte [bp-014h], 000h ; 80 7e ec 00 11941 jne short 07d 44h ; 75 3c11954 jne short 07d64h ; 75 3c 11942 11955 cmp byte [bp-012h], 000h ; 80 7e ee 00 11943 jne short 07d 44h ; 75 3611956 jne short 07d64h ; 75 36 11944 11957 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11945 je short 07d 19h ; 74 0511946 jmp short 07d 44h ; eb 2e11947 jmp near 07e 00h ; e9 e7 0011958 je short 07d39h ; 74 05 11959 jmp short 07d64h ; eb 2e 11960 jmp near 07e20h ; e9 e7 00 11948 11961 cmp byte [bp-010h], 002h ; 80 7e f0 02 11949 jne short 07d 2dh ; 75 0e11962 jne short 07d4dh ; 75 0e 11950 11963 mov ax, 00a4bh ; b8 4b 0a 11951 11964 push ax ; 50 11952 11965 mov ax, strict word 00002h ; b8 02 00 11953 11966 push ax ; 50 11954 call 01976h ; e8 4c 9c11967 call 01976h ; e8 2c 9c 11955 11968 add sp, strict byte 00004h ; 83 c4 04 11956 11969 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11957 jne short 07d 44h ; 75 1111970 jne short 07d64h ; 75 11 11958 11971 mov dx, strict word 00001h ; ba 01 00 11959 11972 mov ax, 000c0h ; b8 c0 00 11960 call 079 70h ; e8 34 fc11973 call 07990h ; e8 34 fc 11961 11974 cmp AL, strict byte 086h ; 3c 86 11962 jne short 07d 44h ; 75 0411975 jne short 07d64h ; 75 04 11963 11976 mov byte [bp-00ch], 001h ; c6 46 f4 01 11964 11977 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11965 je short 07d 16h ; 74 cc11978 je short 07d36h ; 74 cc 11966 11979 mov byte [bp-00eh], 000h ; c6 46 f2 00 11967 11980 mov ax, 00100h ; b8 00 01 … … 11984 11997 mov ax, strict word 00002h ; b8 02 00 11985 11998 push ax ; 50 11986 call 01976h ; e8 00 9c11999 call 01976h ; e8 e0 9b 11987 12000 add sp, strict byte 00004h ; 83 c4 04 11988 call 07a 4ch ; e8 d0 fc12001 call 07a6ch ; e8 d0 fc 11989 12002 mov ax, 00ab1h ; b8 b1 0a 11990 12003 push ax ; 50 11991 12004 mov ax, strict word 00002h ; b8 02 00 11992 12005 push ax ; 50 11993 call 01976h ; e8 ef 9b12006 call 01976h ; e8 cf 9b 11994 12007 add sp, strict byte 00004h ; 83 c4 04 11995 12008 mov dx, strict word 00001h ; ba 01 00 11996 12009 mov ax, strict word 00040h ; b8 40 00 11997 call 079 70h ; e8 dd fb12010 call 07990h ; e8 dd fb 11998 12011 mov cl, al ; 88 c1 11999 12012 test al, al ; 84 c0 12000 je short 07d 8ah ; 74 f112013 je short 07daah ; 74 f1 12001 12014 cmp AL, strict byte 030h ; 3c 30 12002 je short 07 dedh ; 74 5012015 je short 07e0dh ; 74 50 12003 12016 cmp cl, 002h ; 80 f9 02 12004 jc short 07d c6h ; 72 2412017 jc short 07de6h ; 72 24 12005 12018 cmp cl, 009h ; 80 f9 09 12006 jnbe short 07d c6h ; 77 1f12019 jnbe short 07de6h ; 77 1f 12007 12020 mov al, cl ; 88 c8 12008 12021 xor ah, ah ; 30 e4 12009 call 07b a6h ; e8 f8 fd12022 call 07bc6h ; e8 f8 fd 12010 12023 cmp AL, strict byte 0ffh ; 3c ff 12011 jne short 07d b4h ; 75 0212012 jmp short 07d 8ah ; eb d612024 jne short 07dd4h ; 75 02 12025 jmp short 07daah ; eb d6 12013 12026 mov bl, al ; 88 c3 12014 12027 xor bh, bh ; 30 ff 12015 12028 mov dx, 0037ch ; ba 7c 03 12016 12029 mov ax, si ; 89 f0 12017 call 01660h ; e8 a0 9812030 call 01660h ; e8 80 98 12018 12031 mov byte [bp-00eh], 002h ; c6 46 f2 02 12019 jmp short 07 dedh ; eb 2712032 jmp short 07e0dh ; eb 27 12020 12033 cmp cl, 02eh ; 80 f9 2e 12021 je short 07d dbh ; 74 1012034 je short 07dfbh ; 74 10 12022 12035 cmp cl, 026h ; 80 f9 26 12023 je short 07 de1h ; 74 1112036 je short 07e01h ; 74 11 12024 12037 cmp cl, 021h ; 80 f9 21 12025 jne short 07 de7h ; 75 1212038 jne short 07e07h ; 75 12 12026 12039 mov byte [bp-00eh], 001h ; c6 46 f2 01 12027 jmp short 07 dedh ; eb 1212040 jmp short 07e0dh ; eb 12 12028 12041 mov byte [bp-00eh], 003h ; c6 46 f2 03 12029 jmp short 07 dedh ; eb 0c12042 jmp short 07e0dh ; eb 0c 12030 12043 mov byte [bp-00eh], 004h ; c6 46 f2 04 12031 jmp short 07 dedh ; eb 0612044 jmp short 07e0dh ; eb 06 12032 12045 cmp byte [bp-00eh], 000h ; 80 7e f2 00 12033 je short 07d 8ah ; 74 9d12046 je short 07daah ; 74 9d 12034 12047 mov bl, byte [bp-00eh] ; 8a 5e f2 12035 12048 xor bh, bh ; 30 ff 12036 12049 mov dx, 0037dh ; ba 7d 03 12037 12050 mov ax, si ; 89 f0 12038 call 01660h ; e8 66 9812051 call 01660h ; e8 46 98 12039 12052 mov AL, strict byte 003h ; b0 03 12040 12053 mov AH, strict byte 000h ; b4 00 … … 12049 12062 push DS ; 1e 12050 12063 mov ds, ax ; 8e d8 12051 call 0ede3h ; e8 d2 6f12064 call 0ede3h ; e8 b2 6f 12052 12065 pop DS ; 1f 12053 12066 pop bp ; 5d … … 12060 12073 pop bp ; 5d 12061 12074 retn ; c3 12062 delay_boot_: ; 0xf7e 1d LB 0x7212075 delay_boot_: ; 0xf7e3d LB 0x72 12063 12076 push bp ; 55 12064 12077 mov bp, sp ; 89 e5 … … 12070 12083 mov bx, ax ; 89 c3 12071 12084 test ax, ax ; 85 c0 12072 je short 07e 85h ; 74 5a12085 je short 07ea5h ; 74 5a 12073 12086 mov AL, strict byte 034h ; b0 34 12074 12087 out strict byte 043h, AL ; e6 43 … … 12082 12095 mov ax, strict word 00002h ; b8 02 00 12083 12096 push ax ; 50 12084 call 01976h ; e8 33 9b12097 call 01976h ; e8 13 9b 12085 12098 add sp, strict byte 00006h ; 83 c4 06 12086 12099 test bx, bx ; 85 db 12087 jbe short 07e 64h ; 76 1a12100 jbe short 07e84h ; 76 1a 12088 12101 push bx ; 53 12089 12102 mov ax, 00b19h ; b8 19 0b … … 12091 12104 mov ax, strict word 00002h ; b8 02 00 12092 12105 push ax ; 50 12093 call 01976h ; e8 20 9b12106 call 01976h ; e8 00 9b 12094 12107 add sp, strict byte 00006h ; 83 c4 06 12095 12108 xor dx, dx ; 31 d2 12096 12109 mov ax, strict word 00040h ; b8 40 00 12097 call 079 70h ; e8 0f fb12110 call 07990h ; e8 0f fb 12098 12111 dec bx ; 4b 12099 jmp short 07e 46h ; eb e212112 jmp short 07e66h ; eb e2 12100 12113 mov bx, 00a49h ; bb 49 0a 12101 12114 push bx ; 53 12102 12115 mov bx, strict word 00002h ; bb 02 00 12103 12116 push bx ; 53 12104 call 01976h ; e8 07 9b12117 call 01976h ; e8 e7 9a 12105 12118 add sp, strict byte 00004h ; 83 c4 04 12106 12119 mov AL, strict byte 034h ; b0 34 … … 12113 12126 push DS ; 1e 12114 12127 mov ds, ax ; 8e d8 12115 call 0ede3h ; e8 60 6f12128 call 0ede3h ; e8 40 6f 12116 12129 pop DS ; 1f 12117 12130 pop bp ; 5d … … 12124 12137 pop bp ; 5d 12125 12138 retn ; c3 12126 scsi_cmd_data_in_: ; 0xf7e 8f LB 0xd512139 scsi_cmd_data_in_: ; 0xf7eaf LB 0xd5 12127 12140 push bp ; 55 12128 12141 mov bp, sp ; 89 e5 … … 12140 12153 ; sub ah, ah ; 2a e4 12141 12154 test AL, strict byte 001h ; a8 01 12142 jne short 07e a5h ; 75 f712155 jne short 07ec5h ; 75 f7 12143 12156 mov al, byte [bp+004h] ; 8a 46 04 12144 12157 cmp AL, strict byte 010h ; 3c 10 12145 jne short 07e b9h ; 75 0412158 jne short 07ed9h ; 75 04 12146 12159 xor ax, ax ; 31 c0 12147 jmp short 07e bbh ; eb 0212160 jmp short 07edbh ; eb 02 12148 12161 xor ah, ah ; 30 e4 12149 12162 mov di, ax ; 89 c7 … … 12153 12166 shr dx, 1 ; d1 ea 12154 12167 rcr ax, 1 ; d1 d8 12155 loop 07e c5h ; e2 fa12168 loop 07ee5h ; e2 fa 12156 12169 mov cx, ax ; 89 c1 12157 12170 and cx, 000f0h ; 81 e1 f0 00 … … 12171 12184 shr dx, 1 ; d1 ea 12172 12185 rcr ax, 1 ; d1 d8 12173 loop 07 eeah ; e2 fa12186 loop 07f0ah ; e2 fa 12174 12187 mov dx, si ; 89 f2 12175 12188 out DX, AL ; ee … … 12178 12191 xor ah, ah ; 30 e4 12179 12192 cmp cx, ax ; 39 c1 12180 jnc short 07f 0ch ; 73 0e12193 jnc short 07f2ch ; 73 0e 12181 12194 les di, [bp-00ah] ; c4 7e f6 12182 12195 add di, cx ; 01 cf … … 12185 12198 out DX, AL ; ee 12186 12199 inc cx ; 41 12187 jmp short 07 ef5h ; eb e912200 jmp short 07f15h ; eb e9 12188 12201 mov dx, si ; 89 f2 12189 12202 in AL, DX ; ec … … 12191 12204 ; sub ah, ah ; 2a e4 12192 12205 test AL, strict byte 001h ; a8 01 12193 jne short 07f 0ch ; 75 f712206 jne short 07f2ch ; 75 f7 12194 12207 test AL, strict byte 002h ; a8 02 12195 je short 07f 27h ; 74 0e12208 je short 07f47h ; 74 0e 12196 12209 lea dx, [si+003h] ; 8d 54 03 12197 12210 xor al, al ; 30 c0 … … 12201 12214 ; sub ah, ah ; 2a e4 12202 12215 mov di, strict word 00004h ; bf 04 00 12203 jmp short 07f 59h ; eb 3212216 jmp short 07f79h ; eb 32 12204 12217 lea dx, [si+001h] ; 8d 54 01 12205 12218 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12206 jne short 07f 36h ; 75 0612219 jne short 07f56h ; 75 06 12207 12220 cmp bx, 08000h ; 81 fb 00 80 12208 jbe short 07f 50h ; 76 1a12221 jbe short 07f70h ; 76 1a 12209 12222 mov cx, 08000h ; b9 00 80 12210 12223 les di, [bp+006h] ; c4 7e 06 … … 12215 12228 add ax, 00800h ; 05 00 08 12216 12229 mov word [bp+008h], ax ; 89 46 08 12217 jmp short 07f 27h ; eb d712230 jmp short 07f47h ; eb d7 12218 12231 mov cx, bx ; 89 d9 12219 12232 les di, [bp+006h] ; c4 7e 06 … … 12226 12239 pop bp ; 5d 12227 12240 retn 0000ah ; c2 0a 00 12228 scsi_cmd_data_out_: ; 0xf7f 64 LB 0xd512241 scsi_cmd_data_out_: ; 0xf7f84 LB 0xd5 12229 12242 push bp ; 55 12230 12243 mov bp, sp ; 89 e5 … … 12242 12255 ; sub ah, ah ; 2a e4 12243 12256 test AL, strict byte 001h ; a8 01 12244 jne short 07f 7ah ; 75 f712257 jne short 07f9ah ; 75 f7 12245 12258 mov al, byte [bp+004h] ; 8a 46 04 12246 12259 cmp AL, strict byte 010h ; 3c 10 12247 jne short 07f 8eh ; 75 0412260 jne short 07faeh ; 75 04 12248 12261 xor ax, ax ; 31 c0 12249 jmp short 07f 90h ; eb 0212262 jmp short 07fb0h ; eb 02 12250 12263 xor ah, ah ; 30 e4 12251 12264 mov si, ax ; 89 c6 … … 12255 12268 shr dx, 1 ; d1 ea 12256 12269 rcr ax, 1 ; d1 d8 12257 loop 07f 9ah ; e2 fa12270 loop 07fbah ; e2 fa 12258 12271 mov cx, ax ; 89 c1 12259 12272 and cx, 000f0h ; 81 e1 f0 00 … … 12273 12286 shr dx, 1 ; d1 ea 12274 12287 rcr ax, 1 ; d1 d8 12275 loop 07f bfh ; e2 fa12288 loop 07fdfh ; e2 fa 12276 12289 mov dx, di ; 89 fa 12277 12290 out DX, AL ; ee … … 12280 12293 xor ah, ah ; 30 e4 12281 12294 cmp cx, ax ; 39 c1 12282 jnc short 0 7fe1h ; 73 0e12295 jnc short 08001h ; 73 0e 12283 12296 les si, [bp-00ah] ; c4 76 f6 12284 12297 add si, cx ; 01 ce … … 12287 12300 out DX, AL ; ee 12288 12301 inc cx ; 41 12289 jmp short 07f cah ; eb e912302 jmp short 07feah ; eb e9 12290 12303 lea dx, [di+001h] ; 8d 55 01 12291 12304 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12292 jne short 0 7ff0h ; 75 0612305 jne short 08010h ; 75 06 12293 12306 cmp bx, 08000h ; 81 fb 00 80 12294 jbe short 080 0bh ; 76 1b12307 jbe short 0802bh ; 76 1b 12295 12308 mov cx, 08000h ; b9 00 80 12296 12309 les si, [bp+006h] ; c4 76 06 … … 12302 12315 add ax, 00800h ; 05 00 08 12303 12316 mov word [bp+008h], ax ; 89 46 08 12304 jmp short 0 7fe1h ; eb d612317 jmp short 08001h ; eb d6 12305 12318 mov cx, bx ; 89 d9 12306 12319 les si, [bp+006h] ; c4 76 06 … … 12312 12325 ; sub ah, ah ; 2a e4 12313 12326 test AL, strict byte 001h ; a8 01 12314 jne short 080 13h ; 75 f712327 jne short 08033h ; 75 f7 12315 12328 test AL, strict byte 002h ; a8 02 12316 je short 080 2eh ; 74 0e12329 je short 0804eh ; 74 0e 12317 12330 lea dx, [di+003h] ; 8d 55 03 12318 12331 xor al, al ; 30 c0 … … 12322 12335 ; sub ah, ah ; 2a e4 12323 12336 mov ax, strict word 00004h ; b8 04 00 12324 jmp short 080 30h ; eb 0212337 jmp short 08050h ; eb 02 12325 12338 xor ax, ax ; 31 c0 12326 12339 lea sp, [bp-004h] ; 8d 66 fc … … 12329 12342 pop bp ; 5d 12330 12343 retn 0000ah ; c2 0a 00 12331 @scsi_read_sectors: ; 0xf80 39 LB 0xe912344 @scsi_read_sectors: ; 0xf8059 LB 0xe9 12332 12345 push bp ; 55 12333 12346 mov bp, sp ; 89 e5 … … 12341 12354 mov byte [bp-006h], al ; 88 46 fa 12342 12355 cmp AL, strict byte 004h ; 3c 04 12343 jbe short 080 69h ; 76 1512356 jbe short 08089h ; 76 15 12344 12357 xor ah, ah ; 30 e4 12345 12358 push ax ; 50 … … 12350 12363 mov ax, strict word 00007h ; b8 07 00 12351 12364 push ax ; 50 12352 call 01976h ; e8 10 9912365 call 01976h ; e8 f0 98 12353 12366 add sp, strict byte 00008h ; 83 c4 08 12354 12367 mov es, [bp+006h] ; 8e 46 06 … … 12391 12404 sal word [bp-00ah], 1 ; d1 66 f6 12392 12405 rcl word [bp-008h], 1 ; d1 56 f8 12393 loop 080 d4h ; e2 f812406 loop 080f4h ; e2 f8 12394 12407 push word [bp-008h] ; ff 76 f8 12395 12408 push word [bp-00ah] ; ff 76 f6 … … 12402 12415 mov cx, ss ; 8c d1 12403 12416 lea bx, [bp-01ah] ; 8d 5e e6 12404 call 07e 8fh ; e8 95 fd12417 call 07eafh ; e8 95 fd 12405 12418 mov ah, al ; 88 c4 12406 12419 test al, al ; 84 c0 12407 jne short 081 15h ; 75 1512420 jne short 08135h ; 75 15 12408 12421 mov es, [bp+006h] ; 8e 46 06 12409 12422 mov word [es:si+018h], di ; 26 89 7c 18 … … 12419 12432 pop bp ; 5d 12420 12433 retn 00004h ; c2 04 00 12421 @scsi_write_sectors: ; 0xf81 22 LB 0xe912434 @scsi_write_sectors: ; 0xf8142 LB 0xe9 12422 12435 push bp ; 55 12423 12436 mov bp, sp ; 89 e5 … … 12431 12444 mov byte [bp-006h], al ; 88 46 fa 12432 12445 cmp AL, strict byte 004h ; 3c 04 12433 jbe short 081 52h ; 76 1512446 jbe short 08172h ; 76 15 12434 12447 xor ah, ah ; 30 e4 12435 12448 push ax ; 50 … … 12440 12453 mov ax, strict word 00007h ; b8 07 00 12441 12454 push ax ; 50 12442 call 01976h ; e8 27 9812455 call 01976h ; e8 07 98 12443 12456 add sp, strict byte 00008h ; 83 c4 08 12444 12457 mov es, [bp+006h] ; 8e 46 06 … … 12481 12494 sal word [bp-00ah], 1 ; d1 66 f6 12482 12495 rcl word [bp-008h], 1 ; d1 56 f8 12483 loop 081 bdh ; e2 f812496 loop 081ddh ; e2 f8 12484 12497 push word [bp-008h] ; ff 76 f8 12485 12498 push word [bp-00ah] ; ff 76 f6 … … 12492 12505 mov cx, ss ; 8c d1 12493 12506 lea bx, [bp-01ah] ; 8d 5e e6 12494 call 07f 64h ; e8 81 fd12507 call 07f84h ; e8 81 fd 12495 12508 mov ah, al ; 88 c4 12496 12509 test al, al ; 84 c0 12497 jne short 08 1feh ; 75 1512510 jne short 0821eh ; 75 15 12498 12511 mov es, [bp+006h] ; 8e 46 06 12499 12512 mov word [es:si+018h], di ; 26 89 7c 18 … … 12509 12522 pop bp ; 5d 12510 12523 retn 00004h ; c2 04 00 12511 scsi_cmd_packet_: ; 0xf82 0b LB 0x17012524 scsi_cmd_packet_: ; 0xf822b LB 0x170 12512 12525 push bp ; 55 12513 12526 mov bp, sp ; 89 e5 … … 12521 12534 mov dx, strict word 0000eh ; ba 0e 00 12522 12535 mov ax, strict word 00040h ; b8 40 00 12523 call 0166eh ; e8 47 9412536 call 0166eh ; e8 27 94 12524 12537 mov si, 00122h ; be 22 01 12525 12538 mov word [bp-00ch], ax ; 89 46 f4 12526 12539 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12527 jne short 082 56h ; 75 2312528 mov bx, 00da 4h ; bb a40d12540 jne short 08276h ; 75 23 12541 mov bx, 00da0h ; bb a0 0d 12529 12542 mov cx, ds ; 8c d9 12530 12543 mov ax, strict word 00004h ; b8 04 00 12531 call 01933h ; e8 f5 9612544 call 01933h ; e8 d5 96 12532 12545 mov ax, 00b62h ; b8 62 0b 12533 12546 push ax ; 50 … … 12536 12549 mov ax, strict word 00004h ; b8 04 00 12537 12550 push ax ; 50 12538 call 01976h ; e8 29 9712551 call 01976h ; e8 09 97 12539 12552 add sp, strict byte 00006h ; 83 c4 06 12540 12553 mov dx, strict word 00001h ; ba 01 00 12541 jmp near 083 70h ; e9 1a 0112554 jmp near 08390h ; e9 1a 01 12542 12555 sub di, strict byte 00008h ; 83 ef 08 12543 12556 sal di, 1 ; d1 e7 … … 12554 12567 ; sub ah, ah ; 2a e4 12555 12568 test AL, strict byte 001h ; a8 01 12556 jne short 082 73h ; 75 f712569 jne short 08293h ; 75 f7 12557 12570 xor dx, bx ; 31 da 12558 12571 mov ax, word [bp+006h] ; 8b 46 06 … … 12570 12583 shr dx, 1 ; d1 ea 12571 12584 rcr ax, 1 ; d1 d8 12572 loop 082 9eh ; e2 fa12585 loop 082beh ; e2 fa 12573 12586 and ax, 000f0h ; 25 f0 00 12574 12587 mov cl, byte [bp-006h] ; 8a 4e fa … … 12589 12602 shr dx, 1 ; d1 ea 12590 12603 rcr ax, 1 ; d1 d8 12591 loop 082 c6h ; e2 fa12604 loop 082e6h ; e2 fa 12592 12605 mov dx, bx ; 89 da 12593 12606 out DX, AL ; ee … … 12596 12609 xor ah, ah ; 30 e4 12597 12610 cmp cx, ax ; 39 c1 12598 jnc short 08 2ebh ; 73 1112611 jnc short 0830bh ; 73 11 12599 12612 mov es, [bp-00ah] ; 8e 46 f6 12600 12613 mov di, word [bp-00eh] ; 8b 7e f2 … … 12604 12617 out DX, AL ; ee 12605 12618 inc cx ; 41 12606 jmp short 082 d1h ; eb e612619 jmp short 082f1h ; eb e6 12607 12620 mov dx, bx ; 89 da 12608 12621 in AL, DX ; ec … … 12610 12623 ; sub ah, ah ; 2a e4 12611 12624 test AL, strict byte 001h ; a8 01 12612 jne short 08 2ebh ; 75 f712625 jne short 0830bh ; 75 f7 12613 12626 test AL, strict byte 002h ; a8 02 12614 je short 083 06h ; 74 0e12627 je short 08326h ; 74 0e 12615 12628 lea dx, [bx+003h] ; 8d 57 03 12616 12629 xor al, al ; 30 c0 … … 12620 12633 ; sub ah, ah ; 2a e4 12621 12634 mov dx, strict word 00003h ; ba 03 00 12622 jmp short 083 70h ; eb 6a12635 jmp short 08390h ; eb 6a 12623 12636 mov ax, word [bp+004h] ; 8b 46 04 12624 12637 test ax, ax ; 85 c0 12625 je short 083 15h ; 74 0812638 je short 08335h ; 74 08 12626 12639 lea dx, [bx+001h] ; 8d 57 01 12627 12640 mov cx, ax ; 89 c1 12628 12641 in AL, DX ; ec 12629 loop 083 12h ; e2 fd12642 loop 08332h ; e2 fd 12630 12643 mov ax, word [bp+006h] ; 8b 46 06 12631 12644 mov es, [bp-00ch] ; 8e 46 f4 … … 12635 12648 lea ax, [bx+001h] ; 8d 47 01 12636 12649 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12637 jne short 083 36h ; 75 0712650 jne short 08356h ; 75 07 12638 12651 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12639 jbe short 083 53h ; 76 1d12652 jbe short 08373h ; 76 1d 12640 12653 mov dx, ax ; 89 c2 12641 12654 mov cx, 08000h ; b9 00 80 … … 12647 12660 add ax, 00800h ; 05 00 08 12648 12661 mov word [bp+00eh], ax ; 89 46 0e 12649 jmp short 083 26h ; eb d312662 jmp short 08346h ; eb d3 12650 12663 mov dx, ax ; 89 c2 12651 12664 mov cx, word [bp+006h] ; 8b 4e 06 … … 12654 12667 mov es, [bp-00ch] ; 8e 46 f4 12655 12668 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12656 je short 083 6eh ; 74 0712669 je short 0838eh ; 74 07 12657 12670 mov cx, word [es:si+020h] ; 26 8b 4c 20 12658 12671 in AL, DX ; ec 12659 loop 083 6bh ; e2 fd12672 loop 0838bh ; e2 fd 12660 12673 xor dx, dx ; 31 d2 12661 12674 mov ax, dx ; 89 d0 … … 12665 12678 pop bp ; 5d 12666 12679 retn 0000ch ; c2 0c 00 12667 scsi_enumerate_attached_devices_: ; 0xf83 7b LB 0x4cb12680 scsi_enumerate_attached_devices_: ; 0xf839b LB 0x4cb 12668 12681 push bp ; 55 12669 12682 mov bp, sp ; 89 e5 … … 12677 12690 mov dx, strict word 0000eh ; ba 0e 00 12678 12691 mov ax, strict word 00040h ; b8 40 00 12679 call 0166eh ; e8 dd 9212692 call 0166eh ; e8 bd 92 12680 12693 mov di, 00122h ; bf 22 01 12681 12694 mov word [bp-016h], ax ; 89 46 ea 12682 12695 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 12683 jmp near 087 b9h ; e9 1a 0412696 jmp near 087d9h ; e9 1a 04 12684 12697 cmp AL, strict byte 004h ; 3c 04 12685 jc short 083 a6h ; 72 0312686 jmp near 088 3ch ; e9 96 0412698 jc short 083c6h ; 72 03 12699 jmp near 0885ch ; e9 96 04 12687 12700 mov cx, strict word 00010h ; b9 10 00 12688 12701 xor bx, bx ; 31 db 12689 12702 mov dx, ss ; 8c d2 12690 12703 lea ax, [bp-048h] ; 8d 46 b8 12691 call 0a1 a0h ; e8 ed 1d12704 call 0a1c0h ; e8 ed 1d 12692 12705 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12693 12706 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12707 12720 lea bx, [bp-048h] ; 8d 5e b8 12708 12721 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 12709 call 07e 8fh ; e8 ae fa12722 call 07eafh ; e8 ae fa 12710 12723 test al, al ; 84 c0 12711 je short 08 3f7h ; 74 1212724 je short 08417h ; 74 12 12712 12725 mov ax, 00b92h ; b8 92 0b 12713 12726 push ax ; 50 … … 12716 12729 mov ax, strict word 00007h ; b8 07 00 12717 12730 push ax ; 50 12718 call 01976h ; e8 82 9512731 call 01976h ; e8 62 95 12719 12732 add sp, strict byte 00006h ; 83 c4 06 12720 12733 mov ax, word [bp-00242h] ; 8b 86 be fd … … 12748 12761 sal ax, 1 ; d1 e0 12749 12762 rcl dx, 1 ; d1 d2 12750 loop 084 45h ; e2 fa12763 loop 08465h ; e2 fa 12751 12764 or bx, ax ; 09 c3 12752 12765 or dx, si ; 09 f2 … … 12756 12769 mov word [bp-01ch], bx ; 89 5e e4 12757 12770 test dx, dx ; 85 d2 12758 jne short 084 64h ; 75 0612771 jne short 08484h ; 75 06 12759 12772 cmp bx, 00200h ; 81 fb 00 02 12760 je short 084 87h ; 74 2312761 mov bx, 00da 4h ; bb a40d12773 je short 084a7h ; 74 23 12774 mov bx, 00da0h ; bb a0 0d 12762 12775 mov cx, ds ; 8c d9 12763 12776 mov ax, strict word 00004h ; b8 04 00 12764 call 01933h ; e8 c4 9412777 call 01933h ; e8 a4 94 12765 12778 push dx ; 52 12766 12779 push word [bp-01ch] ; ff 76 e4 … … 12770 12783 mov ax, strict word 00004h ; b8 04 00 12771 12784 push ax ; 50 12772 call 01976h ; e8 f5 9412785 call 01976h ; e8 d5 94 12773 12786 add sp, strict byte 0000ah ; 83 c4 0a 12774 jmp near 087 adh ; e9 26 0312787 jmp near 087cdh ; e9 26 03 12775 12788 mov al, byte [bp-00ch] ; 8a 46 f4 12776 12789 cmp AL, strict byte 001h ; 3c 01 12777 jc short 084 9ah ; 72 0c12778 jbe short 084 a2h ; 76 1212790 jc short 084bah ; 72 0c 12791 jbe short 084c2h ; 76 12 12779 12792 cmp AL, strict byte 003h ; 3c 03 12780 je short 084 aah ; 74 1612793 je short 084cah ; 74 16 12781 12794 cmp AL, strict byte 002h ; 3c 02 12782 je short 084 a6h ; 74 0e12783 jmp short 08 4f1h ; eb 5712795 je short 084c6h ; 74 0e 12796 jmp short 08511h ; eb 57 12784 12797 test al, al ; 84 c0 12785 jne short 08 4f1h ; 75 5312798 jne short 08511h ; 75 53 12786 12799 mov BL, strict byte 090h ; b3 90 12787 jmp short 084 ach ; eb 0a12800 jmp short 084cch ; eb 0a 12788 12801 mov BL, strict byte 098h ; b3 98 12789 jmp short 084 ach ; eb 0612802 jmp short 084cch ; eb 06 12790 12803 mov BL, strict byte 0a0h ; b3 a0 12791 jmp short 084 ach ; eb 0212804 jmp short 084cch ; eb 02 12792 12805 mov BL, strict byte 0a8h ; b3 a8 12793 12806 mov cl, bl ; 88 d9 … … 12795 12808 xor ch, ch ; 30 ed 12796 12809 mov ax, cx ; 89 c8 12797 call 016aeh ; e8 f6 9112810 call 016aeh ; e8 d6 91 12798 12811 test al, al ; 84 c0 12799 je short 08 4f1h ; 74 3512812 je short 08511h ; 74 35 12800 12813 mov al, bl ; 88 d8 12801 12814 db 0feh, 0c0h 12802 12815 ; inc al ; fe c0 12803 12816 xor ah, ah ; 30 e4 12804 call 016aeh ; e8 e9 9112817 call 016aeh ; e8 c9 91 12805 12818 mov dh, al ; 88 c6 12806 12819 mov al, bl ; 88 d8 12807 12820 xor ah, ah ; 30 e4 12808 call 016aeh ; e8 e0 9112821 call 016aeh ; e8 c0 91 12809 12822 mov ah, dh ; 88 f4 12810 12823 cwd ; 99 … … 12814 12827 add AL, strict byte 002h ; 04 02 12815 12828 xor ah, ah ; 30 e4 12816 call 016aeh ; e8 cf 9112829 call 016aeh ; e8 af 91 12817 12830 xor ah, ah ; 30 e4 12818 12831 mov word [bp-028h], ax ; 89 46 d8 12819 12832 mov ax, cx ; 89 c8 12820 call 016aeh ; e8 c5 9112833 call 016aeh ; e8 a5 91 12821 12834 xor ah, ah ; 30 e4 12822 12835 mov word [bp-01ah], ax ; 89 46 e6 12823 jmp near 085 deh ; e9 ed 0012836 jmp near 085feh ; e9 ed 00 12824 12837 mov ax, word [bp-020h] ; 8b 46 e0 12825 12838 mov bx, word [bp-022h] ; 8b 5e de … … 12827 12840 mov dx, word [bp-024h] ; 8b 56 dc 12828 12841 mov si, strict word 0000ch ; be 0c 00 12829 call 0a1 80h ; e8 7d 1c12842 call 0a1a0h ; e8 7d 1c 12830 12843 mov word [bp-02ah], ax ; 89 46 d6 12831 12844 mov word [bp-02ch], bx ; 89 5e d4 … … 12834 12847 mov ax, word [bp-020h] ; 8b 46 e0 12835 12848 test ax, ax ; 85 c0 12836 jnbe short 085 2bh ; 77 1512837 je short 085 1bh ; 74 0312838 jmp near 085 9eh ; e9 83 0012849 jnbe short 0854bh ; 77 15 12850 je short 0853bh ; 74 03 12851 jmp near 085beh ; e9 83 00 12839 12852 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12840 jnbe short 085 2bh ; 77 0a12841 jne short 085 18h ; 75 f512853 jnbe short 0854bh ; 77 0a 12854 jne short 08538h ; 75 f5 12842 12855 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12843 jnbe short 085 2bh ; 77 0212844 jne short 085 9eh ; 75 7312856 jnbe short 0854bh ; 77 02 12857 jne short 085beh ; 75 73 12845 12858 mov word [bp-028h], 000ffh ; c7 46 d8 ff 00 12846 12859 mov word [bp-01ah], strict word 0003fh ; c7 46 e6 3f 00 … … 12849 12862 mov dx, word [bp-024h] ; 8b 56 dc 12850 12863 mov si, strict word 00006h ; be 06 00 12851 call 0a1 80h ; e8 3c 1c12864 call 0a1a0h ; e8 3c 1c 12852 12865 mov si, word [bp-018h] ; 8b 76 e8 12853 12866 add si, dx ; 01 d6 … … 12867 12880 mov dx, si ; 89 f2 12868 12881 mov si, strict word 00008h ; be 08 00 12869 call 0a1 80h ; e8 0c 1c12882 call 0a1a0h ; e8 0c 1c 12870 12883 mov word [bp-02eh], bx ; 89 5e d2 12871 12884 mov word [bp-030h], cx ; 89 4e d0 … … 12876 12889 mov dx, word [bp-01eh] ; 8b 56 e2 12877 12890 mov si, strict word 00010h ; be 10 00 12878 call 0a1 80h ; e8 f1 1b12891 call 0a1a0h ; e8 f1 1b 12879 12892 mov si, word [bp-032h] ; 8b 76 ce 12880 12893 add si, dx ; 01 d6 … … 12882 12895 mov ax, word [bp-02eh] ; 8b 46 d2 12883 12896 adc ax, bx ; 11 d8 12884 jmp short 085 dbh ; eb 3d12897 jmp short 085fbh ; eb 3d 12885 12898 test ax, ax ; 85 c0 12886 jnbe short 085 b4h ; 77 1212887 jne short 085 c0h ; 75 1c12899 jnbe short 085d4h ; 77 12 12900 jne short 085e0h ; 75 1c 12888 12901 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12889 jnbe short 085 b4h ; 77 0a12890 jne short 085 c0h ; 75 1412902 jnbe short 085d4h ; 77 0a 12903 jne short 085e0h ; 75 14 12891 12904 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12892 jnbe short 085 b4h ; 77 0212893 jne short 085 c0h ; 75 0c12905 jnbe short 085d4h ; 77 02 12906 jne short 085e0h ; 75 0c 12894 12907 mov word [bp-028h], 00080h ; c7 46 d8 80 00 12895 12908 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 12896 jmp short 085 d9h ; eb 1912909 jmp short 085f9h ; eb 19 12897 12910 mov word [bp-028h], strict word 00040h ; c7 46 d8 40 00 12898 12911 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 … … 12901 12914 mov dx, word [bp-024h] ; 8b 56 dc 12902 12915 mov si, strict word 0000bh ; be 0b 00 12903 call 0a1 80h ; e8 a7 1b12916 call 0a1a0h ; e8 a7 1b 12904 12917 mov si, dx ; 89 d6 12905 12918 mov word [bp-026h], cx ; 89 4e da … … 12938 12951 mov word [es:bx+034h], ax ; 26 89 47 34 12939 12952 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 12940 jne short 086 55h ; 75 0612953 jne short 08675h ; 75 06 12941 12954 cmp si, 00400h ; 81 fe 00 04 12942 jbe short 086 63h ; 76 0e12955 jbe short 08683h ; 76 0e 12943 12956 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12944 12957 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12945 jmp short 086 6bh ; eb 0812958 jmp short 0868bh ; eb 08 12946 12959 mov word [es:bx+02ch], si ; 26 89 77 2c 12947 12960 mov word [es:bx+032h], si ; 26 89 77 32 12948 mov bx, 00da 4h ; bb a40d12961 mov bx, 00da0h ; bb a0 0d 12949 12962 mov cx, ds ; 8c d9 12950 12963 mov ax, strict word 00004h ; b8 04 00 12951 call 01933h ; e8 bd 9212964 call 01933h ; e8 9d 92 12952 12965 push word [bp-020h] ; ff 76 e0 12953 12966 push word [bp-022h] ; ff 76 de … … 12966 12979 mov ax, strict word 00004h ; b8 04 00 12967 12980 push ax ; 50 12968 call 01976h ; e8 d6 9212981 call 01976h ; e8 b6 92 12969 12982 add sp, strict byte 00018h ; 83 c4 18 12970 12983 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12995 13008 mov dx, strict word 00075h ; ba 75 00 12996 13009 mov ax, strict word 00040h ; b8 40 00 12997 call 01652h ; e8 5c 8f13010 call 01652h ; e8 3c 8f 12998 13011 mov bl, al ; 88 c3 12999 13012 db 0feh, 0c3h … … 13002 13015 mov dx, strict word 00075h ; ba 75 00 13003 13016 mov ax, strict word 00040h ; b8 40 00 13004 call 01660h ; e8 5b 8f13017 call 01660h ; e8 3b 8f 13005 13018 inc byte [bp-00ch] ; fe 46 f4 13006 jmp near 087 a2h ; e9 97 0013007 mov bx, 00da 4h ; bb a40d13019 jmp near 087c2h ; e9 97 00 13020 mov bx, 00da0h ; bb a0 0d 13008 13021 mov cx, ds ; 8c d9 13009 13022 mov ax, strict word 00004h ; b8 04 00 13010 call 01933h ; e8 1d 9213023 call 01933h ; e8 fd 91 13011 13024 push word [bp-014h] ; ff 76 ec 13012 13025 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13017 13030 mov ax, strict word 00004h ; b8 04 00 13018 13031 push ax ; 50 13019 call 01976h ; e8 4c 9213032 call 01976h ; e8 2c 92 13020 13033 add sp, strict byte 00008h ; 83 c4 08 13021 13034 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13023 13036 mov byte [bp-00eh], al ; 88 46 f2 13024 13037 test byte [bp-00247h], 080h ; f6 86 b9 fd 80 13025 je short 087 41h ; 74 0513038 je short 08761h ; 74 05 13026 13039 mov cx, strict word 00001h ; b9 01 00 13027 jmp short 087 43h ; eb 0213040 jmp short 08763h ; eb 02 13028 13041 xor cx, cx ; 31 c9 13029 13042 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13063 13076 inc word [bp-014h] ; ff 46 ec 13064 13077 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 13065 jl short 087 b9h ; 7c 0313066 jmp near 088 3ch ; e9 83 0013078 jl short 087d9h ; 7c 03 13079 jmp near 0885ch ; e9 83 00 13067 13080 mov byte [bp-048h], 012h ; c6 46 b8 12 13068 13081 xor al, al ; 30 c0 … … 13086 13099 lea bx, [bp-048h] ; 8d 5e b8 13087 13100 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 13088 call 07e 8fh ; e8 9e f613101 call 07eafh ; e8 9e f6 13089 13102 test al, al ; 84 c0 13090 je short 088 07h ; 74 1213103 je short 08827h ; 74 12 13091 13104 mov ax, 00b92h ; b8 92 0b 13092 13105 push ax ; 50 … … 13095 13108 mov ax, strict word 00007h ; b8 07 00 13096 13109 push ax ; 50 13097 call 01976h ; e8 72 9113110 call 01976h ; e8 52 91 13098 13111 add sp, strict byte 00006h ; 83 c4 06 13099 13112 mov es, [bp-016h] ; 8e 46 ea … … 13101 13114 mov byte [bp-00ch], al ; 88 46 f4 13102 13115 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13103 jne short 088 23h ; 75 0a13116 jne short 08843h ; 75 0a 13104 13117 test byte [bp-00248h], 01fh ; f6 86 b8 fd 1f 13105 jne short 088 23h ; 75 0313106 jmp near 083 9fh ; e9 7c fb13118 jne short 08843h ; 75 03 13119 jmp near 083bfh ; e9 7c fb 13107 13120 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13108 je short 088 2dh ; 74 0313109 jmp near 087 a2h ; e9 75 ff13121 je short 0884dh ; 74 03 13122 jmp near 087c2h ; e9 75 ff 13110 13123 mov al, byte [bp-00248h] ; 8a 86 b8 fd 13111 13124 and AL, strict byte 01fh ; 24 1f 13112 13125 cmp AL, strict byte 005h ; 3c 05 13113 jne short 088 3ah ; 75 0313114 jmp near 087 0bh ; e9 d1 fe13115 jmp short 088 2ah ; eb ee13126 jne short 0885ah ; 75 03 13127 jmp near 0872bh ; e9 d1 fe 13128 jmp short 0884ah ; eb ee 13116 13129 lea sp, [bp-00ah] ; 8d 66 f6 13117 13130 pop di ; 5f … … 13122 13135 pop bp ; 5d 13123 13136 retn ; c3 13124 scsi_pci_init_: ; 0xf88 46 LB 0x2b13137 scsi_pci_init_: ; 0xf8866 LB 0x2b 13125 13138 push bp ; 55 13126 13139 mov bp, sp ; 89 e5 … … 13128 13141 push cx ; 51 13129 13142 push si ; 56 13130 call 09f 84h ; e8 35 1713143 call 09fa4h ; e8 35 17 13131 13144 mov dx, ax ; 89 c2 13132 13145 cmp ax, strict word 0ffffh ; 3d ff ff 13133 je short 088 69h ; 74 1313146 je short 08889h ; 74 13 13134 13147 mov al, dl ; 88 d0 13135 13148 xor ah, ah ; 30 e4 … … 13139 13152 mov bx, strict word 00004h ; bb 04 00 13140 13153 mov dx, si ; 89 f2 13141 call 0a0 32h ; e8 c9 1713154 call 0a052h ; e8 c9 17 13142 13155 lea sp, [bp-006h] ; 8d 66 fa 13143 13156 pop si ; 5e … … 13146 13159 pop bp ; 5d 13147 13160 retn ; c3 13148 _scsi_init: ; 0xf88 71 LB 0x8113161 _scsi_init: ; 0xf8891 LB 0x81 13149 13162 push bp ; 55 13150 13163 mov bp, sp ; 89 e5 13151 13164 mov dx, strict word 0000eh ; ba 0e 00 13152 13165 mov ax, strict word 00040h ; b8 40 00 13153 call 0166eh ; e8 f1 8d13166 call 0166eh ; e8 d1 8d 13154 13167 mov bx, 00122h ; bb 22 01 13155 13168 mov es, ax ; 8e c0 … … 13162 13175 ; sub ah, ah ; 2a e4 13163 13176 cmp AL, strict byte 055h ; 3c 55 13164 jne short 088 aah ; 75 1513177 jne short 088cah ; 75 15 13165 13178 xor al, al ; 30 c0 13166 13179 mov dx, 00433h ; ba 33 04 13167 13180 out DX, AL ; ee 13168 13181 mov ax, 00430h ; b8 30 04 13169 call 083 7bh ; e8 da fa13182 call 0839bh ; e8 da fa 13170 13183 mov dx, 01040h ; ba 40 10 13171 13184 mov ax, 0104bh ; b8 4b 10 13172 call 088 46h ; e8 9c ff13185 call 08866h ; e8 9c ff 13173 13186 mov AL, strict byte 055h ; b0 55 13174 13187 mov dx, 00436h ; ba 36 04 … … 13178 13191 ; sub ah, ah ; 2a e4 13179 13192 cmp AL, strict byte 055h ; 3c 55 13180 jne short 088 cch ; 75 1513193 jne short 088ech ; 75 15 13181 13194 xor al, al ; 30 c0 13182 13195 mov dx, 00437h ; ba 37 04 13183 13196 out DX, AL ; ee 13184 13197 mov ax, 00434h ; b8 34 04 13185 call 083 7bh ; e8 b8 fa13198 call 0839bh ; e8 b8 fa 13186 13199 mov dx, strict word 00030h ; ba 30 00 13187 13200 mov ax, 01000h ; b8 00 10 13188 call 088 46h ; e8 7a ff13201 call 08866h ; e8 7a ff 13189 13202 mov AL, strict byte 055h ; b0 55 13190 13203 mov dx, 0043ah ; ba 3a 04 … … 13194 13207 ; sub ah, ah ; 2a e4 13195 13208 cmp AL, strict byte 055h ; 3c 55 13196 jne short 08 8eeh ; 75 1513209 jne short 0890eh ; 75 15 13197 13210 xor al, al ; 30 c0 13198 13211 mov dx, 0043bh ; ba 3b 04 13199 13212 out DX, AL ; ee 13200 13213 mov ax, 00438h ; b8 38 04 13201 call 083 7bh ; e8 96 fa13214 call 0839bh ; e8 96 fa 13202 13215 mov dx, strict word 00054h ; ba 54 00 13203 13216 mov ax, 01000h ; b8 00 10 13204 call 088 46h ; e8 58 ff13217 call 08866h ; e8 58 ff 13205 13218 mov sp, bp ; 89 ec 13206 13219 pop bp ; 5d 13207 13220 retn ; c3 13208 ahci_ctrl_extract_bits_: ; 0xf8 8f2 LB 0x1c13221 ahci_ctrl_extract_bits_: ; 0xf8912 LB 0x1c 13209 13222 push si ; 56 13210 13223 push bp ; 55 … … 13215 13228 mov cl, byte [bp+006h] ; 8a 4e 06 13216 13229 xor ch, ch ; 30 ed 13217 jcxz 089 09h ; e3 0613230 jcxz 08929h ; e3 06 13218 13231 shr dx, 1 ; d1 ea 13219 13232 rcr ax, 1 ; d1 d8 13220 loop 089 03h ; e2 fa13233 loop 08923h ; e2 fa 13221 13234 pop bp ; 5d 13222 13235 pop si ; 5e 13223 13236 retn 00002h ; c2 02 00 13224 ahci_addr_to_phys_: ; 0xf89 0e LB 0x1e13237 ahci_addr_to_phys_: ; 0xf892e LB 0x1e 13225 13238 push bx ; 53 13226 13239 push cx ; 51 … … 13233 13246 sal ax, 1 ; d1 e0 13234 13247 rcl dx, 1 ; d1 d2 13235 loop 089 1ch ; e2 fa13248 loop 0893ch ; e2 fa 13236 13249 xor cx, cx ; 31 c9 13237 13250 add ax, bx ; 01 d8 … … 13241 13254 pop bx ; 5b 13242 13255 retn ; c3 13243 ahci_port_cmd_sync_: ; 0xf89 2c LB 0x15913256 ahci_port_cmd_sync_: ; 0xf894c LB 0x159 13244 13257 push bp ; 55 13245 13258 mov bp, sp ; 89 e5 … … 13256 13269 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13257 13270 cmp AL, strict byte 0ffh ; 3c ff 13258 jne short 089 4fh ; 75 0313259 jmp near 08a 7dh ; e9 2e 0113271 jne short 0896fh ; 75 03 13272 jmp near 08a9dh ; e9 2e 01 13260 13273 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13261 13274 xor ah, ah ; 30 e4 … … 13270 13283 lea ax, [si+00080h] ; 8d 84 80 00 13271 13284 mov dx, cx ; 89 ca 13272 call 089 0eh ; e8 92 ff13285 call 0892eh ; e8 92 ff 13273 13286 mov es, cx ; 8e c1 13274 13287 mov word [es:si+008h], ax ; 26 89 44 08 … … 13338 13351 xchg dx, ax ; 92 13339 13352 test dh, 040h ; f6 c6 40 13340 jne short 08a 0fh ; 75 0413353 jne short 08a2fh ; 75 04 13341 13354 test AL, strict byte 001h ; a8 01 13342 je short 08a 13h ; 74 0413355 je short 08a33h ; 74 04 13343 13356 mov AL, strict byte 001h ; b0 01 13344 jmp short 08a 15h ; eb 0213357 jmp short 08a35h ; eb 02 13345 13358 xor al, al ; 30 c0 13346 13359 test al, al ; 84 c0 13347 je short 08 9e1h ; 74 c813360 je short 08a01h ; 74 c8 13348 13361 mov al, byte [bp-008h] ; 8a 46 f8 13349 13362 xor ah, ah ; 30 e4 … … 13402 13415 pop bp ; 5d 13403 13416 retn ; c3 13404 ahci_cmd_data_: ; 0xf8a 85 LB 0x26213417 ahci_cmd_data_: ; 0xf8aa5 LB 0x262 13405 13418 push bp ; 55 13406 13419 mov bp, sp ; 89 e5 … … 13427 13440 mov ax, 00080h ; b8 80 00 13428 13441 mov dx, word [bp-00ah] ; 8b 56 f6 13429 call 0a1 a0h ; e8 dd 1613442 call 0a1c0h ; e8 dd 16 13430 13443 mov es, [bp-00ah] ; 8e 46 f6 13431 13444 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13445 13458 mov dx, word [es:si] ; 26 8b 14 13446 13459 mov si, strict word 00008h ; be 08 00 13447 call 0a1 80h ; e8 79 1613460 call 0a1a0h ; e8 79 16 13448 13461 mov es, [bp-00ah] ; 8e 46 f6 13449 13462 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13456 13469 mov dx, word [es:si] ; 26 8b 14 13457 13470 mov si, strict word 00010h ; be 10 00 13458 call 0a1 80h ; e8 53 1613471 call 0a1a0h ; e8 53 16 13459 13472 mov es, [bp-00ah] ; 8e 46 f6 13460 13473 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13468 13481 mov dx, word [es:si] ; 26 8b 14 13469 13482 mov si, strict word 00018h ; be 18 00 13470 call 0a1 80h ; e8 27 1613483 call 0a1a0h ; e8 27 16 13471 13484 mov es, [bp-00ah] ; 8e 46 f6 13472 13485 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13479 13492 mov dx, word [es:si] ; 26 8b 14 13480 13493 mov si, strict word 00020h ; be 20 00 13481 call 0a1 80h ; e8 01 1613494 call 0a1a0h ; e8 01 16 13482 13495 mov es, [bp-00ah] ; 8e 46 f6 13483 13496 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13490 13503 mov dx, word [es:si] ; 26 8b 14 13491 13504 mov si, strict word 00028h ; be 28 00 13492 call 0a1 80h ; e8 db 1513505 call 0a1a0h ; e8 db 15 13493 13506 mov es, [bp-00ah] ; 8e 46 f6 13494 13507 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13503 13516 mov bx, word [bp-012h] ; 8b 5e ee 13504 13517 xor cx, cx ; 31 c9 13505 call 0a1 30h ; e8 59 1513518 call 0a150h ; e8 59 15 13506 13519 push dx ; 52 13507 13520 push ax ; 50 … … 13513 13526 mov ax, 0026ah ; b8 6a 02 13514 13527 mov dx, word [bp-00ah] ; 8b 56 f6 13515 call 0a0 8bh ; e8 98 1413528 call 0a0abh ; e8 98 14 13516 13529 mov es, [bp-00ah] ; 8e 46 f6 13517 13530 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13537 13550 mov ax, word [es:bx+020h] ; 26 8b 47 20 13538 13551 test ax, ax ; 85 c0 13539 je short 08c 83h ; 74 3913552 je short 08ca3h ; 74 39 13540 13553 dec ax ; 48 13541 13554 mov es, [bp-00ah] ; 8e 46 f6 … … 13555 13568 mov al, byte [bp-008h] ; 8a 46 f8 13556 13569 cmp AL, strict byte 035h ; 3c 35 13557 jne short 08c 90h ; 75 0613570 jne short 08cb0h ; 75 06 13558 13571 mov byte [bp-008h], 040h ; c6 46 f8 40 13559 jmp short 08c a7h ; eb 1713572 jmp short 08cc7h ; eb 17 13560 13573 cmp AL, strict byte 0a0h ; 3c a0 13561 jne short 08c a3h ; 75 0f13574 jne short 08cc3h ; 75 0f 13562 13575 or byte [bp-008h], 020h ; 80 4e f8 20 13563 13576 les bx, [bp-00eh] ; c4 5e f2 13564 13577 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13565 jmp short 08c a7h ; eb 0413578 jmp short 08cc7h ; eb 04 13566 13579 mov byte [bp-008h], 000h ; c6 46 f8 00 13567 13580 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13570 13583 mov ax, word [bp-00eh] ; 8b 46 f2 13571 13584 mov dx, word [bp-00ch] ; 8b 56 f4 13572 call 089 2ch ; e8 73 fc13585 call 0894ch ; e8 73 fc 13573 13586 mov cx, word [bp-00ch] ; 8b 4e f4 13574 13587 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13577 13590 add ax, 0026ah ; 05 6a 02 13578 13591 mov dx, cx ; 89 ca 13579 call 0a1 02h ; e8 34 1413592 call 0a122h ; e8 34 14 13580 13593 mov es, cx ; 8e c1 13581 13594 mov al, byte [es:bx+003h] ; 26 8a 47 03 13582 13595 test al, al ; 84 c0 13583 je short 08c ddh ; 74 0513596 je short 08cfdh ; 74 05 13584 13597 mov ax, strict word 00004h ; b8 04 00 13585 jmp short 08c dfh ; eb 0213598 jmp short 08cffh ; eb 02 13586 13599 xor ah, ah ; 30 e4 13587 13600 lea sp, [bp-006h] ; 8d 66 fa … … 13591 13604 pop bp ; 5d 13592 13605 retn ; c3 13593 ahci_port_deinit_current_: ; 0xf8 ce7 LB 0x18313606 ahci_port_deinit_current_: ; 0xf8d07 LB 0x183 13594 13607 push bp ; 55 13595 13608 mov bp, sp ; 89 e5 … … 13606 13619 mov byte [bp-00ah], al ; 88 46 f6 13607 13620 cmp AL, strict byte 0ffh ; 3c ff 13608 je short 08d 6ah ; 74 6113621 je short 08d8ah ; 74 61 13609 13622 xor ah, ah ; 30 e4 13610 13623 mov CL, strict byte 007h ; b1 07 … … 13652 13665 xchg dx, ax ; 92 13653 13666 test ax, 0c011h ; a9 11 c0 13654 je short 08d 6dh ; 74 0713667 je short 08d8dh ; 74 07 13655 13668 mov AL, strict byte 001h ; b0 01 13656 jmp short 08d 6fh ; eb 0513657 jmp near 08e 61h ; e9 f4 0013669 jmp short 08d8fh ; eb 05 13670 jmp near 08e81h ; e9 f4 00 13658 13671 xor al, al ; 30 c0 13659 13672 cmp AL, strict byte 001h ; 3c 01 13660 je short 08d 3ch ; 74 c913673 je short 08d5ch ; 74 c9 13661 13674 mov cx, strict word 00020h ; b9 20 00 13662 13675 xor bx, bx ; 31 db 13663 13676 mov ax, di ; 89 f8 13664 13677 mov dx, word [bp-00eh] ; 8b 56 f2 13665 call 0a1 a0h ; e8 20 1413678 call 0a1c0h ; e8 20 14 13666 13679 lea ax, [di+00080h] ; 8d 85 80 00 13667 13680 mov cx, strict word 00040h ; b9 40 00 13668 13681 xor bx, bx ; 31 db 13669 13682 mov dx, word [bp-00eh] ; 8b 56 f2 13670 call 0a1 a0h ; e8 11 1413683 call 0a1c0h ; e8 11 14 13671 13684 lea ax, [di+00200h] ; 8d 85 00 02 13672 13685 mov cx, strict word 00060h ; b9 60 00 13673 13686 xor bx, bx ; 31 db 13674 13687 mov dx, word [bp-00eh] ; 8b 56 f2 13675 call 0a1 a0h ; e8 02 1413688 call 0a1c0h ; e8 02 14 13676 13689 mov al, byte [bp-00ah] ; 8a 46 f6 13677 13690 xor ah, ah ; 30 e4 … … 13779 13792 pop bp ; 5d 13780 13793 retn ; c3 13781 ahci_port_init_: ; 0xf8e 6a LB 0x25013794 ahci_port_init_: ; 0xf8e8a LB 0x250 13782 13795 push bp ; 55 13783 13796 mov bp, sp ; 89 e5 … … 13789 13802 mov word [bp-00ah], dx ; 89 56 f6 13790 13803 mov byte [bp-008h], bl ; 88 5e f8 13791 call 08 ce7h ; e8 69 fe13804 call 08d07h ; e8 69 fe 13792 13805 mov al, bl ; 88 d8 13793 13806 xor ah, ah ; 30 e4 … … 13840 13853 xchg dx, ax ; 92 13841 13854 test ax, 0c011h ; a9 11 c0 13842 je short 08 ef1h ; 74 0413855 je short 08f11h ; 74 04 13843 13856 mov AL, strict byte 001h ; b0 01 13844 jmp short 08 ef3h ; eb 0213857 jmp short 08f13h ; eb 02 13845 13858 xor al, al ; 30 c0 13846 13859 cmp AL, strict byte 001h ; 3c 01 13847 je short 08e bbh ; 74 c413860 je short 08edbh ; 74 c4 13848 13861 mov cx, strict word 00020h ; b9 20 00 13849 13862 xor bx, bx ; 31 db 13850 13863 mov ax, si ; 89 f0 13851 13864 mov dx, word [bp-00ah] ; 8b 56 f6 13852 call 0a1 a0h ; e8 9c 1213865 call 0a1c0h ; e8 9c 12 13853 13866 lea ax, [si+00080h] ; 8d 84 80 00 13854 13867 mov cx, strict word 00040h ; b9 40 00 13855 13868 xor bx, bx ; 31 db 13856 13869 mov dx, word [bp-00ah] ; 8b 56 f6 13857 call 0a1 a0h ; e8 8d 1213870 call 0a1c0h ; e8 8d 12 13858 13871 lea di, [si+00200h] ; 8d bc 00 02 13859 13872 mov cx, strict word 00060h ; b9 60 00 … … 13861 13874 mov ax, di ; 89 f8 13862 13875 mov dx, word [bp-00ah] ; 8b 56 f6 13863 call 0a1 a0h ; e8 7c 1213876 call 0a1c0h ; e8 7c 12 13864 13877 mov bl, byte [bp-008h] ; 8a 5e f8 13865 13878 xor bh, bh ; 30 ff … … 13880 13893 mov ax, di ; 89 f8 13881 13894 mov dx, word [bp-00ah] ; 8b 56 f6 13882 call 089 0eh ; e8 bb f913895 call 0892eh ; e8 bb f9 13883 13896 mov es, [bp-00ah] ; 8e 46 f6 13884 13897 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13925 13938 mov ax, si ; 89 f0 13926 13939 mov dx, word [bp-00ah] ; 8b 56 f6 13927 call 089 0eh ; e8 4f f913940 call 0892eh ; e8 4f f9 13928 13941 mov es, [bp-00ah] ; 8e 46 f6 13929 13942 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 14030 14043 pop bp ; 5d 14031 14044 retn ; c3 14032 @ahci_read_sectors: ; 0xf90 ba LB 0xaa14045 @ahci_read_sectors: ; 0xf90da LB 0xaa 14033 14046 push bp ; 55 14034 14047 mov bp, sp ; 89 e5 … … 14041 14054 sub di, strict byte 0000ch ; 83 ef 0c 14042 14055 cmp di, strict byte 00004h ; 83 ff 04 14043 jbe short 09 0e5h ; 76 1314056 jbe short 09105h ; 76 13 14044 14057 push di ; 57 14045 14058 mov ax, 00c62h ; b8 62 0c … … 14049 14062 mov ax, strict word 00007h ; b8 07 00 14050 14063 push ax ; 50 14051 call 01976h ; e8 94 8814064 call 01976h ; e8 74 88 14052 14065 add sp, strict byte 00008h ; 83 c4 08 14053 14066 xor bx, bx ; 31 db … … 14063 14076 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14064 14077 xor ax, ax ; 31 c0 14065 call 08e 6ah ; e8 5a fd14078 call 08e8ah ; e8 5a fd 14066 14079 mov bx, strict word 00025h ; bb 25 00 14067 14080 mov ax, si ; 89 f0 14068 14081 mov dx, word [bp+006h] ; 8b 56 06 14069 call 08a 85h ; e8 6a f914082 call 08aa5h ; e8 6a f9 14070 14083 mov bx, ax ; 89 c3 14071 14084 mov es, [bp+006h] ; 8e 46 06 … … 14097 14110 pop bp ; 5d 14098 14111 retn 00004h ; c2 04 00 14099 @ahci_write_sectors: ; 0xf91 64 LB 0x8814112 @ahci_write_sectors: ; 0xf9184 LB 0x88 14100 14113 push bp ; 55 14101 14114 mov bp, sp ; 89 e5 … … 14109 14122 sub bx, strict byte 0000ch ; 83 eb 0c 14110 14123 cmp bx, strict byte 00004h ; 83 fb 04 14111 jbe short 091 92h ; 76 1314124 jbe short 091b2h ; 76 13 14112 14125 push bx ; 53 14113 14126 mov ax, 00c93h ; b8 93 0c … … 14117 14130 mov ax, strict word 00007h ; b8 07 00 14118 14131 push ax ; 50 14119 call 01976h ; e8 e7 8714132 call 01976h ; e8 c7 87 14120 14133 add sp, strict byte 00008h ; 83 c4 08 14121 14134 xor di, di ; 31 ff … … 14131 14144 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14132 14145 xor ax, ax ; 31 c0 14133 call 08e 6ah ; e8 af fc14146 call 08e8ah ; e8 af fc 14134 14147 mov bx, strict word 00035h ; bb 35 00 14135 14148 mov ax, si ; 89 f0 14136 14149 mov dx, cx ; 89 ca 14137 call 08a 85h ; e8 c0 f814150 call 08aa5h ; e8 c0 f8 14138 14151 mov dx, ax ; 89 c2 14139 14152 mov es, cx ; 8e c1 … … 14150 14163 pop bp ; 5d 14151 14164 retn 00004h ; c2 04 00 14152 ahci_cmd_packet_: ; 0xf9 1ec LB 0x18c14165 ahci_cmd_packet_: ; 0xf920c LB 0x18c 14153 14166 push bp ; 55 14154 14167 mov bp, sp ; 89 e5 … … 14162 14175 mov dx, strict word 0000eh ; ba 0e 00 14163 14176 mov ax, strict word 00040h ; b8 40 00 14164 call 0166eh ; e8 67 8414177 call 0166eh ; e8 47 84 14165 14178 mov si, 00122h ; be 22 01 14166 14179 mov word [bp-008h], ax ; 89 46 f8 14167 14180 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14168 jne short 092 36h ; 75 2314169 mov bx, 00da 4h ; bb a40d14181 jne short 09256h ; 75 23 14182 mov bx, 00da0h ; bb a0 0d 14170 14183 mov cx, ds ; 8c d9 14171 14184 mov ax, strict word 00004h ; b8 04 00 14172 call 01933h ; e8 15 8714185 call 01933h ; e8 f5 86 14173 14186 mov ax, 00ca6h ; b8 a6 0c 14174 14187 push ax ; 50 … … 14177 14190 mov ax, strict word 00004h ; b8 04 00 14178 14191 push ax ; 50 14179 call 01976h ; e8 49 8714192 call 01976h ; e8 29 87 14180 14193 add sp, strict byte 00006h ; 83 c4 06 14181 14194 mov ax, strict word 00001h ; b8 01 00 14182 jmp near 093 6fh ; e9 39 0114195 jmp near 0938fh ; e9 39 01 14183 14196 test byte [bp+004h], 001h ; f6 46 04 01 14184 jne short 092 30h ; 75 f414197 jne short 09250h ; 75 f4 14185 14198 mov bx, word [bp+006h] ; 8b 5e 06 14186 14199 mov di, word [bp+008h] ; 8b 7e 08 … … 14188 14201 sal bx, 1 ; d1 e3 14189 14202 rcl di, 1 ; d1 d7 14190 loop 092 45h ; e2 fa14203 loop 09265h ; e2 fa 14191 14204 mov es, [bp-008h] ; 8e 46 f8 14192 14205 mov word [es:si], bx ; 26 89 1c … … 14202 14215 mov dx, word [bp+008h] ; 8b 56 08 14203 14216 xor cx, cx ; 31 c9 14204 call 0a1 50h ; e8 d2 0e14217 call 0a170h ; e8 d2 0e 14205 14218 mov word [es:si+00eh], ax ; 26 89 44 0e 14206 14219 xor di, di ; 31 ff … … 14220 14233 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14221 14234 xor ax, ax ; 31 c0 14222 call 08e 6ah ; e8 af fb14235 call 08e8ah ; e8 af fb 14223 14236 mov al, byte [bp-006h] ; 8a 46 fa 14224 14237 xor ah, ah ; 30 e4 … … 14228 14241 mov ax, 000c0h ; b8 c0 00 14229 14242 mov dx, word [bp-00ah] ; 8b 56 f6 14230 call 0a1 b0h ; e8 e0 0e14243 call 0a1d0h ; e8 e0 0e 14231 14244 mov es, [bp-008h] ; 8e 46 f8 14232 14245 mov word [es:si+018h], di ; 26 89 7c 18 … … 14235 14248 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14236 14249 test ax, ax ; 85 c0 14237 je short 093 0eh ; 74 2714250 je short 0932eh ; 74 27 14238 14251 dec ax ; 48 14239 14252 mov es, [bp-00ah] ; 8e 46 f6 … … 14248 14261 mov ax, si ; 89 f0 14249 14262 mov dx, word [bp-008h] ; 8b 56 f8 14250 call 08a 85h ; e8 6c f714263 call 08aa5h ; e8 6c f7 14251 14264 les bx, [bp-00eh] ; c4 5e f2 14252 14265 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14275 14288 mov ax, word [es:bx+006h] ; 26 8b 47 06 14276 14289 or ax, word [es:bx+004h] ; 26 0b 47 04 14277 jne short 093 6dh ; 75 0514290 jne short 0938dh ; 75 05 14278 14291 mov ax, strict word 00004h ; b8 04 00 14279 jmp short 093 6fh ; eb 0214292 jmp short 0938fh ; eb 02 14280 14293 xor ax, ax ; 31 c0 14281 14294 lea sp, [bp-004h] ; 8d 66 fc … … 14284 14297 pop bp ; 5d 14285 14298 retn 0000ch ; c2 0c 00 14286 wait_ticks_device_init_: ; 0xf93 78 LB 0x514299 wait_ticks_device_init_: ; 0xf9398 LB 0x5 14287 14300 push bp ; 55 14288 14301 mov bp, sp ; 89 e5 14289 14302 pop bp ; 5d 14290 14303 retn ; c3 14291 ahci_port_detect_device_: ; 0xf93 7d LB 0x4f614304 ahci_port_detect_device_: ; 0xf939d LB 0x4f6 14292 14305 push bp ; 55 14293 14306 mov bp, sp ; 89 e5 … … 14306 14319 mov bx, word [bp-02ah] ; 8b 5e d6 14307 14320 mov ax, si ; 89 f0 14308 call 08e 6ah ; e8 c4 fa14321 call 08e8ah ; e8 c4 fa 14309 14322 mov dx, strict word 0000eh ; ba 0e 00 14310 14323 mov ax, strict word 00040h ; b8 40 00 14311 call 0166eh ; e8 bf 8214324 call 0166eh ; e8 9f 82 14312 14325 mov word [bp-026h], 00122h ; c7 46 da 22 01 14313 14326 mov word [bp-024h], ax ; 89 46 dc … … 14369 14382 mov ax, word [es:di+002h] ; 26 8b 45 02 14370 14383 cmp ax, word [bp-028h] ; 3b 46 d8 14371 jc short 094 5ah ; 72 1114384 jc short 0947ah ; 72 11 14372 14385 mov ax, word [es:di+002h] ; 26 8b 45 02 14373 14386 cmp ax, word [bp-028h] ; 3b 46 d8 14374 jne short 094 a8h ; 75 5614387 jne short 094c8h ; 75 56 14375 14388 mov ax, word [es:di] ; 26 8b 05 14376 14389 cmp ax, word [bp-01ch] ; 3b 46 e4 14377 jnc short 094 a8h ; 73 4e14390 jnc short 094c8h ; 73 4e 14378 14391 mov al, byte [bp-008h] ; 8a 46 f8 14379 14392 xor ah, ah ; 30 e4 … … 14405 14418 mov bx, strict word 0000fh ; bb 0f 00 14406 14419 xor cx, cx ; 31 c9 14407 call 08 8f2h ; e8 51 f414420 call 08912h ; e8 51 f4 14408 14421 cmp ax, strict word 00003h ; 3d 03 00 14409 jne short 094 3dh ; 75 9714410 jmp short 094 b1h ; eb 0914422 jne short 0945dh ; 75 97 14423 jmp short 094d1h ; eb 09 14411 14424 cmp word [bp-01eh], strict byte 00000h ; 83 7e e2 00 14412 jne short 094 b1h ; 75 0314413 jmp near 098 6bh ; e9 ba 0314425 jne short 094d1h ; 75 03 14426 jmp near 0988bh ; e9 ba 03 14414 14427 xor ax, ax ; 31 c0 14415 14428 push ax ; 50 … … 14418 14431 mov ax, word [bp-022h] ; 8b 46 de 14419 14432 mov dx, word [bp-020h] ; 8b 56 e0 14420 call 08 8f2h ; e8 30 f414433 call 08912h ; e8 30 f4 14421 14434 cmp ax, strict word 00003h ; 3d 03 00 14422 jne short 094 aeh ; 75 e714435 jne short 094ceh ; 75 e7 14423 14436 mov al, byte [bp-008h] ; 8a 46 f8 14424 14437 xor ah, ah ; 30 e4 … … 14451 14464 mov byte [bp-00ch], al ; 88 46 f4 14452 14465 cmp AL, strict byte 004h ; 3c 04 14453 jnc short 094 aeh ; 73 9a14466 jnc short 094ceh ; 73 9a 14454 14467 lea ax, [di+00118h] ; 8d 85 18 01 14455 14468 mov es, [bp-01ah] ; 8e 46 e6 … … 14500 14513 mov byte [bp-00eh], bl ; 88 5e f2 14501 14514 test dx, dx ; 85 d2 14502 jne short 095 d9h ; 75 5414515 jne short 095f9h ; 75 54 14503 14516 cmp ax, 00101h ; 3d 01 01 14504 jne short 095 d9h ; 75 4f14517 jne short 095f9h ; 75 4f 14505 14518 les bx, [bp-026h] ; c4 5e da 14506 14519 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 … … 14516 14529 mov ax, word [bp-026h] ; 8b 46 da 14517 14530 mov dx, es ; 8c c2 14518 call 08a 85h ; e8 be f414531 call 08aa5h ; e8 be f4 14519 14532 mov al, byte [bp-00eh] ; 8a 46 f2 14520 14533 mov byte [bp-00ah], al ; 88 46 f6 14521 14534 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14522 je short 095 dch ; 74 0814535 je short 095fch ; 74 08 14523 14536 mov ax, strict word 00001h ; b8 01 00 14524 jmp short 095 deh ; eb 0514525 jmp near 097 aah ; e9 ce 0114537 jmp short 095feh ; eb 05 14538 jmp near 097cah ; e9 ce 01 14526 14539 xor ax, ax ; 31 c0 14527 14540 mov cl, al ; 88 c1 … … 14538 14551 mov word [bp-010h], ax ; 89 46 f0 14539 14552 cmp si, 00fffh ; 81 fe ff 0f 14540 jne short 096 26h ; 75 1b14553 jne short 09646h ; 75 1b 14541 14554 cmp di, strict byte 0ffffh ; 83 ff ff 14542 jne short 096 26h ; 75 1614555 jne short 09646h ; 75 16 14543 14556 mov ax, word [bp-00164h] ; 8b 86 9c fe 14544 14557 mov word [bp-010h], ax ; 89 46 f0 … … 14578 14591 mov al, byte [bp-00ch] ; 8a 46 f4 14579 14592 cmp AL, strict byte 001h ; 3c 01 14580 jc short 096 a0h ; 72 0c14581 jbe short 096 a8h ; 76 1214593 jc short 096c0h ; 72 0c 14594 jbe short 096c8h ; 76 12 14582 14595 cmp AL, strict byte 003h ; 3c 03 14583 je short 096 b0h ; 74 1614596 je short 096d0h ; 74 16 14584 14597 cmp AL, strict byte 002h ; 3c 02 14585 je short 096 ach ; 74 0e14586 jmp short 09 6fah ; eb 5a14598 je short 096cch ; 74 0e 14599 jmp short 0971ah ; eb 5a 14587 14600 test al, al ; 84 c0 14588 jne short 09 6fah ; 75 5614601 jne short 0971ah ; 75 56 14589 14602 mov BL, strict byte 040h ; b3 40 14590 jmp short 096 b2h ; eb 0a14603 jmp short 096d2h ; eb 0a 14591 14604 mov BL, strict byte 048h ; b3 48 14592 jmp short 096 b2h ; eb 0614605 jmp short 096d2h ; eb 06 14593 14606 mov BL, strict byte 050h ; b3 50 14594 jmp short 096 b2h ; eb 0214607 jmp short 096d2h ; eb 02 14595 14608 mov BL, strict byte 058h ; b3 58 14596 14609 mov dl, bl ; 88 da … … 14598 14611 xor dh, dh ; 30 f6 14599 14612 mov ax, dx ; 89 d0 14600 call 016aeh ; e8 f0 7f14613 call 016aeh ; e8 d0 7f 14601 14614 test al, al ; 84 c0 14602 je short 09 6fah ; 74 3814615 je short 0971ah ; 74 38 14603 14616 mov al, bl ; 88 d8 14604 14617 db 0feh, 0c0h 14605 14618 ; inc al ; fe c0 14606 14619 xor ah, ah ; 30 e4 14607 call 016aeh ; e8 e3 7f14620 call 016aeh ; e8 c3 7f 14608 14621 mov byte [bp-029h], al ; 88 46 d7 14609 14622 mov byte [bp-02ah], dh ; 88 76 d6 14610 14623 mov al, bl ; 88 d8 14611 14624 xor ah, ah ; 30 e4 14612 call 016aeh ; e8 d6 7f14625 call 016aeh ; e8 b6 7f 14613 14626 xor ah, ah ; 30 e4 14614 14627 mov cx, word [bp-02ah] ; 8b 4e d6 … … 14617 14630 mov al, bl ; 88 d8 14618 14631 add AL, strict byte 002h ; 04 02 14619 call 016aeh ; e8 c5 7f14632 call 016aeh ; e8 a5 7f 14620 14633 xor ah, ah ; 30 e4 14621 14634 mov word [bp-032h], ax ; 89 46 ce 14622 14635 mov ax, dx ; 89 d0 14623 call 016aeh ; e8 bb 7f14636 call 016aeh ; e8 9b 7f 14624 14637 xor ah, ah ; 30 e4 14625 14638 mov word [bp-02eh], ax ; 89 46 d2 14626 jmp short 097 0ah ; eb 1014639 jmp short 0972ah ; eb 10 14627 14640 push word [bp-010h] ; ff 76 f0 14628 14641 push word [bp-012h] ; ff 76 ee … … 14631 14644 mov dx, ss ; 8c d2 14632 14645 lea ax, [bp-032h] ; 8d 46 ce 14633 call 05b 7fh ; e8 75 c414634 mov bx, 00da 4h ; bb a40d14646 call 05b9fh ; e8 75 c4 14647 mov bx, 00da0h ; bb a0 0d 14635 14648 mov cx, ds ; 8c d9 14636 14649 mov ax, strict word 00004h ; b8 04 00 14637 call 01933h ; e8 1e 8214650 call 01933h ; e8 fe 81 14638 14651 push word [bp-010h] ; ff 76 f0 14639 14652 push word [bp-012h] ; ff 76 ee … … 14658 14671 mov ax, strict word 00004h ; b8 04 00 14659 14672 push ax ; 50 14660 call 01976h ; e8 2f 8214673 call 01976h ; e8 0f 82 14661 14674 add sp, strict byte 0001ch ; 83 c4 1c 14662 14675 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14691 14704 mov dx, strict word 00075h ; ba 75 00 14692 14705 mov ax, strict word 00040h ; b8 40 00 14693 call 01652h ; e8 ba 7e14706 call 01652h ; e8 9a 7e 14694 14707 mov bl, al ; 88 c3 14695 14708 db 0feh, 0c3h … … 14698 14711 mov dx, strict word 00075h ; ba 75 00 14699 14712 mov ax, strict word 00040h ; b8 40 00 14700 call 01660h ; e8 b9 7e14701 jmp near 098 5dh ; e9 b3 0014713 call 01660h ; e8 99 7e 14714 jmp near 0987dh ; e9 b3 00 14702 14715 cmp dx, 0eb14h ; 81 fa 14 eb 14703 jne short 098 04h ; 75 5414716 jne short 09824h ; 75 54 14704 14717 cmp ax, 00101h ; 3d 01 01 14705 jne short 098 04h ; 75 4f14718 jne short 09824h ; 75 4f 14706 14719 les bx, [bp-026h] ; c4 5e da 14707 14720 mov word [es:bx+006h], strict word 00000h ; 26 c7 47 06 00 00 … … 14717 14730 mov ax, word [bp-026h] ; 8b 46 da 14718 14731 mov dx, es ; 8c c2 14719 call 08a 85h ; e8 93 f214732 call 08aa5h ; e8 93 f2 14720 14733 mov al, byte [bp-00eh] ; 8a 46 f2 14721 14734 mov byte [bp-00ah], al ; 88 46 f6 14722 14735 test byte [bp-00232h], 080h ; f6 86 ce fd 80 14723 je short 098 06h ; 74 0714736 je short 09826h ; 74 07 14724 14737 mov cx, strict word 00001h ; b9 01 00 14725 jmp short 098 08h ; eb 0414726 jmp short 098 5dh ; eb 5714738 jmp short 09828h ; eb 04 14739 jmp short 0987dh ; eb 57 14727 14740 xor cx, cx ; 31 c9 14728 14741 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14763 14776 pop bp ; 5d 14764 14777 retn ; c3 14765 ahci_mem_alloc_: ; 0xf98 73 LB 0x4314778 ahci_mem_alloc_: ; 0xf9893 LB 0x43 14766 14779 push bp ; 55 14767 14780 mov bp, sp ; 89 e5 … … 14773 14786 mov dx, 00413h ; ba 13 04 14774 14787 xor ax, ax ; 31 c0 14775 call 0166eh ; e8 eb 7d14788 call 0166eh ; e8 cb 7d 14776 14789 test ax, ax ; 85 c0 14777 je short 098 ach ; 74 2514790 je short 098cch ; 74 25 14778 14791 dec ax ; 48 14779 14792 mov bx, ax ; 89 c3 … … 14782 14795 sal ax, 1 ; d1 e0 14783 14796 rcl dx, 1 ; d1 d2 14784 loop 098 8fh ; e2 fa14797 loop 098afh ; e2 fa 14785 14798 mov si, ax ; 89 c6 14786 14799 mov di, dx ; 89 d7 … … 14788 14801 shr di, 1 ; d1 ef 14789 14802 rcr si, 1 ; d1 de 14790 loop 098 9ch ; e2 fa14803 loop 098bch ; e2 fa 14791 14804 mov dx, 00413h ; ba 13 04 14792 14805 xor ax, ax ; 31 c0 14793 call 0167ch ; e8 d2 7d14806 call 0167ch ; e8 b2 7d 14794 14807 mov ax, si ; 89 f0 14795 14808 lea sp, [bp-00ah] ; 8d 66 f6 … … 14801 14814 pop bp ; 5d 14802 14815 retn ; c3 14803 ahci_hba_init_: ; 0xf98 b6 LB 0x16e14816 ahci_hba_init_: ; 0xf98d6 LB 0x16e 14804 14817 push bp ; 55 14805 14818 mov bp, sp ; 89 e5 … … 14813 14826 mov dx, strict word 0000eh ; ba 0e 00 14814 14827 mov ax, strict word 00040h ; b8 40 00 14815 call 0166eh ; e8 a2 7d14828 call 0166eh ; e8 82 7d 14816 14829 mov bx, 00122h ; bb 22 01 14817 14830 mov di, ax ; 89 c7 … … 14830 14843 shr eax, 010h ; 66 c1 e8 10 14831 14844 xchg dx, ax ; 92 14832 call 098 73h ; e8 83 ff14845 call 09893h ; e8 83 ff 14833 14846 mov word [bp-010h], ax ; 89 46 f0 14834 14847 test ax, ax ; 85 c0 14835 jne short 09 8fah ; 75 0314836 jmp near 09a 03h ; e9 09 0114848 jne short 0991ah ; 75 03 14849 jmp near 09a23h ; e9 09 01 14837 14850 mov ax, word [bp-010h] ; 8b 46 f0 14838 14851 mov es, di ; 8e c7 … … 14884 14897 xchg dx, ax ; 92 14885 14898 test AL, strict byte 001h ; a8 01 14886 jne short 099 54h ; 75 de14899 jne short 09974h ; 75 de 14887 14900 xor ax, ax ; 31 c0 14888 14901 xor cx, cx ; 31 c9 … … 14903 14916 mov bx, strict word 0001fh ; bb 1f 00 14904 14917 xor cx, cx ; 31 c9 14905 call 08 8f2h ; e8 57 ef14918 call 08912h ; e8 57 ef 14906 14919 db 0feh, 0c0h 14907 14920 ; inc al ; fe c0 14908 14921 mov byte [bp-00eh], al ; 88 46 f2 14909 14922 mov byte [bp-00ch], 000h ; c6 46 f4 00 14910 jmp short 099 c7h ; eb 2114923 jmp short 099e7h ; eb 21 14911 14924 xor al, al ; 30 c0 14912 14925 test al, al ; 84 c0 14913 je short 099 beh ; 74 1214926 je short 099deh ; 74 12 14914 14927 mov bl, byte [bp-00ch] ; 8a 5e f4 14915 14928 xor bh, bh ; 30 ff 14916 14929 xor ax, ax ; 31 c0 14917 14930 mov dx, word [bp-010h] ; 8b 56 f0 14918 call 093 7dh ; e8 c4 f914931 call 0939dh ; e8 c4 f9 14919 14932 dec byte [bp-00eh] ; fe 4e f2 14920 je short 09a 01h ; 74 4314933 je short 09a21h ; 74 43 14921 14934 inc byte [bp-00ch] ; fe 46 f4 14922 14935 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14923 jnc short 09a 01h ; 73 3a14936 jnc short 09a21h ; 73 3a 14924 14937 mov cl, byte [bp-00ch] ; 8a 4e f4 14925 14938 xor ch, ch ; 30 ed 14926 14939 mov bx, strict word 00001h ; bb 01 00 14927 14940 xor di, di ; 31 ff 14928 jcxz 099 d9h ; e3 0614941 jcxz 099f9h ; e3 06 14929 14942 sal bx, 1 ; d1 e3 14930 14943 rcl di, 1 ; d1 d7 14931 loop 099 d3h ; e2 fa14944 loop 099f3h ; e2 fa 14932 14945 mov ax, strict word 0000ch ; b8 0c 00 14933 14946 xor cx, cx ; 31 c9 … … 14945 14958 xchg dx, ax ; 92 14946 14959 test dx, di ; 85 fa 14947 jne short 09 9fdh ; 75 0414960 jne short 09a1dh ; 75 04 14948 14961 test ax, bx ; 85 d8 14949 je short 099 a6h ; 74 a914962 je short 099c6h ; 74 a9 14950 14963 mov AL, strict byte 001h ; b0 01 14951 jmp short 099 a8h ; eb a714964 jmp short 099c8h ; eb a7 14952 14965 xor ax, ax ; 31 c0 14953 14966 lea sp, [bp-00ah] ; 8d 66 f6 … … 14959 14972 pop bp ; 5d 14960 14973 retn ; c3 14961 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 0ah, 09bh, 0e8h, 09ah, 0eeh, 09ah, 0f4h, 09ah, 0fah14962 db 09 ah, 000h, 09bh, 006h, 09bh, 00ah, 09bh14963 _ahci_init: ; 0xf9a 24 LB 0x13914974 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 02ah, 09bh, 008h, 09bh, 00eh, 09bh, 014h, 09bh, 01ah 14975 db 09bh, 020h, 09bh, 026h, 09bh, 02ah, 09bh 14976 _ahci_init: ; 0xf9a44 LB 0x139 14964 14977 push bp ; 55 14965 14978 mov bp, sp ; 89 e5 … … 14969 14982 mov ax, 00601h ; b8 01 06 14970 14983 mov dx, strict word 00001h ; ba 01 00 14971 call 09f 7ch ; e8 47 0514984 call 09f9ch ; e8 47 05 14972 14985 mov dx, ax ; 89 c2 14973 14986 cmp ax, strict word 0ffffh ; 3d ff ff 14974 je short 09a 85h ; 74 4914987 je short 09aa5h ; 74 49 14975 14988 mov al, ah ; 88 e0 14976 14989 mov byte [bp-008h], ah ; 88 66 f8 … … 14979 14992 xor ah, ah ; 30 e4 14980 14993 mov bx, strict word 00034h ; bb 34 00 14981 call 09f a7h ; e8 59 0514994 call 09fc7h ; e8 59 05 14982 14995 mov cl, al ; 88 c1 14983 14996 test cl, cl ; 84 c9 14984 je short 09a 88h ; 74 3414997 je short 09aa8h ; 74 34 14985 14998 mov bl, cl ; 88 cb 14986 14999 xor bh, bh ; 30 ff … … 14993 15006 mov dx, word [bp-00ch] ; 8b 56 f4 14994 15007 mov ax, word [bp-012h] ; 8b 46 ee 14995 call 09f a7h ; e8 34 0515008 call 09fc7h ; e8 34 05 14996 15009 cmp AL, strict byte 012h ; 3c 12 14997 je short 09a 88h ; 74 1115010 je short 09aa8h ; 74 11 14998 15011 mov bl, cl ; 88 cb 14999 15012 db 0feh, 0c3h … … 15002 15015 mov dx, word [bp-00ch] ; 8b 56 f4 15003 15016 mov ax, word [bp-012h] ; 8b 46 ee 15004 jmp short 09a 4bh ; eb c615005 jmp near 09b 56h ; e9 ce 0015017 jmp short 09a6bh ; eb c6 15018 jmp near 09b76h ; e9 ce 00 15006 15019 test cl, cl ; 84 c9 15007 je short 09a 85h ; 74 f915020 je short 09aa5h ; 74 f9 15008 15021 add cl, 002h ; 80 c1 02 15009 15022 mov bl, cl ; 88 cb … … 15017 15030 mov dx, word [bp-00eh] ; 8b 56 f2 15018 15031 mov ax, word [bp-014h] ; 8b 46 ec 15019 call 09f a7h ; e8 f9 0415032 call 09fc7h ; e8 f9 04 15020 15033 cmp AL, strict byte 010h ; 3c 10 15021 jne short 09a 85h ; 75 d315034 jne short 09aa5h ; 75 d3 15022 15035 mov byte [bp-006h], 000h ; c6 46 fa 00 15023 15036 mov bl, cl ; 88 cb … … 15026 15039 mov dx, word [bp-00eh] ; 8b 56 f2 15027 15040 mov ax, word [bp-014h] ; 8b 46 ec 15028 call 09f ceh ; e8 08 0515041 call 09feeh ; e8 08 05 15029 15042 mov dx, ax ; 89 c2 15030 15043 and ax, strict word 0000fh ; 25 0f 00 15031 15044 sub ax, strict word 00004h ; 2d 04 00 15032 15045 cmp ax, strict word 0000bh ; 3d 0b 00 15033 jnbe short 09b 0ah ; 77 3715046 jnbe short 09b2ah ; 77 37 15034 15047 push CS ; 0e 15035 15048 pop ES ; 07 15036 15049 mov cx, strict word 00008h ; b9 08 00 15037 mov di, 09a 0dh ; bf 0d 9a15050 mov di, 09a2dh ; bf 2d 9a 15038 15051 repne scasb ; f2 ae 15039 15052 sal cx, 1 ; d1 e1 15040 15053 mov di, cx ; 89 cf 15041 mov ax, word [cs:di-065 ech] ; 2e 8b 85 14 9a15054 mov ax, word [cs:di-065cch] ; 2e 8b 85 34 9a 15042 15055 jmp ax ; ff e0 15043 15056 mov byte [bp-006h], 010h ; c6 46 fa 10 15044 jmp short 09b 0ah ; eb 1c15057 jmp short 09b2ah ; eb 1c 15045 15058 mov byte [bp-006h], 014h ; c6 46 fa 14 15046 jmp short 09b 0ah ; eb 1615059 jmp short 09b2ah ; eb 16 15047 15060 mov byte [bp-006h], 018h ; c6 46 fa 18 15048 jmp short 09b 0ah ; eb 1015061 jmp short 09b2ah ; eb 10 15049 15062 mov byte [bp-006h], 01ch ; c6 46 fa 1c 15050 jmp short 09b 0ah ; eb 0a15063 jmp short 09b2ah ; eb 0a 15051 15064 mov byte [bp-006h], 020h ; c6 46 fa 20 15052 jmp short 09b 0ah ; eb 0415065 jmp short 09b2ah ; eb 04 15053 15066 mov byte [bp-006h], 024h ; c6 46 fa 24 15054 15067 mov CL, strict byte 004h ; b1 04 … … 15059 15072 mov al, byte [bp-006h] ; 8a 46 fa 15060 15073 test al, al ; 84 c0 15061 je short 09b 56h ; 74 3b15074 je short 09b76h ; 74 3b 15062 15075 mov bl, al ; 88 c3 15063 15076 xor bh, bh ; 30 ff … … 15070 15083 mov dx, word [bp-010h] ; 8b 56 f0 15071 15084 mov ax, word [bp-016h] ; 8b 46 ea 15072 call 0 9ff3h ; e8 b9 0415085 call 0a013h ; e8 b9 04 15073 15086 test AL, strict byte 001h ; a8 01 15074 je short 09b 56h ; 74 1815087 je short 09b76h ; 74 18 15075 15088 and AL, strict byte 0f0h ; 24 f0 15076 15089 add si, ax ; 01 c6 … … 15079 15092 mov dx, word [bp-010h] ; 8b 56 f0 15080 15093 mov ax, word [bp-016h] ; 8b 46 ea 15081 call 0a0 32h ; e8 e1 0415094 call 0a052h ; e8 e1 04 15082 15095 mov ax, si ; 89 f0 15083 call 098 b6h ; e8 60 fd15096 call 098d6h ; e8 60 fd 15084 15097 lea sp, [bp-004h] ; 8d 66 fc 15085 15098 pop di ; 5f … … 15087 15100 pop bp ; 5d 15088 15101 retn ; c3 15089 apm_out_str_: ; 0xf9b 5d LB 0x3915102 apm_out_str_: ; 0xf9b7d LB 0x39 15090 15103 push bp ; 55 15091 15104 mov bp, sp ; 89 e5 … … 15093 15106 mov bx, ax ; 89 c3 15094 15107 cmp byte [bx], 000h ; 80 3f 00 15095 je short 09b 72h ; 74 0a15108 je short 09b92h ; 74 0a 15096 15109 mov al, byte [bx] ; 8a 07 15097 15110 out DX, AL ; ee … … 15100 15113 db 00ah, 0c0h 15101 15114 ; or al, al ; 0a c0 15102 jne short 09b 6ah ; 75 f815115 jne short 09b8ah ; 75 f8 15103 15116 lea sp, [bp-002h] ; 8d 66 fe 15104 15117 pop bx ; 5b 15105 15118 pop bp ; 5d 15106 15119 retn ; c3 15107 mov BH, strict byte 09bh ; b7 9b 15108 inc dx ; 42 15120 xlatb ; d7 15121 wait ; 9b 15122 bound bx, [si-06417h] ; 62 9c e9 9b 15123 add AL, strict byte 09ch ; 04 9c 15124 bound bx, [si-063d1h] ; 62 9c 2f 9c 15125 bound bx, [si-06398h] ; 62 9c 68 9c 15126 xor AL, strict byte 09ch ; 34 9c 15127 xor AL, strict byte 09ch ; 34 9c 15128 xor AL, strict byte 09ch ; 34 9c 15129 cmpsw ; a7 15109 15130 pushfw ; 9c 15110 leave ; c9 15111 wait ; 9b 15112 in AL, strict byte 09bh ; e4 9b 15113 inc dx ; 42 15131 xor AL, strict byte 09ch ; 34 9c 15132 xor AL, strict byte 09ch ; 34 9c 15133 db 0a0h 15114 15134 pushfw ; 9c 15115 db 00fh, 09ch, 042h, 09ch 15116 ; setl byte [bp+si-064h] ; 0f 9c 42 9c 15117 dec ax ; 48 15118 pushfw ; 9c 15119 adc AL, strict byte 09ch ; 14 9c 15120 adc AL, strict byte 09ch ; 14 9c 15121 adc AL, strict byte 09ch ; 14 9c 15122 xchg word [si-063ech], bx ; 87 9c 14 9c 15123 adc AL, strict byte 09ch ; 14 9c 15124 db 080h 15125 pushfw ; 9c 15126 _apm_function: ; 0xf9b96 LB 0xf6 15135 _apm_function: ; 0xf9bb6 LB 0xf6 15127 15136 push bp ; 55 15128 15137 mov bp, sp ; 89 e5 … … 15132 15141 xor ah, ah ; 30 e4 15133 15142 cmp ax, strict word 0000eh ; 3d 0e 00 15134 jnbe short 09c 14h ; 77 6c15143 jnbe short 09c34h ; 77 6c 15135 15144 mov bx, ax ; 89 c3 15136 15145 sal bx, 1 ; d1 e3 15137 15146 mov dx, word [bp+018h] ; 8b 56 18 15138 15147 or dl, 001h ; 80 ca 01 15139 jmp word [cs:bx-064 88h] ; 2e ff a7 78 9b15148 jmp word [cs:bx-06468h] ; 2e ff a7 98 9b 15140 15149 mov word [bp+012h], 00102h ; c7 46 12 02 01 15141 15150 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15142 15151 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15143 jmp near 09c 42h ; e9 79 0015152 jmp near 09c62h ; e9 79 00 15144 15153 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15145 mov word [bp+00ch], 0a2 24h ; c7 46 0c 24 a215154 mov word [bp+00ch], 0a244h ; c7 46 0c 44 a2 15146 15155 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15147 15156 mov ax, strict word 0fff0h ; b8 f0 ff 15148 15157 mov word [bp+006h], ax ; 89 46 06 15149 15158 mov word [bp+004h], ax ; 89 46 04 15150 jmp near 09c 42h ; e9 5e 0015159 jmp near 09c62h ; e9 5e 00 15151 15160 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15152 15161 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15161 15170 mov si, ax ; 89 c6 15162 15171 sal esi, 010h ; 66 c1 e6 10 15163 jmp near 09c 42h ; e9 33 0015172 jmp near 09c62h ; e9 33 00 15164 15173 sti ; fb 15165 15174 hlt ; f4 15166 jmp near 09c 42h ; e9 2e 0015167 mov bx, 00da 4h ; bb a40d15175 jmp near 09c62h ; e9 2e 00 15176 mov bx, 00da0h ; bb a0 0d 15168 15177 mov cx, ds ; 8c d9 15169 15178 mov ax, strict word 00004h ; b8 04 00 15170 call 01933h ; e8 14 7d15179 call 01933h ; e8 f4 7c 15171 15180 push word [bp+00ch] ; ff 76 0c 15172 15181 push word [bp+012h] ; ff 76 12 … … 15175 15184 mov ax, strict word 00004h ; b8 04 00 15176 15185 push ax ; 50 15177 call 01976h ; e8 46 7d15186 call 01976h ; e8 26 7d 15178 15187 add sp, strict byte 00008h ; 83 c4 08 15179 15188 mov ax, word [bp+012h] ; 8b 46 12 … … 15187 15196 retn ; c3 15188 15197 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15189 je short 09c 6dh ; 74 1f15198 je short 09c8dh ; 74 1f 15190 15199 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15191 je short 09c 65h ; 74 1115200 je short 09c85h ; 74 11 15192 15201 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15193 jne short 09c 75h ; 75 1b15202 jne short 09c95h ; 75 1b 15194 15203 mov dx, 0040fh ; ba 0f 04 15195 15204 mov ax, 00d10h ; b8 10 0d 15196 call 09b 5dh ; e8 fa fe15197 jmp short 09c 42h ; eb dd15205 call 09b7dh ; e8 fa fe 15206 jmp short 09c62h ; eb dd 15198 15207 mov dx, 0040fh ; ba 0f 04 15199 15208 mov ax, 00d18h ; b8 18 0d 15200 jmp short 09c 60h ; eb f315209 jmp short 09c80h ; eb f3 15201 15210 mov dx, 0040fh ; ba 0f 04 15202 15211 mov ax, 00d20h ; b8 20 0d 15203 jmp short 09c 60h ; eb eb15212 jmp short 09c80h ; eb eb 15204 15213 or ah, 00ah ; 80 cc 0a 15205 15214 mov word [bp+012h], ax ; 89 46 12 15206 15215 mov word [bp+018h], dx ; 89 56 18 15207 jmp short 09c 42h ; eb c215216 jmp short 09c62h ; eb c2 15208 15217 mov word [bp+012h], 00102h ; c7 46 12 02 01 15209 jmp short 09c 42h ; eb bb15218 jmp short 09c62h ; eb bb 15210 15219 or ah, 080h ; 80 cc 80 15211 jmp short 09c 78h ; eb ec15212 pci16_select_reg_: ; 0xf9c 8c LB 0x2415220 jmp short 09c98h ; eb ec 15221 pci16_select_reg_: ; 0xf9cac LB 0x24 15213 15222 push bp ; 55 15214 15223 mov bp, sp ; 89 e5 … … 15227 15236 pop bp ; 5d 15228 15237 retn ; c3 15229 pci16_find_device_: ; 0xf9c b0 LB 0xf715238 pci16_find_device_: ; 0xf9cd0 LB 0xf7 15230 15239 push bp ; 55 15231 15240 mov bp, sp ; 89 e5 … … 15241 15250 mov byte [bp-006h], 000h ; c6 46 fa 00 15242 15251 test bl, 007h ; f6 c3 07 15243 jne short 09 cf8h ; 75 2d15252 jne short 09d18h ; 75 2d 15244 15253 mov dx, strict word 0000eh ; ba 0e 00 15245 15254 mov ax, bx ; 89 d8 15246 call 09c 8ch ; e8 b9 ff15255 call 09cach ; e8 b9 ff 15247 15256 mov dx, 00cfeh ; ba fe 0c 15248 15257 in AL, DX ; ec … … 15251 15260 mov byte [bp-008h], al ; 88 46 f8 15252 15261 cmp AL, strict byte 0ffh ; 3c ff 15253 jne short 09 ce6h ; 75 0615262 jne short 09d06h ; 75 06 15254 15263 add bx, strict byte 00008h ; 83 c3 08 15255 jmp near 09d 78h ; e9 92 0015264 jmp near 09d98h ; e9 92 00 15256 15265 test byte [bp-008h], 080h ; f6 46 f8 80 15257 je short 09 cf3h ; 74 0715266 je short 09d13h ; 74 07 15258 15267 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15259 jmp short 09 cf8h ; eb 0515268 jmp short 09d18h ; eb 05 15260 15269 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15261 15270 mov al, byte [bp-008h] ; 8a 46 f8 15262 15271 and AL, strict byte 007h ; 24 07 15263 15272 cmp AL, strict byte 001h ; 3c 01 15264 jne short 09d 1fh ; 75 1e15273 jne short 09d3fh ; 75 1e 15265 15274 mov al, bh ; 88 f8 15266 15275 xor ah, ah ; 30 e4 15267 15276 test ax, ax ; 85 c0 15268 jne short 09d 1fh ; 75 1615277 jne short 09d3fh ; 75 16 15269 15278 mov dx, strict word 0001ah ; ba 1a 00 15270 15279 mov ax, bx ; 89 d8 15271 call 09c 8ch ; e8 7b ff15280 call 09cach ; e8 7b ff 15272 15281 mov dx, 00cfeh ; ba fe 0c 15273 15282 in AL, DX ; ec … … 15275 15284 ; sub ah, ah ; 2a e4 15276 15285 cmp al, byte [bp-006h] ; 3a 46 fa 15277 jbe short 09d 1fh ; 76 0315286 jbe short 09d3fh ; 76 03 15278 15287 mov byte [bp-006h], al ; 88 46 fa 15279 15288 test di, di ; 85 ff 15280 je short 09d 28h ; 74 0515289 je short 09d48h ; 74 05 15281 15290 mov dx, strict word 00008h ; ba 08 00 15282 jmp short 09d 2ah ; eb 0215291 jmp short 09d4ah ; eb 02 15283 15292 xor dx, dx ; 31 d2 15284 15293 mov ax, bx ; 89 d8 15285 call 09c 8ch ; e8 5d ff15294 call 09cach ; e8 5d ff 15286 15295 mov dx, 00cfch ; ba fc 0c 15287 15296 in eax, DX ; 66 ed … … 15294 15303 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15295 15304 test di, di ; 85 ff 15296 je short 09d 59h ; 74 0f15305 je short 09d79h ; 74 0f 15297 15306 mov cx, strict word 00008h ; b9 08 00 15298 15307 shr dx, 1 ; d1 ea 15299 15308 rcr ax, 1 ; d1 d8 15300 loop 09d 4dh ; e2 fa15309 loop 09d6dh ; e2 fa 15301 15310 mov word [bp-00ah], ax ; 89 46 f6 15302 15311 mov word [bp-010h], dx ; 89 56 f0 15303 15312 mov ax, word [bp-010h] ; 8b 46 f0 15304 15313 cmp ax, word [bp-014h] ; 3b 46 ec 15305 jne short 09d 69h ; 75 0815314 jne short 09d89h ; 75 08 15306 15315 mov ax, word [bp-00ah] ; 8b 46 f6 15307 15316 cmp ax, word [bp-012h] ; 3b 46 ee 15308 je short 09d 6fh ; 74 0615317 je short 09d8fh ; 74 06 15309 15318 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15310 je short 09d 75h ; 74 0615319 je short 09d95h ; 74 06 15311 15320 dec si ; 4e 15312 15321 cmp si, strict byte 0ffffh ; 83 fe ff 15313 je short 09d 88h ; 74 1315322 je short 09da8h ; 74 13 15314 15323 add bx, word [bp-00eh] ; 03 5e f2 15315 15324 mov al, bh ; 88 f8 … … 15318 15327 xor dh, dh ; 30 f6 15319 15328 cmp ax, dx ; 39 d0 15320 jnbe short 09d 88h ; 77 0315321 jmp near 09c c6h ; e9 3e ff15329 jnbe short 09da8h ; 77 03 15330 jmp near 09ce6h ; e9 3e ff 15322 15331 cmp si, strict byte 0ffffh ; 83 fe ff 15323 jne short 09d 91h ; 75 0415332 jne short 09db1h ; 75 04 15324 15333 mov ax, bx ; 89 d8 15325 jmp short 09d 94h ; eb 0315334 jmp short 09db4h ; eb 03 15326 15335 mov ax, strict word 0ffffh ; b8 ff ff 15327 15336 lea sp, [bp-004h] ; 8d 66 fc … … 15330 15339 pop bp ; 5d 15331 15340 retn ; c3 15332 mov byte [bp-0615fh], bl ; 88 9e a1 9e 15333 mov BL, strict byte 09eh ; b3 9e 15334 db 0c7h, 09eh, 0d9h, 09eh, 0ech, 09eh 15335 ; mov word [bp-06127h], 09eech ; c7 9e d9 9e ec 9e 15336 _pci16_function: ; 0xf9da7 LB 0x1d5 15341 test AL, strict byte 09eh ; a8 9e 15342 rcr word [bp-0612dh], 0e7h ; c1 9e d3 9e e7 15343 sahf ; 9e 15344 stc ; f9 15345 sahf ; 9e 15346 or AL, strict byte 09fh ; 0c 9f 15347 _pci16_function: ; 0xf9dc7 LB 0x1d5 15337 15348 push bp ; 55 15338 15349 mov bp, sp ; 89 e5 … … 15348 15359 xor ah, ah ; 30 e4 15349 15360 cmp bx, strict byte 00003h ; 83 fb 03 15350 jc short 09d d9h ; 72 1315351 jbe short 09e 2ch ; 76 6415361 jc short 09df9h ; 72 13 15362 jbe short 09e4ch ; 76 64 15352 15363 cmp bx, strict byte 0000eh ; 83 fb 0e 15353 je short 09e 34h ; 74 6715364 je short 09e54h ; 74 67 15354 15365 cmp bx, strict byte 00008h ; 83 fb 08 15355 jc short 09 de3h ; 72 1115366 jc short 09e03h ; 72 11 15356 15367 cmp bx, strict byte 0000dh ; 83 fb 0d 15357 jbe short 09e 37h ; 76 6015358 jmp short 09 de3h ; eb 0a15368 jbe short 09e57h ; 76 60 15369 jmp short 09e03h ; eb 0a 15359 15370 cmp bx, strict byte 00002h ; 83 fb 02 15360 je short 09e 02h ; 74 2415371 je short 09e22h ; 74 24 15361 15372 cmp bx, strict byte 00001h ; 83 fb 01 15362 je short 09 de6h ; 74 0315363 jmp near 09f 45h ; e9 5f 0115373 je short 09e06h ; 74 03 15374 jmp near 09f65h ; e9 5f 01 15364 15375 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15365 15376 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15367 15378 mov word [bp+018h], 04350h ; c7 46 18 50 43 15368 15379 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15369 jmp near 09f 75h ; e9 73 0115380 jmp near 09f95h ; e9 73 01 15370 15381 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15371 jne short 09e 0eh ; 75 0615382 jne short 09e2eh ; 75 06 15372 15383 or ah, 083h ; 80 cc 83 15373 jmp near 09f 6eh ; e9 60 0115384 jmp near 09f8eh ; e9 60 01 15374 15385 mov bx, word [bp+008h] ; 8b 5e 08 15375 15386 mov dx, word [bp+01ch] ; 8b 56 1c 15376 15387 mov ax, word [bp+018h] ; 8b 46 18 15377 15388 xor cx, cx ; 31 c9 15378 call 09c b0h ; e8 94 fe15389 call 09cd0h ; e8 94 fe 15379 15390 cmp ax, strict word 0ffffh ; 3d ff ff 15380 jne short 09e 2eh ; 75 0d15391 jne short 09e4eh ; 75 0d 15381 15392 mov ax, word [bp+020h] ; 8b 46 20 15382 15393 xor ah, ah ; 30 e4 15383 15394 or ah, 086h ; 80 cc 86 15384 jmp near 09f 6eh ; e9 42 0115385 jmp short 09e 39h ; eb 0b15395 jmp near 09f8eh ; e9 42 01 15396 jmp short 09e59h ; eb 0b 15386 15397 mov word [bp+014h], ax ; 89 46 14 15387 jmp near 09f 75h ; e9 41 0115388 jmp near 09f 00h ; e9 c9 0015389 jmp short 09e 5eh ; eb 2515398 jmp near 09f95h ; e9 41 01 15399 jmp near 09f20h ; e9 c9 00 15400 jmp short 09e7eh ; eb 25 15390 15401 mov bx, word [bp+008h] ; 8b 5e 08 15391 15402 mov ax, word [bp+01ch] ; 8b 46 1c 15392 15403 mov dx, word [bp+01eh] ; 8b 56 1e 15393 15404 mov cx, strict word 00001h ; b9 01 00 15394 call 09c b0h ; e8 68 fe15405 call 09cd0h ; e8 68 fe 15395 15406 cmp ax, strict word 0ffffh ; 3d ff ff 15396 jne short 09e 58h ; 75 0b15407 jne short 09e78h ; 75 0b 15397 15408 mov ax, word [bp+020h] ; 8b 46 20 15398 15409 xor ah, ah ; 30 e4 15399 15410 or ah, 086h ; 80 cc 86 15400 jmp near 09f 6eh ; e9 16 0115411 jmp near 09f8eh ; e9 16 01 15401 15412 mov word [bp+014h], ax ; 89 46 14 15402 jmp near 09f 75h ; e9 17 0115413 jmp near 09f95h ; e9 17 01 15403 15414 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15404 jc short 09e 6bh ; 72 0615415 jc short 09e8bh ; 72 06 15405 15416 or ah, 087h ; 80 cc 87 15406 jmp near 09f 6eh ; e9 03 0115417 jmp near 09f8eh ; e9 03 01 15407 15418 mov dx, word [bp+004h] ; 8b 56 04 15408 15419 mov ax, word [bp+014h] ; 8b 46 14 15409 call 09c 8ch ; e8 18 fe15420 call 09cach ; e8 18 fe 15410 15421 mov bx, word [bp+020h] ; 8b 5e 20 15411 15422 xor bh, bh ; 30 ff 15412 15423 sub bx, strict byte 00008h ; 83 eb 08 15413 15424 cmp bx, strict byte 00005h ; 83 fb 05 15414 jnbe short 09 ee9h ; 77 6815425 jnbe short 09f09h ; 77 68 15415 15426 sal bx, 1 ; d1 e3 15416 jmp word [cs:bx-062 65h] ; 2e ff a7 9b 9d15427 jmp word [cs:bx-06245h] ; 2e ff a7 bb 9d 15417 15428 mov bx, word [bp+01ch] ; 8b 5e 1c 15418 15429 xor bl, bl ; 30 db … … 15425 15436 or bx, ax ; 09 c3 15426 15437 mov word [bp+01ch], bx ; 89 5e 1c 15427 jmp short 09 ee9h ; eb 4815438 jmp short 09f09h ; eb 48 15428 15439 mov dx, word [bp+004h] ; 8b 56 04 15429 15440 xor dh, dh ; 30 f6 … … 15432 15443 in ax, DX ; ed 15433 15444 mov word [bp+01ch], ax ; 89 46 1c 15434 jmp short 09 ee9h ; eb 3615445 jmp short 09f09h ; eb 36 15435 15446 mov dx, 00cfch ; ba fc 0c 15436 15447 in eax, DX ; 66 ed … … 15441 15452 mov word [bp+01ch], ax ; 89 46 1c 15442 15453 mov word [bp+01eh], dx ; 89 56 1e 15443 jmp short 09 ee9h ; eb 2215454 jmp short 09f09h ; eb 22 15444 15455 mov ax, word [bp+01ch] ; 8b 46 1c 15445 15456 mov dx, word [bp+004h] ; 8b 56 04 … … 15448 15459 add dx, 00cfch ; 81 c2 fc 0c 15449 15460 out DX, AL ; ee 15450 jmp short 09 ee9h ; eb 1015461 jmp short 09f09h ; eb 10 15451 15462 mov ax, word [bp+01ch] ; 8b 46 1c 15452 15463 mov dx, word [bp+004h] ; 8b 56 04 … … 15455 15466 add dx, 00cfch ; 81 c2 fc 0c 15456 15467 out DX, ax ; ef 15457 jmp near 09f 75h ; e9 89 0015468 jmp near 09f95h ; e9 89 00 15458 15469 mov ax, word [bp+01ch] ; 8b 46 1c 15459 15470 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15464 15475 ; mov ax, cx ; 8b c1 15465 15476 out DX, eax ; 66 ef 15466 jmp short 09f 75h ; eb 7515477 jmp short 09f95h ; eb 75 15467 15478 mov bx, word [bp+004h] ; 8b 5e 04 15468 15479 mov es, [bp+026h] ; 8e 46 26 … … 15471 15482 mov cx, word [0f380h] ; 8b 0e 80 f3 15472 15483 cmp cx, word [es:bx] ; 26 3b 0f 15473 jbe short 09f 26h ; 76 1115484 jbe short 09f46h ; 76 11 15474 15485 mov ax, word [bp+020h] ; 8b 46 20 15475 15486 xor ah, ah ; 30 e4 … … 15477 15488 mov word [bp+020h], ax ; 89 46 20 15478 15489 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15479 jmp short 09f 3ah ; eb 1415490 jmp short 09f5ah ; eb 14 15480 15491 les di, [es:bx+002h] ; 26 c4 7f 02 15481 15492 mov si, 0f1a0h ; be a0 f1 … … 15489 15500 les bx, [bp-008h] ; c4 5e f8 15490 15501 mov word [es:bx], ax ; 26 89 07 15491 jmp short 09f 75h ; eb 3015492 mov bx, 00da 4h ; bb a40d15502 jmp short 09f95h ; eb 30 15503 mov bx, 00da0h ; bb a0 0d 15493 15504 mov cx, ds ; 8c d9 15494 15505 mov ax, strict word 00004h ; b8 04 00 15495 call 01933h ; e8 e3 7915506 call 01933h ; e8 c3 79 15496 15507 mov ax, word [bp+014h] ; 8b 46 14 15497 15508 push ax ; 50 … … 15502 15513 mov ax, strict word 00004h ; b8 04 00 15503 15514 push ax ; 50 15504 call 01976h ; e8 13 7a15515 call 01976h ; e8 f3 79 15505 15516 add sp, strict byte 00008h ; 83 c4 08 15506 15517 mov ax, word [bp+020h] ; 8b 46 20 … … 15514 15525 pop bp ; 5d 15515 15526 retn ; c3 15516 pci_find_classcode_: ; 0xf9f 7c LB 0x815527 pci_find_classcode_: ; 0xf9f9c LB 0x8 15517 15528 push bp ; 55 15518 15529 mov bp, sp ; 89 e5 … … 15520 15531 pop bp ; 5d 15521 15532 retn ; c3 15522 pci_find_device_: ; 0xf9f 84 LB 0x2315533 pci_find_device_: ; 0xf9fa4 LB 0x23 15523 15534 push bp ; 55 15524 15535 mov bp, sp ; 89 e5 … … 15532 15543 int 01ah ; cd 1a 15533 15544 cmp ah, 000h ; 80 fc 00 15534 je short 09f 9dh ; 74 0315545 je short 09fbdh ; 74 03 15535 15546 mov bx, strict word 0ffffh ; bb ff ff 15536 15547 mov ax, bx ; 89 d8 … … 15541 15552 pop bp ; 5d 15542 15553 retn ; c3 15543 pci_read_config_byte_: ; 0xf9f a7 LB 0x2715554 pci_read_config_byte_: ; 0xf9fc7 LB 0x27 15544 15555 push bp ; 55 15545 15556 mov bp, sp ; 89 e5 … … 15564 15575 pop bp ; 5d 15565 15576 retn ; c3 15566 pci_read_config_word_: ; 0xf9f ce LB 0x2515577 pci_read_config_word_: ; 0xf9fee LB 0x25 15567 15578 push bp ; 55 15568 15579 mov bp, sp ; 89 e5 … … 15586 15597 pop bp ; 5d 15587 15598 retn ; c3 15588 pci_read_config_dword_: ; 0xf 9ff3 LB 0x3f15599 pci_read_config_dword_: ; 0xfa013 LB 0x3f 15589 15600 push bp ; 55 15590 15601 mov bp, sp ; 89 e5 … … 15601 15612 int 01ah ; cd 1a 15602 15613 test cx, cx ; 85 c9 15603 jne short 0a0 23h ; 75 1415614 jne short 0a043h ; 75 14 15604 15615 mov al, byte [bp-006h] ; 8a 46 fa 15605 15616 xor ah, ah ; 30 e4 … … 15611 15622 int 01ah ; cd 1a 15612 15623 test cx, cx ; 85 c9 15613 je short 0a0 28h ; 74 0515624 je short 0a048h ; 74 05 15614 15625 mov ax, strict word 00001h ; b8 01 00 15615 jmp short 0a0 2ah ; eb 0215626 jmp short 0a04ah ; eb 02 15616 15627 xor ax, ax ; 31 c0 15617 15628 cwd ; 99 … … 15621 15632 pop bp ; 5d 15622 15633 retn ; c3 15623 pci_write_config_word_: ; 0xfa0 32 LB 0x1e15634 pci_write_config_word_: ; 0xfa052 LB 0x1e 15624 15635 push bp ; 55 15625 15636 mov bp, sp ; 89 e5 … … 15638 15649 pop bp ; 5d 15639 15650 retn ; c3 15640 vds_is_present_: ; 0xfa0 50 LB 0x1d15651 vds_is_present_: ; 0xfa070 LB 0x1d 15641 15652 push bx ; 53 15642 15653 push bp ; 55 … … 15646 15657 mov es, ax ; 8e c0 15647 15658 test byte [es:bx], 020h ; 26 f6 07 20 15648 je short 0a0 68h ; 74 0615659 je short 0a088h ; 74 06 15649 15660 mov ax, strict word 00001h ; b8 01 00 15650 15661 pop bp ; 5d … … 15655 15666 pop bx ; 5b 15656 15667 retn ; c3 15657 vds_real_to_lin_: ; 0xfa0 6d LB 0x1e15668 vds_real_to_lin_: ; 0xfa08d LB 0x1e 15658 15669 push bx ; 53 15659 15670 push cx ; 51 … … 15666 15677 sal ax, 1 ; d1 e0 15667 15678 rcl dx, 1 ; d1 d2 15668 loop 0a0 7bh ; e2 fa15679 loop 0a09bh ; e2 fa 15669 15680 xor cx, cx ; 31 c9 15670 15681 add ax, bx ; 01 d8 … … 15674 15685 pop bx ; 5b 15675 15686 retn ; c3 15676 vds_build_sg_list_: ; 0xfa0 8b LB 0x7715687 vds_build_sg_list_: ; 0xfa0ab LB 0x77 15677 15688 push bp ; 55 15678 15689 mov bp, sp ; 89 e5 … … 15688 15699 mov bx, word [bp+006h] ; 8b 5e 06 15689 15700 mov word [es:di+002h], bx ; 26 89 5d 02 15690 call 0a0 6dh ; e8 c3 ff15701 call 0a08dh ; e8 c3 ff 15691 15702 mov es, si ; 8e c6 15692 15703 mov word [es:di+004h], ax ; 26 89 45 04 15693 15704 mov word [es:di+006h], dx ; 26 89 55 06 15694 15705 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15695 call 0a0 50h ; e8 93 ff15706 call 0a070h ; e8 93 ff 15696 15707 test ax, ax ; 85 c0 15697 je short 0a0 d2h ; 74 1115708 je short 0a0f2h ; 74 11 15698 15709 mov es, si ; 8e c6 15699 15710 mov ax, 08105h ; b8 05 81 15700 15711 mov dx, strict word 00000h ; ba 00 00 15701 15712 int 04bh ; cd 4b 15702 jc short 0a0 cfh ; 72 0215713 jc short 0a0efh ; 72 02 15703 15714 db 032h, 0c0h 15704 15715 ; xor al, al ; 32 c0 15705 15716 cbw ; 98 15706 jmp short 0a 0f9h ; eb 2715717 jmp short 0a119h ; eb 27 15707 15718 mov es, si ; 8e c6 15708 15719 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15721 15732 pop bp ; 5d 15722 15733 retn 00004h ; c2 04 00 15723 vds_free_sg_list_: ; 0xfa1 02 LB 0x2e15734 vds_free_sg_list_: ; 0xfa122 LB 0x2e 15724 15735 push bp ; 55 15725 15736 mov bp, sp ; 89 e5 … … 15727 15738 push di ; 57 15728 15739 mov bx, ax ; 89 c3 15729 call 0a0 50h ; e8 44 ff15740 call 0a070h ; e8 44 ff 15730 15741 test ax, ax ; 85 c0 15731 je short 0a1 21h ; 74 1115742 je short 0a141h ; 74 11 15732 15743 mov di, bx ; 89 df 15733 15744 mov es, dx ; 8e c2 … … 15735 15746 mov dx, strict word 00000h ; ba 00 00 15736 15747 int 04bh ; cd 4b 15737 jc short 0a1 20h ; 72 0215748 jc short 0a140h ; 72 02 15738 15749 db 032h, 0c0h 15739 15750 ; xor al, al ; 32 c0 … … 15746 15757 pop bp ; 5d 15747 15758 retn ; c3 15748 __U4M: ; 0xfa1 30 LB 0x2015759 __U4M: ; 0xfa150 LB 0x20 15749 15760 pushfw ; 9c 15750 15761 push si ; 56 … … 15773 15784 retn ; c3 15774 15785 times 0x4 db 0 15775 __U4D: ; 0xfa1 50 LB 0x3015786 __U4D: ; 0xfa170 LB 0x30 15776 15787 pushfw ; 9c 15777 15788 push DS ; 1e … … 15788 15799 push dx ; 52 15789 15800 push ax ; 50 15790 call 0a2 35h ; e8 d0 0015801 call 0a255h ; e8 d0 00 15791 15802 mov cx, word [bp-002h] ; 8b 4e fe 15792 15803 mov bx, word [bp-004h] ; 8b 5e fc … … 15799 15810 retn ; c3 15800 15811 times 0xe db 0 15801 __U8RS: ; 0xfa1 80 LB 0x1015812 __U8RS: ; 0xfa1a0 LB 0x10 15802 15813 test si, si ; 85 f6 15803 je short 0a1 8fh ; 74 0b15814 je short 0a1afh ; 74 0b 15804 15815 shr ax, 1 ; d1 e8 15805 15816 rcr bx, 1 ; d1 db … … 15807 15818 rcr dx, 1 ; d1 da 15808 15819 dec si ; 4e 15809 jne short 0a1 84h ; 75 f515820 jne short 0a1a4h ; 75 f5 15810 15821 retn ; c3 15811 __U8LS: ; 0xfa1 90 LB 0x1015822 __U8LS: ; 0xfa1b0 LB 0x10 15812 15823 test si, si ; 85 f6 15813 je short 0a1 9fh ; 74 0b15824 je short 0a1bfh ; 74 0b 15814 15825 sal dx, 1 ; d1 e2 15815 15826 rcl cx, 1 ; d1 d1 … … 15817 15828 rcl ax, 1 ; d1 d0 15818 15829 dec si ; 4e 15819 jne short 0a1 94h ; 75 f515830 jne short 0a1b4h ; 75 f5 15820 15831 retn ; c3 15821 _fmemset_: ; 0xfa1 a0 LB 0x1015832 _fmemset_: ; 0xfa1c0 LB 0x10 15822 15833 push di ; 57 15823 15834 mov es, dx ; 8e c2 … … 15830 15841 retn ; c3 15831 15842 times 0x3 db 0 15832 _fmemcpy_: ; 0xfa1 b0 LB 0x3a15843 _fmemcpy_: ; 0xfa1d0 LB 0x3a 15833 15844 push bp ; 55 15834 15845 db 08bh, 0ech … … 15855 15866 add byte [bx+si], al ; 00 00 15856 15867 add byte [bx+si], al ; 00 00 15857 add byte [bp+si-05dfeh], ah ; 00 a2 02 a2 15858 push ES ; 06 15859 mov byte [0a206h], AL ; a2 06 a2 15860 push ES ; 06 15861 mov byte [0a208h], AL ; a2 08 a2 15862 or byte [bp+si-05df6h], ah ; 08 a2 0a a2 15863 push CS ; 0e 15864 mov byte [0a20eh], AL ; a2 0e a2 15865 adc byte [bp+si-05debh], ah ; 10 a2 15 a2 15866 pop SS ; 17 15868 and byte [bp+si-05ddeh], ah ; 20 a2 22 a2 15869 mov byte [es:0a226h], AL ; 26 a2 26 a2 15870 mov byte [es:0a228h], AL ; 26 a2 28 a2 15871 sub byte [bp+si-05dd6h], ah ; 28 a2 2a a2 15872 mov byte [cs:0a22eh], AL ; 2e a2 2e a2 15873 xor byte [bp+si-05dcbh], ah ; 30 a2 35 a2 15874 aaa ; 37 15867 15875 db 0a2h 15868 apm_worker: ; 0xfa 1ea LB 0x3a15876 apm_worker: ; 0xfa20a LB 0x3a 15869 15877 sti ; fb 15870 15878 push ax ; 50 … … 15878 15886 pop ax ; 58 15879 15887 mov AH, strict byte 053h ; b4 53 15880 jnc short 0a2 20h ; 73 2515881 jmp word [cs:bp-05e 30h] ; 2e ff a6 d0 a115882 jmp short 0a2 1eh ; eb 1c15888 jnc short 0a240h ; 73 25 15889 jmp word [cs:bp-05e10h] ; 2e ff a6 f0 a1 15890 jmp short 0a23eh ; eb 1c 15883 15891 sti ; fb 15884 15892 hlt ; f4 15885 jmp short 0a2 1eh ; eb 1815886 jmp short 0a2 1eh ; eb 1615887 jmp short 0a2 20h ; eb 1615893 jmp short 0a23eh ; eb 18 15894 jmp short 0a23eh ; eb 16 15895 jmp short 0a240h ; eb 16 15888 15896 mov AH, strict byte 080h ; b4 80 15889 jmp short 0a2 22h ; eb 1415890 jmp short 0a2 20h ; eb 1015897 jmp short 0a242h ; eb 14 15898 jmp short 0a240h ; eb 10 15891 15899 mov ax, 00102h ; b8 02 01 15892 jmp short 0a2 1eh ; eb 0915893 jmp short 0a2 1eh ; eb 0715900 jmp short 0a23eh ; eb 09 15901 jmp short 0a23eh ; eb 07 15894 15902 mov BL, strict byte 000h ; b3 00 15895 15903 mov cx, strict word 00000h ; b9 00 00 15896 jmp short 0a2 1eh ; eb 0015904 jmp short 0a23eh ; eb 00 15897 15905 clc ; f8 15898 15906 retn ; c3 … … 15900 15908 stc ; f9 15901 15909 retn ; c3 15902 apm_pm16_entry: ; 0xfa2 24 LB 0x1115910 apm_pm16_entry: ; 0xfa244 LB 0x11 15903 15911 mov AH, strict byte 002h ; b4 02 15904 15912 push DS ; 1e … … 15908 15916 add bp, strict byte 00008h ; 83 c5 08 15909 15917 mov ds, bp ; 8e dd 15910 call 0a 1eah ; e8 b8 ff15918 call 0a20ah ; e8 b8 ff 15911 15919 pop bp ; 5d 15912 15920 pop DS ; 1f 15913 15921 retf ; cb 15914 _DoUInt32Div: ; 0xfa2 35 LB 0x26b15922 _DoUInt32Div: ; 0xfa255 LB 0x26b 15915 15923 push bp ; 55 15916 15924 mov bp, sp ; 89 e5 … … 15930 15938 mov [bp-006h], ds ; 8c 5e fa 15931 15939 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15932 jne short 0a2 85h ; 75 2215940 jne short 0a2a5h ; 75 22 15933 15941 mov ax, word [bx] ; 8b 07 15934 15942 test ax, ax ; 85 c0 15935 je short 0a2 82h ; 74 1915943 je short 0a2a2h ; 74 19 15936 15944 cmp ax, strict word 00001h ; 3d 01 00 15937 jne short 0a2 85h ; 75 1715945 jne short 0a2a5h ; 75 17 15938 15946 xor ax, ax ; 31 c0 15939 15947 mov word [bp+00ah], ax ; 89 46 0a … … 15943 15951 mov ax, word [bp-01ah] ; 8b 46 e6 15944 15952 mov word [bp+006h], ax ; 89 46 06 15945 jmp near 0a4 8dh ; e9 08 0215953 jmp near 0a4adh ; e9 08 02 15946 15954 lds bx, [bp-00ch] ; c5 5e f4 15947 15955 mov ax, word [bx+002h] ; 8b 47 02 15948 15956 mov ds, [bp-006h] ; 8e 5e fa 15949 15957 cmp ax, word [si+002h] ; 3b 44 02 15950 je short 0a2 abh ; 74 1815958 je short 0a2cbh ; 74 18 15951 15959 mov ds, [bp-00ah] ; 8e 5e f6 15952 15960 mov ax, word [bx+002h] ; 8b 47 02 15953 15961 mov ds, [bp-006h] ; 8e 5e fa 15954 15962 cmp ax, word [si+002h] ; 3b 44 02 15955 jbe short 0a2 a6h ; 76 0515963 jbe short 0a2c6h ; 76 05 15956 15964 mov ax, strict word 00001h ; b8 01 00 15957 jmp short 0a2 cch ; eb 2615965 jmp short 0a2ech ; eb 26 15958 15966 mov ax, strict word 0ffffh ; b8 ff ff 15959 jmp short 0a2 cch ; eb 2115967 jmp short 0a2ech ; eb 21 15960 15968 mov ds, [bp-00ah] ; 8e 5e f6 15961 15969 mov ax, word [bx] ; 8b 07 15962 15970 mov ds, [bp-006h] ; 8e 5e fa 15963 15971 cmp ax, word [si] ; 3b 04 15964 je short 0a2 cah ; 74 1315972 je short 0a2eah ; 74 13 15965 15973 mov ds, [bp-00ah] ; 8e 5e f6 15966 15974 mov ax, word [bx] ; 8b 07 15967 15975 mov ds, [bp-006h] ; 8e 5e fa 15968 15976 cmp ax, word [si] ; 3b 04 15969 jbe short 0a2 c5h ; 76 0215970 jmp short 0a2 a1h ; eb dc15977 jbe short 0a2e5h ; 76 02 15978 jmp short 0a2c1h ; eb dc 15971 15979 mov ax, strict word 0ffffh ; b8 ff ff 15972 jmp short 0a2 cch ; eb 0215980 jmp short 0a2ech ; eb 02 15973 15981 xor ax, ax ; 31 c0 15974 15982 test ax, ax ; 85 c0 15975 jnl short 0a 2eeh ; 7d 1e15983 jnl short 0a30eh ; 7d 1e 15976 15984 lds bx, [bp-00ch] ; c5 5e f4 15977 15985 mov ax, word [bx] ; 8b 07 … … 15983 15991 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15984 15992 mov word [bx], strict word 00000h ; c7 07 00 00 15985 jmp short 0a2 82h ; eb 9415986 jne short 0a3 05h ; 75 1515993 jmp short 0a2a2h ; eb 94 15994 jne short 0a325h ; 75 15 15987 15995 mov ds, [bp-008h] ; 8e 5e f8 15988 15996 mov word [di+002h], ax ; 89 45 02 … … 15991 15999 mov word [bx], strict word 00001h ; c7 07 01 00 15992 16000 mov word [bx+002h], ax ; 89 47 02 15993 jmp near 0a4 8dh ; e9 88 0116001 jmp near 0a4adh ; e9 88 01 15994 16002 lds bx, [bp-00ch] ; c5 5e f4 15995 16003 mov ax, word [bx+002h] ; 8b 47 02 15996 16004 test ax, ax ; 85 c0 15997 je short 0a3 20h ; 74 1116005 je short 0a340h ; 74 11 15998 16006 push ax ; 50 15999 16007 mov ax, 0f000h ; b8 00 f0 16000 16008 mov ds, ax ; 8e d8 16001 call 0a4 a0h ; e8 88 0116009 call 0a4c0h ; e8 88 01 16002 16010 add sp, strict byte 00002h ; 83 c4 02 16003 16011 add ax, strict word 00010h ; 05 10 00 16004 jmp short 0a3 2dh ; eb 0d16012 jmp short 0a34dh ; eb 0d 16005 16013 push word [bx] ; ff 37 16006 16014 mov ax, 0f000h ; b8 00 f0 16007 16015 mov ds, ax ; 8e d8 16008 call 0a4 a0h ; e8 76 0116016 call 0a4c0h ; e8 76 01 16009 16017 add sp, strict byte 00002h ; 83 c4 02 16010 16018 mov word [bp-014h], ax ; 89 46 ec … … 16012 16020 mov ax, word [si+002h] ; 8b 44 02 16013 16021 test ax, ax ; 85 c0 16014 je short 0a3 4bh ; 74 1116022 je short 0a36bh ; 74 11 16015 16023 push ax ; 50 16016 16024 mov ax, 0f000h ; b8 00 f0 16017 16025 mov ds, ax ; 8e d8 16018 call 0a4 a0h ; e8 5d 0116026 call 0a4c0h ; e8 5d 01 16019 16027 add sp, strict byte 00002h ; 83 c4 02 16020 16028 add ax, strict word 00010h ; 05 10 00 16021 jmp short 0a3 58h ; eb 0d16029 jmp short 0a378h ; eb 0d 16022 16030 push word [si] ; ff 34 16023 16031 mov ax, 0f000h ; b8 00 f0 16024 16032 mov ds, ax ; 8e d8 16025 call 0a4 a0h ; e8 4b 0116033 call 0a4c0h ; e8 4b 01 16026 16034 add sp, strict byte 00002h ; 83 c4 02 16027 16035 mov dx, word [bp-014h] ; 8b 56 ec … … 16034 16042 mov word [bp-016h], ax ; 89 46 ea 16035 16043 test dx, dx ; 85 d2 16036 je short 0a3 c8h ; 74 5616044 je short 0a3e8h ; 74 56 16037 16045 mov cx, dx ; 89 d1 16038 16046 xor ch, dh ; 30 f5 … … 16040 16048 mov ax, word [si] ; 8b 04 16041 16049 mov dx, word [si+002h] ; 8b 54 02 16042 jcxz 0a3 86h ; e3 0616050 jcxz 0a3a6h ; e3 06 16043 16051 sal ax, 1 ; d1 e0 16044 16052 rcl dx, 1 ; d1 d2 16045 loop 0a3 80h ; e2 fa16053 loop 0a3a0h ; e2 fa 16046 16054 mov word [bp-018h], ax ; 89 46 e8 16047 16055 mov word [bp-016h], dx ; 89 56 ea … … 16049 16057 lds bx, [bp-00ch] ; c5 5e f4 16050 16058 cmp ax, word [bx+002h] ; 3b 47 02 16051 jnbe short 0a3 a6h ; 77 0f16059 jnbe short 0a3c6h ; 77 0f 16052 16060 mov ax, word [bp-016h] ; 8b 46 ea 16053 16061 cmp ax, word [bx+002h] ; 3b 47 02 16054 jne short 0a3 aah ; 75 0b16062 jne short 0a3cah ; 75 0b 16055 16063 mov ax, word [bp-018h] ; 8b 46 e8 16056 16064 cmp ax, word [bx] ; 3b 07 16057 jbe short 0a3 aah ; 76 0416065 jbe short 0a3cah ; 76 04 16058 16066 mov AL, strict byte 001h ; b0 01 16059 jmp short 0a3 ach ; eb 0216067 jmp short 0a3cch ; eb 02 16060 16068 xor al, al ; 30 c0 16061 16069 test al, al ; 84 c0 16062 je short 0a3 d3h ; 74 2316070 je short 0a3f3h ; 74 23 16063 16071 shr word [bp-016h], 1 ; d1 6e ea 16064 16072 rcr word [bp-018h], 1 ; d1 5e e8 16065 16073 dec word [bp-012h] ; ff 4e ee 16066 jmp short 0a3 d3h ; eb 1816074 jmp short 0a3f3h ; eb 18 16067 16075 mov cx, strict word 0001fh ; b9 1f 00 16068 16076 sal word [bp-018h], 1 ; d1 66 e8 16069 16077 rcl word [bp-016h], 1 ; d1 56 ea 16070 loop 0a3 beh ; e2 f816071 jmp short 0a3 b6h ; eb ee16078 loop 0a3deh ; e2 f8 16079 jmp short 0a3d6h ; eb ee 16072 16080 mov ax, word [si] ; 8b 04 16073 16081 mov word [bp-018h], ax ; 89 46 e8 … … 16086 16094 mov ds, [bp-006h] ; 8e 5e fa 16087 16095 cmp ax, word [si+002h] ; 3b 44 02 16088 jnbe short 0a 3ffh ; 77 0616089 jne short 0a4 03h ; 75 0816096 jnbe short 0a41fh ; 77 06 16097 jne short 0a423h ; 75 08 16090 16098 cmp dx, word [si] ; 3b 14 16091 jc short 0a4 03h ; 72 0416099 jc short 0a423h ; 72 04 16092 16100 mov AL, strict byte 001h ; b0 01 16093 jmp short 0a4 05h ; eb 0216101 jmp short 0a425h ; eb 02 16094 16102 xor al, al ; 30 c0 16095 16103 test al, al ; 84 c0 16096 je short 0a4 6ah ; 74 6116104 je short 0a48ah ; 74 61 16097 16105 mov ds, [bp-008h] ; 8e 5e f8 16098 16106 mov ax, word [di+002h] ; 8b 45 02 16099 16107 cmp ax, word [bp-016h] ; 3b 46 ea 16100 jnbe short 0a4 20h ; 77 0c16108 jnbe short 0a440h ; 77 0c 16101 16109 cmp ax, word [bp-016h] ; 3b 46 ea 16102 jne short 0a4 24h ; 75 0b16110 jne short 0a444h ; 75 0b 16103 16111 mov ax, word [di] ; 8b 05 16104 16112 cmp ax, word [bp-018h] ; 3b 46 e8 16105 jc short 0a4 24h ; 72 0416113 jc short 0a444h ; 72 04 16106 16114 mov AL, strict byte 001h ; b0 01 16107 jmp short 0a4 26h ; eb 0216115 jmp short 0a446h ; eb 02 16108 16116 xor al, al ; 30 c0 16109 16117 test al, al ; 84 c0 16110 je short 0a4 50h ; 74 2616118 je short 0a470h ; 74 26 16111 16119 mov ax, word [bp-018h] ; 8b 46 e8 16112 16120 mov ds, [bp-008h] ; 8e 5e f8 … … 16117 16125 xor dx, dx ; 31 d2 16118 16126 mov cx, word [bp-012h] ; 8b 4e ee 16119 jcxz 0a4 48h ; e3 0616127 jcxz 0a468h ; e3 06 16120 16128 sal ax, 1 ; d1 e0 16121 16129 rcl dx, 1 ; d1 d2 16122 loop 0a4 42h ; e2 fa16130 loop 0a462h ; e2 fa 16123 16131 lds bx, [bp-010h] ; c5 5e f0 16124 16132 or word [bx], ax ; 09 07 … … 16129 16137 mov ds, [bp-006h] ; 8e 5e fa 16130 16138 cmp ax, word [si+002h] ; 3b 44 02 16131 jc short 0a4 66h ; 72 0616132 jne short 0a4 6ch ; 75 0a16139 jc short 0a486h ; 72 06 16140 jne short 0a48ch ; 75 0a 16133 16141 cmp dx, word [si] ; 3b 14 16134 jnc short 0a4 6ch ; 73 0616142 jnc short 0a48ch ; 73 06 16135 16143 mov AL, strict byte 001h ; b0 01 16136 jmp short 0a4 6eh ; eb 0416137 jmp short 0a4 8dh ; eb 2116144 jmp short 0a48eh ; eb 04 16145 jmp short 0a4adh ; eb 21 16138 16146 xor al, al ; 30 c0 16139 16147 test al, al ; 84 c0 16140 je short 0a4 81h ; 74 0f16141 jmp short 0a4 8dh ; eb 1916148 je short 0a4a1h ; 74 0f 16149 jmp short 0a4adh ; eb 19 16142 16150 mov cx, strict word 0001fh ; b9 1f 00 16143 16151 sal word [bp-018h], 1 ; d1 66 e8 16144 16152 rcl word [bp-016h], 1 ; d1 56 ea 16145 loop 0a4 77h ; e2 f816146 jmp short 0a4 87h ; eb 0616153 loop 0a497h ; e2 f8 16154 jmp short 0a4a7h ; eb 06 16147 16155 shr word [bp-016h], 1 ; d1 6e ea 16148 16156 rcr word [bp-018h], 1 ; d1 5e e8 16149 16157 dec word [bp-012h] ; ff 4e ee 16150 jmp near 0a4 09h ; e9 7c ff16158 jmp near 0a429h ; e9 7c ff 16151 16159 mov ax, word [bp-01ch] ; 8b 46 e4 16152 16160 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16157 16165 retn ; c3 16158 16166 times 0x6 db 0 16159 _ASMBitLastSetU16: ; 0xfa4 a0 LB 0x1816167 _ASMBitLastSetU16: ; 0xfa4c0 LB 0x18 16160 16168 push bp ; 55 16161 16169 db 08bh, 0ech … … 16163 16171 mov cx, word [bp+004h] ; 8b 4e 04 16164 16172 test cx, cx ; 85 c9 16165 je short 0a4 b4h ; 74 0a16173 je short 0a4d4h ; 74 0a 16166 16174 mov ax, strict word 00010h ; b8 10 00 16167 16175 sal cx, 1 ; d1 e1 16168 jc short 0a4 b6h ; 72 0516176 jc short 0a4d6h ; 72 05 16169 16177 dec ax ; 48 16170 jmp short 0a4 adh ; eb f916178 jmp short 0a4cdh ; eb f9 16171 16179 db 033h, 0c0h 16172 16180 ; xor ax, ax ; 33 c0 … … 16174 16182 retn ; c3 16175 16183 16176 ; Padding 0x35 48 bytes at 0xfa4b816177 times 136 40db 016184 ; Padding 0x3528 bytes at 0xfa4d8 16185 times 13608 db 0 16178 16186 16179 16187 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16222 16230 add bp, strict byte 00008h ; 83 c5 08 16223 16231 push ebp ; 66 55 16224 mov bp, 0a2 26h ; bd 26 a216232 mov bp, 0a246h ; bd 46 a2 16225 16233 add byte [bx+si], al ; 00 00 16226 16234 push ebp ; 66 55 … … 16686 16694 cmp AL, strict byte 009h ; 3c 09 16687 16695 jne short 0e0b6h ; 75 03 16688 jmp near 0e3 68h ; e9 b20216696 jmp near 0e350h ; e9 9a 02 16689 16697 cmp AL, strict byte 005h ; 3c 05 16690 16698 je short 0e044h ; 74 8a … … 16829 16837 mov dx, 0c800h ; ba 00 c8 16830 16838 call 01600h ; e8 f0 33 16831 call 050 1ch ; e8 09 6e16839 call 0503ch ; e8 29 6e 16832 16840 pop DS ; 1f 16833 16841 mov ax, 0ff53h ; b8 53 ff … … 16895 16903 mov word [001c2h], ax ; a3 c2 01 16896 16904 call 0ede3h ; e8 32 0b 16897 jmp short 0e3 1bh ; eb 6816905 jmp short 0e303h ; eb 50 16898 16906 biosorg_check_before_or_at_0E2C1h: ; 0xfe2b3 LB 0x10 16899 16907 times 0xe db 0 … … 16910 16918 int 002h ; cd 02 16911 16919 iret ; cf 16912 hard_drive_post: ; 0xfe2d2 LB 0x bf16920 hard_drive_post: ; 0xfe2d2 LB 0xa7 16913 16921 db 033h, 0c0h 16914 16922 ; xor ax, ax ; 33 c0 … … 16929 16937 mov ax, 0f000h ; b8 00 f0 16930 16938 mov word [001dah], ax ; a3 da 01 16931 mov ax, strict word 0003dh ; b8 3d 0016932 mov word [00104h], ax ; a3 04 0116933 mov ax, 09fc0h ; b8 c0 9f16934 mov word [00106h], ax ; a3 06 0116935 mov ax, strict word 0004dh ; b8 4d 0016936 mov word [00118h], ax ; a3 18 0116937 mov ax, 09fc0h ; b8 c0 9f16938 mov word [0011ah], ax ; a3 1a 0116939 16939 retn ; c3 16940 16940 mov ax, 0f8c9h ; b8 c9 f8 … … 16946 16946 mov ax, 0f000h ; b8 00 f0 16947 16947 mov word [001d6h], ax ; a3 d6 01 16948 call 0e76fh ; e8 390416948 call 0e76fh ; e8 51 04 16949 16949 push CS ; 0e 16950 16950 pop DS ; 1f 16951 16951 cld ; fc 16952 call 01cc5h ; e8 893916953 call 02154h ; e8 153e16952 call 01cc5h ; e8 a1 39 16953 call 02154h ; e8 2d 3e 16954 16954 sti ; fb 16955 call 09a 24h ; e8 e1 b616955 call 09a44h ; e8 19 b7 16956 16956 cli ; fa 16957 call 088 71h ; e8 2aa516958 call 0ed4ch ; e8 020a16959 call 0e2d2h ; e8 85ff16957 call 08891h ; e8 62 a5 16958 call 0ed4ch ; e8 1a 0a 16959 call 0e2d2h ; e8 9d ff 16960 16960 push CS ; 0e 16961 16961 pop DS ; 1f … … 16963 16963 mov ax, 0c800h ; b8 00 c8 16964 16964 mov dx, 0f000h ; ba 00 f0 16965 call 01600h ; e8 a73216966 call 01799h ; e8 3d3416967 call 03c 35h ; e8 d6 5816965 call 01600h ; e8 bf 32 16966 call 01799h ; e8 55 34 16967 call 03c55h ; e8 0e 59 16968 16968 sti ; fb 16969 16969 int 019h ; cd 19 16970 16970 sti ; fb 16971 16971 hlt ; f4 16972 jmp short 0e3 63h ; eb fd16972 jmp short 0e34bh ; eb fd 16973 16973 cli ; fa 16974 16974 hlt ; f4 … … 16992 16992 sti ; fb 16993 16993 retf 00002h ; ca 02 00 16994 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 91 LB 0x6d16995 times 0x 6bdb 016994 biosorg_check_before_or_at_0E3FCh: ; 0xfe379 LB 0x85 16995 times 0x83 db 0 16996 16996 db 'XM' 16997 16997 int13_handler: ; 0xfe3fe LB 0x3 … … 17074 17074 pop DS ; 1f 17075 17075 cld ; fc 17076 call 065 dfh ; e8 96 7e17076 call 065ffh ; e8 b6 7e 17077 17077 pop di ; 5f 17078 17078 pop si ; 5e … … 17183 17183 pop DS ; 1f 17184 17184 cld ; fc 17185 call 058 85h ; e8 3b 7017185 call 058a5h ; e8 5b 70 17186 17186 pop di ; 5f 17187 17187 pop si ; 5e … … 17208 17208 pop DS ; 1f 17209 17209 cld ; fc 17210 call 058 85h ; e8 13 7017210 call 058a5h ; e8 33 70 17211 17211 pop di ; 5f 17212 17212 pop si ; 5e … … 17263 17263 pop DS ; 1f 17264 17264 cld ; fc 17265 call 053 24h ; e8 5e 6917265 call 05344h ; e8 7e 69 17266 17266 pop ES ; 07 17267 17267 pop di ; 5f … … 17293 17293 pop DS ; 1f 17294 17294 cld ; fc 17295 call 06f 17h ; e8 2d 8517295 call 06f37h ; e8 4d 85 17296 17296 pop DS ; 1f 17297 17297 pop ES ; 07 … … 17329 17329 cld ; fc 17330 17330 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17331 jmp near 03c 79h ; e9 ff 4f17331 jmp near 03c99h ; e9 1f 50 17332 17332 jmp_call_ret_int13_out: ; 0xfec7a LB 0x4a 17333 17333 db 0ffh … … 17338 17338 push cx ; 51 17339 17339 push dx ; 52 17340 call 03c 4dh ; e8 c9 4f17340 call 03c6dh ; e8 e9 4f 17341 17341 cmp AL, strict byte 000h ; 3c 00 17342 17342 je short 0ecbfh ; 74 37 17343 call 03c 63h ; e8 d8 4f17343 call 03c83h ; e8 f8 4f 17344 17344 pop dx ; 5a 17345 17345 push dx ; 52 … … 17366 17366 cld ; fc 17367 17367 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17368 jmp near 042 87h ; e9 dc 5517368 jmp near 042a7h ; e9 fc 55 17369 17369 and dl, 0e0h ; 80 e2 e0 17370 17370 db 03ah, 0c2h … … 17406 17406 jne short 0ecdeh ; 75 08 17407 17407 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17408 jmp near 03 1ffh ; e9 21 4517408 jmp near 0321fh ; e9 41 45 17409 17409 int13_notfloppy: ; 0xfecde LB 0x14 17410 17410 cmp dl, 0e0h ; 80 fa e0 … … 17412 17412 shr ebx, 010h ; 66 c1 eb 10 17413 17413 push bx ; 53 17414 call 046 dah ; e8 ef 5917414 call 046fah ; e8 0f 5a 17415 17415 pop bx ; 5b 17416 17416 sal ebx, 010h ; 66 c1 e3 10 … … 17419 17419 cmp ah, 040h ; 80 fc 40 17420 17420 jnbe short 0ecfch ; 77 05 17421 call 05c 6ah ; e8 70 6f17421 call 05c8ah ; e8 90 6f 17422 17422 jmp short 0ecffh ; eb 03 17423 call 060 b4h ; e8 b5 7317423 call 060d4h ; e8 d5 73 17424 17424 int13_out: ; 0xfecff LB 0xb 17425 17425 pop DS ; 1f … … 17655 17655 pop DS ; 1f 17656 17656 cld ; fc 17657 call 078 c4h ; e8 e0 8817657 call 078e4h ; e8 00 89 17658 17658 pop di ; 5f 17659 17659 pop si ; 5e … … 17713 17713 mov ax, strict word 00001h ; b8 01 00 17714 17714 push ax ; 50 17715 call 04d 79h ; e8 a9 5c17715 call 04d99h ; e8 c9 5c 17716 17716 inc sp ; 44 17717 17717 inc sp ; 44 … … 17720 17720 mov ax, strict word 00002h ; b8 02 00 17721 17721 push ax ; 50 17722 call 04d 79h ; e8 9c 5c17722 call 04d99h ; e8 bc 5c 17723 17723 inc sp ; 44 17724 17724 inc sp ; 44 … … 17727 17727 mov ax, strict word 00003h ; b8 03 00 17728 17728 push ax ; 50 17729 call 04d 79h ; e8 8f 5c17729 call 04d99h ; e8 af 5c 17730 17730 inc sp ; 44 17731 17731 inc sp ; 44 … … 17734 17734 mov ax, strict word 00004h ; b8 04 00 17735 17735 push ax ; 50 17736 call 04d 79h ; e8 82 5c17736 call 04d99h ; e8 a2 5c 17737 17737 inc sp ; 44 17738 17738 inc sp ; 44 … … 17901 17901 cmp ah, 0c2h ; 80 fc c2 17902 17902 je short 0f895h ; 74 15 17903 call 068 36h ; e8 b3 6f17903 call 06856h ; e8 d3 6f 17904 17904 pop di ; 5f 17905 17905 pop si ; 5e … … 17914 17914 popfw ; 9d 17915 17915 jmp short 0f8afh ; eb 1f 17916 call 09b 96h ; e8 03 a317916 call 09bb6h ; e8 23 a3 17917 17917 jmp short 0f883h ; eb ee 17918 17918 int15_handler_mouse: ; 0xff895 LB 0x5 17919 call 075 24h ; e8 8c 7c17919 call 07544h ; e8 ac 7c 17920 17920 jmp short 0f883h ; eb e9 17921 17921 int15_handler32: ; 0xff89a LB 0x15 … … 17928 17928 push si ; 56 17929 17929 push di ; 57 17930 call 06b 79h ; e8 d4 7217930 call 06b99h ; e8 f4 72 17931 17931 pop di ; 5f 17932 17932 pop si ; 5e … … 17975 17975 pop DS ; 1f 17976 17976 cld ; fc 17977 call 074 52h ; e8 71 7b17977 call 07472h ; e8 91 7b 17978 17978 pop cx ; 59 17979 17979 jcxz 0f8f1h ; e3 0d … … 18023 18023 pop DS ; 1f 18024 18024 cld ; fc 18025 call 07 0efh ; e8 ca 7718025 call 0710fh ; e8 ea 77 18026 18026 pop di ; 5f 18027 18027 pop si ; 5e … … 18126 18126 pop DS ; 1f 18127 18127 cld ; fc 18128 call 071 aeh ; e8 30 7318128 call 071ceh ; e8 50 73 18129 18129 pop di ; 5f 18130 18130 pop si ; 5e … … 18238 18238 cpu_reset: ; 0xffff0 LB 0x10 18239 18239 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18240 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 bah18240 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 03eh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r68934 r69128 1 395b7dc64d6a9731ef4cbcdc422c13c7*VBoxPcBios8086.rom1 8c9d346ad1de9d89b0099b21159482dd *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.