Changeset 48392 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Sep 9, 2013 1:19:56 PM (11 years ago)
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.asm
r47937 r48392 171 171 ; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 172 172 ; 173 174 ; 175 ; Source file: floppyt.c 176 ; 177 ; $Id$ 178 ; Floppy drive tables. 179 ; 180 ; 181 ; 182 ; Copyright (C) 2011-2013 Oracle Corporation 183 ; 184 ; This file is part of VirtualBox Open Source Edition (OSE), as 185 ; available from http://www.virtualbox.org. This file is free software; 186 ; you can redistribute it and/or modify it under the terms of the GNU 187 ; General Public License (GPL) as published by the Free Software 188 ; Foundation, in version 2 as it comes in the "COPYING" file of the 189 ; VirtualBox OSE distribution. VirtualBox OSE is distributed in the 190 ; hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 173 191 174 192 ; … … 792 810 793 811 794 section _DATA progbits vstart=0x0 align=1 ; size=0x40 class=DATA group=DGROUP 795 _pktacc: ; 0xf0000 LB 0xc 796 db 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 044h, 077h, 09ah, 084h 797 _softrst: ; 0xf000c LB 0xc 798 db 000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 02eh, 036h, 02eh, 036h 799 _dskacc: ; 0xf0018 LB 0x28 812 section _DATA progbits vstart=0x0 align=1 ; size=0xb0 class=DATA group=DGROUP 813 _fd_parm: ; 0xf0000 LB 0x5b 814 db 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 080h, 0dfh, 002h, 025h 815 db 002h, 009h, 02ah, 0ffh, 050h, 0f6h, 00fh, 008h, 027h, 040h, 0dfh, 002h, 025h, 002h, 00fh, 01bh 816 db 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 000h, 0dfh, 002h, 025h, 002h, 009h, 02ah, 0ffh, 050h, 0f6h 817 db 00fh, 008h, 04fh, 080h, 0afh, 002h, 025h, 002h, 012h, 01bh, 0ffh, 06ch, 0f6h, 00fh, 008h, 04fh 818 db 000h, 0afh, 002h, 025h, 002h, 024h, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 04fh, 0c0h, 0afh, 002h 819 db 025h, 002h, 0ffh, 01bh, 0ffh, 054h, 0f6h, 00fh, 008h, 0ffh, 000h 820 _fd_map: ; 0xf005b LB 0xf 821 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 822 _pktacc: ; 0xf006a LB 0xc 823 db 000h, 000h, 000h, 000h, 000h, 000h, 02ah, 028h, 038h, 077h, 08eh, 084h 824 _softrst: ; 0xf0076 LB 0xc 825 db 000h, 000h, 000h, 000h, 000h, 000h, 012h, 02bh, 022h, 036h, 022h, 036h 826 _dskacc: ; 0xf0082 LB 0x2e 800 827 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 073h, 027h, 0edh, 027h, 000h, 000h, 000h, 000h 801 db 0 d8h, 075h, 08eh, 076h, 096h, 083h, 02ah, 084h, 05fh, 033h, 032h, 05fh, 000h, 0dah, 00fh, 000h802 db 0 00h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h828 db 0cch, 075h, 082h, 076h, 08ah, 083h, 01eh, 084h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 829 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 803 830 804 section CONST progbits vstart=0x 40 align=1 ; size=0xce0 class=DATA group=DGROUP831 section CONST progbits vstart=0xb0 align=1 ; size=0xce0 class=DATA group=DGROUP 805 832 db 'NMI Handler called', 00ah, 000h 806 833 db 'INT18: BOOT FAILURE', 00ah, 000h … … 918 945 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 919 946 920 section CONST2 progbits vstart=0xd 20 align=1 ; size=0x400 class=DATA group=DGROUP921 _bios_cvs_version_string: ; 0xf0d 20 LB 0x18922 db 'VirtualBox 4.3.0_BETA 1', 000h, 000h923 _bios_prefix_string: ; 0xf0d 38 LB 0x8947 section CONST2 progbits vstart=0xd90 align=1 ; size=0x400 class=DATA group=DGROUP 948 _bios_cvs_version_string: ; 0xf0d90 LB 0x18 949 db 'VirtualBox 4.3.0_BETA2', 000h, 000h 950 _bios_prefix_string: ; 0xf0da8 LB 0x8 924 951 db 'BIOS: ', 000h, 000h 925 _isotag: ; 0xf0d 40 LB 0x6952 _isotag: ; 0xf0db0 LB 0x6 926 953 db 'CD001', 000h 927 _eltorito: ; 0xf0d 46 LB 0x18954 _eltorito: ; 0xf0db6 LB 0x18 928 955 db 'EL TORITO SPECIFICATION', 000h 929 _drivetypes: ; 0xf0d 5e LB 0x28956 _drivetypes: ; 0xf0dce LB 0x28 930 957 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 931 958 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 932 959 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 933 _scan_to_scanascii: ; 0xf0d 86 LB 0x37a960 _scan_to_scanascii: ; 0xf0df6 LB 0x37a 934 961 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 935 962 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 988 1015 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 989 1016 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 990 _panic_msg_keyb_buffer_full: ; 0xf11 00 LB 0x201017 _panic_msg_keyb_buffer_full: ; 0xf1170 LB 0x20 991 1018 db '%s: keyboard input buffer full', 00ah, 000h 992 1019 993 ; Padding 0x4 e0 bytes at 0xf1120994 times 1 248db 01020 ; Padding 0x470 bytes at 0xf1190 1021 times 1136 db 0 995 1022 996 1023 section _TEXT progbits vstart=0x1600 align=1 ; size=0x7cd5 class=CODE group=AUTO … … 1143 1170 push bp ; 55 1144 1171 mov bp, sp ; 89 e5 1145 push strict word 00040h ; 68 40 001172 push 000b0h ; 68 b0 00 1146 1173 push strict byte 00007h ; 6a 07 1147 1174 call 0190dh ; e8 14 02 … … 1153 1180 push bp ; 55 1154 1181 mov bp, sp ; 89 e5 1155 push strict word 00054h ; 68 54 001182 push 000c4h ; 68 c4 00 1156 1183 push strict byte 00007h ; 6a 07 1157 1184 call 0190dh ; e8 02 02 … … 1163 1190 push bp ; 55 1164 1191 mov bp, sp ; 89 e5 1165 mov bx, 00d 38h ; bb 38 0d1192 mov bx, 00da8h ; bb a8 0d 1166 1193 mov cx, ds ; 8c d9 1167 1194 mov ax, strict word 00004h ; b8 04 00 1168 1195 call 018cch ; e8 ac 01 1169 push 00d 20h ; 68 20 0d1170 push strict word 00069h ; 68 69 001196 push 00d90h ; 68 90 0d 1197 push 000d9h ; 68 d9 00 1171 1198 push strict byte 00004h ; 6a 04 1172 1199 call 0190dh ; e8 e2 01 … … 1192 1219 int 010h ; cd 10 1193 1220 jmp short 0175ch ; eb 03 1194 call 071 e7h ; e8 8b5a1221 call 071dbh ; e8 7f 5a 1195 1222 mov sp, bp ; 89 ec 1196 1223 pop bp ; 5d … … 1435 1462 cmp ax, strict word 00007h ; 3d 07 00 1436 1463 jne short 0193bh ; 75 0b 1437 push strict word 0006eh ; 68 6e 001464 push 000deh ; 68 de 00 1438 1465 push strict byte 00002h ; 6a 02 1439 1466 call 0190dh ; e8 d5 ff … … 1618 1645 call 01760h ; e8 53 fc 1619 1646 jmp short 01b1ah ; eb 0b 1620 push strict word 00076h ; 68 76 001647 push 000e6h ; 68 e6 00 1621 1648 push strict byte 00007h ; 6a 07 1622 1649 call 0190dh ; e8 f6 fd … … 2222 2249 test ax, ax ; 85 c0 2223 2250 je short 020f6h ; 74 0b 2224 push 00 094h ; 68 94 002251 push 00104h ; 68 04 01 2225 2252 push strict byte 00007h ; 6a 07 2226 2253 call 0190dh ; e8 1a f8 … … 2301 2328 mov dx, ss ; 8c d2 2302 2329 lea ax, [bp-036h] ; 8d 46 ca 2303 call 053 38h ; e8 80312304 mov bx, 00d 38h ; bb 38 0d2330 call 0532ch ; e8 74 31 2331 mov bx, 00da8h ; bb a8 0d 2305 2332 mov cx, ds ; 8c d9 2306 2333 mov ax, strict word 00004h ; b8 04 00 … … 2319 2346 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2320 2347 push ax ; 50 2321 push 00 0bdh ; 68 bd 002348 push 0012dh ; 68 2d 01 2322 2349 push strict byte 00004h ; 6a 04 2323 2350 call 0190dh ; e8 23 f7 … … 2417 2444 test ax, ax ; 85 c0 2418 2445 je short 0230dh ; 74 0b 2419 push 00 0e4h ; 68 e4 002446 push 00154h ; 68 54 01 2420 2447 push strict byte 00007h ; 6a 07 2421 2448 call 0190dh ; e8 03 f6 … … 2509 2536 cmp byte [bp-008h], 000h ; 80 7e f8 00 2510 2537 je short 02411h ; 74 05 2511 mov ax, 001 0fh ; b8 0f 012538 mov ax, 0017fh ; b8 7f 01 2512 2539 jmp short 02414h ; eb 03 2513 mov ax, 001 16h ; b8 16 012540 mov ax, 00186h ; b8 86 01 2514 2541 push ax ; 50 2515 2542 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2516 2543 push ax ; 50 2517 push 001 1dh ; 68 1d 012544 push 0018dh ; 68 8d 01 2518 2545 push strict byte 00002h ; 6a 02 2519 2546 call 0190dh ; e8 eb f4 … … 2525 2552 je short 0243eh ; 74 0e 2526 2553 push ax ; 50 2527 push 001 28h ; 68 28 012554 push 00198h ; 68 98 01 2528 2555 push strict byte 00002h ; 6a 02 2529 2556 call 0190dh ; e8 d4 f4 … … 2533 2560 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2534 2561 push ax ; 50 2535 push 001 2bh ; 68 2b 012562 push 0019bh ; 68 9b 01 2536 2563 push strict byte 00002h ; 6a 02 2537 2564 call 0190dh ; e8 be f4 … … 2540 2567 cmp byte [bp-008h], 000h ; 80 7e f8 00 2541 2568 je short 02460h ; 74 05 2542 mov ax, 001 0fh ; b8 0f 012569 mov ax, 0017fh ; b8 7f 01 2543 2570 jmp short 02463h ; eb 03 2544 mov ax, 001 16h ; b8 16 012571 mov ax, 00186h ; b8 86 01 2545 2572 push ax ; 50 2546 2573 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2547 2574 push ax ; 50 2548 push 001 1dh ; 68 1d 012575 push 0018dh ; 68 8d 01 2549 2576 push strict byte 00002h ; 6a 02 2550 2577 call 0190dh ; e8 9c f4 … … 2556 2583 je short 0248dh ; 74 0e 2557 2584 push ax ; 50 2558 push 001 28h ; 68 28 012585 push 00198h ; 68 98 01 2559 2586 push strict byte 00002h ; 6a 02 2560 2587 call 0190dh ; e8 85 f4 … … 2569 2596 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2570 2597 push ax ; 50 2571 push 001 4bh ; 68 4b 012598 push 001bbh ; 68 bb 01 2572 2599 jmp short 024b2h ; eb 08 2573 2600 movzx ax, byte [bp-012h] ; 0f b6 46 ee 2574 2601 push ax ; 50 2575 push 001 65h ; 68 65 012602 push 001d5h ; 68 d5 01 2576 2603 push strict byte 00002h ; 6a 02 2577 2604 call 0190dh ; e8 56 f4 … … 2580 2607 cmp byte [bp-008h], 000h ; 80 7e f8 00 2581 2608 je short 024c7h ; 74 05 2582 mov ax, 001 0fh ; b8 0f 012609 mov ax, 0017fh ; b8 7f 01 2583 2610 jmp short 024cah ; eb 03 2584 mov ax, 001 16h ; b8 16 012611 mov ax, 00186h ; b8 86 01 2585 2612 push ax ; 50 2586 2613 movzx ax, byte [bp-018h] ; 0f b6 46 e8 2587 2614 push ax ; 50 2588 push 001 77h ; 68 77 012615 push 001e7h ; 68 e7 01 2589 2616 push strict byte 00002h ; 6a 02 2590 2617 call 0190dh ; e8 35 f4 … … 2950 2977 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 2951 2978 jne short 0287ch ; 75 1f 2952 mov bx, 00d 38h ; bb 38 0d2979 mov bx, 00da8h ; bb a8 0d 2953 2980 mov cx, ds ; 8c d9 2954 2981 mov ax, strict word 00004h ; b8 04 00 2955 2982 call 018cch ; e8 64 f0 2956 push 00 191h ; 68 91 012957 push 00 1a0h ; 68 a0 012983 push 00201h ; 68 01 02 2984 push 00210h ; 68 10 02 2958 2985 push strict byte 00004h ; 6a 04 2959 2986 call 0190dh ; e8 9a f0 … … 3315 3342 cmp AL, strict byte 001h ; 3c 01 3316 3343 jbe short 02bbfh ; 76 0b 3317 push 00 1c0h ; 68 c0 013344 push 00230h ; 68 30 02 3318 3345 push strict byte 00007h ; 6a 07 3319 3346 call 0190dh ; e8 51 ed … … 3581 3608 pop bp ; 5d 3582 3609 retn ; c3 3583 floppy_media_sense_: ; 0xf2db5 LB 0x 1153610 floppy_media_sense_: ; 0xf2db5 LB 0xf0 3584 3611 push bp ; 55 3585 3612 mov bp, sp ; 89 e5 … … 3594 3621 jne short 02dcbh ; 75 05 3595 3622 xor cx, cx ; 31 c9 3596 jmp near 02e beh ; e9 f3003623 jmp near 02e99h ; e9 ce 00 3597 3624 mov ax, strict word 00010h ; b8 10 00 3598 3625 call 0165ch ; e8 8b e8 … … 3609 3636 mov CH, strict byte 015h ; b5 15 3610 3637 mov si, strict word 00001h ; be 01 00 3611 jmp short 02e 52h ; eb 633638 jmp short 02e2dh ; eb 3e 3612 3639 cmp cl, 002h ; 80 f9 02 3613 3640 jne short 02dfah ; 75 06 … … 3630 3657 mov CH, strict byte 0d7h ; b5 d7 3631 3658 jmp short 02deah ; eb cf 3632 cmp cl, 006h ; 80 f9 063633 jne short 02e26h ; 75 063634 xor cl, cl ; 30 c93635 mov CH, strict byte 027h ; b5 273636 jmp short 02deah ; eb c43637 cmp cl, 007h ; 80 f9 073638 jne short 02e31h ; 75 063639 xor cl, cl ; 30 c93640 mov CH, strict byte 027h ; b5 273641 jmp short 02deah ; eb b93642 cmp cl, 008h ; 80 f9 083643 jne short 02e3ch ; 75 063644 xor cl, cl ; 30 c93645 mov CH, strict byte 027h ; b5 273646 jmp short 02deah ; eb ae3647 3659 cmp cl, 00eh ; 80 f9 0e 3648 je short 02e 46h ; 74 053660 je short 02e25h ; 74 05 3649 3661 cmp cl, 00fh ; 80 f9 0f 3650 jne short 02e4ch ; 75 06 3651 mov CL, strict byte 0cch ; b1 cc 3652 mov CH, strict byte 0d7h ; b5 d7 3653 jmp short 02deah ; eb 9e 3662 jne short 02e27h ; 75 02 3663 jmp short 02e15h ; eb ee 3654 3664 xor cl, cl ; 30 c9 3655 3665 xor ch, ch ; 30 ed … … 3658 3668 mov dx, 0008bh ; ba 8b 00 3659 3669 mov ax, strict word 00040h ; b8 40 00 3660 call 0160eh ; e8 b0e73670 call 0160eh ; e8 d5 e7 3661 3671 mov ax, di ; 89 f8 3662 call 02d2dh ; e8 cafe3672 call 02d2dh ; e8 ef fe 3663 3673 test ax, ax ; 85 c0 3664 jne short 02e 99h ; 75 323674 jne short 02e74h ; 75 32 3665 3675 mov al, cl ; 88 c8 3666 3676 and AL, strict byte 0c0h ; 24 c0 3667 3677 cmp AL, strict byte 080h ; 3c 80 3668 je short 02e 99h ; 74 2a3678 je short 02e74h ; 74 2a 3669 3679 mov al, cl ; 88 c8 3670 3680 and AL, strict byte 0c0h ; 24 c0 3671 3681 cmp AL, strict byte 0c0h ; 3c c0 3672 je short 02e 86h ; 74 0f3682 je short 02e61h ; 74 0f 3673 3683 mov ah, cl ; 88 cc 3674 3684 and ah, 03fh ; 80 e4 3f 3675 3685 cmp AL, strict byte 040h ; 3c 40 3676 je short 02e 92h ; 74 123686 je short 02e6dh ; 74 12 3677 3687 test al, al ; 84 c0 3678 je short 02e 8bh ; 74 073679 jmp short 02e 52h ; eb cc3688 je short 02e66h ; 74 07 3689 jmp short 02e2dh ; eb cc 3680 3690 and cl, 03fh ; 80 e1 3f 3681 jmp short 02e 52h ; eb c73691 jmp short 02e2dh ; eb c7 3682 3692 mov cl, ah ; 88 e1 3683 3693 or cl, 040h ; 80 c9 40 3684 jmp short 02e 52h ; eb c03694 jmp short 02e2dh ; eb c0 3685 3695 mov cl, ah ; 88 e1 3686 3696 or cl, 080h ; 80 c9 80 3687 jmp short 02e 52h ; eb b93697 jmp short 02e2dh ; eb b9 3688 3698 test di, di ; 85 ff 3689 3699 db 00fh, 095h, 0c0h … … 3694 3704 mov dx, 0008bh ; ba 8b 00 3695 3705 mov ax, strict word 00040h ; b8 40 00 3696 call 0160eh ; e8 5de73706 call 0160eh ; e8 82 e7 3697 3707 movzx bx, ch ; 0f b6 dd 3698 3708 mov dx, di ; 89 fa 3699 3709 mov ax, strict word 00040h ; b8 40 00 3700 call 0160eh ; e8 52e73710 call 0160eh ; e8 77 e7 3701 3711 mov cx, si ; 89 f1 3702 3712 mov ax, cx ; 89 c8 … … 3709 3719 pop bp ; 5d 3710 3720 retn ; c3 3711 floppy_drive_exists_: ; 0xf2e caLB 0x243721 floppy_drive_exists_: ; 0xf2ea5 LB 0x24 3712 3722 push bp ; 55 3713 3723 mov bp, sp ; 89 e5 … … 3715 3725 mov dx, ax ; 89 c2 3716 3726 mov ax, strict word 00010h ; b8 10 00 3717 call 0165ch ; e8 86e73727 call 0165ch ; e8 ab e7 3718 3728 test dx, dx ; 85 d2 3719 jne short 02e dfh ; 75 053729 jne short 02ebah ; 75 05 3720 3730 shr al, 004h ; c0 e8 04 3721 jmp short 02e e1h ; eb 023731 jmp short 02ebch ; eb 02 3722 3732 and AL, strict byte 00fh ; 24 0f 3723 3733 test al, al ; 84 c0 … … 3729 3739 pop bp ; 5d 3730 3740 retn ; c3 3731 _int13_diskette_function: ; 0xf2e ee LB 0x7403741 _int13_diskette_function: ; 0xf2ec9 LB 0x72a 3732 3742 push bp ; 55 3733 3743 mov bp, sp ; 89 e5 … … 3737 3747 mov bx, word [bp+016h] ; 8b 5e 16 3738 3748 shr bx, 008h ; c1 eb 08 3739 mov c l, bl ; 88 d93749 mov ch, bl ; 88 dd 3740 3750 mov si, word [bp+016h] ; 8b 76 16 3741 3751 and si, 000ffh ; 81 e6 ff 00 3742 mov a l, byte [bp+00eh] ; 8a 46 0e3752 mov ah, byte [bp+00eh] ; 8a 66 0e 3743 3753 cmp bl, 008h ; 80 fb 08 3744 jc short 02f 45h ; 72 383754 jc short 02f22h ; 72 3a 3745 3755 mov dx, word [bp+01ch] ; 8b 56 1c 3746 3756 or dl, 001h ; 80 ca 01 3747 3757 cmp bl, 008h ; 80 fb 08 3748 jbe near 034 8fh ; 0f 86 75053758 jbe near 03472h ; 0f 86 7d 05 3749 3759 cmp bl, 016h ; 80 fb 16 3750 jc short 02f 3bh ; 72 1c3760 jc short 02f18h ; 72 1e 3751 3761 or si, 00100h ; 81 ce 00 01 3762 mov cx, si ; 89 f1 3752 3763 cmp bl, 016h ; 80 fb 16 3753 jbe near 035 eah ; 0f 86 c0063764 jbe near 035aeh ; 0f 86 a7 06 3754 3765 cmp bl, 018h ; 80 fb 18 3755 je near 035 eeh ; 0f 84 bd063766 je near 035b3h ; 0f 84 a5 06 3756 3767 cmp bl, 017h ; 80 fb 17 3757 je near 035 eeh ; 0f 84 b6063758 jmp near 03 60bh ; e9 d0063768 je near 035b3h ; 0f 84 9e 06 3769 jmp near 035d0h ; e9 b8 06 3759 3770 cmp bl, 015h ; 80 fb 15 3760 je near 035 abh ; 0f 84 69 063761 jmp near 03 60bh ; e9 c6063771 je near 03568h ; 0f 84 49 06 3772 jmp near 035d0h ; e9 ae 06 3762 3773 cmp bl, 001h ; 80 fb 01 3763 jc short 02f 5fh ; 72 153764 jbe near 02f d3h ; 0f 86 85003774 jc short 02f3ch ; 72 15 3775 jbe near 02fb5h ; 0f 86 8a 00 3765 3776 cmp bl, 005h ; 80 fb 05 3766 je near 03 315h ; 0f 84 c0033777 je near 032f8h ; 0f 84 c6 03 3767 3778 cmp bl, 004h ; 80 fb 04 3768 jbe near 02f f1h ; 0f 86 95003769 jmp near 03 60bh ; e9 ac063779 jbe near 02fd3h ; 0f 86 9a 00 3780 jmp near 035d0h ; e9 94 06 3770 3781 test bl, bl ; 84 db 3771 jne near 03 60bh ; 0f 85 a6063782 jne near 035d0h ; 0f 85 8e 06 3772 3783 mov al, byte [bp+00eh] ; 8a 46 0e 3773 3784 mov byte [bp-00eh], al ; 88 46 f2 3774 3785 cmp AL, strict byte 001h ; 3c 01 3775 jbe short 02f 83h ; 76 143786 jbe short 02f60h ; 76 14 3776 3787 mov ax, word [bp+016h] ; 8b 46 16 3777 3788 xor ah, ah ; 30 e4 … … 3779 3790 mov word [bp+016h], ax ; 89 46 16 3780 3791 mov ax, strict word 00001h ; b8 01 00 3781 call 02b92h ; e8 12fc3782 jmp near 032 f1h ; e9 6e033792 call 02b92h ; e8 35 fc 3793 jmp near 032d4h ; e9 74 03 3783 3794 mov ax, strict word 00010h ; b8 10 00 3784 call 0165ch ; e8 d3e63795 call 0165ch ; e8 f6 e6 3785 3796 cmp byte [bp-00eh], 000h ; 80 7e f2 00 3786 jne short 02f94h ; 75 05 3787 shr al, 004h ; c0 e8 04 3788 jmp short 02f96h ; eb 02 3789 and AL, strict byte 00fh ; 24 0f 3790 test al, al ; 84 c0 3791 jne short 02faah ; 75 10 3797 jne short 02f73h ; 75 07 3798 mov dl, al ; 88 c2 3799 shr dl, 004h ; c0 ea 04 3800 jmp short 02f78h ; eb 05 3801 mov dl, al ; 88 c2 3802 and dl, 00fh ; 80 e2 0f 3803 test dl, dl ; 84 d2 3804 jne short 02f8ch ; 75 10 3792 3805 mov ax, word [bp+016h] ; 8b 46 16 3793 3806 xor ah, ah ; 30 e4 … … 3795 3808 mov word [bp+016h], ax ; 89 46 16 3796 3809 mov ax, 00080h ; b8 80 00 3797 jmp short 02f 7dh ; eb d33810 jmp short 02f5ah ; eb ce 3798 3811 xor bx, bx ; 31 db 3799 3812 mov dx, strict word 0003eh ; ba 3e 00 3800 3813 mov ax, strict word 00040h ; b8 40 00 3801 call 0160eh ; e8 59e63814 call 0160eh ; e8 77 e6 3802 3815 xor al, al ; 30 c0 3803 3816 mov byte [bp+017h], al ; 88 46 17 3804 3817 xor ah, ah ; 30 e4 3805 call 02b92h ; e8 d3fb3818 call 02b92h ; e8 f1 fb 3806 3819 and byte [bp+01ch], 0feh ; 80 66 1c fe 3807 3820 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3808 3821 xor dx, dx ; 31 d2 3809 call 02baah ; e8 defb3822 call 02baah ; e8 fc fb 3810 3823 lea sp, [bp-004h] ; 8d 66 fc 3811 3824 pop di ; 5f … … 3816 3829 mov dx, 00441h ; ba 41 04 3817 3830 xor ax, ax ; 31 c0 3818 call 01600h ; e8 21e63831 call 01600h ; e8 3f e6 3819 3832 movzx dx, al ; 0f b6 d0 3820 3833 sal dx, 008h ; c1 e2 08 … … 3822 3835 mov word [bp+016h], si ; 89 76 16 3823 3836 test al, al ; 84 c0 3824 je short 02f cch ; 74 de3825 jmp near 032 f1h ; e9 00033826 mov a h, byte [bp+016h] ; 8a 66 163827 mov byte [bp-00ch], a h ; 88 66 f43837 je short 02faeh ; 74 de 3838 jmp near 032d4h ; e9 01 03 3839 mov al, byte [bp+016h] ; 8a 46 16 3840 mov byte [bp-00ch], al ; 88 46 f4 3828 3841 mov dx, word [bp+014h] ; 8b 56 14 3829 3842 shr dx, 008h ; c1 ea 08 3830 3843 mov byte [bp-008h], dl ; 88 56 f8 3831 mov a h, byte [bp+014h] ; 8a 66 143832 mov byte [bp-00ah], a h ; 88 66 f63844 mov al, byte [bp+014h] ; 8a 46 14 3845 mov byte [bp-00ah], al ; 88 46 f6 3833 3846 mov dx, word [bp+012h] ; 8b 56 12 3834 3847 shr dx, 008h ; c1 ea 08 3835 3848 mov byte [bp-006h], dl ; 88 56 fa 3836 mov byte [bp-00eh], a l ; 88 46 f23837 cmp AL, strict byte 001h ; 3c 013838 jnbe short 030 26h ; 77 103849 mov byte [bp-00eh], ah ; 88 66 f2 3850 cmp ah, 001h ; 80 fc 01 3851 jnbe short 03009h ; 77 10 3839 3852 cmp dl, 001h ; 80 fa 01 3840 jnbe short 030 26h ; 77 0b3853 jnbe short 03009h ; 77 0b 3841 3854 mov al, byte [bp-00ch] ; 8a 46 f4 3842 3855 test al, al ; 84 c0 3843 je short 030 26h ; 74 043856 je short 03009h ; 74 04 3844 3857 cmp AL, strict byte 048h ; 3c 48 3845 jbe short 030 4fh ; 76 293846 mov bx, 00d 38h ; bb 38 0d3858 jbe short 03032h ; 76 29 3859 mov bx, 00da8h ; bb a8 0d 3847 3860 mov cx, ds ; 8c d9 3848 3861 mov ax, strict word 00004h ; b8 04 00 3849 call 018cch ; e8 9be83850 push 00 1e5h ; 68 e5 013851 push 00 1fdh ; 68 fd 013862 call 018cch ; e8 b8 e8 3863 push 00255h ; 68 55 02 3864 push 0026dh ; 68 6d 02 3852 3865 push strict byte 00004h ; 6a 04 3853 call 0190dh ; e8 d1e83866 call 0190dh ; e8 ee e8 3854 3867 add sp, strict byte 00006h ; 83 c4 06 3855 3868 mov ax, word [bp+016h] ; 8b 46 16 … … 3858 3871 mov word [bp+016h], ax ; 89 46 16 3859 3872 mov ax, strict word 00001h ; b8 01 00 3860 jmp short 030 c0h ; eb 713873 jmp short 030a3h ; eb 71 3861 3874 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3862 call 02e cah ; e8 74fe3875 call 02ea5h ; e8 6c fe 3863 3876 test ax, ax ; 85 c0 3864 je near 031 53h ; 0f 84 f7 003877 je near 03136h ; 0f 84 f7 00 3865 3878 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 3866 3879 mov ax, dx ; 89 d0 3867 call 02ceah ; e8 85fc3880 call 02ceah ; e8 a2 fc 3868 3881 test ax, ax ; 85 c0 3869 jne short 030 82h ; 75 193882 jne short 03065h ; 75 19 3870 3883 mov ax, dx ; 89 d0 3871 call 02db5h ; e8 47fd3884 call 02db5h ; e8 64 fd 3872 3885 test ax, ax ; 85 c0 3873 jne short 030 82h ; 75 103886 jne short 03065h ; 75 10 3874 3887 mov ax, word [bp+016h] ; 8b 46 16 3875 3888 xor ah, ah ; 30 e4 … … 3877 3890 mov word [bp+016h], ax ; 89 46 16 3878 3891 mov ax, strict word 0000ch ; b8 0c 00 3879 jmp short 030c0h ; eb 3e 3880 cmp cl, 002h ; 80 f9 02 3881 jne near 031eah ; 0f 85 61 01 3892 jmp short 030a3h ; eb 3e 3893 cmp ch, 002h ; 80 fd 02 3894 jne near 031cdh ; 0f 85 61 01 3895 mov dx, word [bp+006h] ; 8b 56 06 3896 shr dx, 00ch ; c1 ea 0c 3897 mov ah, dl ; 88 d4 3898 mov cx, word [bp+006h] ; 8b 4e 06 3899 sal cx, 004h ; c1 e1 04 3900 mov bx, word [bp+010h] ; 8b 5e 10 3901 add bx, cx ; 01 cb 3902 cmp bx, cx ; 39 cb 3903 jnc short 03085h ; 73 02 3904 db 0feh, 0c4h 3905 ; inc ah ; fe c4 3906 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 3907 sal cx, 009h ; c1 e1 09 3908 dec cx ; 49 3909 mov dx, bx ; 89 da 3910 add dx, cx ; 01 ca 3911 cmp dx, bx ; 39 da 3912 jnc short 030adh ; 73 18 3913 mov ax, word [bp+016h] ; 8b 46 16 3914 xor ah, ah ; 30 e4 3915 or ah, 009h ; 80 cc 09 3916 mov word [bp+016h], ax ; 89 46 16 3917 mov ax, strict word 00009h ; b8 09 00 3918 call 02b92h ; e8 ec fa 3919 mov byte [bp+016h], 000h ; c6 46 16 00 3920 jmp near 032d4h ; e9 27 02 3921 mov AL, strict byte 006h ; b0 06 3922 mov dx, strict word 0000ah ; ba 0a 00 3923 out DX, AL ; ee 3924 xor al, al ; 30 c0 3925 mov dx, strict word 0000ch ; ba 0c 00 3926 out DX, AL ; ee 3927 mov al, bl ; 88 d8 3928 mov dx, strict word 00004h ; ba 04 00 3929 out DX, AL ; ee 3930 shr bx, 008h ; c1 eb 08 3931 mov al, bl ; 88 d8 3932 out DX, AL ; ee 3933 xor al, bl ; 30 d8 3934 mov dx, strict word 0000ch ; ba 0c 00 3935 out DX, AL ; ee 3936 mov al, cl ; 88 c8 3937 mov dx, strict word 00005h ; ba 05 00 3938 out DX, AL ; ee 3939 shr cx, 008h ; c1 e9 08 3940 mov al, cl ; 88 c8 3941 out DX, AL ; ee 3942 mov AL, strict byte 046h ; b0 46 3943 mov dx, strict word 0000bh ; ba 0b 00 3944 out DX, AL ; ee 3945 mov al, ah ; 88 e0 3946 mov dx, 00081h ; ba 81 00 3947 out DX, AL ; ee 3948 mov AL, strict byte 002h ; b0 02 3949 mov dx, strict word 0000ah ; ba 0a 00 3950 out DX, AL ; ee 3951 out DX, AL ; ee 3952 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3953 call 02c69h ; e8 78 fb 3954 mov AL, strict byte 0e6h ; b0 e6 3955 mov dx, 003f5h ; ba f5 03 3956 out DX, AL ; ee 3957 movzx dx, byte [bp-006h] ; 0f b6 56 fa 3958 sal dx, 002h ; c1 e2 02 3959 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3960 or ax, dx ; 09 d0 3961 mov dx, 003f5h ; ba f5 03 3962 out DX, AL ; ee 3963 mov al, byte [bp-008h] ; 8a 46 f8 3964 out DX, AL ; ee 3965 mov al, byte [bp-006h] ; 8a 46 fa 3966 out DX, AL ; ee 3967 mov al, byte [bp-00ah] ; 8a 46 f6 3968 out DX, AL ; ee 3969 mov AL, strict byte 002h ; b0 02 3970 out DX, AL ; ee 3971 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 3972 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3973 add ax, dx ; 01 d0 3974 dec ax ; 48 3975 mov dx, 003f5h ; ba f5 03 3976 out DX, AL ; ee 3977 xor al, al ; 30 c0 3978 out DX, AL ; ee 3979 mov AL, strict byte 0ffh ; b0 ff 3980 out DX, AL ; ee 3981 call 02bf8h ; e8 c9 fa 3982 test al, al ; 84 c0 3983 jne short 03147h ; 75 14 3984 call 02c3eh ; e8 08 fb 3985 mov ax, word [bp+016h] ; 8b 46 16 3986 xor ah, ah ; 30 e4 3987 or ah, 080h ; 80 cc 80 3988 mov word [bp+016h], ax ; 89 46 16 3989 mov ax, 00080h ; b8 80 00 3990 jmp near 030a3h ; e9 5c ff 3991 mov dx, 003f4h ; ba f4 03 3992 in AL, DX ; ec 3993 db 02ah, 0e4h 3994 ; sub ah, ah ; 2a e4 3995 and AL, strict byte 0c0h ; 24 c0 3996 cmp AL, strict byte 0c0h ; 3c c0 3997 je short 03161h ; 74 0e 3998 push 00255h ; 68 55 02 3999 push 00288h ; 68 88 02 4000 push strict byte 00007h ; 6a 07 4001 call 0190dh ; e8 af e7 4002 add sp, strict byte 00006h ; 83 c4 06 4003 xor si, si ; 31 f6 4004 jmp short 0316ah ; eb 05 4005 cmp si, strict byte 00007h ; 83 fe 07 4006 jnl short 03182h ; 7d 18 4007 mov dx, 003f5h ; ba f5 03 4008 in AL, DX ; ec 4009 db 02ah, 0e4h 4010 ; sub ah, ah ; 2a e4 4011 mov byte [bp+si-016h], al ; 88 42 ea 4012 movzx bx, al ; 0f b6 d8 4013 lea dx, [si+042h] ; 8d 54 42 4014 mov ax, strict word 00040h ; b8 40 00 4015 call 0160eh ; e8 8f e4 4016 inc si ; 46 4017 jmp short 03165h ; eb e3 4018 test byte [bp-016h], 0c0h ; f6 46 ea c0 4019 je short 03199h ; 74 11 4020 mov ax, word [bp+016h] ; 8b 46 16 4021 xor ah, ah ; 30 e4 4022 or ah, 020h ; 80 cc 20 4023 mov word [bp+016h], ax ; 89 46 16 4024 mov ax, strict word 00020h ; b8 20 00 4025 jmp near 030a3h ; e9 0a ff 4026 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4027 sal ax, 009h ; c1 e0 09 4028 cwd ; 99 4029 db 02bh, 0c2h 4030 ; sub ax, dx ; 2b c2 4031 sar ax, 1 ; d1 f8 4032 mov cx, ax ; 89 c1 4033 mov si, word [bp+010h] ; 8b 76 10 4034 mov dx, word [bp+006h] ; 8b 56 06 4035 mov di, si ; 89 f7 4036 mov es, dx ; 8e c2 4037 push DS ; 1e 4038 mov ds, dx ; 8e da 4039 rep movsw ; f3 a5 4040 pop DS ; 1f 4041 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4042 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4043 call 02baah ; e8 e8 f9 4044 mov byte [bp+017h], 000h ; c6 46 17 00 4045 and byte [bp+01ch], 0feh ; 80 66 1c fe 4046 jmp near 02faeh ; e9 e1 fd 4047 cmp ch, 003h ; 80 fd 03 4048 jne near 032e2h ; 0f 85 0e 01 3882 4049 mov cx, word [bp+006h] ; 8b 4e 06 3883 4050 shr cx, 00ch ; c1 e9 0c … … 3888 4055 add bx, dx ; 01 d3 3889 4056 cmp bx, dx ; 39 d3 3890 jnc short 03 0a2h ; 73 024057 jnc short 031edh ; 73 02 3891 4058 db 0feh, 0c4h 3892 4059 ; inc ah ; fe c4 … … 3897 4064 add dx, cx ; 01 ca 3898 4065 cmp dx, bx ; 39 da 3899 jnc short 030cah ; 73 18 3900 mov ax, word [bp+016h] ; 8b 46 16 3901 xor ah, ah ; 30 e4 3902 or ah, 009h ; 80 cc 09 3903 mov word [bp+016h], ax ; 89 46 16 3904 mov ax, strict word 00009h ; b8 09 00 3905 call 02b92h ; e8 cf fa 3906 mov byte [bp+016h], 000h ; c6 46 16 00 3907 jmp near 032f1h ; e9 27 02 4066 jc near 03095h ; 0f 82 96 fe 3908 4067 mov AL, strict byte 006h ; b0 06 3909 4068 mov dx, strict word 0000ah ; ba 0a 00 … … 3927 4086 mov al, cl ; 88 c8 3928 4087 out DX, AL ; ee 3929 mov AL, strict byte 04 6h ; b0 464088 mov AL, strict byte 04ah ; b0 4a 3930 4089 mov dx, strict word 0000bh ; ba 0b 00 3931 4090 out DX, AL ; ee … … 3936 4095 mov dx, strict word 0000ah ; ba 0a 00 3937 4096 out DX, AL ; ee 3938 out DX, AL ; ee3939 4097 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 3940 call 02c69h ; e8 5b fb3941 mov AL, strict byte 0 e6h ; b0 e64098 call 02c69h ; e8 27 fa 4099 mov AL, strict byte 0c5h ; b0 c5 3942 4100 mov dx, 003f5h ; ba f5 03 3943 4101 out DX, AL ; ee … … 3956 4114 mov AL, strict byte 002h ; b0 02 3957 4115 out DX, AL ; ee 3958 movzx ax, byte [bp-00ah] ; 0f b6 46 f63959 movzx dx, byte [bp-00ch] ; 0f b6 56 f44116 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4117 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 3960 4118 add ax, dx ; 01 d0 3961 4119 dec ax ; 48 … … 3966 4124 mov AL, strict byte 0ffh ; b0 ff 3967 4125 out DX, AL ; ee 3968 call 02bf8h ; e8 ac fa4126 call 02bf8h ; e8 78 f9 3969 4127 test al, al ; 84 c0 3970 jne short 03164h ; 75 14 3971 call 02c3eh ; e8 eb fa 3972 mov ax, word [bp+016h] ; 8b 46 16 3973 xor ah, ah ; 30 e4 3974 or ah, 080h ; 80 cc 80 3975 mov word [bp+016h], ax ; 89 46 16 3976 mov ax, 00080h ; b8 80 00 3977 jmp near 030c0h ; e9 5c ff 4128 je near 03133h ; 0f 84 ad fe 3978 4129 mov dx, 003f4h ; ba f4 03 3979 4130 in AL, DX ; ec … … 3982 4133 and AL, strict byte 0c0h ; 24 c0 3983 4134 cmp AL, strict byte 0c0h ; 3c c0 3984 je short 03 17eh ; 74 0e3985 push 00 1e5h ; 68 e5 013986 push 002 18h ; 68 18 024135 je short 032a0h ; 74 0e 4136 push 00255h ; 68 55 02 4137 push 00288h ; 68 88 02 3987 4138 push strict byte 00007h ; 6a 07 3988 call 0190dh ; e8 92 e74139 call 0190dh ; e8 70 e6 3989 4140 add sp, strict byte 00006h ; 83 c4 06 3990 4141 xor si, si ; 31 f6 3991 jmp short 03 187h ; eb 054142 jmp short 032a9h ; eb 05 3992 4143 cmp si, strict byte 00007h ; 83 fe 07 3993 jnl short 03 19fh ; 7d 184144 jnl short 032c1h ; 7d 18 3994 4145 mov dx, 003f5h ; ba f5 03 3995 4146 in AL, DX ; ec … … 4000 4151 lea dx, [si+042h] ; 8d 54 42 4001 4152 mov ax, strict word 00040h ; b8 40 00 4002 call 0160eh ; e8 72 e44153 call 0160eh ; e8 50 e3 4003 4154 inc si ; 46 4004 jmp short 03 182h ; eb e34155 jmp short 032a4h ; eb e3 4005 4156 test byte [bp-016h], 0c0h ; f6 46 ea c0 4006 je short 031b6h ; 74 11 4007 mov ax, word [bp+016h] ; 8b 46 16 4008 xor ah, ah ; 30 e4 4009 or ah, 020h ; 80 cc 20 4010 mov word [bp+016h], ax ; 89 46 16 4011 mov ax, strict word 00020h ; b8 20 00 4012 jmp near 030c0h ; e9 0a ff 4013 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4014 sal ax, 009h ; c1 e0 09 4015 cwd ; 99 4016 db 02bh, 0c2h 4017 ; sub ax, dx ; 2b c2 4018 sar ax, 1 ; d1 f8 4019 mov si, word [bp+010h] ; 8b 76 10 4020 mov dx, word [bp+006h] ; 8b 56 06 4021 mov di, si ; 89 f7 4022 mov es, dx ; 8e c2 4023 mov cx, ax ; 89 c1 4024 push DS ; 1e 4025 mov ds, dx ; 8e da 4026 rep movsw ; f3 a5 4027 pop DS ; 1f 4157 je near 031b7h ; 0f 84 ee fe 4158 test byte [bp-015h], 002h ; f6 46 eb 02 4159 je short 032dbh ; 74 0c 4160 mov word [bp+016h], 00300h ; c7 46 16 00 03 4161 or byte [bp+01ch], 001h ; 80 4e 1c 01 4162 jmp near 02faeh ; e9 d3 fc 4163 mov word [bp+016h], 00100h ; c7 46 16 00 01 4164 jmp short 032d4h ; eb f2 4028 4165 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4029 4166 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4030 call 02baah ; e8 cb f9 4031 mov byte [bp+017h], 000h ; c6 46 17 00 4032 and byte [bp+01ch], 0feh ; 80 66 1c fe 4033 jmp near 02fcch ; e9 e2 fd 4034 cmp cl, 003h ; 80 f9 03 4035 jne near 032ffh ; 0f 85 0e 01 4036 mov dx, word [bp+006h] ; 8b 56 06 4037 shr dx, 00ch ; c1 ea 0c 4038 mov ah, dl ; 88 d4 4039 mov cx, word [bp+006h] ; 8b 4e 06 4040 sal cx, 004h ; c1 e1 04 4041 mov bx, word [bp+010h] ; 8b 5e 10 4042 add bx, cx ; 01 cb 4043 cmp bx, cx ; 39 cb 4044 jnc short 0320ah ; 73 02 4045 db 0feh, 0c4h 4046 ; inc ah ; fe c4 4047 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 4048 sal cx, 009h ; c1 e1 09 4049 dec cx ; 49 4050 mov dx, bx ; 89 da 4051 add dx, cx ; 01 ca 4052 cmp dx, bx ; 39 da 4053 jc near 030b2h ; 0f 82 96 fe 4054 mov AL, strict byte 006h ; b0 06 4055 mov dx, strict word 0000ah ; ba 0a 00 4056 out DX, AL ; ee 4057 xor al, al ; 30 c0 4058 mov dx, strict word 0000ch ; ba 0c 00 4059 out DX, AL ; ee 4060 mov al, bl ; 88 d8 4061 mov dx, strict word 00004h ; ba 04 00 4062 out DX, AL ; ee 4063 shr bx, 008h ; c1 eb 08 4064 mov al, bl ; 88 d8 4065 out DX, AL ; ee 4066 xor al, bl ; 30 d8 4067 mov dx, strict word 0000ch ; ba 0c 00 4068 out DX, AL ; ee 4069 mov al, cl ; 88 c8 4070 mov dx, strict word 00005h ; ba 05 00 4071 out DX, AL ; ee 4072 shr cx, 008h ; c1 e9 08 4073 mov al, cl ; 88 c8 4074 out DX, AL ; ee 4075 mov AL, strict byte 04ah ; b0 4a 4076 mov dx, strict word 0000bh ; ba 0b 00 4077 out DX, AL ; ee 4078 mov al, ah ; 88 e0 4079 mov dx, 00081h ; ba 81 00 4080 out DX, AL ; ee 4081 mov AL, strict byte 002h ; b0 02 4082 mov dx, strict word 0000ah ; ba 0a 00 4083 out DX, AL ; ee 4084 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4085 call 02c69h ; e8 0a fa 4086 mov AL, strict byte 0c5h ; b0 c5 4087 mov dx, 003f5h ; ba f5 03 4088 out DX, AL ; ee 4089 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4090 sal dx, 002h ; c1 e2 02 4091 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4092 or ax, dx ; 09 d0 4093 mov dx, 003f5h ; ba f5 03 4094 out DX, AL ; ee 4095 mov al, byte [bp-008h] ; 8a 46 f8 4096 out DX, AL ; ee 4097 mov al, byte [bp-006h] ; 8a 46 fa 4098 out DX, AL ; ee 4099 mov al, byte [bp-00ah] ; 8a 46 f6 4100 out DX, AL ; ee 4101 mov AL, strict byte 002h ; b0 02 4102 out DX, AL ; ee 4103 movzx dx, byte [bp-00ah] ; 0f b6 56 f6 4104 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4105 add ax, dx ; 01 d0 4106 dec ax ; 48 4107 mov dx, 003f5h ; ba f5 03 4108 out DX, AL ; ee 4109 xor al, al ; 30 c0 4110 out DX, AL ; ee 4111 mov AL, strict byte 0ffh ; b0 ff 4112 out DX, AL ; ee 4113 call 02bf8h ; e8 5b f9 4114 test al, al ; 84 c0 4115 je near 03150h ; 0f 84 ad fe 4116 mov dx, 003f4h ; ba f4 03 4117 in AL, DX ; ec 4118 db 02ah, 0e4h 4119 ; sub ah, ah ; 2a e4 4120 and AL, strict byte 0c0h ; 24 c0 4121 cmp AL, strict byte 0c0h ; 3c c0 4122 je short 032bdh ; 74 0e 4123 push 001e5h ; 68 e5 01 4124 push 00218h ; 68 18 02 4125 push strict byte 00007h ; 6a 07 4126 call 0190dh ; e8 53 e6 4127 add sp, strict byte 00006h ; 83 c4 06 4128 xor si, si ; 31 f6 4129 jmp short 032c6h ; eb 05 4130 cmp si, strict byte 00007h ; 83 fe 07 4131 jnl short 032deh ; 7d 18 4132 mov dx, 003f5h ; ba f5 03 4133 in AL, DX ; ec 4134 db 02ah, 0e4h 4135 ; sub ah, ah ; 2a e4 4136 mov byte [bp+si-016h], al ; 88 42 ea 4137 movzx bx, al ; 0f b6 d8 4138 lea dx, [si+042h] ; 8d 54 42 4139 mov ax, strict word 00040h ; b8 40 00 4140 call 0160eh ; e8 33 e3 4141 inc si ; 46 4142 jmp short 032c1h ; eb e3 4143 test byte [bp-016h], 0c0h ; f6 46 ea c0 4144 je near 031d4h ; 0f 84 ee fe 4145 test byte [bp-015h], 002h ; f6 46 eb 02 4146 je short 032f8h ; 74 0c 4147 mov word [bp+016h], 00300h ; c7 46 16 00 03 4148 or byte [bp+01ch], 001h ; 80 4e 1c 01 4149 jmp near 02fcch ; e9 d4 fc 4150 mov word [bp+016h], 00100h ; c7 46 16 00 01 4151 jmp short 032f1h ; eb f2 4152 movzx dx, byte [bp-008h] ; 0f b6 56 f8 4153 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4154 call 02baah ; e8 a0 f8 4167 call 02baah ; e8 bd f8 4155 4168 and byte [bp+01ch], 0feh ; 80 66 1c fe 4156 4169 mov byte [bp+017h], 000h ; c6 46 17 00 4157 jmp near 02f cch ; e9 b7fc4170 jmp near 02faeh ; e9 b6 fc 4158 4171 mov al, byte [bp+016h] ; 8a 46 16 4159 4172 mov byte [bp-00ch], al ; 88 46 f4 … … 4166 4179 mov byte [bp-00eh], bl ; 88 5e f2 4167 4180 cmp bl, 001h ; 80 fb 01 4168 jnbe short 033 49h ; 77 144181 jnbe short 0332ch ; 77 14 4169 4182 cmp AL, strict byte 001h ; 3c 01 4170 jnbe short 033 49h ; 77 104183 jnbe short 0332ch ; 77 10 4171 4184 cmp dl, 04fh ; 80 fa 4f 4172 jnbe short 033 49h ; 77 0b4185 jnbe short 0332ch ; 77 0b 4173 4186 mov al, byte [bp-00ch] ; 8a 46 f4 4174 4187 test al, al ; 84 c0 4175 je short 033 49h ; 74 044188 je short 0332ch ; 74 04 4176 4189 cmp AL, strict byte 012h ; 3c 12 4177 jbe short 033 5eh ; 76 154190 jbe short 03341h ; 76 15 4178 4191 mov ax, word [bp+016h] ; 8b 46 16 4179 4192 xor ah, ah ; 30 e4 … … 4181 4194 mov word [bp+016h], ax ; 89 46 16 4182 4195 mov ax, strict word 00001h ; b8 01 00 4183 call 02b92h ; e8 38f84196 call 02b92h ; e8 55 f8 4184 4197 or byte [bp+01ch], 001h ; 80 4e 1c 01 4185 4198 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4186 call 02e cah ; e8 65fb4199 call 02ea5h ; e8 5d fb 4187 4200 test ax, ax ; 85 c0 4188 je near 02f 9ah ; 0f 84 2ffc4201 je near 02f7ch ; 0f 84 2e fc 4189 4202 movzx dx, byte [bp-00eh] ; 0f b6 56 f2 4190 4203 mov ax, dx ; 89 d0 4191 call 02ceah ; e8 76f94204 call 02ceah ; e8 93 f9 4192 4205 test ax, ax ; 85 c0 4193 jne short 033 83h ; 75 0b4206 jne short 03366h ; 75 0b 4194 4207 mov ax, dx ; 89 d0 4195 call 02db5h ; e8 38fa4208 call 02db5h ; e8 55 fa 4196 4209 test ax, ax ; 85 c0 4197 je near 030 72h ; 0f 84 ef fc4210 je near 03055h ; 0f 84 ef fc 4198 4211 mov dx, word [bp+006h] ; 8b 56 06 4199 4212 shr dx, 00ch ; c1 ea 0c … … 4204 4217 add bx, cx ; 01 cb 4205 4218 cmp bx, cx ; 39 cb 4206 jnc short 033 9ch ; 73 024219 jnc short 0337fh ; 73 02 4207 4220 db 0feh, 0c4h 4208 4221 ; inc ah ; fe c4 … … 4213 4226 add dx, cx ; 01 ca 4214 4227 cmp dx, bx ; 39 da 4215 jc near 030 b2h ; 0f 82 04 fd4228 jc near 03095h ; 0f 82 04 fd 4216 4229 mov AL, strict byte 006h ; b0 06 4217 4230 mov dx, strict word 0000ah ; ba 0a 00 … … 4245 4258 out DX, AL ; ee 4246 4259 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4247 call 02c69h ; e8 78f84260 call 02c69h ; e8 95 f8 4248 4261 mov AL, strict byte 04dh ; b0 4d 4249 4262 mov dx, 003f5h ; ba f5 03 4250 4263 out DX, AL ; ee 4251 movzx ax, byte [bp-006h] ; 0f b6 46 fa4252 sal ax, 002h ; c1 e0024253 movzx dx, byte [bp-00eh] ; 0f b6 56 f24264 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4265 sal dx, 002h ; c1 e2 02 4266 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4254 4267 or ax, dx ; 09 d0 4255 4268 mov dx, 003f5h ; ba f5 03 … … 4263 4276 mov AL, strict byte 0f6h ; b0 f6 4264 4277 out DX, AL ; ee 4265 call 02bf8h ; e8 e0f74278 call 02bf8h ; e8 fd f7 4266 4279 test al, al ; 84 c0 4267 jne short 034 22h ; 75 064268 call 02c3eh ; e8 1ff84269 jmp near 02f 9ah ; e9 78fb4280 jne short 03405h ; 75 06 4281 call 02c3eh ; e8 3c f8 4282 jmp near 02f7ch ; e9 77 fb 4270 4283 mov dx, 003f4h ; ba f4 03 4271 4284 in AL, DX ; ec … … 4274 4287 and AL, strict byte 0c0h ; 24 c0 4275 4288 cmp AL, strict byte 0c0h ; 3c c0 4276 je short 034 3ch ; 74 0e4277 push 00 1e5h ; 68 e5 014278 push 002 18h ; 68 18 024289 je short 0341fh ; 74 0e 4290 push 00255h ; 68 55 02 4291 push 00288h ; 68 88 02 4279 4292 push strict byte 00007h ; 6a 07 4280 call 0190dh ; e8 d4e44293 call 0190dh ; e8 f1 e4 4281 4294 add sp, strict byte 00006h ; 83 c4 06 4282 4295 xor si, si ; 31 f6 4283 jmp short 034 45h ; eb 054296 jmp short 03428h ; eb 05 4284 4297 cmp si, strict byte 00007h ; 83 fe 07 4285 jnl short 034 5dh ; 7d 184298 jnl short 03440h ; 7d 18 4286 4299 mov dx, 003f5h ; ba f5 03 4287 4300 in AL, DX ; ec … … 4292 4305 lea dx, [si+042h] ; 8d 54 42 4293 4306 mov ax, strict word 00040h ; b8 40 00 4294 call 0160eh ; e8 b4e14307 call 0160eh ; e8 d1 e1 4295 4308 inc si ; 46 4296 jmp short 034 40h ; eb e34309 jmp short 03423h ; eb e3 4297 4310 test byte [bp-016h], 0c0h ; f6 46 ea c0 4298 je short 034 79h ; 74 164311 je short 0345ch ; 74 16 4299 4312 test byte [bp-015h], 002h ; f6 46 eb 02 4300 jne near 032 ech ; 0f 85 81 fe4301 push 00 1e5h ; 68 e5 014302 push 002 2ch ; 68 2c 024313 jne near 032cfh ; 0f 85 81 fe 4314 push 00255h ; 68 55 02 4315 push 0029ch ; 68 9c 02 4303 4316 push strict byte 00007h ; 6a 07 4304 call 0190dh ; e8 97e44317 call 0190dh ; e8 b4 e4 4305 4318 add sp, strict byte 00006h ; 83 c4 06 4306 4319 xor al, al ; 30 c0 4307 4320 mov byte [bp+017h], al ; 88 46 17 4308 4321 xor ah, ah ; 30 e4 4309 call 02b92h ; e8 0ff74322 call 02b92h ; e8 2c f7 4310 4323 movzx ax, byte [bp-00eh] ; 0f b6 46 f2 4311 4324 xor dx, dx ; 31 d2 4312 call 02baah ; e8 1e f7 4313 jmp near 031e3h ; e9 54 fd 4314 mov byte [bp-00eh], al ; 88 46 f2 4315 cmp AL, strict byte 001h ; 3c 01 4316 jbe short 034bch ; 76 26 4317 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4318 mov word [bp+010h], strict word 00000h ; c7 46 10 00 00 4319 mov dword [bp+012h], strict dword 000000000h ; 66 c7 46 12 00 00 00 00 4320 mov dword [bp+006h], strict dword 000000000h ; 66 c7 46 06 00 00 00 00 4321 movzx ax, ah ; 0f b6 c4 4325 call 02baah ; e8 3b f7 4326 jmp near 031c6h ; e9 54 fd 4327 mov byte [bp-00eh], ah ; 88 66 f2 4328 cmp ah, 001h ; 80 fc 01 4329 jbe short 0349ah ; 76 20 4330 xor ax, ax ; 31 c0 4331 mov word [bp+016h], ax ; 89 46 16 4332 mov word [bp+010h], ax ; 89 46 10 4333 mov word [bp+014h], ax ; 89 46 14 4334 mov word [bp+012h], ax ; 89 46 12 4335 mov word [bp+006h], ax ; 89 46 06 4336 mov word [bp+008h], ax ; 89 46 08 4337 movzx ax, cl ; 0f b6 c1 4322 4338 mov word [bp+012h], ax ; 89 46 12 4323 4339 mov word [bp+01ch], dx ; 89 56 1c 4324 jmp near 02f cch ; e9 10fb4340 jmp near 02faeh ; e9 14 fb 4325 4341 mov ax, strict word 00010h ; b8 10 00 4326 call 0165ch ; e8 9a e1 4327 xor ah, ah ; 30 e4 4342 call 0165ch ; e8 bc e1 4343 mov dl, al ; 88 c2 4344 xor cl, cl ; 30 c9 4328 4345 test AL, strict byte 0f0h ; a8 f0 4329 je short 034 cah ; 74 024330 mov AH, strict byte 001h ; b4014331 test AL, strict byte 00fh ; a80f4332 je short 034 d0h ; 74 024333 db 0feh, 0c 4h4334 ; inc ah ; fe c44346 je short 034aah ; 74 02 4347 mov CL, strict byte 001h ; b1 01 4348 test dl, 00fh ; f6 c2 0f 4349 je short 034b1h ; 74 02 4350 db 0feh, 0c1h 4351 ; inc cl ; fe c1 4335 4352 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4336 jne short 034 dbh ; 75 054337 shr al, 004h ; c0 e8044338 jmp short 034 ddh ; eb 024339 and AL, strict byte 00fh ; 240f4353 jne short 034bch ; 75 05 4354 shr dl, 004h ; c0 ea 04 4355 jmp short 034bfh ; eb 03 4356 and dl, 00fh ; 80 e2 0f 4340 4357 mov byte [bp+011h], 000h ; c6 46 11 00 4341 movzx dx, al ; 0f b6 d04342 mov word [bp+010h], dx ; 89 56 104358 movzx ax, dl ; 0f b6 c2 4359 mov word [bp+010h], ax ; 89 46 10 4343 4360 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4344 4361 mov bx, word [bp+012h] ; 8b 5e 12 4345 4362 xor bl, bl ; 30 db 4346 movzx dx, ah ; 0f b6 d44347 or bx, dx ; 09 d34363 movzx ax, cl ; 0f b6 c1 4364 or bx, ax ; 09 c3 4348 4365 mov word [bp+012h], bx ; 89 5e 12 4349 mov dx, bx ; 89 da 4350 xor dh, bh ; 30 fe 4351 or dh, 001h ; 80 ce 01 4352 mov word [bp+012h], dx ; 89 56 12 4353 cmp AL, strict byte 005h ; 3c 05 4354 jc short 03528h ; 72 21 4355 jbe short 03563h ; 76 5a 4356 cmp AL, strict byte 008h ; 3c 08 4357 jc short 03520h ; 72 13 4358 jbe near 0357bh ; 0f 86 6a 00 4359 cmp AL, strict byte 00fh ; 3c 0f 4360 je near 03589h ; 0f 84 72 00 4361 cmp AL, strict byte 00eh ; 3c 0e 4362 je near 03582h ; 0f 84 65 00 4363 jmp near 03590h ; e9 70 00 4364 xor dh, dh ; 30 f6 4365 cmp AL, strict byte 007h ; 3c 07 4366 je short 03574h ; 74 4e 4367 jmp short 0356ah ; eb 42 4368 cmp AL, strict byte 002h ; 3c 02 4369 jc short 03534h ; 72 08 4370 jbe short 0354eh ; 76 20 4371 cmp AL, strict byte 004h ; 3c 04 4372 je short 0355ch ; 74 2a 4373 jmp short 03555h ; eb 21 4374 cmp AL, strict byte 001h ; 3c 01 4375 je short 03547h ; 74 0f 4376 test al, al ; 84 c0 4377 jne short 03590h ; 75 54 4366 mov ax, bx ; 89 d8 4367 xor ah, bh ; 30 fc 4368 or ah, 001h ; 80 cc 01 4369 mov word [bp+012h], ax ; 89 46 12 4370 cmp dl, 003h ; 80 fa 03 4371 jc short 034ffh ; 72 15 4372 jbe short 03526h ; 76 3a 4373 cmp dl, 005h ; 80 fa 05 4374 jc short 0352dh ; 72 3c 4375 jbe short 03534h ; 76 41 4376 cmp dl, 00fh ; 80 fa 0f 4377 je short 03542h ; 74 4a 4378 cmp dl, 00eh ; 80 fa 0e 4379 je short 0353bh ; 74 3e 4380 jmp short 03549h ; eb 4a 4381 cmp dl, 002h ; 80 fa 02 4382 je short 0351fh ; 74 1b 4383 cmp dl, 001h ; 80 fa 01 4384 je short 03518h ; 74 0f 4385 test dl, dl ; 84 d2 4386 jne short 03549h ; 75 3c 4378 4387 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4379 4388 mov byte [bp+013h], 000h ; c6 46 13 00 4380 jmp short 035 9eh ; eb 574389 jmp short 03557h ; eb 3f 4381 4390 mov word [bp+014h], 02709h ; c7 46 14 09 27 4382 jmp short 035 9eh ; eb 504391 jmp short 03557h ; eb 38 4383 4392 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4384 jmp short 035 9eh ; eb 494393 jmp short 03557h ; eb 31 4385 4394 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4386 jmp short 035 9eh ; eb 424395 jmp short 03557h ; eb 2a 4387 4396 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4388 jmp short 035 9eh ; eb 3b4397 jmp short 03557h ; eb 23 4389 4398 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4390 jmp short 0359eh ; eb 34 4391 mov word [bp+014h], 02708h ; c7 46 14 08 27 4392 mov word [bp+012h], dx ; 89 56 12 4393 jmp short 0359eh ; eb 2a 4394 mov word [bp+014h], 02709h ; c7 46 14 09 27 4395 jmp short 0356fh ; eb f4 4396 mov word [bp+014h], 02708h ; c7 46 14 08 27 4397 jmp short 0359eh ; eb 1c 4399 jmp short 03557h ; eb 1c 4398 4400 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4399 jmp short 035 9eh ; eb 154401 jmp short 03557h ; eb 15 4400 4402 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4401 jmp short 035 9eh ; eb 0e4402 push 00 1e5h ; 68 e5 014403 push 002 3dh ; 68 3d 024403 jmp short 03557h ; eb 0e 4404 push 00255h ; 68 55 02 4405 push 002adh ; 68 ad 02 4404 4406 push strict byte 00007h ; 6a 07 4405 call 0190dh ; e8 72e34407 call 0190dh ; e8 b9 e3 4406 4408 add sp, strict byte 00006h ; 83 c4 06 4407 4409 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4408 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 4409 jmp near 031e3h ; e9 38 fc 4410 mov byte [bp-00eh], al ; 88 46 f2 4411 cmp AL, strict byte 001h ; 3c 01 4412 jbe short 035b8h ; 76 06 4410 movzx ax, dl ; 0f b6 c2 4411 call 035f3h ; e8 91 00 4412 mov word [bp+008h], ax ; 89 46 08 4413 jmp near 031c6h ; e9 5e fc 4414 mov byte [bp-00eh], ah ; 88 66 f2 4415 cmp ah, 001h ; 80 fc 01 4416 jbe short 03576h ; 76 06 4413 4417 mov word [bp+016h], si ; 89 76 16 4414 jmp near 034 b6h ; e9 fe fe4418 jmp near 03494h ; e9 1e ff 4415 4419 mov ax, strict word 00010h ; b8 10 00 4416 call 0165ch ; e8 9ee04420 call 0165ch ; e8 e0 e0 4417 4421 cmp byte [bp-00eh], 000h ; 80 7e f2 00 4418 jne short 035c9h ; 75 05 4419 shr al, 004h ; c0 e8 04 4420 jmp short 035cbh ; eb 02 4421 and AL, strict byte 00fh ; 24 0f 4422 jne short 03589h ; 75 07 4423 mov dl, al ; 88 c2 4424 shr dl, 004h ; c0 ea 04 4425 jmp short 0358eh ; eb 05 4426 mov dl, al ; 88 c2 4427 and dl, 00fh ; 80 e2 0f 4422 4428 and byte [bp+01ch], 0feh ; 80 66 1c fe 4423 mov dx, word [bp+016h] ; 8b 56164424 xor dh, dh ; 30 f64425 test al, al ; 84 c04426 je short 035 e4h ; 74 0c4427 cmp AL, strict byte 001h ; 3c014428 jbe short 035 e1h ; 76 054429 or dh, 002h ; 80 ce024430 jmp short 035 e4h ; eb 034431 or dh, 001h ; 80 ce014432 mov word [bp+016h], dx ; 89 56164433 jmp near 02f cch ; e9 e2 f94434 cmp AL, strict byte 001h ; 3c 014435 jbe short 035 fah ; 76 0c4429 mov bx, word [bp+016h] ; 8b 5e 16 4430 xor bh, bh ; 30 ff 4431 test dl, dl ; 84 d2 4432 je short 035a8h ; 74 0d 4433 cmp dl, 001h ; 80 fa 01 4434 jbe short 035a5h ; 76 05 4435 or bh, 002h ; 80 cf 02 4436 jmp short 035a8h ; eb 03 4437 or bh, 001h ; 80 cf 01 4438 mov word [bp+016h], bx ; 89 5e 16 4439 jmp near 02faeh ; e9 00 fa 4440 cmp ah, 001h ; 80 fc 01 4441 jbe short 035bfh ; 76 0c 4436 4442 mov word [bp+016h], si ; 89 76 16 4437 4443 mov ax, strict word 00001h ; b8 01 00 4438 call 02b92h ; e8 9bf54439 jmp near 034 b6h ; e9 bcfe4444 call 02b92h ; e8 d6 f5 4445 jmp near 03494h ; e9 d5 fe 4440 4446 mov ax, word [bp+016h] ; 8b 46 16 4441 4447 xor ah, ah ; 30 e4 … … 4443 4449 mov word [bp+016h], ax ; 89 46 16 4444 4450 mov ax, strict word 00006h ; b8 06 00 4445 jmp near 02f 7dh ; e9 72f94446 mov bx, 00d 38h ; bb 38 0d4451 jmp near 02f5ah ; e9 8a f9 4452 mov bx, 00da8h ; bb a8 0d 4447 4453 mov cx, ds ; 8c d9 4448 4454 mov ax, strict word 00004h ; b8 04 00 4449 call 018cch ; e8 b6e24455 call 018cch ; e8 f1 e2 4450 4456 mov ax, word [bp+016h] ; 8b 46 16 4451 4457 shr ax, 008h ; c1 e8 08 4452 4458 push ax ; 50 4453 push 00 1e5h ; 68 e5 014454 push 002 52h ; 68 52 024459 push 00255h ; 68 55 02 4460 push 002c2h ; 68 c2 02 4455 4461 push strict byte 00004h ; 6a 04 4456 call 0190dh ; e8 e5 e24462 call 0190dh ; e8 20 e3 4457 4463 add sp, strict byte 00008h ; 83 c4 08 4458 jmp near 02f6fh ; e9 41 f9 4459 dummy_soft_reset_: ; 0xf362e LB 0x7 4464 jmp near 02f4ch ; e9 59 f9 4465 get_floppy_dpt_: ; 0xf35f3 LB 0x2f 4466 push bx ; 53 4467 push dx ; 52 4468 push bp ; 55 4469 mov bp, sp ; 89 e5 4470 mov dl, al ; 88 c2 4471 xor ax, ax ; 31 c0 4472 jmp short 03604h ; eb 06 4473 inc ax ; 40 4474 cmp ax, strict word 00007h ; 3d 07 00 4475 jnc short 0361bh ; 73 17 4476 mov bx, ax ; 89 c3 4477 add bx, ax ; 01 c3 4478 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 4479 jne short 035feh ; 75 f0 4480 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 4481 imul ax, ax, strict byte 0000dh ; 6b c0 0d 4482 add ax, strict word 00000h ; 05 00 00 4483 jmp short 0361eh ; eb 03 4484 mov ax, strict word 00041h ; b8 41 00 4485 pop bp ; 5d 4486 pop dx ; 5a 4487 pop bx ; 5b 4488 retn ; c3 4489 dummy_soft_reset_: ; 0xf3622 LB 0x7 4460 4490 push bp ; 55 4461 4491 mov bp, sp ; 89 e5 … … 4463 4493 pop bp ; 5d 4464 4494 retn ; c3 4465 _cdemu_init: ; 0xf36 35LB 0x184495 _cdemu_init: ; 0xf3629 LB 0x18 4466 4496 push bp ; 55 4467 4497 mov bp, sp ; 89 e5 4468 4498 mov dx, strict word 0000eh ; ba 0e 00 4469 4499 mov ax, strict word 00040h ; b8 40 00 4470 call 0161ch ; e8 dbdf4500 call 0161ch ; e8 e7 df 4471 4501 xor bx, bx ; 31 db 4472 4502 mov dx, 00322h ; ba 22 03 4473 call 0160eh ; e8 c5df4503 call 0160eh ; e8 d1 df 4474 4504 mov sp, bp ; 89 ec 4475 4505 pop bp ; 5d 4476 4506 retn ; c3 4477 _cdemu_isactive: ; 0xf364 dLB 0x164507 _cdemu_isactive: ; 0xf3641 LB 0x16 4478 4508 push bp ; 55 4479 4509 mov bp, sp ; 89 e5 4480 4510 mov dx, strict word 0000eh ; ba 0e 00 4481 4511 mov ax, strict word 00040h ; b8 40 00 4482 call 0161ch ; e8 c 3df4512 call 0161ch ; e8 cf df 4483 4513 mov dx, 00322h ; ba 22 03 4484 call 01600h ; e8 a 1df4514 call 01600h ; e8 ad df 4485 4515 mov sp, bp ; 89 ec 4486 4516 pop bp ; 5d 4487 4517 retn ; c3 4488 _cdemu_emulated_drive: ; 0xf36 63LB 0x164518 _cdemu_emulated_drive: ; 0xf3657 LB 0x16 4489 4519 push bp ; 55 4490 4520 mov bp, sp ; 89 e5 4491 4521 mov dx, strict word 0000eh ; ba 0e 00 4492 4522 mov ax, strict word 00040h ; b8 40 00 4493 call 0161ch ; e8 addf4523 call 0161ch ; e8 b9 df 4494 4524 mov dx, 00324h ; ba 24 03 4495 call 01600h ; e8 8bdf4525 call 01600h ; e8 97 df 4496 4526 mov sp, bp ; 89 ec 4497 4527 pop bp ; 5d 4498 4528 retn ; c3 4499 _int13_eltorito: ; 0xf36 79LB 0x1894529 _int13_eltorito: ; 0xf366d LB 0x189 4500 4530 push bp ; 55 4501 4531 mov bp, sp ; 89 e5 … … 4504 4534 mov dx, strict word 0000eh ; ba 0e 00 4505 4535 mov ax, strict word 00040h ; b8 40 00 4506 call 0161ch ; e8 95df4536 call 0161ch ; e8 a1 df 4507 4537 mov si, 00322h ; be 22 03 4508 4538 mov di, ax ; 89 c7 … … 4510 4540 shr ax, 008h ; c1 e8 08 4511 4541 cmp ax, strict word 0004bh ; 3d 4b 00 4512 jc short 036 a1h ; 72 0a4513 jbe short 036 c7h ; 76 2e4542 jc short 03695h ; 72 0a 4543 jbe short 036bbh ; 76 2e 4514 4544 cmp ax, strict word 0004dh ; 3d 4d 00 4515 jbe short 036 a8h ; 76 0a4516 jmp near 037 c6h ; e9 25 014545 jbe short 0369ch ; 76 0a 4546 jmp near 037bah ; e9 25 01 4517 4547 cmp ax, strict word 0004ah ; 3d 4a 00 4518 jne near 037 c6h ; 0f 85 1e 014519 mov bx, 00d 38h ; bb 38 0d4548 jne near 037bah ; 0f 85 1e 01 4549 mov bx, 00da8h ; bb a8 0d 4520 4550 mov cx, ds ; 8c d9 4521 4551 mov ax, strict word 00004h ; b8 04 00 4522 call 018cch ; e8 19e24552 call 018cch ; e8 25 e2 4523 4553 push word [bp+016h] ; ff 76 16 4524 push 002 6ch ; 68 6c 024525 push 002 7bh ; 68 7b 024554 push 002dch ; 68 dc 02 4555 push 002ebh ; 68 eb 02 4526 4556 push strict byte 00004h ; 6a 04 4527 call 0190dh ; e8 4ce24557 call 0190dh ; e8 58 e2 4528 4558 add sp, strict byte 00008h ; 83 c4 08 4529 jmp near 037 e1h ; e9 1a 014559 jmp near 037d5h ; e9 1a 01 4530 4560 mov dx, word [bp+00ah] ; 8b 56 0a 4531 4561 mov ax, word [bp+004h] ; 8b 46 04 4532 4562 mov bx, strict word 00013h ; bb 13 00 4533 call 0160eh ; e8 3bdf4563 call 0160eh ; e8 47 df 4534 4564 mov es, di ; 8e c7 4535 4565 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 4537 4567 inc dx ; 42 4538 4568 mov ax, word [bp+004h] ; 8b 46 04 4539 call 0160eh ; e8 2adf4569 call 0160eh ; e8 36 df 4540 4570 mov es, di ; 8e c7 4541 4571 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 4544 4574 inc dx ; 42 4545 4575 mov ax, word [bp+004h] ; 8b 46 04 4546 call 0160eh ; e8 18df4576 call 0160eh ; e8 24 df 4547 4577 mov es, di ; 8e c7 4548 4578 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 4550 4580 add dx, strict byte 00003h ; 83 c2 03 4551 4581 mov ax, word [bp+004h] ; 8b 46 04 4552 call 0160eh ; e8 05df4582 call 0160eh ; e8 11 df 4553 4583 mov es, di ; 8e c7 4554 4584 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 4557 4587 add dx, strict byte 00004h ; 83 c2 04 4558 4588 mov ax, word [bp+004h] ; 8b 46 04 4559 call 0164ah ; e8 2bdf4589 call 0164ah ; e8 37 df 4560 4590 mov es, di ; 8e c7 4561 4591 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 4563 4593 add dx, strict byte 00008h ; 83 c2 08 4564 4594 mov ax, word [bp+004h] ; 8b 46 04 4565 call 0162ah ; e8 f9 de4595 call 0162ah ; e8 05 df 4566 4596 mov es, di ; 8e c7 4567 4597 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 4569 4599 add dx, strict byte 0000ah ; 83 c2 0a 4570 4600 mov ax, word [bp+004h] ; 8b 46 04 4571 call 0162ah ; e8 e7de4601 call 0162ah ; e8 f3 de 4572 4602 mov es, di ; 8e c7 4573 4603 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 4575 4605 add dx, strict byte 0000ch ; 83 c2 0c 4576 4606 mov ax, word [bp+004h] ; 8b 46 04 4577 call 0162ah ; e8 d5de4607 call 0162ah ; e8 e1 de 4578 4608 mov es, di ; 8e c7 4579 4609 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 4581 4611 add dx, strict byte 0000eh ; 83 c2 0e 4582 4612 mov ax, word [bp+004h] ; 8b 46 04 4583 call 0162ah ; e8 c 3de4613 call 0162ah ; e8 cf de 4584 4614 mov es, di ; 8e c7 4585 4615 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 4587 4617 add dx, strict byte 00010h ; 83 c2 10 4588 4618 mov ax, word [bp+004h] ; 8b 46 04 4589 call 0160eh ; e8 94de4619 call 0160eh ; e8 a0 de 4590 4620 mov es, di ; 8e c7 4591 4621 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 4593 4623 add dx, strict byte 00011h ; 83 c2 11 4594 4624 mov ax, word [bp+004h] ; 8b 46 04 4595 call 0160eh ; e8 8 1de4625 call 0160eh ; e8 8d de 4596 4626 mov es, di ; 8e c7 4597 4627 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 4599 4629 add dx, strict byte 00012h ; 83 c2 12 4600 4630 mov ax, word [bp+004h] ; 8b 46 04 4601 call 0160eh ; e8 6ede4631 call 0160eh ; e8 7a de 4602 4632 test byte [bp+016h], 0ffh ; f6 46 16 ff 4603 jne short 037a ch ; 75 064633 jne short 037a0h ; 75 06 4604 4634 mov es, di ; 8e c7 4605 4635 mov byte [es:si], 000h ; 26 c6 04 00 … … 4608 4638 mov dx, strict word 00074h ; ba 74 00 4609 4639 mov ax, strict word 00040h ; b8 40 00 4610 call 0160eh ; e8 5 3de4640 call 0160eh ; e8 5f de 4611 4641 and byte [bp+01ch], 0feh ; 80 66 1c fe 4612 4642 lea sp, [bp-004h] ; 8d 66 fc … … 4615 4645 pop bp ; 5d 4616 4646 retn ; c3 4617 mov bx, 00d 38h ; bb 38 0d4647 mov bx, 00da8h ; bb a8 0d 4618 4648 mov cx, ds ; 8c d9 4619 4649 mov ax, strict word 00004h ; b8 04 00 4620 call 018cch ; e8 fb e04650 call 018cch ; e8 07 e1 4621 4651 mov ax, word [bp+016h] ; 8b 46 16 4622 4652 shr ax, 008h ; c1 e8 08 4623 4653 push ax ; 50 4624 push 002 6ch ; 68 6c 024625 push 00 2a3h ; 68 a3 024626 jmp near 036b ch ; e9 db fe4654 push 002dch ; 68 dc 02 4655 push 00313h ; 68 13 03 4656 jmp near 036b0h ; e9 db fe 4627 4657 mov ax, word [bp+016h] ; 8b 46 16 4628 4658 xor ah, ah ; 30 e4 … … 4634 4664 mov dx, strict word 00074h ; ba 74 00 4635 4665 mov ax, strict word 00040h ; b8 40 00 4636 call 0160eh ; e8 1 2de4666 call 0160eh ; e8 1e de 4637 4667 or byte [bp+01ch], 001h ; 80 4e 1c 01 4638 jmp short 037b fh ; eb bd4639 device_is_cdrom_: ; 0xf3 802LB 0x354668 jmp short 037b3h ; eb bd 4669 device_is_cdrom_: ; 0xf37f6 LB 0x35 4640 4670 push bp ; 55 4641 4671 mov bp, sp ; 89 e5 … … 4645 4675 mov dx, strict word 0000eh ; ba 0e 00 4646 4676 mov ax, strict word 00040h ; b8 40 00 4647 call 0161ch ; e8 0ade4677 call 0161ch ; e8 16 de 4648 4678 cmp bl, 010h ; 80 fb 10 4649 jc short 038 1bh ; 72 044679 jc short 0380fh ; 72 04 4650 4680 xor ax, ax ; 31 c0 4651 jmp short 038 30h ; eb 154681 jmp short 03824h ; eb 15 4652 4682 xor bh, bh ; 30 ff 4653 4683 imul bx, bx, strict byte 00018h ; 6b db 18 … … 4655 4685 add bx, 00122h ; 81 c3 22 01 4656 4686 cmp byte [es:bx+01fh], 005h ; 26 80 7f 1f 05 4657 jne short 038 17h ; 75 ea4687 jne short 0380bh ; 75 ea 4658 4688 mov ax, strict word 00001h ; b8 01 00 4659 4689 lea sp, [bp-004h] ; 8d 66 fc … … 4662 4692 pop bp ; 5d 4663 4693 retn ; c3 4664 cdrom_boot_: ; 0xf38 37LB 0x4164694 cdrom_boot_: ; 0xf382b LB 0x416 4665 4695 push bp ; 55 4666 4696 mov bp, sp ; 89 e5 … … 4673 4703 mov dx, strict word 0000eh ; ba 0e 00 4674 4704 mov ax, strict word 00040h ; b8 40 00 4675 call 0161ch ; e8 d 0dd4705 call 0161ch ; e8 dc dd 4676 4706 mov word [bp-018h], ax ; 89 46 e8 4677 4707 mov si, 00322h ; be 22 03 … … 4680 4710 mov word [bp-012h], ax ; 89 46 ee 4681 4711 mov byte [bp-00ch], 000h ; c6 46 f4 00 4682 jmp short 0386 ch ; eb 094712 jmp short 03860h ; eb 09 4683 4713 inc byte [bp-00ch] ; fe 46 f4 4684 4714 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4685 jnc short 038 77h ; 73 0b4715 jnc short 0386bh ; 73 0b 4686 4716 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4687 call 03 802h ; e8 8f ff4717 call 037f6h ; e8 8f ff 4688 4718 test ax, ax ; 85 c0 4689 je short 038 63h ; 74 ec4719 je short 03857h ; 74 ec 4690 4720 cmp byte [bp-00ch], 010h ; 80 7e f4 10 4691 jc short 038 83h ; 72 064721 jc short 03877h ; 72 06 4692 4722 mov ax, strict word 00002h ; b8 02 00 4693 jmp near 03b eah ; e9 67 034723 jmp near 03bdeh ; e9 67 03 4694 4724 mov cx, strict word 0000ch ; b9 0c 00 4695 4725 xor bx, bx ; 31 db 4696 4726 mov dx, ss ; 8c d2 4697 4727 lea ax, [bp-026h] ; 8d 46 da 4698 call 0924ah ; e8 ba594728 call 0924ah ; e8 c6 59 4699 4729 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 4700 4730 mov ax, strict word 00011h ; b8 11 00 … … 4712 4742 ; mov dword [es:bx+00ah], strict dword 008000001h ; 66 26 c7 47 0a 01 00 00 08 4713 4743 mov byte [bp-00eh], 000h ; c6 46 f2 00 4714 jmp short 038 c8h ; eb 094744 jmp short 038bch ; eb 09 4715 4745 inc byte [bp-00eh] ; fe 46 f2 4716 4746 cmp byte [bp-00eh], 004h ; 80 7e f2 04 4717 jnbe short 038f fh ; 77 374747 jnbe short 038f3h ; 77 37 4718 4748 movzx di, byte [bp-00ch] ; 0f b6 7e f4 4719 4749 imul di, di, strict byte 00018h ; 6b ff 18 … … 4733 4763 lea bx, [bp-026h] ; 8d 5e da 4734 4764 mov dx, strict word 0000ch ; ba 0c 00 4735 call word [word di+000 00h] ; ff 95 00004765 call word [word di+0006ah] ; ff 95 6a 00 4736 4766 test ax, ax ; 85 c0 4737 jne short 038b fh ; 75 c04767 jne short 038b3h ; 75 c0 4738 4768 test ax, ax ; 85 c0 4739 je short 03 909h ; 74 064769 je short 038fdh ; 74 06 4740 4770 mov ax, strict word 00003h ; b8 03 00 4741 jmp near 03b eah ; e9 e1 024771 jmp near 03bdeh ; e9 e1 02 4742 4772 cmp byte [bp-00826h], 000h ; 80 be da f7 00 4743 je short 039 16h ; 74 064773 je short 0390ah ; 74 06 4744 4774 mov ax, strict word 00004h ; b8 04 00 4745 jmp near 03b eah ; e9 d4 024775 jmp near 03bdeh ; e9 d4 02 4746 4776 xor di, di ; 31 ff 4747 jmp short 039 20h ; eb 064777 jmp short 03914h ; eb 06 4748 4778 inc di ; 47 4749 4779 cmp di, strict byte 00005h ; 83 ff 05 4750 jnc short 039 30h ; 73 104780 jnc short 03924h ; 73 10 4751 4781 mov al, byte [bp+di-00825h] ; 8a 83 db f7 4752 cmp al, byte [di+00d 40h] ; 3a 85 40 0d4753 je short 039 1ah ; 74 f04782 cmp al, byte [di+00db0h] ; 3a 85 b0 0d 4783 je short 0390eh ; 74 f0 4754 4784 mov ax, strict word 00005h ; b8 05 00 4755 jmp near 03b eah ; e9 ba 024785 jmp near 03bdeh ; e9 ba 02 4756 4786 xor di, di ; 31 ff 4757 jmp short 039 3ah ; eb 064787 jmp short 0392eh ; eb 06 4758 4788 inc di ; 47 4759 4789 cmp di, strict byte 00017h ; 83 ff 17 4760 jnc short 039 4ah ; 73 104790 jnc short 0393eh ; 73 10 4761 4791 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 4762 cmp al, byte [di+00d 46h] ; 3a 85 46 0d4763 je short 039 34h ; 74 f04792 cmp al, byte [di+00db6h] ; 3a 85 b6 0d 4793 je short 03928h ; 74 f0 4764 4794 mov ax, strict word 00006h ; b8 06 00 4765 jmp near 03b eah ; e9 a0 024795 jmp near 03bdeh ; e9 a0 02 4766 4796 mov ax, word [bp-007dfh] ; 8b 86 21 f8 4767 4797 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 4792 4822 lea bx, [bp-026h] ; 8d 5e da 4793 4823 mov dx, strict word 0000ch ; ba 0c 00 4794 call word [word di+000 00h] ; ff 95 00004824 call word [word di+0006ah] ; ff 95 6a 00 4795 4825 test ax, ax ; 85 c0 4796 je short 039 a7h ; 74 064826 je short 0399bh ; 74 06 4797 4827 mov ax, strict word 00007h ; b8 07 00 4798 jmp near 03b eah ; e9 43 024828 jmp near 03bdeh ; e9 43 02 4799 4829 cmp byte [bp-00826h], 001h ; 80 be da f7 01 4800 je short 039 b4h ; 74 064830 je short 039a8h ; 74 06 4801 4831 mov ax, strict word 00008h ; b8 08 00 4802 jmp near 03b eah ; e9 36 024832 jmp near 03bdeh ; e9 36 02 4803 4833 cmp byte [bp-00825h], 000h ; 80 be db f7 00 4804 je short 039 c1h ; 74 064834 je short 039b5h ; 74 06 4805 4835 mov ax, strict word 00009h ; b8 09 00 4806 jmp near 03b eah ; e9 29 024836 jmp near 03bdeh ; e9 29 02 4807 4837 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 4808 je short 039c eh ; 74 064838 je short 039c2h ; 74 06 4809 4839 mov ax, strict word 0000ah ; b8 0a 00 4810 jmp near 03b eah ; e9 1c 024840 jmp near 03bdeh ; e9 1c 02 4811 4841 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 4812 jne short 039 c8h ; 75 f34842 jne short 039bch ; 75 f3 4813 4843 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 4814 je short 039 e2h ; 74 064844 je short 039d6h ; 74 06 4815 4845 mov ax, strict word 0000bh ; b8 0b 00 4816 jmp near 03b eah ; e9 08 024846 jmp near 03bdeh ; e9 08 02 4817 4847 mov al, byte [bp-00805h] ; 8a 86 fb f7 4818 4848 mov es, [bp-010h] ; 8e 46 f0 4819 4849 mov byte [es:si+001h], al ; 26 88 44 01 4820 4850 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 4821 jne short 039 fbh ; 75 074851 jne short 039efh ; 75 07 4822 4852 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 4823 jmp short 03a0 eh ; eb 134853 jmp short 03a02h ; eb 13 4824 4854 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 4825 jnc short 03 a09h ; 73 074855 jnc short 039fdh ; 73 07 4826 4856 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 4827 jmp short 03a0 eh ; eb 054857 jmp short 03a02h ; eb 05 4828 4858 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 4829 4859 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 4843 4873 mov word [bp-016h], ax ; 89 46 ea 4844 4874 test ax, ax ; 85 c0 4845 jne short 03a3 ch ; 75 054875 jne short 03a30h ; 75 05 4846 4876 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 4847 4877 mov ax, word [bp-016h] ; 8b 46 ea … … 4852 4882 mov word [es:si+00eh], di ; 26 89 7c 0e 4853 4883 test di, di ; 85 ff 4854 je short 03a5 eh ; 74 064884 je short 03a52h ; 74 06 4855 4885 cmp di, 00400h ; 81 ff 00 04 4856 jbe short 03a 64h ; 76 064886 jbe short 03a58h ; 76 06 4857 4887 mov ax, strict word 0000ch ; b8 0c 00 4858 jmp near 03b eah ; e9 86 014888 jmp near 03bdeh ; e9 86 01 4859 4889 mov ax, word [bp-007feh] ; 8b 86 02 f8 4860 4890 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 4896 4926 sal ax, 1 ; d1 e0 4897 4927 rcl di, 1 ; d1 d7 4898 loop 03a d2h ; e2 fa4928 loop 03ac6h ; e2 fa 4899 4929 push di ; 57 4900 4930 push ax ; 50 … … 4905 4935 mov dx, strict word 0000ch ; ba 0c 00 4906 4936 mov di, word [bp-01ah] ; 8b 7e e6 4907 call word [word di+000 00h] ; ff 95 00004937 call word [word di+0006ah] ; ff 95 6a 00 4908 4938 les bx, [bp-014h] ; c4 5e ec 4909 4939 mov word [es:bx+01ch], strict word 00000h ; 26 c7 47 1c 00 00 4910 4940 test ax, ax ; 85 c0 4911 je short 03 b02h ; 74 064941 je short 03af6h ; 74 06 4912 4942 mov ax, strict word 0000dh ; b8 0d 00 4913 jmp near 03b eah ; e9 e8 004943 jmp near 03bdeh ; e9 e8 00 4914 4944 mov es, [bp-010h] ; 8e 46 f0 4915 4945 mov al, byte [es:si+001h] ; 26 8a 44 01 4916 4946 cmp AL, strict byte 002h ; 3c 02 4917 jc short 03b 1ah ; 72 0d4918 jbe short 03b 32h ; 76 234947 jc short 03b0eh ; 72 0d 4948 jbe short 03b26h ; 76 23 4919 4949 cmp AL, strict byte 004h ; 3c 04 4920 je short 03b 48h ; 74 354950 je short 03b3ch ; 74 35 4921 4951 cmp AL, strict byte 003h ; 3c 03 4922 je short 03b3 dh ; 74 264923 jmp near 03b 93h ; e9 79 004952 je short 03b31h ; 74 26 4953 jmp near 03b87h ; e9 79 00 4924 4954 cmp AL, strict byte 001h ; 3c 01 4925 jne short 03b 93h ; 75 754955 jne short 03b87h ; 75 75 4926 4956 mov es, [bp-010h] ; 8e 46 f0 4927 4957 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 4928 4958 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 4929 4959 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 4930 jmp short 03b 93h ; eb 614960 jmp short 03b87h ; eb 61 4931 4961 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 4932 4962 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 4933 jmp short 03b 2ah ; eb ed4963 jmp short 03b1eh ; eb ed 4934 4964 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 4935 4965 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 4936 jmp short 03b 2ah ; eb e24966 jmp short 03b1eh ; eb e2 4937 4967 mov dx, 001c4h ; ba c4 01 4938 4968 mov ax, word [bp-016h] ; 8b 46 ea 4939 call 01600h ; e8 afda4969 call 01600h ; e8 bb da 4940 4970 and AL, strict byte 03fh ; 24 3f 4941 4971 xor ah, ah ; 30 e4 … … 4944 4974 mov dx, 001c4h ; ba c4 01 4945 4975 mov ax, word [bp-016h] ; 8b 46 ea 4946 call 01600h ; e8 9bda4976 call 01600h ; e8 a7 da 4947 4977 movzx bx, al ; 0f b6 d8 4948 4978 sal bx, 002h ; c1 e3 02 4949 4979 mov dx, 001c5h ; ba c5 01 4950 4980 mov ax, word [bp-016h] ; 8b 46 ea 4951 call 01600h ; e8 8cda4981 call 01600h ; e8 98 da 4952 4982 xor ah, ah ; 30 e4 4953 4983 add ax, bx ; 01 d8 … … 4957 4987 mov dx, 001c3h ; ba c3 01 4958 4988 mov ax, word [bp-016h] ; 8b 46 ea 4959 call 01600h ; e8 77da4989 call 01600h ; e8 83 da 4960 4990 xor ah, ah ; 30 e4 4961 4991 inc ax ; 40 … … 4964 4994 mov es, [bp-010h] ; 8e 46 f0 4965 4995 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4966 je short 03b d1h ; 74 344996 je short 03bc5h ; 74 34 4967 4997 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 4968 jne short 03b bah ; 75 164998 jne short 03baeh ; 75 16 4969 4999 mov dx, strict word 00010h ; ba 10 00 4970 5000 mov ax, strict word 00040h ; b8 40 00 4971 call 01600h ; e8 5 3da5001 call 01600h ; e8 5f da 4972 5002 or AL, strict byte 041h ; 0c 41 4973 5003 movzx bx, al ; 0f b6 d8 4974 5004 mov dx, strict word 00010h ; ba 10 00 4975 5005 mov ax, strict word 00040h ; b8 40 00 4976 jmp short 03bc eh ; eb 145006 jmp short 03bc2h ; eb 14 4977 5007 mov dx, 002c0h ; ba c0 02 4978 5008 mov ax, word [bp-018h] ; 8b 46 e8 4979 call 01600h ; e8 3dda5009 call 01600h ; e8 49 da 4980 5010 db 0feh, 0c0h 4981 5011 ; inc al ; fe c0 … … 4983 5013 mov dx, 002c0h ; ba c0 02 4984 5014 mov ax, word [bp-018h] ; 8b 46 e8 4985 call 0160eh ; e8 3dda5015 call 0160eh ; e8 49 da 4986 5016 mov es, [bp-010h] ; 8e 46 f0 4987 5017 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 4988 je short 03bd fh ; 74 045018 je short 03bd3h ; 74 04 4989 5019 mov byte [es:si], 001h ; 26 c6 04 01 4990 5020 mov es, [bp-010h] ; 8e 46 f0 … … 5000 5030 retn ; c3 5001 5031 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5002 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 e5h, 03fh, 0f3h5003 db 03ch, 03 dh, 03dh, 065h, 03dh, 032h, 03dh, 065h, 03dh, 032h, 03dh, 03bh, 03fh, 018h, 03dh, 0e5h5004 db 03fh, 0 e5h, 03fh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 018h, 03dh, 0dch, 03fh, 018h5005 db 03dh, 0 e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h5006 db 03fh, 0 e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh, 0e5h, 03fh5007 _int13_cdemu: ; 0xf3c4 dLB 0x4345032 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0d9h, 03fh, 0e7h 5033 db 03ch, 031h, 03dh, 059h, 03dh, 026h, 03dh, 059h, 03dh, 026h, 03dh, 02fh, 03fh, 00ch, 03dh, 0d9h 5034 db 03fh, 0d9h, 03fh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 00ch, 03dh, 0d0h, 03fh, 00ch 5035 db 03dh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h 5036 db 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh, 0d9h, 03fh 5037 _int13_cdemu: ; 0xf3c41 LB 0x434 5008 5038 push bp ; 55 5009 5039 mov bp, sp ; 89 e5 … … 5013 5043 mov dx, strict word 0000eh ; ba 0e 00 5014 5044 mov ax, strict word 00040h ; b8 40 00 5015 call 0161ch ; e8 bed95045 call 0161ch ; e8 ca d9 5016 5046 mov di, 00322h ; bf 22 03 5017 5047 mov cx, ax ; 89 c1 … … 5029 5059 mov dx, strict word 00074h ; ba 74 00 5030 5060 mov ax, strict word 00040h ; b8 40 00 5031 call 0160eh ; e8 8 1d95061 call 0160eh ; e8 8d d9 5032 5062 mov es, cx ; 8e c1 5033 5063 cmp byte [es:di], 000h ; 26 80 3d 00 5034 je short 03c a3h ; 74 0e5064 je short 03c97h ; 74 0e 5035 5065 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5036 5066 mov ax, word [bp+012h] ; 8b 46 12 5037 5067 xor ah, ah ; 30 e4 5038 5068 cmp dx, ax ; 39 c2 5039 je short 03cc ch ; 74 295040 mov bx, 00d 38h ; bb 38 0d5069 je short 03cc0h ; 74 29 5070 mov bx, 00da8h ; bb a8 0d 5041 5071 mov cx, ds ; 8c d9 5042 5072 mov ax, strict word 00004h ; b8 04 00 5043 call 018cch ; e8 1edc5073 call 018cch ; e8 2a dc 5044 5074 mov ax, word [bp+012h] ; 8b 46 12 5045 5075 xor ah, ah ; 30 e4 … … 5048 5078 shr ax, 008h ; c1 e8 08 5049 5079 push ax ; 50 5050 push 00 2bch ; 68 bc 025051 push 00 2c8h ; 68 c8 025080 push 0032ch ; 68 2c 03 5081 push 00338h ; 68 38 03 5052 5082 push strict byte 00004h ; 6a 04 5053 call 0190dh ; e8 47dc5083 call 0190dh ; e8 53 dc 5054 5084 add sp, strict byte 0000ah ; 83 c4 0a 5055 jmp near 0 4005h ; e9 39 035085 jmp near 03ff9h ; e9 39 03 5056 5086 mov ax, word [bp+016h] ; 8b 46 16 5057 5087 shr ax, 008h ; c1 e8 08 5058 5088 cmp ax, strict word 00050h ; 3d 50 00 5059 jnbe near 03f e5h ; 0f 87 0c 035089 jnbe near 03fd9h ; 0f 87 0c 03 5060 5090 push CS ; 0e 5061 5091 pop ES ; 07 5062 5092 mov cx, strict word 0001eh ; b9 1e 00 5063 mov di, 03b f4h ; bf f43b5093 mov di, 03be8h ; bf e8 3b 5064 5094 repne scasb ; f2 ae 5065 5095 sal cx, 1 ; d1 e1 5066 5096 mov di, cx ; 89 cf 5067 mov ax, word [cs:di+03c 11h] ; 2e 8b 85 113c5097 mov ax, word [cs:di+03c05h] ; 2e 8b 85 05 3c 5068 5098 mov bx, word [bp+016h] ; 8b 5e 16 5069 5099 xor bh, bh ; 30 ff … … 5075 5105 movzx bx, byte [es:bx+01eh] ; 26 0f b6 5f 1e 5076 5106 add bx, bx ; 01 db 5077 cmp word [word bx+000 00h], strict byte 00000h ; 83 bf 0000 005078 je near 03d 18h ; 0f 84 08 005107 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5108 je near 03d0ch ; 0f 84 08 00 5079 5109 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5080 call word [word bx+000 0ch] ; ff 97 0c005110 call word [word bx+00076h] ; ff 97 76 00 5081 5111 mov byte [bp+017h], 000h ; c6 46 17 00 5082 5112 xor bx, bx ; 31 db 5083 5113 mov dx, strict word 00074h ; ba 74 00 5084 5114 mov ax, strict word 00040h ; b8 40 00 5085 call 0160eh ; e8 e7d85115 call 0160eh ; e8 f3 d8 5086 5116 and byte [bp+01ch], 0feh ; 80 66 1c fe 5087 5117 lea sp, [bp-004h] ; 8d 66 fc … … 5093 5123 xor ah, ah ; 30 e4 5094 5124 or ah, 003h ; 80 cc 03 5095 jmp near 0400 dh ; e9 d0 025125 jmp near 04001h ; e9 d0 02 5096 5126 mov dx, strict word 00074h ; ba 74 00 5097 5127 mov ax, strict word 00040h ; b8 40 00 5098 call 01600h ; e8 bad85128 call 01600h ; e8 c6 d8 5099 5129 mov cl, al ; 88 c1 5100 5130 movzx ax, cl ; 0f b6 c1 … … 5105 5135 mov dx, strict word 00074h ; ba 74 00 5106 5136 mov ax, strict word 00040h ; b8 40 00 5107 call 0160eh ; e8 b 0d85137 call 0160eh ; e8 bc d8 5108 5138 test cl, cl ; 84 c9 5109 je short 03d1 ch ; 74 ba5110 jmp near 040 21h ; e9 bc 025139 je short 03d10h ; 74 ba 5140 jmp near 04015h ; e9 bc 02 5111 5141 mov es, [bp-008h] ; 8e 46 f8 5112 5142 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5132 5162 mov word [bp-00ah], cx ; 89 4e f6 5133 5163 test cx, cx ; 85 c9 5134 jne short 03d b2h ; 75 035135 jmp near 03d 18h ; e9 66 ff5164 jne short 03da6h ; 75 03 5165 jmp near 03d0ch ; e9 66 ff 5136 5166 cmp di, word [bp-010h] ; 3b 7e f0 5137 jc near 0 4005h ; 0f 82 4c 025167 jc near 03ff9h ; 0f 82 4c 02 5138 5168 cmp ax, dx ; 39 d0 5139 jnc near 0 4005h ; 0f 83 46 025169 jnc near 03ff9h ; 0f 83 46 02 5140 5170 cmp si, bx ; 39 de 5141 jnc near 0 4005h ; 0f 83 40 025171 jnc near 03ff9h ; 0f 83 40 02 5142 5172 mov dx, word [bp+016h] ; 8b 56 16 5143 5173 shr dx, 008h ; c1 ea 08 5144 5174 cmp dx, strict byte 00004h ; 83 fa 04 5145 jne short 03d d3h ; 75 035146 jmp near 03d 18h ; e9 45 ff5175 jne short 03dc7h ; 75 03 5176 jmp near 03d0ch ; e9 45 ff 5147 5177 mov dx, word [bp+010h] ; 8b 56 10 5148 5178 shr dx, 004h ; c1 ea 04 … … 5155 5185 xor dl, dl ; 30 d2 5156 5186 xor cx, cx ; 31 c9 5157 call 09219h ; e8 28545187 call 09219h ; e8 34 54 5158 5188 xor bx, bx ; 31 db 5159 5189 add ax, si ; 01 f0 … … 5161 5191 mov bx, di ; 89 fb 5162 5192 xor cx, cx ; 31 c9 5163 call 09219h ; e8 1b545193 call 09219h ; e8 27 54 5164 5194 mov bx, ax ; 89 c3 5165 5195 mov ax, word [bp-010h] ; 8b 46 f0 … … 5196 5226 mov dx, ss ; 8c d2 5197 5227 lea ax, [bp-02eh] ; 8d 46 d2 5198 call 0924ah ; e8 f5 535228 call 0924ah ; e8 01 54 5199 5229 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5200 5230 mov ax, word [bp-014h] ; 8b 46 ec … … 5244 5274 sal si, 1 ; d1 e6 5245 5275 rcl di, 1 ; d1 d7 5246 loop 03e d5h ; e2 fa5276 loop 03ec9h ; e2 fa 5247 5277 push di ; 57 5248 5278 push si ; 56 … … 5253 5283 mov dx, strict word 0000ch ; ba 0c 00 5254 5284 mov si, word [bp-01ah] ; 8b 76 e6 5255 call word [word si+000 00h] ; ff 94 00005285 call word [word si+0006ah] ; ff 94 6a 00 5256 5286 mov dx, ax ; 89 c2 5257 5287 les bx, [bp-00eh] ; c4 5e f2 … … 5259 5289 ; mov dword [es:bx+01ah], strict dword 000000000h ; 66 26 c7 47 1a 00 00 00 00 5260 5290 test al, al ; 84 c0 5261 je near 03d 18h ; 0f 84 13 fe5262 mov bx, 00d 38h ; bb 38 0d5291 je near 03d0ch ; 0f 84 13 fe 5292 mov bx, 00da8h ; bb a8 0d 5263 5293 mov cx, ds ; 8c d9 5264 5294 mov ax, strict word 00004h ; b8 04 00 5265 call 018cch ; e8 bcd95295 call 018cch ; e8 c8 d9 5266 5296 movzx ax, dl ; 0f b6 c2 5267 5297 push ax ; 50 … … 5269 5299 shr ax, 008h ; c1 e8 08 5270 5300 push ax ; 50 5271 push 00 2bch ; 68 bc 025272 push 00 2feh ; 68 fe 025301 push 0032ch ; 68 2c 03 5302 push 0036eh ; 68 6e 03 5273 5303 push strict byte 00004h ; 6a 04 5274 call 0190dh ; e8 e7d95304 call 0190dh ; e8 f3 d9 5275 5305 add sp, strict byte 0000ah ; 83 c4 0a 5276 5306 mov ax, word [bp+016h] ; 8b 46 16 … … 5279 5309 mov word [bp+016h], ax ; 89 46 16 5280 5310 mov byte [bp+016h], 000h ; c6 46 16 00 5281 jmp near 040 10h ; e9 d5 005311 jmp near 04004h ; e9 d5 00 5282 5312 mov es, [bp-008h] ; 8e 46 f8 5283 5313 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5318 5348 mov word [bp+010h], ax ; 89 46 10 5319 5349 cmp dl, 003h ; 80 fa 03 5320 je short 03fb fh ; 74 1a5350 je short 03fb3h ; 74 1a 5321 5351 cmp dl, 002h ; 80 fa 02 5322 je short 03f bbh ; 74 115352 je short 03fafh ; 74 11 5323 5353 cmp dl, 001h ; 80 fa 01 5324 jne short 03f c3h ; 75 145354 jne short 03fb7h ; 75 14 5325 5355 mov ax, word [bp+010h] ; 8b 46 10 5326 5356 xor al, al ; 30 c0 5327 5357 or AL, strict byte 002h ; 0c 02 5328 5358 mov word [bp+010h], ax ; 89 46 10 5329 jmp short 03f c3h ; eb 085359 jmp short 03fb7h ; eb 08 5330 5360 or AL, strict byte 004h ; 0c 04 5331 jmp short 03f b6h ; eb f75361 jmp short 03faah ; eb f7 5332 5362 or AL, strict byte 005h ; 0c 05 5333 jmp short 03f b6h ; eb f35363 jmp short 03faah ; eb f3 5334 5364 mov es, [bp-008h] ; 8e 46 f8 5335 5365 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 5336 jnc near 03d 18h ; 0f 83 49 fd5366 jnc near 03d0ch ; 0f 83 49 fd 5337 5367 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 5338 5368 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5339 jmp near 03d 18h ; e9 3c fd5369 jmp near 03d0ch ; e9 3c fd 5340 5370 or bh, 003h ; 80 cf 03 5341 5371 mov word [bp+016h], bx ; 89 5e 16 5342 jmp near 03d1 ch ; e9 37 fd5343 mov bx, 00d 38h ; bb 38 0d5372 jmp near 03d10h ; e9 37 fd 5373 mov bx, 00da8h ; bb a8 0d 5344 5374 mov cx, ds ; 8c d9 5345 5375 mov ax, strict word 00004h ; b8 04 00 5346 call 018cch ; e8 dcd85376 call 018cch ; e8 e8 d8 5347 5377 mov ax, word [bp+016h] ; 8b 46 16 5348 5378 shr ax, 008h ; c1 e8 08 5349 5379 push ax ; 50 5350 push 00 2bch ; 68 bc 025351 push 003 1fh ; 68 1f 035380 push 0032ch ; 68 2c 03 5381 push 0038fh ; 68 8f 03 5352 5382 push strict byte 00004h ; 6a 04 5353 call 0190dh ; e8 0bd95383 call 0190dh ; e8 17 d9 5354 5384 add sp, strict byte 00008h ; 83 c4 08 5355 5385 mov ax, word [bp+016h] ; 8b 46 16 … … 5362 5392 mov dx, strict word 00074h ; ba 74 00 5363 5393 mov ax, strict word 00040h ; b8 40 00 5364 call 0160eh ; e8 edd55394 call 0160eh ; e8 f9 d5 5365 5395 or byte [bp+01ch], 001h ; 80 4e 1c 01 5366 jmp near 03d 2bh ; e9 03 fd5396 jmp near 03d1fh ; e9 03 fd 5367 5397 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5368 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 c6h, 045h, 042h5369 db 043h, 02 eh, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 023h, 041h, 0c6h, 045h, 042h, 043h, 0c6h5370 db 045h, 0 c6h, 045h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 042h, 043h, 058h, 041h, 042h5371 db 043h, 0 c6h, 045h, 061h, 041h, 074h, 041h, 023h, 041h, 074h, 041h, 0a2h, 042h, 05ch, 043h, 074h5372 db 041h, 0 83h, 043h, 07fh, 045h, 087h, 045h, 0c6h, 045h5373 _int13_cdrom: ; 0xf40 81LB 0x5625398 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0bah, 045h, 036h 5399 db 043h, 022h, 041h, 0bah, 045h, 017h, 041h, 0bah, 045h, 017h, 041h, 0bah, 045h, 036h, 043h, 0bah 5400 db 045h, 0bah, 045h, 036h, 043h, 036h, 043h, 036h, 043h, 036h, 043h, 036h, 043h, 04ch, 041h, 036h 5401 db 043h, 0bah, 045h, 055h, 041h, 068h, 041h, 017h, 041h, 068h, 041h, 096h, 042h, 050h, 043h, 068h 5402 db 041h, 077h, 043h, 073h, 045h, 07bh, 045h, 0bah, 045h 5403 _int13_cdrom: ; 0xf4075 LB 0x562 5374 5404 push bp ; 55 5375 5405 mov bp, sp ; 89 e5 … … 5379 5409 mov dx, strict word 0000eh ; ba 0e 00 5380 5410 mov ax, strict word 00040h ; b8 40 00 5381 call 0161ch ; e8 8ad55411 call 0161ch ; e8 96 d5 5382 5412 mov word [bp-01ah], ax ; 89 46 e6 5383 5413 mov si, 00122h ; be 22 01 … … 5386 5416 mov dx, strict word 00074h ; ba 74 00 5387 5417 mov ax, strict word 00040h ; b8 40 00 5388 call 0160eh ; e8 68d55418 call 0160eh ; e8 74 d5 5389 5419 mov ax, word [bp+010h] ; 8b 46 10 5390 5420 xor ah, ah ; 30 e4 5391 5421 cmp ax, 000e0h ; 3d e0 00 5392 jc short 040 b5h ; 72 055422 jc short 040a9h ; 72 05 5393 5423 cmp ax, 000f0h ; 3d f0 00 5394 jc short 040 d3h ; 72 1e5424 jc short 040c7h ; 72 1e 5395 5425 mov ax, word [bp+010h] ; 8b 46 10 5396 5426 xor ah, ah ; 30 e4 … … 5399 5429 shr ax, 008h ; c1 e8 08 5400 5430 push ax ; 50 5401 push 003 4fh ; 68 4f 035402 push 003 5bh ; 68 5b 035431 push 003bfh ; 68 bf 03 5432 push 003cbh ; 68 cb 03 5403 5433 push strict byte 00004h ; 6a 04 5404 call 0190dh ; e8 4 0d85434 call 0190dh ; e8 4c d8 5405 5435 add sp, strict byte 0000ah ; 83 c4 0a 5406 jmp near 045 a3h ; e9 d0 045436 jmp near 04597h ; e9 d0 04 5407 5437 mov ax, word [bp+010h] ; 8b 46 10 5408 5438 xor ah, ah ; 30 e4 … … 5413 5443 mov byte [bp-008h], dl ; 88 56 f8 5414 5444 cmp dl, 010h ; 80 fa 10 5415 jc short 040f ch ; 72 105445 jc short 040f0h ; 72 10 5416 5446 push ax ; 50 5417 5447 mov ax, word [bp+018h] ; 8b 46 18 5418 5448 shr ax, 008h ; c1 e8 08 5419 5449 push ax ; 50 5420 push 003 4fh ; 68 4f 035421 push 003 86h ; 68 86 035422 jmp short 040 c8h ; eb cc5450 push 003bfh ; 68 bf 03 5451 push 003f6h ; 68 f6 03 5452 jmp short 040bch ; eb cc 5423 5453 mov ax, word [bp+018h] ; 8b 46 18 5424 5454 shr ax, 008h ; c1 e8 08 5425 5455 cmp ax, strict word 00050h ; 3d 50 00 5426 jnbe near 045 c6h ; 0f 87 bd 045456 jnbe near 045bah ; 0f 87 bd 04 5427 5457 push CS ; 0e 5428 5458 pop ES ; 07 5429 5459 mov cx, strict word 0001eh ; b9 1e 00 5430 mov di, 040 28h ; bf 28405460 mov di, 0401ch ; bf 1c 40 5431 5461 repne scasb ; f2 ae 5432 5462 sal cx, 1 ; d1 e1 5433 5463 mov di, cx ; 89 cf 5434 mov ax, word [cs:di+040 45h] ; 2e 8b 85 45405464 mov ax, word [cs:di+04039h] ; 2e 8b 85 39 40 5435 5465 mov bx, word [bp+018h] ; 8b 5e 18 5436 5466 xor bh, bh ; 30 ff … … 5439 5469 xor ah, ah ; 30 e4 5440 5470 or ah, 003h ; 80 cc 03 5441 jmp near 045 abh ; e9 7d 045471 jmp near 0459fh ; e9 7d 04 5442 5472 mov dx, strict word 00074h ; ba 74 00 5443 5473 mov ax, strict word 00040h ; b8 40 00 5444 call 01600h ; e8 c9d45474 call 01600h ; e8 d5 d4 5445 5475 mov cl, al ; 88 c1 5446 5476 movzx ax, cl ; 0f b6 c1 … … 5451 5481 mov dx, strict word 00074h ; ba 74 00 5452 5482 mov ax, strict word 00040h ; b8 40 00 5453 call 0160eh ; e8 bfd45483 call 0160eh ; e8 cb d4 5454 5484 test cl, cl ; 84 c9 5455 je near 043 46h ; 0f 84 f1 015456 jmp near 045b fh ; e9 67 045485 je near 0433ah ; 0f 84 f1 01 5486 jmp near 045b3h ; e9 67 04 5457 5487 or bh, 002h ; 80 cf 02 5458 5488 mov word [bp+018h], bx ; 89 5e 18 5459 jmp near 045a eh ; e9 4d 045489 jmp near 045a2h ; e9 4d 04 5460 5490 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 5461 5491 or bh, 030h ; 80 cf 30 5462 5492 mov word [bp+018h], bx ; 89 5e 18 5463 5493 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 5464 jmp near 043 46h ; e9 d2 015494 jmp near 0433ah ; e9 d2 01 5465 5495 mov bx, word [bp+00ch] ; 8b 5e 0c 5466 5496 mov es, [bp+006h] ; 8e 46 06 … … 5477 5507 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 5478 5508 or di, ax ; 09 c7 5479 je short 041b ch ; 74 185509 je short 041b0h ; 74 18 5480 5510 mov ax, word [bp+018h] ; 8b 46 18 5481 5511 shr ax, 008h ; c1 e8 08 5482 5512 push ax ; 50 5483 push 003 4fh ; 68 4f 035484 push 00 3b8h ; 68 b8 035513 push 003bfh ; 68 bf 03 5514 push 00428h ; 68 28 04 5485 5515 push strict byte 00007h ; 6a 07 5486 call 0190dh ; e8 57d75516 call 0190dh ; e8 63 d7 5487 5517 add sp, strict byte 00008h ; 83 c4 08 5488 jmp near 045 a3h ; e9 e7 035518 jmp near 04597h ; e9 e7 03 5489 5519 les bx, [bp-014h] ; c4 5e ec 5490 5520 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 5496 5526 mov word [bp-016h], ax ; 89 46 ea 5497 5527 cmp ax, strict word 00044h ; 3d 44 00 5498 je near 043 42h ; 0f 84 66 015528 je near 04336h ; 0f 84 66 01 5499 5529 cmp ax, strict word 00047h ; 3d 47 00 5500 je near 043 42h ; 0f 84 5f 015530 je near 04336h ; 0f 84 5f 01 5501 5531 mov cx, strict word 0000ch ; b9 0c 00 5502 5532 xor bx, bx ; 31 db 5503 5533 mov dx, ss ; 8c d2 5504 5534 lea ax, [bp-02ch] ; 8d 46 d4 5505 call 0924ah ; e8 5a505535 call 0924ah ; e8 66 50 5506 5536 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 5507 5537 mov ax, word [bp-018h] ; 8b 46 e8 … … 5531 5561 sal ax, 1 ; d1 e0 5532 5562 rcl bx, 1 ; d1 d3 5533 loop 042 3ah ; e2 fa5563 loop 0422eh ; e2 fa 5534 5564 push bx ; 53 5535 5565 push ax ; 50 … … 5539 5569 lea bx, [bp-02ch] ; 8d 5e d4 5540 5570 mov dx, strict word 0000ch ; ba 0c 00 5541 call word [word di+000 00h] ; ff 95 00005571 call word [word di+0006ah] ; ff 95 6a 00 5542 5572 mov dx, ax ; 89 c2 5543 5573 mov es, [bp-00ch] ; 8e 46 f4 … … 5547 5577 shr di, 1 ; d1 ef 5548 5578 rcr ax, 1 ; d1 d8 5549 loop 042 64h ; e2 fa5579 loop 04258h ; e2 fa 5550 5580 les bx, [bp-014h] ; c4 5e ec 5551 5581 mov word [es:bx+002h], ax ; 26 89 47 02 5552 5582 test dl, dl ; 84 d2 5553 je near 043 42h ; 0f 84 cb 005554 mov bx, 00d 38h ; bb 38 0d5583 je near 04336h ; 0f 84 cb 00 5584 mov bx, 00da8h ; bb a8 0d 5555 5585 mov cx, ds ; 8c d9 5556 5586 mov ax, strict word 00004h ; b8 04 00 5557 call 018cch ; e8 4ad65587 call 018cch ; e8 56 d6 5558 5588 movzx ax, dl ; 0f b6 c2 5559 5589 push ax ; 50 5560 5590 push word [bp-016h] ; ff 76 ea 5561 push 003 4fh ; 68 4f 035562 push 00 3e1h ; 68 e1 035591 push 003bfh ; 68 bf 03 5592 push 00451h ; 68 51 04 5563 5593 push strict byte 00004h ; 6a 04 5564 call 0190dh ; e8 79d65594 call 0190dh ; e8 85 d6 5565 5595 add sp, strict byte 0000ah ; 83 c4 0a 5566 5596 mov ax, word [bp+018h] ; 8b 46 18 5567 5597 xor ah, ah ; 30 e4 5568 5598 or ah, 00ch ; 80 cc 0c 5569 jmp near 045 abh ; e9 09 035599 jmp near 0459fh ; e9 09 03 5570 5600 cmp bx, strict byte 00002h ; 83 fb 02 5571 jnbe near 045 a3h ; 0f 87 fa 025601 jnbe near 04597h ; 0f 87 fa 02 5572 5602 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5573 5603 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5577 5607 mov al, byte [es:di+021h] ; 26 8a 45 21 5578 5608 cmp bx, strict byte 00002h ; 83 fb 02 5579 je short 043 33h ; 74 735609 je short 04327h ; 74 73 5580 5610 cmp bx, strict byte 00001h ; 83 fb 01 5581 je short 04 300h ; 74 3b5611 je short 042f4h ; 74 3b 5582 5612 test bx, bx ; 85 db 5583 jne near 043 42h ; 0f 85 77 005613 jne near 04336h ; 0f 85 77 00 5584 5614 cmp AL, strict byte 0ffh ; 3c ff 5585 jne short 042 e1h ; 75 125615 jne short 042d5h ; 75 12 5586 5616 mov ax, word [bp+018h] ; 8b 46 18 5587 5617 xor ah, ah ; 30 e4 … … 5590 5620 xor al, al ; 30 c0 5591 5621 or AL, strict byte 001h ; 0c 01 5592 jmp near 045 abh ; e9 ca 025622 jmp near 0459fh ; e9 ca 02 5593 5623 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5594 5624 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5602 5632 or AL, strict byte 001h ; 0c 01 5603 5633 mov word [bp+018h], ax ; 89 46 18 5604 jmp near 043 42h ; e9 42 005634 jmp near 04336h ; e9 42 00 5605 5635 test al, al ; 84 c0 5606 jne short 043 10h ; 75 0c5636 jne short 04304h ; 75 0c 5607 5637 or bh, 0b0h ; 80 cf b0 5608 5638 mov word [bp+018h], bx ; 89 5e 18 5609 5639 mov byte [bp+018h], al ; 88 46 18 5610 jmp near 045a eh ; e9 9e 025640 jmp near 045a2h ; e9 9e 02 5611 5641 movzx dx, byte [bp-008h] ; 0f b6 56 f8 5612 5642 imul dx, dx, strict byte 00018h ; 6b d2 18 … … 5623 5653 xor al, al ; 30 c0 5624 5654 or ax, dx ; 09 d0 5625 jmp short 042 fah ; eb c75655 jmp short 042eeh ; eb c7 5626 5656 test al, al ; 84 c0 5627 5657 db 00fh, 095h, 0c0h … … 5635 5665 mov dx, strict word 00074h ; ba 74 00 5636 5666 mov ax, strict word 00040h ; b8 40 00 5637 call 0160eh ; e8 bdd25667 call 0160eh ; e8 c9 d2 5638 5668 and byte [bp+01eh], 0feh ; 80 66 1e fe 5639 5669 lea sp, [bp-004h] ; 8d 66 fc … … 5648 5678 mov al, byte [es:si+021h] ; 26 8a 44 21 5649 5679 test al, al ; 84 c0 5650 je short 043 76h ; 74 065680 je short 0436ah ; 74 06 5651 5681 or bh, 0b1h ; 80 cf b1 5652 jmp near 041 5bh ; e9 e5 fd5653 je short 043 42h ; 74 ca5682 jmp near 0414fh ; e9 e5 fd 5683 je short 04336h ; 74 ca 5654 5684 mov ax, word [bp+018h] ; 8b 46 18 5655 5685 xor ah, ah ; 30 e4 5656 5686 or ah, 0b1h ; 80 cc b1 5657 jmp near 045 abh ; e9 28 025687 jmp near 0459fh ; e9 28 02 5658 5688 mov dx, word [bp+00ch] ; 8b 56 0c 5659 5689 mov cx, word [bp+006h] ; 8b 4e 06 … … 5665 5695 mov word [bp-00eh], ax ; 89 46 f2 5666 5696 cmp ax, strict word 0001ah ; 3d 1a 00 5667 jc near 045 a3h ; 0f 82 04 025668 jc short 043 f0h ; 72 4f5697 jc near 04597h ; 0f 82 04 02 5698 jc short 043e4h ; 72 4f 5669 5699 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5670 5700 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 5689 5719 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 5690 5720 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 5691 jc near 044 c7h ; 0f 82 cf 005721 jc near 044bbh ; 0f 82 cf 00 5692 5722 mov es, [bp-00ah] ; 8e 46 f6 5693 5723 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 5741 5771 xor cl, cl ; 30 c9 5742 5772 xor ch, ch ; 30 ed 5743 jmp short 044 aah ; eb 055773 jmp short 0449eh ; eb 05 5744 5774 cmp ch, 00fh ; 80 fd 0f 5745 jnc short 044b dh ; 73 135775 jnc short 044b1h ; 73 13 5746 5776 movzx dx, ch ; 0f b6 d5 5747 5777 add dx, 00312h ; 81 c2 12 03 5748 5778 mov ax, word [bp-01ah] ; 8b 46 e6 5749 call 01600h ; e8 49d15779 call 01600h ; e8 55 d1 5750 5780 add cl, al ; 00 c1 5751 5781 db 0feh, 0c5h 5752 5782 ; inc ch ; fe c5 5753 jmp short 044 a5h ; eb e85783 jmp short 04499h ; eb e8 5754 5784 neg cl ; f6 d9 5755 5785 mov es, [bp-00ch] ; 8e 46 f4 5756 5786 mov byte [es:si+001ffh], cl ; 26 88 8c ff 01 5757 5787 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 5758 jc near 043 42h ; 0f 82 73 fe5788 jc near 04336h ; 0f 82 73 fe 5759 5789 movzx ax, byte [bp-008h] ; 0f b6 46 f8 5760 5790 cwd ; 99 … … 5774 5804 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 5775 5805 test al, al ; 84 c0 5776 jne short 045 10h ; 75 095806 jne short 04504h ; 75 09 5777 5807 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 5778 5808 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 5783 5813 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 5784 5814 test al, al ; 84 c0 5785 jne short 0453 ch ; 75 135815 jne short 04530h ; 75 13 5786 5816 mov word [es:bx+030h], dx ; 26 89 57 30 5787 5817 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 5798 5828 xor al, al ; 30 c0 5799 5829 mov AH, strict byte 01eh ; b4 1e 5800 jmp short 045 64h ; eb 055830 jmp short 04558h ; eb 05 5801 5831 cmp ah, 040h ; 80 fc 40 5802 jnc short 045 73h ; 73 0f5832 jnc short 04567h ; 73 0f 5803 5833 movzx si, ah ; 0f b6 f4 5804 5834 mov es, [bp-00ah] ; 8e 46 f6 … … 5807 5837 db 0feh, 0c4h 5808 5838 ; inc ah ; fe c4 5809 jmp short 0455 fh ; eb ec5839 jmp short 04553h ; eb ec 5810 5840 neg al ; f6 d8 5811 5841 mov es, [bp-00ah] ; 8e 46 f6 5812 5842 mov byte [es:bx+041h], al ; 26 88 47 41 5813 jmp near 043 42h ; e9 c3 fd5843 jmp near 04336h ; e9 c3 fd 5814 5844 or bh, 006h ; 80 cf 06 5815 5845 mov word [bp+018h], bx ; 89 5e 18 5816 jmp short 045b fh ; eb 385846 jmp short 045b3h ; eb 38 5817 5847 cmp bx, strict byte 00006h ; 83 fb 06 5818 je near 043 42h ; 0f 84 b4 fd5848 je near 04336h ; 0f 84 b4 fd 5819 5849 cmp bx, strict byte 00001h ; 83 fb 01 5820 jc short 045 a3h ; 72 105821 jbe near 043 42h ; 0f 86 ab fd5850 jc short 04597h ; 72 10 5851 jbe near 04336h ; 0f 86 ab fd 5822 5852 cmp bx, strict byte 00003h ; 83 fb 03 5823 jc short 045 a3h ; 72 075853 jc short 04597h ; 72 07 5824 5854 cmp bx, strict byte 00004h ; 83 fb 04 5825 jbe near 043 42h ; 0f 86 9f fd5855 jbe near 04336h ; 0f 86 9f fd 5826 5856 mov ax, word [bp+018h] ; 8b 46 18 5827 5857 xor ah, ah ; 30 e4 … … 5833 5863 mov dx, strict word 00074h ; ba 74 00 5834 5864 mov ax, strict word 00040h ; b8 40 00 5835 call 0160eh ; e8 4fd05865 call 0160eh ; e8 5b d0 5836 5866 or byte [bp+01eh], 001h ; 80 4e 1e 01 5837 jmp near 043 55h ; e9 8f fd5838 mov bx, 00d 38h ; bb 38 0d5867 jmp near 04349h ; e9 8f fd 5868 mov bx, 00da8h ; bb a8 0d 5839 5869 mov cx, ds ; 8c d9 5840 5870 mov ax, strict word 00004h ; b8 04 00 5841 call 018cch ; e8 fb d25871 call 018cch ; e8 07 d3 5842 5872 mov ax, word [bp+018h] ; 8b 46 18 5843 5873 shr ax, 008h ; c1 e8 08 5844 5874 push ax ; 50 5845 push 003 4fh ; 68 4f 035846 push 00 2a3h ; 68 a3 025875 push 003bfh ; 68 bf 03 5876 push 00313h ; 68 13 03 5847 5877 push strict byte 00004h ; 6a 04 5848 jmp near 041 b3h ; e9 d0 fb5849 print_boot_device_: ; 0xf45 e3LB 0x4b5878 jmp near 041a7h ; e9 d0 fb 5879 print_boot_device_: ; 0xf45d7 LB 0x4b 5850 5880 push bp ; 55 5851 5881 mov bp, sp ; 89 e5 5852 5882 push cx ; 51 5853 5883 test al, al ; 84 c0 5854 je short 045 f0h ; 74 055884 je short 045e4h ; 74 05 5855 5885 mov dx, strict word 00002h ; ba 02 00 5856 jmp short 04 60ah ; eb 1a5886 jmp short 045feh ; eb 1a 5857 5887 test dl, dl ; 84 d2 5858 je short 045 f9h ; 74 055888 je short 045edh ; 74 05 5859 5889 mov dx, strict word 00003h ; ba 03 00 5860 jmp short 04 60ah ; eb 115890 jmp short 045feh ; eb 11 5861 5891 test bl, 080h ; f6 c3 80 5862 jne short 04 602h ; 75 045892 jne short 045f6h ; 75 04 5863 5893 xor dh, dh ; 30 f6 5864 jmp short 04 60ah ; eb 085894 jmp short 045feh ; eb 08 5865 5895 test bl, 080h ; f6 c3 80 5866 je short 046 28h ; 74 215896 je short 0461ch ; 74 21 5867 5897 mov dx, strict word 00001h ; ba 01 00 5868 mov bx, 00d 38h ; bb 38 0d5898 mov bx, 00da8h ; bb a8 0d 5869 5899 mov cx, ds ; 8c d9 5870 5900 mov ax, strict word 00004h ; b8 04 00 5871 call 018cch ; e8 b7d25901 call 018cch ; e8 c3 d2 5872 5902 imul dx, dx, strict byte 0000ah ; 6b d2 0a 5873 add dx, 00d 5eh ; 81 c2 5e 0d5903 add dx, 00dceh ; 81 c2 ce 0d 5874 5904 push dx ; 52 5875 push 004 04h ; 68 04 045905 push 00474h ; 68 74 04 5876 5906 push strict byte 00004h ; 6a 04 5877 call 0190dh ; e8 e8d25907 call 0190dh ; e8 f4 d2 5878 5908 add sp, strict byte 00006h ; 83 c4 06 5879 5909 lea sp, [bp-002h] ; 8d 66 fe … … 5881 5911 pop bp ; 5d 5882 5912 retn ; c3 5883 print_boot_failure_: ; 0xf462 eLB 0x935913 print_boot_failure_: ; 0xf4622 LB 0x93 5884 5914 push bp ; 55 5885 5915 mov bp, sp ; 89 e5 … … 5890 5920 movzx si, ah ; 0f b6 f4 5891 5921 test al, al ; 84 c0 5892 je short 046 5bh ; 74 1b5893 mov bx, 00d 38h ; bb 38 0d5922 je short 0464fh ; 74 1b 5923 mov bx, 00da8h ; bb a8 0d 5894 5924 mov cx, ds ; 8c d9 5895 5925 mov ax, strict word 00004h ; b8 04 00 5896 call 018cch ; e8 8 1d25897 push 00d 72h ; 68 72 0d5898 push 004 18h ; 68 18 045926 call 018cch ; e8 8d d2 5927 push 00de2h ; 68 e2 0d 5928 push 00488h ; 68 88 04 5899 5929 push strict byte 00004h ; 6a 04 5900 call 0190dh ; e8 b7d25930 call 0190dh ; e8 c3 d2 5901 5931 add sp, strict byte 00006h ; 83 c4 06 5902 jmp short 0469 fh ; eb 445932 jmp short 04693h ; eb 44 5903 5933 test dl, dl ; 84 d2 5904 je short 0466 fh ; 74 105905 mov bx, 00d 38h ; bb 38 0d5934 je short 04663h ; 74 10 5935 mov bx, 00da8h ; bb a8 0d 5906 5936 mov cx, ds ; 8c d9 5907 5937 mov ax, strict word 00004h ; b8 04 00 5908 call 018cch ; e8 6 2d25909 push 00d 7ch ; 68 7c 0d5910 jmp short 0464 eh ; eb df5938 call 018cch ; e8 6e d2 5939 push 00dech ; 68 ec 0d 5940 jmp short 04642h ; eb df 5911 5941 test bl, 080h ; f6 c3 80 5912 je short 046 85h ; 74 115913 mov bx, 00d 38h ; bb 38 0d5942 je short 04679h ; 74 11 5943 mov bx, 00da8h ; bb a8 0d 5914 5944 mov cx, ds ; 8c d9 5915 5945 mov ax, strict word 00004h ; b8 04 00 5916 call 018cch ; e8 4dd25946 call 018cch ; e8 59 d2 5917 5947 push si ; 56 5918 push 00d 68h ; 68 68 0d5919 jmp short 046 94h ; eb 0f5920 mov bx, 00d 38h ; bb 38 0d5948 push 00dd8h ; 68 d8 0d 5949 jmp short 04688h ; eb 0f 5950 mov bx, 00da8h ; bb a8 0d 5921 5951 mov cx, ds ; 8c d9 5922 5952 mov ax, strict word 00004h ; b8 04 00 5923 call 018cch ; e8 3cd25953 call 018cch ; e8 48 d2 5924 5954 push si ; 56 5925 push 00d 5eh ; 68 5e 0d5926 push 004 2dh ; 68 2d 045955 push 00dceh ; 68 ce 0d 5956 push 0049dh ; 68 9d 04 5927 5957 push strict byte 00004h ; 6a 04 5928 call 0190dh ; e8 7 1d25958 call 0190dh ; e8 7d d2 5929 5959 add sp, strict byte 00008h ; 83 c4 08 5930 5960 cmp byte [bp+004h], 001h ; 80 7e 04 01 5931 jne short 046 b9h ; 75 145961 jne short 046adh ; 75 14 5932 5962 test dh, dh ; 84 f6 5933 jne short 046a eh ; 75 055934 push 004 45h ; 68 45 045935 jmp short 046 b1h ; eb 035936 push 004 6fh ; 68 6f 045963 jne short 046a2h ; 75 05 5964 push 004b5h ; 68 b5 04 5965 jmp short 046a5h ; eb 03 5966 push 004dfh ; 68 df 04 5937 5967 push strict byte 00007h ; 6a 07 5938 call 0190dh ; e8 57d25968 call 0190dh ; e8 63 d2 5939 5969 add sp, strict byte 00004h ; 83 c4 04 5940 5970 lea sp, [bp-002h] ; 8d 66 fe … … 5942 5972 pop bp ; 5d 5943 5973 retn 00002h ; c2 02 00 5944 print_cdromboot_failure_: ; 0xf46 c1LB 0x275974 print_cdromboot_failure_: ; 0xf46b5 LB 0x27 5945 5975 push bp ; 55 5946 5976 mov bp, sp ; 89 e5 … … 5949 5979 push dx ; 52 5950 5980 mov dx, ax ; 89 c2 5951 mov bx, 00d 38h ; bb 38 0d5981 mov bx, 00da8h ; bb a8 0d 5952 5982 mov cx, ds ; 8c d9 5953 5983 mov ax, strict word 00004h ; b8 04 00 5954 call 018cch ; e8 f8 d15984 call 018cch ; e8 04 d2 5955 5985 push dx ; 52 5956 push 00 4a4h ; 68 a4 045986 push 00514h ; 68 14 05 5957 5987 push strict byte 00004h ; 6a 04 5958 call 0190dh ; e8 3 0d25988 call 0190dh ; e8 3c d2 5959 5989 add sp, strict byte 00006h ; 83 c4 06 5960 5990 lea sp, [bp-006h] ; 8d 66 fa … … 5964 5994 pop bp ; 5d 5965 5995 retn ; c3 5966 _int19_function: ; 0xf46 e8LB 0x2565996 _int19_function: ; 0xf46dc LB 0x256 5967 5997 push bp ; 55 5968 5998 mov bp, sp ; 89 e5 … … 5972 6002 mov dx, strict word 0000eh ; ba 0e 00 5973 6003 mov ax, strict word 00040h ; b8 40 00 5974 call 0161ch ; e8 2 3cf6004 call 0161ch ; e8 2f cf 5975 6005 mov bx, ax ; 89 c3 5976 6006 mov word [bp-00eh], ax ; 89 46 f2 5977 6007 mov byte [bp-008h], 000h ; c6 46 f8 00 5978 6008 mov ax, strict word 0003dh ; b8 3d 00 5979 call 0165ch ; e8 54cf6009 call 0165ch ; e8 60 cf 5980 6010 movzx si, al ; 0f b6 f0 5981 6011 mov ax, strict word 00038h ; b8 38 00 5982 call 0165ch ; e8 4bcf6012 call 0165ch ; e8 57 cf 5983 6013 and AL, strict byte 0f0h ; 24 f0 5984 6014 xor ah, ah ; 30 e4 … … 5986 6016 or si, ax ; 09 c6 5987 6017 mov ax, strict word 0003ch ; b8 3c 00 5988 call 0165ch ; e8 3ccf6018 call 0165ch ; e8 48 cf 5989 6019 and AL, strict byte 00fh ; 24 0f 5990 6020 xor ah, ah ; 30 e4 … … 5993 6023 mov dx, 00339h ; ba 39 03 5994 6024 mov ax, bx ; 89 d8 5995 call 01600h ; e8 cfce6025 call 01600h ; e8 db ce 5996 6026 test al, al ; 84 c0 5997 je short 047 40h ; 74 0b6027 je short 04734h ; 74 0b 5998 6028 mov dx, 00339h ; ba 39 03 5999 6029 mov ax, bx ; 89 d8 6000 call 01600h ; e8 c 3ce6030 call 01600h ; e8 cf ce 6001 6031 movzx si, al ; 0f b6 f0 6002 6032 cmp byte [bp+004h], 001h ; 80 7e 04 01 6003 jne short 047 56h ; 75 106033 jne short 0474ah ; 75 10 6004 6034 mov ax, strict word 0003ch ; b8 3c 00 6005 call 0165ch ; e8 1 0cf6035 call 0165ch ; e8 1c cf 6006 6036 and AL, strict byte 0f0h ; 24 f0 6007 6037 xor ah, ah ; 30 e4 6008 6038 sar ax, 004h ; c1 f8 04 6009 call 07 40bh ; e8 b5 2c6039 call 073ffh ; e8 b5 2c 6010 6040 cmp byte [bp+004h], 002h ; 80 7e 04 02 6011 jne short 0475 fh ; 75 036041 jne short 04753h ; 75 03 6012 6042 shr si, 004h ; c1 ee 04 6013 6043 cmp byte [bp+004h], 003h ; 80 7e 04 03 6014 jne short 047 68h ; 75 036044 jne short 0475ch ; 75 03 6015 6045 shr si, 008h ; c1 ee 08 6016 6046 cmp byte [bp+004h], 004h ; 80 7e 04 04 6017 jne short 047 71h ; 75 036047 jne short 04765h ; 75 03 6018 6048 shr si, 00ch ; c1 ee 0c 6019 6049 cmp si, strict byte 00010h ; 83 fe 10 6020 jnc short 047 7ah ; 73 046050 jnc short 0476eh ; 73 04 6021 6051 mov byte [bp-008h], 001h ; c6 46 f8 01 6022 6052 xor al, al ; 30 c0 … … 6024 6054 mov byte [bp-00ah], al ; 88 46 f6 6025 6055 mov byte [bp-00ch], al ; 88 46 f4 6026 mov bx, 00d 38h ; bb 38 0d6056 mov bx, 00da8h ; bb a8 0d 6027 6057 mov cx, ds ; 8c d9 6028 6058 mov ax, strict word 00004h ; b8 04 00 6029 call 018cch ; e8 3cd16059 call 018cch ; e8 48 d1 6030 6060 push si ; 56 6031 6061 movzx ax, byte [bp+004h] ; 0f b6 46 04 6032 6062 push ax ; 50 6033 push 00 4c4h ; 68 c4 046063 push 00534h ; 68 34 05 6034 6064 push strict byte 00004h ; 6a 04 6035 call 0190dh ; e8 6fd16065 call 0190dh ; e8 7b d1 6036 6066 add sp, strict byte 00008h ; 83 c4 08 6037 6067 and si, strict byte 0000fh ; 83 e6 0f 6038 6068 cmp si, strict byte 00002h ; 83 fe 02 6039 jc short 047 b7h ; 72 0e6040 jbe short 047 c6h ; 76 1b6069 jc short 047abh ; 72 0e 6070 jbe short 047bah ; 76 1b 6041 6071 cmp si, strict byte 00004h ; 83 fe 04 6042 je short 047 e4h ; 74 346072 je short 047d8h ; 74 34 6043 6073 cmp si, strict byte 00003h ; 83 fe 03 6044 je short 047 dah ; 74 256045 jmp short 048 11h ; eb 5a6074 je short 047ceh ; 74 25 6075 jmp short 04805h ; eb 5a 6046 6076 cmp si, strict byte 00001h ; 83 fe 01 6047 jne short 048 11h ; 75 556077 jne short 04805h ; 75 55 6048 6078 xor al, al ; 30 c0 6049 6079 mov byte [bp-006h], al ; 88 46 fa 6050 6080 mov byte [bp-00ah], al ; 88 46 f6 6051 jmp short 048 29h ; eb 636081 jmp short 0481dh ; eb 63 6052 6082 mov dx, 00338h ; ba 38 03 6053 6083 mov ax, word [bp-00eh] ; 8b 46 f2 6054 call 01600h ; e8 3 1ce6084 call 01600h ; e8 3d ce 6055 6085 add AL, strict byte 080h ; 04 80 6056 6086 mov byte [bp-006h], al ; 88 46 fa 6057 6087 mov byte [bp-00ah], 000h ; c6 46 f6 00 6058 jmp short 048 29h ; eb 4f6088 jmp short 0481dh ; eb 4f 6059 6089 mov byte [bp-006h], 000h ; c6 46 fa 00 6060 6090 mov byte [bp-00ah], 001h ; c6 46 f6 01 6061 jmp short 047e eh ; eb 0a6091 jmp short 047e2h ; eb 0a 6062 6092 mov byte [bp-00ch], 001h ; c6 46 f4 01 6063 6093 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6064 je short 048 29h ; 74 3b6065 call 038 37h ; e8 46 f06094 je short 0481dh ; 74 3b 6095 call 0382bh ; e8 46 f0 6066 6096 mov bx, ax ; 89 c3 6067 6097 test AL, strict byte 0ffh ; a8 ff 6068 je short 048 18h ; 74 216069 call 046 c1h ; e8 c7 fe6098 je short 0480ch ; 74 21 6099 call 046b5h ; e8 c7 fe 6070 6100 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6071 6101 push ax ; 50 … … 6074 6104 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6075 6105 mov cx, strict word 00001h ; b9 01 00 6076 call 0462 eh ; e8 1d fe6106 call 04622h ; e8 1d fe 6077 6107 xor ax, ax ; 31 c0 6078 6108 xor dx, dx ; 31 d2 6079 jmp near 049 37h ; e9 1f 016109 jmp near 0492bh ; e9 1f 01 6080 6110 mov dx, 0032eh ; ba 2e 03 6081 6111 mov ax, word [bp-00eh] ; 8b 46 f2 6082 call 0161ch ; e8 fb cd6112 call 0161ch ; e8 07 ce 6083 6113 mov di, ax ; 89 c7 6084 6114 shr bx, 008h ; c1 eb 08 6085 6115 mov byte [bp-006h], bl ; 88 5e fa 6086 6116 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6087 jne near 048 a5h ; 0f 85 74 006117 jne near 04899h ; 0f 85 74 00 6088 6118 xor si, si ; 31 f6 6089 6119 mov ax, 0e200h ; b8 00 e2 6090 6120 mov es, ax ; 8e c0 6091 6121 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6092 jne short 047 fah ; 75 bb6122 jne short 047eeh ; 75 bb 6093 6123 mov cx, ax ; 89 c1 6094 6124 mov si, word [es:si+01ah] ; 26 8b 74 1a 6095 6125 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6096 jne short 047 fah ; 75 ad6126 jne short 047eeh ; 75 ad 6097 6127 cmp word [es:si], 05024h ; 26 81 3c 24 50 6098 jne short 047 fah ; 75 a66128 jne short 047eeh ; 75 a6 6099 6129 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6100 6130 mov dx, word [es:di] ; 26 8b 15 6101 6131 mov ax, word [es:di+002h] ; 26 8b 45 02 6102 6132 cmp ax, 06568h ; 3d 68 65 6103 jne short 048 83h ; 75 1f6133 jne short 04877h ; 75 1f 6104 6134 cmp dx, 07445h ; 81 fa 45 74 6105 jne short 048 83h ; 75 196135 jne short 04877h ; 75 19 6106 6136 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6107 6137 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6108 6138 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6109 call 045 e3h ; e8 6a fd6139 call 045d7h ; e8 6a fd 6110 6140 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6111 6141 mov word [bp-010h], cx ; 89 4e f0 6112 jmp short 0489 fh ; eb 1c6142 jmp short 04893h ; eb 1c 6113 6143 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6114 6144 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6115 6145 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6116 call 045 e3h ; e8 51 fd6146 call 045d7h ; e8 51 fd 6117 6147 sti ; fb 6118 6148 mov word [bp-010h], cx ; 89 4e f0 … … 6121 6151 mov word [bp-012h], ax ; 89 46 ee 6122 6152 call far [bp-012h] ; ff 5e ee 6123 jmp near 047 fah ; e9 55 ff6153 jmp near 047eeh ; e9 55 ff 6124 6154 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6125 jne short 048 d1h ; 75 266155 jne short 048c5h ; 75 26 6126 6156 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6127 jne short 048 d1h ; 75 206157 jne short 048c5h ; 75 20 6128 6158 mov di, 007c0h ; bf c0 07 6129 6159 mov es, di ; 8e c7 … … 6138 6168 sbb ax, strict byte 00000h ; 83 d8 00 6139 6169 test ax, ax ; 85 c0 6140 jne near 047 fah ; 0f 85 29 ff6170 jne near 047eeh ; 0f 85 29 ff 6141 6171 cmp byte [bp-006h], 000h ; 80 7e fa 00 6142 6172 db 00fh, 094h, 0c1h 6143 6173 ; sete cl ; 0f 94 c1 6144 6174 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6145 je short 048 e0h ; 74 026175 je short 048d4h ; 74 02 6146 6176 mov CL, strict byte 001h ; b1 01 6147 6177 xor dx, dx ; 31 d2 6148 6178 mov ax, di ; 89 f8 6149 call 0161ch ; e8 35cd6179 call 0161ch ; e8 41 cd 6150 6180 mov bx, ax ; 89 c3 6151 6181 mov dx, strict word 00002h ; ba 02 00 6152 6182 mov ax, di ; 89 f8 6153 call 0161ch ; e8 2bcd6183 call 0161ch ; e8 37 cd 6154 6184 cmp bx, ax ; 39 c3 6155 je short 04 906h ; 74 116185 je short 048fah ; 74 11 6156 6186 test cl, cl ; 84 c9 6157 jne short 0491 ch ; 75 236187 jne short 04910h ; 75 23 6158 6188 mov dx, 001feh ; ba fe 01 6159 6189 mov ax, di ; 89 f8 6160 call 0161ch ; e8 1bcd6190 call 0161ch ; e8 27 cd 6161 6191 cmp ax, 0aa55h ; 3d 55 aa 6162 je short 0491 ch ; 74 166192 je short 04910h ; 74 16 6163 6193 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6164 6194 push ax ; 50 … … 6167 6197 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6168 6198 xor cx, cx ; 31 c9 6169 jmp near 0480 eh ; e9 f2 fe6199 jmp near 04802h ; e9 f2 fe 6170 6200 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6171 6201 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6172 6202 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6173 call 045 e3h ; e8 b8 fc6203 call 045d7h ; e8 b8 fc 6174 6204 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6175 6205 xor dx, dx ; 31 d2 … … 6182 6212 pop bp ; 5d 6183 6213 retn ; c3 6184 keyboard_panic_: ; 0xf493 eLB 0x136214 keyboard_panic_: ; 0xf4932 LB 0x13 6185 6215 push bp ; 55 6186 6216 mov bp, sp ; 89 e5 6187 6217 push ax ; 50 6188 push 00 4e4h ; 68 e4 046218 push 00554h ; 68 54 05 6189 6219 push strict byte 00007h ; 6a 07 6190 call 0190dh ; e8 c 3cf6220 call 0190dh ; e8 cf cf 6191 6221 add sp, strict byte 00006h ; 83 c4 06 6192 6222 mov sp, bp ; 89 ec 6193 6223 pop bp ; 5d 6194 6224 retn ; c3 6195 _keyboard_init: ; 0xf49 51LB 0x27c6225 _keyboard_init: ; 0xf4945 LB 0x27c 6196 6226 push bp ; 55 6197 6227 mov bp, sp ; 89 e5 … … 6205 6235 ; sub ah, ah ; 2a e4 6206 6236 test AL, strict byte 002h ; a8 02 6207 je short 049 74h ; 74 0d6237 je short 04968h ; 74 0d 6208 6238 dec bx ; 4b 6209 6239 test bx, bx ; 85 db 6210 jbe short 049 74h ; 76 086240 jbe short 04968h ; 76 08 6211 6241 xor al, al ; 30 c0 6212 6242 mov dx, 00080h ; ba 80 00 6213 6243 out DX, AL ; ee 6214 jmp short 0495 dh ; eb e96244 jmp short 04951h ; eb e9 6215 6245 test bx, bx ; 85 db 6216 jne short 0497 dh ; 75 056246 jne short 04971h ; 75 05 6217 6247 xor ax, ax ; 31 c0 6218 call 0493 eh ; e8 c1 ff6248 call 04932h ; e8 c1 ff 6219 6249 mov bx, strict word 0ffffh ; bb ff ff 6220 6250 mov dx, strict word 00064h ; ba 64 00 … … 6223 6253 ; sub ah, ah ; 2a e4 6224 6254 test AL, strict byte 001h ; a8 01 6225 jne short 049 97h ; 75 0d6255 jne short 0498bh ; 75 0d 6226 6256 dec bx ; 4b 6227 6257 test bx, bx ; 85 db 6228 jbe short 049 97h ; 76 086258 jbe short 0498bh ; 76 08 6229 6259 mov AL, strict byte 001h ; b0 01 6230 6260 mov dx, 00080h ; ba 80 00 6231 6261 out DX, AL ; ee 6232 jmp short 049 80h ; eb e96262 jmp short 04974h ; eb e9 6233 6263 test bx, bx ; 85 db 6234 jne short 049 a1h ; 75 066264 jne short 04995h ; 75 06 6235 6265 mov ax, strict word 00001h ; b8 01 00 6236 call 0493 eh ; e8 9d ff6266 call 04932h ; e8 9d ff 6237 6267 mov dx, strict word 00060h ; ba 60 00 6238 6268 in AL, DX ; ec … … 6240 6270 ; sub ah, ah ; 2a e4 6241 6271 cmp ax, strict word 00055h ; 3d 55 00 6242 je short 049 b2h ; 74 066272 je short 049a6h ; 74 06 6243 6273 mov ax, 003dfh ; b8 df 03 6244 call 0493 eh ; e8 8c ff6274 call 04932h ; e8 8c ff 6245 6275 mov AL, strict byte 0abh ; b0 ab 6246 6276 mov dx, strict word 00064h ; ba 64 00 … … 6252 6282 ; sub ah, ah ; 2a e4 6253 6283 test AL, strict byte 002h ; a8 02 6254 je short 049 d2h ; 74 0d6284 je short 049c6h ; 74 0d 6255 6285 dec bx ; 4b 6256 6286 test bx, bx ; 85 db 6257 jbe short 049 d2h ; 76 086287 jbe short 049c6h ; 76 08 6258 6288 mov AL, strict byte 010h ; b0 10 6259 6289 mov dx, 00080h ; ba 80 00 6260 6290 out DX, AL ; ee 6261 jmp short 049 bbh ; eb e96291 jmp short 049afh ; eb e9 6262 6292 test bx, bx ; 85 db 6263 jne short 049d ch ; 75 066293 jne short 049d0h ; 75 06 6264 6294 mov ax, strict word 0000ah ; b8 0a 00 6265 call 0493 eh ; e8 62 ff6295 call 04932h ; e8 62 ff 6266 6296 mov bx, strict word 0ffffh ; bb ff ff 6267 6297 mov dx, strict word 00064h ; ba 64 00 … … 6270 6300 ; sub ah, ah ; 2a e4 6271 6301 test AL, strict byte 001h ; a8 01 6272 jne short 049 f6h ; 75 0d6302 jne short 049eah ; 75 0d 6273 6303 dec bx ; 4b 6274 6304 test bx, bx ; 85 db 6275 jbe short 049 f6h ; 76 086305 jbe short 049eah ; 76 08 6276 6306 mov AL, strict byte 011h ; b0 11 6277 6307 mov dx, 00080h ; ba 80 00 6278 6308 out DX, AL ; ee 6279 jmp short 049d fh ; eb e96309 jmp short 049d3h ; eb e9 6280 6310 test bx, bx ; 85 db 6281 jne short 04 a00h ; 75 066311 jne short 049f4h ; 75 06 6282 6312 mov ax, strict word 0000bh ; b8 0b 00 6283 call 0493 eh ; e8 3e ff6313 call 04932h ; e8 3e ff 6284 6314 mov dx, strict word 00060h ; ba 60 00 6285 6315 in AL, DX ; ec … … 6287 6317 ; sub ah, ah ; 2a e4 6288 6318 test ax, ax ; 85 c0 6289 je short 04a 10h ; 74 066319 je short 04a04h ; 74 06 6290 6320 mov ax, 003e0h ; b8 e0 03 6291 call 0493 eh ; e8 2e ff6321 call 04932h ; e8 2e ff 6292 6322 mov AL, strict byte 0ffh ; b0 ff 6293 6323 mov dx, strict word 00060h ; ba 60 00 … … 6299 6329 ; sub ah, ah ; 2a e4 6300 6330 test AL, strict byte 002h ; a8 02 6301 je short 04a 30h ; 74 0d6331 je short 04a24h ; 74 0d 6302 6332 dec bx ; 4b 6303 6333 test bx, bx ; 85 db 6304 jbe short 04a 30h ; 76 086334 jbe short 04a24h ; 76 08 6305 6335 mov AL, strict byte 020h ; b0 20 6306 6336 mov dx, 00080h ; ba 80 00 6307 6337 out DX, AL ; ee 6308 jmp short 04a 19h ; eb e96338 jmp short 04a0dh ; eb e9 6309 6339 test bx, bx ; 85 db 6310 jne short 04a 3ah ; 75 066340 jne short 04a2eh ; 75 06 6311 6341 mov ax, strict word 00014h ; b8 14 00 6312 call 0493 eh ; e8 04 ff6342 call 04932h ; e8 04 ff 6313 6343 mov bx, strict word 0ffffh ; bb ff ff 6314 6344 mov dx, strict word 00064h ; ba 64 00 … … 6317 6347 ; sub ah, ah ; 2a e4 6318 6348 test AL, strict byte 001h ; a8 01 6319 jne short 04a 54h ; 75 0d6349 jne short 04a48h ; 75 0d 6320 6350 dec bx ; 4b 6321 6351 test bx, bx ; 85 db 6322 jbe short 04a 54h ; 76 086352 jbe short 04a48h ; 76 08 6323 6353 mov AL, strict byte 021h ; b0 21 6324 6354 mov dx, 00080h ; ba 80 00 6325 6355 out DX, AL ; ee 6326 jmp short 04a3 dh ; eb e96356 jmp short 04a31h ; eb e9 6327 6357 test bx, bx ; 85 db 6328 jne short 04a5 eh ; 75 066358 jne short 04a52h ; 75 06 6329 6359 mov ax, strict word 00015h ; b8 15 00 6330 call 0493 eh ; e8 e0 fe6360 call 04932h ; e8 e0 fe 6331 6361 mov dx, strict word 00060h ; ba 60 00 6332 6362 in AL, DX ; ec … … 6334 6364 ; sub ah, ah ; 2a e4 6335 6365 cmp ax, 000fah ; 3d fa 00 6336 je short 04a6 fh ; 74 066366 je short 04a63h ; 74 06 6337 6367 mov ax, 003e1h ; b8 e1 03 6338 call 0493 eh ; e8 cf fe6368 call 04932h ; e8 cf fe 6339 6369 mov bx, strict word 0ffffh ; bb ff ff 6340 6370 mov dx, strict word 00064h ; ba 64 00 … … 6343 6373 ; sub ah, ah ; 2a e4 6344 6374 test AL, strict byte 001h ; a8 01 6345 jne short 04a 89h ; 75 0d6375 jne short 04a7dh ; 75 0d 6346 6376 dec bx ; 4b 6347 6377 test bx, bx ; 85 db 6348 jbe short 04a 89h ; 76 086378 jbe short 04a7dh ; 76 08 6349 6379 mov AL, strict byte 031h ; b0 31 6350 6380 mov dx, 00080h ; ba 80 00 6351 6381 out DX, AL ; ee 6352 jmp short 04a 72h ; eb e96382 jmp short 04a66h ; eb e9 6353 6383 test bx, bx ; 85 db 6354 jne short 04a 93h ; 75 066384 jne short 04a87h ; 75 06 6355 6385 mov ax, strict word 0001fh ; b8 1f 00 6356 call 0493 eh ; e8 ab fe6386 call 04932h ; e8 ab fe 6357 6387 mov dx, strict word 00060h ; ba 60 00 6358 6388 in AL, DX ; ec … … 6360 6390 ; sub ah, ah ; 2a e4 6361 6391 cmp ax, 000aah ; 3d aa 00 6362 je short 04aa ch ; 74 0e6392 je short 04aa0h ; 74 0e 6363 6393 in AL, DX ; ec 6364 6394 db 02ah, 0e4h 6365 6395 ; sub ah, ah ; 2a e4 6366 6396 cmp ax, 000aah ; 3d aa 00 6367 je short 04aa ch ; 74 066397 je short 04aa0h ; 74 06 6368 6398 mov ax, 003e2h ; b8 e2 03 6369 call 0493 eh ; e8 92 fe6399 call 04932h ; e8 92 fe 6370 6400 mov AL, strict byte 0f5h ; b0 f5 6371 6401 mov dx, strict word 00060h ; ba 60 00 … … 6377 6407 ; sub ah, ah ; 2a e4 6378 6408 test AL, strict byte 002h ; a8 02 6379 je short 04ac ch ; 74 0d6409 je short 04ac0h ; 74 0d 6380 6410 dec bx ; 4b 6381 6411 test bx, bx ; 85 db 6382 jbe short 04ac ch ; 76 086412 jbe short 04ac0h ; 76 08 6383 6413 mov AL, strict byte 040h ; b0 40 6384 6414 mov dx, 00080h ; ba 80 00 6385 6415 out DX, AL ; ee 6386 jmp short 04a b5h ; eb e96416 jmp short 04aa9h ; eb e9 6387 6417 test bx, bx ; 85 db 6388 jne short 04a d6h ; 75 066418 jne short 04acah ; 75 06 6389 6419 mov ax, strict word 00028h ; b8 28 00 6390 call 0493 eh ; e8 68 fe6420 call 04932h ; e8 68 fe 6391 6421 mov bx, strict word 0ffffh ; bb ff ff 6392 6422 mov dx, strict word 00064h ; ba 64 00 … … 6395 6425 ; sub ah, ah ; 2a e4 6396 6426 test AL, strict byte 001h ; a8 01 6397 jne short 04a f0h ; 75 0d6427 jne short 04ae4h ; 75 0d 6398 6428 dec bx ; 4b 6399 6429 test bx, bx ; 85 db 6400 jbe short 04a f0h ; 76 086430 jbe short 04ae4h ; 76 08 6401 6431 mov AL, strict byte 041h ; b0 41 6402 6432 mov dx, 00080h ; ba 80 00 6403 6433 out DX, AL ; ee 6404 jmp short 04a d9h ; eb e96434 jmp short 04acdh ; eb e9 6405 6435 test bx, bx ; 85 db 6406 jne short 04a fah ; 75 066436 jne short 04aeeh ; 75 06 6407 6437 mov ax, strict word 00029h ; b8 29 00 6408 call 0493 eh ; e8 44 fe6438 call 04932h ; e8 44 fe 6409 6439 mov dx, strict word 00060h ; ba 60 00 6410 6440 in AL, DX ; ec … … 6412 6442 ; sub ah, ah ; 2a e4 6413 6443 cmp ax, 000fah ; 3d fa 00 6414 je short 04 b0bh ; 74 066444 je short 04affh ; 74 06 6415 6445 mov ax, 003e3h ; b8 e3 03 6416 call 0493 eh ; e8 33 fe6446 call 04932h ; e8 33 fe 6417 6447 mov AL, strict byte 060h ; b0 60 6418 6448 mov dx, strict word 00064h ; ba 64 00 … … 6424 6454 ; sub ah, ah ; 2a e4 6425 6455 test AL, strict byte 002h ; a8 02 6426 je short 04b 2bh ; 74 0d6456 je short 04b1fh ; 74 0d 6427 6457 dec bx ; 4b 6428 6458 test bx, bx ; 85 db 6429 jbe short 04b 2bh ; 76 086459 jbe short 04b1fh ; 76 08 6430 6460 mov AL, strict byte 050h ; b0 50 6431 6461 mov dx, 00080h ; ba 80 00 6432 6462 out DX, AL ; ee 6433 jmp short 04b 14h ; eb e96463 jmp short 04b08h ; eb e9 6434 6464 test bx, bx ; 85 db 6435 jne short 04b 35h ; 75 066465 jne short 04b29h ; 75 06 6436 6466 mov ax, strict word 00032h ; b8 32 00 6437 call 0493 eh ; e8 09 fe6467 call 04932h ; e8 09 fe 6438 6468 mov AL, strict byte 065h ; b0 65 6439 6469 mov dx, strict word 00060h ; ba 60 00 … … 6445 6475 ; sub ah, ah ; 2a e4 6446 6476 test AL, strict byte 002h ; a8 02 6447 je short 04b 55h ; 74 0d6477 je short 04b49h ; 74 0d 6448 6478 dec bx ; 4b 6449 6479 test bx, bx ; 85 db 6450 jbe short 04b 55h ; 76 086480 jbe short 04b49h ; 76 08 6451 6481 mov AL, strict byte 060h ; b0 60 6452 6482 mov dx, 00080h ; ba 80 00 6453 6483 out DX, AL ; ee 6454 jmp short 04b3 eh ; eb e96484 jmp short 04b32h ; eb e9 6455 6485 test bx, bx ; 85 db 6456 jne short 04b5 fh ; 75 066486 jne short 04b53h ; 75 06 6457 6487 mov ax, strict word 0003ch ; b8 3c 00 6458 call 0493 eh ; e8 df fd6488 call 04932h ; e8 df fd 6459 6489 mov AL, strict byte 0f4h ; b0 f4 6460 6490 mov dx, strict word 00060h ; ba 60 00 … … 6466 6496 ; sub ah, ah ; 2a e4 6467 6497 test AL, strict byte 002h ; a8 02 6468 je short 04b7 fh ; 74 0d6498 je short 04b73h ; 74 0d 6469 6499 dec bx ; 4b 6470 6500 test bx, bx ; 85 db 6471 jbe short 04b7 fh ; 76 086501 jbe short 04b73h ; 76 08 6472 6502 mov AL, strict byte 070h ; b0 70 6473 6503 mov dx, 00080h ; ba 80 00 6474 6504 out DX, AL ; ee 6475 jmp short 04b 68h ; eb e96505 jmp short 04b5ch ; eb e9 6476 6506 test bx, bx ; 85 db 6477 jne short 04b 89h ; 75 066507 jne short 04b7dh ; 75 06 6478 6508 mov ax, strict word 00046h ; b8 46 00 6479 call 0493 eh ; e8 b5 fd6509 call 04932h ; e8 b5 fd 6480 6510 mov bx, strict word 0ffffh ; bb ff ff 6481 6511 mov dx, strict word 00064h ; ba 64 00 … … 6484 6514 ; sub ah, ah ; 2a e4 6485 6515 test AL, strict byte 001h ; a8 01 6486 jne short 04b a3h ; 75 0d6516 jne short 04b97h ; 75 0d 6487 6517 dec bx ; 4b 6488 6518 test bx, bx ; 85 db 6489 jbe short 04b a3h ; 76 086519 jbe short 04b97h ; 76 08 6490 6520 mov AL, strict byte 071h ; b0 71 6491 6521 mov dx, 00080h ; ba 80 00 6492 6522 out DX, AL ; ee 6493 jmp short 04b8 ch ; eb e96523 jmp short 04b80h ; eb e9 6494 6524 test bx, bx ; 85 db 6495 jne short 04ba dh ; 75 066525 jne short 04ba1h ; 75 06 6496 6526 mov ax, strict word 00046h ; b8 46 00 6497 call 0493 eh ; e8 91 fd6527 call 04932h ; e8 91 fd 6498 6528 mov dx, strict word 00060h ; ba 60 00 6499 6529 in AL, DX ; ec … … 6501 6531 ; sub ah, ah ; 2a e4 6502 6532 cmp ax, 000fah ; 3d fa 00 6503 je short 04bb eh ; 74 066533 je short 04bb2h ; 74 06 6504 6534 mov ax, 003e4h ; b8 e4 03 6505 call 0493 eh ; e8 80 fd6535 call 04932h ; e8 80 fd 6506 6536 mov AL, strict byte 0a8h ; b0 a8 6507 6537 mov dx, strict word 00064h ; ba 64 00 6508 6538 out DX, AL ; ee 6509 6539 xor ax, ax ; 31 c0 6510 call 05e 38h ; e8 6f 126540 call 05e2ch ; e8 6f 12 6511 6541 mov sp, bp ; 89 ec 6512 6542 pop bp ; 5d 6513 6543 retn ; c3 6514 enqueue_key_: ; 0xf4bc dLB 0x936544 enqueue_key_: ; 0xf4bc1 LB 0x93 6515 6545 push bp ; 55 6516 6546 mov bp, sp ; 89 e5 … … 6524 6554 mov dx, strict word 0001ah ; ba 1a 00 6525 6555 mov ax, strict word 00040h ; b8 40 00 6526 call 0161ch ; e8 39ca6556 call 0161ch ; e8 45 ca 6527 6557 mov di, ax ; 89 c7 6528 6558 mov dx, strict word 0001ch ; ba 1c 00 6529 6559 mov ax, strict word 00040h ; b8 40 00 6530 call 0161ch ; e8 2eca6560 call 0161ch ; e8 3a ca 6531 6561 mov si, ax ; 89 c6 6532 6562 lea cx, [si+002h] ; 8d 4c 02 6533 6563 cmp cx, strict byte 0003eh ; 83 f9 3e 6534 jc short 04b fbh ; 72 036564 jc short 04befh ; 72 03 6535 6565 mov cx, strict word 0001eh ; b9 1e 00 6536 6566 cmp cx, di ; 39 f9 6537 jne short 04 c03h ; 75 046567 jne short 04bf7h ; 75 04 6538 6568 xor ax, ax ; 31 c0 6539 jmp short 04c 28h ; eb 256569 jmp short 04c1ch ; eb 25 6540 6570 xor bh, bh ; 30 ff 6541 6571 mov dx, si ; 89 f2 6542 6572 mov ax, strict word 00040h ; b8 40 00 6543 call 0160eh ; e8 0 1ca6573 call 0160eh ; e8 0d ca 6544 6574 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 6545 6575 lea dx, [si+001h] ; 8d 54 01 6546 6576 mov ax, strict word 00040h ; b8 40 00 6547 call 0160eh ; e8 f4 c96577 call 0160eh ; e8 00 ca 6548 6578 mov bx, cx ; 89 cb 6549 6579 mov dx, strict word 0001ch ; ba 1c 00 6550 6580 mov ax, strict word 00040h ; b8 40 00 6551 call 0162ah ; e8 05ca6581 call 0162ah ; e8 11 ca 6552 6582 mov ax, strict word 00001h ; b8 01 00 6553 6583 lea sp, [bp-008h] ; 8d 66 f8 … … 6567 6597 cmp bh, byte [bx+si] ; 3a 38 6568 6598 sub bl, byte [ss:di] ; 36 2a 1d 6569 call far 0f64dh:0274eh ; 9a 4e 27 4d f6 6599 mov cs, [bp+01bh] ; 8e 4e 1b 6600 dec bp ; 4d 6601 jmp far 09d4ch:0ea4ch ; ea 4c ea 4c 9d 6602 dec bp ; 4d 6603 retn ; c3 6570 6604 dec sp ; 4c 6571 db 0f6h 6605 cmovle bx, word [bp+04eh] ; 0f 4e 5e 4e 6606 or word [bp+05ch], 0ea4dh ; 81 4e 5c 4d ea 6572 6607 dec sp ; 4c 6573 test ax, 0cf4dh ; a9 4d cf6608 jmp far 0dc4dh:0d64ch ; ea 4c d6 4d dc 6574 6609 dec sp ; 4c 6575 sbb cx, word [bp+06ah] ; 1b 4e 6a6610 aas ; 3f 6576 6611 dec si ; 4e 6577 lea cx, [bp+068h] ; 8d 4e 68 6578 dec bp ; 4d 6579 db 0f6h 6580 dec sp ; 4c 6581 db 0f6h 6582 dec sp ; 4c 6583 loop 04ca7h ; e2 4d 6584 call 097a9h ; e8 4c 4b 6585 dec si ; 4e 6586 db 086h 6587 dec si ; 4e 6588 _int09_function: ; 0xf4c60 LB 0x35d 6612 jp short 04ca2h ; 7a 4e 6613 _int09_function: ; 0xf4c54 LB 0x35d 6589 6614 push bp ; 55 6590 6615 mov bp, sp ; 89 e5 … … 6595 6620 mov byte [bp-00ah], al ; 88 46 f6 6596 6621 test al, al ; 84 c0 6597 jne short 04c 8bh ; 75 196598 mov bx, 00d 38h ; bb 38 0d6622 jne short 04c7fh ; 75 19 6623 mov bx, 00da8h ; bb a8 0d 6599 6624 mov cx, ds ; 8c d9 6600 6625 mov ax, strict word 00004h ; b8 04 00 6601 call 018cch ; e8 4fcc6602 push 00 4f7h ; 68 f7 046626 call 018cch ; e8 5b cc 6627 push 00567h ; 68 67 05 6603 6628 push strict byte 00004h ; 6a 04 6604 call 0190dh ; e8 88cc6629 call 0190dh ; e8 94 cc 6605 6630 add sp, strict byte 00004h ; 83 c4 04 6606 jmp near 04f b6h ; e9 2b 036631 jmp near 04faah ; e9 2b 03 6607 6632 mov dx, strict word 00017h ; ba 17 00 6608 6633 mov ax, strict word 00040h ; b8 40 00 6609 call 01600h ; e8 6cc96634 call 01600h ; e8 78 c9 6610 6635 mov byte [bp-00eh], al ; 88 46 f2 6611 6636 mov bl, al ; 88 c3 6612 6637 mov dx, strict word 00018h ; ba 18 00 6613 6638 mov ax, strict word 00040h ; b8 40 00 6614 call 01600h ; e8 5ec96639 call 01600h ; e8 6a c9 6615 6640 mov byte [bp-010h], al ; 88 46 f0 6616 6641 mov byte [bp-00ch], al ; 88 46 f4 6617 6642 mov dx, 00096h ; ba 96 00 6618 6643 mov ax, strict word 00040h ; b8 40 00 6619 call 01600h ; e8 4fc96644 call 01600h ; e8 5b c9 6620 6645 mov byte [bp-008h], al ; 88 46 f8 6621 6646 mov byte [bp-006h], al ; 88 46 fa … … 6624 6649 pop ES ; 07 6625 6650 mov cx, strict word 00010h ; b9 10 00 6626 mov di, 04c 31h ; bf 314c6651 mov di, 04c25h ; bf 25 4c 6627 6652 repne scasb ; f2 ae 6628 6653 sal cx, 1 ; d1 e1 6629 6654 mov di, cx ; 89 cf 6630 mov ax, word [cs:di+04c 40h] ; 2e 8b 85 404c6655 mov ax, word [cs:di+04c34h] ; 2e 8b 85 34 4c 6631 6656 jmp ax ; ff e0 6632 6657 xor bl, 040h ; 80 f3 40 … … 6634 6659 mov dx, strict word 00017h ; ba 17 00 6635 6660 mov ax, strict word 00040h ; b8 40 00 6636 call 0160eh ; e8 3 1c96661 call 0160eh ; e8 3d c9 6637 6662 or byte [bp-00ch], 040h ; 80 4e f4 40 6638 6663 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 6639 jmp near 04e5 eh ; e9 76 016664 jmp near 04e52h ; e9 76 01 6640 6665 mov al, byte [bp-010h] ; 8a 46 f0 6641 6666 and AL, strict byte 0bfh ; 24 bf 6642 6667 mov byte [bp-00ch], al ; 88 46 f4 6643 6668 movzx bx, al ; 0f b6 d8 6644 jmp near 04e5 eh ; e9 68 016669 jmp near 04e52h ; e9 68 01 6645 6670 test byte [bp-006h], 002h ; f6 46 fa 02 6646 jne near 04f 98h ; 0f 85 9a 026671 jne near 04f8ch ; 0f 85 9a 02 6647 6672 mov al, byte [bp-00ah] ; 8a 46 f6 6648 6673 and AL, strict byte 07fh ; 24 7f … … 6653 6678 inc ax ; 40 6654 6679 test byte [bp-00ah], 080h ; f6 46 f6 80 6655 je short 04d 17h ; 74 066680 je short 04d0bh ; 74 06 6656 6681 not al ; f6 d0 6657 6682 and bl, al ; 20 c3 6658 jmp short 04d 19h ; eb 026683 jmp short 04d0dh ; eb 02 6659 6684 or bl, al ; 08 c3 6660 6685 xor bh, bh ; 30 ff 6661 6686 mov dx, strict word 00017h ; ba 17 00 6662 6687 mov ax, strict word 00040h ; b8 40 00 6663 call 0160eh ; e8 eac86664 jmp near 04f 98h ; e9 71 026688 call 0160eh ; e8 f6 c8 6689 jmp near 04f8ch ; e9 71 02 6665 6690 test byte [bp-008h], 001h ; f6 46 f8 01 6666 jne near 04f 98h ; 0f 85 69 026691 jne near 04f8ch ; 0f 85 69 02 6667 6692 or bl, 004h ; 80 cb 04 6668 6693 xor bh, bh ; 30 ff 6669 6694 mov dx, strict word 00017h ; ba 17 00 6670 6695 mov ax, strict word 00040h ; b8 40 00 6671 call 0160eh ; e8 d 1c86696 call 0160eh ; e8 dd c8 6672 6697 mov al, byte [bp-008h] ; 8a 46 f8 6673 6698 test AL, strict byte 002h ; a8 02 6674 je short 04d 51h ; 74 0d6699 je short 04d45h ; 74 0d 6675 6700 or AL, strict byte 004h ; 0c 04 6676 6701 mov byte [bp-006h], al ; 88 46 fa 6677 6702 movzx bx, al ; 0f b6 d8 6678 6703 mov dx, 00096h ; ba 96 00 6679 jmp short 04d5 fh ; eb 0e6704 jmp short 04d53h ; eb 0e 6680 6705 mov al, byte [bp-010h] ; 8a 46 f0 6681 6706 or AL, strict byte 001h ; 0c 01 … … 6684 6709 mov dx, strict word 00018h ; ba 18 00 6685 6710 mov ax, strict word 00040h ; b8 40 00 6686 call 0160eh ; e8 a9c86687 jmp near 04f 98h ; e9 30 026711 call 0160eh ; e8 b5 c8 6712 jmp near 04f8ch ; e9 30 02 6688 6713 test byte [bp-008h], 001h ; f6 46 f8 01 6689 jne near 04f 98h ; 0f 85 28 026714 jne near 04f8ch ; 0f 85 28 02 6690 6715 and bl, 0fbh ; 80 e3 fb 6691 6716 xor bh, bh ; 30 ff 6692 6717 mov dx, strict word 00017h ; ba 17 00 6693 6718 mov ax, strict word 00040h ; b8 40 00 6694 call 0160eh ; e8 9 0c86719 call 0160eh ; e8 9c c8 6695 6720 mov al, byte [bp-008h] ; 8a 46 f8 6696 6721 test AL, strict byte 002h ; a8 02 6697 je short 04d 92h ; 74 0d6722 je short 04d86h ; 74 0d 6698 6723 and AL, strict byte 0fbh ; 24 fb 6699 6724 mov byte [bp-006h], al ; 88 46 fa 6700 6725 movzx bx, al ; 0f b6 d8 6701 6726 mov dx, 00096h ; ba 96 00 6702 jmp short 04d a0h ; eb 0e6727 jmp short 04d94h ; eb 0e 6703 6728 mov al, byte [bp-010h] ; 8a 46 f0 6704 6729 and AL, strict byte 0feh ; 24 fe … … 6707 6732 mov dx, strict word 00018h ; ba 18 00 6708 6733 mov ax, strict word 00040h ; b8 40 00 6709 call 0160eh ; e8 68c86710 jmp near 04f 98h ; e9 ef 016734 call 0160eh ; e8 74 c8 6735 jmp near 04f8ch ; e9 ef 01 6711 6736 or bl, 008h ; 80 cb 08 6712 6737 xor bh, bh ; 30 ff 6713 6738 mov dx, strict word 00017h ; ba 17 00 6714 6739 mov ax, strict word 00040h ; b8 40 00 6715 call 0160eh ; e8 57c86740 call 0160eh ; e8 63 c8 6716 6741 mov al, byte [bp-008h] ; 8a 46 f8 6717 6742 test AL, strict byte 002h ; a8 02 6718 je short 04d cbh ; 74 0d6743 je short 04dbfh ; 74 0d 6719 6744 or AL, strict byte 008h ; 0c 08 6720 6745 mov byte [bp-006h], al ; 88 46 fa 6721 6746 movzx bx, al ; 0f b6 d8 6722 6747 mov dx, 00096h ; ba 96 00 6723 jmp short 04d d9h ; eb 0e6748 jmp short 04dcdh ; eb 0e 6724 6749 mov al, byte [bp-010h] ; 8a 46 f0 6725 6750 or AL, strict byte 002h ; 0c 02 … … 6728 6753 mov dx, strict word 00018h ; ba 18 00 6729 6754 mov ax, strict word 00040h ; b8 40 00 6730 call 0160eh ; e8 2fc86731 jmp near 04f 98h ; e9 b6 016755 call 0160eh ; e8 3b c8 6756 jmp near 04f8ch ; e9 b6 01 6732 6757 and bl, 0f7h ; 80 e3 f7 6733 6758 xor bh, bh ; 30 ff 6734 6759 mov dx, strict word 00017h ; ba 17 00 6735 6760 mov ax, strict word 00040h ; b8 40 00 6736 call 0160eh ; e8 1ec86761 call 0160eh ; e8 2a c8 6737 6762 mov al, byte [bp-008h] ; 8a 46 f8 6738 6763 test AL, strict byte 002h ; a8 02 6739 je short 04 e04h ; 74 0d6764 je short 04df8h ; 74 0d 6740 6765 and AL, strict byte 0f7h ; 24 f7 6741 6766 mov byte [bp-006h], al ; 88 46 fa 6742 6767 movzx bx, al ; 0f b6 d8 6743 6768 mov dx, 00096h ; ba 96 00 6744 jmp short 04e 12h ; eb 0e6769 jmp short 04e06h ; eb 0e 6745 6770 mov al, byte [bp-010h] ; 8a 46 f0 6746 6771 and AL, strict byte 0fdh ; 24 fd … … 6749 6774 mov dx, strict word 00018h ; ba 18 00 6750 6775 mov ax, strict word 00040h ; b8 40 00 6751 call 0160eh ; e8 f6 c76752 jmp near 04f 98h ; e9 7d 016776 call 0160eh ; e8 02 c8 6777 jmp near 04f8ch ; e9 7d 01 6753 6778 test byte [bp-008h], 003h ; f6 46 f8 03 6754 jne near 04f 98h ; 0f 85 75 016779 jne near 04f8ch ; 0f 85 75 01 6755 6780 mov al, byte [bp-010h] ; 8a 46 f0 6756 6781 or AL, strict byte 020h ; 0c 20 … … 6759 6784 mov dx, strict word 00018h ; ba 18 00 6760 6785 mov ax, strict word 00040h ; b8 40 00 6761 call 0160eh ; e8 d7c76786 call 0160eh ; e8 e3 c7 6762 6787 mov bl, byte [bp-00eh] ; 8a 5e f2 6763 6788 xor bl, 020h ; 80 f3 20 … … 6765 6790 mov dx, strict word 00017h ; ba 17 00 6766 6791 mov ax, strict word 00040h ; b8 40 00 6767 call 0160eh ; e8 c6c76768 jmp near 04f 98h ; e9 4d 016792 call 0160eh ; e8 d2 c7 6793 jmp near 04f8ch ; e9 4d 01 6769 6794 test byte [bp-008h], 003h ; f6 46 f8 03 6770 jne near 04f 98h ; 0f 85 45 016795 jne near 04f8ch ; 0f 85 45 01 6771 6796 mov al, byte [bp-010h] ; 8a 46 f0 6772 6797 and AL, strict byte 0dfh ; 24 df … … 6775 6800 mov dx, strict word 00018h ; ba 18 00 6776 6801 mov ax, strict word 00040h ; b8 40 00 6777 call 0160eh ; e8 a7c76778 jmp near 04f 98h ; e9 2e 016802 call 0160eh ; e8 b3 c7 6803 jmp near 04f8ch ; e9 2e 01 6779 6804 mov al, byte [bp-010h] ; 8a 46 f0 6780 6805 or AL, strict byte 010h ; 0c 10 … … 6783 6808 mov dx, strict word 00018h ; ba 18 00 6784 6809 mov ax, strict word 00040h ; b8 40 00 6785 call 0160eh ; e8 9 0c76810 call 0160eh ; e8 9c c7 6786 6811 mov bl, byte [bp-00eh] ; 8a 5e f2 6787 6812 xor bl, 010h ; 80 f3 10 6788 jmp short 04e3 dh ; eb b76813 jmp short 04e31h ; eb b7 6789 6814 mov al, byte [bp-010h] ; 8a 46 f0 6790 6815 and AL, strict byte 0efh ; 24 ef 6791 jmp short 04e 58h ; eb cb6816 jmp short 04e4ch ; eb cb 6792 6817 mov al, bl ; 88 d8 6793 6818 and AL, strict byte 00ch ; 24 0c 6794 6819 cmp AL, strict byte 00ch ; 3c 0c 6795 jne short 04e 9ah ; 75 056820 jne short 04e8eh ; 75 05 6796 6821 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 6797 6822 test byte [bp-00ah], 080h ; f6 46 f6 80 6798 jne near 04f 98h ; 0f 85 f6 006823 jne near 04f8ch ; 0f 85 f6 00 6799 6824 cmp byte [bp-00ah], 058h ; 80 7e f6 58 6800 jbe short 04e c6h ; 76 1e6801 mov bx, 00d 38h ; bb 38 0d6825 jbe short 04ebah ; 76 1e 6826 mov bx, 00da8h ; bb a8 0d 6802 6827 mov cx, ds ; 8c d9 6803 6828 mov ax, strict word 00004h ; b8 04 00 6804 call 018cch ; e8 19ca6829 call 018cch ; e8 25 ca 6805 6830 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6806 6831 push ax ; 50 6807 push 005 11h ; 68 11 056832 push 00581h ; 68 81 05 6808 6833 push strict byte 00004h ; 6a 04 6809 call 0190dh ; e8 4dca6834 call 0190dh ; e8 59 ca 6810 6835 add sp, strict byte 00006h ; 83 c4 06 6811 jmp near 04f b6h ; e9 f0 006836 jmp near 04faah ; e9 f0 00 6812 6837 test bl, 008h ; f6 c3 08 6813 je short 04ed dh ; 74 126838 je short 04ed1h ; 74 12 6814 6839 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6815 6840 imul si, si, strict byte 0000ah ; 6b f6 0a 6816 mov dl, byte [si+00d 8ch] ; 8a 94 8c 0d6817 mov ax, word [si+00d 8ch] ; 8b 84 8c 0d6818 jmp near 04f 69h ; e9 8c 006841 mov dl, byte [si+00dfch] ; 8a 94 fc 0d 6842 mov ax, word [si+00dfch] ; 8b 84 fc 0d 6843 jmp near 04f5dh ; e9 8c 00 6819 6844 test bl, 004h ; f6 c3 04 6820 je short 04e f4h ; 74 126845 je short 04ee8h ; 74 12 6821 6846 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6822 6847 imul si, si, strict byte 0000ah ; 6b f6 0a 6823 mov dl, byte [si+00d 8ah] ; 8a 94 8a 0d6824 mov ax, word [si+00d 8ah] ; 8b 84 8a 0d6825 jmp near 04f 69h ; e9 75 006848 mov dl, byte [si+00dfah] ; 8a 94 fa 0d 6849 mov ax, word [si+00dfah] ; 8b 84 fa 0d 6850 jmp near 04f5dh ; e9 75 00 6826 6851 mov al, byte [bp-006h] ; 8a 46 fa 6827 6852 and AL, strict byte 002h ; 24 02 6828 6853 test al, al ; 84 c0 6829 jbe short 04f 12h ; 76 156854 jbe short 04f06h ; 76 15 6830 6855 mov al, byte [bp-00ah] ; 8a 46 f6 6831 6856 cmp AL, strict byte 047h ; 3c 47 6832 jc short 04f 12h ; 72 0e6857 jc short 04f06h ; 72 0e 6833 6858 cmp AL, strict byte 053h ; 3c 53 6834 jnbe short 04f 12h ; 77 0a6859 jnbe short 04f06h ; 77 0a 6835 6860 mov DL, strict byte 0e0h ; b2 e0 6836 6861 movzx si, al ; 0f b6 f0 6837 6862 imul si, si, strict byte 0000ah ; 6b f6 0a 6838 jmp short 04f 65h ; eb 536863 jmp short 04f59h ; eb 53 6839 6864 test bl, 003h ; f6 c3 03 6840 je short 04f 44h ; 74 2d6865 je short 04f38h ; 74 2d 6841 6866 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6842 6867 imul si, si, strict byte 0000ah ; 6b f6 0a 6843 movzx ax, byte [si+00d 8eh] ; 0f b6 84 8e 0d6868 movzx ax, byte [si+00dfeh] ; 0f b6 84 fe 0d 6844 6869 movzx dx, bl ; 0f b6 d3 6845 6870 test dx, ax ; 85 c2 6846 je short 04f 34h ; 74 0a6847 mov dl, byte [si+00d 86h] ; 8a 94 86 0d6848 mov ax, word [si+00d 86h] ; 8b 84 86 0d6849 jmp short 04f3 ch ; eb 086850 mov dl, byte [si+00d 88h] ; 8a 94 88 0d6851 mov ax, word [si+00d 88h] ; 8b 84 88 0d6871 je short 04f28h ; 74 0a 6872 mov dl, byte [si+00df6h] ; 8a 94 f6 0d 6873 mov ax, word [si+00df6h] ; 8b 84 f6 0d 6874 jmp short 04f30h ; eb 08 6875 mov dl, byte [si+00df8h] ; 8a 94 f8 0d 6876 mov ax, word [si+00df8h] ; 8b 84 f8 0d 6852 6877 shr ax, 008h ; c1 e8 08 6853 6878 mov byte [bp-00ah], al ; 88 46 f6 6854 jmp short 04f6 fh ; eb 2b6879 jmp short 04f63h ; eb 2b 6855 6880 movzx si, byte [bp-00ah] ; 0f b6 76 f6 6856 6881 imul si, si, strict byte 0000ah ; 6b f6 0a 6857 movzx ax, byte [si+00d 8eh] ; 0f b6 84 8e 0d6882 movzx ax, byte [si+00dfeh] ; 0f b6 84 fe 0d 6858 6883 movzx dx, bl ; 0f b6 d3 6859 6884 test dx, ax ; 85 c2 6860 je short 04f 61h ; 74 0a6861 mov dl, byte [si+00d 88h] ; 8a 94 88 0d6862 mov ax, word [si+00d 88h] ; 8b 84 88 0d6863 jmp short 04f 69h ; eb 086864 mov dl, byte [si+00d 86h] ; 8a 94 86 0d6865 mov ax, word [si+00d 86h] ; 8b 84 86 0d6885 je short 04f55h ; 74 0a 6886 mov dl, byte [si+00df8h] ; 8a 94 f8 0d 6887 mov ax, word [si+00df8h] ; 8b 84 f8 0d 6888 jmp short 04f5dh ; eb 08 6889 mov dl, byte [si+00df6h] ; 8a 94 f6 0d 6890 mov ax, word [si+00df6h] ; 8b 84 f6 0d 6866 6891 shr ax, 008h ; c1 e8 08 6867 6892 mov byte [bp-00ah], al ; 88 46 f6 6868 6893 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6869 jne short 04f8 fh ; 75 1a6894 jne short 04f83h ; 75 1a 6870 6895 test dl, dl ; 84 d2 6871 jne short 04f8 fh ; 75 166872 mov bx, 00d 38h ; bb 38 0d6896 jne short 04f83h ; 75 16 6897 mov bx, 00da8h ; bb a8 0d 6873 6898 mov cx, ds ; 8c d9 6874 6899 mov ax, strict word 00004h ; b8 04 00 6875 call 018cch ; e8 48c96876 push 005 48h ; 68 48 056900 call 018cch ; e8 54 c9 6901 push 005b8h ; 68 b8 05 6877 6902 push strict byte 00004h ; 6a 04 6878 call 0190dh ; e8 8 1c96903 call 0190dh ; e8 8d c9 6879 6904 add sp, strict byte 00004h ; 83 c4 04 6880 6905 xor dh, dh ; 30 f6 6881 6906 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6882 call 04bc dh ; e8 35 fc6907 call 04bc1h ; e8 35 fc 6883 6908 mov al, byte [bp-00ah] ; 8a 46 f6 6884 6909 and AL, strict byte 07fh ; 24 7f 6885 6910 cmp AL, strict byte 01dh ; 3c 1d 6886 je short 04f a5h ; 74 046911 je short 04f99h ; 74 04 6887 6912 and byte [bp-006h], 0feh ; 80 66 fa fe 6888 6913 and byte [bp-006h], 0fdh ; 80 66 fa fd … … 6890 6915 mov dx, 00096h ; ba 96 00 6891 6916 mov ax, strict word 00040h ; b8 40 00 6892 call 0160eh ; e8 58c66917 call 0160eh ; e8 64 c6 6893 6918 lea sp, [bp-004h] ; 8d 66 fc 6894 6919 pop di ; 5f … … 6896 6921 pop bp ; 5d 6897 6922 retn ; c3 6898 dequeue_key_: ; 0xf4fb dLB 0x946923 dequeue_key_: ; 0xf4fb1 LB 0x94 6899 6924 push bp ; 55 6900 6925 mov bp, sp ; 89 e5 … … 6909 6934 mov dx, strict word 0001ah ; ba 1a 00 6910 6935 mov ax, strict word 00040h ; b8 40 00 6911 call 0161ch ; e8 45c66936 call 0161ch ; e8 51 c6 6912 6937 mov bx, ax ; 89 c3 6913 6938 mov dx, strict word 0001ch ; ba 1c 00 6914 6939 mov ax, strict word 00040h ; b8 40 00 6915 call 0161ch ; e8 3ac66940 call 0161ch ; e8 46 c6 6916 6941 cmp bx, ax ; 39 c3 6917 je short 050 23h ; 74 3d6942 je short 05017h ; 74 3d 6918 6943 mov dx, bx ; 89 da 6919 6944 mov ax, strict word 00040h ; b8 40 00 6920 call 01600h ; e8 1 2c66945 call 01600h ; e8 1e c6 6921 6946 mov cl, al ; 88 c1 6922 6947 lea dx, [bx+001h] ; 8d 57 01 6923 6948 mov ax, strict word 00040h ; b8 40 00 6924 call 01600h ; e8 07c66949 call 01600h ; e8 13 c6 6925 6950 mov es, [bp-008h] ; 8e 46 f8 6926 6951 mov byte [es:si], cl ; 26 88 0c … … 6928 6953 mov byte [es:di], al ; 26 88 05 6929 6954 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 6930 je short 0501 eh ; 74 136955 je short 05012h ; 74 13 6931 6956 inc bx ; 43 6932 6957 inc bx ; 43 6933 6958 cmp bx, strict byte 0003eh ; 83 fb 3e 6934 jc short 050 15h ; 72 036959 jc short 05009h ; 72 03 6935 6960 mov bx, strict word 0001eh ; bb 1e 00 6936 6961 mov dx, strict word 0001ah ; ba 1a 00 6937 6962 mov ax, strict word 00040h ; b8 40 00 6938 call 0162ah ; e8 0cc66963 call 0162ah ; e8 18 c6 6939 6964 mov ax, strict word 00001h ; b8 01 00 6940 jmp short 050 25h ; eb 026965 jmp short 05019h ; eb 02 6941 6966 xor ax, ax ; 31 c0 6942 6967 lea sp, [bp-004h] ; 8d 66 fc … … 6949 6974 or cl, byte [bx+di] ; 0a 09 6950 6975 add ax, 00102h ; 05 02 01 6951 add b h, ch ; 00 ef6976 add bl, ah ; 00 e3 6952 6977 push dx ; 52 6953 add ax, 04c51h ; 05 51 4c 6978 stc ; f9 6979 push ax ; 50 6980 inc ax ; 40 6954 6981 push cx ; 51 6955 cbw ; 986982 mov [bx+di-064h], ss ; 8c 51 9c 6956 6983 push cx ; 51 6957 test AL, strict byte 051h ; a8 51 6958 rcl byte [bx+di-025h], CL ; d2 51 db 6959 push cx ; 51 6960 dec sp ; 4c 6984 db 0c6h, 051h, 0cfh, 051h 6985 ; mov byte [bx+di-031h], 051h ; c6 51 cf 51 6986 inc ax ; 40 6961 6987 push dx ; 52 6962 jn l short 0509dh ; 7d526963 s tosb ; aa6988 jno short 05091h ; 71 52 6989 sahf ; 9e 6964 6990 push dx ; 52 6965 in AL, strict byte 052h ; e4 52 6966 db 032h 6991 fcom dword [bp+si+026h] ; d8 52 26 6967 6992 push bx ; 53 6968 _int16_function: ; 0xf50 51LB 0x2e76993 _int16_function: ; 0xf5045 LB 0x2e7 6969 6994 push bp ; 55 6970 6995 mov bp, sp ; 89 e5 … … 6973 6998 mov dx, strict word 00017h ; ba 17 00 6974 6999 mov ax, strict word 00040h ; b8 40 00 6975 call 01600h ; e8 9fc57000 call 01600h ; e8 ab c5 6976 7001 mov cl, al ; 88 c1 6977 7002 mov bh, al ; 88 c7 6978 7003 mov dx, 00097h ; ba 97 00 6979 7004 mov ax, strict word 00040h ; b8 40 00 6980 call 01600h ; e8 9 2c57005 call 01600h ; e8 9e c5 6981 7006 mov bl, al ; 88 c3 6982 7007 movzx dx, cl ; 0f b6 d1 … … 6987 7012 xor al, dl ; 30 d0 6988 7013 test ax, ax ; 85 c0 6989 je short 050 e3h ; 74 607014 je short 050d7h ; 74 60 6990 7015 cli ; fa 6991 7016 mov AL, strict byte 0edh ; b0 ed … … 6997 7022 ; sub ah, ah ; 2a e4 6998 7023 test AL, strict byte 001h ; a8 01 6999 jne short 0509 ch ; 75 087024 jne short 05090h ; 75 08 7000 7025 mov AL, strict byte 021h ; b0 21 7001 7026 mov dx, 00080h ; ba 80 00 7002 7027 out DX, AL ; ee 7003 jmp short 050 8ah ; eb ee7028 jmp short 0507eh ; eb ee 7004 7029 mov dx, strict word 00060h ; ba 60 00 7005 7030 in AL, DX ; ec … … 7007 7032 ; sub ah, ah ; 2a e4 7008 7033 cmp ax, 000fah ; 3d fa 00 7009 jne short 050 e2h ; 75 3b7034 jne short 050d6h ; 75 3b 7010 7035 and bl, 0f8h ; 80 e3 f8 7011 7036 movzx ax, bh ; 0f b6 c7 … … 7023 7048 ; sub ah, ah ; 2a e4 7024 7049 test AL, strict byte 001h ; a8 01 7025 jne short 050 d1h ; 75 087050 jne short 050c5h ; 75 08 7026 7051 mov AL, strict byte 021h ; b0 21 7027 7052 mov dx, 00080h ; ba 80 00 7028 7053 out DX, AL ; ee 7029 jmp short 050b fh ; eb ee7054 jmp short 050b3h ; eb ee 7030 7055 mov dx, strict word 00060h ; ba 60 00 7031 7056 in AL, DX ; ec … … 7035 7060 mov dx, 00097h ; ba 97 00 7036 7061 mov ax, strict word 00040h ; b8 40 00 7037 call 0160eh ; e8 2cc57062 call 0160eh ; e8 38 c5 7038 7063 sti ; fb 7039 7064 mov ax, word [bp+012h] ; 8b 46 12 7040 7065 shr ax, 008h ; c1 e8 08 7041 7066 cmp ax, 000a2h ; 3d a2 00 7042 jnbe near 052e fh ; 0f 87 ff 017067 jnbe near 052e3h ; 0f 87 ff 01 7043 7068 push CS ; 0e 7044 7069 pop ES ; 07 7045 7070 mov cx, strict word 0000ch ; b9 0c 00 7046 mov di, 0502 eh ; bf 2e507071 mov di, 05022h ; bf 22 50 7047 7072 repne scasb ; f2 ae 7048 7073 sal cx, 1 ; d1 e1 7049 7074 mov di, cx ; 89 cf 7050 mov ax, word [cs:di+050 39h] ; 2e 8b 85 39507075 mov ax, word [cs:di+0502dh] ; 2e 8b 85 2d 50 7051 7076 jmp ax ; ff e0 7052 7077 push strict byte 00001h ; 6a 01 … … 7055 7080 mov dx, ss ; 8c d2 7056 7081 lea ax, [bp-006h] ; 8d 46 fa 7057 call 04fb dh ; e8 a9 fe7082 call 04fb1h ; e8 a9 fe 7058 7083 test ax, ax ; 85 c0 7059 jne short 051 23h ; 75 0b7060 push 005 7fh ; 68 7f 057084 jne short 05117h ; 75 0b 7085 push 005efh ; 68 ef 05 7061 7086 push strict byte 00007h ; 6a 07 7062 call 0190dh ; e8 edc77087 call 0190dh ; e8 f9 c7 7063 7088 add sp, strict byte 00004h ; 83 c4 04 7064 7089 cmp byte [bp-006h], 000h ; 80 7e fa 00 7065 je short 0512 fh ; 74 067090 je short 05123h ; 74 06 7066 7091 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7067 je short 051 35h ; 74 067092 je short 05129h ; 74 06 7068 7093 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7069 jne short 051 39h ; 75 047094 jne short 0512dh ; 75 04 7070 7095 mov byte [bp-008h], 000h ; c6 46 f8 00 7071 7096 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7074 7099 or dx, ax ; 09 c2 7075 7100 mov word [bp+012h], dx ; 89 56 12 7076 jmp near 053 32h ; e9 e6 017101 jmp near 05326h ; e9 e6 01 7077 7102 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7078 7103 push strict byte 00000h ; 6a 00 … … 7081 7106 mov dx, ss ; 8c d2 7082 7107 lea ax, [bp-006h] ; 8d 46 fa 7083 call 04fb dh ; e8 5d fe7108 call 04fb1h ; e8 5d fe 7084 7109 test ax, ax ; 85 c0 7085 jne short 051 6bh ; 75 077110 jne short 0515fh ; 75 07 7086 7111 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7087 jmp near 053 32h ; e9 c7 017112 jmp near 05326h ; e9 c7 01 7088 7113 cmp byte [bp-006h], 000h ; 80 7e fa 00 7089 je short 051 77h ; 74 067114 je short 0516bh ; 74 06 7090 7115 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7091 je short 0517 dh ; 74 067116 je short 05171h ; 74 06 7092 7117 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7093 jne short 051 81h ; 75 047118 jne short 05175h ; 75 04 7094 7119 mov byte [bp-008h], 000h ; c6 46 f8 00 7095 7120 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7099 7124 mov word [bp+012h], dx ; 89 56 12 7100 7125 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7101 jmp near 053 32h ; e9 9a 017126 jmp near 05326h ; e9 9a 01 7102 7127 mov dx, strict word 00017h ; ba 17 00 7103 7128 mov ax, strict word 00040h ; b8 40 00 7104 call 01600h ; e8 5fc47129 call 01600h ; e8 6b c4 7105 7130 mov dx, word [bp+012h] ; 8b 56 12 7106 7131 mov dl, al ; 88 c2 7107 jmp short 051 46h ; eb 9e7132 jmp short 0513ah ; eb 9e 7108 7133 mov al, byte [bp+010h] ; 8a 46 10 7109 7134 movzx dx, al ; 0f b6 d0 … … 7111 7136 shr ax, 008h ; c1 e8 08 7112 7137 xor ah, ah ; 30 e4 7113 call 04bc dh ; e8 14 fa7138 call 04bc1h ; e8 14 fa 7114 7139 test ax, ax ; 85 c0 7115 jne short 051 cah ; 75 0d7140 jne short 051beh ; 75 0d 7116 7141 mov ax, word [bp+012h] ; 8b 46 12 7117 7142 xor al, al ; 30 c0 7118 7143 or AL, strict byte 001h ; 0c 01 7119 7144 mov word [bp+012h], ax ; 89 46 12 7120 jmp near 053 32h ; e9 68 017145 jmp near 05326h ; e9 68 01 7121 7146 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7122 jmp near 053 32h ; e9 60 017147 jmp near 05326h ; e9 60 01 7123 7148 mov ax, word [bp+012h] ; 8b 46 12 7124 7149 xor al, al ; 30 c0 7125 7150 or AL, strict byte 030h ; 0c 30 7126 jmp short 051 c4h ; eb e97151 jmp short 051b8h ; eb e9 7127 7152 mov byte [bp-004h], 002h ; c6 46 fc 02 7128 7153 xor cx, cx ; 31 c9 … … 7137 7162 ; sub ah, ah ; 2a e4 7138 7163 test AL, strict byte 001h ; a8 01 7139 jne short 05 202h ; 75 0d7164 jne short 051f6h ; 75 0d 7140 7165 dec bx ; 4b 7141 7166 test bx, bx ; 85 db 7142 jbe short 05 202h ; 76 087167 jbe short 051f6h ; 76 08 7143 7168 mov dx, 00080h ; ba 80 00 7144 7169 in AL, DX ; ec 7145 7170 db 02ah, 0e4h 7146 7171 ; sub ah, ah ; 2a e4 7147 jmp short 051 ebh ; eb e97172 jmp short 051dfh ; eb e9 7148 7173 test bx, bx ; 85 db 7149 jbe short 052 46h ; 76 407174 jbe short 0523ah ; 76 40 7150 7175 mov dx, strict word 00060h ; ba 60 00 7151 7176 in AL, DX ; ec … … 7153 7178 ; sub ah, ah ; 2a e4 7154 7179 cmp ax, 000fah ; 3d fa 00 7155 jne short 052 46h ; 75 357180 jne short 0523ah ; 75 35 7156 7181 mov bx, strict word 0ffffh ; bb ff ff 7157 7182 mov dx, strict word 00064h ; ba 64 00 … … 7160 7185 ; sub ah, ah ; 2a e4 7161 7186 test AL, strict byte 001h ; a8 01 7162 jne short 052 2bh ; 75 0d7187 jne short 0521fh ; 75 0d 7163 7188 dec bx ; 4b 7164 7189 test bx, bx ; 85 db 7165 jbe short 052 2bh ; 76 087190 jbe short 0521fh ; 76 08 7166 7191 mov dx, 00080h ; ba 80 00 7167 7192 in AL, DX ; ec 7168 7193 db 02ah, 0e4h 7169 7194 ; sub ah, ah ; 2a e4 7170 jmp short 052 14h ; eb e97195 jmp short 05208h ; eb e9 7171 7196 test bx, bx ; 85 db 7172 jbe short 0523 dh ; 76 0e7197 jbe short 05231h ; 76 0e 7173 7198 shr cx, 008h ; c1 e9 08 7174 7199 mov dx, strict word 00060h ; ba 60 00 … … 7180 7205 dec byte [bp-004h] ; fe 4e fc 7181 7206 cmp byte [bp-004h], 000h ; 80 7e fc 00 7182 jnbe short 052 11h ; 77 cb7207 jnbe short 05205h ; 77 cb 7183 7208 mov word [bp+00ch], cx ; 89 4e 0c 7184 jmp near 053 32h ; e9 e6 007209 jmp near 05326h ; e9 e6 00 7185 7210 push strict byte 00001h ; 6a 01 7186 7211 mov cx, ss ; 8c d1 … … 7188 7213 mov dx, ss ; 8c d2 7189 7214 lea ax, [bp-006h] ; 8d 46 fa 7190 call 04fb dh ; e8 62 fd7215 call 04fb1h ; e8 62 fd 7191 7216 test ax, ax ; 85 c0 7192 jne short 052 6ah ; 75 0b7193 push 005 7fh ; 68 7f 057217 jne short 0525eh ; 75 0b 7218 push 005efh ; 68 ef 05 7194 7219 push strict byte 00007h ; 6a 07 7195 call 0190dh ; e8 a6c67220 call 0190dh ; e8 b2 c6 7196 7221 add sp, strict byte 00004h ; 83 c4 04 7197 7222 cmp byte [bp-006h], 000h ; 80 7e fa 00 7198 je near 051 39h ; 0f 84 c7 fe7223 je near 0512dh ; 0f 84 c7 fe 7199 7224 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7200 je near 051 35h ; 0f 84 bb fe7201 jmp near 051 39h ; e9 bc fe7225 je near 05129h ; 0f 84 bb fe 7226 jmp near 0512dh ; e9 bc fe 7202 7227 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7203 7228 push strict byte 00000h ; 6a 00 … … 7206 7231 mov dx, ss ; 8c d2 7207 7232 lea ax, [bp-006h] ; 8d 46 fa 7208 call 04fb dh ; e8 2c fd7233 call 04fb1h ; e8 2c fd 7209 7234 test ax, ax ; 85 c0 7210 je near 051 64h ; 0f 84 cd fe7235 je near 05158h ; 0f 84 cd fe 7211 7236 cmp byte [bp-006h], 000h ; 80 7e fa 00 7212 je near 051 81h ; 0f 84 e2 fe7237 je near 05175h ; 0f 84 e2 fe 7213 7238 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7214 je near 0517 dh ; 0f 84 d6 fe7215 jmp near 051 81h ; e9 d7 fe7239 je near 05171h ; 0f 84 d6 fe 7240 jmp near 05175h ; e9 d7 fe 7216 7241 mov dx, strict word 00017h ; ba 17 00 7217 7242 mov ax, strict word 00040h ; b8 40 00 7218 call 01600h ; e8 4dc37243 call 01600h ; e8 59 c3 7219 7244 mov dx, word [bp+012h] ; 8b 56 12 7220 7245 mov dl, al ; 88 c2 … … 7222 7247 mov dx, strict word 00018h ; ba 18 00 7223 7248 mov ax, strict word 00040h ; b8 40 00 7224 call 01600h ; e8 3cc37249 call 01600h ; e8 48 c3 7225 7250 mov bh, al ; 88 c7 7226 7251 and bh, 073h ; 80 e7 73 7227 7252 mov dx, 00096h ; ba 96 00 7228 7253 mov ax, strict word 00040h ; b8 40 00 7229 call 01600h ; e8 2ec37254 call 01600h ; e8 3a c3 7230 7255 and AL, strict byte 00ch ; 24 0c 7231 7256 or bh, al ; 08 c7 … … 7234 7259 movzx ax, bh ; 0f b6 c7 7235 7260 sal ax, 008h ; c1 e0 08 7236 jmp near 051 44h ; e9 60 fe7261 jmp near 05138h ; e9 60 fe 7237 7262 mov ax, word [bp+012h] ; 8b 46 12 7238 7263 xor ah, ah ; 30 e4 7239 7264 or ah, 080h ; 80 cc 80 7240 jmp near 051 c4h ; e9 d5 fe7241 mov bx, 00d 38h ; bb 38 0d7265 jmp near 051b8h ; e9 d5 fe 7266 mov bx, 00da8h ; bb a8 0d 7242 7267 mov cx, ds ; 8c d9 7243 7268 mov ax, strict word 00004h ; b8 04 00 7244 call 018cch ; e8 d 2c57269 call 018cch ; e8 de c5 7245 7270 mov ax, word [bp+012h] ; 8b 46 12 7246 7271 shr ax, 008h ; c1 e8 08 7247 7272 push ax ; 50 7248 push 00 5a3h ; 68 a3 057273 push 00613h ; 68 13 06 7249 7274 push strict byte 00004h ; 6a 04 7250 call 0190dh ; e8 04c67275 call 0190dh ; e8 10 c6 7251 7276 add sp, strict byte 00006h ; 83 c4 06 7252 mov bx, 00d 38h ; bb 38 0d7277 mov bx, 00da8h ; bb a8 0d 7253 7278 mov cx, ds ; 8c d9 7254 7279 mov ax, strict word 00004h ; b8 04 00 7255 call 018cch ; e8 b5c57280 call 018cch ; e8 c1 c5 7256 7281 mov ax, word [bp+00eh] ; 8b 46 0e 7257 7282 push ax ; 50 … … 7262 7287 mov ax, word [bp+012h] ; 8b 46 12 7263 7288 push ax ; 50 7264 push 00 5cbh ; 68 cb 057289 push 0063bh ; 68 3b 06 7265 7290 push strict byte 00004h ; 6a 04 7266 call 0190dh ; e8 dec57291 call 0190dh ; e8 ea c5 7267 7292 add sp, strict byte 0000ch ; 83 c4 0c 7268 7293 lea sp, [bp-002h] ; 8d 66 fe … … 7270 7295 pop bp ; 5d 7271 7296 retn ; c3 7272 set_geom_lba_: ; 0xf53 38LB 0x9e7297 set_geom_lba_: ; 0xf532c LB 0x9e 7273 7298 push si ; 56 7274 7299 push di ; 57 … … 7282 7307 mov di, 000ffh ; bf ff 00 7283 7308 xor bx, bx ; 31 db 7284 jmp short 053 59h ; eb 057309 jmp short 0534dh ; eb 05 7285 7310 cmp bx, strict byte 00004h ; 83 fb 04 7286 jnl short 0536 fh ; 7d 167311 jnl short 05363h ; 7d 16 7287 7312 cmp dx, word [bp-002h] ; 3b 56 fe 7288 jnbe short 053 65h ; 77 077289 jne short 053 68h ; 75 087313 jnbe short 05359h ; 77 07 7314 jne short 0535ch ; 75 08 7290 7315 cmp ax, word [bp-004h] ; 3b 46 fc 7291 jc short 053 68h ; 72 037316 jc short 0535ch ; 72 03 7292 7317 inc di ; 47 7293 7318 shr di, 1 ; d1 ef … … 7295 7320 rcr ax, 1 ; d1 d8 7296 7321 inc bx ; 43 7297 jmp short 053 54h ; eb e57322 jmp short 05348h ; eb e5 7298 7323 mov ax, di ; 89 f8 7299 7324 xor dx, dx ; 31 d2 7300 7325 mov bx, strict word 0003fh ; bb 3f 00 7301 7326 xor cx, cx ; 31 c9 7302 call 09219h ; e8 9e3e7327 call 09219h ; e8 aa 3e 7303 7328 mov bx, ax ; 89 c3 7304 7329 mov cx, dx ; 89 d1 7305 7330 mov ax, word [bp-004h] ; 8b 46 fc 7306 7331 mov dx, word [bp-002h] ; 8b 56 fe 7307 call 091e0h ; e8 583e7332 call 091e0h ; e8 64 3e 7308 7333 mov word [es:si+002h], ax ; 26 89 44 02 7309 7334 cmp ax, 00400h ; 3d 00 04 7310 jbe short 053 97h ; 76 067335 jbe short 0538bh ; 76 06 7311 7336 mov word [es:si+002h], 00400h ; 26 c7 44 02 00 04 7312 7337 mov word [es:si], di ; 26 89 3c … … 7316 7341 pop si ; 5e 7317 7342 retn ; c3 7318 pushaw ; 607319 7343 push sp ; 54 7320 xchg byte [si-04dh], dl ; 86 54 b37321 7344 push sp ; 54 7322 mov BL, strict byte 054h ; b3 54 7323 mov BL, strict byte 054h ; b3 54 7324 mov dx, word [bp-047h] ; 8b 56 b9 7345 jp short 053f0h ; 7a 54 7346 cmpsw ; a7 7347 push sp ; 54 7348 cmpsw ; a7 7349 push sp ; 54 7350 cmpsw ; a7 7351 push sp ; 54 7352 jnle short 053fah ; 7f 56 7353 lodsw ; ad 7325 7354 push di ; 57 7326 mov cx, 0a457h ; b9 57 a4 7355 lodsw ; ad 7356 push di ; 57 7357 cbw ; 98 7327 7358 push si ; 56 7328 xchg si, ax ; 967359 mov dl, byte [bx-053h] ; 8a 57 ad 7329 7360 push di ; 57 7330 mov cx, 0b957h ; b9 57 b97361 lodsw ; ad 7331 7362 push di ; 57 7332 xchg si, ax ; 967363 mov dl, byte [bx-076h] ; 8a 57 8a 7333 7364 push di ; 57 7334 xchg si, ax ; 967365 lodsw ; ad 7335 7366 push di ; 57 7336 mov cx, 0b957h ; b9 57 b97367 lodsw ; ad 7337 7368 push di ; 57 7338 sbb dl, byte [bx-06ah] ; 1a 57 967369 push CS ; 0e 7339 7370 push di ; 57 7340 mov cx, 0b957h ; b9 57 b97371 mov dl, byte [bx-053h] ; 8a 57 ad 7341 7372 push di ; 57 7342 xchg si, ax ; 967373 lodsw ; ad 7343 7374 push di ; 57 7344 dec dx ; 4a7375 mov dl, byte [bx+03eh] ; 8a 57 3e 7345 7376 push di ; 57 7346 mov cx, 0b957h ; b9 57 b97377 lodsw ; ad 7347 7378 push di ; 57 7348 db 0b9h7379 lodsw ; ad 7349 7380 push di ; 57 7350 _int13_harddisk: ; 0xf53d6 LB 0x441 7381 lodsw ; ad 7382 push di ; 57 7383 _int13_harddisk: ; 0xf53ca LB 0x441 7351 7384 push bp ; 55 7352 7385 mov bp, sp ; 89 e5 … … 7354 7387 mov dx, strict word 0000eh ; ba 0e 00 7355 7388 mov ax, strict word 00040h ; b8 40 00 7356 call 0161ch ; e8 37c27389 call 0161ch ; e8 43 c2 7357 7390 mov si, 00122h ; be 22 01 7358 7391 mov word [bp-004h], ax ; 89 46 fc … … 7360 7393 mov dx, 0008eh ; ba 8e 00 7361 7394 mov ax, strict word 00040h ; b8 40 00 7362 call 0160eh ; e8 18c27395 call 0160eh ; e8 24 c2 7363 7396 mov ax, word [bp+00eh] ; 8b 46 0e 7364 7397 xor ah, ah ; 30 e4 7365 7398 cmp ax, 00080h ; 3d 80 00 7366 jc short 05 405h ; 72 057399 jc short 053f9h ; 72 05 7367 7400 cmp ax, 00090h ; 3d 90 00 7368 jc short 054 23h ; 72 1e7401 jc short 05417h ; 72 1e 7369 7402 mov ax, word [bp+00eh] ; 8b 46 0e 7370 7403 xor ah, ah ; 30 e4 … … 7373 7406 shr ax, 008h ; c1 e8 08 7374 7407 push ax ; 50 7375 push 00 5eeh ; 68 ee 057376 push 00 5fdh ; 68 fd 057408 push 0065eh ; 68 5e 06 7409 push 0066dh ; 68 6d 06 7377 7410 push strict byte 00004h ; 6a 04 7378 call 0190dh ; e8 f 0c47411 call 0190dh ; e8 fc c4 7379 7412 add sp, strict byte 0000ah ; 83 c4 0a 7380 jmp near 057 d4h ; e9 b1 037413 jmp near 057c8h ; e9 b1 03 7381 7414 mov ax, word [bp+00eh] ; 8b 46 0e 7382 7415 xor ah, ah ; 30 e4 … … 7387 7420 mov byte [bp-002h], dl ; 88 56 fe 7388 7421 cmp dl, 010h ; 80 fa 10 7389 jc short 0544 ch ; 72 107422 jc short 05440h ; 72 10 7390 7423 push ax ; 50 7391 7424 mov ax, word [bp+016h] ; 8b 46 16 7392 7425 shr ax, 008h ; c1 e8 08 7393 7426 push ax ; 50 7394 push 00 5eeh ; 68 ee 057395 push 006 28h ; 68 28 067396 jmp short 054 18h ; eb cc7427 push 0065eh ; 68 5e 06 7428 push 00698h ; 68 98 06 7429 jmp short 0540ch ; eb cc 7397 7430 mov bx, word [bp+016h] ; 8b 5e 16 7398 7431 shr bx, 008h ; c1 eb 08 7399 7432 cmp bx, strict byte 00018h ; 83 fb 18 7400 jnbe near 057 b9h ; 0f 87 60 037433 jnbe near 057adh ; 0f 87 60 03 7401 7434 add bx, bx ; 01 db 7402 jmp word [cs:bx+053 a4h] ; 2e ff a7 a4537435 jmp word [cs:bx+05398h] ; 2e ff a7 98 53 7403 7436 cmp byte [bp-002h], 008h ; 80 7e fe 08 7404 jnc near 0546 fh ; 0f 83 07 007437 jnc near 05463h ; 0f 83 07 00 7405 7438 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7406 call 01c0ch ; e8 9dc77439 call 01c0ch ; e8 a9 c7 7407 7440 mov byte [bp+017h], 000h ; c6 46 17 00 7408 7441 xor bx, bx ; 31 db 7409 7442 mov dx, strict word 00074h ; ba 74 00 7410 7443 mov ax, strict word 00040h ; b8 40 00 7411 call 0160eh ; e8 9 0c17444 call 0160eh ; e8 9c c1 7412 7445 and byte [bp+01ch], 0feh ; 80 66 1c fe 7413 7446 mov sp, bp ; 89 ec … … 7416 7449 mov dx, strict word 00074h ; ba 74 00 7417 7450 mov ax, strict word 00040h ; b8 40 00 7418 call 01600h ; e8 7 1c17451 call 01600h ; e8 7d c1 7419 7452 mov cl, al ; 88 c1 7420 7453 mov dx, word [bp+016h] ; 8b 56 16 … … 7427 7460 mov dx, strict word 00074h ; ba 74 00 7428 7461 mov ax, strict word 00040h ; b8 40 00 7429 call 0160eh ; e8 6 2c17462 call 0160eh ; e8 6e c1 7430 7463 test cl, cl ; 84 c9 7431 je short 054 73h ; 74 c37432 jmp near 057 f0h ; e9 3d 037464 je short 05467h ; 74 c3 7465 jmp near 057e4h ; e9 3d 03 7433 7466 mov ax, word [bp+016h] ; 8b 46 16 7434 7467 xor ah, ah ; 30 e4 … … 7450 7483 mov ax, word [bp-00ch] ; 8b 46 f4 7451 7484 cmp ax, 00080h ; 3d 80 00 7452 jnbe short 054e eh ; 77 047485 jnbe short 054e2h ; 77 04 7453 7486 test ax, ax ; 85 c0 7454 jne short 055 11h ; 75 237455 mov bx, 00d 38h ; bb 38 0d7487 jne short 05505h ; 75 23 7488 mov bx, 00da8h ; bb a8 0d 7456 7489 mov cx, ds ; 8c d9 7457 7490 mov ax, strict word 00004h ; b8 04 00 7458 call 018cch ; e8 d 3c37491 call 018cch ; e8 df c3 7459 7492 mov ax, word [bp+016h] ; 8b 46 16 7460 7493 shr ax, 008h ; c1 e8 08 7461 7494 push ax ; 50 7462 push 00 5eeh ; 68 ee 057463 push 006 5ah ; 68 5a 067495 push 0065eh ; 68 5e 06 7496 push 006cah ; 68 ca 06 7464 7497 push strict byte 00004h ; 6a 04 7465 call 0190dh ; e8 0 2c47498 call 0190dh ; e8 0e c4 7466 7499 add sp, strict byte 00008h ; 83 c4 08 7467 jmp near 057 d4h ; e9 c3 027500 jmp near 057c8h ; e9 c3 02 7468 7501 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7469 7502 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7476 7509 mov word [bp-00ah], dx ; 89 56 f6 7477 7510 cmp di, ax ; 39 c7 7478 jnc short 0553 eh ; 73 0c7511 jnc short 05532h ; 73 0c 7479 7512 cmp cx, word [bp-008h] ; 3b 4e f8 7480 jbe short 0553 eh ; 76 077513 jbe short 05532h ; 76 07 7481 7514 mov ax, word [bp-006h] ; 8b 46 fa 7482 7515 cmp ax, dx ; 39 d0 7483 jbe short 0556 ch ; 76 2e7484 mov bx, 00d 38h ; bb 38 0d7516 jbe short 05560h ; 76 2e 7517 mov bx, 00da8h ; bb a8 0d 7485 7518 mov cx, ds ; 8c d9 7486 7519 mov ax, strict word 00004h ; b8 04 00 7487 call 018cch ; e8 8 3c37520 call 018cch ; e8 8f c3 7488 7521 push dword [bp-008h] ; 66 ff 76 f8 7489 7522 push di ; 57 … … 7494 7527 shr ax, 008h ; c1 e8 08 7495 7528 push ax ; 50 7496 push 00 5eeh ; 68 ee 057497 push 006 82h ; 68 82 067529 push 0065eh ; 68 5e 06 7530 push 006f2h ; 68 f2 06 7498 7531 push strict byte 00004h ; 6a 04 7499 call 0190dh ; e8 a7c37532 call 0190dh ; e8 b3 c3 7500 7533 add sp, strict byte 00010h ; 83 c4 10 7501 jmp near 057 d4h ; e9 68 027534 jmp near 057c8h ; e9 68 02 7502 7535 mov ax, word [bp+016h] ; 8b 46 16 7503 7536 shr ax, 008h ; c1 e8 08 7504 7537 cmp ax, strict word 00004h ; 3d 04 00 7505 jne short 055 7ah ; 75 037506 jmp near 0546 fh ; e9 f5 fe7538 jne short 0556eh ; 75 03 7539 jmp near 05463h ; e9 f5 fe 7507 7540 movzx bx, byte [bp-002h] ; 0f b6 5e fe 7508 7541 imul bx, bx, strict byte 00018h ; 6b db 18 … … 7510 7543 add bx, si ; 01 f3 7511 7544 cmp cx, word [es:bx+02ch] ; 26 3b 4f 2c 7512 jne short 055 9bh ; 75 0f7545 jne short 0558fh ; 75 0f 7513 7546 mov ax, word [es:bx+030h] ; 26 8b 47 30 7514 7547 cmp ax, word [bp-00ah] ; 3b 46 f6 7515 jne short 055 9bh ; 75 067548 jne short 0558fh ; 75 06 7516 7549 cmp byte [bp-002h], 008h ; 80 7e fe 08 7517 jc short 055 cbh ; 72 307550 jc short 055bfh ; 72 30 7518 7551 mov ax, di ; 89 f8 7519 7552 xor dx, dx ; 31 d2 7520 7553 mov bx, cx ; 89 cb 7521 7554 xor cx, cx ; 31 c9 7522 call 09219h ; e8 7 33c7555 call 09219h ; e8 7f 3c 7523 7556 xor bx, bx ; 31 db 7524 7557 add ax, word [bp-008h] ; 03 46 f8 … … 7526 7559 mov bx, word [bp-00ah] ; 8b 5e f6 7527 7560 xor cx, cx ; 31 c9 7528 call 09219h ; e8 643c7561 call 09219h ; e8 70 3c 7529 7562 xor bx, bx ; 31 db 7530 7563 add ax, word [bp-006h] ; 03 46 fa … … 7570 7603 push ES ; 06 7571 7604 push si ; 56 7572 call word [word bx+000 14h] ; ff 97 14007605 call word [word bx+0007eh] ; ff 97 7e 00 7573 7606 mov dx, ax ; 89 c2 7574 7607 mov ax, word [bp+016h] ; 8b 46 16 … … 7579 7612 mov word [bp+016h], bx ; 89 5e 16 7580 7613 test dl, dl ; 84 d2 7581 je near 0546 fh ; 0f 84 13 fe7582 mov bx, 00d 38h ; bb 38 0d7614 je near 05463h ; 0f 84 13 fe 7615 mov bx, 00da8h ; bb a8 0d 7583 7616 mov cx, ds ; 8c d9 7584 7617 mov ax, strict word 00004h ; b8 04 00 7585 call 018cch ; e8 65c27618 call 018cch ; e8 71 c2 7586 7619 movzx ax, dl ; 0f b6 c2 7587 7620 push ax ; 50 … … 7589 7622 shr ax, 008h ; c1 e8 08 7590 7623 push ax ; 50 7591 push 00 5eeh ; 68 ee 057592 push 00 6c9h ; 68 c9 067624 push 0065eh ; 68 5e 06 7625 push 00739h ; 68 39 07 7593 7626 push strict byte 00004h ; 6a 04 7594 call 0190dh ; e8 9 0c27627 call 0190dh ; e8 9c c2 7595 7628 add sp, strict byte 0000ah ; 83 c4 0a 7596 7629 mov ax, word [bp+016h] ; 8b 46 16 7597 7630 xor ah, ah ; 30 e4 7598 7631 or ah, 00ch ; 80 cc 0c 7599 jmp near 057d ch ; e9 51 017600 mov bx, 00d 38h ; bb 38 0d7632 jmp near 057d0h ; e9 51 01 7633 mov bx, 00da8h ; bb a8 0d 7601 7634 mov cx, ds ; 8c d9 7602 7635 mov ax, strict word 00004h ; b8 04 00 7603 call 018cch ; e8 36c27604 push 00 6eah ; 68 ea 067636 call 018cch ; e8 42 c2 7637 push 0075ah ; 68 5a 07 7605 7638 push strict byte 00004h ; 6a 04 7606 call 0190dh ; e8 6fc27639 call 0190dh ; e8 7b c2 7607 7640 add sp, strict byte 00004h ; 83 c4 04 7608 jmp near 0546 fh ; e9 cb fd7641 jmp near 05463h ; e9 cb fd 7609 7642 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7610 7643 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7649 7682 or dx, ax ; 09 c2 7650 7683 mov word [bp+012h], dx ; 89 56 12 7651 jmp near 0546 fh ; e9 55 fd7684 jmp near 05463h ; e9 55 fd 7652 7685 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7653 7686 cwd ; 99 … … 7665 7698 and AL, strict byte 0c0h ; 24 c0 7666 7699 cmp AL, strict byte 040h ; 3c 40 7667 jne short 0573 fh ; 75 037668 jmp near 0546 fh ; e9 30 fd7700 jne short 05733h ; 75 03 7701 jmp near 05463h ; e9 30 fd 7669 7702 mov ax, word [bp+016h] ; 8b 46 16 7670 7703 xor ah, ah ; 30 e4 7671 7704 or ah, 0aah ; 80 cc aa 7672 jmp near 057d ch ; e9 92 007705 jmp near 057d0h ; e9 92 00 7673 7706 movzx ax, byte [bp-002h] ; 0f b6 46 fe 7674 7707 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7684 7717 mov bx, word [bp-008h] ; 8b 5e f8 7685 7718 xor cx, cx ; 31 c9 7686 call 09219h ; e8 a53a7719 call 09219h ; e8 b1 3a 7687 7720 mov bx, word [bp-006h] ; 8b 5e fa 7688 7721 xor cx, cx ; 31 c9 7689 call 09219h ; e8 9d3a7722 call 09219h ; e8 a9 3a 7690 7723 mov word [bp-010h], ax ; 89 46 f0 7691 7724 mov word [bp-00eh], dx ; 89 56 f2 … … 7696 7729 or ah, 003h ; 80 cc 03 7697 7730 mov word [bp+016h], ax ; 89 46 16 7698 jmp near 054 73h ; e9 dd fc7699 mov bx, 00d 38h ; bb 38 0d7731 jmp near 05467h ; e9 dd fc 7732 mov bx, 00da8h ; bb a8 0d 7700 7733 mov cx, ds ; 8c d9 7701 7734 mov ax, strict word 00004h ; b8 04 00 7702 call 018cch ; e8 2bc17735 call 018cch ; e8 37 c1 7703 7736 mov ax, word [bp+016h] ; 8b 46 16 7704 7737 shr ax, 008h ; c1 e8 08 7705 7738 push ax ; 50 7706 push 00 5eeh ; 68 ee 057707 push 007 04h ; 68 04 077739 push 0065eh ; 68 5e 06 7740 push 00774h ; 68 74 07 7708 7741 push strict byte 00004h ; 6a 04 7709 call 0190dh ; e8 5ac17742 call 0190dh ; e8 66 c1 7710 7743 add sp, strict byte 00008h ; 83 c4 08 7711 jmp near 0546 fh ; e9 b6 fc7712 mov bx, 00d 38h ; bb 38 0d7744 jmp near 05463h ; e9 b6 fc 7745 mov bx, 00da8h ; bb a8 0d 7713 7746 mov cx, ds ; 8c d9 7714 7747 mov ax, strict word 00004h ; b8 04 00 7715 call 018cch ; e8 08c17748 call 018cch ; e8 14 c1 7716 7749 mov ax, word [bp+016h] ; 8b 46 16 7717 7750 shr ax, 008h ; c1 e8 08 7718 7751 push ax ; 50 7719 push 00 5eeh ; 68 ee 057720 push 007 37h ; 68 37 077721 jmp near 05 506h ; e9 32 fd7752 push 0065eh ; 68 5e 06 7753 push 007a7h ; 68 a7 07 7754 jmp near 054fah ; e9 32 fd 7722 7755 mov ax, word [bp+016h] ; 8b 46 16 7723 7756 xor ah, ah ; 30 e4 … … 7729 7762 mov dx, strict word 00074h ; ba 74 00 7730 7763 mov ax, strict word 00040h ; b8 40 00 7731 call 0160eh ; e8 1ebe7764 call 0160eh ; e8 2a be 7732 7765 or byte [bp+01ch], 001h ; 80 4e 1c 01 7733 jmp near 05482h ; e9 8b fc 7734 mov DL, strict byte 058h ; b2 58 7735 retf 0ca58h ; ca 58 ca 7766 jmp near 05476h ; e9 8b fc 7767 cmpsb ; a6 7736 7768 pop ax ; 58 7737 retf 07958h ; ca 58 79 7769 mov si, 0be58h ; be 58 be 7770 pop ax ; 58 7771 mov si, 06d58h ; be 58 6d 7738 7772 pop sp ; 5c 7739 or ax, 0ca5ah ; 0d 5a ca7773 add word [bp+si-042h], bx ; 01 5a be 7740 7774 pop ax ; 58 7741 adc bx, word [bp+si+079h] ; 13 5a 79 7775 pop ES ; 07 7776 pop dx ; 5a 7777 insw ; 6d 7742 7778 pop sp ; 5c 7743 enter 0c85ch, 05ch ; c8 5c c8 5c 7744 enter 0c85ch, 05ch ; c8 5c c8 5c 7745 nop ; 90 7779 mov sp, 0bc5ch ; bc 5c bc 7746 7780 pop sp ; 5c 7747 enter 0c85ch, 05ch ; c8 5c c8 5c 7748 _int13_harddisk_ext: ; 0xf5817 LB 0x4cc 7781 mov sp, 0bc5ch ; bc 5c bc 7782 pop sp ; 5c 7783 test byte [si-044h], bl ; 84 5c bc 7784 pop sp ; 5c 7785 db 0bch 7786 pop sp ; 5c 7787 _int13_harddisk_ext: ; 0xf580b LB 0x4cc 7749 7788 push bp ; 55 7750 7789 mov bp, sp ; 89 e5 … … 7752 7791 mov dx, strict word 0000eh ; ba 0e 00 7753 7792 mov ax, strict word 00040h ; b8 40 00 7754 call 0161ch ; e8 f6 bd7793 call 0161ch ; e8 02 be 7755 7794 mov word [bp-014h], ax ; 89 46 ec 7756 7795 mov dx, strict word 0000eh ; ba 0e 00 7757 7796 mov ax, strict word 00040h ; b8 40 00 7758 call 0161ch ; e8 eabd7797 call 0161ch ; e8 f6 bd 7759 7798 mov si, 00122h ; be 22 01 7760 7799 mov word [bp-026h], ax ; 89 46 da … … 7762 7801 mov dx, 0008eh ; ba 8e 00 7763 7802 mov ax, strict word 00040h ; b8 40 00 7764 call 0160eh ; e8 cbbd7803 call 0160eh ; e8 d7 bd 7765 7804 mov ax, word [bp+00eh] ; 8b 46 0e 7766 7805 xor ah, ah ; 30 e4 7767 7806 cmp ax, 00080h ; 3d 80 00 7768 jc short 058 52h ; 72 057807 jc short 05846h ; 72 05 7769 7808 cmp ax, 00090h ; 3d 90 00 7770 jc short 058 70h ; 72 1e7809 jc short 05864h ; 72 1e 7771 7810 mov ax, word [bp+00eh] ; 8b 46 0e 7772 7811 xor ah, ah ; 30 e4 … … 7775 7814 shr ax, 008h ; c1 e8 08 7776 7815 push ax ; 50 7777 push 007 65h ; 68 65 077778 push 00 5fdh ; 68 fd 057816 push 007d5h ; 68 d5 07 7817 push 0066dh ; 68 6d 06 7779 7818 push strict byte 00004h ; 6a 04 7780 call 0190dh ; e8 a 3c07819 call 0190dh ; e8 af c0 7781 7820 add sp, strict byte 0000ah ; 83 c4 0a 7782 jmp near 05c a6h ; e9 36 047821 jmp near 05c9ah ; e9 36 04 7783 7822 mov ax, word [bp+00eh] ; 8b 46 0e 7784 7823 xor ah, ah ; 30 e4 … … 7788 7827 mov cl, byte [es:bx+0011fh] ; 26 8a 8f 1f 01 7789 7828 cmp cl, 010h ; 80 f9 10 7790 jc short 058 96h ; 72 107829 jc short 0588ah ; 72 10 7791 7830 push ax ; 50 7792 7831 mov ax, word [bp+016h] ; 8b 46 16 7793 7832 shr ax, 008h ; c1 e8 08 7794 7833 push ax ; 50 7795 push 007 65h ; 68 65 077796 push 006 28h ; 68 28 067797 jmp short 058 65h ; eb cf7834 push 007d5h ; 68 d5 07 7835 push 00698h ; 68 98 06 7836 jmp short 05859h ; eb cf 7798 7837 mov bx, word [bp+016h] ; 8b 5e 16 7799 7838 shr bx, 008h ; c1 eb 08 7800 7839 sub bx, strict byte 00041h ; 83 eb 41 7801 7840 cmp bx, strict byte 0000fh ; 83 fb 0f 7802 jnbe near 05c c8h ; 0f 87 22 047841 jnbe near 05cbch ; 0f 87 22 04 7803 7842 add bx, bx ; 01 db 7804 7843 mov ax, word [bp+016h] ; 8b 46 16 7805 7844 xor ah, ah ; 30 e4 7806 jmp word [cs:bx+057 f7h] ; 2e ff a7 f7577845 jmp word [cs:bx+057ebh] ; 2e ff a7 eb 57 7807 7846 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 7808 7847 mov ax, word [bp+016h] ; 8b 46 16 … … 7811 7850 mov word [bp+016h], ax ; 89 46 16 7812 7851 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 7813 jmp near 05c7 dh ; e9 b3 037852 jmp near 05c71h ; e9 b3 03 7814 7853 mov bx, word [bp+00ah] ; 8b 5e 0a 7815 7854 mov es, [bp+004h] ; 8e 46 04 … … 7826 7865 mov ax, word [es:bx+00eh] ; 26 8b 47 0e 7827 7866 or ax, word [bp-00ah] ; 0b 46 f6 7828 je short 05 90bh ; 74 117867 je short 058ffh ; 74 11 7829 7868 mov ax, word [bp+016h] ; 8b 46 16 7830 7869 shr ax, 008h ; c1 e8 08 7831 7870 push ax ; 50 7832 push 007 65h ; 68 65 077833 push 007 78h ; 68 78 077871 push 007d5h ; 68 d5 07 7872 push 007e8h ; 68 e8 07 7834 7873 push strict byte 00007h ; 6a 07 7835 jmp short 059 55h ; eb 4a7874 jmp short 05949h ; eb 4a 7836 7875 mov es, [bp-010h] ; 8e 46 f0 7837 7876 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 7845 7884 mov ch, byte [es:bx+01eh] ; 26 8a 6f 1e 7846 7885 cmp ax, word [es:bx+034h] ; 26 3b 47 34 7847 jnbe short 059 3bh ; 77 0b7848 jne short 0595 eh ; 75 2c7886 jnbe short 0592fh ; 77 0b 7887 jne short 05952h ; 75 2c 7849 7888 mov dx, word [bp-00ah] ; 8b 56 f6 7850 7889 cmp dx, word [es:bx+032h] ; 26 3b 57 32 7851 jc short 0595 eh ; 72 237852 mov bx, 00d 38h ; bb 38 0d7890 jc short 05952h ; 72 23 7891 mov bx, 00da8h ; bb a8 0d 7853 7892 mov cx, ds ; 8c d9 7854 7893 mov ax, strict word 00004h ; b8 04 00 7855 call 018cch ; e8 86bf7894 call 018cch ; e8 92 bf 7856 7895 mov ax, word [bp+016h] ; 8b 46 16 7857 7896 shr ax, 008h ; c1 e8 08 7858 7897 push ax ; 50 7859 push 007 65h ; 68 65 077860 push 00 7a1h ; 68 a1 077898 push 007d5h ; 68 d5 07 7899 push 00811h ; 68 11 08 7861 7900 push strict byte 00004h ; 6a 04 7862 call 0190dh ; e8 b5bf7901 call 0190dh ; e8 c1 bf 7863 7902 add sp, strict byte 00008h ; 83 c4 08 7864 jmp near 05c a6h ; e9 48 037903 jmp near 05c9ah ; e9 48 03 7865 7904 mov dx, word [bp+016h] ; 8b 56 16 7866 7905 shr dx, 008h ; c1 ea 08 7867 7906 mov word [bp-00ch], dx ; 89 56 f4 7868 7907 cmp dx, strict byte 00044h ; 83 fa 44 7869 je near 05c 79h ; 0f 84 0b 037908 je near 05c6dh ; 0f 84 0b 03 7870 7909 cmp dx, strict byte 00047h ; 83 fa 47 7871 je near 05c 79h ; 0f 84 04 037910 je near 05c6dh ; 0f 84 04 03 7872 7911 mov es, [bp-026h] ; 8e 46 da 7873 7912 db 066h, 026h, 0c7h, 044h, 014h, 000h, 000h, 000h, 000h … … 7893 7932 push ES ; 06 7894 7933 push si ; 56 7895 call word [word bx-000 6ch] ; ff 97 94ff7934 call word [word bx-00002h] ; ff 97 fe ff 7896 7935 mov dx, ax ; 89 c2 7897 7936 mov es, [bp-026h] ; 8e 46 da … … 7901 7940 mov word [es:di+002h], ax ; 26 89 45 02 7902 7941 test dl, dl ; 84 d2 7903 je near 05c 79h ; 0f 84 97 027904 mov bx, 00d 38h ; bb 38 0d7942 je near 05c6dh ; 0f 84 97 02 7943 mov bx, 00da8h ; bb a8 0d 7905 7944 mov cx, ds ; 8c d9 7906 7945 mov ax, strict word 00004h ; b8 04 00 7907 call 018cch ; e8 dfbe7946 call 018cch ; e8 eb be 7908 7947 movzx ax, dl ; 0f b6 c2 7909 7948 push ax ; 50 7910 7949 push word [bp-00ch] ; ff 76 f4 7911 push 007 65h ; 68 65 077912 push 00 6c9h ; 68 c9 067950 push 007d5h ; 68 d5 07 7951 push 00739h ; 68 39 07 7913 7952 push strict byte 00004h ; 6a 04 7914 call 0190dh ; e8 0ebf7953 call 0190dh ; e8 1a bf 7915 7954 add sp, strict byte 0000ah ; 83 c4 0a 7916 7955 mov ax, word [bp+016h] ; 8b 46 16 7917 7956 xor ah, ah ; 30 e4 7918 7957 or ah, 00ch ; 80 cc 0c 7919 jmp near 05ca eh ; e9 a1 027958 jmp near 05ca2h ; e9 a1 02 7920 7959 or ah, 0b2h ; 80 cc b2 7921 jmp near 05ca eh ; e9 9b 027960 jmp near 05ca2h ; e9 9b 02 7922 7961 mov bx, word [bp+00ah] ; 8b 5e 0a 7923 7962 mov ax, word [bp+004h] ; 8b 46 04 … … 7929 7968 mov word [bp-00eh], ax ; 89 46 f2 7930 7969 cmp ax, strict word 0001ah ; 3d 1a 00 7931 jc near 05c a6h ; 0f 82 76 027932 jc near 05a b7h ; 0f 82 83 007970 jc near 05c9ah ; 0f 82 76 02 7971 jc near 05aabh ; 0f 82 83 00 7933 7972 movzx ax, cl ; 0f b6 c1 7934 7973 imul ax, ax, strict byte 00018h ; 6b c0 18 … … 7968 8007 ; mov dword [es:di+014h], strict dword 000000000h ; 66 26 c7 45 14 00 00 00 00 7969 8008 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 7970 jc near 05b c3h ; 0f 82 04 018009 jc near 05bb7h ; 0f 82 04 01 7971 8010 mov es, [bp-004h] ; 8e 46 fc 7972 8011 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 7994 8033 mov al, byte [es:di+023h] ; 26 8a 45 23 7995 8034 test al, al ; 84 c0 7996 jne short 05b 15h ; 75 048035 jne short 05b09h ; 75 04 7997 8036 xor dx, dx ; 31 d2 7998 jmp short 05b 18h ; eb 038037 jmp short 05b0ch ; eb 03 7999 8038 mov dx, strict word 00008h ; ba 08 00 8000 8039 or dl, 010h ; 80 ca 10 … … 8011 8050 or word [bp-008h], dx ; 09 56 f8 8012 8051 cmp AL, strict byte 003h ; 3c 03 8013 jne short 05b3 eh ; 75 058052 jne short 05b32h ; 75 05 8014 8053 mov ax, strict word 00003h ; b8 03 00 8015 jmp short 05b 40h ; eb 028054 jmp short 05b34h ; eb 02 8016 8055 xor ax, ax ; 31 c0 8017 8056 or word [bp-008h], ax ; 09 46 f8 … … 8038 8077 xor ch, ch ; 30 ed 8039 8078 mov byte [bp-002h], ch ; 88 6e fe 8040 jmp short 05b a4h ; eb 068079 jmp short 05b98h ; eb 06 8041 8080 cmp byte [bp-002h], 00fh ; 80 7e fe 0f 8042 jnc short 05b b9h ; 73 158081 jnc short 05badh ; 73 15 8043 8082 movzx dx, byte [bp-002h] ; 0f b6 56 fe 8044 8083 add dx, 00312h ; 81 c2 12 03 8045 8084 mov ax, word [bp-014h] ; 8b 46 ec 8046 call 01600h ; e8 4eba8085 call 01600h ; e8 5a ba 8047 8086 add ch, al ; 00 c5 8048 8087 inc byte [bp-002h] ; fe 46 fe 8049 jmp short 05b9 eh ; eb e58088 jmp short 05b92h ; eb e5 8050 8089 neg ch ; f6 dd 8051 8090 mov es, [bp-026h] ; 8e 46 da 8052 8091 mov byte [es:si+001ffh], ch ; 26 88 ac ff 01 8053 8092 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 8054 jc near 05c 79h ; 0f 82 ae 008093 jc near 05c6dh ; 0f 82 ae 00 8055 8094 movzx ax, cl ; 0f b6 c1 8056 8095 cwd ; 99 … … 8070 8109 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 8071 8110 test al, al ; 84 c0 8072 jne short 05 c0bh ; 75 098111 jne short 05bffh ; 75 09 8073 8112 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 8074 8113 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 8079 8118 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 8080 8119 test al, al ; 84 c0 8081 jne short 05c 37h ; 75 138120 jne short 05c2bh ; 75 13 8082 8121 mov word [es:bx+030h], dx ; 26 89 57 30 8083 8122 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 8094 8133 xor cl, cl ; 30 c9 8095 8134 mov CH, strict byte 01eh ; b5 1e 8096 jmp short 05c5 eh ; eb 058135 jmp short 05c52h ; eb 05 8097 8136 cmp ch, 040h ; 80 fd 40 8098 jnc short 05c 70h ; 73 128137 jnc short 05c64h ; 73 12 8099 8138 movzx dx, ch ; 0f b6 d5 8100 8139 add dx, word [bp+00ah] ; 03 56 0a 8101 8140 mov ax, word [bp+004h] ; 8b 46 04 8102 call 01600h ; e8 96b98141 call 01600h ; e8 a2 b9 8103 8142 add cl, al ; 00 c1 8104 8143 db 0feh, 0c5h 8105 8144 ; inc ch ; fe c5 8106 jmp short 05c 59h ; eb e98145 jmp short 05c4dh ; eb e9 8107 8146 neg cl ; f6 d9 8108 8147 mov es, [bp-004h] ; 8e 46 fc … … 8112 8151 mov dx, strict word 00074h ; ba 74 00 8113 8152 mov ax, strict word 00040h ; b8 40 00 8114 call 0160eh ; e8 86b98153 call 0160eh ; e8 92 b9 8115 8154 and byte [bp+01ch], 0feh ; 80 66 1c fe 8116 8155 mov sp, bp ; 89 ec … … 8118 8157 retn ; c3 8119 8158 cmp ax, strict word 00006h ; 3d 06 00 8120 je short 05c 79h ; 74 e48159 je short 05c6dh ; 74 e4 8121 8160 cmp ax, strict word 00001h ; 3d 01 00 8122 jc short 05c a6h ; 72 0c8123 jbe short 05c 79h ; 76 dd8161 jc short 05c9ah ; 72 0c 8162 jbe short 05c6dh ; 76 dd 8124 8163 cmp ax, strict word 00003h ; 3d 03 00 8125 jc short 05c a6h ; 72 058164 jc short 05c9ah ; 72 05 8126 8165 cmp ax, strict word 00004h ; 3d 04 00 8127 jbe short 05c 79h ; 76 d38166 jbe short 05c6dh ; 76 d3 8128 8167 mov ax, word [bp+016h] ; 8b 46 16 8129 8168 xor ah, ah ; 30 e4 … … 8135 8174 mov dx, strict word 00074h ; ba 74 00 8136 8175 mov ax, strict word 00040h ; b8 40 00 8137 call 0160eh ; e8 4cb98176 call 0160eh ; e8 58 b9 8138 8177 or byte [bp+01ch], 001h ; 80 4e 1c 01 8139 jmp short 05c8 ch ; eb c48140 mov bx, 00d 38h ; bb 38 0d8178 jmp short 05c80h ; eb c4 8179 mov bx, 00da8h ; bb a8 0d 8141 8180 mov cx, ds ; 8c d9 8142 8181 mov ax, strict word 00004h ; b8 04 00 8143 call 018cch ; e8 f9 bb8182 call 018cch ; e8 05 bc 8144 8183 mov ax, word [bp+016h] ; 8b 46 16 8145 8184 shr ax, 008h ; c1 e8 08 8146 8185 push ax ; 50 8147 push 007 65h ; 68 65 078148 push 007 37h ; 68 37 078149 jmp near 059 53h ; e9 70 fc8150 _int14_function: ; 0xf5c e3LB 0x1558186 push 007d5h ; 68 d5 07 8187 push 007a7h ; 68 a7 07 8188 jmp near 05947h ; e9 70 fc 8189 _int14_function: ; 0xf5cd7 LB 0x155 8151 8190 push bp ; 55 8152 8191 mov bp, sp ; 89 e5 … … 8156 8195 add dx, dx ; 01 d2 8157 8196 mov ax, strict word 00040h ; b8 40 00 8158 call 0161ch ; e8 29b98197 call 0161ch ; e8 35 b9 8159 8198 mov si, ax ; 89 c6 8160 8199 mov bx, ax ; 89 c3 … … 8162 8201 add dx, strict byte 0007ch ; 83 c2 7c 8163 8202 mov ax, strict word 00040h ; b8 40 00 8164 call 01600h ; e8 fd b88203 call 01600h ; e8 09 b9 8165 8204 mov cl, al ; 88 c1 8166 8205 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8167 jnc near 05e2 eh ; 0f 83 21 018206 jnc near 05e22h ; 0f 83 21 01 8168 8207 test si, si ; 85 f6 8169 jbe near 05e2 eh ; 0f 86 1b 018208 jbe near 05e22h ; 0f 86 1b 01 8170 8209 mov al, byte [bp+013h] ; 8a 46 13 8171 8210 cmp AL, strict byte 001h ; 3c 01 8172 jc short 05d 2bh ; 72 118173 jbe short 05d7 fh ; 76 638211 jc short 05d1fh ; 72 11 8212 jbe short 05d73h ; 76 63 8174 8213 cmp AL, strict byte 003h ; 3c 03 8175 je near 05e 17h ; 0f 84 f5 008214 je near 05e0bh ; 0f 84 f5 00 8176 8215 cmp AL, strict byte 002h ; 3c 02 8177 je near 05dc dh ; 0f 84 a5 008178 jmp near 05e 28h ; e9 fd 008216 je near 05dc1h ; 0f 84 a5 00 8217 jmp near 05e1ch ; e9 fd 00 8179 8218 test al, al ; 84 c0 8180 jne near 05e 28h ; 0f 85 f7 008219 jne near 05e1ch ; 0f 85 f7 00 8181 8220 lea dx, [bx+003h] ; 8d 57 03 8182 8221 in AL, DX ; ec … … 8210 8249 ; sub ah, ah ; 2a e4 8211 8250 mov byte [bp+012h], al ; 88 46 12 8212 jmp near 05 e09h ; e9 97 008251 jmp near 05dfdh ; e9 97 00 8213 8252 mov AL, strict byte 017h ; b0 17 8214 8253 mov dx, bx ; 89 da … … 8217 8256 mov AL, strict byte 004h ; b0 04 8218 8257 out DX, AL ; ee 8219 jmp short 05d 54h ; eb d58258 jmp short 05d48h ; eb d5 8220 8259 mov dx, strict word 0006ch ; ba 6c 00 8221 8260 mov ax, strict word 00040h ; b8 40 00 8222 call 0161ch ; e8 94b88261 call 0161ch ; e8 a0 b8 8223 8262 mov si, ax ; 89 c6 8224 8263 lea dx, [bx+005h] ; 8d 57 05 … … 8228 8267 and ax, strict word 00060h ; 25 60 00 8229 8268 cmp ax, strict word 00060h ; 3d 60 00 8230 je short 05da fh ; 74 178269 je short 05da3h ; 74 17 8231 8270 test cl, cl ; 84 c9 8232 je short 05da fh ; 74 138271 je short 05da3h ; 74 13 8233 8272 mov dx, strict word 0006ch ; ba 6c 00 8234 8273 mov ax, strict word 00040h ; b8 40 00 8235 call 0161ch ; e8 77b88274 call 0161ch ; e8 83 b8 8236 8275 cmp ax, si ; 39 f0 8237 je short 05d 8ah ; 74 e18276 je short 05d7eh ; 74 e1 8238 8277 mov si, ax ; 89 c6 8239 8278 db 0feh, 0c9h 8240 8279 ; dec cl ; fe c9 8241 jmp short 05d 8ah ; eb db8280 jmp short 05d7eh ; eb db 8242 8281 test cl, cl ; 84 c9 8243 je short 05d b9h ; 74 068282 je short 05dadh ; 74 06 8244 8283 mov al, byte [bp+012h] ; 8a 46 12 8245 8284 mov dx, bx ; 89 da … … 8251 8290 mov byte [bp+013h], al ; 88 46 13 8252 8291 test cl, cl ; 84 c9 8253 jne short 05 e09h ; 75 438292 jne short 05dfdh ; 75 43 8254 8293 or AL, strict byte 080h ; 0c 80 8255 8294 mov byte [bp+013h], al ; 88 46 13 8256 jmp short 05 e09h ; eb 3c8295 jmp short 05dfdh ; eb 3c 8257 8296 mov dx, strict word 0006ch ; ba 6c 00 8258 8297 mov ax, strict word 00040h ; b8 40 00 8259 call 0161ch ; e8 46b88298 call 0161ch ; e8 52 b8 8260 8299 mov si, ax ; 89 c6 8261 8300 lea dx, [bx+005h] ; 8d 57 05 … … 8264 8303 ; sub ah, ah ; 2a e4 8265 8304 test AL, strict byte 001h ; a8 01 8266 jne short 05d f9h ; 75 178305 jne short 05dedh ; 75 17 8267 8306 test cl, cl ; 84 c9 8268 je short 05d f9h ; 74 138307 je short 05dedh ; 74 13 8269 8308 mov dx, strict word 0006ch ; ba 6c 00 8270 8309 mov ax, strict word 00040h ; b8 40 00 8271 call 0161ch ; e8 2db88310 call 0161ch ; e8 39 b8 8272 8311 cmp ax, si ; 39 f0 8273 je short 05d d8h ; 74 e58312 je short 05dcch ; 74 e5 8274 8313 mov si, ax ; 89 c6 8275 8314 db 0feh, 0c9h 8276 8315 ; dec cl ; fe c9 8277 jmp short 05d d8h ; eb df8316 jmp short 05dcch ; eb df 8278 8317 test cl, cl ; 84 c9 8279 je short 05e0 fh ; 74 128318 je short 05e03h ; 74 12 8280 8319 mov byte [bp+013h], 000h ; c6 46 13 00 8281 8320 mov dx, bx ; 89 da … … 8285 8324 mov byte [bp+012h], al ; 88 46 12 8286 8325 and byte [bp+01ch], 0feh ; 80 66 1c fe 8287 jmp short 05e 32h ; eb 238326 jmp short 05e26h ; eb 23 8288 8327 lea dx, [bx+005h] ; 8d 57 05 8289 8328 in AL, DX ; ec 8290 8329 db 02ah, 0e4h 8291 8330 ; sub ah, ah ; 2a e4 8292 jmp short 05d c8h ; eb b18331 jmp short 05dbch ; eb b1 8293 8332 lea dx, [si+005h] ; 8d 54 05 8294 8333 in AL, DX ; ec … … 8300 8339 db 02ah, 0e4h 8301 8340 ; sub ah, ah ; 2a e4 8302 jmp short 05 e06h ; eb de8341 jmp short 05dfah ; eb de 8303 8342 or byte [bp+01ch], 001h ; 80 4e 1c 01 8304 jmp short 05e 32h ; eb 048343 jmp short 05e26h ; eb 04 8305 8344 or byte [bp+01ch], 001h ; 80 4e 1c 01 8306 8345 lea sp, [bp-002h] ; 8d 66 fe … … 8308 8347 pop bp ; 5d 8309 8348 retn ; c3 8310 set_enable_a20_: ; 0xf5e 38LB 0x2c8349 set_enable_a20_: ; 0xf5e2c LB 0x2c 8311 8350 push bp ; 55 8312 8351 mov bp, sp ; 89 e5 … … 8321 8360 mov cl, al ; 88 c1 8322 8361 test bx, bx ; 85 db 8323 je short 05e 51h ; 74 058362 je short 05e45h ; 74 05 8324 8363 or AL, strict byte 002h ; 0c 02 8325 8364 out DX, AL ; ee 8326 jmp short 05e 54h ; eb 038365 jmp short 05e48h ; eb 03 8327 8366 and AL, strict byte 0fdh ; 24 fd 8328 8367 out DX, AL ; ee … … 8337 8376 pop bp ; 5d 8338 8377 retn ; c3 8339 set_e820_range_: ; 0xf5e 64LB 0x8c8378 set_e820_range_: ; 0xf5e58 LB 0x8c 8340 8379 push si ; 56 8341 8380 push bp ; 55 … … 8366 8405 retn 0000ah ; c2 0a 00 8367 8406 in AL, DX ; ec 8368 jmp near 020 97h ; e9 d8 c18407 jmp near 0208bh ; e9 d8 c1 8369 8408 sar byte [bx-06f6fh], 089h ; c0 bf 91 90 89 8370 8409 mov byte [bx+05283h], al ; 88 87 83 52 … … 8372 8411 inc cx ; 41 8373 8412 and AL, strict byte 000h ; 24 00 8374 db 08fh, 063h, 02fh 8375 ; pop word [bp+di+02fh] ; 8f 63 2f 8413 and word [bp+di+023h], strict byte 0005fh ; 83 63 23 5f 8414 db 036h, 05fh 8415 ; ss pop di ; 36 5f 8416 retf ; cb 8376 8417 pop di ; 5f 8377 inc dx ; 428418 rcr word [bx-02ah], 1 ; d1 5f d6 8378 8419 pop di ; 5f 8379 xlatb ; d7 8420 fistp dword [bx+07dh] ; db 5f 7d 8421 pushaw ; 60 8422 sbb ah, byte [bp+si+040h] ; 1a 62 40 8423 db 062h 8424 les bx, [bx-03ch] ; c4 5f c4 8380 8425 pop di ; 5f 8381 fstp qword [bx-01eh] ; dd 5f e2 8426 or ax, 03563h ; 0d 63 35 8427 arpl word [bx+si+063h], cx ; 63 48 63 8428 push di ; 57 8429 arpl bx, cx ; 63 cb 8382 8430 pop di ; 5f 8383 out 05fh, ax ; e7 5f 8384 mov word [bx+si+026h], sp ; 89 60 26 8385 bound cx, [si+062h] ; 62 4c 62 8386 rcr byte [bx-030h], 1 ; d0 5f d0 8387 pop di ; 5f 8388 sbb word [bp+di+041h], sp ; 19 63 41 8389 arpl word [si+063h], dx ; 63 54 63 8390 arpl word [bp+di-029h], sp ; 63 63 d7 8391 pop di ; 5f 8392 push strict byte 00063h ; 6a 63 8393 _int15_function: ; 0xf5ef0 LB 0x4cd 8431 pop si ; 5e 8432 db 063h 8433 _int15_function: ; 0xf5ee4 LB 0x4cd 8394 8434 push bp ; 55 8395 8435 mov bp, sp ; 89 e5 … … 8401 8441 shr ax, 008h ; c1 e8 08 8402 8442 cmp ax, 000ech ; 3d ec 00 8403 jnbe near 0638 fh ; 0f 87 8b 048443 jnbe near 06383h ; 0f 87 8b 04 8404 8444 push CS ; 0e 8405 8445 pop ES ; 07 8406 8446 mov cx, strict word 00012h ; b9 12 00 8407 mov di, 05e bbh ; bf bb5e8447 mov di, 05eafh ; bf af 5e 8408 8448 repne scasb ; f2 ae 8409 8449 sal cx, 1 ; d1 e1 8410 8450 mov di, cx ; 89 cf 8411 mov si, word [cs:di+05ec ch] ; 2e 8b b5 cc5e8451 mov si, word [cs:di+05ec0h] ; 2e 8b b5 c0 5e 8412 8452 mov ax, word [bp+012h] ; 8b 46 12 8413 8453 xor ah, ah ; 30 e4 … … 8422 8462 xor ah, ah ; 30 e4 8423 8463 cmp ax, 000c0h ; 3d c0 00 8424 jne near 0638 fh ; 0f 85 54 048464 jne near 06383h ; 0f 85 54 04 8425 8465 or byte [bp+018h], 001h ; 80 4e 18 01 8426 jmp near 063 38h ; e9 f6 038466 jmp near 0632ch ; e9 f6 03 8427 8467 mov dx, ax ; 89 c2 8428 8468 cmp ax, strict word 00001h ; 3d 01 00 8429 jc short 05f 57h ; 72 0e8430 jbe short 05f 6bh ; 76 208469 jc short 05f4bh ; 72 0e 8470 jbe short 05f5fh ; 76 20 8431 8471 cmp ax, strict word 00003h ; 3d 03 00 8432 je short 05f 98h ; 74 488472 je short 05f8ch ; 74 48 8433 8473 cmp ax, strict word 00002h ; 3d 02 00 8434 je short 05f 7bh ; 74 268435 jmp short 05f a5h ; eb 4e8474 je short 05f6fh ; 74 26 8475 jmp short 05f99h ; eb 4e 8436 8476 test ax, ax ; 85 c0 8437 jne short 05f a5h ; 75 4a8477 jne short 05f99h ; 75 4a 8438 8478 xor ax, ax ; 31 c0 8439 call 05e 38h ; e8 d8 fe8479 call 05e2ch ; e8 d8 fe 8440 8480 and byte [bp+018h], 0feh ; 80 66 18 fe 8441 8481 mov byte [bp+013h], 000h ; c6 46 13 00 8442 jmp near 05f d0h ; e9 65 008482 jmp near 05fc4h ; e9 65 00 8443 8483 mov ax, strict word 00001h ; b8 01 00 8444 call 05e 38h ; e8 c7 fe8484 call 05e2ch ; e8 c7 fe 8445 8485 and byte [bp+018h], 0feh ; 80 66 18 fe 8446 8486 mov byte [bp+013h], dh ; 88 76 13 8447 jmp near 05f d0h ; e9 55 008487 jmp near 05fc4h ; e9 55 00 8448 8488 mov dx, 00092h ; ba 92 00 8449 8489 in AL, DX ; ec … … 8457 8497 and byte [bp+018h], 0feh ; 80 66 18 fe 8458 8498 mov byte [bp+013h], ah ; 88 66 13 8459 jmp near 05f d0h ; e9 38 008499 jmp near 05fc4h ; e9 38 00 8460 8500 and byte [bp+018h], 0feh ; 80 66 18 fe 8461 8501 mov byte [bp+013h], ah ; 88 66 13 8462 8502 mov word [bp+00ch], ax ; 89 46 0c 8463 jmp near 05f d0h ; e9 2b 008464 mov bx, 00d 38h ; bb 38 0d8503 jmp near 05fc4h ; e9 2b 00 8504 mov bx, 00da8h ; bb a8 0d 8465 8505 mov cx, ds ; 8c d9 8466 8506 mov ax, strict word 00004h ; b8 04 00 8467 call 018cch ; e8 1cb98507 call 018cch ; e8 28 b9 8468 8508 mov ax, word [bp+012h] ; 8b 46 12 8469 8509 xor ah, ah ; 30 e4 8470 8510 push ax ; 50 8471 push 00 7c6h ; 68 c6 078511 push 00836h ; 68 36 08 8472 8512 push strict byte 00004h ; 6a 04 8473 call 0190dh ; e8 4fb98513 call 0190dh ; e8 5b b9 8474 8514 add sp, strict byte 00006h ; 83 c4 06 8475 8515 or byte [bp+018h], 001h ; 80 4e 18 01 … … 8484 8524 retn ; c3 8485 8525 mov word [bp+018h], bx ; 89 5e 18 8486 jmp near 060 83h ; e9 a6 008526 jmp near 06077h ; e9 a6 00 8487 8527 mov word [bp+018h], bx ; 89 5e 18 8488 jmp short 05f d0h ; eb ee8528 jmp short 05fc4h ; eb ee 8489 8529 mov word [bp+018h], cx ; 89 4e 18 8490 jmp short 05fc dh ; eb e68530 jmp short 05fc1h ; eb e6 8491 8531 test byte [bp+012h], 0ffh ; f6 46 12 ff 8492 je short 060 59h ; 74 6c8532 je short 0604dh ; 74 6c 8493 8533 mov dx, 000a0h ; ba a0 00 8494 8534 mov ax, strict word 00040h ; b8 40 00 8495 call 01600h ; e8 0ab68535 call 01600h ; e8 16 b6 8496 8536 test AL, strict byte 001h ; a8 01 8497 jne near 0632 fh ; 0f 85 33 038537 jne near 06323h ; 0f 85 33 03 8498 8538 mov bx, strict word 00001h ; bb 01 00 8499 8539 mov dx, 000a0h ; ba a0 00 8500 8540 mov ax, strict word 00040h ; b8 40 00 8501 call 0160eh ; e8 06b68541 call 0160eh ; e8 12 b6 8502 8542 mov bx, word [bp+014h] ; 8b 5e 14 8503 8543 mov dx, 00098h ; ba 98 00 8504 8544 mov ax, strict word 00040h ; b8 40 00 8505 call 0162ah ; e8 16b68545 call 0162ah ; e8 22 b6 8506 8546 mov bx, word [bp+00ch] ; 8b 5e 0c 8507 8547 mov dx, 0009ah ; ba 9a 00 8508 8548 mov ax, strict word 00040h ; b8 40 00 8509 call 0162ah ; e8 0ab68549 call 0162ah ; e8 16 b6 8510 8550 mov bx, word [bp+00eh] ; 8b 5e 0e 8511 8551 mov dx, 0009ch ; ba 9c 00 8512 8552 mov ax, strict word 00040h ; b8 40 00 8513 call 0162ah ; e8 fe b58553 call 0162ah ; e8 0a b6 8514 8554 mov bx, word [bp+010h] ; 8b 5e 10 8515 8555 mov dx, 0009eh ; ba 9e 00 8516 8556 mov ax, strict word 00040h ; b8 40 00 8517 call 0162ah ; e8 f 2b58557 call 0162ah ; e8 fe b5 8518 8558 and byte [bp+018h], 0feh ; 80 66 18 fe 8519 8559 mov dx, 000a1h ; ba a1 00 … … 8524 8564 out DX, AL ; ee 8525 8565 mov ax, strict word 0000bh ; b8 0b 00 8526 call 0165ch ; e8 1 1b68566 call 0165ch ; e8 1d b6 8527 8567 or AL, strict byte 040h ; 0c 40 8528 8568 movzx dx, al ; 0f b6 d0 8529 8569 mov ax, strict word 0000bh ; b8 0b 00 8530 call 01670h ; e8 1ab68531 jmp near 05f d0h ; e9 77 ff8570 call 01670h ; e8 26 b6 8571 jmp near 05fc4h ; e9 77 ff 8532 8572 cmp ax, strict word 00001h ; 3d 01 00 8533 jne short 060 77h ; 75 198573 jne short 0606bh ; 75 19 8534 8574 xor bx, bx ; 31 db 8535 8575 mov dx, 000a0h ; ba a0 00 8536 8576 mov ax, strict word 00040h ; b8 40 00 8537 call 0160eh ; e8 a5b58577 call 0160eh ; e8 b1 b5 8538 8578 and byte [bp+018h], 0feh ; 80 66 18 fe 8539 8579 mov ax, strict word 0000bh ; b8 0b 00 8540 call 0165ch ; e8 e9b58580 call 0165ch ; e8 f5 b5 8541 8581 and AL, strict byte 0bfh ; 24 bf 8542 jmp short 0604 dh ; eb d68582 jmp short 06041h ; eb d6 8543 8583 mov word [bp+018h], bx ; 89 5e 18 8544 8584 mov ax, dx ; 89 d0 … … 8548 8588 or dx, ax ; 09 c2 8549 8589 mov word [bp+012h], dx ; 89 56 12 8550 jmp near 05f d0h ; e9 47 ff8590 jmp near 05fc4h ; e9 47 ff 8551 8591 cli ; fa 8552 8592 mov ax, strict word 00001h ; b8 01 00 8553 call 05e 38h ; e8 a8 fd8593 call 05e2ch ; e8 a8 fd 8554 8594 mov di, ax ; 89 c7 8555 8595 mov ax, word [bp+014h] ; 8b 46 14 … … 8561 8601 mov byte [bp-006h], dl ; 88 56 fa 8562 8602 cmp cx, ax ; 39 c1 8563 jnc short 060a fh ; 73 058603 jnc short 060a3h ; 73 05 8564 8604 db 0feh, 0c2h 8565 8605 ; inc dl ; fe c2 … … 8569 8609 mov ax, word [bp+014h] ; 8b 46 14 8570 8610 mov bx, strict word 0002fh ; bb 2f 00 8571 call 0162ah ; e8 6cb58611 call 0162ah ; e8 78 b5 8572 8612 mov dx, word [bp+006h] ; 8b 56 06 8573 8613 add dx, strict byte 0000ah ; 83 c2 0a 8574 8614 mov ax, word [bp+014h] ; 8b 46 14 8575 8615 mov bx, cx ; 89 cb 8576 call 0162ah ; e8 5eb58616 call 0162ah ; e8 6a b5 8577 8617 movzx bx, byte [bp-006h] ; 0f b6 5e fa 8578 8618 mov dx, word [bp+006h] ; 8b 56 06 8579 8619 add dx, strict byte 0000ch ; 83 c2 0c 8580 8620 mov ax, word [bp+014h] ; 8b 46 14 8581 call 0160eh ; e8 3 2b58621 call 0160eh ; e8 3e b5 8582 8622 mov dx, word [bp+006h] ; 8b 56 06 8583 8623 add dx, strict byte 0000dh ; 83 c2 0d 8584 8624 mov ax, word [bp+014h] ; 8b 46 14 8585 8625 mov bx, 00093h ; bb 93 00 8586 call 0160eh ; e8 2 3b58626 call 0160eh ; e8 2f b5 8587 8627 mov dx, word [bp+006h] ; 8b 56 06 8588 8628 add dx, strict byte 0000eh ; 83 c2 0e 8589 8629 mov ax, word [bp+014h] ; 8b 46 14 8590 8630 xor bx, bx ; 31 db 8591 call 0162ah ; e8 3 1b58631 call 0162ah ; e8 3d b5 8592 8632 mov dx, word [bp+006h] ; 8b 56 06 8593 8633 add dx, strict byte 00020h ; 83 c2 20 8594 8634 mov ax, word [bp+014h] ; 8b 46 14 8595 8635 mov bx, strict word 0ffffh ; bb ff ff 8596 call 0162ah ; e8 2 2b58636 call 0162ah ; e8 2e b5 8597 8637 mov dx, word [bp+006h] ; 8b 56 06 8598 8638 add dx, strict byte 00022h ; 83 c2 22 8599 8639 mov ax, word [bp+014h] ; 8b 46 14 8600 8640 xor bx, bx ; 31 db 8601 call 0162ah ; e8 14b58641 call 0162ah ; e8 20 b5 8602 8642 mov dx, word [bp+006h] ; 8b 56 06 8603 8643 add dx, strict byte 00024h ; 83 c2 24 8604 8644 mov ax, word [bp+014h] ; 8b 46 14 8605 8645 mov bx, strict word 0000fh ; bb 0f 00 8606 call 0160eh ; e8 e9b48646 call 0160eh ; e8 f5 b4 8607 8647 mov dx, word [bp+006h] ; 8b 56 06 8608 8648 add dx, strict byte 00025h ; 83 c2 25 8609 8649 mov ax, word [bp+014h] ; 8b 46 14 8610 8650 mov bx, 0009bh ; bb 9b 00 8611 call 0160eh ; e8 dab48651 call 0160eh ; e8 e6 b4 8612 8652 mov dx, word [bp+006h] ; 8b 56 06 8613 8653 add dx, strict byte 00026h ; 83 c2 26 8614 8654 mov ax, word [bp+014h] ; 8b 46 14 8615 8655 xor bx, bx ; 31 db 8616 call 0162ah ; e8 e8b48656 call 0162ah ; e8 f4 b4 8617 8657 mov ax, ss ; 8c d0 8618 8658 mov cx, ax ; 89 c1 … … 8624 8664 mov ax, word [bp+014h] ; 8b 46 14 8625 8665 mov bx, strict word 0ffffh ; bb ff ff 8626 call 0162ah ; e8 ccb48666 call 0162ah ; e8 d8 b4 8627 8667 mov dx, word [bp+006h] ; 8b 56 06 8628 8668 add dx, strict byte 0002ah ; 83 c2 2a 8629 8669 mov ax, word [bp+014h] ; 8b 46 14 8630 8670 mov bx, cx ; 89 cb 8631 call 0162ah ; e8 beb48671 call 0162ah ; e8 ca b4 8632 8672 movzx bx, byte [bp-008h] ; 0f b6 5e f8 8633 8673 mov dx, word [bp+006h] ; 8b 56 06 8634 8674 add dx, strict byte 0002ch ; 83 c2 2c 8635 8675 mov ax, word [bp+014h] ; 8b 46 14 8636 call 0160eh ; e8 9 2b48676 call 0160eh ; e8 9e b4 8637 8677 mov dx, word [bp+006h] ; 8b 56 06 8638 8678 add dx, strict byte 0002dh ; 83 c2 2d 8639 8679 mov ax, word [bp+014h] ; 8b 46 14 8640 8680 mov bx, 00093h ; bb 93 00 8641 call 0160eh ; e8 8 3b48681 call 0160eh ; e8 8f b4 8642 8682 mov dx, word [bp+006h] ; 8b 56 06 8643 8683 add dx, strict byte 0002eh ; 83 c2 2e 8644 8684 mov ax, word [bp+014h] ; 8b 46 14 8645 8685 xor bx, bx ; 31 db 8646 call 0162ah ; e8 9 1b48686 call 0162ah ; e8 9d b4 8647 8687 mov si, word [bp+006h] ; 8b 76 06 8648 8688 mov es, [bp+014h] ; 8e 46 14 … … 8655 8695 mov word [00467h], sp ; 89 26 67 04 8656 8696 mov [00469h], ss ; 8c 16 69 04 8657 call 061 b5h ; e8 00 008697 call 061a9h ; e8 00 00 8658 8698 pop di ; 5f 8659 8699 add di, strict byte 0001bh ; 83 c7 1b … … 8678 8718 cld ; fc 8679 8719 rep movsw ; f3 a5 8680 call 061 e9h ; e8 00 008720 call 061ddh ; e8 00 00 8681 8721 pop ax ; 58 8682 8722 push 0f000h ; 68 00 f0 … … 8699 8739 pop DS ; 1f 8700 8740 mov ax, di ; 89 f8 8701 call 05e 38h ; e8 1e fc8741 call 05e2ch ; e8 1e fc 8702 8742 sti ; fb 8703 8743 mov byte [bp+013h], 000h ; c6 46 13 00 8704 8744 and byte [bp+018h], 0feh ; 80 66 18 fe 8705 jmp near 05f d0h ; e9 aa fd8745 jmp near 05fc4h ; e9 aa fd 8706 8746 mov ax, strict word 00031h ; b8 31 00 8707 call 0165ch ; e8 3 0b48747 call 0165ch ; e8 3c b4 8708 8748 xor ah, ah ; 30 e4 8709 8749 mov dx, ax ; 89 c2 8710 8750 sal dx, 008h ; c1 e2 08 8711 8751 mov ax, strict word 00030h ; b8 30 00 8712 call 0165ch ; e8 2 3b48752 call 0165ch ; e8 2f b4 8713 8753 xor ah, ah ; 30 e4 8714 8754 or dx, ax ; 09 c2 8715 8755 mov word [bp+012h], dx ; 89 56 12 8716 8756 cmp dx, strict byte 0ffc0h ; 83 fa c0 8717 jbe short 0621 fh ; 76 da8757 jbe short 06213h ; 76 da 8718 8758 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 8719 jmp short 0621 fh ; eb d38759 jmp short 06213h ; eb d3 8720 8760 cli ; fa 8721 8761 mov ax, strict word 00001h ; b8 01 00 8722 call 05e 38h ; e8 e5 fb8762 call 05e2ch ; e8 e5 fb 8723 8763 mov dx, word [bp+006h] ; 8b 56 06 8724 8764 add dx, strict byte 00038h ; 83 c2 38 8725 8765 mov ax, word [bp+014h] ; 8b 46 14 8726 8766 mov bx, strict word 0ffffh ; bb ff ff 8727 call 0162ah ; e8 c8b38767 call 0162ah ; e8 d4 b3 8728 8768 mov dx, word [bp+006h] ; 8b 56 06 8729 8769 add dx, strict byte 0003ah ; 83 c2 3a 8730 8770 mov ax, word [bp+014h] ; 8b 46 14 8731 8771 xor bx, bx ; 31 db 8732 call 0162ah ; e8 bab38772 call 0162ah ; e8 c6 b3 8733 8773 mov dx, word [bp+006h] ; 8b 56 06 8734 8774 add dx, strict byte 0003ch ; 83 c2 3c 8735 8775 mov ax, word [bp+014h] ; 8b 46 14 8736 8776 mov bx, strict word 0000fh ; bb 0f 00 8737 call 0160eh ; e8 8fb38777 call 0160eh ; e8 9b b3 8738 8778 mov dx, word [bp+006h] ; 8b 56 06 8739 8779 add dx, strict byte 0003dh ; 83 c2 3d 8740 8780 mov ax, word [bp+014h] ; 8b 46 14 8741 8781 mov bx, 0009bh ; bb 9b 00 8742 call 0160eh ; e8 8 0b38782 call 0160eh ; e8 8c b3 8743 8783 mov dx, word [bp+006h] ; 8b 56 06 8744 8784 add dx, strict byte 0003eh ; 83 c2 3e 8745 8785 mov ax, word [bp+014h] ; 8b 46 14 8746 8786 xor bx, bx ; 31 db 8747 call 0162ah ; e8 8eb38787 call 0162ah ; e8 9a b3 8748 8788 mov AL, strict byte 011h ; b0 11 8749 8789 mov dx, strict word 00020h ; ba 20 00 … … 8775 8815 out DX, AL ; ee 8776 8816 mov si, word [bp+006h] ; 8b 76 06 8777 call 062d dh ; e8 00 008817 call 062d1h ; e8 00 00 8778 8818 pop di ; 5f 8779 8819 add di, strict byte 00018h ; 83 c7 18 … … 8803 8843 push cx ; 51 8804 8844 retf ; cb 8805 jmp near 05f d0h ; e9 b7 fc8806 mov bx, 00d 38h ; bb 38 0d8845 jmp near 05fc4h ; e9 b7 fc 8846 mov bx, 00da8h ; bb a8 0d 8807 8847 mov cx, ds ; 8c d9 8808 8848 mov ax, strict word 00004h ; b8 04 00 8809 call 018cch ; e8 a8b58810 push 008 06h ; 68 06 088849 call 018cch ; e8 b4 b5 8850 push 00876h ; 68 76 08 8811 8851 push strict byte 00004h ; 6a 04 8812 call 0190dh ; e8 e 1b58852 call 0190dh ; e8 ed b5 8813 8853 add sp, strict byte 00004h ; 83 c4 04 8814 8854 or byte [bp+018h], 001h ; 80 4e 18 01 … … 8817 8857 or ah, 086h ; 80 cc 86 8818 8858 mov word [bp+012h], ax ; 89 46 12 8819 jmp near 05f d0h ; e9 8f fc8859 jmp near 05fc4h ; e9 8f fc 8820 8860 mov word [bp+018h], cx ; 89 4e 18 8821 8861 mov word [bp+012h], ax ; 89 46 12 8822 8862 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 8823 8863 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 8824 jmp near 05f d0h ; e9 7c fc8864 jmp near 05fc4h ; e9 7c fc 8825 8865 mov dx, strict word 0000eh ; ba 0e 00 8826 8866 mov ax, strict word 00040h ; b8 40 00 8827 call 0161ch ; e8 bfb28867 call 0161ch ; e8 cb b2 8828 8868 mov word [bp+014h], ax ; 89 46 14 8829 jmp near 0621 fh ; e9 bc fe8830 push 008 35h ; 68 35 088869 jmp near 06213h ; e9 bc fe 8870 push 008a5h ; 68 a5 08 8831 8871 push strict byte 00008h ; 6a 08 8832 jmp short 063 29h ; eb bf8872 jmp short 0631dh ; eb bf 8833 8873 test byte [bp+012h], 0ffh ; f6 46 12 ff 8834 jne short 0638 fh ; 75 1f8874 jne short 06383h ; 75 1f 8835 8875 mov word [bp+012h], ax ; 89 46 12 8836 8876 mov ax, word [bp+00ch] ; 8b 46 0c 8837 8877 xor ah, ah ; 30 e4 8838 8878 cmp ax, strict word 00001h ; 3d 01 00 8839 jc short 063 88h ; 72 0b8879 jc short 0637ch ; 72 0b 8840 8880 cmp ax, strict word 00003h ; 3d 03 00 8841 jnbe short 063 88h ; 77 068881 jnbe short 0637ch ; 77 06 8842 8882 mov word [bp+018h], cx ; 89 4e 18 8843 jmp near 05f d0h ; e9 48 fc8883 jmp near 05fc4h ; e9 48 fc 8844 8884 or byte [bp+018h], 001h ; 80 4e 18 01 8845 jmp near 05f d0h ; e9 41 fc8846 mov bx, 00d 38h ; bb 38 0d8885 jmp near 05fc4h ; e9 41 fc 8886 mov bx, 00da8h ; bb a8 0d 8847 8887 mov cx, ds ; 8c d9 8848 8888 mov ax, strict word 00004h ; b8 04 00 8849 call 018cch ; e8 3 2b58889 call 018cch ; e8 3e b5 8850 8890 push word [bp+00ch] ; ff 76 0c 8851 8891 push word [bp+012h] ; ff 76 12 8852 push 008 4ch ; 68 4c 088892 push 008bch ; 68 bc 08 8853 8893 push strict byte 00004h ; 6a 04 8854 call 0190dh ; e8 65b58894 call 0190dh ; e8 71 b5 8855 8895 add sp, strict byte 00008h ; 83 c4 08 8856 jmp short 0632fh ; eb 82 8857 db 066h, 065h, 088h, 065h, 0abh 8858 ; mov byte [gs:di-055h], ah ; 66 65 88 65 ab 8859 db 065h, 0cdh, 065h 8860 ; gs int 065h ; 65 cd 65 8861 in ax, DX ; ed 8862 db 065h, 00eh 8863 ; gs push CS ; 65 0e 8864 dec ebp ; 66 4d 8865 db 066h, 079h, 066h 8866 ; jns short 06423h ; 66 79 66 8867 _int15_function32: ; 0xf63bd LB 0x37e 8896 jmp short 06323h ; eb 82 8897 pop dx ; 5a 8898 db 065h, 07ch, 065h 8899 ; gs jl short 0640ah ; 65 7c 65 8900 lahf ; 9f 8901 sal word [gs:di-01fh], 065h ; 65 c1 65 e1 65 8902 add ah, byte [bp+041h] ; 02 66 41 8903 insd ; 66 6d 8904 db 066h 8905 _int15_function32: ; 0xf63b1 LB 0x37e 8868 8906 push bp ; 55 8869 8907 mov bp, sp ; 89 e5 … … 8877 8915 xor ah, ah ; 30 e4 8878 8916 cmp dx, 000e8h ; 81 fa e8 00 8879 je near 064 8ah ; 0f 84 ad 008917 je near 0647eh ; 0f 84 ad 00 8880 8918 cmp dx, 000d0h ; 81 fa d0 00 8881 je short 064 25h ; 74 428919 je short 06419h ; 74 42 8882 8920 cmp dx, 00086h ; 81 fa 86 00 8883 jne near 06 70bh ; 0f 85 20 038921 jne near 066ffh ; 0f 85 20 03 8884 8922 sti ; fb 8885 8923 mov ax, word [bp+01ch] ; 8b 46 1c … … 8900 8938 db 066h, 00bh, 0c9h 8901 8939 ; or ecx, ecx ; 66 0b c9 8902 je near 064 22h ; 0f 84 0e 008940 je near 06416h ; 0f 84 0e 00 8903 8941 in AL, strict byte 061h ; e4 61 8904 8942 and AL, strict byte 010h ; 24 10 8905 8943 db 03ah, 0c4h 8906 8944 ; cmp al, ah ; 3a c4 8907 je short 064 14h ; 74 f88945 je short 06408h ; 74 f8 8908 8946 db 08ah, 0e0h 8909 8947 ; mov ah, al ; 8a e0 8910 8948 dec ecx ; 66 49 8911 jne short 064 14h ; 75 f28912 jmp near 067 35h ; e9 10 038949 jne short 06408h ; 75 f2 8950 jmp near 06729h ; e9 10 03 8913 8951 cmp ax, strict word 0004fh ; 3d 4f 00 8914 jne near 06 70bh ; 0f 85 df 028952 jne near 066ffh ; 0f 85 df 02 8915 8953 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 8916 jne near 06 70bh ; 0f 85 d6 028954 jne near 066ffh ; 0f 85 d6 02 8917 8955 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 8918 jne near 06 70bh ; 0f 85 cd 028956 jne near 066ffh ; 0f 85 cd 02 8919 8957 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 8920 jne near 06 70bh ; 0f 85 c4 028958 jne near 066ffh ; 0f 85 c4 02 8921 8959 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 8922 jne near 06 70bh ; 0f 85 bb 028960 jne near 066ffh ; 0f 85 bb 02 8923 8961 mov ax, word [bp+00ah] ; 8b 46 0a 8924 8962 or ax, word [bp+008h] ; 0b 46 08 8925 jne near 06 70bh ; 0f 85 b1 028963 jne near 066ffh ; 0f 85 b1 02 8926 8964 mov ax, word [bp+006h] ; 8b 46 06 8927 8965 or ax, word [bp+004h] ; 0b 46 04 8928 jne near 06 70bh ; 0f 85 a7 028966 jne near 066ffh ; 0f 85 a7 02 8929 8967 mov word [bp+028h], bx ; 89 5e 28 8930 8968 mov ax, word [bp+014h] ; 8b 46 14 … … 8937 8975 mov word [bp+006h], ax ; 89 46 06 8938 8976 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 8939 jmp near 067 35h ; e9 ab 028977 jmp near 06729h ; e9 ab 02 8940 8978 cmp ax, strict word 00020h ; 3d 20 00 8941 je short 064 99h ; 74 0a8979 je short 0648dh ; 74 0a 8942 8980 cmp ax, strict word 00001h ; 3d 01 00 8943 je near 066 c0h ; 0f 84 2a 028944 jmp near 06 70bh ; e9 72 028981 je near 066b4h ; 0f 84 2a 02 8982 jmp near 066ffh ; e9 72 02 8945 8983 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 8946 jne near 06 70bh ; 0f 85 69 028984 jne near 066ffh ; 0f 85 69 02 8947 8985 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 8948 jne near 06 70bh ; 0f 85 60 028986 jne near 066ffh ; 0f 85 60 02 8949 8987 mov ax, strict word 00035h ; b8 35 00 8950 call 0165ch ; e8 abb18988 call 0165ch ; e8 b7 b1 8951 8989 movzx bx, al ; 0f b6 d8 8952 8990 xor dx, dx ; 31 d2 … … 8954 8992 sal bx, 1 ; d1 e3 8955 8993 rcl dx, 1 ; d1 d2 8956 loop 064 b9h ; e2 fa8994 loop 064adh ; e2 fa 8957 8995 mov ax, strict word 00034h ; b8 34 00 8958 call 0165ch ; e8 97b18996 call 0165ch ; e8 a3 b1 8959 8997 xor ah, ah ; 30 e4 8960 8998 mov dx, bx ; 89 da … … 8964 9002 adc dx, 00100h ; 81 d2 00 01 8965 9003 cmp dx, 00100h ; 81 fa 00 01 8966 jc short 064d fh ; 72 068967 jne short 0650 ch ; 75 319004 jc short 064d3h ; 72 06 9005 jne short 06500h ; 75 31 8968 9006 test bx, bx ; 85 db 8969 jnbe short 0650 ch ; 77 2d9007 jnbe short 06500h ; 77 2d 8970 9008 mov ax, strict word 00031h ; b8 31 00 8971 call 0165ch ; e8 77b19009 call 0165ch ; e8 83 b1 8972 9010 movzx bx, al ; 0f b6 d8 8973 9011 xor dx, dx ; 31 d2 … … 8975 9013 sal bx, 1 ; d1 e3 8976 9014 rcl dx, 1 ; d1 d2 8977 loop 064e dh ; e2 fa9015 loop 064e1h ; e2 fa 8978 9016 mov ax, strict word 00030h ; b8 30 00 8979 call 0165ch ; e8 6 3b19017 call 0165ch ; e8 6f b1 8980 9018 xor ah, ah ; 30 e4 8981 9019 or bx, ax ; 09 c3 … … 8983 9021 sal bx, 1 ; d1 e3 8984 9022 rcl dx, 1 ; d1 d2 8985 loop 06 500h ; e2 fa9023 loop 064f4h ; e2 fa 8986 9024 add bx, strict byte 00000h ; 83 c3 00 8987 9025 adc dx, strict byte 00010h ; 83 d2 10 8988 9026 mov ax, strict word 00062h ; b8 62 00 8989 call 0165ch ; e8 4ab19027 call 0165ch ; e8 56 b1 8990 9028 xor ah, ah ; 30 e4 8991 9029 mov word [bp-00ah], ax ; 89 46 f6 … … 8995 9033 sal word [bp-00ah], 1 ; d1 66 f6 8996 9034 rcl word [bp-008h], 1 ; d1 56 f8 8997 loop 0651 fh ; e2 f89035 loop 06513h ; e2 f8 8998 9036 mov ax, strict word 00061h ; b8 61 00 8999 call 0165ch ; e8 2fb19037 call 0165ch ; e8 3b b1 9000 9038 xor ah, ah ; 30 e4 9001 9039 or word [bp-00ah], ax ; 09 46 f6 … … 9004 9042 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9005 9043 mov ax, strict word 00063h ; b8 63 00 9006 call 0165ch ; e8 19b19044 call 0165ch ; e8 25 b1 9007 9045 mov byte [bp-004h], al ; 88 46 fc 9008 9046 mov byte [bp-006h], al ; 88 46 fa 9009 9047 mov ax, word [bp+014h] ; 8b 46 14 9010 9048 cmp ax, strict word 00007h ; 3d 07 00 9011 jnbe near 06 70bh ; 0f 87 b8 019049 jnbe near 066ffh ; 0f 87 b8 01 9012 9050 mov si, ax ; 89 c6 9013 9051 add si, ax ; 01 c6 … … 9016 9054 mov ax, dx ; 89 d0 9017 9055 adc ax, strict word 0ffffh ; 15 ff ff 9018 jmp word [cs:si+063a dh] ; 2e ff a4 ad639056 jmp word [cs:si+063a1h] ; 2e ff a4 a1 63 9019 9057 push strict byte 00001h ; 6a 01 9020 9058 push dword 000000000h ; 66 6a 00 … … 9025 9063 xor bx, bx ; 31 db 9026 9064 xor cx, cx ; 31 c9 9027 call 05e 64h ; e8 e7 f89065 call 05e58h ; e8 e7 f8 9028 9066 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9029 jmp near 066 aah ; e9 22 019067 jmp near 0669eh ; e9 22 01 9030 9068 push strict byte 00002h ; 6a 02 9031 9069 push dword 000000000h ; 66 6a 00 … … 9036 9074 mov bx, 0fc00h ; bb 00 fc 9037 9075 mov cx, strict word 00009h ; b9 09 00 9038 call 05e 64h ; e8 c4 f89076 call 05e58h ; e8 c4 f8 9039 9077 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9040 jmp near 066 aah ; e9 ff 009078 jmp near 0669eh ; e9 ff 00 9041 9079 push strict byte 00002h ; 6a 02 9042 9080 push dword 000000000h ; 66 6a 00 … … 9047 9085 xor bx, bx ; 31 db 9048 9086 mov cx, strict word 0000fh ; b9 0f 00 9049 call 05e 64h ; e8 a2 f89087 call 05e58h ; e8 a2 f8 9050 9088 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9051 jmp near 066 aah ; e9 dd 009089 jmp near 0669eh ; e9 dd 00 9052 9090 push strict byte 00001h ; 6a 01 9053 9091 push dword 000000000h ; 66 6a 00 … … 9058 9096 xor bx, bx ; 31 db 9059 9097 mov cx, strict word 00010h ; b9 10 00 9060 call 05e 64h ; e8 82 f89098 call 05e58h ; e8 82 f8 9061 9099 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9062 jmp near 066 aah ; e9 bd 009100 jmp near 0669eh ; e9 bd 00 9063 9101 push strict byte 00003h ; 6a 03 9064 9102 push dword 000000000h ; 66 6a 00 … … 9070 9108 mov cx, ax ; 89 c1 9071 9109 mov ax, si ; 89 f0 9072 call 05e 64h ; e8 61 f89110 call 05e58h ; e8 61 f8 9073 9111 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9074 jmp near 066 aah ; e9 9c 009112 jmp near 0669eh ; e9 9c 00 9075 9113 push strict byte 00002h ; 6a 02 9076 9114 push dword 000000000h ; 66 6a 00 … … 9080 9118 xor bx, bx ; 31 db 9081 9119 mov cx, strict word 0fffch ; b9 fc ff 9082 call 05e 64h ; e8 40 f89120 call 05e58h ; e8 40 f8 9083 9121 cmp byte [bp-004h], 000h ; 80 7e fc 00 9084 jne short 066 31h ; 75 079122 jne short 06625h ; 75 07 9085 9123 mov ax, word [bp-008h] ; 8b 46 f8 9086 9124 test ax, ax ; 85 c0 9087 je short 066 45h ; 74 149125 je short 06639h ; 74 14 9088 9126 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9089 jmp short 066 aah ; eb 6f9127 jmp short 0669eh ; eb 6f 9090 9128 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9091 jmp short 066 aah ; eb 659129 jmp short 0669eh ; eb 65 9092 9130 mov word [bp+014h], ax ; 89 46 14 9093 9131 mov word [bp+016h], ax ; 89 46 16 9094 jmp short 066 aah ; eb 5d9132 jmp short 0669eh ; eb 5d 9095 9133 push strict byte 00002h ; 6a 02 9096 9134 push dword 000000000h ; 66 6a 00 … … 9100 9138 xor bx, bx ; 31 db 9101 9139 xor cx, cx ; 31 c9 9102 call 05e 64h ; e8 02 f89140 call 05e58h ; e8 02 f8 9103 9141 cmp byte [bp-004h], 000h ; 80 7e fc 00 9104 jne short 0666 fh ; 75 079142 jne short 06663h ; 75 07 9105 9143 mov ax, word [bp-008h] ; 8b 46 f8 9106 9144 test ax, ax ; 85 c0 9107 je short 066 71h ; 74 029108 jmp short 066 31h ; eb c09145 je short 06665h ; 74 02 9146 jmp short 06625h ; eb c0 9109 9147 mov word [bp+014h], ax ; 89 46 14 9110 9148 mov word [bp+016h], ax ; 89 46 16 9111 jmp short 066 aah ; eb 319149 jmp short 0669eh ; eb 31 9112 9150 cmp byte [bp-004h], 000h ; 80 7e fc 00 9113 jne short 066 85h ; 75 069151 jne short 06679h ; 75 06 9114 9152 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9115 je short 066 aah ; 74 259153 je short 0669eh ; 74 25 9116 9154 push strict byte 00001h ; 6a 01 9117 9155 mov al, byte [bp-006h] ; 8a 46 fa … … 9126 9164 xor bx, bx ; 31 db 9127 9165 xor cx, cx ; 31 c9 9128 call 05e 64h ; e8 c2 f79166 call 05e58h ; e8 c2 f7 9129 9167 xor ax, ax ; 31 c0 9130 9168 mov word [bp+014h], ax ; 89 46 14 … … 9133 9171 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9134 9172 and byte [bp+028h], 0feh ; 80 66 28 fe 9135 jmp short 067 35h ; eb 759173 jmp short 06729h ; eb 75 9136 9174 mov word [bp+028h], bx ; 89 5e 28 9137 9175 mov ax, strict word 00031h ; b8 31 00 9138 call 0165ch ; e8 9 3af9176 call 0165ch ; e8 9f af 9139 9177 movzx dx, al ; 0f b6 d0 9140 9178 sal dx, 008h ; c1 e2 08 9141 9179 mov ax, strict word 00030h ; b8 30 00 9142 call 0165ch ; e8 87af9180 call 0165ch ; e8 93 af 9143 9181 xor ah, ah ; 30 e4 9144 9182 or dx, ax ; 09 c2 9145 9183 mov word [bp+01ch], dx ; 89 56 1c 9146 9184 cmp dx, 03c00h ; 81 fa 00 3c 9147 jbe short 066 e7h ; 76 059185 jbe short 066dbh ; 76 05 9148 9186 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9149 9187 mov ax, strict word 00035h ; b8 35 00 9150 call 0165ch ; e8 6faf9188 call 0165ch ; e8 7b af 9151 9189 movzx dx, al ; 0f b6 d0 9152 9190 sal dx, 008h ; c1 e2 08 9153 9191 mov ax, strict word 00034h ; b8 34 00 9154 call 0165ch ; e8 6 3af9192 call 0165ch ; e8 6f af 9155 9193 xor ah, ah ; 30 e4 9156 9194 or dx, ax ; 09 c2 … … 9159 9197 mov word [bp+020h], ax ; 89 46 20 9160 9198 mov word [bp+014h], dx ; 89 56 14 9161 jmp short 067 35h ; eb 2a9162 mov bx, 00d 38h ; bb 38 0d9199 jmp short 06729h ; eb 2a 9200 mov bx, 00da8h ; bb a8 0d 9163 9201 mov cx, ds ; 8c d9 9164 9202 mov ax, strict word 00004h ; b8 04 00 9165 call 018cch ; e8 b6b19203 call 018cch ; e8 c2 b1 9166 9204 push word [bp+014h] ; ff 76 14 9167 9205 push word [bp+020h] ; ff 76 20 9168 push 008 4ch ; 68 4c 089206 push 008bch ; 68 bc 08 9169 9207 push strict byte 00004h ; 6a 04 9170 call 0190dh ; e8 e9b19208 call 0190dh ; e8 f5 b1 9171 9209 add sp, strict byte 00008h ; 83 c4 08 9172 9210 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9179 9217 pop bp ; 5d 9180 9218 retn ; c3 9181 init_rtc_: ; 0xf67 3bLB 0x289219 init_rtc_: ; 0xf672f LB 0x28 9182 9220 push bp ; 55 9183 9221 mov bp, sp ; 89 e5 … … 9185 9223 mov dx, strict word 00026h ; ba 26 00 9186 9224 mov ax, strict word 0000ah ; b8 0a 00 9187 call 01670h ; e8 28af9225 call 01670h ; e8 34 af 9188 9226 mov dx, strict word 00002h ; ba 02 00 9189 9227 mov ax, strict word 0000bh ; b8 0b 00 9190 call 01670h ; e8 1faf9228 call 01670h ; e8 2b af 9191 9229 mov ax, strict word 0000ch ; b8 0c 00 9192 call 0165ch ; e8 05af9230 call 0165ch ; e8 11 af 9193 9231 mov ax, strict word 0000dh ; b8 0d 00 9194 call 0165ch ; e8 ff ae9232 call 0165ch ; e8 0b af 9195 9233 lea sp, [bp-002h] ; 8d 66 fe 9196 9234 pop dx ; 5a 9197 9235 pop bp ; 5d 9198 9236 retn ; c3 9199 rtc_updating_: ; 0xf67 63LB 0x219237 rtc_updating_: ; 0xf6757 LB 0x21 9200 9238 push bp ; 55 9201 9239 mov bp, sp ; 89 e5 … … 9203 9241 mov dx, 061a8h ; ba a8 61 9204 9242 dec dx ; 4a 9205 je short 067 7bh ; 74 0e9243 je short 0676fh ; 74 0e 9206 9244 mov ax, strict word 0000ah ; b8 0a 00 9207 call 0165ch ; e8 e9ae9245 call 0165ch ; e8 f5 ae 9208 9246 test AL, strict byte 080h ; a8 80 9209 jne short 067 6ah ; 75 f39247 jne short 0675eh ; 75 f3 9210 9248 xor ax, ax ; 31 c0 9211 jmp short 0677 eh ; eb 039249 jmp short 06772h ; eb 03 9212 9250 mov ax, strict word 00001h ; b8 01 00 9213 9251 lea sp, [bp-002h] ; 8d 66 fe … … 9215 9253 pop bp ; 5d 9216 9254 retn ; c3 9217 _int70_function: ; 0xf67 84LB 0xbe9255 _int70_function: ; 0xf6778 LB 0xbe 9218 9256 push bp ; 55 9219 9257 mov bp, sp ; 89 e5 … … 9221 9259 push ax ; 50 9222 9260 mov ax, strict word 0000bh ; b8 0b 00 9223 call 0165ch ; e8 cdae9261 call 0165ch ; e8 d9 ae 9224 9262 mov dl, al ; 88 c2 9225 9263 mov byte [bp-004h], al ; 88 46 fc 9226 9264 mov ax, strict word 0000ch ; b8 0c 00 9227 call 0165ch ; e8 c 2ae9265 call 0165ch ; e8 ce ae 9228 9266 mov dh, al ; 88 c6 9229 9267 test dl, 060h ; f6 c2 60 9230 je near 068 29h ; 0f 84 86 009268 je near 0681dh ; 0f 84 86 00 9231 9269 test AL, strict byte 020h ; a8 20 9232 je short 067 abh ; 74 049270 je short 0679fh ; 74 04 9233 9271 sti ; fb 9234 9272 int 04ah ; cd 4a 9235 9273 cli ; fa 9236 9274 test dh, 040h ; f6 c6 40 9237 je near 068 29h ; 0f 84 77 009275 je near 0681dh ; 0f 84 77 00 9238 9276 mov dx, 000a0h ; ba a0 00 9239 9277 mov ax, strict word 00040h ; b8 40 00 9240 call 01600h ; e8 45ae9278 call 01600h ; e8 51 ae 9241 9279 test al, al ; 84 c0 9242 je short 068 29h ; 74 6a9280 je short 0681dh ; 74 6a 9243 9281 mov dx, 0009ch ; ba 9c 00 9244 9282 mov ax, strict word 00040h ; b8 40 00 9245 call 01638h ; e8 7 0ae9283 call 01638h ; e8 7c ae 9246 9284 test dx, dx ; 85 d2 9247 jne short 068 15h ; 75 499285 jne short 06809h ; 75 49 9248 9286 cmp ax, 003d1h ; 3d d1 03 9249 jnc short 068 15h ; 73 449287 jnc short 06809h ; 73 44 9250 9288 mov dx, 00098h ; ba 98 00 9251 9289 mov ax, strict word 00040h ; b8 40 00 9252 call 0161ch ; e8 4 2ae9290 call 0161ch ; e8 4e ae 9253 9291 mov si, ax ; 89 c6 9254 9292 mov dx, 0009ah ; ba 9a 00 9255 9293 mov ax, strict word 00040h ; b8 40 00 9256 call 0161ch ; e8 37ae9294 call 0161ch ; e8 43 ae 9257 9295 mov cx, ax ; 89 c1 9258 9296 xor bx, bx ; 31 db 9259 9297 mov dx, 000a0h ; ba a0 00 9260 9298 mov ax, strict word 00040h ; b8 40 00 9261 call 0160eh ; e8 1cae9299 call 0160eh ; e8 28 ae 9262 9300 mov al, byte [bp-004h] ; 8a 46 fc 9263 9301 and AL, strict byte 037h ; 24 37 9264 9302 movzx dx, al ; 0f b6 d0 9265 9303 mov ax, strict word 0000bh ; b8 0b 00 9266 call 01670h ; e8 7 0ae9304 call 01670h ; e8 7c ae 9267 9305 mov dx, cx ; 89 ca 9268 9306 mov ax, si ; 89 f0 9269 call 01600h ; e8 f9 ad9307 call 01600h ; e8 05 ae 9270 9308 or AL, strict byte 080h ; 0c 80 9271 9309 movzx bx, al ; 0f b6 d8 9272 9310 mov dx, cx ; 89 ca 9273 9311 mov ax, si ; 89 f0 9274 call 0160eh ; e8 fb ad9275 jmp short 068 29h ; eb 149312 call 0160eh ; e8 07 ae 9313 jmp short 0681dh ; eb 14 9276 9314 mov bx, ax ; 89 c3 9277 9315 add bx, 0fc2fh ; 81 c3 2f fc … … 9280 9318 mov dx, 0009ch ; ba 9c 00 9281 9319 mov ax, strict word 00040h ; b8 40 00 9282 call 0164ah ; e8 2 1ae9283 call 0e03bh ; e8 0f789320 call 0164ah ; e8 2d ae 9321 call 0e03bh ; e8 1b 78 9284 9322 lea sp, [bp-002h] ; 8d 66 fe 9285 9323 pop si ; 5e 9286 9324 pop bp ; 5d 9287 9325 retn ; c3 9288 pop cx ; 59 9289 push 06882h ; 68 82 68 9290 cmpsw ; a7 9291 push 068d9h ; 68 d9 68 9292 sub byte [bx+di+060h], ch ; 28 69 60 9326 dec bp ; 4d 9327 push 06876h ; 68 76 68 9328 wait ; 9b 9329 push 068cdh ; 68 cd 68 9330 sbb AL, strict byte 069h ; 1c 69 9331 push sp ; 54 9293 9332 db 069h 9294 mov word [0fa69h], ax ; a3 69 fa9333 xchg di, ax ; 97 9295 9334 db 069h 9296 _int1a_function: ; 0xf6842 LB 0x1c8 9335 out DX, AL ; ee 9336 db 069h 9337 _int1a_function: ; 0xf6836 LB 0x1c8 9297 9338 push bp ; 55 9298 9339 mov bp, sp ; 89 e5 … … 9300 9341 mov al, byte [bp+013h] ; 8a 46 13 9301 9342 cmp AL, strict byte 007h ; 3c 07 9302 jnbe near 0687 eh ; 0f 87 2f 009343 jnbe near 06872h ; 0f 87 2f 00 9303 9344 movzx bx, al ; 0f b6 d8 9304 9345 add bx, bx ; 01 db 9305 jmp word [cs:bx+068 32h] ; 2e ff a7 32689346 jmp word [cs:bx+06826h] ; 2e ff a7 26 68 9306 9347 cli ; fa 9307 9348 mov bx, 0046eh ; bb 6e 04 … … 9334 9375 sti ; fb 9335 9376 mov byte [bp+013h], 000h ; c6 46 13 00 9336 jmp short 0687 eh ; eb d79337 call 067 63h ; e8 b9 fe9377 jmp short 06872h ; eb d7 9378 call 06757h ; e8 b9 fe 9338 9379 test ax, ax ; 85 c0 9339 je short 068 b0h ; 74 029340 jmp short 0687 eh ; eb ce9380 je short 068a4h ; 74 02 9381 jmp short 06872h ; eb ce 9341 9382 xor ax, ax ; 31 c0 9342 call 0165ch ; e8 a7ad9383 call 0165ch ; e8 b3 ad 9343 9384 mov byte [bp+00fh], al ; 88 46 0f 9344 9385 mov ax, strict word 00002h ; b8 02 00 9345 call 0165ch ; e8 9ead9386 call 0165ch ; e8 aa ad 9346 9387 mov byte [bp+010h], al ; 88 46 10 9347 9388 mov ax, strict word 00004h ; b8 04 00 9348 call 0165ch ; e8 95ad9389 call 0165ch ; e8 a1 ad 9349 9390 mov bl, al ; 88 c3 9350 9391 mov byte [bp+011h], al ; 88 46 11 9351 9392 mov ax, strict word 0000bh ; b8 0b 00 9352 call 0165ch ; e8 8aad9393 call 0165ch ; e8 96 ad 9353 9394 and AL, strict byte 001h ; 24 01 9354 9395 mov byte [bp+00eh], al ; 88 46 0e 9355 jmp short 0691 eh ; eb 459356 call 067 63h ; e8 87 fe9396 jmp short 06912h ; eb 45 9397 call 06757h ; e8 87 fe 9357 9398 test ax, ax ; 85 c0 9358 je short 068 e3h ; 74 039359 call 067 3bh ; e8 58 fe9399 je short 068d7h ; 74 03 9400 call 0672fh ; e8 58 fe 9360 9401 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9361 9402 xor ax, ax ; 31 c0 9362 call 01670h ; e8 84ad9403 call 01670h ; e8 90 ad 9363 9404 movzx dx, byte [bp+010h] ; 0f b6 56 10 9364 9405 mov ax, strict word 00002h ; b8 02 00 9365 call 01670h ; e8 7aad9406 call 01670h ; e8 86 ad 9366 9407 movzx dx, byte [bp+011h] ; 0f b6 56 11 9367 9408 mov ax, strict word 00004h ; b8 04 00 9368 call 01670h ; e8 7 0ad9409 call 01670h ; e8 7c ad 9369 9410 mov ax, strict word 0000bh ; b8 0b 00 9370 call 0165ch ; e8 56ad9411 call 0165ch ; e8 62 ad 9371 9412 mov bl, al ; 88 c3 9372 9413 and bl, 060h ; 80 e3 60 … … 9377 9418 movzx dx, bl ; 0f b6 d3 9378 9419 mov ax, strict word 0000bh ; b8 0b 00 9379 call 01670h ; e8 5 2ad9420 call 01670h ; e8 5e ad 9380 9421 mov byte [bp+013h], 000h ; c6 46 13 00 9381 9422 mov byte [bp+012h], bl ; 88 5e 12 9382 jmp near 0687 eh ; e9 56 ff9423 jmp near 06872h ; e9 56 ff 9383 9424 mov byte [bp+013h], 000h ; c6 46 13 00 9384 call 067 63h ; e8 34 fe9425 call 06757h ; e8 34 fe 9385 9426 test ax, ax ; 85 c0 9386 je short 069 36h ; 74 039387 jmp near 0687 eh ; e9 48 ff9427 je short 0692ah ; 74 03 9428 jmp near 06872h ; e9 48 ff 9388 9429 mov ax, strict word 00009h ; b8 09 00 9389 call 0165ch ; e8 2 0ad9430 call 0165ch ; e8 2c ad 9390 9431 mov byte [bp+010h], al ; 88 46 10 9391 9432 mov ax, strict word 00008h ; b8 08 00 9392 call 0165ch ; e8 17ad9433 call 0165ch ; e8 23 ad 9393 9434 mov byte [bp+00fh], al ; 88 46 0f 9394 9435 mov ax, strict word 00007h ; b8 07 00 9395 call 0165ch ; e8 0ead9436 call 0165ch ; e8 1a ad 9396 9437 mov byte [bp+00eh], al ; 88 46 0e 9397 9438 mov ax, strict word 00032h ; b8 32 00 9398 call 0165ch ; e8 05ad9439 call 0165ch ; e8 11 ad 9399 9440 mov byte [bp+011h], al ; 88 46 11 9400 9441 mov byte [bp+012h], al ; 88 46 12 9401 jmp near 0687 eh ; e9 1e ff9402 call 067 63h ; e8 00 fe9442 jmp near 06872h ; e9 1e ff 9443 call 06757h ; e8 00 fe 9403 9444 test ax, ax ; 85 c0 9404 je short 0696 dh ; 74 069405 call 067 3bh ; e8 d1 fd9406 jmp near 0687 eh ; e9 11 ff9445 je short 06961h ; 74 06 9446 call 0672fh ; e8 d1 fd 9447 jmp near 06872h ; e9 11 ff 9407 9448 movzx dx, byte [bp+010h] ; 0f b6 56 10 9408 9449 mov ax, strict word 00009h ; b8 09 00 9409 call 01670h ; e8 f9 ac9450 call 01670h ; e8 05 ad 9410 9451 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9411 9452 mov ax, strict word 00008h ; b8 08 00 9412 call 01670h ; e8 efac9453 call 01670h ; e8 fb ac 9413 9454 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 9414 9455 mov ax, strict word 00007h ; b8 07 00 9415 call 01670h ; e8 e5ac9456 call 01670h ; e8 f1 ac 9416 9457 movzx dx, byte [bp+011h] ; 0f b6 56 11 9417 9458 mov ax, strict word 00032h ; b8 32 00 9418 call 01670h ; e8 dbac9459 call 01670h ; e8 e7 ac 9419 9460 mov ax, strict word 0000bh ; b8 0b 00 9420 call 0165ch ; e8 c 1ac9461 call 0165ch ; e8 cd ac 9421 9462 mov bl, al ; 88 c3 9422 9463 and bl, 07fh ; 80 e3 7f 9423 jmp near 069 15h ; e9 72 ff9464 jmp near 06909h ; e9 72 ff 9424 9465 mov ax, strict word 0000bh ; b8 0b 00 9425 call 0165ch ; e8 b 3ac9466 call 0165ch ; e8 bf ac 9426 9467 mov bl, al ; 88 c3 9427 9468 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 9428 9469 test AL, strict byte 020h ; a8 20 9429 je short 069 b7h ; 74 039430 jmp near 0687 eh ; e9 c7 fe9431 call 067 63h ; e8 a9 fd9470 je short 069abh ; 74 03 9471 jmp near 06872h ; e9 c7 fe 9472 call 06757h ; e8 a9 fd 9432 9473 test ax, ax ; 85 c0 9433 je short 069 c1h ; 74 039434 call 067 3bh ; e8 7a fd9474 je short 069b5h ; 74 03 9475 call 0672fh ; e8 7a fd 9435 9476 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 9436 9477 mov ax, strict word 00001h ; b8 01 00 9437 call 01670h ; e8 a5ac9478 call 01670h ; e8 b1 ac 9438 9479 movzx dx, byte [bp+010h] ; 0f b6 56 10 9439 9480 mov ax, strict word 00003h ; b8 03 00 9440 call 01670h ; e8 9bac9481 call 01670h ; e8 a7 ac 9441 9482 movzx dx, byte [bp+011h] ; 0f b6 56 11 9442 9483 mov ax, strict word 00005h ; b8 05 00 9443 call 01670h ; e8 9 1ac9484 call 01670h ; e8 9d ac 9444 9485 mov dx, 000a1h ; ba a1 00 9445 9486 in AL, DX ; ec … … 9453 9494 movzx dx, al ; 0f b6 d0 9454 9495 mov ax, strict word 0000bh ; b8 0b 00 9455 call 01670h ; e8 79ac9456 jmp near 0687 eh ; e9 84 fe9496 call 01670h ; e8 85 ac 9497 jmp near 06872h ; e9 84 fe 9457 9498 mov ax, strict word 0000bh ; b8 0b 00 9458 call 0165ch ; e8 5cac9499 call 0165ch ; e8 68 ac 9459 9500 mov bl, al ; 88 c3 9460 9501 and AL, strict byte 057h ; 24 57 9461 9502 movzx dx, al ; 0f b6 d0 9462 jmp near 069 18h ; e9 0e ff9463 send_to_mouse_ctrl_: ; 0xf6 a0aLB 0x349503 jmp near 0690ch ; e9 0e ff 9504 send_to_mouse_ctrl_: ; 0xf69fe LB 0x34 9464 9505 push bp ; 55 9465 9506 mov bp, sp ; 89 e5 … … 9472 9513 ; sub ah, ah ; 2a e4 9473 9514 test AL, strict byte 002h ; a8 02 9474 je short 06a 29h ; 74 0e9475 push 008 86h ; 68 86 089476 push 011 00h ; 68 00 119515 je short 06a1dh ; 74 0e 9516 push 008f6h ; 68 f6 08 9517 push 01170h ; 68 70 11 9477 9518 push strict byte 00007h ; 6a 07 9478 call 0190dh ; e8 e7ae9519 call 0190dh ; e8 f3 ae 9479 9520 add sp, strict byte 00006h ; 83 c4 06 9480 9521 mov AL, strict byte 0d4h ; b0 d4 … … 9490 9531 pop bp ; 5d 9491 9532 retn ; c3 9492 get_mouse_data_: ; 0xf6a3 eLB 0x3b9533 get_mouse_data_: ; 0xf6a32 LB 0x3b 9493 9534 push bp ; 55 9494 9535 mov bp, sp ; 89 e5 … … 9504 9545 and ax, strict word 00021h ; 25 21 00 9505 9546 cmp ax, strict word 00021h ; 3d 21 00 9506 je short 06a5 fh ; 74 079547 je short 06a53h ; 74 07 9507 9548 test cx, cx ; 85 c9 9508 je short 06a5 fh ; 74 039549 je short 06a53h ; 74 03 9509 9550 dec cx ; 49 9510 jmp short 06a 4ah ; eb eb9551 jmp short 06a3eh ; eb eb 9511 9552 test cx, cx ; 85 c9 9512 jne short 06a 67h ; 75 049553 jne short 06a5bh ; 75 04 9513 9554 mov AL, strict byte 001h ; b0 01 9514 jmp short 06a 72h ; eb 0b9555 jmp short 06a66h ; eb 0b 9515 9556 mov dx, strict word 00060h ; ba 60 00 9516 9557 in AL, DX ; ec … … 9524 9565 pop bp ; 5d 9525 9566 retn ; c3 9526 set_kbd_command_byte_: ; 0xf6a 79LB 0x329567 set_kbd_command_byte_: ; 0xf6a6d LB 0x32 9527 9568 push bp ; 55 9528 9569 mov bp, sp ; 89 e5 … … 9535 9576 ; sub ah, ah ; 2a e4 9536 9577 test AL, strict byte 002h ; a8 02 9537 je short 06a 98h ; 74 0e9538 push 00 890h ; 68 90 089539 push 011 00h ; 68 00 119578 je short 06a8ch ; 74 0e 9579 push 00900h ; 68 00 09 9580 push 01170h ; 68 70 11 9540 9581 push strict byte 00007h ; 6a 07 9541 call 0190dh ; e8 78ae9582 call 0190dh ; e8 84 ae 9542 9583 add sp, strict byte 00006h ; 83 c4 06 9543 9584 mov AL, strict byte 060h ; b0 60 … … 9552 9593 pop bp ; 5d 9553 9594 retn ; c3 9554 _int74_function: ; 0xf6a abLB 0xca9595 _int74_function: ; 0xf6a9f LB 0xca 9555 9596 push bp ; 55 9556 9597 mov bp, sp ; 89 e5 … … 9558 9599 mov dx, strict word 0000eh ; ba 0e 00 9559 9600 mov ax, strict word 00040h ; b8 40 00 9560 call 0161ch ; e8 6 2ab9601 call 0161ch ; e8 6e ab 9561 9602 mov cx, ax ; 89 c1 9562 9603 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 9567 9608 and AL, strict byte 021h ; 24 21 9568 9609 cmp AL, strict byte 021h ; 3c 21 9569 jne near 06b 61h ; 0f 85 92 009610 jne near 06b55h ; 0f 85 92 00 9570 9611 mov dx, strict word 00060h ; ba 60 00 9571 9612 in AL, DX ; ec … … 9575 9616 mov dx, strict word 00026h ; ba 26 00 9576 9617 mov ax, cx ; 89 c8 9577 call 01600h ; e8 2 1ab9618 call 01600h ; e8 2d ab 9578 9619 mov byte [bp-006h], al ; 88 46 fa 9579 9620 mov dx, strict word 00027h ; ba 27 00 9580 9621 mov ax, cx ; 89 c8 9581 call 01600h ; e8 16ab9622 call 01600h ; e8 22 ab 9582 9623 mov byte [bp-008h], al ; 88 46 f8 9583 9624 test AL, strict byte 080h ; a8 80 9584 je short 06b 61h ; 74 709625 je short 06b55h ; 74 70 9585 9626 mov al, byte [bp-008h] ; 8a 46 f8 9586 9627 and AL, strict byte 007h ; 24 07 … … 9593 9634 add dx, strict byte 00028h ; 83 c2 28 9594 9635 mov ax, cx ; 89 c8 9595 call 0160eh ; e8 0 0ab9636 call 0160eh ; e8 0c ab 9596 9637 mov al, byte [bp-004h] ; 8a 46 fc 9597 9638 cmp al, byte [bp-002h] ; 3a 46 fe 9598 jc short 06b 52h ; 72 3c9639 jc short 06b46h ; 72 3c 9599 9640 mov dx, strict word 00028h ; ba 28 00 9600 9641 mov ax, cx ; 89 c8 9601 call 01600h ; e8 e 2aa9642 call 01600h ; e8 ee aa 9602 9643 xor ah, ah ; 30 e4 9603 9644 mov word [bp+00ch], ax ; 89 46 0c 9604 9645 mov dx, strict word 00029h ; ba 29 00 9605 9646 mov ax, cx ; 89 c8 9606 call 01600h ; e8 d5aa9647 call 01600h ; e8 e1 aa 9607 9648 xor ah, ah ; 30 e4 9608 9649 mov word [bp+00ah], ax ; 89 46 0a 9609 9650 mov dx, strict word 0002ah ; ba 2a 00 9610 9651 mov ax, cx ; 89 c8 9611 call 01600h ; e8 c8aa9652 call 01600h ; e8 d4 aa 9612 9653 xor ah, ah ; 30 e4 9613 9654 mov word [bp+008h], ax ; 89 46 08 … … 9616 9657 mov byte [bp-006h], ah ; 88 66 fa 9617 9658 test byte [bp-008h], 080h ; f6 46 f8 80 9618 je short 06b 55h ; 74 0a9659 je short 06b49h ; 74 0a 9619 9660 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 9620 jmp short 06b 55h ; eb 039661 jmp short 06b49h ; eb 03 9621 9662 inc byte [bp-006h] ; fe 46 fa 9622 9663 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9623 9664 mov dx, strict word 00026h ; ba 26 00 9624 9665 mov ax, cx ; 89 c8 9625 call 0160eh ; e8 adaa9666 call 0160eh ; e8 b9 aa 9626 9667 mov sp, bp ; 89 ec 9627 9668 pop bp ; 5d 9628 9669 retn ; c3 9629 mov cx, 02f6bh ; b9 6b 2f 9670 lodsw ; ad 9671 imul sp, word [bp+di], strict byte 0006ch ; 6b 23 6c 9672 cmpsb ; a6 9630 9673 insb ; 6c 9631 mov DL, strict byte 06ch ; b2 6c 9632 inc bx ; 43 9674 aaa ; 37 9633 9675 insw ; 6d 9634 mov CL, strict byte 06dh ; b1 6d 9635 add ax, 0d96ch ; 05 6c d9 9676 movsw ; a5 9636 9677 insw ; 6d 9637 sahf ; 9e 9678 stc ; f9 9679 imul cx, bp, strict byte 0006dh ; 6b cd 6d 9680 xchg dx, ax ; 92 9638 9681 outsb ; 6e 9639 _int15_function_mouse: ; 0xf6b 75LB 0x38b9682 _int15_function_mouse: ; 0xf6b69 LB 0x38b 9640 9683 push bp ; 55 9641 9684 mov bp, sp ; 89 e5 … … 9644 9687 mov dx, strict word 0000eh ; ba 0e 00 9645 9688 mov ax, strict word 00040h ; b8 40 00 9646 call 0161ch ; e8 97aa9689 call 0161ch ; e8 a3 aa 9647 9690 mov cx, ax ; 89 c1 9648 9691 cmp byte [bp+012h], 007h ; 80 7e 12 07 9649 jbe short 06b 98h ; 76 0b9692 jbe short 06b8ch ; 76 0b 9650 9693 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9651 9694 mov byte [bp+013h], 001h ; c6 46 13 01 9652 jmp near 06e fah ; e9 62 039695 jmp near 06eeeh ; e9 62 03 9653 9696 mov ax, strict word 00065h ; b8 65 00 9654 call 06a 79h ; e8 db fe9697 call 06a6dh ; e8 db fe 9655 9698 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 9656 9699 mov byte [bp+013h], 000h ; c6 46 13 00 9657 9700 mov al, byte [bp+012h] ; 8a 46 12 9658 9701 cmp AL, strict byte 007h ; 3c 07 9659 jnbe near 06e e1h ; 0f 87 32 039702 jnbe near 06ed5h ; 0f 87 32 03 9660 9703 movzx si, al ; 0f b6 f0 9661 9704 add si, si ; 01 f6 9662 jmp word [cs:si+06b 65h] ; 2e ff a4 656b9705 jmp word [cs:si+06b59h] ; 2e ff a4 59 6b 9663 9706 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 9664 jnbe near 06ee ch ; 0f 87 2b 039707 jnbe near 06ee0h ; 0f 87 2b 03 9665 9708 mov dx, strict word 00027h ; ba 27 00 9666 9709 mov ax, cx ; 89 c8 9667 call 01600h ; e8 37aa9710 call 01600h ; e8 43 aa 9668 9711 test AL, strict byte 080h ; a8 80 9669 jne short 06b d8h ; 75 0b9712 jne short 06bcch ; 75 0b 9670 9713 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9671 9714 mov byte [bp+013h], 005h ; c6 46 13 05 9672 jmp near 06e f4h ; e9 1c 039715 jmp near 06ee8h ; e9 1c 03 9673 9716 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 9674 9717 db 00fh, 094h, 0c0h … … 9676 9719 add AL, strict byte 0f4h ; 04 f4 9677 9720 xor ah, ah ; 30 e4 9678 call 06 a0ah ; e8 24 fe9721 call 069feh ; e8 24 fe 9679 9722 test al, al ; 84 c0 9680 jne near 06e 7ah ; 0f 85 8e 029723 jne near 06e6eh ; 0f 85 8e 02 9681 9724 mov dx, ss ; 8c d2 9682 9725 lea ax, [bp-008h] ; 8d 46 f8 9683 call 06a3 eh ; e8 4a fe9726 call 06a32h ; e8 4a fe 9684 9727 test al, al ; 84 c0 9685 je near 06e f4h ; 0f 84 fa 029728 je near 06ee8h ; 0f 84 fa 02 9686 9729 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9687 jne near 06e 7ah ; 0f 85 78 029688 jmp near 06e f4h ; e9 ef 029730 jne near 06e6eh ; 0f 85 78 02 9731 jmp near 06ee8h ; e9 ef 02 9689 9732 mov al, byte [bp+00dh] ; 8a 46 0d 9690 9733 cmp AL, strict byte 001h ; 3c 01 9691 jc short 06c 10h ; 72 049734 jc short 06c04h ; 72 04 9692 9735 cmp AL, strict byte 008h ; 3c 08 9693 jbe short 06c 13h ; 76 039694 jmp near 06d a6h ; e9 93 019736 jbe short 06c07h ; 76 03 9737 jmp near 06d9ah ; e9 93 01 9695 9738 mov dx, strict word 00027h ; ba 27 00 9696 9739 mov ax, cx ; 89 c8 9697 call 01600h ; e8 e5a99740 call 01600h ; e8 f1 a9 9698 9741 mov ah, byte [bp+00dh] ; 8a 66 0d 9699 9742 db 0feh, 0cch … … 9704 9747 mov dx, strict word 00027h ; ba 27 00 9705 9748 mov ax, cx ; 89 c8 9706 call 0160eh ; e8 dfa99749 call 0160eh ; e8 eb a9 9707 9750 mov dx, strict word 00026h ; ba 26 00 9708 9751 mov ax, cx ; 89 c8 9709 call 01600h ; e8 c9a99752 call 01600h ; e8 d5 a9 9710 9753 and AL, strict byte 0f8h ; 24 f8 9711 9754 movzx bx, al ; 0f b6 d8 9712 9755 mov dx, strict word 00026h ; ba 26 00 9713 9756 mov ax, cx ; 89 c8 9714 call 0160eh ; e8 caa99757 call 0160eh ; e8 d6 a9 9715 9758 mov ax, 000ffh ; b8 ff 00 9716 call 06 a0ah ; e8 c0 fd9759 call 069feh ; e8 c0 fd 9717 9760 test al, al ; 84 c0 9718 jne near 06e 7ah ; 0f 85 2a 029761 jne near 06e6eh ; 0f 85 2a 02 9719 9762 mov dx, ss ; 8c d2 9720 9763 lea ax, [bp-004h] ; 8d 46 fc 9721 call 06a3 eh ; e8 e6 fd9764 call 06a32h ; e8 e6 fd 9722 9765 mov cl, al ; 88 c1 9723 9766 cmp byte [bp-004h], 0feh ; 80 7e fc fe 9724 jne short 06c 6bh ; 75 0b9767 jne short 06c5fh ; 75 0b 9725 9768 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9726 9769 mov byte [bp+013h], 004h ; c6 46 13 04 9727 jmp near 06e f4h ; e9 89 029770 jmp near 06ee8h ; e9 89 02 9728 9771 cmp byte [bp-004h], 0fah ; 80 7e fc fa 9729 je short 06c 81h ; 74 109772 je short 06c75h ; 74 10 9730 9773 movzx ax, byte [bp-004h] ; 0f b6 46 fc 9731 9774 push ax ; 50 9732 push 00 89bh ; 68 9b 089775 push 0090bh ; 68 0b 09 9733 9776 push strict byte 00007h ; 6a 07 9734 call 0190dh ; e8 8fac9777 call 0190dh ; e8 9b ac 9735 9778 add sp, strict byte 00006h ; 83 c4 06 9736 9779 test cl, cl ; 84 c9 9737 jne near 06e 7ah ; 0f 85 f3 019780 jne near 06e6eh ; 0f 85 f3 01 9738 9781 mov dx, ss ; 8c d2 9739 9782 lea ax, [bp-008h] ; 8d 46 f8 9740 call 06a3 eh ; e8 af fd9783 call 06a32h ; e8 af fd 9741 9784 test al, al ; 84 c0 9742 jne near 06e 7ah ; 0f 85 e5 019785 jne near 06e6eh ; 0f 85 e5 01 9743 9786 mov dx, ss ; 8c d2 9744 9787 lea ax, [bp-006h] ; 8d 46 fa 9745 call 06a3 eh ; e8 a1 fd9788 call 06a32h ; e8 a1 fd 9746 9789 test al, al ; 84 c0 9747 jne near 06e 7ah ; 0f 85 d7 019790 jne near 06e6eh ; 0f 85 d7 01 9748 9791 mov al, byte [bp-008h] ; 8a 46 f8 9749 9792 mov byte [bp+00ch], al ; 88 46 0c 9750 9793 mov al, byte [bp-006h] ; 8a 46 fa 9751 9794 mov byte [bp+00dh], al ; 88 46 0d 9752 jmp near 06e f4h ; e9 42 029795 jmp near 06ee8h ; e9 42 02 9753 9796 mov al, byte [bp+00dh] ; 8a 46 0d 9754 9797 cmp AL, strict byte 003h ; 3c 03 9755 jc short 06c c9h ; 72 109756 jbe short 06c e7h ; 76 2c9798 jc short 06cbdh ; 72 10 9799 jbe short 06cdbh ; 76 2c 9757 9800 cmp AL, strict byte 006h ; 3c 06 9758 je short 06c f9h ; 74 3a9801 je short 06cedh ; 74 3a 9759 9802 cmp AL, strict byte 005h ; 3c 05 9760 je short 06c f3h ; 74 309803 je short 06ce7h ; 74 30 9761 9804 cmp AL, strict byte 004h ; 3c 04 9762 je short 06ce dh ; 74 269763 jmp short 06cf fh ; eb 369805 je short 06ce1h ; 74 26 9806 jmp short 06cf3h ; eb 36 9764 9807 cmp AL, strict byte 002h ; 3c 02 9765 je short 06c e1h ; 74 149808 je short 06cd5h ; 74 14 9766 9809 cmp AL, strict byte 001h ; 3c 01 9767 je short 06c dbh ; 74 0a9810 je short 06ccfh ; 74 0a 9768 9811 test al, al ; 84 c0 9769 jne short 06cf fh ; 75 2a9812 jne short 06cf3h ; 75 2a 9770 9813 mov byte [bp-008h], 00ah ; c6 46 f8 0a 9771 jmp short 06 d03h ; eb 289814 jmp short 06cf7h ; eb 28 9772 9815 mov byte [bp-008h], 014h ; c6 46 f8 14 9773 jmp short 06 d03h ; eb 229816 jmp short 06cf7h ; eb 22 9774 9817 mov byte [bp-008h], 028h ; c6 46 f8 28 9775 jmp short 06 d03h ; eb 1c9818 jmp short 06cf7h ; eb 1c 9776 9819 mov byte [bp-008h], 03ch ; c6 46 f8 3c 9777 jmp short 06 d03h ; eb 169820 jmp short 06cf7h ; eb 16 9778 9821 mov byte [bp-008h], 050h ; c6 46 f8 50 9779 jmp short 06 d03h ; eb 109822 jmp short 06cf7h ; eb 10 9780 9823 mov byte [bp-008h], 064h ; c6 46 f8 64 9781 jmp short 06 d03h ; eb 0a9824 jmp short 06cf7h ; eb 0a 9782 9825 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 9783 jmp short 06 d03h ; eb 049826 jmp short 06cf7h ; eb 04 9784 9827 mov byte [bp-008h], 000h ; c6 46 f8 00 9785 9828 cmp byte [bp-008h], 000h ; 80 7e f8 00 9786 jbe short 06d 38h ; 76 2f9829 jbe short 06d2ch ; 76 2f 9787 9830 mov ax, 000f3h ; b8 f3 00 9788 call 06 a0ah ; e8 fb fc9831 call 069feh ; e8 fb fc 9789 9832 test al, al ; 84 c0 9790 jne short 06d2 dh ; 75 1a9833 jne short 06d21h ; 75 1a 9791 9834 mov dx, ss ; 8c d2 9792 9835 lea ax, [bp-006h] ; 8d 46 fa 9793 call 06a3 eh ; e8 23 fd9836 call 06a32h ; e8 23 fd 9794 9837 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9795 call 06 a0ah ; e8 e8 fc9838 call 069feh ; e8 e8 fc 9796 9839 mov dx, ss ; 8c d2 9797 9840 lea ax, [bp-006h] ; 8d 46 fa 9798 call 06a3 eh ; e8 14 fd9799 jmp near 06e f4h ; e9 c7 019841 call 06a32h ; e8 14 fd 9842 jmp near 06ee8h ; e9 c7 01 9800 9843 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9801 9844 mov byte [bp+013h], 003h ; c6 46 13 03 9802 jmp near 06e f4h ; e9 bc 019845 jmp near 06ee8h ; e9 bc 01 9803 9846 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9804 9847 mov byte [bp+013h], 002h ; c6 46 13 02 9805 jmp near 06e f4h ; e9 b1 019848 jmp near 06ee8h ; e9 b1 01 9806 9849 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 9807 jnc short 06d a6h ; 73 5d9850 jnc short 06d9ah ; 73 5d 9808 9851 mov ax, 000e8h ; b8 e8 00 9809 call 06 a0ah ; e8 bb fc9852 call 069feh ; e8 bb fc 9810 9853 test al, al ; 84 c0 9811 jne short 06d 9bh ; 75 489854 jne short 06d8fh ; 75 48 9812 9855 mov dx, ss ; 8c d2 9813 9856 lea ax, [bp-008h] ; 8d 46 f8 9814 call 06a3 eh ; e8 e3 fc9857 call 06a32h ; e8 e3 fc 9815 9858 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9816 je short 06d 71h ; 74 109859 je short 06d65h ; 74 10 9817 9860 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9818 9861 push ax ; 50 9819 push 00 8c6h ; 68 c6 089862 push 00936h ; 68 36 09 9820 9863 push strict byte 00007h ; 6a 07 9821 call 0190dh ; e8 9fab9864 call 0190dh ; e8 ab ab 9822 9865 add sp, strict byte 00006h ; 83 c4 06 9823 9866 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 9824 call 06 a0ah ; e8 92 fc9867 call 069feh ; e8 92 fc 9825 9868 mov dx, ss ; 8c d2 9826 9869 lea ax, [bp-008h] ; 8d 46 f8 9827 call 06a3 eh ; e8 be fc9870 call 06a32h ; e8 be fc 9828 9871 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9829 je near 06e f4h ; 0f 84 6c 019872 je near 06ee8h ; 0f 84 6c 01 9830 9873 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9831 9874 push ax ; 50 9832 push 00 8c6h ; 68 c6 089875 push 00936h ; 68 36 09 9833 9876 push strict byte 00007h ; 6a 07 9834 call 0190dh ; e8 78ab9877 call 0190dh ; e8 84 ab 9835 9878 add sp, strict byte 00006h ; 83 c4 06 9836 jmp near 06e f4h ; e9 59 019879 jmp near 06ee8h ; e9 59 01 9837 9880 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9838 9881 mov byte [bp+013h], 003h ; c6 46 13 03 9839 jmp near 06e f4h ; e9 4e 019882 jmp near 06ee8h ; e9 4e 01 9840 9883 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9841 9884 mov byte [bp+013h], 002h ; c6 46 13 02 9842 jmp near 06e f4h ; e9 43 019885 jmp near 06ee8h ; e9 43 01 9843 9886 mov ax, 000f2h ; b8 f2 00 9844 call 06 a0ah ; e8 53 fc9887 call 069feh ; e8 53 fc 9845 9888 test al, al ; 84 c0 9846 jne short 06dc eh ; 75 139889 jne short 06dc2h ; 75 13 9847 9890 mov dx, ss ; 8c d2 9848 9891 lea ax, [bp-008h] ; 8d 46 f8 9849 call 06a3 eh ; e8 7b fc9892 call 06a32h ; e8 7b fc 9850 9893 mov dx, ss ; 8c d2 9851 9894 lea ax, [bp-006h] ; 8d 46 fa 9852 call 06a3 eh ; e8 73 fc9853 jmp near 06c a9h ; e9 db fe9895 call 06a32h ; e8 73 fc 9896 jmp near 06c9dh ; e9 db fe 9854 9897 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9855 9898 mov byte [bp+013h], 003h ; c6 46 13 03 9856 jmp near 06e f4h ; e9 1b 019899 jmp near 06ee8h ; e9 1b 01 9857 9900 mov al, byte [bp+00dh] ; 8a 46 0d 9858 9901 test al, al ; 84 c0 9859 jbe short 06d e7h ; 76 079902 jbe short 06ddbh ; 76 07 9860 9903 cmp AL, strict byte 002h ; 3c 02 9861 jbe short 06e 50h ; 76 6c9862 jmp near 06e 84h ; e9 9d 009904 jbe short 06e44h ; 76 6c 9905 jmp near 06e78h ; e9 9d 00 9863 9906 mov ax, 000e9h ; b8 e9 00 9864 call 06 a0ah ; e8 1d fc9907 call 069feh ; e8 1d fc 9865 9908 test al, al ; 84 c0 9866 jne near 06e 7ah ; 0f 85 87 009909 jne near 06e6eh ; 0f 85 87 00 9867 9910 mov dx, ss ; 8c d2 9868 9911 lea ax, [bp-008h] ; 8d 46 f8 9869 call 06a3 eh ; e8 43 fc9912 call 06a32h ; e8 43 fc 9870 9913 mov cl, al ; 88 c1 9871 9914 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9872 je short 06e 13h ; 74 109915 je short 06e07h ; 74 10 9873 9916 movzx ax, byte [bp-008h] ; 0f b6 46 f8 9874 9917 push ax ; 50 9875 push 00 8c6h ; 68 c6 089918 push 00936h ; 68 36 09 9876 9919 push strict byte 00007h ; 6a 07 9877 call 0190dh ; e8 fd aa9920 call 0190dh ; e8 09 ab 9878 9921 add sp, strict byte 00006h ; 83 c4 06 9879 9922 test cl, cl ; 84 c9 9880 jne short 06e 7ah ; 75 639923 jne short 06e6eh ; 75 63 9881 9924 mov dx, ss ; 8c d2 9882 9925 lea ax, [bp-008h] ; 8d 46 f8 9883 call 06a3 eh ; e8 1f fc9926 call 06a32h ; e8 1f fc 9884 9927 test al, al ; 84 c0 9885 jne short 06e 7ah ; 75 579928 jne short 06e6eh ; 75 57 9886 9929 mov dx, ss ; 8c d2 9887 9930 lea ax, [bp-006h] ; 8d 46 fa 9888 call 06a3 eh ; e8 13 fc9931 call 06a32h ; e8 13 fc 9889 9932 test al, al ; 84 c0 9890 jne short 06e 7ah ; 75 4b9933 jne short 06e6eh ; 75 4b 9891 9934 mov dx, ss ; 8c d2 9892 9935 lea ax, [bp-004h] ; 8d 46 fc 9893 call 06a3 eh ; e8 07 fc9936 call 06a32h ; e8 07 fc 9894 9937 test al, al ; 84 c0 9895 jne short 06e 7ah ; 75 3f9938 jne short 06e6eh ; 75 3f 9896 9939 mov al, byte [bp-008h] ; 8a 46 f8 9897 9940 mov byte [bp+00ch], al ; 88 46 0c … … 9900 9943 mov al, byte [bp-004h] ; 8a 46 fc 9901 9944 mov byte [bp+00eh], al ; 88 46 0e 9902 jmp near 06e f4h ; e9 a4 009945 jmp near 06ee8h ; e9 a4 00 9903 9946 cmp AL, strict byte 001h ; 3c 01 9904 jne short 06e 59h ; 75 059947 jne short 06e4dh ; 75 05 9905 9948 mov ax, 000e6h ; b8 e6 00 9906 jmp short 06e5 ch ; eb 039949 jmp short 06e50h ; eb 03 9907 9950 mov ax, 000e7h ; b8 e7 00 9908 call 06 a0ah ; e8 ab fb9951 call 069feh ; e8 ab fb 9909 9952 mov cl, al ; 88 c1 9910 9953 test cl, cl ; 84 c9 9911 jne short 06e 74h ; 75 0f9954 jne short 06e68h ; 75 0f 9912 9955 mov dx, ss ; 8c d2 9913 9956 lea ax, [bp-008h] ; 8d 46 f8 9914 call 06a3 eh ; e8 d1 fb9957 call 06a32h ; e8 d1 fb 9915 9958 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 9916 9959 db 00fh, 095h, 0c1h 9917 9960 ; setne cl ; 0f 95 c1 9918 9961 test cl, cl ; 84 c9 9919 je near 06e f4h ; 0f 84 7a 009962 je near 06ee8h ; 0f 84 7a 00 9920 9963 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9921 9964 mov byte [bp+013h], 003h ; c6 46 13 03 9922 jmp short 06e f4h ; eb 709965 jmp short 06ee8h ; eb 70 9923 9966 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 9924 9967 push ax ; 50 9925 push 00 8f2h ; 68 f2 089968 push 00962h ; 68 62 09 9926 9969 push strict byte 00007h ; 6a 07 9927 call 0190dh ; e8 7caa9970 call 0190dh ; e8 88 aa 9928 9971 add sp, strict byte 00006h ; 83 c4 06 9929 9972 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9930 9973 mov byte [bp+013h], 001h ; c6 46 13 01 9931 jmp short 06e f4h ; eb 569974 jmp short 06ee8h ; eb 56 9932 9975 mov si, word [bp+00ch] ; 8b 76 0c 9933 9976 mov bx, si ; 89 f3 9934 9977 mov dx, strict word 00022h ; ba 22 00 9935 9978 mov ax, cx ; 89 c8 9936 call 0162ah ; e8 7fa79979 call 0162ah ; e8 8b a7 9937 9980 mov bx, word [bp+014h] ; 8b 5e 14 9938 9981 mov dx, strict word 00024h ; ba 24 00 9939 9982 mov ax, cx ; 89 c8 9940 call 0162ah ; e8 74a79983 call 0162ah ; e8 80 a7 9941 9984 mov dx, strict word 00027h ; ba 27 00 9942 9985 mov ax, cx ; 89 c8 9943 call 01600h ; e8 4 2a79986 call 01600h ; e8 4e a7 9944 9987 mov ah, al ; 88 c4 9945 9988 test si, si ; 85 f6 9946 jne short 06e d2h ; 75 0e9989 jne short 06ec6h ; 75 0e 9947 9990 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 9948 jne short 06e d2h ; 75 089991 jne short 06ec6h ; 75 08 9949 9992 test AL, strict byte 080h ; a8 80 9950 je short 06e d4h ; 74 069993 je short 06ec8h ; 74 06 9951 9994 and AL, strict byte 07fh ; 24 7f 9952 jmp short 06e d4h ; eb 029995 jmp short 06ec8h ; eb 02 9953 9996 or AL, strict byte 080h ; 0c 80 9954 9997 movzx bx, al ; 0f b6 d8 9955 9998 mov dx, strict word 00027h ; ba 27 00 9956 9999 mov ax, cx ; 89 c8 9957 call 0160eh ; e8 2fa79958 jmp short 06e f4h ; eb 139959 push 009 0ch ; 68 0c 0910000 call 0160eh ; e8 3b a7 10001 jmp short 06ee8h ; eb 13 10002 push 0097ch ; 68 7c 09 9960 10003 push strict byte 00007h ; 6a 07 9961 call 0190dh ; e8 24aa10004 call 0190dh ; e8 30 aa 9962 10005 add sp, strict byte 00004h ; 83 c4 04 9963 10006 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 9964 10007 mov byte [bp+013h], 001h ; c6 46 13 01 9965 10008 mov ax, strict word 00047h ; b8 47 00 9966 call 06a 79h ; e8 7f fb10009 call 06a6dh ; e8 7f fb 9967 10010 lea sp, [bp-002h] ; 8d 66 fe 9968 10011 pop si ; 5e 9969 10012 pop bp ; 5d 9970 10013 retn ; c3 9971 _int17_function: ; 0xf6 f00LB 0xb310014 _int17_function: ; 0xf6ef4 LB 0xb3 9972 10015 push bp ; 55 9973 10016 mov bp, sp ; 89 e5 … … 9979 10022 add dx, strict byte 00008h ; 83 c2 08 9980 10023 mov ax, strict word 00040h ; b8 40 00 9981 call 0161ch ; e8 08a710024 call 0161ch ; e8 14 a7 9982 10025 mov bx, ax ; 89 c3 9983 10026 mov si, ax ; 89 c6 9984 10027 cmp byte [bp+013h], 003h ; 80 7e 13 03 9985 jnc near 06f a9h ; 0f 83 89 0010028 jnc near 06f9dh ; 0f 83 89 00 9986 10029 mov ax, word [bp+00eh] ; 8b 46 0e 9987 10030 cmp ax, strict word 00003h ; 3d 03 00 9988 jnc near 06f a9h ; 0f 83 7f 0010031 jnc near 06f9dh ; 0f 83 7f 00 9989 10032 test bx, bx ; 85 db 9990 jbe near 06f a9h ; 0f 86 79 0010033 jbe near 06f9dh ; 0f 86 79 00 9991 10034 mov dx, ax ; 89 c2 9992 10035 add dx, strict byte 00078h ; 83 c2 78 9993 10036 mov ax, strict word 00040h ; b8 40 00 9994 call 01600h ; e8 c5a610037 call 01600h ; e8 d1 a6 9995 10038 movzx cx, al ; 0f b6 c8 9996 10039 sal cx, 008h ; c1 e1 08 9997 10040 cmp byte [bp+013h], 000h ; 80 7e 13 00 9998 jne short 06f 74h ; 75 2d10041 jne short 06f68h ; 75 2d 9999 10042 mov al, byte [bp+012h] ; 8a 46 12 10000 10043 mov dx, bx ; 89 da … … 10016 10059 ; sub ah, ah ; 2a e4 10017 10060 test AL, strict byte 040h ; a8 40 10018 je short 06f 74h ; 74 0710061 je short 06f68h ; 74 07 10019 10062 test cx, cx ; 85 c9 10020 je short 06f 74h ; 74 0310063 je short 06f68h ; 74 03 10021 10064 dec cx ; 49 10022 jmp short 06f 63h ; eb ef10065 jmp short 06f57h ; eb ef 10023 10066 cmp byte [bp+013h], 001h ; 80 7e 13 01 10024 jne short 06f 90h ; 75 1610067 jne short 06f84h ; 75 16 10025 10068 lea dx, [si+002h] ; 8d 54 02 10026 10069 in AL, DX ; ec … … 10041 10084 mov byte [bp+013h], al ; 88 46 13 10042 10085 test cx, cx ; 85 c9 10043 jne short 06f a3h ; 75 0410086 jne short 06f97h ; 75 04 10044 10087 or byte [bp+013h], 001h ; 80 4e 13 01 10045 10088 and byte [bp+01ch], 0feh ; 80 66 1c fe 10046 jmp short 06fa dh ; eb 0410089 jmp short 06fa1h ; eb 04 10047 10090 or byte [bp+01ch], 001h ; 80 4e 1c 01 10048 10091 lea sp, [bp-002h] ; 8d 66 fe … … 10050 10093 pop bp ; 5d 10051 10094 retn ; c3 10052 wait_: ; 0xf6f b3LB 0xb210095 wait_: ; 0xf6fa7 LB 0xb2 10053 10096 push bp ; 55 10054 10097 mov bp, sp ; 89 e5 … … 10068 10111 mov dx, 0046ch ; ba 6c 04 10069 10112 xor ax, ax ; 31 c0 10070 call 01638h ; e8 6 2a610113 call 01638h ; e8 6e a6 10071 10114 mov word [bp-00eh], ax ; 89 46 f2 10072 10115 mov bx, dx ; 89 d3 … … 10074 10117 mov dx, 0046ch ; ba 6c 04 10075 10118 xor ax, ax ; 31 c0 10076 call 01638h ; e8 54a610119 call 01638h ; e8 60 a6 10077 10120 mov word [bp-012h], ax ; 89 46 ee 10078 10121 mov di, dx ; 89 d7 10079 10122 cmp dx, bx ; 39 da 10080 jnbe short 06f f4h ; 77 0710081 jne short 06f fbh ; 75 0c10123 jnbe short 06fe8h ; 77 07 10124 jne short 06fefh ; 75 0c 10082 10125 cmp ax, word [bp-00eh] ; 3b 46 f2 10083 jbe short 06f fbh ; 76 0710126 jbe short 06fefh ; 76 07 10084 10127 sub ax, word [bp-00eh] ; 2b 46 f2 10085 10128 sbb dx, bx ; 19 da 10086 jmp short 0 7006h ; eb 0b10129 jmp short 06ffah ; eb 0b 10087 10130 cmp dx, bx ; 39 da 10088 jc short 0 7006h ; 72 0710089 jne short 0 700ah ; 75 0910131 jc short 06ffah ; 72 07 10132 jne short 06ffeh ; 75 09 10090 10133 cmp ax, word [bp-00eh] ; 3b 46 f2 10091 jnc short 0 700ah ; 73 0410134 jnc short 06ffeh ; 73 04 10092 10135 sub si, ax ; 29 c6 10093 10136 sbb cx, dx ; 19 d1 … … 10097 10140 mov ax, 00100h ; b8 00 01 10098 10141 int 016h ; cd 16 10099 je near 070 20h ; 0f 84 05 0010142 je near 07014h ; 0f 84 05 00 10100 10143 mov AL, strict byte 001h ; b0 01 10101 jmp near 070 22h ; e9 02 0010144 jmp near 07016h ; e9 02 00 10102 10145 db 032h, 0c0h 10103 10146 ; xor al, al ; 32 c0 10104 10147 test al, al ; 84 c0 10105 je short 070 4ah ; 74 2410148 je short 0703eh ; 74 24 10106 10149 db 033h, 0c0h 10107 10150 ; xor ax, ax ; 33 c0 … … 10112 10155 movzx ax, dl ; 0f b6 c2 10113 10156 push ax ; 50 10114 push 009 2eh ; 68 2e 0910157 push 0099eh ; 68 9e 09 10115 10158 push strict byte 00004h ; 6a 04 10116 call 0190dh ; e8 d 0a810159 call 0190dh ; e8 dc a8 10117 10160 add sp, strict byte 00006h ; 83 c4 06 10118 10161 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10119 je short 070 4ah ; 74 0410162 je short 0703eh ; 74 04 10120 10163 mov al, dl ; 88 d0 10121 jmp short 0705 ch ; eb 1210164 jmp short 07050h ; eb 12 10122 10165 test cx, cx ; 85 c9 10123 jnle short 06f dbh ; 7f 8d10124 jne short 070 54h ; 75 0410166 jnle short 06fcfh ; 7f 8d 10167 jne short 07048h ; 75 04 10125 10168 test si, si ; 85 f6 10126 jnbe short 06f dbh ; 77 8710169 jnbe short 06fcfh ; 77 87 10127 10170 mov ax, word [bp-010h] ; 8b 46 f0 10128 10171 push ax ; 50 … … 10136 10179 pop bp ; 5d 10137 10180 retn ; c3 10138 read_logo_byte_: ; 0xf70 65LB 0x1610181 read_logo_byte_: ; 0xf7059 LB 0x16 10139 10182 push bp ; 55 10140 10183 mov bp, sp ; 89 e5 … … 10151 10194 pop bp ; 5d 10152 10195 retn ; c3 10153 read_logo_word_: ; 0xf70 7bLB 0x1410196 read_logo_word_: ; 0xf706f LB 0x14 10154 10197 push bp ; 55 10155 10198 mov bp, sp ; 89 e5 … … 10164 10207 pop bp ; 5d 10165 10208 retn ; c3 10166 print_detected_harddisks_: ; 0xf708 fLB 0x13010209 print_detected_harddisks_: ; 0xf7083 LB 0x130 10167 10210 push bp ; 55 10168 10211 mov bp, sp ; 89 e5 … … 10176 10219 mov dx, strict word 0000eh ; ba 0e 00 10177 10220 mov ax, strict word 00040h ; b8 40 00 10178 call 0161ch ; e8 7aa510221 call 0161ch ; e8 86 a5 10179 10222 mov si, ax ; 89 c6 10180 10223 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 10182 10225 xor ch, ch ; 30 ed 10183 10226 mov dx, 002c0h ; ba c0 02 10184 call 01600h ; e8 4ea510227 call 01600h ; e8 5a a5 10185 10228 mov byte [bp-00eh], al ; 88 46 f2 10186 10229 xor bl, bl ; 30 db 10187 10230 cmp bl, byte [bp-00eh] ; 3a 5e f2 10188 jnc near 071 91h ; 0f 83 d3 0010231 jnc near 07185h ; 0f 83 d3 00 10189 10232 movzx dx, bl ; 0f b6 d3 10190 10233 add dx, 002c1h ; 81 c2 c1 02 10191 10234 mov ax, si ; 89 f0 10192 call 01600h ; e8 36a510235 call 01600h ; e8 42 a5 10193 10236 mov bh, al ; 88 c7 10194 10237 cmp AL, strict byte 00ch ; 3c 0c 10195 jc short 070 f4h ; 72 2410238 jc short 070e8h ; 72 24 10196 10239 test cl, cl ; 84 c9 10197 jne short 070 e1h ; 75 0d10198 push 009 3fh ; 68 3f 0910240 jne short 070d5h ; 75 0d 10241 push 009afh ; 68 af 09 10199 10242 push strict byte 00002h ; 6a 02 10200 call 0190dh ; e8 3 1a810243 call 0190dh ; e8 3d a8 10201 10244 add sp, strict byte 00004h ; 83 c4 04 10202 10245 mov CL, strict byte 001h ; b1 01 … … 10204 10247 inc ax ; 40 10205 10248 push ax ; 50 10206 push 009 53h ; 68 53 0910249 push 009c3h ; 68 c3 09 10207 10250 push strict byte 00002h ; 6a 02 10208 call 0190dh ; e8 1fa810251 call 0190dh ; e8 2b a8 10209 10252 add sp, strict byte 00006h ; 83 c4 06 10210 jmp near 0718 ch ; e9 98 0010253 jmp near 07180h ; e9 98 00 10211 10254 cmp AL, strict byte 008h ; 3c 08 10212 jc short 07 10bh ; 72 1310255 jc short 070ffh ; 72 13 10213 10256 test ch, ch ; 84 ed 10214 jne short 07 109h ; 75 0d10215 push 009 66h ; 68 66 0910257 jne short 070fdh ; 75 0d 10258 push 009d6h ; 68 d6 09 10216 10259 push strict byte 00002h ; 6a 02 10217 call 0190dh ; e8 09a810260 call 0190dh ; e8 15 a8 10218 10261 add sp, strict byte 00004h ; 83 c4 04 10219 10262 mov CH, strict byte 001h ; b5 01 10220 jmp short 070 e1h ; eb d610263 jmp short 070d5h ; eb d6 10221 10264 cmp AL, strict byte 004h ; 3c 04 10222 jnc short 071 26h ; 73 1710265 jnc short 0711ah ; 73 17 10223 10266 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10224 jne short 071 26h ; 75 1110225 push 009 7ah ; 68 7a 0910267 jne short 0711ah ; 75 11 10268 push 009eah ; 68 ea 09 10226 10269 push strict byte 00002h ; 6a 02 10227 call 0190dh ; e8 f 0a710270 call 0190dh ; e8 fc a7 10228 10271 add sp, strict byte 00004h ; 83 c4 04 10229 10272 mov byte [bp-00ch], 001h ; c6 46 f4 01 10230 jmp short 0713 ch ; eb 1610273 jmp short 07130h ; eb 16 10231 10274 cmp bh, 004h ; 80 ff 04 10232 jc short 0713 ch ; 72 1110275 jc short 07130h ; 72 11 10233 10276 test cl, cl ; 84 c9 10234 jne short 0713 ch ; 75 0d10235 push 009 3fh ; 68 3f 0910277 jne short 07130h ; 75 0d 10278 push 009afh ; 68 af 09 10236 10279 push strict byte 00002h ; 6a 02 10237 call 0190dh ; e8 d6a710280 call 0190dh ; e8 e2 a7 10238 10281 add sp, strict byte 00004h ; 83 c4 04 10239 10282 mov CL, strict byte 001h ; b1 01 … … 10241 10284 inc ax ; 40 10242 10285 push ax ; 50 10243 push 009 8bh ; 68 8b 0910286 push 009fbh ; 68 fb 09 10244 10287 push strict byte 00002h ; 6a 02 10245 call 0190dh ; e8 c4a710288 call 0190dh ; e8 d0 a7 10246 10289 add sp, strict byte 00006h ; 83 c4 06 10247 10290 cmp bh, 004h ; 80 ff 04 10248 jc short 071 54h ; 72 0310291 jc short 07148h ; 72 03 10249 10292 sub bh, 004h ; 80 ef 04 10250 10293 movzx ax, bh ; 0f b6 c7 … … 10254 10297 sar ax, 1 ; d1 f8 10255 10298 test ax, ax ; 85 c0 10256 je short 071 65h ; 74 0510257 push 00 995h ; 68 95 0910258 jmp short 071 68h ; eb 0310259 push 00 9a0h ; 68 a0 0910299 je short 07159h ; 74 05 10300 push 00a05h ; 68 05 0a 10301 jmp short 0715ch ; eb 03 10302 push 00a10h ; 68 10 0a 10260 10303 push strict byte 00002h ; 6a 02 10261 call 0190dh ; e8 a 0a710304 call 0190dh ; e8 ac a7 10262 10305 add sp, strict byte 00004h ; 83 c4 04 10263 10306 movzx ax, bh ; 0f b6 c7 … … 10266 10309 idiv di ; f7 ff 10267 10310 test dx, dx ; 85 d2 10268 je short 071 82h ; 74 0510269 push 00 9a9h ; 68 a9 0910270 jmp short 071 85h ; eb 0310271 push 00 9afh ; 68 af 0910311 je short 07176h ; 74 05 10312 push 00a19h ; 68 19 0a 10313 jmp short 07179h ; eb 03 10314 push 00a1fh ; 68 1f 0a 10272 10315 push di ; 57 10273 call 0190dh ; e8 84a710316 call 0190dh ; e8 90 a7 10274 10317 add sp, strict byte 00004h ; 83 c4 04 10275 10318 db 0feh, 0c3h 10276 10319 ; inc bl ; fe c3 10277 jmp near 070 b7h ; e9 26 ff10320 jmp near 070abh ; e9 26 ff 10278 10321 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10279 jne short 071 aah ; 75 1310322 jne short 0719eh ; 75 13 10280 10323 test cl, cl ; 84 c9 10281 jne short 071 aah ; 75 0f10324 jne short 0719eh ; 75 0f 10282 10325 test ch, ch ; 84 ed 10283 jne short 071 aah ; 75 0b10284 push 00 9b6h ; 68 b6 0910326 jne short 0719eh ; 75 0b 10327 push 00a26h ; 68 26 0a 10285 10328 push strict byte 00002h ; 6a 02 10286 call 0190dh ; e8 66a710329 call 0190dh ; e8 72 a7 10287 10330 add sp, strict byte 00004h ; 83 c4 04 10288 push 00 9cah ; 68 ca 0910331 push 00a3ah ; 68 3a 0a 10289 10332 push strict byte 00002h ; 6a 02 10290 call 0190dh ; e8 5ba710333 call 0190dh ; e8 67 a7 10291 10334 add sp, strict byte 00004h ; 83 c4 04 10292 10335 lea sp, [bp-00ah] ; 8d 66 f6 … … 10298 10341 pop bp ; 5d 10299 10342 retn ; c3 10300 get_boot_drive_: ; 0xf71b fLB 0x2810343 get_boot_drive_: ; 0xf71b3 LB 0x28 10301 10344 push bp ; 55 10302 10345 mov bp, sp ; 89 e5 … … 10306 10349 mov dx, strict word 0000eh ; ba 0e 00 10307 10350 mov ax, strict word 00040h ; b8 40 00 10308 call 0161ch ; e8 4da410351 call 0161ch ; e8 59 a4 10309 10352 mov dx, 002c0h ; ba c0 02 10310 call 01600h ; e8 2ba410353 call 01600h ; e8 37 a4 10311 10354 sub bl, 002h ; 80 eb 02 10312 10355 cmp bl, al ; 38 c3 10313 jc short 071d eh ; 72 0210356 jc short 071d2h ; 72 02 10314 10357 mov BL, strict byte 0ffh ; b3 ff 10315 10358 mov al, bl ; 88 d8 … … 10319 10362 pop bp ; 5d 10320 10363 retn ; c3 10321 show_logo_: ; 0xf71 e7LB 0x22410364 show_logo_: ; 0xf71db LB 0x224 10322 10365 push bp ; 55 10323 10366 mov bp, sp ; 89 e5 … … 10330 10373 mov dx, strict word 0000eh ; ba 0e 00 10331 10374 mov ax, strict word 00040h ; b8 40 00 10332 call 0161ch ; e8 2 1a410375 call 0161ch ; e8 2d a4 10333 10376 mov si, ax ; 89 c6 10334 10377 xor cl, cl ; 30 c9 … … 10341 10384 out strict byte 040h, AL ; e6 40 10342 10385 movzx ax, dl ; 0f b6 c2 10343 call 070 7bh ; e8 68 fe10386 call 0706fh ; e8 68 fe 10344 10387 cmp ax, 066bbh ; 3d bb 66 10345 jne near 072 ebh ; 0f 85 d1 0010388 jne near 072dfh ; 0f 85 d1 00 10346 10389 push SS ; 16 10347 10390 pop ES ; 07 … … 10351 10394 mov word [es:di], bx ; 26 89 1d 10352 10395 cmp ax, strict word 0004fh ; 3d 4f 00 10353 jne near 072 ebh ; 0f 85 bd 0010396 jne near 072dfh ; 0f 85 bd 00 10354 10397 mov al, dl ; 88 d0 10355 10398 add AL, strict byte 004h ; 04 04 10356 10399 xor ah, ah ; 30 e4 10357 call 070 65h ; e8 2e fe10400 call 07059h ; e8 2e fe 10358 10401 mov ch, al ; 88 c5 10359 10402 mov byte [bp-00ch], al ; 88 46 f4 … … 10361 10404 add AL, strict byte 005h ; 04 05 10362 10405 xor ah, ah ; 30 e4 10363 call 070 65h ; e8 20 fe10406 call 07059h ; e8 20 fe 10364 10407 mov dh, al ; 88 c6 10365 10408 mov byte [bp-010h], al ; 88 46 f0 … … 10367 10410 add AL, strict byte 002h ; 04 02 10368 10411 xor ah, ah ; 30 e4 10369 call 070 7bh ; e8 28 fe10412 call 0706fh ; e8 28 fe 10370 10413 mov bx, ax ; 89 c3 10371 10414 mov word [bp-014h], ax ; 89 46 ec … … 10373 10416 add AL, strict byte 006h ; 04 06 10374 10417 xor ah, ah ; 30 e4 10375 call 070 65h ; e8 04 fe10418 call 07059h ; e8 04 fe 10376 10419 mov byte [bp-012h], al ; 88 46 ee 10377 10420 test ch, ch ; 84 ed 10378 jne short 072 72h ; 75 0a10421 jne short 07266h ; 75 0a 10379 10422 test dh, dh ; 84 f6 10380 jne short 072 72h ; 75 0610423 jne short 07266h ; 75 06 10381 10424 test bx, bx ; 85 db 10382 je near 072 ebh ; 0f 84 79 0010425 je near 072dfh ; 0f 84 79 00 10383 10426 mov bx, 00142h ; bb 42 01 10384 10427 mov ax, 04f02h ; b8 02 4f 10385 10428 int 010h ; cd 10 10386 10429 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10387 je short 072 a3h ; 74 2310430 je short 07297h ; 74 23 10388 10431 xor bx, bx ; 31 db 10389 jmp short 072 8ah ; eb 0610432 jmp short 0727eh ; eb 06 10390 10433 inc bx ; 43 10391 10434 cmp bx, strict byte 00010h ; 83 fb 10 10392 jnbe short 072 aah ; 77 2010435 jnbe short 0729eh ; 77 20 10393 10436 mov ax, bx ; 89 d8 10394 10437 or ah, 002h ; 80 cc 02 … … 10397 10440 xor dx, dx ; 31 d2 10398 10441 mov ax, strict word 00001h ; b8 01 00 10399 call 06f b3h ; e8 18 fd10442 call 06fa7h ; e8 18 fd 10400 10443 cmp AL, strict byte 086h ; 3c 86 10401 jne short 072 84h ; 75 e510444 jne short 07278h ; 75 e5 10402 10445 mov CL, strict byte 001h ; b1 01 10403 jmp short 072 aah ; eb 0710446 jmp short 0729eh ; eb 07 10404 10447 mov ax, 00210h ; b8 10 02 10405 10448 mov dx, 003b8h ; ba b8 03 10406 10449 out DX, ax ; ef 10407 10450 test cl, cl ; 84 c9 10408 jne short 072 c0h ; 75 1210451 jne short 072b4h ; 75 12 10409 10452 mov ax, word [bp-014h] ; 8b 46 ec 10410 10453 shr ax, 004h ; c1 e8 04 10411 10454 mov dx, strict word 00001h ; ba 01 00 10412 call 06f b3h ; e8 f9 fc10455 call 06fa7h ; e8 f9 fc 10413 10456 cmp AL, strict byte 086h ; 3c 86 10414 jne short 072 c0h ; 75 0210457 jne short 072b4h ; 75 02 10415 10458 mov CL, strict byte 001h ; b1 01 10416 10459 cmp byte [bp-010h], 000h ; 80 7e f0 00 10417 je short 072 ebh ; 74 2510460 je short 072dfh ; 74 25 10418 10461 test cl, cl ; 84 c9 10419 jne short 072 ebh ; 75 2110462 jne short 072dfh ; 75 21 10420 10463 mov bx, strict word 00010h ; bb 10 00 10421 jmp short 072 d4h ; eb 0510464 jmp short 072c8h ; eb 05 10422 10465 dec bx ; 4b 10423 10466 test bx, bx ; 85 db 10424 jbe short 072 ebh ; 76 1710467 jbe short 072dfh ; 76 17 10425 10468 mov ax, bx ; 89 d8 10426 10469 or ah, 002h ; 80 cc 02 … … 10429 10472 xor dx, dx ; 31 d2 10430 10473 mov ax, strict word 00001h ; b8 01 00 10431 call 06f b3h ; e8 ce fc10474 call 06fa7h ; e8 ce fc 10432 10475 cmp AL, strict byte 086h ; 3c 86 10433 jne short 072c fh ; 75 e610476 jne short 072c3h ; 75 e6 10434 10477 mov CL, strict byte 001h ; b1 01 10435 10478 xor bx, bx ; 31 db 10436 10479 mov dx, 00339h ; ba 39 03 10437 10480 mov ax, si ; 89 f0 10438 call 0160eh ; e8 19a310481 call 0160eh ; e8 25 a3 10439 10482 mov AL, strict byte 003h ; b0 03 10440 10483 mov AH, strict byte 000h ; b4 00 10441 10484 int 010h ; cd 10 10442 10485 cmp byte [bp-012h], 000h ; 80 7e ee 00 10443 je near 073e ch ; 0f 84 e9 0010486 je near 073e0h ; 0f 84 e9 00 10444 10487 cmp byte [bp-00ch], 000h ; 80 7e f4 00 10445 jne short 073 39h ; 75 3010488 jne short 0732dh ; 75 30 10446 10489 cmp byte [bp-010h], 000h ; 80 7e f0 00 10447 jne short 073 39h ; 75 2a10490 jne short 0732dh ; 75 2a 10448 10491 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 10449 jne short 073 39h ; 75 2410492 jne short 0732dh ; 75 24 10450 10493 cmp byte [bp-012h], 002h ; 80 7e ee 02 10451 jne short 073 26h ; 75 0b10452 push 00 9cch ; 68 cc 0910494 jne short 0731ah ; 75 0b 10495 push 00a3ch ; 68 3c 0a 10453 10496 push strict byte 00002h ; 6a 02 10454 call 0190dh ; e8 eaa510497 call 0190dh ; e8 f6 a5 10455 10498 add sp, strict byte 00004h ; 83 c4 04 10456 10499 test cl, cl ; 84 c9 10457 jne short 073 39h ; 75 0f10500 jne short 0732dh ; 75 0f 10458 10501 mov dx, strict word 00001h ; ba 01 00 10459 10502 mov ax, 000c0h ; b8 c0 00 10460 call 06f b3h ; e8 80 fc10503 call 06fa7h ; e8 80 fc 10461 10504 cmp AL, strict byte 086h ; 3c 86 10462 jne short 073 39h ; 75 0210505 jne short 0732dh ; 75 02 10463 10506 mov CL, strict byte 001h ; b1 01 10464 10507 test cl, cl ; 84 c9 10465 je near 073e ch ; 0f 84 ad 0010508 je near 073e0h ; 0f 84 ad 00 10466 10509 mov byte [bp-00eh], 000h ; c6 46 f2 00 10467 10510 mov ax, 00100h ; b8 00 01 … … 10480 10523 ; xor dx, dx ; 33 d2 10481 10524 int 010h ; cd 10 10482 push 00 9eeh ; 68 ee 0910525 push 00a5eh ; 68 5e 0a 10483 10526 push strict byte 00002h ; 6a 02 10484 call 0190dh ; e8 a5a510527 call 0190dh ; e8 b1 a5 10485 10528 add sp, strict byte 00004h ; 83 c4 04 10486 call 0708 fh ; e8 21 fd10487 push 00a 32h ; 68 32 0a10529 call 07083h ; e8 21 fd 10530 push 00aa2h ; 68 a2 0a 10488 10531 push strict byte 00002h ; 6a 02 10489 call 0190dh ; e8 97a510532 call 0190dh ; e8 a3 a5 10490 10533 add sp, strict byte 00004h ; 83 c4 04 10491 10534 mov dx, strict word 00001h ; ba 01 00 10492 10535 mov ax, strict word 00040h ; b8 40 00 10493 call 06f b3h ; e8 31 fc10536 call 06fa7h ; e8 31 fc 10494 10537 mov bl, al ; 88 c3 10495 10538 test al, al ; 84 c0 10496 je short 073 79h ; 74 f110539 je short 0736dh ; 74 f1 10497 10540 cmp AL, strict byte 030h ; 3c 30 10498 je short 073 dah ; 74 4e10541 je short 073ceh ; 74 4e 10499 10542 cmp bl, 002h ; 80 fb 02 10500 jc short 073 b3h ; 72 2210543 jc short 073a7h ; 72 22 10501 10544 cmp bl, 009h ; 80 fb 09 10502 jnbe short 073 b3h ; 77 1d10545 jnbe short 073a7h ; 77 1d 10503 10546 movzx ax, bl ; 0f b6 c3 10504 call 071b fh ; e8 23 fe10547 call 071b3h ; e8 23 fe 10505 10548 cmp AL, strict byte 0ffh ; 3c ff 10506 jne short 073 a2h ; 75 0210507 jmp short 073 79h ; eb d710549 jne short 07396h ; 75 02 10550 jmp short 0736dh ; eb d7 10508 10551 movzx bx, al ; 0f b6 d8 10509 10552 mov dx, 00338h ; ba 38 03 10510 10553 mov ax, si ; 89 f0 10511 call 0160eh ; e8 6 1a210554 call 0160eh ; e8 6d a2 10512 10555 mov byte [bp-00eh], 002h ; c6 46 f2 02 10513 jmp short 073 dah ; eb 2710556 jmp short 073ceh ; eb 27 10514 10557 cmp bl, 02eh ; 80 fb 2e 10515 je short 073 c8h ; 74 1010558 je short 073bch ; 74 10 10516 10559 cmp bl, 026h ; 80 fb 26 10517 je short 073c eh ; 74 1110560 je short 073c2h ; 74 11 10518 10561 cmp bl, 021h ; 80 fb 21 10519 jne short 073 d4h ; 75 1210562 jne short 073c8h ; 75 12 10520 10563 mov byte [bp-00eh], 001h ; c6 46 f2 01 10521 jmp short 073 dah ; eb 1210564 jmp short 073ceh ; eb 12 10522 10565 mov byte [bp-00eh], 003h ; c6 46 f2 03 10523 jmp short 073 dah ; eb 0c10566 jmp short 073ceh ; eb 0c 10524 10567 mov byte [bp-00eh], 004h ; c6 46 f2 04 10525 jmp short 073 dah ; eb 0610568 jmp short 073ceh ; eb 06 10526 10569 cmp byte [bp-00eh], 000h ; 80 7e f2 00 10527 je short 073 79h ; 74 9f10570 je short 0736dh ; 74 9f 10528 10571 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 10529 10572 mov dx, 00339h ; ba 39 03 10530 10573 mov ax, si ; 89 f0 10531 call 0160eh ; e8 28a210574 call 0160eh ; e8 34 a2 10532 10575 mov AL, strict byte 003h ; b0 03 10533 10576 mov AH, strict byte 000h ; b4 00 … … 10542 10585 push DS ; 1e 10543 10586 mov ds, ax ; 8e d8 10544 call 0edbfh ; e8 c 17910587 call 0edbfh ; e8 cd 79 10545 10588 pop DS ; 1f 10546 10589 popad ; 66 61 … … 10553 10596 pop bp ; 5d 10554 10597 retn ; c3 10555 delay_boot_: ; 0xf7 40bLB 0x6710598 delay_boot_: ; 0xf73ff LB 0x67 10556 10599 push bp ; 55 10557 10600 mov bp, sp ; 89 e5 … … 10560 10603 mov dx, ax ; 89 c2 10561 10604 test ax, ax ; 85 c0 10562 je short 074 6bh ; 74 5510605 je short 0745fh ; 74 55 10563 10606 mov AL, strict byte 034h ; b0 34 10564 10607 out strict byte 043h, AL ; e6 43 … … 10568 10611 out strict byte 040h, AL ; e6 40 10569 10612 push dx ; 52 10570 push 00a 7ch ; 68 7c 0a10613 push 00aech ; 68 ec 0a 10571 10614 push strict byte 00002h ; 6a 02 10572 call 0190dh ; e8 e 2a410615 call 0190dh ; e8 ee a4 10573 10616 add sp, strict byte 00006h ; 83 c4 06 10574 10617 mov bx, dx ; 89 d3 10575 10618 test bx, bx ; 85 db 10576 jbe short 074 4bh ; 76 1710619 jbe short 0743fh ; 76 17 10577 10620 push bx ; 53 10578 push 00 a9ah ; 68 9a 0a10621 push 00b0ah ; 68 0a 0b 10579 10622 push strict byte 00002h ; 6a 02 10580 call 0190dh ; e8 d 0a410623 call 0190dh ; e8 dc a4 10581 10624 add sp, strict byte 00006h ; 83 c4 06 10582 10625 xor dx, dx ; 31 d2 10583 10626 mov ax, strict word 00040h ; b8 40 00 10584 call 06f b3h ; e8 6b fb10627 call 06fa7h ; e8 6b fb 10585 10628 dec bx ; 4b 10586 jmp short 074 30h ; eb e510587 push 00 9cah ; 68 ca 0910629 jmp short 07424h ; eb e5 10630 push 00a3ah ; 68 3a 0a 10588 10631 push strict byte 00002h ; 6a 02 10589 call 0190dh ; e8 baa410632 call 0190dh ; e8 c6 a4 10590 10633 add sp, strict byte 00004h ; 83 c4 04 10591 10634 mov AL, strict byte 034h ; b0 34 … … 10598 10641 push DS ; 1e 10599 10642 mov ds, ax ; 8e d8 10600 call 0edbfh ; e8 577910643 call 0edbfh ; e8 63 79 10601 10644 pop DS ; 1f 10602 10645 popad ; 66 61 … … 10606 10649 pop bp ; 5d 10607 10650 retn ; c3 10608 scsi_cmd_data_in_: ; 0xf74 72LB 0xb210651 scsi_cmd_data_in_: ; 0xf7466 LB 0xb2 10609 10652 push bp ; 55 10610 10653 mov bp, sp ; 89 e5 … … 10622 10665 ; sub ah, ah ; 2a e4 10623 10666 test AL, strict byte 001h ; a8 01 10624 jne short 074 88h ; 75 f710667 jne short 0747ch ; 75 f7 10625 10668 mov ax, bx ; 89 d8 10626 10669 mov dx, word [bp+00ch] ; 8b 56 0c … … 10628 10671 shr dx, 1 ; d1 ea 10629 10672 rcr ax, 1 ; d1 d8 10630 loop 074 99h ; e2 fa10673 loop 0748dh ; e2 fa 10631 10674 and ax, 000f0h ; 25 f0 00 10632 10675 movzx cx, byte [bp+004h] ; 0f b6 4e 04 … … 10646 10689 shr dx, 1 ; d1 ea 10647 10690 rcr ax, 1 ; d1 d8 10648 loop 074b fh ; e2 fa10691 loop 074b3h ; e2 fa 10649 10692 mov dx, si ; 89 f2 10650 10693 out DX, AL ; ee … … 10652 10695 movzx ax, byte [bp+004h] ; 0f b6 46 04 10653 10696 cmp cx, ax ; 39 c1 10654 jnc short 074 e0h ; 73 0e10697 jnc short 074d4h ; 73 0e 10655 10698 les di, [bp-00ah] ; c4 7e f6 10656 10699 add di, cx ; 01 cf … … 10659 10702 out DX, AL ; ee 10660 10703 inc cx ; 41 10661 jmp short 074 cah ; eb ea10704 jmp short 074beh ; eb ea 10662 10705 mov dx, si ; 89 f2 10663 10706 in AL, DX ; ec … … 10665 10708 ; sub ah, ah ; 2a e4 10666 10709 test AL, strict byte 001h ; a8 01 10667 jne short 074 e0h ; 75 f710710 jne short 074d4h ; 75 f7 10668 10711 lea dx, [si+001h] ; 8d 54 01 10669 10712 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10670 jne short 074 f8h ; 75 0610713 jne short 074ech ; 75 06 10671 10714 cmp bx, 08000h ; 81 fb 00 80 10672 jbe short 075 12h ; 76 1a10715 jbe short 07506h ; 76 1a 10673 10716 mov cx, 08000h ; b9 00 80 10674 10717 les di, [bp+006h] ; c4 7e 06 … … 10679 10722 add ax, 00800h ; 05 00 08 10680 10723 mov word [bp+008h], ax ; 89 46 08 10681 jmp short 074 e9h ; eb d710724 jmp short 074ddh ; eb d7 10682 10725 mov cx, bx ; 89 d9 10683 10726 les di, [bp+006h] ; c4 7e 06 … … 10689 10732 pop bp ; 5d 10690 10733 retn 0000ah ; c2 0a 00 10691 scsi_cmd_data_out_: ; 0xf75 24LB 0xb410734 scsi_cmd_data_out_: ; 0xf7518 LB 0xb4 10692 10735 push bp ; 55 10693 10736 mov bp, sp ; 89 e5 … … 10705 10748 ; sub ah, ah ; 2a e4 10706 10749 test AL, strict byte 001h ; a8 01 10707 jne short 075 3ah ; 75 f710750 jne short 0752eh ; 75 f7 10708 10751 mov ax, bx ; 89 d8 10709 10752 mov dx, word [bp+00ch] ; 8b 56 0c … … 10711 10754 shr dx, 1 ; d1 ea 10712 10755 rcr ax, 1 ; d1 d8 10713 loop 075 4bh ; e2 fa10756 loop 0753fh ; e2 fa 10714 10757 and ax, 000f0h ; 25 f0 00 10715 10758 movzx cx, byte [bp+004h] ; 0f b6 4e 04 … … 10729 10772 shr dx, 1 ; d1 ea 10730 10773 rcr ax, 1 ; d1 d8 10731 loop 075 71h ; e2 fa10774 loop 07565h ; e2 fa 10732 10775 mov dx, di ; 89 fa 10733 10776 out DX, AL ; ee … … 10735 10778 movzx ax, byte [bp+004h] ; 0f b6 46 04 10736 10779 cmp cx, ax ; 39 c1 10737 jnc short 075 92h ; 73 0e10780 jnc short 07586h ; 73 0e 10738 10781 les si, [bp-00ah] ; c4 76 f6 10739 10782 add si, cx ; 01 ce … … 10742 10785 out DX, AL ; ee 10743 10786 inc cx ; 41 10744 jmp short 0757 ch ; eb ea10787 jmp short 07570h ; eb ea 10745 10788 lea dx, [di+001h] ; 8d 55 01 10746 10789 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 10747 jne short 075 a1h ; 75 0610790 jne short 07595h ; 75 06 10748 10791 cmp bx, 08000h ; 81 fb 00 80 10749 jbe short 075b ch ; 76 1b10792 jbe short 075b0h ; 76 1b 10750 10793 mov cx, 08000h ; b9 00 80 10751 10794 les si, [bp+006h] ; c4 76 06 … … 10757 10800 add ax, 00800h ; 05 00 08 10758 10801 mov word [bp+008h], ax ; 89 46 08 10759 jmp short 075 92h ; eb d610802 jmp short 07586h ; eb d6 10760 10803 mov cx, bx ; 89 d9 10761 10804 les si, [bp+006h] ; c4 76 06 … … 10767 10810 ; sub ah, ah ; 2a e4 10768 10811 test AL, strict byte 001h ; a8 01 10769 jne short 075 c4h ; 75 f710812 jne short 075b8h ; 75 f7 10770 10813 xor ax, ax ; 31 c0 10771 10814 lea sp, [bp-004h] ; 8d 66 fc … … 10774 10817 pop bp ; 5d 10775 10818 retn 0000ah ; c2 0a 00 10776 @scsi_read_sectors: ; 0xf75 d8LB 0xb610819 @scsi_read_sectors: ; 0xf75cc LB 0xb6 10777 10820 push bp ; 55 10778 10821 mov bp, sp ; 89 e5 … … 10785 10828 sub bl, 008h ; 80 eb 08 10786 10829 cmp bl, 004h ; 80 fb 04 10787 jbe short 07 601h ; 76 0f10830 jbe short 075f5h ; 76 0f 10788 10831 movzx ax, bl ; 0f b6 c3 10789 10832 push ax ; 50 10790 push 00 a9eh ; 68 9e 0a10833 push 00b0eh ; 68 0e 0b 10791 10834 push strict byte 00007h ; 6a 07 10792 call 0190dh ; e8 0fa310835 call 0190dh ; e8 1b a3 10793 10836 add sp, strict byte 00006h ; 83 c4 06 10794 10837 mov es, [bp+006h] ; 8e 46 06 … … 10817 10860 sal word [bp-008h], 1 ; d1 66 f8 10818 10861 rcl word [bp-006h], 1 ; d1 56 fa 10819 loop 076 4ah ; e2 f810862 loop 0763eh ; e2 f8 10820 10863 push dword [bp-008h] ; 66 ff 76 f8 10821 10864 db 066h, 026h, 0ffh, 074h, 004h … … 10825 10868 mov cx, ss ; 8c d1 10826 10869 lea bx, [bp-012h] ; 8d 5e ee 10827 call 074 72h ; e8 0b fe10870 call 07466h ; e8 0b fe 10828 10871 mov ah, al ; 88 c4 10829 10872 test al, al ; 84 c0 10830 jne short 076 82h ; 75 1510873 jne short 07676h ; 75 15 10831 10874 mov es, [bp+006h] ; 8e 46 06 10832 10875 mov word [es:si+014h], di ; 26 89 7c 14 … … 10841 10884 pop bp ; 5d 10842 10885 retn 00004h ; c2 04 00 10843 @scsi_write_sectors: ; 0xf768 eLB 0xb610886 @scsi_write_sectors: ; 0xf7682 LB 0xb6 10844 10887 push bp ; 55 10845 10888 mov bp, sp ; 89 e5 … … 10852 10895 sub bl, 008h ; 80 eb 08 10853 10896 cmp bl, 004h ; 80 fb 04 10854 jbe short 076 b7h ; 76 0f10897 jbe short 076abh ; 76 0f 10855 10898 movzx ax, bl ; 0f b6 c3 10856 10899 push ax ; 50 10857 push 00 acch ; 68 cc 0a10900 push 00b3ch ; 68 3c 0b 10858 10901 push strict byte 00007h ; 6a 07 10859 call 0190dh ; e8 59a210902 call 0190dh ; e8 65 a2 10860 10903 add sp, strict byte 00006h ; 83 c4 06 10861 10904 mov es, [bp+006h] ; 8e 46 06 … … 10884 10927 sal word [bp-008h], 1 ; d1 66 f8 10885 10928 rcl word [bp-006h], 1 ; d1 56 fa 10886 loop 07 700h ; e2 f810929 loop 076f4h ; e2 f8 10887 10930 push dword [bp-008h] ; 66 ff 76 f8 10888 10931 db 066h, 026h, 0ffh, 074h, 004h … … 10892 10935 mov cx, ss ; 8c d1 10893 10936 lea bx, [bp-012h] ; 8d 5e ee 10894 call 075 24h ; e8 07 fe10937 call 07518h ; e8 07 fe 10895 10938 mov ah, al ; 88 c4 10896 10939 test al, al ; 84 c0 10897 jne short 077 38h ; 75 1510940 jne short 0772ch ; 75 15 10898 10941 mov es, [bp+006h] ; 8e 46 06 10899 10942 mov word [es:si+014h], di ; 26 89 7c 14 … … 10908 10951 pop bp ; 5d 10909 10952 retn 00004h ; c2 04 00 10910 scsi_cmd_packet_: ; 0xf77 44LB 0x16610953 scsi_cmd_packet_: ; 0xf7738 LB 0x166 10911 10954 push bp ; 55 10912 10955 mov bp, sp ; 89 e5 … … 10920 10963 mov dx, strict word 0000eh ; ba 0e 00 10921 10964 mov ax, strict word 00040h ; b8 40 00 10922 call 0161ch ; e8 bc9e10965 call 0161ch ; e8 c8 9e 10923 10966 mov si, 00122h ; be 22 01 10924 10967 mov word [bp-00eh], ax ; 89 46 f2 10925 10968 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 10926 jne short 077 8bh ; 75 1f10927 mov bx, 00d 38h ; bb 38 0d10969 jne short 0777fh ; 75 1f 10970 mov bx, 00da8h ; bb a8 0d 10928 10971 mov cx, ds ; 8c d9 10929 10972 mov ax, strict word 00004h ; b8 04 00 10930 call 018cch ; e8 55a110931 push 00 afbh ; 68 fb 0a10932 push 00b 0bh ; 68 0b 0b10973 call 018cch ; e8 61 a1 10974 push 00b6bh ; 68 6b 0b 10975 push 00b7bh ; 68 7b 0b 10933 10976 push strict byte 00004h ; 6a 04 10934 call 0190dh ; e8 8ba110977 call 0190dh ; e8 97 a1 10935 10978 add sp, strict byte 00006h ; 83 c4 06 10936 10979 mov dx, strict word 00001h ; ba 01 00 10937 jmp near 0789 fh ; e9 14 0110980 jmp near 07893h ; e9 14 01 10938 10981 sub di, strict byte 00008h ; 83 ef 08 10939 10982 sal di, 002h ; c1 e7 02 … … 10949 10992 ; sub ah, ah ; 2a e4 10950 10993 test AL, strict byte 001h ; a8 01 10951 jne short 077 a7h ; 75 f710994 jne short 0779bh ; 75 f7 10952 10995 xor ax, ax ; 31 c0 10953 10996 mov dx, word [bp+006h] ; 8b 56 06 … … 10965 11008 shr dx, 1 ; d1 ea 10966 11009 rcr ax, 1 ; d1 d8 10967 loop 077 d2h ; e2 fa11010 loop 077c6h ; e2 fa 10968 11011 and ax, 000f0h ; 25 f0 00 10969 11012 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 10983 11026 shr dx, 1 ; d1 ea 10984 11027 rcr ax, 1 ; d1 d8 10985 loop 077 f9h ; e2 fa11028 loop 077edh ; e2 fa 10986 11029 mov dx, bx ; 89 da 10987 11030 out DX, AL ; ee … … 10989 11032 movzx ax, byte [bp-006h] ; 0f b6 46 fa 10990 11033 cmp cx, ax ; 39 c1 10991 jnc short 078 1ah ; 73 0e11034 jnc short 0780eh ; 73 0e 10992 11035 les di, [bp-00ch] ; c4 7e f4 10993 11036 add di, cx ; 01 cf … … 10996 11039 out DX, AL ; ee 10997 11040 inc cx ; 41 10998 jmp short 07 804h ; eb ea11041 jmp short 077f8h ; eb ea 10999 11042 mov dx, bx ; 89 da 11000 11043 in AL, DX ; ec … … 11002 11045 ; sub ah, ah ; 2a e4 11003 11046 test AL, strict byte 001h ; a8 01 11004 jne short 078 1ah ; 75 f711047 jne short 0780eh ; 75 f7 11005 11048 test AL, strict byte 002h ; a8 02 11006 je short 078 35h ; 74 0e11049 je short 07829h ; 74 0e 11007 11050 lea dx, [bx+003h] ; 8d 57 03 11008 11051 xor al, al ; 30 c0 … … 11012 11055 ; sub ah, ah ; 2a e4 11013 11056 mov dx, strict word 00003h ; ba 03 00 11014 jmp short 0789 fh ; eb 6a11057 jmp short 07893h ; eb 6a 11015 11058 mov ax, word [bp+004h] ; 8b 46 04 11016 11059 test ax, ax ; 85 c0 11017 je short 078 44h ; 74 0811060 je short 07838h ; 74 08 11018 11061 lea dx, [bx+001h] ; 8d 57 01 11019 11062 mov cx, ax ; 89 c1 11020 11063 in AL, DX ; ec 11021 loop 078 41h ; e2 fd11064 loop 07835h ; e2 fd 11022 11065 mov ax, word [bp+006h] ; 8b 46 06 11023 11066 mov es, [bp-00eh] ; 8e 46 f2 … … 11027 11070 lea ax, [bx+001h] ; 8d 47 01 11028 11071 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 11029 jne short 078 65h ; 75 0711072 jne short 07859h ; 75 07 11030 11073 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 11031 jbe short 078 82h ; 76 1d11074 jbe short 07876h ; 76 1d 11032 11075 mov dx, ax ; 89 c2 11033 11076 mov cx, 08000h ; b9 00 80 … … 11039 11082 add ax, 00800h ; 05 00 08 11040 11083 mov word [bp+00eh], ax ; 89 46 0e 11041 jmp short 078 55h ; eb d311084 jmp short 07849h ; eb d3 11042 11085 mov dx, ax ; 89 c2 11043 11086 mov cx, word [bp+006h] ; 8b 4e 06 … … 11046 11089 mov es, [bp-00eh] ; 8e 46 f2 11047 11090 cmp word [es:si+01ch], strict byte 00000h ; 26 83 7c 1c 00 11048 je short 0789 dh ; 74 0711091 je short 07891h ; 74 07 11049 11092 mov cx, word [es:si+01ch] ; 26 8b 4c 1c 11050 11093 in AL, DX ; ec 11051 loop 078 9ah ; e2 fd11094 loop 0788eh ; e2 fd 11052 11095 xor dx, dx ; 31 d2 11053 11096 mov ax, dx ; 89 d0 … … 11057 11100 pop bp ; 5d 11058 11101 retn 0000ch ; c2 0c 00 11059 scsi_enumerate_attached_devices_: ; 0xf78 aaLB 0x37311102 scsi_enumerate_attached_devices_: ; 0xf789e LB 0x373 11060 11103 push bp ; 55 11061 11104 mov bp, sp ; 89 e5 … … 11069 11112 mov dx, strict word 0000eh ; ba 0e 00 11070 11113 mov ax, strict word 00040h ; b8 40 00 11071 call 0161ch ; e8 5c9d11114 call 0161ch ; e8 68 9d 11072 11115 mov si, 00122h ; be 22 01 11073 11116 mov word [bp-012h], ax ; 89 46 ee 11074 11117 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 11075 jmp near 07b abh ; e9 dd 0211118 jmp near 07b9fh ; e9 dd 02 11076 11119 mov es, [bp-012h] ; 8e 46 ee 11077 11120 cmp byte [es:si+001e8h], 004h ; 26 80 bc e8 01 04 11078 jnc near 07c 13h ; 0f 83 38 0311121 jnc near 07c07h ; 0f 83 38 03 11079 11122 mov cx, strict word 0000ah ; b9 0a 00 11080 11123 xor bx, bx ; 31 db 11081 11124 mov dx, ss ; 8c d2 11082 11125 lea ax, [bp-028h] ; 8d 46 d8 11083 call 0924ah ; e8 6 21911126 call 0924ah ; e8 6e 19 11084 11127 mov byte [bp-028h], 025h ; c6 46 d8 25 11085 11128 push dword 000000008h ; 66 6a 08 … … 11092 11135 lea bx, [bp-028h] ; 8d 5e d8 11093 11136 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11094 call 074 72h ; e8 6b fb11137 call 07466h ; e8 6b fb 11095 11138 test al, al ; 84 c0 11096 je short 079 19h ; 74 0e11097 push 00b 2bh ; 68 2b 0b11098 push 00b 64h ; 68 64 0b11139 je short 0790dh ; 74 0e 11140 push 00b9bh ; 68 9b 0b 11141 push 00bd4h ; 68 d4 0b 11099 11142 push strict byte 00007h ; 6a 07 11100 call 0190dh ; e8 f7 9f11143 call 0190dh ; e8 03 a0 11101 11144 add sp, strict byte 00006h ; 83 c4 06 11102 11145 movzx dx, byte [bp-00227h] ; 0f b6 96 d9 fd … … 11110 11153 sal ax, 1 ; d1 e0 11111 11154 rcl dx, 1 ; d1 d2 11112 loop 079 34h ; e2 fa11155 loop 07928h ; e2 fa 11113 11156 or ax, bx ; 09 d8 11114 11157 or di, dx ; 09 d7 … … 11126 11169 sal ax, 1 ; d1 e0 11127 11170 rcl dx, 1 ; d1 d2 11128 loop 079 64h ; e2 fa11171 loop 07958h ; e2 fa 11129 11172 or bx, ax ; 09 c3 11130 11173 or dx, word [bp-01eh] ; 0b 56 e2 … … 11133 11176 mov word [bp-00eh], bx ; 89 5e f2 11134 11177 test dx, dx ; 85 d2 11135 jne short 079 83h ; 75 0611178 jne short 07977h ; 75 06 11136 11179 cmp bx, 00200h ; 81 fb 00 02 11137 je short 079 a3h ; 74 2011138 mov bx, 00d 38h ; bb 38 0d11180 je short 07997h ; 74 20 11181 mov bx, 00da8h ; bb a8 0d 11139 11182 mov cx, ds ; 8c d9 11140 11183 mov ax, strict word 00004h ; b8 04 00 11141 call 018cch ; e8 3e9f11184 call 018cch ; e8 4a 9f 11142 11185 push dx ; 52 11143 11186 push word [bp-00eh] ; ff 76 f2 11144 11187 push word [bp-014h] ; ff 76 ec 11145 push 00b 83h ; 68 83 0b11188 push 00bf3h ; 68 f3 0b 11146 11189 push strict byte 00004h ; 6a 04 11147 call 0190dh ; e8 7 09f11190 call 0190dh ; e8 7c 9f 11148 11191 add sp, strict byte 0000ah ; 83 c4 0a 11149 jmp near 07b a2h ; e9 ff 0111192 jmp near 07b96h ; e9 ff 01 11150 11193 cmp di, strict byte 00040h ; 83 ff 40 11151 jnbe short 079 aah ; 77 0211152 jne short 079 b4h ; 75 0a11194 jnbe short 0799eh ; 77 02 11195 jne short 079a8h ; 75 0a 11153 11196 mov dword [bp-018h], strict dword 000ff003fh ; 66 c7 46 e8 3f 00 ff 00 11154 jmp short 079c dh ; eb 1911197 jmp short 079c1h ; eb 19 11155 11198 cmp di, strict byte 00020h ; 83 ff 20 11156 jnbe short 079 bbh ; 77 0211157 jne short 079 c5h ; 75 0a11199 jnbe short 079afh ; 77 02 11200 jne short 079b9h ; 75 0a 11158 11201 mov dword [bp-018h], strict dword 000800020h ; 66 c7 46 e8 20 00 80 00 11159 jmp short 079c dh ; eb 0811202 jmp short 079c1h ; eb 08 11160 11203 mov dword [bp-018h], strict dword 000400020h ; 66 c7 46 e8 20 00 40 00 11161 11204 mov bx, word [bp-016h] ; 8b 5e ea … … 11164 11207 mov dx, di ; 89 fa 11165 11208 xor cx, cx ; 31 c9 11166 call 091e0h ; e8 0 21811209 call 091e0h ; e8 0e 18 11167 11210 mov word [bp-01ch], ax ; 89 46 e4 11168 11211 mov word [bp-01ah], dx ; 89 56 e6 … … 11193 11236 mov word [es:bx+02ah], ax ; 26 89 47 2a 11194 11237 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 11195 jne short 07a 47h ; 75 0711238 jne short 07a3bh ; 75 07 11196 11239 cmp word [bp-01ch], 00400h ; 81 7e e4 00 04 11197 jbe short 07a4 fh ; 76 0811240 jbe short 07a43h ; 76 08 11198 11241 mov word [es:bx+028h], 00400h ; 26 c7 47 28 00 04 11199 jmp short 07a 56h ; eb 0711242 jmp short 07a4ah ; eb 07 11200 11243 mov ax, word [bp-01ch] ; 8b 46 e4 11201 11244 mov word [es:bx+028h], ax ; 26 89 47 28 11202 mov bx, 00d 38h ; bb 38 0d11245 mov bx, 00da8h ; bb a8 0d 11203 11246 mov cx, ds ; 8c d9 11204 11247 mov ax, strict word 00004h ; b8 04 00 11205 call 018cch ; e8 6b9e11248 call 018cch ; e8 77 9e 11206 11249 push di ; 57 11207 11250 push word [bp-010h] ; ff 76 f0 … … 11212 11255 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11213 11256 push ax ; 50 11214 push 00 bb1h ; 68 b1 0b11257 push 00c21h ; 68 21 0c 11215 11258 push strict byte 00004h ; 6a 04 11216 call 0190dh ; e8 8f9e11259 call 0190dh ; e8 9b 9e 11217 11260 add sp, strict byte 00012h ; 83 c4 12 11218 11261 movzx ax, dl ; 0f b6 c2 … … 11226 11269 mov word [es:bx+030h], ax ; 26 89 47 30 11227 11270 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 11228 jne short 07a a9h ; 75 0711271 jne short 07a9dh ; 75 07 11229 11272 cmp word [bp-01ch], 00400h ; 81 7e e4 00 04 11230 jbe short 07a b1h ; 76 0811273 jbe short 07aa5h ; 76 08 11231 11274 mov word [es:bx+02eh], 00400h ; 26 c7 47 2e 00 04 11232 jmp short 07a b8h ; eb 0711275 jmp short 07aach ; eb 07 11233 11276 mov ax, word [bp-01ch] ; 8b 46 e4 11234 11277 mov word [es:bx+02eh], ax ; 26 89 47 2e … … 11252 11295 mov dx, strict word 00075h ; ba 75 00 11253 11296 mov ax, strict word 00040h ; b8 40 00 11254 call 01600h ; e8 0b9b11297 call 01600h ; e8 17 9b 11255 11298 db 0feh, 0c0h 11256 11299 ; inc al ; fe c0 … … 11258 11301 mov dx, strict word 00075h ; ba 75 00 11259 11302 mov ax, strict word 00040h ; b8 40 00 11260 call 0160eh ; e8 0b9b11303 call 0160eh ; e8 17 9b 11261 11304 inc byte [bp-00ch] ; fe 46 f4 11262 11305 mov al, byte [bp-00ch] ; 8a 46 f4 11263 11306 mov es, [bp-012h] ; 8e 46 ee 11264 11307 mov byte [es:si+001e8h], al ; 26 88 84 e8 01 11265 jmp near 07b a2h ; e9 8e 0011266 mov bx, 00d 38h ; bb 38 0d11308 jmp near 07b96h ; e9 8e 00 11309 mov bx, 00da8h ; bb a8 0d 11267 11310 mov cx, ds ; 8c d9 11268 11311 mov ax, strict word 00004h ; b8 04 00 11269 call 018cch ; e8 ad9d11312 call 018cch ; e8 b9 9d 11270 11313 push word [bp-014h] ; ff 76 ec 11271 11314 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 11272 11315 push ax ; 50 11273 push 00 bdbh ; 68 db 0b11316 push 00c4bh ; 68 4b 0c 11274 11317 push strict byte 00004h ; 6a 04 11275 call 0190dh ; e8 de9d11318 call 0190dh ; e8 ea 9d 11276 11319 add sp, strict byte 00008h ; 83 c4 08 11277 11320 mov dl, byte [bp-00ch] ; 8a 56 f4 … … 11311 11354 inc word [bp-014h] ; ff 46 ec 11312 11355 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 11313 jnl short 07c 13h ; 7d 6811356 jnl short 07c07h ; 7d 68 11314 11357 mov byte [bp-028h], 012h ; c6 46 d8 12 11315 11358 xor al, al ; 30 c0 … … 11328 11371 lea bx, [bp-028h] ; 8d 5e d8 11329 11372 mov ax, word [bp-0022ah] ; 8b 86 d6 fd 11330 call 074 72h ; e8 96 f811373 call 07466h ; e8 96 f8 11331 11374 test al, al ; 84 c0 11332 je short 07be eh ; 74 0e11333 push 00b 2bh ; 68 2b 0b11334 push 00b 4bh ; 68 4b 0b11375 je short 07be2h ; 74 0e 11376 push 00b9bh ; 68 9b 0b 11377 push 00bbbh ; 68 bb 0b 11335 11378 push strict byte 00007h ; 6a 07 11336 call 0190dh ; e8 2 29d11379 call 0190dh ; e8 2e 9d 11337 11380 add sp, strict byte 00006h ; 83 c4 06 11338 11381 test byte [bp-00228h], 0e0h ; f6 86 d8 fd e0 11339 jne short 07bf eh ; 75 0911382 jne short 07bf2h ; 75 09 11340 11383 test byte [bp-00228h], 01fh ; f6 86 d8 fd 1f 11341 je near 078c eh ; 0f 84 d0 fc11384 je near 078c2h ; 0f 84 d0 fc 11342 11385 test byte [bp-00228h], 0e0h ; f6 86 d8 fd e0 11343 jne short 07b a2h ; 75 9d11386 jne short 07b96h ; 75 9d 11344 11387 mov al, byte [bp-00228h] ; 8a 86 d8 fd 11345 11388 and AL, strict byte 01fh ; 24 1f 11346 11389 cmp AL, strict byte 005h ; 3c 05 11347 je near 07b 14h ; 0f 84 03 ff11348 jmp short 07b a2h ; eb 8f11390 je near 07b08h ; 0f 84 03 ff 11391 jmp short 07b96h ; eb 8f 11349 11392 lea sp, [bp-00ah] ; 8d 66 f6 11350 11393 pop di ; 5f … … 11355 11398 pop bp ; 5d 11356 11399 retn ; c3 11357 _scsi_init: ; 0xf7c1 dLB 0x6611400 _scsi_init: ; 0xf7c11 LB 0x66 11358 11401 push bp ; 55 11359 11402 mov bp, sp ; 89 e5 11360 11403 mov dx, strict word 0000eh ; ba 0e 00 11361 11404 mov ax, strict word 00040h ; b8 40 00 11362 call 0161ch ; e8 f 39911405 call 0161ch ; e8 ff 99 11363 11406 mov bx, 00122h ; bb 22 01 11364 11407 mov es, ax ; 8e c0 … … 11371 11414 ; sub ah, ah ; 2a e4 11372 11415 cmp AL, strict byte 055h ; 3c 55 11373 jne short 07c4 dh ; 75 0c11416 jne short 07c41h ; 75 0c 11374 11417 xor al, al ; 30 c0 11375 11418 mov dx, 00433h ; ba 33 04 11376 11419 out DX, AL ; ee 11377 11420 mov ax, 00430h ; b8 30 04 11378 call 078 aah ; e8 5d fc11421 call 0789eh ; e8 5d fc 11379 11422 mov AL, strict byte 055h ; b0 55 11380 11423 mov dx, 00436h ; ba 36 04 … … 11384 11427 ; sub ah, ah ; 2a e4 11385 11428 cmp AL, strict byte 055h ; 3c 55 11386 jne short 07c 66h ; 75 0c11429 jne short 07c5ah ; 75 0c 11387 11430 xor al, al ; 30 c0 11388 11431 mov dx, 00437h ; ba 37 04 11389 11432 out DX, AL ; ee 11390 11433 mov ax, 00434h ; b8 34 04 11391 call 078 aah ; e8 44 fc11434 call 0789eh ; e8 44 fc 11392 11435 mov AL, strict byte 055h ; b0 55 11393 11436 mov dx, 0043ah ; ba 3a 04 … … 11397 11440 ; sub ah, ah ; 2a e4 11398 11441 cmp AL, strict byte 055h ; 3c 55 11399 jne short 07c7 fh ; 75 0c11442 jne short 07c73h ; 75 0c 11400 11443 xor al, al ; 30 c0 11401 11444 mov dx, 0043bh ; ba 3b 04 11402 11445 out DX, AL ; ee 11403 11446 mov ax, 00438h ; b8 38 04 11404 call 078 aah ; e8 2b fc11447 call 0789eh ; e8 2b fc 11405 11448 mov sp, bp ; 89 ec 11406 11449 pop bp ; 5d 11407 11450 retn ; c3 11408 high_bits_save_: ; 0xf7c 83LB 0x1711451 high_bits_save_: ; 0xf7c77 LB 0x17 11409 11452 push bp ; 55 11410 11453 mov bp, sp ; 89 e5 … … 11418 11461 pop bp ; 5d 11419 11462 retn ; c3 11420 high_bits_restore_: ; 0xf7c 9aLB 0x1711463 high_bits_restore_: ; 0xf7c8e LB 0x17 11421 11464 push bp ; 55 11422 11465 mov bp, sp ; 89 e5 … … 11430 11473 pop bp ; 5d 11431 11474 retn ; c3 11432 ahci_ctrl_set_bits_: ; 0xf7c b1LB 0x4311475 ahci_ctrl_set_bits_: ; 0xf7ca5 LB 0x43 11433 11476 push bp ; 55 11434 11477 mov bp, sp ; 89 e5 … … 11468 11511 pop bp ; 5d 11469 11512 retn ; c3 11470 ahci_ctrl_clear_bits_: ; 0xf7c f4LB 0x4711513 ahci_ctrl_clear_bits_: ; 0xf7ce8 LB 0x47 11471 11514 push bp ; 55 11472 11515 mov bp, sp ; 89 e5 … … 11508 11551 pop bp ; 5d 11509 11552 retn ; c3 11510 ahci_ctrl_is_bit_set_: ; 0xf7d 3bLB 0x3911553 ahci_ctrl_is_bit_set_: ; 0xf7d2f LB 0x39 11511 11554 push bp ; 55 11512 11555 mov bp, sp ; 89 e5 … … 11530 11573 xchg dx, ax ; 92 11531 11574 test dx, di ; 85 fa 11532 jne short 07d 67h ; 75 0411575 jne short 07d5bh ; 75 04 11533 11576 test ax, bx ; 85 d8 11534 je short 07d 6bh ; 74 0411577 je short 07d5fh ; 74 04 11535 11578 mov AL, strict byte 001h ; b0 01 11536 jmp short 07d6 dh ; eb 0211579 jmp short 07d61h ; eb 02 11537 11580 xor al, al ; 30 c0 11538 11581 lea sp, [bp-004h] ; 8d 66 fc … … 11541 11584 pop bp ; 5d 11542 11585 retn ; c3 11543 ahci_ctrl_extract_bits_: ; 0xf7d 74LB 0x1b11586 ahci_ctrl_extract_bits_: ; 0xf7d68 LB 0x1b 11544 11587 push si ; 56 11545 11588 push bp ; 55 … … 11549 11592 and dx, cx ; 21 ca 11550 11593 movzx cx, byte [bp+006h] ; 0f b6 4e 06 11551 jcxz 07d 8ah ; e3 0611594 jcxz 07d7eh ; e3 06 11552 11595 shr dx, 1 ; d1 ea 11553 11596 rcr ax, 1 ; d1 d8 11554 loop 07d 84h ; e2 fa11597 loop 07d78h ; e2 fa 11555 11598 pop bp ; 5d 11556 11599 pop si ; 5e 11557 11600 retn 00002h ; c2 02 00 11558 ahci_addr_to_phys_: ; 0xf7d8 fLB 0x1e11601 ahci_addr_to_phys_: ; 0xf7d83 LB 0x1e 11559 11602 push bx ; 53 11560 11603 push cx ; 51 … … 11567 11610 sal ax, 1 ; d1 e0 11568 11611 rcl dx, 1 ; d1 d2 11569 loop 07d9 dh ; e2 fa11612 loop 07d91h ; e2 fa 11570 11613 xor cx, cx ; 31 c9 11571 11614 add ax, bx ; 01 d8 … … 11575 11618 pop bx ; 5b 11576 11619 retn ; c3 11577 ahci_port_cmd_sync_: ; 0xf7da dLB 0xd511620 ahci_port_cmd_sync_: ; 0xf7da1 LB 0xd5 11578 11621 push bp ; 55 11579 11622 mov bp, sp ; 89 e5 … … 11589 11632 mov di, word [es:si+00260h] ; 26 8b bc 60 02 11590 11633 cmp AL, strict byte 0ffh ; 3c ff 11591 je near 07e 7ah ; 0f 84 aa 0011634 je near 07e6eh ; 0f 84 aa 00 11592 11635 movzx cx, byte [es:si+00263h] ; 26 0f b6 8c 63 02 11593 11636 xor dx, dx ; 31 d2 … … 11601 11644 lea ax, [si+00080h] ; 8d 84 80 00 11602 11645 mov dx, es ; 8c c2 11603 call 07d8 fh ; e8 96 ff11646 call 07d83h ; e8 96 ff 11604 11647 mov es, [bp-00ah] ; 8e 46 f6 11605 11648 mov word [es:si+008h], ax ; 26 89 44 08 … … 11611 11654 xor cx, cx ; 31 c9 11612 11655 mov ax, di ; 89 f8 11613 call 07c b1h ; e8 98 fe11656 call 07ca5h ; e8 98 fe 11614 11657 lea ax, [si+00138h] ; 8d 84 38 01 11615 11658 cwd ; 99 … … 11638 11681 mov dx, si ; 89 f2 11639 11682 mov ax, di ; 89 f8 11640 call 07d 3bh ; e8 e2 fe11683 call 07d2fh ; e8 e2 fe 11641 11684 test al, al ; 84 c0 11642 je short 07e3 ch ; 74 df11685 je short 07e30h ; 74 df 11643 11686 mov bx, strict word 00001h ; bb 01 00 11644 11687 xor cx, cx ; 31 c9 11645 11688 mov dx, si ; 89 f2 11646 11689 mov ax, di ; 89 f8 11647 call 07c b1h ; e8 48 fe11690 call 07ca5h ; e8 48 fe 11648 11691 mov dx, word [bp-00ch] ; 8b 56 f4 11649 11692 add dx, 00118h ; 81 c2 18 01 … … 11651 11694 xor cx, cx ; 31 c9 11652 11695 mov ax, di ; 89 f8 11653 call 07c f4h ; e8 7a fe11696 call 07ce8h ; e8 7a fe 11654 11697 lea sp, [bp-006h] ; 8d 66 fa 11655 11698 pop di ; 5f … … 11658 11701 pop bp ; 5d 11659 11702 retn ; c3 11660 ahci_cmd_data_: ; 0xf7e 82LB 0x1ca11703 ahci_cmd_data_: ; 0xf7e76 LB 0x1ca 11661 11704 push bp ; 55 11662 11705 mov bp, sp ; 89 e5 … … 11682 11725 mov ax, 00080h ; b8 80 00 11683 11726 mov dx, word [bp-00ah] ; 8b 56 f6 11684 call 0924ah ; e8 891311727 call 0924ah ; e8 95 13 11685 11728 mov es, [bp-00ah] ; 8e 46 f6 11686 11729 mov word [es:si+00080h], 08027h ; 26 c7 84 80 00 27 80 … … 11698 11741 shr bx, 1 ; d1 eb 11699 11742 rcr ax, 1 ; d1 d8 11700 loop 07e f4h ; e2 fa11743 loop 07ee8h ; e2 fa 11701 11744 mov es, [bp-00ah] ; 8e 46 f6 11702 11745 mov byte [es:si+00085h], al ; 26 88 84 85 00 … … 11723 11766 mov bx, word [bp-016h] ; 8b 5e ea 11724 11767 xor cx, cx ; 31 c9 11725 call 09219h ; e8 bc1211768 call 09219h ; e8 c8 12 11726 11769 push dx ; 52 11727 11770 push ax ; 50 … … 11731 11774 mov ax, 0026ah ; b8 6a 02 11732 11775 mov dx, word [bp-00ah] ; 8b 56 f6 11733 call 091 37h ; e8 c4 1111776 call 0912bh ; e8 c4 11 11734 11777 mov es, [bp-00ah] ; 8e 46 f6 11735 11778 movzx ax, byte [es:si+00263h] ; 26 0f b6 84 63 02 … … 11751 11794 mov es, [bp-012h] ; 8e 46 ee 11752 11795 cmp word [es:di+01ch], strict byte 00000h ; 26 83 7d 1c 00 11753 je short 07fe ch ; 74 2c11796 je short 07fe0h ; 74 2c 11754 11797 mov dx, word [es:di+01ch] ; 26 8b 55 1c 11755 11798 dec dx ; 4a … … 11770 11813 movzx dx, byte [es:bx+00263h] ; 26 0f b6 97 63 02 11771 11814 cmp ax, dx ; 39 d0 11772 jnc short 0 8006h ; 73 0311815 jnc short 07ffah ; 73 03 11773 11816 inc ax ; 40 11774 jmp short 07f f6h ; eb f011817 jmp short 07feah ; eb f0 11775 11818 mov al, byte [bp-008h] ; 8a 46 f8 11776 11819 cmp AL, strict byte 035h ; 3c 35 11777 jne short 080 13h ; 75 0611820 jne short 08007h ; 75 06 11778 11821 mov byte [bp-008h], 040h ; c6 46 f8 40 11779 jmp short 080 27h ; eb 1411822 jmp short 0801bh ; eb 14 11780 11823 cmp AL, strict byte 0a0h ; 3c a0 11781 jne short 080 23h ; 75 0c11824 jne short 08017h ; 75 0c 11782 11825 or byte [bp-008h], 020h ; 80 4e f8 20 11783 11826 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 11784 jmp short 080 27h ; eb 0411827 jmp short 0801bh ; eb 04 11785 11828 mov byte [bp-008h], 000h ; c6 46 f8 00 11786 11829 or byte [bp-008h], 005h ; 80 4e f8 05 … … 11788 11831 mov ax, word [bp-00eh] ; 8b 46 f2 11789 11832 mov dx, word [bp-00ch] ; 8b 56 f4 11790 call 07da dh ; e8 75 fd11833 call 07da1h ; e8 75 fd 11791 11834 mov ax, word [bp-00eh] ; 8b 46 f2 11792 11835 add ax, 0026ah ; 05 6a 02 11793 11836 mov dx, word [bp-00ch] ; 8b 56 f4 11794 call 091 b0h ; e8 6c 1111837 call 091a4h ; e8 6c 11 11795 11838 lea sp, [bp-006h] ; 8d 66 fa 11796 11839 pop di ; 5f … … 11799 11842 pop bp ; 5d 11800 11843 retn ; c3 11801 ahci_port_deinit_current_: ; 0xf804 cLB 0x14411844 ahci_port_deinit_current_: ; 0xf8040 LB 0x144 11802 11845 push bp ; 55 11803 11846 mov bp, sp ; 89 e5 … … 11814 11857 mov byte [bp-00ah], al ; 88 46 f6 11815 11858 cmp AL, strict byte 0ffh ; 3c ff 11816 je near 081 87h ; 0f 84 17 0111859 je near 0817bh ; 0f 84 17 01 11817 11860 movzx dx, al ; 0f b6 d0 11818 11861 sal dx, 007h ; c1 e2 07 … … 11821 11864 xor cx, cx ; 31 c9 11822 11865 mov ax, si ; 89 f0 11823 call 07c f4h ; e8 70 fc11866 call 07ce8h ; e8 70 fc 11824 11867 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 11825 11868 sal ax, 007h ; c1 e0 07 … … 11830 11873 xor cx, cx ; 31 c9 11831 11874 mov ax, si ; 89 f0 11832 call 07d 3bh ; e8 9d fc11875 call 07d2fh ; e8 9d fc 11833 11876 cmp AL, strict byte 001h ; 3c 01 11834 je short 080 84h ; 74 e211877 je short 08078h ; 74 e2 11835 11878 mov cx, strict word 00020h ; b9 20 00 11836 11879 xor bx, bx ; 31 db 11837 11880 mov ax, di ; 89 f8 11838 11881 mov dx, word [bp-00ch] ; 8b 56 f4 11839 call 0924ah ; e8 9b1111882 call 0924ah ; e8 a7 11 11840 11883 lea ax, [di+00080h] ; 8d 85 80 00 11841 11884 mov cx, strict word 00040h ; b9 40 00 11842 11885 xor bx, bx ; 31 db 11843 11886 mov dx, word [bp-00ch] ; 8b 56 f4 11844 call 0924ah ; e8 8c1111887 call 0924ah ; e8 98 11 11845 11888 lea ax, [di+00200h] ; 8d 85 00 02 11846 11889 mov cx, strict word 00060h ; b9 60 00 11847 11890 xor bx, bx ; 31 db 11848 11891 mov dx, word [bp-00ch] ; 8b 56 f4 11849 call 0924ah ; e8 7d1111892 call 0924ah ; e8 89 11 11850 11893 mov ax, word [bp-00eh] ; 8b 46 f2 11851 11894 add ax, 00108h ; 05 08 01 … … 11949 11992 pop bp ; 5d 11950 11993 retn ; c3 11951 ahci_port_init_: ; 0xf81 90LB 0x20611994 ahci_port_init_: ; 0xf8184 LB 0x206 11952 11995 push bp ; 55 11953 11996 mov bp, sp ; 89 e5 … … 11959 12002 mov word [bp-00ah], dx ; 89 56 f6 11960 12003 mov byte [bp-008h], bl ; 88 5e f8 11961 call 0804 ch ; e8 a8 fe12004 call 08040h ; e8 a8 fe 11962 12005 movzx dx, bl ; 0f b6 d3 11963 12006 sal dx, 007h ; c1 e2 07 … … 11967 12010 mov bx, strict word 00011h ; bb 11 00 11968 12011 xor cx, cx ; 31 c9 11969 call 07c f4h ; e8 36 fb12012 call 07ce8h ; e8 36 fb 11970 12013 movzx di, byte [bp-008h] ; 0f b6 7e f8 11971 12014 sal di, 007h ; c1 e7 07 … … 11975 12018 mov bx, 0c011h ; bb 11 c0 11976 12019 xor cx, cx ; 31 c9 11977 call 07d 3bh ; e8 62 fb12020 call 07d2fh ; e8 62 fb 11978 12021 cmp AL, strict byte 001h ; 3c 01 11979 je short 081b eh ; 74 e112022 je short 081b2h ; 74 e1 11980 12023 mov cx, strict word 00020h ; b9 20 00 11981 12024 xor bx, bx ; 31 db 11982 12025 mov ax, si ; 89 f0 11983 12026 mov dx, word [bp-00ah] ; 8b 56 f6 11984 call 0924ah ; e8 6 01012027 call 0924ah ; e8 6c 10 11985 12028 lea ax, [si+00080h] ; 8d 84 80 00 11986 12029 mov cx, strict word 00040h ; b9 40 00 11987 12030 xor bx, bx ; 31 db 11988 12031 mov dx, word [bp-00ah] ; 8b 56 f6 11989 call 0924ah ; e8 5 11012032 call 0924ah ; e8 5d 10 11990 12033 mov ax, si ; 89 f0 11991 12034 add ah, 002h ; 80 c4 02 … … 11994 12037 xor bx, bx ; 31 db 11995 12038 mov dx, word [bp-00ah] ; 8b 56 f6 11996 call 0924ah ; e8 3e1012039 call 0924ah ; e8 4a 10 11997 12040 lea ax, [di+00108h] ; 8d 85 08 01 11998 12041 cwd ; 99 … … 12008 12051 mov ax, word [bp-00ch] ; 8b 46 f4 12009 12052 mov dx, word [bp-00ah] ; 8b 56 f6 12010 call 07d8 fh ; e8 60 fb12053 call 07d83h ; e8 60 fb 12011 12054 mov es, [bp-00ah] ; 8e 46 f6 12012 12055 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12053 12096 mov ax, si ; 89 f0 12054 12097 mov dx, word [bp-00ah] ; 8b 56 f6 12055 call 07d8 fh ; e8 f4 fa12098 call 07d83h ; e8 f4 fa 12056 12099 mov es, [bp-00ah] ; 8e 46 f6 12057 12100 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 … … 12158 12201 pop bp ; 5d 12159 12202 retn ; c3 12160 @ahci_read_sectors: ; 0xf83 96LB 0x9412203 @ahci_read_sectors: ; 0xf838a LB 0x94 12161 12204 push bp ; 55 12162 12205 mov bp, sp ; 89 e5 … … 12167 12210 sub di, strict byte 0000ch ; 83 ef 0c 12168 12211 cmp di, strict byte 00004h ; 83 ff 04 12169 jbe short 083 bah ; 76 0f12212 jbe short 083aeh ; 76 0f 12170 12213 push di ; 57 12171 push 00 bf6h ; 68 f6 0b12172 push 00c 08h ; 68 08 0c12214 push 00c66h ; 68 66 0c 12215 push 00c78h ; 68 78 0c 12173 12216 push strict byte 00007h ; 6a 07 12174 call 0190dh ; e8 569512217 call 0190dh ; e8 62 95 12175 12218 add sp, strict byte 00008h ; 83 c4 08 12176 12219 les bx, [bp+004h] ; c4 5e 04 12177 12220 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12178 12221 xor ax, ax ; 31 c0 12179 call 07c 83h ; e8 bc f812222 call 07c77h ; e8 bc f8 12180 12223 mov es, [bp+006h] ; 8e 46 06 12181 12224 add di, bx ; 01 df … … 12184 12227 mov dx, word [es:di+001eeh] ; 26 8b 95 ee 01 12185 12228 xor ax, ax ; 31 c0 12186 call 081 90h ; e8 b1 fd12229 call 08184h ; e8 b1 fd 12187 12230 mov bx, strict word 00025h ; bb 25 00 12188 12231 mov ax, di ; 89 f8 12189 12232 mov dx, word [bp+006h] ; 8b 56 06 12190 call 07e 82h ; e8 98 fa12233 call 07e76h ; e8 98 fa 12191 12234 mov es, [bp+006h] ; 8e 46 06 12192 12235 mov bx, di ; 89 fb … … 12208 12251 mov dx, word [es:bx+001eeh] ; 26 8b 97 ee 01 12209 12252 xor ax, ax ; 31 c0 12210 call 07c 9ah ; e8 7b f812253 call 07c8eh ; e8 7b f8 12211 12254 xor ax, ax ; 31 c0 12212 12255 lea sp, [bp-004h] ; 8d 66 fc … … 12215 12258 pop bp ; 5d 12216 12259 retn 00004h ; c2 04 00 12217 @ahci_write_sectors: ; 0xf84 2aLB 0x7012260 @ahci_write_sectors: ; 0xf841e LB 0x70 12218 12261 push bp ; 55 12219 12262 mov bp, sp ; 89 e5 … … 12225 12268 sub bx, strict byte 0000ch ; 83 eb 0c 12226 12269 cmp bx, strict byte 00004h ; 83 fb 04 12227 jbe short 084 52h ; 76 0f12270 jbe short 08446h ; 76 0f 12228 12271 push bx ; 53 12229 push 00c 27h ; 68 27 0c12230 push 00c 08h ; 68 08 0c12272 push 00c97h ; 68 97 0c 12273 push 00c78h ; 68 78 0c 12231 12274 push strict byte 00007h ; 6a 07 12232 call 0190dh ; e8 be9412275 call 0190dh ; e8 ca 94 12233 12276 add sp, strict byte 00008h ; 83 c4 08 12234 12277 mov es, cx ; 8e c1 12235 12278 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12236 12279 xor ax, ax ; 31 c0 12237 call 07c 83h ; e8 25 f812280 call 07c77h ; e8 25 f8 12238 12281 mov es, cx ; 8e c1 12239 12282 add bx, si ; 01 f3 … … 12241 12284 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12242 12285 xor ax, ax ; 31 c0 12243 call 081 90h ; e8 1e fd12286 call 08184h ; e8 1e fd 12244 12287 mov bx, strict word 00035h ; bb 35 00 12245 12288 mov ax, si ; 89 f0 12246 12289 mov dx, cx ; 89 ca 12247 call 07e 82h ; e8 06 fa12290 call 07e76h ; e8 06 fa 12248 12291 mov es, cx ; 8e c1 12249 12292 mov dx, word [es:si+00ah] ; 26 8b 54 0a … … 12251 12294 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12252 12295 xor ax, ax ; 31 c0 12253 call 07c 9ah ; e8 0a f812296 call 07c8eh ; e8 0a f8 12254 12297 xor ax, ax ; 31 c0 12255 12298 lea sp, [bp-002h] ; 8d 66 fe … … 12257 12300 pop bp ; 5d 12258 12301 retn 00004h ; c2 04 00 12259 ahci_cmd_packet_: ; 0xf84 9aLB 0x17312302 ahci_cmd_packet_: ; 0xf848e LB 0x173 12260 12303 push bp ; 55 12261 12304 mov bp, sp ; 89 e5 … … 12269 12312 mov dx, strict word 0000eh ; ba 0e 00 12270 12313 mov ax, strict word 00040h ; b8 40 00 12271 call 0161ch ; e8 679112314 call 0161ch ; e8 73 91 12272 12315 mov si, 00122h ; be 22 01 12273 12316 mov word [bp-008h], ax ; 89 46 f8 12274 12317 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12275 jne short 084 e0h ; 75 1f12276 mov bx, 00d 38h ; bb 38 0d12318 jne short 084d4h ; 75 1f 12319 mov bx, 00da8h ; bb a8 0d 12277 12320 mov cx, ds ; 8c d9 12278 12321 mov ax, strict word 00004h ; b8 04 00 12279 call 018cch ; e8 0 09412280 push 00c 3ah ; 68 3a 0c12281 push 00c 4ah ; 68 4a 0c12322 call 018cch ; e8 0c 94 12323 push 00caah ; 68 aa 0c 12324 push 00cbah ; 68 ba 0c 12282 12325 push strict byte 00004h ; 6a 04 12283 call 0190dh ; e8 369412326 call 0190dh ; e8 42 94 12284 12327 add sp, strict byte 00006h ; 83 c4 06 12285 12328 mov ax, strict word 00001h ; b8 01 00 12286 jmp near 08 604h ; e9 24 0112329 jmp near 085f8h ; e9 24 01 12287 12330 test byte [bp+004h], 001h ; f6 46 04 01 12288 jne short 084 dah ; 75 f412331 jne short 084ceh ; 75 f4 12289 12332 mov ax, word [bp+006h] ; 8b 46 06 12290 12333 mov dx, word [bp+008h] ; 8b 56 08 … … 12292 12335 sal ax, 1 ; d1 e0 12293 12336 rcl dx, 1 ; d1 d2 12294 loop 084e fh ; e2 fa12337 loop 084e3h ; e2 fa 12295 12338 mov es, [bp-008h] ; 8e 46 f8 12296 12339 mov word [es:si], ax ; 26 89 04 … … 12304 12347 mov dx, word [bp+008h] ; 8b 56 08 12305 12348 xor cx, cx ; 31 c9 12306 call 091e0h ; e8 c40c12349 call 091e0h ; e8 d0 0c 12307 12350 mov word [es:si+00ah], ax ; 26 89 44 0a 12308 12351 xor di, di ; 31 ff … … 12314 12357 xor ax, ax ; 31 c0 12315 12358 mov dx, word [bp-00ah] ; 8b 56 f6 12316 call 07c 83h ; e8 47 f712359 call 07c77h ; e8 47 f7 12317 12360 mov es, [bp-008h] ; 8e 46 f8 12318 12361 mov bx, word [bp-014h] ; 8b 5e ec … … 12321 12364 mov dx, word [es:si+001eeh] ; 26 8b 94 ee 01 12322 12365 xor ax, ax ; 31 c0 12323 call 081 90h ; e8 3c fc12366 call 08184h ; e8 3c fc 12324 12367 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12325 12368 push ax ; 50 … … 12328 12371 mov ax, 000c0h ; b8 c0 00 12329 12372 mov dx, word [bp-00ah] ; 8b 56 f6 12330 call 09257h ; e8 ef0c12373 call 09257h ; e8 fb 0c 12331 12374 mov es, [bp-008h] ; 8e 46 f8 12332 12375 mov word [es:si+014h], di ; 26 89 7c 14 … … 12335 12378 mov ax, word [es:si+01ah] ; 26 8b 44 1a 12336 12379 test ax, ax ; 85 c0 12337 je short 085 a6h ; 74 2712380 je short 0859ah ; 74 27 12338 12381 dec ax ; 48 12339 12382 mov es, [bp-00ah] ; 8e 46 f6 … … 12348 12391 mov ax, si ; 89 f0 12349 12392 mov dx, word [bp-008h] ; 8b 56 f8 12350 call 07e 82h ; e8 d1 f812393 call 07e76h ; e8 d1 f8 12351 12394 les bx, [bp-00eh] ; c4 5e f2 12352 12395 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 12371 12414 mov ax, word [bp-00eh] ; 8b 46 f2 12372 12415 mov dx, word [bp-00ch] ; 8b 56 f4 12373 call 07c 9ah ; e8 aa f612416 call 07c8eh ; e8 aa f6 12374 12417 les bx, [bp-00eh] ; c4 5e f2 12375 12418 mov ax, word [es:bx+006h] ; 26 8b 47 06 12376 12419 or ax, word [es:bx+004h] ; 26 0b 47 04 12377 jne short 08 602h ; 75 0512420 jne short 085f6h ; 75 05 12378 12421 mov ax, strict word 00004h ; b8 04 00 12379 jmp short 08 604h ; eb 0212422 jmp short 085f8h ; eb 02 12380 12423 xor ax, ax ; 31 c0 12381 12424 lea sp, [bp-004h] ; 8d 66 fc … … 12384 12427 pop bp ; 5d 12385 12428 retn 0000ch ; c2 0c 00 12386 ahci_port_detect_device_: ; 0xf860 dLB 0x3d112429 ahci_port_detect_device_: ; 0xf8601 LB 0x3d1 12387 12430 push bp ; 55 12388 12431 mov bp, sp ; 89 e5 … … 12396 12439 movzx cx, bl ; 0f b6 cb 12397 12440 mov bx, cx ; 89 cb 12398 call 081 90h ; e8 69 fb12441 call 08184h ; e8 69 fb 12399 12442 mov dx, strict word 0000eh ; ba 0e 00 12400 12443 mov ax, strict word 00040h ; b8 40 00 12401 call 0161ch ; e8 ec8f12444 call 0161ch ; e8 f8 8f 12402 12445 mov word [bp-020h], ax ; 89 46 e0 12403 12446 mov si, 00122h ; be 22 01 … … 12472 12515 mov bx, strict word 0000fh ; bb 0f 00 12473 12516 xor cx, cx ; 31 c9 12474 call 07d 74h ; e8 90 f612517 call 07d68h ; e8 90 f6 12475 12518 cmp ax, strict word 00003h ; 3d 03 00 12476 jne near 089 d6h ; 0f 85 eb 0212519 jne near 089cah ; 0f 85 eb 02 12477 12520 mov es, [bp-00eh] ; 8e 46 f2 12478 12521 mov al, byte [es:si+001edh] ; 26 8a 84 ed 01 12479 12522 mov byte [bp-00ah], al ; 88 46 f6 12480 12523 cmp AL, strict byte 004h ; 3c 04 12481 jnc near 089 d6h ; 0f 83 da 0212524 jnc near 089cah ; 0f 83 da 02 12482 12525 mov dx, word [bp-01ch] ; 8b 56 e4 12483 12526 add dx, 00118h ; 81 c2 18 01 … … 12486 12529 mov bx, strict word 00010h ; bb 10 00 12487 12530 xor cx, cx ; 31 c9 12488 call 07c b1h ; e8 9e f512531 call 07ca5h ; e8 9e f5 12489 12532 mov ax, word [bp-01ch] ; 8b 46 e4 12490 12533 add ax, 00124h ; 05 24 01 … … 12512 12555 add cl, 00ch ; 80 c1 0c 12513 12556 test dx, dx ; 85 d2 12514 jne near 089 28h ; 0f 85 d5 0112557 jne near 0891ch ; 0f 85 d5 01 12515 12558 cmp bx, 00101h ; 81 fb 01 01 12516 jne near 089 28h ; 0f 85 cd 0112559 jne near 0891ch ; 0f 85 cd 01 12517 12560 mov es, [bp-00eh] ; 8e 46 f2 12518 12561 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12526 12569 mov ax, si ; 89 f0 12527 12570 mov dx, word [bp-020h] ; 8b 56 e0 12528 call 07e 82h ; e8 fc f612571 call 07e76h ; e8 fc f6 12529 12572 mov byte [bp-00ch], cl ; 88 4e f4 12530 12573 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 … … 12542 12585 mov word [bp-014h], dx ; 89 56 ec 12543 12586 cmp dx, 00fffh ; 81 fa ff 0f 12544 jne short 087 c9h ; 75 1012587 jne short 087bdh ; 75 10 12545 12588 cmp di, strict byte 0ffffh ; 83 ff ff 12546 jne short 087 c9h ; 75 0b12589 jne short 087bdh ; 75 0b 12547 12590 mov di, word [bp-00160h] ; 8b be a0 fe 12548 12591 mov dx, word [bp-0015eh] ; 8b 96 a2 fe … … 12573 12616 mov al, byte [bp-00ah] ; 8a 46 f6 12574 12617 cmp AL, strict byte 001h ; 3c 01 12575 jc short 088 34h ; 72 0c12576 jbe short 0883 ch ; 76 1212618 jc short 08828h ; 72 0c 12619 jbe short 08830h ; 76 12 12577 12620 cmp AL, strict byte 003h ; 3c 03 12578 je short 088 44h ; 74 1612621 je short 08838h ; 74 16 12579 12622 cmp AL, strict byte 002h ; 3c 02 12580 je short 088 40h ; 74 0e12581 jmp short 0888 dh ; eb 5912623 je short 08834h ; 74 0e 12624 jmp short 08881h ; eb 59 12582 12625 test al, al ; 84 c0 12583 jne short 0888 dh ; 75 5512626 jne short 08881h ; 75 55 12584 12627 mov DL, strict byte 040h ; b2 40 12585 jmp short 088 46h ; eb 0a12628 jmp short 0883ah ; eb 0a 12586 12629 mov DL, strict byte 048h ; b2 48 12587 jmp short 088 46h ; eb 0612630 jmp short 0883ah ; eb 06 12588 12631 mov DL, strict byte 050h ; b2 50 12589 jmp short 088 46h ; eb 0212632 jmp short 0883ah ; eb 02 12590 12633 mov DL, strict byte 058h ; b2 58 12591 12634 mov al, dl ; 88 d0 … … 12593 12636 movzx bx, al ; 0f b6 d8 12594 12637 mov ax, bx ; 89 d8 12595 call 0165ch ; e8 0a8e12638 call 0165ch ; e8 16 8e 12596 12639 test al, al ; 84 c0 12597 je short 0888 dh ; 74 3712640 je short 08881h ; 74 37 12598 12641 mov al, dl ; 88 d0 12599 12642 db 0feh, 0c0h 12600 12643 ; inc al ; fe c0 12601 12644 xor ah, ah ; 30 e4 12602 call 0165ch ; e8 fd 8d12645 call 0165ch ; e8 09 8e 12603 12646 xor ah, ah ; 30 e4 12604 12647 mov cx, ax ; 89 c1 12605 12648 sal cx, 008h ; c1 e1 08 12606 12649 movzx ax, dl ; 0f b6 c2 12607 call 0165ch ; e8 f 08d12650 call 0165ch ; e8 fc 8d 12608 12651 xor ah, ah ; 30 e4 12609 12652 add ax, cx ; 01 c8 … … 12612 12655 add AL, strict byte 002h ; 04 02 12613 12656 xor ah, ah ; 30 e4 12614 call 0165ch ; e8 e 08d12657 call 0165ch ; e8 ec 8d 12615 12658 xor ah, ah ; 30 e4 12616 12659 mov word [bp-028h], ax ; 89 46 d8 12617 12660 mov ax, bx ; 89 d8 12618 call 0165ch ; e8 d68d12661 call 0165ch ; e8 e2 8d 12619 12662 xor ah, ah ; 30 e4 12620 12663 mov word [bp-024h], ax ; 89 46 dc 12621 jmp short 088 9ah ; eb 0d12664 jmp short 0888eh ; eb 0d 12622 12665 mov bx, di ; 89 fb 12623 12666 mov cx, word [bp-014h] ; 8b 4e ec 12624 12667 mov dx, ss ; 8c d2 12625 12668 lea ax, [bp-028h] ; 8d 46 d8 12626 call 053 38h ; e8 9e ca12627 mov bx, 00d 38h ; bb 38 0d12669 call 0532ch ; e8 9e ca 12670 mov bx, 00da8h ; bb a8 0d 12628 12671 mov cx, ds ; 8c d9 12629 12672 mov ax, strict word 00004h ; b8 04 00 12630 call 018cch ; e8 279012673 call 018cch ; e8 33 90 12631 12674 push word [bp-014h] ; ff 76 ec 12632 12675 push di ; 57 … … 12643 12686 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12644 12687 push ax ; 50 12645 push 00c 6ah ; 68 6a 0c12688 push 00cdah ; 68 da 0c 12646 12689 push strict byte 00004h ; 6a 04 12647 call 0190dh ; e8 3f9012690 call 0190dh ; e8 4b 90 12648 12691 add sp, strict byte 00018h ; 83 c4 18 12649 12692 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 12673 12716 mov dx, strict word 00075h ; ba 75 00 12674 12717 mov ax, strict word 00040h ; b8 40 00 12675 call 01600h ; e8 e98c12718 call 01600h ; e8 f5 8c 12676 12719 db 0feh, 0c0h 12677 12720 ; inc al ; fe c0 … … 12679 12722 mov dx, strict word 00075h ; ba 75 00 12680 12723 mov ax, strict word 00040h ; b8 40 00 12681 call 0160eh ; e8 e98c12682 jmp near 089 c5h ; e9 9d 0012724 call 0160eh ; e8 f5 8c 12725 jmp near 089b9h ; e9 9d 00 12683 12726 cmp dx, 0eb14h ; 81 fa 14 eb 12684 jne near 089 c5h ; 0f 85 95 0012727 jne near 089b9h ; 0f 85 95 00 12685 12728 cmp bx, 00101h ; 81 fb 01 01 12686 jne near 089 c5h ; 0f 85 8d 0012729 jne near 089b9h ; 0f 85 8d 00 12687 12730 mov es, [bp-00eh] ; 8e 46 f2 12688 12731 db 066h, 026h, 0c7h, 004h, 000h, 000h, 000h, 000h … … 12696 12739 mov ax, si ; 89 f0 12697 12740 mov dx, word [bp-020h] ; 8b 56 e0 12698 call 07e 82h ; e8 1f f512741 call 07e76h ; e8 1f f5 12699 12742 test byte [bp-00228h], 080h ; f6 86 d8 fd 80 12700 12743 db 00fh, 095h, 0c0h … … 12737 12780 pop bp ; 5d 12738 12781 retn ; c3 12739 ahci_mem_alloc_: ; 0xf89d eLB 0x4312782 ahci_mem_alloc_: ; 0xf89d2 LB 0x43 12740 12783 push bp ; 55 12741 12784 mov bp, sp ; 89 e5 … … 12747 12790 mov dx, 00413h ; ba 13 04 12748 12791 xor ax, ax ; 31 c0 12749 call 0161ch ; e8 2e8c12792 call 0161ch ; e8 3a 8c 12750 12793 test ax, ax ; 85 c0 12751 je short 08a 17h ; 74 2512794 je short 08a0bh ; 74 25 12752 12795 dec ax ; 48 12753 12796 mov bx, ax ; 89 c3 … … 12756 12799 sal ax, 1 ; d1 e0 12757 12800 rcl dx, 1 ; d1 d2 12758 loop 089 fah ; e2 fa12801 loop 089eeh ; e2 fa 12759 12802 mov si, ax ; 89 c6 12760 12803 mov di, dx ; 89 d7 … … 12762 12805 shr di, 1 ; d1 ef 12763 12806 rcr si, 1 ; d1 de 12764 loop 08 a07h ; e2 fa12807 loop 089fbh ; e2 fa 12765 12808 mov dx, 00413h ; ba 13 04 12766 12809 xor ax, ax ; 31 c0 12767 call 0162ah ; e8 158c12810 call 0162ah ; e8 21 8c 12768 12811 mov ax, si ; 89 f0 12769 12812 lea sp, [bp-00ah] ; 8d 66 f6 … … 12775 12818 pop bp ; 5d 12776 12819 retn ; c3 12777 ahci_hba_init_: ; 0xf8a 21LB 0x12512820 ahci_hba_init_: ; 0xf8a15 LB 0x125 12778 12821 push bp ; 55 12779 12822 mov bp, sp ; 89 e5 … … 12787 12830 mov dx, strict word 0000eh ; ba 0e 00 12788 12831 mov ax, strict word 00040h ; b8 40 00 12789 call 0161ch ; e8 e58b12832 call 0161ch ; e8 f1 8b 12790 12833 mov bx, 00122h ; bb 22 01 12791 12834 mov word [bp-010h], ax ; 89 46 f0 … … 12804 12847 shr eax, 010h ; 66 c1 e8 10 12805 12848 xchg dx, ax ; 92 12806 call 089d eh ; e8 82 ff12849 call 089d2h ; e8 82 ff 12807 12850 mov di, ax ; 89 c7 12808 12851 test ax, ax ; 85 c0 12809 je near 08b 25h ; 0f 84 c1 0012852 je near 08b19h ; 0f 84 c1 00 12810 12853 mov es, [bp-010h] ; 8e 46 f0 12811 12854 mov word [es:bx+001eeh], di ; 26 89 bf ee 01 … … 12821 12864 mov dx, strict word 00004h ; ba 04 00 12822 12865 mov ax, si ; 89 f0 12823 call 07c b1h ; e8 19 f212866 call 07ca5h ; e8 19 f2 12824 12867 mov ax, strict word 00004h ; b8 04 00 12825 12868 xor cx, cx ; 31 c9 … … 12838 12881 xchg dx, ax ; 92 12839 12882 test AL, strict byte 001h ; a8 01 12840 jne short 08a 98h ; 75 de12883 jne short 08a8ch ; 75 de 12841 12884 xor ax, ax ; 31 c0 12842 12885 xor cx, cx ; 31 c9 … … 12856 12899 mov bx, strict word 0001fh ; bb 1f 00 12857 12900 xor cx, cx ; 31 c9 12858 call 07d 74h ; e8 96 f212901 call 07d68h ; e8 96 f2 12859 12902 db 0feh, 0c0h 12860 12903 ; inc al ; fe c0 12861 12904 mov byte [bp-00eh], al ; 88 46 f2 12862 12905 mov byte [bp-00ch], 000h ; c6 46 f4 00 12863 jmp short 08a f2h ; eb 0912906 jmp short 08ae6h ; eb 09 12864 12907 inc byte [bp-00ch] ; fe 46 f4 12865 12908 cmp byte [bp-00ch], 020h ; 80 7e f4 20 12866 jnc short 08b 23h ; 73 3112909 jnc short 08b17h ; 73 31 12867 12910 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 12868 12911 mov ax, strict word 00001h ; b8 01 00 12869 12912 xor dx, dx ; 31 d2 12870 jcxz 08 b03h ; e3 0612913 jcxz 08af7h ; e3 06 12871 12914 sal ax, 1 ; d1 e0 12872 12915 rcl dx, 1 ; d1 d2 12873 loop 08af dh ; e2 fa12916 loop 08af1h ; e2 fa 12874 12917 mov bx, ax ; 89 c3 12875 12918 mov cx, dx ; 89 d1 12876 12919 mov dx, strict word 0000ch ; ba 0c 00 12877 12920 mov ax, si ; 89 f0 12878 call 07d 3bh ; e8 2c f212921 call 07d2fh ; e8 2c f2 12879 12922 test al, al ; 84 c0 12880 je short 08a e9h ; 74 d612923 je short 08addh ; 74 d6 12881 12924 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 12882 12925 xor ax, ax ; 31 c0 12883 12926 mov dx, di ; 89 fa 12884 call 0860 dh ; e8 ef fa12927 call 08601h ; e8 ef fa 12885 12928 dec byte [bp-00eh] ; fe 4e f2 12886 jne short 08a e9h ; 75 c612929 jne short 08addh ; 75 c6 12887 12930 xor ax, ax ; 31 c0 12888 12931 lea sp, [bp-00ah] ; 8d 66 f6 … … 12894 12937 pop bp ; 5d 12895 12938 retn ; c3 12896 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 15h, 08ch, 0f3h, 08bh, 0f9h, 08bh, 0ffh, 08bh, 005h12897 db 08 ch, 00bh, 08ch, 011h, 08ch, 015h, 08ch12898 _ahci_init: ; 0xf8b 46LB 0xfe12939 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 009h, 08ch, 0e7h, 08bh, 0edh, 08bh, 0f3h, 08bh, 0f9h 12940 db 08bh, 0ffh, 08bh, 005h, 08ch, 009h, 08ch 12941 _ahci_init: ; 0xf8b3a LB 0xfe 12899 12942 push bp ; 55 12900 12943 mov bp, sp ; 89 e5 … … 12904 12947 mov ax, 00601h ; b8 01 06 12905 12948 mov dx, strict word 00001h ; ba 01 00 12906 call 090 64h ; e8 0d 0512949 call 09058h ; e8 0d 05 12907 12950 mov dx, ax ; 89 c2 12908 12951 cmp ax, strict word 0ffffh ; 3d ff ff 12909 je near 08c3 dh ; 0f 84 dd 0012952 je near 08c31h ; 0f 84 dd 00 12910 12953 xor al, al ; 30 c0 12911 12954 shr ax, 008h ; c1 e8 08 … … 12915 12958 xor ah, ah ; 30 e4 12916 12959 mov bx, strict word 00034h ; bb 34 00 12917 call 0908 fh ; e8 1a 0512960 call 09083h ; e8 1a 05 12918 12961 mov cl, al ; 88 c1 12919 12962 test cl, cl ; 84 c9 12920 je short 08b9 eh ; 74 2312963 je short 08b92h ; 74 23 12921 12964 movzx bx, cl ; 0f b6 d9 12922 12965 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 12924 12967 mov dx, di ; 89 fa 12925 12968 mov ax, si ; 89 f0 12926 call 0908 fh ; e8 02 0512969 call 09083h ; e8 02 05 12927 12970 cmp AL, strict byte 012h ; 3c 12 12928 je short 08b9 eh ; 74 0d12971 je short 08b92h ; 74 0d 12929 12972 mov al, cl ; 88 c8 12930 12973 db 0feh, 0c0h … … 12933 12976 mov dx, di ; 89 fa 12934 12977 mov ax, si ; 89 f0 12935 jmp short 08b 72h ; eb d412978 jmp short 08b66h ; eb d4 12936 12979 test cl, cl ; 84 c9 12937 je near 08c3 dh ; 0f 84 99 0012980 je near 08c31h ; 0f 84 99 00 12938 12981 add cl, 002h ; 80 c1 02 12939 12982 movzx bx, cl ; 0f b6 d9 … … 12942 12985 mov dx, di ; 89 fa 12943 12986 mov ax, si ; 89 f0 12944 call 0908 fh ; e8 d6 0412987 call 09083h ; e8 d6 04 12945 12988 cmp AL, strict byte 010h ; 3c 10 12946 jne near 08c3 dh ; 0f 85 7e 0012989 jne near 08c31h ; 0f 85 7e 00 12947 12990 mov byte [bp-006h], 000h ; c6 46 fa 00 12948 12991 mov al, cl ; 88 c8 … … 12951 12994 mov dx, di ; 89 fa 12952 12995 mov ax, si ; 89 f0 12953 call 090 b3h ; e8 e2 0412996 call 090a7h ; e8 e2 04 12954 12997 mov dx, ax ; 89 c2 12955 12998 and ax, strict word 0000fh ; 25 0f 00 12956 12999 sub ax, strict word 00004h ; 2d 04 00 12957 13000 cmp ax, strict word 0000bh ; 3d 0b 00 12958 jnbe short 08c 15h ; 77 3713001 jnbe short 08c09h ; 77 37 12959 13002 push CS ; 0e 12960 13003 pop ES ; 07 12961 13004 mov cx, strict word 00008h ; b9 08 00 12962 mov di, 08b2 fh ; bf 2f8b13005 mov di, 08b23h ; bf 23 8b 12963 13006 repne scasb ; f2 ae 12964 13007 sal cx, 1 ; d1 e1 12965 13008 mov di, cx ; 89 cf 12966 mov ax, word [cs:di-074 cah] ; 2e 8b 85 368b13009 mov ax, word [cs:di-074d6h] ; 2e 8b 85 2a 8b 12967 13010 jmp ax ; ff e0 12968 13011 mov byte [bp-006h], 010h ; c6 46 fa 10 12969 jmp short 08c 15h ; eb 1c13012 jmp short 08c09h ; eb 1c 12970 13013 mov byte [bp-006h], 014h ; c6 46 fa 14 12971 jmp short 08c 15h ; eb 1613014 jmp short 08c09h ; eb 16 12972 13015 mov byte [bp-006h], 018h ; c6 46 fa 18 12973 jmp short 08c 15h ; eb 1013016 jmp short 08c09h ; eb 10 12974 13017 mov byte [bp-006h], 01ch ; c6 46 fa 1c 12975 jmp short 08c 15h ; eb 0a13018 jmp short 08c09h ; eb 0a 12976 13019 mov byte [bp-006h], 020h ; c6 46 fa 20 12977 jmp short 08c 15h ; eb 0413020 jmp short 08c09h ; eb 04 12978 13021 mov byte [bp-006h], 024h ; c6 46 fa 24 12979 13022 mov si, dx ; 89 d6 … … 12982 13025 mov al, byte [bp-006h] ; 8a 46 fa 12983 13026 test al, al ; 84 c0 12984 je short 08c3 dh ; 74 1913027 je short 08c31h ; 74 19 12985 13028 movzx bx, al ; 0f b6 d8 12986 13029 movzx dx, byte [bp-008h] ; 0f b6 56 f8 12987 13030 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12988 call 090 d5h ; e8 a3 0413031 call 090c9h ; e8 a3 04 12989 13032 test AL, strict byte 001h ; a8 01 12990 je short 08c3 dh ; 74 0713033 je short 08c31h ; 74 07 12991 13034 and AL, strict byte 0f0h ; 24 f0 12992 13035 add ax, si ; 01 f0 12993 call 08a 21h ; e8 e4 fd13036 call 08a15h ; e8 e4 fd 12994 13037 lea sp, [bp-004h] ; 8d 66 fc 12995 13038 pop di ; 5f … … 12997 13040 pop bp ; 5d 12998 13041 retn ; c3 12999 apm_out_str_: ; 0xf8c 44LB 0x3913042 apm_out_str_: ; 0xf8c38 LB 0x39 13000 13043 push bp ; 55 13001 13044 mov bp, sp ; 89 e5 … … 13003 13046 mov bx, ax ; 89 c3 13004 13047 cmp byte [bx], 000h ; 80 3f 00 13005 je short 08c 59h ; 74 0a13048 je short 08c4dh ; 74 0a 13006 13049 mov al, byte [bx] ; 8a 07 13007 13050 out DX, AL ; ee … … 13010 13053 db 00ah, 0c0h 13011 13054 ; or al, al ; 0a c0 13012 jne short 08c 51h ; 75 f813055 jne short 08c45h ; 75 f8 13013 13056 lea sp, [bp-002h] ; 8d 66 fe 13014 13057 pop bx ; 5b 13015 13058 pop bp ; 5d 13016 13059 retn ; c3 13017 mov AL, byte [06c8ch] ; a0 8c 6c 13018 lea si, [bp+si-03274h] ; 8d b2 8c cd 13019 mov [si-073h], gs ; 8c 6c 8d 13020 clc ; f8 13021 mov [si-073h], gs ; 8c 6c 8d 13022 std ; fd 13023 mov [bx+di-073h], es ; 8c 41 8d 13024 inc cx ; 41 13025 lea ax, [bx+di-073h] ; 8d 41 8d 13026 cmp AL, strict byte 08dh ; 3c 8d 13027 inc cx ; 41 13028 lea ax, [bx+di-073h] ; 8d 41 8d 13029 db 035h 13060 xchg sp, ax ; 94 13061 mov [bx+si-073h], fs ; 8c 60 8d 13062 cmpsb ; a6 13063 mov cx, es ; 8c c1 13064 mov [bx+si-073h], fs ; 8c 60 8d 13065 in AL, DX ; ec 13066 mov [bx+si-073h], fs ; 8c 60 8d 13067 db 0f1h 13068 db 08ch 13069 xor ax, 0358dh ; 35 8d 35 13070 lea si, [di] ; 8d 35 13071 lea si, [bx+si] ; 8d 30 13072 lea si, [di] ; 8d 35 13073 lea si, [di] ; 8d 35 13074 lea bp, [bx+di] ; 8d 29 13030 13075 db 08dh 13031 _apm_function: ; 0xf8c7 dLB 0xf513076 _apm_function: ; 0xf8c71 LB 0xf5 13032 13077 push bp ; 55 13033 13078 mov bp, sp ; 89 e5 … … 13037 13082 xor ah, ah ; 30 e4 13038 13083 cmp ax, strict word 0000eh ; 3d 0e 00 13039 jnbe near 08d 41h ; 0f 87 b0 0013084 jnbe near 08d35h ; 0f 87 b0 00 13040 13085 mov bx, ax ; 89 c3 13041 13086 add bx, ax ; 01 c3 13042 13087 mov dx, word [bp+018h] ; 8b 56 18 13043 13088 or dl, 001h ; 80 ca 01 13044 jmp word [cs:bx-073a 1h] ; 2e ff a7 5f8c13089 jmp word [cs:bx-073adh] ; 2e ff a7 53 8c 13045 13090 mov word [bp+012h], 00102h ; c7 46 12 02 01 13046 13091 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 13047 13092 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 13048 jmp near 08d6 ch ; e9 ba 0013093 jmp near 08d60h ; e9 ba 00 13049 13094 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13050 13095 mov word [bp+00ch], 092c4h ; c7 46 0c c4 92 … … 13053 13098 mov word [bp+006h], ax ; 89 46 06 13054 13099 mov word [bp+004h], ax ; 89 46 04 13055 jmp near 08d6 ch ; e9 9f 0013100 jmp near 08d60h ; e9 9f 00 13056 13101 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 13057 13102 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 13066 13111 mov si, ax ; 89 c6 13067 13112 sal esi, 010h ; 66 c1 e6 10 13068 jmp near 08d6 ch ; e9 74 0013113 jmp near 08d60h ; e9 74 00 13069 13114 sti ; fb 13070 13115 hlt ; f4 13071 jmp near 08d6 ch ; e9 6f 0013116 jmp near 08d60h ; e9 6f 00 13072 13117 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 13073 je short 08d 22h ; 74 1f13118 je short 08d16h ; 74 1f 13074 13119 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 13075 je short 08d 1ah ; 74 1113120 je short 08d0eh ; 74 11 13076 13121 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 13077 jne short 08d 2ah ; 75 1b13122 jne short 08d1eh ; 75 1b 13078 13123 mov dx, 08900h ; ba 00 89 13079 mov ax, 00 ca2h ; b8 a2 0c13080 call 08c 44h ; e8 2c ff13081 jmp short 08d6 ch ; eb 5213124 mov ax, 00d12h ; b8 12 0d 13125 call 08c38h ; e8 2c ff 13126 jmp short 08d60h ; eb 52 13082 13127 mov dx, 08900h ; ba 00 89 13083 mov ax, 00 caah ; b8 aa 0c13084 jmp short 08d 15h ; eb f313128 mov ax, 00d1ah ; b8 1a 0d 13129 jmp short 08d09h ; eb f3 13085 13130 mov dx, 08900h ; ba 00 89 13086 mov ax, 00 cb2h ; b8 b2 0c13087 jmp short 08d 15h ; eb eb13131 mov ax, 00d22h ; b8 22 0d 13132 jmp short 08d09h ; eb eb 13088 13133 or ah, 00ah ; 80 cc 0a 13089 13134 mov word [bp+012h], ax ; 89 46 12 13090 13135 mov word [bp+018h], dx ; 89 56 18 13091 jmp short 08d6 ch ; eb 3713136 jmp short 08d60h ; eb 37 13092 13137 mov word [bp+012h], 00102h ; c7 46 12 02 01 13093 jmp short 08d6 ch ; eb 3013138 jmp short 08d60h ; eb 30 13094 13139 or ah, 080h ; 80 cc 80 13095 jmp short 08d2 dh ; eb ec13096 mov bx, 00d 38h ; bb 38 0d13140 jmp short 08d21h ; eb ec 13141 mov bx, 00da8h ; bb a8 0d 13097 13142 mov cx, ds ; 8c d9 13098 13143 mov ax, strict word 00004h ; b8 04 00 13099 call 018cch ; e8 8 08b13144 call 018cch ; e8 8c 8b 13100 13145 push word [bp+00ch] ; ff 76 0c 13101 13146 push word [bp+012h] ; ff 76 12 13102 push 00 cbbh ; 68 bb 0c13147 push 00d2bh ; 68 2b 0d 13103 13148 push strict byte 00004h ; 6a 04 13104 call 0190dh ; e8 b 38b13149 call 0190dh ; e8 bf 8b 13105 13150 add sp, strict byte 00008h ; 83 c4 08 13106 13151 mov ax, word [bp+012h] ; 8b 46 12 … … 13113 13158 pop bp ; 5d 13114 13159 retn ; c3 13115 pci16_select_reg_: ; 0xf8d 72LB 0x2413160 pci16_select_reg_: ; 0xf8d66 LB 0x24 13116 13161 push bp ; 55 13117 13162 mov bp, sp ; 89 e5 … … 13130 13175 pop bp ; 5d 13131 13176 retn ; c3 13132 pci16_find_device_: ; 0xf8d 96LB 0xf713177 pci16_find_device_: ; 0xf8d8a LB 0xf7 13133 13178 push bp ; 55 13134 13179 mov bp, sp ; 89 e5 … … 13144 13189 mov byte [bp-008h], 000h ; c6 46 f8 00 13145 13190 test bl, 007h ; f6 c3 07 13146 jne short 08dd eh ; 75 2d13191 jne short 08dd2h ; 75 2d 13147 13192 mov dx, strict word 0000eh ; ba 0e 00 13148 13193 mov ax, bx ; 89 d8 13149 call 08d 72h ; e8 b9 ff13194 call 08d66h ; e8 b9 ff 13150 13195 mov dx, 00cfeh ; ba fe 0c 13151 13196 in AL, DX ; ec … … 13154 13199 mov byte [bp-006h], al ; 88 46 fa 13155 13200 cmp AL, strict byte 0ffh ; 3c ff 13156 jne short 08dc ch ; 75 0613201 jne short 08dc0h ; 75 06 13157 13202 add bx, strict byte 00008h ; 83 c3 08 13158 jmp near 08e5 fh ; e9 93 0013203 jmp near 08e53h ; e9 93 00 13159 13204 test byte [bp-006h], 080h ; f6 46 fa 80 13160 je short 08d d9h ; 74 0713205 je short 08dcdh ; 74 07 13161 13206 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 13162 jmp short 08dd eh ; eb 0513207 jmp short 08dd2h ; eb 05 13163 13208 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 13164 13209 mov al, byte [bp-006h] ; 8a 46 fa 13165 13210 and AL, strict byte 007h ; 24 07 13166 13211 cmp AL, strict byte 001h ; 3c 01 13167 jne short 08 e06h ; 75 1f13212 jne short 08dfah ; 75 1f 13168 13213 mov ax, bx ; 89 d8 13169 13214 shr ax, 008h ; c1 e8 08 13170 13215 test ax, ax ; 85 c0 13171 jne short 08 e06h ; 75 1613216 jne short 08dfah ; 75 16 13172 13217 mov dx, strict word 0001ah ; ba 1a 00 13173 13218 mov ax, bx ; 89 d8 13174 call 08d 72h ; e8 7a ff13219 call 08d66h ; e8 7a ff 13175 13220 mov dx, 00cfeh ; ba fe 0c 13176 13221 in AL, DX ; ec … … 13178 13223 ; sub ah, ah ; 2a e4 13179 13224 cmp al, byte [bp-008h] ; 3a 46 f8 13180 jbe short 08 e06h ; 76 0313225 jbe short 08dfah ; 76 03 13181 13226 mov byte [bp-008h], al ; 88 46 f8 13182 13227 test di, di ; 85 ff 13183 je short 08e0 fh ; 74 0513228 je short 08e03h ; 74 05 13184 13229 mov dx, strict word 00008h ; ba 08 00 13185 jmp short 08e 11h ; eb 0213230 jmp short 08e05h ; eb 02 13186 13231 xor dx, dx ; 31 d2 13187 13232 mov ax, bx ; 89 d8 13188 call 08d 72h ; e8 5c ff13233 call 08d66h ; e8 5c ff 13189 13234 mov dx, 00cfch ; ba fc 0c 13190 13235 in eax, DX ; 66 ed … … 13197 13242 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 13198 13243 test di, di ; 85 ff 13199 je short 08e 40h ; 74 0f13244 je short 08e34h ; 74 0f 13200 13245 mov cx, strict word 00008h ; b9 08 00 13201 13246 shr dx, 1 ; d1 ea 13202 13247 rcr ax, 1 ; d1 d8 13203 loop 08e 34h ; e2 fa13248 loop 08e28h ; e2 fa 13204 13249 mov word [bp-00eh], ax ; 89 46 f2 13205 13250 mov word [bp-00ch], dx ; 89 56 f4 13206 13251 mov ax, word [bp-00ch] ; 8b 46 f4 13207 13252 cmp ax, word [bp-014h] ; 3b 46 ec 13208 jne short 08e 50h ; 75 0813253 jne short 08e44h ; 75 08 13209 13254 mov ax, word [bp-00eh] ; 8b 46 f2 13210 13255 cmp ax, word [bp-012h] ; 3b 46 ee 13211 je short 08e 56h ; 74 0613256 je short 08e4ah ; 74 06 13212 13257 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 13213 je short 08e5 ch ; 74 0613258 je short 08e50h ; 74 06 13214 13259 dec si ; 4e 13215 13260 cmp si, strict byte 0ffffh ; 83 fe ff 13216 je short 08e6 eh ; 74 1213261 je short 08e62h ; 74 12 13217 13262 add bx, word [bp-00ah] ; 03 5e f6 13218 13263 mov dx, bx ; 89 da … … 13220 13265 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13221 13266 cmp dx, ax ; 39 c2 13222 jbe near 08da ch ; 0f 86 3e ff13267 jbe near 08da0h ; 0f 86 3e ff 13223 13268 cmp si, strict byte 0ffffh ; 83 fe ff 13224 jne short 08e 77h ; 75 0413269 jne short 08e6bh ; 75 04 13225 13270 mov ax, bx ; 89 d8 13226 jmp short 08e 7ah ; eb 0313271 jmp short 08e6eh ; eb 03 13227 13272 mov ax, strict word 0ffffh ; b8 ff ff 13228 13273 lea sp, [bp-004h] ; 8d 66 fc … … 13231 13276 pop bp ; 5d 13232 13277 retn ; c3 13233 outsw ; 6f 13234 db 08fh, 089h, 08fh, 09ch 13235 ; pop word [bx+di-06371h] ; 8f 89 8f 9c 13236 db 08fh, 0b1h, 08fh, 0c4h 13237 ; pop word [bx+di-03b71h] ; 8f b1 8f c4 13238 db 08fh, 0d7h 13239 ; pop di ; 8f d7 13278 arpl word [bx-07083h], cx ; 63 8f 7d 8f 13279 nop ; 90 13280 db 08fh, 0a5h, 08fh, 0b8h 13281 ; pop word [di-04771h] ; 8f a5 8f b8 13282 db 08fh, 0cbh 13283 ; pop bx ; 8f cb 13240 13284 db 08fh 13241 _pci16_function: ; 0xf8e8 dLB 0x1d713285 _pci16_function: ; 0xf8e81 LB 0x1d7 13242 13286 push bp ; 55 13243 13287 mov bp, sp ; 89 e5 … … 13253 13297 xor ah, ah ; 30 e4 13254 13298 cmp bx, strict byte 00003h ; 83 fb 03 13255 jc short 08e c6h ; 72 1a13256 jbe short 08f1 eh ; 76 7013299 jc short 08ebah ; 72 1a 13300 jbe short 08f12h ; 76 70 13257 13301 cmp bx, strict byte 0000eh ; 83 fb 0e 13258 je near 08f ebh ; 0f 84 36 0113302 je near 08fdfh ; 0f 84 36 01 13259 13303 cmp bx, strict byte 00008h ; 83 fb 08 13260 jc near 090 30h ; 0f 82 74 0113304 jc near 09024h ; 0f 82 74 01 13261 13305 cmp bx, strict byte 0000dh ; 83 fb 0d 13262 jbe near 08f 43h ; 0f 86 80 0013263 jmp near 090 30h ; e9 6a 0113306 jbe near 08f37h ; 0f 86 80 00 13307 jmp near 09024h ; e9 6a 01 13264 13308 cmp bx, strict byte 00002h ; 83 fb 02 13265 je short 08ee eh ; 74 2313309 je short 08ee2h ; 74 23 13266 13310 cmp bx, strict byte 00001h ; 83 fb 01 13267 jne near 090 30h ; 0f 85 5e 0113311 jne near 09024h ; 0f 85 5e 01 13268 13312 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 13269 13313 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 13271 13315 mov word [bp+018h], 04350h ; c7 46 18 50 43 13272 13316 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 13273 jmp near 0905 dh ; e9 6f 0113317 jmp near 09051h ; e9 6f 01 13274 13318 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 13275 jne short 08e fah ; 75 0613319 jne short 08eeeh ; 75 06 13276 13320 or ah, 083h ; 80 cc 83 13277 jmp near 090 56h ; e9 5c 0113321 jmp near 0904ah ; e9 5c 01 13278 13322 mov bx, word [bp+008h] ; 8b 5e 08 13279 13323 mov dx, word [bp+01ch] ; 8b 56 1c 13280 13324 mov ax, word [bp+018h] ; 8b 46 18 13281 13325 xor cx, cx ; 31 c9 13282 call 08d 96h ; e8 8e fe13326 call 08d8ah ; e8 8e fe 13283 13327 cmp ax, strict word 0ffffh ; 3d ff ff 13284 jne short 08f 18h ; 75 0b13328 jne short 08f0ch ; 75 0b 13285 13329 mov ax, word [bp+020h] ; 8b 46 20 13286 13330 xor ah, ah ; 30 e4 13287 13331 or ah, 086h ; 80 cc 86 13288 jmp near 090 56h ; e9 3e 0113332 jmp near 0904ah ; e9 3e 01 13289 13333 mov word [bp+014h], ax ; 89 46 14 13290 jmp near 0905 dh ; e9 3f 0113334 jmp near 09051h ; e9 3f 01 13291 13335 mov bx, word [bp+008h] ; 8b 5e 08 13292 13336 mov ax, word [bp+01ch] ; 8b 46 1c 13293 13337 mov dx, word [bp+01eh] ; 8b 56 1e 13294 13338 mov cx, strict word 00001h ; b9 01 00 13295 call 08d 96h ; e8 69 fe13339 call 08d8ah ; e8 69 fe 13296 13340 cmp ax, strict word 0ffffh ; 3d ff ff 13297 jne short 08f3 dh ; 75 0b13341 jne short 08f31h ; 75 0b 13298 13342 mov ax, word [bp+020h] ; 8b 46 20 13299 13343 xor ah, ah ; 30 e4 13300 13344 or ah, 086h ; 80 cc 86 13301 jmp near 090 56h ; e9 19 0113345 jmp near 0904ah ; e9 19 01 13302 13346 mov word [bp+014h], ax ; 89 46 14 13303 jmp near 0905 dh ; e9 1a 0113347 jmp near 09051h ; e9 1a 01 13304 13348 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 13305 jc short 08f 50h ; 72 0613349 jc short 08f44h ; 72 06 13306 13350 or ah, 087h ; 80 cc 87 13307 jmp near 090 56h ; e9 06 0113351 jmp near 0904ah ; e9 06 01 13308 13352 mov dx, word [bp+004h] ; 8b 56 04 13309 13353 mov ax, word [bp+014h] ; 8b 46 14 13310 call 08d 72h ; e8 19 fe13354 call 08d66h ; e8 19 fe 13311 13355 mov bx, word [bp+020h] ; 8b 5e 20 13312 13356 xor bh, bh ; 30 ff 13313 13357 sub bx, strict byte 00008h ; 83 eb 08 13314 13358 cmp bx, strict byte 00005h ; 83 fb 05 13315 jnbe near 0905 dh ; 0f 87 f5 0013359 jnbe near 09051h ; 0f 87 f5 00 13316 13360 add bx, bx ; 01 db 13317 jmp word [cs:bx-071 7fh] ; 2e ff a7 818e13361 jmp word [cs:bx-0718bh] ; 2e ff a7 75 8e 13318 13362 mov bx, word [bp+01ch] ; 8b 5e 1c 13319 13363 xor bl, bl ; 30 db … … 13326 13370 or bx, ax ; 09 c3 13327 13371 mov word [bp+01ch], bx ; 89 5e 1c 13328 jmp near 0905 dh ; e9 d4 0013372 jmp near 09051h ; e9 d4 00 13329 13373 mov dx, word [bp+004h] ; 8b 56 04 13330 13374 xor dh, dh ; 30 f6 … … 13333 13377 in ax, DX ; ed 13334 13378 mov word [bp+01ch], ax ; 89 46 1c 13335 jmp near 0905 dh ; e9 c1 0013379 jmp near 09051h ; e9 c1 00 13336 13380 mov dx, 00cfch ; ba fc 0c 13337 13381 in eax, DX ; 66 ed … … 13342 13386 mov word [bp+01ch], ax ; 89 46 1c 13343 13387 mov word [bp+01eh], dx ; 89 56 1e 13344 jmp near 0905 dh ; e9 ac 0013388 jmp near 09051h ; e9 ac 00 13345 13389 mov ax, word [bp+01ch] ; 8b 46 1c 13346 13390 mov dx, word [bp+004h] ; 8b 56 04 … … 13349 13393 add dx, 00cfch ; 81 c2 fc 0c 13350 13394 out DX, AL ; ee 13351 jmp near 0905 dh ; e9 99 0013395 jmp near 09051h ; e9 99 00 13352 13396 mov ax, word [bp+01ch] ; 8b 46 1c 13353 13397 mov dx, word [bp+004h] ; 8b 56 04 … … 13356 13400 add dx, 00cfch ; 81 c2 fc 0c 13357 13401 out DX, ax ; ef 13358 jmp near 0905 dh ; e9 86 0013402 jmp near 09051h ; e9 86 00 13359 13403 mov ax, word [bp+01ch] ; 8b 46 1c 13360 13404 mov cx, word [bp+01eh] ; 8b 4e 1e … … 13365 13409 ; mov ax, cx ; 8b c1 13366 13410 out DX, eax ; 66 ef 13367 jmp short 0905 dh ; eb 7213411 jmp short 09051h ; eb 72 13368 13412 mov bx, word [bp+004h] ; 8b 5e 04 13369 13413 mov es, [bp+026h] ; 8e 46 26 … … 13372 13416 mov cx, word [word 00000h] ; 8b 0e 00 00 13373 13417 cmp cx, word [es:bx] ; 26 3b 0f 13374 jbe short 090 11h ; 76 1113418 jbe short 09005h ; 76 11 13375 13419 mov ax, word [bp+020h] ; 8b 46 20 13376 13420 xor ah, ah ; 30 e4 … … 13378 13422 mov word [bp+020h], ax ; 89 46 20 13379 13423 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 13380 jmp short 090 25h ; eb 1413424 jmp short 09019h ; eb 14 13381 13425 les di, [es:bx+002h] ; 26 c4 7f 02 13382 13426 mov si, 0f2c0h ; be c0 f2 … … 13390 13434 les bx, [bp-008h] ; c4 5e f8 13391 13435 mov word [es:bx], ax ; 26 89 07 13392 jmp short 0905 dh ; eb 2d13393 mov bx, 00d 38h ; bb 38 0d13436 jmp short 09051h ; eb 2d 13437 mov bx, 00da8h ; bb a8 0d 13394 13438 mov cx, ds ; 8c d9 13395 13439 mov ax, strict word 00004h ; b8 04 00 13396 call 018cch ; e8 9 18813440 call 018cch ; e8 9d 88 13397 13441 mov ax, word [bp+014h] ; 8b 46 14 13398 13442 push ax ; 50 13399 13443 mov ax, word [bp+020h] ; 8b 46 20 13400 13444 push ax ; 50 13401 push 00 ceeh ; 68 ee 0c13445 push 00d5eh ; 68 5e 0d 13402 13446 push strict byte 00004h ; 6a 04 13403 call 0190dh ; e8 c 28813447 call 0190dh ; e8 ce 88 13404 13448 add sp, strict byte 00008h ; 83 c4 08 13405 13449 mov ax, word [bp+020h] ; 8b 46 20 … … 13413 13457 pop bp ; 5d 13414 13458 retn ; c3 13415 pci_find_classcode_: ; 0xf90 64LB 0x2b13459 pci_find_classcode_: ; 0xf9058 LB 0x2b 13416 13460 push bp ; 55 13417 13461 mov bp, sp ; 89 e5 … … 13428 13472 int 01ah ; cd 1a 13429 13473 cmp ah, 000h ; 80 fc 00 13430 je near 090 85h ; 0f 84 03 0013474 je near 09079h ; 0f 84 03 00 13431 13475 mov bx, strict word 0ffffh ; bb ff ff 13432 13476 mov ax, bx ; 89 d8 … … 13437 13481 pop bp ; 5d 13438 13482 retn ; c3 13439 pci_read_config_byte_: ; 0xf908 fLB 0x2413483 pci_read_config_byte_: ; 0xf9083 LB 0x24 13440 13484 push bp ; 55 13441 13485 mov bp, sp ; 89 e5 … … 13456 13500 pop bp ; 5d 13457 13501 retn ; c3 13458 pci_read_config_word_: ; 0xf90 b3LB 0x2213502 pci_read_config_word_: ; 0xf90a7 LB 0x22 13459 13503 push bp ; 55 13460 13504 mov bp, sp ; 89 e5 … … 13475 13519 pop bp ; 5d 13476 13520 retn ; c3 13477 pci_read_config_dword_: ; 0xf90 d5LB 0x2713521 pci_read_config_dword_: ; 0xf90c9 LB 0x27 13478 13522 push bp ; 55 13479 13523 mov bp, sp ; 89 e5 … … 13496 13540 pop bp ; 5d 13497 13541 retn ; c3 13498 vds_is_present_: ; 0xf90f cLB 0x1d13542 vds_is_present_: ; 0xf90f0 LB 0x1d 13499 13543 push bx ; 53 13500 13544 push bp ; 55 … … 13504 13548 mov es, ax ; 8e c0 13505 13549 test byte [es:bx], 020h ; 26 f6 07 20 13506 je short 091 14h ; 74 0613550 je short 09108h ; 74 06 13507 13551 mov ax, strict word 00001h ; b8 01 00 13508 13552 pop bp ; 5d … … 13513 13557 pop bx ; 5b 13514 13558 retn ; c3 13515 vds_real_to_lin_: ; 0xf91 19LB 0x1e13559 vds_real_to_lin_: ; 0xf910d LB 0x1e 13516 13560 push bx ; 53 13517 13561 push cx ; 51 … … 13524 13568 sal ax, 1 ; d1 e0 13525 13569 rcl dx, 1 ; d1 d2 13526 loop 091 27h ; e2 fa13570 loop 0911bh ; e2 fa 13527 13571 xor cx, cx ; 31 c9 13528 13572 add ax, bx ; 01 d8 … … 13532 13576 pop bx ; 5b 13533 13577 retn ; c3 13534 vds_build_sg_list_: ; 0xf91 37LB 0x7913578 vds_build_sg_list_: ; 0xf912b LB 0x79 13535 13579 push bp ; 55 13536 13580 mov bp, sp ; 89 e5 … … 13546 13590 mov bx, word [bp+006h] ; 8b 5e 06 13547 13591 mov word [es:di+002h], bx ; 26 89 5d 02 13548 call 091 19h ; e8 c3 ff13592 call 0910dh ; e8 c3 ff 13549 13593 mov es, si ; 8e c6 13550 13594 mov word [es:di+004h], ax ; 26 89 45 04 13551 13595 mov word [es:di+006h], dx ; 26 89 55 06 13552 13596 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 13553 call 090f ch ; e8 93 ff13597 call 090f0h ; e8 93 ff 13554 13598 test ax, ax ; 85 c0 13555 je short 091 80h ; 74 1313599 je short 09174h ; 74 13 13556 13600 mov es, si ; 8e c6 13557 13601 mov ax, 08105h ; b8 05 81 13558 13602 mov dx, strict word 00000h ; ba 00 00 13559 13603 int 04bh ; cd 4b 13560 jc near 0917 dh ; 0f 82 02 0013604 jc near 09171h ; 0f 82 02 00 13561 13605 db 032h, 0c0h 13562 13606 ; xor al, al ; 32 c0 13563 13607 cbw ; 98 13564 jmp short 091 a7h ; eb 2713608 jmp short 0919bh ; eb 27 13565 13609 mov es, si ; 8e c6 13566 13610 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 13579 13623 pop bp ; 5d 13580 13624 retn 00004h ; c2 04 00 13581 vds_free_sg_list_: ; 0xf91 b0 LB 0x3013625 vds_free_sg_list_: ; 0xf91a4 LB 0x3c 13582 13626 push bp ; 55 13583 13627 mov bp, sp ; 89 e5 … … 13585 13629 push di ; 57 13586 13630 mov bx, ax ; 89 c3 13587 call 090f ch ; e8 42 ff13631 call 090f0h ; e8 42 ff 13588 13632 test ax, ax ; 85 c0 13589 je short 091 d1h ; 74 1313633 je short 091c5h ; 74 13 13590 13634 mov di, bx ; 89 df 13591 13635 mov es, dx ; 8e c2 … … 13593 13637 mov dx, strict word 00000h ; ba 00 00 13594 13638 int 04bh ; cd 4b 13595 jc near 091 d0h ; 0f 82 02 0013639 jc near 091c4h ; 0f 82 02 00 13596 13640 db 032h, 0c0h 13597 13641 ; xor al, al ; 32 c0 … … 13604 13648 pop bp ; 5d 13605 13649 retn ; c3 13650 times 0xc db 0 13606 13651 __U4D: ; 0xf91e0 LB 0x39 13607 13652 pushfw ; 9c … … 14371 14416 pop DS ; 1f 14372 14417 cld ; fc 14373 call 049 51h ; e8 976714418 call 04945h ; e8 8b 67 14374 14419 pop DS ; 1f 14375 14420 mov AL, strict byte 014h ; b0 14 … … 14460 14505 call 01b48h ; e8 ab 38 14461 14506 call 01f42h ; e8 a2 3c 14462 call 08b 46h ; e8 a3a814463 call 07c1 dh ; e8 779914507 call 08b3ah ; e8 97 a8 14508 call 07c11h ; e8 6b 99 14464 14509 call 0ed2fh ; e8 86 0a 14465 14510 call 0e2d2h ; e8 26 00 … … 14468 14513 cld ; fc 14469 14514 call 01732h ; e8 80 34 14470 call 036 35h ; e8 805314515 call 03629h ; e8 74 53 14471 14516 sti ; fb 14472 14517 int 019h ; cd 19 … … 14588 14633 pop DS ; 1f 14589 14634 cld ; fc 14590 call 05c e3h ; e8 a17514635 call 05cd7h ; e8 95 75 14591 14636 popaw ; 61 14592 14637 pop ES ; 07 … … 14704 14749 pop DS ; 1f 14705 14750 cld ; fc 14706 call 050 51h ; e8 0f6814751 call 05045h ; e8 03 68 14707 14752 popaw ; 61 14708 14753 pop DS ; 1f … … 14721 14766 pop DS ; 1f 14722 14767 cld ; fc 14723 call 050 51h ; e8 f16714768 call 05045h ; e8 e5 67 14724 14769 popaw ; 61 14725 14770 pop DS ; 1f … … 14820 14865 pop DS ; 1f 14821 14866 cld ; fc 14822 call 04c 60h ; e8 916214867 call 04c54h ; e8 85 62 14823 14868 pop ES ; 07 14824 14869 popaw ; 61 … … 14846 14891 cld ; fc 14847 14892 push 0ece9h ; 68 e9 ec 14848 jmp near 036 79h ; e9 08 4a14893 jmp near 0366dh ; e9 fc 49 14849 14894 push ES ; 06 14850 14895 push ax ; 50 … … 14852 14897 push cx ; 51 14853 14898 push dx ; 52 14854 call 0364 dh ; e8 d44914899 call 03641h ; e8 c8 49 14855 14900 cmp AL, strict byte 000h ; 3c 00 14856 14901 je short 0ecabh ; 74 2e 14857 call 036 63h ; e8 e34914902 call 03657h ; e8 d7 49 14858 14903 pop dx ; 5a 14859 14904 push dx ; 52 … … 14873 14918 cld ; fc 14874 14919 push 0ece9h ; 68 e9 ec 14875 jmp near 03c4 dh ; e9 b64f14920 jmp near 03c41h ; e9 aa 4f 14876 14921 and dl, 0e0h ; 80 e2 e0 14877 14922 db 03ah, 0c2h … … 14913 14958 jne short 0ecc8h ; 75 06 14914 14959 push 0ece9h ; 68 e9 ec 14915 jmp near 02e eeh ; e9 264214960 jmp near 02ec9h ; e9 01 42 14916 14961 int13_notfloppy: ; 0xfecc8 LB 0x14 14917 14962 cmp dl, 0e0h ; 80 fa e0 … … 14919 14964 shr ebx, 010h ; 66 c1 eb 10 14920 14965 push bx ; 53 14921 call 040 81h ; e8 ac5314966 call 04075h ; e8 a0 53 14922 14967 pop bx ; 5b 14923 14968 sal ebx, 010h ; 66 c1 e3 10 … … 14926 14971 cmp ah, 040h ; 80 fc 40 14927 14972 jnbe short 0ece6h ; 77 05 14928 call 053 d6h ; e8 f26614973 call 053cah ; e8 e6 66 14929 14974 jmp short 0ece9h ; eb 03 14930 call 058 17h ; e8 2e6b14975 call 0580bh ; e8 22 6b 14931 14976 int13_out: ; 0xfece9 LB 0x4 14932 14977 pop DS ; 1f … … 15141 15186 pop DS ; 1f 15142 15187 cld ; fc 15143 call 06 f00h ; e8 237f15188 call 06ef4h ; e8 17 7f 15144 15189 popaw ; 61 15145 15190 pop ES ; 07 … … 15189 15234 mov ax, strict word 00001h ; b8 01 00 15190 15235 push ax ; 50 15191 call 046 e8h ; e8 185615236 call 046dch ; e8 0c 56 15192 15237 inc sp ; 44 15193 15238 inc sp ; 44 … … 15196 15241 mov ax, strict word 00002h ; b8 02 00 15197 15242 push ax ; 50 15198 call 046 e8h ; e8 0b 5615243 call 046dch ; e8 ff 55 15199 15244 inc sp ; 44 15200 15245 inc sp ; 44 … … 15203 15248 mov ax, strict word 00003h ; b8 03 00 15204 15249 push strict byte 00003h ; 6a 03 15205 call 046 e8h ; e8 fd5515250 call 046dch ; e8 f1 55 15206 15251 inc sp ; 44 15207 15252 inc sp ; 44 … … 15210 15255 mov ax, strict word 00004h ; b8 04 00 15211 15256 push ax ; 50 15212 call 046 e8h ; e8 f05515257 call 046dch ; e8 e4 55 15213 15258 inc sp ; 44 15214 15259 inc sp ; 44 … … 15556 15601 cmp ah, 0c2h ; 80 fc c2 15557 15602 je short 0f887h ; 74 0e 15558 call 05e f0h ; e8 746615603 call 05ee4h ; e8 68 66 15559 15604 popaw ; 61 15560 15605 pop ES ; 07 … … 15562 15607 popfw ; 9d 15563 15608 jmp short 0f895h ; eb 13 15564 call 08c7 dh ; e8 f89315609 call 08c71h ; e8 ec 93 15565 15610 jmp short 0f87ch ; eb f5 15566 15611 int15_handler_mouse: ; 0xff887 LB 0x5 15567 call 06b 75h ; e8 eb7215612 call 06b69h ; e8 df 72 15568 15613 jmp short 0f87ch ; eb f0 15569 15614 int15_handler32: ; 0xff88c LB 0x9 15570 15615 pushad ; 66 60 15571 call 063b dh ; e8 2c6b15616 call 063b1h ; e8 20 6b 15572 15617 popad ; 66 61 15573 15618 jmp short 0f87dh ; eb e8 … … 15599 15644 pop DS ; 1f 15600 15645 cld ; fc 15601 call 06a abh ; e8 ee7115646 call 06a9fh ; e8 e2 71 15602 15647 pop cx ; 59 15603 15648 jcxz 0f8cch ; e3 0c … … 15691 15736 db 018h, 018h, 018h, 000h, 018h, 018h, 018h, 000h, 0e0h, 030h, 030h, 01ch, 030h, 030h, 0e0h, 000h 15692 15737 db 076h, 0dch, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 010h, 038h, 06ch, 0c6h, 0c6h, 0feh, 000h 15693 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 0 10h, 090h, 066h15694 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0 b7h, 069h, 061h, 01fh, 007h15738 db 080h, 0fch, 0b1h, 075h, 00fh, 006h, 01eh, 00eh, 01fh, 0fch, 066h, 060h, 0e8h, 004h, 090h, 066h 15739 db 061h, 01fh, 007h, 0cfh, 006h, 01eh, 060h, 00eh, 01fh, 0fch, 0e8h, 0abh, 069h, 061h, 01fh, 007h 15695 15740 db 0cfh 15696 15741 int70_handler: ; 0xffe8f LB 0x16 … … 15701 15746 pop DS ; 1f 15702 15747 cld ; fc 15703 call 067 84h ; e8 ec6815748 call 06778h ; e8 e0 68 15704 15749 popaw ; 61 15705 15750 pop DS ; 1f … … 15714 15759 push eax ; 66 50 15715 15760 push DS ; 1e 15716 db 033h, 0c0h15717 ; xor ax, ax ; 33 c015761 push dx ; 52 15762 mov ax, strict word 00040h ; b8 40 00 15718 15763 mov ds, ax ; 8e d8 15719 mov AL, byte [00440h] ; a0 40 04 15764 mov eax, dword [0006ch] ; 66 a1 6c 00 15765 inc eax ; 66 40 15766 cmp eax, strict dword 0001800b0h ; 66 3d b0 00 18 00 15767 jc short 0fec4h ; 72 07 15768 db 066h, 033h, 0c0h 15769 ; xor eax, eax ; 66 33 c0 15770 inc byte [word 00070h] ; fe 06 70 00 15771 mov dword [0006ch], eax ; 66 a3 6c 00 15772 mov AL, byte [00040h] ; a0 40 00 15720 15773 db 00ah, 0c0h 15721 15774 ; or al, al ; 0a c0 15722 je short 0fe c4h ; 74 1015775 je short 0feddh ; 74 0e 15723 15776 db 0feh, 0c8h 15724 15777 ; dec al ; fe c8 15725 mov byte [00440h], AL ; a2 40 04 15726 jne short 0fec4h ; 75 09 15727 push dx ; 52 15778 mov byte [00040h], AL ; a2 40 00 15779 jne short 0feddh ; 75 07 15728 15780 mov dx, 003f2h ; ba f2 03 15729 15781 in AL, DX ; ec 15730 15782 and AL, strict byte 0cfh ; 24 cf 15731 15783 out DX, AL ; ee 15732 pop dx ; 5a15733 mov eax, dword [0046ch] ; 66 a1 6c 0415734 inc eax ; 66 4015735 cmp eax, strict dword 0001800b0h ; 66 3d b0 00 18 0015736 jc short 0fed9h ; 72 0715737 db 066h, 033h, 0c0h15738 ; xor eax, eax ; 66 33 c015739 inc byte [00470h] ; fe 06 70 0415740 mov dword [0046ch], eax ; 66 a3 6c 0415741 15784 int 01ch ; cd 1c 15742 15785 cli ; fa 15743 15786 call 0e03fh ; e8 5c e1 15787 pop dx ; 5a 15744 15788 pop DS ; 1f 15745 15789 pop eax ; 66 58 15746 15790 iret ; cf 15747 times 0x adb 015791 times 0x9 db 0 15748 15792 pop ax ; 58 15749 15793 dec bp ; 4d … … 15801 15845 cpu_reset: ; 0xffff0 LB 0x10 15802 15846 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 15803 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 d1h15847 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0f5h -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative.md5sum
r47937 r48392 1 6 425bea00dd0628837a2c2ae3521655f*VBoxPcBios.rom1 692c90b32e2b85d310eb7e2bbb5e022b *VBoxPcBios.rom
Note:
See TracChangeset
for help on using the changeset viewer.