Changeset 67495 in vbox for trunk/src/VBox/Devices/PC
- Timestamp:
- Jun 20, 2017 11:04:25 AM (8 years ago)
- svn:sync-xref-src-repo-rev:
- 116234
- Location:
- trunk/src/VBox/Devices/PC/BIOS
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.asm
r66146 r67495 11 11 ; 12 12 ; 13 ; Copyright (C) 2004-201 6Oracle Corporation13 ; Copyright (C) 2004-2017 Oracle Corporation 14 14 ; 15 15 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 880 880 ; 881 881 ; 882 ; Copyright (C) 2006-201 6Oracle Corporation882 ; Copyright (C) 2006-2017 Oracle Corporation 883 883 ; 884 884 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 0 45h, 081h, 0abh, 090h990 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 02bh, 073h, 081h, 0d9h, 090h 991 991 _softrst: ; 0xf0076 LB 0xc 992 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 0 1ch, 03bh, 01ch, 03bh992 db 000h, 000h, 000h, 000h, 000h, 000h, 089h, 02dh, 049h, 03bh, 049h, 03bh 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0f0h, 029h, 0a5h, 02ah, 000h, 000h, 000h, 000h 995 db 0 85h, 07fh, 065h, 080h, 07dh, 08fh, 025h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 0b3h, 07fh, 093h, 080h, 0abh, 08fh, 053h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d 18 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8d48 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x50 1194 1194 push bp ; 55 … … 1440 1440 int 010h ; cd 10 1441 1441 jmp short 017b7h ; eb 03 1442 call 07b 3fh ; e8 88631442 call 07b6dh ; e8 b6 63 1443 1443 mov sp, bp ; 89 ec 1444 1444 pop bp ; 5d … … 1585 1585 mov bx, strict word 0000ah ; bb 0a 00 1586 1586 xor cx, cx ; 31 c9 1587 call 09f b0h ; e8 e3 861587 call 09fe0h ; e8 13 87 1588 1588 mov word [bp-008h], ax ; 89 46 f8 1589 1589 mov cx, dx ; 89 d1 … … 1815 1815 mov dx, word [bp-026h] ; 8b 56 da 1816 1816 mov si, word [bp-01eh] ; 8b 76 e2 1817 call 0 9fe0h ; e8 e3 841817 call 0a010h ; e8 13 85 1818 1818 mov ax, dx ; 89 d0 1819 1819 xor ah, dh ; 30 f4 … … 2254 2254 mov dx, word [es:si] ; 26 8b 14 2255 2255 mov si, strict word 00018h ; be 18 00 2256 call 0 9fe0h ; e8 90 802256 call 0a010h ; e8 c0 80 2257 2257 xor dh, dh ; 30 f6 2258 2258 mov word [bp-014h], dx ; 89 56 ec … … 2264 2264 mov dx, word [es:si] ; 26 8b 14 2265 2265 mov si, strict word 00020h ; be 20 00 2266 call 0 9fe0h ; e8 70 802266 call 0a010h ; e8 a0 80 2267 2267 mov bx, dx ; 89 d3 2268 2268 mov ax, word [bp-01ch] ; 8b 46 e4 … … 2295 2295 mov dx, word [es:si] ; 26 8b 14 2296 2296 mov si, strict word 00008h ; be 08 00 2297 call 0 9fe0h ; e8 1f 802297 call 0a010h ; e8 4f 80 2298 2298 mov word [bp-012h], dx ; 89 56 ee 2299 2299 mov bx, word [bp-016h] ; 8b 5e ea … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00018h ; be 18 00 2306 call 0 9fe0h ; e8 01 802306 call 0a010h ; e8 31 80 2307 2307 mov ah, dl ; 88 d4 2308 2308 and ah, 00fh ; 80 e4 0f … … 2694 2694 mov dx, ss ; 8c d2 2695 2695 lea ax, [bp-03ah] ; 8d 46 c6 2696 call 059 cbh ; e8 21362696 call 059f9h ; e8 4f 36 2697 2697 mov bx, 00da0h ; bb a0 0d 2698 2698 mov cx, ds ; 8c d9 … … 2861 2861 mov dx, word [es:di+036h] ; 26 8b 55 36 2862 2862 mov si, strict word 0000bh ; be 0b 00 2863 call 0 9fe0h ; e8 59 7a2863 call 0a010h ; e8 89 7a 2864 2864 mov word [bp-024h], dx ; 89 56 dc 2865 2865 mov word [bp-032h], cx ; 89 4e ce … … 3137 3137 mov dx, word [bp-024h] ; 8b 56 dc 3138 3138 mov si, strict word 00018h ; be 18 00 3139 call 0 9fe0h ; e8 97 773139 call 0a010h ; e8 c7 77 3140 3140 xor dh, dh ; 30 f6 3141 3141 mov word [bp-014h], dx ; 89 56 ec … … 3145 3145 mov dx, word [bp-024h] ; 8b 56 dc 3146 3146 mov si, strict word 00020h ; be 20 00 3147 call 0 9fe0h ; e8 80 773147 call 0a010h ; e8 b0 77 3148 3148 mov bx, dx ; 89 d3 3149 3149 mov ax, word [bp-022h] ; 8b 46 de … … 3179 3179 mov dx, word [bp-024h] ; 8b 56 dc 3180 3180 mov si, strict word 00008h ; be 08 00 3181 call 0 9fe0h ; e8 2c 773181 call 0a010h ; e8 5c 77 3182 3182 mov word [bp-00ch], ax ; 89 46 f4 3183 3183 mov word [bp-00eh], bx ; 89 5e f2 … … 3186 3186 mov word [bp-018h], dx ; 89 56 e8 3187 3187 mov si, strict word 00010h ; be 10 00 3188 call 0 9fe0h ; e8 17 773188 call 0a010h ; e8 47 77 3189 3189 mov word [bp-024h], dx ; 89 56 dc 3190 3190 mov ax, dx ; 89 d0 … … 3750 3750 pop bp ; 5d 3751 3751 retn ; c3 3752 set_diskette_ ret_status_: ; 0xf2e09 LB 0x193752 set_diskette_current_cyl_: ; 0xf2e09 LB 0x2b 3753 3753 push bp ; 55 3754 3754 mov bp, sp ; 89 e5 3755 3755 push bx ; 53 3756 push dx ; 52 3757 xor ah, ah ; 30 e4 3758 mov bx, ax ; 89 c3 3759 mov dx, strict word 00041h ; ba 41 00 3760 mov ax, strict word 00040h ; b8 40 00 3761 call 0165eh ; e8 43 e8 3762 lea sp, [bp-004h] ; 8d 66 fc 3763 pop dx ; 5a 3764 pop bx ; 5b 3765 pop bp ; 5d 3766 retn ; c3 3767 set_diskette_current_cyl_: ; 0xf2e22 LB 0x30 3768 push bp ; 55 3769 mov bp, sp ; 89 e5 3770 push bx ; 53 3771 mov bl, al ; 88 c3 3756 mov dh, al ; 88 c6 3772 3757 cmp AL, strict byte 001h ; 3c 01 3773 jbe short 02e 37h ; 76 0b3758 jbe short 02e1eh ; 76 0b 3774 3759 push 00250h ; 68 50 02 3775 3760 push strict byte 00007h ; 6a 07 3776 call 01966h ; e8 32eb3761 call 01966h ; e8 4b eb 3777 3762 add sp, strict byte 00004h ; 83 c4 04 3778 mov al, dl ; 88 d0 3779 xor ah, ah ; 30 e4 3780 mov dx, ax ; 89 c2 3781 mov al, bl ; 88 d8 3782 add ax, 00094h ; 05 94 00 3783 mov bx, dx ; 89 d3 3784 mov dx, ax ; 89 c2 3763 mov bl, dh ; 88 f3 3764 xor bh, bh ; 30 ff 3765 add bx, 00094h ; 81 c3 94 00 3785 3766 mov ax, strict word 00040h ; b8 40 00 3786 call 0165eh ; e8 12 e8 3767 mov es, ax ; 8e c0 3768 mov byte [es:bx], dl ; 26 88 17 3787 3769 lea sp, [bp-002h] ; 8d 66 fe 3788 3770 pop bx ; 5b 3789 3771 pop bp ; 5d 3790 3772 retn ; c3 3791 floppy_wait_for_interrupt_: ; 0xf2e 52 LB 0x213773 floppy_wait_for_interrupt_: ; 0xf2e34 LB 0x23 3792 3774 push bp ; 55 3793 3775 mov bp, sp ; 89 e5 3794 push dx ; 523776 push bx ; 53 3795 3777 cli ; fa 3796 mov dx, strict word 0003eh ; ba3e 003778 mov bx, strict word 0003eh ; bb 3e 00 3797 3779 mov ax, strict word 00040h ; b8 40 00 3798 call 01650h ; e8 f0 e7 3780 mov es, ax ; 8e c0 3781 mov al, byte [es:bx] ; 26 8a 07 3799 3782 test AL, strict byte 080h ; a8 80 3800 je short 02e 68h ; 74 043783 je short 02e4ch ; 74 04 3801 3784 and AL, strict byte 080h ; 24 80 3802 jmp short 02e 6dh ; eb 053785 jmp short 02e51h ; eb 05 3803 3786 sti ; fb 3804 3787 hlt ; f4 3805 3788 cli ; fa 3806 jmp short 02e 57h ; eb ea3789 jmp short 02e39h ; eb e8 3807 3790 lea sp, [bp-002h] ; 8d 66 fe 3808 pop dx ; 5a3791 pop bx ; 5b 3809 3792 pop bp ; 5d 3810 3793 retn ; c3 3811 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e73 LB 0x47 3794 floppy_wait_for_interrupt_or_timeout_: ; 0xf2e57 LB 0x38 3795 push bp ; 55 3796 mov bp, sp ; 89 e5 3797 push bx ; 53 3798 cli ; fa 3799 mov bx, strict word 00040h ; bb 40 00 3800 mov es, bx ; 8e c3 3801 mov al, byte [es:bx] ; 26 8a 07 3802 test al, al ; 84 c0 3803 jne short 02e6bh ; 75 03 3804 sti ; fb 3805 jmp short 02e89h ; eb 1e 3806 mov bx, strict word 0003eh ; bb 3e 00 3807 mov ax, strict word 00040h ; b8 40 00 3808 mov es, ax ; 8e c0 3809 mov al, byte [es:bx] ; 26 8a 07 3810 test AL, strict byte 080h ; a8 80 3811 je short 02e84h ; 74 0a 3812 mov ah, al ; 88 c4 3813 and ah, 07fh ; 80 e4 7f 3814 mov byte [es:bx], ah ; 26 88 27 3815 jmp short 02e89h ; eb 05 3816 sti ; fb 3817 hlt ; f4 3818 cli ; fa 3819 jmp short 02e5ch ; eb d3 3820 lea sp, [bp-002h] ; 8d 66 fe 3821 pop bx ; 5b 3822 pop bp ; 5d 3823 retn ; c3 3824 floppy_reset_controller_: ; 0xf2e8f LB 0x3f 3812 3825 push bp ; 55 3813 3826 mov bp, sp ; 89 e5 … … 3815 3828 push cx ; 51 3816 3829 push dx ; 52 3817 cli ; fa 3818 mov dx, strict word 00040h ; ba 40 00 3819 mov ax, dx ; 89 d0 3820 call 01650h ; e8 ce e7 3821 test al, al ; 84 c0 3822 jne short 02e8bh ; 75 05 3823 sti ; fb 3824 xor cl, cl ; 30 c9 3825 jmp short 02eb0h ; eb 25 3826 mov dx, strict word 0003eh ; ba 3e 00 3830 mov cx, ax ; 89 c1 3831 mov dx, 003f2h ; ba f2 03 3832 in AL, DX ; ec 3833 db 02ah, 0e4h 3834 ; sub ah, ah ; 2a e4 3835 mov bx, ax ; 89 c3 3836 and AL, strict byte 0fbh ; 24 fb 3837 out DX, AL ; ee 3838 mov al, bl ; 88 d8 3839 or AL, strict byte 004h ; 0c 04 3840 out DX, AL ; ee 3841 mov dx, 003f4h ; ba f4 03 3842 in AL, DX ; ec 3843 db 02ah, 0e4h 3844 ; sub ah, ah ; 2a e4 3845 and AL, strict byte 0c0h ; 24 c0 3846 cmp AL, strict byte 080h ; 3c 80 3847 jne short 02ea7h ; 75 f4 3848 mov bx, cx ; 89 cb 3849 add bx, 00090h ; 81 c3 90 00 3827 3850 mov ax, strict word 00040h ; b8 40 00 3828 call 01650h ; e8 bc e7 3829 mov cl, al ; 88 c1 3830 test AL, strict byte 080h ; a8 80 3831 je short 02eabh ; 74 11 3832 and AL, strict byte 07fh ; 24 7f 3833 xor ah, ah ; 30 e4 3834 mov bx, ax ; 89 c3 3835 mov dx, strict word 0003eh ; ba 3e 00 3836 mov ax, strict word 00040h ; b8 40 00 3837 call 0165eh ; e8 b5 e7 3838 jmp short 02eb0h ; eb 05 3839 sti ; fb 3840 hlt ; f4 3841 cli ; fa 3842 jmp short 02e7ah ; eb ca 3843 mov al, cl ; 88 c8 3851 mov es, ax ; 8e c0 3852 mov al, byte [es:bx] ; 26 8a 07 3853 and AL, strict byte 0efh ; 24 ef 3854 mov byte [es:bx], al ; 26 88 07 3844 3855 lea sp, [bp-006h] ; 8d 66 fa 3845 3856 pop dx ; 5a … … 3848 3859 pop bp ; 5d 3849 3860 retn ; c3 3850 floppy_reset_controller_: ; 0xf2eba LB 0x46 3851 push bp ; 55 3852 mov bp, sp ; 89 e5 3853 push bx ; 53 3854 push cx ; 51 3855 push dx ; 52 3856 mov bx, ax ; 89 c3 3857 mov dx, 003f2h ; ba f2 03 3858 in AL, DX ; ec 3859 db 02ah, 0e4h 3860 ; sub ah, ah ; 2a e4 3861 mov cx, ax ; 89 c1 3862 and AL, strict byte 0fbh ; 24 fb 3863 out DX, AL ; ee 3864 mov al, cl ; 88 c8 3865 or AL, strict byte 004h ; 0c 04 3866 out DX, AL ; ee 3867 mov dx, 003f4h ; ba f4 03 3868 in AL, DX ; ec 3869 db 02ah, 0e4h 3870 ; sub ah, ah ; 2a e4 3871 and AL, strict byte 0c0h ; 24 c0 3872 cmp AL, strict byte 080h ; 3c 80 3873 jne short 02ed2h ; 75 f4 3874 lea cx, [bx+00090h] ; 8d 8f 90 00 3875 mov dx, cx ; 89 ca 3876 mov ax, strict word 00040h ; b8 40 00 3877 call 01650h ; e8 66 e7 3878 and AL, strict byte 0efh ; 24 ef 3879 xor ah, ah ; 30 e4 3880 mov bx, ax ; 89 c3 3881 mov dx, cx ; 89 ca 3882 mov ax, strict word 00040h ; b8 40 00 3883 call 0165eh ; e8 66 e7 3884 lea sp, [bp-006h] ; 8d 66 fa 3885 pop dx ; 5a 3886 pop cx ; 59 3887 pop bx ; 5b 3888 pop bp ; 5d 3889 retn ; c3 3890 floppy_prepare_controller_: ; 0xf2f00 LB 0x83 3861 floppy_prepare_controller_: ; 0xf2ece LB 0x74 3891 3862 push bp ; 55 3892 3863 mov bp, sp ; 89 e5 … … 3896 3867 push ax ; 50 3897 3868 mov cx, ax ; 89 c1 3898 mov dx, strict word 0003eh ; ba3e 003869 mov bx, strict word 0003eh ; bb 3e 00 3899 3870 mov ax, strict word 00040h ; b8 40 00 3900 call 01650h ; e8 3e e7 3871 mov es, ax ; 8e c0 3872 mov al, byte [es:bx] ; 26 8a 07 3901 3873 and AL, strict byte 07fh ; 24 7f 3902 xor ah, ah ; 30 e4 3903 mov bx, ax ; 89 c3 3904 mov dx, strict word 0003eh ; ba 3e 00 3905 mov ax, strict word 00040h ; b8 40 00 3906 call 0165eh ; e8 3d e7 3874 mov byte [es:bx], al ; 26 88 07 3907 3875 mov dx, 003f2h ; ba f2 03 3908 3876 in AL, DX ; ec … … 3912 3880 mov byte [bp-008h], al ; 88 46 f8 3913 3881 test cx, cx ; 85 c9 3914 je short 02 f34h ; 74 043882 je short 02efah ; 74 04 3915 3883 mov AL, strict byte 020h ; b0 20 3916 jmp short 02 f36h ; eb 023884 jmp short 02efch ; eb 02 3917 3885 mov AL, strict byte 010h ; b0 10 3918 3886 or AL, strict byte 00ch ; 0c 0c … … 3920 3888 mov dx, 003f2h ; ba f2 03 3921 3889 out DX, AL ; ee 3922 mov bx, strict word 00025h ; bb 25 00 3923 mov dx, strict word 00040h ; ba 40 00 3924 mov ax, dx ; 89 d0 3925 call 0165eh ; e8 15 e7 3926 mov dx, 0008bh ; ba 8b 00 3927 mov ax, strict word 00040h ; b8 40 00 3928 call 01650h ; e8 fe e6 3890 mov bx, strict word 00040h ; bb 40 00 3891 mov es, bx ; 8e c3 3892 mov byte [es:bx], 025h ; 26 c6 07 25 3893 mov bx, 0008bh ; bb 8b 00 3894 mov al, byte [es:bx] ; 26 8a 07 3929 3895 shr al, 006h ; c0 e8 06 3930 3896 mov dx, 003f7h ; ba f7 03 … … 3936 3902 and AL, strict byte 0c0h ; 24 c0 3937 3903 cmp AL, strict byte 080h ; 3c 80 3938 jne short 02f 59h ; 75 f43904 jne short 02f1ah ; 75 f4 3939 3905 cmp byte [bp-008h], 000h ; 80 7e f8 00 3940 jne short 02f7bh ; 75 10 3941 call 02e52h ; e8 e4 fe 3942 mov bl, al ; 88 c3 3943 xor bh, bh ; 30 ff 3944 mov dx, strict word 0003eh ; ba 3e 00 3945 mov ax, strict word 00040h ; b8 40 00 3946 call 0165eh ; e8 e3 e6 3906 jne short 02f3ah ; 75 0e 3907 call 02e34h ; e8 05 ff 3908 mov bx, strict word 0003eh ; bb 3e 00 3909 mov dx, strict word 00040h ; ba 40 00 3910 mov es, dx ; 8e c2 3911 mov byte [es:bx], al ; 26 88 07 3947 3912 lea sp, [bp-006h] ; 8d 66 fa 3948 3913 pop dx ; 5a … … 3951 3916 pop bp ; 5d 3952 3917 retn ; c3 3953 floppy_media_known_: ; 0xf2f83 LB 0x43 3918 floppy_media_known_: ; 0xf2f42 LB 0x49 3919 push bx ; 53 3920 push dx ; 52 3954 3921 push bp ; 55 3955 3922 mov bp, sp ; 89 e5 3956 push bx ; 53 3957 push dx ; 52 3958 mov bx, ax ; 89 c3 3959 mov dx, strict word 0003eh ; ba 3e 00 3923 mov bx, strict word 0003eh ; bb 3e 00 3924 mov dx, strict word 00040h ; ba 40 00 3925 mov es, dx ; 8e c2 3926 mov bh, byte [es:bx] ; 26 8a 3f 3927 mov bl, bh ; 88 fb 3928 test ax, ax ; 85 c0 3929 je short 02f5ah ; 74 02 3930 shr bl, 1 ; d0 eb 3931 and bl, 001h ; 80 e3 01 3932 jne short 02f63h ; 75 04 3933 xor bh, bh ; 30 ff 3934 jmp short 02f85h ; eb 22 3935 mov bx, 00090h ; bb 90 00 3936 test ax, ax ; 85 c0 3937 je short 02f6dh ; 74 03 3938 mov bx, 00091h ; bb 91 00 3960 3939 mov ax, strict word 00040h ; b8 40 00 3961 call 01650h ; e8 bd e6 3962 mov ah, al ; 88 c4 3963 test bx, bx ; 85 db 3964 je short 02f9bh ; 74 02 3965 shr al, 1 ; d0 e8 3966 and AL, strict byte 001h ; 24 01 3967 jne short 02fa3h ; 75 04 3968 xor ah, ah ; 30 e4 3969 jmp short 02fbfh ; eb 1c 3970 mov dx, 00090h ; ba 90 00 3971 test bx, bx ; 85 db 3972 je short 02fadh ; 74 03 3973 mov dx, 00091h ; ba 91 00 3974 mov ax, strict word 00040h ; b8 40 00 3975 call 01650h ; e8 9d e6 3940 mov es, ax ; 8e c0 3941 mov al, byte [es:bx] ; 26 8a 07 3976 3942 xor ah, ah ; 30 e4 3977 3943 sar ax, 004h ; c1 f8 04 3978 3944 and AL, strict byte 001h ; 24 01 3979 je short 02f9fh ; 74 e3 3980 mov ax, strict word 00001h ; b8 01 00 3981 lea sp, [bp-004h] ; 8d 66 fc 3945 jne short 02f82h ; 75 04 3946 xor bx, bx ; 31 db 3947 jmp short 02f85h ; eb 03 3948 mov bx, strict word 00001h ; bb 01 00 3949 mov ax, bx ; 89 d8 3950 pop bp ; 5d 3982 3951 pop dx ; 5a 3983 3952 pop bx ; 5b 3984 pop bp ; 5d3985 3953 retn ; c3 3986 floppy_read_id_: ; 0xf2f c6 LB 0x443954 floppy_read_id_: ; 0xf2f8b LB 0x52 3987 3955 push bp ; 55 3988 3956 mov bp, sp ; 89 e5 … … 3990 3958 push dx ; 52 3991 3959 push si ; 56 3992 sub sp, strict byte 00008h ; 83 ec 083993 3960 mov bx, ax ; 89 c3 3994 call 02 f00h ; e8 2cff3961 call 02eceh ; e8 38 ff 3995 3962 mov AL, strict byte 04ah ; b0 4a 3996 3963 mov dx, 003f5h ; ba f5 03 … … 3998 3965 mov al, bl ; 88 d8 3999 3966 out DX, AL ; ee 4000 call 02e 52h ; e8 72 fe4001 xor si, si ; 31 f64002 jmp short 02f e9h ; eb 054003 cmp si, strict byte 00007h ; 83 fe074004 jnl short 02f f5h ; 7d 0c3967 call 02e34h ; e8 92 fe 3968 xor bx, bx ; 31 db 3969 jmp short 02fabh ; eb 05 3970 cmp bx, strict byte 00007h ; 83 fb 07 3971 jnl short 02fbfh ; 7d 14 4005 3972 mov dx, 003f5h ; ba f5 03 4006 3973 in AL, DX ; ec 4007 3974 db 02ah, 0e4h 4008 3975 ; sub ah, ah ; 2a e4 4009 mov byte [bp+si-00eh], al ; 88 42 f2 4010 inc si ; 46 4011 jmp short 02fe4h ; eb ef 4012 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 4013 je short 02fffh ; 74 04 3976 lea si, [bx+042h] ; 8d 77 42 3977 mov dx, strict word 00040h ; ba 40 00 3978 mov es, dx ; 8e c2 3979 mov byte [es:si], al ; 26 88 04 3980 inc bx ; 43 3981 jmp short 02fa6h ; eb e7 3982 mov bx, strict word 00042h ; bb 42 00 3983 mov ax, strict word 00040h ; b8 40 00 3984 mov es, ax ; 8e c0 3985 mov al, byte [es:bx] ; 26 8a 07 3986 test AL, strict byte 0c0h ; a8 c0 3987 je short 02fd2h ; 74 04 4014 3988 xor ax, ax ; 31 c0 4015 jmp short 0 3002h ; eb 033989 jmp short 02fd5h ; eb 03 4016 3990 mov ax, strict word 00001h ; b8 01 00 4017 3991 lea sp, [bp-006h] ; 8d 66 fa … … 4021 3995 pop bp ; 5d 4022 3996 retn ; c3 4023 floppy_drive_recal_: ; 0xf 300a LB 0x4d3997 floppy_drive_recal_: ; 0xf2fdd LB 0x41 4024 3998 push bp ; 55 4025 3999 mov bp, sp ; 89 e5 4026 4000 push bx ; 53 4027 push cx ; 514028 4001 push dx ; 52 4002 push si ; 56 4029 4003 mov bx, ax ; 89 c3 4030 call 02 f00h ; e8 ebfe4004 call 02eceh ; e8 e6 fe 4031 4005 mov AL, strict byte 007h ; b0 07 4032 4006 mov dx, 003f5h ; ba f5 03 … … 4034 4008 mov al, bl ; 88 d8 4035 4009 out DX, AL ; ee 4036 call 02e 52h ; e8 31fe4010 call 02e34h ; e8 40 fe 4037 4011 test bx, bx ; 85 db 4038 je short 0302fh ; 74 0a 4039 mov bl, al ; 88 c3 4040 or bl, 002h ; 80 cb 02 4041 mov cx, 00095h ; b9 95 00 4042 jmp short 03037h ; eb 08 4043 mov bl, al ; 88 c3 4044 or bl, 001h ; 80 cb 01 4045 mov cx, 00094h ; b9 94 00 4046 xor bh, bh ; 30 ff 4047 mov dx, strict word 0003eh ; ba 3e 00 4048 mov ax, strict word 00040h ; b8 40 00 4049 call 0165eh ; e8 1c e6 4050 xor bx, bx ; 31 db 4051 mov dx, cx ; 89 ca 4052 mov ax, strict word 00040h ; b8 40 00 4053 call 0165eh ; e8 12 e6 4012 je short 02fffh ; 74 07 4013 or AL, strict byte 002h ; 0c 02 4014 mov bx, 00095h ; bb 95 00 4015 jmp short 03004h ; eb 05 4016 or AL, strict byte 001h ; 0c 01 4017 mov bx, 00094h ; bb 94 00 4018 mov si, strict word 0003eh ; be 3e 00 4019 mov dx, strict word 00040h ; ba 40 00 4020 mov es, dx ; 8e c2 4021 mov byte [es:si], al ; 26 88 04 4022 mov byte [es:bx], 000h ; 26 c6 07 00 4054 4023 mov ax, strict word 00001h ; b8 01 00 4055 4024 lea sp, [bp-006h] ; 8d 66 fa 4025 pop si ; 5e 4056 4026 pop dx ; 5a 4057 pop cx ; 594058 4027 pop bx ; 5b 4059 4028 pop bp ; 5d 4060 4029 retn ; c3 4061 floppy_media_sense_: ; 0xf30 57 LB 0xf94030 floppy_media_sense_: ; 0xf301e LB 0xe6 4062 4031 push bp ; 55 4063 4032 mov bp, sp ; 89 e5 … … 4067 4036 push si ; 56 4068 4037 push di ; 57 4069 mov di, ax ; 89 c74070 call 0 300ah ; e8 a6ff4038 mov cx, ax ; 89 c1 4039 call 02fddh ; e8 b2 ff 4071 4040 test ax, ax ; 85 c0 4072 jne short 030 6dh ; 75 054073 xor cx, cx ; 31 c94074 jmp near 03 144h ; e9 d7004041 jne short 03034h ; 75 05 4042 xor dx, dx ; 31 d2 4043 jmp near 030f8h ; e9 c4 00 4075 4044 mov ax, strict word 00010h ; b8 10 00 4076 call 016ach ; e8 39 e6 4077 test di, di ; 85 ff 4078 jne short 0307eh ; 75 07 4079 mov cl, al ; 88 c1 4080 shr cl, 004h ; c0 e9 04 4081 jmp short 03083h ; eb 05 4082 mov cl, al ; 88 c1 4083 and cl, 00fh ; 80 e1 0f 4084 cmp cl, 001h ; 80 f9 01 4085 jne short 03091h ; 75 09 4086 xor cl, cl ; 30 c9 4087 mov CH, strict byte 015h ; b5 15 4088 mov si, strict word 00001h ; be 01 00 4089 jmp short 030cfh ; eb 3e 4090 cmp cl, 002h ; 80 f9 02 4091 jne short 0309ch ; 75 06 4092 xor cl, cl ; 30 c9 4093 mov CH, strict byte 035h ; b5 35 4094 jmp short 0308ch ; eb f0 4095 cmp cl, 003h ; 80 f9 03 4096 jne short 030a7h ; 75 06 4097 xor cl, cl ; 30 c9 4098 mov CH, strict byte 017h ; b5 17 4099 jmp short 0308ch ; eb e5 4100 cmp cl, 004h ; 80 f9 04 4101 jne short 030b2h ; 75 06 4102 xor cl, cl ; 30 c9 4103 mov CH, strict byte 017h ; b5 17 4104 jmp short 0308ch ; eb da 4105 cmp cl, 005h ; 80 f9 05 4106 jne short 030bdh ; 75 06 4107 mov CL, strict byte 0cch ; b1 cc 4108 mov CH, strict byte 0d7h ; b5 d7 4109 jmp short 0308ch ; eb cf 4110 cmp cl, 00eh ; 80 f9 0e 4111 je short 030c7h ; 74 05 4112 cmp cl, 00fh ; 80 f9 0f 4113 jne short 030c9h ; 75 02 4114 jmp short 030b7h ; eb ee 4115 xor cl, cl ; 30 c9 4116 xor ch, ch ; 30 ed 4117 xor si, si ; 31 f6 4118 mov al, cl ; 88 c8 4119 xor ah, ah ; 30 e4 4120 mov bx, ax ; 89 c3 4121 mov dx, 0008bh ; ba 8b 00 4045 call 016ach ; e8 72 e6 4046 test cx, cx ; 85 c9 4047 jne short 03045h ; 75 07 4048 mov dl, al ; 88 c2 4049 shr dl, 004h ; c0 ea 04 4050 jmp short 0304ah ; eb 05 4051 mov dl, al ; 88 c2 4052 and dl, 00fh ; 80 e2 0f 4053 cmp dl, 001h ; 80 fa 01 4054 jne short 03058h ; 75 09 4055 xor dl, dl ; 30 d2 4056 mov DH, strict byte 015h ; b6 15 4057 mov bx, strict word 00001h ; bb 01 00 4058 jmp short 03096h ; eb 3e 4059 cmp dl, 002h ; 80 fa 02 4060 jne short 03063h ; 75 06 4061 xor dl, dl ; 30 d2 4062 mov DH, strict byte 035h ; b6 35 4063 jmp short 03053h ; eb f0 4064 cmp dl, 003h ; 80 fa 03 4065 jne short 0306eh ; 75 06 4066 xor dl, dl ; 30 d2 4067 mov DH, strict byte 017h ; b6 17 4068 jmp short 03053h ; eb e5 4069 cmp dl, 004h ; 80 fa 04 4070 jne short 03079h ; 75 06 4071 xor dl, dl ; 30 d2 4072 mov DH, strict byte 017h ; b6 17 4073 jmp short 03053h ; eb da 4074 cmp dl, 005h ; 80 fa 05 4075 jne short 03084h ; 75 06 4076 mov DL, strict byte 0cch ; b2 cc 4077 mov DH, strict byte 0d7h ; b6 d7 4078 jmp short 03053h ; eb cf 4079 cmp dl, 00eh ; 80 fa 0e 4080 je short 0308eh ; 74 05 4081 cmp dl, 00fh ; 80 fa 0f 4082 jne short 03090h ; 75 02 4083 jmp short 0307eh ; eb ee 4084 xor dl, dl ; 30 d2 4085 xor dh, dh ; 30 f6 4086 xor bx, bx ; 31 db 4087 mov si, 0008bh ; be 8b 00 4122 4088 mov ax, strict word 00040h ; b8 40 00 4123 call 0165eh ; e8 80 e5 4124 mov ax, di ; 89 f8 4125 call 02fc6h ; e8 e3 fe 4089 mov es, ax ; 8e c0 4090 mov byte [es:si], dl ; 26 88 14 4091 mov ax, cx ; 89 c8 4092 call 02f8bh ; e8 e5 fe 4126 4093 test ax, ax ; 85 c0 4127 jne short 03 119h ; 75 324128 mov al, cl ; 88 c84094 jne short 030dch ; 75 32 4095 mov al, dl ; 88 d0 4129 4096 and AL, strict byte 0c0h ; 24 c0 4130 4097 cmp AL, strict byte 080h ; 3c 80 4131 je short 03 119h ; 74 2a4132 mov al, cl ; 88 c84098 je short 030dch ; 74 2a 4099 mov al, dl ; 88 d0 4133 4100 and AL, strict byte 0c0h ; 24 c0 4134 4101 cmp AL, strict byte 0c0h ; 3c c0 4135 je short 03 106h ; 74 0f4136 mov ah, cl ; 88 cc4102 je short 030c9h ; 74 0f 4103 mov ah, dl ; 88 d4 4137 4104 and ah, 03fh ; 80 e4 3f 4138 4105 cmp AL, strict byte 040h ; 3c 40 4139 je short 03 112h ; 74 124106 je short 030d5h ; 74 12 4140 4107 test al, al ; 84 c0 4141 je short 0310bh ; 74 07 4142 jmp short 030cfh ; eb c9 4143 and cl, 03fh ; 80 e1 3f 4144 jmp short 030cfh ; eb c4 4145 mov cl, ah ; 88 e1 4146 or cl, 040h ; 80 c9 40 4147 jmp short 030cfh ; eb bd 4148 mov cl, ah ; 88 e1 4149 or cl, 080h ; 80 c9 80 4150 jmp short 030cfh ; eb b6 4151 test di, di ; 85 ff 4152 jne short 03122h ; 75 05 4153 mov di, 00090h ; bf 90 00 4154 jmp short 03125h ; eb 03 4155 mov di, 00091h ; bf 91 00 4156 mov al, cl ; 88 c8 4157 xor ah, ah ; 30 e4 4158 mov bx, ax ; 89 c3 4159 mov dx, 0008bh ; ba 8b 00 4108 je short 030ceh ; 74 07 4109 jmp short 03096h ; eb cd 4110 and dl, 03fh ; 80 e2 3f 4111 jmp short 03096h ; eb c8 4112 mov dl, ah ; 88 e2 4113 or dl, 040h ; 80 ca 40 4114 jmp short 03096h ; eb c1 4115 mov dl, ah ; 88 e2 4116 or dl, 080h ; 80 ca 80 4117 jmp short 03096h ; eb ba 4118 test cx, cx ; 85 c9 4119 jne short 030e5h ; 75 05 4120 mov si, 00090h ; be 90 00 4121 jmp short 030e8h ; eb 03 4122 mov si, 00091h ; be 91 00 4123 mov di, 0008bh ; bf 8b 00 4160 4124 mov ax, strict word 00040h ; b8 40 00 4161 call 0165eh ; e8 2a e5 4162 mov al, ch ; 88 e8 4163 xor ah, ah ; 30 e4 4164 mov bx, ax ; 89 c3 4165 mov dx, di ; 89 fa 4166 mov ax, strict word 00040h ; b8 40 00 4167 call 0165eh ; e8 1c e5 4168 mov cx, si ; 89 f1 4169 mov ax, cx ; 89 c8 4125 mov es, ax ; 8e c0 4126 mov byte [es:di], dl ; 26 88 15 4127 mov byte [es:si], dh ; 26 88 34 4128 mov dx, bx ; 89 da 4129 mov ax, dx ; 89 d0 4170 4130 lea sp, [bp-00ah] ; 8d 66 f6 4171 4131 pop di ; 5f … … 4176 4136 pop bp ; 5d 4177 4137 retn ; c3 4178 floppy_drive_exists_: ; 0xf31 50 LB 0x284138 floppy_drive_exists_: ; 0xf3104 LB 0x4b 4179 4139 push bp ; 55 4180 4140 mov bp, sp ; 89 e5 … … 4182 4142 mov dx, ax ; 89 c2 4183 4143 mov ax, strict word 00010h ; b8 10 00 4184 call 016ach ; e8 50e54144 call 016ach ; e8 9c e5 4185 4145 test dx, dx ; 85 d2 4186 jne short 031 65h ; 75 054146 jne short 03119h ; 75 05 4187 4147 shr al, 004h ; c0 e8 04 4188 jmp short 031 67h ; eb 024148 jmp short 0311bh ; eb 02 4189 4149 and AL, strict byte 00fh ; 24 0f 4190 4150 test al, al ; 84 c0 4191 je short 031 70h ; 74 054151 je short 03124h ; 74 05 4192 4152 mov ax, strict word 00001h ; b8 01 00 4193 jmp short 031 72h ; eb 024153 jmp short 03126h ; eb 02 4194 4154 xor ah, ah ; 30 e4 4195 4155 lea sp, [bp-002h] ; 8d 66 fe … … 4197 4157 pop bp ; 5d 4198 4158 retn ; c3 4199 _int13_diskette_function: ; 0xf3178 LB 0x974 4159 sbb byte [bx], dl ; 18 17 4160 push SS ; 16 4161 adc ax, 00508h ; 15 08 05 4162 add AL, strict byte 003h ; 04 03 4163 add al, byte [bx+di] ; 02 01 4164 add dh, dh ; 00 f6 4165 cmp cl, byte [bx+di+00a31h] ; 3a 89 31 0a 4166 xor ch, byte [bp+di] ; 32 2b 4167 xor ch, byte [bp+di] ; 32 2b 4168 xor ch, byte [bp+di] ; 32 2b 4169 db 032h, 0dfh 4170 ; xor bl, bh ; 32 df 4171 xor ax, 037a9h ; 35 a9 37 4172 xchg di, ax ; 97 4173 cmp cl, bl ; 38 d9 4174 cmp byte [di], cl ; 38 0d 4175 db 039h 4176 db 081h 4177 db 039h 4178 _int13_diskette_function: ; 0xf314f LB 0x9ca 4200 4179 push bp ; 55 4201 4180 mov bp, sp ; 89 e5 4202 push si ; 56 4203 push di ; 57 4204 sub sp, strict byte 00018h ; 83 ec 18 4205 mov bx, word [bp+016h] ; 8b 5e 16 4206 shr bx, 008h ; c1 eb 08 4207 mov byte [bp-00eh], bl ; 88 5e f2 4208 mov si, word [bp+016h] ; 8b 76 16 4209 and si, 000ffh ; 81 e6 ff 00 4210 mov al, byte [bp+00eh] ; 8a 46 0e 4211 mov ah, byte [bp+014h] ; 8a 66 14 4212 mov cl, byte [bp+016h] ; 8a 4e 16 4213 mov dx, word [bp+014h] ; 8b 56 14 4214 shr dx, 008h ; c1 ea 08 4215 mov word [bp-014h], dx ; 89 56 ec 4216 cmp bl, 008h ; 80 fb 08 4217 jc short 031d5h ; 72 2e 4218 mov dx, word [bp+01ch] ; 8b 56 1c 4219 or dl, 001h ; 80 ca 01 4220 cmp bl, 008h ; 80 fb 08 4221 jbe short 0320bh ; 76 59 4222 cmp bl, 016h ; 80 fb 16 4223 jc short 031cdh ; 72 16 4181 sub sp, strict byte 0000ch ; 83 ec 0c 4182 mov ax, word [bp+016h] ; 8b 46 16 4183 shr ax, 008h ; c1 e8 08 4184 cmp ax, strict word 00018h ; 3d 18 00 4185 jnbe short 031bch ; 77 5c 4186 push CS ; 0e 4187 pop ES ; 07 4188 mov cx, strict word 0000ch ; b9 0c 00 4189 mov di, 0312ch ; bf 2c 31 4190 repne scasb ; f2 ae 4191 sal cx, 1 ; d1 e1 4192 mov di, cx ; 89 cf 4193 mov di, word [cs:di+03137h] ; 2e 8b bd 37 31 4194 mov dx, word [bp+016h] ; 8b 56 16 4195 xor dh, dh ; 30 f6 4196 mov ah, byte [bp+00eh] ; 8a 66 0e 4197 mov cx, word [bp+01ch] ; 8b 4e 1c 4198 or cl, 001h ; 80 c9 01 4199 mov si, dx ; 89 d6 4224 4200 or si, 00100h ; 81 ce 00 01 4225 cmp bl, 016h ; 80 fb 16 4226 jbe short 0320eh ; 76 4e 4227 cmp bl, 018h ; 80 fb 18 4228 je short 03211h ; 74 4c 4229 cmp bl, 017h ; 80 fb 17 4230 je short 03227h ; 74 5d 4231 jmp near 03ac9h ; e9 fc 08 4232 cmp bl, 015h ; 80 fb 15 4233 je short 0322ah ; 74 58 4234 jmp near 03ac9h ; e9 f4 08 4201 jmp di ; ff e7 4202 mov bl, byte [bp+00eh] ; 8a 5e 0e 4235 4203 cmp bl, 001h ; 80 fb 01 4236 jc short 031e9h ; 72 0f 4237 jbe short 0322dh ; 76 51 4238 cmp bl, 005h ; 80 fb 05 4239 je short 03248h ; 74 67 4240 cmp bl, 004h ; 80 fb 04 4241 jbe short 0324bh ; 76 65 4242 jmp near 03ac9h ; e9 e0 08 4243 test bl, bl ; 84 db 4244 jne short 0324dh ; 75 60 4245 mov al, byte [bp+00eh] ; 8a 46 0e 4246 mov byte [bp-006h], al ; 88 46 fa 4247 cmp AL, strict byte 001h ; 3c 01 4248 jbe short 03214h ; 76 1d 4204 jbe short 031abh ; 76 1a 4249 4205 mov ax, word [bp+016h] ; 8b 46 16 4250 4206 xor ah, ah ; 30 e4 4251 4207 or ah, 001h ; 80 cc 01 4252 4208 mov word [bp+016h], ax ; 89 46 16 4253 mov ax, strict word 00001h ; b8 01 00 4254 call 02e09h ; e8 01 fc 4255 jmp near 035d0h ; e9 c5 03 4256 jmp near 037abh ; e9 9d 05 4257 jmp near 038dfh ; e9 ce 06 4258 jmp near 03978h ; e9 64 07 4209 mov bx, strict word 00041h ; bb 41 00 4210 mov ax, strict word 00040h ; b8 40 00 4211 mov es, ax ; 8e c0 4212 mov byte [es:bx], 001h ; 26 c6 07 01 4213 jmp near 039e3h ; e9 38 08 4259 4214 mov ax, strict word 00010h ; b8 10 00 4260 call 016ach ; e8 92 e4 4261 cmp byte [bp-006h], 000h ; 80 7e fa 00 4262 jne short 0322fh ; 75 0f 4263 mov cl, al ; 88 c1 4264 shr cl, 004h ; c0 e9 04 4265 jmp short 03234h ; eb 0d 4266 jmp near 03903h ; e9 d9 06 4267 jmp near 0389bh ; e9 6e 06 4268 jmp short 03276h ; eb 47 4269 mov cl, al ; 88 c1 4270 and cl, 00fh ; 80 e1 0f 4271 test cl, cl ; 84 c9 4272 jne short 03250h ; 75 18 4215 call 016ach ; e8 fb e4 4216 test bl, bl ; 84 db 4217 jne short 031bfh ; 75 0a 4218 mov dl, al ; 88 c2 4219 shr dl, 004h ; c0 ea 04 4220 jmp short 031c4h ; eb 08 4221 jmp near 03af6h ; e9 37 09 4222 mov dl, al ; 88 c2 4223 and dl, 00fh ; 80 e2 0f 4224 test dl, dl ; 84 d2 4225 jne short 031e2h ; 75 1a 4273 4226 mov ax, word [bp+016h] ; 8b 46 16 4274 4227 xor ah, ah ; 30 e4 4275 4228 or ah, 080h ; 80 cc 80 4276 4229 mov word [bp+016h], ax ; 89 46 16 4277 mov ax, 00080h ; b8 80 00 4278 jmp short 03205h ; eb bd 4279 jmp near 035fah ; e9 af 03 4280 jmp short 03295h ; eb 48 4281 jmp near 03ac9h ; e9 79 08 4282 xor bx, bx ; 31 db 4283 mov dx, strict word 0003eh ; ba 3e 00 4230 mov bx, strict word 00041h ; bb 41 00 4284 4231 mov ax, strict word 00040h ; b8 40 00 4285 call 0165eh ; e8 03 e4 4232 mov es, ax ; 8e c0 4233 mov byte [es:bx], 080h ; 26 c6 07 80 4234 jmp near 039e3h ; e9 01 08 4235 mov si, strict word 0003eh ; be 3e 00 4236 mov ax, strict word 00040h ; b8 40 00 4237 mov es, ax ; 8e c0 4238 mov byte [es:si], 000h ; 26 c6 04 00 4286 4239 xor al, al ; 30 c0 4287 4240 mov byte [bp+017h], al ; 88 46 17 4288 xor ah, ah ; 30 e44289 call 02e09h ; e8 a4 fb4241 mov si, strict word 00041h ; be 41 00 4242 mov byte [es:si], al ; 26 88 04 4290 4243 and byte [bp+01ch], 0feh ; 80 66 1c fe 4291 mov al, b yte [bp-006h] ; 8a 46 fa4244 mov al, bl ; 88 d8 4292 4245 xor ah, ah ; 30 e4 4293 4246 xor dx, dx ; 31 d2 4294 call 02e22h ; e8 af fb 4295 jmp near 035f3h ; e9 7d 03 4247 call 02e09h ; e8 03 fc 4248 mov sp, bp ; 89 ec 4249 pop bp ; 5d 4250 retn ; c3 4296 4251 and byte [bp+01ch], 0feh ; 80 66 1c fe 4297 mov dx, 00441h ; ba41 044252 mov bx, 00441h ; bb 41 04 4298 4253 xor ax, ax ; 31 c0 4299 call 01650h ; e8 ce e3 4300 mov dl, al ; 88 c2 4301 xor dh, dh ; 30 f6 4302 sal dx, 008h ; c1 e2 08 4303 or si, dx ; 09 d6 4304 mov word [bp+016h], si ; 89 76 16 4305 test al, al ; 84 c0 4306 je short 032e8h ; 74 56 4307 jmp near 035d0h ; e9 3b 03 4308 mov ch, cl ; 88 cd 4309 mov dl, byte [bp-014h] ; 8a 56 ec 4310 mov byte [bp-008h], dl ; 88 56 f8 4311 mov byte [bp-00ch], ah ; 88 66 f4 4312 mov dx, word [bp+012h] ; 8b 56 12 4313 shr dx, 008h ; c1 ea 08 4314 mov byte [bp-00ah], dl ; 88 56 f6 4254 mov es, ax ; 8e c0 4255 mov bl, byte [es:bx] ; 26 8a 1f 4256 mov al, bl ; 88 d8 4257 xor ah, ah ; 30 e4 4258 sal ax, 008h ; c1 e0 08 4259 or dx, ax ; 09 c2 4260 mov word [bp+016h], dx ; 89 56 16 4261 test bl, bl ; 84 db 4262 je short 03206h ; 74 de 4263 jmp near 039e3h ; e9 b8 07 4264 mov bh, byte [bp+016h] ; 8a 7e 16 4265 mov ax, word [bp+014h] ; 8b 46 14 4266 shr ax, 008h ; c1 e8 08 4315 4267 mov byte [bp-006h], al ; 88 46 fa 4268 mov al, byte [bp+014h] ; 8a 46 14 4269 mov byte [bp-004h], al ; 88 46 fc 4270 mov ax, word [bp+012h] ; 8b 46 12 4271 shr ax, 008h ; c1 e8 08 4272 mov byte [bp-002h], al ; 88 46 fe 4273 mov bl, byte [bp+00eh] ; 8a 5e 0e 4274 cmp bl, 001h ; 80 fb 01 4275 jnbe short 0325bh ; 77 0d 4316 4276 cmp AL, strict byte 001h ; 3c 01 4317 jnbe short 032beh ; 77 0e 4318 cmp dl, 001h ; 80 fa 01 4319 jnbe short 032beh ; 77 09 4320 test cl, cl ; 84 c9 4321 je short 032beh ; 74 05 4322 cmp cl, 048h ; 80 f9 48 4323 jbe short 032ebh ; 76 2d 4277 jnbe short 0325bh ; 77 09 4278 test bh, bh ; 84 ff 4279 je short 0325bh ; 74 05 4280 cmp bh, 048h ; 80 ff 48 4281 jbe short 0328eh ; 76 33 4324 4282 mov bx, 00da0h ; bb a0 0d 4325 4283 mov cx, ds ; 8c d9 4326 4284 mov ax, strict word 00004h ; b8 04 00 4327 call 01923h ; e8 5ae64285 call 01923h ; e8 bd e6 4328 4286 push 00275h ; 68 75 02 4329 4287 push 0028dh ; 68 8d 02 4330 4288 push strict byte 00004h ; 6a 04 4331 call 01966h ; e8 92e64289 call 01966h ; e8 f5 e6 4332 4290 add sp, strict byte 00006h ; 83 c4 06 4333 4291 mov ax, word [bp+016h] ; 8b 46 16 … … 4335 4293 or ah, 001h ; 80 cc 01 4336 4294 mov word [bp+016h], ax ; 89 46 16 4337 mov ax, strict word 00001h ; b8 01 00 4338 jmp near 03373h ; e9 8b 00 4339 jmp near 035f3h ; e9 08 03 4340 mov al, byte [bp-006h] ; 8a 46 fa 4341 xor ah, ah ; 30 e4 4342 call 03150h ; e8 5d fe 4295 mov bx, strict word 00041h ; bb 41 00 4296 mov ax, strict word 00040h ; b8 40 00 4297 mov es, ax ; 8e c0 4298 mov byte [es:bx], 001h ; 26 c6 07 01 4299 jmp near 03338h ; e9 aa 00 4300 mov al, bl ; 88 d8 4301 xor ah, ah ; 30 e4 4302 call 03104h ; e8 6f fe 4343 4303 test ax, ax ; 85 c0 4344 jne short 03 307h ; 75 104304 jne short 032b3h ; 75 1a 4345 4305 mov ax, word [bp+016h] ; 8b 46 16 4346 4306 xor ah, ah ; 30 e4 4347 4307 or ah, 080h ; 80 cc 80 4348 4308 mov word [bp+016h], ax ; 89 46 16 4349 mov ax, 00080h ; b8 80 00 4350 jmp short 03373h ; eb 6c 4351 mov bl, byte [bp-006h] ; 8a 5e fa 4352 xor bh, bh ; 30 ff 4353 mov ax, bx ; 89 d8 4354 call 02f83h ; e8 72 fc 4309 mov bx, strict word 00041h ; bb 41 00 4310 mov ax, strict word 00040h ; b8 40 00 4311 mov es, ax ; 8e c0 4312 mov byte [es:bx], 080h ; 26 c6 07 80 4313 jmp near 03338h ; e9 85 00 4314 mov cl, bl ; 88 d9 4315 xor ch, ch ; 30 ed 4316 mov ax, cx ; 89 c8 4317 call 02f42h ; e8 86 fc 4355 4318 test ax, ax ; 85 c0 4356 jne short 03 32fh ; 75 1a4357 mov ax, bx ; 89 d84358 call 030 57h ; e8 3dfd4319 jne short 032e6h ; 75 26 4320 mov ax, cx ; 89 c8 4321 call 0301eh ; e8 59 fd 4359 4322 test ax, ax ; 85 c0 4360 jne short 03 32fh ; 75 114323 jne short 032e6h ; 75 1d 4361 4324 mov ax, word [bp+016h] ; 8b 46 16 4362 4325 xor ah, ah ; 30 e4 4363 4326 or ah, 00ch ; 80 cc 0c 4364 4327 mov word [bp+016h], ax ; 89 46 16 4365 mov ax, strict word 0000ch ; b8 0c 00 4366 jmp near 0341fh ; e9 f0 00 4367 cmp byte [bp-00eh], 002h ; 80 7e f2 02 4368 jne short 0337dh ; 75 48 4328 mov bx, strict word 00041h ; bb 41 00 4329 mov ax, strict word 00040h ; b8 40 00 4330 mov es, ax ; 8e c0 4331 mov byte [es:bx], 00ch ; 26 c6 07 0c 4332 mov byte [bp+016h], ch ; 88 6e 16 4333 jmp near 039e3h ; e9 fd 06 4334 mov ax, word [bp+016h] ; 8b 46 16 4335 shr ax, 008h ; c1 e8 08 4336 cmp ax, strict word 00002h ; 3d 02 00 4337 jne short 0333fh ; 75 4e 4338 mov cx, word [bp+006h] ; 8b 4e 06 4339 shr cx, 00ch ; c1 e9 0c 4340 mov ah, cl ; 88 cc 4369 4341 mov dx, word [bp+006h] ; 8b 56 06 4370 shr dx, 00ch ; c1 ea 0c 4371 mov cl, dl ; 88 d1 4372 mov ax, word [bp+006h] ; 8b 46 06 4373 sal ax, 004h ; c1 e0 04 4374 mov bx, word [bp+010h] ; 8b 5e 10 4375 add bx, ax ; 01 c3 4376 mov word [bp-012h], bx ; 89 5e ee 4377 cmp ax, bx ; 39 d8 4378 jbe short 03351h ; 76 02 4379 db 0feh, 0c1h 4380 ; inc cl ; fe c1 4381 mov al, ch ; 88 e8 4382 xor ah, ah ; 30 e4 4383 mov bx, ax ; 89 c3 4384 sal bx, 009h ; c1 e3 09 4385 dec bx ; 4b 4386 mov ax, word [bp-012h] ; 8b 46 ee 4387 add ax, bx ; 01 d8 4388 cmp ax, word [bp-012h] ; 3b 46 ee 4389 jnc short 03380h ; 73 1b 4342 sal dx, 004h ; c1 e2 04 4343 mov si, word [bp+010h] ; 8b 76 10 4344 add si, dx ; 01 d6 4345 mov word [bp-00ah], si ; 89 76 f6 4346 cmp dx, si ; 39 f2 4347 jbe short 0330dh ; 76 02 4348 db 0feh, 0c4h 4349 ; inc ah ; fe c4 4350 mov dl, bh ; 88 fa 4351 xor dh, dh ; 30 f6 4352 mov cx, dx ; 89 d1 4353 sal cx, 009h ; c1 e1 09 4354 dec cx ; 49 4355 mov dx, word [bp-00ah] ; 8b 56 f6 4356 add dx, cx ; 01 ca 4357 cmp dx, word [bp-00ah] ; 3b 56 f6 4358 jnc short 03342h ; 73 21 4390 4359 mov ax, word [bp+016h] ; 8b 46 16 4391 4360 xor ah, ah ; 30 e4 4392 4361 or ah, 009h ; 80 cc 09 4393 4362 mov word [bp+016h], ax ; 89 46 16 4394 mov ax, strict word 00009h ; b8 09 00 4395 call 02e09h ; e8 93 fa 4363 mov bx, strict word 00041h ; bb 41 00 4364 mov ax, strict word 00040h ; b8 40 00 4365 mov es, ax ; 8e c0 4366 mov byte [es:bx], 009h ; 26 c6 07 09 4396 4367 mov byte [bp+016h], 000h ; c6 46 16 00 4397 jmp near 03 5d0h ; e9 53 024398 jmp near 034 b5h ; e9 35014368 jmp near 039e3h ; e9 a4 06 4369 jmp near 0348fh ; e9 4d 01 4399 4370 mov AL, strict byte 006h ; b0 06 4400 4371 mov dx, strict word 0000ah ; ba 0a 00 … … 4403 4374 mov dx, strict word 0000ch ; ba 0c 00 4404 4375 out DX, AL ; ee 4405 mov al, byte [bp-0 12h] ; 8a 46 ee4376 mov al, byte [bp-00ah] ; 8a 46 f6 4406 4377 mov dx, strict word 00004h ; ba 04 00 4407 4378 out DX, AL ; ee 4408 mov ax, word [bp-012h] ; 8b 46 ee 4409 shr ax, 008h ; c1 e8 08 4379 mov dx, word [bp-00ah] ; 8b 56 f6 4380 shr dx, 008h ; c1 ea 08 4381 mov al, dl ; 88 d0 4382 mov dx, strict word 00004h ; ba 04 00 4410 4383 out DX, AL ; ee 4411 4384 xor al, al ; 30 c0 4412 4385 mov dx, strict word 0000ch ; ba 0c 00 4413 4386 out DX, AL ; ee 4414 mov al, bl ; 88 d84387 mov al, cl ; 88 c8 4415 4388 mov dx, strict word 00005h ; ba 05 00 4416 4389 out DX, AL ; ee 4417 mov ax, bx ; 89 d84418 shr ax, 008h ; c1 e8 084390 shr cx, 008h ; c1 e9 08 4391 mov al, cl ; 88 c8 4419 4392 out DX, AL ; ee 4420 4393 mov AL, strict byte 046h ; b0 46 4421 4394 mov dx, strict word 0000bh ; ba 0b 00 4422 4395 out DX, AL ; ee 4423 mov al, cl ; 88 c84396 mov al, ah ; 88 e0 4424 4397 mov dx, 00081h ; ba 81 00 4425 4398 out DX, AL ; ee … … 4427 4400 mov dx, strict word 0000ah ; ba 0a 00 4428 4401 out DX, AL ; ee 4429 mov bl, byte [bp-006h] ; 8a 5e fa4430 xor bh, bh ; 30 ff4431 mov ax, bx ; 89 d84432 call 02 f00h ; e8 38fb4402 mov cl, bl ; 88 d9 4403 xor ch, ch ; 30 ed 4404 mov ax, cx ; 89 c8 4405 call 02eceh ; e8 40 fb 4433 4406 mov AL, strict byte 0e6h ; b0 e6 4434 4407 mov dx, 003f5h ; ba f5 03 4435 4408 out DX, AL ; ee 4436 mov al, byte [bp-00 ah] ; 8a 46 f64409 mov al, byte [bp-002h] ; 8a 46 fe 4437 4410 xor ah, ah ; 30 e4 4438 4411 mov dx, ax ; 89 c2 … … 4442 4415 mov dx, 003f5h ; ba f5 03 4443 4416 out DX, AL ; ee 4444 mov al, byte [bp-00 8h] ; 8a 46 f84445 out DX, AL ; ee 4446 mov al, byte [bp-00 ah] ; 8a 46 f64447 out DX, AL ; ee 4448 mov al, byte [bp-00 ch] ; 8a 46 f44417 mov al, byte [bp-006h] ; 8a 46 fa 4418 out DX, AL ; ee 4419 mov al, byte [bp-002h] ; 8a 46 fe 4420 out DX, AL ; ee 4421 mov al, byte [bp-004h] ; 8a 46 fc 4449 4422 out DX, AL ; ee 4450 4423 mov AL, strict byte 002h ; b0 02 4451 4424 out DX, AL ; ee 4452 mov al, byte [bp-00 ch] ; 8a 46 f44453 xor ah, ah ; 30 e4 4454 mov dl, ch ; 88 ea4425 mov al, byte [bp-004h] ; 8a 46 fc 4426 xor ah, ah ; 30 e4 4427 mov dl, bh ; 88 fa 4455 4428 xor dh, dh ; 30 f6 4456 4429 add ax, dx ; 01 d0 … … 4462 4435 mov AL, strict byte 0ffh ; b0 ff 4463 4436 out DX, AL ; ee 4464 call 02e 73h ; e8 6bfa4437 call 02e57h ; e8 89 fa 4465 4438 test al, al ; 84 c0 4466 jne short 03 428h ; 75 1c4467 mov ax, bx ; 89 d84468 call 02e bah ; e8 a9fa4439 jne short 033f1h ; 75 1f 4440 mov ax, cx ; 89 c8 4441 call 02e8fh ; e8 b8 fa 4469 4442 mov ax, word [bp+016h] ; 8b 46 16 4470 4443 xor ah, ah ; 30 e4 4471 4444 or ah, 080h ; 80 cc 80 4472 4445 mov word [bp+016h], ax ; 89 46 16 4473 mov ax, 00080h ; b8 80 00 4474 call 02e09h ; e8 e7 f9 4475 mov byte [bp+016h], bh ; 88 7e 16 4476 jmp near 035d0h ; e9 a8 01 4446 mov bx, strict word 00041h ; bb 41 00 4447 mov ax, strict word 00040h ; b8 40 00 4448 mov es, ax ; 8e c0 4449 mov byte [es:bx], 080h ; 26 c6 07 80 4450 jmp near 032e0h ; e9 ef fe 4477 4451 mov dx, 003f4h ; ba f4 03 4478 4452 in AL, DX ; ec … … 4481 4455 and AL, strict byte 0c0h ; 24 c0 4482 4456 cmp AL, strict byte 0c0h ; 3c c0 4483 je short 034 42h ; 74 0e4457 je short 0340bh ; 74 0e 4484 4458 push 00275h ; 68 75 02 4485 4459 push 002a8h ; 68 a8 02 4486 4460 push strict byte 00007h ; 6a 07 4487 call 01966h ; e8 27e54461 call 01966h ; e8 5e e5 4488 4462 add sp, strict byte 00006h ; 83 c4 06 4489 xor si, si ; 31 f64490 jmp short 034 4bh ; eb 054491 cmp si, strict byte 00007h ; 83 fe074492 jnl short 034 64h ; 7d 194463 xor cx, cx ; 31 c9 4464 jmp short 03414h ; eb 05 4465 cmp cx, strict byte 00007h ; 83 f9 07 4466 jnl short 0342ah ; 7d 16 4493 4467 mov dx, 003f5h ; ba f5 03 4494 4468 in AL, DX ; ec 4495 4469 db 02ah, 0e4h 4496 4470 ; sub ah, ah ; 2a e4 4497 mov byte [bp+si-01ch], al ; 88 42 e4 4498 mov bl, al ; 88 c3 4499 xor bh, bh ; 30 ff 4500 lea dx, [si+042h] ; 8d 54 42 4471 mov si, cx ; 89 ce 4472 add si, strict byte 00042h ; 83 c6 42 4473 mov dx, strict word 00040h ; ba 40 00 4474 mov es, dx ; 8e c2 4475 mov byte [es:si], al ; 26 88 04 4476 inc cx ; 41 4477 jmp short 0340fh ; eb e5 4478 mov si, strict word 00042h ; be 42 00 4501 4479 mov ax, strict word 00040h ; b8 40 00 4502 call 0165eh ; e8 fd e1 4503 inc si ; 46 4504 jmp short 03446h ; eb e2 4505 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4506 je short 03483h ; 74 19 4507 mov al, byte [bp-006h] ; 8a 46 fa 4508 xor ah, ah ; 30 e4 4509 call 02ebah ; e8 48 fa 4480 mov es, ax ; 8e c0 4481 mov al, byte [es:si] ; 26 8a 04 4482 test AL, strict byte 0c0h ; a8 c0 4483 je short 0345ah ; 74 21 4484 mov al, bl ; 88 d8 4485 xor ah, ah ; 30 e4 4486 call 02e8fh ; e8 4f fa 4510 4487 mov ax, word [bp+016h] ; 8b 46 16 4511 4488 xor ah, ah ; 30 e4 4512 4489 or ah, 020h ; 80 cc 20 4513 4490 mov word [bp+016h], ax ; 89 46 16 4514 mov ax, strict word 00020h ; b8 20 00 4515 jmp near 03373h ; e9 f0 fe 4516 mov al, ch ; 88 e8 4491 mov bx, strict word 00041h ; bb 41 00 4492 mov ax, strict word 00040h ; b8 40 00 4493 mov es, ax ; 8e c0 4494 mov byte [es:bx], 020h ; 26 c6 07 20 4495 jmp near 03338h ; e9 de fe 4496 mov al, bh ; 88 f8 4517 4497 xor ah, ah ; 30 e4 4518 4498 sal ax, 009h ; c1 e0 09 … … 4524 4504 mov dx, word [bp+006h] ; 8b 56 06 4525 4505 mov di, si ; 89 f7 4506 mov cx, ax ; 89 c1 4526 4507 mov es, dx ; 8e c2 4527 mov cx, ax ; 89 c14528 4508 push DS ; 1e 4529 4509 mov ds, dx ; 8e da 4530 4510 rep movsw ; f3 a5 4531 4511 pop DS ; 1f 4532 mov dl, byte [bp-00 8h] ; 8a 56 f84512 mov dl, byte [bp-006h] ; 8a 56 fa 4533 4513 xor dh, dh ; 30 f6 4534 mov al, b yte [bp-006h] ; 8a 46 fa4535 xor ah, ah ; 30 e4 4536 call 02e 22h ; e8 74f94514 mov al, bl ; 88 d8 4515 xor ah, ah ; 30 e4 4516 call 02e09h ; e8 85 f9 4537 4517 mov byte [bp+017h], 000h ; c6 46 17 00 4538 jmp near 03971h ; e9 bc 04 4539 cmp byte [bp-00eh], 003h ; 80 7e f2 03 4540 je short 034beh ; 74 03 4541 jmp near 035deh ; e9 20 01 4518 and byte [bp+01ch], 0feh ; 80 66 1c fe 4519 jmp near 03206h ; e9 77 fd 4520 mov ax, word [bp+016h] ; 8b 46 16 4521 shr ax, 008h ; c1 e8 08 4522 cmp ax, strict word 00003h ; 3d 03 00 4523 je short 0349dh ; 74 03 4524 jmp near 035c8h ; e9 2b 01 4525 mov cx, word [bp+006h] ; 8b 4e 06 4526 shr cx, 00ch ; c1 e9 0c 4527 mov ah, cl ; 88 cc 4542 4528 mov dx, word [bp+006h] ; 8b 56 06 4543 shr dx, 00ch ; c1 ea 0c 4544 mov cl, dl ; 88 d1 4545 mov ax, word [bp+006h] ; 8b 46 06 4546 sal ax, 004h ; c1 e0 04 4547 mov bx, word [bp+010h] ; 8b 5e 10 4548 add bx, ax ; 01 c3 4549 mov word [bp-012h], bx ; 89 5e ee 4550 cmp ax, bx ; 39 d8 4551 jbe short 034dah ; 76 02 4552 db 0feh, 0c1h 4553 ; inc cl ; fe c1 4554 mov al, ch ; 88 e8 4555 xor ah, ah ; 30 e4 4556 mov bx, ax ; 89 c3 4557 sal bx, 009h ; c1 e3 09 4558 dec bx ; 4b 4559 mov ax, word [bp-012h] ; 8b 46 ee 4560 add ax, bx ; 01 d8 4561 cmp ax, word [bp-012h] ; 3b 46 ee 4562 jnc short 034f1h ; 73 03 4563 jmp near 03365h ; e9 74 fe 4529 sal dx, 004h ; c1 e2 04 4530 mov si, word [bp+010h] ; 8b 76 10 4531 add si, dx ; 01 d6 4532 mov word [bp-00ah], si ; 89 76 f6 4533 cmp dx, si ; 39 f2 4534 jbe short 034b9h ; 76 02 4535 db 0feh, 0c4h 4536 ; inc ah ; fe c4 4537 mov dl, bh ; 88 fa 4538 xor dh, dh ; 30 f6 4539 mov cx, dx ; 89 d1 4540 sal cx, 009h ; c1 e1 09 4541 dec cx ; 49 4542 mov dx, word [bp-00ah] ; 8b 56 f6 4543 add dx, cx ; 01 ca 4544 cmp dx, word [bp-00ah] ; 3b 56 f6 4545 jnc short 034d0h ; 73 03 4546 jmp near 03321h ; e9 51 fe 4564 4547 mov AL, strict byte 006h ; b0 06 4565 4548 mov dx, strict word 0000ah ; ba 0a 00 … … 4568 4551 mov dx, strict word 0000ch ; ba 0c 00 4569 4552 out DX, AL ; ee 4570 mov al, byte [bp-0 12h] ; 8a 46 ee4553 mov al, byte [bp-00ah] ; 8a 46 f6 4571 4554 mov dx, strict word 00004h ; ba 04 00 4572 4555 out DX, AL ; ee 4573 mov ax, word [bp-012h] ; 8b 46 ee 4574 shr ax, 008h ; c1 e8 08 4556 mov dx, word [bp-00ah] ; 8b 56 f6 4557 shr dx, 008h ; c1 ea 08 4558 mov al, dl ; 88 d0 4559 mov dx, strict word 00004h ; ba 04 00 4575 4560 out DX, AL ; ee 4576 4561 xor al, al ; 30 c0 4577 4562 mov dx, strict word 0000ch ; ba 0c 00 4578 4563 out DX, AL ; ee 4579 mov al, bl ; 88 d84564 mov al, cl ; 88 c8 4580 4565 mov dx, strict word 00005h ; ba 05 00 4581 4566 out DX, AL ; ee 4582 mov ax, bx ; 89 d84583 shr ax, 008h ; c1 e8 084567 shr cx, 008h ; c1 e9 08 4568 mov al, cl ; 88 c8 4584 4569 out DX, AL ; ee 4585 4570 mov AL, strict byte 04ah ; b0 4a 4586 4571 mov dx, strict word 0000bh ; ba 0b 00 4587 4572 out DX, AL ; ee 4588 mov al, cl ; 88 c84573 mov al, ah ; 88 e0 4589 4574 mov dx, 00081h ; ba 81 00 4590 4575 out DX, AL ; ee … … 4592 4577 mov dx, strict word 0000ah ; ba 0a 00 4593 4578 out DX, AL ; ee 4594 mov bl, byte [bp-006h] ; 8a 5e fa4595 xor bh, bh ; 30 ff4596 mov ax, bx ; 89 d84597 call 02 f00h ; e8 c7f94579 mov cl, bl ; 88 d9 4580 xor ch, ch ; 30 ed 4581 mov ax, cx ; 89 c8 4582 call 02eceh ; e8 b2 f9 4598 4583 mov AL, strict byte 0c5h ; b0 c5 4599 4584 mov dx, 003f5h ; ba f5 03 4600 4585 out DX, AL ; ee 4601 mov al, byte [bp-00 ah] ; 8a 46 f64586 mov al, byte [bp-002h] ; 8a 46 fe 4602 4587 xor ah, ah ; 30 e4 4603 4588 mov dx, ax ; 89 c2 … … 4607 4592 mov dx, 003f5h ; ba f5 03 4608 4593 out DX, AL ; ee 4609 mov al, byte [bp-00 8h] ; 8a 46 f84610 out DX, AL ; ee 4611 mov al, byte [bp-00 ah] ; 8a 46 f64612 out DX, AL ; ee 4613 mov al, byte [bp-00 ch] ; 8a 46 f44594 mov al, byte [bp-006h] ; 8a 46 fa 4595 out DX, AL ; ee 4596 mov al, byte [bp-002h] ; 8a 46 fe 4597 out DX, AL ; ee 4598 mov al, byte [bp-004h] ; 8a 46 fc 4614 4599 out DX, AL ; ee 4615 4600 mov AL, strict byte 002h ; b0 02 4616 4601 out DX, AL ; ee 4617 mov al, byte [bp-00ch] ; 8a 46 f4 4618 xor ah, ah ; 30 e4 4619 mov dl, ch ; 88 ea 4602 mov dl, byte [bp-004h] ; 8a 56 fc 4620 4603 xor dh, dh ; 30 f6 4604 mov al, bh ; 88 f8 4605 xor ah, ah ; 30 e4 4621 4606 add ax, dx ; 01 d0 4622 4607 dec ax ; 48 … … 4627 4612 mov AL, strict byte 0ffh ; b0 ff 4628 4613 out DX, AL ; ee 4629 call 02e 73h ; e8 faf84614 call 02e57h ; e8 fb f8 4630 4615 test al, al ; 84 c0 4631 jne short 035 80h ; 75 034632 jmp near 03 40ch ; e9 8cfe4616 jne short 03563h ; 75 03 4617 jmp near 033d2h ; e9 6f fe 4633 4618 mov dx, 003f4h ; ba f4 03 4634 4619 in AL, DX ; ec … … 4637 4622 and AL, strict byte 0c0h ; 24 c0 4638 4623 cmp AL, strict byte 0c0h ; 3c c0 4639 je short 035 9ah ; 74 0e4624 je short 0357dh ; 74 0e 4640 4625 push 00275h ; 68 75 02 4641 4626 push 002a8h ; 68 a8 02 4642 4627 push strict byte 00007h ; 6a 07 4643 call 01966h ; e8 cfe34628 call 01966h ; e8 ec e3 4644 4629 add sp, strict byte 00006h ; 83 c4 06 4645 xor si, si ; 31 f64646 jmp short 035 a3h ; eb 054647 cmp si, strict byte 00007h ; 83 fe074648 jnl short 035 bch ; 7d 194630 xor cx, cx ; 31 c9 4631 jmp short 03586h ; eb 05 4632 cmp cx, strict byte 00007h ; 83 f9 07 4633 jnl short 0359ch ; 7d 16 4649 4634 mov dx, 003f5h ; ba f5 03 4650 4635 in AL, DX ; ec 4651 4636 db 02ah, 0e4h 4652 4637 ; sub ah, ah ; 2a e4 4653 mov byte [bp+si-01ch], al ; 88 42 e4 4654 mov bl, al ; 88 c3 4655 xor bh, bh ; 30 ff 4656 lea dx, [si+042h] ; 8d 54 42 4638 mov si, cx ; 89 ce 4639 add si, strict byte 00042h ; 83 c6 42 4640 mov dx, strict word 00040h ; ba 40 00 4641 mov es, dx ; 8e c2 4642 mov byte [es:si], al ; 26 88 04 4643 inc cx ; 41 4644 jmp short 03581h ; eb e5 4645 mov si, strict word 00042h ; be 42 00 4657 4646 mov ax, strict word 00040h ; b8 40 00 4658 call 0165eh ; e8 a5 e0 4659 inc si ; 46 4660 jmp short 0359eh ; eb e2 4661 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4662 jne short 035c5h ; 75 03 4663 jmp near 034a1h ; e9 dc fe 4664 test byte [bp-01bh], 002h ; f6 46 e5 02 4665 je short 035d7h ; 74 0c 4647 mov es, ax ; 8e c0 4648 mov al, byte [es:si] ; 26 8a 04 4649 test AL, strict byte 0c0h ; a8 c0 4650 jne short 035aeh ; 75 03 4651 jmp near 03478h ; e9 ca fe 4652 mov bx, strict word 00043h ; bb 43 00 4653 mov al, byte [es:bx] ; 26 8a 07 4654 test AL, strict byte 002h ; a8 02 4655 je short 035c0h ; 74 08 4666 4656 mov word [bp+016h], 00300h ; c7 46 16 00 03 4667 or byte [bp+01ch], 001h ; 80 4e 1c 01 4668 jmp near 035f3h ; e9 1c 00 4657 jmp near 039e3h ; e9 23 04 4669 4658 mov word [bp+016h], 00100h ; c7 46 16 00 01 4670 jmp short 035d0h ; eb f24671 mov dl, byte [bp-00 8h] ; 8a 56 f84659 jmp near 039e3h ; e9 1b 04 4660 mov dl, byte [bp-006h] ; 8a 56 fa 4672 4661 xor dh, dh ; 30 f6 4673 mov al, b yte [bp-006h] ; 8a 46 fa4674 xor ah, ah ; 30 e4 4675 call 02e 22h ; e8 37f84662 mov al, bl ; 88 d8 4663 xor ah, ah ; 30 e4 4664 call 02e09h ; e8 35 f8 4676 4665 and byte [bp+01ch], 0feh ; 80 66 1c fe 4677 4666 mov byte [bp+017h], 000h ; c6 46 17 00 4678 lea sp, [bp-004h] ; 8d 66 fc 4679 pop di ; 5f 4680 pop si ; 5e 4681 pop bp ; 5d 4682 retn ; c3 4683 mov ch, byte [bp+016h] ; 8a 6e 16 4684 mov ax, word [bp+014h] ; 8b 46 14 4667 jmp near 03206h ; e9 27 fc 4668 mov bh, byte [bp+016h] ; 8a 7e 16 4669 mov dx, word [bp+014h] ; 8b 56 14 4670 shr dx, 008h ; c1 ea 08 4671 mov byte [bp-006h], dl ; 88 56 fa 4672 mov ax, word [bp+012h] ; 8b 46 12 4685 4673 shr ax, 008h ; c1 e8 08 4686 mov byte [bp-008h], al ; 88 46 f8 4687 mov dx, word [bp+012h] ; 8b 56 12 4688 shr dx, 008h ; c1 ea 08 4689 mov byte [bp-00ah], dl ; 88 56 f6 4674 mov byte [bp-002h], al ; 88 46 fe 4690 4675 mov bl, byte [bp+00eh] ; 8a 5e 0e 4691 mov byte [bp-006h], bl ; 88 5e fa4692 4676 cmp bl, 001h ; 80 fb 01 4693 jnbe short 036 2ch ; 77 124694 cmp dl, 001h ; 80 fa014695 jnbe short 036 2ch ; 77 0d4696 cmp AL, strict byte 04fh ; 3c4f4697 jnbe short 036 2ch ; 77 094698 test ch, ch ; 84 ed4699 je short 036 2ch ; 74 054700 cmp ch, 012h ; 80 fd124701 jbe short 036 41h ; 76 154677 jnbe short 0360eh ; 77 12 4678 cmp AL, strict byte 001h ; 3c 01 4679 jnbe short 0360eh ; 77 0e 4680 cmp dl, 04fh ; 80 fa 4f 4681 jnbe short 0360eh ; 77 09 4682 test bh, bh ; 84 ff 4683 je short 0360eh ; 74 05 4684 cmp bh, 012h ; 80 ff 12 4685 jbe short 03629h ; 76 1b 4702 4686 mov ax, word [bp+016h] ; 8b 46 16 4703 4687 xor ah, ah ; 30 e4 4704 4688 or ah, 001h ; 80 cc 01 4705 4689 mov word [bp+016h], ax ; 89 46 16 4706 mov ax, strict word 00001h ; b8 01 00 4707 call 02e09h ; e8 cc f7 4690 mov si, strict word 00041h ; be 41 00 4691 mov ax, strict word 00040h ; b8 40 00 4692 mov es, ax ; 8e c0 4693 mov byte [es:si], 001h ; 26 c6 04 01 4708 4694 or byte [bp+01ch], 001h ; 80 4e 1c 01 4709 mov al, b yte [bp-006h] ; 8a 46 fa4710 xor ah, ah ; 30 e4 4711 call 031 50h ; e8 07 fb4695 mov al, bl ; 88 d8 4696 xor ah, ah ; 30 e4 4697 call 03104h ; e8 d4 fa 4712 4698 test ax, ax ; 85 c0 4713 jne short 03650h ; 75 03 4714 jmp near 03238h ; e9 e8 fb 4715 mov dl, byte [bp-006h] ; 8a 56 fa 4699 jne short 0364eh ; 75 1a 4700 mov ax, word [bp+016h] ; 8b 46 16 4701 xor ah, ah ; 30 e4 4702 or ah, 080h ; 80 cc 80 4703 mov word [bp+016h], ax ; 89 46 16 4704 mov bx, strict word 00041h ; bb 41 00 4705 mov ax, strict word 00040h ; b8 40 00 4706 mov es, ax ; 8e c0 4707 mov byte [es:bx], 080h ; 26 c6 07 80 4708 jmp near 039e3h ; e9 95 03 4709 mov cl, bl ; 88 d9 4710 xor ch, ch ; 30 ed 4711 mov ax, cx ; 89 c8 4712 call 02f42h ; e8 eb f8 4713 test ax, ax ; 85 c0 4714 jne short 03667h ; 75 0c 4715 mov ax, cx ; 89 c8 4716 call 0301eh ; e8 be f9 4717 test ax, ax ; 85 c0 4718 jne short 03667h ; 75 03 4719 jmp near 032c9h ; e9 62 fc 4720 mov cx, word [bp+006h] ; 8b 4e 06 4721 shr cx, 00ch ; c1 e9 0c 4722 mov ah, cl ; 88 cc 4723 mov dx, word [bp+006h] ; 8b 56 06 4724 sal dx, 004h ; c1 e2 04 4725 mov si, word [bp+010h] ; 8b 76 10 4726 add si, dx ; 01 d6 4727 mov word [bp-00ah], si ; 89 76 f6 4728 cmp dx, si ; 39 f2 4729 jbe short 03683h ; 76 02 4730 db 0feh, 0c4h 4731 ; inc ah ; fe c4 4732 mov dl, bh ; 88 fa 4716 4733 xor dh, dh ; 30 f6 4717 mov ax, dx ; 89 d0 4718 call 02f83h ; e8 29 f9 4719 test ax, ax ; 85 c0 4720 jne short 0367eh ; 75 20 4721 mov ax, dx ; 89 d0 4722 call 03057h ; e8 f4 f9 4723 test ax, ax ; 85 c0 4724 jne short 0367eh ; 75 17 4725 mov ax, word [bp+016h] ; 8b 46 16 4726 xor ah, ah ; 30 e4 4727 or ah, 00ch ; 80 cc 0c 4728 mov word [bp+016h], ax ; 89 46 16 4729 mov ax, strict word 0000ch ; b8 0c 00 4730 call 02e09h ; e8 91 f7 4731 mov byte [bp+016h], dh ; 88 76 16 4732 jmp near 035d0h ; e9 52 ff 4733 mov dx, word [bp+006h] ; 8b 56 06 4734 shr dx, 00ch ; c1 ea 0c 4735 mov cl, dl ; 88 d1 4736 mov ax, word [bp+006h] ; 8b 46 06 4737 sal ax, 004h ; c1 e0 04 4738 mov bx, word [bp+010h] ; 8b 5e 10 4739 add bx, ax ; 01 c3 4740 mov word [bp-012h], bx ; 89 5e ee 4741 cmp ax, bx ; 39 d8 4742 jbe short 0369ah ; 76 02 4743 db 0feh, 0c1h 4744 ; inc cl ; fe c1 4745 mov al, ch ; 88 e8 4746 xor ah, ah ; 30 e4 4747 mov bx, ax ; 89 c3 4748 sal bx, 002h ; c1 e3 02 4749 dec bx ; 4b 4750 mov ax, word [bp-012h] ; 8b 46 ee 4751 add ax, bx ; 01 d8 4752 cmp ax, word [bp-012h] ; 3b 46 ee 4753 jnc short 036b1h ; 73 03 4754 jmp near 03365h ; e9 b4 fc 4734 mov cx, dx ; 89 d1 4735 sal cx, 002h ; c1 e1 02 4736 dec cx ; 49 4737 mov dx, word [bp-00ah] ; 8b 56 f6 4738 add dx, cx ; 01 ca 4739 cmp dx, word [bp-00ah] ; 3b 56 f6 4740 jnc short 0369ah ; 73 03 4741 jmp near 03321h ; e9 87 fc 4755 4742 mov AL, strict byte 006h ; b0 06 4756 4743 mov dx, strict word 0000ah ; ba 0a 00 … … 4759 4746 mov dx, strict word 0000ch ; ba 0c 00 4760 4747 out DX, AL ; ee 4761 mov al, byte [bp-0 12h] ; 8a 46 ee4748 mov al, byte [bp-00ah] ; 8a 46 f6 4762 4749 mov dx, strict word 00004h ; ba 04 00 4763 4750 out DX, AL ; ee 4764 mov ax, word [bp-012h] ; 8b 46 ee 4765 shr ax, 008h ; c1 e8 08 4751 mov dx, word [bp-00ah] ; 8b 56 f6 4752 shr dx, 008h ; c1 ea 08 4753 mov al, dl ; 88 d0 4754 mov dx, strict word 00004h ; ba 04 00 4766 4755 out DX, AL ; ee 4767 4756 xor al, al ; 30 c0 4768 4757 mov dx, strict word 0000ch ; ba 0c 00 4769 4758 out DX, AL ; ee 4770 mov al, bl ; 88 d84759 mov al, cl ; 88 c8 4771 4760 mov dx, strict word 00005h ; ba 05 00 4772 4761 out DX, AL ; ee 4773 mov ax, bx ; 89 d84774 shr ax, 008h ; c1 e8 084762 shr cx, 008h ; c1 e9 08 4763 mov al, cl ; 88 c8 4775 4764 out DX, AL ; ee 4776 4765 mov AL, strict byte 04ah ; b0 4a 4777 4766 mov dx, strict word 0000bh ; ba 0b 00 4778 4767 out DX, AL ; ee 4779 mov al, cl ; 88 c84768 mov al, ah ; 88 e0 4780 4769 mov dx, 00081h ; ba 81 00 4781 4770 out DX, AL ; ee … … 4783 4772 mov dx, strict word 0000ah ; ba 0a 00 4784 4773 out DX, AL ; ee 4785 mov bl, byte [bp-006h] ; 8a 5e fa4786 xor bh, bh ; 30 ff4787 mov ax, bx ; 89 d84788 call 02 f00h ; e8 07 f84774 mov cl, bl ; 88 d9 4775 xor ch, ch ; 30 ed 4776 mov ax, cx ; 89 c8 4777 call 02eceh ; e8 e8 f7 4789 4778 mov AL, strict byte 00fh ; b0 0f 4790 4779 mov dx, 003f5h ; ba f5 03 4791 4780 out DX, AL ; ee 4792 mov al, byte [bp-00 ah] ; 8a 46 f64781 mov al, byte [bp-002h] ; 8a 46 fe 4793 4782 xor ah, ah ; 30 e4 4794 4783 mov dx, ax ; 89 c2 4795 4784 sal dx, 002h ; c1 e2 02 4796 or dx, bx ; 09 da 4797 mov word [bp-010h], dx ; 89 56 f0 4798 mov al, byte [bp-010h] ; 8a 46 f0 4785 mov al, bl ; 88 d8 4786 or dx, ax ; 09 c2 4787 mov word [bp-008h], dx ; 89 56 f8 4788 mov al, byte [bp-008h] ; 8a 46 f8 4799 4789 mov dx, 003f5h ; ba f5 03 4800 4790 out DX, AL ; ee 4791 mov al, byte [bp-006h] ; 8a 46 fa 4792 out DX, AL ; ee 4793 mov AL, strict byte 04dh ; b0 4d 4794 out DX, AL ; ee 4801 4795 mov al, byte [bp-008h] ; 8a 46 f8 4802 4796 out DX, AL ; ee 4803 mov AL, strict byte 04dh ; b0 4d4804 out DX, AL ; ee4805 mov al, byte [bp-010h] ; 8a 46 f04806 out DX, AL ; ee4807 4797 mov AL, strict byte 002h ; b0 02 4808 4798 out DX, AL ; ee 4809 mov al, ch ; 88 e84810 out DX, AL ; ee 4811 xor al, ch ; 30 e84799 mov al, bh ; 88 f8 4800 out DX, AL ; ee 4801 xor al, bh ; 30 f8 4812 4802 out DX, AL ; ee 4813 4803 mov AL, strict byte 0f6h ; b0 f6 4814 4804 out DX, AL ; ee 4815 call 02e 73h ; e8 44f74805 call 02e57h ; e8 39 f7 4816 4806 test al, al ; 84 c0 4817 jne short 037 3bh ; 75 084818 mov ax, bx ; 89 d84819 call 02e bah ; e8 82f74820 jmp near 03 238h ; e9 fd fa4807 jne short 0372ah ; 75 08 4808 mov ax, cx ; 89 c8 4809 call 02e8fh ; e8 68 f7 4810 jmp near 03634h ; e9 0a ff 4821 4811 mov dx, 003f4h ; ba f4 03 4822 4812 in AL, DX ; ec … … 4825 4815 and AL, strict byte 0c0h ; 24 c0 4826 4816 cmp AL, strict byte 0c0h ; 3c c0 4827 je short 037 55h ; 74 0e4817 je short 03744h ; 74 0e 4828 4818 push 00275h ; 68 75 02 4829 4819 push 002a8h ; 68 a8 02 4830 4820 push strict byte 00007h ; 6a 07 4831 call 01966h ; e8 14e24821 call 01966h ; e8 25 e2 4832 4822 add sp, strict byte 00006h ; 83 c4 06 4833 xor si, si ; 31 f64834 jmp short 037 5eh ; eb 054835 cmp si, strict byte 00007h ; 83 fe074836 jnl short 037 77h ; 7d 194823 xor cx, cx ; 31 c9 4824 jmp short 0374dh ; eb 05 4825 cmp cx, strict byte 00007h ; 83 f9 07 4826 jnl short 03763h ; 7d 16 4837 4827 mov dx, 003f5h ; ba f5 03 4838 4828 in AL, DX ; ec 4839 4829 db 02ah, 0e4h 4840 4830 ; sub ah, ah ; 2a e4 4841 mov byte [bp+si-01ch], al ; 88 42 e4 4842 mov bl, al ; 88 c3 4843 xor bh, bh ; 30 ff 4844 lea dx, [si+042h] ; 8d 54 42 4831 mov si, cx ; 89 ce 4832 add si, strict byte 00042h ; 83 c6 42 4833 mov dx, strict word 00040h ; ba 40 00 4834 mov es, dx ; 8e c2 4835 mov byte [es:si], al ; 26 88 04 4836 inc cx ; 41 4837 jmp short 03748h ; eb e5 4838 mov si, strict word 00042h ; be 42 00 4845 4839 mov ax, strict word 00040h ; b8 40 00 4846 call 0165eh ; e8 ea de 4847 inc si ; 46 4848 jmp short 03759h ; eb e2 4849 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4850 je short 03794h ; 74 17 4851 test byte [bp-01bh], 002h ; f6 46 e5 02 4852 je short 03786h ; 74 03 4853 jmp near 035cbh ; e9 45 fe 4840 mov es, ax ; 8e c0 4841 mov al, byte [es:si] ; 26 8a 04 4842 test AL, strict byte 0c0h ; a8 c0 4843 je short 0378dh ; 74 1b 4844 mov si, strict word 00043h ; be 43 00 4845 mov al, byte [es:si] ; 26 8a 04 4846 test AL, strict byte 002h ; a8 02 4847 je short 0377fh ; 74 03 4848 jmp near 035b8h ; e9 39 fe 4854 4849 push 00275h ; 68 75 02 4855 4850 push 002bch ; 68 bc 02 4856 4851 push strict byte 00007h ; 6a 07 4857 call 01966h ; e8 d 5e14852 call 01966h ; e8 dc e1 4858 4853 add sp, strict byte 00006h ; 83 c4 06 4859 xor al, al ; 30 c0 4860 mov byte [bp+017h], al ; 88 46 17 4861 xor ah, ah ; 30 e4 4862 call 02e09h ; e8 6b f6 4863 mov al, byte [bp-006h] ; 8a 46 fa 4854 mov byte [bp+017h], 000h ; c6 46 17 00 4855 mov si, strict word 00041h ; be 41 00 4856 mov ax, strict word 00040h ; b8 40 00 4857 mov es, ax ; 8e c0 4858 mov byte [es:si], 000h ; 26 c6 04 00 4859 mov al, bl ; 88 d8 4864 4860 xor ah, ah ; 30 e4 4865 4861 xor dx, dx ; 31 d2 4866 call 02e 22h ; e8 7af64867 jmp near 03 971h ; e9 c6 014868 mov b yte [bp-006h], al ; 88 46 fa4869 cmp AL, strict byte 001h ; 3c 014870 jbe short 037 d0h ; 76 1e4862 call 02e09h ; e8 63 f6 4863 jmp near 03488h ; e9 df fc 4864 mov bl, ah ; 88 e3 4865 cmp ah, 001h ; 80 fc 01 4866 jbe short 037ceh ; 76 1e 4871 4867 xor ax, ax ; 31 c0 4872 4868 mov word [bp+016h], ax ; 89 46 16 … … 4876 4872 mov word [bp+006h], ax ; 89 46 06 4877 4873 mov word [bp+008h], ax ; 89 46 08 4878 mov al, ch ; 88 e84874 mov al, bh ; 88 f8 4879 4875 xor ah, ah ; 30 e4 4880 4876 mov word [bp+012h], ax ; 89 46 12 4881 jmp near 038e ch ; e9 1c014877 jmp near 038edh ; e9 1f 01 4882 4878 mov ax, strict word 00010h ; b8 10 00 4883 call 016ach ; e8 d 6de4884 mov cl, al ; 88 c14885 xor ch, ch ; 30 ed4879 call 016ach ; e8 d8 de 4880 mov dl, al ; 88 c2 4881 xor bh, bh ; 30 ff 4886 4882 test AL, strict byte 0f0h ; a8 f0 4887 je short 037 e0h ; 74 024888 mov CH, strict byte 001h ; b5014889 test cl, 00fh ; f6 c10f4890 je short 037e 7h ; 74 024891 db 0feh, 0c 5h4892 ; inc ch ; fe c54893 cmp byte [bp-006h], 000h ; 80 7e fa 004894 jne short 037 f2h ; 75 054895 shr cl, 004h ; c0 e9044896 jmp short 037f 5h ; eb 034897 and cl, 00fh ; 80 e10f4883 je short 037deh ; 74 02 4884 mov BH, strict byte 001h ; b7 01 4885 test dl, 00fh ; f6 c2 0f 4886 je short 037e5h ; 74 02 4887 db 0feh, 0c7h 4888 ; inc bh ; fe c7 4889 test bl, bl ; 84 db 4890 jne short 037eeh ; 75 05 4891 shr dl, 004h ; c0 ea 04 4892 jmp short 037f1h ; eb 03 4893 and dl, 00fh ; 80 e2 0f 4898 4894 mov byte [bp+011h], 000h ; c6 46 11 00 4899 mov al, cl ; 88 c84895 mov al, dl ; 88 d0 4900 4896 xor ah, ah ; 30 e4 4901 4897 mov word [bp+010h], ax ; 89 46 10 4902 xor al, cl ; 30 c84898 xor al, dl ; 30 d0 4903 4899 mov word [bp+016h], ax ; 89 46 16 4904 mov dx, word [bp+012h] ; 8b 56124905 mov dl, ch ; 88 ea4906 mov word [bp+012h], dx ; 89 56124907 mov ax, dx ; 89 d04908 xor ah, dh ; 30 f44900 mov cx, word [bp+012h] ; 8b 4e 12 4901 mov cl, bh ; 88 f9 4902 mov word [bp+012h], cx ; 89 4e 12 4903 mov ax, cx ; 89 c8 4904 xor ah, ch ; 30 ec 4909 4905 or ah, 001h ; 80 cc 01 4910 4906 mov word [bp+012h], ax ; 89 46 12 4911 cmp cl, 003h ; 80 f9034912 jc short 038 31h ; 72 154913 jbe short 0385 8h ; 76 3a4914 cmp cl, 005h ; 80 f9054915 jc short 0385 fh ; 72 3c4916 jbe short 0386 6h ; 76 414917 cmp cl, 00fh ; 80 f90f4918 je short 0387 4h ; 74 4a4919 cmp cl, 00eh ; 80 f90e4920 je short 0386 dh ; 74 3e4921 jmp short 0387 bh ; eb 4a4922 cmp cl, 002h ; 80 f9024923 je short 038 51h ; 74 1b4924 cmp cl, 001h ; 80 f9014925 je short 0384 ah ; 74 0f4926 test cl, cl ; 84 c94927 jne short 0387 bh ; 75 3c4907 cmp dl, 003h ; 80 fa 03 4908 jc short 0382dh ; 72 15 4909 jbe short 03854h ; 76 3a 4910 cmp dl, 005h ; 80 fa 05 4911 jc short 0385bh ; 72 3c 4912 jbe short 03862h ; 76 41 4913 cmp dl, 00fh ; 80 fa 0f 4914 je short 03870h ; 74 4a 4915 cmp dl, 00eh ; 80 fa 0e 4916 je short 03869h ; 74 3e 4917 jmp short 03877h ; eb 4a 4918 cmp dl, 002h ; 80 fa 02 4919 je short 0384dh ; 74 1b 4920 cmp dl, 001h ; 80 fa 01 4921 je short 03846h ; 74 0f 4922 test dl, dl ; 84 d2 4923 jne short 03877h ; 75 3c 4928 4924 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4929 4925 mov byte [bp+013h], 000h ; c6 46 13 00 4930 jmp short 0388 9h ; eb 3f4926 jmp short 03885h ; eb 3f 4931 4927 mov word [bp+014h], 02709h ; c7 46 14 09 27 4932 jmp short 0388 9h ; eb 384928 jmp short 03885h ; eb 38 4933 4929 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4934 jmp short 0388 9h ; eb 314930 jmp short 03885h ; eb 31 4935 4931 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4936 jmp short 0388 9h ; eb 2a4932 jmp short 03885h ; eb 2a 4937 4933 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4938 jmp short 0388 9h ; eb 234934 jmp short 03885h ; eb 23 4939 4935 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4940 jmp short 0388 9h ; eb 1c4936 jmp short 03885h ; eb 1c 4941 4937 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4942 jmp short 0388 9h ; eb 154938 jmp short 03885h ; eb 15 4943 4939 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4944 jmp short 0388 9h ; eb 0e4940 jmp short 03885h ; eb 0e 4945 4941 push 00275h ; 68 75 02 4946 4942 push 002cdh ; 68 cd 02 4947 4943 push strict byte 00007h ; 6a 07 4948 call 01966h ; e8 e 0e04944 call 01966h ; e8 e4 e0 4949 4945 add sp, strict byte 00006h ; 83 c4 06 4950 4946 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4951 mov al, cl ; 88 c84952 xor ah, ah ; 30 e4 4953 call 03 aech ; e8 57024947 mov al, dl ; 88 d0 4948 xor ah, ah ; 30 e4 4949 call 03b19h ; e8 88 02 4954 4950 mov word [bp+008h], ax ; 89 46 08 4955 jmp near 03 971h ; e9 d6 004956 mov b yte [bp-006h], al ; 88 46 fa4957 cmp AL, strict byte 001h ; 3c 014958 jbe short 038a 7h ; 76 054959 mov word [bp+016h], si ; 89 76 164960 jmp short 038e ch ; eb 454951 jmp near 03488h ; e9 f1 fb 4952 mov bl, ah ; 88 e3 4953 cmp ah, 001h ; 80 fc 01 4954 jbe short 038a3h ; 76 05 4955 mov word [bp+016h], dx ; 89 56 16 4956 jmp short 038edh ; eb 4a 4961 4957 mov ax, strict word 00010h ; b8 10 00 4962 call 016ach ; e8 ff dd4963 cmp byte [bp-006h], 000h ; 80 7e fa 004964 jne short 038b ah ; 75 074965 mov cl, al ; 88 c14966 shr cl, 004h ; c0 e9044967 jmp short 038b fh ; eb 054968 mov cl, al ; 88 c14969 and cl, 00fh ; 80 e10f4958 call 016ach ; e8 03 de 4959 test bl, bl ; 84 db 4960 jne short 038b4h ; 75 07 4961 mov dl, al ; 88 c2 4962 shr dl, 004h ; c0 ea 04 4963 jmp short 038b9h ; eb 05 4964 mov dl, al ; 88 c2 4965 and dl, 00fh ; 80 e2 0f 4970 4966 and byte [bp+01ch], 0feh ; 80 66 1c fe 4971 4967 mov ax, word [bp+016h] ; 8b 46 16 4972 4968 xor ah, ah ; 30 e4 4973 test cl, cl ; 84 c94974 je short 038d 9h ; 74 0d4975 cmp cl, 001h ; 80 f9014976 jbe short 038d 6h ; 76 054969 test dl, dl ; 84 d2 4970 je short 038d3h ; 74 0d 4971 cmp dl, 001h ; 80 fa 01 4972 jbe short 038d0h ; 76 05 4977 4973 or ah, 002h ; 80 cc 02 4978 jmp short 038d 9h ; eb 034974 jmp short 038d3h ; eb 03 4979 4975 or ah, 001h ; 80 cc 01 4980 4976 mov word [bp+016h], ax ; 89 46 16 4981 jmp near 03 5f3h ; e9 14 fd4982 cmp AL, strict byte 001h ; 3c 014983 jbe short 038f 2h ; 76 0f4977 jmp near 03206h ; e9 2d f9 4978 cmp ah, 001h ; 80 fc 01 4979 jbe short 038f3h ; 76 15 4984 4980 mov word [bp+016h], si ; 89 76 16 4985 mov ax, strict word 00001h ; b8 01 00 4986 call 02e09h ; e8 1d f5 4987 mov word [bp+01ch], dx ; 89 56 1c 4988 jmp near 035f3h ; e9 01 fd 4981 mov bx, strict word 00041h ; bb 41 00 4982 mov ax, strict word 00040h ; b8 40 00 4983 mov es, ax ; 8e c0 4984 mov byte [es:bx], 001h ; 26 c6 07 01 4985 mov word [bp+01ch], cx ; 89 4e 1c 4986 jmp near 03206h ; e9 13 f9 4989 4987 mov ax, word [bp+016h] ; 8b 46 16 4990 4988 xor ah, ah ; 30 e4 4991 4989 or ah, 006h ; 80 cc 06 4992 4990 mov word [bp+016h], ax ; 89 46 16 4993 mov ax, strict word 00006h ; b8 06 00 4994 jmp near 03205h ; e9 02 f9 4995 mov byte [bp-006h], al ; 88 46 fa 4996 mov bl, cl ; 88 cb 4997 cmp AL, strict byte 001h ; 3c 01 4998 jnbe short 038e3h ; 77 d7 4999 mov al, byte [bp-006h] ; 8a 46 fa 5000 xor ah, ah ; 30 e4 5001 call 03150h ; e8 3c f8 4991 mov bx, strict word 00041h ; bb 41 00 4992 mov ax, strict word 00040h ; b8 40 00 4993 mov es, ax ; 8e c0 4994 mov byte [es:bx], 006h ; 26 c6 07 06 4995 jmp near 039e3h ; e9 d6 00 4996 mov bl, ah ; 88 e3 4997 mov dl, byte [bp+016h] ; 8a 56 16 4998 cmp ah, 001h ; 80 fc 01 4999 jnbe short 038deh ; 77 c7 5000 mov al, bl ; 88 d8 5001 xor ah, ah ; 30 e4 5002 call 03104h ; e8 e6 f7 5002 5003 test ax, ax ; 85 c0 5003 jne short 039 1bh ; 75 035004 jmp near 03 238h ; e9 1d f95005 cmp byte [bp-006h], 000h ; 80 7e fa 005006 je short 0392 6h ; 74 055007 mov dx, 00091h ; ba91 005008 jmp short 039 29h ; eb 035009 mov dx, 00090h ; ba90 005010 mov word [bp-0 12h], dx ; 89 56 ee5004 jne short 03925h ; 75 03 5005 jmp near 03634h ; e9 0f fd 5006 test bl, bl ; 84 db 5007 je short 0392eh ; 74 05 5008 mov bx, 00091h ; bb 91 00 5009 jmp short 03931h ; eb 03 5010 mov bx, 00090h ; bb 90 00 5011 mov word [bp-00ah], bx ; 89 5e f6 5011 5012 mov ax, strict word 00040h ; b8 40 00 5012 call 01650h ; e8 1e dd 5013 and AL, strict byte 00fh ; 24 0f 5014 cmp bl, 002h ; 80 fb 02 5015 jc short 03948h ; 72 0f 5016 jbe short 03954h ; 76 19 5017 cmp bl, 004h ; 80 fb 04 5018 je short 03950h ; 74 10 5019 cmp bl, 003h ; 80 fb 03 5020 je short 03958h ; 74 13 5021 jmp near 031f7h ; e9 af f8 5022 cmp bl, 001h ; 80 fb 01 5023 je short 03950h ; 74 03 5024 jmp near 031f7h ; e9 a7 f8 5025 or AL, strict byte 090h ; 0c 90 5026 jmp short 0395ah ; eb 06 5027 or AL, strict byte 070h ; 0c 70 5028 jmp short 0395ah ; eb 02 5029 or AL, strict byte 010h ; 0c 10 5030 mov bl, al ; 88 c3 5031 xor bh, bh ; 30 ff 5032 mov dx, word [bp-012h] ; 8b 56 ee 5013 mov es, ax ; 8e c0 5014 mov bl, byte [es:bx] ; 26 8a 1f 5015 and bl, 00fh ; 80 e3 0f 5016 cmp dl, 002h ; 80 fa 02 5017 jc short 03953h ; 72 0f 5018 jbe short 03960h ; 76 1a 5019 cmp dl, 004h ; 80 fa 04 5020 je short 0395bh ; 74 10 5021 cmp dl, 003h ; 80 fa 03 5022 je short 03965h ; 74 15 5023 jmp near 03191h ; e9 3e f8 5024 cmp dl, 001h ; 80 fa 01 5025 je short 0395bh ; 74 03 5026 jmp near 03191h ; e9 36 f8 5027 or bl, 090h ; 80 cb 90 5028 jmp short 03968h ; eb 08 5029 or bl, 070h ; 80 cb 70 5030 jmp short 03968h ; eb 03 5031 or bl, 010h ; 80 cb 10 5033 5032 mov ax, strict word 00040h ; b8 40 00 5034 call 0165eh ; e8 f7 dc 5033 mov es, ax ; 8e c0 5034 mov si, word [bp-00ah] ; 8b 76 f6 5035 mov byte [es:si], bl ; 26 88 1c 5035 5036 xor al, al ; 30 c0 5036 5037 mov byte [bp+017h], al ; 88 46 17 5037 xor ah, ah ; 30 e4 5038 call 02e09h ; e8 98 f4 5039 and byte [bp+01ch], 0feh ; 80 66 1c fe 5040 jmp near 035f3h ; e9 7b fc 5041 mov byte [bp-006h], al ; 88 46 fa 5042 mov ch, ah ; 88 e5 5043 and ch, 03fh ; 80 e5 3f 5038 mov bx, strict word 00041h ; bb 41 00 5039 mov byte [es:bx], al ; 26 88 07 5040 jmp near 03488h ; e9 07 fb 5044 5041 mov bl, ah ; 88 e3 5045 xor bh, bh ; 30 ff 5046 sar bx, 006h ; c1 fb 06 5047 sal bx, 008h ; c1 e3 08 5048 add bx, word [bp-014h] ; 03 5e ec 5049 mov byte [bp-008h], bl ; 88 5e f8 5050 cmp AL, strict byte 001h ; 3c 01 5051 jbe short 03997h ; 76 03 5052 jmp near 038e3h ; e9 4c ff 5053 mov al, byte [bp-006h] ; 8a 46 fa 5054 xor ah, ah ; 30 e4 5055 call 03150h ; e8 b1 f7 5042 mov dl, byte [bp+014h] ; 8a 56 14 5043 mov bh, dl ; 88 d7 5044 and bh, 03fh ; 80 e7 3f 5045 sar dx, 006h ; c1 fa 06 5046 sal dx, 008h ; c1 e2 08 5047 mov word [bp-00ch], dx ; 89 56 f4 5048 mov dx, word [bp+014h] ; 8b 56 14 5049 shr dx, 008h ; c1 ea 08 5050 add dx, word [bp-00ch] ; 03 56 f4 5051 mov byte [bp-006h], dl ; 88 56 fa 5052 cmp ah, 001h ; 80 fc 01 5053 jbe short 039a8h ; 76 03 5054 jmp near 038deh ; e9 36 ff 5055 mov al, bl ; 88 d8 5056 xor ah, ah ; 30 e4 5057 call 03104h ; e8 55 f7 5056 5058 test ax, ax ; 85 c0 5057 jne short 039 a6h ; 75 035058 jmp near 03 238h ; e9 92 f85059 mov bl, byte [bp-006h] ; 8a 5e fa5060 xor bh, bh ; 30 ff5061 mov ax, bx ; 89 d85062 call 02f 83h ; e8 d3 f55059 jne short 039b6h ; 75 03 5060 jmp near 03634h ; e9 7e fc 5061 mov cl, bl ; 88 d9 5062 xor ch, ch ; 30 ed 5063 mov ax, cx ; 89 c8 5064 call 02f42h ; e8 83 f5 5063 5065 test ax, ax ; 85 c0 5064 jne short 039 ceh ; 75 1a5065 mov ax, bx ; 89 d85066 call 030 57h ; e8 9ef65066 jne short 039eah ; 75 27 5067 mov ax, cx ; 89 c8 5068 call 0301eh ; e8 56 f6 5067 5069 test ax, ax ; 85 c0 5068 jne short 039 ceh ; 75 115070 jne short 039eah ; 75 1e 5069 5071 mov ax, word [bp+016h] ; 8b 46 16 5070 5072 xor ah, ah ; 30 e4 5071 5073 or ah, 00ch ; 80 cc 0c 5072 5074 mov word [bp+016h], ax ; 89 46 16 5073 mov ax, strict word 0000ch ; b8 0c 00 5074 jmp near 03205h ; e9 37 f8 5075 mov bx, strict word 00041h ; bb 41 00 5076 mov ax, strict word 00040h ; b8 40 00 5077 mov es, ax ; 8e c0 5078 mov byte [es:bx], 00ch ; 26 c6 07 0c 5079 or byte [bp+01ch], 001h ; 80 4e 1c 01 5080 jmp near 03206h ; e9 1c f8 5075 5081 mov ax, strict word 00010h ; b8 10 00 5076 call 016ach ; e8 d8dc5077 cmp byte [bp-006h], 000h ; 80 7e fa 005078 jne short 039 e1h ; 75 075079 mov cl, al ; 88 c15080 shr cl, 004h ; c0 e9045081 jmp short 03 9e6h ; eb 055082 mov cl, al ; 88 c15083 and cl, 00fh ; 80 e10f5084 cmp byte [bp-006h], 000h ; 80 7e fa 005085 je short 03 9f1h ; 74 055086 mov dx, 00091h ; ba91 005087 jmp short 03 9f4h ; eb 035088 mov dx, 00090h ; ba90 005089 mov word [bp-0 12h], dx ; 89 56 ee5082 call 016ach ; e8 bc dc 5083 test bl, bl ; 84 db 5084 jne short 039fbh ; 75 07 5085 mov dl, al ; 88 c2 5086 shr dl, 004h ; c0 ea 04 5087 jmp short 03a00h ; eb 05 5088 mov dl, al ; 88 c2 5089 and dl, 00fh ; 80 e2 0f 5090 test bl, bl ; 84 db 5091 je short 03a09h ; 74 05 5092 mov si, 00091h ; be 91 00 5093 jmp short 03a0ch ; eb 03 5094 mov si, 00090h ; be 90 00 5095 mov word [bp-00ah], si ; 89 76 f6 5090 5096 mov ax, strict word 00040h ; b8 40 00 5091 call 01650h ; e8 53 dc 5092 and AL, strict byte 00fh ; 24 0f 5093 cmp cl, 003h ; 80 f9 03 5094 jc short 03a20h ; 72 1c 5095 mov ah, al ; 88 c4 5096 or ah, 090h ; 80 cc 90 5097 cmp cl, 003h ; 80 f9 03 5098 jbe short 03a57h ; 76 49 5099 mov dl, al ; 88 c2 5100 or dl, 010h ; 80 ca 10 5101 cmp cl, 005h ; 80 f9 05 5102 je short 03a64h ; 74 4c 5103 cmp cl, 004h ; 80 f9 04 5104 je short 03a6ah ; 74 4d 5105 jmp near 03a9bh ; e9 7b 00 5106 cmp cl, 002h ; 80 f9 02 5107 je short 03a39h ; 74 14 5108 cmp cl, 001h ; 80 f9 01 5109 jne short 03a68h ; 75 3e 5110 cmp byte [bp-008h], 027h ; 80 7e f8 27 5111 jne short 03a68h ; 75 38 5112 cmp ch, 009h ; 80 fd 09 5113 jne short 03a7eh ; 75 49 5097 mov es, ax ; 8e c0 5098 mov bl, byte [es:si] ; 26 8a 1c 5099 and bl, 00fh ; 80 e3 0f 5100 cmp dl, 003h ; 80 fa 03 5101 jc short 03a3ah ; 72 1b 5102 mov al, bl ; 88 d8 5114 5103 or AL, strict byte 090h ; 0c 90 5115 jmp short 03a7eh ; eb 45 5116 cmp byte [bp-008h], 027h ; 80 7e f8 27 5117 jne short 03a48h ; 75 09 5118 cmp ch, 009h ; 80 fd 09 5119 jne short 03a48h ; 75 04 5120 or AL, strict byte 070h ; 0c 70 5121 jmp short 03a7eh ; eb 36 5122 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 5123 jne short 03a9bh ; 75 4d 5124 cmp ch, 00fh ; 80 fd 0f 5125 jne short 03a9bh ; 75 48 5126 or AL, strict byte 010h ; 0c 10 5127 jmp short 03a9bh ; eb 44 5128 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 5129 jne short 03a9bh ; 75 3e 5130 cmp ch, 009h ; 80 fd 09 5131 je short 03a66h ; 74 04 5132 jmp short 03a9bh ; eb 37 5133 jmp short 03a80h ; eb 1a 5134 mov al, ah ; 88 e0 5135 jmp short 03a9bh ; eb 31 5136 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 5137 jne short 03a9bh ; 75 2b 5138 cmp ch, 009h ; 80 fd 09 5139 jne short 03a77h ; 75 02 5140 jmp short 03a66h ; eb ef 5141 cmp ch, 012h ; 80 fd 12 5142 jne short 03a9bh ; 75 1f 5104 cmp dl, 003h ; 80 fa 03 5105 jbe short 03a76h ; 76 4e 5106 mov ah, bl ; 88 dc 5107 or ah, 010h ; 80 cc 10 5108 cmp dl, 005h ; 80 fa 05 5109 je short 03a74h ; 74 42 5110 cmp dl, 004h ; 80 fa 04 5111 je short 03a83h ; 74 4c 5112 jmp near 03abbh ; e9 81 00 5113 cmp dl, 002h ; 80 fa 02 5114 je short 03a54h ; 74 15 5115 cmp dl, 001h ; 80 fa 01 5116 jne short 03a87h ; 75 43 5117 cmp byte [bp-006h], 027h ; 80 7e fa 27 5118 jne short 03a87h ; 75 3d 5119 cmp bh, 009h ; 80 ff 09 5120 jne short 03a9dh ; 75 4e 5121 or bl, 090h ; 80 cb 90 5122 jmp short 03a9dh ; eb 49 5123 cmp byte [bp-006h], 027h ; 80 7e fa 27 5124 jne short 03a64h ; 75 0a 5125 cmp bh, 009h ; 80 ff 09 5126 jne short 03a64h ; 75 05 5127 or bl, 070h ; 80 cb 70 5128 jmp short 03a9dh ; eb 39 5129 cmp byte [bp-006h], 04fh ; 80 7e fa 4f 5130 jne short 03abbh ; 75 51 5131 cmp bh, 00fh ; 80 ff 0f 5132 jne short 03abbh ; 75 4c 5133 or bl, 010h ; 80 cb 10 5134 jmp short 03abbh ; eb 47 5135 jmp short 03a9fh ; eb 29 5136 cmp byte [bp-006h], 04fh ; 80 7e fa 4f 5137 jne short 03abbh ; 75 3f 5138 cmp bh, 009h ; 80 ff 09 5139 je short 03a85h ; 74 04 5140 jmp short 03abbh ; eb 38 5141 jmp short 03a89h ; eb 04 5142 mov bl, al ; 88 c3 5143 jmp short 03abbh ; eb 32 5144 cmp byte [bp-006h], 04fh ; 80 7e fa 4f 5145 jne short 03abbh ; 75 2c 5146 cmp bh, 009h ; 80 ff 09 5147 jne short 03a96h ; 75 02 5148 jmp short 03a85h ; eb ef 5149 cmp bh, 012h ; 80 ff 12 5150 jne short 03abbh ; 75 20 5151 mov bl, ah ; 88 e3 5152 jmp short 03abbh ; eb 1c 5153 cmp byte [bp-006h], 04fh ; 80 7e fa 4f 5154 jne short 03abbh ; 75 16 5155 cmp bh, 009h ; 80 ff 09 5156 jne short 03aach ; 75 02 5157 jmp short 03a85h ; eb d9 5158 cmp bh, 012h ; 80 ff 12 5159 jne short 03ab3h ; 75 02 5160 jmp short 03a9bh ; eb e8 5161 cmp bh, 024h ; 80 ff 24 5162 jne short 03abbh ; 75 03 5163 or bl, 0d0h ; 80 cb d0 5164 mov al, bl ; 88 d8 5165 xor ah, ah ; 30 e4 5166 sar ax, 004h ; c1 f8 04 5167 test AL, strict byte 001h ; a8 01 5168 jne short 03ac9h ; 75 03 5169 jmp near 039cch ; e9 03 ff 5170 mov ax, strict word 00040h ; b8 40 00 5171 mov es, ax ; 8e c0 5172 mov si, word [bp-00ah] ; 8b 76 f6 5173 mov byte [es:si], bl ; 26 88 1c 5174 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5143 5175 mov al, dl ; 88 d0 5144 jmp short 03a9bh ; eb 1b 5145 cmp byte [bp-008h], 04fh ; 80 7e f8 4f 5146 jne short 03a9bh ; 75 15 5147 cmp ch, 009h ; 80 fd 09 5148 jne short 03a8dh ; 75 02 5149 jmp short 03a66h ; eb d9 5150 cmp ch, 012h ; 80 fd 12 5151 jne short 03a94h ; 75 02 5152 jmp short 03a7ch ; eb e8 5153 cmp ch, 024h ; 80 fd 24 5154 jne short 03a9bh ; 75 02 5155 or AL, strict byte 0d0h ; 0c d0 5156 mov dl, al ; 88 c2 5157 xor dh, dh ; 30 f6 5158 sar dx, 004h ; c1 fa 04 5159 test dl, 001h ; f6 c2 01 5160 jne short 03aaah ; 75 03 5161 jmp near 039bdh ; e9 13 ff 5162 mov bl, al ; 88 c3 5163 xor bh, bh ; 30 ff 5164 mov dx, word [bp-012h] ; 8b 56 ee 5176 xor ah, ah ; 30 e4 5177 call 03b19h ; e8 39 00 5178 mov word [bp+008h], ax ; 89 46 08 5179 mov byte [bp+017h], 000h ; c6 46 17 00 5180 mov bx, strict word 00041h ; bb 41 00 5165 5181 mov ax, strict word 00040h ; b8 40 00 5166 call 0165eh ; e8 a7 db 5167 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5168 mov al, cl ; 88 c8 5169 xor ah, ah ; 30 e4 5170 call 03aech ; e8 29 00 5171 mov word [bp+008h], ax ; 89 46 08 5172 jmp near 03967h ; e9 9e fe 5182 mov es, ax ; 8e c0 5183 mov byte [es:bx], 000h ; 26 c6 07 00 5184 jmp near 03488h ; e9 92 f9 5173 5185 mov bx, 00da0h ; bb a0 0d 5174 5186 mov cx, ds ; 8c d9 5175 5187 mov ax, strict word 00004h ; b8 04 00 5176 call 01923h ; e8 4fde5188 call 01923h ; e8 22 de 5177 5189 mov ax, word [bp+016h] ; 8b 46 16 5178 5190 shr ax, 008h ; c1 e8 08 … … 5181 5193 push 002e2h ; 68 e2 02 5182 5194 push strict byte 00004h ; 6a 04 5183 call 01966h ; e8 80de5195 call 01966h ; e8 53 de 5184 5196 add sp, strict byte 00008h ; 83 c4 08 5185 jmp near 031 f7h ; e9 0b f75186 get_floppy_dpt_: ; 0xf3 aecLB 0x305197 jmp near 03191h ; e9 78 f6 5198 get_floppy_dpt_: ; 0xf3b19 LB 0x30 5187 5199 push bx ; 53 5188 5200 push dx ; 52 … … 5191 5203 mov dl, al ; 88 c2 5192 5204 xor ax, ax ; 31 c0 5193 jmp short 03 afdh ; eb 065205 jmp short 03b2ah ; eb 06 5194 5206 inc ax ; 40 5195 5207 cmp ax, strict word 00007h ; 3d 07 00 5196 jnc short 03b 15h ; 73 185208 jnc short 03b42h ; 73 18 5197 5209 mov bx, ax ; 89 c3 5198 5210 add bx, ax ; 01 c3 5199 5211 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5200 jne short 03 af7h ; 75 f05212 jne short 03b24h ; 75 f0 5201 5213 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5202 5214 xor ah, ah ; 30 e4 5203 5215 imul ax, ax, strict byte 0000dh ; 6b c0 0d 5204 5216 add ax, strict word 00000h ; 05 00 00 5205 jmp short 03b 18h ; eb 035217 jmp short 03b45h ; eb 03 5206 5218 mov ax, strict word 00041h ; b8 41 00 5207 5219 pop bp ; 5d … … 5209 5221 pop bx ; 5b 5210 5222 retn ; c3 5211 dummy_soft_reset_: ; 0xf3b 1cLB 0x75223 dummy_soft_reset_: ; 0xf3b49 LB 0x7 5212 5224 push bp ; 55 5213 5225 mov bp, sp ; 89 e5 … … 5215 5227 pop bp ; 5d 5216 5228 retn ; c3 5217 _cdemu_init: ; 0xf3b 23LB 0x185229 _cdemu_init: ; 0xf3b50 LB 0x18 5218 5230 push bp ; 55 5219 5231 mov bp, sp ; 89 e5 5220 5232 mov dx, strict word 0000eh ; ba 0e 00 5221 5233 mov ax, strict word 00040h ; b8 40 00 5222 call 0166ch ; e8 3ddb5234 call 0166ch ; e8 10 db 5223 5235 xor bx, bx ; 31 db 5224 5236 mov dx, 00366h ; ba 66 03 5225 call 0165eh ; e8 27 db5237 call 0165eh ; e8 fa da 5226 5238 mov sp, bp ; 89 ec 5227 5239 pop bp ; 5d 5228 5240 retn ; c3 5229 _cdemu_isactive: ; 0xf3b 3bLB 0x165241 _cdemu_isactive: ; 0xf3b68 LB 0x16 5230 5242 push bp ; 55 5231 5243 mov bp, sp ; 89 e5 5232 5244 mov dx, strict word 0000eh ; ba 0e 00 5233 5245 mov ax, strict word 00040h ; b8 40 00 5234 call 0166ch ; e8 25 db5246 call 0166ch ; e8 f8 da 5235 5247 mov dx, 00366h ; ba 66 03 5236 call 01650h ; e8 03 db5248 call 01650h ; e8 d6 da 5237 5249 mov sp, bp ; 89 ec 5238 5250 pop bp ; 5d 5239 5251 retn ; c3 5240 _cdemu_emulated_drive: ; 0xf3b 51LB 0x165252 _cdemu_emulated_drive: ; 0xf3b7e LB 0x16 5241 5253 push bp ; 55 5242 5254 mov bp, sp ; 89 e5 5243 5255 mov dx, strict word 0000eh ; ba 0e 00 5244 5256 mov ax, strict word 00040h ; b8 40 00 5245 call 0166ch ; e8 0f db5257 call 0166ch ; e8 e2 da 5246 5258 mov dx, 00368h ; ba 68 03 5247 call 01650h ; e8 edda5259 call 01650h ; e8 c0 da 5248 5260 mov sp, bp ; 89 ec 5249 5261 pop bp ; 5d 5250 5262 retn ; c3 5251 _int13_eltorito: ; 0xf3b 67LB 0x1905263 _int13_eltorito: ; 0xf3b94 LB 0x190 5252 5264 push bp ; 55 5253 5265 mov bp, sp ; 89 e5 … … 5256 5268 mov dx, strict word 0000eh ; ba 0e 00 5257 5269 mov ax, strict word 00040h ; b8 40 00 5258 call 0166ch ; e8 f7da5270 call 0166ch ; e8 ca da 5259 5271 mov si, 00366h ; be 66 03 5260 5272 mov di, ax ; 89 c7 … … 5262 5274 shr ax, 008h ; c1 e8 08 5263 5275 cmp ax, strict word 0004bh ; 3d 4b 00 5264 jc short 03b 8fh ; 72 0a5265 jbe short 03b b6h ; 76 2f5276 jc short 03bbch ; 72 0a 5277 jbe short 03be3h ; 76 2f 5266 5278 cmp ax, strict word 0004dh ; 3d 4d 00 5267 jbe short 03b 94h ; 76 085268 jmp near 03c bbh ; e9 2c 015279 jbe short 03bc1h ; 76 08 5280 jmp near 03ce8h ; e9 2c 01 5269 5281 cmp ax, strict word 0004ah ; 3d 4a 00 5270 jne short 03b b3h ; 75 1f5282 jne short 03be0h ; 75 1f 5271 5283 mov bx, 00da0h ; bb a0 0d 5272 5284 mov cx, ds ; 8c d9 5273 5285 mov ax, strict word 00004h ; b8 04 00 5274 call 01923h ; e8 84dd5286 call 01923h ; e8 57 dd 5275 5287 push word [bp+016h] ; ff 76 16 5276 5288 push 002fch ; 68 fc 02 5277 5289 push 0030bh ; 68 0b 03 5278 5290 push strict byte 00004h ; 6a 04 5279 call 01966h ; e8 b9dd5291 call 01966h ; e8 8c dd 5280 5292 add sp, strict byte 00008h ; 83 c4 08 5281 jmp near 03 cd6h ; e9 23 015282 jmp near 03c bbh ; e9 05 015293 jmp near 03d03h ; e9 23 01 5294 jmp near 03ce8h ; e9 05 01 5283 5295 mov dx, word [bp+00ah] ; 8b 56 0a 5284 5296 mov ax, word [bp+004h] ; 8b 46 04 5285 5297 mov bx, strict word 00013h ; bb 13 00 5286 call 0165eh ; e8 9cda5298 call 0165eh ; e8 6f da 5287 5299 mov es, di ; 8e c7 5288 5300 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5291 5303 inc dx ; 42 5292 5304 mov ax, word [bp+004h] ; 8b 46 04 5293 call 0165eh ; e8 8ada5305 call 0165eh ; e8 5d da 5294 5306 mov es, di ; 8e c7 5295 5307 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5299 5311 inc dx ; 42 5300 5312 mov ax, word [bp+004h] ; 8b 46 04 5301 call 0165eh ; e8 77da5313 call 0165eh ; e8 4a da 5302 5314 mov es, di ; 8e c7 5303 5315 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5306 5318 add dx, strict byte 00003h ; 83 c2 03 5307 5319 mov ax, word [bp+004h] ; 8b 46 04 5308 call 0165eh ; e8 63da5320 call 0165eh ; e8 36 da 5309 5321 mov es, di ; 8e c7 5310 5322 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5313 5325 add dx, strict byte 00004h ; 83 c2 04 5314 5326 mov ax, word [bp+004h] ; 8b 46 04 5315 call 0169ah ; e8 89da5327 call 0169ah ; e8 5c da 5316 5328 mov es, di ; 8e c7 5317 5329 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5319 5331 add dx, strict byte 00008h ; 83 c2 08 5320 5332 mov ax, word [bp+004h] ; 8b 46 04 5321 call 0167ah ; e8 57da5333 call 0167ah ; e8 2a da 5322 5334 mov es, di ; 8e c7 5323 5335 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5325 5337 add dx, strict byte 0000ah ; 83 c2 0a 5326 5338 mov ax, word [bp+004h] ; 8b 46 04 5327 call 0167ah ; e8 45da5339 call 0167ah ; e8 18 da 5328 5340 mov es, di ; 8e c7 5329 5341 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5331 5343 add dx, strict byte 0000ch ; 83 c2 0c 5332 5344 mov ax, word [bp+004h] ; 8b 46 04 5333 call 0167ah ; e8 33da5345 call 0167ah ; e8 06 da 5334 5346 mov es, di ; 8e c7 5335 5347 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5337 5349 add dx, strict byte 0000eh ; 83 c2 0e 5338 5350 mov ax, word [bp+004h] ; 8b 46 04 5339 call 0167ah ; e8 21 da5351 call 0167ah ; e8 f4 d9 5340 5352 mov es, di ; 8e c7 5341 5353 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5344 5356 add dx, strict byte 00010h ; 83 c2 10 5345 5357 mov ax, word [bp+004h] ; 8b 46 04 5346 call 0165eh ; e8 f1d95358 call 0165eh ; e8 c4 d9 5347 5359 mov es, di ; 8e c7 5348 5360 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5351 5363 add dx, strict byte 00011h ; 83 c2 11 5352 5364 mov ax, word [bp+004h] ; 8b 46 04 5353 call 0165eh ; e8 ddd95365 call 0165eh ; e8 b0 d9 5354 5366 mov es, di ; 8e c7 5355 5367 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5358 5370 add dx, strict byte 00012h ; 83 c2 12 5359 5371 mov ax, word [bp+004h] ; 8b 46 04 5360 call 0165eh ; e8 c9d95372 call 0165eh ; e8 9c d9 5361 5373 test byte [bp+016h], 0ffh ; f6 46 16 ff 5362 jne short 03c a1h ; 75 065374 jne short 03cceh ; 75 06 5363 5375 mov es, di ; 8e c7 5364 5376 mov byte [es:si], 000h ; 26 c6 04 00 … … 5367 5379 mov dx, strict word 00074h ; ba 74 00 5368 5380 mov ax, strict word 00040h ; b8 40 00 5369 call 0165eh ; e8 aed95381 call 0165eh ; e8 81 d9 5370 5382 and byte [bp+01ch], 0feh ; 80 66 1c fe 5371 5383 lea sp, [bp-004h] ; 8d 66 fc … … 5377 5389 mov cx, ds ; 8c d9 5378 5390 mov ax, strict word 00004h ; b8 04 00 5379 call 01923h ; e8 5ddc5391 call 01923h ; e8 30 dc 5380 5392 mov ax, word [bp+016h] ; 8b 46 16 5381 5393 shr ax, 008h ; c1 e8 08 … … 5383 5395 push 002fch ; 68 fc 02 5384 5396 push 00333h ; 68 33 03 5385 jmp near 03b a8h ; e9 d2 fe5397 jmp near 03bd5h ; e9 d2 fe 5386 5398 mov ax, word [bp+016h] ; 8b 46 16 5387 5399 xor ah, ah ; 30 e4 … … 5393 5405 mov dx, strict word 00074h ; ba 74 00 5394 5406 mov ax, strict word 00040h ; b8 40 00 5395 call 0165eh ; e8 6dd95407 call 0165eh ; e8 40 d9 5396 5408 or byte [bp+01ch], 001h ; 80 4e 1c 01 5397 jmp short 03c b4h ; eb bd5398 device_is_cdrom_: ; 0xf3 cf7LB 0x355409 jmp short 03ce1h ; eb bd 5410 device_is_cdrom_: ; 0xf3d24 LB 0x35 5399 5411 push bp ; 55 5400 5412 mov bp, sp ; 89 e5 … … 5404 5416 mov dx, strict word 0000eh ; ba 0e 00 5405 5417 mov ax, strict word 00040h ; b8 40 00 5406 call 0166ch ; e8 65d95418 call 0166ch ; e8 38 d9 5407 5419 cmp bl, 010h ; 80 fb 10 5408 jc short 03d 10h ; 72 045420 jc short 03d3dh ; 72 04 5409 5421 xor ax, ax ; 31 c0 5410 jmp short 03d 25h ; eb 155422 jmp short 03d52h ; eb 15 5411 5423 xor bh, bh ; 30 ff 5412 5424 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5414 5426 add bx, 00122h ; 81 c3 22 01 5415 5427 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5416 jne short 03d 0ch ; 75 ea5428 jne short 03d39h ; 75 ea 5417 5429 mov ax, strict word 00001h ; b8 01 00 5418 5430 lea sp, [bp-004h] ; 8d 66 fc … … 5421 5433 pop bp ; 5d 5422 5434 retn ; c3 5423 cdrom_boot_: ; 0xf3d 2c LB 0x4345435 cdrom_boot_: ; 0xf3d59 LB 0x435 5424 5436 push bp ; 55 5425 5437 mov bp, sp ; 89 e5 … … 5432 5444 mov dx, strict word 0000eh ; ba 0e 00 5433 5445 mov ax, strict word 00040h ; b8 40 00 5434 call 0166ch ; e8 2b d95435 mov word [bp-01 ah], ax ; 89 46 e65446 call 0166ch ; e8 fe d8 5447 mov word [bp-012h], ax ; 89 46 ee 5436 5448 mov si, 00366h ; be 66 03 5437 mov word [bp-01 6h], ax ; 89 46 ea5438 mov word [bp-01 8h], 00122h ; c7 46 e822 015439 mov word [bp-01 2h], ax ; 89 46 ee5449 mov word [bp-014h], ax ; 89 46 ec 5450 mov word [bp-016h], 00122h ; c7 46 ea 22 01 5451 mov word [bp-010h], ax ; 89 46 f0 5440 5452 mov byte [bp-00ch], 000h ; c6 46 f4 00 5441 jmp short 03d 61h ; eb 095453 jmp short 03d8eh ; eb 09 5442 5454 inc byte [bp-00ch] ; fe 46 f4 5443 5455 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5444 jnc short 03d 6dh ; 73 0c5456 jnc short 03d9ah ; 73 0c 5445 5457 mov al, byte [bp-00ch] ; 8a 46 f4 5446 5458 xor ah, ah ; 30 e4 5447 call 03 cf7h ; e8 8e ff5459 call 03d24h ; e8 8e ff 5448 5460 test ax, ax ; 85 c0 5449 je short 03d 58h ; 74 eb5461 je short 03d85h ; 74 eb 5450 5462 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5451 jc short 03d 79h ; 72 065463 jc short 03da6h ; 72 06 5452 5464 mov ax, strict word 00002h ; b8 02 00 5453 jmp near 04 0fdh ; e9 84035465 jmp near 0412bh ; e9 85 03 5454 5466 mov cx, strict word 0000ch ; b9 0c 00 5455 5467 xor bx, bx ; 31 db 5456 5468 mov dx, ss ; 8c d2 5457 5469 lea ax, [bp-026h] ; 8d 46 da 5458 call 0a0 00h ; e8 7a625470 call 0a030h ; e8 7d 62 5459 5471 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5460 5472 mov ax, strict word 00011h ; b8 11 00 … … 5468 5480 xchg ah, al ; 86 c4 5469 5481 mov word [bp-01fh], ax ; 89 46 e1 5470 mov es, [bp-01 2h] ; 8e 46 ee5471 mov bx, word [bp-01 8h] ; 8b 5e e85482 mov es, [bp-010h] ; 8e 46 f0 5483 mov bx, word [bp-016h] ; 8b 5e ea 5472 5484 mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00 5473 5485 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5474 5486 mov byte [bp-00eh], 000h ; c6 46 f2 00 5475 jmp short 03d c4h ; eb 095487 jmp short 03df1h ; eb 09 5476 5488 inc byte [bp-00eh] ; fe 46 f2 5477 5489 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5478 jnbe short 03e 00h ; 77 3c5490 jnbe short 03e2dh ; 77 3c 5479 5491 mov al, byte [bp-00ch] ; 8a 46 f4 5480 5492 xor ah, ah ; 30 e4 5481 5493 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5482 mov es, [bp-01 2h] ; 8e 46 ee5483 mov bx, word [bp-01 8h] ; 8b 5e e85494 mov es, [bp-010h] ; 8e 46 f0 5495 mov bx, word [bp-016h] ; 8b 5e ea 5484 5496 add bx, ax ; 01 c3 5485 5497 mov al, byte [es:bx+022h] ; 26 8a 47 22 … … 5500 5512 call word [word di+0006ah] ; ff 95 6a 00 5501 5513 test ax, ax ; 85 c0 5502 jne short 03d bbh ; 75 bb5514 jne short 03de8h ; 75 bb 5503 5515 test ax, ax ; 85 c0 5504 je short 03e 0ah ; 74 065516 je short 03e37h ; 74 06 5505 5517 mov ax, strict word 00003h ; b8 03 00 5506 jmp near 04 0fdh ; e9 f3025518 jmp near 0412bh ; e9 f4 02 5507 5519 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5508 je short 03e 17h ; 74 065520 je short 03e44h ; 74 06 5509 5521 mov ax, strict word 00004h ; b8 04 00 5510 jmp near 04 0fdh ; e9 e6025522 jmp near 0412bh ; e9 e7 02 5511 5523 xor di, di ; 31 ff 5512 jmp short 03e 21h ; eb 065524 jmp short 03e4eh ; eb 06 5513 5525 inc di ; 47 5514 5526 cmp di, strict byte 00005h ; 83 ff 05 5515 jnc short 03e 31h ; 73 105527 jnc short 03e5eh ; 73 10 5516 5528 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5517 5529 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5518 je short 03e 1bh ; 74 f05530 je short 03e48h ; 74 f0 5519 5531 mov ax, strict word 00005h ; b8 05 00 5520 jmp near 04 0fdh ; e9 cc025532 jmp near 0412bh ; e9 cd 02 5521 5533 xor di, di ; 31 ff 5522 jmp short 03e 3bh ; eb 065534 jmp short 03e68h ; eb 06 5523 5535 inc di ; 47 5524 5536 cmp di, strict byte 00017h ; 83 ff 17 5525 jnc short 03e 4bh ; 73 105537 jnc short 03e78h ; 73 10 5526 5538 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5527 5539 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5528 je short 03e 35h ; 74 f05540 je short 03e62h ; 74 f0 5529 5541 mov ax, strict word 00006h ; b8 06 00 5530 jmp near 04 0fdh ; e9 b2025542 jmp near 0412bh ; e9 b3 02 5531 5543 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5532 5544 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5543 5555 xor ah, ah ; 30 e4 5544 5556 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5545 mov es, [bp-01 2h] ; 8e 46 ee5546 mov bx, word [bp-01 8h] ; 8b 5e e85557 mov es, [bp-010h] ; 8e 46 f0 5558 mov bx, word [bp-016h] ; 8b 5e ea 5547 5559 add bx, ax ; 01 c3 5548 5560 mov al, byte [es:bx+022h] ; 26 8a 47 22 … … 5563 5575 call word [word di+0006ah] ; ff 95 6a 00 5564 5576 test ax, ax ; 85 c0 5565 je short 03e adh ; 74 065577 je short 03edah ; 74 06 5566 5578 mov ax, strict word 00007h ; b8 07 00 5567 jmp near 04 0fdh ; e9 50025579 jmp near 0412bh ; e9 51 02 5568 5580 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5569 je short 03e bah ; 74 065581 je short 03ee7h ; 74 06 5570 5582 mov ax, strict word 00008h ; b8 08 00 5571 jmp near 04 0fdh ; e9 43025583 jmp near 0412bh ; e9 44 02 5572 5584 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5573 je short 03e c7h ; 74 065585 je short 03ef4h ; 74 06 5574 5586 mov ax, strict word 00009h ; b8 09 00 5575 jmp near 04 0fdh ; e9 36025587 jmp near 0412bh ; e9 37 02 5576 5588 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5577 je short 03 ed4h ; 74 065589 je short 03f01h ; 74 06 5578 5590 mov ax, strict word 0000ah ; b8 0a 00 5579 jmp near 04 0fdh ; e9 29025591 jmp near 0412bh ; e9 2a 02 5580 5592 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5581 jne short 03e ceh ; 75 f35593 jne short 03efbh ; 75 f3 5582 5594 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5583 je short 03 ee8h ; 74 065595 je short 03f15h ; 74 06 5584 5596 mov ax, strict word 0000bh ; b8 0b 00 5585 jmp near 04 0fdh ; e9 15025597 jmp near 0412bh ; e9 16 02 5586 5598 mov al, byte [bp-00805h] ; 8a 86 fb f7 5587 mov es, [bp-01 6h] ; 8e 46 ea5599 mov es, [bp-014h] ; 8e 46 ec 5588 5600 mov byte [es:si+001h], al ; 26 88 44 01 5589 5601 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5590 jne short 03f 01h ; 75 075602 jne short 03f2eh ; 75 07 5591 5603 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5592 jmp short 03f 14h ; eb 135604 jmp short 03f41h ; eb 13 5593 5605 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5594 jnc short 03f 0fh ; 73 075606 jnc short 03f3ch ; 73 07 5595 5607 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5596 jmp short 03f 14h ; eb 055608 jmp short 03f41h ; eb 05 5597 5609 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5598 5610 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 5603 5615 ; sub ax, dx ; 2b c2 5604 5616 sar ax, 1 ; d1 f8 5605 mov es, [bp-01 6h] ; 8e 46 ea5617 mov es, [bp-014h] ; 8e 46 ec 5606 5618 mov byte [es:si+003h], al ; 26 88 44 03 5607 5619 mov ax, bx ; 89 d8 … … 5611 5623 mov word [es:si+004h], dx ; 26 89 54 04 5612 5624 mov ax, word [bp-00804h] ; 8b 86 fc f7 5613 mov word [bp-01 0h], ax ; 89 46 f05625 mov word [bp-01ah], ax ; 89 46 e6 5614 5626 test ax, ax ; 85 c0 5615 jne short 03f 43h ; 75 055616 mov word [bp-01 0h], 007c0h ; c7 46 f0c0 075617 mov ax, word [bp-01 0h] ; 8b 46 f05618 mov es, [bp-01 6h] ; 8e 46 ea5627 jne short 03f70h ; 75 05 5628 mov word [bp-01ah], 007c0h ; c7 46 e6 c0 07 5629 mov ax, word [bp-01ah] ; 8b 46 e6 5630 mov es, [bp-014h] ; 8e 46 ec 5619 5631 mov word [es:si+00ch], ax ; 26 89 44 0c 5620 5632 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 … … 5622 5634 mov word [es:si+00eh], di ; 26 89 7c 0e 5623 5635 test di, di ; 85 ff 5624 je short 03f 65h ; 74 065636 je short 03f92h ; 74 06 5625 5637 cmp di, 00400h ; 81 ff 00 04 5626 jbe short 03f 6bh ; 76 065638 jbe short 03f98h ; 76 06 5627 5639 mov ax, strict word 0000ch ; b8 0c 00 5628 jmp near 04 0fdh ; e9 92015640 jmp near 0412bh ; e9 93 01 5629 5641 mov ax, word [bp-007feh] ; 8b 86 02 f8 5630 5642 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5643 5655 xchg ah, al ; 86 c4 5644 5656 mov word [bp-01fh], ax ; 89 46 e1 5645 mov es, [bp-01 2h] ; 8e 46 ee5646 mov bx, word [bp-01 8h] ; 8b 5e e85657 mov es, [bp-010h] ; 8e 46 f0 5658 mov bx, word [bp-016h] ; 8b 5e ea 5647 5659 mov word [es:bx+00eh], cx ; 26 89 4f 0e 5648 5660 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 … … 5661 5673 xor ah, ah ; 30 e4 5662 5674 add ax, ax ; 01 c0 5663 mov word [bp-01 4h], ax ; 89 46 ec5664 push word [bp-01 0h] ; ff 76 f05675 mov word [bp-018h], ax ; 89 46 e8 5676 push word [bp-01ah] ; ff 76 e6 5665 5677 push strict byte 00000h ; 6a 00 5666 5678 push strict byte 00001h ; 6a 01 … … 5670 5682 sal ax, 1 ; d1 e0 5671 5683 rcl di, 1 ; d1 d7 5672 loop 0 3fdfh ; e2 fa5684 loop 0400ch ; e2 fa 5673 5685 push di ; 57 5674 5686 push ax ; 50 … … 5679 5691 lea bx, [bp-026h] ; 8d 5e da 5680 5692 mov dx, strict word 0000ch ; ba 0c 00 5681 mov di, word [bp-01 4h] ; 8b 7e ec5693 mov di, word [bp-018h] ; 8b 7e e8 5682 5694 call word [word di+0006ah] ; ff 95 6a 00 5683 mov es, [bp-01 2h] ; 8e 46 ee5684 mov bx, word [bp-01 8h] ; 8b 5e e85695 mov es, [bp-010h] ; 8e 46 f0 5696 mov bx, word [bp-016h] ; 8b 5e ea 5685 5697 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5686 5698 test ax, ax ; 85 c0 5687 je short 040 13h ; 74 065699 je short 04040h ; 74 06 5688 5700 mov ax, strict word 0000dh ; b8 0d 00 5689 jmp near 04 0fdh ; e9 ea005690 mov es, [bp-01 6h] ; 8e 46 ea5701 jmp near 0412bh ; e9 eb 00 5702 mov es, [bp-014h] ; 8e 46 ec 5691 5703 mov al, byte [es:si+001h] ; 26 8a 44 01 5692 5704 cmp AL, strict byte 002h ; 3c 02 5693 jc short 040 2bh ; 72 0d5694 jbe short 040 46h ; 76 265705 jc short 04058h ; 72 0d 5706 jbe short 04073h ; 76 26 5695 5707 cmp AL, strict byte 004h ; 3c 04 5696 je short 040 56h ; 74 325708 je short 04083h ; 74 32 5697 5709 cmp AL, strict byte 003h ; 3c 03 5698 je short 040 4eh ; 74 265699 jmp near 040 a2h ; e9 77005710 je short 0407bh ; 74 26 5711 jmp near 040d0h ; e9 78 00 5700 5712 cmp AL, strict byte 001h ; 3c 01 5701 jne short 040 a2h ; 75 735702 mov es, [bp-01 6h] ; 8e 46 ea5713 jne short 040d0h ; 75 74 5714 mov es, [bp-014h] ; 8e 46 ec 5703 5715 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5704 5716 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5705 5717 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5706 jmp short 040 a2h ; eb 5c5718 jmp short 040d0h ; eb 5d 5707 5719 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5708 jmp short 040 38h ; eb ea5720 jmp short 04065h ; eb ea 5709 5721 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5710 jmp short 040 38h ; eb e25722 jmp short 04065h ; eb e2 5711 5723 mov dx, 001c4h ; ba c4 01 5712 mov ax, word [bp-01 0h] ; 8b 46 f05713 call 01650h ; e8 f1d55724 mov ax, word [bp-01ah] ; 8b 46 e6 5725 call 01650h ; e8 c4 d5 5714 5726 and AL, strict byte 03fh ; 24 3f 5715 5727 xor ah, ah ; 30 e4 5716 mov es, [bp-01 6h] ; 8e 46 ea5728 mov es, [bp-014h] ; 8e 46 ec 5717 5729 mov word [es:si+014h], ax ; 26 89 44 14 5718 5730 mov dx, 001c4h ; ba c4 01 5719 mov ax, word [bp-01 0h] ; 8b 46 f05720 call 01650h ; e8 ddd55721 xor ah, ah ; 30 e45731 mov ax, word [bp-01ah] ; 8b 46 e6 5732 call 01650h ; e8 b0 d5 5733 and ax, 000c0h ; 25 c0 00 5722 5734 mov bx, ax ; 89 c3 5723 5735 sal bx, 002h ; c1 e3 02 5724 5736 mov dx, 001c5h ; ba c5 01 5725 mov ax, word [bp-01 0h] ; 8b 46 f05726 call 01650h ; e8 cdd55737 mov ax, word [bp-01ah] ; 8b 46 e6 5738 call 01650h ; e8 9f d5 5727 5739 xor ah, ah ; 30 e4 5728 5740 add ax, bx ; 01 d8 5729 5741 inc ax ; 40 5730 mov es, [bp-01 6h] ; 8e 46 ea5742 mov es, [bp-014h] ; 8e 46 ec 5731 5743 mov word [es:si+012h], ax ; 26 89 44 12 5732 5744 mov dx, 001c3h ; ba c3 01 5733 mov ax, word [bp-01 0h] ; 8b 46 f05734 call 01650h ; e8 b8d55745 mov ax, word [bp-01ah] ; 8b 46 e6 5746 call 01650h ; e8 8a d5 5735 5747 xor ah, ah ; 30 e4 5736 5748 inc ax ; 40 5737 mov es, [bp-01 6h] ; 8e 46 ea5749 mov es, [bp-014h] ; 8e 46 ec 5738 5750 mov word [es:si+010h], ax ; 26 89 44 10 5739 mov es, [bp-01 6h] ; 8e 46 ea5751 mov es, [bp-014h] ; 8e 46 ec 5740 5752 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5741 je short 04 0e3h ; 74 375753 je short 04111h ; 74 37 5742 5754 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5743 jne short 040 cbh ; 75 185755 jne short 040f9h ; 75 18 5744 5756 mov dx, strict word 00010h ; ba 10 00 5745 5757 mov ax, strict word 00040h ; b8 40 00 5746 call 01650h ; e8 94d55758 call 01650h ; e8 66 d5 5747 5759 mov bl, al ; 88 c3 5748 5760 or bl, 041h ; 80 cb 41 … … 5750 5762 mov dx, strict word 00010h ; ba 10 00 5751 5763 mov ax, strict word 00040h ; b8 40 00 5752 jmp short 04 0e0h ; eb 155764 jmp short 0410eh ; eb 15 5753 5765 mov dx, 00304h ; ba 04 03 5754 mov ax, word [bp-01 ah] ; 8b 46 e65755 call 01650h ; e8 7cd55766 mov ax, word [bp-012h] ; 8b 46 ee 5767 call 01650h ; e8 4e d5 5756 5768 mov bl, al ; 88 c3 5757 5769 db 0feh, 0c3h … … 5759 5771 xor bh, bh ; 30 ff 5760 5772 mov dx, 00304h ; ba 04 03 5761 mov ax, word [bp-01 ah] ; 8b 46 e65762 call 0165eh ; e8 7bd55763 mov es, [bp-01 6h] ; 8e 46 ea5773 mov ax, word [bp-012h] ; 8b 46 ee 5774 call 0165eh ; e8 4d d5 5775 mov es, [bp-014h] ; 8e 46 ec 5764 5776 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5765 je short 04 0f1h ; 74 045777 je short 0411fh ; 74 04 5766 5778 mov byte [es:si], 001h ; 26 c6 04 01 5767 mov es, [bp-01 6h] ; 8e 46 ea5779 mov es, [bp-014h] ; 8e 46 ec 5768 5780 mov al, byte [es:si+002h] ; 26 8a 44 02 5769 5781 xor ah, ah ; 30 e4 … … 5778 5790 retn ; c3 5779 5791 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5780 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 06h, 045h, 005h5781 db 042h, 0 38h, 042h, 062h, 042h, 02dh, 042h, 062h, 042h, 02dh, 042h, 054h, 044h, 03ah, 044h, 006h5782 db 045h, 0 06h, 045h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 03ah, 044h, 0fdh, 044h, 03ah5783 db 044h, 0 06h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h, 045h, 006h5784 db 045h, 0 06h, 045h, 006h, 045h, 006h, 045h, 006h, 045h5785 _int13_cdemu: ; 0xf41 60LB 0x4425792 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 034h, 045h, 033h 5793 db 042h, 066h, 042h, 090h, 042h, 05bh, 042h, 090h, 042h, 05bh, 042h, 082h, 044h, 068h, 044h, 034h 5794 db 045h, 034h, 045h, 068h, 044h, 068h, 044h, 068h, 044h, 068h, 044h, 068h, 044h, 02bh, 045h, 068h 5795 db 044h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h 5796 db 045h, 034h, 045h, 034h, 045h, 034h, 045h, 034h, 045h 5797 _int13_cdemu: ; 0xf418e LB 0x442 5786 5798 push bp ; 55 5787 5799 mov bp, sp ; 89 e5 … … 5791 5803 mov dx, strict word 0000eh ; ba 0e 00 5792 5804 mov ax, strict word 00040h ; b8 40 00 5793 call 0166ch ; e8 fbd45805 call 0166ch ; e8 cd d4 5794 5806 mov di, 00366h ; bf 66 03 5795 5807 mov cx, ax ; 89 c1 … … 5807 5819 mov dx, strict word 00074h ; ba 74 00 5808 5820 mov ax, strict word 00040h ; b8 40 00 5809 call 0165eh ; e8 bed45821 call 0165eh ; e8 90 d4 5810 5822 mov es, cx ; 8e c1 5811 5823 cmp byte [es:di], 000h ; 26 80 3d 00 5812 je short 041 b7h ; 74 0f5824 je short 041e5h ; 74 0f 5813 5825 mov al, byte [es:di+002h] ; 26 8a 45 02 5814 5826 xor ah, ah ; 30 e4 … … 5816 5828 xor dh, dh ; 30 f6 5817 5829 cmp ax, dx ; 39 d0 5818 je short 04 1e0h ; 74 295830 je short 0420eh ; 74 29 5819 5831 mov bx, 00da0h ; bb a0 0d 5820 5832 mov cx, ds ; 8c d9 5821 5833 mov ax, strict word 00004h ; b8 04 00 5822 call 01923h ; e8 61d75834 call 01923h ; e8 33 d7 5823 5835 mov ax, word [bp+012h] ; 8b 46 12 5824 5836 xor ah, ah ; 30 e4 … … 5830 5842 push 00358h ; 68 58 03 5831 5843 push strict byte 00004h ; 6a 04 5832 call 01966h ; e8 8cd75844 call 01966h ; e8 5e d7 5833 5845 add sp, strict byte 0000ah ; 83 c4 0a 5834 jmp near 045 26h ; e9 46 035846 jmp near 04554h ; e9 46 03 5835 5847 mov ax, word [bp+016h] ; 8b 46 16 5836 5848 shr ax, 008h ; c1 e8 08 5837 5849 cmp ax, strict word 00050h ; 3d 50 00 5838 jnbe short 042 5fh ; 77 745850 jnbe short 0428dh ; 77 74 5839 5851 push CS ; 0e 5840 5852 pop ES ; 07 5841 5853 mov cx, strict word 0001eh ; b9 1e 00 5842 mov di, 041 07h ; bf 07415854 mov di, 04135h ; bf 35 41 5843 5855 repne scasb ; f2 ae 5844 5856 sal cx, 1 ; d1 e1 5845 5857 mov di, cx ; 89 cf 5846 mov ax, word [cs:di+041 24h] ; 2e 8b 85 24415858 mov ax, word [cs:di+04152h] ; 2e 8b 85 52 41 5847 5859 mov bx, word [bp+016h] ; 8b 5e 16 5848 5860 xor bh, bh ; 30 ff … … 5857 5869 add bx, bx ; 01 db 5858 5870 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5859 je short 042 2ah ; 74 095871 je short 04258h ; 74 09 5860 5872 mov al, byte [bp-006h] ; 8a 46 fa 5861 5873 xor ah, ah ; 30 e4 5862 5874 call word [word bx+00076h] ; ff 97 76 00 5863 jmp near 044 3ah ; e9 0d 025875 jmp near 04468h ; e9 0d 02 5864 5876 mov ax, word [bp+016h] ; 8b 46 16 5865 5877 xor ah, ah ; 30 e4 5866 5878 or ah, 003h ; 80 cc 03 5867 jmp near 045 2eh ; e9 f6 025879 jmp near 0455ch ; e9 f6 02 5868 5880 mov dx, strict word 00074h ; ba 74 00 5869 5881 mov ax, strict word 00040h ; b8 40 00 5870 call 01650h ; e8 0f d45882 call 01650h ; e8 e1 d3 5871 5883 mov cl, al ; 88 c1 5872 5884 xor ah, ah ; 30 e4 … … 5877 5889 mov dx, strict word 00074h ; ba 74 00 5878 5890 mov ax, strict word 00040h ; b8 40 00 5879 call 0165eh ; e8 06 d45891 call 0165eh ; e8 d8 d3 5880 5892 test cl, cl ; 84 c9 5881 je short 042 bch ; 74 605882 jmp near 045 42h ; e9 e3 025883 jmp near 045 06h ; e9 a4 025893 je short 042eah ; 74 60 5894 jmp near 04570h ; e9 e3 02 5895 jmp near 04534h ; e9 a4 02 5884 5896 mov es, [bp-008h] ; 8e 46 f8 5885 5897 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5905 5917 mov word [bp-00ah], cx ; 89 4e f6 5906 5918 test cx, cx ; 85 c9 5907 je short 042 cah ; 74 1e5919 je short 042f8h ; 74 1e 5908 5920 cmp di, word [bp-010h] ; 3b 7e f0 5909 jc short 042 b9h ; 72 085921 jc short 042e7h ; 72 08 5910 5922 cmp ax, dx ; 39 d0 5911 jnc short 042 b9h ; 73 045923 jnc short 042e7h ; 73 04 5912 5924 cmp si, bx ; 39 de 5913 jc short 042 bfh ; 72 065914 jmp near 045 26h ; e9 6a 025915 jmp near 044 3eh ; e9 7f 015925 jc short 042edh ; 72 06 5926 jmp near 04554h ; e9 6a 02 5927 jmp near 0446ch ; e9 7f 01 5916 5928 mov dx, word [bp+016h] ; 8b 56 16 5917 5929 shr dx, 008h ; c1 ea 08 5918 5930 cmp dx, strict byte 00004h ; 83 fa 04 5919 jne short 042 cdh ; 75 035920 jmp near 044 3ah ; e9 6d 015931 jne short 042fbh ; 75 03 5932 jmp near 04468h ; e9 6d 01 5921 5933 mov dx, word [bp+010h] ; 8b 56 10 5922 5934 shr dx, 004h ; c1 ea 04 … … 5929 5941 xor dl, dl ; 30 d2 5930 5942 xor cx, cx ; 31 c9 5931 call 09f 90h ; e8 a55c5943 call 09fc0h ; e8 a7 5c 5932 5944 xor bx, bx ; 31 db 5933 5945 add ax, si ; 01 f0 … … 5935 5947 mov bx, di ; 89 fb 5936 5948 xor cx, cx ; 31 c9 5937 call 09f 90h ; e8 985c5949 call 09fc0h ; e8 9a 5c 5938 5950 mov bx, ax ; 89 c3 5939 5951 mov ax, word [bp-010h] ; 8b 46 f0 … … 5970 5982 mov dx, ss ; 8c d2 5971 5983 lea ax, [bp-02eh] ; 8d 46 d2 5972 call 0a0 00h ; e8 b15c5984 call 0a030h ; e8 b3 5c 5973 5985 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5974 5986 mov ax, word [bp-014h] ; 8b 46 ec … … 6020 6032 sal si, 1 ; d1 e6 6021 6033 rcl di, 1 ; d1 d7 6022 loop 043 d1h ; e2 fa6034 loop 043ffh ; e2 fa 6023 6035 push di ; 57 6024 6036 push si ; 56 … … 6036 6048 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 6037 6049 test al, al ; 84 c0 6038 je short 044 3ah ; 74 376050 je short 04468h ; 74 37 6039 6051 mov bx, 00da0h ; bb a0 0d 6040 6052 mov cx, ds ; 8c d9 6041 6053 mov ax, strict word 00004h ; b8 04 00 6042 call 01923h ; e8 15 d56054 call 01923h ; e8 e7 d4 6043 6055 mov al, dl ; 88 d0 6044 6056 xor ah, ah ; 30 e4 … … 6050 6062 push 0038eh ; 68 8e 03 6051 6063 push strict byte 00004h ; 6a 04 6052 call 01966h ; e8 41d56064 call 01966h ; e8 13 d5 6053 6065 add sp, strict byte 0000ah ; 83 c4 0a 6054 6066 mov ax, word [bp+016h] ; 8b 46 16 … … 6057 6069 mov word [bp+016h], ax ; 89 46 16 6058 6070 mov byte [bp+016h], 000h ; c6 46 16 00 6059 jmp near 045 31h ; e9 f7 006071 jmp near 0455fh ; e9 f7 00 6060 6072 mov byte [bp+017h], 000h ; c6 46 17 00 6061 6073 xor bx, bx ; 31 db 6062 6074 mov dx, strict word 00074h ; ba 74 00 6063 6075 mov ax, strict word 00040h ; b8 40 00 6064 call 0165eh ; e8 15 d26076 call 0165eh ; e8 e7 d1 6065 6077 and byte [bp+01ch], 0feh ; 80 66 1c fe 6066 6078 lea sp, [bp-004h] ; 8d 66 fc … … 6110 6122 mov word [bp+010h], ax ; 89 46 10 6111 6123 cmp dl, 003h ; 80 fa 03 6112 je short 04 4e0h ; 74 1a6124 je short 0450eh ; 74 1a 6113 6125 cmp dl, 002h ; 80 fa 02 6114 je short 04 4dch ; 74 116126 je short 0450ah ; 74 11 6115 6127 cmp dl, 001h ; 80 fa 01 6116 jne short 04 4e4h ; 75 146128 jne short 04512h ; 75 14 6117 6129 mov ax, word [bp+010h] ; 8b 46 10 6118 6130 xor al, al ; 30 c0 6119 6131 or AL, strict byte 002h ; 0c 02 6120 6132 mov word [bp+010h], ax ; 89 46 10 6121 jmp short 04 4e4h ; eb 086133 jmp short 04512h ; eb 08 6122 6134 or AL, strict byte 004h ; 0c 04 6123 jmp short 04 4d7h ; eb f76135 jmp short 04505h ; eb f7 6124 6136 or AL, strict byte 005h ; 0c 05 6125 jmp short 04 4d7h ; eb f36137 jmp short 04505h ; eb f3 6126 6138 mov es, [bp-008h] ; 8e 46 f8 6127 6139 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6128 jc short 04 4f1h ; 72 036129 jmp near 044 3ah ; e9 49 ff6140 jc short 0451fh ; 72 03 6141 jmp near 04468h ; e9 49 ff 6130 6142 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6131 6143 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6132 jmp short 04 4eeh ; eb f16144 jmp short 0451ch ; eb f1 6133 6145 or bh, 003h ; 80 cf 03 6134 6146 mov word [bp+016h], bx ; 89 5e 16 6135 jmp near 044 3eh ; e9 38 ff6147 jmp near 0446ch ; e9 38 ff 6136 6148 mov bx, 00da0h ; bb a0 0d 6137 6149 mov cx, ds ; 8c d9 6138 6150 mov ax, strict word 00004h ; b8 04 00 6139 call 01923h ; e8 12 d46151 call 01923h ; e8 e4 d3 6140 6152 mov ax, word [bp+016h] ; 8b 46 16 6141 6153 shr ax, 008h ; c1 e8 08 … … 6144 6156 push 003afh ; 68 af 03 6145 6157 push strict byte 00004h ; 6a 04 6146 call 01966h ; e8 43d46158 call 01966h ; e8 15 d4 6147 6159 add sp, strict byte 00008h ; 83 c4 08 6148 6160 mov ax, word [bp+016h] ; 8b 46 16 … … 6155 6167 mov dx, strict word 00074h ; ba 74 00 6156 6168 mov ax, strict word 00040h ; b8 40 00 6157 call 0165eh ; e8 1c d16169 call 0165eh ; e8 ee d0 6158 6170 or byte [bp+01ch], 001h ; 80 4e 1c 01 6159 jmp near 044 4dh ; e9 04 ff6171 jmp near 0447bh ; e9 04 ff 6160 6172 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6161 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 90h, 046h, 0c5h6162 db 04ah, 0 4dh, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 042h, 046h, 090h, 046h, 0c5h, 04ah, 090h6163 db 046h, 0 90h, 046h, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 0c5h, 04ah, 074h, 046h, 0c5h6164 db 04ah, 0 90h, 046h, 07dh, 046h, 0ach, 046h, 042h, 046h, 0ach, 046h, 0eeh, 047h, 089h, 048h, 0ach6165 db 046h, 0 b1h, 048h, 0dfh, 04ah, 0e7h, 04ah, 090h, 046h6166 _int13_cdrom: ; 0xf45 a2LB 0x57d6173 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0beh, 046h, 0f3h 6174 db 04ah, 07bh, 046h, 0beh, 046h, 070h, 046h, 0beh, 046h, 070h, 046h, 0beh, 046h, 0f3h, 04ah, 0beh 6175 db 046h, 0beh, 046h, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0f3h, 04ah, 0a2h, 046h, 0f3h 6176 db 04ah, 0beh, 046h, 0abh, 046h, 0dah, 046h, 070h, 046h, 0dah, 046h, 01ch, 048h, 0b7h, 048h, 0dah 6177 db 046h, 0dfh, 048h, 00dh, 04bh, 015h, 04bh, 0beh, 046h 6178 _int13_cdrom: ; 0xf45d0 LB 0x57d 6167 6179 push bp ; 55 6168 6180 mov bp, sp ; 89 e5 … … 6172 6184 mov dx, strict word 0000eh ; ba 0e 00 6173 6185 mov ax, strict word 00040h ; b8 40 00 6174 call 0166ch ; e8 b9d06186 call 0166ch ; e8 8b d0 6175 6187 mov word [bp-016h], ax ; 89 46 ea 6176 6188 mov si, 00122h ; be 22 01 … … 6179 6191 mov dx, strict word 00074h ; ba 74 00 6180 6192 mov ax, strict word 00040h ; b8 40 00 6181 call 0165eh ; e8 97d06193 call 0165eh ; e8 69 d0 6182 6194 mov ax, word [bp+010h] ; 8b 46 10 6183 6195 xor ah, ah ; 30 e4 6184 6196 cmp ax, 000e0h ; 3d e0 00 6185 jc short 04 5d6h ; 72 056197 jc short 04604h ; 72 05 6186 6198 cmp ax, 000f0h ; 3d f0 00 6187 jc short 04 5f4h ; 72 1e6199 jc short 04622h ; 72 1e 6188 6200 mov ax, word [bp+010h] ; 8b 46 10 6189 6201 xor ah, ah ; 30 e4 … … 6195 6207 push 003ebh ; 68 eb 03 6196 6208 push strict byte 00004h ; 6a 04 6197 call 01966h ; e8 78d36209 call 01966h ; e8 4a d3 6198 6210 add sp, strict byte 0000ah ; 83 c4 0a 6199 jmp near 04 afdh ; e9 09 056211 jmp near 04b2bh ; e9 09 05 6200 6212 mov ax, word [bp+010h] ; 8b 46 10 6201 6213 xor ah, ah ; 30 e4 … … 6206 6218 mov byte [bp-006h], dl ; 88 56 fa 6207 6219 cmp dl, 010h ; 80 fa 10 6208 jc short 046 1dh ; 72 106220 jc short 0464bh ; 72 10 6209 6221 push ax ; 50 6210 6222 mov ax, word [bp+018h] ; 8b 46 18 … … 6213 6225 push 003dfh ; 68 df 03 6214 6226 push 00416h ; 68 16 04 6215 jmp short 04 5e9h ; eb cc6227 jmp short 04617h ; eb cc 6216 6228 mov ax, word [bp+018h] ; 8b 46 18 6217 6229 shr ax, 008h ; c1 e8 08 6218 6230 cmp ax, strict word 00050h ; 3d 50 00 6219 jnbe short 046 90h ; 77 686231 jnbe short 046beh ; 77 68 6220 6232 push CS ; 0e 6221 6233 pop ES ; 07 6222 6234 mov cx, strict word 0001eh ; b9 1e 00 6223 mov di, 045 49h ; bf 49456235 mov di, 04577h ; bf 77 45 6224 6236 repne scasb ; f2 ae 6225 6237 sal cx, 1 ; d1 e1 6226 6238 mov di, cx ; 89 cf 6227 mov ax, word [cs:di+045 66h] ; 2e 8b 85 66456239 mov ax, word [cs:di+04594h] ; 2e 8b 85 94 45 6228 6240 mov bx, word [bp+018h] ; 8b 5e 18 6229 6241 xor bh, bh ; 30 ff … … 6232 6244 xor ah, ah ; 30 e4 6233 6245 or ah, 003h ; 80 cc 03 6234 jmp near 04b 05h ; e9 b8 046246 jmp near 04b33h ; e9 b8 04 6235 6247 mov dx, strict word 00074h ; ba 74 00 6236 6248 mov ax, strict word 00040h ; b8 40 00 6237 call 01650h ; e8 facf6249 call 01650h ; e8 cc cf 6238 6250 mov cl, al ; 88 c1 6239 6251 xor ah, ah ; 30 e4 … … 6244 6256 mov dx, strict word 00074h ; ba 74 00 6245 6257 mov ax, strict word 00040h ; b8 40 00 6246 call 0165eh ; e8 f1cf6258 call 0165eh ; e8 c3 cf 6247 6259 test cl, cl ; 84 c9 6248 je short 046 8dh ; 74 1c6249 jmp near 04b 19h ; e9 a5 046260 je short 046bbh ; 74 1c 6261 jmp near 04b47h ; e9 a5 04 6250 6262 or bh, 002h ; 80 cf 02 6251 6263 mov word [bp+018h], bx ; 89 5e 18 6252 jmp near 04b 08h ; e9 8b 046264 jmp near 04b36h ; e9 8b 04 6253 6265 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6254 6266 or bh, 030h ; 80 cf 30 6255 6267 mov word [bp+018h], bx ; 89 5e 18 6256 6268 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6257 jmp near 04a c9h ; e9 39 046269 jmp near 04af7h ; e9 39 04 6258 6270 mov bx, 00da0h ; bb a0 0d 6259 6271 mov cx, ds ; 8c d9 6260 6272 mov ax, strict word 00004h ; b8 04 00 6261 call 01923h ; e8 88d26273 call 01923h ; e8 5a d2 6262 6274 mov ax, word [bp+018h] ; 8b 46 18 6263 6275 shr ax, 008h ; c1 e8 08 … … 6266 6278 push 00333h ; 68 33 03 6267 6279 push strict byte 00004h ; 6a 04 6268 jmp short 04 6ech ; eb 406280 jmp short 0471ah ; eb 40 6269 6281 mov bx, word [bp+00ch] ; 8b 5e 0c 6270 6282 mov es, [bp+006h] ; 8e 46 06 … … 6281 6293 mov word [bp-022h], ax ; 89 46 de 6282 6294 or ax, word [bp-00eh] ; 0b 46 f2 6283 je short 04 6f5h ; 74 186295 je short 04723h ; 74 18 6284 6296 mov ax, word [bp+018h] ; 8b 46 18 6285 6297 shr ax, 008h ; c1 e8 08 … … 6288 6300 push 00448h ; 68 48 04 6289 6301 push strict byte 00007h ; 6a 07 6290 call 01966h ; e8 77d26302 call 01966h ; e8 49 d2 6291 6303 add sp, strict byte 00008h ; 83 c4 08 6292 jmp near 04 afdh ; e9 08 046304 jmp near 04b2bh ; e9 08 04 6293 6305 mov es, [bp-010h] ; 8e 46 f0 6294 6306 mov bx, word [bp-014h] ; 8b 5e ec … … 6301 6313 mov word [bp-012h], ax ; 89 46 ee 6302 6314 cmp ax, strict word 00044h ; 3d 44 00 6303 je short 047 1ch ; 74 056315 je short 0474ah ; 74 05 6304 6316 cmp ax, strict word 00047h ; 3d 47 00 6305 jne short 047 1fh ; 75 036306 jmp near 04a c5h ; e9 a6 036317 jne short 0474dh ; 75 03 6318 jmp near 04af3h ; e9 a6 03 6307 6319 mov cx, strict word 0000ch ; b9 0c 00 6308 6320 xor bx, bx ; 31 db 6309 6321 mov dx, ss ; 8c d2 6310 6322 lea ax, [bp-030h] ; 8d 46 d0 6311 call 0a0 00h ; e8 d4586323 call 0a030h ; e8 d6 58 6312 6324 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6313 6325 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6341 6353 sal ax, 1 ; d1 e0 6342 6354 rcl dx, 1 ; d1 d2 6343 loop 047 7ch ; e2 fa6355 loop 047aah ; e2 fa 6344 6356 push dx ; 52 6345 6357 push ax ; 50 … … 6359 6371 shr dx, 1 ; d1 ea 6360 6372 rcr ax, 1 ; d1 d8 6361 loop 047 abh ; e2 fa6373 loop 047d9h ; e2 fa 6362 6374 mov es, [bp-010h] ; 8e 46 f0 6363 6375 mov bx, word [bp-014h] ; 8b 5e ec 6364 6376 mov word [es:bx+002h], ax ; 26 89 47 02 6365 6377 cmp byte [bp-018h], 000h ; 80 7e e8 00 6366 je short 048 14h ; 74 536378 je short 04842h ; 74 53 6367 6379 mov bx, 00da0h ; bb a0 0d 6368 6380 mov cx, ds ; 8c d9 6369 6381 mov ax, strict word 00004h ; b8 04 00 6370 call 01923h ; e8 57d16382 call 01923h ; e8 29 d1 6371 6383 mov al, byte [bp-018h] ; 8a 46 e8 6372 6384 xor ah, ah ; 30 e4 … … 6376 6388 push 00471h ; 68 71 04 6377 6389 push strict byte 00004h ; 6a 04 6378 call 01966h ; e8 86d16390 call 01966h ; e8 58 d1 6379 6391 add sp, strict byte 0000ah ; 83 c4 0a 6380 6392 mov ax, word [bp+018h] ; 8b 46 18 6381 6393 xor ah, ah ; 30 e4 6382 6394 or ah, 00ch ; 80 cc 0c 6383 jmp near 04b 05h ; e9 17 036395 jmp near 04b33h ; e9 17 03 6384 6396 cmp bx, strict byte 00002h ; 83 fb 02 6385 jnbe short 048 5ch ; 77 696397 jnbe short 0488ah ; 77 69 6386 6398 mov al, byte [bp-006h] ; 8a 46 fa 6387 6399 xor ah, ah ; 30 e4 … … 6392 6404 mov al, byte [es:di+025h] ; 26 8a 45 25 6393 6405 cmp bx, strict byte 00002h ; 83 fb 02 6394 je short 048 72h ; 74 676406 je short 048a0h ; 74 67 6395 6407 cmp bx, strict byte 00001h ; 83 fb 01 6396 je short 048 4ch ; 74 3c6408 je short 0487ah ; 74 3c 6397 6409 test bx, bx ; 85 db 6398 je short 048 17h ; 74 036399 jmp near 04a c5h ; e9 ae 026410 je short 04845h ; 74 03 6411 jmp near 04af3h ; e9 ae 02 6400 6412 cmp AL, strict byte 0ffh ; 3c ff 6401 jne short 048 2dh ; 75 126413 jne short 0485bh ; 75 12 6402 6414 mov ax, word [bp+018h] ; 8b 46 18 6403 6415 xor ah, ah ; 30 e4 … … 6406 6418 xor al, al ; 30 c0 6407 6419 or AL, strict byte 001h ; 0c 01 6408 jmp near 04b 05h ; e9 d8 026420 jmp near 04b33h ; e9 d8 02 6409 6421 mov dl, byte [bp-006h] ; 8a 56 fa 6410 6422 xor dh, dh ; 30 f6 … … 6419 6431 or AL, strict byte 001h ; 0c 01 6420 6432 mov word [bp+018h], ax ; 89 46 18 6421 jmp short 048 14h ; eb c86433 jmp short 04842h ; eb c8 6422 6434 test al, al ; 84 c0 6423 jne short 048 5fh ; 75 0f6435 jne short 0488dh ; 75 0f 6424 6436 or bh, 0b0h ; 80 cf b0 6425 6437 mov word [bp+018h], bx ; 89 5e 18 6426 6438 mov byte [bp+018h], al ; 88 46 18 6427 jmp near 04b 08h ; e9 ac 026428 jmp near 04 afdh ; e9 9e 026439 jmp near 04b36h ; e9 ac 02 6440 jmp near 04b2bh ; e9 9e 02 6429 6441 mov dl, byte [bp-006h] ; 8a 56 fa 6430 6442 xor dh, dh ; 30 f6 … … 6436 6448 mov byte [es:si+025h], al ; 26 88 44 25 6437 6449 test al, al ; 84 c0 6438 jne short 048 84h ; 75 0e6450 jne short 048b2h ; 75 0e 6439 6451 xor ah, ah ; 30 e4 6440 6452 mov dx, word [bp+018h] ; 8b 56 18 … … 6442 6454 or dx, ax ; 09 c2 6443 6455 mov word [bp+018h], dx ; 89 56 18 6444 jmp short 048 14h ; eb 906456 jmp short 04842h ; eb 90 6445 6457 mov ax, strict word 00001h ; b8 01 00 6446 jmp short 048 78h ; eb ef6458 jmp short 048a6h ; eb ef 6447 6459 mov al, byte [bp-006h] ; 8a 46 fa 6448 6460 xor ah, ah ; 30 e4 … … 6452 6464 mov al, byte [es:si+025h] ; 26 8a 44 25 6453 6465 test al, al ; 84 c0 6454 je short 048 a4h ; 74 066466 je short 048d2h ; 74 06 6455 6467 or bh, 0b1h ; 80 cf b1 6456 jmp near 046 77h ; e9 d3 fd6457 je short 048 cdh ; 74 276468 jmp near 046a5h ; e9 d3 fd 6469 je short 048fbh ; 74 27 6458 6470 mov ax, word [bp+018h] ; 8b 46 18 6459 6471 xor ah, ah ; 30 e4 6460 6472 or ah, 0b1h ; 80 cc b1 6461 jmp near 04b 05h ; e9 54 026473 jmp near 04b33h ; e9 54 02 6462 6474 mov dx, word [bp+00ch] ; 8b 56 0c 6463 6475 mov cx, word [bp+006h] ; 8b 4e 06 … … 6469 6481 mov word [bp-00ch], ax ; 89 46 f4 6470 6482 cmp ax, strict word 0001ah ; 3d 1a 00 6471 jnc short 048 d0h ; 73 056472 jmp short 048 5ch ; eb 8f6473 jmp near 04a c5h ; e9 f5 016474 jc short 049 34h ; 72 626483 jnc short 048feh ; 73 05 6484 jmp short 0488ah ; eb 8f 6485 jmp near 04af3h ; e9 f5 01 6486 jc short 04962h ; 72 62 6475 6487 mov al, byte [bp-006h] ; 8a 46 fa 6476 6488 xor ah, ah ; 30 e4 … … 6496 6508 mov word [es:di+016h], strict word 0ffffh ; 26 c7 45 16 ff ff 6497 6509 cmp word [bp-00ch], strict byte 0001eh ; 83 7e f4 1e 6498 jnc short 049 3dh ; 73 036499 jmp near 04 9f9h ; e9 bc 006510 jnc short 0496bh ; 73 03 6511 jmp near 04a27h ; e9 bc 00 6500 6512 mov es, [bp-00ah] ; 8e 46 f6 6501 6513 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 6540 6552 xor cl, cl ; 30 c9 6541 6553 xor ch, ch ; 30 ed 6542 jmp short 04 9d9h ; eb 056554 jmp short 04a07h ; eb 05 6543 6555 cmp ch, 00fh ; 80 fd 0f 6544 jnc short 04 9efh ; 73 166556 jnc short 04a1dh ; 73 16 6545 6557 mov al, ch ; 88 e8 6546 6558 xor ah, ah ; 30 e4 … … 6548 6560 add dx, 00356h ; 81 c2 56 03 6549 6561 mov ax, word [bp-016h] ; 8b 46 ea 6550 call 01650h ; e8 67cc6562 call 01650h ; e8 39 cc 6551 6563 add cl, al ; 00 c1 6552 6564 db 0feh, 0c5h 6553 6565 ; inc ch ; fe c5 6554 jmp short 04 9d4h ; eb e56566 jmp short 04a02h ; eb e5 6555 6567 neg cl ; f6 d9 6556 6568 mov es, [bp-01eh] ; 8e 46 e2 6557 6569 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6558 6570 cmp word [bp-00ch], strict byte 00042h ; 83 7e f4 42 6559 jnc short 04a 02h ; 73 036560 jmp near 04a c5h ; e9 c3 006571 jnc short 04a30h ; 73 03 6572 jmp near 04af3h ; e9 c3 00 6561 6573 mov al, byte [bp-006h] ; 8a 46 fa 6562 6574 xor ah, ah ; 30 e4 … … 6577 6589 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6578 6590 test al, al ; 84 c0 6579 jne short 04a 4ah ; 75 0c6591 jne short 04a78h ; 75 0c 6580 6592 mov word [es:bx+024h], 05349h ; 26 c7 47 24 49 53 6581 6593 mov word [es:bx+026h], 02041h ; 26 c7 47 26 41 20 … … 6586 6598 mov word [es:bx+02eh], 02020h ; 26 c7 47 2e 20 20 6587 6599 test al, al ; 84 c0 6588 jne short 04a 7fh ; 75 166600 jne short 04aadh ; 75 16 6589 6601 mov word [es:bx+030h], dx ; 26 89 57 30 6590 6602 mov word [es:bx+032h], strict word 00000h ; 26 c7 47 32 00 00 … … 6601 6613 xor al, al ; 30 c0 6602 6614 mov AH, strict byte 01eh ; b4 1e 6603 jmp short 04a aah ; eb 056615 jmp short 04ad8h ; eb 05 6604 6616 cmp ah, 040h ; 80 fc 40 6605 jnc short 04a bch ; 73 126617 jnc short 04aeah ; 73 12 6606 6618 mov dl, ah ; 88 e2 6607 6619 xor dh, dh ; 30 f6 … … 6612 6624 db 0feh, 0c4h 6613 6625 ; inc ah ; fe c4 6614 jmp short 04a a5h ; eb e96626 jmp short 04ad3h ; eb e9 6615 6627 neg al ; f6 d8 6616 6628 mov es, [bp-00ah] ; 8e 46 f6 … … 6620 6632 mov dx, strict word 00074h ; ba 74 00 6621 6633 mov ax, strict word 00040h ; b8 40 00 6622 call 0165eh ; e8 8acb6634 call 0165eh ; e8 5c cb 6623 6635 and byte [bp+01eh], 0feh ; 80 66 1e fe 6624 6636 lea sp, [bp-004h] ; 8d 66 fc … … 6629 6641 or bh, 006h ; 80 cf 06 6630 6642 mov word [bp+018h], bx ; 89 5e 18 6631 jmp short 04b 19h ; eb 326643 jmp short 04b47h ; eb 32 6632 6644 cmp bx, strict byte 00006h ; 83 fb 06 6633 je short 04a c5h ; 74 d96645 je short 04af3h ; 74 d9 6634 6646 cmp bx, strict byte 00001h ; 83 fb 01 6635 jc short 04 afdh ; 72 0c6636 jbe short 04a c5h ; 76 d26647 jc short 04b2bh ; 72 0c 6648 jbe short 04af3h ; 76 d2 6637 6649 cmp bx, strict byte 00003h ; 83 fb 03 6638 jc short 04 afdh ; 72 056650 jc short 04b2bh ; 72 05 6639 6651 cmp bx, strict byte 00004h ; 83 fb 04 6640 jbe short 04a c5h ; 76 c86652 jbe short 04af3h ; 76 c8 6641 6653 mov ax, word [bp+018h] ; 8b 46 18 6642 6654 xor ah, ah ; 30 e4 … … 6648 6660 mov dx, strict word 00074h ; ba 74 00 6649 6661 mov ax, strict word 00040h ; b8 40 00 6650 call 0165eh ; e8 45cb6662 call 0165eh ; e8 17 cb 6651 6663 or byte [bp+01eh], 001h ; 80 4e 1e 01 6652 jmp short 04 ad8h ; eb b96653 print_boot_device_: ; 0xf4b 1fLB 0x4b6664 jmp short 04b06h ; eb b9 6665 print_boot_device_: ; 0xf4b4d LB 0x4b 6654 6666 push bp ; 55 6655 6667 mov bp, sp ; 89 e5 6656 6668 push cx ; 51 6657 6669 test al, al ; 84 c0 6658 je short 04b 2ch ; 74 056670 je short 04b5ah ; 74 05 6659 6671 mov dx, strict word 00002h ; ba 02 00 6660 jmp short 04b 46h ; eb 1a6672 jmp short 04b74h ; eb 1a 6661 6673 test dl, dl ; 84 d2 6662 je short 04b 35h ; 74 056674 je short 04b63h ; 74 05 6663 6675 mov dx, strict word 00003h ; ba 03 00 6664 jmp short 04b 46h ; eb 116676 jmp short 04b74h ; eb 11 6665 6677 test bl, 080h ; f6 c3 80 6666 jne short 04b 3eh ; 75 046678 jne short 04b6ch ; 75 04 6667 6679 xor dh, dh ; 30 f6 6668 jmp short 04b 46h ; eb 086680 jmp short 04b74h ; eb 08 6669 6681 test bl, 080h ; f6 c3 80 6670 je short 04b 64h ; 74 216682 je short 04b92h ; 74 21 6671 6683 mov dx, strict word 00001h ; ba 01 00 6672 6684 mov bx, 00da0h ; bb a0 0d 6673 6685 mov cx, ds ; 8c d9 6674 6686 mov ax, strict word 00004h ; b8 04 00 6675 call 01923h ; e8 d2cd6687 call 01923h ; e8 a4 cd 6676 6688 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6677 6689 add dx, 00dc6h ; 81 c2 c6 0d … … 6679 6691 push 00494h ; 68 94 04 6680 6692 push strict byte 00004h ; 6a 04 6681 call 01966h ; e8 05 ce6693 call 01966h ; e8 d7 cd 6682 6694 add sp, strict byte 00006h ; 83 c4 06 6683 6695 lea sp, [bp-002h] ; 8d 66 fe … … 6685 6697 pop bp ; 5d 6686 6698 retn ; c3 6687 print_boot_failure_: ; 0xf4b 6aLB 0x966699 print_boot_failure_: ; 0xf4b98 LB 0x96 6688 6700 push bp ; 55 6689 6701 mov bp, sp ; 89 e5 … … 6696 6708 mov si, cx ; 89 ce 6697 6709 test al, al ; 84 c0 6698 je short 04b 9ah ; 74 1b6710 je short 04bc8h ; 74 1b 6699 6711 mov bx, 00da0h ; bb a0 0d 6700 6712 mov cx, ds ; 8c d9 6701 6713 mov ax, strict word 00004h ; b8 04 00 6702 call 01923h ; e8 99cd6714 call 01923h ; e8 6b cd 6703 6715 push 00ddah ; 68 da 0d 6704 6716 push 004a8h ; 68 a8 04 6705 6717 push strict byte 00004h ; 6a 04 6706 call 01966h ; e8 d1cd6718 call 01966h ; e8 a3 cd 6707 6719 add sp, strict byte 00006h ; 83 c4 06 6708 jmp short 04 bdeh ; eb 446720 jmp short 04c0ch ; eb 44 6709 6721 test ah, ah ; 84 e4 6710 je short 04b aeh ; 74 106722 je short 04bdch ; 74 10 6711 6723 mov bx, 00da0h ; bb a0 0d 6712 6724 mov cx, ds ; 8c d9 6713 6725 mov ax, strict word 00004h ; b8 04 00 6714 call 01923h ; e8 7acd6726 call 01923h ; e8 4c cd 6715 6727 push 00de4h ; 68 e4 0d 6716 jmp short 04b 8dh ; eb df6728 jmp short 04bbbh ; eb df 6717 6729 test bl, 080h ; f6 c3 80 6718 je short 04b c4h ; 74 116730 je short 04bf2h ; 74 11 6719 6731 mov bx, 00da0h ; bb a0 0d 6720 6732 mov cx, ds ; 8c d9 6721 6733 mov ax, strict word 00004h ; b8 04 00 6722 call 01923h ; e8 65cd6734 call 01923h ; e8 37 cd 6723 6735 push si ; 56 6724 6736 push 00dd0h ; 68 d0 0d 6725 jmp short 04 bd3h ; eb 0f6737 jmp short 04c01h ; eb 0f 6726 6738 mov bx, 00da0h ; bb a0 0d 6727 6739 mov cx, ds ; 8c d9 6728 6740 mov ax, strict word 00004h ; b8 04 00 6729 call 01923h ; e8 54cd6741 call 01923h ; e8 26 cd 6730 6742 push si ; 56 6731 6743 push 00dc6h ; 68 c6 0d 6732 6744 push 004bdh ; 68 bd 04 6733 6745 push strict byte 00004h ; 6a 04 6734 call 01966h ; e8 8bcd6746 call 01966h ; e8 5d cd 6735 6747 add sp, strict byte 00008h ; 83 c4 08 6736 6748 cmp byte [bp+004h], 001h ; 80 7e 04 01 6737 jne short 04 bf8h ; 75 146749 jne short 04c26h ; 75 14 6738 6750 test dl, dl ; 84 d2 6739 jne short 04 bedh ; 75 056751 jne short 04c1bh ; 75 05 6740 6752 push 004d5h ; 68 d5 04 6741 jmp short 04 bf0h ; eb 036753 jmp short 04c1eh ; eb 03 6742 6754 push 004ffh ; 68 ff 04 6743 6755 push strict byte 00007h ; 6a 07 6744 call 01966h ; e8 71cd6756 call 01966h ; e8 43 cd 6745 6757 add sp, strict byte 00004h ; 83 c4 04 6746 6758 lea sp, [bp-002h] ; 8d 66 fe … … 6748 6760 pop bp ; 5d 6749 6761 retn 00002h ; c2 02 00 6750 print_cdromboot_failure_: ; 0xf4c 00LB 0x276762 print_cdromboot_failure_: ; 0xf4c2e LB 0x27 6751 6763 push bp ; 55 6752 6764 mov bp, sp ; 89 e5 … … 6758 6770 mov cx, ds ; 8c d9 6759 6771 mov ax, strict word 00004h ; b8 04 00 6760 call 01923h ; e8 10 cd6772 call 01923h ; e8 e2 cc 6761 6773 push dx ; 52 6762 6774 push 00534h ; 68 34 05 6763 6775 push strict byte 00004h ; 6a 04 6764 call 01966h ; e8 4acd6776 call 01966h ; e8 1c cd 6765 6777 add sp, strict byte 00006h ; 83 c4 06 6766 6778 lea sp, [bp-006h] ; 8d 66 fa … … 6770 6782 pop bp ; 5d 6771 6783 retn ; c3 6772 _int19_function: ; 0xf4c 27LB 0x2716784 _int19_function: ; 0xf4c55 LB 0x271 6773 6785 push bp ; 55 6774 6786 mov bp, sp ; 89 e5 … … 6778 6790 mov dx, strict word 0000eh ; ba 0e 00 6779 6791 mov ax, strict word 00040h ; b8 40 00 6780 call 0166ch ; e8 34ca6792 call 0166ch ; e8 06 ca 6781 6793 mov bx, ax ; 89 c3 6782 6794 mov word [bp-00eh], ax ; 89 46 f2 6783 6795 mov byte [bp-00ch], 000h ; c6 46 f4 00 6784 6796 mov ax, strict word 0003dh ; b8 3d 00 6785 call 016ach ; e8 65ca6797 call 016ach ; e8 37 ca 6786 6798 mov dl, al ; 88 c2 6787 6799 xor dh, dh ; 30 f6 6788 6800 mov ax, strict word 00038h ; b8 38 00 6789 call 016ach ; e8 5bca6801 call 016ach ; e8 2d ca 6790 6802 and AL, strict byte 0f0h ; 24 f0 6791 6803 xor ah, ah ; 30 e4 … … 6794 6806 or si, ax ; 09 c6 6795 6807 mov ax, strict word 0003ch ; b8 3c 00 6796 call 016ach ; e8 4aca6808 call 016ach ; e8 1c ca 6797 6809 and AL, strict byte 00fh ; 24 0f 6798 6810 xor ah, ah ; 30 e4 … … 6801 6813 mov dx, 0037dh ; ba 7d 03 6802 6814 mov ax, bx ; 89 d8 6803 call 01650h ; e8 ddc96815 call 01650h ; e8 af c9 6804 6816 test al, al ; 84 c0 6805 je short 04c 83h ; 74 0c6817 je short 04cb1h ; 74 0c 6806 6818 mov dx, 0037dh ; ba 7d 03 6807 6819 mov ax, bx ; 89 d8 6808 call 01650h ; e8 d1c96820 call 01650h ; e8 a3 c9 6809 6821 xor ah, ah ; 30 e4 6810 6822 mov si, ax ; 89 c6 6811 6823 cmp byte [bp+004h], 001h ; 80 7e 04 01 6812 jne short 04c 99h ; 75 106824 jne short 04cc7h ; 75 10 6813 6825 mov ax, strict word 0003ch ; b8 3c 00 6814 call 016ach ; e8 1d ca6826 call 016ach ; e8 ef c9 6815 6827 and AL, strict byte 0f0h ; 24 f0 6816 6828 xor ah, ah ; 30 e4 6817 6829 sar ax, 004h ; c1 f8 04 6818 call 07d 70h ; e8 d7 306830 call 07d9eh ; e8 d7 30 6819 6831 cmp byte [bp+004h], 002h ; 80 7e 04 02 6820 jne short 04c a2h ; 75 036832 jne short 04cd0h ; 75 03 6821 6833 shr si, 004h ; c1 ee 04 6822 6834 cmp byte [bp+004h], 003h ; 80 7e 04 03 6823 jne short 04c abh ; 75 036835 jne short 04cd9h ; 75 03 6824 6836 shr si, 008h ; c1 ee 08 6825 6837 cmp byte [bp+004h], 004h ; 80 7e 04 04 6826 jne short 04c b4h ; 75 036838 jne short 04ce2h ; 75 03 6827 6839 shr si, 00ch ; c1 ee 0c 6828 6840 cmp si, strict byte 00010h ; 83 fe 10 6829 jnc short 04c bdh ; 73 046841 jnc short 04cebh ; 73 04 6830 6842 mov byte [bp-00ch], 001h ; c6 46 f4 01 6831 6843 xor al, al ; 30 c0 … … 6836 6848 mov cx, ds ; 8c d9 6837 6849 mov ax, strict word 00004h ; b8 04 00 6838 call 01923h ; e8 50cc6850 call 01923h ; e8 22 cc 6839 6851 push si ; 56 6840 6852 mov al, byte [bp+004h] ; 8a 46 04 … … 6843 6855 push 00554h ; 68 54 05 6844 6856 push strict byte 00004h ; 6a 04 6845 call 01966h ; e8 84cc6857 call 01966h ; e8 56 cc 6846 6858 add sp, strict byte 00008h ; 83 c4 08 6847 6859 and si, strict byte 0000fh ; 83 e6 0f 6848 6860 cmp si, strict byte 00002h ; 83 fe 02 6849 jc short 04 cfbh ; 72 0e6850 jbe short 04d 0ah ; 76 1b6861 jc short 04d29h ; 72 0e 6862 jbe short 04d38h ; 76 1b 6851 6863 cmp si, strict byte 00004h ; 83 fe 04 6852 je short 04d 28h ; 74 346864 je short 04d56h ; 74 34 6853 6865 cmp si, strict byte 00003h ; 83 fe 03 6854 je short 04d 1eh ; 74 256855 jmp short 04d 57h ; eb 5c6866 je short 04d4ch ; 74 25 6867 jmp short 04d85h ; eb 5c 6856 6868 cmp si, strict byte 00001h ; 83 fe 01 6857 jne short 04d 57h ; 75 576869 jne short 04d85h ; 75 57 6858 6870 xor al, al ; 30 c0 6859 6871 mov byte [bp-006h], al ; 88 46 fa 6860 6872 mov byte [bp-008h], al ; 88 46 f8 6861 jmp short 04d 6fh ; eb 656873 jmp short 04d9dh ; eb 65 6862 6874 mov dx, 0037ch ; ba 7c 03 6863 6875 mov ax, word [bp-00eh] ; 8b 46 f2 6864 call 01650h ; e8 3dc96876 call 01650h ; e8 0f c9 6865 6877 add AL, strict byte 080h ; 04 80 6866 6878 mov byte [bp-006h], al ; 88 46 fa 6867 6879 mov byte [bp-008h], 000h ; c6 46 f8 00 6868 jmp short 04d 6fh ; eb 516880 jmp short 04d9dh ; eb 51 6869 6881 mov byte [bp-006h], 000h ; c6 46 fa 00 6870 6882 mov byte [bp-008h], 001h ; c6 46 f8 01 6871 jmp short 04d 32h ; eb 0a6883 jmp short 04d60h ; eb 0a 6872 6884 mov byte [bp-00ah], 001h ; c6 46 f6 01 6873 6885 cmp byte [bp-008h], 000h ; 80 7e f8 00 6874 je short 04d 6fh ; 74 3d6875 call 03d 2ch ; e8 f7ef6886 je short 04d9dh ; 74 3d 6887 call 03d59h ; e8 f6 ef 6876 6888 mov bx, ax ; 89 c3 6877 6889 test AL, strict byte 0ffh ; a8 ff 6878 je short 04d 5eh ; 74 236879 call 04c 00h ; e8 c2 fe6890 je short 04d8ch ; 74 23 6891 call 04c2eh ; e8 c2 fe 6880 6892 mov al, byte [bp-00ch] ; 8a 46 f4 6881 6893 xor ah, ah ; 30 e4 … … 6887 6899 mov al, byte [bp-008h] ; 8a 46 f8 6888 6900 mov cx, strict word 00001h ; b9 01 00 6889 call 04b 6ah ; e8 13 fe6901 call 04b98h ; e8 13 fe 6890 6902 xor ax, ax ; 31 c0 6891 6903 xor dx, dx ; 31 d2 6892 jmp near 04e 91h ; e9 33 016904 jmp near 04ebfh ; e9 33 01 6893 6905 mov dx, 00372h ; ba 72 03 6894 6906 mov ax, word [bp-00eh] ; 8b 46 f2 6895 call 0166ch ; e8 05 c96907 call 0166ch ; e8 d7 c8 6896 6908 mov di, ax ; 89 c7 6897 6909 shr bx, 008h ; c1 eb 08 6898 6910 mov byte [bp-006h], bl ; 88 5e fa 6899 6911 cmp byte [bp-00ah], 001h ; 80 7e f6 01 6900 jne short 04d cah ; 75 556912 jne short 04df8h ; 75 55 6901 6913 xor si, si ; 31 f6 6902 6914 mov ax, 0e200h ; b8 00 e2 6903 6915 mov es, ax ; 8e c0 6904 6916 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6905 jne short 04d 3eh ; 75 bb6917 jne short 04d6ch ; 75 bb 6906 6918 mov cx, ax ; 89 c1 6907 6919 mov si, word [es:si+01ah] ; 26 8b 74 1a 6908 6920 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6909 jne short 04d 3eh ; 75 ad6921 jne short 04d6ch ; 75 ad 6910 6922 cmp word [es:si], 05024h ; 26 81 3c 24 50 6911 jne short 04d 3eh ; 75 a66923 jne short 04d6ch ; 75 a6 6912 6924 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6913 6925 mov dx, word [es:di] ; 26 8b 15 6914 6926 mov ax, word [es:di+002h] ; 26 8b 45 02 6915 6927 cmp ax, 06568h ; 3d 68 65 6916 jne short 04d cch ; 75 246928 jne short 04dfah ; 75 24 6917 6929 cmp dx, 07445h ; 81 fa 45 74 6918 jne short 04d cch ; 75 1e6930 jne short 04dfah ; 75 1e 6919 6931 mov bl, byte [bp-006h] ; 8a 5e fa 6920 6932 xor bh, bh ; 30 ff … … 6923 6935 mov al, byte [bp-008h] ; 8a 46 f8 6924 6936 xor ah, ah ; 30 e4 6925 call 04b 1fh ; e8 5f fd6937 call 04b4dh ; e8 5f fd 6926 6938 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6927 6939 mov word [bp-010h], cx ; 89 4e f0 6928 jmp short 04 debh ; eb 216929 jmp short 04 df1h ; eb 256940 jmp short 04e19h ; eb 21 6941 jmp short 04e1fh ; eb 25 6930 6942 mov bl, byte [bp-006h] ; 8a 5e fa 6931 6943 xor bh, bh ; 30 ff … … 6934 6946 mov al, byte [bp-008h] ; 8a 46 f8 6935 6947 xor ah, ah ; 30 e4 6936 call 04b 1fh ; e8 41 fd6948 call 04b4dh ; e8 41 fd 6937 6949 sti ; fb 6938 6950 mov word [bp-010h], cx ; 89 4e f0 … … 6941 6953 mov word [bp-012h], ax ; 89 46 ee 6942 6954 call far [bp-012h] ; ff 5e ee 6943 jmp near 04d 3eh ; e9 4d ff6955 jmp near 04d6ch ; e9 4d ff 6944 6956 cmp byte [bp-008h], 000h ; 80 7e f8 00 6945 jne short 04e 1eh ; 75 276957 jne short 04e4ch ; 75 27 6946 6958 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6947 jne short 04e 1eh ; 75 216959 jne short 04e4ch ; 75 21 6948 6960 mov di, 007c0h ; bf c0 07 6949 6961 mov es, di ; 8e c7 … … 6958 6970 sbb ax, strict byte 00000h ; 83 d8 00 6959 6971 test ax, ax ; 85 c0 6960 je short 04e 1eh ; 74 036961 jmp near 04d 3eh ; e9 20 ff6972 je short 04e4ch ; 74 03 6973 jmp near 04d6ch ; e9 20 ff 6962 6974 cmp byte [bp-006h], 000h ; 80 7e fa 00 6963 je short 04e 28h ; 74 046975 je short 04e56h ; 74 04 6964 6976 xor bl, bl ; 30 db 6965 jmp short 04e 2ah ; eb 026977 jmp short 04e58h ; eb 02 6966 6978 mov BL, strict byte 001h ; b3 01 6967 6979 cmp byte [bp-008h], 000h ; 80 7e f8 00 6968 je short 04e 32h ; 74 026980 je short 04e60h ; 74 02 6969 6981 mov BL, strict byte 001h ; b3 01 6970 6982 xor dx, dx ; 31 d2 6971 6983 mov ax, di ; 89 f8 6972 call 0166ch ; e8 33c86984 call 0166ch ; e8 05 c8 6973 6985 mov si, ax ; 89 c6 6974 6986 mov dx, strict word 00002h ; ba 02 00 6975 6987 mov ax, di ; 89 f8 6976 call 0166ch ; e8 29 c86988 call 0166ch ; e8 fb c7 6977 6989 cmp si, ax ; 39 c6 6978 je short 04e 58h ; 74 116990 je short 04e86h ; 74 11 6979 6991 test bl, bl ; 84 db 6980 jne short 04e 70h ; 75 256992 jne short 04e9eh ; 75 25 6981 6993 mov dx, 001feh ; ba fe 01 6982 6994 mov ax, di ; 89 f8 6983 call 0166ch ; e8 19 c86995 call 0166ch ; e8 eb c7 6984 6996 cmp ax, 0aa55h ; 3d 55 aa 6985 je short 04e 70h ; 74 186997 je short 04e9eh ; 74 18 6986 6998 mov al, byte [bp-00ch] ; 8a 46 f4 6987 6999 xor ah, ah ; 30 e4 … … 6993 7005 mov al, byte [bp-008h] ; 8a 46 f8 6994 7006 xor cx, cx ; 31 c9 6995 jmp near 04d 54h ; e9 e4 fe7007 jmp near 04d82h ; e9 e4 fe 6996 7008 mov bl, byte [bp-006h] ; 8a 5e fa 6997 7009 xor bh, bh ; 30 ff … … 7000 7012 mov al, byte [bp-008h] ; 8a 46 f8 7001 7013 xor ah, ah ; 30 e4 7002 call 04b 1fh ; e8 9d fc7014 call 04b4dh ; e8 9d fc 7003 7015 mov al, byte [bp-006h] ; 8a 46 fa 7004 7016 xor ah, ah ; 30 e4 … … 7013 7025 pop bp ; 5d 7014 7026 retn ; c3 7015 keyboard_panic_: ; 0xf4e 98LB 0x137027 keyboard_panic_: ; 0xf4ec6 LB 0x13 7016 7028 push bp ; 55 7017 7029 mov bp, sp ; 89 e5 … … 7019 7031 push 00574h ; 68 74 05 7020 7032 push strict byte 00007h ; 6a 07 7021 call 01966h ; e8 c2ca7033 call 01966h ; e8 94 ca 7022 7034 add sp, strict byte 00006h ; 83 c4 06 7023 7035 mov sp, bp ; 89 ec 7024 7036 pop bp ; 5d 7025 7037 retn ; c3 7026 _keyboard_init: ; 0xf4e abLB 0x26a7038 _keyboard_init: ; 0xf4ed9 LB 0x26a 7027 7039 push bp ; 55 7028 7040 mov bp, sp ; 89 e5 … … 7036 7048 ; sub ah, ah ; 2a e4 7037 7049 test AL, strict byte 002h ; a8 02 7038 je short 04e ceh ; 74 0d7050 je short 04efch ; 74 0d 7039 7051 dec bx ; 4b 7040 7052 test bx, bx ; 85 db 7041 jbe short 04e ceh ; 76 087053 jbe short 04efch ; 76 08 7042 7054 xor al, al ; 30 c0 7043 7055 mov dx, 00080h ; ba 80 00 7044 7056 out DX, AL ; ee 7045 jmp short 04e b7h ; eb e97057 jmp short 04ee5h ; eb e9 7046 7058 test bx, bx ; 85 db 7047 jne short 04 ed7h ; 75 057059 jne short 04f05h ; 75 05 7048 7060 xor ax, ax ; 31 c0 7049 call 04e 98h ; e8 c1 ff7061 call 04ec6h ; e8 c1 ff 7050 7062 mov bx, strict word 0ffffh ; bb ff ff 7051 7063 mov dx, strict word 00064h ; ba 64 00 … … 7054 7066 ; sub ah, ah ; 2a e4 7055 7067 test AL, strict byte 001h ; a8 01 7056 jne short 04 ef1h ; 75 0d7068 jne short 04f1fh ; 75 0d 7057 7069 dec bx ; 4b 7058 7070 test bx, bx ; 85 db 7059 jbe short 04 ef1h ; 76 087071 jbe short 04f1fh ; 76 08 7060 7072 mov AL, strict byte 001h ; b0 01 7061 7073 mov dx, 00080h ; ba 80 00 7062 7074 out DX, AL ; ee 7063 jmp short 04 edah ; eb e97075 jmp short 04f08h ; eb e9 7064 7076 test bx, bx ; 85 db 7065 jne short 04 efbh ; 75 067077 jne short 04f29h ; 75 06 7066 7078 mov ax, strict word 00001h ; b8 01 00 7067 call 04e 98h ; e8 9d ff7079 call 04ec6h ; e8 9d ff 7068 7080 mov dx, strict word 00060h ; ba 60 00 7069 7081 in AL, DX ; ec … … 7071 7083 ; sub ah, ah ; 2a e4 7072 7084 cmp ax, strict word 00055h ; 3d 55 00 7073 je short 04f 0ch ; 74 067085 je short 04f3ah ; 74 06 7074 7086 mov ax, 003dfh ; b8 df 03 7075 call 04e 98h ; e8 8c ff7087 call 04ec6h ; e8 8c ff 7076 7088 mov AL, strict byte 0abh ; b0 ab 7077 7089 mov dx, strict word 00064h ; ba 64 00 … … 7083 7095 ; sub ah, ah ; 2a e4 7084 7096 test AL, strict byte 002h ; a8 02 7085 je short 04f 2ch ; 74 0d7097 je short 04f5ah ; 74 0d 7086 7098 dec bx ; 4b 7087 7099 test bx, bx ; 85 db 7088 jbe short 04f 2ch ; 76 087100 jbe short 04f5ah ; 76 08 7089 7101 mov AL, strict byte 010h ; b0 10 7090 7102 mov dx, 00080h ; ba 80 00 7091 7103 out DX, AL ; ee 7092 jmp short 04f 15h ; eb e97104 jmp short 04f43h ; eb e9 7093 7105 test bx, bx ; 85 db 7094 jne short 04f 36h ; 75 067106 jne short 04f64h ; 75 06 7095 7107 mov ax, strict word 0000ah ; b8 0a 00 7096 call 04e 98h ; e8 62 ff7108 call 04ec6h ; e8 62 ff 7097 7109 mov bx, strict word 0ffffh ; bb ff ff 7098 7110 mov dx, strict word 00064h ; ba 64 00 … … 7101 7113 ; sub ah, ah ; 2a e4 7102 7114 test AL, strict byte 001h ; a8 01 7103 jne short 04f 50h ; 75 0d7115 jne short 04f7eh ; 75 0d 7104 7116 dec bx ; 4b 7105 7117 test bx, bx ; 85 db 7106 jbe short 04f 50h ; 76 087118 jbe short 04f7eh ; 76 08 7107 7119 mov AL, strict byte 011h ; b0 11 7108 7120 mov dx, 00080h ; ba 80 00 7109 7121 out DX, AL ; ee 7110 jmp short 04f 39h ; eb e97122 jmp short 04f67h ; eb e9 7111 7123 test bx, bx ; 85 db 7112 jne short 04f 5ah ; 75 067124 jne short 04f88h ; 75 06 7113 7125 mov ax, strict word 0000bh ; b8 0b 00 7114 call 04e 98h ; e8 3e ff7126 call 04ec6h ; e8 3e ff 7115 7127 mov dx, strict word 00060h ; ba 60 00 7116 7128 in AL, DX ; ec … … 7118 7130 ; sub ah, ah ; 2a e4 7119 7131 test ax, ax ; 85 c0 7120 je short 04f 6ah ; 74 067132 je short 04f98h ; 74 06 7121 7133 mov ax, 003e0h ; b8 e0 03 7122 call 04e 98h ; e8 2e ff7134 call 04ec6h ; e8 2e ff 7123 7135 mov AL, strict byte 0ffh ; b0 ff 7124 7136 mov dx, strict word 00060h ; ba 60 00 … … 7130 7142 ; sub ah, ah ; 2a e4 7131 7143 test AL, strict byte 002h ; a8 02 7132 je short 04f 8ah ; 74 0d7144 je short 04fb8h ; 74 0d 7133 7145 dec bx ; 4b 7134 7146 test bx, bx ; 85 db 7135 jbe short 04f 8ah ; 76 087147 jbe short 04fb8h ; 76 08 7136 7148 mov AL, strict byte 020h ; b0 20 7137 7149 mov dx, 00080h ; ba 80 00 7138 7150 out DX, AL ; ee 7139 jmp short 04f 73h ; eb e97151 jmp short 04fa1h ; eb e9 7140 7152 test bx, bx ; 85 db 7141 jne short 04f 94h ; 75 067153 jne short 04fc2h ; 75 06 7142 7154 mov ax, strict word 00014h ; b8 14 00 7143 call 04e 98h ; e8 04 ff7155 call 04ec6h ; e8 04 ff 7144 7156 mov bx, strict word 0ffffh ; bb ff ff 7145 7157 mov dx, strict word 00064h ; ba 64 00 … … 7148 7160 ; sub ah, ah ; 2a e4 7149 7161 test AL, strict byte 001h ; a8 01 7150 jne short 04f aeh ; 75 0d7162 jne short 04fdch ; 75 0d 7151 7163 dec bx ; 4b 7152 7164 test bx, bx ; 85 db 7153 jbe short 04f aeh ; 76 087165 jbe short 04fdch ; 76 08 7154 7166 mov AL, strict byte 021h ; b0 21 7155 7167 mov dx, 00080h ; ba 80 00 7156 7168 out DX, AL ; ee 7157 jmp short 04f 97h ; eb e97169 jmp short 04fc5h ; eb e9 7158 7170 test bx, bx ; 85 db 7159 jne short 04f b8h ; 75 067171 jne short 04fe6h ; 75 06 7160 7172 mov ax, strict word 00015h ; b8 15 00 7161 call 04e 98h ; e8 e0 fe7173 call 04ec6h ; e8 e0 fe 7162 7174 mov dx, strict word 00060h ; ba 60 00 7163 7175 in AL, DX ; ec … … 7165 7177 ; sub ah, ah ; 2a e4 7166 7178 cmp ax, 000fah ; 3d fa 00 7167 je short 04f c9h ; 74 067179 je short 04ff7h ; 74 06 7168 7180 mov ax, 003e1h ; b8 e1 03 7169 call 04e 98h ; e8 cf fe7181 call 04ec6h ; e8 cf fe 7170 7182 mov dx, strict word 00064h ; ba 64 00 7171 7183 in AL, DX ; ec … … 7173 7185 ; sub ah, ah ; 2a e4 7174 7186 test AL, strict byte 001h ; a8 01 7175 jne short 0 4fdbh ; 75 087187 jne short 05009h ; 75 08 7176 7188 mov AL, strict byte 031h ; b0 31 7177 7189 mov dx, 00080h ; ba 80 00 7178 7190 out DX, AL ; ee 7179 jmp short 04f c9h ; eb ee7191 jmp short 04ff7h ; eb ee 7180 7192 mov dx, strict word 00060h ; ba 60 00 7181 7193 in AL, DX ; ec … … 7183 7195 ; sub ah, ah ; 2a e4 7184 7196 cmp ax, 000aah ; 3d aa 00 7185 je short 0 4ff4h ; 74 0e7197 je short 05022h ; 74 0e 7186 7198 in AL, DX ; ec 7187 7199 db 02ah, 0e4h 7188 7200 ; sub ah, ah ; 2a e4 7189 7201 cmp ax, 000aah ; 3d aa 00 7190 je short 0 4ff4h ; 74 067202 je short 05022h ; 74 06 7191 7203 mov ax, 003e2h ; b8 e2 03 7192 call 04e 98h ; e8 a4 fe7204 call 04ec6h ; e8 a4 fe 7193 7205 mov AL, strict byte 0f5h ; b0 f5 7194 7206 mov dx, strict word 00060h ; ba 60 00 … … 7200 7212 ; sub ah, ah ; 2a e4 7201 7213 test AL, strict byte 002h ; a8 02 7202 je short 050 14h ; 74 0d7214 je short 05042h ; 74 0d 7203 7215 dec bx ; 4b 7204 7216 test bx, bx ; 85 db 7205 jbe short 050 14h ; 76 087217 jbe short 05042h ; 76 08 7206 7218 mov AL, strict byte 040h ; b0 40 7207 7219 mov dx, 00080h ; ba 80 00 7208 7220 out DX, AL ; ee 7209 jmp short 0 4ffdh ; eb e97221 jmp short 0502bh ; eb e9 7210 7222 test bx, bx ; 85 db 7211 jne short 050 1eh ; 75 067223 jne short 0504ch ; 75 06 7212 7224 mov ax, strict word 00028h ; b8 28 00 7213 call 04e 98h ; e8 7a fe7225 call 04ec6h ; e8 7a fe 7214 7226 mov bx, strict word 0ffffh ; bb ff ff 7215 7227 mov dx, strict word 00064h ; ba 64 00 … … 7218 7230 ; sub ah, ah ; 2a e4 7219 7231 test AL, strict byte 001h ; a8 01 7220 jne short 050 38h ; 75 0d7232 jne short 05066h ; 75 0d 7221 7233 dec bx ; 4b 7222 7234 test bx, bx ; 85 db 7223 jbe short 050 38h ; 76 087235 jbe short 05066h ; 76 08 7224 7236 mov AL, strict byte 041h ; b0 41 7225 7237 mov dx, 00080h ; ba 80 00 7226 7238 out DX, AL ; ee 7227 jmp short 050 21h ; eb e97239 jmp short 0504fh ; eb e9 7228 7240 test bx, bx ; 85 db 7229 jne short 050 42h ; 75 067241 jne short 05070h ; 75 06 7230 7242 mov ax, strict word 00029h ; b8 29 00 7231 call 04e 98h ; e8 56 fe7243 call 04ec6h ; e8 56 fe 7232 7244 mov dx, strict word 00060h ; ba 60 00 7233 7245 in AL, DX ; ec … … 7235 7247 ; sub ah, ah ; 2a e4 7236 7248 cmp ax, 000fah ; 3d fa 00 7237 je short 050 53h ; 74 067249 je short 05081h ; 74 06 7238 7250 mov ax, 003e3h ; b8 e3 03 7239 call 04e 98h ; e8 45 fe7251 call 04ec6h ; e8 45 fe 7240 7252 mov AL, strict byte 060h ; b0 60 7241 7253 mov dx, strict word 00064h ; ba 64 00 … … 7247 7259 ; sub ah, ah ; 2a e4 7248 7260 test AL, strict byte 002h ; a8 02 7249 je short 050 73h ; 74 0d7261 je short 050a1h ; 74 0d 7250 7262 dec bx ; 4b 7251 7263 test bx, bx ; 85 db 7252 jbe short 050 73h ; 76 087264 jbe short 050a1h ; 76 08 7253 7265 mov AL, strict byte 050h ; b0 50 7254 7266 mov dx, 00080h ; ba 80 00 7255 7267 out DX, AL ; ee 7256 jmp short 050 5ch ; eb e97268 jmp short 0508ah ; eb e9 7257 7269 test bx, bx ; 85 db 7258 jne short 050 7dh ; 75 067270 jne short 050abh ; 75 06 7259 7271 mov ax, strict word 00032h ; b8 32 00 7260 call 04e 98h ; e8 1b fe7272 call 04ec6h ; e8 1b fe 7261 7273 mov AL, strict byte 065h ; b0 65 7262 7274 mov dx, strict word 00060h ; ba 60 00 … … 7268 7280 ; sub ah, ah ; 2a e4 7269 7281 test AL, strict byte 002h ; a8 02 7270 je short 050 9dh ; 74 0d7282 je short 050cbh ; 74 0d 7271 7283 dec bx ; 4b 7272 7284 test bx, bx ; 85 db 7273 jbe short 050 9dh ; 76 087285 jbe short 050cbh ; 76 08 7274 7286 mov AL, strict byte 060h ; b0 60 7275 7287 mov dx, 00080h ; ba 80 00 7276 7288 out DX, AL ; ee 7277 jmp short 050 86h ; eb e97289 jmp short 050b4h ; eb e9 7278 7290 test bx, bx ; 85 db 7279 jne short 050 a7h ; 75 067291 jne short 050d5h ; 75 06 7280 7292 mov ax, strict word 0003ch ; b8 3c 00 7281 call 04e 98h ; e8 f1 fd7293 call 04ec6h ; e8 f1 fd 7282 7294 mov AL, strict byte 0f4h ; b0 f4 7283 7295 mov dx, strict word 00060h ; ba 60 00 … … 7289 7301 ; sub ah, ah ; 2a e4 7290 7302 test AL, strict byte 002h ; a8 02 7291 je short 050 c7h ; 74 0d7303 je short 050f5h ; 74 0d 7292 7304 dec bx ; 4b 7293 7305 test bx, bx ; 85 db 7294 jbe short 050 c7h ; 76 087306 jbe short 050f5h ; 76 08 7295 7307 mov AL, strict byte 070h ; b0 70 7296 7308 mov dx, 00080h ; ba 80 00 7297 7309 out DX, AL ; ee 7298 jmp short 050 b0h ; eb e97310 jmp short 050deh ; eb e9 7299 7311 test bx, bx ; 85 db 7300 jne short 050 d1h ; 75 067312 jne short 050ffh ; 75 06 7301 7313 mov ax, strict word 00046h ; b8 46 00 7302 call 04e 98h ; e8 c7 fd7314 call 04ec6h ; e8 c7 fd 7303 7315 mov bx, strict word 0ffffh ; bb ff ff 7304 7316 mov dx, strict word 00064h ; ba 64 00 … … 7307 7319 ; sub ah, ah ; 2a e4 7308 7320 test AL, strict byte 001h ; a8 01 7309 jne short 05 0ebh ; 75 0d7321 jne short 05119h ; 75 0d 7310 7322 dec bx ; 4b 7311 7323 test bx, bx ; 85 db 7312 jbe short 05 0ebh ; 76 087324 jbe short 05119h ; 76 08 7313 7325 mov AL, strict byte 071h ; b0 71 7314 7326 mov dx, 00080h ; ba 80 00 7315 7327 out DX, AL ; ee 7316 jmp short 05 0d4h ; eb e97328 jmp short 05102h ; eb e9 7317 7329 test bx, bx ; 85 db 7318 jne short 05 0f5h ; 75 067330 jne short 05123h ; 75 06 7319 7331 mov ax, strict word 00046h ; b8 46 00 7320 call 04e 98h ; e8 a3 fd7332 call 04ec6h ; e8 a3 fd 7321 7333 mov dx, strict word 00060h ; ba 60 00 7322 7334 in AL, DX ; ec … … 7324 7336 ; sub ah, ah ; 2a e4 7325 7337 cmp ax, 000fah ; 3d fa 00 7326 je short 051 06h ; 74 067338 je short 05134h ; 74 06 7327 7339 mov ax, 003e4h ; b8 e4 03 7328 call 04e 98h ; e8 92 fd7340 call 04ec6h ; e8 92 fd 7329 7341 mov AL, strict byte 0a8h ; b0 a8 7330 7342 mov dx, strict word 00064h ; ba 64 00 7331 7343 out DX, AL ; ee 7332 7344 xor ax, ax ; 31 c0 7333 call 065 afh ; e8 9e 147345 call 065ddh ; e8 9e 14 7334 7346 mov sp, bp ; 89 ec 7335 7347 pop bp ; 5d 7336 7348 retn ; c3 7337 enqueue_key_: ; 0xf51 15LB 0x9e7349 enqueue_key_: ; 0xf5143 LB 0x9e 7338 7350 push bp ; 55 7339 7351 mov bp, sp ; 89 e5 … … 7347 7359 mov dx, strict word 0001ah ; ba 1a 00 7348 7360 mov ax, strict word 00040h ; b8 40 00 7349 call 0166ch ; e8 41c57361 call 0166ch ; e8 13 c5 7350 7362 mov di, ax ; 89 c7 7351 7363 mov dx, strict word 0001ch ; ba 1c 00 7352 7364 mov ax, strict word 00040h ; b8 40 00 7353 call 0166ch ; e8 36c57365 call 0166ch ; e8 08 c5 7354 7366 mov si, ax ; 89 c6 7355 7367 lea cx, [si+002h] ; 8d 4c 02 7356 7368 cmp cx, strict byte 0003eh ; 83 f9 3e 7357 jc short 051 43h ; 72 037369 jc short 05171h ; 72 03 7358 7370 mov cx, strict word 0001eh ; b9 1e 00 7359 7371 cmp cx, di ; 39 f9 7360 jne short 051 4bh ; 75 047372 jne short 05179h ; 75 04 7361 7373 xor ax, ax ; 31 c0 7362 jmp short 051 75h ; eb 2a7374 jmp short 051a3h ; eb 2a 7363 7375 mov al, bl ; 88 d8 7364 7376 xor ah, ah ; 30 e4 … … 7366 7378 mov dx, si ; 89 f2 7367 7379 mov ax, strict word 00040h ; b8 40 00 7368 call 0165eh ; e8 05 c57380 call 0165eh ; e8 d7 c4 7369 7381 mov bl, byte [bp-00ah] ; 8a 5e f6 7370 7382 xor bh, bh ; 30 ff 7371 7383 lea dx, [si+001h] ; 8d 54 01 7372 7384 mov ax, strict word 00040h ; b8 40 00 7373 call 0165eh ; e8 f7c47385 call 0165eh ; e8 c9 c4 7374 7386 mov bx, cx ; 89 cb 7375 7387 mov dx, strict word 0001ch ; ba 1c 00 7376 7388 mov ax, strict word 00040h ; b8 40 00 7377 call 0167ah ; e8 08 c57389 call 0167ah ; e8 da c4 7378 7390 mov ax, strict word 00001h ; b8 01 00 7379 7391 lea sp, [bp-008h] ; 8d 66 f8 … … 7385 7397 retn ; c3 7386 7398 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7387 db 01dh, 0 f1h, 054h, 0a9h, 052h, 04bh, 052h, 04bh, 052h, 038h, 053h, 022h, 052h, 0bch, 053h, 030h7388 db 054h, 0 d7h, 054h, 0b5h, 054h, 0f0h, 052h, 04bh, 052h, 04bh, 052h, 07ah, 053h, 040h, 052h, 010h7389 db 054h, 0 95h, 054h, 0d0h, 054h7390 _int09_function: ; 0xf51 b3LB 0x4947399 db 01dh, 01fh, 055h, 0d7h, 052h, 079h, 052h, 079h, 052h, 066h, 053h, 050h, 052h, 0eah, 053h, 05eh 7400 db 054h, 005h, 055h, 0e3h, 054h, 01eh, 053h, 079h, 052h, 079h, 052h, 0a8h, 053h, 06eh, 052h, 03eh 7401 db 054h, 0c3h, 054h, 0feh, 054h 7402 _int09_function: ; 0xf51e1 LB 0x494 7391 7403 push bp ; 55 7392 7404 mov bp, sp ; 89 e5 … … 7396 7408 mov byte [bp-00ah], al ; 88 46 f6 7397 7409 test al, al ; 84 c0 7398 jne short 05 1ddh ; 75 197410 jne short 0520bh ; 75 19 7399 7411 mov bx, 00da0h ; bb a0 0d 7400 7412 mov cx, ds ; 8c d9 7401 7413 mov ax, strict word 00004h ; b8 04 00 7402 call 01923h ; e8 54c77414 call 01923h ; e8 26 c7 7403 7415 push 00587h ; 68 87 05 7404 7416 push strict byte 00004h ; 6a 04 7405 call 01966h ; e8 8fc77417 call 01966h ; e8 61 c7 7406 7418 add sp, strict byte 00004h ; 83 c4 04 7407 jmp near 052 a3h ; e9 c6 007419 jmp near 052d1h ; e9 c6 00 7408 7420 mov dx, strict word 00018h ; ba 18 00 7409 7421 mov ax, strict word 00040h ; b8 40 00 7410 call 01650h ; e8 6ac47422 call 01650h ; e8 3c c4 7411 7423 mov byte [bp-010h], al ; 88 46 f0 7412 7424 mov byte [bp-008h], al ; 88 46 f8 7413 7425 mov dx, 00096h ; ba 96 00 7414 7426 mov ax, strict word 00040h ; b8 40 00 7415 call 01650h ; e8 5bc47427 call 01650h ; e8 2d c4 7416 7428 mov byte [bp-004h], al ; 88 46 fc 7417 7429 mov byte [bp-00ch], al ; 88 46 f4 7418 7430 mov dx, strict word 00017h ; ba 17 00 7419 7431 mov ax, strict word 00040h ; b8 40 00 7420 call 01650h ; e8 4cc47432 call 01650h ; e8 1e c4 7421 7433 mov byte [bp-006h], al ; 88 46 fa 7422 7434 mov byte [bp-00eh], al ; 88 46 f2 … … 7425 7437 pop ES ; 07 7426 7438 mov cx, strict word 00012h ; b9 12 00 7427 mov di, 051 7eh ; bf 7e517439 mov di, 051ach ; bf ac 51 7428 7440 repne scasb ; f2 ae 7429 7441 sal cx, 1 ; d1 e1 7430 7442 mov di, cx ; 89 cf 7431 mov ax, word [cs:di+051 8fh] ; 2e 8b 85 8f517443 mov ax, word [cs:di+051bdh] ; 2e 8b 85 bd 51 7432 7444 jmp ax ; ff e0 7433 7445 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7437 7449 mov dx, strict word 00017h ; ba 17 00 7438 7450 mov ax, strict word 00040h ; b8 40 00 7439 call 0165eh ; e8 28 c47451 call 0165eh ; e8 fa c3 7440 7452 or byte [bp-008h], 040h ; 80 4e f8 40 7441 7453 mov al, byte [bp-008h] ; 8a 46 f8 7442 jmp near 054 c1h ; e9 81 027454 jmp near 054efh ; e9 81 02 7443 7455 mov al, byte [bp-010h] ; 8a 46 f0 7444 7456 and AL, strict byte 0bfh ; 24 bf 7445 7457 mov byte [bp-008h], al ; 88 46 f8 7446 jmp near 054 c1h ; e9 76 027458 jmp near 054efh ; e9 76 02 7447 7459 test byte [bp-00ch], 002h ; f6 46 f4 02 7448 jne short 052 84h ; 75 337460 jne short 052b2h ; 75 33 7449 7461 mov al, byte [bp-00ah] ; 8a 46 f6 7450 7462 and AL, strict byte 07fh ; 24 7f 7451 7463 cmp AL, strict byte 02ah ; 3c 2a 7452 jne short 052 5fh ; 75 057464 jne short 0528dh ; 75 05 7453 7465 mov dx, strict word 00002h ; ba 02 00 7454 jmp short 052 62h ; eb 037466 jmp short 05290h ; eb 03 7455 7467 mov dx, strict word 00001h ; ba 01 00 7456 7468 test byte [bp-00ah], 080h ; f6 46 f6 80 7457 je short 052 71h ; 74 097469 je short 0529fh ; 74 09 7458 7470 mov al, dl ; 88 d0 7459 7471 not al ; f6 d0 7460 7472 and byte [bp-00eh], al ; 20 46 f2 7461 jmp short 052 74h ; eb 037473 jmp short 052a2h ; eb 03 7462 7474 or byte [bp-00eh], dl ; 08 56 f2 7463 7475 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7466 7478 mov dx, strict word 00017h ; ba 17 00 7467 7479 mov ax, strict word 00040h ; b8 40 00 7468 call 0165eh ; e8 dac37480 call 0165eh ; e8 ac c3 7469 7481 mov al, byte [bp-00ah] ; 8a 46 f6 7470 7482 and AL, strict byte 07fh ; 24 7f 7471 7483 cmp AL, strict byte 01dh ; 3c 1d 7472 je short 052 91h ; 74 047484 je short 052bfh ; 74 04 7473 7485 and byte [bp-00ch], 0feh ; 80 66 f4 fe 7474 7486 and byte [bp-00ch], 0fdh ; 80 66 f4 fd … … 7477 7489 mov dx, 00096h ; ba 96 00 7478 7490 mov ax, strict word 00040h ; b8 40 00 7479 call 0165eh ; e8 bbc37491 call 0165eh ; e8 8d c3 7480 7492 lea sp, [bp-002h] ; 8d 66 fe 7481 7493 pop di ; 5f … … 7483 7495 retn ; c3 7484 7496 test byte [bp-004h], 001h ; f6 46 fc 01 7485 jne short 052 84h ; 75 d57497 jne short 052b2h ; 75 d5 7486 7498 mov al, byte [bp-006h] ; 8a 46 fa 7487 7499 or AL, strict byte 004h ; 0c 04 … … 7491 7503 mov dx, strict word 00017h ; ba 17 00 7492 7504 mov ax, strict word 00040h ; b8 40 00 7493 call 0165eh ; e8 9ac37505 call 0165eh ; e8 6c c3 7494 7506 mov al, byte [bp-004h] ; 8a 46 fc 7495 7507 test AL, strict byte 002h ; a8 02 7496 je short 05 2d9h ; 74 0e7508 je short 05307h ; 74 0e 7497 7509 or AL, strict byte 004h ; 0c 04 7498 7510 mov byte [bp-00ch], al ; 88 46 f4 … … 7500 7512 mov bx, ax ; 89 c3 7501 7513 mov dx, 00096h ; ba 96 00 7502 jmp short 05 2e8h ; eb 0f7514 jmp short 05316h ; eb 0f 7503 7515 mov al, byte [bp-010h] ; 8a 46 f0 7504 7516 or AL, strict byte 001h ; 0c 01 … … 7508 7520 mov dx, strict word 00018h ; ba 18 00 7509 7521 mov ax, strict word 00040h ; b8 40 00 7510 call 0165eh ; e8 70c37511 jmp short 052 84h ; eb 947522 call 0165eh ; e8 42 c3 7523 jmp short 052b2h ; eb 94 7512 7524 test byte [bp-004h], 001h ; f6 46 fc 01 7513 jne short 052 84h ; 75 8e7525 jne short 052b2h ; 75 8e 7514 7526 mov al, byte [bp-006h] ; 8a 46 fa 7515 7527 and AL, strict byte 0fbh ; 24 fb … … 7519 7531 mov dx, strict word 00017h ; ba 17 00 7520 7532 mov ax, strict word 00040h ; b8 40 00 7521 call 0165eh ; e8 53c37533 call 0165eh ; e8 25 c3 7522 7534 mov al, byte [bp-004h] ; 8a 46 fc 7523 7535 test AL, strict byte 002h ; a8 02 7524 je short 053 20h ; 74 0e7536 je short 0534eh ; 74 0e 7525 7537 and AL, strict byte 0fbh ; 24 fb 7526 7538 mov byte [bp-00ch], al ; 88 46 f4 … … 7528 7540 mov bx, ax ; 89 c3 7529 7541 mov dx, 00096h ; ba 96 00 7530 jmp short 053 2fh ; eb 0f7542 jmp short 0535dh ; eb 0f 7531 7543 mov al, byte [bp-010h] ; 8a 46 f0 7532 7544 and AL, strict byte 0feh ; 24 fe … … 7536 7548 mov dx, strict word 00018h ; ba 18 00 7537 7549 mov ax, strict word 00040h ; b8 40 00 7538 call 0165eh ; e8 29 c37539 jmp near 052 84h ; e9 4c ff7550 call 0165eh ; e8 fb c2 7551 jmp near 052b2h ; e9 4c ff 7540 7552 mov al, byte [bp-006h] ; 8a 46 fa 7541 7553 or AL, strict byte 008h ; 0c 08 … … 7545 7557 mov dx, strict word 00017h ; ba 17 00 7546 7558 mov ax, strict word 00040h ; b8 40 00 7547 call 0165eh ; e8 11 c37559 call 0165eh ; e8 e3 c2 7548 7560 mov al, byte [bp-004h] ; 8a 46 fc 7549 7561 test AL, strict byte 002h ; a8 02 7550 je short 053 62h ; 74 0e7562 je short 05390h ; 74 0e 7551 7563 or AL, strict byte 008h ; 0c 08 7552 7564 mov byte [bp-00ch], al ; 88 46 f4 … … 7554 7566 mov bx, ax ; 89 c3 7555 7567 mov dx, 00096h ; ba 96 00 7556 jmp short 053 71h ; eb 0f7568 jmp short 0539fh ; eb 0f 7557 7569 mov al, byte [bp-010h] ; 8a 46 f0 7558 7570 or AL, strict byte 002h ; 0c 02 … … 7562 7574 mov dx, strict word 00018h ; ba 18 00 7563 7575 mov ax, strict word 00040h ; b8 40 00 7564 call 0165eh ; e8 e7c27565 jmp near 052 84h ; e9 0a ff7576 call 0165eh ; e8 b9 c2 7577 jmp near 052b2h ; e9 0a ff 7566 7578 mov al, byte [bp-006h] ; 8a 46 fa 7567 7579 and AL, strict byte 0f7h ; 24 f7 … … 7571 7583 mov dx, strict word 00017h ; ba 17 00 7572 7584 mov ax, strict word 00040h ; b8 40 00 7573 call 0165eh ; e8 cfc27585 call 0165eh ; e8 a1 c2 7574 7586 mov al, byte [bp-004h] ; 8a 46 fc 7575 7587 test AL, strict byte 002h ; a8 02 7576 je short 053 a4h ; 74 0e7588 je short 053d2h ; 74 0e 7577 7589 and AL, strict byte 0f7h ; 24 f7 7578 7590 mov byte [bp-00ch], al ; 88 46 f4 … … 7580 7592 mov bx, ax ; 89 c3 7581 7593 mov dx, 00096h ; ba 96 00 7582 jmp short 053 b3h ; eb 0f7594 jmp short 053e1h ; eb 0f 7583 7595 mov al, byte [bp-010h] ; 8a 46 f0 7584 7596 and AL, strict byte 0fdh ; 24 fd … … 7588 7600 mov dx, strict word 00018h ; ba 18 00 7589 7601 mov ax, strict word 00040h ; b8 40 00 7590 call 0165eh ; e8 a5c27591 jmp near 052 84h ; e9 c8 fe7602 call 0165eh ; e8 77 c2 7603 jmp near 052b2h ; e9 c8 fe 7592 7604 test byte [bp-004h], 003h ; f6 46 fc 03 7593 jne short 05 3e2h ; 75 207605 jne short 05410h ; 75 20 7594 7606 mov al, byte [bp-010h] ; 8a 46 f0 7595 7607 or AL, strict byte 020h ; 0c 20 … … 7599 7611 mov dx, strict word 00018h ; ba 18 00 7600 7612 mov ax, strict word 00040h ; b8 40 00 7601 call 0165eh ; e8 87c27613 call 0165eh ; e8 59 c2 7602 7614 mov al, byte [bp-006h] ; 8a 46 fa 7603 7615 xor AL, strict byte 020h ; 34 20 7604 7616 mov byte [bp-00eh], al ; 88 46 f2 7605 jmp near 052 77h ; e9 95 fe7617 jmp near 052a5h ; e9 95 fe 7606 7618 mov al, byte [bp-010h] ; 8a 46 f0 7607 7619 or AL, strict byte 008h ; 0c 08 … … 7611 7623 mov dx, strict word 00018h ; ba 18 00 7612 7624 mov ax, strict word 00040h ; b8 40 00 7613 call 0165eh ; e8 67c27625 call 0165eh ; e8 39 c2 7614 7626 mov AL, strict byte 0aeh ; b0 ae 7615 7627 mov dx, strict word 00064h ; ba 64 00 7616 7628 out DX, AL ; ee 7617 call 0e034h ; e8 348c7629 call 0e034h ; e8 06 8c 7618 7630 mov dx, strict word 00018h ; ba 18 00 7619 7631 mov ax, strict word 00040h ; b8 40 00 7620 call 01650h ; e8 47c27632 call 01650h ; e8 19 c2 7621 7633 test AL, strict byte 008h ; a8 08 7622 jne short 054 00h ; 75 f37623 jmp near 052 84h ; e9 74 fe7634 jne short 0542eh ; 75 f3 7635 jmp near 052b2h ; e9 74 fe 7624 7636 test byte [bp-004h], 003h ; f6 46 fc 03 7625 je short 054 19h ; 74 037626 jmp near 052 84h ; e9 6b fe7637 je short 05447h ; 74 03 7638 jmp near 052b2h ; e9 6b fe 7627 7639 mov al, byte [bp-010h] ; 8a 46 f0 7628 7640 and AL, strict byte 0dfh ; 24 df … … 7632 7644 mov dx, strict word 00018h ; ba 18 00 7633 7645 mov ax, strict word 00040h ; b8 40 00 7634 call 0165eh ; e8 30c27635 jmp short 054 16h ; eb e67646 call 0165eh ; e8 02 c2 7647 jmp short 05444h ; eb e6 7636 7648 test byte [bp-004h], 002h ; f6 46 fc 02 7637 je short 054 69h ; 74 337649 je short 05497h ; 74 33 7638 7650 mov dx, strict word 0001ah ; ba 1a 00 7639 7651 mov ax, strict word 00040h ; b8 40 00 7640 call 0166ch ; e8 2d c27652 call 0166ch ; e8 ff c1 7641 7653 mov bx, ax ; 89 c3 7642 7654 mov dx, strict word 0001ch ; ba 1c 00 7643 7655 mov ax, strict word 00040h ; b8 40 00 7644 call 0167ah ; e8 30c27656 call 0167ah ; e8 02 c2 7645 7657 mov bx, 00080h ; bb 80 00 7646 7658 mov dx, strict word 00071h ; ba 71 00 7647 7659 mov ax, strict word 00040h ; b8 40 00 7648 call 0165eh ; e8 08 c27660 call 0165eh ; e8 da c1 7649 7661 mov AL, strict byte 0aeh ; b0 ae 7650 7662 mov dx, strict word 00064h ; ba 64 00 … … 7655 7667 xor dx, dx ; 31 d2 7656 7668 xor ax, ax ; 31 c0 7657 call 051 15h ; e8 ae fc7658 jmp short 054 16h ; eb ad7669 call 05143h ; e8 ae fc 7670 jmp short 05444h ; eb ad 7659 7671 mov al, byte [bp-010h] ; 8a 46 f0 7660 7672 or AL, strict byte 010h ; 0c 10 … … 7664 7676 mov dx, strict word 00018h ; ba 18 00 7665 7677 mov ax, strict word 00040h ; b8 40 00 7666 call 0165eh ; e8 e0c17678 call 0165eh ; e8 b2 c1 7667 7679 mov al, byte [bp-006h] ; 8a 46 fa 7668 7680 xor AL, strict byte 010h ; 34 10 … … 7672 7684 mov dx, strict word 00017h ; ba 17 00 7673 7685 mov ax, strict word 00040h ; b8 40 00 7674 call 0165eh ; e8 cbc17675 jmp short 054 16h ; eb 817686 call 0165eh ; e8 9d c1 7687 jmp short 05444h ; eb 81 7676 7688 test byte [bp-004h], 002h ; f6 46 fc 02 7677 je short 054 9eh ; 74 037678 jmp near 052 84h ; e9 e6 fd7689 je short 054cch ; 74 03 7690 jmp near 052b2h ; e9 e6 fd 7679 7691 mov al, byte [bp-010h] ; 8a 46 f0 7680 7692 and AL, strict byte 0efh ; 24 ef … … 7684 7696 mov dx, strict word 00018h ; ba 18 00 7685 7697 mov ax, strict word 00040h ; b8 40 00 7686 call 0165eh ; e8 abc17687 jmp short 054 9bh ; eb e67698 call 0165eh ; e8 7d c1 7699 jmp short 054c9h ; eb e6 7688 7700 mov al, byte [bp-010h] ; 8a 46 f0 7689 7701 test AL, strict byte 004h ; a8 04 7690 jne short 054 9bh ; 75 df7702 jne short 054c9h ; 75 df 7691 7703 or AL, strict byte 004h ; 0c 04 7692 7704 mov byte [bp-008h], al ; 88 46 f8 … … 7695 7707 mov dx, strict word 00018h ; ba 18 00 7696 7708 mov ax, strict word 00040h ; b8 40 00 7697 call 0165eh ; e8 90c17698 jmp short 054 9bh ; eb cb7709 call 0165eh ; e8 62 c1 7710 jmp short 054c9h ; eb cb 7699 7711 mov al, byte [bp-010h] ; 8a 46 f0 7700 7712 and AL, strict byte 0fbh ; 24 fb 7701 jmp short 054 a3h ; eb cc7713 jmp short 054d1h ; eb cc 7702 7714 mov al, byte [bp-006h] ; 8a 46 fa 7703 7715 and AL, strict byte 00ch ; 24 0c 7704 7716 cmp AL, strict byte 00ch ; 3c 0c 7705 jne short 05 4f1h ; 75 117717 jne short 0551fh ; 75 11 7706 7718 mov bx, 01234h ; bb 34 12 7707 7719 mov dx, strict word 00072h ; ba 72 00 7708 7720 mov ax, strict word 00040h ; b8 40 00 7709 call 0167ah ; e8 8ec17721 call 0167ah ; e8 60 c1 7710 7722 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7711 7723 test byte [bp-008h], 008h ; f6 46 f8 08 7712 je short 055 06h ; 74 0f7724 je short 05534h ; 74 0f 7713 7725 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7714 7726 mov bl, byte [bp-008h] ; 8a 5e f8 7715 7727 xor bh, bh ; 30 ff 7716 7728 mov dx, strict word 00018h ; ba 18 00 7717 jmp near 052 9dh ; e9 97 fd7729 jmp near 052cbh ; e9 97 fd 7718 7730 mov al, byte [bp-00ah] ; 8a 46 f6 7719 7731 test AL, strict byte 080h ; a8 80 7720 je short 055 44h ; 74 377732 je short 05572h ; 74 37 7721 7733 cmp AL, strict byte 0fah ; 3c fa 7722 jne short 055 23h ; 75 127734 jne short 05551h ; 75 12 7723 7735 mov dx, 00097h ; ba 97 00 7724 7736 mov ax, strict word 00040h ; b8 40 00 7725 call 01650h ; e8 36c17737 call 01650h ; e8 08 c1 7726 7738 mov bl, al ; 88 c3 7727 7739 or bl, 010h ; 80 cb 10 7728 7740 xor bh, bh ; 30 ff 7729 jmp short 055 39h ; eb 167741 jmp short 05567h ; eb 16 7730 7742 cmp AL, strict byte 0feh ; 3c fe 7731 je short 055 2ah ; 74 037732 jmp near 052 84h ; e9 5a fd7743 je short 05558h ; 74 03 7744 jmp near 052b2h ; e9 5a fd 7733 7745 mov dx, 00097h ; ba 97 00 7734 7746 mov ax, strict word 00040h ; b8 40 00 7735 call 01650h ; e8 1d c17747 call 01650h ; e8 ef c0 7736 7748 or AL, strict byte 020h ; 0c 20 7737 7749 xor ah, ah ; 30 e4 … … 7739 7751 mov dx, 00097h ; ba 97 00 7740 7752 mov ax, strict word 00040h ; b8 40 00 7741 call 0165eh ; e8 1c c17742 jmp short 055 27h ; eb e37753 call 0165eh ; e8 ee c0 7754 jmp short 05555h ; eb e3 7743 7755 cmp byte [bp-00ah], 058h ; 80 7e f6 58 7744 jbe short 055 69h ; 76 1f7756 jbe short 05597h ; 76 1f 7745 7757 mov bx, 00da0h ; bb a0 0d 7746 7758 mov cx, ds ; 8c d9 7747 7759 mov ax, strict word 00004h ; b8 04 00 7748 call 01923h ; e8 cec37760 call 01923h ; e8 a0 c3 7749 7761 mov al, byte [bp-00ah] ; 8a 46 f6 7750 7762 xor ah, ah ; 30 e4 … … 7752 7764 push 005a1h ; 68 a1 05 7753 7765 push strict byte 00004h ; 6a 04 7754 call 01966h ; e8 03 c47766 call 01966h ; e8 d5 c3 7755 7767 add sp, strict byte 00006h ; 83 c4 06 7756 jmp near 052 a3h ; e9 3a fd7768 jmp near 052d1h ; e9 3a fd 7757 7769 mov al, byte [bp-00eh] ; 8a 46 f2 7758 7770 test AL, strict byte 008h ; a8 08 7759 je short 055 83h ; 74 137771 je short 055b1h ; 74 13 7760 7772 mov al, byte [bp-00ah] ; 8a 46 f6 7761 7773 xor ah, ah ; 30 e4 … … 7763 7775 mov dl, byte [bx+00df4h] ; 8a 97 f4 0d 7764 7776 mov ax, word [bx+00df4h] ; 8b 87 f4 0d 7765 jmp near 056 13h ; e9 90 007777 jmp near 05641h ; e9 90 00 7766 7778 test AL, strict byte 004h ; a8 04 7767 je short 055 9ah ; 74 137779 je short 055c8h ; 74 13 7768 7780 mov al, byte [bp-00ah] ; 8a 46 f6 7769 7781 xor ah, ah ; 30 e4 … … 7771 7783 mov dl, byte [bx+00df2h] ; 8a 97 f2 0d 7772 7784 mov ax, word [bx+00df2h] ; 8b 87 f2 0d 7773 jmp near 056 13h ; e9 79 007785 jmp near 05641h ; e9 79 00 7774 7786 mov al, byte [bp-00ch] ; 8a 46 f4 7775 7787 and AL, strict byte 002h ; 24 02 7776 7788 test al, al ; 84 c0 7777 jbe short 055 b7h ; 76 147789 jbe short 055e5h ; 76 14 7778 7790 mov al, byte [bp-00ah] ; 8a 46 f6 7779 7791 cmp AL, strict byte 047h ; 3c 47 7780 jc short 055 b7h ; 72 0d7792 jc short 055e5h ; 72 0d 7781 7793 cmp AL, strict byte 053h ; 3c 53 7782 jnbe short 055 b7h ; 77 097794 jnbe short 055e5h ; 77 09 7783 7795 mov DL, strict byte 0e0h ; b2 e0 7784 7796 xor ah, ah ; 30 e4 7785 7797 imul bx, ax, strict byte 0000ah ; 6b d8 0a 7786 jmp short 056 0fh ; eb 587798 jmp short 0563dh ; eb 58 7787 7799 test byte [bp-00eh], 003h ; f6 46 f2 03 7788 je short 05 5ech ; 74 2f7800 je short 0561ah ; 74 2f 7789 7801 mov al, byte [bp-00ah] ; 8a 46 f6 7790 7802 xor ah, ah ; 30 e4 … … 7794 7806 mov al, byte [bp-00eh] ; 8a 46 f2 7795 7807 test ax, dx ; 85 d0 7796 je short 05 5dch ; 74 0a7808 je short 0560ah ; 74 0a 7797 7809 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7798 7810 mov ax, word [bx+00deeh] ; 8b 87 ee 0d 7799 jmp short 05 5e4h ; eb 087811 jmp short 05612h ; eb 08 7800 7812 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7801 7813 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7802 7814 shr ax, 008h ; c1 e8 08 7803 7815 mov byte [bp-00ah], al ; 88 46 f6 7804 jmp short 056 19h ; eb 2d7816 jmp short 05647h ; eb 2d 7805 7817 mov al, byte [bp-00ah] ; 8a 46 f6 7806 7818 xor ah, ah ; 30 e4 … … 7810 7822 mov al, byte [bp-00eh] ; 8a 46 f2 7811 7823 test ax, dx ; 85 d0 7812 je short 056 0bh ; 74 0a7824 je short 05639h ; 74 0a 7813 7825 mov dl, byte [bx+00df0h] ; 8a 97 f0 0d 7814 7826 mov ax, word [bx+00df0h] ; 8b 87 f0 0d 7815 jmp short 056 13h ; eb 087827 jmp short 05641h ; eb 08 7816 7828 mov dl, byte [bx+00deeh] ; 8a 97 ee 0d 7817 7829 mov ax, word [bx+00deeh] ; 8b 87 ee 0d … … 7819 7831 mov byte [bp-00ah], al ; 88 46 f6 7820 7832 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7821 jne short 056 39h ; 75 1a7833 jne short 05667h ; 75 1a 7822 7834 test dl, dl ; 84 d2 7823 jne short 056 39h ; 75 167835 jne short 05667h ; 75 16 7824 7836 mov bx, 00da0h ; bb a0 0d 7825 7837 mov cx, ds ; 8c d9 7826 7838 mov ax, strict word 00004h ; b8 04 00 7827 call 01923h ; e8 f5c27839 call 01923h ; e8 c7 c2 7828 7840 push 005d8h ; 68 d8 05 7829 7841 push strict byte 00004h ; 6a 04 7830 call 01966h ; e8 30c37842 call 01966h ; e8 02 c3 7831 7843 add sp, strict byte 00004h ; 83 c4 04 7832 7844 mov bl, dl ; 88 d3 … … 7835 7847 xor ah, ah ; 30 e4 7836 7848 mov dx, bx ; 89 da 7837 jmp near 054 64h ; e9 1d fe7838 dequeue_key_: ; 0xf56 47LB 0x947849 jmp near 05492h ; e9 1d fe 7850 dequeue_key_: ; 0xf5675 LB 0x94 7839 7851 push bp ; 55 7840 7852 mov bp, sp ; 89 e5 … … 7849 7861 mov dx, strict word 0001ah ; ba 1a 00 7850 7862 mov ax, strict word 00040h ; b8 40 00 7851 call 0166ch ; e8 0b c07863 call 0166ch ; e8 dd bf 7852 7864 mov bx, ax ; 89 c3 7853 7865 mov dx, strict word 0001ch ; ba 1c 00 7854 7866 mov ax, strict word 00040h ; b8 40 00 7855 call 0166ch ; e8 00 c07867 call 0166ch ; e8 d2 bf 7856 7868 cmp bx, ax ; 39 c3 7857 je short 056 adh ; 74 3d7869 je short 056dbh ; 74 3d 7858 7870 mov dx, bx ; 89 da 7859 7871 mov ax, strict word 00040h ; b8 40 00 7860 call 01650h ; e8 d8bf7872 call 01650h ; e8 aa bf 7861 7873 mov cl, al ; 88 c1 7862 7874 lea dx, [bx+001h] ; 8d 57 01 7863 7875 mov ax, strict word 00040h ; b8 40 00 7864 call 01650h ; e8 cdbf7876 call 01650h ; e8 9f bf 7865 7877 mov es, [bp-008h] ; 8e 46 f8 7866 7878 mov byte [es:si], cl ; 26 88 0c … … 7868 7880 mov byte [es:di], al ; 26 88 05 7869 7881 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7870 je short 056 a8h ; 74 137882 je short 056d6h ; 74 13 7871 7883 inc bx ; 43 7872 7884 inc bx ; 43 7873 7885 cmp bx, strict byte 0003eh ; 83 fb 3e 7874 jc short 056 9fh ; 72 037886 jc short 056cdh ; 72 03 7875 7887 mov bx, strict word 0001eh ; bb 1e 00 7876 7888 mov dx, strict word 0001ah ; ba 1a 00 7877 7889 mov ax, strict word 00040h ; b8 40 00 7878 call 0167ah ; e8 d2bf7890 call 0167ah ; e8 a4 bf 7879 7891 mov ax, strict word 00001h ; b8 01 00 7880 jmp short 056 afh ; eb 027892 jmp short 056ddh ; eb 02 7881 7893 xor ax, ax ; 31 c0 7882 7894 lea sp, [bp-004h] ; 8d 66 fc … … 7889 7901 or cl, byte [bx+di] ; 0a 09 7890 7902 add ax, 00102h ; 05 02 01 7891 add ch, bl ; 00 dd 7892 push di ; 57 7893 xchg sp, ax ; 94 7894 push di ; 57 7895 db 026h, 058h 7896 ; es pop ax ; 26 58 7897 jc short 05723h ; 72 58 7898 sbb word [bx+si-054h], strict byte 00058h ; 83 58 ac 58 7899 mov CH, strict byte 058h ; b5 58 7900 db 026h, 059h 7901 ; es pop cx ; 26 59 7903 add byte [bp+di], cl ; 00 0b 7902 7904 pop ax ; 58 7905 retn 05457h ; c2 57 54 7906 pop ax ; 58 7907 mov AL, byte [0b158h] ; a0 58 b1 7908 pop ax ; 58 7909 ficomp dword [bx+si-01dh] ; da 58 e3 7910 pop ax ; 58 7911 push sp ; 54 7903 7912 pop cx ; 59 7904 xchg word [bx+di-040h], bx ; 87 59 c07913 xchg byte [bx+di-04bh], bl ; 86 59 b5 7905 7914 pop cx ; 59 7906 db 020h 7915 out DX, AL ; ee 7916 pop cx ; 59 7917 dec si ; 4e 7907 7918 pop ax ; 58 7908 _int16_function: ; 0xf5 6dbLB 0x2f07919 _int16_function: ; 0xf5709 LB 0x2f0 7909 7920 push bp ; 55 7910 7921 mov bp, sp ; 89 e5 … … 7913 7924 mov dx, strict word 00017h ; ba 17 00 7914 7925 mov ax, strict word 00040h ; b8 40 00 7915 call 01650h ; e8 65bf7926 call 01650h ; e8 37 bf 7916 7927 mov cl, al ; 88 c1 7917 7928 mov bh, al ; 88 c7 7918 7929 mov dx, 00097h ; ba 97 00 7919 7930 mov ax, strict word 00040h ; b8 40 00 7920 call 01650h ; e8 58bf7931 call 01650h ; e8 2a bf 7921 7932 mov bl, al ; 88 c3 7922 7933 mov dl, cl ; 88 ca … … 7928 7939 xor al, dl ; 30 d0 7929 7940 test ax, ax ; 85 c0 7930 je short 057 74h ; 74 667941 je short 057a2h ; 74 66 7931 7942 cli ; fa 7932 7943 mov AL, strict byte 0edh ; b0 ed … … 7938 7949 ; sub ah, ah ; 2a e4 7939 7950 test AL, strict byte 001h ; a8 01 7940 jne short 057 27h ; 75 087951 jne short 05755h ; 75 08 7941 7952 mov AL, strict byte 021h ; b0 21 7942 7953 mov dx, 00080h ; ba 80 00 7943 7954 out DX, AL ; ee 7944 jmp short 057 15h ; eb ee7955 jmp short 05743h ; eb ee 7945 7956 mov dx, strict word 00060h ; ba 60 00 7946 7957 in AL, DX ; ec … … 7948 7959 ; sub ah, ah ; 2a e4 7949 7960 cmp ax, 000fah ; 3d fa 00 7950 jne short 057 73h ; 75 417961 jne short 057a1h ; 75 41 7951 7962 mov dl, bl ; 88 da 7952 7963 and dl, 0c8h ; 80 e2 c8 … … 7968 7979 ; sub ah, ah ; 2a e4 7969 7980 test AL, strict byte 001h ; a8 01 7970 jne short 057 62h ; 75 087981 jne short 05790h ; 75 08 7971 7982 mov AL, strict byte 021h ; b0 21 7972 7983 mov dx, 00080h ; ba 80 00 7973 7984 out DX, AL ; ee 7974 jmp short 057 50h ; eb ee7985 jmp short 0577eh ; eb ee 7975 7986 mov dx, strict word 00060h ; ba 60 00 7976 7987 in AL, DX ; ec … … 7980 7991 mov dx, 00097h ; ba 97 00 7981 7992 mov ax, strict word 00040h ; b8 40 00 7982 call 0165eh ; e8 ebbe7993 call 0165eh ; e8 bd be 7983 7994 sti ; fb 7984 7995 mov ax, word [bp+012h] ; 8b 46 12 7985 7996 shr ax, 008h ; c1 e8 08 7986 7997 cmp ax, 000a2h ; 3d a2 00 7987 jnbe short 05 7ddh ; 77 5e7998 jnbe short 0580bh ; 77 5e 7988 7999 push CS ; 0e 7989 8000 pop ES ; 07 7990 8001 mov cx, strict word 0000ch ; b9 0c 00 7991 mov di, 056 b8h ; bf b8568002 mov di, 056e6h ; bf e6 56 7992 8003 repne scasb ; f2 ae 7993 8004 sal cx, 1 ; d1 e1 7994 8005 mov di, cx ; 89 cf 7995 mov ax, word [cs:di+056 c3h] ; 2e 8b 85 c3568006 mov ax, word [cs:di+056f1h] ; 2e 8b 85 f1 56 7996 8007 jmp ax ; ff e0 7997 8008 push strict byte 00001h ; 6a 01 … … 8000 8011 mov dx, ss ; 8c d2 8001 8012 lea ax, [bp-006h] ; 8d 46 fa 8002 call 056 47h ; e8 a4 fe8013 call 05675h ; e8 a4 fe 8003 8014 test ax, ax ; 85 c0 8004 jne short 057 b2h ; 75 0b8015 jne short 057e0h ; 75 0b 8005 8016 push 0060fh ; 68 0f 06 8006 8017 push strict byte 00007h ; 6a 07 8007 call 01966h ; e8 b7c18018 call 01966h ; e8 89 c1 8008 8019 add sp, strict byte 00004h ; 83 c4 04 8009 8020 cmp byte [bp-006h], 000h ; 80 7e fa 00 8010 je short 057 beh ; 74 068021 je short 057ech ; 74 06 8011 8022 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8012 je short 057 c4h ; 74 068023 je short 057f2h ; 74 06 8013 8024 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8014 jne short 057 c8h ; 75 048025 jne short 057f6h ; 75 04 8015 8026 mov byte [bp-008h], 000h ; c6 46 f8 00 8016 8027 mov al, byte [bp-006h] ; 8a 46 fa … … 8021 8032 or dx, ax ; 09 c2 8022 8033 mov word [bp+012h], dx ; 89 56 12 8023 jmp near 058 20h ; e9 43 008034 jmp near 0584eh ; e9 43 00 8024 8035 mov bx, 00da0h ; bb a0 0d 8025 8036 mov cx, ds ; 8c d9 8026 8037 mov ax, strict word 00004h ; b8 04 00 8027 call 01923h ; e8 3bc18038 call 01923h ; e8 0d c1 8028 8039 mov ax, word [bp+012h] ; 8b 46 12 8029 8040 shr ax, 008h ; c1 e8 08 … … 8031 8042 push 00633h ; 68 33 06 8032 8043 push strict byte 00004h ; 6a 04 8033 call 01966h ; e8 6fc18044 call 01966h ; e8 41 c1 8034 8045 add sp, strict byte 00006h ; 83 c4 06 8035 8046 mov bx, 00da0h ; bb a0 0d 8036 8047 mov cx, ds ; 8c d9 8037 8048 mov ax, strict word 00004h ; b8 04 00 8038 call 01923h ; e8 1e c18049 call 01923h ; e8 f0 c0 8039 8050 mov ax, word [bp+00eh] ; 8b 46 0e 8040 8051 push ax ; 50 … … 8047 8058 push 0065bh ; 68 5b 06 8048 8059 push strict byte 00004h ; 6a 04 8049 call 01966h ; e8 49c18060 call 01966h ; e8 1b c1 8050 8061 add sp, strict byte 0000ch ; 83 c4 0c 8051 8062 lea sp, [bp-002h] ; 8d 66 fe … … 8059 8070 mov dx, ss ; 8c d2 8060 8071 lea ax, [bp-006h] ; 8d 46 fa 8061 call 056 47h ; e8 0d fe8072 call 05675h ; e8 0d fe 8062 8073 test ax, ax ; 85 c0 8063 jne short 058 44h ; 75 068074 jne short 05872h ; 75 06 8064 8075 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 8065 jmp short 058 20h ; eb dc8076 jmp short 0584eh ; eb dc 8066 8077 cmp byte [bp-006h], 000h ; 80 7e fa 00 8067 je short 058 50h ; 74 068078 je short 0587eh ; 74 06 8068 8079 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8069 je short 058 56h ; 74 068080 je short 05884h ; 74 06 8070 8081 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 8071 jne short 058 5ah ; 75 048082 jne short 05888h ; 75 04 8072 8083 mov byte [bp-008h], 000h ; c6 46 f8 00 8073 8084 mov al, byte [bp-006h] ; 8a 46 fa … … 8079 8090 mov word [bp+012h], dx ; 89 56 12 8080 8091 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 8081 jmp short 058 20h ; eb ae8092 jmp short 0584eh ; eb ae 8082 8093 mov dx, strict word 00017h ; ba 17 00 8083 8094 mov ax, strict word 00040h ; b8 40 00 8084 call 01650h ; e8 d5bd8095 call 01650h ; e8 a7 bd 8085 8096 mov dx, word [bp+012h] ; 8b 56 12 8086 8097 mov dl, al ; 88 c2 8087 jmp near 05 7d7h ; e9 54 ff8098 jmp near 05805h ; e9 54 ff 8088 8099 mov dl, byte [bp+010h] ; 8a 56 10 8089 8100 xor dh, dh ; 30 f6 … … 8091 8102 shr ax, 008h ; c1 e8 08 8092 8103 xor ah, ah ; 30 e4 8093 call 051 15h ; e8 82 f88104 call 05143h ; e8 82 f8 8094 8105 test ax, ax ; 85 c0 8095 jne short 058 a4h ; 75 0d8106 jne short 058d2h ; 75 0d 8096 8107 mov ax, word [bp+012h] ; 8b 46 12 8097 8108 xor al, al ; 30 c0 8098 8109 or AL, strict byte 001h ; 0c 01 8099 8110 mov word [bp+012h], ax ; 89 46 12 8100 jmp near 058 20h ; e9 7c ff8111 jmp near 0584eh ; e9 7c ff 8101 8112 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8102 jmp near 058 20h ; e9 74 ff8113 jmp near 0584eh ; e9 74 ff 8103 8114 mov ax, word [bp+012h] ; 8b 46 12 8104 8115 xor al, al ; 30 c0 8105 8116 or AL, strict byte 030h ; 0c 30 8106 jmp short 058 9eh ; eb e98117 jmp short 058cch ; eb e9 8107 8118 mov byte [bp-004h], 002h ; c6 46 fc 02 8108 8119 xor cx, cx ; 31 c9 … … 8117 8128 ; sub ah, ah ; 2a e4 8118 8129 test AL, strict byte 001h ; a8 01 8119 jne short 05 8dch ; 75 0d8130 jne short 0590ah ; 75 0d 8120 8131 dec bx ; 4b 8121 8132 test bx, bx ; 85 db 8122 jbe short 05 8dch ; 76 088133 jbe short 0590ah ; 76 08 8123 8134 mov dx, 00080h ; ba 80 00 8124 8135 in AL, DX ; ec 8125 8136 db 02ah, 0e4h 8126 8137 ; sub ah, ah ; 2a e4 8127 jmp short 058 c5h ; eb e98138 jmp short 058f3h ; eb e9 8128 8139 test bx, bx ; 85 db 8129 jbe short 059 20h ; 76 408140 jbe short 0594eh ; 76 40 8130 8141 mov dx, strict word 00060h ; ba 60 00 8131 8142 in AL, DX ; ec … … 8133 8144 ; sub ah, ah ; 2a e4 8134 8145 cmp ax, 000fah ; 3d fa 00 8135 jne short 059 20h ; 75 358146 jne short 0594eh ; 75 35 8136 8147 mov bx, strict word 0ffffh ; bb ff ff 8137 8148 mov dx, strict word 00064h ; ba 64 00 … … 8140 8151 ; sub ah, ah ; 2a e4 8141 8152 test AL, strict byte 001h ; a8 01 8142 jne short 059 05h ; 75 0d8153 jne short 05933h ; 75 0d 8143 8154 dec bx ; 4b 8144 8155 test bx, bx ; 85 db 8145 jbe short 059 05h ; 76 088156 jbe short 05933h ; 76 08 8146 8157 mov dx, 00080h ; ba 80 00 8147 8158 in AL, DX ; ec 8148 8159 db 02ah, 0e4h 8149 8160 ; sub ah, ah ; 2a e4 8150 jmp short 05 8eeh ; eb e98161 jmp short 0591ch ; eb e9 8151 8162 test bx, bx ; 85 db 8152 jbe short 059 17h ; 76 0e8163 jbe short 05945h ; 76 0e 8153 8164 shr cx, 008h ; c1 e9 08 8154 8165 mov dx, strict word 00060h ; ba 60 00 … … 8160 8171 dec byte [bp-004h] ; fe 4e fc 8161 8172 cmp byte [bp-004h], 000h ; 80 7e fc 00 8162 jnbe short 05 8ebh ; 77 cb8173 jnbe short 05919h ; 77 cb 8163 8174 mov word [bp+00ch], cx ; 89 4e 0c 8164 jmp near 058 20h ; e9 fa fe8175 jmp near 0584eh ; e9 fa fe 8165 8176 push strict byte 00001h ; 6a 01 8166 8177 mov cx, ss ; 8c d1 … … 8168 8179 mov dx, ss ; 8c d2 8169 8180 lea ax, [bp-006h] ; 8d 46 fa 8170 call 056 47h ; e8 12 fd8181 call 05675h ; e8 12 fd 8171 8182 test ax, ax ; 85 c0 8172 jne short 059 44h ; 75 0b8183 jne short 05972h ; 75 0b 8173 8184 push 0060fh ; 68 0f 06 8174 8185 push strict byte 00007h ; 6a 07 8175 call 01966h ; e8 25 c08186 call 01966h ; e8 f7 bf 8176 8187 add sp, strict byte 00004h ; 83 c4 04 8177 8188 cmp byte [bp-006h], 000h ; 80 7e fa 00 8178 jne short 059 4dh ; 75 038179 jmp near 057 c8h ; e9 7b fe8189 jne short 0597bh ; 75 03 8190 jmp near 057f6h ; e9 7b fe 8180 8191 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8181 jne short 059 56h ; 75 038182 jmp near 057 c4h ; e9 6e fe8183 jmp short 059 4ah ; eb f28192 jne short 05984h ; 75 03 8193 jmp near 057f2h ; e9 6e fe 8194 jmp short 05978h ; eb f2 8184 8195 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 8185 8196 push strict byte 00000h ; 6a 00 … … 8188 8199 mov dx, ss ; 8c d2 8189 8200 lea ax, [bp-006h] ; 8d 46 fa 8190 call 056 47h ; e8 db fc8201 call 05675h ; e8 db fc 8191 8202 test ax, ax ; 85 c0 8192 jne short 059 73h ; 75 038193 jmp near 058 3eh ; e9 cb fe8203 jne short 059a1h ; 75 03 8204 jmp near 0586ch ; e9 cb fe 8194 8205 cmp byte [bp-006h], 000h ; 80 7e fa 00 8195 jne short 059 7ch ; 75 038196 jmp near 058 5ah ; e9 de fe8206 jne short 059aah ; 75 03 8207 jmp near 05888h ; e9 de fe 8197 8208 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 8198 jne short 059 85h ; 75 038199 jmp near 058 56h ; e9 d1 fe8200 jmp short 059 79h ; eb f28209 jne short 059b3h ; 75 03 8210 jmp near 05884h ; e9 d1 fe 8211 jmp short 059a7h ; eb f2 8201 8212 mov dx, strict word 00017h ; ba 17 00 8202 8213 mov ax, strict word 00040h ; b8 40 00 8203 call 01650h ; e8 c0bc8214 call 01650h ; e8 92 bc 8204 8215 mov dx, word [bp+012h] ; 8b 56 12 8205 8216 mov dl, al ; 88 c2 … … 8207 8218 mov dx, strict word 00018h ; ba 18 00 8208 8219 mov ax, strict word 00040h ; b8 40 00 8209 call 01650h ; e8 afbc8220 call 01650h ; e8 81 bc 8210 8221 mov bh, al ; 88 c7 8211 8222 and bh, 073h ; 80 e7 73 8212 8223 mov dx, 00096h ; ba 96 00 8213 8224 mov ax, strict word 00040h ; b8 40 00 8214 call 01650h ; e8 a1bc8225 call 01650h ; e8 73 bc 8215 8226 and AL, strict byte 00ch ; 24 0c 8216 8227 or al, bh ; 08 f8 … … 8219 8230 xor ah, ah ; 30 e4 8220 8231 sal ax, 008h ; c1 e0 08 8221 jmp near 05 7d5h ; e9 15 fe8232 jmp near 05803h ; e9 15 fe 8222 8233 mov ax, word [bp+012h] ; 8b 46 12 8223 8234 xor ah, ah ; 30 e4 8224 8235 or ah, 080h ; 80 cc 80 8225 jmp near 058 9eh ; e9 d3 fe8226 set_geom_lba_: ; 0xf59 cbLB 0xe78236 jmp near 058cch ; e9 d3 fe 8237 set_geom_lba_: ; 0xf59f9 LB 0xe7 8227 8238 push bx ; 53 8228 8239 push cx ; 51 … … 8240 8251 mov dx, word [bp+00ch] ; 8b 56 0c 8241 8252 mov si, strict word 00020h ; be 20 00 8242 call 0 9fe0h ; e8 e8458253 call 0a010h ; e8 ea 45 8243 8254 test ax, ax ; 85 c0 8244 jne short 05a 08h ; 75 0c8255 jne short 05a36h ; 75 0c 8245 8256 test bx, bx ; 85 db 8246 jne short 05a 08h ; 75 088257 jne short 05a36h ; 75 08 8247 8258 test cx, cx ; 85 c9 8248 jne short 05a 08h ; 75 048259 jne short 05a36h ; 75 04 8249 8260 test dx, dx ; 85 d2 8250 je short 05a 0fh ; 74 078261 je short 05a3dh ; 74 07 8251 8262 mov bx, strict word 0ffffh ; bb ff ff 8252 8263 mov si, bx ; 89 de 8253 jmp short 05a 15h ; eb 068264 jmp short 05a43h ; eb 06 8254 8265 mov bx, word [bp+00ch] ; 8b 5e 0c 8255 8266 mov si, word [bp+00eh] ; 8b 76 0e 8256 8267 mov word [bp-004h], bx ; 89 5e fc 8257 8268 xor bx, bx ; 31 db 8258 jmp short 05a 21h ; eb 058269 jmp short 05a4fh ; eb 05 8259 8270 cmp bx, strict byte 00004h ; 83 fb 04 8260 jnl short 05a 44h ; 7d 238271 jnl short 05a72h ; 7d 23 8261 8272 mov ax, word [bp-006h] ; 8b 46 fa 8262 8273 cmp si, ax ; 39 c6 8263 jc short 05a 32h ; 72 0a8264 jne short 05a 3bh ; 75 118274 jc short 05a60h ; 72 0a 8275 jne short 05a69h ; 75 11 8265 8276 mov ax, word [bp-004h] ; 8b 46 fc 8266 8277 cmp ax, word [bp-008h] ; 3b 46 f8 8267 jnbe short 05a 3bh ; 77 098278 jnbe short 05a69h ; 77 09 8268 8279 mov ax, word [bp-002h] ; 8b 46 fe 8269 8280 inc ax ; 40 … … 8273 8284 rcr word [bp-008h], 1 ; d1 5e f8 8274 8285 inc bx ; 43 8275 jmp short 05a 1ch ; eb d88286 jmp short 05a4ah ; eb d8 8276 8287 mov ax, word [bp-002h] ; 8b 46 fe 8277 8288 xor dx, dx ; 31 d2 8278 8289 mov bx, strict word 0003fh ; bb 3f 00 8279 8290 xor cx, cx ; 31 c9 8280 call 09f 90h ; e8 3f458291 call 09fc0h ; e8 41 45 8281 8292 mov bx, ax ; 89 c3 8282 8293 mov cx, dx ; 89 d1 8283 8294 mov ax, word [bp-004h] ; 8b 46 fc 8284 8295 mov dx, si ; 89 f2 8285 call 09f b0h ; e8 53458296 call 09fe0h ; e8 55 45 8286 8297 mov word [es:di+002h], ax ; 26 89 45 02 8287 8298 cmp ax, 00400h ; 3d 00 04 8288 jbe short 05a 6ch ; 76 068299 jbe short 05a9ah ; 76 06 8289 8300 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8290 8301 mov ax, word [bp-002h] ; 8b 46 fe … … 8297 8308 pop bx ; 5b 8298 8309 retn 00008h ; c2 08 00 8299 cmp bl, byte [bp+di+04bh] ; 3a 5b 4b8310 push 0795bh ; 68 5b 79 8300 8311 pop bx ; 5b 8301 jp short 05ae1h ; 7a 5b 8302 jp short 05ae3h ; 7a 5b 8303 jp short 05ae5h ; 7a 5b 8304 push strict byte 0005dh ; 6a 5d 8305 mov word [0a35eh], ax ; a3 5e a3 8312 test AL, strict byte 05bh ; a8 5b 8313 test AL, strict byte 05bh ; a8 5b 8314 test AL, strict byte 05bh ; a8 5b 8315 cbw ; 98 8316 pop bp ; 5d 8317 rcr word [bp-02fh], 1 ; d1 5e d1 8306 8318 pop si ; 5e 8307 xchg di, ax ; 97 8308 pop bp ; 5d 8309 sbb byte [bp-05dh], 05eh ; 80 5e a3 5e 8310 mov word [0805eh], ax ; a3 5e 80 8319 lds bx, [di-052h] ; c5 5d ae 8311 8320 pop si ; 5e 8312 sbb byte [bp-05dh], 05eh ; 80 5e a3 5e 8313 mov word [0025eh], ax ; a3 5e 02 8321 rcr word [bp-02fh], 1 ; d1 5e d1 8314 8322 pop si ; 5e 8315 sbb byte [bp-05dh], 05eh ; 80 5e a3 5e 8316 mov word [0805eh], ax ; a3 5e 80 8323 scasb ; ae 8317 8324 pop si ; 5e 8318 xor bx, word [bp-05dh] ; 33 5e a38325 scasb ; ae 8319 8326 pop si ; 5e 8320 mov word [0a35eh], ax ; a3 5e a38327 rcr word [bp-02fh], 1 ; d1 5e d1 8321 8328 pop si ; 5e 8322 _int13_harddisk: ; 0xf5ab2 LB 0x44f 8329 xor byte [bp-052h], bl ; 30 5e ae 8330 pop si ; 5e 8331 rcr word [bp-02fh], 1 ; d1 5e d1 8332 pop si ; 5e 8333 scasb ; ae 8334 pop si ; 5e 8335 popaw ; 61 8336 pop si ; 5e 8337 rcr word [bp-02fh], 1 ; d1 5e d1 8338 pop si ; 5e 8339 db 0d1h 8340 pop si ; 5e 8341 _int13_harddisk: ; 0xf5ae0 LB 0x44f 8323 8342 push bp ; 55 8324 8343 mov bp, sp ; 89 e5 … … 8326 8345 mov dx, strict word 0000eh ; ba 0e 00 8327 8346 mov ax, strict word 00040h ; b8 40 00 8328 call 0166ch ; e8 abbb8347 call 0166ch ; e8 7d bb 8329 8348 mov si, 00122h ; be 22 01 8330 8349 mov word [bp-004h], ax ; 89 46 fc … … 8332 8351 mov dx, 0008eh ; ba 8e 00 8333 8352 mov ax, strict word 00040h ; b8 40 00 8334 call 0165eh ; e8 8cbb8353 call 0165eh ; e8 5e bb 8335 8354 mov ax, word [bp+00eh] ; 8b 46 0e 8336 8355 xor ah, ah ; 30 e4 8337 8356 cmp ax, 00080h ; 3d 80 00 8338 jc short 05 ae1h ; 72 058357 jc short 05b0fh ; 72 05 8339 8358 cmp ax, 00090h ; 3d 90 00 8340 jc short 05 affh ; 72 1e8359 jc short 05b2dh ; 72 1e 8341 8360 mov ax, word [bp+00eh] ; 8b 46 0e 8342 8361 xor ah, ah ; 30 e4 … … 8348 8367 push 0068dh ; 68 8d 06 8349 8368 push strict byte 00004h ; 6a 04 8350 call 01966h ; e8 6dbe8369 call 01966h ; e8 3f be 8351 8370 add sp, strict byte 0000ah ; 83 c4 0a 8352 jmp near 05e beh ; e9 bf 038371 jmp near 05eech ; e9 bf 03 8353 8372 mov ax, word [bp+00eh] ; 8b 46 0e 8354 8373 xor ah, ah ; 30 e4 … … 8359 8378 mov byte [bp-002h], dl ; 88 56 fe 8360 8379 cmp dl, 010h ; 80 fa 10 8361 jc short 05b 28h ; 72 108380 jc short 05b56h ; 72 10 8362 8381 push ax ; 50 8363 8382 mov ax, word [bp+016h] ; 8b 46 16 … … 8366 8385 push 0067eh ; 68 7e 06 8367 8386 push 006b8h ; 68 b8 06 8368 jmp short 05 af4h ; eb cc8387 jmp short 05b22h ; eb cc 8369 8388 mov bx, word [bp+016h] ; 8b 5e 16 8370 8389 shr bx, 008h ; c1 eb 08 8371 8390 cmp bx, strict byte 00018h ; 83 fb 18 8372 jnbe short 05b 77h ; 77 448391 jnbe short 05ba5h ; 77 44 8373 8392 add bx, bx ; 01 db 8374 jmp word [cs:bx+05a 80h] ; 2e ff a7 805a8393 jmp word [cs:bx+05aaeh] ; 2e ff a7 ae 5a 8375 8394 cmp byte [bp-002h], 008h ; 80 7e fe 08 8376 jnc short 05b 48h ; 73 088395 jnc short 05b76h ; 73 08 8377 8396 mov al, byte [bp-002h] ; 8a 46 fe 8378 8397 xor ah, ah ; 30 e4 8379 call 01d85h ; e8 3dc28380 jmp near 05d 80h ; e9 35 028398 call 01d85h ; e8 0f c2 8399 jmp near 05daeh ; e9 35 02 8381 8400 mov dx, strict word 00074h ; ba 74 00 8382 8401 mov ax, strict word 00040h ; b8 40 00 8383 call 01650h ; e8 fcba8402 call 01650h ; e8 ce ba 8384 8403 mov cl, al ; 88 c1 8385 8404 mov dx, word [bp+016h] ; 8b 56 16 … … 8392 8411 mov dx, strict word 00074h ; ba 74 00 8393 8412 mov ax, strict word 00040h ; b8 40 00 8394 call 0165eh ; e8 eeba8413 call 0165eh ; e8 c0 ba 8395 8414 test cl, cl ; 84 c9 8396 je short 05 bd8h ; 74 648397 jmp near 05 edah ; e9 63 038398 jmp near 05e a3h ; e9 29 038415 je short 05c06h ; 74 64 8416 jmp near 05f08h ; e9 63 03 8417 jmp near 05ed1h ; e9 29 03 8399 8418 mov ax, word [bp+016h] ; 8b 46 16 8400 8419 xor ah, ah ; 30 e4 … … 8416 8435 mov ax, word [bp-00eh] ; 8b 46 f2 8417 8436 cmp ax, 00080h ; 3d 80 00 8418 jnbe short 05b b5h ; 77 048437 jnbe short 05be3h ; 77 04 8419 8438 test ax, ax ; 85 c0 8420 jne short 05 bdbh ; 75 268439 jne short 05c09h ; 75 26 8421 8440 mov bx, 00da0h ; bb a0 0d 8422 8441 mov cx, ds ; 8c d9 8423 8442 mov ax, strict word 00004h ; b8 04 00 8424 call 01923h ; e8 63bd8443 call 01923h ; e8 35 bd 8425 8444 mov ax, word [bp+016h] ; 8b 46 16 8426 8445 shr ax, 008h ; c1 e8 08 … … 8429 8448 push 006eah ; 68 ea 06 8430 8449 push strict byte 00004h ; 6a 04 8431 call 01966h ; e8 94bd8450 call 01966h ; e8 66 bd 8432 8451 add sp, strict byte 00008h ; 83 c4 08 8433 jmp near 05e beh ; e9 e6 028434 jmp near 05d 84h ; e9 a9 018452 jmp near 05eech ; e9 e6 02 8453 jmp near 05db2h ; e9 a9 01 8435 8454 mov al, byte [bp-002h] ; 8a 46 fe 8436 8455 xor ah, ah ; 30 e4 … … 8444 8463 mov word [bp-00ah], dx ; 89 56 f6 8445 8464 cmp di, ax ; 39 c7 8446 jnc short 05c 09h ; 73 0c8465 jnc short 05c37h ; 73 0c 8447 8466 cmp cx, word [bp-008h] ; 3b 4e f8 8448 jbe short 05c 09h ; 76 078467 jbe short 05c37h ; 76 07 8449 8468 mov ax, word [bp-006h] ; 8b 46 fa 8450 8469 cmp ax, dx ; 39 d0 8451 jbe short 05c 39h ; 76 308470 jbe short 05c67h ; 76 30 8452 8471 mov bx, 00da0h ; bb a0 0d 8453 8472 mov cx, ds ; 8c d9 8454 8473 mov ax, strict word 00004h ; b8 04 00 8455 call 01923h ; e8 0f bd8474 call 01923h ; e8 e1 bc 8456 8475 push word [bp-006h] ; ff 76 fa 8457 8476 push word [bp-008h] ; ff 76 f8 … … 8466 8485 push 00712h ; 68 12 07 8467 8486 push strict byte 00004h ; 6a 04 8468 call 01966h ; e8 33bd8487 call 01966h ; e8 05 bd 8469 8488 add sp, strict byte 00010h ; 83 c4 10 8470 jmp near 05e beh ; e9 85 028489 jmp near 05eech ; e9 85 02 8471 8490 mov ax, word [bp+016h] ; 8b 46 16 8472 8491 shr ax, 008h ; c1 e8 08 8473 8492 cmp ax, strict word 00004h ; 3d 04 00 8474 je short 05c 64h ; 74 208493 je short 05c92h ; 74 20 8475 8494 mov al, byte [bp-002h] ; 8a 46 fe 8476 8495 xor ah, ah ; 30 e4 … … 8480 8499 add bx, ax ; 01 c3 8481 8500 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8482 jne short 05c 6dh ; 75 148501 jne short 05c9bh ; 75 14 8483 8502 mov ax, word [es:bx+034h] ; 26 8b 47 34 8484 8503 cmp ax, word [bp-00ah] ; 3b 46 f6 8485 je short 05c 67h ; 74 058486 jmp short 05c 6dh ; eb 098487 jmp near 05d 80h ; e9 19 018504 je short 05c95h ; 74 05 8505 jmp short 05c9bh ; eb 09 8506 jmp near 05daeh ; e9 19 01 8488 8507 cmp byte [bp-002h], 008h ; 80 7e fe 08 8489 jc short 05c 9dh ; 72 308508 jc short 05ccbh ; 72 30 8490 8509 mov ax, di ; 89 f8 8491 8510 xor dx, dx ; 31 d2 8492 8511 mov bx, cx ; 89 cb 8493 8512 xor cx, cx ; 31 c9 8494 call 09f 90h ; e8 18438513 call 09fc0h ; e8 1a 43 8495 8514 xor bx, bx ; 31 db 8496 8515 add ax, word [bp-008h] ; 03 46 f8 … … 8498 8517 mov bx, word [bp-00ah] ; 8b 5e f6 8499 8518 xor cx, cx ; 31 c9 8500 call 09f 90h ; e8 09438519 call 09fc0h ; e8 0b 43 8501 8520 xor bx, bx ; 31 db 8502 8521 add ax, word [bp-006h] ; 03 46 fa … … 8554 8573 mov word [bp+016h], bx ; 89 5e 16 8555 8574 test dl, dl ; 84 d2 8556 je short 05d 80h ; 74 468575 je short 05daeh ; 74 46 8557 8576 mov bx, 00da0h ; bb a0 0d 8558 8577 mov cx, ds ; 8c d9 8559 8578 mov ax, strict word 00004h ; b8 04 00 8560 call 01923h ; e8 debb8579 call 01923h ; e8 b0 bb 8561 8580 mov al, dl ; 88 d0 8562 8581 xor ah, ah ; 30 e4 … … 8568 8587 push 00759h ; 68 59 07 8569 8588 push strict byte 00004h ; 6a 04 8570 call 01966h ; e8 0a bc8589 call 01966h ; e8 dc bb 8571 8590 add sp, strict byte 0000ah ; 83 c4 0a 8572 8591 mov ax, word [bp+016h] ; 8b 46 16 8573 8592 xor ah, ah ; 30 e4 8574 8593 or ah, 00ch ; 80 cc 0c 8575 jmp near 05e c6h ; e9 5c 018594 jmp near 05ef4h ; e9 5c 01 8576 8595 mov bx, 00da0h ; bb a0 0d 8577 8596 mov cx, ds ; 8c d9 8578 8597 mov ax, strict word 00004h ; b8 04 00 8579 call 01923h ; e8 aebb8598 call 01923h ; e8 80 bb 8580 8599 push 0077ah ; 68 7a 07 8581 8600 push strict byte 00004h ; 6a 04 8582 call 01966h ; e8 e9bb8601 call 01966h ; e8 bb bb 8583 8602 add sp, strict byte 00004h ; 83 c4 04 8584 8603 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8586 8605 mov dx, strict word 00074h ; ba 74 00 8587 8606 mov ax, strict word 00040h ; b8 40 00 8588 call 0165eh ; e8 cfb88607 call 0165eh ; e8 a1 b8 8589 8608 and byte [bp+01ch], 0feh ; 80 66 1c fe 8590 8609 mov sp, bp ; 89 ec … … 8629 8648 mov dl, al ; 88 c2 8630 8649 mov word [bp+012h], dx ; 89 56 12 8631 jmp near 05d 80h ; e9 7e ff8650 jmp near 05daeh ; e9 7e ff 8632 8651 mov al, byte [bp-002h] ; 8a 46 fe 8633 8652 xor ah, ah ; 30 e4 … … 8646 8665 and AL, strict byte 0c0h ; 24 c0 8647 8666 cmp AL, strict byte 040h ; 3c 40 8648 jne short 05e 28h ; 75 038649 jmp near 05d 80h ; e9 58 ff8667 jne short 05e56h ; 75 03 8668 jmp near 05daeh ; e9 58 ff 8650 8669 mov ax, word [bp+016h] ; 8b 46 16 8651 8670 xor ah, ah ; 30 e4 8652 8671 or ah, 0aah ; 80 cc aa 8653 jmp near 05e c6h ; e9 93 008672 jmp near 05ef4h ; e9 93 00 8654 8673 mov al, byte [bp-002h] ; 8a 46 fe 8655 8674 xor ah, ah ; 30 e4 … … 8666 8685 mov bx, word [bp-008h] ; 8b 5e f8 8667 8686 xor cx, cx ; 31 c9 8668 call 09f 90h ; e8 32418687 call 09fc0h ; e8 34 41 8669 8688 mov bx, word [bp-006h] ; 8b 5e fa 8670 8689 xor cx, cx ; 31 c9 8671 call 09f 90h ; e8 2a418690 call 09fc0h ; e8 2c 41 8672 8691 mov word [bp-010h], ax ; 89 46 f0 8673 8692 mov word [bp-00ch], dx ; 89 56 f4 … … 8678 8697 or ah, 003h ; 80 cc 03 8679 8698 mov word [bp+016h], ax ; 89 46 16 8680 jmp near 05d 84h ; e9 04 ff8699 jmp near 05db2h ; e9 04 ff 8681 8700 mov bx, 00da0h ; bb a0 0d 8682 8701 mov cx, ds ; 8c d9 8683 8702 mov ax, strict word 00004h ; b8 04 00 8684 call 01923h ; e8 98ba8703 call 01923h ; e8 6a ba 8685 8704 mov ax, word [bp+016h] ; 8b 46 16 8686 8705 shr ax, 008h ; c1 e8 08 … … 8689 8708 push 00794h ; 68 94 07 8690 8709 push strict byte 00004h ; 6a 04 8691 call 01966h ; e8 c9ba8710 call 01966h ; e8 9b ba 8692 8711 add sp, strict byte 00008h ; 83 c4 08 8693 jmp near 05d 80h ; e9 dd fe8712 jmp near 05daeh ; e9 dd fe 8694 8713 mov bx, 00da0h ; bb a0 0d 8695 8714 mov cx, ds ; 8c d9 8696 8715 mov ax, strict word 00004h ; b8 04 00 8697 call 01923h ; e8 75ba8716 call 01923h ; e8 47 ba 8698 8717 mov ax, word [bp+016h] ; 8b 46 16 8699 8718 shr ax, 008h ; c1 e8 08 … … 8701 8720 push 0067eh ; 68 7e 06 8702 8721 push 007c7h ; 68 c7 07 8703 jmp near 05b cdh ; e9 0f fd8722 jmp near 05bfbh ; e9 0f fd 8704 8723 mov ax, word [bp+016h] ; 8b 46 16 8705 8724 xor ah, ah ; 30 e4 … … 8711 8730 mov dx, strict word 00074h ; ba 74 00 8712 8731 mov ax, strict word 00040h ; b8 40 00 8713 call 0165eh ; e8 84b78732 call 0165eh ; e8 56 b7 8714 8733 or byte [bp+01ch], 001h ; 80 4e 1c 01 8715 jmp near 05d 93h ; e9 b2 fe8716 popfw ; 9d8734 jmp near 05dc1h ; e9 b2 fe 8735 retf ; cb 8717 8736 pop di ; 5f 8718 rcr byte [bx-030h], 1 ; d0 5f d08737 db 0feh 8719 8738 pop di ; 5f 8720 rcr byte [bx-03fh], 1 ; d0 5f c1 8721 arpl [bp+di], bp ; 63 2b 8722 popaw ; 61 8723 rcr byte [bx+034h], 1 ; d0 5f 34 8724 popaw ; 61 8725 sal word [bp+di-04bh], 05fh ; c1 63 b5 5f 8726 mov CH, strict byte 05fh ; b5 5f 8727 mov CH, strict byte 05fh ; b5 5f 8728 mov CH, strict byte 05fh ; b5 5f 8729 fsub dword [bp+di-04bh] ; d8 63 b5 8739 db 0feh 8730 8740 pop di ; 5f 8731 mov CH, strict byte 05fh ; b5 5f 8732 _int13_harddisk_ext: ; 0xf5f01 LB 0x50f 8741 db 0feh 8742 pop di ; 5f 8743 out DX, ax ; ef 8744 arpl [bx+di+061h], bx ; 63 59 61 8745 db 0feh 8746 pop di ; 5f 8747 bound sp, [bx+di-011h] ; 62 61 ef 8748 arpl bx, sp ; 63 e3 8749 pop di ; 5f 8750 jcxz 05f84h ; e3 5f 8751 jcxz 05f86h ; e3 5f 8752 jcxz 05f88h ; e3 5f 8753 push ES ; 06 8754 db 064h, 0e3h, 05fh 8755 ; fs jcxz 05f8ch ; 64 e3 5f 8756 jcxz 05f8eh ; e3 5f 8757 _int13_harddisk_ext: ; 0xf5f2f LB 0x50f 8733 8758 push bp ; 55 8734 8759 mov bp, sp ; 89 e5 … … 8736 8761 mov dx, strict word 0000eh ; ba 0e 00 8737 8762 mov ax, strict word 00040h ; b8 40 00 8738 call 0166ch ; e8 5cb78763 call 0166ch ; e8 2e b7 8739 8764 mov word [bp-012h], ax ; 89 46 ee 8740 8765 mov dx, strict word 0000eh ; ba 0e 00 8741 8766 mov ax, strict word 00040h ; b8 40 00 8742 call 0166ch ; e8 50b78767 call 0166ch ; e8 22 b7 8743 8768 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8744 8769 mov word [bp-006h], ax ; 89 46 fa … … 8746 8771 mov dx, 0008eh ; ba 8e 00 8747 8772 mov ax, strict word 00040h ; b8 40 00 8748 call 0165eh ; e8 2fb78773 call 0165eh ; e8 01 b7 8749 8774 mov ax, word [bp+00eh] ; 8b 46 0e 8750 8775 xor ah, ah ; 30 e4 8751 8776 cmp ax, 00080h ; 3d 80 00 8752 jc short 05f 3eh ; 72 058777 jc short 05f6ch ; 72 05 8753 8778 cmp ax, 00090h ; 3d 90 00 8754 jc short 05f 5ch ; 72 1e8779 jc short 05f8ah ; 72 1e 8755 8780 mov ax, word [bp+00eh] ; 8b 46 0e 8756 8781 xor ah, ah ; 30 e4 … … 8762 8787 push 0068dh ; 68 8d 06 8763 8788 push strict byte 00004h ; 6a 04 8764 call 01966h ; e8 10 ba8789 call 01966h ; e8 e2 b9 8765 8790 add sp, strict byte 0000ah ; 83 c4 0a 8766 jmp near 06 3eeh ; e9 92 048791 jmp near 0641ch ; e9 92 04 8767 8792 mov ax, word [bp+00eh] ; 8b 46 0e 8768 8793 xor ah, ah ; 30 e4 … … 8772 8797 mov byte [bp-004h], dl ; 88 56 fc 8773 8798 cmp dl, 010h ; 80 fa 10 8774 jc short 05f 83h ; 72 108799 jc short 05fb1h ; 72 10 8775 8800 push ax ; 50 8776 8801 mov ax, word [bp+016h] ; 8b 46 16 … … 8779 8804 push 007f5h ; 68 f5 07 8780 8805 push 006b8h ; 68 b8 06 8781 jmp short 05f 51h ; eb ce8806 jmp short 05f7fh ; eb ce 8782 8807 mov bx, word [bp+016h] ; 8b 5e 16 8783 8808 shr bx, 008h ; c1 eb 08 8784 8809 sub bx, strict byte 00041h ; 83 eb 41 8785 8810 cmp bx, strict byte 0000fh ; 83 fb 0f 8786 jnbe short 05f b5h ; 77 248811 jnbe short 05fe3h ; 77 24 8787 8812 add bx, bx ; 01 db 8788 8813 mov dx, word [bp+016h] ; 8b 56 16 8789 8814 xor dh, dh ; 30 f6 8790 jmp word [cs:bx+05 ee1h] ; 2e ff a7 e1 5e8815 jmp word [cs:bx+05f0fh] ; 2e ff a7 0f 5f 8791 8816 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8792 8817 mov ax, word [bp+016h] ; 8b 46 16 … … 8795 8820 mov word [bp+016h], ax ; 89 46 16 8796 8821 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8797 jmp near 063 c5h ; e9 10 048822 jmp near 063f3h ; e9 10 04 8798 8823 mov bx, 00da0h ; bb a0 0d 8799 8824 mov cx, ds ; 8c d9 8800 8825 mov ax, strict word 00004h ; b8 04 00 8801 call 01923h ; e8 63b98826 call 01923h ; e8 35 b9 8802 8827 mov ax, word [bp+016h] ; 8b 46 16 8803 8828 shr ax, 008h ; c1 e8 08 … … 8805 8830 push 007f5h ; 68 f5 07 8806 8831 push 007c7h ; 68 c7 07 8807 jmp near 060 65h ; e9 95 008832 jmp near 06093h ; e9 95 00 8808 8833 mov di, word [bp+00ah] ; 8b 7e 0a 8809 8834 mov es, [bp+004h] ; 8e 46 04 … … 8821 8846 xor bx, bx ; 31 db 8822 8847 mov si, strict word 00020h ; be 20 00 8823 call 0 9ff0h ; e8 ed3f8848 call 0a020h ; e8 ef 3f 8824 8849 mov si, ax ; 89 c6 8825 8850 mov word [bp-00ch], bx ; 89 5e f4 … … 8835 8860 mov al, byte [es:bx+022h] ; 26 8a 47 22 8836 8861 cmp si, word [es:bx+03ch] ; 26 3b 77 3c 8837 jnbe short 060 4dh ; 77 228838 jne short 060 70h ; 75 438862 jnbe short 0607bh ; 77 22 8863 jne short 0609eh ; 75 43 8839 8864 mov di, word [bp-00ch] ; 8b 7e f4 8840 8865 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8841 jnbe short 060 4dh ; 77 178866 jnbe short 0607bh ; 77 17 8842 8867 mov di, word [bp-00ch] ; 8b 7e f4 8843 8868 cmp di, word [es:bx+03ah] ; 26 3b 7f 3a 8844 jne short 060 70h ; 75 318869 jne short 0609eh ; 75 31 8845 8870 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 8846 jnbe short 060 4dh ; 77 088847 jne short 060 70h ; 75 298871 jnbe short 0607bh ; 77 08 8872 jne short 0609eh ; 75 29 8848 8873 cmp dx, word [es:bx+036h] ; 26 3b 57 36 8849 jc short 060 70h ; 72 238874 jc short 0609eh ; 72 23 8850 8875 mov bx, 00da0h ; bb a0 0d 8851 8876 mov cx, ds ; 8c d9 8852 8877 mov ax, strict word 00004h ; b8 04 00 8853 call 01923h ; e8 cbb88878 call 01923h ; e8 9d b8 8854 8879 mov ax, word [bp+016h] ; 8b 46 16 8855 8880 shr ax, 008h ; c1 e8 08 … … 8858 8883 push 00808h ; 68 08 08 8859 8884 push strict byte 00004h ; 6a 04 8860 call 01966h ; e8 fcb88885 call 01966h ; e8 ce b8 8861 8886 add sp, strict byte 00008h ; 83 c4 08 8862 jmp near 06 3eeh ; e9 7e 038887 jmp near 0641ch ; e9 7e 03 8863 8888 mov di, word [bp+016h] ; 8b 7e 16 8864 8889 shr di, 008h ; c1 ef 08 8865 8890 cmp di, strict byte 00044h ; 83 ff 44 8866 je short 060 80h ; 74 058891 je short 060aeh ; 74 05 8867 8892 cmp di, strict byte 00047h ; 83 ff 47 8868 jne short 060 83h ; 75 038869 jmp near 063 c1h ; e9 3e 038893 jne short 060b1h ; 75 03 8894 jmp near 063efh ; e9 3e 03 8870 8895 les bx, [bp-008h] ; c4 5e f8 8871 8896 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 … … 8905 8930 mov word [es:bx+002h], ax ; 26 89 47 02 8906 8931 test dl, dl ; 84 d2 8907 je short 061 52h ; 74 518932 je short 06180h ; 74 51 8908 8933 mov bx, 00da0h ; bb a0 0d 8909 8934 mov cx, ds ; 8c d9 8910 8935 mov ax, strict word 00004h ; b8 04 00 8911 call 01923h ; e8 17 b88936 call 01923h ; e8 e9 b7 8912 8937 mov al, dl ; 88 d0 8913 8938 xor ah, ah ; 30 e4 … … 8917 8942 push 00759h ; 68 59 07 8918 8943 push strict byte 00004h ; 6a 04 8919 call 01966h ; e8 49b88944 call 01966h ; e8 1b b8 8920 8945 add sp, strict byte 0000ah ; 83 c4 0a 8921 8946 mov ax, word [bp+016h] ; 8b 46 16 8922 8947 xor ah, ah ; 30 e4 8923 8948 or ah, 00ch ; 80 cc 0c 8924 jmp near 06 3f6h ; e9 cb 028949 jmp near 06424h ; e9 cb 02 8925 8950 or dh, 0b2h ; 80 ce b2 8926 8951 mov word [bp+016h], dx ; 89 56 16 8927 jmp near 06 3f9h ; e9 c5 028952 jmp near 06427h ; e9 c5 02 8928 8953 mov bx, word [bp+00ah] ; 8b 5e 0a 8929 8954 mov ax, word [bp+004h] ; 8b 46 04 … … 8935 8960 mov word [bp-00eh], ax ; 89 46 f2 8936 8961 cmp ax, strict word 0001ah ; 3d 1a 00 8937 jnc short 061 55h ; 73 068938 jmp near 06 3eeh ; e9 9c 028939 jmp near 063 c1h ; e9 6c 028940 jnc short 061 5ah ; 73 038941 jmp near 06 1f1h ; e9 97 008962 jnc short 06183h ; 73 06 8963 jmp near 0641ch ; e9 9c 02 8964 jmp near 063efh ; e9 6c 02 8965 jnc short 06188h ; 73 03 8966 jmp near 0621fh ; e9 97 00 8942 8967 mov al, byte [bp-004h] ; 8a 46 fc 8943 8968 xor ah, ah ; 30 e4 … … 8978 9003 mov bx, word [bp-00ch] ; 8b 5e f4 8979 9004 mov si, strict word 00020h ; be 20 00 8980 call 0 9fe0h ; e8 f93d9005 call 0a010h ; e8 fb 3d 8981 9006 mov bx, di ; 89 fb 8982 9007 mov word [es:bx+014h], dx ; 26 89 57 14 8983 9008 mov word [es:bx+016h], cx ; 26 89 4f 16 8984 9009 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 8985 jc short 062 5ch ; 72 659010 jc short 0628ah ; 72 65 8986 9011 mov es, [bp-00ah] ; 8e 46 f6 8987 9012 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 9010 9035 mov dl, byte [es:bx+027h] ; 26 8a 57 27 9011 9036 test dl, dl ; 84 d2 9012 jne short 062 4ch ; 75 049037 jne short 0627ah ; 75 04 9013 9038 xor bx, bx ; 31 db 9014 jmp short 062 4fh ; eb 039039 jmp short 0627dh ; eb 03 9015 9040 mov bx, strict word 00008h ; bb 08 00 9016 9041 or bl, 010h ; 80 cb 10 9017 9042 cmp dl, 001h ; 80 fa 01 9018 jne short 062 5fh ; 75 089043 jne short 0628dh ; 75 08 9019 9044 mov ax, strict word 00001h ; b8 01 00 9020 jmp short 062 61h ; eb 059021 jmp near 06 2f2h ; e9 93 009045 jmp short 0628fh ; eb 05 9046 jmp near 06320h ; e9 93 00 9022 9047 xor ax, ax ; 31 c0 9023 9048 or bx, ax ; 09 c3 9024 9049 cmp dl, 003h ; 80 fa 03 9025 jne short 062 6dh ; 75 059050 jne short 0629bh ; 75 05 9026 9051 mov ax, strict word 00003h ; b8 03 00 9027 jmp short 062 6fh ; eb 029052 jmp short 0629dh ; eb 02 9028 9053 xor ax, ax ; 31 c0 9029 9054 or bx, ax ; 09 c3 … … 9052 9077 xor bl, bl ; 30 db 9053 9078 xor bh, bh ; 30 ff 9054 jmp short 06 2d4h ; eb 059079 jmp short 06302h ; eb 05 9055 9080 cmp bh, 00fh ; 80 ff 0f 9056 jnc short 06 2e8h ; 73 149081 jnc short 06316h ; 73 14 9057 9082 mov dl, bh ; 88 fa 9058 9083 xor dh, dh ; 30 f6 9059 9084 add dx, 00356h ; 81 c2 56 03 9060 9085 mov ax, word [bp-012h] ; 8b 46 ee 9061 call 01650h ; e8 6eb39086 call 01650h ; e8 40 b3 9062 9087 add bl, al ; 00 c3 9063 9088 db 0feh, 0c7h 9064 9089 ; inc bh ; fe c7 9065 jmp short 062 cfh ; eb e79090 jmp short 062fdh ; eb e7 9066 9091 neg bl ; f6 db 9067 9092 les si, [bp-008h] ; c4 76 f8 9068 9093 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9069 9094 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 9070 jnc short 06 2fbh ; 73 039071 jmp near 063 c1h ; e9 c6 009095 jnc short 06329h ; 73 03 9096 jmp near 063efh ; e9 c6 00 9072 9097 mov al, byte [bp-004h] ; 8a 46 fc 9073 9098 xor ah, ah ; 30 e4 … … 9088 9113 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9089 9114 test al, al ; 84 c0 9090 jne short 063 43h ; 75 0c9115 jne short 06371h ; 75 0c 9091 9116 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9092 9117 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9097 9122 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9098 9123 test al, al ; 84 c0 9099 jne short 063 78h ; 75 169124 jne short 063a6h ; 75 16 9100 9125 mov word [es:di+030h], dx ; 26 89 55 30 9101 9126 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9112 9137 xor bl, bl ; 30 db 9113 9138 mov BH, strict byte 01eh ; b7 1e 9114 jmp short 063 a3h ; eb 059139 jmp short 063d1h ; eb 05 9115 9140 cmp bh, 040h ; 80 ff 40 9116 jnc short 063 b8h ; 73 159141 jnc short 063e6h ; 73 15 9117 9142 mov al, bh ; 88 f8 9118 9143 xor ah, ah ; 30 e4 … … 9120 9145 add dx, ax ; 01 c2 9121 9146 mov ax, word [bp+004h] ; 8b 46 04 9122 call 01650h ; e8 9eb29147 call 01650h ; e8 70 b2 9123 9148 add bl, al ; 00 c3 9124 9149 db 0feh, 0c7h 9125 9150 ; inc bh ; fe c7 9126 jmp short 063 9eh ; eb e69151 jmp short 063cch ; eb e6 9127 9152 neg bl ; f6 db 9128 9153 mov es, [bp-00ah] ; 8e 46 f6 … … 9132 9157 mov dx, strict word 00074h ; ba 74 00 9133 9158 mov ax, strict word 00040h ; b8 40 00 9134 call 0165eh ; e8 8eb29159 call 0165eh ; e8 60 b2 9135 9160 and byte [bp+01ch], 0feh ; 80 66 1c fe 9136 9161 mov sp, bp ; 89 ec … … 9138 9163 retn ; c3 9139 9164 cmp dx, strict byte 00006h ; 83 fa 06 9140 je short 063 c1h ; 74 e49165 je short 063efh ; 74 e4 9141 9166 cmp dx, strict byte 00001h ; 83 fa 01 9142 jc short 06 3eeh ; 72 0c9143 jbe short 063 c1h ; 76 dd9167 jc short 0641ch ; 72 0c 9168 jbe short 063efh ; 76 dd 9144 9169 cmp dx, strict byte 00003h ; 83 fa 03 9145 jc short 06 3eeh ; 72 059170 jc short 0641ch ; 72 05 9146 9171 cmp dx, strict byte 00004h ; 83 fa 04 9147 jbe short 063 c1h ; 76 d39172 jbe short 063efh ; 76 d3 9148 9173 mov ax, word [bp+016h] ; 8b 46 16 9149 9174 xor ah, ah ; 30 e4 … … 9155 9180 mov dx, strict word 00074h ; ba 74 00 9156 9181 mov ax, strict word 00040h ; b8 40 00 9157 call 0165eh ; e8 54b29182 call 0165eh ; e8 26 b2 9158 9183 or byte [bp+01ch], 001h ; 80 4e 1c 01 9159 jmp short 06 3d4h ; eb c49160 _int14_function: ; 0xf64 10LB 0x15c9184 jmp short 06402h ; eb c4 9185 _int14_function: ; 0xf643e LB 0x15c 9161 9186 push bp ; 55 9162 9187 mov bp, sp ; 89 e5 … … 9166 9191 add dx, dx ; 01 d2 9167 9192 mov ax, strict word 00040h ; b8 40 00 9168 call 0166ch ; e8 4cb29193 call 0166ch ; e8 1e b2 9169 9194 mov si, ax ; 89 c6 9170 9195 mov bx, ax ; 89 c3 … … 9172 9197 add dx, strict byte 0007ch ; 83 c2 7c 9173 9198 mov ax, strict word 00040h ; b8 40 00 9174 call 01650h ; e8 20 b29199 call 01650h ; e8 f2 b1 9175 9200 mov cl, al ; 88 c1 9176 9201 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9177 jnc short 064 3ch ; 73 049202 jnc short 0646ah ; 73 04 9178 9203 test si, si ; 85 f6 9179 jnbe short 064 3fh ; 77 039180 jmp near 065 62h ; e9 23 019204 jnbe short 0646dh ; 77 03 9205 jmp near 06590h ; e9 23 01 9181 9206 mov al, byte [bp+013h] ; 8a 46 13 9182 9207 cmp AL, strict byte 001h ; 3c 01 9183 jc short 064 53h ; 72 0d9184 jbe short 064 b3h ; 76 6b9208 jc short 06481h ; 72 0d 9209 jbe short 064e1h ; 76 6b 9185 9210 cmp AL, strict byte 003h ; 3c 03 9186 je short 064 abh ; 74 5f9211 je short 064d9h ; 74 5f 9187 9212 cmp AL, strict byte 002h ; 3c 02 9188 je short 064 aeh ; 74 5e9189 jmp near 065 5ch ; e9 09 019213 je short 064dch ; 74 5e 9214 jmp near 0658ah ; e9 09 01 9190 9215 test al, al ; 84 c0 9191 jne short 064 b0h ; 75 599216 jne short 064deh ; 75 59 9192 9217 lea dx, [bx+003h] ; 8d 57 03 9193 9218 in AL, DX ; ec … … 9199 9224 mov al, byte [bp+012h] ; 8a 46 12 9200 9225 test AL, strict byte 0e0h ; a8 e0 9201 jne short 064 76h ; 75 0c9226 jne short 064a4h ; 75 0c 9202 9227 mov AL, strict byte 017h ; b0 17 9203 9228 mov dx, bx ; 89 da … … 9206 9231 mov dx, si ; 89 f2 9207 9232 out DX, AL ; ee 9208 jmp short 064 8dh ; eb 179233 jmp short 064bbh ; eb 17 9209 9234 and AL, strict byte 0e0h ; 24 e0 9210 9235 xor ah, ah ; 30 e4 … … 9232 9257 ; sub ah, ah ; 2a e4 9233 9258 mov byte [bp+012h], al ; 88 46 12 9234 jmp near 065 3dh ; e9 92 009235 jmp near 065 4bh ; e9 9d 009236 jmp short 065 01h ; eb 519237 jmp near 065 5ch ; e9 a9 009259 jmp near 0656bh ; e9 92 00 9260 jmp near 06579h ; e9 9d 00 9261 jmp short 0652fh ; eb 51 9262 jmp near 0658ah ; e9 a9 00 9238 9263 mov dx, strict word 0006ch ; ba 6c 00 9239 9264 mov ax, strict word 00040h ; b8 40 00 9240 call 0166ch ; e8 b0b19265 call 0166ch ; e8 82 b1 9241 9266 mov si, ax ; 89 c6 9242 9267 lea dx, [bx+005h] ; 8d 57 05 … … 9246 9271 and ax, strict word 00060h ; 25 60 00 9247 9272 cmp ax, strict word 00060h ; 3d 60 00 9248 je short 06 4e3h ; 74 179273 je short 06511h ; 74 17 9249 9274 test cl, cl ; 84 c9 9250 je short 06 4e3h ; 74 139275 je short 06511h ; 74 13 9251 9276 mov dx, strict word 0006ch ; ba 6c 00 9252 9277 mov ax, strict word 00040h ; b8 40 00 9253 call 0166ch ; e8 93b19278 call 0166ch ; e8 65 b1 9254 9279 cmp ax, si ; 39 f0 9255 je short 064 beh ; 74 e19280 je short 064ech ; 74 e1 9256 9281 mov si, ax ; 89 c6 9257 9282 db 0feh, 0c9h 9258 9283 ; dec cl ; fe c9 9259 jmp short 064 beh ; eb db9284 jmp short 064ech ; eb db 9260 9285 test cl, cl ; 84 c9 9261 je short 06 4edh ; 74 069286 je short 0651bh ; 74 06 9262 9287 mov al, byte [bp+012h] ; 8a 46 12 9263 9288 mov dx, bx ; 89 da … … 9269 9294 mov byte [bp+013h], al ; 88 46 13 9270 9295 test cl, cl ; 84 c9 9271 jne short 065 3dh ; 75 439296 jne short 0656bh ; 75 43 9272 9297 or AL, strict byte 080h ; 0c 80 9273 9298 mov byte [bp+013h], al ; 88 46 13 9274 jmp short 065 3dh ; eb 3c9299 jmp short 0656bh ; eb 3c 9275 9300 mov dx, strict word 0006ch ; ba 6c 00 9276 9301 mov ax, strict word 00040h ; b8 40 00 9277 call 0166ch ; e8 62b19302 call 0166ch ; e8 34 b1 9278 9303 mov si, ax ; 89 c6 9279 9304 lea dx, [bx+005h] ; 8d 57 05 … … 9282 9307 ; sub ah, ah ; 2a e4 9283 9308 test AL, strict byte 001h ; a8 01 9284 jne short 065 2dh ; 75 179309 jne short 0655bh ; 75 17 9285 9310 test cl, cl ; 84 c9 9286 je short 065 2dh ; 74 139311 je short 0655bh ; 74 13 9287 9312 mov dx, strict word 0006ch ; ba 6c 00 9288 9313 mov ax, strict word 00040h ; b8 40 00 9289 call 0166ch ; e8 49b19314 call 0166ch ; e8 1b b1 9290 9315 cmp ax, si ; 39 f0 9291 je short 065 0ch ; 74 e59316 je short 0653ah ; 74 e5 9292 9317 mov si, ax ; 89 c6 9293 9318 db 0feh, 0c9h 9294 9319 ; dec cl ; fe c9 9295 jmp short 065 0ch ; eb df9320 jmp short 0653ah ; eb df 9296 9321 test cl, cl ; 84 c9 9297 je short 065 43h ; 74 129322 je short 06571h ; 74 12 9298 9323 mov byte [bp+013h], 000h ; c6 46 13 00 9299 9324 mov dx, bx ; 89 da … … 9303 9328 mov byte [bp+012h], al ; 88 46 12 9304 9329 and byte [bp+01ch], 0feh ; 80 66 1c fe 9305 jmp short 065 66h ; eb 239330 jmp short 06594h ; eb 23 9306 9331 lea dx, [bx+005h] ; 8d 57 05 9307 9332 in AL, DX ; ec 9308 9333 db 02ah, 0e4h 9309 9334 ; sub ah, ah ; 2a e4 9310 jmp short 06 4fch ; eb b19335 jmp short 0652ah ; eb b1 9311 9336 lea dx, [si+005h] ; 8d 54 05 9312 9337 in AL, DX ; ec … … 9318 9343 db 02ah, 0e4h 9319 9344 ; sub ah, ah ; 2a e4 9320 jmp short 065 3ah ; eb de9345 jmp short 06568h ; eb de 9321 9346 or byte [bp+01ch], 001h ; 80 4e 1c 01 9322 jmp short 065 66h ; eb 049347 jmp short 06594h ; eb 04 9323 9348 or byte [bp+01ch], 001h ; 80 4e 1c 01 9324 9349 lea sp, [bp-002h] ; 8d 66 fe … … 9326 9351 pop bp ; 5d 9327 9352 retn ; c3 9328 timer_wait_: ; 0xf65 6cLB 0x439353 timer_wait_: ; 0xf659a LB 0x43 9329 9354 push bp ; 55 9330 9355 mov bp, sp ; 89 e5 … … 9334 9359 mov bx, strict word 0000fh ; bb 0f 00 9335 9360 xor cx, cx ; 31 c9 9336 call 09f b0h ; e8 363a9361 call 09fe0h ; e8 38 3a 9337 9362 mov cx, ax ; 89 c1 9338 9363 mov bx, dx ; 89 d3 … … 9346 9371 adc bx, strict byte 0ffffh ; 83 d3 ff 9347 9372 cmp bx, strict byte 0ffffh ; 83 fb ff 9348 jne short 065 99h ; 75 059373 jne short 065c7h ; 75 05 9349 9374 cmp cx, strict byte 0ffffh ; 83 f9 ff 9350 je short 065 a8h ; 74 0f9375 je short 065d6h ; 74 0f 9351 9376 mov dx, strict word 00061h ; ba 61 00 9352 9377 in AL, DX ; ec … … 9355 9380 and AL, strict byte 010h ; 24 10 9356 9381 cmp al, byte [bp-006h] ; 3a 46 fa 9357 jne short 065 99h ; 75 f39358 jmp short 065 89h ; eb e19382 jne short 065c7h ; 75 f3 9383 jmp short 065b7h ; eb e1 9359 9384 lea sp, [bp-004h] ; 8d 66 fc 9360 9385 pop cx ; 59 … … 9362 9387 pop bp ; 5d 9363 9388 retn ; c3 9364 set_enable_a20_: ; 0xf65 afLB 0x309389 set_enable_a20_: ; 0xf65dd LB 0x30 9365 9390 push bp ; 55 9366 9391 mov bp, sp ; 89 e5 … … 9375 9400 mov cl, al ; 88 c1 9376 9401 test bx, bx ; 85 db 9377 je short 065 c8h ; 74 059402 je short 065f6h ; 74 05 9378 9403 or AL, strict byte 002h ; 0c 02 9379 9404 out DX, AL ; ee 9380 jmp short 065 cbh ; eb 039405 jmp short 065f9h ; eb 03 9381 9406 and AL, strict byte 0fdh ; 24 fd 9382 9407 out DX, AL ; ee 9383 9408 test cl, 002h ; f6 c1 02 9384 je short 06 5d5h ; 74 059409 je short 06603h ; 74 05 9385 9410 mov ax, strict word 00001h ; b8 01 00 9386 jmp short 06 5d7h ; eb 029411 jmp short 06605h ; eb 02 9387 9412 xor ax, ax ; 31 c0 9388 9413 lea sp, [bp-006h] ; 8d 66 fa … … 9392 9417 pop bp ; 5d 9393 9418 retn ; c3 9394 set_e820_range_: ; 0xf6 5dfLB 0x889419 set_e820_range_: ; 0xf660d LB 0x88 9395 9420 push si ; 56 9396 9421 push bp ; 55 … … 9422 9447 retn 0000ah ; c2 0a 00 9423 9448 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9424 db 0 71h, 069h, 0a2h, 066h, 0b6h, 066h, 04bh, 067h, 051h, 067h, 056h, 067h, 05bh, 067h, 003h, 068h9425 db 0 2eh, 068h, 044h, 067h, 044h, 067h, 0fbh, 068h, 023h, 069h, 036h, 069h, 045h, 069h, 04bh, 067h9426 db 0 4ch, 069h9427 _int15_function: ; 0xf66 67LB 0x33c9449 db 09fh, 069h, 0d0h, 066h, 0e4h, 066h, 079h, 067h, 07fh, 067h, 084h, 067h, 089h, 067h, 031h, 068h 9450 db 05ch, 068h, 072h, 067h, 072h, 067h, 029h, 069h, 051h, 069h, 064h, 069h, 073h, 069h, 079h, 067h 9451 db 07ah, 069h 9452 _int15_function: ; 0xf6695 LB 0x33c 9428 9453 push bp ; 55 9429 9454 mov bp, sp ; 89 e5 … … 9433 9458 shr ax, 008h ; c1 e8 08 9434 9459 cmp ax, 000ech ; 3d ec 00 9435 jnbe short 066 ach ; 77 359460 jnbe short 066dah ; 77 35 9436 9461 push CS ; 0e 9437 9462 pop ES ; 07 9438 9463 mov cx, strict word 00011h ; b9 11 00 9439 mov di, 066 35h ; bf 35669464 mov di, 06663h ; bf 63 66 9440 9465 repne scasb ; f2 ae 9441 9466 sal cx, 1 ; d1 e1 9442 9467 mov di, cx ; 89 cf 9443 mov si, word [cs:di+066 45h] ; 2e 8b b5 45669468 mov si, word [cs:di+06673h] ; 2e 8b b5 73 66 9444 9469 mov ax, word [bp+012h] ; 8b 46 12 9445 9470 xor ah, ah ; 30 e4 … … 9454 9479 xor ah, ah ; 30 e4 9455 9480 cmp ax, 000c0h ; 3d c0 00 9456 je short 066 afh ; 74 039457 jmp near 069 71h ; e9 c2 029481 je short 066ddh ; 74 03 9482 jmp near 0699fh ; e9 c2 02 9458 9483 or byte [bp+018h], 001h ; 80 4e 18 01 9459 jmp near 069 1ah ; e9 64 029484 jmp near 06948h ; e9 64 02 9460 9485 mov dx, ax ; 89 c2 9461 9486 cmp ax, strict word 00001h ; 3d 01 00 9462 jc short 066 cbh ; 72 0e9463 jbe short 06 6dfh ; 76 209487 jc short 066f9h ; 72 0e 9488 jbe short 0670dh ; 76 20 9464 9489 cmp ax, strict word 00003h ; 3d 03 00 9465 je short 067 0ch ; 74 489490 je short 0673ah ; 74 48 9466 9491 cmp ax, strict word 00002h ; 3d 02 00 9467 je short 06 6efh ; 74 269468 jmp short 067 19h ; eb 4e9492 je short 0671dh ; 74 26 9493 jmp short 06747h ; eb 4e 9469 9494 test ax, ax ; 85 c0 9470 jne short 067 19h ; 75 4a9495 jne short 06747h ; 75 4a 9471 9496 xor ax, ax ; 31 c0 9472 call 065 afh ; e8 db fe9497 call 065ddh ; e8 db fe 9473 9498 and byte [bp+018h], 0feh ; 80 66 18 fe 9474 9499 mov byte [bp+013h], 000h ; c6 46 13 00 9475 jmp near 067 44h ; e9 65 009500 jmp near 06772h ; e9 65 00 9476 9501 mov ax, strict word 00001h ; b8 01 00 9477 call 065 afh ; e8 ca fe9502 call 065ddh ; e8 ca fe 9478 9503 and byte [bp+018h], 0feh ; 80 66 18 fe 9479 9504 mov byte [bp+013h], dh ; 88 76 13 9480 jmp near 067 44h ; e9 55 009505 jmp near 06772h ; e9 55 00 9481 9506 mov dx, 00092h ; ba 92 00 9482 9507 in AL, DX ; ec … … 9490 9515 and byte [bp+018h], 0feh ; 80 66 18 fe 9491 9516 mov byte [bp+013h], ah ; 88 66 13 9492 jmp near 067 44h ; e9 38 009517 jmp near 06772h ; e9 38 00 9493 9518 and byte [bp+018h], 0feh ; 80 66 18 fe 9494 9519 mov byte [bp+013h], ah ; 88 66 13 9495 9520 mov word [bp+00ch], ax ; 89 46 0c 9496 jmp near 067 44h ; e9 2b 009521 jmp near 06772h ; e9 2b 00 9497 9522 mov bx, 00da0h ; bb a0 0d 9498 9523 mov cx, ds ; 8c d9 9499 9524 mov ax, strict word 00004h ; b8 04 00 9500 call 01923h ; e8 ffb19525 call 01923h ; e8 d1 b1 9501 9526 mov ax, word [bp+012h] ; 8b 46 12 9502 9527 xor ah, ah ; 30 e4 … … 9504 9529 push 0082eh ; 68 2e 08 9505 9530 push strict byte 00004h ; 6a 04 9506 call 01966h ; e8 34b29531 call 01966h ; e8 06 b2 9507 9532 add sp, strict byte 00006h ; 83 c4 06 9508 9533 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9517 9542 retn ; c3 9518 9543 mov word [bp+018h], dx ; 89 56 18 9519 jmp near 06 7fdh ; e9 ac 009544 jmp near 0682bh ; e9 ac 00 9520 9545 mov word [bp+018h], dx ; 89 56 18 9521 jmp short 067 44h ; eb ee9546 jmp short 06772h ; eb ee 9522 9547 mov word [bp+018h], cx ; 89 4e 18 9523 jmp short 067 41h ; eb e69548 jmp short 0676fh ; eb e6 9524 9549 test byte [bp+012h], 0ffh ; f6 46 12 ff 9525 jne short 067 d0h ; 75 6f9550 jne short 067feh ; 75 6f 9526 9551 mov dx, 000a0h ; ba a0 00 9527 9552 mov ax, strict word 00040h ; b8 40 00 9528 call 01650h ; e8 e6ae9553 call 01650h ; e8 b8 ae 9529 9554 test AL, strict byte 001h ; a8 01 9530 jne short 067 cdh ; 75 5f9555 jne short 067fbh ; 75 5f 9531 9556 mov bx, strict word 00001h ; bb 01 00 9532 9557 mov dx, 000a0h ; ba a0 00 9533 9558 mov ax, strict word 00040h ; b8 40 00 9534 call 0165eh ; e8 e4ae9559 call 0165eh ; e8 b6 ae 9535 9560 mov bx, word [bp+014h] ; 8b 5e 14 9536 9561 mov dx, 00098h ; ba 98 00 9537 9562 mov ax, strict word 00040h ; b8 40 00 9538 call 0167ah ; e8 f4ae9563 call 0167ah ; e8 c6 ae 9539 9564 mov bx, word [bp+00ch] ; 8b 5e 0c 9540 9565 mov dx, 0009ah ; ba 9a 00 9541 9566 mov ax, strict word 00040h ; b8 40 00 9542 call 0167ah ; e8 e8ae9567 call 0167ah ; e8 ba ae 9543 9568 mov bx, word [bp+00eh] ; 8b 5e 0e 9544 9569 mov dx, 0009ch ; ba 9c 00 9545 9570 mov ax, strict word 00040h ; b8 40 00 9546 call 0167ah ; e8 dcae9571 call 0167ah ; e8 ae ae 9547 9572 mov bx, word [bp+010h] ; 8b 5e 10 9548 9573 mov dx, 0009eh ; ba 9e 00 9549 9574 mov ax, strict word 00040h ; b8 40 00 9550 call 0167ah ; e8 d0ae9575 call 0167ah ; e8 a2 ae 9551 9576 and byte [bp+018h], 0feh ; 80 66 18 fe 9552 9577 mov dx, 000a1h ; ba a1 00 … … 9557 9582 out DX, AL ; ee 9558 9583 mov ax, strict word 0000bh ; b8 0b 00 9559 call 016ach ; e8 efae9584 call 016ach ; e8 c1 ae 9560 9585 mov dl, al ; 88 c2 9561 9586 or dl, 040h ; 80 ca 40 9562 9587 xor dh, dh ; 30 f6 9563 9588 mov ax, strict word 0000bh ; b8 0b 00 9564 call 016c7h ; e8 fdae9565 jmp near 067 44h ; e9 77 ff9566 jmp near 069 11h ; e9 41 019589 call 016c7h ; e8 cf ae 9590 jmp near 06772h ; e9 77 ff 9591 jmp near 0693fh ; e9 41 01 9567 9592 cmp ax, strict word 00001h ; 3d 01 00 9568 jne short 06 7f1h ; 75 1c9593 jne short 0681fh ; 75 1c 9569 9594 xor bx, bx ; 31 db 9570 9595 mov dx, 000a0h ; ba a0 00 9571 9596 mov ax, strict word 00040h ; b8 40 00 9572 call 0165eh ; e8 7eae9597 call 0165eh ; e8 50 ae 9573 9598 and byte [bp+018h], 0feh ; 80 66 18 fe 9574 9599 mov ax, strict word 0000bh ; b8 0b 00 9575 call 016ach ; e8 c2ae9600 call 016ach ; e8 94 ae 9576 9601 mov dl, al ; 88 c2 9577 9602 and dl, 0bfh ; 80 e2 bf 9578 jmp short 067 c2h ; eb d19603 jmp short 067f0h ; eb d1 9579 9604 mov word [bp+018h], dx ; 89 56 18 9580 9605 mov ax, bx ; 89 d8 … … 9584 9609 or bx, ax ; 09 c3 9585 9610 mov word [bp+012h], bx ; 89 5e 12 9586 jmp near 067 44h ; e9 41 ff9611 jmp near 06772h ; e9 41 ff 9587 9612 mov ax, strict word 00031h ; b8 31 00 9588 call 016ach ; e8 a3ae9613 call 016ach ; e8 75 ae 9589 9614 xor ah, ah ; 30 e4 9590 9615 mov dx, ax ; 89 c2 9591 9616 sal dx, 008h ; c1 e2 08 9592 9617 mov ax, strict word 00030h ; b8 30 00 9593 call 016ach ; e8 96ae9618 call 016ach ; e8 68 ae 9594 9619 xor ah, ah ; 30 e4 9595 9620 or dx, ax ; 09 c2 9596 9621 mov word [bp+012h], dx ; 89 56 12 9597 9622 cmp dx, strict byte 0ffc0h ; 83 fa c0 9598 jbe short 068 27h ; 76 059623 jbe short 06855h ; 76 05 9599 9624 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9600 9625 and byte [bp+018h], 0feh ; 80 66 18 fe 9601 jmp near 067 44h ; e9 16 ff9626 jmp near 06772h ; e9 16 ff 9602 9627 cli ; fa 9603 9628 mov ax, strict word 00001h ; b8 01 00 9604 call 065 afh ; e8 7a fd9629 call 065ddh ; e8 7a fd 9605 9630 mov dx, word [bp+006h] ; 8b 56 06 9606 9631 add dx, strict byte 00038h ; 83 c2 38 9607 9632 mov ax, word [bp+014h] ; 8b 46 14 9608 9633 mov bx, strict word 0ffffh ; bb ff ff 9609 call 0167ah ; e8 36ae9634 call 0167ah ; e8 08 ae 9610 9635 mov dx, word [bp+006h] ; 8b 56 06 9611 9636 add dx, strict byte 0003ah ; 83 c2 3a 9612 9637 mov ax, word [bp+014h] ; 8b 46 14 9613 9638 xor bx, bx ; 31 db 9614 call 0167ah ; e8 28 ae9639 call 0167ah ; e8 fa ad 9615 9640 mov dx, word [bp+006h] ; 8b 56 06 9616 9641 add dx, strict byte 0003ch ; 83 c2 3c 9617 9642 mov ax, word [bp+014h] ; 8b 46 14 9618 9643 mov bx, strict word 0000fh ; bb 0f 00 9619 call 0165eh ; e8 fdad9644 call 0165eh ; e8 cf ad 9620 9645 mov dx, word [bp+006h] ; 8b 56 06 9621 9646 add dx, strict byte 0003dh ; 83 c2 3d 9622 9647 mov ax, word [bp+014h] ; 8b 46 14 9623 9648 mov bx, 0009bh ; bb 9b 00 9624 call 0165eh ; e8 eead9649 call 0165eh ; e8 c0 ad 9625 9650 mov dx, word [bp+006h] ; 8b 56 06 9626 9651 add dx, strict byte 0003eh ; 83 c2 3e 9627 9652 mov ax, word [bp+014h] ; 8b 46 14 9628 9653 xor bx, bx ; 31 db 9629 call 0167ah ; e8 fcad9654 call 0167ah ; e8 ce ad 9630 9655 mov AL, strict byte 011h ; b0 11 9631 9656 mov dx, strict word 00020h ; ba 20 00 … … 9657 9682 out DX, AL ; ee 9658 9683 mov si, word [bp+006h] ; 8b 76 06 9659 call 068 bfh ; e8 00 009684 call 068edh ; e8 00 00 9660 9685 pop di ; 5f 9661 9686 add di, strict byte 00018h ; 83 c7 18 … … 9685 9710 push cx ; 51 9686 9711 retf ; cb 9687 jmp near 067 44h ; e9 49 fe9712 jmp near 06772h ; e9 49 fe 9688 9713 mov bx, 00da0h ; bb a0 0d 9689 9714 mov cx, ds ; 8c d9 9690 9715 mov ax, strict word 00004h ; b8 04 00 9691 call 01923h ; e8 1d b09716 call 01923h ; e8 ef af 9692 9717 push 0086eh ; 68 6e 08 9693 9718 push strict byte 00004h ; 6a 04 9694 call 01966h ; e8 58b09719 call 01966h ; e8 2a b0 9695 9720 add sp, strict byte 00004h ; 83 c4 04 9696 9721 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9699 9724 or ah, 086h ; 80 cc 86 9700 9725 mov word [bp+012h], ax ; 89 46 12 9701 jmp near 067 44h ; e9 21 fe9726 jmp near 06772h ; e9 21 fe 9702 9727 mov word [bp+018h], cx ; 89 4e 18 9703 9728 mov word [bp+012h], ax ; 89 46 12 9704 9729 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9705 9730 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9706 jmp near 067 44h ; e9 0e fe9731 jmp near 06772h ; e9 0e fe 9707 9732 mov dx, strict word 0000eh ; ba 0e 00 9708 9733 mov ax, strict word 00040h ; b8 40 00 9709 call 0166ch ; e8 2d ad9734 call 0166ch ; e8 ff ac 9710 9735 mov word [bp+014h], ax ; 89 46 14 9711 jmp near 068 27h ; e9 e2 fe9736 jmp near 06855h ; e9 e2 fe 9712 9737 push 0089dh ; 68 9d 08 9713 9738 push strict byte 00008h ; 6a 08 9714 jmp short 069 0bh ; eb bf9739 jmp short 06939h ; eb bf 9715 9740 test byte [bp+012h], 0ffh ; f6 46 12 ff 9716 jne short 069 71h ; 75 1f9741 jne short 0699fh ; 75 1f 9717 9742 mov word [bp+012h], ax ; 89 46 12 9718 9743 mov ax, word [bp+00ch] ; 8b 46 0c 9719 9744 xor ah, ah ; 30 e4 9720 9745 cmp ax, strict word 00001h ; 3d 01 00 9721 jc short 069 6ah ; 72 0b9746 jc short 06998h ; 72 0b 9722 9747 cmp ax, strict word 00003h ; 3d 03 00 9723 jnbe short 069 6ah ; 77 069748 jnbe short 06998h ; 77 06 9724 9749 mov word [bp+018h], cx ; 89 4e 18 9725 jmp near 067 44h ; e9 da fd9750 jmp near 06772h ; e9 da fd 9726 9751 or byte [bp+018h], 001h ; 80 4e 18 01 9727 jmp near 067 44h ; e9 d3 fd9752 jmp near 06772h ; e9 d3 fd 9728 9753 mov bx, 00da0h ; bb a0 0d 9729 9754 mov cx, ds ; 8c d9 9730 9755 mov ax, strict word 00004h ; b8 04 00 9731 call 01923h ; e8 a7af9756 call 01923h ; e8 79 af 9732 9757 push word [bp+00ch] ; ff 76 0c 9733 9758 push word [bp+012h] ; ff 76 12 9734 9759 push 008b4h ; 68 b4 08 9735 9760 push strict byte 00004h ; 6a 04 9736 call 01966h ; e8 dcaf9761 call 01966h ; e8 ae af 9737 9762 add sp, strict byte 00008h ; 83 c4 08 9738 jmp short 069 11h ; eb 829739 or ax, 0326bh ; 0d 6b 329740 imul dx, word [bp+si+06bh], strict byte 0ffa1h ; 6b 52 6b a19741 i mul di, word [bx-02395h], strict byte 0006bh ; 6b bf 6b dc 6b9742 db 0feh9743 imul sp, word [bx+si], strict byte 0006ch ; 6b 206c9744 pop bp ; 5d9763 jmp short 0693fh ; eb 82 9764 cmp bp, word [bp+di+060h] ; 3b 6b 60 9765 imul ax, word [bx+si-03095h], strict byte 0006bh ; 6b 80 6b cf 6b 9766 in ax, DX ; ed 9767 imul cx, word [bp+si], strict byte 0006ch ; 6b 0a 6c 9768 sub AL, strict byte 06ch ; 2c 6c 9769 dec si ; 4e 9745 9770 insb ; 6c 9746 xchg cx, ax ; 919771 mov bp, word [si-041h] ; 8b 6c bf 9747 9772 insb ; 6c 9748 _int15_function32: ; 0xf69 a3LB 0x38a9773 _int15_function32: ; 0xf69d1 LB 0x38a 9749 9774 push bp ; 55 9750 9775 mov bp, sp ; 89 e5 … … 9758 9783 xor dh, dh ; 30 f6 9759 9784 cmp ax, 000e8h ; 3d e8 00 9760 je short 06a 0ah ; 74 4a9785 je short 06a38h ; 74 4a 9761 9786 cmp ax, 000d0h ; 3d d0 00 9762 je short 06 9d7h ; 74 129787 je short 06a05h ; 74 12 9763 9788 cmp ax, 00086h ; 3d 86 00 9764 jne short 06a 08h ; 75 3e9789 jne short 06a36h ; 75 3e 9765 9790 sti ; fb 9766 9791 mov dx, word [bp+01ch] ; 8b 56 1c 9767 9792 mov ax, word [bp+018h] ; 8b 46 18 9768 call 065 6ch ; e8 98 fb9769 jmp near 06b 9bh ; e9 c4 019793 call 0659ah ; e8 98 fb 9794 jmp near 06bc9h ; e9 c4 01 9770 9795 cmp dx, strict byte 0004fh ; 83 fa 4f 9771 jne short 06a 08h ; 75 2c9796 jne short 06a36h ; 75 2c 9772 9797 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9773 jne short 06a 3eh ; 75 5b9798 jne short 06a6ch ; 75 5b 9774 9799 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9775 jne short 06a 3eh ; 75 549800 jne short 06a6ch ; 75 54 9776 9801 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9777 jne short 06a 3eh ; 75 4d9802 jne short 06a6ch ; 75 4d 9778 9803 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9779 jne short 06a 3eh ; 75 469804 jne short 06a6ch ; 75 46 9780 9805 mov ax, word [bp+00ah] ; 8b 46 0a 9781 9806 or ax, word [bp+008h] ; 0b 46 08 9782 jne short 06a 3eh ; 75 3e9807 jne short 06a6ch ; 75 3e 9783 9808 mov ax, word [bp+006h] ; 8b 46 06 9784 9809 or ax, word [bp+004h] ; 0b 46 04 9785 je short 06a 0ch ; 74 049786 jmp short 06a 3eh ; eb 349787 jmp short 06a 34h ; eb 289810 je short 06a3ah ; 74 04 9811 jmp short 06a6ch ; eb 34 9812 jmp short 06a62h ; eb 28 9788 9813 mov word [bp+028h], bx ; 89 5e 28 9789 9814 mov ax, word [bp+014h] ; 8b 46 14 … … 9797 9822 mov word [bp+020h], 03332h ; c7 46 20 32 33 9798 9823 mov word [bp+022h], 04941h ; c7 46 22 41 49 9799 jmp near 06b 9bh ; e9 67 019824 jmp near 06bc9h ; e9 67 01 9800 9825 cmp dx, strict byte 00020h ; 83 fa 20 9801 je short 06a 44h ; 74 0b9826 je short 06a72h ; 74 0b 9802 9827 cmp dx, strict byte 00001h ; 83 fa 01 9803 je short 06a 41h ; 74 039804 jmp near 06b 71h ; e9 30 019805 jmp near 06 cdfh ; e9 9b 029828 je short 06a6fh ; 74 03 9829 jmp near 06b9fh ; e9 30 01 9830 jmp near 06d0dh ; e9 9b 02 9806 9831 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9807 jne short 06a 3eh ; 75 f39832 jne short 06a6ch ; 75 f3 9808 9833 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9809 jne short 06a 3eh ; 75 ec9834 jne short 06a6ch ; 75 ec 9810 9835 mov ax, strict word 00035h ; b8 35 00 9811 call 016ach ; e8 54ac9836 call 016ach ; e8 26 ac 9812 9837 mov bl, al ; 88 c3 9813 9838 xor bh, bh ; 30 ff … … 9816 9841 sal bx, 1 ; d1 e3 9817 9842 rcl dx, 1 ; d1 d2 9818 loop 06a 61h ; e2 fa9843 loop 06a8fh ; e2 fa 9819 9844 mov ax, strict word 00034h ; b8 34 00 9820 call 016ach ; e8 3fac9845 call 016ach ; e8 11 ac 9821 9846 xor ah, ah ; 30 e4 9822 9847 mov dx, bx ; 89 da … … 9826 9851 adc dx, 00100h ; 81 d2 00 01 9827 9852 cmp dx, 00100h ; 81 fa 00 01 9828 jc short 06a 87h ; 72 069829 jne short 06a b5h ; 75 329853 jc short 06ab5h ; 72 06 9854 jne short 06ae3h ; 75 32 9830 9855 test bx, bx ; 85 db 9831 jnbe short 06a b5h ; 77 2e9856 jnbe short 06ae3h ; 77 2e 9832 9857 mov ax, strict word 00031h ; b8 31 00 9833 call 016ach ; e8 1f ac9858 call 016ach ; e8 f1 ab 9834 9859 mov bl, al ; 88 c3 9835 9860 xor bh, bh ; 30 ff … … 9838 9863 sal bx, 1 ; d1 e3 9839 9864 rcl dx, 1 ; d1 d2 9840 loop 06a 96h ; e2 fa9865 loop 06ac4h ; e2 fa 9841 9866 mov ax, strict word 00030h ; b8 30 00 9842 call 016ach ; e8 0a ac9867 call 016ach ; e8 dc ab 9843 9868 xor ah, ah ; 30 e4 9844 9869 or bx, ax ; 09 c3 … … 9846 9871 sal bx, 1 ; d1 e3 9847 9872 rcl dx, 1 ; d1 d2 9848 loop 06a a9h ; e2 fa9873 loop 06ad7h ; e2 fa 9849 9874 add bx, strict byte 00000h ; 83 c3 00 9850 9875 adc dx, strict byte 00010h ; 83 d2 10 9851 9876 mov ax, strict word 00062h ; b8 62 00 9852 call 016ach ; e8 f1ab9877 call 016ach ; e8 c3 ab 9853 9878 xor ah, ah ; 30 e4 9854 9879 mov word [bp-00ah], ax ; 89 46 f6 … … 9858 9883 sal word [bp-00ah], 1 ; d1 66 f6 9859 9884 rcl word [bp-008h], 1 ; d1 56 f8 9860 loop 06a c8h ; e2 f89885 loop 06af6h ; e2 f8 9861 9886 mov ax, strict word 00061h ; b8 61 00 9862 call 016ach ; e8 d6ab9887 call 016ach ; e8 a8 ab 9863 9888 xor ah, ah ; 30 e4 9864 9889 or word [bp-00ah], ax ; 09 46 f6 … … 9867 9892 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9868 9893 mov ax, strict word 00063h ; b8 63 00 9869 call 016ach ; e8 c0ab9894 call 016ach ; e8 92 ab 9870 9895 mov byte [bp-004h], al ; 88 46 fc 9871 9896 mov byte [bp-006h], al ; 88 46 fa 9872 9897 mov ax, word [bp+014h] ; 8b 46 14 9873 9898 cmp ax, strict word 00009h ; 3d 09 00 9874 jnbe short 06b 71h ; 77 779899 jnbe short 06b9fh ; 77 77 9875 9900 mov si, ax ; 89 c6 9876 9901 add si, ax ; 01 c6 … … 9879 9904 mov cx, dx ; 89 d1 9880 9905 adc cx, strict byte 0ffffh ; 83 d1 ff 9881 jmp word [cs:si+069 8fh] ; 2e ff a4 8f699906 jmp word [cs:si+069bdh] ; 2e ff a4 bd 69 9882 9907 push strict byte 00001h ; 6a 01 9883 9908 push strict byte 00000h ; 6a 00 … … 9889 9914 xor bx, bx ; 31 db 9890 9915 xor cx, cx ; 31 c9 9891 call 06 5dfh ; e8 ba fa9916 call 0660dh ; e8 ba fa 9892 9917 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 9893 9918 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 9894 jmp near 06c c4h ; e9 92 019919 jmp near 06cf2h ; e9 92 01 9895 9920 push strict byte 00002h ; 6a 02 9896 9921 push strict byte 00000h ; 6a 00 … … 9902 9927 mov bx, 0fc00h ; bb 00 fc 9903 9928 mov cx, strict word 00009h ; b9 09 00 9904 call 06 5dfh ; e8 94 fa9929 call 0660dh ; e8 94 fa 9905 9930 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 9906 jmp short 06b 2ah ; eb d89931 jmp short 06b58h ; eb d8 9907 9932 push strict byte 00002h ; 6a 02 9908 9933 push strict byte 00000h ; 6a 00 … … 9914 9939 xor bx, bx ; 31 db 9915 9940 mov cx, strict word 0000fh ; b9 0f 00 9916 call 06 5dfh ; e8 75 fa9941 call 0660dh ; e8 75 fa 9917 9942 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 9918 jmp short 06b 2ah ; eb b99943 jmp short 06b58h ; eb b9 9919 9944 mov bx, 00da0h ; bb a0 0d 9920 9945 mov cx, ds ; 8c d9 9921 9946 mov ax, strict word 00004h ; b8 04 00 9922 call 01923h ; e8 a7ad9947 call 01923h ; e8 79 ad 9923 9948 push word [bp+014h] ; ff 76 14 9924 9949 push word [bp+020h] ; ff 76 20 9925 9950 push 008b4h ; 68 b4 08 9926 9951 push strict byte 00004h ; 6a 04 9927 call 01966h ; e8 dcad9952 call 01966h ; e8 ae ad 9928 9953 add sp, strict byte 00008h ; 83 c4 08 9929 9954 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9945 9970 xor bx, bx ; 31 db 9946 9971 mov cx, strict word 00010h ; b9 10 00 9947 call 06 5dfh ; e8 28 fa9972 call 0660dh ; e8 28 fa 9948 9973 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 9949 jmp near 06b 2ah ; e9 6b ff9974 jmp near 06b58h ; e9 6b ff 9950 9975 push strict byte 00003h ; 6a 03 9951 9976 push strict byte 00000h ; 6a 00 … … 9957 9982 mov bx, ax ; 89 c3 9958 9983 mov ax, si ; 89 f0 9959 call 06 5dfh ; e8 0b fa9984 call 0660dh ; e8 0b fa 9960 9985 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 9961 jmp near 06b 2ah ; e9 4e ff9986 jmp near 06b58h ; e9 4e ff 9962 9987 push strict byte 00002h ; 6a 02 9963 9988 push strict byte 00000h ; 6a 00 … … 9969 9994 xor bx, bx ; 31 db 9970 9995 mov cx, 0fec0h ; b9 c0 fe 9971 call 06 5dfh ; e8 e9 f99996 call 0660dh ; e8 e9 f9 9972 9997 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 9973 jmp near 06b 2ah ; e9 2c ff9998 jmp near 06b58h ; e9 2c ff 9974 9999 push strict byte 00002h ; 6a 02 9975 10000 push strict byte 00000h ; 6a 00 … … 9981 10006 xor bx, bx ; 31 db 9982 10007 mov cx, 0fee0h ; b9 e0 fe 9983 call 06 5dfh ; e8 c7 f910008 call 0660dh ; e8 c7 f9 9984 10009 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 9985 jmp near 06b 2ah ; e9 0a ff10010 jmp near 06b58h ; e9 0a ff 9986 10011 push strict byte 00002h ; 6a 02 9987 10012 push strict byte 00000h ; 6a 00 … … 9993 10018 xor bx, bx ; 31 db 9994 10019 mov cx, strict word 0fffch ; b9 fc ff 9995 call 06 5dfh ; e8 a7 f910020 call 0660dh ; e8 a7 f9 9996 10021 cmp byte [bp-004h], 000h ; 80 7e fc 00 9997 jne short 06c 45h ; 75 0710022 jne short 06c73h ; 75 07 9998 10023 mov ax, word [bp-008h] ; 8b 46 f8 9999 10024 test ax, ax ; 85 c0 10000 je short 06c 55h ; 74 1010025 je short 06c83h ; 74 10 10001 10026 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10002 jmp near 06b 2ah ; e9 dd fe10027 jmp near 06b58h ; e9 dd fe 10003 10028 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10004 jmp near 06b 2ah ; e9 d5 fe10029 jmp near 06b58h ; e9 d5 fe 10005 10030 mov word [bp+014h], ax ; 89 46 14 10006 10031 mov word [bp+016h], ax ; 89 46 16 10007 jmp short 06c c4h ; eb 6710032 jmp short 06cf2h ; eb 67 10008 10033 push strict byte 00002h ; 6a 02 10009 10034 push strict byte 00000h ; 6a 00 … … 10015 10040 xor bx, bx ; 31 db 10016 10041 xor cx, cx ; 31 c9 10017 call 06 5dfh ; e8 6b f910042 call 0660dh ; e8 6b f9 10018 10043 cmp byte [bp-004h], 000h ; 80 7e fc 00 10019 jne short 06c 81h ; 75 0710044 jne short 06cafh ; 75 07 10020 10045 mov ax, word [bp-008h] ; 8b 46 f8 10021 10046 test ax, ax ; 85 c0 10022 je short 06c 89h ; 74 0810047 je short 06cb7h ; 74 08 10023 10048 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10024 jmp near 06b 2ah ; e9 a1 fe10049 jmp near 06b58h ; e9 a1 fe 10025 10050 mov word [bp+014h], ax ; 89 46 14 10026 10051 mov word [bp+016h], ax ; 89 46 16 10027 jmp short 06c c4h ; eb 3310052 jmp short 06cf2h ; eb 33 10028 10053 cmp byte [bp-004h], 000h ; 80 7e fc 00 10029 jne short 06c 9dh ; 75 0610054 jne short 06ccbh ; 75 06 10030 10055 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10031 je short 06c c4h ; 74 2710056 je short 06cf2h ; 74 27 10032 10057 push strict byte 00001h ; 6a 01 10033 10058 mov al, byte [bp-006h] ; 8a 46 fa … … 10043 10068 xor bx, bx ; 31 db 10044 10069 xor cx, cx ; 31 c9 10045 call 06 5dfh ; e8 23 f910070 call 0660dh ; e8 23 f9 10046 10071 xor ax, ax ; 31 c0 10047 10072 mov word [bp+014h], ax ; 89 46 14 … … 10052 10077 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10053 10078 and byte [bp+028h], 0feh ; 80 66 28 fe 10054 jmp near 06b 9bh ; e9 bc fe10079 jmp near 06bc9h ; e9 bc fe 10055 10080 mov word [bp+028h], bx ; 89 5e 28 10056 10081 mov ax, strict word 00031h ; b8 31 00 10057 call 016ach ; e8 c4a910082 call 016ach ; e8 96 a9 10058 10083 xor ah, ah ; 30 e4 10059 10084 mov dx, ax ; 89 c2 10060 10085 sal dx, 008h ; c1 e2 08 10061 10086 mov ax, strict word 00030h ; b8 30 00 10062 call 016ach ; e8 b7a910087 call 016ach ; e8 89 a9 10063 10088 xor ah, ah ; 30 e4 10064 10089 or dx, ax ; 09 c2 10065 10090 mov word [bp+01ch], dx ; 89 56 1c 10066 10091 cmp dx, 03c00h ; 81 fa 00 3c 10067 jbe short 06d 07h ; 76 0510092 jbe short 06d35h ; 76 05 10068 10093 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10069 10094 mov ax, strict word 00035h ; b8 35 00 10070 call 016ach ; e8 9fa910095 call 016ach ; e8 71 a9 10071 10096 xor ah, ah ; 30 e4 10072 10097 mov dx, ax ; 89 c2 10073 10098 sal dx, 008h ; c1 e2 08 10074 10099 mov ax, strict word 00034h ; b8 34 00 10075 call 016ach ; e8 92a910100 call 016ach ; e8 64 a9 10076 10101 xor ah, ah ; 30 e4 10077 10102 or dx, ax ; 09 c2 … … 10080 10105 mov word [bp+020h], ax ; 89 46 20 10081 10106 mov word [bp+014h], dx ; 89 56 14 10082 jmp near 06b 9bh ; e9 6e fe10083 _int15_blkmove: ; 0xf6d 2dLB 0x18a10107 jmp near 06bc9h ; e9 6e fe 10108 _int15_blkmove: ; 0xf6d5b LB 0x18a 10084 10109 push bp ; 55 10085 10110 mov bp, sp ; 89 e5 … … 10090 10115 cli ; fa 10091 10116 mov ax, strict word 00001h ; b8 01 00 10092 call 065 afh ; e8 74 f810117 call 065ddh ; e8 74 f8 10093 10118 mov di, ax ; 89 c7 10094 10119 mov ax, word [bp+006h] ; 8b 46 06 … … 10100 10125 mov byte [bp-006h], dl ; 88 56 fa 10101 10126 cmp cx, ax ; 39 c1 10102 jnc short 06d 5ah ; 73 0510127 jnc short 06d88h ; 73 05 10103 10128 db 0feh, 0c2h 10104 10129 ; inc dl ; fe c2 … … 10108 10133 mov ax, word [bp+006h] ; 8b 46 06 10109 10134 mov bx, strict word 0002fh ; bb 2f 00 10110 call 0167ah ; e8 11 a910135 call 0167ah ; e8 e3 a8 10111 10136 mov dx, word [bp+00ah] ; 8b 56 0a 10112 10137 add dx, strict byte 0000ah ; 83 c2 0a 10113 10138 mov ax, word [bp+006h] ; 8b 46 06 10114 10139 mov bx, cx ; 89 cb 10115 call 0167ah ; e8 03 a910140 call 0167ah ; e8 d5 a8 10116 10141 mov bl, byte [bp-006h] ; 8a 5e fa 10117 10142 xor bh, bh ; 30 ff … … 10119 10144 add dx, strict byte 0000ch ; 83 c2 0c 10120 10145 mov ax, word [bp+006h] ; 8b 46 06 10121 call 0165eh ; e8 d6a810146 call 0165eh ; e8 a8 a8 10122 10147 mov dx, word [bp+00ah] ; 8b 56 0a 10123 10148 add dx, strict byte 0000dh ; 83 c2 0d 10124 10149 mov ax, word [bp+006h] ; 8b 46 06 10125 10150 mov bx, 00093h ; bb 93 00 10126 call 0165eh ; e8 c7a810151 call 0165eh ; e8 99 a8 10127 10152 mov dx, word [bp+00ah] ; 8b 56 0a 10128 10153 add dx, strict byte 0000eh ; 83 c2 0e 10129 10154 mov ax, word [bp+006h] ; 8b 46 06 10130 10155 xor bx, bx ; 31 db 10131 call 0167ah ; e8 d5a810156 call 0167ah ; e8 a7 a8 10132 10157 mov dx, word [bp+00ah] ; 8b 56 0a 10133 10158 add dx, strict byte 00020h ; 83 c2 20 10134 10159 mov ax, word [bp+006h] ; 8b 46 06 10135 10160 mov bx, strict word 0ffffh ; bb ff ff 10136 call 0167ah ; e8 c6a810161 call 0167ah ; e8 98 a8 10137 10162 mov dx, word [bp+00ah] ; 8b 56 0a 10138 10163 add dx, strict byte 00022h ; 83 c2 22 10139 10164 mov ax, word [bp+006h] ; 8b 46 06 10140 10165 xor bx, bx ; 31 db 10141 call 0167ah ; e8 b8a810166 call 0167ah ; e8 8a a8 10142 10167 mov dx, word [bp+00ah] ; 8b 56 0a 10143 10168 add dx, strict byte 00024h ; 83 c2 24 10144 10169 mov ax, word [bp+006h] ; 8b 46 06 10145 10170 mov bx, strict word 0000fh ; bb 0f 00 10146 call 0165eh ; e8 8da810171 call 0165eh ; e8 5f a8 10147 10172 mov dx, word [bp+00ah] ; 8b 56 0a 10148 10173 add dx, strict byte 00025h ; 83 c2 25 10149 10174 mov ax, word [bp+006h] ; 8b 46 06 10150 10175 mov bx, 0009bh ; bb 9b 00 10151 call 0165eh ; e8 7ea810176 call 0165eh ; e8 50 a8 10152 10177 mov dx, word [bp+00ah] ; 8b 56 0a 10153 10178 add dx, strict byte 00026h ; 83 c2 26 10154 10179 mov ax, word [bp+006h] ; 8b 46 06 10155 10180 xor bx, bx ; 31 db 10156 call 0167ah ; e8 8ca810181 call 0167ah ; e8 5e a8 10157 10182 mov ax, ss ; 8c d0 10158 10183 mov cx, ax ; 89 c1 … … 10164 10189 mov ax, word [bp+006h] ; 8b 46 06 10165 10190 mov bx, strict word 0ffffh ; bb ff ff 10166 call 0167ah ; e8 70a810191 call 0167ah ; e8 42 a8 10167 10192 mov dx, word [bp+00ah] ; 8b 56 0a 10168 10193 add dx, strict byte 0002ah ; 83 c2 2a 10169 10194 mov ax, word [bp+006h] ; 8b 46 06 10170 10195 mov bx, cx ; 89 cb 10171 call 0167ah ; e8 62a810196 call 0167ah ; e8 34 a8 10172 10197 mov bl, byte [bp-008h] ; 8a 5e f8 10173 10198 xor bh, bh ; 30 ff … … 10175 10200 add dx, strict byte 0002ch ; 83 c2 2c 10176 10201 mov ax, word [bp+006h] ; 8b 46 06 10177 call 0165eh ; e8 35a810202 call 0165eh ; e8 07 a8 10178 10203 mov dx, word [bp+00ah] ; 8b 56 0a 10179 10204 add dx, strict byte 0002dh ; 83 c2 2d 10180 10205 mov ax, word [bp+006h] ; 8b 46 06 10181 10206 mov bx, 00093h ; bb 93 00 10182 call 0165eh ; e8 26 a810207 call 0165eh ; e8 f8 a7 10183 10208 mov dx, word [bp+00ah] ; 8b 56 0a 10184 10209 add dx, strict byte 0002eh ; 83 c2 2e 10185 10210 mov ax, word [bp+006h] ; 8b 46 06 10186 10211 xor bx, bx ; 31 db 10187 call 0167ah ; e8 34a810212 call 0167ah ; e8 06 a8 10188 10213 lea bx, [bp+004h] ; 8d 5e 04 10189 10214 mov si, word [bp+00ah] ; 8b 76 0a … … 10195 10220 mov word [00467h], bx ; 89 1e 67 04 10196 10221 mov [00469h], ss ; 8c 16 69 04 10197 call 06e 61h ; e8 00 0010222 call 06e8fh ; e8 00 00 10198 10223 pop di ; 5f 10199 10224 add di, strict byte 00018h ; 83 c7 18 … … 10227 10252 int3 ; cc 10228 10253 mov ax, di ; 89 f8 10229 call 065 afh ; e8 08 f710254 call 065ddh ; e8 08 f7 10230 10255 sti ; fb 10231 10256 mov byte [bp+017h], 000h ; c6 46 17 00 … … 10236 10261 pop bp ; 5d 10237 10262 retn ; c3 10238 _inv_op_handler: ; 0xf6e b7LB 0x19b10263 _inv_op_handler: ; 0xf6ee5 LB 0x19b 10239 10264 push bp ; 55 10240 10265 mov bp, sp ; 89 e5 … … 10245 10270 les bx, [bp+018h] ; c4 5e 18 10246 10271 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10247 jne short 06e cdh ; 75 0610272 jne short 06efbh ; 75 06 10248 10273 inc word [bp+018h] ; ff 46 18 10249 jmp near 070 4bh ; e9 7e 0110274 jmp near 07079h ; e9 7e 01 10250 10275 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10251 je short 06 ed7h ; 74 0310252 jmp near 070 47h ; e9 70 0110276 je short 06f05h ; 74 03 10277 jmp near 07075h ; e9 70 01 10253 10278 mov si, 00800h ; be 00 08 10254 10279 xor ax, ax ; 31 c0 … … 10279 10304 sal ax, 1 ; d1 e0 10280 10305 rcl dx, 1 ; d1 d2 10281 loop 06f 28h ; e2 fa10306 loop 06f56h ; e2 fa 10282 10307 cmp bx, dx ; 39 d3 10283 jne short 06f 36h ; 75 0410308 jne short 06f64h ; 75 04 10284 10309 cmp di, ax ; 39 c7 10285 je short 06f 3bh ; 74 0510310 je short 06f69h ; 74 05 10286 10311 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10287 10312 mov es, [bp-006h] ; 8e 46 fa … … 10294 10319 sal ax, 1 ; d1 e0 10295 10320 rcl dx, 1 ; d1 d2 10296 loop 06f 51h ; e2 fa10321 loop 06f7fh ; e2 fa 10297 10322 cmp bx, dx ; 39 d3 10298 jne short 06f 5fh ; 75 0410323 jne short 06f8dh ; 75 04 10299 10324 cmp di, ax ; 39 c7 10300 je short 06f 63h ; 74 0410325 je short 06f91h ; 74 04 10301 10326 or byte [bp-008h], 002h ; 80 4e f8 02 10302 10327 push strict byte 00000h ; 6a 00 … … 10352 10377 mov ax, strict word 00008h ; b8 08 00 10353 10378 test cx, strict word 00001h ; f7 c1 01 00 10354 je near 070 04h ; 0f 84 02 0010379 je near 07032h ; 0f 84 02 00 10355 10380 mov es, ax ; 8e c0 10356 10381 test cx, strict word 00002h ; f7 c1 02 00 10357 je near 070 2ch ; 0f 84 20 0010382 je near 0705ah ; 0f 84 20 00 10358 10383 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10359 10384 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10372 10397 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10373 10398 iret ; cf 10374 jmp short 070 4bh ; eb 0410399 jmp short 07079h ; eb 04 10375 10400 sti ; fb 10376 10401 hlt ; f4 10377 jmp short 070 48h ; eb fd10402 jmp short 07076h ; eb fd 10378 10403 lea sp, [bp-004h] ; 8d 66 fc 10379 10404 pop di ; 5f … … 10381 10406 pop bp ; 5d 10382 10407 retn ; c3 10383 init_rtc_: ; 0xf70 52LB 0x2810408 init_rtc_: ; 0xf7080 LB 0x28 10384 10409 push bp ; 55 10385 10410 mov bp, sp ; 89 e5 … … 10387 10412 mov dx, strict word 00026h ; ba 26 00 10388 10413 mov ax, strict word 0000ah ; b8 0a 00 10389 call 016c7h ; e8 68a610414 call 016c7h ; e8 3a a6 10390 10415 mov dx, strict word 00002h ; ba 02 00 10391 10416 mov ax, strict word 0000bh ; b8 0b 00 10392 call 016c7h ; e8 5fa610417 call 016c7h ; e8 31 a6 10393 10418 mov ax, strict word 0000ch ; b8 0c 00 10394 call 016ach ; e8 3ea610419 call 016ach ; e8 10 a6 10395 10420 mov ax, strict word 0000dh ; b8 0d 00 10396 call 016ach ; e8 38a610421 call 016ach ; e8 0a a6 10397 10422 lea sp, [bp-002h] ; 8d 66 fe 10398 10423 pop dx ; 5a 10399 10424 pop bp ; 5d 10400 10425 retn ; c3 10401 rtc_updating_: ; 0xf70 7aLB 0x2110426 rtc_updating_: ; 0xf70a8 LB 0x21 10402 10427 push bp ; 55 10403 10428 mov bp, sp ; 89 e5 … … 10405 10430 mov dx, 061a8h ; ba a8 61 10406 10431 dec dx ; 4a 10407 je short 070 92h ; 74 0e10432 je short 070c0h ; 74 0e 10408 10433 mov ax, strict word 0000ah ; b8 0a 00 10409 call 016ach ; e8 22 a610434 call 016ach ; e8 f4 a5 10410 10435 test AL, strict byte 080h ; a8 80 10411 jne short 070 81h ; 75 f310436 jne short 070afh ; 75 f3 10412 10437 xor ax, ax ; 31 c0 10413 jmp short 070 95h ; eb 0310438 jmp short 070c3h ; eb 03 10414 10439 mov ax, strict word 00001h ; b8 01 00 10415 10440 lea sp, [bp-002h] ; 8d 66 fe … … 10417 10442 pop bp ; 5d 10418 10443 retn ; c3 10419 _int70_function: ; 0xf70 9bLB 0xbf10444 _int70_function: ; 0xf70c9 LB 0xbf 10420 10445 push bp ; 55 10421 10446 mov bp, sp ; 89 e5 … … 10423 10448 push ax ; 50 10424 10449 mov ax, strict word 0000bh ; b8 0b 00 10425 call 016ach ; e8 06 a610450 call 016ach ; e8 d8 a5 10426 10451 mov bl, al ; 88 c3 10427 10452 mov byte [bp-004h], al ; 88 46 fc 10428 10453 mov ax, strict word 0000ch ; b8 0c 00 10429 call 016ach ; e8 fba510454 call 016ach ; e8 cd a5 10430 10455 mov dl, al ; 88 c2 10431 10456 test bl, 060h ; f6 c3 60 10432 jne short 070 bbh ; 75 0310433 jmp near 071 41h ; e9 86 0010457 jne short 070e9h ; 75 03 10458 jmp near 0716fh ; e9 86 00 10434 10459 test AL, strict byte 020h ; a8 20 10435 je short 070 c3h ; 74 0410460 je short 070f1h ; 74 04 10436 10461 sti ; fb 10437 10462 int 04ah ; cd 4a 10438 10463 cli ; fa 10439 10464 test dl, 040h ; f6 c2 40 10440 je short 071 2bh ; 74 6310465 je short 07159h ; 74 63 10441 10466 mov dx, 000a0h ; ba a0 00 10442 10467 mov ax, strict word 00040h ; b8 40 00 10443 call 01650h ; e8 7fa510468 call 01650h ; e8 51 a5 10444 10469 test al, al ; 84 c0 10445 je short 071 41h ; 74 6c10470 je short 0716fh ; 74 6c 10446 10471 mov dx, 0009ch ; ba 9c 00 10447 10472 mov ax, strict word 00040h ; b8 40 00 10448 call 01688h ; e8 aaa510473 call 01688h ; e8 7c a5 10449 10474 test dx, dx ; 85 d2 10450 jne short 071 2dh ; 75 4b10475 jne short 0715bh ; 75 4b 10451 10476 cmp ax, 003d1h ; 3d d1 03 10452 jnc short 071 2dh ; 73 4610477 jnc short 0715bh ; 73 46 10453 10478 mov dx, 00098h ; ba 98 00 10454 10479 mov ax, strict word 00040h ; b8 40 00 10455 call 0166ch ; e8 7ca510480 call 0166ch ; e8 4e a5 10456 10481 mov si, ax ; 89 c6 10457 10482 mov dx, 0009ah ; ba 9a 00 10458 10483 mov ax, strict word 00040h ; b8 40 00 10459 call 0166ch ; e8 71a510484 call 0166ch ; e8 43 a5 10460 10485 mov cx, ax ; 89 c1 10461 10486 xor bx, bx ; 31 db 10462 10487 mov dx, 000a0h ; ba a0 00 10463 10488 mov ax, strict word 00040h ; b8 40 00 10464 call 0165eh ; e8 56a510489 call 0165eh ; e8 28 a5 10465 10490 mov dl, byte [bp-004h] ; 8a 56 fc 10466 10491 and dl, 037h ; 80 e2 37 10467 10492 xor dh, dh ; 30 f6 10468 10493 mov ax, strict word 0000bh ; b8 0b 00 10469 call 016c7h ; e8 b1a510494 call 016c7h ; e8 83 a5 10470 10495 mov dx, cx ; 89 ca 10471 10496 mov ax, si ; 89 f0 10472 call 01650h ; e8 33a510497 call 01650h ; e8 05 a5 10473 10498 mov bl, al ; 88 c3 10474 10499 or bl, 080h ; 80 cb 80 … … 10476 10501 mov dx, cx ; 89 ca 10477 10502 mov ax, si ; 89 f0 10478 call 0165eh ; e8 33a510479 jmp short 071 41h ; eb 1410503 call 0165eh ; e8 05 a5 10504 jmp short 0716fh ; eb 14 10480 10505 mov bx, ax ; 89 c3 10481 10506 add bx, 0fc2fh ; 81 c3 2f fc … … 10484 10509 mov dx, 0009ch ; ba 9c 00 10485 10510 mov ax, strict word 00040h ; b8 40 00 10486 call 0169ah ; e8 59a510487 call 0e030h ; e8 ec6e10511 call 0169ah ; e8 2b a5 10512 call 0e030h ; e8 be 6e 10488 10513 lea sp, [bp-002h] ; 8d 66 fe 10489 10514 pop si ; 5e 10490 10515 pop bp ; 5d 10491 10516 retn ; c3 10492 jo short 071bdh ; 70 7110493 xchg di, ax ; 9710494 jno short 071 0bh ; 71 bc10495 jno short 071 49h ; 71 f810496 j no short 0719dh ; 71 4a10497 jc short 07 0d6h ; 72 8110498 jc short 071 1fh ; 72 c810499 jc short 071 7ch ; 72 2310517 sahf ; 9e 10518 jno short 07140h ; 71 c5 10519 jno short 07167h ; 71 ea 10520 jno short 071a5h ; 71 26 10521 jc short 071f9h ; 72 78 10522 jc short 07132h ; 72 af 10523 jc short 0717bh ; 72 f6 10524 jc short 071d8h ; 72 51 10500 10525 db 073h 10501 _int1a_function: ; 0xf71 5aLB 0x1d910526 _int1a_function: ; 0xf7188 LB 0x1d9 10502 10527 push bp ; 55 10503 10528 mov bp, sp ; 89 e5 … … 10505 10530 mov al, byte [bp+013h] ; 8a 46 13 10506 10531 cmp AL, strict byte 007h ; 3c 07 10507 jnbe short 071 c3h ; 77 5e10532 jnbe short 071f1h ; 77 5e 10508 10533 mov bl, al ; 88 c3 10509 10534 xor bh, bh ; 30 ff 10510 10535 add bx, bx ; 01 db 10511 jmp word [cs:bx+071 4ah] ; 2e ff a7 4a7110536 jmp word [cs:bx+07178h] ; 2e ff a7 78 71 10512 10537 cli ; fa 10513 10538 mov bx, 0046eh ; bb 6e 04 … … 10524 10549 mov byte [es:bx], 000h ; 26 c6 07 00 10525 10550 sti ; fb 10526 jmp short 071 c3h ; eb 2c10551 jmp short 071f1h ; eb 2c 10527 10552 cli ; fa 10528 10553 mov bx, 0046eh ; bb 6e 04 … … 10538 10563 sti ; fb 10539 10564 mov byte [bp+013h], 000h ; c6 46 13 00 10540 jmp short 071 c3h ; eb 0710541 call 070 7ah ; e8 bb fe10565 jmp short 071f1h ; eb 07 10566 call 070a8h ; e8 bb fe 10542 10567 test ax, ax ; 85 c0 10543 je short 071 c6h ; 74 0310544 jmp near 07 1f4h ; e9 2e 0010568 je short 071f4h ; 74 03 10569 jmp near 07222h ; e9 2e 00 10545 10570 xor ax, ax ; 31 c0 10546 call 016ach ; e8 e1a410571 call 016ach ; e8 b3 a4 10547 10572 mov byte [bp+00fh], al ; 88 46 0f 10548 10573 mov ax, strict word 00002h ; b8 02 00 10549 call 016ach ; e8 d8a410574 call 016ach ; e8 aa a4 10550 10575 mov byte [bp+010h], al ; 88 46 10 10551 10576 mov ax, strict word 00004h ; b8 04 00 10552 call 016ach ; e8 cfa410577 call 016ach ; e8 a1 a4 10553 10578 mov dl, al ; 88 c2 10554 10579 mov byte [bp+011h], al ; 88 46 11 10555 10580 mov ax, strict word 0000bh ; b8 0b 00 10556 call 016ach ; e8 c4a410581 call 016ach ; e8 96 a4 10557 10582 and AL, strict byte 001h ; 24 01 10558 10583 mov byte [bp+00eh], al ; 88 46 0e … … 10562 10587 pop bp ; 5d 10563 10588 retn ; c3 10564 call 070 7ah ; e8 7f fe10589 call 070a8h ; e8 7f fe 10565 10590 test ax, ax ; 85 c0 10566 je short 072 02h ; 74 0310567 call 070 52h ; e8 50 fe10591 je short 07230h ; 74 03 10592 call 07080h ; e8 50 fe 10568 10593 mov dl, byte [bp+00fh] ; 8a 56 0f 10569 10594 xor dh, dh ; 30 f6 10570 10595 xor ax, ax ; 31 c0 10571 call 016c7h ; e8 bba410596 call 016c7h ; e8 8d a4 10572 10597 mov dl, byte [bp+010h] ; 8a 56 10 10573 10598 xor dh, dh ; 30 f6 10574 10599 mov ax, strict word 00002h ; b8 02 00 10575 call 016c7h ; e8 b0a410600 call 016c7h ; e8 82 a4 10576 10601 mov dl, byte [bp+011h] ; 8a 56 11 10577 10602 xor dh, dh ; 30 f6 10578 10603 mov ax, strict word 00004h ; b8 04 00 10579 call 016c7h ; e8 a5a410604 call 016c7h ; e8 77 a4 10580 10605 mov ax, strict word 0000bh ; b8 0b 00 10581 call 016ach ; e8 84a410606 call 016ach ; e8 56 a4 10582 10607 mov bl, al ; 88 c3 10583 10608 and bl, 060h ; 80 e3 60 … … 10589 10614 xor dh, dh ; 30 f6 10590 10615 mov ax, strict word 0000bh ; b8 0b 00 10591 call 016c7h ; e8 86a410616 call 016c7h ; e8 58 a4 10592 10617 mov byte [bp+013h], 000h ; c6 46 13 00 10593 10618 mov byte [bp+012h], bl ; 88 5e 12 10594 jmp short 07 1f4h ; eb aa10619 jmp short 07222h ; eb aa 10595 10620 mov byte [bp+013h], 000h ; c6 46 13 00 10596 call 070 7ah ; e8 29 fe10621 call 070a8h ; e8 29 fe 10597 10622 test ax, ax ; 85 c0 10598 je short 072 57h ; 74 0210599 jmp short 07 1f4h ; eb 9d10623 je short 07285h ; 74 02 10624 jmp short 07222h ; eb 9d 10600 10625 mov ax, strict word 00009h ; b8 09 00 10601 call 016ach ; e8 4fa410626 call 016ach ; e8 21 a4 10602 10627 mov byte [bp+010h], al ; 88 46 10 10603 10628 mov ax, strict word 00008h ; b8 08 00 10604 call 016ach ; e8 46a410629 call 016ach ; e8 18 a4 10605 10630 mov byte [bp+00fh], al ; 88 46 0f 10606 10631 mov ax, strict word 00007h ; b8 07 00 10607 call 016ach ; e8 3da410632 call 016ach ; e8 0f a4 10608 10633 mov byte [bp+00eh], al ; 88 46 0e 10609 10634 mov ax, strict word 00032h ; b8 32 00 10610 call 016ach ; e8 34a410635 call 016ach ; e8 06 a4 10611 10636 mov byte [bp+011h], al ; 88 46 11 10612 10637 mov byte [bp+012h], al ; 88 46 12 10613 jmp near 07 1f4h ; e9 73 ff10614 call 070 7ah ; e8 f6 fd10638 jmp near 07222h ; e9 73 ff 10639 call 070a8h ; e8 f6 fd 10615 10640 test ax, ax ; 85 c0 10616 je short 072 8eh ; 74 0610617 call 070 52h ; e8 c7 fd10618 jmp near 07 1f4h ; e9 66 ff10641 je short 072bch ; 74 06 10642 call 07080h ; e8 c7 fd 10643 jmp near 07222h ; e9 66 ff 10619 10644 mov dl, byte [bp+010h] ; 8a 56 10 10620 10645 xor dh, dh ; 30 f6 10621 10646 mov ax, strict word 00009h ; b8 09 00 10622 call 016c7h ; e8 2ea410647 call 016c7h ; e8 00 a4 10623 10648 mov dl, byte [bp+00fh] ; 8a 56 0f 10624 10649 xor dh, dh ; 30 f6 10625 10650 mov ax, strict word 00008h ; b8 08 00 10626 call 016c7h ; e8 23 a410651 call 016c7h ; e8 f5 a3 10627 10652 mov dl, byte [bp+00eh] ; 8a 56 0e 10628 10653 xor dh, dh ; 30 f6 10629 10654 mov ax, strict word 00007h ; b8 07 00 10630 call 016c7h ; e8 18 a410655 call 016c7h ; e8 ea a3 10631 10656 mov dl, byte [bp+011h] ; 8a 56 11 10632 10657 xor dh, dh ; 30 f6 10633 10658 mov ax, strict word 00032h ; b8 32 00 10634 call 016c7h ; e8 0d a410659 call 016c7h ; e8 df a3 10635 10660 mov ax, strict word 0000bh ; b8 0b 00 10636 call 016ach ; e8 eca310661 call 016ach ; e8 be a3 10637 10662 mov bl, al ; 88 c3 10638 10663 and bl, 07fh ; 80 e3 7f 10639 jmp near 072 37h ; e9 6f ff10664 jmp near 07265h ; e9 6f ff 10640 10665 mov ax, strict word 0000bh ; b8 0b 00 10641 call 016ach ; e8 dea310666 call 016ach ; e8 b0 a3 10642 10667 mov bl, al ; 88 c3 10643 10668 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10644 10669 test AL, strict byte 020h ; a8 20 10645 je short 07 2dch ; 74 0310646 jmp near 07 1f4h ; e9 18 ff10647 call 070 7ah ; e8 9b fd10670 je short 0730ah ; 74 03 10671 jmp near 07222h ; e9 18 ff 10672 call 070a8h ; e8 9b fd 10648 10673 test ax, ax ; 85 c0 10649 je short 07 2e6h ; 74 0310650 call 070 52h ; e8 6c fd10674 je short 07314h ; 74 03 10675 call 07080h ; e8 6c fd 10651 10676 mov dl, byte [bp+00fh] ; 8a 56 0f 10652 10677 xor dh, dh ; 30 f6 10653 10678 mov ax, strict word 00001h ; b8 01 00 10654 call 016c7h ; e8 d6a310679 call 016c7h ; e8 a8 a3 10655 10680 mov dl, byte [bp+010h] ; 8a 56 10 10656 10681 xor dh, dh ; 30 f6 10657 10682 mov ax, strict word 00003h ; b8 03 00 10658 call 016c7h ; e8 cba310683 call 016c7h ; e8 9d a3 10659 10684 mov dl, byte [bp+011h] ; 8a 56 11 10660 10685 xor dh, dh ; 30 f6 10661 10686 mov ax, strict word 00005h ; b8 05 00 10662 call 016c7h ; e8 c0a310687 call 016c7h ; e8 92 a3 10663 10688 mov dx, 000a1h ; ba a1 00 10664 10689 in AL, DX ; ec … … 10672 10697 xor dh, dh ; 30 f6 10673 10698 mov ax, strict word 0000bh ; b8 0b 00 10674 call 016c7h ; e8 a7a310675 jmp near 07 1f4h ; e9 d1 fe10699 call 016c7h ; e8 79 a3 10700 jmp near 07222h ; e9 d1 fe 10676 10701 mov ax, strict word 0000bh ; b8 0b 00 10677 call 016ach ; e8 83a310702 call 016ach ; e8 55 a3 10678 10703 mov bl, al ; 88 c3 10679 10704 mov dl, al ; 88 c2 10680 10705 and dl, 057h ; 80 e2 57 10681 jmp near 072 39h ; e9 06 ff10682 send_to_mouse_ctrl_: ; 0xf73 33LB 0x3410706 jmp near 07267h ; e9 06 ff 10707 send_to_mouse_ctrl_: ; 0xf7361 LB 0x34 10683 10708 push bp ; 55 10684 10709 mov bp, sp ; 89 e5 … … 10691 10716 ; sub ah, ah ; 2a e4 10692 10717 test AL, strict byte 002h ; a8 02 10693 je short 073 52h ; 74 0e10718 je short 07380h ; 74 0e 10694 10719 push 008eeh ; 68 ee 08 10695 10720 push 01168h ; 68 68 11 10696 10721 push strict byte 00007h ; 6a 07 10697 call 01966h ; e8 17 a610722 call 01966h ; e8 e9 a5 10698 10723 add sp, strict byte 00006h ; 83 c4 06 10699 10724 mov AL, strict byte 0d4h ; b0 d4 … … 10709 10734 pop bp ; 5d 10710 10735 retn ; c3 10711 get_mouse_data_: ; 0xf73 67LB 0x5d10736 get_mouse_data_: ; 0xf7395 LB 0x5d 10712 10737 push bp ; 55 10713 10738 mov bp, sp ; 89 e5 … … 10724 10749 and ax, strict word 00021h ; 25 21 00 10725 10750 cmp ax, strict word 00021h ; 3d 21 00 10726 je short 073 aah ; 74 2810751 je short 073d8h ; 74 28 10727 10752 test cx, cx ; 85 c9 10728 je short 073 aah ; 74 2410753 je short 073d8h ; 74 24 10729 10754 mov dx, strict word 00061h ; ba 61 00 10730 10755 in AL, DX ; ec … … 10743 10768 xor ah, ah ; 30 e4 10744 10769 cmp dx, ax ; 39 c2 10745 je short 073 91h ; 74 ea10770 je short 073bfh ; 74 ea 10746 10771 dec cx ; 49 10747 jmp short 073 74h ; eb ca10772 jmp short 073a2h ; eb ca 10748 10773 test cx, cx ; 85 c9 10749 jne short 073 b2h ; 75 0410774 jne short 073e0h ; 75 04 10750 10775 mov AL, strict byte 001h ; b0 01 10751 jmp short 073 bdh ; eb 0b10776 jmp short 073ebh ; eb 0b 10752 10777 mov dx, strict word 00060h ; ba 60 00 10753 10778 in AL, DX ; ec … … 10761 10786 pop bp ; 5d 10762 10787 retn ; c3 10763 set_kbd_command_byte_: ; 0xf73 c4LB 0x3210788 set_kbd_command_byte_: ; 0xf73f2 LB 0x32 10764 10789 push bp ; 55 10765 10790 mov bp, sp ; 89 e5 … … 10772 10797 ; sub ah, ah ; 2a e4 10773 10798 test AL, strict byte 002h ; a8 02 10774 je short 07 3e3h ; 74 0e10799 je short 07411h ; 74 0e 10775 10800 push 008f8h ; 68 f8 08 10776 10801 push 01168h ; 68 68 11 10777 10802 push strict byte 00007h ; 6a 07 10778 call 01966h ; e8 86a510803 call 01966h ; e8 58 a5 10779 10804 add sp, strict byte 00006h ; 83 c4 06 10780 10805 mov AL, strict byte 060h ; b0 60 … … 10789 10814 pop bp ; 5d 10790 10815 retn ; c3 10791 _int74_function: ; 0xf7 3f6LB 0xd210816 _int74_function: ; 0xf7424 LB 0xd2 10792 10817 push bp ; 55 10793 10818 mov bp, sp ; 89 e5 … … 10795 10820 mov dx, strict word 0000eh ; ba 0e 00 10796 10821 mov ax, strict word 00040h ; b8 40 00 10797 call 0166ch ; e8 67a210822 call 0166ch ; e8 39 a2 10798 10823 mov cx, ax ; 89 c1 10799 10824 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10804 10829 and AL, strict byte 021h ; 24 21 10805 10830 cmp AL, strict byte 021h ; 3c 21 10806 jne short 074 3ah ; 75 2210831 jne short 07468h ; 75 22 10807 10832 mov dx, strict word 00060h ; ba 60 00 10808 10833 in AL, DX ; ec … … 10812 10837 mov dx, strict word 00026h ; ba 26 00 10813 10838 mov ax, cx ; 89 c8 10814 call 01650h ; e8 28 a210839 call 01650h ; e8 fa a1 10815 10840 mov byte [bp-002h], al ; 88 46 fe 10816 10841 mov dx, strict word 00027h ; ba 27 00 10817 10842 mov ax, cx ; 89 c8 10818 call 01650h ; e8 1d a210843 call 01650h ; e8 ef a1 10819 10844 mov byte [bp-006h], al ; 88 46 fa 10820 10845 test AL, strict byte 080h ; a8 80 10821 jne short 074 3dh ; 75 0310822 jmp near 074 b4h ; e9 77 0010846 jne short 0746bh ; 75 03 10847 jmp near 074e2h ; e9 77 00 10823 10848 mov al, byte [bp-006h] ; 8a 46 fa 10824 10849 and AL, strict byte 007h ; 24 07 … … 10834 10859 add dx, strict byte 00028h ; 83 c2 28 10835 10860 mov ax, cx ; 89 c8 10836 call 0165eh ; e8 fea110861 call 0165eh ; e8 d0 a1 10837 10862 mov al, byte [bp-008h] ; 8a 46 f8 10838 10863 cmp al, byte [bp-004h] ; 3a 46 fc 10839 jc short 074 a4h ; 72 3c10864 jc short 074d2h ; 72 3c 10840 10865 mov dx, strict word 00028h ; ba 28 00 10841 10866 mov ax, cx ; 89 c8 10842 call 01650h ; e8 e0a110867 call 01650h ; e8 b2 a1 10843 10868 xor ah, ah ; 30 e4 10844 10869 mov word [bp+00ch], ax ; 89 46 0c 10845 10870 mov dx, strict word 00029h ; ba 29 00 10846 10871 mov ax, cx ; 89 c8 10847 call 01650h ; e8 d3a110872 call 01650h ; e8 a5 a1 10848 10873 xor ah, ah ; 30 e4 10849 10874 mov word [bp+00ah], ax ; 89 46 0a 10850 10875 mov dx, strict word 0002ah ; ba 2a 00 10851 10876 mov ax, cx ; 89 c8 10852 call 01650h ; e8 c6a110877 call 01650h ; e8 98 a1 10853 10878 xor ah, ah ; 30 e4 10854 10879 mov word [bp+008h], ax ; 89 46 08 … … 10857 10882 mov byte [bp-002h], ah ; 88 66 fe 10858 10883 test byte [bp-006h], 080h ; f6 46 fa 80 10859 je short 074 a7h ; 74 0a10884 je short 074d5h ; 74 0a 10860 10885 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10861 jmp short 074 a7h ; eb 0310886 jmp short 074d5h ; eb 03 10862 10887 inc byte [bp-002h] ; fe 46 fe 10863 10888 mov bl, byte [bp-002h] ; 8a 5e fe … … 10865 10890 mov dx, strict word 00026h ; ba 26 00 10866 10891 mov ax, cx ; 89 c8 10867 call 0165eh ; e8 aaa110892 call 0165eh ; e8 7c a1 10868 10893 mov sp, bp ; 89 ec 10869 10894 pop bp ; 5d 10870 10895 retn ; c3 10871 or si, word [di-079h] ; 0b 75 8710872 jne short 07 4c1h ; 75 0410873 jbe short 074 58h ; 76 9910874 jbe short 07 4c6h ; 76 0510875 jnbe short 07 515h ; 77 5210876 jne short 07 4f2h ; 75 2d10877 jnbe short 07 4b9h ; 77 f210878 db 07 7h10879 _int15_function_mouse: ; 0xf74 c8LB 0x38d10896 cmp word [di-04bh], si ; 39 75 b5 10897 jne short 0751dh ; 75 32 10898 jbe short 074b4h ; 76 c7 10899 jbe short 07522h ; 76 33 10900 jnbe short 07471h ; 77 80 10901 jne short 0754eh ; 75 5b 10902 jnbe short 07515h ; 77 20 10903 db 078h 10904 _int15_function_mouse: ; 0xf74f6 LB 0x38d 10880 10905 push bp ; 55 10881 10906 mov bp, sp ; 89 e5 … … 10884 10909 mov dx, strict word 0000eh ; ba 0e 00 10885 10910 mov ax, strict word 00040h ; b8 40 00 10886 call 0166ch ; e8 94a110911 call 0166ch ; e8 66 a1 10887 10912 mov cx, ax ; 89 c1 10888 10913 cmp byte [bp+012h], 007h ; 80 7e 12 07 10889 jbe short 07 4ebh ; 76 0b10914 jbe short 07519h ; 76 0b 10890 10915 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10891 10916 mov byte [bp+013h], 001h ; c6 46 13 01 10892 jmp near 078 4fh ; e9 64 0310917 jmp near 0787dh ; e9 64 03 10893 10918 mov ax, strict word 00065h ; b8 65 00 10894 call 073 c4h ; e8 d3 fe10919 call 073f2h ; e8 d3 fe 10895 10920 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10896 10921 mov byte [bp+013h], 000h ; c6 46 13 00 10897 10922 mov al, byte [bp+012h] ; 8a 46 12 10898 10923 cmp AL, strict byte 007h ; 3c 07 10899 jnbe short 075 60h ; 77 6010924 jnbe short 0758eh ; 77 60 10900 10925 xor ah, ah ; 30 e4 10901 10926 mov si, ax ; 89 c6 10902 10927 add si, ax ; 01 c6 10903 jmp word [cs:si+074 b8h] ; 2e ff a4 b87410928 jmp word [cs:si+074e6h] ; 2e ff a4 e6 74 10904 10929 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10905 jnbe short 075 63h ; 77 5210930 jnbe short 07591h ; 77 52 10906 10931 mov dx, strict word 00027h ; ba 27 00 10907 10932 mov ax, cx ; 89 c8 10908 call 01650h ; e8 37a110933 call 01650h ; e8 09 a1 10909 10934 test AL, strict byte 080h ; a8 80 10910 jne short 075 28h ; 75 0b10935 jne short 07556h ; 75 0b 10911 10936 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10912 10937 mov byte [bp+013h], 005h ; c6 46 13 05 10913 jmp near 078 49h ; e9 21 0310938 jmp near 07877h ; e9 21 03 10914 10939 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10915 jne short 075 32h ; 75 0410940 jne short 07560h ; 75 04 10916 10941 mov AL, strict byte 0f5h ; b0 f5 10917 jmp short 075 34h ; eb 0210942 jmp short 07562h ; eb 02 10918 10943 mov AL, strict byte 0f4h ; b0 f4 10919 10944 xor ah, ah ; 30 e4 10920 call 073 33h ; e8 fa fd10945 call 07361h ; e8 fa fd 10921 10946 test al, al ; 84 c0 10922 jne short 075 66h ; 75 2910947 jne short 07594h ; 75 29 10923 10948 mov dx, ss ; 8c d2 10924 10949 lea ax, [bp-008h] ; 8d 46 f8 10925 call 073 67h ; e8 22 fe10950 call 07395h ; e8 22 fe 10926 10951 test al, al ; 84 c0 10927 je short 075 4fh ; 74 0610952 je short 0757dh ; 74 06 10928 10953 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10929 jne short 075 66h ; 75 1710930 jmp near 078 49h ; e9 f7 0210954 jne short 07594h ; 75 17 10955 jmp near 07877h ; e9 f7 02 10931 10956 mov al, byte [bp+00dh] ; 8a 46 0d 10932 10957 cmp AL, strict byte 001h ; 3c 01 10933 jc short 075 5dh ; 72 0410958 jc short 0758bh ; 72 04 10934 10959 cmp AL, strict byte 008h ; 3c 08 10935 jbe short 075 69h ; 76 0c10936 jmp near 07 6fbh ; e9 9b 0110937 jmp near 078 36h ; e9 d3 0210938 jmp near 078 41h ; e9 db 0210939 jmp near 077 cdh ; e9 64 0210960 jbe short 07597h ; 76 0c 10961 jmp near 07729h ; e9 9b 01 10962 jmp near 07864h ; e9 d3 02 10963 jmp near 0786fh ; e9 db 02 10964 jmp near 077fbh ; e9 64 02 10940 10965 mov dx, strict word 00027h ; ba 27 00 10941 10966 mov ax, cx ; 89 c8 10942 call 01650h ; e8 dfa010967 call 01650h ; e8 b1 a0 10943 10968 mov ah, byte [bp+00dh] ; 8a 66 0d 10944 10969 db 0feh, 0cch … … 10950 10975 mov dx, strict word 00027h ; ba 27 00 10951 10976 mov ax, cx ; 89 c8 10952 call 0165eh ; e8 d7a010977 call 0165eh ; e8 a9 a0 10953 10978 mov dx, strict word 00026h ; ba 26 00 10954 10979 mov ax, cx ; 89 c8 10955 call 01650h ; e8 c1a010980 call 01650h ; e8 93 a0 10956 10981 mov bl, al ; 88 c3 10957 10982 and bl, 0f8h ; 80 e3 f8 … … 10959 10984 mov dx, strict word 00026h ; ba 26 00 10960 10985 mov ax, cx ; 89 c8 10961 call 0165eh ; e8 c0a010986 call 0165eh ; e8 92 a0 10962 10987 mov ax, 000ffh ; b8 ff 00 10963 call 073 33h ; e8 8f fd10988 call 07361h ; e8 8f fd 10964 10989 test al, al ; 84 c0 10965 jne short 075 66h ; 75 be10990 jne short 07594h ; 75 be 10966 10991 mov dx, ss ; 8c d2 10967 10992 lea ax, [bp-004h] ; 8d 46 fc 10968 call 073 67h ; e8 b7 fd10993 call 07395h ; e8 b7 fd 10969 10994 mov cl, al ; 88 c1 10970 10995 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10971 jne short 075 c2h ; 75 0a10996 jne short 075f0h ; 75 0a 10972 10997 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10973 10998 mov byte [bp+013h], 004h ; c6 46 13 04 10974 jmp short 075 4fh ; eb 8d10999 jmp short 0757dh ; eb 8d 10975 11000 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10976 je short 07 5d9h ; 74 1111001 je short 07607h ; 74 11 10977 11002 mov al, byte [bp-004h] ; 8a 46 fc 10978 11003 xor ah, ah ; 30 e4 … … 10980 11005 push 00903h ; 68 03 09 10981 11006 push strict byte 00007h ; 6a 07 10982 call 01966h ; e8 90a311007 call 01966h ; e8 62 a3 10983 11008 add sp, strict byte 00006h ; 83 c4 06 10984 11009 test cl, cl ; 84 c9 10985 jne short 075 66h ; 75 8911010 jne short 07594h ; 75 89 10986 11011 mov dx, ss ; 8c d2 10987 11012 lea ax, [bp-008h] ; 8d 46 f8 10988 call 073 67h ; e8 82 fd11013 call 07395h ; e8 82 fd 10989 11014 test al, al ; 84 c0 10990 jne short 076 3fh ; 75 5611015 jne short 0766dh ; 75 56 10991 11016 mov dx, ss ; 8c d2 10992 11017 lea ax, [bp-006h] ; 8d 46 fa 10993 call 073 67h ; e8 76 fd11018 call 07395h ; e8 76 fd 10994 11019 test al, al ; 84 c0 10995 jne short 076 3fh ; 75 4a11020 jne short 0766dh ; 75 4a 10996 11021 mov al, byte [bp-008h] ; 8a 46 f8 10997 11022 mov byte [bp+00ch], al ; 88 46 0c 10998 11023 mov al, byte [bp-006h] ; 8a 46 fa 10999 11024 mov byte [bp+00dh], al ; 88 46 0d 11000 jmp near 078 49h ; e9 45 0211025 jmp near 07877h ; e9 45 02 11001 11026 mov al, byte [bp+00dh] ; 8a 46 0d 11002 11027 cmp AL, strict byte 003h ; 3c 03 11003 jc short 076 1bh ; 72 1011004 jbe short 076 39h ; 76 2c11028 jc short 07649h ; 72 10 11029 jbe short 07667h ; 76 2c 11005 11030 cmp AL, strict byte 006h ; 3c 06 11006 je short 076 4eh ; 74 3d11031 je short 0767ch ; 74 3d 11007 11032 cmp AL, strict byte 005h ; 3c 05 11008 je short 076 48h ; 74 3311033 je short 07676h ; 74 33 11009 11034 cmp AL, strict byte 004h ; 3c 04 11010 je short 076 42h ; 74 2911011 jmp short 076 54h ; eb 3911035 je short 07670h ; 74 29 11036 jmp short 07682h ; eb 39 11012 11037 cmp AL, strict byte 002h ; 3c 02 11013 je short 076 33h ; 74 1411038 je short 07661h ; 74 14 11014 11039 cmp AL, strict byte 001h ; 3c 01 11015 je short 076 2dh ; 74 0a11040 je short 0765bh ; 74 0a 11016 11041 test al, al ; 84 c0 11017 jne short 076 54h ; 75 2d11042 jne short 07682h ; 75 2d 11018 11043 mov byte [bp-008h], 00ah ; c6 46 f8 0a 11019 jmp short 076 58h ; eb 2b11044 jmp short 07686h ; eb 2b 11020 11045 mov byte [bp-008h], 014h ; c6 46 f8 14 11021 jmp short 076 58h ; eb 2511046 jmp short 07686h ; eb 25 11022 11047 mov byte [bp-008h], 028h ; c6 46 f8 28 11023 jmp short 076 58h ; eb 1f11048 jmp short 07686h ; eb 1f 11024 11049 mov byte [bp-008h], 03ch ; c6 46 f8 3c 11025 jmp short 076 58h ; eb 1911026 jmp near 077 cdh ; e9 8b 0111050 jmp short 07686h ; eb 19 11051 jmp near 077fbh ; e9 8b 01 11027 11052 mov byte [bp-008h], 050h ; c6 46 f8 50 11028 jmp short 076 58h ; eb 1011053 jmp short 07686h ; eb 10 11029 11054 mov byte [bp-008h], 064h ; c6 46 f8 64 11030 jmp short 076 58h ; eb 0a11055 jmp short 07686h ; eb 0a 11031 11056 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 11032 jmp short 076 58h ; eb 0411057 jmp short 07686h ; eb 04 11033 11058 mov byte [bp-008h], 000h ; c6 46 f8 00 11034 11059 cmp byte [bp-008h], 000h ; 80 7e f8 00 11035 jbe short 076 8eh ; 76 3011060 jbe short 076bch ; 76 30 11036 11061 mov ax, 000f3h ; b8 f3 00 11037 call 073 33h ; e8 cf fc11062 call 07361h ; e8 cf fc 11038 11063 test al, al ; 84 c0 11039 jne short 076 83h ; 75 1b11064 jne short 076b1h ; 75 1b 11040 11065 mov dx, ss ; 8c d2 11041 11066 lea ax, [bp-006h] ; 8d 46 fa 11042 call 073 67h ; e8 f7 fc11067 call 07395h ; e8 f7 fc 11043 11068 mov al, byte [bp-008h] ; 8a 46 f8 11044 11069 xor ah, ah ; 30 e4 11045 call 073 33h ; e8 bb fc11070 call 07361h ; e8 bb fc 11046 11071 mov dx, ss ; 8c d2 11047 11072 lea ax, [bp-006h] ; 8d 46 fa 11048 call 073 67h ; e8 e7 fc11049 jmp near 078 49h ; e9 c6 0111073 call 07395h ; e8 e7 fc 11074 jmp near 07877h ; e9 c6 01 11050 11075 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11051 11076 mov byte [bp+013h], 003h ; c6 46 13 03 11052 jmp near 078 49h ; e9 bb 0111077 jmp near 07877h ; e9 bb 01 11053 11078 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11054 11079 mov byte [bp+013h], 002h ; c6 46 13 02 11055 jmp near 078 49h ; e9 b0 0111080 jmp near 07877h ; e9 b0 01 11056 11081 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11057 jnc short 07 6fbh ; 73 5c11082 jnc short 07729h ; 73 5c 11058 11083 mov ax, 000e8h ; b8 e8 00 11059 call 073 33h ; e8 8e fc11084 call 07361h ; e8 8e fc 11060 11085 test al, al ; 84 c0 11061 jne short 07 6f1h ; 75 4811086 jne short 0771fh ; 75 48 11062 11087 mov dx, ss ; 8c d2 11063 11088 lea ax, [bp-008h] ; 8d 46 f8 11064 call 073 67h ; e8 b6 fc11089 call 07395h ; e8 b6 fc 11065 11090 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11066 je short 076 c8h ; 74 1111091 je short 076f6h ; 74 11 11067 11092 mov al, byte [bp-008h] ; 8a 46 f8 11068 11093 xor ah, ah ; 30 e4 … … 11070 11095 push 0092eh ; 68 2e 09 11071 11096 push strict byte 00007h ; 6a 07 11072 call 01966h ; e8 a1a211097 call 01966h ; e8 73 a2 11073 11098 add sp, strict byte 00006h ; 83 c4 06 11074 11099 mov al, byte [bp+00dh] ; 8a 46 0d 11075 11100 xor ah, ah ; 30 e4 11076 call 073 33h ; e8 63 fc11101 call 07361h ; e8 63 fc 11077 11102 mov dx, ss ; 8c d2 11078 11103 lea ax, [bp-008h] ; 8d 46 f8 11079 call 073 67h ; e8 8f fc11104 call 07395h ; e8 8f fc 11080 11105 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11081 je short 077 2ah ; 74 4c11106 je short 07758h ; 74 4c 11082 11107 mov al, byte [bp-008h] ; 8a 46 f8 11083 11108 xor ah, ah ; 30 e4 … … 11085 11110 push 0092eh ; 68 2e 09 11086 11111 push strict byte 00007h ; 6a 07 11087 call 01966h ; e8 7aa211112 call 01966h ; e8 4c a2 11088 11113 add sp, strict byte 00006h ; 83 c4 06 11089 jmp short 077 2ah ; eb 3911114 jmp short 07758h ; eb 39 11090 11115 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11091 11116 mov byte [bp+013h], 003h ; c6 46 13 03 11092 jmp short 077 2ah ; eb 2f11117 jmp short 07758h ; eb 2f 11093 11118 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11094 11119 mov byte [bp+013h], 002h ; c6 46 13 02 11095 jmp short 077 2ah ; eb 2511120 jmp short 07758h ; eb 25 11096 11121 mov ax, 000f2h ; b8 f2 00 11097 call 073 33h ; e8 28 fc11122 call 07361h ; e8 28 fc 11098 11123 test al, al ; 84 c0 11099 jne short 077 22h ; 75 1311124 jne short 07750h ; 75 13 11100 11125 mov dx, ss ; 8c d2 11101 11126 lea ax, [bp-008h] ; 8d 46 f8 11102 call 073 67h ; e8 50 fc11127 call 07395h ; e8 50 fc 11103 11128 mov dx, ss ; 8c d2 11104 11129 lea ax, [bp-006h] ; 8d 46 fa 11105 call 073 67h ; e8 48 fc11106 jmp near 07 5fbh ; e9 d9 fe11130 call 07395h ; e8 48 fc 11131 jmp near 07629h ; e9 d9 fe 11107 11132 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11108 11133 mov byte [bp+013h], 003h ; c6 46 13 03 11109 jmp near 078 49h ; e9 1c 0111134 jmp near 07877h ; e9 1c 01 11110 11135 mov al, byte [bp+00dh] ; 8a 46 0d 11111 11136 test al, al ; 84 c0 11112 jbe short 077 3bh ; 76 0711137 jbe short 07769h ; 76 07 11113 11138 cmp AL, strict byte 002h ; 3c 02 11114 jbe short 077 a2h ; 76 6a11115 jmp near 07 7d7h ; e9 9c 0011139 jbe short 077d0h ; 76 6a 11140 jmp near 07805h ; e9 9c 00 11116 11141 mov ax, 000e9h ; b8 e9 00 11117 call 073 33h ; e8 f2 fb11142 call 07361h ; e8 f2 fb 11118 11143 test al, al ; 84 c0 11119 jne short 077 abh ; 75 6611144 jne short 077d9h ; 75 66 11120 11145 mov dx, ss ; 8c d2 11121 11146 lea ax, [bp-008h] ; 8d 46 f8 11122 call 073 67h ; e8 1a fc11147 call 07395h ; e8 1a fc 11123 11148 mov cl, al ; 88 c1 11124 11149 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11125 je short 077 66h ; 74 1111150 je short 07794h ; 74 11 11126 11151 mov al, byte [bp-008h] ; 8a 46 f8 11127 11152 xor ah, ah ; 30 e4 … … 11129 11154 push 0092eh ; 68 2e 09 11130 11155 push strict byte 00007h ; 6a 07 11131 call 01966h ; e8 03 a211156 call 01966h ; e8 d5 a1 11132 11157 add sp, strict byte 00006h ; 83 c4 06 11133 11158 test cl, cl ; 84 c9 11134 jne short 077 cdh ; 75 6311159 jne short 077fbh ; 75 63 11135 11160 mov dx, ss ; 8c d2 11136 11161 lea ax, [bp-008h] ; 8d 46 f8 11137 call 073 67h ; e8 f5 fb11162 call 07395h ; e8 f5 fb 11138 11163 test al, al ; 84 c0 11139 jne short 077 cdh ; 75 5711164 jne short 077fbh ; 75 57 11140 11165 mov dx, ss ; 8c d2 11141 11166 lea ax, [bp-006h] ; 8d 46 fa 11142 call 073 67h ; e8 e9 fb11167 call 07395h ; e8 e9 fb 11143 11168 test al, al ; 84 c0 11144 jne short 077 cdh ; 75 4b11169 jne short 077fbh ; 75 4b 11145 11170 mov dx, ss ; 8c d2 11146 11171 lea ax, [bp-004h] ; 8d 46 fc 11147 call 073 67h ; e8 dd fb11172 call 07395h ; e8 dd fb 11148 11173 test al, al ; 84 c0 11149 jne short 077 cdh ; 75 3f11174 jne short 077fbh ; 75 3f 11150 11175 mov al, byte [bp-008h] ; 8a 46 f8 11151 11176 mov byte [bp+00ch], al ; 88 46 0c … … 11154 11179 mov al, byte [bp-004h] ; 8a 46 fc 11155 11180 mov byte [bp+00eh], al ; 88 46 0e 11156 jmp short 077 2ah ; eb 8811181 jmp short 07758h ; eb 88 11157 11182 cmp AL, strict byte 001h ; 3c 01 11158 jne short 077 adh ; 75 0711183 jne short 077dbh ; 75 07 11159 11184 mov ax, 000e6h ; b8 e6 00 11160 jmp short 077 b0h ; eb 0511161 jmp short 077 cdh ; eb 2011185 jmp short 077deh ; eb 05 11186 jmp short 077fbh ; eb 20 11162 11187 mov ax, 000e7h ; b8 e7 00 11163 call 073 33h ; e8 80 fb11188 call 07361h ; e8 80 fb 11164 11189 mov cl, al ; 88 c1 11165 11190 test cl, cl ; 84 c9 11166 jne short 077 c9h ; 75 1011191 jne short 077f7h ; 75 10 11167 11192 mov dx, ss ; 8c d2 11168 11193 lea ax, [bp-008h] ; 8d 46 f8 11169 call 073 67h ; e8 a6 fb11194 call 07395h ; e8 a6 fb 11170 11195 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11171 je short 077 c9h ; 74 0211196 je short 077f7h ; 74 02 11172 11197 mov CL, strict byte 001h ; b1 01 11173 11198 test cl, cl ; 84 c9 11174 je short 078 34h ; 74 6711199 je short 07862h ; 74 67 11175 11200 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11176 11201 mov byte [bp+013h], 003h ; c6 46 13 03 11177 jmp short 078 34h ; eb 5d11202 jmp short 07862h ; eb 5d 11178 11203 mov al, byte [bp+00dh] ; 8a 46 0d 11179 11204 xor ah, ah ; 30 e4 … … 11181 11206 push 0095ah ; 68 5a 09 11182 11207 push strict byte 00007h ; 6a 07 11183 call 01966h ; e8 81a111208 call 01966h ; e8 53 a1 11184 11209 add sp, strict byte 00006h ; 83 c4 06 11185 11210 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11186 11211 mov byte [bp+013h], 001h ; c6 46 13 01 11187 jmp short 078 49h ; eb 5711212 jmp short 07877h ; eb 57 11188 11213 mov si, word [bp+00ch] ; 8b 76 0c 11189 11214 mov bx, si ; 89 f3 11190 11215 mov dx, strict word 00022h ; ba 22 00 11191 11216 mov ax, cx ; 89 c8 11192 call 0167ah ; e8 7b9e11217 call 0167ah ; e8 4d 9e 11193 11218 mov bx, word [bp+014h] ; 8b 5e 14 11194 11219 mov dx, strict word 00024h ; ba 24 00 11195 11220 mov ax, cx ; 89 c8 11196 call 0167ah ; e8 709e11221 call 0167ah ; e8 42 9e 11197 11222 mov dx, strict word 00027h ; ba 27 00 11198 11223 mov ax, cx ; 89 c8 11199 call 01650h ; e8 3e9e11224 call 01650h ; e8 10 9e 11200 11225 mov ah, al ; 88 c4 11201 11226 test si, si ; 85 f6 11202 jne short 078 26h ; 75 0e11227 jne short 07854h ; 75 0e 11203 11228 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11204 jne short 078 26h ; 75 0811229 jne short 07854h ; 75 08 11205 11230 test AL, strict byte 080h ; a8 80 11206 je short 078 28h ; 74 0611231 je short 07856h ; 74 06 11207 11232 and AL, strict byte 07fh ; 24 7f 11208 jmp short 078 28h ; eb 0211233 jmp short 07856h ; eb 02 11209 11234 or AL, strict byte 080h ; 0c 80 11210 11235 mov bl, al ; 88 c3 … … 11212 11237 mov dx, strict word 00027h ; ba 27 00 11213 11238 mov ax, cx ; 89 c8 11214 call 0165eh ; e8 2a 9e11215 jmp short 078 49h ; eb 1311239 call 0165eh ; e8 fc 9d 11240 jmp short 07877h ; eb 13 11216 11241 push 00974h ; 68 74 09 11217 11242 push strict byte 00007h ; 6a 07 11218 call 01966h ; e8 28 a111243 call 01966h ; e8 fa a0 11219 11244 add sp, strict byte 00004h ; 83 c4 04 11220 11245 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11221 11246 mov byte [bp+013h], 001h ; c6 46 13 01 11222 11247 mov ax, strict word 00047h ; b8 47 00 11223 call 073 c4h ; e8 75 fb11248 call 073f2h ; e8 75 fb 11224 11249 lea sp, [bp-002h] ; 8d 66 fe 11225 11250 pop si ; 5e 11226 11251 pop bp ; 5d 11227 11252 retn ; c3 11228 _int17_function: ; 0xf78 55LB 0xaf11253 _int17_function: ; 0xf7883 LB 0xaf 11229 11254 push bp ; 55 11230 11255 mov bp, sp ; 89 e5 … … 11236 11261 add dx, strict byte 00008h ; 83 c2 08 11237 11262 mov ax, strict word 00040h ; b8 40 00 11238 call 0166ch ; e8 03 9e11263 call 0166ch ; e8 d5 9d 11239 11264 mov bx, ax ; 89 c3 11240 11265 mov si, ax ; 89 c6 11241 11266 cmp byte [bp+013h], 003h ; 80 7e 13 03 11242 jnc short 078 7fh ; 73 0c11267 jnc short 078adh ; 73 0c 11243 11268 mov ax, word [bp+00eh] ; 8b 46 0e 11244 11269 cmp ax, strict word 00003h ; 3d 03 00 11245 jnc short 078 7fh ; 73 0411270 jnc short 078adh ; 73 04 11246 11271 test bx, bx ; 85 db 11247 jnbe short 078 82h ; 77 0311248 jmp near 07 8fah ; e9 78 0011272 jnbe short 078b0h ; 77 03 11273 jmp near 07928h ; e9 78 00 11249 11274 mov dx, ax ; 89 c2 11250 11275 add dx, strict byte 00078h ; 83 c2 78 11251 11276 mov ax, strict word 00040h ; b8 40 00 11252 call 01650h ; e8 c39d11277 call 01650h ; e8 95 9d 11253 11278 xor ah, ah ; 30 e4 11254 11279 mov cx, ax ; 89 c1 11255 11280 sal cx, 008h ; c1 e1 08 11256 11281 cmp byte [bp+013h], 000h ; 80 7e 13 00 11257 jne short 078 c6h ; 75 2c11282 jne short 078f4h ; 75 2c 11258 11283 mov al, byte [bp+012h] ; 8a 46 12 11259 11284 mov dx, bx ; 89 da … … 11275 11300 ; sub ah, ah ; 2a e4 11276 11301 test AL, strict byte 040h ; a8 40 11277 je short 078 c6h ; 74 0711302 je short 078f4h ; 74 07 11278 11303 test cx, cx ; 85 c9 11279 je short 078 c6h ; 74 0311304 je short 078f4h ; 74 03 11280 11305 dec cx ; 49 11281 jmp short 078 b5h ; eb ef11306 jmp short 078e3h ; eb ef 11282 11307 cmp byte [bp+013h], 001h ; 80 7e 13 01 11283 jne short 07 8e1h ; 75 1511308 jne short 0790fh ; 75 15 11284 11309 lea dx, [si+002h] ; 8d 54 02 11285 11310 in AL, DX ; ec … … 11300 11325 mov byte [bp+013h], al ; 88 46 13 11301 11326 test cx, cx ; 85 c9 11302 jne short 07 8f4h ; 75 0411327 jne short 07922h ; 75 04 11303 11328 or byte [bp+013h], 001h ; 80 4e 13 01 11304 11329 and byte [bp+01ch], 0feh ; 80 66 1c fe 11305 jmp short 07 8feh ; eb 0411330 jmp short 0792ch ; eb 04 11306 11331 or byte [bp+01ch], 001h ; 80 4e 1c 01 11307 11332 lea sp, [bp-002h] ; 8d 66 fe … … 11309 11334 pop bp ; 5d 11310 11335 retn ; c3 11311 wait_: ; 0xf79 04LB 0xaf11336 wait_: ; 0xf7932 LB 0xaf 11312 11337 push bp ; 55 11313 11338 mov bp, sp ; 89 e5 … … 11327 11352 mov dx, 0046ch ; ba 6c 04 11328 11353 xor ax, ax ; 31 c0 11329 call 01688h ; e8 619d11354 call 01688h ; e8 33 9d 11330 11355 mov word [bp-010h], ax ; 89 46 f0 11331 11356 mov bx, dx ; 89 d3 … … 11333 11358 mov dx, 0046ch ; ba 6c 04 11334 11359 xor ax, ax ; 31 c0 11335 call 01688h ; e8 539d11360 call 01688h ; e8 25 9d 11336 11361 mov word [bp-012h], ax ; 89 46 ee 11337 11362 mov di, dx ; 89 d7 11338 11363 cmp dx, bx ; 39 da 11339 jnbe short 079 45h ; 77 0711340 jne short 079 4ch ; 75 0c11364 jnbe short 07973h ; 77 07 11365 jne short 0797ah ; 75 0c 11341 11366 cmp ax, word [bp-010h] ; 3b 46 f0 11342 jbe short 079 4ch ; 76 0711367 jbe short 0797ah ; 76 07 11343 11368 sub ax, word [bp-010h] ; 2b 46 f0 11344 11369 sbb dx, bx ; 19 da 11345 jmp short 079 57h ; eb 0b11370 jmp short 07985h ; eb 0b 11346 11371 cmp dx, bx ; 39 da 11347 jc short 079 57h ; 72 0711348 jne short 079 5bh ; 75 0911372 jc short 07985h ; 72 07 11373 jne short 07989h ; 75 09 11349 11374 cmp ax, word [bp-010h] ; 3b 46 f0 11350 jnc short 079 5bh ; 73 0411375 jnc short 07989h ; 73 04 11351 11376 sub si, ax ; 29 c6 11352 11377 sbb cx, dx ; 19 d1 … … 11356 11381 mov ax, 00100h ; b8 00 01 11357 11382 int 016h ; cd 16 11358 je short 079 6fh ; 74 0511383 je short 0799dh ; 74 05 11359 11384 mov AL, strict byte 001h ; b0 01 11360 jmp near 079 71h ; e9 02 0011385 jmp near 0799fh ; e9 02 00 11361 11386 db 032h, 0c0h 11362 11387 ; xor al, al ; 32 c0 11363 11388 test al, al ; 84 c0 11364 je short 079 98h ; 74 2311389 je short 079c6h ; 74 23 11365 11390 db 033h, 0c0h 11366 11391 ; xor ax, ax ; 33 c0 … … 11373 11398 push 00996h ; 68 96 09 11374 11399 push strict byte 00004h ; 6a 04 11375 call 01966h ; e8 db9f11400 call 01966h ; e8 ad 9f 11376 11401 add sp, strict byte 00006h ; 83 c4 06 11377 11402 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11378 je short 079 98h ; 74 0411403 je short 079c6h ; 74 04 11379 11404 mov al, dl ; 88 d0 11380 jmp short 079 aah ; eb 1211405 jmp short 079d8h ; eb 12 11381 11406 test cx, cx ; 85 c9 11382 jnle short 079 2ch ; 7f 9011383 jne short 079 a2h ; 75 0411407 jnle short 0795ah ; 7f 90 11408 jne short 079d0h ; 75 04 11384 11409 test si, si ; 85 f6 11385 jnbe short 079 2ch ; 77 8a11410 jnbe short 0795ah ; 77 8a 11386 11411 mov ax, word [bp-00eh] ; 8b 46 f2 11387 11412 push ax ; 50 … … 11395 11420 pop bp ; 5d 11396 11421 retn ; c3 11397 read_logo_byte_: ; 0xf79 b3LB 0x1611422 read_logo_byte_: ; 0xf79e1 LB 0x16 11398 11423 push bp ; 55 11399 11424 mov bp, sp ; 89 e5 … … 11410 11435 pop bp ; 5d 11411 11436 retn ; c3 11412 read_logo_word_: ; 0xf79 c9LB 0x1411437 read_logo_word_: ; 0xf79f7 LB 0x14 11413 11438 push bp ; 55 11414 11439 mov bp, sp ; 89 e5 … … 11423 11448 pop bp ; 5d 11424 11449 retn ; c3 11425 print_detected_harddisks_: ; 0xf7 9ddLB 0x13a11450 print_detected_harddisks_: ; 0xf7a0b LB 0x13a 11426 11451 push bp ; 55 11427 11452 mov bp, sp ; 89 e5 … … 11435 11460 mov dx, strict word 0000eh ; ba 0e 00 11436 11461 mov ax, strict word 00040h ; b8 40 00 11437 call 0166ch ; e8 7c9c11462 call 0166ch ; e8 4e 9c 11438 11463 mov si, ax ; 89 c6 11439 11464 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11441 11466 xor ch, ch ; 30 ed 11442 11467 mov dx, 00304h ; ba 04 03 11443 call 01650h ; e8 509c11468 call 01650h ; e8 22 9c 11444 11469 mov byte [bp-00ch], al ; 88 46 f4 11445 11470 xor bl, bl ; 30 db 11446 11471 cmp bl, byte [bp-00ch] ; 3a 5e f4 11447 jnc short 07a 67h ; 73 5d11472 jnc short 07a95h ; 73 5d 11448 11473 mov al, bl ; 88 d8 11449 11474 xor ah, ah ; 30 e4 … … 11451 11476 add dx, 00305h ; 81 c2 05 03 11452 11477 mov ax, si ; 89 f0 11453 call 01650h ; e8 379c11478 call 01650h ; e8 09 9c 11454 11479 mov bh, al ; 88 c7 11455 11480 cmp AL, strict byte 00ch ; 3c 0c 11456 jc short 07a 44h ; 72 2511481 jc short 07a72h ; 72 25 11457 11482 test cl, cl ; 84 c9 11458 jne short 07a 30h ; 75 0d11483 jne short 07a5eh ; 75 0d 11459 11484 push 009a7h ; 68 a7 09 11460 11485 push strict byte 00002h ; 6a 02 11461 call 01966h ; e8 3b9f11486 call 01966h ; e8 0d 9f 11462 11487 add sp, strict byte 00004h ; 83 c4 04 11463 11488 mov CL, strict byte 001h ; b1 01 … … 11468 11493 push 009bch ; 68 bc 09 11469 11494 push strict byte 00002h ; 6a 02 11470 call 01966h ; e8 28 9f11495 call 01966h ; e8 fa 9e 11471 11496 add sp, strict byte 00006h ; 83 c4 06 11472 jmp near 07 ae4h ; e9 a0 0011497 jmp near 07b12h ; e9 a0 00 11473 11498 cmp AL, strict byte 008h ; 3c 08 11474 jc short 07a 5bh ; 72 1311499 jc short 07a89h ; 72 13 11475 11500 test ch, ch ; 84 ed 11476 jne short 07a 59h ; 75 0d11501 jne short 07a87h ; 75 0d 11477 11502 push 009cfh ; 68 cf 09 11478 11503 push strict byte 00002h ; 6a 02 11479 call 01966h ; e8 12 9f11504 call 01966h ; e8 e4 9e 11480 11505 add sp, strict byte 00004h ; 83 c4 04 11481 11506 mov CH, strict byte 001h ; b5 01 11482 jmp short 07a 30h ; eb d511507 jmp short 07a5eh ; eb d5 11483 11508 cmp AL, strict byte 004h ; 3c 04 11484 jnc short 07a 7bh ; 73 1c11509 jnc short 07aa9h ; 73 1c 11485 11510 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11486 je short 07a 6ah ; 74 0511487 jmp short 07a 7bh ; eb 1411488 jmp near 07 ae9h ; e9 7f 0011511 je short 07a98h ; 74 05 11512 jmp short 07aa9h ; eb 14 11513 jmp near 07b17h ; e9 7f 00 11489 11514 push 009e4h ; 68 e4 09 11490 11515 push strict byte 00002h ; 6a 02 11491 call 01966h ; e8 f49e11516 call 01966h ; e8 c6 9e 11492 11517 add sp, strict byte 00004h ; 83 c4 04 11493 11518 mov byte [bp-00eh], 001h ; c6 46 f2 01 11494 jmp short 07a 91h ; eb 1611519 jmp short 07abfh ; eb 16 11495 11520 cmp bh, 004h ; 80 ff 04 11496 jc short 07a 91h ; 72 1111521 jc short 07abfh ; 72 11 11497 11522 test cl, cl ; 84 c9 11498 jne short 07a 91h ; 75 0d11523 jne short 07abfh ; 75 0d 11499 11524 push 009f6h ; 68 f6 09 11500 11525 push strict byte 00002h ; 6a 02 11501 call 01966h ; e8 da9e11526 call 01966h ; e8 ac 9e 11502 11527 add sp, strict byte 00004h ; 83 c4 04 11503 11528 mov CL, strict byte 001h ; b1 01 … … 11508 11533 push 00a0ah ; 68 0a 0a 11509 11534 push strict byte 00002h ; 6a 02 11510 call 01966h ; e8 c79e11535 call 01966h ; e8 99 9e 11511 11536 add sp, strict byte 00006h ; 83 c4 06 11512 11537 cmp bh, 004h ; 80 ff 04 11513 jc short 07a aah ; 72 0311538 jc short 07ad8h ; 72 03 11514 11539 sub bh, 004h ; 80 ef 04 11515 11540 mov al, bh ; 88 f8 … … 11520 11545 sar ax, 1 ; d1 f8 11521 11546 test ax, ax ; 85 c0 11522 je short 07a bch ; 74 0511547 je short 07aeah ; 74 05 11523 11548 push 00a14h ; 68 14 0a 11524 jmp short 07a bfh ; eb 0311549 jmp short 07aedh ; eb 03 11525 11550 push 00a1fh ; 68 1f 0a 11526 11551 push strict byte 00002h ; 6a 02 11527 call 01966h ; e8 a29e11552 call 01966h ; e8 74 9e 11528 11553 add sp, strict byte 00004h ; 83 c4 04 11529 11554 mov al, bh ; 88 f8 … … 11533 11558 idiv di ; f7 ff 11534 11559 test dx, dx ; 85 d2 11535 je short 07 adah ; 74 0511560 je short 07b08h ; 74 05 11536 11561 push 00a28h ; 68 28 0a 11537 jmp short 07 addh ; eb 0311562 jmp short 07b0bh ; eb 03 11538 11563 push 00a2eh ; 68 2e 0a 11539 11564 push di ; 57 11540 call 01966h ; e8 859e11565 call 01966h ; e8 57 9e 11541 11566 add sp, strict byte 00004h ; 83 c4 04 11542 11567 db 0feh, 0c3h 11543 11568 ; inc bl ; fe c3 11544 jmp near 07a 05h ; e9 1c ff11569 jmp near 07a33h ; e9 1c ff 11545 11570 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11546 jne short 07b 02h ; 75 1311571 jne short 07b30h ; 75 13 11547 11572 test cl, cl ; 84 c9 11548 jne short 07b 02h ; 75 0f11573 jne short 07b30h ; 75 0f 11549 11574 test ch, ch ; 84 ed 11550 jne short 07b 02h ; 75 0b11575 jne short 07b30h ; 75 0b 11551 11576 push 00a35h ; 68 35 0a 11552 11577 push strict byte 00002h ; 6a 02 11553 call 01966h ; e8 679e11578 call 01966h ; e8 39 9e 11554 11579 add sp, strict byte 00004h ; 83 c4 04 11555 11580 push 00a49h ; 68 49 0a 11556 11581 push strict byte 00002h ; 6a 02 11557 call 01966h ; e8 5c9e11582 call 01966h ; e8 2e 9e 11558 11583 add sp, strict byte 00004h ; 83 c4 04 11559 11584 lea sp, [bp-00ah] ; 8d 66 f6 … … 11565 11590 pop bp ; 5d 11566 11591 retn ; c3 11567 get_boot_drive_: ; 0xf7b 17LB 0x2811592 get_boot_drive_: ; 0xf7b45 LB 0x28 11568 11593 push bp ; 55 11569 11594 mov bp, sp ; 89 e5 … … 11573 11598 mov dx, strict word 0000eh ; ba 0e 00 11574 11599 mov ax, strict word 00040h ; b8 40 00 11575 call 0166ch ; e8 459b11600 call 0166ch ; e8 17 9b 11576 11601 mov dx, 00304h ; ba 04 03 11577 call 01650h ; e8 23 9b11602 call 01650h ; e8 f5 9a 11578 11603 sub bl, 002h ; 80 eb 02 11579 11604 cmp bl, al ; 38 c3 11580 jc short 07b 36h ; 72 0211605 jc short 07b64h ; 72 02 11581 11606 mov BL, strict byte 0ffh ; b3 ff 11582 11607 mov al, bl ; 88 d8 … … 11586 11611 pop bp ; 5d 11587 11612 retn ; c3 11588 show_logo_: ; 0xf7b 3fLB 0x23111613 show_logo_: ; 0xf7b6d LB 0x231 11589 11614 push bp ; 55 11590 11615 mov bp, sp ; 89 e5 … … 11597 11622 mov dx, strict word 0000eh ; ba 0e 00 11598 11623 mov ax, strict word 00040h ; b8 40 00 11599 call 0166ch ; e8 19 9b11624 call 0166ch ; e8 eb 9a 11600 11625 mov si, ax ; 89 c6 11601 11626 xor cl, cl ; 30 c9 … … 11609 11634 mov al, dl ; 88 d0 11610 11635 xor ah, ah ; 30 e4 11611 call 079 c9h ; e8 5d fe11636 call 079f7h ; e8 5d fe 11612 11637 cmp ax, 066bbh ; 3d bb 66 11613 jne short 07b 83h ; 75 1211638 jne short 07bb1h ; 75 12 11614 11639 push SS ; 16 11615 11640 pop ES ; 07 … … 11619 11644 mov word [es:di], bx ; 26 89 1d 11620 11645 cmp ax, strict word 0004fh ; 3d 4f 00 11621 je short 07b 86h ; 74 0311622 jmp near 07c 4eh ; e9 c8 0011646 je short 07bb4h ; 74 03 11647 jmp near 07c7ch ; e9 c8 00 11623 11648 mov al, dl ; 88 d0 11624 11649 add AL, strict byte 004h ; 04 04 11625 11650 xor ah, ah ; 30 e4 11626 call 079 b3h ; e8 24 fe11651 call 079e1h ; e8 24 fe 11627 11652 mov ch, al ; 88 c5 11628 11653 mov byte [bp-012h], al ; 88 46 ee … … 11630 11655 add AL, strict byte 005h ; 04 05 11631 11656 xor ah, ah ; 30 e4 11632 call 079 b3h ; e8 16 fe11657 call 079e1h ; e8 16 fe 11633 11658 mov dh, al ; 88 c6 11634 11659 mov byte [bp-010h], al ; 88 46 f0 … … 11636 11661 add AL, strict byte 002h ; 04 02 11637 11662 xor ah, ah ; 30 e4 11638 call 079 c9h ; e8 1e fe11663 call 079f7h ; e8 1e fe 11639 11664 mov bx, ax ; 89 c3 11640 11665 mov word [bp-014h], ax ; 89 46 ec … … 11642 11667 add AL, strict byte 006h ; 04 06 11643 11668 xor ah, ah ; 30 e4 11644 call 079 b3h ; e8 fa fd11669 call 079e1h ; e8 fa fd 11645 11670 mov byte [bp-00eh], al ; 88 46 f2 11646 11671 test ch, ch ; 84 ed 11647 jne short 07b c8h ; 75 0811672 jne short 07bf6h ; 75 08 11648 11673 test dh, dh ; 84 f6 11649 jne short 07b c8h ; 75 0411674 jne short 07bf6h ; 75 04 11650 11675 test bx, bx ; 85 db 11651 je short 07b 83h ; 74 bb11676 je short 07bb1h ; 74 bb 11652 11677 mov bx, 00142h ; bb 42 01 11653 11678 mov ax, 04f02h ; b8 02 4f 11654 11679 int 010h ; cd 10 11655 11680 cmp byte [bp-012h], 000h ; 80 7e ee 00 11656 je short 07 bf9h ; 74 2311681 je short 07c27h ; 74 23 11657 11682 xor bx, bx ; 31 db 11658 jmp short 07 be0h ; eb 0611683 jmp short 07c0eh ; eb 06 11659 11684 inc bx ; 43 11660 11685 cmp bx, strict byte 00010h ; 83 fb 10 11661 jnbe short 07c 00h ; 77 2011686 jnbe short 07c2eh ; 77 20 11662 11687 mov ax, bx ; 89 d8 11663 11688 or ah, 002h ; 80 cc 02 … … 11666 11691 xor dx, dx ; 31 d2 11667 11692 mov ax, strict word 00001h ; b8 01 00 11668 call 079 04h ; e8 13 fd11693 call 07932h ; e8 13 fd 11669 11694 cmp AL, strict byte 086h ; 3c 86 11670 jne short 07 bdah ; 75 e511695 jne short 07c08h ; 75 e5 11671 11696 mov CL, strict byte 001h ; b1 01 11672 jmp short 07c 00h ; eb 0711697 jmp short 07c2eh ; eb 07 11673 11698 mov ax, 00210h ; b8 10 02 11674 11699 mov dx, 003b8h ; ba b8 03 11675 11700 out DX, ax ; ef 11676 11701 test cl, cl ; 84 c9 11677 jne short 07c 16h ; 75 1211702 jne short 07c44h ; 75 12 11678 11703 mov ax, word [bp-014h] ; 8b 46 ec 11679 11704 shr ax, 004h ; c1 e8 04 11680 11705 mov dx, strict word 00001h ; ba 01 00 11681 call 079 04h ; e8 f4 fc11706 call 07932h ; e8 f4 fc 11682 11707 cmp AL, strict byte 086h ; 3c 86 11683 jne short 07c 16h ; 75 0211708 jne short 07c44h ; 75 02 11684 11709 mov CL, strict byte 001h ; b1 01 11685 11710 cmp byte [bp-010h], 000h ; 80 7e f0 00 11686 je short 07c 43h ; 74 2711711 je short 07c71h ; 74 27 11687 11712 test cl, cl ; 84 c9 11688 jne short 07c 43h ; 75 2311713 jne short 07c71h ; 75 23 11689 11714 mov bx, strict word 00010h ; bb 10 00 11690 jmp short 07c 2ah ; eb 0511715 jmp short 07c58h ; eb 05 11691 11716 dec bx ; 4b 11692 11717 test bx, bx ; 85 db 11693 jbe short 07c 4eh ; 76 2411718 jbe short 07c7ch ; 76 24 11694 11719 mov ax, bx ; 89 d8 11695 11720 or ah, 002h ; 80 cc 02 … … 11698 11723 xor dx, dx ; 31 d2 11699 11724 mov ax, strict word 00001h ; b8 01 00 11700 call 079 04h ; e8 c9 fc11725 call 07932h ; e8 c9 fc 11701 11726 cmp AL, strict byte 086h ; 3c 86 11702 jne short 07c 25h ; 75 e611727 jne short 07c53h ; 75 e6 11703 11728 mov CL, strict byte 001h ; b1 01 11704 jmp short 07c 4eh ; eb 0b11729 jmp short 07c7ch ; eb 0b 11705 11730 test cl, cl ; 84 c9 11706 jne short 07c 4eh ; 75 0711731 jne short 07c7ch ; 75 07 11707 11732 mov ax, 00200h ; b8 00 02 11708 11733 mov dx, 003b8h ; ba b8 03 … … 11711 11736 mov dx, 0037dh ; ba 7d 03 11712 11737 mov ax, si ; 89 f0 11713 call 0165eh ; e8 06 9a11738 call 0165eh ; e8 d8 99 11714 11739 mov AL, strict byte 003h ; b0 03 11715 11740 mov AH, strict byte 000h ; b4 00 11716 11741 int 010h ; cd 10 11717 11742 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11718 je short 07c 78h ; 74 1411743 je short 07ca6h ; 74 14 11719 11744 cmp byte [bp-012h], 000h ; 80 7e ee 00 11720 jne short 07c 9fh ; 75 3511745 jne short 07ccdh ; 75 35 11721 11746 cmp byte [bp-010h], 000h ; 80 7e f0 00 11722 jne short 07c 9fh ; 75 2f11747 jne short 07ccdh ; 75 2f 11723 11748 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11724 je short 07c 7bh ; 74 0511725 jmp short 07c 9fh ; eb 2711726 jmp near 07d 53h ; e9 d8 0011749 je short 07ca9h ; 74 05 11750 jmp short 07ccdh ; eb 27 11751 jmp near 07d81h ; e9 d8 00 11727 11752 cmp byte [bp-00eh], 002h ; 80 7e f2 02 11728 jne short 07c 8ch ; 75 0b11753 jne short 07cbah ; 75 0b 11729 11754 push 00a4bh ; 68 4b 0a 11730 11755 push strict byte 00002h ; 6a 02 11731 call 01966h ; e8 dd9c11756 call 01966h ; e8 af 9c 11732 11757 add sp, strict byte 00004h ; 83 c4 04 11733 11758 test cl, cl ; 84 c9 11734 jne short 07c 9fh ; 75 0f11759 jne short 07ccdh ; 75 0f 11735 11760 mov dx, strict word 00001h ; ba 01 00 11736 11761 mov ax, 000c0h ; b8 c0 00 11737 call 079 04h ; e8 6b fc11762 call 07932h ; e8 6b fc 11738 11763 cmp AL, strict byte 086h ; 3c 86 11739 jne short 07c 9fh ; 75 0211764 jne short 07ccdh ; 75 02 11740 11765 mov CL, strict byte 001h ; b1 01 11741 11766 test cl, cl ; 84 c9 11742 je short 07c 78h ; 74 d511767 je short 07ca6h ; 74 d5 11743 11768 mov byte [bp-00ch], 000h ; c6 46 f4 00 11744 11769 mov ax, 00100h ; b8 00 01 … … 11759 11784 push 00a6dh ; 68 6d 0a 11760 11785 push strict byte 00002h ; 6a 02 11761 call 01966h ; e8 9a9c11786 call 01966h ; e8 6c 9c 11762 11787 add sp, strict byte 00004h ; 83 c4 04 11763 call 07 9ddh ; e8 0b fd11788 call 07a0bh ; e8 0b fd 11764 11789 push 00ab1h ; 68 b1 0a 11765 11790 push strict byte 00002h ; 6a 02 11766 call 01966h ; e8 8c9c11791 call 01966h ; e8 5e 9c 11767 11792 add sp, strict byte 00004h ; 83 c4 04 11768 11793 mov dx, strict word 00001h ; ba 01 00 11769 11794 mov ax, strict word 00040h ; b8 40 00 11770 call 079 04h ; e8 1e fc11795 call 07932h ; e8 1e fc 11771 11796 mov bl, al ; 88 c3 11772 11797 test al, al ; 84 c0 11773 je short 07 cddh ; 74 f111798 je short 07d0bh ; 74 f1 11774 11799 cmp AL, strict byte 030h ; 3c 30 11775 je short 07d 40h ; 74 5011800 je short 07d6eh ; 74 50 11776 11801 cmp bl, 002h ; 80 fb 02 11777 jc short 07d 19h ; 72 2411802 jc short 07d47h ; 72 24 11778 11803 cmp bl, 009h ; 80 fb 09 11779 jnbe short 07d 19h ; 77 1f11804 jnbe short 07d47h ; 77 1f 11780 11805 mov al, bl ; 88 d8 11781 11806 xor ah, ah ; 30 e4 11782 call 07b 17h ; e8 16 fe11807 call 07b45h ; e8 16 fe 11783 11808 cmp AL, strict byte 0ffh ; 3c ff 11784 jne short 07d 07h ; 75 0211785 jmp short 07 cddh ; eb d611809 jne short 07d35h ; 75 02 11810 jmp short 07d0bh ; eb d6 11786 11811 mov bl, al ; 88 c3 11787 11812 xor bh, bh ; 30 ff 11788 11813 mov dx, 0037ch ; ba 7c 03 11789 11814 mov ax, si ; 89 f0 11790 call 0165eh ; e8 4b9911815 call 0165eh ; e8 1d 99 11791 11816 mov byte [bp-00ch], 002h ; c6 46 f4 02 11792 jmp short 07d 40h ; eb 2711817 jmp short 07d6eh ; eb 27 11793 11818 cmp bl, 02eh ; 80 fb 2e 11794 je short 07d 2eh ; 74 1011819 je short 07d5ch ; 74 10 11795 11820 cmp bl, 026h ; 80 fb 26 11796 je short 07d 34h ; 74 1111821 je short 07d62h ; 74 11 11797 11822 cmp bl, 021h ; 80 fb 21 11798 jne short 07d 3ah ; 75 1211823 jne short 07d68h ; 75 12 11799 11824 mov byte [bp-00ch], 001h ; c6 46 f4 01 11800 jmp short 07d 40h ; eb 1211825 jmp short 07d6eh ; eb 12 11801 11826 mov byte [bp-00ch], 003h ; c6 46 f4 03 11802 jmp short 07d 40h ; eb 0c11827 jmp short 07d6eh ; eb 0c 11803 11828 mov byte [bp-00ch], 004h ; c6 46 f4 04 11804 jmp short 07d 40h ; eb 0611829 jmp short 07d6eh ; eb 06 11805 11830 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11806 je short 07 cddh ; 74 9d11831 je short 07d0bh ; 74 9d 11807 11832 mov bl, byte [bp-00ch] ; 8a 5e f4 11808 11833 xor bh, bh ; 30 ff 11809 11834 mov dx, 0037dh ; ba 7d 03 11810 11835 mov ax, si ; 89 f0 11811 call 0165eh ; e8 11 9911836 call 0165eh ; e8 e3 98 11812 11837 mov AL, strict byte 003h ; b0 03 11813 11838 mov AH, strict byte 000h ; b4 00 … … 11822 11847 push DS ; 1e 11823 11848 mov ds, ax ; 8e d8 11824 call 0edbfh ; e8 5b7011849 call 0edbfh ; e8 2d 70 11825 11850 pop DS ; 1f 11826 11851 pop bp ; 5d … … 11833 11858 pop bp ; 5d 11834 11859 retn ; c3 11835 delay_boot_: ; 0xf7d 70LB 0x6b11860 delay_boot_: ; 0xf7d9e LB 0x6b 11836 11861 push bp ; 55 11837 11862 mov bp, sp ; 89 e5 … … 11843 11868 mov dx, ax ; 89 c2 11844 11869 test ax, ax ; 85 c0 11845 je short 07d d1h ; 74 5311870 je short 07dffh ; 74 53 11846 11871 mov AL, strict byte 034h ; b0 34 11847 11872 out strict byte 043h, AL ; e6 43 … … 11853 11878 push 00afbh ; 68 fb 0a 11854 11879 push strict byte 00002h ; 6a 02 11855 call 01966h ; e8 d39b11880 call 01966h ; e8 a5 9b 11856 11881 add sp, strict byte 00006h ; 83 c4 06 11857 11882 mov bx, dx ; 89 d3 11858 11883 test bx, bx ; 85 db 11859 jbe short 07d b3h ; 76 1711884 jbe short 07de1h ; 76 17 11860 11885 push bx ; 53 11861 11886 push 00b19h ; 68 19 0b 11862 11887 push strict byte 00002h ; 6a 02 11863 call 01966h ; e8 c19b11888 call 01966h ; e8 93 9b 11864 11889 add sp, strict byte 00006h ; 83 c4 06 11865 11890 xor dx, dx ; 31 d2 11866 11891 mov ax, strict word 00040h ; b8 40 00 11867 call 079 04h ; e8 54 fb11892 call 07932h ; e8 54 fb 11868 11893 dec bx ; 4b 11869 jmp short 07d 98h ; eb e511894 jmp short 07dc6h ; eb e5 11870 11895 push 00a49h ; 68 49 0a 11871 11896 push strict byte 00002h ; 6a 02 11872 call 01966h ; e8 ab9b11897 call 01966h ; e8 7d 9b 11873 11898 add sp, strict byte 00004h ; 83 c4 04 11874 11899 mov AL, strict byte 034h ; b0 34 … … 11881 11906 push DS ; 1e 11882 11907 mov ds, ax ; 8e d8 11883 call 0edbfh ; e8 f06f11908 call 0edbfh ; e8 c2 6f 11884 11909 pop DS ; 1f 11885 11910 pop bp ; 5d … … 11892 11917 pop bp ; 5d 11893 11918 retn ; c3 11894 scsi_cmd_data_in_: ; 0xf7 ddbLB 0xd511919 scsi_cmd_data_in_: ; 0xf7e09 LB 0xd5 11895 11920 push bp ; 55 11896 11921 mov bp, sp ; 89 e5 … … 11908 11933 ; sub ah, ah ; 2a e4 11909 11934 test AL, strict byte 001h ; a8 01 11910 jne short 07 df1h ; 75 f711935 jne short 07e1fh ; 75 f7 11911 11936 mov al, byte [bp+004h] ; 8a 46 04 11912 11937 cmp AL, strict byte 010h ; 3c 10 11913 jne short 07e 05h ; 75 0411938 jne short 07e33h ; 75 04 11914 11939 xor ax, ax ; 31 c0 11915 jmp short 07e 07h ; eb 0211940 jmp short 07e35h ; eb 02 11916 11941 xor ah, ah ; 30 e4 11917 11942 mov di, ax ; 89 c7 … … 11921 11946 shr dx, 1 ; d1 ea 11922 11947 rcr ax, 1 ; d1 d8 11923 loop 07e 11h ; e2 fa11948 loop 07e3fh ; e2 fa 11924 11949 mov cx, ax ; 89 c1 11925 11950 and cx, 000f0h ; 81 e1 f0 00 … … 11939 11964 shr dx, 1 ; d1 ea 11940 11965 rcr ax, 1 ; d1 d8 11941 loop 07e 36h ; e2 fa11966 loop 07e64h ; e2 fa 11942 11967 mov dx, si ; 89 f2 11943 11968 out DX, AL ; ee … … 11946 11971 xor ah, ah ; 30 e4 11947 11972 cmp cx, ax ; 39 c1 11948 jnc short 07e 58h ; 73 0e11973 jnc short 07e86h ; 73 0e 11949 11974 les di, [bp-00ah] ; c4 7e f6 11950 11975 add di, cx ; 01 cf … … 11953 11978 out DX, AL ; ee 11954 11979 inc cx ; 41 11955 jmp short 07e 41h ; eb e911980 jmp short 07e6fh ; eb e9 11956 11981 mov dx, si ; 89 f2 11957 11982 in AL, DX ; ec … … 11959 11984 ; sub ah, ah ; 2a e4 11960 11985 test AL, strict byte 001h ; a8 01 11961 jne short 07e 58h ; 75 f711986 jne short 07e86h ; 75 f7 11962 11987 test AL, strict byte 002h ; a8 02 11963 je short 07e 73h ; 74 0e11988 je short 07ea1h ; 74 0e 11964 11989 lea dx, [si+003h] ; 8d 54 03 11965 11990 xor al, al ; 30 c0 … … 11969 11994 ; sub ah, ah ; 2a e4 11970 11995 mov di, strict word 00004h ; bf 04 00 11971 jmp short 07e a5h ; eb 3211996 jmp short 07ed3h ; eb 32 11972 11997 lea dx, [si+001h] ; 8d 54 01 11973 11998 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11974 jne short 07e 82h ; 75 0611999 jne short 07eb0h ; 75 06 11975 12000 cmp bx, 08000h ; 81 fb 00 80 11976 jbe short 07e 9ch ; 76 1a12001 jbe short 07ecah ; 76 1a 11977 12002 mov cx, 08000h ; b9 00 80 11978 12003 les di, [bp+006h] ; c4 7e 06 … … 11983 12008 add ax, 00800h ; 05 00 08 11984 12009 mov word [bp+008h], ax ; 89 46 08 11985 jmp short 07e 73h ; eb d712010 jmp short 07ea1h ; eb d7 11986 12011 mov cx, bx ; 89 d9 11987 12012 les di, [bp+006h] ; c4 7e 06 … … 11994 12019 pop bp ; 5d 11995 12020 retn 0000ah ; c2 0a 00 11996 scsi_cmd_data_out_: ; 0xf7e b0LB 0xd512021 scsi_cmd_data_out_: ; 0xf7ede LB 0xd5 11997 12022 push bp ; 55 11998 12023 mov bp, sp ; 89 e5 … … 12010 12035 ; sub ah, ah ; 2a e4 12011 12036 test AL, strict byte 001h ; a8 01 12012 jne short 07e c6h ; 75 f712037 jne short 07ef4h ; 75 f7 12013 12038 mov al, byte [bp+004h] ; 8a 46 04 12014 12039 cmp AL, strict byte 010h ; 3c 10 12015 jne short 07 edah ; 75 0412040 jne short 07f08h ; 75 04 12016 12041 xor ax, ax ; 31 c0 12017 jmp short 07 edch ; eb 0212042 jmp short 07f0ah ; eb 02 12018 12043 xor ah, ah ; 30 e4 12019 12044 mov si, ax ; 89 c6 … … 12023 12048 shr dx, 1 ; d1 ea 12024 12049 rcr ax, 1 ; d1 d8 12025 loop 07 ee6h ; e2 fa12050 loop 07f14h ; e2 fa 12026 12051 mov cx, ax ; 89 c1 12027 12052 and cx, 000f0h ; 81 e1 f0 00 … … 12041 12066 shr dx, 1 ; d1 ea 12042 12067 rcr ax, 1 ; d1 d8 12043 loop 07f 0bh ; e2 fa12068 loop 07f39h ; e2 fa 12044 12069 mov dx, di ; 89 fa 12045 12070 out DX, AL ; ee … … 12048 12073 xor ah, ah ; 30 e4 12049 12074 cmp cx, ax ; 39 c1 12050 jnc short 07f 2dh ; 73 0e12075 jnc short 07f5bh ; 73 0e 12051 12076 les si, [bp-00ah] ; c4 76 f6 12052 12077 add si, cx ; 01 ce … … 12055 12080 out DX, AL ; ee 12056 12081 inc cx ; 41 12057 jmp short 07f 16h ; eb e912082 jmp short 07f44h ; eb e9 12058 12083 lea dx, [di+001h] ; 8d 55 01 12059 12084 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12060 jne short 07f 3ch ; 75 0612085 jne short 07f6ah ; 75 06 12061 12086 cmp bx, 08000h ; 81 fb 00 80 12062 jbe short 07f 57h ; 76 1b12087 jbe short 07f85h ; 76 1b 12063 12088 mov cx, 08000h ; b9 00 80 12064 12089 les si, [bp+006h] ; c4 76 06 … … 12070 12095 add ax, 00800h ; 05 00 08 12071 12096 mov word [bp+008h], ax ; 89 46 08 12072 jmp short 07f 2dh ; eb d612097 jmp short 07f5bh ; eb d6 12073 12098 mov cx, bx ; 89 d9 12074 12099 les si, [bp+006h] ; c4 76 06 … … 12080 12105 ; sub ah, ah ; 2a e4 12081 12106 test AL, strict byte 001h ; a8 01 12082 jne short 07f 5fh ; 75 f712107 jne short 07f8dh ; 75 f7 12083 12108 test AL, strict byte 002h ; a8 02 12084 je short 07f 7ah ; 74 0e12109 je short 07fa8h ; 74 0e 12085 12110 lea dx, [di+003h] ; 8d 55 03 12086 12111 xor al, al ; 30 c0 … … 12090 12115 ; sub ah, ah ; 2a e4 12091 12116 mov ax, strict word 00004h ; b8 04 00 12092 jmp short 07f 7ch ; eb 0212117 jmp short 07faah ; eb 02 12093 12118 xor ax, ax ; 31 c0 12094 12119 lea sp, [bp-004h] ; 8d 66 fc … … 12097 12122 pop bp ; 5d 12098 12123 retn 0000ah ; c2 0a 00 12099 @scsi_read_sectors: ; 0xf7f 85LB 0xe012124 @scsi_read_sectors: ; 0xf7fb3 LB 0xe0 12100 12125 push bp ; 55 12101 12126 mov bp, sp ; 89 e5 … … 12109 12134 mov byte [bp-006h], al ; 88 46 fa 12110 12135 cmp AL, strict byte 004h ; 3c 04 12111 jbe short 07f b1h ; 76 1112136 jbe short 07fdfh ; 76 11 12112 12137 xor ah, ah ; 30 e4 12113 12138 push ax ; 50 … … 12115 12140 push 00b30h ; 68 30 0b 12116 12141 push strict byte 00007h ; 6a 07 12117 call 01966h ; e8 b89912142 call 01966h ; e8 8a 99 12118 12143 add sp, strict byte 00008h ; 83 c4 08 12119 12144 mov es, [bp+006h] ; 8e 46 06 … … 12155 12180 sal word [bp-00ah], 1 ; d1 66 f6 12156 12181 rcl word [bp-008h], 1 ; d1 56 f8 12157 loop 080 1bh ; e2 f812182 loop 08049h ; e2 f8 12158 12183 push word [bp-008h] ; ff 76 f8 12159 12184 push word [bp-00ah] ; ff 76 f6 … … 12164 12189 mov cx, ss ; 8c d1 12165 12190 lea bx, [bp-01ah] ; 8d 5e e6 12166 call 07 ddbh ; e8 9e fd12191 call 07e09h ; e8 9e fd 12167 12192 mov ah, al ; 88 c4 12168 12193 test al, al ; 84 c0 12169 jne short 080 58h ; 75 1512194 jne short 08086h ; 75 15 12170 12195 mov es, [bp+006h] ; 8e 46 06 12171 12196 mov word [es:si+018h], di ; 26 89 7c 18 … … 12181 12206 pop bp ; 5d 12182 12207 retn 00004h ; c2 04 00 12183 @scsi_write_sectors: ; 0xf80 65LB 0xe012208 @scsi_write_sectors: ; 0xf8093 LB 0xe0 12184 12209 push bp ; 55 12185 12210 mov bp, sp ; 89 e5 … … 12193 12218 mov byte [bp-006h], al ; 88 46 fa 12194 12219 cmp AL, strict byte 004h ; 3c 04 12195 jbe short 080 91h ; 76 1112220 jbe short 080bfh ; 76 11 12196 12221 xor ah, ah ; 30 e4 12197 12222 push ax ; 50 … … 12199 12224 push 00b30h ; 68 30 0b 12200 12225 push strict byte 00007h ; 6a 07 12201 call 01966h ; e8 d89812226 call 01966h ; e8 aa 98 12202 12227 add sp, strict byte 00008h ; 83 c4 08 12203 12228 mov es, [bp+006h] ; 8e 46 06 … … 12239 12264 sal word [bp-00ah], 1 ; d1 66 f6 12240 12265 rcl word [bp-008h], 1 ; d1 56 f8 12241 loop 08 0fbh ; e2 f812266 loop 08129h ; e2 f8 12242 12267 push word [bp-008h] ; ff 76 f8 12243 12268 push word [bp-00ah] ; ff 76 f6 … … 12248 12273 mov cx, ss ; 8c d1 12249 12274 lea bx, [bp-01ah] ; 8d 5e e6 12250 call 07e b0h ; e8 93 fd12275 call 07edeh ; e8 93 fd 12251 12276 mov ah, al ; 88 c4 12252 12277 test al, al ; 84 c0 12253 jne short 081 38h ; 75 1512278 jne short 08166h ; 75 15 12254 12279 mov es, [bp+006h] ; 8e 46 06 12255 12280 mov word [es:si+018h], di ; 26 89 7c 18 … … 12265 12290 pop bp ; 5d 12266 12291 retn 00004h ; c2 04 00 12267 scsi_cmd_packet_: ; 0xf81 45LB 0x16812292 scsi_cmd_packet_: ; 0xf8173 LB 0x168 12268 12293 push bp ; 55 12269 12294 mov bp, sp ; 89 e5 … … 12277 12302 mov dx, strict word 0000eh ; ba 0e 00 12278 12303 mov ax, strict word 00040h ; b8 40 00 12279 call 0166ch ; e8 0b 9512304 call 0166ch ; e8 dd 94 12280 12305 mov si, 00122h ; be 22 01 12281 12306 mov word [bp-00ah], ax ; 89 46 f6 12282 12307 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12283 jne short 081 8ch ; 75 1f12308 jne short 081bah ; 75 1f 12284 12309 mov bx, 00da0h ; bb a0 0d 12285 12310 mov cx, ds ; 8c d9 12286 12311 mov ax, strict word 00004h ; b8 04 00 12287 call 01923h ; e8 ab9712312 call 01923h ; e8 7d 97 12288 12313 push 00b62h ; 68 62 0b 12289 12314 push 00b72h ; 68 72 0b 12290 12315 push strict byte 00004h ; 6a 04 12291 call 01966h ; e8 e39712316 call 01966h ; e8 b5 97 12292 12317 add sp, strict byte 00006h ; 83 c4 06 12293 12318 mov dx, strict word 00001h ; ba 01 00 12294 jmp near 082 a2h ; e9 16 0112319 jmp near 082d0h ; e9 16 01 12295 12320 sub di, strict byte 00008h ; 83 ef 08 12296 12321 sal di, 002h ; c1 e7 02 … … 12306 12331 ; sub ah, ah ; 2a e4 12307 12332 test AL, strict byte 001h ; a8 01 12308 jne short 081 a8h ; 75 f712333 jne short 081d6h ; 75 f7 12309 12334 xor ax, ax ; 31 c0 12310 12335 mov dx, word [bp+006h] ; 8b 56 06 … … 12322 12347 shr dx, 1 ; d1 ea 12323 12348 rcr ax, 1 ; d1 d8 12324 loop 08 1d3h ; e2 fa12349 loop 08201h ; e2 fa 12325 12350 and ax, 000f0h ; 25 f0 00 12326 12351 mov cl, byte [bp-006h] ; 8a 4e fa … … 12341 12366 shr dx, 1 ; d1 ea 12342 12367 rcr ax, 1 ; d1 d8 12343 loop 08 1fbh ; e2 fa12368 loop 08229h ; e2 fa 12344 12369 mov dx, bx ; 89 da 12345 12370 out DX, AL ; ee … … 12348 12373 xor ah, ah ; 30 e4 12349 12374 cmp cx, ax ; 39 c1 12350 jnc short 082 1dh ; 73 0e12375 jnc short 0824bh ; 73 0e 12351 12376 les di, [bp-00eh] ; c4 7e f2 12352 12377 add di, cx ; 01 cf … … 12355 12380 out DX, AL ; ee 12356 12381 inc cx ; 41 12357 jmp short 082 06h ; eb e912382 jmp short 08234h ; eb e9 12358 12383 mov dx, bx ; 89 da 12359 12384 in AL, DX ; ec … … 12361 12386 ; sub ah, ah ; 2a e4 12362 12387 test AL, strict byte 001h ; a8 01 12363 jne short 082 1dh ; 75 f712388 jne short 0824bh ; 75 f7 12364 12389 test AL, strict byte 002h ; a8 02 12365 je short 082 38h ; 74 0e12390 je short 08266h ; 74 0e 12366 12391 lea dx, [bx+003h] ; 8d 57 03 12367 12392 xor al, al ; 30 c0 … … 12371 12396 ; sub ah, ah ; 2a e4 12372 12397 mov dx, strict word 00003h ; ba 03 00 12373 jmp short 082 a2h ; eb 6a12398 jmp short 082d0h ; eb 6a 12374 12399 mov ax, word [bp+004h] ; 8b 46 04 12375 12400 test ax, ax ; 85 c0 12376 je short 082 47h ; 74 0812401 je short 08275h ; 74 08 12377 12402 lea dx, [bx+001h] ; 8d 57 01 12378 12403 mov cx, ax ; 89 c1 12379 12404 in AL, DX ; ec 12380 loop 082 44h ; e2 fd12405 loop 08272h ; e2 fd 12381 12406 mov ax, word [bp+006h] ; 8b 46 06 12382 12407 mov es, [bp-00ah] ; 8e 46 f6 … … 12386 12411 lea ax, [bx+001h] ; 8d 47 01 12387 12412 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12388 jne short 082 68h ; 75 0712413 jne short 08296h ; 75 07 12389 12414 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12390 jbe short 082 85h ; 76 1d12415 jbe short 082b3h ; 76 1d 12391 12416 mov dx, ax ; 89 c2 12392 12417 mov cx, 08000h ; b9 00 80 … … 12398 12423 add ax, 00800h ; 05 00 08 12399 12424 mov word [bp+00eh], ax ; 89 46 0e 12400 jmp short 082 58h ; eb d312425 jmp short 08286h ; eb d3 12401 12426 mov dx, ax ; 89 c2 12402 12427 mov cx, word [bp+006h] ; 8b 4e 06 … … 12405 12430 mov es, [bp-00ah] ; 8e 46 f6 12406 12431 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12407 je short 082 a0h ; 74 0712432 je short 082ceh ; 74 07 12408 12433 mov cx, word [es:si+020h] ; 26 8b 4c 20 12409 12434 in AL, DX ; ec 12410 loop 082 9dh ; e2 fd12435 loop 082cbh ; e2 fd 12411 12436 xor dx, dx ; 31 d2 12412 12437 mov ax, dx ; 89 d0 … … 12416 12441 pop bp ; 5d 12417 12442 retn 0000ch ; c2 0c 00 12418 scsi_enumerate_attached_devices_: ; 0xf82 adLB 0x4a612443 scsi_enumerate_attached_devices_: ; 0xf82db LB 0x4a6 12419 12444 push bp ; 55 12420 12445 mov bp, sp ; 89 e5 … … 12428 12453 mov dx, strict word 0000eh ; ba 0e 00 12429 12454 mov ax, strict word 00040h ; b8 40 00 12430 call 0166ch ; e8 a99312455 call 0166ch ; e8 7b 93 12431 12456 mov di, 00122h ; bf 22 01 12432 12457 mov word [bp-020h], ax ; 89 46 e0 12433 12458 mov word [bp-022h], strict word 00000h ; c7 46 de 00 00 12434 jmp near 086 d1h ; e9 00 0412459 jmp near 086ffh ; e9 00 04 12435 12460 cmp AL, strict byte 004h ; 3c 04 12436 jc short 08 2d8h ; 72 0312437 jmp near 087 49h ; e9 71 0412461 jc short 08306h ; 72 03 12462 jmp near 08777h ; e9 71 04 12438 12463 mov cx, strict word 00010h ; b9 10 00 12439 12464 xor bx, bx ; 31 db 12440 12465 mov dx, ss ; 8c d2 12441 12466 lea ax, [bp-046h] ; 8d 46 ba 12442 call 0a0 00h ; e8 1b1d12467 call 0a030h ; e8 1d 1d 12443 12468 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12444 12469 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12455 12480 lea bx, [bp-046h] ; 8d 5e ba 12456 12481 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12457 call 07 ddbh ; e8 cd fa12482 call 07e09h ; e8 cd fa 12458 12483 test al, al ; 84 c0 12459 je short 083 20h ; 74 0e12484 je short 0834eh ; 74 0e 12460 12485 push 00b92h ; 68 92 0b 12461 12486 push 00bcbh ; 68 cb 0b 12462 12487 push strict byte 00007h ; 6a 07 12463 call 01966h ; e8 499612488 call 01966h ; e8 1b 96 12464 12489 add sp, strict byte 00006h ; 83 c4 06 12465 12490 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12493 12518 sal ax, 1 ; d1 e0 12494 12519 rcl dx, 1 ; d1 d2 12495 loop 083 6fh ; e2 fa12520 loop 0839dh ; e2 fa 12496 12521 or bx, ax ; 09 c3 12497 12522 or dx, si ; 09 f2 … … 12501 12526 mov word [bp-028h], bx ; 89 5e d8 12502 12527 test dx, dx ; 85 d2 12503 jne short 083 8eh ; 75 0612528 jne short 083bch ; 75 06 12504 12529 cmp bx, 00200h ; 81 fb 00 02 12505 je short 083 aeh ; 74 2012530 je short 083dch ; 74 20 12506 12531 mov bx, 00da0h ; bb a0 0d 12507 12532 mov cx, ds ; 8c d9 12508 12533 mov ax, strict word 00004h ; b8 04 00 12509 call 01923h ; e8 8a9512534 call 01923h ; e8 5c 95 12510 12535 push dx ; 52 12511 12536 push word [bp-028h] ; ff 76 d8 … … 12513 12538 push 00beah ; 68 ea 0b 12514 12539 push strict byte 00004h ; 6a 04 12515 call 01966h ; e8 be9512540 call 01966h ; e8 90 95 12516 12541 add sp, strict byte 0000ah ; 83 c4 0a 12517 jmp near 086 c5h ; e9 17 0312542 jmp near 086f3h ; e9 17 03 12518 12543 mov al, byte [bp-00ch] ; 8a 46 f4 12519 12544 cmp AL, strict byte 001h ; 3c 01 12520 jc short 083 c1h ; 72 0c12521 jbe short 083 c9h ; 76 1212545 jc short 083efh ; 72 0c 12546 jbe short 083f7h ; 76 12 12522 12547 cmp AL, strict byte 003h ; 3c 03 12523 je short 083 d1h ; 74 1612548 je short 083ffh ; 74 16 12524 12549 cmp AL, strict byte 002h ; 3c 02 12525 je short 083 cdh ; 74 0e12526 jmp short 084 1ah ; eb 5912550 je short 083fbh ; 74 0e 12551 jmp short 08448h ; eb 59 12527 12552 test al, al ; 84 c0 12528 jne short 084 1ah ; 75 5512553 jne short 08448h ; 75 55 12529 12554 mov BL, strict byte 090h ; b3 90 12530 jmp short 08 3d3h ; eb 0a12555 jmp short 08401h ; eb 0a 12531 12556 mov BL, strict byte 098h ; b3 98 12532 jmp short 08 3d3h ; eb 0612557 jmp short 08401h ; eb 06 12533 12558 mov BL, strict byte 0a0h ; b3 a0 12534 jmp short 08 3d3h ; eb 0212559 jmp short 08401h ; eb 02 12535 12560 mov BL, strict byte 0a8h ; b3 a8 12536 12561 mov cl, bl ; 88 d9 … … 12538 12563 xor ch, ch ; 30 ed 12539 12564 mov ax, cx ; 89 c8 12540 call 016ach ; e8 cd9212565 call 016ach ; e8 9f 92 12541 12566 test al, al ; 84 c0 12542 je short 084 1ah ; 74 3712567 je short 08448h ; 74 37 12543 12568 mov al, bl ; 88 d8 12544 12569 db 0feh, 0c0h 12545 12570 ; inc al ; fe c0 12546 12571 xor ah, ah ; 30 e4 12547 call 016ach ; e8 c09212572 call 016ach ; e8 92 92 12548 12573 xor ah, ah ; 30 e4 12549 12574 mov dx, ax ; 89 c2 12550 12575 sal dx, 008h ; c1 e2 08 12551 12576 mov al, bl ; 88 d8 12552 call 016ach ; e8 b49212577 call 016ach ; e8 86 92 12553 12578 xor ah, ah ; 30 e4 12554 12579 add ax, dx ; 01 d0 … … 12558 12583 add AL, strict byte 002h ; 04 02 12559 12584 xor ah, ah ; 30 e4 12560 call 016ach ; e8 a49212585 call 016ach ; e8 76 92 12561 12586 xor ah, ah ; 30 e4 12562 12587 mov word [bp-018h], ax ; 89 46 e8 12563 12588 mov ax, cx ; 89 c8 12564 call 016ach ; e8 9a9212589 call 016ach ; e8 6c 92 12565 12590 xor ah, ah ; 30 e4 12566 12591 mov word [bp-026h], ax ; 89 46 da 12567 jmp near 085 08h ; e9 ee 0012592 jmp near 08536h ; e9 ee 00 12568 12593 mov ax, word [bp-012h] ; 8b 46 ee 12569 12594 mov bx, word [bp-010h] ; 8b 5e f0 … … 12571 12596 mov dx, word [bp-014h] ; 8b 56 ec 12572 12597 mov si, strict word 0000ch ; be 0c 00 12573 call 0 9fe0h ; e8 b41b12598 call 0a010h ; e8 b6 1b 12574 12599 mov word [bp-02ah], ax ; 89 46 d6 12575 12600 mov word [bp-016h], bx ; 89 5e ea … … 12578 12603 mov ax, word [bp-012h] ; 8b 46 ee 12579 12604 test ax, ax ; 85 c0 12580 jnbe short 084 54h ; 77 1512581 je short 084 44h ; 74 0312582 jmp near 084 c9h ; e9 85 0012605 jnbe short 08482h ; 77 15 12606 je short 08472h ; 74 03 12607 jmp near 084f7h ; e9 85 00 12583 12608 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12584 jnbe short 084 54h ; 77 0a12585 jne short 084 41h ; 75 f512609 jnbe short 08482h ; 77 0a 12610 jne short 0846fh ; 75 f5 12586 12611 cmp word [bp-01ch], strict byte 00040h ; 83 7e e4 40 12587 jnbe short 084 54h ; 77 0212588 jne short 084 c9h ; 75 7512612 jnbe short 08482h ; 77 02 12613 jne short 084f7h ; 75 75 12589 12614 mov word [bp-018h], 000ffh ; c7 46 e8 ff 00 12590 12615 mov word [bp-026h], strict word 0003fh ; c7 46 da 3f 00 … … 12593 12618 mov dx, word [bp-014h] ; 8b 56 ec 12594 12619 mov si, strict word 00006h ; be 06 00 12595 call 0 9fe0h ; e8 731b12620 call 0a010h ; e8 75 1b 12596 12621 mov si, word [bp-01eh] ; 8b 76 e2 12597 12622 add si, dx ; 01 d6 … … 12611 12636 mov dx, si ; 89 f2 12612 12637 mov si, strict word 00008h ; be 08 00 12613 call 0 9fe0h ; e8 431b12638 call 0a010h ; e8 45 1b 12614 12639 mov word [bp-02eh], bx ; 89 5e d2 12615 12640 mov word [bp-030h], cx ; 89 4e d0 … … 12620 12645 mov dx, word [bp-036h] ; 8b 56 ca 12621 12646 mov si, strict word 00010h ; be 10 00 12622 call 0 9fe0h ; e8 281b12647 call 0a010h ; e8 2a 1b 12623 12648 mov si, word [bp-032h] ; 8b 76 ce 12624 12649 add si, dx ; 01 d6 … … 12627 12652 mov ax, word [bp-02eh] ; 8b 46 d2 12628 12653 adc ax, bx ; 11 d8 12629 jmp short 085 08h ; eb 3f12654 jmp short 08536h ; eb 3f 12630 12655 test ax, ax ; 85 c0 12631 jnbe short 08 4dfh ; 77 1212632 jne short 08 4ebh ; 75 1c12656 jnbe short 0850dh ; 77 12 12657 jne short 08519h ; 75 1c 12633 12658 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 12634 jnbe short 08 4dfh ; 77 0a12635 jne short 08 4ebh ; 75 1412659 jnbe short 0850dh ; 77 0a 12660 jne short 08519h ; 75 14 12636 12661 cmp word [bp-01ch], strict byte 00020h ; 83 7e e4 20 12637 jnbe short 08 4dfh ; 77 0212638 jne short 08 4ebh ; 75 0c12662 jnbe short 0850dh ; 77 02 12663 jne short 08519h ; 75 0c 12639 12664 mov word [bp-018h], 00080h ; c7 46 e8 80 00 12640 12665 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 12641 jmp short 085 04h ; eb 1912666 jmp short 08532h ; eb 19 12642 12667 mov word [bp-018h], strict word 00040h ; c7 46 e8 40 00 12643 12668 mov word [bp-026h], strict word 00020h ; c7 46 da 20 00 … … 12646 12671 mov dx, word [bp-014h] ; 8b 56 ec 12647 12672 mov si, strict word 0000bh ; be 0b 00 12648 call 0 9fe0h ; e8 dc1a12673 call 0a010h ; e8 de 1a 12649 12674 mov si, dx ; 89 d6 12650 12675 mov dx, cx ; 89 ca … … 12681 12706 mov word [es:bx+034h], ax ; 26 89 47 34 12682 12707 test dx, dx ; 85 d2 12683 jne short 085 7ah ; 75 0612708 jne short 085a8h ; 75 06 12684 12709 cmp si, 00400h ; 81 fe 00 04 12685 jbe short 085 88h ; 76 0e12710 jbe short 085b6h ; 76 0e 12686 12711 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12687 12712 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12688 jmp short 085 90h ; eb 0812713 jmp short 085beh ; eb 08 12689 12714 mov word [es:bx+02ch], si ; 26 89 77 2c 12690 12715 mov word [es:bx+032h], si ; 26 89 77 32 … … 12692 12717 mov cx, ds ; 8c d9 12693 12718 mov ax, strict word 00004h ; b8 04 00 12694 call 01923h ; e8 889312719 call 01923h ; e8 5a 93 12695 12720 push word [bp-012h] ; ff 76 ee 12696 12721 push word [bp-010h] ; ff 76 f0 … … 12707 12732 push 00c18h ; 68 18 0c 12708 12733 push strict byte 00004h ; 6a 04 12709 call 01966h ; e8 a69312734 call 01966h ; e8 78 93 12710 12735 add sp, strict byte 00018h ; 83 c4 18 12711 12736 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12735 12760 mov dx, strict word 00075h ; ba 75 00 12736 12761 mov ax, strict word 00040h ; b8 40 00 12737 call 01650h ; e8 3c9012762 call 01650h ; e8 0e 90 12738 12763 mov bl, al ; 88 c3 12739 12764 db 0feh, 0c3h … … 12742 12767 mov dx, strict word 00075h ; ba 75 00 12743 12768 mov ax, strict word 00040h ; b8 40 00 12744 call 0165eh ; e8 3b9012769 call 0165eh ; e8 0d 90 12745 12770 inc byte [bp-00ch] ; fe 46 f4 12746 jmp near 086 bah ; e9 91 0012771 jmp near 086e8h ; e9 91 00 12747 12772 mov bx, 00da0h ; bb a0 0d 12748 12773 mov cx, ds ; 8c d9 12749 12774 mov ax, strict word 00004h ; b8 04 00 12750 call 01923h ; e8 ef9212775 call 01923h ; e8 c1 92 12751 12776 push word [bp-022h] ; ff 76 de 12752 12777 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12755 12780 push 00c46h ; 68 46 0c 12756 12781 push strict byte 00004h ; 6a 04 12757 call 01966h ; e8 21 9312782 call 01966h ; e8 f3 92 12758 12783 add sp, strict byte 00008h ; 83 c4 08 12759 12784 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12761 12786 mov byte [bp-00eh], al ; 88 46 f2 12762 12787 test byte [bp-00245h], 080h ; f6 86 bb fd 80 12763 je short 086 5ch ; 74 0512788 je short 0868ah ; 74 05 12764 12789 mov dx, strict word 00001h ; ba 01 00 12765 jmp short 086 5eh ; eb 0212790 jmp short 0868ch ; eb 02 12766 12791 xor dx, dx ; 31 d2 12767 12792 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12799 12824 inc word [bp-022h] ; ff 46 de 12800 12825 cmp word [bp-022h], strict byte 00010h ; 83 7e de 10 12801 jl short 086 d1h ; 7c 0312802 jmp near 087 49h ; e9 78 0012826 jl short 086ffh ; 7c 03 12827 jmp near 08777h ; e9 78 00 12803 12828 mov byte [bp-046h], 012h ; c6 46 ba 12 12804 12829 xor al, al ; 30 c0 … … 12819 12844 lea bx, [bp-046h] ; 8d 5e ba 12820 12845 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12821 call 07 ddbh ; e8 d7 f612846 call 07e09h ; e8 d7 f6 12822 12847 test al, al ; 84 c0 12823 je short 087 16h ; 74 0e12848 je short 08744h ; 74 0e 12824 12849 push 00b92h ; 68 92 0b 12825 12850 push 00bb2h ; 68 b2 0b 12826 12851 push strict byte 00007h ; 6a 07 12827 call 01966h ; e8 539212852 call 01966h ; e8 25 92 12828 12853 add sp, strict byte 00006h ; 83 c4 06 12829 12854 mov es, [bp-020h] ; 8e 46 e0 … … 12831 12856 mov byte [bp-00ch], al ; 88 46 f4 12832 12857 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12833 jne short 087 32h ; 75 0a12858 jne short 08760h ; 75 0a 12834 12859 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12835 jne short 087 32h ; 75 0312836 jmp near 082 d1h ; e9 9f fb12860 jne short 08760h ; 75 03 12861 jmp near 082ffh ; e9 9f fb 12837 12862 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12838 jne short 086 bah ; 75 8112863 jne short 086e8h ; 75 81 12839 12864 mov al, byte [bp-00246h] ; 8a 86 ba fd 12840 12865 and AL, strict byte 01fh ; 24 1f 12841 12866 cmp AL, strict byte 005h ; 3c 05 12842 jne short 087 46h ; 75 0312843 jmp near 086 29h ; e9 e3 fe12844 jmp near 086 bah ; e9 71 ff12867 jne short 08774h ; 75 03 12868 jmp near 08657h ; e9 e3 fe 12869 jmp near 086e8h ; e9 71 ff 12845 12870 lea sp, [bp-00ah] ; 8d 66 f6 12846 12871 pop di ; 5f … … 12851 12876 pop bp ; 5d 12852 12877 retn ; c3 12853 _scsi_init: ; 0xf87 53LB 0x6612878 _scsi_init: ; 0xf8781 LB 0x66 12854 12879 push bp ; 55 12855 12880 mov bp, sp ; 89 e5 12856 12881 mov dx, strict word 0000eh ; ba 0e 00 12857 12882 mov ax, strict word 00040h ; b8 40 00 12858 call 0166ch ; e8 0d 8f12883 call 0166ch ; e8 df 8e 12859 12884 mov bx, 00122h ; bb 22 01 12860 12885 mov es, ax ; 8e c0 … … 12867 12892 ; sub ah, ah ; 2a e4 12868 12893 cmp AL, strict byte 055h ; 3c 55 12869 jne short 087 83h ; 75 0c12894 jne short 087b1h ; 75 0c 12870 12895 xor al, al ; 30 c0 12871 12896 mov dx, 00433h ; ba 33 04 12872 12897 out DX, AL ; ee 12873 12898 mov ax, 00430h ; b8 30 04 12874 call 082 adh ; e8 2a fb12899 call 082dbh ; e8 2a fb 12875 12900 mov AL, strict byte 055h ; b0 55 12876 12901 mov dx, 00436h ; ba 36 04 … … 12880 12905 ; sub ah, ah ; 2a e4 12881 12906 cmp AL, strict byte 055h ; 3c 55 12882 jne short 087 9ch ; 75 0c12907 jne short 087cah ; 75 0c 12883 12908 xor al, al ; 30 c0 12884 12909 mov dx, 00437h ; ba 37 04 12885 12910 out DX, AL ; ee 12886 12911 mov ax, 00434h ; b8 34 04 12887 call 082 adh ; e8 11 fb12912 call 082dbh ; e8 11 fb 12888 12913 mov AL, strict byte 055h ; b0 55 12889 12914 mov dx, 0043ah ; ba 3a 04 … … 12893 12918 ; sub ah, ah ; 2a e4 12894 12919 cmp AL, strict byte 055h ; 3c 55 12895 jne short 087 b5h ; 75 0c12920 jne short 087e3h ; 75 0c 12896 12921 xor al, al ; 30 c0 12897 12922 mov dx, 0043bh ; ba 3b 04 12898 12923 out DX, AL ; ee 12899 12924 mov ax, 00438h ; b8 38 04 12900 call 082 adh ; e8 f8 fa12925 call 082dbh ; e8 f8 fa 12901 12926 mov sp, bp ; 89 ec 12902 12927 pop bp ; 5d 12903 12928 retn ; c3 12904 ahci_ctrl_extract_bits_: ; 0xf87 b9LB 0x1c12929 ahci_ctrl_extract_bits_: ; 0xf87e7 LB 0x1c 12905 12930 push si ; 56 12906 12931 push bp ; 55 … … 12911 12936 mov cl, byte [bp+006h] ; 8a 4e 06 12912 12937 xor ch, ch ; 30 ed 12913 jcxz 087 d0h ; e3 0612938 jcxz 087feh ; e3 06 12914 12939 shr dx, 1 ; d1 ea 12915 12940 rcr ax, 1 ; d1 d8 12916 loop 087 cah ; e2 fa12941 loop 087f8h ; e2 fa 12917 12942 pop bp ; 5d 12918 12943 pop si ; 5e 12919 12944 retn 00002h ; c2 02 00 12920 ahci_addr_to_phys_: ; 0xf8 7d5LB 0x1e12945 ahci_addr_to_phys_: ; 0xf8803 LB 0x1e 12921 12946 push bx ; 53 12922 12947 push cx ; 51 … … 12929 12954 sal ax, 1 ; d1 e0 12930 12955 rcl dx, 1 ; d1 d2 12931 loop 08 7e3h ; e2 fa12956 loop 08811h ; e2 fa 12932 12957 xor cx, cx ; 31 c9 12933 12958 add ax, bx ; 01 d8 … … 12937 12962 pop bx ; 5b 12938 12963 retn ; c3 12939 ahci_port_cmd_sync_: ; 0xf8 7f3LB 0x15612964 ahci_port_cmd_sync_: ; 0xf8821 LB 0x156 12940 12965 push bp ; 55 12941 12966 mov bp, sp ; 89 e5 … … 12952 12977 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12953 12978 cmp AL, strict byte 0ffh ; 3c ff 12954 jne short 088 16h ; 75 0312955 jmp near 089 41h ; e9 2b 0112979 jne short 08844h ; 75 03 12980 jmp near 0896fh ; e9 2b 01 12956 12981 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 12957 12982 xor ah, ah ; 30 e4 … … 12966 12991 lea ax, [si+00080h] ; 8d 84 80 00 12967 12992 mov dx, cx ; 89 ca 12968 call 08 7d5h ; e8 92 ff12993 call 08803h ; e8 92 ff 12969 12994 mov es, cx ; 8e c1 12970 12995 mov word [es:si+008h], ax ; 26 89 44 08 … … 13032 13057 xchg dx, ax ; 92 13033 13058 test dh, 040h ; f6 c6 40 13034 jne short 08 8d4h ; 75 0413059 jne short 08902h ; 75 04 13035 13060 test AL, strict byte 001h ; a8 01 13036 je short 08 8d8h ; 74 0413061 je short 08906h ; 74 04 13037 13062 mov AL, strict byte 001h ; b0 01 13038 jmp short 08 8dah ; eb 0213063 jmp short 08908h ; eb 02 13039 13064 xor al, al ; 30 c0 13040 13065 test al, al ; 84 c0 13041 je short 088 a7h ; 74 c913066 je short 088d5h ; 74 c9 13042 13067 mov al, byte [bp-008h] ; 8a 46 f8 13043 13068 xor ah, ah ; 30 e4 … … 13095 13120 pop bp ; 5d 13096 13121 retn ; c3 13097 ahci_cmd_data_: ; 0xf89 49LB 0x26713122 ahci_cmd_data_: ; 0xf8977 LB 0x267 13098 13123 push bp ; 55 13099 13124 mov bp, sp ; 89 e5 … … 13120 13145 mov ax, 00080h ; b8 80 00 13121 13146 mov dx, word [bp-00ah] ; 8b 56 f6 13122 call 0a0 00h ; e8 791613147 call 0a030h ; e8 7b 16 13123 13148 mov es, [bp-00ah] ; 8e 46 f6 13124 13149 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13138 13163 mov dx, word [es:si] ; 26 8b 14 13139 13164 mov si, strict word 00008h ; be 08 00 13140 call 0 9fe0h ; e8 151613165 call 0a010h ; e8 17 16 13141 13166 mov es, [bp-00ah] ; 8e 46 f6 13142 13167 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13149 13174 mov dx, word [es:si] ; 26 8b 14 13150 13175 mov si, strict word 00010h ; be 10 00 13151 call 0 9fe0h ; e8 ef1513176 call 0a010h ; e8 f1 15 13152 13177 mov es, [bp-00ah] ; 8e 46 f6 13153 13178 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13161 13186 mov dx, word [es:si] ; 26 8b 14 13162 13187 mov si, strict word 00018h ; be 18 00 13163 call 0 9fe0h ; e8 c31513188 call 0a010h ; e8 c5 15 13164 13189 mov es, [bp-00ah] ; 8e 46 f6 13165 13190 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13172 13197 mov dx, word [es:si] ; 26 8b 14 13173 13198 mov si, strict word 00020h ; be 20 00 13174 call 0 9fe0h ; e8 9d1513199 call 0a010h ; e8 9f 15 13175 13200 mov es, [bp-00ah] ; 8e 46 f6 13176 13201 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13183 13208 mov dx, word [es:si] ; 26 8b 14 13184 13209 mov si, strict word 00028h ; be 28 00 13185 call 0 9fe0h ; e8 771513210 call 0a010h ; e8 79 15 13186 13211 mov es, [bp-00ah] ; 8e 46 f6 13187 13212 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13197 13222 mov bx, word [bp-010h] ; 8b 5e f0 13198 13223 xor cx, cx ; 31 c9 13199 call 09f 90h ; e8 f21413224 call 09fc0h ; e8 f4 14 13200 13225 push dx ; 52 13201 13226 push ax ; 50 … … 13207 13232 mov ax, 0026ah ; b8 6a 02 13208 13233 mov dx, word [bp-00ah] ; 8b 56 f6 13209 call 09 ee5h ; e8 2b 1413234 call 09f13h ; e8 2b 14 13210 13235 mov es, [bp-00ah] ; 8e 46 f6 13211 13236 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13230 13255 mov ax, word [es:bx+020h] ; 26 8b 47 20 13231 13256 test ax, ax ; 85 c0 13232 je short 08b 4ch ; 74 3b13257 je short 08b7ah ; 74 3b 13233 13258 dec ax ; 48 13234 13259 mov es, [bp-00ah] ; 8e 46 f6 … … 13248 13273 mov al, byte [bp-008h] ; 8a 46 f8 13249 13274 cmp AL, strict byte 035h ; 3c 35 13250 jne short 08b 59h ; 75 0613275 jne short 08b87h ; 75 06 13251 13276 mov byte [bp-008h], 040h ; c6 46 f8 40 13252 jmp short 08b 70h ; eb 1713277 jmp short 08b9eh ; eb 17 13253 13278 cmp AL, strict byte 0a0h ; 3c a0 13254 jne short 08b 6ch ; 75 0f13279 jne short 08b9ah ; 75 0f 13255 13280 or byte [bp-008h], 020h ; 80 4e f8 20 13256 13281 les bx, [bp-00eh] ; c4 5e f2 13257 13282 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13258 jmp short 08b 70h ; eb 0413283 jmp short 08b9eh ; eb 04 13259 13284 mov byte [bp-008h], 000h ; c6 46 f8 00 13260 13285 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13263 13288 mov ax, word [bp-00eh] ; 8b 46 f2 13264 13289 mov dx, word [bp-00ch] ; 8b 56 f4 13265 call 08 7f3h ; e8 71 fc13290 call 08821h ; e8 71 fc 13266 13291 mov cx, word [bp-00ch] ; 8b 4e f4 13267 13292 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13270 13295 add ax, 0026ah ; 05 6a 02 13271 13296 mov dx, cx ; 89 ca 13272 call 09f 5ch ; e8 c5 1313297 call 09f8ah ; e8 c5 13 13273 13298 mov es, cx ; 8e c1 13274 13299 mov al, byte [es:bx+003h] ; 26 8a 47 03 13275 13300 test al, al ; 84 c0 13276 je short 08b a6h ; 74 0513301 je short 08bd4h ; 74 05 13277 13302 mov ax, strict word 00004h ; b8 04 00 13278 jmp short 08b a8h ; eb 0213303 jmp short 08bd6h ; eb 02 13279 13304 xor ah, ah ; 30 e4 13280 13305 lea sp, [bp-006h] ; 8d 66 fa … … 13284 13309 pop bp ; 5d 13285 13310 retn ; c3 13286 ahci_port_deinit_current_: ; 0xf8b b0LB 0x18013311 ahci_port_deinit_current_: ; 0xf8bde LB 0x180 13287 13312 push bp ; 55 13288 13313 mov bp, sp ; 89 e5 … … 13299 13324 mov byte [bp-00ah], al ; 88 46 f6 13300 13325 cmp AL, strict byte 0ffh ; 3c ff 13301 je short 08c 31h ; 74 5f13326 je short 08c5fh ; 74 5f 13302 13327 xor ah, ah ; 30 e4 13303 13328 sal ax, 007h ; c1 e0 07 … … 13343 13368 xchg dx, ax ; 92 13344 13369 test ax, 0c011h ; a9 11 c0 13345 je short 08c 34h ; 74 0713370 je short 08c62h ; 74 07 13346 13371 mov AL, strict byte 001h ; b0 01 13347 jmp short 08c 36h ; eb 0513348 jmp near 08d 27h ; e9 f3 0013372 jmp short 08c64h ; eb 05 13373 jmp near 08d55h ; e9 f3 00 13349 13374 xor al, al ; 30 c0 13350 13375 cmp AL, strict byte 001h ; 3c 01 13351 je short 08c 04h ; 74 ca13376 je short 08c32h ; 74 ca 13352 13377 mov cx, strict word 00020h ; b9 20 00 13353 13378 xor bx, bx ; 31 db 13354 13379 mov ax, di ; 89 f8 13355 13380 mov dx, word [bp-00eh] ; 8b 56 f2 13356 call 0a0 00h ; e8 b91313381 call 0a030h ; e8 bb 13 13357 13382 lea ax, [di+00080h] ; 8d 85 80 00 13358 13383 mov cx, strict word 00040h ; b9 40 00 13359 13384 xor bx, bx ; 31 db 13360 13385 mov dx, word [bp-00eh] ; 8b 56 f2 13361 call 0a0 00h ; e8 aa1313386 call 0a030h ; e8 ac 13 13362 13387 lea ax, [di+00200h] ; 8d 85 00 02 13363 13388 mov cx, strict word 00060h ; b9 60 00 13364 13389 xor bx, bx ; 31 db 13365 13390 mov dx, word [bp-00eh] ; 8b 56 f2 13366 call 0a0 00h ; e8 9b1313391 call 0a030h ; e8 9d 13 13367 13392 mov al, byte [bp-00ah] ; 8a 46 f6 13368 13393 xor ah, ah ; 30 e4 … … 13469 13494 pop bp ; 5d 13470 13495 retn ; c3 13471 ahci_port_init_: ; 0xf8d 30LB 0x24d13496 ahci_port_init_: ; 0xf8d5e LB 0x24d 13472 13497 push bp ; 55 13473 13498 mov bp, sp ; 89 e5 … … 13479 13504 mov word [bp-00ah], dx ; 89 56 f6 13480 13505 mov byte [bp-008h], bl ; 88 5e f8 13481 call 08b b0h ; e8 6c fe13506 call 08bdeh ; e8 6c fe 13482 13507 mov al, bl ; 88 d8 13483 13508 xor ah, ah ; 30 e4 … … 13528 13553 xchg dx, ax ; 92 13529 13554 test ax, 0c011h ; a9 11 c0 13530 je short 08d b5h ; 74 0413555 je short 08de3h ; 74 04 13531 13556 mov AL, strict byte 001h ; b0 01 13532 jmp short 08d b7h ; eb 0213557 jmp short 08de5h ; eb 02 13533 13558 xor al, al ; 30 c0 13534 13559 cmp AL, strict byte 001h ; 3c 01 13535 je short 08d 80h ; 74 c513560 je short 08daeh ; 74 c5 13536 13561 mov cx, strict word 00020h ; b9 20 00 13537 13562 xor bx, bx ; 31 db 13538 13563 mov ax, si ; 89 f0 13539 13564 mov dx, word [bp-00ah] ; 8b 56 f6 13540 call 0a0 00h ; e8 381213565 call 0a030h ; e8 3a 12 13541 13566 lea ax, [si+00080h] ; 8d 84 80 00 13542 13567 mov cx, strict word 00040h ; b9 40 00 13543 13568 xor bx, bx ; 31 db 13544 13569 mov dx, word [bp-00ah] ; 8b 56 f6 13545 call 0a0 00h ; e8 291213570 call 0a030h ; e8 2b 12 13546 13571 lea di, [si+00200h] ; 8d bc 00 02 13547 13572 mov cx, strict word 00060h ; b9 60 00 … … 13549 13574 mov ax, di ; 89 f8 13550 13575 mov dx, word [bp-00ah] ; 8b 56 f6 13551 call 0a0 00h ; e8 181213576 call 0a030h ; e8 1a 12 13552 13577 mov bl, byte [bp-008h] ; 8a 5e f8 13553 13578 xor bh, bh ; 30 ff … … 13567 13592 mov ax, di ; 89 f8 13568 13593 mov dx, word [bp-00ah] ; 8b 56 f6 13569 call 08 7d5h ; e8 bf f913594 call 08803h ; e8 bf f9 13570 13595 mov es, [bp-00ah] ; 8e 46 f6 13571 13596 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13612 13637 mov ax, si ; 89 f0 13613 13638 mov dx, word [bp-00ah] ; 8b 56 f6 13614 call 08 7d5h ; e8 53 f913639 call 08803h ; e8 53 f9 13615 13640 mov es, [bp-00ah] ; 8e 46 f6 13616 13641 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13717 13742 pop bp ; 5d 13718 13743 retn ; c3 13719 @ahci_read_sectors: ; 0xf8f 7dLB 0xa813744 @ahci_read_sectors: ; 0xf8fab LB 0xa8 13720 13745 push bp ; 55 13721 13746 mov bp, sp ; 89 e5 … … 13728 13753 sub bx, strict byte 0000ch ; 83 eb 0c 13729 13754 cmp bx, strict byte 00004h ; 83 fb 04 13730 jbe short 08f a3h ; 76 0f13755 jbe short 08fd1h ; 76 0f 13731 13756 push bx ; 53 13732 13757 push 00c62h ; 68 62 0c 13733 13758 push 00c74h ; 68 74 0c 13734 13759 push strict byte 00007h ; 6a 07 13735 call 01966h ; e8 c68913760 call 01966h ; e8 98 89 13736 13761 add sp, strict byte 00008h ; 83 c4 08 13737 13762 xor di, di ; 31 ff … … 13748 13773 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13749 13774 xor ax, ax ; 31 c0 13750 call 08d 30h ; e8 60 fd13775 call 08d5eh ; e8 60 fd 13751 13776 mov bx, strict word 00025h ; bb 25 00 13752 13777 mov ax, si ; 89 f0 13753 13778 mov dx, word [bp+006h] ; 8b 56 06 13754 call 089 49h ; e8 6e f913779 call 08977h ; e8 6e f9 13755 13780 mov word [bp-006h], ax ; 89 46 fa 13756 13781 mov es, [bp+006h] ; 8e 46 06 … … 13781 13806 pop bp ; 5d 13782 13807 retn 00004h ; c2 04 00 13783 @ahci_write_sectors: ; 0xf90 25LB 0x8613808 @ahci_write_sectors: ; 0xf9053 LB 0x86 13784 13809 push bp ; 55 13785 13810 mov bp, sp ; 89 e5 … … 13793 13818 sub dx, strict byte 0000ch ; 83 ea 0c 13794 13819 cmp dx, strict byte 00004h ; 83 fa 04 13795 jbe short 090 4fh ; 76 0f13820 jbe short 0907dh ; 76 0f 13796 13821 push dx ; 52 13797 13822 push 00c93h ; 68 93 0c 13798 13823 push 00c74h ; 68 74 0c 13799 13824 push strict byte 00007h ; 6a 07 13800 call 01966h ; e8 1a 8913825 call 01966h ; e8 ec 88 13801 13826 add sp, strict byte 00008h ; 83 c4 08 13802 13827 xor bx, bx ; 31 db … … 13813 13838 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13814 13839 xor ax, ax ; 31 c0 13815 call 08d 30h ; e8 b6 fc13840 call 08d5eh ; e8 b6 fc 13816 13841 mov bx, strict word 00035h ; bb 35 00 13817 13842 mov ax, si ; 89 f0 13818 13843 mov dx, cx ; 89 ca 13819 call 089 49h ; e8 c5 f813844 call 08977h ; e8 c5 f8 13820 13845 mov dx, ax ; 89 c2 13821 13846 mov es, cx ; 8e c1 … … 13832 13857 pop bp ; 5d 13833 13858 retn 00004h ; c2 04 00 13834 ahci_cmd_packet_: ; 0xf90 abLB 0x18a13859 ahci_cmd_packet_: ; 0xf90d9 LB 0x18a 13835 13860 push bp ; 55 13836 13861 mov bp, sp ; 89 e5 … … 13844 13869 mov dx, strict word 0000eh ; ba 0e 00 13845 13870 mov ax, strict word 00040h ; b8 40 00 13846 call 0166ch ; e8 a68513871 call 0166ch ; e8 78 85 13847 13872 mov si, 00122h ; be 22 01 13848 13873 mov word [bp-008h], ax ; 89 46 f8 13849 13874 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13850 jne short 09 0f1h ; 75 1f13875 jne short 0911fh ; 75 1f 13851 13876 mov bx, 00da0h ; bb a0 0d 13852 13877 mov cx, ds ; 8c d9 13853 13878 mov ax, strict word 00004h ; b8 04 00 13854 call 01923h ; e8 468813879 call 01923h ; e8 18 88 13855 13880 push 00ca6h ; 68 a6 0c 13856 13881 push 00cb6h ; 68 b6 0c 13857 13882 push strict byte 00004h ; 6a 04 13858 call 01966h ; e8 7e8813883 call 01966h ; e8 50 88 13859 13884 add sp, strict byte 00006h ; 83 c4 06 13860 13885 mov ax, strict word 00001h ; b8 01 00 13861 jmp near 092 2ch ; e9 3b 0113886 jmp near 0925ah ; e9 3b 01 13862 13887 test byte [bp+004h], 001h ; f6 46 04 01 13863 jne short 09 0ebh ; 75 f413888 jne short 09119h ; 75 f4 13864 13889 mov ax, word [bp+006h] ; 8b 46 06 13865 13890 mov dx, word [bp+008h] ; 8b 56 08 … … 13867 13892 sal ax, 1 ; d1 e0 13868 13893 rcl dx, 1 ; d1 d2 13869 loop 091 00h ; e2 fa13894 loop 0912eh ; e2 fa 13870 13895 mov es, [bp-008h] ; 8e 46 f8 13871 13896 mov word [es:si], ax ; 26 89 04 … … 13881 13906 mov dx, word [bp+008h] ; 8b 56 08 13882 13907 xor cx, cx ; 31 c9 13883 call 09f b0h ; e8 770e13908 call 09fe0h ; e8 79 0e 13884 13909 mov word [es:si+00eh], ax ; 26 89 44 0e 13885 13910 xor di, di ; 31 ff … … 13900 13925 mov bx, ax ; 89 c3 13901 13926 xor al, al ; 30 c0 13902 call 08d 30h ; e8 b8 fb13927 call 08d5eh ; e8 b8 fb 13903 13928 mov al, byte [bp-006h] ; 8a 46 fa 13904 13929 xor ah, ah ; 30 e4 … … 13908 13933 mov ax, 000c0h ; b8 c0 00 13909 13934 mov dx, word [bp-00ah] ; 8b 56 f6 13910 call 0a0 10h ; e8 830e13935 call 0a040h ; e8 85 0e 13911 13936 mov es, [bp-008h] ; 8e 46 f8 13912 13937 mov word [es:si+018h], di ; 26 89 7c 18 … … 13915 13940 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13916 13941 test ax, ax ; 85 c0 13917 je short 091 cbh ; 74 2713942 je short 091f9h ; 74 27 13918 13943 dec ax ; 48 13919 13944 mov es, [bp-00ah] ; 8e 46 f6 … … 13928 13953 mov ax, si ; 89 f0 13929 13954 mov dx, word [bp-008h] ; 8b 56 f8 13930 call 089 49h ; e8 73 f713955 call 08977h ; e8 73 f7 13931 13956 les bx, [bp-00eh] ; c4 5e f2 13932 13957 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 13955 13980 mov ax, word [es:bx+006h] ; 26 8b 47 06 13956 13981 or ax, word [es:bx+004h] ; 26 0b 47 04 13957 jne short 092 2ah ; 75 0513982 jne short 09258h ; 75 05 13958 13983 mov ax, strict word 00004h ; b8 04 00 13959 jmp short 092 2ch ; eb 0213984 jmp short 0925ah ; eb 02 13960 13985 xor ax, ax ; 31 c0 13961 13986 lea sp, [bp-004h] ; 8d 66 fc … … 13964 13989 pop bp ; 5d 13965 13990 retn 0000ch ; c2 0c 00 13966 ahci_port_detect_device_: ; 0xf92 35LB 0x4e313991 ahci_port_detect_device_: ; 0xf9263 LB 0x4e3 13967 13992 push bp ; 55 13968 13993 mov bp, sp ; 89 e5 … … 13977 14002 xor ch, ch ; 30 ed 13978 14003 mov bx, cx ; 89 cb 13979 call 08d 30h ; e8 e0 fa14004 call 08d5eh ; e8 e0 fa 13980 14005 mov dx, strict word 0000eh ; ba 0e 00 13981 14006 mov ax, strict word 00040h ; b8 40 00 13982 call 0166ch ; e8 13 8414007 call 0166ch ; e8 e5 83 13983 14008 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 13984 14009 mov word [bp-016h], ax ; 89 46 ea … … 14050 14075 mov bx, strict word 0000fh ; bb 0f 00 14051 14076 xor cx, cx ; 31 c9 14052 call 087 b9h ; e8 b5 f414077 call 087e7h ; e8 b5 f4 14053 14078 test ax, ax ; 85 c0 14054 jne short 093 0bh ; 75 0314055 jmp near 097 10h ; e9 05 0414079 jne short 09339h ; 75 03 14080 jmp near 0973eh ; e9 05 04 14056 14081 mov al, byte [bp-00ch] ; 8a 46 f4 14057 14082 xor ah, ah ; 30 e4 … … 14082 14107 mov bx, strict word 0000fh ; bb 0f 00 14083 14108 xor cx, cx ; 31 c9 14084 call 087 b9h ; e8 67 f414109 call 087e7h ; e8 67 f4 14085 14110 cmp ax, strict word 00001h ; 3d 01 00 14086 je short 093 0bh ; 74 b414111 je short 09339h ; 74 b4 14087 14112 push strict byte 00000h ; 6a 00 14088 14113 mov bx, strict word 0000fh ; bb 0f 00 … … 14090 14115 mov ax, word [bp-01ah] ; 8b 46 e6 14091 14116 mov dx, di ; 89 fa 14092 call 087 b9h ; e8 53 f414117 call 087e7h ; e8 53 f4 14093 14118 cmp ax, strict word 00003h ; 3d 03 00 14094 jne short 093 08h ; 75 9d14119 jne short 09336h ; 75 9d 14095 14120 mov ax, word [bp-01ch] ; 8b 46 e4 14096 14121 add ax, 00130h ; 05 30 01 … … 14120 14145 mov byte [bp-008h], al ; 88 46 f8 14121 14146 cmp AL, strict byte 004h ; 3c 04 14122 jc short 093 b5h ; 72 0314123 jmp near 097 10h ; e9 5b 0314147 jc short 093e3h ; 72 03 14148 jmp near 0973eh ; e9 5b 03 14124 14149 mov ax, word [bp-01ch] ; 8b 46 e4 14125 14150 add ax, 00118h ; 05 18 01 … … 14171 14196 add cl, 00ch ; 80 c1 0c 14172 14197 test dx, dx ; 85 d2 14173 jne short 094 7bh ; 75 5414198 jne short 094a9h ; 75 54 14174 14199 cmp ax, 00101h ; 3d 01 01 14175 jne short 094 7bh ; 75 4f14200 jne short 094a9h ; 75 4f 14176 14201 mov es, [bp-016h] ; 8e 46 ea 14177 14202 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14188 14213 mov ax, word [bp-00eh] ; 8b 46 f2 14189 14214 mov dx, es ; 8c c2 14190 call 089 49h ; e8 dd f414215 call 08977h ; e8 dd f4 14191 14216 mov byte [bp-00ah], cl ; 88 4e f6 14192 14217 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14193 je short 094 7eh ; 74 0814218 je short 094ach ; 74 08 14194 14219 mov ax, strict word 00001h ; b8 01 00 14195 jmp short 094 80h ; eb 0514196 jmp near 096 4eh ; e9 d0 0114220 jmp short 094aeh ; eb 05 14221 jmp near 0967ch ; e9 d0 01 14197 14222 xor ax, ax ; 31 c0 14198 14223 mov dl, al ; 88 c2 … … 14210 14235 mov word [bp-01eh], ax ; 89 46 e2 14211 14236 cmp word [bp-014h], 00fffh ; 81 7e ec ff 0f 14212 jne short 094 cfh ; 75 1e14237 jne short 094fdh ; 75 1e 14213 14238 cmp di, strict byte 0ffffh ; 83 ff ff 14214 jne short 094 cfh ; 75 1914239 jne short 094fdh ; 75 19 14215 14240 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14216 14241 mov word [bp-01eh], ax ; 89 46 e2 … … 14251 14276 mov al, byte [bp-008h] ; 8a 46 f8 14252 14277 cmp AL, strict byte 001h ; 3c 01 14253 jc short 095 4ah ; 72 0c14254 jbe short 095 52h ; 76 1214278 jc short 09578h ; 72 0c 14279 jbe short 09580h ; 76 12 14255 14280 cmp AL, strict byte 003h ; 3c 03 14256 je short 095 5ah ; 74 1614281 je short 09588h ; 74 16 14257 14282 cmp AL, strict byte 002h ; 3c 02 14258 je short 095 56h ; 74 0e14259 jmp short 095 a2h ; eb 5814283 je short 09584h ; 74 0e 14284 jmp short 095d0h ; eb 58 14260 14285 test al, al ; 84 c0 14261 jne short 095 a2h ; 75 5414286 jne short 095d0h ; 75 54 14262 14287 mov DL, strict byte 040h ; b2 40 14263 jmp short 095 5ch ; eb 0a14288 jmp short 0958ah ; eb 0a 14264 14289 mov DL, strict byte 048h ; b2 48 14265 jmp short 095 5ch ; eb 0614290 jmp short 0958ah ; eb 06 14266 14291 mov DL, strict byte 050h ; b2 50 14267 jmp short 095 5ch ; eb 0214292 jmp short 0958ah ; eb 02 14268 14293 mov DL, strict byte 058h ; b2 58 14269 14294 mov bl, dl ; 88 d3 … … 14271 14296 xor bh, bh ; 30 ff 14272 14297 mov ax, bx ; 89 d8 14273 call 016ach ; e8 448114298 call 016ach ; e8 16 81 14274 14299 test al, al ; 84 c0 14275 je short 095 a2h ; 74 3614300 je short 095d0h ; 74 36 14276 14301 mov al, dl ; 88 d0 14277 14302 db 0feh, 0c0h 14278 14303 ; inc al ; fe c0 14279 14304 xor ah, ah ; 30 e4 14280 call 016ach ; e8 378114305 call 016ach ; e8 09 81 14281 14306 xor ah, ah ; 30 e4 14282 14307 mov cx, ax ; 89 c1 14283 14308 sal cx, 008h ; c1 e1 08 14284 14309 mov al, dl ; 88 d0 14285 call 016ach ; e8 2b 8114310 call 016ach ; e8 fd 80 14286 14311 xor ah, ah ; 30 e4 14287 14312 add ax, cx ; 01 c8 … … 14290 14315 add AL, strict byte 002h ; 04 02 14291 14316 xor ah, ah ; 30 e4 14292 call 016ach ; e8 1b 8114317 call 016ach ; e8 ed 80 14293 14318 xor ah, ah ; 30 e4 14294 14319 mov word [bp-02ah], ax ; 89 46 d6 14295 14320 mov ax, bx ; 89 d8 14296 call 016ach ; e8 11 8114321 call 016ach ; e8 e3 80 14297 14322 xor ah, ah ; 30 e4 14298 14323 mov word [bp-026h], ax ; 89 46 da 14299 jmp short 095 b4h ; eb 1214324 jmp short 095e2h ; eb 12 14300 14325 push word [bp-01eh] ; ff 76 e2 14301 14326 push word [bp-012h] ; ff 76 ee … … 14304 14329 mov dx, ss ; 8c d2 14305 14330 lea ax, [bp-02ah] ; 8d 46 d6 14306 call 059 cbh ; e8 17 c414331 call 059f9h ; e8 17 c4 14307 14332 mov bx, 00da0h ; bb a0 0d 14308 14333 mov cx, ds ; 8c d9 14309 14334 mov ax, strict word 00004h ; b8 04 00 14310 call 01923h ; e8 648314335 call 01923h ; e8 36 83 14311 14336 push word [bp-01eh] ; ff 76 e2 14312 14337 push word [bp-012h] ; ff 76 ee … … 14329 14354 push 00cd6h ; 68 d6 0c 14330 14355 push strict byte 00004h ; 6a 04 14331 call 01966h ; e8 768314356 call 01966h ; e8 48 83 14332 14357 add sp, strict byte 0001ch ; 83 c4 1c 14333 14358 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14360 14385 mov dx, strict word 00075h ; ba 75 00 14361 14386 mov ax, strict word 00040h ; b8 40 00 14362 call 01650h ; e8 14 8014387 call 01650h ; e8 e6 7f 14363 14388 mov bl, al ; 88 c3 14364 14389 db 0feh, 0c3h … … 14367 14392 mov dx, strict word 00075h ; ba 75 00 14368 14393 mov ax, strict word 00040h ; b8 40 00 14369 call 0165eh ; e8 13 8014370 jmp near 09 6ffh ; e9 b1 0014394 call 0165eh ; e8 e5 7f 14395 jmp near 0972dh ; e9 b1 00 14371 14396 cmp dx, 0eb14h ; 81 fa 14 eb 14372 jne short 096 a8h ; 75 5414397 jne short 096d6h ; 75 54 14373 14398 cmp ax, 00101h ; 3d 01 01 14374 jne short 096 a8h ; 75 4f14399 jne short 096d6h ; 75 4f 14375 14400 mov es, [bp-016h] ; 8e 46 ea 14376 14401 mov bx, word [bp-00eh] ; 8b 5e f2 … … 14387 14412 mov ax, word [bp-00eh] ; 8b 46 f2 14388 14413 mov dx, es ; 8c c2 14389 call 089 49h ; e8 b0 f214414 call 08977h ; e8 b0 f2 14390 14415 mov byte [bp-00ah], cl ; 88 4e f6 14391 14416 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14392 je short 096 aah ; 74 0714417 je short 096d8h ; 74 07 14393 14418 mov dx, strict word 00001h ; ba 01 00 14394 jmp short 096 ach ; eb 0414395 jmp short 09 6ffh ; eb 5514419 jmp short 096dah ; eb 04 14420 jmp short 0972dh ; eb 55 14396 14421 xor dx, dx ; 31 d2 14397 14422 mov bl, byte [bp-008h] ; 8a 5e f8 … … 14432 14457 pop bp ; 5d 14433 14458 retn ; c3 14434 ahci_mem_alloc_: ; 0xf97 18LB 0x4314459 ahci_mem_alloc_: ; 0xf9746 LB 0x43 14435 14460 push bp ; 55 14436 14461 mov bp, sp ; 89 e5 … … 14442 14467 mov dx, 00413h ; ba 13 04 14443 14468 xor ax, ax ; 31 c0 14444 call 0166ch ; e8 447f14469 call 0166ch ; e8 16 7f 14445 14470 test ax, ax ; 85 c0 14446 je short 097 51h ; 74 2514471 je short 0977fh ; 74 25 14447 14472 dec ax ; 48 14448 14473 mov bx, ax ; 89 c3 … … 14451 14476 sal ax, 1 ; d1 e0 14452 14477 rcl dx, 1 ; d1 d2 14453 loop 097 34h ; e2 fa14478 loop 09762h ; e2 fa 14454 14479 mov si, ax ; 89 c6 14455 14480 mov di, dx ; 89 d7 … … 14457 14482 shr di, 1 ; d1 ef 14458 14483 rcr si, 1 ; d1 de 14459 loop 097 41h ; e2 fa14484 loop 0976fh ; e2 fa 14460 14485 mov dx, 00413h ; ba 13 04 14461 14486 xor ax, ax ; 31 c0 14462 call 0167ah ; e8 2b 7f14487 call 0167ah ; e8 fd 7e 14463 14488 mov ax, si ; 89 f0 14464 14489 lea sp, [bp-00ah] ; 8d 66 f6 … … 14470 14495 pop bp ; 5d 14471 14496 retn ; c3 14472 ahci_hba_init_: ; 0xf97 5bLB 0x16d14497 ahci_hba_init_: ; 0xf9789 LB 0x16d 14473 14498 push bp ; 55 14474 14499 mov bp, sp ; 89 e5 … … 14482 14507 mov dx, strict word 0000eh ; ba 0e 00 14483 14508 mov ax, strict word 00040h ; b8 40 00 14484 call 0166ch ; e8 fb7e14509 call 0166ch ; e8 cd 7e 14485 14510 mov bx, 00122h ; bb 22 01 14486 14511 mov di, ax ; 89 c7 … … 14499 14524 shr eax, 010h ; 66 c1 e8 10 14500 14525 xchg dx, ax ; 92 14501 call 097 18h ; e8 83 ff14526 call 09746h ; e8 83 ff 14502 14527 mov word [bp-010h], ax ; 89 46 f0 14503 14528 test ax, ax ; 85 c0 14504 jne short 097 9fh ; 75 0314505 jmp near 098 a7h ; e9 08 0114529 jne short 097cdh ; 75 03 14530 jmp near 098d5h ; e9 08 01 14506 14531 mov ax, word [bp-010h] ; 8b 46 f0 14507 14532 mov es, di ; 8e c7 … … 14553 14578 xchg dx, ax ; 92 14554 14579 test AL, strict byte 001h ; a8 01 14555 jne short 09 7f9h ; 75 de14580 jne short 09827h ; 75 de 14556 14581 xor ax, ax ; 31 c0 14557 14582 xor cx, cx ; 31 c9 … … 14571 14596 mov bx, strict word 0001fh ; bb 1f 00 14572 14597 xor cx, cx ; 31 c9 14573 call 087 b9h ; e8 7a ef14598 call 087e7h ; e8 7a ef 14574 14599 db 0feh, 0c0h 14575 14600 ; inc al ; fe c0 14576 14601 mov byte [bp-00ch], al ; 88 46 f4 14577 14602 mov byte [bp-00eh], 000h ; c6 46 f2 00 14578 jmp short 098 6bh ; eb 2114603 jmp short 09899h ; eb 21 14579 14604 xor al, al ; 30 c0 14580 14605 test al, al ; 84 c0 14581 je short 098 62h ; 74 1214606 je short 09890h ; 74 12 14582 14607 mov bl, byte [bp-00eh] ; 8a 5e f2 14583 14608 xor bh, bh ; 30 ff 14584 14609 xor ax, ax ; 31 c0 14585 14610 mov dx, word [bp-010h] ; 8b 56 f0 14586 call 092 35h ; e8 d8 f914611 call 09263h ; e8 d8 f9 14587 14612 dec byte [bp-00ch] ; fe 4e f4 14588 je short 098 a5h ; 74 4314613 je short 098d3h ; 74 43 14589 14614 inc byte [bp-00eh] ; fe 46 f2 14590 14615 cmp byte [bp-00eh], 020h ; 80 7e f2 20 14591 jnc short 098 a5h ; 73 3a14616 jnc short 098d3h ; 73 3a 14592 14617 mov cl, byte [bp-00eh] ; 8a 4e f2 14593 14618 xor ch, ch ; 30 ed 14594 14619 mov bx, strict word 00001h ; bb 01 00 14595 14620 xor di, di ; 31 ff 14596 jcxz 098 7dh ; e3 0614621 jcxz 098abh ; e3 06 14597 14622 sal bx, 1 ; d1 e3 14598 14623 rcl di, 1 ; d1 d7 14599 loop 098 77h ; e2 fa14624 loop 098a5h ; e2 fa 14600 14625 mov ax, strict word 0000ch ; b8 0c 00 14601 14626 xor cx, cx ; 31 c9 … … 14613 14638 xchg dx, ax ; 92 14614 14639 test dx, di ; 85 fa 14615 jne short 098 a1h ; 75 0414640 jne short 098cfh ; 75 04 14616 14641 test ax, bx ; 85 d8 14617 je short 098 4ah ; 74 a914642 je short 09878h ; 74 a9 14618 14643 mov AL, strict byte 001h ; b0 01 14619 jmp short 098 4ch ; eb a714644 jmp short 0987ah ; eb a7 14620 14645 xor ax, ax ; 31 c0 14621 14646 lea sp, [bp-00ah] ; 8d 66 f6 … … 14627 14652 pop bp ; 5d 14628 14653 retn ; c3 14629 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 b0h, 099h, 08eh, 099h, 094h, 099h, 09ah, 099h, 0a0h14630 db 099h, 0 a6h, 099h, 0ach, 099h, 0b0h, 099h14631 _ahci_init: ; 0xf98 c8LB 0x11914654 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0deh, 099h, 0bch, 099h, 0c2h, 099h, 0c8h, 099h, 0ceh 14655 db 099h, 0d4h, 099h, 0dah, 099h, 0deh, 099h 14656 _ahci_init: ; 0xf98f6 LB 0x119 14632 14657 push bp ; 55 14633 14658 mov bp, sp ; 89 e5 … … 14636 14661 mov ax, 00601h ; b8 01 06 14637 14662 mov dx, strict word 00001h ; ba 01 00 14638 call 09 dfch ; e8 24 0514663 call 09e2ah ; e8 24 05 14639 14664 mov dx, ax ; 89 c2 14640 14665 cmp ax, strict word 0ffffh ; 3d ff ff 14641 je short 099 2bh ; 74 4c14666 je short 09959h ; 74 4c 14642 14667 xor al, al ; 30 c0 14643 14668 shr ax, 008h ; c1 e8 08 … … 14647 14672 xor ah, ah ; 30 e4 14648 14673 mov bx, strict word 00034h ; bb 34 00 14649 call 09e 04h ; e8 10 0514674 call 09e32h ; e8 10 05 14650 14675 mov cl, al ; 88 c1 14651 14676 test cl, cl ; 84 c9 14652 je short 099 2eh ; 74 3414677 je short 0995ch ; 74 34 14653 14678 mov bl, cl ; 88 cb 14654 14679 xor bh, bh ; 30 ff … … 14661 14686 mov dx, word [bp-010h] ; 8b 56 f0 14662 14687 mov ax, word [bp-00ch] ; 8b 46 f4 14663 call 09e 04h ; e8 eb 0414688 call 09e32h ; e8 eb 04 14664 14689 cmp AL, strict byte 012h ; 3c 12 14665 je short 099 2eh ; 74 1114690 je short 0995ch ; 74 11 14666 14691 mov bl, cl ; 88 cb 14667 14692 db 0feh, 0c3h … … 14670 14695 mov dx, word [bp-010h] ; 8b 56 f0 14671 14696 mov ax, word [bp-00ch] ; 8b 46 f4 14672 jmp short 09 8f1h ; eb c614673 jmp near 09 9dbh ; e9 ad 0014697 jmp short 0991fh ; eb c6 14698 jmp near 09a09h ; e9 ad 00 14674 14699 test cl, cl ; 84 c9 14675 je short 099 2bh ; 74 f914700 je short 09959h ; 74 f9 14676 14701 add cl, 002h ; 80 c1 02 14677 14702 mov bl, cl ; 88 cb … … 14685 14710 mov dx, word [bp-00eh] ; 8b 56 f2 14686 14711 mov ax, word [bp-00ah] ; 8b 46 f6 14687 call 09e 04h ; e8 b0 0414712 call 09e32h ; e8 b0 04 14688 14713 cmp AL, strict byte 010h ; 3c 10 14689 jne short 099 2bh ; 75 d314714 jne short 09959h ; 75 d3 14690 14715 mov byte [bp-004h], 000h ; c6 46 fc 00 14691 14716 mov bl, cl ; 88 cb … … 14694 14719 mov dx, word [bp-00eh] ; 8b 56 f2 14695 14720 mov ax, word [bp-00ah] ; 8b 46 f6 14696 call 09e 32h ; e8 c6 0414721 call 09e60h ; e8 c6 04 14697 14722 mov dx, ax ; 89 c2 14698 14723 and ax, strict word 0000fh ; 25 0f 00 14699 14724 sub ax, strict word 00004h ; 2d 04 00 14700 14725 cmp ax, strict word 0000bh ; 3d 0b 00 14701 jnbe short 099 b0h ; 77 3714726 jnbe short 099deh ; 77 37 14702 14727 push CS ; 0e 14703 14728 pop ES ; 07 14704 14729 mov cx, strict word 00008h ; b9 08 00 14705 mov di, 098 b1h ; bf b19814730 mov di, 098dfh ; bf df 98 14706 14731 repne scasb ; f2 ae 14707 14732 sal cx, 1 ; d1 e1 14708 14733 mov di, cx ; 89 cf 14709 mov ax, word [cs:di-067 48h] ; 2e 8b 85 b89814734 mov ax, word [cs:di-0671ah] ; 2e 8b 85 e6 98 14710 14735 jmp ax ; ff e0 14711 14736 mov byte [bp-004h], 010h ; c6 46 fc 10 14712 jmp short 099 b0h ; eb 1c14737 jmp short 099deh ; eb 1c 14713 14738 mov byte [bp-004h], 014h ; c6 46 fc 14 14714 jmp short 099 b0h ; eb 1614739 jmp short 099deh ; eb 16 14715 14740 mov byte [bp-004h], 018h ; c6 46 fc 18 14716 jmp short 099 b0h ; eb 1014741 jmp short 099deh ; eb 10 14717 14742 mov byte [bp-004h], 01ch ; c6 46 fc 1c 14718 jmp short 099 b0h ; eb 0a14743 jmp short 099deh ; eb 0a 14719 14744 mov byte [bp-004h], 020h ; c6 46 fc 20 14720 jmp short 099 b0h ; eb 0414745 jmp short 099deh ; eb 04 14721 14746 mov byte [bp-004h], 024h ; c6 46 fc 24 14722 14747 mov cx, dx ; 89 d1 … … 14725 14750 mov al, byte [bp-004h] ; 8a 46 fc 14726 14751 test al, al ; 84 c0 14727 je short 09 9dbh ; 74 1c14752 je short 09a09h ; 74 1c 14728 14753 mov bl, al ; 88 c3 14729 14754 xor bh, bh ; 30 ff … … 14732 14757 mov al, byte [bp-008h] ; 8a 46 f8 14733 14758 xor ah, ah ; 30 e4 14734 call 09e 5ch ; e8 8c 0414759 call 09e8ah ; e8 8c 04 14735 14760 test AL, strict byte 001h ; a8 01 14736 je short 09 9dbh ; 74 0714761 je short 09a09h ; 74 07 14737 14762 and AL, strict byte 0f0h ; 24 f0 14738 14763 add ax, cx ; 01 c8 14739 call 097 5bh ; e8 80 fd14764 call 09789h ; e8 80 fd 14740 14765 lea sp, [bp-002h] ; 8d 66 fe 14741 14766 pop di ; 5f 14742 14767 pop bp ; 5d 14743 14768 retn ; c3 14744 apm_out_str_: ; 0xf9 9e1LB 0x3914769 apm_out_str_: ; 0xf9a0f LB 0x39 14745 14770 push bp ; 55 14746 14771 mov bp, sp ; 89 e5 … … 14748 14773 mov bx, ax ; 89 c3 14749 14774 cmp byte [bx], 000h ; 80 3f 00 14750 je short 09 9f6h ; 74 0a14775 je short 09a24h ; 74 0a 14751 14776 mov al, byte [bx] ; 8a 07 14752 14777 out DX, AL ; ee … … 14755 14780 db 00ah, 0c0h 14756 14781 ; or al, al ; 0a c0 14757 jne short 09 9eeh ; 75 f814782 jne short 09a1ch ; 75 f8 14758 14783 lea sp, [bp-002h] ; 8d 66 fe 14759 14784 pop bx ; 5b 14760 14785 pop bp ; 5d 14761 14786 retn ; c3 14762 cmp bx, word [bp+si-0653dh] ; 3b 9a c3 9a 14763 dec bp ; 4d 14764 call far 09ac3h:09a68h ; 9a 68 9a c3 9a 14765 xchg bx, ax ; 93 14766 call far 09ac9h:09ac3h ; 9a c3 9a c9 9a 14767 cbw ; 98 14768 call far 09a98h:09a98h ; 9a 98 9a 98 9a 14769 or byte [bp+di-06568h], bl ; 08 9b 98 9a 14770 cbw ; 98 14771 db 09ah 14772 db 001h 14787 imul bx, word [bp+si-0650fh], 09a7bh ; 69 9a f1 9a 7b 9a 14788 xchg si, ax ; 96 14789 call far 09ac1h:09af1h ; 9a f1 9a c1 9a 14790 db 0f1h 14791 call far 09ac6h:09af7h ; 9a f7 9a c6 9a 14792 db 0c6h, 09ah, 0c6h, 09ah, 036h 14793 ; mov byte [bp+si-0653ah], 036h ; c6 9a c6 9a 36 14773 14794 wait ; 9b 14774 _apm_function: ; 0xf9a1a LB 0xf3 14795 db 0c6h, 09ah, 0c6h, 09ah, 02fh 14796 ; mov byte [bp+si-0653ah], 02fh ; c6 9a c6 9a 2f 14797 wait ; 9b 14798 _apm_function: ; 0xf9a48 LB 0xf3 14775 14799 push bp ; 55 14776 14800 mov bp, sp ; 89 e5 … … 14780 14804 xor ah, ah ; 30 e4 14781 14805 cmp ax, strict word 0000eh ; 3d 0e 00 14782 jnbe short 09a 98h ; 77 6c14806 jnbe short 09ac6h ; 77 6c 14783 14807 mov bx, ax ; 89 c3 14784 14808 add bx, ax ; 01 c3 14785 14809 mov dx, word [bp+018h] ; 8b 56 18 14786 14810 or dl, 001h ; 80 ca 01 14787 jmp word [cs:bx-06 604h] ; 2e ff a7 fc 9914811 jmp word [cs:bx-065d6h] ; 2e ff a7 2a 9a 14788 14812 mov word [bp+012h], 00102h ; c7 46 12 02 01 14789 14813 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14790 14814 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14791 jmp near 09a c3h ; e9 76 0014815 jmp near 09af1h ; e9 76 00 14792 14816 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14793 mov word [bp+00ch], 0a0 84h ; c7 46 0c 84 a014817 mov word [bp+00ch], 0a0b4h ; c7 46 0c b4 a0 14794 14818 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14795 14819 mov ax, strict word 0fff0h ; b8 f0 ff 14796 14820 mov word [bp+006h], ax ; 89 46 06 14797 14821 mov word [bp+004h], ax ; 89 46 04 14798 jmp near 09a c3h ; e9 5b 0014822 jmp near 09af1h ; e9 5b 00 14799 14823 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14800 14824 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14809 14833 mov si, ax ; 89 c6 14810 14834 sal esi, 010h ; 66 c1 e6 10 14811 jmp near 09a c3h ; e9 30 0014835 jmp near 09af1h ; e9 30 00 14812 14836 sti ; fb 14813 14837 hlt ; f4 14814 jmp near 09a c3h ; e9 2b 0014838 jmp near 09af1h ; e9 2b 00 14815 14839 mov bx, 00da0h ; bb a0 0d 14816 14840 mov cx, ds ; 8c d9 14817 14841 mov ax, strict word 00004h ; b8 04 00 14818 call 01923h ; e8 807e14842 call 01923h ; e8 52 7e 14819 14843 push word [bp+00ch] ; ff 76 0c 14820 14844 push word [bp+012h] ; ff 76 12 14821 14845 push 00d29h ; 68 29 0d 14822 14846 push strict byte 00004h ; 6a 04 14823 call 01966h ; e8 b57e14847 call 01966h ; e8 87 7e 14824 14848 add sp, strict byte 00008h ; 83 c4 08 14825 14849 mov ax, word [bp+012h] ; 8b 46 12 … … 14833 14857 retn ; c3 14834 14858 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14835 je short 09 aeeh ; 74 1f14859 je short 09b1ch ; 74 1f 14836 14860 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14837 je short 09 ae6h ; 74 1114861 je short 09b14h ; 74 11 14838 14862 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14839 jne short 09 af6h ; 75 1b14863 jne short 09b24h ; 75 1b 14840 14864 mov dx, 0040fh ; ba 0f 04 14841 14865 mov ax, 00d10h ; b8 10 0d 14842 call 09 9e1h ; e8 fd fe14843 jmp short 09a c3h ; eb dd14866 call 09a0fh ; e8 fd fe 14867 jmp short 09af1h ; eb dd 14844 14868 mov dx, 0040fh ; ba 0f 04 14845 14869 mov ax, 00d18h ; b8 18 0d 14846 jmp short 09 ae1h ; eb f314870 jmp short 09b0fh ; eb f3 14847 14871 mov dx, 0040fh ; ba 0f 04 14848 14872 mov ax, 00d20h ; b8 20 0d 14849 jmp short 09 ae1h ; eb eb14873 jmp short 09b0fh ; eb eb 14850 14874 or ah, 00ah ; 80 cc 0a 14851 14875 mov word [bp+012h], ax ; 89 46 12 14852 14876 mov word [bp+018h], dx ; 89 56 18 14853 jmp short 09a c3h ; eb c214877 jmp short 09af1h ; eb c2 14854 14878 mov word [bp+012h], 00102h ; c7 46 12 02 01 14855 jmp short 09a c3h ; eb bb14879 jmp short 09af1h ; eb bb 14856 14880 or ah, 080h ; 80 cc 80 14857 jmp short 09 af9h ; eb ec14858 pci16_select_reg_: ; 0xf9b 0dLB 0x2414881 jmp short 09b27h ; eb ec 14882 pci16_select_reg_: ; 0xf9b3b LB 0x24 14859 14883 push bp ; 55 14860 14884 mov bp, sp ; 89 e5 … … 14873 14897 pop bp ; 5d 14874 14898 retn ; c3 14875 pci16_find_device_: ; 0xf9b 31LB 0xf914899 pci16_find_device_: ; 0xf9b5f LB 0xf9 14876 14900 push bp ; 55 14877 14901 mov bp, sp ; 89 e5 … … 14887 14911 mov byte [bp-008h], 000h ; c6 46 f8 00 14888 14912 test bl, 007h ; f6 c3 07 14889 jne short 09b 79h ; 75 2d14913 jne short 09ba7h ; 75 2d 14890 14914 mov dx, strict word 0000eh ; ba 0e 00 14891 14915 mov ax, bx ; 89 d8 14892 call 09b 0dh ; e8 b9 ff14916 call 09b3bh ; e8 b9 ff 14893 14917 mov dx, 00cfeh ; ba fe 0c 14894 14918 in AL, DX ; ec … … 14897 14921 mov byte [bp-006h], al ; 88 46 fa 14898 14922 cmp AL, strict byte 0ffh ; 3c ff 14899 jne short 09b 67h ; 75 0614923 jne short 09b95h ; 75 06 14900 14924 add bx, strict byte 00008h ; 83 c3 08 14901 jmp near 09 bfah ; e9 93 0014925 jmp near 09c28h ; e9 93 00 14902 14926 test byte [bp-006h], 080h ; f6 46 fa 80 14903 je short 09b 74h ; 74 0714927 je short 09ba2h ; 74 07 14904 14928 mov word [bp-010h], strict word 00001h ; c7 46 f0 01 00 14905 jmp short 09b 79h ; eb 0514929 jmp short 09ba7h ; eb 05 14906 14930 mov word [bp-010h], strict word 00008h ; c7 46 f0 08 00 14907 14931 mov al, byte [bp-006h] ; 8a 46 fa 14908 14932 and AL, strict byte 007h ; 24 07 14909 14933 cmp AL, strict byte 001h ; 3c 01 14910 jne short 09b a1h ; 75 1f14934 jne short 09bcfh ; 75 1f 14911 14935 mov ax, bx ; 89 d8 14912 14936 shr ax, 008h ; c1 e8 08 14913 14937 test ax, ax ; 85 c0 14914 jne short 09b a1h ; 75 1614938 jne short 09bcfh ; 75 16 14915 14939 mov dx, strict word 0001ah ; ba 1a 00 14916 14940 mov ax, bx ; 89 d8 14917 call 09b 0dh ; e8 7a ff14941 call 09b3bh ; e8 7a ff 14918 14942 mov dx, 00cfeh ; ba fe 0c 14919 14943 in AL, DX ; ec … … 14921 14945 ; sub ah, ah ; 2a e4 14922 14946 cmp al, byte [bp-008h] ; 3a 46 f8 14923 jbe short 09b a1h ; 76 0314947 jbe short 09bcfh ; 76 03 14924 14948 mov byte [bp-008h], al ; 88 46 f8 14925 14949 test di, di ; 85 ff 14926 je short 09b aah ; 74 0514950 je short 09bd8h ; 74 05 14927 14951 mov dx, strict word 00008h ; ba 08 00 14928 jmp short 09b ach ; eb 0214952 jmp short 09bdah ; eb 02 14929 14953 xor dx, dx ; 31 d2 14930 14954 mov ax, bx ; 89 d8 14931 call 09b 0dh ; e8 5c ff14955 call 09b3bh ; e8 5c ff 14932 14956 mov dx, 00cfch ; ba fc 0c 14933 14957 in eax, DX ; 66 ed … … 14940 14964 mov word [bp-00eh], strict word 00000h ; c7 46 f2 00 00 14941 14965 test di, di ; 85 ff 14942 je short 09 bdbh ; 74 0f14966 je short 09c09h ; 74 0f 14943 14967 mov cx, strict word 00008h ; b9 08 00 14944 14968 shr dx, 1 ; d1 ea 14945 14969 rcr ax, 1 ; d1 d8 14946 loop 09b cfh ; e2 fa14970 loop 09bfdh ; e2 fa 14947 14971 mov word [bp-00ah], ax ; 89 46 f6 14948 14972 mov word [bp-00ch], dx ; 89 56 f4 14949 14973 mov ax, word [bp-00ch] ; 8b 46 f4 14950 14974 cmp ax, word [bp-014h] ; 3b 46 ec 14951 jne short 09 bebh ; 75 0814975 jne short 09c19h ; 75 08 14952 14976 mov ax, word [bp-00ah] ; 8b 46 f6 14953 14977 cmp ax, word [bp-012h] ; 3b 46 ee 14954 je short 09 bf1h ; 74 0614978 je short 09c1fh ; 74 06 14955 14979 cmp word [bp-00eh], strict byte 00000h ; 83 7e f2 00 14956 je short 09 bf7h ; 74 0614980 je short 09c25h ; 74 06 14957 14981 dec si ; 4e 14958 14982 cmp si, strict byte 0ffffh ; 83 fe ff 14959 je short 09c 0bh ; 74 1414983 je short 09c39h ; 74 14 14960 14984 add bx, word [bp-010h] ; 03 5e f0 14961 14985 mov dx, bx ; 89 da … … 14964 14988 xor ah, ah ; 30 e4 14965 14989 cmp dx, ax ; 39 c2 14966 jnbe short 09c 0bh ; 77 0314967 jmp near 09b 47h ; e9 3c ff14990 jnbe short 09c39h ; 77 03 14991 jmp near 09b75h ; e9 3c ff 14968 14992 cmp si, strict byte 0ffffh ; 83 fe ff 14969 jne short 09c 14h ; 75 0414993 jne short 09c42h ; 75 04 14970 14994 mov ax, bx ; 89 d8 14971 jmp short 09c 17h ; eb 0314995 jmp short 09c45h ; eb 03 14972 14996 mov ax, strict word 0ffffh ; b8 ff ff 14973 14997 lea sp, [bp-004h] ; 8d 66 fc … … 14976 15000 pop bp ; 5d 14977 15001 retn ; c3 14978 or bx, word [di-062dch] ; 0b 9d 24 9d 14979 db 036h, 09dh 14980 ; ss popfw ; 36 9d 14981 dec dx ; 4a 14982 popfw ; 9d 14983 pop sp ; 5c 14984 popfw ; 9d 14985 outsw ; 6f 14986 popfw ; 9d 14987 _pci16_function: ; 0xf9c2a LB 0x1d2 15002 cmp word [di-062aeh], bx ; 39 9d 52 9d 15003 db 064h, 09dh 15004 ; fs popfw ; 64 9d 15005 js short 09bf1h ; 78 9d 15006 mov bl, byte [di-06263h] ; 8a 9d 9d 9d 15007 _pci16_function: ; 0xf9c58 LB 0x1d2 14988 15008 push bp ; 55 14989 15009 mov bp, sp ; 89 e5 … … 14999 15019 xor ah, ah ; 30 e4 15000 15020 cmp bx, strict byte 00003h ; 83 fb 03 15001 jc short 09c 5ch ; 72 1315002 jbe short 09c afh ; 76 6415021 jc short 09c8ah ; 72 13 15022 jbe short 09cddh ; 76 64 15003 15023 cmp bx, strict byte 0000eh ; 83 fb 0e 15004 je short 09c b7h ; 74 6715024 je short 09ce5h ; 74 67 15005 15025 cmp bx, strict byte 00008h ; 83 fb 08 15006 jc short 09c 66h ; 72 1115026 jc short 09c94h ; 72 11 15007 15027 cmp bx, strict byte 0000dh ; 83 fb 0d 15008 jbe short 09c bah ; 76 6015009 jmp short 09c 66h ; eb 0a15028 jbe short 09ce8h ; 76 60 15029 jmp short 09c94h ; eb 0a 15010 15030 cmp bx, strict byte 00002h ; 83 fb 02 15011 je short 09c 85h ; 74 2415031 je short 09cb3h ; 74 24 15012 15032 cmp bx, strict byte 00001h ; 83 fb 01 15013 je short 09c 69h ; 74 0315014 jmp near 09d c8h ; e9 5f 0115033 je short 09c97h ; 74 03 15034 jmp near 09df6h ; e9 5f 01 15015 15035 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15016 15036 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15018 15038 mov word [bp+018h], 04350h ; c7 46 18 50 43 15019 15039 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15020 jmp near 09 df5h ; e9 70 0115040 jmp near 09e23h ; e9 70 01 15021 15041 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15022 jne short 09c 91h ; 75 0615042 jne short 09cbfh ; 75 06 15023 15043 or ah, 083h ; 80 cc 83 15024 jmp near 09 deeh ; e9 5d 0115044 jmp near 09e1ch ; e9 5d 01 15025 15045 mov bx, word [bp+008h] ; 8b 5e 08 15026 15046 mov dx, word [bp+01ch] ; 8b 56 1c 15027 15047 mov ax, word [bp+018h] ; 8b 46 18 15028 15048 xor cx, cx ; 31 c9 15029 call 09b 31h ; e8 92 fe15049 call 09b5fh ; e8 92 fe 15030 15050 cmp ax, strict word 0ffffh ; 3d ff ff 15031 jne short 09c b1h ; 75 0d15051 jne short 09cdfh ; 75 0d 15032 15052 mov ax, word [bp+020h] ; 8b 46 20 15033 15053 xor ah, ah ; 30 e4 15034 15054 or ah, 086h ; 80 cc 86 15035 jmp near 09 deeh ; e9 3f 0115036 jmp short 09c bch ; eb 0b15055 jmp near 09e1ch ; e9 3f 01 15056 jmp short 09ceah ; eb 0b 15037 15057 mov word [bp+014h], ax ; 89 46 14 15038 jmp near 09 df5h ; e9 3e 0115039 jmp near 09d 83h ; e9 c9 0015040 jmp short 09 ce1h ; eb 2515058 jmp near 09e23h ; e9 3e 01 15059 jmp near 09db1h ; e9 c9 00 15060 jmp short 09d0fh ; eb 25 15041 15061 mov bx, word [bp+008h] ; 8b 5e 08 15042 15062 mov ax, word [bp+01ch] ; 8b 46 1c 15043 15063 mov dx, word [bp+01eh] ; 8b 56 1e 15044 15064 mov cx, strict word 00001h ; b9 01 00 15045 call 09b 31h ; e8 66 fe15065 call 09b5fh ; e8 66 fe 15046 15066 cmp ax, strict word 0ffffh ; 3d ff ff 15047 jne short 09 cdbh ; 75 0b15067 jne short 09d09h ; 75 0b 15048 15068 mov ax, word [bp+020h] ; 8b 46 20 15049 15069 xor ah, ah ; 30 e4 15050 15070 or ah, 086h ; 80 cc 86 15051 jmp near 09 deeh ; e9 13 0115071 jmp near 09e1ch ; e9 13 01 15052 15072 mov word [bp+014h], ax ; 89 46 14 15053 jmp near 09 df5h ; e9 14 0115073 jmp near 09e23h ; e9 14 01 15054 15074 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15055 jc short 09 ceeh ; 72 0615075 jc short 09d1ch ; 72 06 15056 15076 or ah, 087h ; 80 cc 87 15057 jmp near 09 deeh ; e9 00 0115077 jmp near 09e1ch ; e9 00 01 15058 15078 mov dx, word [bp+004h] ; 8b 56 04 15059 15079 mov ax, word [bp+014h] ; 8b 46 14 15060 call 09b 0dh ; e8 16 fe15080 call 09b3bh ; e8 16 fe 15061 15081 mov bx, word [bp+020h] ; 8b 5e 20 15062 15082 xor bh, bh ; 30 ff 15063 15083 sub bx, strict byte 00008h ; 83 eb 08 15064 15084 cmp bx, strict byte 00005h ; 83 fb 05 15065 jnbe short 09d 6ch ; 77 6815085 jnbe short 09d9ah ; 77 68 15066 15086 add bx, bx ; 01 db 15067 jmp word [cs:bx-063 e2h] ; 2e ff a7 1e9c15087 jmp word [cs:bx-063b4h] ; 2e ff a7 4c 9c 15068 15088 mov bx, word [bp+01ch] ; 8b 5e 1c 15069 15089 xor bl, bl ; 30 db … … 15076 15096 or bx, ax ; 09 c3 15077 15097 mov word [bp+01ch], bx ; 89 5e 1c 15078 jmp short 09d 6ch ; eb 4815098 jmp short 09d9ah ; eb 48 15079 15099 mov dx, word [bp+004h] ; 8b 56 04 15080 15100 xor dh, dh ; 30 f6 … … 15083 15103 in ax, DX ; ed 15084 15104 mov word [bp+01ch], ax ; 89 46 1c 15085 jmp short 09d 6ch ; eb 3615105 jmp short 09d9ah ; eb 36 15086 15106 mov dx, 00cfch ; ba fc 0c 15087 15107 in eax, DX ; 66 ed … … 15092 15112 mov word [bp+01ch], ax ; 89 46 1c 15093 15113 mov word [bp+01eh], dx ; 89 56 1e 15094 jmp short 09d 6ch ; eb 2215114 jmp short 09d9ah ; eb 22 15095 15115 mov ax, word [bp+01ch] ; 8b 46 1c 15096 15116 mov dx, word [bp+004h] ; 8b 56 04 … … 15099 15119 add dx, 00cfch ; 81 c2 fc 0c 15100 15120 out DX, AL ; ee 15101 jmp short 09d 6ch ; eb 1015121 jmp short 09d9ah ; eb 10 15102 15122 mov ax, word [bp+01ch] ; 8b 46 1c 15103 15123 mov dx, word [bp+004h] ; 8b 56 04 … … 15106 15126 add dx, 00cfch ; 81 c2 fc 0c 15107 15127 out DX, ax ; ef 15108 jmp near 09 df5h ; e9 86 0015128 jmp near 09e23h ; e9 86 00 15109 15129 mov ax, word [bp+01ch] ; 8b 46 1c 15110 15130 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15115 15135 ; mov ax, cx ; 8b c1 15116 15136 out DX, eax ; 66 ef 15117 jmp short 09 df5h ; eb 7215137 jmp short 09e23h ; eb 72 15118 15138 mov bx, word [bp+004h] ; 8b 5e 04 15119 15139 mov es, [bp+026h] ; 8e 46 26 … … 15122 15142 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15123 15143 cmp cx, word [es:bx] ; 26 3b 0f 15124 jbe short 09d a9h ; 76 1115144 jbe short 09dd7h ; 76 11 15125 15145 mov ax, word [bp+020h] ; 8b 46 20 15126 15146 xor ah, ah ; 30 e4 … … 15128 15148 mov word [bp+020h], ax ; 89 46 20 15129 15149 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15130 jmp short 09d bdh ; eb 1415150 jmp short 09debh ; eb 14 15131 15151 les di, [es:bx+002h] ; 26 c4 7f 02 15132 15152 mov si, 0f2c0h ; be c0 f2 … … 15140 15160 les bx, [bp-008h] ; c4 5e f8 15141 15161 mov word [es:bx], ax ; 26 89 07 15142 jmp short 09 df5h ; eb 2d15162 jmp short 09e23h ; eb 2d 15143 15163 mov bx, 00da0h ; bb a0 0d 15144 15164 mov cx, ds ; 8c d9 15145 15165 mov ax, strict word 00004h ; b8 04 00 15146 call 01923h ; e8 507b15166 call 01923h ; e8 22 7b 15147 15167 mov ax, word [bp+014h] ; 8b 46 14 15148 15168 push ax ; 50 … … 15151 15171 push 00d5ch ; 68 5c 0d 15152 15172 push strict byte 00004h ; 6a 04 15153 call 01966h ; e8 837b15173 call 01966h ; e8 55 7b 15154 15174 add sp, strict byte 00008h ; 83 c4 08 15155 15175 mov ax, word [bp+020h] ; 8b 46 20 … … 15163 15183 pop bp ; 5d 15164 15184 retn ; c3 15165 pci_find_classcode_: ; 0xf9 dfcLB 0x815185 pci_find_classcode_: ; 0xf9e2a LB 0x8 15166 15186 push bp ; 55 15167 15187 mov bp, sp ; 89 e5 … … 15169 15189 pop bp ; 5d 15170 15190 retn ; c3 15171 pci_read_config_byte_: ; 0xf9e 04LB 0x2e15191 pci_read_config_byte_: ; 0xf9e32 LB 0x2e 15172 15192 push bp ; 55 15173 15193 mov bp, sp ; 89 e5 … … 15195 15215 pop bp ; 5d 15196 15216 retn ; c3 15197 pci_read_config_word_: ; 0xf9e 32LB 0x2a15217 pci_read_config_word_: ; 0xf9e60 LB 0x2a 15198 15218 push bp ; 55 15199 15219 mov bp, sp ; 89 e5 … … 15219 15239 pop bp ; 5d 15220 15240 retn ; c3 15221 pci_read_config_dword_: ; 0xf9e 5cLB 0x4e15241 pci_read_config_dword_: ; 0xf9e8a LB 0x4e 15222 15242 push bp ; 55 15223 15243 mov bp, sp ; 89 e5 … … 15241 15261 int 01ah ; cd 1a 15242 15262 test cx, cx ; 85 c9 15243 jne short 09e 9bh ; 75 1415263 jne short 09ec9h ; 75 14 15244 15264 mov al, byte [bp-006h] ; 8a 46 fa 15245 15265 xor ah, ah ; 30 e4 … … 15251 15271 int 01ah ; cd 1a 15252 15272 test cx, cx ; 85 c9 15253 je short 09e a0h ; 74 0515273 je short 09eceh ; 74 05 15254 15274 mov ax, strict word 00001h ; b8 01 00 15255 jmp short 09e a2h ; eb 0215275 jmp short 09ed0h ; eb 02 15256 15276 xor ax, ax ; 31 c0 15257 15277 cwd ; 99 … … 15261 15281 pop bp ; 5d 15262 15282 retn ; c3 15263 vds_is_present_: ; 0xf9e aaLB 0x1d15283 vds_is_present_: ; 0xf9ed8 LB 0x1d 15264 15284 push bx ; 53 15265 15285 push bp ; 55 … … 15269 15289 mov es, ax ; 8e c0 15270 15290 test byte [es:bx], 020h ; 26 f6 07 20 15271 je short 09e c2h ; 74 0615291 je short 09ef0h ; 74 06 15272 15292 mov ax, strict word 00001h ; b8 01 00 15273 15293 pop bp ; 5d … … 15278 15298 pop bx ; 5b 15279 15299 retn ; c3 15280 vds_real_to_lin_: ; 0xf9e c7LB 0x1e15300 vds_real_to_lin_: ; 0xf9ef5 LB 0x1e 15281 15301 push bx ; 53 15282 15302 push cx ; 51 … … 15289 15309 sal ax, 1 ; d1 e0 15290 15310 rcl dx, 1 ; d1 d2 15291 loop 09 ed5h ; e2 fa15311 loop 09f03h ; e2 fa 15292 15312 xor cx, cx ; 31 c9 15293 15313 add ax, bx ; 01 d8 … … 15297 15317 pop bx ; 5b 15298 15318 retn ; c3 15299 vds_build_sg_list_: ; 0xf9 ee5LB 0x7715319 vds_build_sg_list_: ; 0xf9f13 LB 0x77 15300 15320 push bp ; 55 15301 15321 mov bp, sp ; 89 e5 … … 15311 15331 mov bx, word [bp+006h] ; 8b 5e 06 15312 15332 mov word [es:di+002h], bx ; 26 89 5d 02 15313 call 09e c7h ; e8 c3 ff15333 call 09ef5h ; e8 c3 ff 15314 15334 mov es, si ; 8e c6 15315 15335 mov word [es:di+004h], ax ; 26 89 45 04 15316 15336 mov word [es:di+006h], dx ; 26 89 55 06 15317 15337 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15318 call 09e aah ; e8 93 ff15338 call 09ed8h ; e8 93 ff 15319 15339 test ax, ax ; 85 c0 15320 je short 09f 2ch ; 74 1115340 je short 09f5ah ; 74 11 15321 15341 mov es, si ; 8e c6 15322 15342 mov ax, 08105h ; b8 05 81 15323 15343 mov dx, strict word 00000h ; ba 00 00 15324 15344 int 04bh ; cd 4b 15325 jc short 09f 29h ; 72 0215345 jc short 09f57h ; 72 02 15326 15346 db 032h, 0c0h 15327 15347 ; xor al, al ; 32 c0 15328 15348 cbw ; 98 15329 jmp short 09f 53h ; eb 2715349 jmp short 09f81h ; eb 27 15330 15350 mov es, si ; 8e c6 15331 15351 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15344 15364 pop bp ; 5d 15345 15365 retn 00004h ; c2 04 00 15346 vds_free_sg_list_: ; 0xf9f 5c LB 0x3415366 vds_free_sg_list_: ; 0xf9f8a LB 0x36 15347 15367 push bp ; 55 15348 15368 mov bp, sp ; 89 e5 … … 15350 15370 push di ; 57 15351 15371 mov bx, ax ; 89 c3 15352 call 09e aah ; e8 44 ff15372 call 09ed8h ; e8 44 ff 15353 15373 test ax, ax ; 85 c0 15354 je short 09f 7bh ; 74 1115374 je short 09fa9h ; 74 11 15355 15375 mov di, bx ; 89 df 15356 15376 mov es, dx ; 8e c2 … … 15358 15378 mov dx, strict word 00000h ; ba 00 00 15359 15379 int 04bh ; cd 4b 15360 jc short 09f 7ah ; 72 0215380 jc short 09fa8h ; 72 02 15361 15381 db 032h, 0c0h 15362 15382 ; xor al, al ; 32 c0 … … 15369 15389 pop bp ; 5d 15370 15390 retn ; c3 15371 times 0x 6db 015372 __U4M: ; 0xf9f 90 LB 0x2015391 times 0x8 db 0 15392 __U4M: ; 0xf9fc0 LB 0x20 15373 15393 pushfw ; 9c 15374 15394 push si ; 56 … … 15397 15417 retn ; c3 15398 15418 times 0x4 db 0 15399 __U4D: ; 0xf9f b0 LB 0x3015419 __U4D: ; 0xf9fe0 LB 0x30 15400 15420 pushfw ; 9c 15401 15421 push DS ; 1e … … 15412 15432 push dx ; 52 15413 15433 push ax ; 50 15414 call 0a0 95h ; e8 d0 0015434 call 0a0c5h ; e8 d0 00 15415 15435 mov cx, word [bp-002h] ; 8b 4e fe 15416 15436 mov bx, word [bp-004h] ; 8b 5e fc … … 15423 15443 retn ; c3 15424 15444 times 0xe db 0 15425 __U8RS: ; 0xf 9fe0 LB 0x1015445 __U8RS: ; 0xfa010 LB 0x10 15426 15446 test si, si ; 85 f6 15427 je short 0 9fefh ; 74 0b15447 je short 0a01fh ; 74 0b 15428 15448 shr ax, 1 ; d1 e8 15429 15449 rcr bx, 1 ; d1 db … … 15431 15451 rcr dx, 1 ; d1 da 15432 15452 dec si ; 4e 15433 jne short 0 9fe4h ; 75 f515453 jne short 0a014h ; 75 f5 15434 15454 retn ; c3 15435 __U8LS: ; 0xf 9ff0 LB 0x1015455 __U8LS: ; 0xfa020 LB 0x10 15436 15456 test si, si ; 85 f6 15437 je short 0 9fffh ; 74 0b15457 je short 0a02fh ; 74 0b 15438 15458 sal dx, 1 ; d1 e2 15439 15459 rcl cx, 1 ; d1 d1 … … 15441 15461 rcl ax, 1 ; d1 d0 15442 15462 dec si ; 4e 15443 jne short 0 9ff4h ; 75 f515463 jne short 0a024h ; 75 f5 15444 15464 retn ; c3 15445 _fmemset_: ; 0xfa0 00 LB 0x1015465 _fmemset_: ; 0xfa030 LB 0x10 15446 15466 push di ; 57 15447 15467 mov es, dx ; 8e c2 … … 15454 15474 retn ; c3 15455 15475 times 0x3 db 0 15456 _fmemcpy_: ; 0xfa0 10 LB 0x3a15476 _fmemcpy_: ; 0xfa040 LB 0x3a 15457 15477 push bp ; 55 15458 15478 db 08bh, 0ech … … 15479 15499 add byte [bx+si], al ; 00 00 15480 15500 add byte [bx+si], al ; 00 00 15481 db 060h, 0a0h, 062h, 0a0h, 066h, 0a0h, 066h, 0a0h, 066h, 0a0h, 068h, 0a0h, 068h, 0a0h, 06ah, 0a0h 15482 db 06eh, 0a0h, 06eh, 0a0h, 070h, 0a0h, 075h, 0a0h, 077h, 0a0h 15483 apm_worker: ; 0xfa04a LB 0x3a 15501 nop ; 90 15502 mov AL, byte [0a092h] ; a0 92 a0 15503 xchg si, ax ; 96 15504 mov AL, byte [0a096h] ; a0 96 a0 15505 xchg si, ax ; 96 15506 mov AL, byte [0a098h] ; a0 98 a0 15507 cbw ; 98 15508 mov AL, byte [0a09ah] ; a0 9a a0 15509 sahf ; 9e 15510 mov AL, byte [0a09eh] ; a0 9e a0 15511 mov AL, byte [0a5a0h] ; a0 a0 a5 15512 mov AL, byte [0a0a7h] ; a0 a7 a0 15513 apm_worker: ; 0xfa07a LB 0x3a 15484 15514 sti ; fb 15485 15515 push ax ; 50 … … 15493 15523 pop ax ; 58 15494 15524 mov AH, strict byte 053h ; b4 53 15495 jnc short 0a0 80h ; 73 2515496 jmp word [cs:bp-05f d0h] ; 2e ff a6 30 a015497 jmp short 0a0 7eh ; eb 1c15525 jnc short 0a0b0h ; 73 25 15526 jmp word [cs:bp-05fa0h] ; 2e ff a6 60 a0 15527 jmp short 0a0aeh ; eb 1c 15498 15528 sti ; fb 15499 15529 hlt ; f4 15500 jmp short 0a0 7eh ; eb 1815501 jmp short 0a0 7eh ; eb 1615502 jmp short 0a0 80h ; eb 1615530 jmp short 0a0aeh ; eb 18 15531 jmp short 0a0aeh ; eb 16 15532 jmp short 0a0b0h ; eb 16 15503 15533 mov AH, strict byte 080h ; b4 80 15504 jmp short 0a0 82h ; eb 1415505 jmp short 0a0 80h ; eb 1015534 jmp short 0a0b2h ; eb 14 15535 jmp short 0a0b0h ; eb 10 15506 15536 mov ax, 00102h ; b8 02 01 15507 jmp short 0a0 7eh ; eb 0915508 jmp short 0a0 7eh ; eb 0715537 jmp short 0a0aeh ; eb 09 15538 jmp short 0a0aeh ; eb 07 15509 15539 mov BL, strict byte 000h ; b3 00 15510 15540 mov cx, strict word 00000h ; b9 00 00 15511 jmp short 0a0 7eh ; eb 0015541 jmp short 0a0aeh ; eb 00 15512 15542 clc ; f8 15513 15543 retn ; c3 … … 15515 15545 stc ; f9 15516 15546 retn ; c3 15517 apm_pm16_entry: ; 0xfa0 84 LB 0x1115547 apm_pm16_entry: ; 0xfa0b4 LB 0x11 15518 15548 mov AH, strict byte 002h ; b4 02 15519 15549 push DS ; 1e … … 15523 15553 add bp, strict byte 00008h ; 83 c5 08 15524 15554 mov ds, bp ; 8e dd 15525 call 0a0 4ah ; e8 b8 ff15555 call 0a07ah ; e8 b8 ff 15526 15556 pop bp ; 5d 15527 15557 pop DS ; 1f 15528 15558 retf ; cb 15529 _DoUInt32Div: ; 0xfa0 95 LB 0x26b15559 _DoUInt32Div: ; 0xfa0c5 LB 0x26b 15530 15560 push bp ; 55 15531 15561 mov bp, sp ; 89 e5 … … 15545 15575 mov [bp-006h], ds ; 8c 5e fa 15546 15576 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15547 jne short 0a 0e5h ; 75 2215577 jne short 0a115h ; 75 22 15548 15578 mov ax, word [bx] ; 8b 07 15549 15579 test ax, ax ; 85 c0 15550 je short 0a 0e2h ; 74 1915580 je short 0a112h ; 74 19 15551 15581 cmp ax, strict word 00001h ; 3d 01 00 15552 jne short 0a 0e5h ; 75 1715582 jne short 0a115h ; 75 17 15553 15583 xor ax, ax ; 31 c0 15554 15584 mov word [bp+00ah], ax ; 89 46 0a … … 15558 15588 mov ax, word [bp-01ah] ; 8b 46 e6 15559 15589 mov word [bp+006h], ax ; 89 46 06 15560 jmp near 0a 2edh ; e9 08 0215590 jmp near 0a31dh ; e9 08 02 15561 15591 lds bx, [bp-00ch] ; c5 5e f4 15562 15592 mov ax, word [bx+002h] ; 8b 47 02 15563 15593 mov ds, [bp-006h] ; 8e 5e fa 15564 15594 cmp ax, word [si+002h] ; 3b 44 02 15565 je short 0a1 0bh ; 74 1815595 je short 0a13bh ; 74 18 15566 15596 mov ds, [bp-00ah] ; 8e 5e f6 15567 15597 mov ax, word [bx+002h] ; 8b 47 02 15568 15598 mov ds, [bp-006h] ; 8e 5e fa 15569 15599 cmp ax, word [si+002h] ; 3b 44 02 15570 jbe short 0a1 06h ; 76 0515600 jbe short 0a136h ; 76 05 15571 15601 mov ax, strict word 00001h ; b8 01 00 15572 jmp short 0a1 2ch ; eb 2615602 jmp short 0a15ch ; eb 26 15573 15603 mov ax, strict word 0ffffh ; b8 ff ff 15574 jmp short 0a1 2ch ; eb 2115604 jmp short 0a15ch ; eb 21 15575 15605 mov ds, [bp-00ah] ; 8e 5e f6 15576 15606 mov ax, word [bx] ; 8b 07 15577 15607 mov ds, [bp-006h] ; 8e 5e fa 15578 15608 cmp ax, word [si] ; 3b 04 15579 je short 0a1 2ah ; 74 1315609 je short 0a15ah ; 74 13 15580 15610 mov ds, [bp-00ah] ; 8e 5e f6 15581 15611 mov ax, word [bx] ; 8b 07 15582 15612 mov ds, [bp-006h] ; 8e 5e fa 15583 15613 cmp ax, word [si] ; 3b 04 15584 jbe short 0a1 25h ; 76 0215585 jmp short 0a1 01h ; eb dc15614 jbe short 0a155h ; 76 02 15615 jmp short 0a131h ; eb dc 15586 15616 mov ax, strict word 0ffffh ; b8 ff ff 15587 jmp short 0a1 2ch ; eb 0215617 jmp short 0a15ch ; eb 02 15588 15618 xor ax, ax ; 31 c0 15589 15619 test ax, ax ; 85 c0 15590 jnl short 0a1 4eh ; 7d 1e15620 jnl short 0a17eh ; 7d 1e 15591 15621 lds bx, [bp-00ch] ; c5 5e f4 15592 15622 mov ax, word [bx] ; 8b 07 … … 15598 15628 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15599 15629 mov word [bx], strict word 00000h ; c7 07 00 00 15600 jmp short 0a 0e2h ; eb 9415601 jne short 0a1 65h ; 75 1515630 jmp short 0a112h ; eb 94 15631 jne short 0a195h ; 75 15 15602 15632 mov ds, [bp-008h] ; 8e 5e f8 15603 15633 mov word [di+002h], ax ; 89 45 02 … … 15606 15636 mov word [bx], strict word 00001h ; c7 07 01 00 15607 15637 mov word [bx+002h], ax ; 89 47 02 15608 jmp near 0a 2edh ; e9 88 0115638 jmp near 0a31dh ; e9 88 01 15609 15639 lds bx, [bp-00ch] ; c5 5e f4 15610 15640 mov ax, word [bx+002h] ; 8b 47 02 15611 15641 test ax, ax ; 85 c0 15612 je short 0a1 80h ; 74 1115642 je short 0a1b0h ; 74 11 15613 15643 push ax ; 50 15614 15644 mov ax, 0f000h ; b8 00 f0 15615 15645 mov ds, ax ; 8e d8 15616 call 0a3 00h ; e8 88 0115646 call 0a330h ; e8 88 01 15617 15647 add sp, strict byte 00002h ; 83 c4 02 15618 15648 add ax, strict word 00010h ; 05 10 00 15619 jmp short 0a1 8dh ; eb 0d15649 jmp short 0a1bdh ; eb 0d 15620 15650 push word [bx] ; ff 37 15621 15651 mov ax, 0f000h ; b8 00 f0 15622 15652 mov ds, ax ; 8e d8 15623 call 0a3 00h ; e8 76 0115653 call 0a330h ; e8 76 01 15624 15654 add sp, strict byte 00002h ; 83 c4 02 15625 15655 mov word [bp-014h], ax ; 89 46 ec … … 15627 15657 mov ax, word [si+002h] ; 8b 44 02 15628 15658 test ax, ax ; 85 c0 15629 je short 0a1 abh ; 74 1115659 je short 0a1dbh ; 74 11 15630 15660 push ax ; 50 15631 15661 mov ax, 0f000h ; b8 00 f0 15632 15662 mov ds, ax ; 8e d8 15633 call 0a3 00h ; e8 5d 0115663 call 0a330h ; e8 5d 01 15634 15664 add sp, strict byte 00002h ; 83 c4 02 15635 15665 add ax, strict word 00010h ; 05 10 00 15636 jmp short 0a1 b8h ; eb 0d15666 jmp short 0a1e8h ; eb 0d 15637 15667 push word [si] ; ff 34 15638 15668 mov ax, 0f000h ; b8 00 f0 15639 15669 mov ds, ax ; 8e d8 15640 call 0a3 00h ; e8 4b 0115670 call 0a330h ; e8 4b 01 15641 15671 add sp, strict byte 00002h ; 83 c4 02 15642 15672 mov dx, word [bp-014h] ; 8b 56 ec … … 15649 15679 mov word [bp-016h], ax ; 89 46 ea 15650 15680 test dx, dx ; 85 d2 15651 je short 0a2 28h ; 74 5615681 je short 0a258h ; 74 56 15652 15682 mov cx, dx ; 89 d1 15653 15683 xor ch, dh ; 30 f5 … … 15655 15685 mov ax, word [si] ; 8b 04 15656 15686 mov dx, word [si+002h] ; 8b 54 02 15657 jcxz 0a 1e6h ; e3 0615687 jcxz 0a216h ; e3 06 15658 15688 sal ax, 1 ; d1 e0 15659 15689 rcl dx, 1 ; d1 d2 15660 loop 0a 1e0h ; e2 fa15690 loop 0a210h ; e2 fa 15661 15691 mov word [bp-018h], ax ; 89 46 e8 15662 15692 mov word [bp-016h], dx ; 89 56 ea … … 15664 15694 lds bx, [bp-00ch] ; c5 5e f4 15665 15695 cmp ax, word [bx+002h] ; 3b 47 02 15666 jnbe short 0a2 06h ; 77 0f15696 jnbe short 0a236h ; 77 0f 15667 15697 mov ax, word [bp-016h] ; 8b 46 ea 15668 15698 cmp ax, word [bx+002h] ; 3b 47 02 15669 jne short 0a2 0ah ; 75 0b15699 jne short 0a23ah ; 75 0b 15670 15700 mov ax, word [bp-018h] ; 8b 46 e8 15671 15701 cmp ax, word [bx] ; 3b 07 15672 jbe short 0a2 0ah ; 76 0415702 jbe short 0a23ah ; 76 04 15673 15703 mov AL, strict byte 001h ; b0 01 15674 jmp short 0a2 0ch ; eb 0215704 jmp short 0a23ch ; eb 02 15675 15705 xor al, al ; 30 c0 15676 15706 test al, al ; 84 c0 15677 je short 0a2 33h ; 74 2315707 je short 0a263h ; 74 23 15678 15708 shr word [bp-016h], 1 ; d1 6e ea 15679 15709 rcr word [bp-018h], 1 ; d1 5e e8 15680 15710 dec word [bp-012h] ; ff 4e ee 15681 jmp short 0a2 33h ; eb 1815711 jmp short 0a263h ; eb 18 15682 15712 mov cx, strict word 0001fh ; b9 1f 00 15683 15713 sal word [bp-018h], 1 ; d1 66 e8 15684 15714 rcl word [bp-016h], 1 ; d1 56 ea 15685 loop 0a2 1eh ; e2 f815686 jmp short 0a2 16h ; eb ee15715 loop 0a24eh ; e2 f8 15716 jmp short 0a246h ; eb ee 15687 15717 mov ax, word [si] ; 8b 04 15688 15718 mov word [bp-018h], ax ; 89 46 e8 … … 15701 15731 mov ds, [bp-006h] ; 8e 5e fa 15702 15732 cmp ax, word [si+002h] ; 3b 44 02 15703 jnbe short 0a2 5fh ; 77 0615704 jne short 0a2 63h ; 75 0815733 jnbe short 0a28fh ; 77 06 15734 jne short 0a293h ; 75 08 15705 15735 cmp dx, word [si] ; 3b 14 15706 jc short 0a2 63h ; 72 0415736 jc short 0a293h ; 72 04 15707 15737 mov AL, strict byte 001h ; b0 01 15708 jmp short 0a2 65h ; eb 0215738 jmp short 0a295h ; eb 02 15709 15739 xor al, al ; 30 c0 15710 15740 test al, al ; 84 c0 15711 je short 0a2 cah ; 74 6115741 je short 0a2fah ; 74 61 15712 15742 mov ds, [bp-008h] ; 8e 5e f8 15713 15743 mov ax, word [di+002h] ; 8b 45 02 15714 15744 cmp ax, word [bp-016h] ; 3b 46 ea 15715 jnbe short 0a2 80h ; 77 0c15745 jnbe short 0a2b0h ; 77 0c 15716 15746 cmp ax, word [bp-016h] ; 3b 46 ea 15717 jne short 0a2 84h ; 75 0b15747 jne short 0a2b4h ; 75 0b 15718 15748 mov ax, word [di] ; 8b 05 15719 15749 cmp ax, word [bp-018h] ; 3b 46 e8 15720 jc short 0a2 84h ; 72 0415750 jc short 0a2b4h ; 72 04 15721 15751 mov AL, strict byte 001h ; b0 01 15722 jmp short 0a2 86h ; eb 0215752 jmp short 0a2b6h ; eb 02 15723 15753 xor al, al ; 30 c0 15724 15754 test al, al ; 84 c0 15725 je short 0a2 b0h ; 74 2615755 je short 0a2e0h ; 74 26 15726 15756 mov ax, word [bp-018h] ; 8b 46 e8 15727 15757 mov ds, [bp-008h] ; 8e 5e f8 … … 15732 15762 xor dx, dx ; 31 d2 15733 15763 mov cx, word [bp-012h] ; 8b 4e ee 15734 jcxz 0a2 a8h ; e3 0615764 jcxz 0a2d8h ; e3 06 15735 15765 sal ax, 1 ; d1 e0 15736 15766 rcl dx, 1 ; d1 d2 15737 loop 0a2 a2h ; e2 fa15767 loop 0a2d2h ; e2 fa 15738 15768 lds bx, [bp-010h] ; c5 5e f0 15739 15769 or word [bx], ax ; 09 07 … … 15744 15774 mov ds, [bp-006h] ; 8e 5e fa 15745 15775 cmp ax, word [si+002h] ; 3b 44 02 15746 jc short 0a2 c6h ; 72 0615747 jne short 0a2 cch ; 75 0a15776 jc short 0a2f6h ; 72 06 15777 jne short 0a2fch ; 75 0a 15748 15778 cmp dx, word [si] ; 3b 14 15749 jnc short 0a2 cch ; 73 0615779 jnc short 0a2fch ; 73 06 15750 15780 mov AL, strict byte 001h ; b0 01 15751 jmp short 0a2 ceh ; eb 0415752 jmp short 0a 2edh ; eb 2115781 jmp short 0a2feh ; eb 04 15782 jmp short 0a31dh ; eb 21 15753 15783 xor al, al ; 30 c0 15754 15784 test al, al ; 84 c0 15755 je short 0a 2e1h ; 74 0f15756 jmp short 0a 2edh ; eb 1915785 je short 0a311h ; 74 0f 15786 jmp short 0a31dh ; eb 19 15757 15787 mov cx, strict word 0001fh ; b9 1f 00 15758 15788 sal word [bp-018h], 1 ; d1 66 e8 15759 15789 rcl word [bp-016h], 1 ; d1 56 ea 15760 loop 0a 2d7h ; e2 f815761 jmp short 0a 2e7h ; eb 0615790 loop 0a307h ; e2 f8 15791 jmp short 0a317h ; eb 06 15762 15792 shr word [bp-016h], 1 ; d1 6e ea 15763 15793 rcr word [bp-018h], 1 ; d1 5e e8 15764 15794 dec word [bp-012h] ; ff 4e ee 15765 jmp near 0a2 69h ; e9 7c ff15795 jmp near 0a299h ; e9 7c ff 15766 15796 mov ax, word [bp-01ch] ; 8b 46 e4 15767 15797 mov dx, word [bp-01ah] ; 8b 56 e6 … … 15772 15802 retn ; c3 15773 15803 times 0x6 db 0 15774 _ASMBitLastSetU16: ; 0xfa3 00 LB 0x1815804 _ASMBitLastSetU16: ; 0xfa330 LB 0x18 15775 15805 push bp ; 55 15776 15806 db 08bh, 0ech … … 15778 15808 mov cx, word [bp+004h] ; 8b 4e 04 15779 15809 test cx, cx ; 85 c9 15780 je short 0a3 14h ; 74 0a15810 je short 0a344h ; 74 0a 15781 15811 mov ax, strict word 00010h ; b8 10 00 15782 15812 sal cx, 1 ; d1 e1 15783 jc short 0a3 16h ; 72 0515813 jc short 0a346h ; 72 05 15784 15814 dec ax ; 48 15785 jmp short 0a3 0dh ; eb f915815 jmp short 0a33dh ; eb f9 15786 15816 db 033h, 0c0h 15787 15817 ; xor ax, ax ; 33 c0 … … 15789 15819 retn ; c3 15790 15820 15791 ; Padding 0x36 e8 bytes at 0xfa31815792 times 140 56db 015821 ; Padding 0x36b8 bytes at 0xfa348 15822 times 14008 db 0 15793 15823 15794 15824 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15837 15867 add bp, strict byte 00008h ; 83 c5 08 15838 15868 push ebp ; 66 55 15839 mov bp, 0a0 86h ; bd 86 a015869 mov bp, 0a0b6h ; bd b6 a0 15840 15870 add byte [bx+si], al ; 00 00 15841 15871 push ebp ; 66 55 … … 16361 16391 mov ax, 0027fh ; b8 7f 02 16362 16392 mov word [00413h], ax ; a3 13 04 16363 mov ax, 0e9 d6h ; b8 d6e916393 mov ax, 0e9cch ; b8 cc e9 16364 16394 mov word [00018h], ax ; a3 18 00 16365 16395 mov ax, 0f000h ; b8 00 f0 … … 16446 16476 mov dx, 0c800h ; ba 00 c8 16447 16477 call 01600h ; e8 ea 33 16448 call 04e abh ; e8 926c16478 call 04ed9h ; e8 c0 6c 16449 16479 pop DS ; 1f 16450 16480 mov ax, 0ff53h ; b8 53 ff … … 16563 16593 call 01c9fh ; e8 63 39 16564 16594 call 02118h ; e8 d9 3d 16565 call 098 c8h ; e8 86b516566 call 087 53h ; e8 0ea416595 call 098f6h ; e8 b4 b5 16596 call 08781h ; e8 3c a4 16567 16597 call 0ed2fh ; e8 e7 09 16568 16598 call 0e2d2h ; e8 87 ff … … 16574 16604 call 01600h ; e8 a9 32 16575 16605 call 0178dh ; e8 33 34 16576 call 03b 23h ; e8 c65716606 call 03b50h ; e8 f3 57 16577 16607 sti ; fb 16578 16608 int 019h ; cd 19 … … 16676 16706 pop DS ; 1f 16677 16707 cld ; fc 16678 call 064 10h ; e8 ce7c16708 call 0643eh ; e8 fc 7c 16679 16709 popaw ; 61 16680 16710 pop ES ; 07 … … 16752 16782 pop DS ; 1f 16753 16783 cld ; fc 16754 call 05 6dbh ; e8 996e16784 call 05709h ; e8 c7 6e 16755 16785 popaw ; 61 16756 16786 pop DS ; 1f … … 16769 16799 pop DS ; 1f 16770 16800 cld ; fc 16771 call 05 6dbh ; e8 7b6e16801 call 05709h ; e8 a9 6e 16772 16802 popaw ; 61 16773 16803 pop DS ; 1f … … 16777 16807 times 0x121 db 0 16778 16808 db 'XM' 16779 biosorg_check_at_0E987h: ; 0xfe987 LB 0x5 c16809 biosorg_check_at_0E987h: ; 0xfe987 LB 0x52 16780 16810 cli ; fa 16781 16811 push ax ; 50 16782 16812 mov AL, strict byte 0adh ; b0 ad 16783 16813 out strict byte 064h, AL ; e6 64 16784 mov AL, strict byte 00bh ; b0 0b16785 out strict byte 020h, AL ; e6 2016786 in AL, strict byte 020h ; e4 2016787 and AL, strict byte 002h ; 24 0216788 je short 0e9d0h ; 74 3916789 16814 in AL, strict byte 060h ; e4 60 16790 16815 push DS ; 1e … … 16794 16819 stc ; f9 16795 16820 int 015h ; cd 15 16796 jnc short 0e9c ah ; 73 2716821 jnc short 0e9c0h ; 73 27 16797 16822 sti ; fb 16798 16823 cmp AL, strict byte 0e0h ; 3c e0 16799 jne short 0e9 b3h ; 75 0b16824 jne short 0e9a9h ; 75 0b 16800 16825 db 033h, 0c0h 16801 16826 ; xor ax, ax ; 33 c0 16802 16827 mov ds, ax ; 8e d8 16803 16828 or byte [00496h], 002h ; 80 0e 96 04 02 16804 jmp short 0e9c ah ; eb 1716829 jmp short 0e9c0h ; eb 17 16805 16830 cmp AL, strict byte 0e1h ; 3c e1 16806 jne short 0e9 c2h ; 75 0b16831 jne short 0e9b8h ; 75 0b 16807 16832 db 033h, 0c0h 16808 16833 ; xor ax, ax ; 33 c0 16809 16834 mov ds, ax ; 8e d8 16810 16835 or byte [00496h], 001h ; 80 0e 96 04 01 16811 jmp short 0e9c ah ; eb 0816836 jmp short 0e9c0h ; eb 08 16812 16837 push ES ; 06 16813 16838 push CS ; 0e 16814 16839 pop DS ; 1f 16815 16840 cld ; fc 16816 call 051 b3h ; e8 ea 6716841 call 051e1h ; e8 22 68 16817 16842 pop ES ; 07 16818 16843 popaw ; 61 16819 16844 pop DS ; 1f 16820 16845 cli ; fa 16821 call 0e034h ; e8 6 4f616846 call 0e034h ; e8 6e f6 16822 16847 mov AL, strict byte 0aeh ; b0 ae 16823 16848 out strict byte 064h, AL ; e6 64 … … 16830 16855 pop DS ; 1f 16831 16856 cld ; fc 16832 call 06e b7h ; e8 d8 8416857 call 06ee5h ; e8 10 85 16833 16858 pop DS ; 1f 16834 16859 pop ES ; 07 16835 16860 popaw ; 61 16836 16861 iret ; cf 16837 biosorg_check_before_or_at_0EC57h: ; 0xfe9 e3 LB 0x27616838 times 0x27 4db 016862 biosorg_check_before_or_at_0EC57h: ; 0xfe9d9 LB 0x280 16863 times 0x27e db 0 16839 16864 db 'XM' 16840 16865 biosorg_check_at_0EC59h: ; 0xfec59 LB 0x2 … … 16852 16877 cld ; fc 16853 16878 push 0ece9h ; 68 e9 ec 16854 jmp near 03b 67h ; e9 f6 4e16879 jmp near 03b94h ; e9 23 4f 16855 16880 push ES ; 06 16856 16881 push ax ; 50 … … 16858 16883 push cx ; 51 16859 16884 push dx ; 52 16860 call 03b 3bh ; e8 c24e16885 call 03b68h ; e8 ef 4e 16861 16886 cmp AL, strict byte 000h ; 3c 00 16862 16887 je short 0ecabh ; 74 2e 16863 call 03b 51h ; e8 d14e16888 call 03b7eh ; e8 fe 4e 16864 16889 pop dx ; 5a 16865 16890 push dx ; 52 … … 16879 16904 cld ; fc 16880 16905 push 0ece9h ; 68 e9 ec 16881 jmp near 041 60h ; e9 c95416906 jmp near 0418eh ; e9 f7 54 16882 16907 and dl, 0e0h ; 80 e2 e0 16883 16908 db 03ah, 0c2h … … 16919 16944 jne short 0ecc8h ; 75 06 16920 16945 push 0ece9h ; 68 e9 ec 16921 jmp near 031 78h ; e9 b04416946 jmp near 0314fh ; e9 87 44 16922 16947 int13_notfloppy: ; 0xfecc8 LB 0x14 16923 16948 cmp dl, 0e0h ; 80 fa e0 … … 16925 16950 shr ebx, 010h ; 66 c1 eb 10 16926 16951 push bx ; 53 16927 call 045 a2h ; e8 cd5816952 call 045d0h ; e8 fb 58 16928 16953 pop bx ; 5b 16929 16954 sal ebx, 010h ; 66 c1 e3 10 … … 16932 16957 cmp ah, 040h ; 80 fc 40 16933 16958 jnbe short 0ece6h ; 77 05 16934 call 05a b2h ; e8 ce6d16959 call 05ae0h ; e8 fc 6d 16935 16960 jmp short 0ece9h ; eb 03 16936 call 05f 01h ; e8 187216961 call 05f2fh ; e8 46 72 16937 16962 int13_out: ; 0xfece9 LB 0x4 16938 16963 pop DS ; 1f … … 17148 17173 pop DS ; 1f 17149 17174 cld ; fc 17150 call 078 55h ; e8 788817175 call 07883h ; e8 a6 88 17151 17176 popaw ; 61 17152 17177 pop ES ; 07 … … 17199 17224 mov ax, strict word 00001h ; b8 01 00 17200 17225 push ax ; 50 17201 call 04c 27h ; e8 575b17226 call 04c55h ; e8 85 5b 17202 17227 inc sp ; 44 17203 17228 inc sp ; 44 … … 17206 17231 mov ax, strict word 00002h ; b8 02 00 17207 17232 push ax ; 50 17208 call 04c 27h ; e8 4a5b17233 call 04c55h ; e8 78 5b 17209 17234 inc sp ; 44 17210 17235 inc sp ; 44 … … 17213 17238 mov ax, strict word 00003h ; b8 03 00 17214 17239 push ax ; 50 17215 call 04c 27h ; e8 3d5b17240 call 04c55h ; e8 6b 5b 17216 17241 inc sp ; 44 17217 17242 inc sp ; 44 … … 17220 17245 mov ax, strict word 00004h ; b8 04 00 17221 17246 push ax ; 50 17222 call 04c 27h ; e8 305b17247 call 04c55h ; e8 5e 5b 17223 17248 inc sp ; 44 17224 17249 inc sp ; 44 … … 17504 17529 pop DS ; 1f 17505 17530 cld ; fc 17506 call 06d 2dh ; e8 c67417531 call 06d5bh ; e8 f4 74 17507 17532 pop DS ; 1f 17508 17533 pop ES ; 07 … … 17526 17551 cmp ah, 0c2h ; 80 fc c2 17527 17552 je short 0f899h ; 74 0e 17528 call 066 67h ; e8 d9 6d17553 call 06695h ; e8 07 6e 17529 17554 popaw ; 61 17530 17555 pop ES ; 07 … … 17532 17557 popfw ; 9d 17533 17558 jmp short 0f8a5h ; eb 11 17534 call 09a 1ah ; e8 83a117559 call 09a48h ; e8 b1 a1 17535 17560 jmp short 0f88eh ; eb f5 17536 17561 int15_handler_mouse: ; 0xff899 LB 0x5 17537 call 074 c8h ; e8 2c7c17562 call 074f6h ; e8 5a 7c 17538 17563 jmp short 0f88eh ; eb f0 17539 17564 int15_handler32: ; 0xff89e LB 0x7 17540 17565 pushaw ; 60 17541 call 069 a3h ; e8 017117566 call 069d1h ; e8 2f 71 17542 17567 popaw ; 61 17543 17568 jmp short 0f88fh ; eb ea … … 17571 17596 pop DS ; 1f 17572 17597 cld ; fc 17573 call 07 3f6h ; e8 2c7b17598 call 07424h ; e8 5a 7b 17574 17599 pop cx ; 59 17575 17600 jcxz 0f8d9h ; e3 0c … … 17603 17628 pop DS ; 1f 17604 17629 cld ; fc 17605 call 070 9bh ; e8 9c7717630 call 070c9h ; e8 ca 77 17606 17631 popaw ; 61 17607 17632 pop DS ; 1f … … 17692 17717 pop DS ; 1f 17693 17718 cld ; fc 17694 call 071 5ah ; e8 e3 7217719 call 07188h ; e8 11 73 17695 17720 popaw ; 61 17696 17721 pop DS ; 1f … … 17797 17822 cpu_reset: ; 0xffff0 LB 0x10 17798 17823 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17799 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 0 01h17824 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 04dh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative286.md5sum
r66146 r67495 1 3b558b13e9e59388473cb5453a4db1d3*VBoxPcBios286.rom1 6082f0eb1fd2fca0245f382a0d155fa7 *VBoxPcBios286.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.asm
r66146 r67495 11 11 ; 12 12 ; 13 ; Copyright (C) 2004-201 6Oracle Corporation13 ; Copyright (C) 2004-2017 Oracle Corporation 14 14 ; 15 15 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 880 880 ; 881 881 ; 882 ; Copyright (C) 2006-201 6Oracle Corporation882 ; Copyright (C) 2006-2017 Oracle Corporation 883 883 ; 884 884 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 951 951 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 952 952 _pktacc: ; 0xf006a LB 0xc 953 db 000h, 000h, 000h, 000h, 000h, 000h, 0 cch, 02bh, 01ch, 081h, 043h, 090h953 db 000h, 000h, 000h, 000h, 000h, 000h, 05dh, 02ch, 006h, 082h, 02dh, 091h 954 954 _softrst: ; 0xf0076 LB 0xc 955 db 000h, 000h, 000h, 000h, 000h, 000h, 0 b4h, 02eh, 0c1h, 03bh, 0c1h, 03bh955 db 000h, 000h, 000h, 000h, 000h, 000h, 045h, 02fh, 0aah, 03ch, 0aah, 03ch 956 956 _dskacc: ; 0xf0082 LB 0x2e 957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 0 bch, 02ah, 071h, 02bh, 000h, 000h, 000h, 000h958 db 0 66h, 07fh, 041h, 080h, 019h, 08fh, 0bfh, 08fh, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h957 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 04dh, 02bh, 002h, 02ch, 000h, 000h, 000h, 000h 958 db 050h, 080h, 02bh, 081h, 003h, 090h, 0a9h, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 959 959 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 960 960 961 section CONST progbits vstart=0xb0 align=1 ; size=0xcde class=DATA group=DGROUP 961 section CONST progbits vstart=0xb0 align=1 ; size=0xcf0 class=DATA group=DGROUP 962 db 'CPUID EDX: 0x%lx', 00ah, 000h 962 963 db 'NMI Handler called', 00ah, 000h 963 964 db 'INT18: BOOT FAILURE', 00ah, 000h … … 1077 1078 db 'PCI: Unsupported function AX=%04X BX=%04X called', 00ah, 000h 1078 1079 1079 section CONST2 progbits vstart=0xd 8ealign=1 ; size=0x3fa class=DATA group=DGROUP1080 _bios_cvs_version_string: ; 0xf0d 8eLB 0x121080 section CONST2 progbits vstart=0xda0 align=1 ; size=0x3fa class=DATA group=DGROUP 1081 _bios_cvs_version_string: ; 0xf0da0 LB 0x12 1081 1082 db 'VirtualBox 5.1.51', 000h 1082 _bios_prefix_string: ; 0xf0d a0LB 0x81083 _bios_prefix_string: ; 0xf0db2 LB 0x8 1083 1084 db 'BIOS: ', 000h, 000h 1084 _isotag: ; 0xf0d a8LB 0x61085 _isotag: ; 0xf0dba LB 0x6 1085 1086 db 'CD001', 000h 1086 _eltorito: ; 0xf0d aeLB 0x181087 _eltorito: ; 0xf0dc0 LB 0x18 1087 1088 db 'EL TORITO SPECIFICATION', 000h 1088 _drivetypes: ; 0xf0d c6LB 0x281089 _drivetypes: ; 0xf0dd8 LB 0x28 1089 1090 db 046h, 06ch, 06fh, 070h, 070h, 079h, 000h, 000h, 000h, 000h, 048h, 061h, 072h, 064h, 020h, 044h 1090 1091 db 069h, 073h, 06bh, 000h, 043h, 044h, 02dh, 052h, 04fh, 04dh, 000h, 000h, 000h, 000h, 04ch, 041h 1091 1092 db 04eh, 000h, 000h, 000h, 000h, 000h, 000h, 000h 1092 _scan_to_scanascii: ; 0xf0 deeLB 0x37a1093 _scan_to_scanascii: ; 0xf0e00 LB 0x37a 1093 1094 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 01bh, 001h, 01bh, 001h, 01bh, 001h 1094 1095 db 000h, 001h, 000h, 000h, 031h, 002h, 021h, 002h, 000h, 000h, 000h, 078h, 000h, 000h, 032h, 003h … … 1147 1148 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 000h, 087h, 000h, 089h, 000h, 08bh, 000h, 000h 1148 1149 db 000h, 086h, 000h, 088h, 000h, 08ah, 000h, 08ch, 000h, 000h 1149 _panic_msg_keyb_buffer_full: ; 0xf11 68LB 0x201150 _panic_msg_keyb_buffer_full: ; 0xf117a LB 0x20 1150 1151 db '%s: keyboard input buffer full', 00ah, 000h 1151 1152 1152 ; Padding 0x4 78 bytes at 0xf11881153 times 11 44db 01153 ; Padding 0x466 bytes at 0xf119a 1154 times 1126 db 0 1154 1155 1155 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 9f5 class=CODE group=AUTO1156 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8ae5 class=CODE group=AUTO 1156 1157 rom_scan_: ; 0xf1600 LB 0x50 1157 1158 push bp ; 55 … … 1195 1196 pop bp ; 5d 1196 1197 retn ; c3 1197 _apic_setup: ; 0xf1650 LB 0x68 1198 is_cpuid_supported_: ; 0xf1650 LB 0x42 1199 push bp ; 55 1200 mov bp, sp ; 89 e5 1201 push bx ; 53 1202 push cx ; 51 1203 push dx ; 52 1204 pushfd ; 66 9c 1205 pop edx ; 66 5a 1206 db 08bh, 0c2h 1207 ; mov ax, dx ; 8b c2 1208 shr edx, 010h ; 66 c1 ea 10 1209 mov bx, ax ; 89 c3 1210 mov cx, dx ; 89 d1 1211 xor dl, 020h ; 80 f2 20 1212 sal edx, 010h ; 66 c1 e2 10 1213 db 08bh, 0d0h 1214 ; mov dx, ax ; 8b d0 1215 push edx ; 66 52 1216 popfd ; 66 9d 1217 pushfd ; 66 9c 1218 pop edx ; 66 5a 1219 db 08bh, 0c2h 1220 ; mov ax, dx ; 8b c2 1221 shr edx, 010h ; 66 c1 ea 10 1222 cmp cx, dx ; 39 d1 1223 jne short 01683h ; 75 04 1224 cmp bx, ax ; 39 c3 1225 je short 01688h ; 74 05 1226 mov ax, strict word 00001h ; b8 01 00 1227 jmp short 0168ah ; eb 02 1228 xor ax, ax ; 31 c0 1229 lea sp, [bp-006h] ; 8d 66 fa 1230 pop dx ; 5a 1231 pop cx ; 59 1232 pop bx ; 5b 1233 pop bp ; 5d 1234 retn ; c3 1235 _apic_setup: ; 0xf1692 LB 0xb7 1198 1236 push bp ; 55 1199 1237 mov bp, sp ; 89 e5 1200 1238 push si ; 56 1201 1239 push di ; 57 1240 sub sp, strict byte 00010h ; 83 ec 10 1241 call 01650h ; e8 b3 ff 1242 test ax, ax ; 85 c0 1243 je near 01742h ; 0f 84 9f 00 1244 mov ax, strict word 00001h ; b8 01 00 1245 xor dx, dx ; 31 d2 1246 push SS ; 16 1247 pop ES ; 07 1248 lea di, [bp-014h] ; 8d 7e ec 1249 sal edx, 010h ; 66 c1 e2 10 1250 db 08bh, 0d0h 1251 ; mov dx, ax ; 8b d0 1252 db 066h, 08bh, 0c2h 1253 ; mov eax, edx ; 66 8b c2 1254 cpuid ; 0f a2 1255 db 066h, 026h, 089h, 005h 1256 ; mov dword [es:di], eax ; 66 26 89 05 1257 db 066h, 026h, 089h, 05dh, 004h 1258 ; mov dword [es:di+004h], ebx ; 66 26 89 5d 04 1259 db 066h, 026h, 089h, 04dh, 008h 1260 ; mov dword [es:di+008h], ecx ; 66 26 89 4d 08 1261 db 066h, 026h, 089h, 055h, 00ch 1262 ; mov dword [es:di+00ch], edx ; 66 26 89 55 0c 1263 mov ax, word [bp-008h] ; 8b 46 f8 1264 mov dx, word [bp-006h] ; 8b 56 fa 1265 push dx ; 52 1266 push ax ; 50 1267 push 000b0h ; 68 b0 00 1268 push strict byte 00004h ; 6a 04 1269 call 01a6bh ; e8 90 03 1270 add sp, strict byte 00008h ; 83 c4 08 1271 mov ax, word [bp-008h] ; 8b 46 f8 1272 test ah, 002h ; f6 c4 02 1273 je short 01742h ; 74 5c 1202 1274 mov ax, strict word 00078h ; b8 78 00 1203 call 017 14h ; e8 b9 001275 call 017a5h ; e8 b9 00 1204 1276 cmp AL, strict byte 002h ; 3c 02 1205 jne short 016 64h ; 75 051277 jne short 016f5h ; 75 05 1206 1278 mov si, 00400h ; be 00 04 1207 jmp short 01 673h ; eb 0f1279 jmp short 01704h ; eb 0f 1208 1280 test al, al ; 84 c0 1209 jne short 016 6dh ; 75 051281 jne short 016feh ; 75 05 1210 1282 mov si, 00800h ; be 00 08 1211 jmp short 01 66fh ; eb 021283 jmp short 01700h ; eb 02 1212 1284 xor si, si ; 31 f6 1213 1285 test si, si ; 85 f6 1214 je short 01 6b1h ; 74 3e1286 je short 01742h ; 74 3e 1215 1287 mov ax, strict word 0001bh ; b8 1b 00 1216 1288 xor cx, cx ; 31 c9 … … 1249 1321 pop bp ; 5d 1250 1322 retn ; c3 1251 read_byte_: ; 0xf1 6b8LB 0xe1323 read_byte_: ; 0xf1749 LB 0xe 1252 1324 push bx ; 53 1253 1325 push bp ; 55 … … 1259 1331 pop bx ; 5b 1260 1332 retn ; c3 1261 write_byte_: ; 0xf1 6c6LB 0xe1333 write_byte_: ; 0xf1757 LB 0xe 1262 1334 push si ; 56 1263 1335 push bp ; 55 … … 1269 1341 pop si ; 5e 1270 1342 retn ; c3 1271 read_word_: ; 0xf1 6d4LB 0xe1343 read_word_: ; 0xf1765 LB 0xe 1272 1344 push bx ; 53 1273 1345 push bp ; 55 … … 1279 1351 pop bx ; 5b 1280 1352 retn ; c3 1281 write_word_: ; 0xf1 6e2LB 0xe1353 write_word_: ; 0xf1773 LB 0xe 1282 1354 push si ; 56 1283 1355 push bp ; 55 … … 1289 1361 pop si ; 5e 1290 1362 retn ; c3 1291 read_dword_: ; 0xf1 6f0LB 0x121363 read_dword_: ; 0xf1781 LB 0x12 1292 1364 push bx ; 53 1293 1365 push bp ; 55 … … 1300 1372 pop bx ; 5b 1301 1373 retn ; c3 1302 write_dword_: ; 0xf17 02LB 0x121374 write_dword_: ; 0xf1793 LB 0x12 1303 1375 push si ; 56 1304 1376 push bp ; 55 … … 1311 1383 pop si ; 5e 1312 1384 retn ; c3 1313 inb_cmos_: ; 0xf17 14LB 0x1d1385 inb_cmos_: ; 0xf17a5 LB 0x1d 1314 1386 push bp ; 55 1315 1387 mov bp, sp ; 89 e5 … … 1317 1389 mov AH, strict byte 070h ; b4 70 1318 1390 cmp AL, strict byte 080h ; 3c 80 1319 jc short 017 20h ; 72 021391 jc short 017b1h ; 72 02 1320 1392 mov AH, strict byte 072h ; b4 72 1321 1393 movzx dx, ah ; 0f b6 d4 … … 1330 1402 pop bp ; 5d 1331 1403 retn ; c3 1332 outb_cmos_: ; 0xf17 31LB 0x1f1404 outb_cmos_: ; 0xf17c2 LB 0x1f 1333 1405 push bp ; 55 1334 1406 mov bp, sp ; 89 e5 … … 1337 1409 mov BL, strict byte 070h ; b3 70 1338 1410 cmp AL, strict byte 080h ; 3c 80 1339 jc short 017 3fh ; 72 021411 jc short 017d0h ; 72 02 1340 1412 mov BL, strict byte 072h ; b3 72 1341 1413 movzx dx, bl ; 0f b6 d3 … … 1349 1421 pop bp ; 5d 1350 1422 retn ; c3 1351 _dummy_isr_function: ; 0xf17 50LB 0x6b1423 _dummy_isr_function: ; 0xf17e1 LB 0x6b 1352 1424 push bp ; 55 1353 1425 mov bp, sp ; 89 e5 … … 1363 1435 mov byte [bp-002h], al ; 88 46 fe 1364 1436 test al, al ; 84 c0 1365 je short 01 7abh ; 74 431437 je short 0183ch ; 74 43 1366 1438 mov AL, strict byte 00bh ; b0 0b 1367 1439 mov dx, 000a0h ; ba a0 00 … … 1372 1444 mov cx, ax ; 89 c1 1373 1445 test al, al ; 84 c0 1374 je short 01 78dh ; 74 161446 je short 0181eh ; 74 16 1375 1447 mov dx, 000a1h ; ba a1 00 1376 1448 in AL, DX ; ec … … 1384 1456 mov dx, 000a0h ; ba a0 00 1385 1457 out DX, AL ; ee 1386 jmp short 01 7a2h ; eb 151458 jmp short 01833h ; eb 15 1387 1459 mov dx, strict word 00021h ; ba 21 00 1388 1460 in AL, DX ; ec … … 1402 1474 mov dx, strict word 0006bh ; ba 6b 00 1403 1475 mov ax, strict word 00040h ; b8 40 00 1404 call 01 6c6h ; e8 0f ff1476 call 01757h ; e8 0f ff 1405 1477 mov sp, bp ; 89 ec 1406 1478 pop bp ; 5d 1407 1479 retn ; c3 1408 _nmi_handler_msg: ; 0xf1 7bbLB 0x121480 _nmi_handler_msg: ; 0xf184c LB 0x12 1409 1481 push bp ; 55 1410 1482 mov bp, sp ; 89 e5 1411 push 000 b0h ; 68 b0001483 push 000c2h ; 68 c2 00 1412 1484 push strict byte 00007h ; 6a 07 1413 call 01 9dah ; e8 14 021485 call 01a6bh ; e8 14 02 1414 1486 add sp, strict byte 00004h ; 83 c4 04 1415 1487 mov sp, bp ; 89 ec 1416 1488 pop bp ; 5d 1417 1489 retn ; c3 1418 _int18_panic_msg: ; 0xf1 7cdLB 0x121490 _int18_panic_msg: ; 0xf185e LB 0x12 1419 1491 push bp ; 55 1420 1492 mov bp, sp ; 89 e5 1421 push 000 c4h ; 68 c4001493 push 000d6h ; 68 d6 00 1422 1494 push strict byte 00007h ; 6a 07 1423 call 01 9dah ; e8 02 021495 call 01a6bh ; e8 02 02 1424 1496 add sp, strict byte 00004h ; 83 c4 04 1425 1497 mov sp, bp ; 89 ec 1426 1498 pop bp ; 5d 1427 1499 retn ; c3 1428 _log_bios_start: ; 0xf1 7dfLB 0x201500 _log_bios_start: ; 0xf1870 LB 0x20 1429 1501 push bp ; 55 1430 1502 mov bp, sp ; 89 e5 1431 mov bx, 00d a0h ; bb a00d1503 mov bx, 00db2h ; bb b2 0d 1432 1504 mov cx, ds ; 8c d9 1433 1505 mov ax, strict word 00004h ; b8 04 00 1434 call 01 999h ; e8 ac 011435 push 00d 8eh ; 68 8e0d1436 push 000 d9h ; 68 d9001506 call 01a2ah ; e8 ac 01 1507 push 00da0h ; 68 a0 0d 1508 push 000ebh ; 68 eb 00 1437 1509 push strict byte 00004h ; 6a 04 1438 call 01 9dah ; e8 e2 011510 call 01a6bh ; e8 e2 01 1439 1511 add sp, strict byte 00006h ; 83 c4 06 1440 1512 mov sp, bp ; 89 ec 1441 1513 pop bp ; 5d 1442 1514 retn ; c3 1443 _print_bios_banner: ; 0xf1 7ffLB 0x2e1515 _print_bios_banner: ; 0xf1890 LB 0x2e 1444 1516 push bp ; 55 1445 1517 mov bp, sp ; 89 e5 1446 1518 mov dx, strict word 00072h ; ba 72 00 1447 1519 mov ax, strict word 00040h ; b8 40 00 1448 call 01 6d4h ; e8 c9 fe1520 call 01765h ; e8 c9 fe 1449 1521 mov cx, ax ; 89 c1 1450 1522 xor bx, bx ; 31 db 1451 1523 mov dx, strict word 00072h ; ba 72 00 1452 1524 mov ax, strict word 00040h ; b8 40 00 1453 call 01 6e2h ; e8 ca fe1525 call 01773h ; e8 ca fe 1454 1526 cmp cx, 01234h ; 81 f9 34 12 1455 jne short 018 26h ; 75 081527 jne short 018b7h ; 75 08 1456 1528 mov AL, strict byte 003h ; b0 03 1457 1529 mov AH, strict byte 000h ; b4 00 1458 1530 int 010h ; cd 10 1459 jmp short 018 29h ; eb 031460 call 07 b24h ; e8 fb 621531 jmp short 018bah ; eb 03 1532 call 07c0eh ; e8 54 63 1461 1533 mov sp, bp ; 89 ec 1462 1534 pop bp ; 5d 1463 1535 retn ; c3 1464 send_: ; 0xf18 2dLB 0x3b1536 send_: ; 0xf18be LB 0x3b 1465 1537 push bp ; 55 1466 1538 mov bp, sp ; 89 e5 … … 1470 1542 mov cl, dl ; 88 d1 1471 1543 test AL, strict byte 008h ; a8 08 1472 je short 018 40h ; 74 061544 je short 018d1h ; 74 06 1473 1545 mov al, dl ; 88 d0 1474 1546 mov dx, 00403h ; ba 03 04 1475 1547 out DX, AL ; ee 1476 1548 test bl, 004h ; f6 c3 04 1477 je short 018 4bh ; 74 061549 je short 018dch ; 74 06 1478 1550 mov al, cl ; 88 c8 1479 1551 mov dx, 00504h ; ba 04 05 1480 1552 out DX, AL ; ee 1481 1553 test bl, 002h ; f6 c3 02 1482 je short 018 61h ; 74 111554 je short 018f2h ; 74 11 1483 1555 cmp cl, 00ah ; 80 f9 0a 1484 jne short 018 5bh ; 75 061556 jne short 018ech ; 75 06 1485 1557 mov AL, strict byte 00dh ; b0 0d 1486 1558 mov AH, strict byte 00eh ; b4 0e … … 1494 1566 pop bp ; 5d 1495 1567 retn ; c3 1496 put_int_: ; 0xf18 68LB 0x5f1568 put_int_: ; 0xf18f9 LB 0x5f 1497 1569 push bp ; 55 1498 1570 mov bp, sp ; 89 e5 … … 1509 1581 mov word [bp-006h], ax ; 89 46 fa 1510 1582 test ax, ax ; 85 c0 1511 je short 01 88dh ; 74 0a1583 je short 0191eh ; 74 0a 1512 1584 dec bx ; 4b 1513 1585 mov dx, ax ; 89 c2 1514 1586 mov ax, si ; 89 f0 1515 call 018 68h ; e8 dd ff1516 jmp short 01 8a8h ; eb 1b1587 call 018f9h ; e8 dd ff 1588 jmp short 01939h ; eb 1b 1517 1589 dec bx ; 4b 1518 1590 test bx, bx ; 85 db 1519 jle short 01 89ch ; 7e 0a1591 jle short 0192dh ; 7e 0a 1520 1592 mov dx, strict word 00020h ; ba 20 00 1521 1593 mov ax, si ; 89 f0 1522 call 018 2dh ; e8 93 ff1523 jmp short 01 88dh ; eb f11594 call 018beh ; e8 93 ff 1595 jmp short 0191eh ; eb f1 1524 1596 test cx, cx ; 85 c9 1525 je short 01 8a8h ; 74 081597 je short 01939h ; 74 08 1526 1598 mov dx, strict word 0002dh ; ba 2d 00 1527 1599 mov ax, si ; 89 f0 1528 call 018 2dh ; e8 85 ff1600 call 018beh ; e8 85 ff 1529 1601 mov al, byte [bp-006h] ; 8a 46 fa 1530 1602 mov DL, strict byte 00ah ; b2 0a … … 1536 1608 movzx dx, al ; 0f b6 d0 1537 1609 mov ax, si ; 89 f0 1538 call 018 2dh ; e8 6d ff1610 call 018beh ; e8 6d ff 1539 1611 lea sp, [bp-004h] ; 8d 66 fc 1540 1612 pop di ; 5f … … 1542 1614 pop bp ; 5d 1543 1615 retn ; c3 1544 put_uint_: ; 0xf1 8c7LB 0x601616 put_uint_: ; 0xf1958 LB 0x60 1545 1617 push bp ; 55 1546 1618 mov bp, sp ; 89 e5 … … 1557 1629 mov word [bp-006h], ax ; 89 46 fa 1558 1630 test ax, ax ; 85 c0 1559 je short 01 8edh ; 74 0a1631 je short 0197eh ; 74 0a 1560 1632 dec bx ; 4b 1561 1633 mov dx, ax ; 89 c2 1562 1634 mov ax, si ; 89 f0 1563 call 01 8c7h ; e8 dc ff1564 jmp short 019 08h ; eb 1b1635 call 01958h ; e8 dc ff 1636 jmp short 01999h ; eb 1b 1565 1637 dec bx ; 4b 1566 1638 test bx, bx ; 85 db 1567 jle short 01 8fch ; 7e 0a1639 jle short 0198dh ; 7e 0a 1568 1640 mov dx, strict word 00020h ; ba 20 00 1569 1641 mov ax, si ; 89 f0 1570 call 018 2dh ; e8 33 ff1571 jmp short 01 8edh ; eb f11642 call 018beh ; e8 33 ff 1643 jmp short 0197eh ; eb f1 1572 1644 test cx, cx ; 85 c9 1573 je short 019 08h ; 74 081645 je short 01999h ; 74 08 1574 1646 mov dx, strict word 0002dh ; ba 2d 00 1575 1647 mov ax, si ; 89 f0 1576 call 018 2dh ; e8 25 ff1648 call 018beh ; e8 25 ff 1577 1649 mov al, byte [bp-006h] ; 8a 46 fa 1578 1650 mov DL, strict byte 00ah ; b2 0a … … 1584 1656 movzx dx, al ; 0f b6 d0 1585 1657 mov ax, si ; 89 f0 1586 call 018 2dh ; e8 0d ff1658 call 018beh ; e8 0d ff 1587 1659 lea sp, [bp-004h] ; 8d 66 fc 1588 1660 pop di ; 5f … … 1590 1662 pop bp ; 5d 1591 1663 retn ; c3 1592 put_luint_: ; 0xf19 27LB 0x721664 put_luint_: ; 0xf19b8 LB 0x72 1593 1665 push bp ; 55 1594 1666 mov bp, sp ; 89 e5 … … 1604 1676 mov bx, strict word 0000ah ; bb 0a 00 1605 1677 xor cx, cx ; 31 c9 1606 call 09f 00h ; e8 bf 851678 call 09ff0h ; e8 1e 86 1607 1679 mov word [bp-008h], ax ; 89 46 f8 1608 1680 mov cx, dx ; 89 d1 1609 1681 mov dx, ax ; 89 c2 1610 1682 or dx, cx ; 09 ca 1611 je short 019 5bh ; 74 0f1683 je short 019ech ; 74 0f 1612 1684 push word [bp+004h] ; ff 76 04 1613 1685 lea dx, [di-001h] ; 8d 55 ff 1614 1686 mov bx, ax ; 89 c3 1615 1687 mov ax, si ; 89 f0 1616 call 019 27h ; e8 ce ff1617 jmp short 01 978h ; eb 1d1688 call 019b8h ; e8 ce ff 1689 jmp short 01a09h ; eb 1d 1618 1690 dec di ; 4f 1619 1691 test di, di ; 85 ff 1620 jle short 019 6ah ; 7e 0a1692 jle short 019fbh ; 7e 0a 1621 1693 mov dx, strict word 00020h ; ba 20 00 1622 1694 mov ax, si ; 89 f0 1623 call 018 2dh ; e8 c5 fe1624 jmp short 019 5bh ; eb f11695 call 018beh ; e8 c5 fe 1696 jmp short 019ech ; eb f1 1625 1697 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 1626 je short 01 978h ; 74 081698 je short 01a09h ; 74 08 1627 1699 mov dx, strict word 0002dh ; ba 2d 00 1628 1700 mov ax, si ; 89 f0 1629 call 018 2dh ; e8 b5 fe1701 call 018beh ; e8 b5 fe 1630 1702 mov al, byte [bp-008h] ; 8a 46 f8 1631 1703 mov DL, strict byte 00ah ; b2 0a … … 1637 1709 movzx dx, al ; 0f b6 d0 1638 1710 mov ax, si ; 89 f0 1639 call 018 2dh ; e8 9d fe1711 call 018beh ; e8 9d fe 1640 1712 lea sp, [bp-004h] ; 8d 66 fc 1641 1713 pop di ; 5f … … 1643 1715 pop bp ; 5d 1644 1716 retn 00002h ; c2 02 00 1645 put_str_: ; 0xf1 999LB 0x211717 put_str_: ; 0xf1a2a LB 0x21 1646 1718 push bp ; 55 1647 1719 mov bp, sp ; 89 e5 … … 1652 1724 mov dl, byte [es:bx] ; 26 8a 17 1653 1725 test dl, dl ; 84 d2 1654 je short 01 9b3h ; 74 0a1726 je short 01a44h ; 74 0a 1655 1727 xor dh, dh ; 30 f6 1656 1728 mov ax, si ; 89 f0 1657 call 018 2dh ; e8 7d fe1729 call 018beh ; e8 7d fe 1658 1730 inc bx ; 43 1659 jmp short 01 9a0h ; eb ed1731 jmp short 01a31h ; eb ed 1660 1732 lea sp, [bp-004h] ; 8d 66 fc 1661 1733 pop si ; 5e … … 1663 1735 pop bp ; 5d 1664 1736 retn ; c3 1665 put_str_near_: ; 0xf1 9baLB 0x201737 put_str_near_: ; 0xf1a4b LB 0x20 1666 1738 push bp ; 55 1667 1739 mov bp, sp ; 89 e5 … … 1672 1744 mov dl, byte [bx] ; 8a 17 1673 1745 test dl, dl ; 84 d2 1674 je short 01 9d3h ; 74 0a1746 je short 01a64h ; 74 0a 1675 1747 xor dh, dh ; 30 f6 1676 1748 mov ax, cx ; 89 c8 1677 call 018 2dh ; e8 5d fe1749 call 018beh ; e8 5d fe 1678 1750 inc bx ; 43 1679 jmp short 01 9c3h ; eb f01751 jmp short 01a54h ; eb f0 1680 1752 lea sp, [bp-004h] ; 8d 66 fc 1681 1753 pop cx ; 59 … … 1683 1755 pop bp ; 5d 1684 1756 retn ; c3 1685 bios_printf_: ; 0xf1 9daLB 0x33d1757 bios_printf_: ; 0xf1a6b LB 0x33d 1686 1758 push bp ; 55 1687 1759 mov bp, sp ; 89 e5 … … 1700 1772 and ax, strict word 00007h ; 25 07 00 1701 1773 cmp ax, strict word 00007h ; 3d 07 00 1702 jne short 01a 08h ; 75 0b1703 push 000 deh ; 68 de001774 jne short 01a99h ; 75 0b 1775 push 000f0h ; 68 f0 00 1704 1776 push strict byte 00002h ; 6a 02 1705 call 01 9dah ; e8 d5 ff1777 call 01a6bh ; e8 d5 ff 1706 1778 add sp, strict byte 00004h ; 83 c4 04 1707 1779 mov si, word [bp+006h] ; 8b 76 06 1708 1780 mov dl, byte [si] ; 8a 14 1709 1781 test dl, dl ; 84 d2 1710 je near 01 cfbh ; 0f 84 e8 021782 je near 01d8ch ; 0f 84 e8 02 1711 1783 cmp dl, 025h ; 80 fa 25 1712 jne short 01a 20h ; 75 081784 jne short 01ab1h ; 75 08 1713 1785 mov bx, strict word 00001h ; bb 01 00 1714 1786 xor di, di ; 31 ff 1715 jmp near 01 cf5h ; e9 d5 021787 jmp near 01d86h ; e9 d5 02 1716 1788 test bx, bx ; 85 db 1717 je near 01 cedh ; 0f 84 c7 021789 je near 01d7eh ; 0f 84 c7 02 1718 1790 cmp dl, 030h ; 80 fa 30 1719 jc short 01a 3eh ; 72 131791 jc short 01acfh ; 72 13 1720 1792 cmp dl, 039h ; 80 fa 39 1721 jnbe short 01a 3eh ; 77 0e1793 jnbe short 01acfh ; 77 0e 1722 1794 movzx ax, dl ; 0f b6 c2 1723 1795 imul di, di, strict byte 0000ah ; 6b ff 0a 1724 1796 sub ax, strict word 00030h ; 2d 30 00 1725 1797 add di, ax ; 01 c7 1726 jmp near 01 cf5h ; e9 b7 021798 jmp near 01d86h ; e9 b7 02 1727 1799 mov ax, word [bp-014h] ; 8b 46 ec 1728 1800 mov word [bp-014h], ax ; 89 46 ec … … 1732 1804 mov word [bp-012h], ax ; 89 46 ee 1733 1805 cmp dl, 078h ; 80 fa 78 1734 je short 01a 5ch ; 74 051806 je short 01aedh ; 74 05 1735 1807 cmp dl, 058h ; 80 fa 58 1736 jne short 01 ab2h ; 75 561808 jne short 01b43h ; 75 56 1737 1809 test di, di ; 85 ff 1738 jne short 01a 63h ; 75 031810 jne short 01af4h ; 75 03 1739 1811 mov di, strict word 00004h ; bf 04 00 1740 1812 cmp dl, 078h ; 80 fa 78 1741 jne short 01 a6fh ; 75 071813 jne short 01b00h ; 75 07 1742 1814 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1743 jmp short 01 a74h ; eb 051815 jmp short 01b05h ; eb 05 1744 1816 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1745 1817 lea ax, [di-001h] ; 8d 45 ff … … 1747 1819 mov ax, word [bp-00ch] ; 8b 46 f4 1748 1820 test ax, ax ; 85 c0 1749 jl near 01 ce9h ; 0f 8c 66 021821 jl near 01d7ah ; 0f 8c 66 02 1750 1822 mov cx, ax ; 89 c1 1751 1823 sal cx, 002h ; c1 e1 02 … … 1755 1827 and AL, strict byte 00fh ; 24 0f 1756 1828 cmp ax, strict word 00009h ; 3d 09 00 1757 jnbe short 01 a9dh ; 77 071829 jnbe short 01b2eh ; 77 07 1758 1830 mov dx, ax ; 89 c2 1759 1831 add dx, strict byte 00030h ; 83 c2 30 1760 jmp short 01 aa5h ; eb 081832 jmp short 01b36h ; eb 08 1761 1833 sub ax, strict word 0000ah ; 2d 0a 00 1762 1834 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1764 1836 xor dh, dh ; 30 f6 1765 1837 mov ax, word [bp+004h] ; 8b 46 04 1766 call 018 2dh ; e8 80 fd1838 call 018beh ; e8 80 fd 1767 1839 dec word [bp-00ch] ; ff 4e f4 1768 jmp short 01 a7ah ; eb c81840 jmp short 01b0bh ; eb c8 1769 1841 cmp dl, 075h ; 80 fa 75 1770 jne short 01 ac6h ; 75 0f1842 jne short 01b57h ; 75 0f 1771 1843 xor cx, cx ; 31 c9 1772 1844 mov bx, di ; 89 fb 1773 1845 mov dx, ax ; 89 c2 1774 1846 mov ax, word [bp+004h] ; 8b 46 04 1775 call 01 8c7h ; e8 04 fe1776 jmp near 01 ce9h ; e9 23 021847 call 01958h ; e8 04 fe 1848 jmp near 01d7ah ; e9 23 02 1777 1849 cmp dl, 06ch ; 80 fa 6c 1778 jne near 01 ba8h ; 0f 85 db 001850 jne near 01c39h ; 0f 85 db 00 1779 1851 mov bx, word [bp+006h] ; 8b 5e 06 1780 1852 cmp dl, byte [bx+001h] ; 3a 57 01 1781 jne near 01 ba8h ; 0f 85 d1 001853 jne near 01c39h ; 0f 85 d1 00 1782 1854 add word [bp+006h], strict byte 00002h ; 83 46 06 02 1783 1855 mov bx, word [bp+006h] ; 8b 5e 06 … … 1803 1875 mov word [bp-020h], ax ; 89 46 e0 1804 1876 cmp dl, 078h ; 80 fa 78 1805 je short 01b 29h ; 74 051877 je short 01bbah ; 74 05 1806 1878 cmp dl, 058h ; 80 fa 58 1807 jne short 01 b9ah ; 75 711879 jne short 01c2bh ; 75 71 1808 1880 test di, di ; 85 ff 1809 jne short 01b 30h ; 75 031881 jne short 01bc1h ; 75 03 1810 1882 mov di, strict word 00010h ; bf 10 00 1811 1883 cmp dl, 078h ; 80 fa 78 1812 jne short 01b 3ch ; 75 071884 jne short 01bcdh ; 75 07 1813 1885 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1814 jmp short 01b 41h ; eb 051886 jmp short 01bd2h ; eb 05 1815 1887 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1816 1888 lea ax, [di-001h] ; 8d 45 ff … … 1818 1890 mov ax, word [bp-00ch] ; 8b 46 f4 1819 1891 test ax, ax ; 85 c0 1820 jl near 01 ce9h ; 0f 8c 99 011892 jl near 01d7ah ; 0f 8c 99 01 1821 1893 sal ax, 002h ; c1 e0 02 1822 1894 mov word [bp-01eh], ax ; 89 46 e2 … … 1830 1902 mov dx, word [bp-026h] ; 8b 56 da 1831 1903 mov si, word [bp-01eh] ; 8b 76 e2 1832 call 0 9f40h ; e8 cd 831904 call 0a030h ; e8 2c 84 1833 1905 mov ax, dx ; 89 d0 1834 1906 xor ah, dh ; 30 f4 1835 1907 and AL, strict byte 00fh ; 24 0f 1836 1908 cmp ax, strict word 00009h ; 3d 09 00 1837 jnbe short 01 b85h ; 77 071909 jnbe short 01c16h ; 77 07 1838 1910 mov dx, ax ; 89 c2 1839 1911 add dx, strict byte 00030h ; 83 c2 30 1840 jmp short 01 b8dh ; eb 081912 jmp short 01c1eh ; eb 08 1841 1913 sub ax, strict word 0000ah ; 2d 0a 00 1842 1914 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1844 1916 xor dh, dh ; 30 f6 1845 1917 mov ax, word [bp+004h] ; 8b 46 04 1846 call 018 2dh ; e8 98 fc1918 call 018beh ; e8 98 fc 1847 1919 dec word [bp-00ch] ; ff 4e f4 1848 jmp short 01b 47h ; eb ad1849 push 000 e6h ; 68 e6001920 jmp short 01bd8h ; eb ad 1921 push 000f8h ; 68 f8 00 1850 1922 push strict byte 00007h ; 6a 07 1851 call 01 9dah ; e8 38 fe1923 call 01a6bh ; e8 38 fe 1852 1924 add sp, strict byte 00004h ; 83 c4 04 1853 jmp near 01 ce9h ; e9 41 011925 jmp near 01d7ah ; e9 41 01 1854 1926 lea bx, [di-001h] ; 8d 5d ff 1855 1927 cmp dl, 06ch ; 80 fa 6c 1856 jne near 01 c71h ; 0f 85 bf 001928 jne near 01d02h ; 0f 85 bf 00 1857 1929 inc word [bp+006h] ; ff 46 06 1858 1930 mov si, word [bp+006h] ; 8b 76 06 … … 1865 1937 mov word [bp-010h], ax ; 89 46 f0 1866 1938 cmp dl, 064h ; 80 fa 64 1867 jne short 01c 00h ; 75 2d1939 jne short 01c91h ; 75 2d 1868 1940 test byte [bp-00fh], 080h ; f6 46 f1 80 1869 je short 01 beeh ; 74 151941 je short 01c7fh ; 74 15 1870 1942 push strict byte 00001h ; 6a 01 1871 1943 mov ax, word [bp-012h] ; 8b 46 ee … … 1876 1948 mov dx, bx ; 89 da 1877 1949 mov bx, ax ; 89 c3 1878 jmp short 01 bf7h ; eb 091950 jmp short 01c88h ; eb 09 1879 1951 push strict byte 00000h ; 6a 00 1880 1952 mov bx, word [bp-012h] ; 8b 5e ee … … 1882 1954 mov cx, ax ; 89 c1 1883 1955 mov ax, word [bp+004h] ; 8b 46 04 1884 call 019 27h ; e8 2a fd1885 jmp near 01 ce9h ; e9 e9 001956 call 019b8h ; e8 2a fd 1957 jmp near 01d7ah ; e9 e9 00 1886 1958 cmp dl, 075h ; 80 fa 75 1887 jne short 01c 07h ; 75 021888 jmp short 01 beeh ; eb e71959 jne short 01c98h ; 75 02 1960 jmp short 01c7fh ; eb e7 1889 1961 cmp dl, 078h ; 80 fa 78 1890 je short 01c 13h ; 74 071962 je short 01ca4h ; 74 07 1891 1963 cmp dl, 058h ; 80 fa 58 1892 jne near 01 ce9h ; 0f 85 d6 001964 jne near 01d7ah ; 0f 85 d6 00 1893 1965 test di, di ; 85 ff 1894 jne short 01c 1ah ; 75 031966 jne short 01cabh ; 75 03 1895 1967 mov di, strict word 00008h ; bf 08 00 1896 1968 cmp dl, 078h ; 80 fa 78 1897 jne short 01c 26h ; 75 071969 jne short 01cb7h ; 75 07 1898 1970 mov word [bp-00eh], strict word 00061h ; c7 46 f2 61 00 1899 jmp short 01c 2bh ; eb 051971 jmp short 01cbch ; eb 05 1900 1972 mov word [bp-00eh], strict word 00041h ; c7 46 f2 41 00 1901 1973 lea ax, [di-001h] ; 8d 45 ff 1902 1974 mov word [bp-00ch], ax ; 89 46 f4 1903 1975 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 1904 jl near 01 ce9h ; 0f 8c b0 001976 jl near 01d7ah ; 0f 8c b0 00 1905 1977 mov ax, word [bp-012h] ; 8b 46 ee 1906 1978 mov cx, word [bp-00ch] ; 8b 4e f4 1907 1979 sal cx, 002h ; c1 e1 02 1908 1980 mov dx, word [bp-010h] ; 8b 56 f0 1909 jcxz 01c 4dh ; e3 061981 jcxz 01cdeh ; e3 06 1910 1982 shr dx, 1 ; d1 ea 1911 1983 rcr ax, 1 ; d1 d8 1912 loop 01c 47h ; e2 fa1984 loop 01cd8h ; e2 fa 1913 1985 and ax, strict word 0000fh ; 25 0f 00 1914 1986 cmp ax, strict word 00009h ; 3d 09 00 1915 jnbe short 01c 5ch ; 77 071987 jnbe short 01cedh ; 77 07 1916 1988 mov dx, ax ; 89 c2 1917 1989 add dx, strict byte 00030h ; 83 c2 30 1918 jmp short 01c 64h ; eb 081990 jmp short 01cf5h ; eb 08 1919 1991 sub ax, strict word 0000ah ; 2d 0a 00 1920 1992 mov dx, word [bp-00eh] ; 8b 56 f2 … … 1922 1994 xor dh, dh ; 30 f6 1923 1995 mov ax, word [bp+004h] ; 8b 46 04 1924 call 018 2dh ; e8 c1 fb1996 call 018beh ; e8 c1 fb 1925 1997 dec word [bp-00ch] ; ff 4e f4 1926 jmp short 01c 31h ; eb c01998 jmp short 01cc2h ; eb c0 1927 1999 cmp dl, 064h ; 80 fa 64 1928 jne short 01 c95h ; 75 1f2000 jne short 01d26h ; 75 1f 1929 2001 test byte [bp-011h], 080h ; f6 46 ef 80 1930 je short 01 c86h ; 74 0a2002 je short 01d17h ; 74 0a 1931 2003 mov dx, word [bp-012h] ; 8b 56 ee 1932 2004 neg dx ; f7 da 1933 2005 mov cx, strict word 00001h ; b9 01 00 1934 jmp short 01 c8dh ; eb 072006 jmp short 01d1eh ; eb 07 1935 2007 xor cx, cx ; 31 c9 1936 2008 mov bx, di ; 89 fb 1937 2009 mov dx, word [bp-012h] ; 8b 56 ee 1938 2010 mov ax, word [bp+004h] ; 8b 46 04 1939 call 018 68h ; e8 d5 fb1940 jmp short 01 ce9h ; eb 542011 call 018f9h ; e8 d5 fb 2012 jmp short 01d7ah ; eb 54 1941 2013 cmp dl, 073h ; 80 fa 73 1942 jne short 01 ca7h ; 75 0d2014 jne short 01d38h ; 75 0d 1943 2015 mov cx, ds ; 8c d9 1944 2016 mov bx, word [bp-012h] ; 8b 5e ee 1945 2017 mov ax, word [bp+004h] ; 8b 46 04 1946 call 01 999h ; e8 f4 fc1947 jmp short 01 ce9h ; eb 422018 call 01a2ah ; e8 f4 fc 2019 jmp short 01d7ah ; eb 42 1948 2020 cmp dl, 053h ; 80 fa 53 1949 jne short 01 ccdh ; 75 212021 jne short 01d5eh ; 75 21 1950 2022 mov ax, word [bp-012h] ; 8b 46 ee 1951 2023 mov word [bp-010h], ax ; 89 46 f0 … … 1958 2030 mov bx, ax ; 89 c3 1959 2031 mov cx, word [bp-010h] ; 8b 4e f0 1960 jmp short 01 c9fh ; eb d22032 jmp short 01d30h ; eb d2 1961 2033 cmp dl, 063h ; 80 fa 63 1962 jne short 01 cdeh ; 75 0c2034 jne short 01d6fh ; 75 0c 1963 2035 movzx dx, byte [bp-012h] ; 0f b6 56 ee 1964 2036 mov ax, word [bp+004h] ; 8b 46 04 1965 call 018 2dh ; e8 51 fb1966 jmp short 01 ce9h ; eb 0b1967 push 001 07h ; 68 07012037 call 018beh ; e8 51 fb 2038 jmp short 01d7ah ; eb 0b 2039 push 00119h ; 68 19 01 1968 2040 push strict byte 00007h ; 6a 07 1969 call 01 9dah ; e8 f4 fc2041 call 01a6bh ; e8 f4 fc 1970 2042 add sp, strict byte 00004h ; 83 c4 04 1971 2043 xor bx, bx ; 31 db 1972 jmp short 01 cf5h ; eb 082044 jmp short 01d86h ; eb 08 1973 2045 xor dh, dh ; 30 f6 1974 2046 mov ax, word [bp+004h] ; 8b 46 04 1975 call 018 2dh ; e8 38 fb2047 call 018beh ; e8 38 fb 1976 2048 inc word [bp+006h] ; ff 46 06 1977 jmp near 01a 08h ; e9 0d fd2049 jmp near 01a99h ; e9 0d fd 1978 2050 xor ax, ax ; 31 c0 1979 2051 mov word [bp-016h], ax ; 89 46 ea 1980 2052 mov word [bp-014h], ax ; 89 46 ec 1981 2053 test byte [bp+004h], 001h ; f6 46 04 01 1982 je short 01d 0dh ; 74 042054 je short 01d9eh ; 74 04 1983 2055 cli ; fa 1984 2056 hlt ; f4 1985 jmp short 01d 0ah ; eb fd2057 jmp short 01d9bh ; eb fd 1986 2058 lea sp, [bp-00ah] ; 8d 66 f6 1987 2059 pop di ; 5f … … 1992 2064 pop bp ; 5d 1993 2065 retn ; c3 1994 _ata_init: ; 0xf1d 17LB 0xcd2066 _ata_init: ; 0xf1da8 LB 0xcd 1995 2067 push bp ; 55 1996 2068 mov bp, sp ; 89 e5 … … 1998 2070 mov dx, strict word 0000eh ; ba 0e 00 1999 2071 mov ax, strict word 00040h ; b8 40 00 2000 call 01 6d4h ; e8 b0 f92072 call 01765h ; e8 b0 f9 2001 2073 mov si, 00122h ; be 22 01 2002 2074 mov dx, ax ; 89 c2 2003 2075 xor al, al ; 30 c0 2004 jmp short 01d 31h ; eb 042076 jmp short 01dc2h ; eb 04 2005 2077 cmp AL, strict byte 004h ; 3c 04 2006 jnc short 01d 55h ; 73 242078 jnc short 01de6h ; 73 24 2007 2079 movzx bx, al ; 0f b6 d8 2008 2080 imul bx, bx, strict byte 00006h ; 6b db 06 … … 2015 2087 db 0feh, 0c0h 2016 2088 ; inc al ; fe c0 2017 jmp short 01d 2dh ; eb d82089 jmp short 01dbeh ; eb d8 2018 2090 xor al, al ; 30 c0 2019 jmp short 01d 5dh ; eb 042091 jmp short 01deeh ; eb 04 2020 2092 cmp AL, strict byte 008h ; 3c 08 2021 jnc short 01 db1h ; 73 542093 jnc short 01e42h ; 73 54 2022 2094 movzx bx, al ; 0f b6 d8 2023 2095 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 2041 2113 db 0feh, 0c0h 2042 2114 ; inc al ; fe c0 2043 jmp short 01d 59h ; eb a82115 jmp short 01deah ; eb a8 2044 2116 xor al, al ; 30 c0 2045 jmp short 01 db9h ; eb 042117 jmp short 01e4ah ; eb 04 2046 2118 cmp AL, strict byte 010h ; 3c 10 2047 jnc short 01 dd0h ; 73 172119 jnc short 01e61h ; 73 17 2048 2120 movzx bx, al ; 0f b6 d8 2049 2121 mov es, dx ; 8e c2 … … 2053 2125 db 0feh, 0c0h 2054 2126 ; inc al ; fe c0 2055 jmp short 01 db5h ; eb e52127 jmp short 01e46h ; eb e5 2056 2128 mov es, dx ; 8e c2 2057 2129 mov byte [es:si+001e2h], 000h ; 26 c6 84 e2 01 00 … … 2061 2133 pop bp ; 5d 2062 2134 retn ; c3 2063 ata_reset_: ; 0xf1 de4LB 0xde2135 ata_reset_: ; 0xf1e75 LB 0xde 2064 2136 push bp ; 55 2065 2137 mov bp, sp ; 89 e5 … … 2074 2146 mov dx, strict word 0000eh ; ba 0e 00 2075 2147 mov ax, strict word 00040h ; b8 40 00 2076 call 01 6d4h ; e8 dc f82148 call 01765h ; e8 dc f8 2077 2149 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 2078 2150 mov di, ax ; 89 c7 … … 2094 2166 dec bx ; 4b 2095 2167 test bx, bx ; 85 db 2096 jbe short 01e 3ch ; 76 0c2168 jbe short 01ecdh ; 76 0c 2097 2169 mov dx, cx ; 89 ca 2098 2170 add dx, strict byte 00007h ; 83 c2 07 … … 2101 2173 ; sub ah, ah ; 2a e4 2102 2174 test AL, strict byte 080h ; a8 80 2103 je short 01e 2bh ; 74 ef2175 je short 01ebch ; 74 ef 2104 2176 lea dx, [si+006h] ; 8d 54 06 2105 2177 mov AL, strict byte 00ah ; b0 0a … … 2109 2181 add bx, word [bp-00eh] ; 03 5e f2 2110 2182 cmp byte [es:bx+022h], 000h ; 26 80 7f 22 00 2111 je short 01 e9eh ; 74 4c2183 je short 01f2fh ; 74 4c 2112 2184 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2113 je short 01e 5dh ; 74 052185 je short 01eeeh ; 74 05 2114 2186 mov ax, 000b0h ; b8 b0 00 2115 jmp short 01e 60h ; eb 032187 jmp short 01ef1h ; eb 03 2116 2188 mov ax, 000a0h ; b8 a0 00 2117 2189 mov dx, cx ; 89 ca … … 2131 2203 ; sub ah, ah ; 2a e4 2132 2204 cmp bl, 001h ; 80 fb 01 2133 jne short 01 e9eh ; 75 222205 jne short 01f2fh ; 75 22 2134 2206 cmp al, bl ; 38 d8 2135 jne short 01 e9eh ; 75 1e2207 jne short 01f2fh ; 75 1e 2136 2208 mov bx, strict word 0ffffh ; bb ff ff 2137 2209 dec bx ; 4b 2138 2210 test bx, bx ; 85 db 2139 jbe short 01 e9eh ; 76 162211 jbe short 01f2fh ; 76 16 2140 2212 mov dx, cx ; 89 ca 2141 2213 add dx, strict byte 00007h ; 83 c2 07 … … 2144 2216 ; sub ah, ah ; 2a e4 2145 2217 test AL, strict byte 080h ; a8 80 2146 je short 01 e9eh ; 74 0a2218 je short 01f2fh ; 74 0a 2147 2219 mov ax, strict word 0ffffh ; b8 ff ff 2148 2220 dec ax ; 48 2149 2221 test ax, ax ; 85 c0 2150 jnbe short 01 e97h ; 77 fb2151 jmp short 01 e83h ; eb e52222 jnbe short 01f28h ; 77 fb 2223 jmp short 01f14h ; eb e5 2152 2224 mov bx, strict word 00010h ; bb 10 00 2153 2225 dec bx ; 4b 2154 2226 test bx, bx ; 85 db 2155 jbe short 01 eb2h ; 76 0c2227 jbe short 01f43h ; 76 0c 2156 2228 mov dx, cx ; 89 ca 2157 2229 add dx, strict byte 00007h ; 83 c2 07 … … 2160 2232 ; sub ah, ah ; 2a e4 2161 2233 test AL, strict byte 040h ; a8 40 2162 je short 01 ea1h ; 74 ef2234 je short 01f32h ; 74 ef 2163 2235 lea dx, [si+006h] ; 8d 54 06 2164 2236 mov AL, strict byte 008h ; b0 08 … … 2172 2244 pop bp ; 5d 2173 2245 retn ; c3 2174 ata_cmd_data_in_: ; 0xf1 ec2LB 0x2e22246 ata_cmd_data_in_: ; 0xf1f53 LB 0x2e2 2175 2247 push bp ; 55 2176 2248 mov bp, sp ; 89 e5 … … 2207 2279 mov word [bp-00eh], ax ; 89 46 f2 2208 2280 test ax, ax ; 85 c0 2209 jne short 01f 29h ; 75 142281 jne short 01fbah ; 75 14 2210 2282 cmp byte [bp-008h], 001h ; 80 7e f8 01 2211 jne short 01f 22h ; 75 072283 jne short 01fb3h ; 75 07 2212 2284 mov word [bp-00eh], 04000h ; c7 46 f2 00 40 2213 jmp short 01f 38h ; eb 162285 jmp short 01fc9h ; eb 16 2214 2286 mov word [bp-00eh], 08000h ; c7 46 f2 00 80 2215 jmp short 01f 38h ; eb 0f2287 jmp short 01fc9h ; eb 0f 2216 2288 cmp byte [bp-008h], 001h ; 80 7e f8 01 2217 jne short 01f 35h ; 75 062289 jne short 01fc6h ; 75 06 2218 2290 shr word [bp-00eh], 002h ; c1 6e f2 02 2219 jmp short 01f 38h ; eb 032291 jmp short 01fc9h ; eb 03 2220 2292 shr word [bp-00eh], 1 ; d1 6e f2 2221 2293 mov dx, word [bp-00ch] ; 8b 56 f4 … … 2225 2297 ; sub ah, ah ; 2a e4 2226 2298 test AL, strict byte 080h ; a8 80 2227 je short 01f 54h ; 74 0f2299 je short 01fe5h ; 74 0f 2228 2300 mov dx, word [bp-010h] ; 8b 56 f0 2229 2301 add dx, strict byte 00006h ; 83 c2 06 … … 2231 2303 out DX, AL ; ee 2232 2304 mov dx, strict word 00001h ; ba 01 00 2233 jmp near 02 19bh ; e9 47 022305 jmp near 0222ch ; e9 47 02 2234 2306 mov es, [bp-01ah] ; 8e 46 e6 2235 2307 mov di, word [bp-018h] ; 8b 7e e8 … … 2245 2317 mov al, byte [bp-006h] ; 8a 46 fa 2246 2318 test al, al ; 84 c0 2247 jne near 020 66h ; 0f 85 e3 002319 jne near 020f7h ; 0f 85 e3 00 2248 2320 xor bx, bx ; 31 db 2249 2321 xor dx, dx ; 31 d2 … … 2258 2330 adc ax, word [bp-016h] ; 13 46 ea 2259 2331 test ax, ax ; 85 c0 2260 jnbe short 0 1fb8h ; 77 102261 jne short 020 1ch ; 75 722332 jnbe short 02049h ; 77 10 2333 jne short 020adh ; 75 72 2262 2334 test dx, dx ; 85 d2 2263 jnbe short 0 1fb8h ; 77 0a2264 jne short 020 1ch ; 75 6c2335 jnbe short 02049h ; 77 0a 2336 jne short 020adh ; 75 6c 2265 2337 cmp bx, 01000h ; 81 fb 00 10 2266 jnbe short 0 1fb8h ; 77 022267 jne short 020 1ch ; 75 642338 jnbe short 02049h ; 77 02 2339 jne short 020adh ; 75 64 2268 2340 mov bx, si ; 89 f3 2269 2341 mov ax, word [es:bx+006h] ; 26 8b 47 06 … … 2272 2344 mov dx, word [es:si] ; 26 8b 14 2273 2345 mov si, strict word 00018h ; be 18 00 2274 call 0 9f40h ; e8 717f2346 call 0a030h ; e8 d0 7f 2275 2347 xor dh, dh ; 30 f6 2276 2348 mov word [bp-016h], dx ; 89 56 ea … … 2282 2354 mov dx, word [es:si] ; 26 8b 14 2283 2355 mov si, strict word 00020h ; be 20 00 2284 call 0 9f40h ; e8 517f2356 call 0a030h ; e8 b0 7f 2285 2357 mov bx, dx ; 89 d3 2286 2358 mov ax, word [bp-01eh] ; 8b 46 e2 … … 2313 2385 mov dx, word [es:si] ; 26 8b 14 2314 2386 mov si, strict word 00008h ; be 08 00 2315 call 0 9f40h ; e8 007f2387 call 0a030h ; e8 5f 7f 2316 2388 mov word [bp-014h], dx ; 89 56 ec 2317 2389 mov bx, word [bp-018h] ; 8b 5e e8 … … 2322 2394 mov dx, word [es:si] ; 26 8b 14 2323 2395 mov si, strict word 00018h ; be 18 00 2324 call 0 9f40h ; e8 e2 7e2396 call 0a030h ; e8 41 7f 2325 2397 and dx, strict byte 0000fh ; 83 e2 0f 2326 2398 or dl, 040h ; 80 ca 40 … … 2352 2424 out DX, AL ; ee 2353 2425 test byte [bp-00ah], 001h ; f6 46 f6 01 2354 je short 02 0a8h ; 74 052426 je short 02139h ; 74 05 2355 2427 mov ax, 000b0h ; b8 b0 00 2356 jmp short 02 0abh ; eb 032428 jmp short 0213ch ; eb 03 2357 2429 mov ax, 000a0h ; b8 a0 00 2358 2430 movzx dx, bl ; 0f b6 d3 … … 2367 2439 mov ax, word [bp-01ch] ; 8b 46 e4 2368 2440 cmp ax, 000c4h ; 3d c4 00 2369 je short 02 0ceh ; 74 052441 je short 0215fh ; 74 05 2370 2442 cmp ax, strict word 00029h ; 3d 29 00 2371 jne short 02 0d8h ; 75 0a2443 jne short 02169h ; 75 0a 2372 2444 mov bx, word [bp-01eh] ; 8b 5e e2 2373 2445 mov word [bp-01eh], strict word 00001h ; c7 46 e2 01 00 2374 jmp short 02 0dbh ; eb 032446 jmp short 0216ch ; eb 03 2375 2447 mov bx, strict word 00001h ; bb 01 00 2376 2448 mov dx, word [bp-00ch] ; 8b 56 f4 … … 2381 2453 mov dl, al ; 88 c2 2382 2454 test AL, strict byte 080h ; a8 80 2383 jne short 02 0dbh ; 75 f12455 jne short 0216ch ; 75 f1 2384 2456 test AL, strict byte 001h ; a8 01 2385 je short 02 0fdh ; 74 0f2457 je short 0218eh ; 74 0f 2386 2458 mov dx, word [bp-010h] ; 8b 56 f0 2387 2459 add dx, strict byte 00006h ; 83 c2 06 … … 2389 2461 out DX, AL ; ee 2390 2462 mov dx, strict word 00002h ; ba 02 00 2391 jmp near 02 19bh ; e9 9e 002463 jmp near 0222ch ; e9 9e 00 2392 2464 test dl, 008h ; f6 c2 08 2393 jne short 021 11h ; 75 0f2465 jne short 021a2h ; 75 0f 2394 2466 mov dx, word [bp-010h] ; 8b 56 f0 2395 2467 add dx, strict byte 00006h ; 83 c2 06 … … 2397 2469 out DX, AL ; ee 2398 2470 mov dx, strict word 00003h ; ba 03 00 2399 jmp near 02 19bh ; e9 8a 002471 jmp near 0222ch ; e9 8a 00 2400 2472 sti ; fb 2401 2473 cmp di, 0f800h ; 81 ff 00 f8 2402 jc short 021 25h ; 72 0d2474 jc short 021b6h ; 72 0d 2403 2475 sub di, 00800h ; 81 ef 00 08 2404 2476 mov ax, word [bp-012h] ; 8b 46 ee … … 2406 2478 mov word [bp-012h], ax ; 89 46 ee 2407 2479 cmp byte [bp-008h], 001h ; 80 7e f8 01 2408 jne short 021 39h ; 75 0e2480 jne short 021cah ; 75 0e 2409 2481 mov dx, word [bp-00ch] ; 8b 56 f4 2410 2482 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2412 2484 db 0f3h, 066h, 06dh 2413 2485 ; rep insd ; f3 66 6d 2414 jmp short 021 44h ; eb 0b2486 jmp short 021d5h ; eb 0b 2415 2487 mov dx, word [bp-00ch] ; 8b 56 f4 2416 2488 mov cx, word [bp-00eh] ; 8b 4e f2 … … 2428 2500 mov dl, al ; 88 c2 2429 2501 test AL, strict byte 080h ; a8 80 2430 jne short 021 51h ; 75 f12502 jne short 021e2h ; 75 f1 2431 2503 cmp word [bp-01eh], strict byte 00000h ; 83 7e e2 00 2432 jne short 02 17ah ; 75 142504 jne short 0220bh ; 75 14 2433 2505 and AL, strict byte 0c9h ; 24 c9 2434 2506 cmp AL, strict byte 040h ; 3c 40 2435 je short 02 190h ; 74 242507 je short 02221h ; 74 24 2436 2508 mov dx, word [bp-010h] ; 8b 56 f0 2437 2509 add dx, strict byte 00006h ; 83 c2 06 … … 2439 2511 out DX, AL ; ee 2440 2512 mov dx, strict word 00004h ; ba 04 00 2441 jmp short 02 19bh ; eb 212513 jmp short 0222ch ; eb 21 2442 2514 mov al, dl ; 88 d0 2443 2515 and AL, strict byte 0c9h ; 24 c9 2444 2516 cmp AL, strict byte 048h ; 3c 48 2445 je short 021 12h ; 74 902517 je short 021a3h ; 74 90 2446 2518 mov dx, word [bp-010h] ; 8b 56 f0 2447 2519 add dx, strict byte 00006h ; 83 c2 06 … … 2449 2521 out DX, AL ; ee 2450 2522 mov dx, strict word 00005h ; ba 05 00 2451 jmp short 02 19bh ; eb 0b2523 jmp short 0222ch ; eb 0b 2452 2524 mov dx, word [bp-010h] ; 8b 56 f0 2453 2525 add dx, strict byte 00006h ; 83 c2 06 … … 2461 2533 pop bp ; 5d 2462 2534 retn ; c3 2463 _ata_detect: ; 0xf2 1a4LB 0x65c2535 _ata_detect: ; 0xf2235 LB 0x65c 2464 2536 push bp ; 55 2465 2537 mov bp, sp ; 89 e5 … … 2469 2541 mov dx, strict word 0000eh ; ba 0e 00 2470 2542 mov ax, strict word 00040h ; b8 40 00 2471 call 01 6d4h ; e8 1e f52543 call 01765h ; e8 1e f5 2472 2544 mov word [bp-020h], ax ; 89 46 e0 2473 2545 mov di, 00122h ; bf 22 01 … … 2487 2559 mov byte [bp-010h], al ; 88 46 f0 2488 2560 mov byte [bp-016h], al ; 88 46 ea 2489 jmp near 02 784h ; e9 86 052561 jmp near 02815h ; e9 86 05 2490 2562 mov ax, 000a0h ; b8 a0 00 2491 2563 lea dx, [si+006h] ; 8d 54 06 … … 2519 2591 ; sub ah, ah ; 2a e4 2520 2592 cmp cl, 055h ; 80 f9 55 2521 jne near 023 02h ; 0f 85 ca 002593 jne near 02393h ; 0f 85 ca 00 2522 2594 cmp AL, strict byte 0aah ; 3c aa 2523 jne near 023 02h ; 0f 85 c4 002595 jne near 02393h ; 0f 85 c4 00 2524 2596 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2525 2597 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2529 2601 mov byte [es:bx+022h], 001h ; 26 c6 47 22 01 2530 2602 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2531 call 01 de4h ; e8 8b fb2603 call 01e75h ; e8 8b fb 2532 2604 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2533 je short 022 64h ; 74 052605 je short 022f5h ; 74 05 2534 2606 mov ax, 000b0h ; b8 b0 00 2535 jmp short 022 67h ; eb 032607 jmp short 022f8h ; eb 03 2536 2608 mov ax, 000a0h ; b8 a0 00 2537 2609 lea dx, [si+006h] ; 8d 54 06 … … 2547 2619 ; sub ah, ah ; 2a e4 2548 2620 cmp bl, 001h ; 80 fb 01 2549 jne near 023 02h ; 0f 85 82 002621 jne near 02393h ; 0f 85 82 00 2550 2622 cmp al, bl ; 38 d8 2551 jne near 023 02h ; 0f 85 7c 002623 jne near 02393h ; 0f 85 7c 00 2552 2624 lea dx, [si+004h] ; 8d 54 04 2553 2625 in AL, DX ; ec … … 2567 2639 ; sub ah, ah ; 2a e4 2568 2640 cmp bl, 014h ; 80 fb 14 2569 jne short 02 2c1h ; 75 1b2641 jne short 02352h ; 75 1b 2570 2642 cmp cl, 0ebh ; 80 f9 eb 2571 jne short 02 2c1h ; 75 162643 jne short 02352h ; 75 16 2572 2644 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2573 2645 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2576 2648 add bx, ax ; 01 c3 2577 2649 mov byte [es:bx+022h], 003h ; 26 c6 47 22 03 2578 jmp short 023 02h ; eb 412650 jmp short 02393h ; eb 41 2579 2651 cmp byte [bp-018h], 000h ; 80 7e e8 00 2580 jne short 02 2e3h ; 75 1c2652 jne short 02374h ; 75 1c 2581 2653 test bh, bh ; 84 ff 2582 jne short 02 2e3h ; 75 182654 jne short 02374h ; 75 18 2583 2655 test al, al ; 84 c0 2584 je short 02 2e3h ; 74 142656 je short 02374h ; 74 14 2585 2657 movzx bx, byte [bp-016h] ; 0f b6 5e ea 2586 2658 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 2588 2660 add bx, word [bp-022h] ; 03 5e de 2589 2661 mov byte [es:bx+022h], 002h ; 26 c6 47 22 02 2590 jmp short 023 02h ; eb 1f2662 jmp short 02393h ; eb 1f 2591 2663 mov al, byte [bp-018h] ; 8a 46 e8 2592 2664 cmp AL, strict byte 0ffh ; 3c ff 2593 jne short 023 02h ; 75 182665 jne short 02393h ; 75 18 2594 2666 cmp bh, al ; 38 c7 2595 jne short 023 02h ; 75 142667 jne short 02393h ; 75 14 2596 2668 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2597 2669 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2611 2683 mov byte [bp-00ah], al ; 88 46 f6 2612 2684 cmp AL, strict byte 002h ; 3c 02 2613 jne near 025 51h ; 0f 85 2c 022685 jne near 025e2h ; 0f 85 2c 02 2614 2686 mov byte [es:si+023h], 0ffh ; 26 c6 44 23 ff 2615 2687 mov byte [es:si+026h], 000h ; 26 c6 44 26 00 … … 2624 2696 mov ax, word [bp-022h] ; 8b 46 de 2625 2697 mov dx, es ; 8c c2 2626 call 01 ec2h ; e8 6f fb2698 call 01f53h ; e8 6f fb 2627 2699 test ax, ax ; 85 c0 2628 je short 023 62h ; 74 0b2629 push 001 24h ; 68 24012700 je short 023f3h ; 74 0b 2701 push 00136h ; 68 36 01 2630 2702 push strict byte 00007h ; 6a 07 2631 call 01 9dah ; e8 7b f62703 call 01a6bh ; e8 7b f6 2632 2704 add sp, strict byte 00004h ; 83 c4 04 2633 2705 test byte [bp-00264h], 080h ; f6 86 9c fd 80 … … 2655 2727 mov word [bp-01eh], ax ; 89 46 e2 2656 2728 cmp word [bp-02ch], 00fffh ; 81 7e d4 ff 0f 2657 jne short 02 3ceh ; 75 1e2729 jne short 0245fh ; 75 1e 2658 2730 cmp si, strict byte 0ffffh ; 83 fe ff 2659 jne short 02 3ceh ; 75 192731 jne short 0245fh ; 75 19 2660 2732 mov ax, word [bp-00196h] ; 8b 86 6a fe 2661 2733 mov word [bp-01eh], ax ; 89 46 e2 … … 2667 2739 mov al, byte [bp-016h] ; 8a 46 ea 2668 2740 cmp AL, strict byte 001h ; 3c 01 2669 jc short 02 3e1h ; 72 0c2670 jbe short 02 3e9h ; 76 122741 jc short 02472h ; 72 0c 2742 jbe short 0247ah ; 76 12 2671 2743 cmp AL, strict byte 003h ; 3c 03 2672 je short 02 3f1h ; 74 162744 je short 02482h ; 74 16 2673 2745 cmp AL, strict byte 002h ; 3c 02 2674 je short 02 3edh ; 74 0e2675 jmp short 024 2eh ; eb 4d2746 je short 0247eh ; 74 0e 2747 jmp short 024bfh ; eb 4d 2676 2748 test al, al ; 84 c0 2677 jne short 024 2eh ; 75 492749 jne short 024bfh ; 75 49 2678 2750 mov BL, strict byte 01eh ; b3 1e 2679 jmp short 02 3f3h ; eb 0a2751 jmp short 02484h ; eb 0a 2680 2752 mov BL, strict byte 026h ; b3 26 2681 jmp short 02 3f3h ; eb 062753 jmp short 02484h ; eb 06 2682 2754 mov BL, strict byte 067h ; b3 67 2683 jmp short 02 3f3h ; eb 022755 jmp short 02484h ; eb 02 2684 2756 mov BL, strict byte 070h ; b3 70 2685 2757 mov al, bl ; 88 d8 … … 2687 2759 ; inc al ; fe c0 2688 2760 xor ah, ah ; 30 e4 2689 call 017 14h ; e8 18 f32761 call 017a5h ; e8 18 f3 2690 2762 xor ah, ah ; 30 e4 2691 2763 mov dx, ax ; 89 c2 2692 2764 sal dx, 008h ; c1 e2 08 2693 2765 movzx ax, bl ; 0f b6 c3 2694 call 017 14h ; e8 0b f32766 call 017a5h ; e8 0b f3 2695 2767 xor ah, ah ; 30 e4 2696 2768 add ax, dx ; 01 d0 … … 2699 2771 add AL, strict byte 002h ; 04 02 2700 2772 xor ah, ah ; 30 e4 2701 call 017 14h ; e8 fb f22773 call 017a5h ; e8 fb f2 2702 2774 xor ah, ah ; 30 e4 2703 2775 mov word [bp-03ah], ax ; 89 46 c6 … … 2705 2777 add AL, strict byte 007h ; 04 07 2706 2778 xor ah, ah ; 30 e4 2707 call 017 14h ; e8 ed f22779 call 017a5h ; e8 ed f2 2708 2780 xor ah, ah ; 30 e4 2709 2781 mov word [bp-036h], ax ; 89 46 ca 2710 jmp short 024 40h ; eb 122782 jmp short 024d1h ; eb 12 2711 2783 push word [bp-01eh] ; ff 76 e2 2712 2784 push word [bp-028h] ; ff 76 d8 … … 2715 2787 mov dx, ss ; 8c d2 2716 2788 lea ax, [bp-03ah] ; 8d 46 c6 2717 call 05 9d6h ; e8 96352718 mov bx, 00d a0h ; bb a00d2789 call 05ac0h ; e8 ef 35 2790 mov bx, 00db2h ; bb b2 0d 2719 2791 mov cx, ds ; 8c d9 2720 2792 mov ax, strict word 00004h ; b8 04 00 2721 call 01 999h ; e8 4e f52793 call 01a2ah ; e8 4e f5 2722 2794 mov ax, word [bp-036h] ; 8b 46 ca 2723 2795 push ax ; 50 … … 2732 2804 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2733 2805 push ax ; 50 2734 push 001 4dh ; 68 4d012806 push 0015fh ; 68 5f 01 2735 2807 push strict byte 00004h ; 6a 04 2736 call 01 9dah ; e8 6a f52808 call 01a6bh ; e8 6a f5 2737 2809 add sp, strict byte 00014h ; 83 c4 14 2738 2810 movzx di, byte [bp-016h] ; 0f b6 7e ea … … 2771 2843 mov al, byte [bp-016h] ; 8a 46 ea 2772 2844 cmp AL, strict byte 002h ; 3c 02 2773 jnc short 025 3ch ; 73 602845 jnc short 025cdh ; 73 60 2774 2846 test al, al ; 84 c0 2775 jne short 02 4e5h ; 75 052847 jne short 02576h ; 75 05 2776 2848 mov di, strict word 0003dh ; bf 3d 00 2777 jmp short 02 4e8h ; eb 032849 jmp short 02579h ; eb 03 2778 2850 mov di, strict word 0004dh ; bf 4d 00 2779 2851 mov dx, word [bp-020h] ; 8b 56 e0 … … 2794 2866 xor al, al ; 30 c0 2795 2867 xor ah, ah ; 30 e4 2796 jmp short 025 26h ; eb 052868 jmp short 025b7h ; eb 05 2797 2869 cmp ah, 00fh ; 80 fc 0f 2798 jnc short 025 34h ; 73 0e2870 jnc short 025c5h ; 73 0e 2799 2871 movzx bx, ah ; 0f b6 dc 2800 2872 mov es, dx ; 8e c2 … … 2803 2875 db 0feh, 0c4h 2804 2876 ; inc ah ; fe c4 2805 jmp short 025 21h ; eb ed2877 jmp short 025b2h ; eb ed 2806 2878 neg al ; f6 d8 2807 2879 mov es, dx ; 8e c2 … … 2814 2886 inc byte [bp-010h] ; fe 46 f0 2815 2887 cmp byte [bp-00ah], 003h ; 80 7e f6 03 2816 jne near 02 5f4h ; 0f 85 9b 002888 jne near 02685h ; 0f 85 9b 00 2817 2889 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2818 2890 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2832 2904 mov ax, word [bp-022h] ; 8b 46 de 2833 2905 mov dx, es ; 8c c2 2834 call 01 ec2h ; e8 2c f92906 call 01f53h ; e8 2c f9 2835 2907 test ax, ax ; 85 c0 2836 je short 02 5a5h ; 74 0b2837 push 001 74h ; 68 74012908 je short 02636h ; 74 0b 2909 push 00186h ; 68 86 01 2838 2910 push strict byte 00007h ; 6a 07 2839 call 01 9dah ; e8 38 f42911 call 01a6bh ; e8 38 f4 2840 2912 add sp, strict byte 00004h ; 83 c4 04 2841 2913 mov dl, byte [bp-00263h] ; 8a 96 9d fd … … 2865 2937 mov al, byte [bp-00ah] ; 8a 46 f6 2866 2938 cmp AL, strict byte 003h ; 3c 03 2867 je short 026 2ch ; 74 312939 je short 026bdh ; 74 31 2868 2940 cmp AL, strict byte 002h ; 3c 02 2869 jne near 02 68fh ; 0f 85 8e 002941 jne near 02720h ; 0f 85 8e 00 2870 2942 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2871 2943 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2878 2950 mov dx, word [es:si+036h] ; 26 8b 54 36 2879 2951 mov si, strict word 0000bh ; be 0b 00 2880 call 0 9f40h ; e8 1a792952 call 0a030h ; e8 79 79 2881 2953 mov word [bp-030h], dx ; 89 56 d0 2882 2954 mov word [bp-02eh], cx ; 89 4e d2 … … 2886 2958 or dx, ax ; 09 c2 2887 2959 mov byte [bp-00ch], 00fh ; c6 46 f4 0f 2888 jmp short 026 4ah ; eb 092960 jmp short 026dbh ; eb 09 2889 2961 dec byte [bp-00ch] ; fe 4e f4 2890 2962 cmp byte [bp-00ch], 000h ; 80 7e f4 00 2891 jbe short 026 57h ; 76 0d2963 jbe short 026e8h ; 76 0d 2892 2964 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 2893 2965 mov ax, strict word 00001h ; b8 01 00 2894 2966 sal ax, CL ; d3 e0 2895 2967 test dx, ax ; 85 c2 2896 je short 026 41h ; 74 ea2968 je short 026d2h ; 74 ea 2897 2969 xor di, di ; 31 ff 2898 jmp short 026 60h ; eb 052970 jmp short 026f1h ; eb 05 2899 2971 cmp di, strict byte 00014h ; 83 ff 14 2900 jnl short 02 675h ; 7d 152972 jnl short 02706h ; 7d 15 2901 2973 mov si, di ; 89 fe 2902 2974 add si, di ; 01 fe … … 2906 2978 mov byte [bp+si-063h], al ; 88 42 9d 2907 2979 inc di ; 47 2908 jmp short 026 5bh ; eb e62980 jmp short 026ech ; eb e6 2909 2981 mov byte [bp-03ch], 000h ; c6 46 c4 00 2910 2982 mov di, strict word 00027h ; bf 27 00 2911 jmp short 02 683h ; eb 052983 jmp short 02714h ; eb 05 2912 2984 dec di ; 4f 2913 2985 test di, di ; 85 ff 2914 jle short 02 68fh ; 7e 0c2986 jle short 02720h ; 7e 0c 2915 2987 cmp byte [bp+di-064h], 020h ; 80 7b 9c 20 2916 jne short 02 68fh ; 75 062988 jne short 02720h ; 75 06 2917 2989 mov byte [bp+di-064h], 000h ; c6 43 9c 00 2918 jmp short 02 67eh ; eb ef2990 jmp short 0270fh ; eb ef 2919 2991 mov al, byte [bp-00ah] ; 8a 46 f6 2920 2992 cmp AL, strict byte 003h ; 3c 03 2921 je short 02 6f2h ; 74 5c2993 je short 02783h ; 74 5c 2922 2994 cmp AL, strict byte 002h ; 3c 02 2923 je short 02 6a3h ; 74 092995 je short 02734h ; 74 09 2924 2996 cmp AL, strict byte 001h ; 3c 01 2925 je near 027 5ch ; 0f 84 bc 002926 jmp near 02 77bh ; e9 d8 002997 je near 027edh ; 0f 84 bc 00 2998 jmp near 0280ch ; e9 d8 00 2927 2999 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2928 je short 02 6aeh ; 74 052929 mov ax, 001 9fh ; b8 9f012930 jmp short 02 6b1h ; eb 032931 mov ax, 001 a6h ; b8 a6013000 je short 0273fh ; 74 05 3001 mov ax, 001b1h ; b8 b1 01 3002 jmp short 02742h ; eb 03 3003 mov ax, 001b8h ; b8 b8 01 2932 3004 push ax ; 50 2933 3005 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2934 3006 push ax ; 50 2935 push 001 adh ; 68 ad013007 push 001bfh ; 68 bf 01 2936 3008 push strict byte 00002h ; 6a 02 2937 call 01 9dah ; e8 1b f33009 call 01a6bh ; e8 1b f3 2938 3010 add sp, strict byte 00008h ; 83 c4 08 2939 3011 xor di, di ; 31 ff … … 2941 3013 inc di ; 47 2942 3014 test ax, ax ; 85 c0 2943 je short 02 6dbh ; 74 0e3015 je short 0276ch ; 74 0e 2944 3016 push ax ; 50 2945 push 001 b8h ; 68 b8013017 push 001cah ; 68 ca 01 2946 3018 push strict byte 00002h ; 6a 02 2947 call 01 9dah ; e8 04 f33019 call 01a6bh ; e8 04 f3 2948 3020 add sp, strict byte 00006h ; 83 c4 06 2949 jmp short 02 6c4h ; eb e93021 jmp short 02755h ; eb e9 2950 3022 push dword [bp-030h] ; 66 ff 76 d0 2951 3023 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2952 3024 push ax ; 50 2953 push 001 bbh ; 68 bb013025 push 001cdh ; 68 cd 01 2954 3026 push strict byte 00002h ; 6a 02 2955 call 01 9dah ; e8 ee f23027 call 01a6bh ; e8 ee f2 2956 3028 add sp, strict byte 0000ah ; 83 c4 0a 2957 jmp near 02 77bh ; e9 89 003029 jmp near 0280ch ; e9 89 00 2958 3030 cmp byte [bp-00eh], 000h ; 80 7e f2 00 2959 je short 02 6fdh ; 74 052960 mov ax, 001 9fh ; b8 9f012961 jmp short 027 00h ; eb 032962 mov ax, 001 a6h ; b8 a6013031 je short 0278eh ; 74 05 3032 mov ax, 001b1h ; b8 b1 01 3033 jmp short 02791h ; eb 03 3034 mov ax, 001b8h ; b8 b8 01 2963 3035 push ax ; 50 2964 3036 movzx ax, byte [bp-008h] ; 0f b6 46 f8 2965 3037 push ax ; 50 2966 push 001 adh ; 68 ad013038 push 001bfh ; 68 bf 01 2967 3039 push strict byte 00002h ; 6a 02 2968 call 01 9dah ; e8 cc f23040 call 01a6bh ; e8 cc f2 2969 3041 add sp, strict byte 00008h ; 83 c4 08 2970 3042 xor di, di ; 31 ff … … 2972 3044 inc di ; 47 2973 3045 test ax, ax ; 85 c0 2974 je short 027 2ah ; 74 0e3046 je short 027bbh ; 74 0e 2975 3047 push ax ; 50 2976 push 001 b8h ; 68 b8013048 push 001cah ; 68 ca 01 2977 3049 push strict byte 00002h ; 6a 02 2978 call 01 9dah ; e8 b5 f23050 call 01a6bh ; e8 b5 f2 2979 3051 add sp, strict byte 00006h ; 83 c4 06 2980 jmp short 027 13h ; eb e93052 jmp short 027a4h ; eb e9 2981 3053 movzx ax, byte [bp-016h] ; 0f b6 46 ea 2982 3054 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 2985 3057 add bx, ax ; 01 c3 2986 3058 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 2987 jne short 027 4ah ; 75 0a3059 jne short 027dbh ; 75 0a 2988 3060 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2989 3061 push ax ; 50 2990 push 001 dbh ; 68 db012991 jmp short 027 52h ; eb 083062 push 001edh ; 68 ed 01 3063 jmp short 027e3h ; eb 08 2992 3064 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 2993 3065 push ax ; 50 2994 push 00 1f5h ; 68 f5 013066 push 00207h ; 68 07 02 2995 3067 push strict byte 00002h ; 6a 02 2996 call 01 9dah ; e8 83 f23068 call 01a6bh ; e8 83 f2 2997 3069 add sp, strict byte 00006h ; 83 c4 06 2998 jmp short 02 77bh ; eb 1f3070 jmp short 0280ch ; eb 1f 2999 3071 cmp byte [bp-00eh], 000h ; 80 7e f2 00 3000 je short 027 67h ; 74 053001 mov ax, 001 9fh ; b8 9f013002 jmp short 027 6ah ; eb 033003 mov ax, 001 a6h ; b8 a6013072 je short 027f8h ; 74 05 3073 mov ax, 001b1h ; b8 b1 01 3074 jmp short 027fbh ; eb 03 3075 mov ax, 001b8h ; b8 b8 01 3004 3076 push ax ; 50 3005 3077 movzx ax, byte [bp-008h] ; 0f b6 46 f8 3006 3078 push ax ; 50 3007 push 002 07h ; 68 07023079 push 00219h ; 68 19 02 3008 3080 push strict byte 00002h ; 6a 02 3009 call 01 9dah ; e8 62 f23081 call 01a6bh ; e8 62 f2 3010 3082 add sp, strict byte 00008h ; 83 c4 08 3011 3083 inc byte [bp-016h] ; fe 46 ea 3012 3084 cmp byte [bp-016h], 008h ; 80 7e ea 08 3013 jnc short 02 7d6h ; 73 523085 jnc short 02867h ; 73 52 3014 3086 movzx bx, byte [bp-016h] ; 0f b6 5e ea 3015 3087 mov ax, bx ; 89 d8 … … 3040 3112 out DX, AL ; ee 3041 3113 cmp byte [bp-032h], 000h ; 80 7e ce 00 3042 je near 02 1feh ; 0f 84 2e fa3114 je near 0228fh ; 0f 84 2e fa 3043 3115 mov ax, 000b0h ; b8 b0 00 3044 jmp near 022 01h ; e9 2b fa3116 jmp near 02292h ; e9 2b fa 3045 3117 mov al, byte [bp-010h] ; 8a 46 f0 3046 3118 mov es, [bp-034h] ; 8e 46 cc … … 3052 3124 mov dx, strict word 00075h ; ba 75 00 3053 3125 mov ax, strict word 00040h ; b8 40 00 3054 call 01 6c6h ; e8 cd ee3126 call 01757h ; e8 cd ee 3055 3127 lea sp, [bp-004h] ; 8d 66 fc 3056 3128 pop di ; 5f … … 3058 3130 pop bp ; 5d 3059 3131 retn ; c3 3060 ata_cmd_data_out_: ; 0xf28 00LB 0x2bc3132 ata_cmd_data_out_: ; 0xf2891 LB 0x2bc 3061 3133 push bp ; 55 3062 3134 mov bp, sp ; 89 e5 … … 3089 3161 mov byte [bp-008h], al ; 88 46 f8 3090 3162 cmp AL, strict byte 001h ; 3c 01 3091 jne short 028 58h ; 75 073163 jne short 028e9h ; 75 07 3092 3164 mov word [bp-020h], 00080h ; c7 46 e0 80 00 3093 jmp short 028 5dh ; eb 053165 jmp short 028eeh ; eb 05 3094 3166 mov word [bp-020h], 00100h ; c7 46 e0 00 01 3095 3167 mov dx, word [bp-00ah] ; 8b 56 f6 … … 3099 3171 ; sub ah, ah ; 2a e4 3100 3172 test AL, strict byte 080h ; a8 80 3101 je short 02 879h ; 74 0f3173 je short 0290ah ; 74 0f 3102 3174 mov dx, word [bp-012h] ; 8b 56 ee 3103 3175 add dx, strict byte 00006h ; 83 c2 06 … … 3105 3177 out DX, AL ; ee 3106 3178 mov dx, strict word 00001h ; ba 01 00 3107 jmp near 02 ab3h ; e9 3a 023179 jmp near 02b44h ; e9 3a 02 3108 3180 mov es, [bp-00ch] ; 8e 46 f4 3109 3181 mov ax, word [es:di+006h] ; 26 8b 45 06 … … 3127 3199 mov ax, word [bp-01ch] ; 8b 46 e4 3128 3200 test ax, ax ; 85 c0 3129 jne near 02 98ah ; 0f 85 c7 003201 jne near 02a1bh ; 0f 85 c7 00 3130 3202 xor dx, dx ; 31 d2 3131 3203 xor bx, bx ; 31 db … … 3136 3208 adc ax, word [bp-010h] ; 13 46 f0 3137 3209 test ax, ax ; 85 c0 3138 jnbe short 02 8eah ; 77 103139 jne short 029 4dh ; 75 713210 jnbe short 0297bh ; 77 10 3211 jne short 029deh ; 75 71 3140 3212 test bx, bx ; 85 db 3141 jnbe short 02 8eah ; 77 0a3142 jne short 029 4dh ; 75 6b3213 jnbe short 0297bh ; 77 0a 3214 jne short 029deh ; 75 6b 3143 3215 cmp dx, 01000h ; 81 fa 00 10 3144 jnbe short 02 8eah ; 77 023145 jne short 029 4dh ; 75 633216 jnbe short 0297bh ; 77 02 3217 jne short 029deh ; 75 63 3146 3218 mov ax, word [bp-010h] ; 8b 46 f0 3147 3219 mov bx, word [bp-014h] ; 8b 5e ec … … 3149 3221 mov dx, word [bp-01eh] ; 8b 56 e2 3150 3222 mov si, strict word 00018h ; be 18 00 3151 call 0 9f40h ; e8 44763223 call 0a030h ; e8 a3 76 3152 3224 xor dh, dh ; 30 f6 3153 3225 mov word [bp-01ch], dx ; 89 56 e4 … … 3157 3229 mov dx, word [bp-01eh] ; 8b 56 e2 3158 3230 mov si, strict word 00020h ; be 20 00 3159 call 0 9f40h ; e8 2d763231 call 0a030h ; e8 8c 76 3160 3232 mov bx, dx ; 89 d3 3161 3233 mov ax, word [bp-01ah] ; 8b 46 e6 … … 3191 3263 mov dx, word [bp-01eh] ; 8b 56 e2 3192 3264 mov si, strict word 00008h ; be 08 00 3193 call 0 9f40h ; e8 d9 753265 call 0a030h ; e8 38 76 3194 3266 mov word [bp-010h], ax ; 89 46 f0 3195 3267 mov word [bp-014h], bx ; 89 5e ec … … 3198 3270 mov word [bp-026h], dx ; 89 56 da 3199 3271 mov si, strict word 00010h ; be 10 00 3200 call 0 9f40h ; e8 c4 753272 call 0a030h ; e8 23 76 3201 3273 mov word [bp-01eh], dx ; 89 56 e2 3202 3274 mov ax, dx ; 89 d0 … … 3231 3303 out DX, AL ; ee 3232 3304 cmp byte [bp-006h], 000h ; 80 7e fa 00 3233 je short 02 9cch ; 74 053305 je short 02a5dh ; 74 05 3234 3306 mov ax, 000b0h ; b8 b0 00 3235 jmp short 02 9cfh ; eb 033307 jmp short 02a60h ; eb 03 3236 3308 mov ax, 000a0h ; b8 a0 00 3237 3309 movzx dx, byte [bp-022h] ; 0f b6 56 de … … 3251 3323 mov dl, al ; 88 c2 3252 3324 test AL, strict byte 080h ; a8 80 3253 jne short 02 9e6h ; 75 f13325 jne short 02a77h ; 75 f1 3254 3326 test AL, strict byte 001h ; a8 01 3255 je short 02a 08h ; 74 0f3327 je short 02a99h ; 74 0f 3256 3328 mov dx, word [bp-012h] ; 8b 56 ee 3257 3329 add dx, strict byte 00006h ; 83 c2 06 … … 3259 3331 out DX, AL ; ee 3260 3332 mov dx, strict word 00002h ; ba 02 00 3261 jmp near 02 ab3h ; e9 ab 003333 jmp near 02b44h ; e9 ab 00 3262 3334 test dl, 008h ; f6 c2 08 3263 jne short 02a 1ch ; 75 0f3335 jne short 02aadh ; 75 0f 3264 3336 mov dx, word [bp-012h] ; 8b 56 ee 3265 3337 add dx, strict byte 00006h ; 83 c2 06 … … 3267 3339 out DX, AL ; ee 3268 3340 mov dx, strict word 00003h ; ba 03 00 3269 jmp near 02 ab3h ; e9 97 003341 jmp near 02b44h ; e9 97 00 3270 3342 sti ; fb 3271 3343 mov ax, word [bp-00eh] ; 8b 46 f2 3272 3344 cmp ax, 0f800h ; 3d 00 f8 3273 jc short 02a 35h ; 72 103345 jc short 02ac6h ; 72 10 3274 3346 sub ax, 00800h ; 2d 00 08 3275 3347 mov dx, word [bp-018h] ; 8b 56 e8 … … 3278 3350 mov word [bp-018h], dx ; 89 56 e8 3279 3351 cmp byte [bp-008h], 001h ; 80 7e f8 01 3280 jne short 02a 4dh ; 75 123352 jne short 02adeh ; 75 12 3281 3353 mov dx, word [bp-00ah] ; 8b 56 f6 3282 3354 mov cx, word [bp-020h] ; 8b 4e e0 … … 3285 3357 db 0f3h, 066h, 026h, 06fh 3286 3358 ; rep es outsd ; f3 66 26 6f 3287 jmp short 02a 5ch ; eb 0f3359 jmp short 02aedh ; eb 0f 3288 3360 mov dx, word [bp-00ah] ; 8b 56 f6 3289 3361 mov cx, word [bp-020h] ; 8b 4e e0 … … 3303 3375 mov dl, al ; 88 c2 3304 3376 test AL, strict byte 080h ; a8 80 3305 jne short 02a 69h ; 75 f13377 jne short 02afah ; 75 f1 3306 3378 cmp word [bp-01ah], strict byte 00000h ; 83 7e e6 00 3307 jne short 02 a92h ; 75 143379 jne short 02b23h ; 75 14 3308 3380 and AL, strict byte 0e9h ; 24 e9 3309 3381 cmp AL, strict byte 040h ; 3c 40 3310 je short 02 aa8h ; 74 243382 je short 02b39h ; 74 24 3311 3383 mov dx, word [bp-012h] ; 8b 56 ee 3312 3384 add dx, strict byte 00006h ; 83 c2 06 … … 3314 3386 out DX, AL ; ee 3315 3387 mov dx, strict word 00006h ; ba 06 00 3316 jmp short 02 ab3h ; eb 213388 jmp short 02b44h ; eb 21 3317 3389 mov al, dl ; 88 d0 3318 3390 and AL, strict byte 0c9h ; 24 c9 3319 3391 cmp AL, strict byte 048h ; 3c 48 3320 je short 02a 1dh ; 74 833392 je short 02aaeh ; 74 83 3321 3393 mov dx, word [bp-012h] ; 8b 56 ee 3322 3394 add dx, strict byte 00006h ; 83 c2 06 … … 3324 3396 out DX, AL ; ee 3325 3397 mov dx, strict word 00007h ; ba 07 00 3326 jmp short 02 ab3h ; eb 0b3398 jmp short 02b44h ; eb 0b 3327 3399 mov dx, word [bp-012h] ; 8b 56 ee 3328 3400 add dx, strict byte 00006h ; 83 c2 06 … … 3336 3408 pop bp ; 5d 3337 3409 retn ; c3 3338 @ata_read_sectors: ; 0xf2 abcLB 0xb53410 @ata_read_sectors: ; 0xf2b4d LB 0xb5 3339 3411 push bp ; 55 3340 3412 mov bp, sp ; 89 e5 … … 3349 3421 sal dx, 009h ; c1 e2 09 3350 3422 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3351 je short 02 afdh ; 74 1f3423 je short 02b8eh ; 74 1f 3352 3424 xor ah, ah ; 30 e4 3353 3425 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3359 3431 mov ax, si ; 89 f0 3360 3432 mov dx, es ; 8c c2 3361 call 01 ec2h ; e8 ca f33433 call 01f53h ; e8 ca f3 3362 3434 mov es, [bp-00ah] ; 8e 46 f6 3363 jmp short 02b 62h ; eb 653435 jmp short 02bf3h ; eb 65 3364 3436 xor bx, bx ; 31 db 3365 3437 mov word [bp-00ah], bx ; 89 5e f6 … … 3376 3448 adc di, word [bp-00ch] ; 13 7e f4 3377 3449 test di, di ; 85 ff 3378 jnbe short 02b 39h ; 77 113379 jne short 02b 45h ; 75 1b3450 jnbe short 02bcah ; 77 11 3451 jne short 02bd6h ; 75 1b 3380 3452 test bx, bx ; 85 db 3381 jnbe short 02b 39h ; 77 0b3382 jne short 02b 45h ; 75 153453 jnbe short 02bcah ; 77 0b 3454 jne short 02bd6h ; 75 15 3383 3455 cmp word [bp-006h], 01000h ; 81 7e fa 00 10 3384 jnbe short 02b 39h ; 77 023385 jne short 02b 45h ; 75 0c3456 jnbe short 02bcah ; 77 02 3457 jne short 02bd6h ; 75 0c 3386 3458 mov bx, strict word 00024h ; bb 24 00 3387 3459 mov ax, si ; 89 f0 3388 3460 mov dx, es ; 8c c2 3389 call 01 ec2h ; e8 7f f33390 jmp short 02b 68h ; eb 233461 call 01f53h ; e8 7f f3 3462 jmp short 02bf9h ; eb 23 3391 3463 xor ah, ah ; 30 e4 3392 3464 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 3398 3470 mov ax, si ; 89 f0 3399 3471 mov dx, es ; 8c c2 3400 call 01 ec2h ; e8 63 f33472 call 01f53h ; e8 63 f3 3401 3473 mov es, [bp-006h] ; 8e 46 fa 3402 3474 mov word [es:di+028h], 00200h ; 26 c7 45 28 00 02 … … 3406 3478 pop bp ; 5d 3407 3479 retn 00004h ; c2 04 00 3408 @ata_write_sectors: ; 0xf2 b71LB 0x5b3480 @ata_write_sectors: ; 0xf2c02 LB 0x5b 3409 3481 push bp ; 55 3410 3482 mov bp, sp ; 89 e5 … … 3415 3487 mov cx, word [es:si+00eh] ; 26 8b 4c 0e 3416 3488 cmp word [es:si+016h], strict byte 00000h ; 26 83 7c 16 00 3417 je short 02 b91h ; 74 0c3489 je short 02c22h ; 74 0c 3418 3490 mov bx, strict word 00030h ; bb 30 00 3419 3491 mov ax, si ; 89 f0 3420 3492 mov dx, es ; 8c c2 3421 call 028 00h ; e8 71 fc3422 jmp short 02 bc3h ; eb 323493 call 02891h ; e8 71 fc 3494 jmp short 02c54h ; eb 32 3423 3495 xor ax, ax ; 31 c0 3424 3496 xor bx, bx ; 31 db … … 3431 3503 adc dx, word [es:si+006h] ; 26 13 54 06 3432 3504 test dx, dx ; 85 d2 3433 jnbe short 02 bbeh ; 77 0f3434 jne short 02 b85h ; 75 d43505 jnbe short 02c4fh ; 77 0f 3506 jne short 02c16h ; 75 d4 3435 3507 test bx, bx ; 85 db 3436 jnbe short 02 bbeh ; 77 093437 jne short 02 b85h ; 75 ce3508 jnbe short 02c4fh ; 77 09 3509 jne short 02c16h ; 75 ce 3438 3510 cmp ax, 01000h ; 3d 00 10 3439 jnbe short 02 bbeh ; 77 023440 jne short 02 b85h ; 75 c73511 jnbe short 02c4fh ; 77 02 3512 jne short 02c16h ; 75 c7 3441 3513 mov bx, strict word 00034h ; bb 34 00 3442 jmp short 02 b88h ; eb c53514 jmp short 02c19h ; eb c5 3443 3515 lea sp, [bp-004h] ; 8d 66 fc 3444 3516 pop di ; 5f … … 3446 3518 pop bp ; 5d 3447 3519 retn 00004h ; c2 04 00 3448 ata_cmd_packet_: ; 0xf2 bccLB 0x2e83520 ata_cmd_packet_: ; 0xf2c5d LB 0x2e8 3449 3521 push bp ; 55 3450 3522 mov bp, sp ; 89 e5 … … 3457 3529 mov dx, strict word 0000eh ; ba 0e 00 3458 3530 mov ax, strict word 00040h ; b8 40 00 3459 call 01 6d4h ; e8 f1 ea3531 call 01765h ; e8 f1 ea 3460 3532 mov word [bp-012h], 00122h ; c7 46 ee 22 01 3461 3533 mov word [bp-00eh], ax ; 89 46 f2 … … 3466 3538 mov byte [bp-006h], ah ; 88 66 fa 3467 3539 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 3468 jne short 02c 1eh ; 75 1f3469 mov bx, 00d a0h ; bb a00d3540 jne short 02cafh ; 75 1f 3541 mov bx, 00db2h ; bb b2 0d 3470 3542 mov cx, ds ; 8c d9 3471 3543 mov ax, strict word 00004h ; b8 04 00 3472 call 01 999h ; e8 8f ed3473 push 002 21h ; 68 21023474 push 002 30h ; 68 30023544 call 01a2ah ; e8 8f ed 3545 push 00233h ; 68 33 02 3546 push 00242h ; 68 42 02 3475 3547 push strict byte 00004h ; 6a 04 3476 call 01 9dah ; e8 c5 ed3548 call 01a6bh ; e8 c5 ed 3477 3549 add sp, strict byte 00006h ; 83 c4 06 3478 3550 mov dx, strict word 00001h ; ba 01 00 3479 jmp near 02 ea9h ; e9 8b 023551 jmp near 02f3ah ; e9 8b 02 3480 3552 test byte [bp+004h], 001h ; f6 46 04 01 3481 jne short 02c 18h ; 75 f43553 jne short 02ca9h ; 75 f4 3482 3554 xor ah, ah ; 30 e4 3483 3555 imul ax, ax, strict byte 00006h ; 6b c0 06 … … 3497 3569 mov al, byte [bp-008h] ; 8a 46 f8 3498 3570 cmp AL, strict byte 00ch ; 3c 0c 3499 jnc short 02c 61h ; 73 063571 jnc short 02cf2h ; 73 06 3500 3572 mov byte [bp-008h], 00ch ; c6 46 f8 0c 3501 jmp short 02c 67h ; eb 063502 jbe short 02c 67h ; 76 043573 jmp short 02cf8h ; eb 06 3574 jbe short 02cf8h ; 76 04 3503 3575 mov byte [bp-008h], 010h ; c6 46 f8 10 3504 3576 shr byte [bp-008h], 1 ; d0 6e f8 … … 3513 3585 ; sub ah, ah ; 2a e4 3514 3586 test AL, strict byte 080h ; a8 80 3515 je short 02 c8fh ; 74 063587 je short 02d20h ; 74 06 3516 3588 mov dx, strict word 00002h ; ba 02 00 3517 jmp near 02 ea9h ; e9 1a 023589 jmp near 02f3ah ; e9 1a 02 3518 3590 mov dx, word [bp-010h] ; 8b 56 f0 3519 3591 add dx, strict byte 00006h ; 83 c2 06 … … 3527 3599 out DX, AL ; ee 3528 3600 cmp byte [bp-006h], 000h ; 80 7e fa 00 3529 je short 02 cafh ; 74 053601 je short 02d40h ; 74 05 3530 3602 mov ax, 000b0h ; b8 b0 00 3531 jmp short 02 cb2h ; eb 033603 jmp short 02d43h ; eb 03 3532 3604 mov ax, 000a0h ; b8 a0 00 3533 3605 lea dx, [bx+006h] ; 8d 57 06 … … 3542 3614 mov dl, al ; 88 c2 3543 3615 test AL, strict byte 080h ; a8 80 3544 jne short 02 cbch ; 75 f43616 jne short 02d4dh ; 75 f4 3545 3617 test AL, strict byte 001h ; a8 01 3546 je short 02 cdbh ; 74 0f3618 je short 02d6ch ; 74 0f 3547 3619 mov dx, word [bp-010h] ; 8b 56 f0 3548 3620 add dx, strict byte 00006h ; 83 c2 06 … … 3550 3622 out DX, AL ; ee 3551 3623 mov dx, strict word 00003h ; ba 03 00 3552 jmp near 02 ea9h ; e9 ce 013624 jmp near 02f3ah ; e9 ce 01 3553 3625 test dl, 008h ; f6 c2 08 3554 jne short 02 cefh ; 75 0f3626 jne short 02d80h ; 75 0f 3555 3627 mov dx, word [bp-010h] ; 8b 56 f0 3556 3628 add dx, strict byte 00006h ; 83 c2 06 … … 3558 3630 out DX, AL ; ee 3559 3631 mov dx, strict word 00004h ; ba 04 00 3560 jmp near 02 ea9h ; e9 ba 013632 jmp near 02f3ah ; e9 ba 01 3561 3633 sti ; fb 3562 3634 mov ax, di ; 89 f8 … … 3571 3643 ; rep es outsw ; f3 26 6f 3572 3644 cmp byte [bp+00ah], 000h ; 80 7e 0a 00 3573 jne short 02d 18h ; 75 0b3645 jne short 02da9h ; 75 0b 3574 3646 lea dx, [bx+007h] ; 8d 57 07 3575 3647 in AL, DX ; ec … … 3577 3649 ; sub ah, ah ; 2a e4 3578 3650 mov dl, al ; 88 c2 3579 jmp near 02 e8ah ; e9 72 013651 jmp near 02f1bh ; e9 72 01 3580 3652 lea dx, [bx+007h] ; 8d 57 07 3581 3653 in AL, DX ; ec … … 3584 3656 mov dl, al ; 88 c2 3585 3657 test AL, strict byte 080h ; a8 80 3586 jne short 02d 18h ; 75 f43658 jne short 02da9h ; 75 f4 3587 3659 test AL, strict byte 088h ; a8 88 3588 je near 02 e8ah ; 0f 84 60 013660 je near 02f1bh ; 0f 84 60 01 3589 3661 test AL, strict byte 001h ; a8 01 3590 je short 02d 39h ; 74 0b3662 je short 02dcah ; 74 0b 3591 3663 mov dx, word [bp-010h] ; 8b 56 f0 3592 3664 add dx, strict byte 00006h ; 83 c2 06 3593 3665 mov AL, strict byte 008h ; b0 08 3594 3666 out DX, AL ; ee 3595 jmp short 02 cd5h ; eb 9c3667 jmp short 02d66h ; eb 9c 3596 3668 mov al, dl ; 88 d0 3597 3669 and AL, strict byte 0c9h ; 24 c9 3598 3670 cmp AL, strict byte 048h ; 3c 48 3599 je short 02d 4ch ; 74 0b3671 je short 02dddh ; 74 0b 3600 3672 mov dx, word [bp-010h] ; 8b 56 f0 3601 3673 add dx, strict byte 00006h ; 83 c2 06 3602 3674 mov AL, strict byte 008h ; b0 08 3603 3675 out DX, AL ; ee 3604 jmp short 02 ce9h ; eb 9d3676 jmp short 02d7ah ; eb 9d 3605 3677 mov ax, word [bp+00ch] ; 8b 46 0c 3606 3678 shr ax, 004h ; c1 e8 04 … … 3625 3697 mov ax, word [bp+004h] ; 8b 46 04 3626 3698 cmp ax, cx ; 39 c8 3627 jbe short 02 d8ch ; 76 0c3699 jbe short 02e1dh ; 76 0c 3628 3700 mov ax, cx ; 89 c8 3629 3701 sub word [bp+004h], cx ; 29 4e 04 3630 3702 xor ax, cx ; 31 c8 3631 3703 mov word [bp-014h], ax ; 89 46 ec 3632 jmp short 02 d96h ; eb 0a3704 jmp short 02e27h ; eb 0a 3633 3705 mov cx, ax ; 89 c1 3634 3706 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 3636 3708 xor ax, ax ; 31 c0 3637 3709 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 3638 jne short 02 dbfh ; 75 213710 jne short 02e50h ; 75 21 3639 3711 mov dx, word [bp-014h] ; 8b 56 ec 3640 3712 cmp dx, word [bp+006h] ; 3b 56 06 3641 jbe short 02 dbfh ; 76 193713 jbe short 02e50h ; 76 19 3642 3714 mov ax, word [bp-014h] ; 8b 46 ec 3643 3715 sub ax, word [bp+006h] ; 2b 46 06 … … 3648 3720 mov word [bp+006h], ax ; 89 46 06 3649 3721 mov word [bp+008h], ax ; 89 46 08 3650 jmp short 02 dcbh ; eb 0c3722 jmp short 02e5ch ; eb 0c 3651 3723 mov word [bp-00ch], ax ; 89 46 f4 3652 3724 mov dx, word [bp-014h] ; 8b 56 ec … … 3656 3728 mov al, byte [bp-00ah] ; 8a 46 f6 3657 3729 test cl, 003h ; f6 c1 03 3658 je short 02 dd8h ; 74 023730 je short 02e69h ; 74 02 3659 3731 xor al, al ; 30 c0 3660 3732 test byte [bp-014h], 003h ; f6 46 ec 03 3661 je short 02 de0h ; 74 023733 je short 02e71h ; 74 02 3662 3734 xor al, al ; 30 c0 3663 3735 test byte [bp-00ch], 003h ; f6 46 f4 03 3664 je short 02 de8h ; 74 023736 je short 02e79h ; 74 02 3665 3737 xor al, al ; 30 c0 3666 3738 test byte [bp-014h], 001h ; f6 46 ec 01 3667 je short 02e 00h ; 74 123739 je short 02e91h ; 74 12 3668 3740 inc word [bp-014h] ; ff 46 ec 3669 3741 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 3670 jbe short 02e 00h ; 76 093742 jbe short 02e91h ; 76 09 3671 3743 test byte [bp-00ch], 001h ; f6 46 f4 01 3672 je short 02e 00h ; 74 033744 je short 02e91h ; 74 03 3673 3745 dec word [bp-00ch] ; ff 4e f4 3674 3746 cmp AL, strict byte 001h ; 3c 01 3675 jne short 02e 11h ; 75 0d3747 jne short 02ea2h ; 75 0d 3676 3748 shr word [bp-014h], 002h ; c1 6e ec 02 3677 3749 shr cx, 002h ; c1 e9 02 3678 3750 shr word [bp-00ch], 002h ; c1 6e f4 02 3679 jmp short 02e 19h ; eb 083751 jmp short 02eaah ; eb 08 3680 3752 shr word [bp-014h], 1 ; d1 6e ec 3681 3753 shr cx, 1 ; d1 e9 3682 3754 shr word [bp-00ch], 1 ; d1 6e f4 3683 3755 cmp AL, strict byte 001h ; 3c 01 3684 jne short 02e 49h ; 75 2c3756 jne short 02edah ; 75 2c 3685 3757 test cx, cx ; 85 c9 3686 je short 02e 2bh ; 74 0a3758 je short 02ebch ; 74 0a 3687 3759 mov dx, bx ; 89 da 3688 3760 push eax ; 66 50 3689 3761 in eax, DX ; 66 ed 3690 loop 02e 25h ; e2 fc3762 loop 02eb6h ; e2 fc 3691 3763 pop eax ; 66 58 3692 3764 mov dx, bx ; 89 da … … 3697 3769 mov ax, word [bp-00ch] ; 8b 46 f4 3698 3770 test ax, ax ; 85 c0 3699 je short 02e 68h ; 74 2b3771 je short 02ef9h ; 74 2b 3700 3772 mov cx, ax ; 89 c1 3701 3773 push eax ; 66 50 3702 3774 in eax, DX ; 66 ed 3703 loop 02e 41h ; e2 fc3775 loop 02ed2h ; e2 fc 3704 3776 pop eax ; 66 58 3705 jmp short 02e 68h ; eb 1f3777 jmp short 02ef9h ; eb 1f 3706 3778 test cx, cx ; 85 c9 3707 je short 02e 52h ; 74 053779 je short 02ee3h ; 74 05 3708 3780 mov dx, bx ; 89 da 3709 3781 in ax, DX ; ed 3710 loop 02e 4fh ; e2 fd3782 loop 02ee0h ; e2 fd 3711 3783 mov dx, bx ; 89 da 3712 3784 mov cx, word [bp-014h] ; 8b 4e ec … … 3715 3787 mov ax, word [bp-00ch] ; 8b 46 f4 3716 3788 test ax, ax ; 85 c0 3717 je short 02e 68h ; 74 053789 je short 02ef9h ; 74 05 3718 3790 mov cx, ax ; 89 c1 3719 3791 in ax, DX ; ed 3720 loop 02e 65h ; e2 fd3792 loop 02ef6h ; e2 fd 3721 3793 add word [bp+00ch], si ; 01 76 0c 3722 3794 xor ax, ax ; 31 c0 … … 3729 3801 mov ax, word [bp-016h] ; 8b 46 ea 3730 3802 mov word [es:si+01ch], ax ; 26 89 44 1c 3731 jmp near 02d 18h ; e9 8e fe3803 jmp near 02da9h ; e9 8e fe 3732 3804 mov al, dl ; 88 d0 3733 3805 and AL, strict byte 0e9h ; 24 e9 3734 3806 cmp AL, strict byte 040h ; 3c 40 3735 je short 02 e9eh ; 74 0c3807 je short 02f2fh ; 74 0c 3736 3808 mov dx, word [bp-010h] ; 8b 56 f0 3737 3809 add dx, strict byte 00006h ; 83 c2 06 3738 3810 mov AL, strict byte 008h ; b0 08 3739 3811 out DX, AL ; ee 3740 jmp near 02 ce9h ; e9 4b fe3812 jmp near 02d7ah ; e9 4b fe 3741 3813 mov dx, word [bp-010h] ; 8b 56 f0 3742 3814 add dx, strict byte 00006h ; 83 c2 06 … … 3750 3822 pop bp ; 5d 3751 3823 retn 0000ch ; c2 0c 00 3752 ata_soft_reset_: ; 0xf2 eb4LB 0x803824 ata_soft_reset_: ; 0xf2f45 LB 0x80 3753 3825 push bp ; 55 3754 3826 mov bp, sp ; 89 e5 … … 3760 3832 mov dx, strict word 0000eh ; ba 0e 00 3761 3833 mov ax, strict word 00040h ; b8 40 00 3762 call 01 6d4h ; e8 0e e83834 call 01765h ; e8 0e e8 3763 3835 mov dx, bx ; 89 da 3764 3836 shr dx, 1 ; d1 ea … … 3775 3847 out DX, AL ; ee 3776 3848 cmp byte [bp-008h], 000h ; 80 7e f8 00 3777 je short 02 ef6h ; 74 053849 je short 02f87h ; 74 05 3778 3850 mov ax, 000b0h ; b8 b0 00 3779 jmp short 02 ef9h ; eb 033851 jmp short 02f8ah ; eb 03 3780 3852 mov ax, 000a0h ; b8 a0 00 3781 3853 mov dx, cx ; 89 ca … … 3792 3864 ; sub ah, ah ; 2a e4 3793 3865 test AL, strict byte 080h ; a8 80 3794 jne short 02f 07h ; 75 f43866 jne short 02f98h ; 75 f4 3795 3867 and AL, strict byte 0e9h ; 24 e9 3796 3868 cmp AL, strict byte 040h ; 3c 40 3797 je short 02f 24h ; 74 0b3869 je short 02fb5h ; 74 0b 3798 3870 lea dx, [bx+006h] ; 8d 57 06 3799 3871 mov AL, strict byte 008h ; b0 08 3800 3872 out DX, AL ; ee 3801 3873 mov ax, strict word 00001h ; b8 01 00 3802 jmp short 02f 2ch ; eb 083874 jmp short 02fbdh ; eb 08 3803 3875 lea dx, [bx+006h] ; 8d 57 06 3804 3876 mov AL, strict byte 008h ; b0 08 … … 3811 3883 pop bp ; 5d 3812 3884 retn ; c3 3813 set_diskette_ ret_status_: ; 0xf2f34 LB 0x183885 set_diskette_current_cyl_: ; 0xf2fc5 LB 0x2a 3814 3886 push bp ; 55 3815 3887 mov bp, sp ; 89 e5 3816 3888 push bx ; 53 3817 push dx ; 52 3818 movzx bx, al ; 0f b6 d8 3819 mov dx, strict word 00041h ; ba 41 00 3889 mov dh, al ; 88 c6 3890 cmp AL, strict byte 001h ; 3c 01 3891 jbe short 02fdah ; 76 0b 3892 push 00262h ; 68 62 02 3893 push strict byte 00007h ; 6a 07 3894 call 01a6bh ; e8 94 ea 3895 add sp, strict byte 00004h ; 83 c4 04 3896 movzx bx, dh ; 0f b6 de 3897 add bx, 00094h ; 81 c3 94 00 3820 3898 mov ax, strict word 00040h ; b8 40 00 3821 call 016c6h ; e8 81 e7 3822 lea sp, [bp-004h] ; 8d 66 fc 3823 pop dx ; 5a 3824 pop bx ; 5b 3825 pop bp ; 5d 3826 retn ; c3 3827 set_diskette_current_cyl_: ; 0xf2f4c LB 0x2d 3828 push bp ; 55 3829 mov bp, sp ; 89 e5 3830 push bx ; 53 3831 mov bl, al ; 88 c3 3832 cmp AL, strict byte 001h ; 3c 01 3833 jbe short 02f61h ; 76 0b 3834 push 00250h ; 68 50 02 3835 push strict byte 00007h ; 6a 07 3836 call 019dah ; e8 7c ea 3837 add sp, strict byte 00004h ; 83 c4 04 3838 movzx ax, dl ; 0f b6 c2 3839 movzx dx, bl ; 0f b6 d3 3840 add dx, 00094h ; 81 c2 94 00 3841 mov bx, ax ; 89 c3 3842 mov ax, strict word 00040h ; b8 40 00 3843 call 016c6h ; e8 53 e7 3899 mov es, ax ; 8e c0 3900 mov byte [es:bx], dl ; 26 88 17 3844 3901 lea sp, [bp-002h] ; 8d 66 fe 3845 3902 pop bx ; 5b 3846 3903 pop bp ; 5d 3847 3904 retn ; c3 3848 floppy_wait_for_interrupt_: ; 0xf2f 79 LB 0x213905 floppy_wait_for_interrupt_: ; 0xf2fef LB 0x23 3849 3906 push bp ; 55 3850 3907 mov bp, sp ; 89 e5 3851 push dx ; 523908 push bx ; 53 3852 3909 cli ; fa 3853 mov dx, strict word 0003eh ; ba3e 003910 mov bx, strict word 0003eh ; bb 3e 00 3854 3911 mov ax, strict word 00040h ; b8 40 00 3855 call 016b8h ; e8 31 e7 3912 mov es, ax ; 8e c0 3913 mov al, byte [es:bx] ; 26 8a 07 3856 3914 test AL, strict byte 080h ; a8 80 3857 je short 0 2f8fh ; 74 043915 je short 03007h ; 74 04 3858 3916 and AL, strict byte 080h ; 24 80 3859 jmp short 0 2f94h ; eb 053917 jmp short 0300ch ; eb 05 3860 3918 sti ; fb 3861 3919 hlt ; f4 3862 3920 cli ; fa 3863 jmp short 02f 7eh ; eb ea3921 jmp short 02ff4h ; eb e8 3864 3922 lea sp, [bp-002h] ; 8d 66 fe 3865 pop dx ; 5a3923 pop bx ; 5b 3866 3924 pop bp ; 5d 3867 3925 retn ; c3 3868 floppy_wait_for_interrupt_or_timeout_: ; 0xf2f9a LB 0x46 3926 floppy_wait_for_interrupt_or_timeout_: ; 0xf3012 LB 0x38 3927 push bp ; 55 3928 mov bp, sp ; 89 e5 3929 push bx ; 53 3930 cli ; fa 3931 mov bx, strict word 00040h ; bb 40 00 3932 mov es, bx ; 8e c3 3933 mov al, byte [es:bx] ; 26 8a 07 3934 test al, al ; 84 c0 3935 jne short 03026h ; 75 03 3936 sti ; fb 3937 jmp short 03044h ; eb 1e 3938 mov bx, strict word 0003eh ; bb 3e 00 3939 mov ax, strict word 00040h ; b8 40 00 3940 mov es, ax ; 8e c0 3941 mov al, byte [es:bx] ; 26 8a 07 3942 test AL, strict byte 080h ; a8 80 3943 je short 0303fh ; 74 0a 3944 mov ah, al ; 88 c4 3945 and ah, 07fh ; 80 e4 7f 3946 mov byte [es:bx], ah ; 26 88 27 3947 jmp short 03044h ; eb 05 3948 sti ; fb 3949 hlt ; f4 3950 cli ; fa 3951 jmp short 03017h ; eb d3 3952 lea sp, [bp-002h] ; 8d 66 fe 3953 pop bx ; 5b 3954 pop bp ; 5d 3955 retn ; c3 3956 floppy_reset_controller_: ; 0xf304a LB 0x42 3869 3957 push bp ; 55 3870 3958 mov bp, sp ; 89 e5 … … 3872 3960 push cx ; 51 3873 3961 push dx ; 52 3874 cli ; fa 3875 mov dx, strict word 00040h ; ba 40 00 3876 mov ax, dx ; 89 d0 3877 call 016b8h ; e8 0f e7 3878 test al, al ; 84 c0 3879 jne short 02fb2h ; 75 05 3880 sti ; fb 3881 xor cl, cl ; 30 c9 3882 jmp short 02fd6h ; eb 24 3883 mov dx, strict word 0003eh ; ba 3e 00 3962 mov cx, ax ; 89 c1 3963 mov dx, 003f2h ; ba f2 03 3964 in AL, DX ; ec 3965 db 02ah, 0e4h 3966 ; sub ah, ah ; 2a e4 3967 mov bx, ax ; 89 c3 3968 movzx ax, bl ; 0f b6 c3 3969 and AL, strict byte 0fbh ; 24 fb 3970 out DX, AL ; ee 3971 mov al, bl ; 88 d8 3972 or AL, strict byte 004h ; 0c 04 3973 out DX, AL ; ee 3974 mov dx, 003f4h ; ba f4 03 3975 in AL, DX ; ec 3976 db 02ah, 0e4h 3977 ; sub ah, ah ; 2a e4 3978 and AL, strict byte 0c0h ; 24 c0 3979 cmp AL, strict byte 080h ; 3c 80 3980 jne short 03065h ; 75 f4 3981 mov bx, cx ; 89 cb 3982 add bx, 00090h ; 81 c3 90 00 3884 3983 mov ax, strict word 00040h ; b8 40 00 3885 call 016b8h ; e8 fd e6 3886 mov cl, al ; 88 c1 3887 test AL, strict byte 080h ; a8 80 3888 je short 02fd1h ; 74 10 3889 and AL, strict byte 07fh ; 24 7f 3890 movzx bx, al ; 0f b6 d8 3891 mov dx, strict word 0003eh ; ba 3e 00 3892 mov ax, strict word 00040h ; b8 40 00 3893 call 016c6h ; e8 f7 e6 3894 jmp short 02fd6h ; eb 05 3895 sti ; fb 3896 hlt ; f4 3897 cli ; fa 3898 jmp short 02fa1h ; eb cb 3899 mov al, cl ; 88 c8 3984 mov es, ax ; 8e c0 3985 mov al, byte [es:bx] ; 26 8a 07 3986 and AL, strict byte 0efh ; 24 ef 3987 mov byte [es:bx], al ; 26 88 07 3900 3988 lea sp, [bp-006h] ; 8d 66 fa 3901 3989 pop dx ; 5a … … 3904 3992 pop bp ; 5d 3905 3993 retn ; c3 3906 floppy_reset_controller_: ; 0xf2fe0 LB 0x48 3907 push bp ; 55 3908 mov bp, sp ; 89 e5 3909 push bx ; 53 3910 push cx ; 51 3911 push dx ; 52 3912 mov bx, ax ; 89 c3 3913 mov dx, 003f2h ; ba f2 03 3914 in AL, DX ; ec 3915 db 02ah, 0e4h 3916 ; sub ah, ah ; 2a e4 3917 mov cx, ax ; 89 c1 3918 movzx ax, cl ; 0f b6 c1 3919 and AL, strict byte 0fbh ; 24 fb 3920 out DX, AL ; ee 3921 mov al, cl ; 88 c8 3922 or AL, strict byte 004h ; 0c 04 3923 out DX, AL ; ee 3924 mov dx, 003f4h ; ba f4 03 3925 in AL, DX ; ec 3926 db 02ah, 0e4h 3927 ; sub ah, ah ; 2a e4 3928 and AL, strict byte 0c0h ; 24 c0 3929 cmp AL, strict byte 080h ; 3c 80 3930 jne short 02ffbh ; 75 f4 3931 lea cx, [bx+00090h] ; 8d 8f 90 00 3932 mov dx, cx ; 89 ca 3933 mov ax, strict word 00040h ; b8 40 00 3934 call 016b8h ; e8 a5 e6 3935 and AL, strict byte 0efh ; 24 ef 3936 movzx bx, al ; 0f b6 d8 3937 mov dx, cx ; 89 ca 3938 mov ax, strict word 00040h ; b8 40 00 3939 call 016c6h ; e8 a6 e6 3940 lea sp, [bp-006h] ; 8d 66 fa 3941 pop dx ; 5a 3942 pop cx ; 59 3943 pop bx ; 5b 3944 pop bp ; 5d 3945 retn ; c3 3946 floppy_prepare_controller_: ; 0xf3028 LB 0x81 3994 floppy_prepare_controller_: ; 0xf308c LB 0x74 3947 3995 push bp ; 55 3948 3996 mov bp, sp ; 89 e5 … … 3952 4000 push ax ; 50 3953 4001 mov cx, ax ; 89 c1 3954 mov dx, strict word 0003eh ; ba3e 004002 mov bx, strict word 0003eh ; bb 3e 00 3955 4003 mov ax, strict word 00040h ; b8 40 00 3956 call 016b8h ; e8 7e e6 4004 mov es, ax ; 8e c0 4005 mov al, byte [es:bx] ; 26 8a 07 3957 4006 and AL, strict byte 07fh ; 24 7f 3958 movzx bx, al ; 0f b6 d8 3959 mov dx, strict word 0003eh ; ba 3e 00 3960 mov ax, strict word 00040h ; b8 40 00 3961 call 016c6h ; e8 7e e6 4007 mov byte [es:bx], al ; 26 88 07 3962 4008 mov dx, 003f2h ; ba f2 03 3963 4009 in AL, DX ; ec … … 3967 4013 mov byte [bp-008h], al ; 88 46 f8 3968 4014 test cx, cx ; 85 c9 3969 je short 030 5bh ; 74 044015 je short 030b8h ; 74 04 3970 4016 mov AL, strict byte 020h ; b0 20 3971 jmp short 030 5dh ; eb 024017 jmp short 030bah ; eb 02 3972 4018 mov AL, strict byte 010h ; b0 10 3973 4019 or AL, strict byte 00ch ; 0c 0c … … 3975 4021 mov dx, 003f2h ; ba f2 03 3976 4022 out DX, AL ; ee 3977 mov bx, strict word 00025h ; bb 25 00 3978 mov dx, strict word 00040h ; ba 40 00 3979 mov ax, dx ; 89 d0 3980 call 016c6h ; e8 56 e6 3981 mov dx, 0008bh ; ba 8b 00 3982 mov ax, strict word 00040h ; b8 40 00 3983 call 016b8h ; e8 3f e6 4023 mov bx, strict word 00040h ; bb 40 00 4024 mov es, bx ; 8e c3 4025 mov byte [es:bx], 025h ; 26 c6 07 25 4026 mov bx, 0008bh ; bb 8b 00 4027 mov al, byte [es:bx] ; 26 8a 07 3984 4028 shr al, 006h ; c0 e8 06 3985 4029 mov dx, 003f7h ; ba f7 03 … … 3991 4035 and AL, strict byte 0c0h ; 24 c0 3992 4036 cmp AL, strict byte 080h ; 3c 80 3993 jne short 030 80h ; 75 f44037 jne short 030d8h ; 75 f4 3994 4038 cmp byte [bp-008h], 000h ; 80 7e f8 00 3995 jne short 030 a1h ; 75 0f3996 call 02f 79h ; e8 e4 fe3997 mov zx bx, al ; 0f b6 d83998 mov dx, strict word 000 3eh ; ba 3e003999 mov ax, strict word 00040h ; b8 40 004000 call 016c6h ; e8 25 e64039 jne short 030f8h ; 75 0e 4040 call 02fefh ; e8 02 ff 4041 mov bx, strict word 0003eh ; bb 3e 00 4042 mov dx, strict word 00040h ; ba 40 00 4043 mov es, dx ; 8e c2 4044 mov byte [es:bx], al ; 26 88 07 4001 4045 lea sp, [bp-006h] ; 8d 66 fa 4002 4046 pop dx ; 5a … … 4005 4049 pop bp ; 5d 4006 4050 retn ; c3 4007 floppy_media_known_: ; 0xf30a9 LB 0x43 4051 floppy_media_known_: ; 0xf3100 LB 0x49 4052 push bx ; 53 4053 push dx ; 52 4008 4054 push bp ; 55 4009 4055 mov bp, sp ; 89 e5 4010 push bx ; 53 4011 push dx ; 52 4012 mov bx, ax ; 89 c3 4013 mov dx, strict word 0003eh ; ba 3e 00 4056 mov bx, strict word 0003eh ; bb 3e 00 4057 mov dx, strict word 00040h ; ba 40 00 4058 mov es, dx ; 8e c2 4059 mov bh, byte [es:bx] ; 26 8a 3f 4060 mov bl, bh ; 88 fb 4061 test ax, ax ; 85 c0 4062 je short 03118h ; 74 02 4063 shr bl, 1 ; d0 eb 4064 and bl, 001h ; 80 e3 01 4065 jne short 03121h ; 75 04 4066 xor bh, bh ; 30 ff 4067 jmp short 03143h ; eb 22 4068 mov bx, 00090h ; bb 90 00 4069 test ax, ax ; 85 c0 4070 je short 0312bh ; 74 03 4071 mov bx, 00091h ; bb 91 00 4014 4072 mov ax, strict word 00040h ; b8 40 00 4015 call 016b8h ; e8 ff e5 4016 mov ah, al ; 88 c4 4017 test bx, bx ; 85 db 4018 je short 030c1h ; 74 02 4019 shr al, 1 ; d0 e8 4020 and AL, strict byte 001h ; 24 01 4021 jne short 030c9h ; 75 04 4022 xor ah, ah ; 30 e4 4023 jmp short 030e5h ; eb 1c 4024 mov dx, 00090h ; ba 90 00 4025 test bx, bx ; 85 db 4026 je short 030d3h ; 74 03 4027 mov dx, 00091h ; ba 91 00 4028 mov ax, strict word 00040h ; b8 40 00 4029 call 016b8h ; e8 df e5 4073 mov es, ax ; 8e c0 4074 mov al, byte [es:bx] ; 26 8a 07 4030 4075 xor ah, ah ; 30 e4 4031 4076 sar ax, 004h ; c1 f8 04 4032 4077 and AL, strict byte 001h ; 24 01 4033 je short 030c5h ; 74 e3 4034 mov ax, strict word 00001h ; b8 01 00 4035 lea sp, [bp-004h] ; 8d 66 fc 4078 jne short 03140h ; 75 04 4079 xor bx, bx ; 31 db 4080 jmp short 03143h ; eb 03 4081 mov bx, strict word 00001h ; bb 01 00 4082 mov ax, bx ; 89 d8 4083 pop bp ; 5d 4036 4084 pop dx ; 5a 4037 4085 pop bx ; 5b 4038 pop bp ; 5d4039 4086 retn ; c3 4040 floppy_read_id_: ; 0xf3 0ec LB 0x404087 floppy_read_id_: ; 0xf3149 LB 0x4e 4041 4088 push bp ; 55 4042 4089 mov bp, sp ; 89 e5 … … 4044 4091 push dx ; 52 4045 4092 push si ; 56 4046 sub sp, strict byte 00008h ; 83 ec 084047 4093 mov bx, ax ; 89 c3 4048 call 030 28h ; e8 2eff4094 call 0308ch ; e8 38 ff 4049 4095 mov AL, strict byte 04ah ; b0 4a 4050 4096 mov dx, 003f5h ; ba f5 03 … … 4052 4098 mov al, bl ; 88 d8 4053 4099 out DX, AL ; ee 4054 call 02f 79h ; e8 73fe4055 xor si, si ; 31 f64056 jmp short 031 0fh ; eb 054057 cmp si, strict byte 00007h ; 83 fe074058 jnl short 031 1bh ; 7d 0c4100 call 02fefh ; e8 8f fe 4101 xor bx, bx ; 31 db 4102 jmp short 03169h ; eb 05 4103 cmp bx, strict byte 00007h ; 83 fb 07 4104 jnl short 0317dh ; 7d 14 4059 4105 mov dx, 003f5h ; ba f5 03 4060 4106 in AL, DX ; ec 4061 4107 db 02ah, 0e4h 4062 4108 ; sub ah, ah ; 2a e4 4063 mov byte [bp+si-00eh], al ; 88 42 f2 4064 inc si ; 46 4065 jmp short 0310ah ; eb ef 4066 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 4109 lea si, [bx+042h] ; 8d 77 42 4110 mov dx, strict word 00040h ; ba 40 00 4111 mov es, dx ; 8e c2 4112 mov byte [es:si], al ; 26 88 04 4113 inc bx ; 43 4114 jmp short 03164h ; eb e7 4115 mov bx, strict word 00042h ; bb 42 00 4116 mov ax, strict word 00040h ; b8 40 00 4117 mov es, ax ; 8e c0 4118 mov al, byte [es:bx] ; 26 8a 07 4119 test AL, strict byte 0c0h ; a8 c0 4067 4120 db 00fh, 094h, 0c0h 4068 4121 ; sete al ; 0f 94 c0 … … 4074 4127 pop bp ; 5d 4075 4128 retn ; c3 4076 floppy_drive_recal_: ; 0xf31 2c LB 0x484129 floppy_drive_recal_: ; 0xf3197 LB 0x41 4077 4130 push bp ; 55 4078 4131 mov bp, sp ; 89 e5 4079 4132 push bx ; 53 4080 push cx ; 514081 4133 push dx ; 52 4134 push si ; 56 4082 4135 mov bx, ax ; 89 c3 4083 call 030 28h ; e8 f1fe4136 call 0308ch ; e8 ea fe 4084 4137 mov AL, strict byte 007h ; b0 07 4085 4138 mov dx, 003f5h ; ba f5 03 … … 4087 4140 mov al, bl ; 88 d8 4088 4141 out DX, AL ; ee 4089 call 02f 79h ; e8 36fe4142 call 02fefh ; e8 41 fe 4090 4143 test bx, bx ; 85 db 4091 je short 031 4eh ; 74 074144 je short 031b9h ; 74 07 4092 4145 or AL, strict byte 002h ; 0c 02 4093 mov cx, 00095h ; b995 004094 jmp short 031 53h ; eb 054146 mov bx, 00095h ; bb 95 00 4147 jmp short 031beh ; eb 05 4095 4148 or AL, strict byte 001h ; 0c 01 4096 mov cx, 00094h ; b9 94 00 4097 movzx bx, al ; 0f b6 d8 4098 mov dx, strict word 0003eh ; ba 3e 00 4099 mov ax, strict word 00040h ; b8 40 00 4100 call 016c6h ; e8 67 e5 4101 xor bx, bx ; 31 db 4102 mov dx, cx ; 89 ca 4103 mov ax, strict word 00040h ; b8 40 00 4104 call 016c6h ; e8 5d e5 4149 mov bx, 00094h ; bb 94 00 4150 mov si, strict word 0003eh ; be 3e 00 4151 mov dx, strict word 00040h ; ba 40 00 4152 mov es, dx ; 8e c2 4153 mov byte [es:si], al ; 26 88 04 4154 mov byte [es:bx], 000h ; 26 c6 07 00 4105 4155 mov ax, strict word 00001h ; b8 01 00 4106 4156 lea sp, [bp-006h] ; 8d 66 fa 4157 pop si ; 5e 4107 4158 pop dx ; 5a 4108 pop cx ; 594109 4159 pop bx ; 5b 4110 4160 pop bp ; 5d 4111 4161 retn ; c3 4112 floppy_media_sense_: ; 0xf31 74 LB 0xf04162 floppy_media_sense_: ; 0xf31d8 LB 0xe4 4113 4163 push bp ; 55 4114 4164 mov bp, sp ; 89 e5 … … 4117 4167 push dx ; 52 4118 4168 push si ; 56 4119 push di ; 57 4120 mov di, ax ; 89 c7 4121 call 0312ch ; e8 ab ff 4169 mov bx, ax ; 89 c3 4170 call 03197h ; e8 b3 ff 4122 4171 test ax, ax ; 85 c0 4123 jne short 0318ah ; 75 05 4172 jne short 031edh ; 75 05 4173 xor dx, dx ; 31 d2 4174 jmp near 032b1h ; e9 c4 00 4175 mov ax, strict word 00010h ; b8 10 00 4176 call 017a5h ; e8 b2 e5 4177 test bx, bx ; 85 db 4178 jne short 031feh ; 75 07 4179 mov dl, al ; 88 c2 4180 shr dl, 004h ; c0 ea 04 4181 jmp short 03203h ; eb 05 4182 mov dl, al ; 88 c2 4183 and dl, 00fh ; 80 e2 0f 4184 cmp dl, 001h ; 80 fa 01 4185 jne short 03211h ; 75 09 4186 xor dl, dl ; 30 d2 4187 mov DH, strict byte 015h ; b6 15 4188 mov cx, strict word 00001h ; b9 01 00 4189 jmp short 0324fh ; eb 3e 4190 cmp dl, 002h ; 80 fa 02 4191 jne short 0321ch ; 75 06 4192 xor dl, dl ; 30 d2 4193 mov DH, strict byte 035h ; b6 35 4194 jmp short 0320ch ; eb f0 4195 cmp dl, 003h ; 80 fa 03 4196 jne short 03227h ; 75 06 4197 xor dl, dl ; 30 d2 4198 mov DH, strict byte 017h ; b6 17 4199 jmp short 0320ch ; eb e5 4200 cmp dl, 004h ; 80 fa 04 4201 jne short 03232h ; 75 06 4202 xor dl, dl ; 30 d2 4203 mov DH, strict byte 017h ; b6 17 4204 jmp short 0320ch ; eb da 4205 cmp dl, 005h ; 80 fa 05 4206 jne short 0323dh ; 75 06 4207 mov DL, strict byte 0cch ; b2 cc 4208 mov DH, strict byte 0d7h ; b6 d7 4209 jmp short 0320ch ; eb cf 4210 cmp dl, 00eh ; 80 fa 0e 4211 je short 03247h ; 74 05 4212 cmp dl, 00fh ; 80 fa 0f 4213 jne short 03249h ; 75 02 4214 jmp short 03237h ; eb ee 4215 xor dl, dl ; 30 d2 4216 xor dh, dh ; 30 f6 4124 4217 xor cx, cx ; 31 c9 4125 jmp near 03258h ; e9 ce 00 4126 mov ax, strict word 00010h ; b8 10 00 4127 call 01714h ; e8 84 e5 4128 test di, di ; 85 ff 4129 jne short 0319bh ; 75 07 4130 mov cl, al ; 88 c1 4131 shr cl, 004h ; c0 e9 04 4132 jmp short 031a0h ; eb 05 4133 mov cl, al ; 88 c1 4134 and cl, 00fh ; 80 e1 0f 4135 cmp cl, 001h ; 80 f9 01 4136 jne short 031aeh ; 75 09 4137 xor cl, cl ; 30 c9 4138 mov CH, strict byte 015h ; b5 15 4139 mov si, strict word 00001h ; be 01 00 4140 jmp short 031ech ; eb 3e 4141 cmp cl, 002h ; 80 f9 02 4142 jne short 031b9h ; 75 06 4143 xor cl, cl ; 30 c9 4144 mov CH, strict byte 035h ; b5 35 4145 jmp short 031a9h ; eb f0 4146 cmp cl, 003h ; 80 f9 03 4147 jne short 031c4h ; 75 06 4148 xor cl, cl ; 30 c9 4149 mov CH, strict byte 017h ; b5 17 4150 jmp short 031a9h ; eb e5 4151 cmp cl, 004h ; 80 f9 04 4152 jne short 031cfh ; 75 06 4153 xor cl, cl ; 30 c9 4154 mov CH, strict byte 017h ; b5 17 4155 jmp short 031a9h ; eb da 4156 cmp cl, 005h ; 80 f9 05 4157 jne short 031dah ; 75 06 4158 mov CL, strict byte 0cch ; b1 cc 4159 mov CH, strict byte 0d7h ; b5 d7 4160 jmp short 031a9h ; eb cf 4161 cmp cl, 00eh ; 80 f9 0e 4162 je short 031e4h ; 74 05 4163 cmp cl, 00fh ; 80 f9 0f 4164 jne short 031e6h ; 75 02 4165 jmp short 031d4h ; eb ee 4166 xor cl, cl ; 30 c9 4167 xor ch, ch ; 30 ed 4168 xor si, si ; 31 f6 4169 movzx bx, cl ; 0f b6 d9 4170 mov dx, 0008bh ; ba 8b 00 4218 mov si, 0008bh ; be 8b 00 4171 4219 mov ax, strict word 00040h ; b8 40 00 4172 call 016c6h ; e8 ce e4 4173 mov ax, di ; 89 f8 4174 call 030ech ; e8 ef fe 4220 mov es, ax ; 8e c0 4221 mov byte [es:si], dl ; 26 88 14 4222 mov ax, bx ; 89 d8 4223 call 03149h ; e8 ea fe 4175 4224 test ax, ax ; 85 c0 4176 jne short 032 33h ; 75 324177 mov al, cl ; 88 c84225 jne short 03295h ; 75 32 4226 mov al, dl ; 88 d0 4178 4227 and AL, strict byte 0c0h ; 24 c0 4179 4228 cmp AL, strict byte 080h ; 3c 80 4180 je short 032 33h ; 74 2a4181 mov al, cl ; 88 c84229 je short 03295h ; 74 2a 4230 mov al, dl ; 88 d0 4182 4231 and AL, strict byte 0c0h ; 24 c0 4183 4232 cmp AL, strict byte 0c0h ; 3c c0 4184 je short 032 20h ; 74 0f4185 mov ah, cl ; 88 cc4233 je short 03282h ; 74 0f 4234 mov ah, dl ; 88 d4 4186 4235 and ah, 03fh ; 80 e4 3f 4187 4236 cmp AL, strict byte 040h ; 3c 40 4188 je short 032 2ch ; 74 124237 je short 0328eh ; 74 12 4189 4238 test al, al ; 84 c0 4190 je short 032 25h ; 74 074191 jmp short 03 1ech ; eb cc4192 and cl, 03fh ; 80 e13f4193 jmp short 03 1ech ; eb c74194 mov cl, ah ; 88 e14195 or cl, 040h ; 80 c9404196 jmp short 03 1ech ; eb c04197 mov cl, ah ; 88 e14198 or cl, 080h ; 80 c9804199 jmp short 03 1ech ; eb b94200 test di, di ; 85 ff4239 je short 03287h ; 74 07 4240 jmp short 0324fh ; eb cd 4241 and dl, 03fh ; 80 e2 3f 4242 jmp short 0324fh ; eb c8 4243 mov dl, ah ; 88 e2 4244 or dl, 040h ; 80 ca 40 4245 jmp short 0324fh ; eb c1 4246 mov dl, ah ; 88 e2 4247 or dl, 080h ; 80 ca 80 4248 jmp short 0324fh ; eb ba 4249 test bx, bx ; 85 db 4201 4250 db 00fh, 095h, 0c0h 4202 4251 ; setne al ; 0f 95 c0 4203 movzx di, al ; 0f b6 f8 4204 add di, 00090h ; 81 c7 90 00 4205 movzx bx, cl ; 0f b6 d9 4206 mov dx, 0008bh ; ba 8b 00 4252 movzx bx, al ; 0f b6 d8 4253 add bx, 00090h ; 81 c3 90 00 4254 mov si, 0008bh ; be 8b 00 4207 4255 mov ax, strict word 00040h ; b8 40 00 4208 call 016c6h ; e8 7b e4 4209 movzx bx, ch ; 0f b6 dd 4210 mov dx, di ; 89 fa 4211 mov ax, strict word 00040h ; b8 40 00 4212 call 016c6h ; e8 70 e4 4213 mov cx, si ; 89 f1 4214 mov ax, cx ; 89 c8 4215 lea sp, [bp-00ah] ; 8d 66 f6 4216 pop di ; 5f 4256 mov es, ax ; 8e c0 4257 mov byte [es:si], dl ; 26 88 14 4258 mov byte [es:bx], dh ; 26 88 37 4259 mov dx, cx ; 89 ca 4260 mov ax, dx ; 89 d0 4261 lea sp, [bp-008h] ; 8d 66 f8 4217 4262 pop si ; 5e 4218 4263 pop dx ; 5a … … 4221 4266 pop bp ; 5d 4222 4267 retn ; c3 4223 floppy_drive_exists_: ; 0xf32 64 LB 0x244268 floppy_drive_exists_: ; 0xf32bc LB 0x47 4224 4269 push bp ; 55 4225 4270 mov bp, sp ; 89 e5 … … 4227 4272 mov dx, ax ; 89 c2 4228 4273 mov ax, strict word 00010h ; b8 10 00 4229 call 017 14h ; e8 a4e44274 call 017a5h ; e8 dd e4 4230 4275 test dx, dx ; 85 d2 4231 jne short 032 79h ; 75 054276 jne short 032d1h ; 75 05 4232 4277 shr al, 004h ; c0 e8 04 4233 jmp short 032 7bh ; eb 024278 jmp short 032d3h ; eb 02 4234 4279 and AL, strict byte 00fh ; 24 0f 4235 4280 test al, al ; 84 c0 … … 4241 4286 pop bp ; 5d 4242 4287 retn ; c3 4243 _int13_diskette_function: ; 0xf3288 LB 0x90a 4288 sbb byte [bx], dl ; 18 17 4289 push SS ; 16 4290 adc ax, 00508h ; 15 08 05 4291 add AL, strict byte 003h ; 04 03 4292 add al, byte [bx+di] ; 02 01 4293 add byte [bx+si+03ch], bl ; 00 58 3c 4294 aas ; 3f 4295 xor di, word [si-023cdh] ; 33 bc 33 dc 4296 db 033h, 0dch 4297 ; xor bx, sp ; 33 dc 4298 db 033h, 0dch 4299 ; xor bx, sp ; 33 dc 4300 xor dx, word [bx+037h] ; 33 57 37 4301 or ax, 0fd39h ; 0d 39 fd 4302 cmp word [bx], di ; 39 3f 4303 cmp dh, byte [bp+di+03ah] ; 3a 73 3a 4304 in ax, 03ah ; e5 3a 4305 _int13_diskette_function: ; 0xf3303 LB 0x978 4244 4306 push bp ; 55 4245 4307 mov bp, sp ; 89 e5 4246 push si ; 56 4247 push di ; 57 4248 sub sp, strict byte 00016h ; 83 ec 16 4249 mov bx, word [bp+016h] ; 8b 5e 16 4250 shr bx, 008h ; c1 eb 08 4251 mov byte [bp-008h], bl ; 88 5e f8 4252 mov si, word [bp+016h] ; 8b 76 16 4253 and si, 000ffh ; 81 e6 ff 00 4254 mov al, byte [bp+00eh] ; 8a 46 0e 4255 mov ah, byte [bp+014h] ; 8a 66 14 4256 mov cl, byte [bp+016h] ; 8a 4e 16 4257 mov dx, word [bp+014h] ; 8b 56 14 4258 shr dx, 008h ; c1 ea 08 4259 mov word [bp-012h], dx ; 89 56 ee 4260 cmp bl, 008h ; 80 fb 08 4261 jc short 032efh ; 72 38 4262 mov dx, word [bp+01ch] ; 8b 56 1c 4263 or dl, 001h ; 80 ca 01 4264 cmp bl, 008h ; 80 fb 08 4265 jbe near 03856h ; 0f 86 92 05 4266 cmp bl, 016h ; 80 fb 16 4267 jc short 032e5h ; 72 1c 4308 sub sp, strict byte 0000ah ; 83 ec 0a 4309 mov ax, word [bp+016h] ; 8b 46 16 4310 shr ax, 008h ; c1 e8 08 4311 cmp ax, strict word 00018h ; 3d 18 00 4312 jnbe near 03c58h ; 0f 87 42 09 4313 push CS ; 0e 4314 pop ES ; 07 4315 mov cx, strict word 0000ch ; b9 0c 00 4316 mov di, 032e0h ; bf e0 32 4317 repne scasb ; f2 ae 4318 sal cx, 1 ; d1 e1 4319 mov di, cx ; 89 cf 4320 mov di, word [cs:di+032ebh] ; 2e 8b bd eb 32 4321 mov dx, word [bp+016h] ; 8b 56 16 4322 xor dh, dh ; 30 f6 4323 mov ah, byte [bp+00eh] ; 8a 66 0e 4324 mov cx, word [bp+01ch] ; 8b 4e 1c 4325 or cl, 001h ; 80 c9 01 4326 mov si, dx ; 89 d6 4268 4327 or si, 00100h ; 81 ce 00 01 4269 cmp bl, 016h ; 80 fb 16 4270 jbe near 0398ch ; 0f 86 b8 06 4271 cmp bl, 018h ; 80 fb 18 4272 je near 03a22h ; 0f 84 47 07 4273 cmp bl, 017h ; 80 fb 17 4274 je near 039b0h ; 0f 84 ce 06 4275 jmp near 03b6fh ; e9 8a 08 4276 cmp bl, 015h ; 80 fb 15 4277 je near 03948h ; 0f 84 5c 06 4278 jmp near 03b6fh ; e9 80 08 4328 jmp di ; ff e7 4329 mov bl, byte [bp+00eh] ; 8a 5e 0e 4279 4330 cmp bl, 001h ; 80 fb 01 4280 jc short 03309h ; 72 15 4281 jbe near 03382h ; 0f 86 8a 00 4282 cmp bl, 005h ; 80 fb 05 4283 je near 036cch ; 0f 84 cd 03 4284 cmp bl, 004h ; 80 fb 04 4285 jbe near 033a0h ; 0f 86 9a 00 4286 jmp near 03b6fh ; e9 66 08 4287 test bl, bl ; 84 db 4288 jne near 03b6fh ; 0f 85 60 08 4289 mov al, byte [bp+00eh] ; 8a 46 0e 4290 mov byte [bp-00ch], al ; 88 46 f4 4291 cmp AL, strict byte 001h ; 3c 01 4292 jbe short 0332dh ; 76 14 4331 jbe short 03361h ; 76 1a 4293 4332 mov ax, word [bp+016h] ; 8b 46 16 4294 4333 xor ah, ah ; 30 e4 4295 4334 or ah, 001h ; 80 cc 01 4296 4335 mov word [bp+016h], ax ; 89 46 16 4297 mov ax, strict word 00001h ; b8 01 00 4298 call 02f34h ; e8 0a fc 4299 jmp near 036a8h ; e9 7b 03 4336 mov bx, strict word 00041h ; bb 41 00 4337 mov ax, strict word 00040h ; b8 40 00 4338 mov es, ax ; 8e c0 4339 mov byte [es:bx], 001h ; 26 c6 07 01 4340 jmp near 03b45h ; e9 e4 07 4300 4341 mov ax, strict word 00010h ; b8 10 00 4301 call 017 14h ; e8 e1 e34302 cmp byte [bp-00ch], 000h ; 80 7e f4 004303 jne short 033 40h ; 75 074304 mov cl, al ; 88 c14305 shr cl, 004h ; c0 e9044306 jmp short 033 45h ; eb 054307 mov cl, al ; 88 c14308 and cl, 00fh ; 80 e10f4309 test cl, cl ; 84 c94310 jne short 033 59h ; 75 104342 call 017a5h ; e8 3e e4 4343 test bl, bl ; 84 db 4344 jne short 03372h ; 75 07 4345 mov dl, al ; 88 c2 4346 shr dl, 004h ; c0 ea 04 4347 jmp short 03377h ; eb 05 4348 mov dl, al ; 88 c2 4349 and dl, 00fh ; 80 e2 0f 4350 test dl, dl ; 84 d2 4351 jne short 03395h ; 75 1a 4311 4352 mov ax, word [bp+016h] ; 8b 46 16 4312 4353 xor ah, ah ; 30 e4 4313 4354 or ah, 080h ; 80 cc 80 4314 4355 mov word [bp+016h], ax ; 89 46 16 4315 mov ax, 00080h ; b8 80 00 4316 jmp short 03327h ; eb ce 4317 xor bx, bx ; 31 db 4318 mov dx, strict word 0003eh ; ba 3e 00 4356 mov bx, strict word 00041h ; bb 41 00 4319 4357 mov ax, strict word 00040h ; b8 40 00 4320 call 016c6h ; e8 62 e3 4358 mov es, ax ; 8e c0 4359 mov byte [es:bx], 080h ; 26 c6 07 80 4360 jmp near 03b45h ; e9 b0 07 4361 mov si, strict word 0003eh ; be 3e 00 4362 mov ax, strict word 00040h ; b8 40 00 4363 mov es, ax ; 8e c0 4364 mov byte [es:si], 000h ; 26 c6 04 00 4321 4365 xor al, al ; 30 c0 4322 4366 mov byte [bp+017h], al ; 88 46 17 4323 xor ah, ah ; 30 e44324 call 02f34h ; e8 c6 fb4367 mov si, strict word 00041h ; be 41 00 4368 mov byte [es:si], al ; 26 88 04 4325 4369 and byte [bp+01ch], 0feh ; 80 66 1c fe 4326 movzx ax, b yte [bp-00ch] ; 0f b6 46 f44370 movzx ax, bl ; 0f b6 c3 4327 4371 xor dx, dx ; 31 d2 4328 call 02f4ch ; e8 d1 fb 4329 lea sp, [bp-004h] ; 8d 66 fc 4330 pop di ; 5f 4331 pop si ; 5e 4372 call 02fc5h ; e8 0d fc 4373 mov sp, bp ; 89 ec 4332 4374 pop bp ; 5d 4333 4375 retn ; c3 4334 4376 and byte [bp+01ch], 0feh ; 80 66 1c fe 4335 mov dx, 00441h ; ba41 044377 mov bx, 00441h ; bb 41 04 4336 4378 xor ax, ax ; 31 c0 4337 call 016b8h ; e8 2a e3 4338 movzx dx, al ; 0f b6 d0 4339 sal dx, 008h ; c1 e2 08 4340 or si, dx ; 09 d6 4341 mov word [bp+016h], si ; 89 76 16 4379 mov es, ax ; 8e c0 4380 mov al, byte [es:bx] ; 26 8a 07 4381 movzx bx, al ; 0f b6 d8 4382 sal bx, 008h ; c1 e3 08 4383 or dx, bx ; 09 da 4384 mov word [bp+016h], dx ; 89 56 16 4342 4385 test al, al ; 84 c0 4343 je short 0337bh ; 74 de 4344 jmp near 036a8h ; e9 08 03 4345 mov ch, cl ; 88 cd 4346 mov dl, byte [bp-012h] ; 8a 56 ee 4347 mov byte [bp-00ah], dl ; 88 56 f6 4348 mov byte [bp-006h], ah ; 88 66 fa 4349 mov dx, word [bp+012h] ; 8b 56 12 4350 shr dx, 008h ; c1 ea 08 4351 mov byte [bp-00eh], dl ; 88 56 f2 4352 mov byte [bp-00ch], al ; 88 46 f4 4386 je short 033b8h ; 74 df 4387 jmp near 03b45h ; e9 69 07 4388 mov bh, byte [bp+016h] ; 8a 7e 16 4389 mov ax, word [bp+014h] ; 8b 46 14 4390 shr ax, 008h ; c1 e8 08 4391 mov byte [bp-002h], al ; 88 46 fe 4392 mov al, byte [bp+014h] ; 8a 46 14 4393 mov byte [bp-006h], al ; 88 46 fa 4394 mov ax, word [bp+012h] ; 8b 46 12 4395 shr ax, 008h ; c1 e8 08 4396 mov byte [bp-004h], al ; 88 46 fc 4397 mov bl, byte [bp+00eh] ; 8a 5e 0e 4398 cmp bl, 001h ; 80 fb 01 4399 jnbe short 0340ch ; 77 0d 4353 4400 cmp AL, strict byte 001h ; 3c 01 4354 jnbe short 033c9h ; 77 0e 4355 cmp dl, 001h ; 80 fa 01 4356 jnbe short 033c9h ; 77 09 4357 test cl, cl ; 84 c9 4358 je short 033c9h ; 74 05 4359 cmp cl, 048h ; 80 f9 48 4360 jbe short 033f3h ; 76 2a 4361 mov bx, 00da0h ; bb a0 0d 4401 jnbe short 0340ch ; 77 09 4402 test bh, bh ; 84 ff 4403 je short 0340ch ; 74 05 4404 cmp bh, 048h ; 80 ff 48 4405 jbe short 0343fh ; 76 33 4406 mov bx, 00db2h ; bb b2 0d 4362 4407 mov cx, ds ; 8c d9 4363 4408 mov ax, strict word 00004h ; b8 04 00 4364 call 01 999h ; e8 c5 e54365 push 002 75h ; 68 75024366 push 002 8dh ; 68 8d024409 call 01a2ah ; e8 13 e6 4410 push 00287h ; 68 87 02 4411 push 0029fh ; 68 9f 02 4367 4412 push strict byte 00004h ; 6a 04 4368 call 01 9dah ; e8 fb e54413 call 01a6bh ; e8 49 e6 4369 4414 add sp, strict byte 00006h ; 83 c4 06 4370 4415 mov ax, word [bp+016h] ; 8b 46 16 … … 4372 4417 or ah, 001h ; 80 cc 01 4373 4418 mov word [bp+016h], ax ; 89 46 16 4374 mov ax, strict word 00001h ; b8 01 00 4375 jmp near 03469h ; e9 76 00 4376 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4377 call 03264h ; e8 6a fe 4419 mov bx, strict word 00041h ; bb 41 00 4420 mov ax, strict word 00040h ; b8 40 00 4421 mov es, ax ; 8e c0 4422 mov byte [es:bx], 001h ; 26 c6 07 01 4423 jmp near 034cah ; e9 8b 00 4424 movzx ax, bl ; 0f b6 c3 4425 call 032bch ; e8 77 fe 4378 4426 test ax, ax ; 85 c0 4379 je near 035 00h ; 0f 84 00014380 movzx dx, byte [bp-00ch] ; 0f b6 56 f44381 mov ax, dx ; 89 d04382 call 03 0a9h ; e8 a0fc4427 je near 03561h ; 0f 84 16 01 4428 movzx cx, bl ; 0f b6 cb 4429 mov ax, cx ; 89 c8 4430 call 03100h ; e8 ad fc 4383 4431 test ax, ax ; 85 c0 4384 jne short 034 26h ; 75 194385 mov ax, dx ; 89 d04386 call 031 74h ; e8 62fd4432 jne short 03479h ; 75 22 4433 mov ax, cx ; 89 c8 4434 call 031d8h ; e8 7c fd 4387 4435 test ax, ax ; 85 c0 4388 jne short 034 26h ; 75 104436 jne short 03479h ; 75 19 4389 4437 mov ax, word [bp+016h] ; 8b 46 16 4390 4438 xor ah, ah ; 30 e4 4391 4439 or ah, 00ch ; 80 cc 0c 4392 4440 mov word [bp+016h], ax ; 89 46 16 4393 mov ax, strict word 0000ch ; b8 0c 00 4394 jmp short 03469h ; eb 43 4395 cmp byte [bp-008h], 002h ; 80 7e f8 02 4396 jne near 03599h ; 0f 85 6b 01 4397 mov ax, word [bp+006h] ; 8b 46 06 4398 shr ax, 00ch ; c1 e8 0c 4399 mov cl, al ; 88 c1 4441 mov bx, strict word 00041h ; bb 41 00 4442 mov ax, strict word 00040h ; b8 40 00 4443 mov es, ax ; 8e c0 4444 mov byte [es:bx], 00ch ; 26 c6 07 0c 4445 jmp short 034cah ; eb 51 4446 mov ax, word [bp+016h] ; 8b 46 16 4447 shr ax, 008h ; c1 e8 08 4448 cmp ax, strict word 00002h ; 3d 02 00 4449 jne near 03615h ; 0f 85 8f 01 4400 4450 mov dx, word [bp+006h] ; 8b 56 06 4401 sal dx, 004h ; c1 e2 04 4402 mov bx, word [bp+010h] ; 8b 5e 10 4403 add bx, dx ; 01 d3 4404 mov word [bp-010h], bx ; 89 5e f0 4405 cmp dx, bx ; 39 da 4406 jbe short 0344ah ; 76 02 4407 db 0feh, 0c1h 4408 ; inc cl ; fe c1 4409 movzx bx, ch ; 0f b6 dd 4410 sal bx, 009h ; c1 e3 09 4411 dec bx ; 4b 4412 mov ax, word [bp-010h] ; 8b 46 f0 4413 add ax, bx ; 01 d8 4414 cmp ax, word [bp-010h] ; 3b 46 f0 4415 jnc short 03473h ; 73 18 4451 shr dx, 00ch ; c1 ea 0c 4452 mov ah, dl ; 88 d4 4453 mov cx, word [bp+006h] ; 8b 4e 06 4454 sal cx, 004h ; c1 e1 04 4455 mov si, word [bp+010h] ; 8b 76 10 4456 add si, cx ; 01 ce 4457 mov word [bp-008h], si ; 89 76 f8 4458 cmp cx, si ; 39 f1 4459 jbe short 034a2h ; 76 02 4460 db 0feh, 0c4h 4461 ; inc ah ; fe c4 4462 movzx cx, bh ; 0f b6 cf 4463 sal cx, 009h ; c1 e1 09 4464 dec cx ; 49 4465 mov dx, word [bp-008h] ; 8b 56 f8 4466 add dx, cx ; 01 ca 4467 cmp dx, word [bp-008h] ; 3b 56 f8 4468 jnc short 034d1h ; 73 1e 4416 4469 mov ax, word [bp+016h] ; 8b 46 16 4417 4470 xor ah, ah ; 30 e4 4418 4471 or ah, 009h ; 80 cc 09 4419 4472 mov word [bp+016h], ax ; 89 46 16 4420 mov ax, strict word 00009h ; b8 09 00 4421 call 02f34h ; e8 c8 fa 4473 mov bx, strict word 00041h ; bb 41 00 4474 mov ax, strict word 00040h ; b8 40 00 4475 mov es, ax ; 8e c0 4476 mov byte [es:bx], 009h ; 26 c6 07 09 4422 4477 mov byte [bp+016h], 000h ; c6 46 16 00 4423 jmp near 03 6a8h ; e9 35 024478 jmp near 03b45h ; e9 74 06 4424 4479 mov AL, strict byte 006h ; b0 06 4425 4480 mov dx, strict word 0000ah ; ba 0a 00 … … 4428 4483 mov dx, strict word 0000ch ; ba 0c 00 4429 4484 out DX, AL ; ee 4430 mov al, byte [bp-0 10h] ; 8a 46 f04485 mov al, byte [bp-008h] ; 8a 46 f8 4431 4486 mov dx, strict word 00004h ; ba 04 00 4432 4487 out DX, AL ; ee 4433 mov ax, word [bp-010h] ; 8b 46 f0 4434 shr ax, 008h ; c1 e8 08 4488 mov dx, word [bp-008h] ; 8b 56 f8 4489 shr dx, 008h ; c1 ea 08 4490 mov al, dl ; 88 d0 4491 mov dx, strict word 00004h ; ba 04 00 4435 4492 out DX, AL ; ee 4436 4493 xor al, al ; 30 c0 4437 4494 mov dx, strict word 0000ch ; ba 0c 00 4438 4495 out DX, AL ; ee 4439 mov al, bl ; 88 d84496 mov al, cl ; 88 c8 4440 4497 mov dx, strict word 00005h ; ba 05 00 4441 4498 out DX, AL ; ee 4442 mov ax, bx ; 89 d84443 shr ax, 008h ; c1 e8 084499 shr cx, 008h ; c1 e9 08 4500 mov al, cl ; 88 c8 4444 4501 out DX, AL ; ee 4445 4502 mov AL, strict byte 046h ; b0 46 4446 4503 mov dx, strict word 0000bh ; ba 0b 00 4447 4504 out DX, AL ; ee 4448 mov al, cl ; 88 c84505 mov al, ah ; 88 e0 4449 4506 mov dx, 00081h ; ba 81 00 4450 4507 out DX, AL ; ee … … 4452 4509 mov dx, strict word 0000ah ; ba 0a 00 4453 4510 out DX, AL ; ee 4454 movzx bx, byte [bp-00ch] ; 0f b6 5e f44455 mov ax, bx ; 89 d84456 call 030 28h ; e8 6efb4511 movzx cx, bl ; 0f b6 cb 4512 mov ax, cx ; 89 c8 4513 call 0308ch ; e8 70 fb 4457 4514 mov AL, strict byte 0e6h ; b0 e6 4458 4515 mov dx, 003f5h ; ba f5 03 4459 4516 out DX, AL ; ee 4460 movzx ax, byte [bp-00eh] ; 0f b6 46 f24461 sal ax, 002h ; c1 e0024462 movzx dx, byte [bp-00ch] ; 0f b6 56 f44517 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4518 sal dx, 002h ; c1 e2 02 4519 movzx ax, bl ; 0f b6 c3 4463 4520 or ax, dx ; 09 d0 4464 4521 mov dx, 003f5h ; ba f5 03 4465 4522 out DX, AL ; ee 4466 mov al, byte [bp-00 ah] ; 8a 46 f64467 out DX, AL ; ee 4468 mov al, byte [bp-00 eh] ; 8a 46 f24523 mov al, byte [bp-002h] ; 8a 46 fe 4524 out DX, AL ; ee 4525 mov al, byte [bp-004h] ; 8a 46 fc 4469 4526 out DX, AL ; ee 4470 4527 mov al, byte [bp-006h] ; 8a 46 fa … … 4472 4529 mov AL, strict byte 002h ; b0 02 4473 4530 out DX, AL ; ee 4474 movzx dx, byte [bp-006h] ; 0f b6 56 fa4475 movzx ax, ch ; 0f b6 c54531 movzx ax, byte [bp-006h] ; 0f b6 46 fa 4532 movzx dx, bh ; 0f b6 d7 4476 4533 add ax, dx ; 01 d0 4477 4534 dec ax ; 48 … … 4482 4539 mov AL, strict byte 0ffh ; b0 ff 4483 4540 out DX, AL ; ee 4484 call 0 2f9ah ; e8 a3fa4541 call 03012h ; e8 ba fa 4485 4542 test al, al ; 84 c0 4486 jne short 035 11h ; 75 164487 mov ax, bx ; 89 d84488 call 0 2fe0h ; e8 e0fa4543 jne short 0357bh ; 75 1f 4544 mov ax, cx ; 89 c8 4545 call 0304ah ; e8 e9 fa 4489 4546 mov ax, word [bp+016h] ; 8b 46 16 4490 4547 xor ah, ah ; 30 e4 4491 4548 or ah, 080h ; 80 cc 80 4492 4549 mov word [bp+016h], ax ; 89 46 16 4493 mov ax, 00080h ; b8 80 00 4494 jmp near 03469h ; e9 58 ff 4550 mov bx, strict word 00041h ; bb 41 00 4551 mov ax, strict word 00040h ; b8 40 00 4552 mov es, ax ; 8e c0 4553 mov byte [es:bx], 080h ; 26 c6 07 80 4554 jmp near 034cah ; e9 4f ff 4495 4555 mov dx, 003f4h ; ba f4 03 4496 4556 in AL, DX ; ec … … 4499 4559 and AL, strict byte 0c0h ; 24 c0 4500 4560 cmp AL, strict byte 0c0h ; 3c c0 4501 je short 035 2bh ; 74 0e4502 push 002 75h ; 68 75024503 push 002 a8h ; 68 a8024561 je short 03595h ; 74 0e 4562 push 00287h ; 68 87 02 4563 push 002bah ; 68 ba 02 4504 4564 push strict byte 00007h ; 6a 07 4505 call 01 9dah ; e8 b2e44565 call 01a6bh ; e8 d9 e4 4506 4566 add sp, strict byte 00006h ; 83 c4 06 4507 xor si, si ; 31 f64508 jmp short 035 34h ; eb 054509 cmp si, strict byte 00007h ; 83 fe074510 jnl short 035 4ch ; 7d 184567 xor cx, cx ; 31 c9 4568 jmp short 0359eh ; eb 05 4569 cmp cx, strict byte 00007h ; 83 f9 07 4570 jnl short 035b4h ; 7d 16 4511 4571 mov dx, 003f5h ; ba f5 03 4512 4572 in AL, DX ; ec 4513 4573 db 02ah, 0e4h 4514 4574 ; sub ah, ah ; 2a e4 4515 mov byte [bp+si-01ah], al ; 88 42 e6 4516 movzx bx, al ; 0f b6 d8 4517 lea dx, [si+042h] ; 8d 54 42 4575 mov si, cx ; 89 ce 4576 add si, strict byte 00042h ; 83 c6 42 4577 mov dx, strict word 00040h ; ba 40 00 4578 mov es, dx ; 8e c2 4579 mov byte [es:si], al ; 26 88 04 4580 inc cx ; 41 4581 jmp short 03599h ; eb e5 4582 mov si, strict word 00042h ; be 42 00 4518 4583 mov ax, strict word 00040h ; b8 40 00 4519 call 016c6h ; e8 7d e1 4520 inc si ; 46 4521 jmp short 0352fh ; eb e3 4522 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4523 je short 0356ah ; 74 18 4524 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4525 call 02fe0h ; e8 87 fa 4584 mov es, ax ; 8e c0 4585 mov al, byte [es:si] ; 26 8a 04 4586 test AL, strict byte 0c0h ; a8 c0 4587 je short 035e3h ; 74 20 4588 movzx ax, bl ; 0f b6 c3 4589 call 0304ah ; e8 81 fa 4526 4590 mov ax, word [bp+016h] ; 8b 46 16 4527 4591 xor ah, ah ; 30 e4 4528 4592 or ah, 020h ; 80 cc 20 4529 4593 mov word [bp+016h], ax ; 89 46 16 4530 mov ax, strict word 00020h ; b8 20 00 4531 jmp near 03469h ; e9 ff fe 4532 movzx ax, ch ; 0f b6 c5 4594 mov bx, strict word 00041h ; bb 41 00 4595 mov ax, strict word 00040h ; b8 40 00 4596 mov es, ax ; 8e c0 4597 mov byte [es:bx], 020h ; 26 c6 07 20 4598 jmp near 034cah ; e9 e7 fe 4599 movzx ax, bh ; 0f b6 c7 4533 4600 sal ax, 009h ; c1 e0 09 4534 4601 cwd ; 99 … … 4536 4603 ; sub ax, dx ; 2b c2 4537 4604 sar ax, 1 ; d1 f8 4538 mov cx, ax ; 89 c14539 4605 mov si, word [bp+010h] ; 8b 76 10 4540 4606 mov dx, word [bp+006h] ; 8b 56 06 4541 4607 mov di, si ; 89 f7 4608 mov cx, ax ; 89 c1 4542 4609 mov es, dx ; 8e c2 4543 4610 push DS ; 1e … … 4545 4612 rep movsw ; f3 a5 4546 4613 pop DS ; 1f 4547 movzx dx, byte [bp-00 ah] ; 0f b6 56 f64548 movzx ax, b yte [bp-00ch] ; 0f b6 46 f44549 call 02f 4ch ; e8 baf94614 movzx dx, byte [bp-002h] ; 0f b6 56 fe 4615 movzx ax, bl ; 0f b6 c3 4616 call 02fc5h ; e8 bb f9 4550 4617 mov byte [bp+017h], 000h ; c6 46 17 00 4551 jmp near 03a1bh ; e9 82 04 4552 cmp byte [bp-008h], 003h ; 80 7e f8 03 4553 jne near 036b6h ; 0f 85 15 01 4554 mov ax, word [bp+006h] ; 8b 46 06 4555 shr ax, 00ch ; c1 e8 0c 4556 mov cl, al ; 88 c1 4618 and byte [bp+01ch], 0feh ; 80 66 1c fe 4619 jmp near 033b8h ; e9 a3 fd 4620 mov ax, word [bp+016h] ; 8b 46 16 4621 shr ax, 008h ; c1 e8 08 4622 cmp ax, strict word 00003h ; 3d 03 00 4623 jne near 03742h ; 0f 85 20 01 4624 mov cx, word [bp+006h] ; 8b 4e 06 4625 shr cx, 00ch ; c1 e9 0c 4626 mov ah, cl ; 88 cc 4557 4627 mov dx, word [bp+006h] ; 8b 56 06 4558 4628 sal dx, 004h ; c1 e2 04 4559 mov bx, word [bp+010h] ; 8b 5e104560 add bx, dx ; 01 d34561 mov word [bp-0 10h], bx ; 89 5e f04562 cmp dx, bx ; 39 da4563 jbe short 03 5bdh ; 76 024564 db 0feh, 0c 1h4565 ; inc cl ; fe c14566 movzx bx, ch ; 0f b6 dd4567 sal bx, 009h ; c1 e3094568 dec bx ; 4b4569 mov ax, word [bp-010h] ; 8b 46 f04570 add ax, bx ; 01 d84571 cmp ax, word [bp-010h] ; 3b 46 f04572 jc near 034 5bh ; 0f 82 8bfe4629 mov si, word [bp+010h] ; 8b 76 10 4630 add si, dx ; 01 d6 4631 mov word [bp-008h], si ; 89 76 f8 4632 cmp dx, si ; 39 f2 4633 jbe short 0363eh ; 76 02 4634 db 0feh, 0c4h 4635 ; inc ah ; fe c4 4636 movzx cx, bh ; 0f b6 cf 4637 sal cx, 009h ; c1 e1 09 4638 dec cx ; 49 4639 mov dx, word [bp-008h] ; 8b 56 f8 4640 add dx, cx ; 01 ca 4641 cmp dx, word [bp-008h] ; 3b 56 f8 4642 jc near 034b3h ; 0f 82 62 fe 4573 4643 mov AL, strict byte 006h ; b0 06 4574 4644 mov dx, strict word 0000ah ; ba 0a 00 … … 4577 4647 mov dx, strict word 0000ch ; ba 0c 00 4578 4648 out DX, AL ; ee 4579 mov al, byte [bp-0 10h] ; 8a 46 f04649 mov al, byte [bp-008h] ; 8a 46 f8 4580 4650 mov dx, strict word 00004h ; ba 04 00 4581 4651 out DX, AL ; ee 4582 mov ax, word [bp-010h] ; 8b 46 f0 4583 shr ax, 008h ; c1 e8 08 4652 mov dx, word [bp-008h] ; 8b 56 f8 4653 shr dx, 008h ; c1 ea 08 4654 mov al, dl ; 88 d0 4655 mov dx, strict word 00004h ; ba 04 00 4584 4656 out DX, AL ; ee 4585 4657 xor al, al ; 30 c0 4586 4658 mov dx, strict word 0000ch ; ba 0c 00 4587 4659 out DX, AL ; ee 4588 mov al, bl ; 88 d84660 mov al, cl ; 88 c8 4589 4661 mov dx, strict word 00005h ; ba 05 00 4590 4662 out DX, AL ; ee 4591 mov ax, bx ; 89 d84592 shr ax, 008h ; c1 e8 084663 shr cx, 008h ; c1 e9 08 4664 mov al, cl ; 88 c8 4593 4665 out DX, AL ; ee 4594 4666 mov AL, strict byte 04ah ; b0 4a 4595 4667 mov dx, strict word 0000bh ; ba 0b 00 4596 4668 out DX, AL ; ee 4597 mov al, cl ; 88 c84669 mov al, ah ; 88 e0 4598 4670 mov dx, 00081h ; ba 81 00 4599 4671 out DX, AL ; ee … … 4601 4673 mov dx, strict word 0000ah ; ba 0a 00 4602 4674 out DX, AL ; ee 4603 movzx bx, byte [bp-00ch] ; 0f b6 5e f44604 mov ax, bx ; 89 d84605 call 030 28h ; e8 11 fa4675 movzx cx, bl ; 0f b6 cb 4676 mov ax, cx ; 89 c8 4677 call 0308ch ; e8 f0 f9 4606 4678 mov AL, strict byte 0c5h ; b0 c5 4607 4679 mov dx, 003f5h ; ba f5 03 4608 4680 out DX, AL ; ee 4609 movzx dx, byte [bp-00 eh] ; 0f b6 56 f24681 movzx dx, byte [bp-004h] ; 0f b6 56 fc 4610 4682 sal dx, 002h ; c1 e2 02 4611 movzx ax, b yte [bp-00ch] ; 0f b6 46 f44683 movzx ax, bl ; 0f b6 c3 4612 4684 or ax, dx ; 09 d0 4613 4685 mov dx, 003f5h ; ba f5 03 4614 4686 out DX, AL ; ee 4615 mov al, byte [bp-00 ah] ; 8a 46 f64616 out DX, AL ; ee 4617 mov al, byte [bp-00 eh] ; 8a 46 f24687 mov al, byte [bp-002h] ; 8a 46 fe 4688 out DX, AL ; ee 4689 mov al, byte [bp-004h] ; 8a 46 fc 4618 4690 out DX, AL ; ee 4619 4691 mov al, byte [bp-006h] ; 8a 46 fa … … 4622 4694 out DX, AL ; ee 4623 4695 movzx dx, byte [bp-006h] ; 0f b6 56 fa 4624 movzx ax, ch ; 0f b6 c54696 movzx ax, bh ; 0f b6 c7 4625 4697 add ax, dx ; 01 d0 4626 4698 dec ax ; 48 … … 4631 4703 mov AL, strict byte 0ffh ; b0 ff 4632 4704 out DX, AL ; ee 4633 call 0 2f9ah ; e8 46f94705 call 03012h ; e8 3a f9 4634 4706 test al, al ; 84 c0 4635 je near 03 4fbh ; 0f 84 a1fe4707 je near 0355ch ; 0f 84 7e fe 4636 4708 mov dx, 003f4h ; ba f4 03 4637 4709 in AL, DX ; ec … … 4640 4712 and AL, strict byte 0c0h ; 24 c0 4641 4713 cmp AL, strict byte 0c0h ; 3c c0 4642 je short 036 74h ; 74 0e4643 push 002 75h ; 68 75024644 push 002 a8h ; 68 a8024714 je short 036f8h ; 74 0e 4715 push 00287h ; 68 87 02 4716 push 002bah ; 68 ba 02 4645 4717 push strict byte 00007h ; 6a 07 4646 call 01 9dah ; e8 69e34718 call 01a6bh ; e8 76 e3 4647 4719 add sp, strict byte 00006h ; 83 c4 06 4648 xor si, si ; 31 f64649 jmp short 03 67dh ; eb 054650 cmp si, strict byte 00007h ; 83 fe074651 jnl short 03 695h ; 7d 184720 xor cx, cx ; 31 c9 4721 jmp short 03701h ; eb 05 4722 cmp cx, strict byte 00007h ; 83 f9 07 4723 jnl short 03717h ; 7d 16 4652 4724 mov dx, 003f5h ; ba f5 03 4653 4725 in AL, DX ; ec 4654 4726 db 02ah, 0e4h 4655 4727 ; sub ah, ah ; 2a e4 4656 mov byte [bp+si-01ah], al ; 88 42 e6 4657 movzx bx, al ; 0f b6 d8 4658 lea dx, [si+042h] ; 8d 54 42 4728 mov si, cx ; 89 ce 4729 add si, strict byte 00042h ; 83 c6 42 4730 mov dx, strict word 00040h ; ba 40 00 4731 mov es, dx ; 8e c2 4732 mov byte [es:si], al ; 26 88 04 4733 inc cx ; 41 4734 jmp short 036fch ; eb e5 4735 mov si, strict word 00042h ; be 42 00 4659 4736 mov ax, strict word 00040h ; b8 40 00 4660 call 016c6h ; e8 34 e0 4661 inc si ; 46 4662 jmp short 03678h ; eb e3 4663 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4664 je near 03587h ; 0f 84 ea fe 4665 test byte [bp-019h], 002h ; f6 46 e7 02 4666 je short 036afh ; 74 0c 4737 mov es, ax ; 8e c0 4738 mov al, byte [es:si] ; 26 8a 04 4739 test AL, strict byte 0c0h ; a8 c0 4740 je near 03600h ; 0f 84 d8 fe 4741 mov bx, strict word 00043h ; bb 43 00 4742 mov al, byte [es:bx] ; 26 8a 07 4743 test AL, strict byte 002h ; a8 02 4744 je short 0373ah ; 74 08 4667 4745 mov word [bp+016h], 00300h ; c7 46 16 00 03 4668 or byte [bp+01ch], 001h ; 80 4e 1c 01 4669 jmp near 0337bh ; e9 cc fc 4746 jmp near 03b45h ; e9 0b 04 4670 4747 mov word [bp+016h], 00100h ; c7 46 16 00 01 4671 jmp short 036a8h ; eb f24672 movzx dx, byte [bp-00 ah] ; 0f b6 56 f64673 movzx ax, b yte [bp-00ch] ; 0f b6 46 f44674 call 02f 4ch ; e8 8bf84748 jmp near 03b45h ; e9 03 04 4749 movzx dx, byte [bp-002h] ; 0f b6 56 fe 4750 movzx ax, bl ; 0f b6 c3 4751 call 02fc5h ; e8 79 f8 4675 4752 and byte [bp+01ch], 0feh ; 80 66 1c fe 4676 4753 mov byte [bp+017h], 000h ; c6 46 17 00 4677 jmp near 0337bh ; e9 af fc 4678 mov ch, byte [bp+016h] ; 8a 6e 16 4679 mov ax, word [bp+014h] ; 8b 46 14 4754 jmp near 033b8h ; e9 61 fc 4755 mov bh, byte [bp+016h] ; 8a 7e 16 4756 mov dx, word [bp+014h] ; 8b 56 14 4757 shr dx, 008h ; c1 ea 08 4758 mov byte [bp-002h], dl ; 88 56 fe 4759 mov ax, word [bp+012h] ; 8b 46 12 4680 4760 shr ax, 008h ; c1 e8 08 4681 mov byte [bp-00ah], al ; 88 46 f6 4682 mov dx, word [bp+012h] ; 8b 56 12 4683 shr dx, 008h ; c1 ea 08 4684 mov byte [bp-00eh], dl ; 88 56 f2 4761 mov byte [bp-004h], al ; 88 46 fc 4685 4762 mov bl, byte [bp+00eh] ; 8a 5e 0e 4686 mov byte [bp-00ch], bl ; 88 5e f44687 4763 cmp bl, 001h ; 80 fb 01 4688 jnbe short 03 6feh ; 77 124689 cmp dl, 001h ; 80 fa014690 jnbe short 03 6feh ; 77 0d4691 cmp AL, strict byte 04fh ; 3c4f4692 jnbe short 03 6feh ; 77 094693 test ch, ch ; 84 ed4694 je short 03 6feh ; 74 054695 cmp ch, 012h ; 80 fd124696 jbe short 037 13h ; 76 154764 jnbe short 03786h ; 77 12 4765 cmp AL, strict byte 001h ; 3c 01 4766 jnbe short 03786h ; 77 0e 4767 cmp dl, 04fh ; 80 fa 4f 4768 jnbe short 03786h ; 77 09 4769 test bh, bh ; 84 ff 4770 je short 03786h ; 74 05 4771 cmp bh, 012h ; 80 ff 12 4772 jbe short 037a1h ; 76 1b 4697 4773 mov ax, word [bp+016h] ; 8b 46 16 4698 4774 xor ah, ah ; 30 e4 4699 4775 or ah, 001h ; 80 cc 01 4700 4776 mov word [bp+016h], ax ; 89 46 16 4701 mov ax, strict word 00001h ; b8 01 00 4702 call 02f34h ; e8 25 f8 4777 mov si, strict word 00041h ; be 41 00 4778 mov ax, strict word 00040h ; b8 40 00 4779 mov es, ax ; 8e c0 4780 mov byte [es:si], 001h ; 26 c6 04 01 4703 4781 or byte [bp+01ch], 001h ; 80 4e 1c 01 4704 movzx ax, b yte [bp-00ch] ; 0f b6 46 f44705 call 032 64h ; e8 4afb4782 movzx ax, bl ; 0f b6 c3 4783 call 032bch ; e8 15 fb 4706 4784 test ax, ax ; 85 c0 4707 je near 03349h ; 0f 84 29 fc 4708 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 4709 mov ax, dx ; 89 d0 4710 call 030a9h ; e8 80 f9 4785 jne short 037c5h ; 75 1a 4786 mov ax, word [bp+016h] ; 8b 46 16 4787 xor ah, ah ; 30 e4 4788 or ah, 080h ; 80 cc 80 4789 mov word [bp+016h], ax ; 89 46 16 4790 mov bx, strict word 00041h ; bb 41 00 4791 mov ax, strict word 00040h ; b8 40 00 4792 mov es, ax ; 8e c0 4793 mov byte [es:bx], 080h ; 26 c6 07 80 4794 jmp near 03b45h ; e9 80 03 4795 movzx cx, bl ; 0f b6 cb 4796 mov ax, cx ; 89 c8 4797 call 03100h ; e8 33 f9 4711 4798 test ax, ax ; 85 c0 4712 jne short 037 38h ; 75 0b4713 mov ax, dx ; 89 d04714 call 031 74h ; e8 42 fa4799 jne short 037dch ; 75 0b 4800 mov ax, cx ; 89 c8 4801 call 031d8h ; e8 02 fa 4715 4802 test ax, ax ; 85 c0 4716 je near 03416h ; 0f 84 de fc 4717 mov ax, word [bp+006h] ; 8b 46 06 4718 shr ax, 00ch ; c1 e8 0c 4719 mov cl, al ; 88 c1 4803 je near 03460h ; 0f 84 84 fc 4720 4804 mov dx, word [bp+006h] ; 8b 56 06 4721 sal dx, 004h ; c1 e2 04 4722 mov bx, word [bp+010h] ; 8b 5e 10 4723 add bx, dx ; 01 d3 4724 mov word [bp-010h], bx ; 89 5e f0 4725 cmp dx, bx ; 39 da 4726 jbe short 03754h ; 76 02 4727 db 0feh, 0c1h 4728 ; inc cl ; fe c1 4729 movzx bx, ch ; 0f b6 dd 4730 sal bx, 002h ; c1 e3 02 4731 dec bx ; 4b 4732 mov ax, word [bp-010h] ; 8b 46 f0 4733 add ax, bx ; 01 d8 4734 cmp ax, word [bp-010h] ; 3b 46 f0 4735 jc near 0345bh ; 0f 82 f4 fc 4805 shr dx, 00ch ; c1 ea 0c 4806 mov ah, dl ; 88 d4 4807 mov cx, word [bp+006h] ; 8b 4e 06 4808 sal cx, 004h ; c1 e1 04 4809 mov si, word [bp+010h] ; 8b 76 10 4810 add si, cx ; 01 ce 4811 mov word [bp-008h], si ; 89 76 f8 4812 cmp cx, si ; 39 f1 4813 jbe short 037f8h ; 76 02 4814 db 0feh, 0c4h 4815 ; inc ah ; fe c4 4816 movzx cx, bh ; 0f b6 cf 4817 sal cx, 002h ; c1 e1 02 4818 dec cx ; 49 4819 mov dx, word [bp-008h] ; 8b 56 f8 4820 add dx, cx ; 01 ca 4821 cmp dx, word [bp-008h] ; 3b 56 f8 4822 jc near 034b3h ; 0f 82 a8 fc 4736 4823 mov AL, strict byte 006h ; b0 06 4737 4824 mov dx, strict word 0000ah ; ba 0a 00 … … 4740 4827 mov dx, strict word 0000ch ; ba 0c 00 4741 4828 out DX, AL ; ee 4742 mov al, byte [bp-0 10h] ; 8a 46 f04829 mov al, byte [bp-008h] ; 8a 46 f8 4743 4830 mov dx, strict word 00004h ; ba 04 00 4744 4831 out DX, AL ; ee 4745 mov ax, word [bp-010h] ; 8b 46 f0 4746 shr ax, 008h ; c1 e8 08 4832 mov dx, word [bp-008h] ; 8b 56 f8 4833 shr dx, 008h ; c1 ea 08 4834 mov al, dl ; 88 d0 4835 mov dx, strict word 00004h ; ba 04 00 4747 4836 out DX, AL ; ee 4748 4837 xor al, al ; 30 c0 4749 4838 mov dx, strict word 0000ch ; ba 0c 00 4750 4839 out DX, AL ; ee 4751 mov al, bl ; 88 d84840 mov al, cl ; 88 c8 4752 4841 mov dx, strict word 00005h ; ba 05 00 4753 4842 out DX, AL ; ee 4754 mov ax, bx ; 89 d84755 shr ax, 008h ; c1 e8 084843 shr cx, 008h ; c1 e9 08 4844 mov al, cl ; 88 c8 4756 4845 out DX, AL ; ee 4757 4846 mov AL, strict byte 04ah ; b0 4a 4758 4847 mov dx, strict word 0000bh ; ba 0b 00 4759 4848 out DX, AL ; ee 4760 mov al, cl ; 88 c84849 mov al, ah ; 88 e0 4761 4850 mov dx, 00081h ; ba 81 00 4762 4851 out DX, AL ; ee … … 4764 4853 mov dx, strict word 0000ah ; ba 0a 00 4765 4854 out DX, AL ; ee 4766 movzx si, b yte [bp-00ch] ; 0f b6 76 f44855 movzx si, bl ; 0f b6 f3 4767 4856 mov ax, si ; 89 f0 4768 call 030 28h ; e8 7af84857 call 0308ch ; e8 36 f8 4769 4858 mov AL, strict byte 00fh ; b0 0f 4770 4859 mov dx, 003f5h ; ba f5 03 4771 4860 out DX, AL ; ee 4772 movzx ax, byte [bp-00 eh] ; 0f b6 46 f24861 movzx ax, byte [bp-004h] ; 0f b6 46 fc 4773 4862 sal ax, 002h ; c1 e0 02 4774 movzx bx, byte [bp-00ch] ; 0f b6 5e f44775 or bx, ax ; 09 c34776 mov al, bl ; 88 d84777 out DX, AL ; ee 4778 mov al, byte [bp-00 ah] ; 8a 46 f64863 movzx cx, bl ; 0f b6 cb 4864 or cx, ax ; 09 c1 4865 mov al, cl ; 88 c8 4866 out DX, AL ; ee 4867 mov al, byte [bp-002h] ; 8a 46 fe 4779 4868 out DX, AL ; ee 4780 4869 mov AL, strict byte 04dh ; b0 4d 4781 4870 out DX, AL ; ee 4782 mov al, bl ; 88 d84871 mov al, cl ; 88 c8 4783 4872 out DX, AL ; ee 4784 4873 mov AL, strict byte 002h ; b0 02 4785 4874 out DX, AL ; ee 4786 mov al, ch ; 88 e84787 out DX, AL ; ee 4788 xor al, ch ; 30 e84875 mov al, bh ; 88 f8 4876 out DX, AL ; ee 4877 xor al, bh ; 30 f8 4789 4878 out DX, AL ; ee 4790 4879 mov AL, strict byte 0f6h ; b0 f6 4791 4880 out DX, AL ; ee 4792 call 0 2f9ah ; e8 bdf74881 call 03012h ; e8 8e f7 4793 4882 test al, al ; 84 c0 4794 jne short 03 7e9h ; 75 084883 jne short 03890h ; 75 08 4795 4884 mov ax, si ; 89 f0 4796 call 0 2fe0h ; e8 faf74797 jmp near 03 349h ; e9 60 fb4885 call 0304ah ; e8 bd f7 4886 jmp near 037abh ; e9 1b ff 4798 4887 mov dx, 003f4h ; ba f4 03 4799 4888 in AL, DX ; ec … … 4802 4891 and AL, strict byte 0c0h ; 24 c0 4803 4892 cmp AL, strict byte 0c0h ; 3c c0 4804 je short 038 03h ; 74 0e4805 push 002 75h ; 68 75024806 push 002 a8h ; 68 a8024893 je short 038aah ; 74 0e 4894 push 00287h ; 68 87 02 4895 push 002bah ; 68 ba 02 4807 4896 push strict byte 00007h ; 6a 07 4808 call 01 9dah ; e8 dae14897 call 01a6bh ; e8 c4 e1 4809 4898 add sp, strict byte 00006h ; 83 c4 06 4810 xor si, si ; 31 f64811 jmp short 038 0ch ; eb 054812 cmp si, strict byte 00007h ; 83 fe074813 jnl short 038 24h ; 7d 184899 xor cx, cx ; 31 c9 4900 jmp short 038b3h ; eb 05 4901 cmp cx, strict byte 00007h ; 83 f9 07 4902 jnl short 038c9h ; 7d 16 4814 4903 mov dx, 003f5h ; ba f5 03 4815 4904 in AL, DX ; ec 4816 4905 db 02ah, 0e4h 4817 4906 ; sub ah, ah ; 2a e4 4818 mov byte [bp+si-01ah], al ; 88 42 e6 4819 movzx bx, al ; 0f b6 d8 4820 lea dx, [si+042h] ; 8d 54 42 4907 mov si, cx ; 89 ce 4908 add si, strict byte 00042h ; 83 c6 42 4909 mov dx, strict word 00040h ; ba 40 00 4910 mov es, dx ; 8e c2 4911 mov byte [es:si], al ; 26 88 04 4912 inc cx ; 41 4913 jmp short 038aeh ; eb e5 4914 mov si, strict word 00042h ; be 42 00 4821 4915 mov ax, strict word 00040h ; b8 40 00 4822 call 016c6h ; e8 a5 de 4823 inc si ; 46 4824 jmp short 03807h ; eb e3 4825 test byte [bp-01ah], 0c0h ; f6 46 e6 c0 4826 je short 03840h ; 74 16 4827 test byte [bp-019h], 002h ; f6 46 e7 02 4828 jne near 036a3h ; 0f 85 71 fe 4829 push 00275h ; 68 75 02 4830 push 002bch ; 68 bc 02 4916 mov es, ax ; 8e c0 4917 mov al, byte [es:si] ; 26 8a 04 4918 test AL, strict byte 0c0h ; a8 c0 4919 je short 038f2h ; 74 1a 4920 mov si, strict word 00043h ; be 43 00 4921 mov al, byte [es:si] ; 26 8a 04 4922 test AL, strict byte 002h ; a8 02 4923 jne near 03732h ; 0f 85 4e fe 4924 push 00287h ; 68 87 02 4925 push 002ceh ; 68 ce 02 4831 4926 push strict byte 00007h ; 6a 07 4832 call 01 9dah ; e8 9de14927 call 01a6bh ; e8 7c e1 4833 4928 add sp, strict byte 00006h ; 83 c4 06 4834 xor al, al ; 30 c0 4835 mov byte [bp+017h], al ; 88 46 17 4836 xor ah, ah ; 30 e4 4837 call 02f34h ; e8 ea f6 4838 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4929 mov byte [bp+017h], 000h ; c6 46 17 00 4930 mov si, strict word 00041h ; be 41 00 4931 mov ax, strict word 00040h ; b8 40 00 4932 mov es, ax ; 8e c0 4933 mov byte [es:si], 000h ; 26 c6 04 00 4934 movzx ax, bl ; 0f b6 c3 4839 4935 xor dx, dx ; 31 d2 4840 call 02f 4ch ; e8 f9f64841 jmp near 03 a1bh ; e9 c5 014842 mov b yte [bp-00ch], al ; 88 46 f44843 cmp AL, strict byte 001h ; 3c 014844 jbe short 03 87ah ; 76 1d4936 call 02fc5h ; e8 bb f6 4937 jmp near 0360eh ; e9 01 fd 4938 mov bl, ah ; 88 e3 4939 cmp ah, 001h ; 80 fc 01 4940 jbe short 03931h ; 76 1d 4845 4941 xor ax, ax ; 31 c0 4846 4942 mov word [bp+016h], ax ; 89 46 16 … … 4850 4946 mov word [bp+006h], ax ; 89 46 06 4851 4947 mov word [bp+008h], ax ; 89 46 08 4852 movzx ax, ch ; 0f b6 c54948 movzx ax, bh ; 0f b6 c7 4853 4949 mov word [bp+012h], ax ; 89 46 12 4854 jmp near 03 999h ; e9 1f014950 jmp near 03a53h ; e9 22 01 4855 4951 mov ax, strict word 00010h ; b8 10 00 4856 call 017 14h ; e8 94de4857 mov cl, al ; 88 c14858 xor ch, ch ; 30 ed4952 call 017a5h ; e8 6e de 4953 mov dl, al ; 88 c2 4954 xor bh, bh ; 30 ff 4859 4955 test AL, strict byte 0f0h ; a8 f0 4860 je short 03 88ah ; 74 024861 mov CH, strict byte 001h ; b5014862 test cl, 00fh ; f6 c10f4863 je short 03 891h ; 74 024864 db 0feh, 0c 5h4865 ; inc ch ; fe c54866 cmp byte [bp-00ch], 000h ; 80 7e f4 004867 jne short 03 89ch ; 75 054868 shr cl, 004h ; c0 e9044869 jmp short 03 89fh ; eb 034870 and cl, 00fh ; 80 e10f4956 je short 03941h ; 74 02 4957 mov BH, strict byte 001h ; b7 01 4958 test dl, 00fh ; f6 c2 0f 4959 je short 03948h ; 74 02 4960 db 0feh, 0c7h 4961 ; inc bh ; fe c7 4962 test bl, bl ; 84 db 4963 jne short 03951h ; 75 05 4964 shr dl, 004h ; c0 ea 04 4965 jmp short 03954h ; eb 03 4966 and dl, 00fh ; 80 e2 0f 4871 4967 mov byte [bp+011h], 000h ; c6 46 11 00 4872 movzx ax, cl ; 0f b6 c14968 movzx ax, dl ; 0f b6 c2 4873 4969 mov word [bp+010h], ax ; 89 46 10 4874 4970 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4875 mov dx, word [bp+012h] ; 8b 56124876 xor dl, dl ; 30 d24877 movzx ax, ch ; 0f b6 c54878 or dx, ax ; 09 c24879 mov word [bp+012h], dx ; 89 56124880 mov ax, dx ; 89 d04881 xor ah, dh ; 30 f44971 mov cx, word [bp+012h] ; 8b 4e 12 4972 xor cl, cl ; 30 c9 4973 movzx ax, bh ; 0f b6 c7 4974 or cx, ax ; 09 c1 4975 mov word [bp+012h], cx ; 89 4e 12 4976 mov ax, cx ; 89 c8 4977 xor ah, ch ; 30 ec 4882 4978 or ah, 001h ; 80 cc 01 4883 4979 mov word [bp+012h], ax ; 89 46 12 4884 cmp cl, 003h ; 80 f9034885 jc short 03 8dfh ; 72 154886 jbe short 039 06h ; 76 3a4887 cmp cl, 005h ; 80 f9054888 jc short 039 0dh ; 72 3c4889 jbe short 039 14h ; 76 414890 cmp cl, 00fh ; 80 f90f4891 je short 039 22h ; 74 4a4892 cmp cl, 00eh ; 80 f90e4893 je short 039 1bh ; 74 3e4894 jmp short 039 29h ; eb 4a4895 cmp cl, 002h ; 80 f9024896 je short 03 8ffh ; 74 1b4897 cmp cl, 001h ; 80 f9014898 je short 03 8f8h ; 74 0f4899 test cl, cl ; 84 c94900 jne short 039 29h ; 75 3c4980 cmp dl, 003h ; 80 fa 03 4981 jc short 03994h ; 72 15 4982 jbe short 039bbh ; 76 3a 4983 cmp dl, 005h ; 80 fa 05 4984 jc short 039c2h ; 72 3c 4985 jbe short 039c9h ; 76 41 4986 cmp dl, 00fh ; 80 fa 0f 4987 je short 039d7h ; 74 4a 4988 cmp dl, 00eh ; 80 fa 0e 4989 je short 039d0h ; 74 3e 4990 jmp short 039deh ; eb 4a 4991 cmp dl, 002h ; 80 fa 02 4992 je short 039b4h ; 74 1b 4993 cmp dl, 001h ; 80 fa 01 4994 je short 039adh ; 74 0f 4995 test dl, dl ; 84 d2 4996 jne short 039deh ; 75 3c 4901 4997 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 4902 4998 mov byte [bp+013h], 000h ; c6 46 13 00 4903 jmp short 039 37h ; eb 3f4999 jmp short 039ech ; eb 3f 4904 5000 mov word [bp+014h], 02709h ; c7 46 14 09 27 4905 jmp short 039 37h ; eb 385001 jmp short 039ech ; eb 38 4906 5002 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 4907 jmp short 039 37h ; eb 315003 jmp short 039ech ; eb 31 4908 5004 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 4909 jmp short 039 37h ; eb 2a5005 jmp short 039ech ; eb 2a 4910 5006 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 4911 jmp short 039 37h ; eb 235007 jmp short 039ech ; eb 23 4912 5008 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 4913 jmp short 039 37h ; eb 1c5009 jmp short 039ech ; eb 1c 4914 5010 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 4915 jmp short 039 37h ; eb 155011 jmp short 039ech ; eb 15 4916 5012 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 4917 jmp short 039 37h ; eb 0e4918 push 002 75h ; 68 75024919 push 002 cdh ; 68 cd025013 jmp short 039ech ; eb 0e 5014 push 00287h ; 68 87 02 5015 push 002dfh ; 68 df 02 4920 5016 push strict byte 00007h ; 6a 07 4921 call 01 9dah ; e8 a6e05017 call 01a6bh ; e8 82 e0 4922 5018 add sp, strict byte 00006h ; 83 c4 06 4923 5019 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 4924 movzx ax, cl ; 0f b6 c14925 call 03 b92h ; e8 50025020 movzx ax, dl ; 0f b6 c2 5021 call 03c7bh ; e8 84 02 4926 5022 mov word [bp+008h], ax ; 89 46 08 4927 jmp near 03a1bh ; e9 d3 00 4928 mov byte [bp-00ch], al ; 88 46 f4 4929 cmp AL, strict byte 001h ; 3c 01 4930 jbe short 03954h ; 76 05 5023 jmp near 0360eh ; e9 11 fc 5024 mov bl, ah ; 88 e3 5025 cmp ah, 001h ; 80 fc 01 5026 jbe short 03a09h ; 76 05 5027 mov word [bp+016h], dx ; 89 56 16 5028 jmp short 03a53h ; eb 4a 5029 mov ax, strict word 00010h ; b8 10 00 5030 call 017a5h ; e8 96 dd 5031 test bl, bl ; 84 db 5032 jne short 03a1ah ; 75 07 5033 mov dl, al ; 88 c2 5034 shr dl, 004h ; c0 ea 04 5035 jmp short 03a1fh ; eb 05 5036 mov dl, al ; 88 c2 5037 and dl, 00fh ; 80 e2 0f 5038 and byte [bp+01ch], 0feh ; 80 66 1c fe 5039 mov ax, word [bp+016h] ; 8b 46 16 5040 xor ah, ah ; 30 e4 5041 test dl, dl ; 84 d2 5042 je short 03a39h ; 74 0d 5043 cmp dl, 001h ; 80 fa 01 5044 jbe short 03a36h ; 76 05 5045 or ah, 002h ; 80 cc 02 5046 jmp short 03a39h ; eb 03 5047 or ah, 001h ; 80 cc 01 5048 mov word [bp+016h], ax ; 89 46 16 5049 jmp near 033b8h ; e9 79 f9 5050 cmp ah, 001h ; 80 fc 01 5051 jbe short 03a59h ; 76 15 4931 5052 mov word [bp+016h], si ; 89 76 16 4932 jmp short 03999h ; eb 45 4933 mov ax, strict word 00010h ; b8 10 00 4934 call 01714h ; e8 ba dd 4935 cmp byte [bp-00ch], 000h ; 80 7e f4 00 4936 jne short 03967h ; 75 07 4937 mov cl, al ; 88 c1 4938 shr cl, 004h ; c0 e9 04 4939 jmp short 0396ch ; eb 05 4940 mov cl, al ; 88 c1 4941 and cl, 00fh ; 80 e1 0f 4942 and byte [bp+01ch], 0feh ; 80 66 1c fe 4943 mov dx, word [bp+016h] ; 8b 56 16 4944 xor dh, dh ; 30 f6 4945 test cl, cl ; 84 c9 4946 je short 03986h ; 74 0d 4947 cmp cl, 001h ; 80 f9 01 4948 jbe short 03983h ; 76 05 4949 or dh, 002h ; 80 ce 02 4950 jmp short 03986h ; eb 03 4951 or dh, 001h ; 80 ce 01 4952 mov word [bp+016h], dx ; 89 56 16 4953 jmp near 0337bh ; e9 ef f9 4954 cmp AL, strict byte 001h ; 3c 01 4955 jbe short 0399fh ; 76 0f 4956 mov word [bp+016h], si ; 89 76 16 4957 mov ax, strict word 00001h ; b8 01 00 4958 call 02f34h ; e8 9b f5 4959 mov word [bp+01ch], dx ; 89 56 1c 4960 jmp near 0337bh ; e9 dc f9 5053 mov bx, strict word 00041h ; bb 41 00 5054 mov ax, strict word 00040h ; b8 40 00 5055 mov es, ax ; 8e c0 5056 mov byte [es:bx], 001h ; 26 c6 07 01 5057 mov word [bp+01ch], cx ; 89 4e 1c 5058 jmp near 033b8h ; e9 5f f9 4961 5059 mov ax, word [bp+016h] ; 8b 46 16 4962 5060 xor ah, ah ; 30 e4 4963 5061 or ah, 006h ; 80 cc 06 4964 5062 mov word [bp+016h], ax ; 89 46 16 4965 mov ax, strict word 00006h ; b8 06 00 4966 jmp near 03327h ; e9 77 f9 4967 mov byte [bp-00ch], al ; 88 46 f4 4968 mov bl, cl ; 88 cb 4969 cmp AL, strict byte 001h ; 3c 01 4970 jnbe short 03990h ; 77 d7 4971 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 4972 call 03264h ; e8 a4 f8 5063 mov bx, strict word 00041h ; bb 41 00 5064 mov ax, strict word 00040h ; b8 40 00 5065 mov es, ax ; 8e c0 5066 mov byte [es:bx], 006h ; 26 c6 07 06 5067 jmp near 03b45h ; e9 d2 00 5068 mov bl, ah ; 88 e3 5069 mov dl, byte [bp+016h] ; 8a 56 16 5070 cmp ah, 001h ; 80 fc 01 5071 jnbe short 03a44h ; 77 c7 5072 movzx ax, bl ; 0f b6 c3 5073 call 032bch ; e8 39 f8 4973 5074 test ax, ax ; 85 c0 4974 je near 03 349h ; 0f 84 83 f94975 cmp byte [bp-00ch], 000h ; 80 7e f4 005075 je near 037abh ; 0f 84 22 fd 5076 test bl, bl ; 84 db 4976 5077 db 00fh, 095h, 0c0h 4977 5078 ; setne al ; 0f 95 c0 4978 movzx dx, al ; 0f b6 d04979 add dx, 00090h ; 81 c290 004980 mov word [bp-0 10h], dx ; 89 56 f05079 movzx bx, al ; 0f b6 d8 5080 add bx, 00090h ; 81 c3 90 00 5081 mov word [bp-008h], bx ; 89 5e f8 4981 5082 mov ax, strict word 00040h ; b8 40 00 4982 call 016b8h ; e8 db dc 4983 and AL, strict byte 00fh ; 24 0f 4984 cmp bl, 002h ; 80 fb 02 4985 jc short 039f3h ; 72 0f 4986 jbe short 039ffh ; 76 19 4987 cmp bl, 004h ; 80 fb 04 4988 je short 039fbh ; 74 10 4989 cmp bl, 003h ; 80 fb 03 4990 je short 03a03h ; 74 13 4991 jmp near 03319h ; e9 26 f9 4992 cmp bl, 001h ; 80 fb 01 4993 je short 039fbh ; 74 03 4994 jmp near 03319h ; e9 1e f9 4995 or AL, strict byte 090h ; 0c 90 4996 jmp short 03a05h ; eb 06 4997 or AL, strict byte 070h ; 0c 70 4998 jmp short 03a05h ; eb 02 4999 or AL, strict byte 010h ; 0c 10 5000 movzx bx, al ; 0f b6 d8 5001 mov dx, word [bp-010h] ; 8b 56 f0 5083 mov es, ax ; 8e c0 5084 mov bl, byte [es:bx] ; 26 8a 1f 5085 and bl, 00fh ; 80 e3 0f 5086 cmp dl, 002h ; 80 fa 02 5087 jc short 03ab7h ; 72 0f 5088 jbe short 03ac4h ; 76 1a 5089 cmp dl, 004h ; 80 fa 04 5090 je short 03abfh ; 74 10 5091 cmp dl, 003h ; 80 fa 03 5092 je short 03ac9h ; 74 15 5093 jmp near 03347h ; e9 90 f8 5094 cmp dl, 001h ; 80 fa 01 5095 je short 03abfh ; 74 03 5096 jmp near 03347h ; e9 88 f8 5097 or bl, 090h ; 80 cb 90 5098 jmp short 03acch ; eb 08 5099 or bl, 070h ; 80 cb 70 5100 jmp short 03acch ; eb 03 5101 or bl, 010h ; 80 cb 10 5002 5102 mov ax, strict word 00040h ; b8 40 00 5003 call 016c6h ; e8 b5 dc 5103 mov es, ax ; 8e c0 5104 mov si, word [bp-008h] ; 8b 76 f8 5105 mov byte [es:si], bl ; 26 88 1c 5004 5106 xor al, al ; 30 c0 5005 5107 mov byte [bp+017h], al ; 88 46 17 5006 xor ah, ah ; 30 e4 5007 call 02f34h ; e8 19 f5 5008 and byte [bp+01ch], 0feh ; 80 66 1c fe 5009 jmp near 0337bh ; e9 59 f9 5010 mov byte [bp-00ch], al ; 88 46 f4 5011 mov ch, ah ; 88 e5 5012 and ch, 03fh ; 80 e5 3f 5013 movzx bx, ah ; 0f b6 dc 5014 sar bx, 006h ; c1 fb 06 5015 sal bx, 008h ; c1 e3 08 5016 add bx, word [bp-012h] ; 03 5e ee 5017 mov byte [bp-00ah], bl ; 88 5e f6 5018 cmp AL, strict byte 001h ; 3c 01 5019 jnbe near 03990h ; 0f 87 51 ff 5020 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5021 call 03264h ; e8 1e f8 5108 mov bx, strict word 00041h ; bb 41 00 5109 mov byte [es:bx], al ; 26 88 07 5110 jmp near 0360eh ; e9 29 fb 5111 mov bl, ah ; 88 e3 5112 mov dl, byte [bp+014h] ; 8a 56 14 5113 mov bh, dl ; 88 d7 5114 and bh, 03fh ; 80 e7 3f 5115 xor dh, dh ; 30 f6 5116 sar dx, 006h ; c1 fa 06 5117 sal dx, 008h ; c1 e2 08 5118 mov word [bp-00ah], dx ; 89 56 f6 5119 mov dx, word [bp+014h] ; 8b 56 14 5120 shr dx, 008h ; c1 ea 08 5121 add dx, word [bp-00ah] ; 03 56 f6 5122 mov byte [bp-002h], dl ; 88 56 fe 5123 cmp ah, 001h ; 80 fc 01 5124 jnbe near 03a44h ; 0f 87 37 ff 5125 movzx ax, bl ; 0f b6 c3 5126 call 032bch ; e8 a9 f7 5022 5127 test ax, ax ; 85 c0 5023 je near 03 349h ; 0f 84 fd f85024 movzx dx, byte [bp-00ch] ; 0f b6 56 f45025 mov ax, dx ; 89 d05026 call 03 0a9h ; e8 54 f65128 je near 037abh ; 0f 84 92 fc 5129 movzx cx, bl ; 0f b6 cb 5130 mov ax, cx ; 89 c8 5131 call 03100h ; e8 df f5 5027 5132 test ax, ax ; 85 c0 5028 jne short 03 a73h ; 75 1a5029 mov ax, dx ; 89 d05030 call 031 74h ; e8 16 f75133 jne short 03b4ch ; 75 27 5134 mov ax, cx ; 89 c8 5135 call 031d8h ; e8 ae f6 5031 5136 test ax, ax ; 85 c0 5032 jne short 03 a73h ; 75 115137 jne short 03b4ch ; 75 1e 5033 5138 mov ax, word [bp+016h] ; 8b 46 16 5034 5139 xor ah, ah ; 30 e4 5035 5140 or ah, 00ch ; 80 cc 0c 5036 5141 mov word [bp+016h], ax ; 89 46 16 5037 mov ax, strict word 0000ch ; b8 0c 00 5038 jmp near 03327h ; e9 b4 f8 5142 mov bx, strict word 00041h ; bb 41 00 5143 mov ax, strict word 00040h ; b8 40 00 5144 mov es, ax ; 8e c0 5145 mov byte [es:bx], 00ch ; 26 c6 07 0c 5146 or byte [bp+01ch], 001h ; 80 4e 1c 01 5147 jmp near 033b8h ; e9 6c f8 5039 5148 mov ax, strict word 00010h ; b8 10 00 5040 call 017 14h ; e8 9bdc5041 cmp byte [bp-00ch], 000h ; 80 7e f4 005042 jne short 03 a86h ; 75 075043 mov cl, al ; 88 c15044 shr cl, 004h ; c0 e9045045 jmp short 03 a8bh ; eb 055046 mov cl, al ; 88 c15047 and cl, 00fh ; 80 e10f5048 cmp byte [bp-00ch], 000h ; 80 7e f4 005149 call 017a5h ; e8 53 dc 5150 test bl, bl ; 84 db 5151 jne short 03b5dh ; 75 07 5152 mov dl, al ; 88 c2 5153 shr dl, 004h ; c0 ea 04 5154 jmp short 03b62h ; eb 05 5155 mov dl, al ; 88 c2 5156 and dl, 00fh ; 80 e2 0f 5157 test bl, bl ; 84 db 5049 5158 db 00fh, 095h, 0c0h 5050 5159 ; setne al ; 0f 95 c0 5051 movzx dx, al ; 0f b6 d05052 add dx, 00090h ; 81 c290 005053 mov word [bp-0 10h], dx ; 89 56 f05160 movzx si, al ; 0f b6 f0 5161 add si, 00090h ; 81 c6 90 00 5162 mov word [bp-008h], si ; 89 76 f8 5054 5163 mov ax, strict word 00040h ; b8 40 00 5055 call 016b8h ; e8 16 dc 5056 and AL, strict byte 00fh ; 24 0f 5057 cmp cl, 003h ; 80 f9 03 5058 jc short 03ac7h ; 72 1e 5059 mov dl, al ; 88 c2 5060 or dl, 090h ; 80 ca 90 5061 cmp cl, 003h ; 80 f9 03 5062 jbe short 03b05h ; 76 52 5063 mov ah, al ; 88 c4 5064 or ah, 010h ; 80 cc 10 5065 cmp cl, 005h ; 80 f9 05 5066 je near 03b2ah ; 0f 84 6b 00 5067 cmp cl, 004h ; 80 f9 04 5068 je short 03b14h ; 74 50 5069 jmp near 03b45h ; e9 7e 00 5070 cmp cl, 002h ; 80 f9 02 5071 je short 03ae7h ; 74 1b 5072 cmp cl, 001h ; 80 f9 01 5073 jne near 03b45h ; 0f 85 72 00 5074 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5075 jne near 03b45h ; 0f 85 6a 00 5076 cmp ch, 009h ; 80 fd 09 5077 jne near 03b45h ; 0f 85 63 00 5078 or AL, strict byte 090h ; 0c 90 5079 jmp near 03b45h ; e9 5e 00 5080 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5081 jne short 03af6h ; 75 09 5082 cmp ch, 009h ; 80 fd 09 5083 jne short 03af6h ; 75 04 5084 or AL, strict byte 070h ; 0c 70 5085 jmp short 03b45h ; eb 4f 5086 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5087 jne short 03b45h ; 75 49 5088 cmp ch, 00fh ; 80 fd 0f 5089 jne short 03b45h ; 75 44 5164 mov es, ax ; 8e c0 5165 mov bl, byte [es:si] ; 26 8a 1c 5166 and bl, 00fh ; 80 e3 0f 5167 cmp dl, 003h ; 80 fa 03 5168 jc short 03b9eh ; 72 1d 5169 mov ah, bl ; 88 dc 5170 or ah, 090h ; 80 cc 90 5171 cmp dl, 003h ; 80 fa 03 5172 jbe short 03bdfh ; 76 54 5173 mov al, bl ; 88 d8 5090 5174 or AL, strict byte 010h ; 0c 10 5091 jmp short 03b45h ; eb 40 5092 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5093 jne short 03b45h ; 75 3a 5094 cmp ch, 009h ; 80 fd 09 5095 jne short 03b45h ; 75 35 5096 mov al, dl ; 88 d0 5097 jmp short 03b45h ; eb 31 5098 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5099 jne short 03b45h ; 75 2b 5100 cmp ch, 009h ; 80 fd 09 5101 jne short 03b21h ; 75 02 5102 jmp short 03b10h ; eb ef 5103 cmp ch, 012h ; 80 fd 12 5104 jne short 03b45h ; 75 1f 5105 mov al, ah ; 88 e0 5106 jmp short 03b45h ; eb 1b 5107 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5108 jne short 03b45h ; 75 15 5109 cmp ch, 009h ; 80 fd 09 5110 jne short 03b37h ; 75 02 5111 jmp short 03b10h ; eb d9 5112 cmp ch, 012h ; 80 fd 12 5113 jne short 03b3eh ; 75 02 5114 jmp short 03b26h ; eb e8 5115 cmp ch, 024h ; 80 fd 24 5116 jne short 03b45h ; 75 02 5117 or AL, strict byte 0d0h ; 0c d0 5118 movzx dx, al ; 0f b6 d0 5119 sar dx, 004h ; c1 fa 04 5120 test dl, 001h ; f6 c2 01 5121 je near 03a62h ; 0f 84 10 ff 5122 movzx bx, al ; 0f b6 d8 5123 mov dx, word [bp-010h] ; 8b 56 f0 5175 cmp dl, 005h ; 80 fa 05 5176 je near 03c04h ; 0f 84 6e 00 5177 cmp dl, 004h ; 80 fa 04 5178 je short 03beeh ; 74 53 5179 jmp near 03c20h ; e9 82 00 5180 cmp dl, 002h ; 80 fa 02 5181 je short 03bbfh ; 74 1c 5182 cmp dl, 001h ; 80 fa 01 5183 jne near 03c20h ; 0f 85 76 00 5184 cmp byte [bp-002h], 027h ; 80 7e fe 27 5185 jne near 03c20h ; 0f 85 6e 00 5186 cmp bh, 009h ; 80 ff 09 5187 jne near 03c20h ; 0f 85 67 00 5188 or bl, 090h ; 80 cb 90 5189 jmp near 03c20h ; e9 61 00 5190 cmp byte [bp-002h], 027h ; 80 7e fe 27 5191 jne short 03bcfh ; 75 0a 5192 cmp bh, 009h ; 80 ff 09 5193 jne short 03bcfh ; 75 05 5194 or bl, 070h ; 80 cb 70 5195 jmp short 03c20h ; eb 51 5196 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5197 jne short 03c20h ; 75 4b 5198 cmp bh, 00fh ; 80 ff 0f 5199 jne short 03c20h ; 75 46 5200 or bl, 010h ; 80 cb 10 5201 jmp short 03c20h ; eb 41 5202 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5203 jne short 03c20h ; 75 3b 5204 cmp bh, 009h ; 80 ff 09 5205 jne short 03c20h ; 75 36 5206 mov bl, ah ; 88 e3 5207 jmp short 03c20h ; eb 32 5208 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5209 jne short 03c20h ; 75 2c 5210 cmp bh, 009h ; 80 ff 09 5211 jne short 03bfbh ; 75 02 5212 jmp short 03beah ; eb ef 5213 cmp bh, 012h ; 80 ff 12 5214 jne short 03c20h ; 75 20 5215 mov bl, al ; 88 c3 5216 jmp short 03c20h ; eb 1c 5217 cmp byte [bp-002h], 04fh ; 80 7e fe 4f 5218 jne short 03c20h ; 75 16 5219 cmp bh, 009h ; 80 ff 09 5220 jne short 03c11h ; 75 02 5221 jmp short 03beah ; eb d9 5222 cmp bh, 012h ; 80 ff 12 5223 jne short 03c18h ; 75 02 5224 jmp short 03c00h ; eb e8 5225 cmp bh, 024h ; 80 ff 24 5226 jne short 03c20h ; 75 03 5227 or bl, 0d0h ; 80 cb d0 5228 movzx ax, bl ; 0f b6 c3 5229 sar ax, 004h ; c1 f8 04 5230 test AL, strict byte 001h ; a8 01 5231 je near 03b2eh ; 0f 84 02 ff 5124 5232 mov ax, strict word 00040h ; b8 40 00 5125 call 016c6h ; e8 68 db 5233 mov es, ax ; 8e c0 5234 mov si, word [bp-008h] ; 8b 76 f8 5235 mov byte [es:si], bl ; 26 88 1c 5126 5236 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5127 movzx ax, cl ; 0f b6 c15128 call 03 b92h ; e8 29 005237 movzx ax, dl ; 0f b6 c2 5238 call 03c7bh ; e8 39 00 5129 5239 mov word [bp+008h], ax ; 89 46 08 5130 jmp near 03a11h ; e9 a2 fe 5131 mov bx, 00da0h ; bb a0 0d 5240 mov byte [bp+017h], 000h ; c6 46 17 00 5241 mov bx, strict word 00041h ; bb 41 00 5242 mov ax, strict word 00040h ; b8 40 00 5243 mov es, ax ; 8e c0 5244 mov byte [es:bx], 000h ; 26 c6 07 00 5245 jmp near 0360eh ; e9 b6 f9 5246 mov bx, 00db2h ; bb b2 0d 5132 5247 mov cx, ds ; 8c d9 5133 5248 mov ax, strict word 00004h ; b8 04 00 5134 call 01 999h ; e8 1f de5249 call 01a2ah ; e8 c7 dd 5135 5250 mov ax, word [bp+016h] ; 8b 46 16 5136 5251 shr ax, 008h ; c1 e8 08 5137 5252 push ax ; 50 5138 push 002 75h ; 68 75025139 push 002 e2h ; 68 e2025253 push 00287h ; 68 87 02 5254 push 002f4h ; 68 f4 02 5140 5255 push strict byte 00004h ; 6a 04 5141 call 01 9dah ; e8 4e de5256 call 01a6bh ; e8 f6 dd 5142 5257 add sp, strict byte 00008h ; 83 c4 08 5143 jmp near 033 19h ; e9 87 f75144 get_floppy_dpt_: ; 0xf3 b92LB 0x2f5258 jmp near 03347h ; e9 cc f6 5259 get_floppy_dpt_: ; 0xf3c7b LB 0x2f 5145 5260 push bx ; 53 5146 5261 push dx ; 52 … … 5149 5264 mov dl, al ; 88 c2 5150 5265 xor ax, ax ; 31 c0 5151 jmp short 03 ba3h ; eb 065266 jmp short 03c8ch ; eb 06 5152 5267 inc ax ; 40 5153 5268 cmp ax, strict word 00007h ; 3d 07 00 5154 jnc short 03 bbah ; 73 175269 jnc short 03ca3h ; 73 17 5155 5270 mov bx, ax ; 89 c3 5156 5271 add bx, ax ; 01 c3 5157 5272 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5158 jne short 03 b9dh ; 75 f05273 jne short 03c86h ; 75 f0 5159 5274 movzx ax, byte [word bx+0005ch] ; 0f b6 87 5c 00 5160 5275 imul ax, ax, strict byte 0000dh ; 6b c0 0d 5161 5276 add ax, strict word 00000h ; 05 00 00 5162 jmp short 03 bbdh ; eb 035277 jmp short 03ca6h ; eb 03 5163 5278 mov ax, strict word 00041h ; b8 41 00 5164 5279 pop bp ; 5d … … 5166 5281 pop bx ; 5b 5167 5282 retn ; c3 5168 dummy_soft_reset_: ; 0xf3 bc1LB 0x75283 dummy_soft_reset_: ; 0xf3caa LB 0x7 5169 5284 push bp ; 55 5170 5285 mov bp, sp ; 89 e5 … … 5172 5287 pop bp ; 5d 5173 5288 retn ; c3 5174 _cdemu_init: ; 0xf3 bc8LB 0x185289 _cdemu_init: ; 0xf3cb1 LB 0x18 5175 5290 push bp ; 55 5176 5291 mov bp, sp ; 89 e5 5177 5292 mov dx, strict word 0000eh ; ba 0e 00 5178 5293 mov ax, strict word 00040h ; b8 40 00 5179 call 01 6d4h ; e8 00 db5294 call 01765h ; e8 a8 da 5180 5295 xor bx, bx ; 31 db 5181 5296 mov dx, 00366h ; ba 66 03 5182 call 01 6c6h ; e8 eada5297 call 01757h ; e8 92 da 5183 5298 mov sp, bp ; 89 ec 5184 5299 pop bp ; 5d 5185 5300 retn ; c3 5186 _cdemu_isactive: ; 0xf3 be0LB 0x165301 _cdemu_isactive: ; 0xf3cc9 LB 0x16 5187 5302 push bp ; 55 5188 5303 mov bp, sp ; 89 e5 5189 5304 mov dx, strict word 0000eh ; ba 0e 00 5190 5305 mov ax, strict word 00040h ; b8 40 00 5191 call 01 6d4h ; e8 e8da5306 call 01765h ; e8 90 da 5192 5307 mov dx, 00366h ; ba 66 03 5193 call 01 6b8h ; e8 c6da5308 call 01749h ; e8 6e da 5194 5309 mov sp, bp ; 89 ec 5195 5310 pop bp ; 5d 5196 5311 retn ; c3 5197 _cdemu_emulated_drive: ; 0xf3 bf6LB 0x165312 _cdemu_emulated_drive: ; 0xf3cdf LB 0x16 5198 5313 push bp ; 55 5199 5314 mov bp, sp ; 89 e5 5200 5315 mov dx, strict word 0000eh ; ba 0e 00 5201 5316 mov ax, strict word 00040h ; b8 40 00 5202 call 01 6d4h ; e8 d2da5317 call 01765h ; e8 7a da 5203 5318 mov dx, 00368h ; ba 68 03 5204 call 01 6b8h ; e8 b0da5319 call 01749h ; e8 58 da 5205 5320 mov sp, bp ; 89 ec 5206 5321 pop bp ; 5d 5207 5322 retn ; c3 5208 _int13_eltorito: ; 0xf3c 0cLB 0x1895323 _int13_eltorito: ; 0xf3cf5 LB 0x189 5209 5324 push bp ; 55 5210 5325 mov bp, sp ; 89 e5 … … 5213 5328 mov dx, strict word 0000eh ; ba 0e 00 5214 5329 mov ax, strict word 00040h ; b8 40 00 5215 call 01 6d4h ; e8 bada5330 call 01765h ; e8 62 da 5216 5331 mov si, 00366h ; be 66 03 5217 5332 mov di, ax ; 89 c7 … … 5219 5334 shr ax, 008h ; c1 e8 08 5220 5335 cmp ax, strict word 0004bh ; 3d 4b 00 5221 jc short 03 c34h ; 72 0a5222 jbe short 03 c5ah ; 76 2e5336 jc short 03d1dh ; 72 0a 5337 jbe short 03d43h ; 76 2e 5223 5338 cmp ax, strict word 0004dh ; 3d 4d 00 5224 jbe short 03 c3bh ; 76 0a5225 jmp near 03 d59h ; e9 25 015339 jbe short 03d24h ; 76 0a 5340 jmp near 03e42h ; e9 25 01 5226 5341 cmp ax, strict word 0004ah ; 3d 4a 00 5227 jne near 03 d59h ; 0f 85 1e 015228 mov bx, 00d a0h ; bb a00d5342 jne near 03e42h ; 0f 85 1e 01 5343 mov bx, 00db2h ; bb b2 0d 5229 5344 mov cx, ds ; 8c d9 5230 5345 mov ax, strict word 00004h ; b8 04 00 5231 call 01 999h ; e8 53 dd5346 call 01a2ah ; e8 fb dc 5232 5347 push word [bp+016h] ; ff 76 16 5233 push 00 2fch ; 68 fc 025234 push 003 0bh ; 68 0b035348 push 0030eh ; 68 0e 03 5349 push 0031dh ; 68 1d 03 5235 5350 push strict byte 00004h ; 6a 04 5236 call 01 9dah ; e8 86dd5351 call 01a6bh ; e8 2e dd 5237 5352 add sp, strict byte 00008h ; 83 c4 08 5238 jmp near 03 d74h ; e9 1a 015353 jmp near 03e5dh ; e9 1a 01 5239 5354 mov dx, word [bp+00ah] ; 8b 56 0a 5240 5355 mov ax, word [bp+004h] ; 8b 46 04 5241 5356 mov bx, strict word 00013h ; bb 13 00 5242 call 01 6c6h ; e8 60da5357 call 01757h ; e8 08 da 5243 5358 mov es, di ; 8e c7 5244 5359 movzx bx, byte [es:si+001h] ; 26 0f b6 5c 01 … … 5246 5361 inc dx ; 42 5247 5362 mov ax, word [bp+004h] ; 8b 46 04 5248 call 01 6c6h ; e8 4f da5363 call 01757h ; e8 f7 d9 5249 5364 mov es, di ; 8e c7 5250 5365 movzx bx, byte [es:si+002h] ; 26 0f b6 5c 02 … … 5253 5368 inc dx ; 42 5254 5369 mov ax, word [bp+004h] ; 8b 46 04 5255 call 01 6c6h ; e8 3d da5370 call 01757h ; e8 e5 d9 5256 5371 mov es, di ; 8e c7 5257 5372 movzx bx, byte [es:si+003h] ; 26 0f b6 5c 03 … … 5259 5374 add dx, strict byte 00003h ; 83 c2 03 5260 5375 mov ax, word [bp+004h] ; 8b 46 04 5261 call 01 6c6h ; e8 2a da5376 call 01757h ; e8 d2 d9 5262 5377 mov es, di ; 8e c7 5263 5378 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5266 5381 add dx, strict byte 00004h ; 83 c2 04 5267 5382 mov ax, word [bp+004h] ; 8b 46 04 5268 call 017 02h ; e8 50 da5383 call 01793h ; e8 f8 d9 5269 5384 mov es, di ; 8e c7 5270 5385 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5272 5387 add dx, strict byte 00008h ; 83 c2 08 5273 5388 mov ax, word [bp+004h] ; 8b 46 04 5274 call 01 6e2h ; e8 1e da5389 call 01773h ; e8 c6 d9 5275 5390 mov es, di ; 8e c7 5276 5391 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5278 5393 add dx, strict byte 0000ah ; 83 c2 0a 5279 5394 mov ax, word [bp+004h] ; 8b 46 04 5280 call 01 6e2h ; e8 0c da5395 call 01773h ; e8 b4 d9 5281 5396 mov es, di ; 8e c7 5282 5397 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5284 5399 add dx, strict byte 0000ch ; 83 c2 0c 5285 5400 mov ax, word [bp+004h] ; 8b 46 04 5286 call 01 6e2h ; e8 fad95401 call 01773h ; e8 a2 d9 5287 5402 mov es, di ; 8e c7 5288 5403 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5290 5405 add dx, strict byte 0000eh ; 83 c2 0e 5291 5406 mov ax, word [bp+004h] ; 8b 46 04 5292 call 01 6e2h ; e8 e8d95407 call 01773h ; e8 90 d9 5293 5408 mov es, di ; 8e c7 5294 5409 movzx bx, byte [es:si+012h] ; 26 0f b6 5c 12 … … 5296 5411 add dx, strict byte 00010h ; 83 c2 10 5297 5412 mov ax, word [bp+004h] ; 8b 46 04 5298 call 01 6c6h ; e8 b9d95413 call 01757h ; e8 61 d9 5299 5414 mov es, di ; 8e c7 5300 5415 movzx bx, byte [es:si+014h] ; 26 0f b6 5c 14 … … 5302 5417 add dx, strict byte 00011h ; 83 c2 11 5303 5418 mov ax, word [bp+004h] ; 8b 46 04 5304 call 01 6c6h ; e8 a6d95419 call 01757h ; e8 4e d9 5305 5420 mov es, di ; 8e c7 5306 5421 movzx bx, byte [es:si+010h] ; 26 0f b6 5c 10 … … 5308 5423 add dx, strict byte 00012h ; 83 c2 12 5309 5424 mov ax, word [bp+004h] ; 8b 46 04 5310 call 01 6c6h ; e8 93d95425 call 01757h ; e8 3b d9 5311 5426 test byte [bp+016h], 0ffh ; f6 46 16 ff 5312 jne short 03 d3fh ; 75 065427 jne short 03e28h ; 75 06 5313 5428 mov es, di ; 8e c7 5314 5429 mov byte [es:si], 000h ; 26 c6 04 00 … … 5317 5432 mov dx, strict word 00074h ; ba 74 00 5318 5433 mov ax, strict word 00040h ; b8 40 00 5319 call 01 6c6h ; e8 78d95434 call 01757h ; e8 20 d9 5320 5435 and byte [bp+01ch], 0feh ; 80 66 1c fe 5321 5436 lea sp, [bp-004h] ; 8d 66 fc … … 5324 5439 pop bp ; 5d 5325 5440 retn ; c3 5326 mov bx, 00d a0h ; bb a00d5441 mov bx, 00db2h ; bb b2 0d 5327 5442 mov cx, ds ; 8c d9 5328 5443 mov ax, strict word 00004h ; b8 04 00 5329 call 01 999h ; e8 35 dc5444 call 01a2ah ; e8 dd db 5330 5445 mov ax, word [bp+016h] ; 8b 46 16 5331 5446 shr ax, 008h ; c1 e8 08 5332 5447 push ax ; 50 5333 push 00 2fch ; 68 fc 025334 push 003 33h ; 68 33035335 jmp near 03 c4fh ; e9 db fe5448 push 0030eh ; 68 0e 03 5449 push 00345h ; 68 45 03 5450 jmp near 03d38h ; e9 db fe 5336 5451 mov ax, word [bp+016h] ; 8b 46 16 5337 5452 xor ah, ah ; 30 e4 … … 5343 5458 mov dx, strict word 00074h ; ba 74 00 5344 5459 mov ax, strict word 00040h ; b8 40 00 5345 call 01 6c6h ; e8 37 d95460 call 01757h ; e8 df d8 5346 5461 or byte [bp+01ch], 001h ; 80 4e 1c 01 5347 jmp short 03 d52h ; eb bd5348 device_is_cdrom_: ; 0xf3 d95LB 0x355462 jmp short 03e3bh ; eb bd 5463 device_is_cdrom_: ; 0xf3e7e LB 0x35 5349 5464 push bp ; 55 5350 5465 mov bp, sp ; 89 e5 … … 5354 5469 mov dx, strict word 0000eh ; ba 0e 00 5355 5470 mov ax, strict word 00040h ; b8 40 00 5356 call 01 6d4h ; e8 2f d95471 call 01765h ; e8 d7 d8 5357 5472 cmp bl, 010h ; 80 fb 10 5358 jc short 03 daeh ; 72 045473 jc short 03e97h ; 72 04 5359 5474 xor ax, ax ; 31 c0 5360 jmp short 03 dc3h ; eb 155475 jmp short 03each ; eb 15 5361 5476 xor bh, bh ; 30 ff 5362 5477 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 5364 5479 add bx, 00122h ; 81 c3 22 01 5365 5480 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5366 jne short 03 daah ; 75 ea5481 jne short 03e93h ; 75 ea 5367 5482 mov ax, strict word 00001h ; b8 01 00 5368 5483 lea sp, [bp-004h] ; 8d 66 fc … … 5371 5486 pop bp ; 5d 5372 5487 retn ; c3 5373 cdrom_boot_: ; 0xf3 dca LB 0x4165488 cdrom_boot_: ; 0xf3eb3 LB 0x417 5374 5489 push bp ; 55 5375 5490 mov bp, sp ; 89 e5 … … 5382 5497 mov dx, strict word 0000eh ; ba 0e 00 5383 5498 mov ax, strict word 00040h ; b8 40 00 5384 call 01 6d4h ; e8 f5d85499 call 01765h ; e8 9d d8 5385 5500 mov word [bp-018h], ax ; 89 46 e8 5386 5501 mov si, 00366h ; be 66 03 … … 5389 5504 mov word [bp-012h], ax ; 89 46 ee 5390 5505 mov byte [bp-00ch], 000h ; c6 46 f4 00 5391 jmp short 03 dffh ; eb 095506 jmp short 03ee8h ; eb 09 5392 5507 inc byte [bp-00ch] ; fe 46 f4 5393 5508 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5394 jnc short 03e 0ah ; 73 0b5509 jnc short 03ef3h ; 73 0b 5395 5510 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5396 call 03 d95h ; e8 8f ff5511 call 03e7eh ; e8 8f ff 5397 5512 test ax, ax ; 85 c0 5398 je short 03 df6h ; 74 ec5513 je short 03edfh ; 74 ec 5399 5514 cmp byte [bp-00ch], 010h ; 80 7e f4 10 5400 jc short 03e 16h ; 72 065515 jc short 03effh ; 72 06 5401 5516 mov ax, strict word 00002h ; b8 02 00 5402 jmp near 04 17dh ; e9 67035517 jmp near 04267h ; e9 68 03 5403 5518 mov cx, strict word 0000ch ; b9 0c 00 5404 5519 xor bx, bx ; 31 db 5405 5520 mov dx, ss ; 8c d2 5406 5521 lea ax, [bp-026h] ; 8d 46 da 5407 call 0 9f60h ; e8 3d615522 call 0a050h ; e8 44 61 5408 5523 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5409 5524 mov ax, strict word 00011h ; b8 11 00 … … 5421 5536 ; mov dword [es:bx+00eh], strict dword 008000001h ; 66 26 c7 47 0e 01 00 00 08 5422 5537 mov byte [bp-00eh], 000h ; c6 46 f2 00 5423 jmp short 03 e5bh ; eb 095538 jmp short 03f44h ; eb 09 5424 5539 inc byte [bp-00eh] ; fe 46 f2 5425 5540 cmp byte [bp-00eh], 004h ; 80 7e f2 04 5426 jnbe short 03 e92h ; 77 375427 movzx di, byte [bp-00ch] ; 0f b6 7ef45428 imul di, di, strict byte 0001ch ; 6b ff1c5429 mov es, [bp-012h] ; 8e 46 ee5430 add di, word [bp-014h] ; 03 7e ec5541 jnbe short 03f7ah ; 77 36 5542 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5543 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5544 les di, [bp-014h] ; c4 7e ec 5545 add di, ax ; 01 c7 5431 5546 movzx di, byte [es:di+022h] ; 26 0f b6 7d 22 5432 5547 add di, di ; 01 ff … … 5444 5559 call word [word di+0006ah] ; ff 95 6a 00 5445 5560 test ax, ax ; 85 c0 5446 jne short 03 e52h ; 75 c05561 jne short 03f3bh ; 75 c1 5447 5562 test ax, ax ; 85 c0 5448 je short 03 e9ch ; 74 065563 je short 03f84h ; 74 06 5449 5564 mov ax, strict word 00003h ; b8 03 00 5450 jmp near 04 17dh ; e9 e1025565 jmp near 04267h ; e9 e3 02 5451 5566 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5452 je short 03 ea9h ; 74 065567 je short 03f91h ; 74 06 5453 5568 mov ax, strict word 00004h ; b8 04 00 5454 jmp near 04 17dh ; e9 d4025569 jmp near 04267h ; e9 d6 02 5455 5570 xor di, di ; 31 ff 5456 jmp short 03 eb3h ; eb 065571 jmp short 03f9bh ; eb 06 5457 5572 inc di ; 47 5458 5573 cmp di, strict byte 00005h ; 83 ff 05 5459 jnc short 03 ec3h ; 73 105574 jnc short 03fabh ; 73 10 5460 5575 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5461 cmp al, byte [di+00d a8h] ; 3a 85 a80d5462 je short 03 eadh ; 74 f05576 cmp al, byte [di+00dbah] ; 3a 85 ba 0d 5577 je short 03f95h ; 74 f0 5463 5578 mov ax, strict word 00005h ; b8 05 00 5464 jmp near 04 17dh ; e9 ba025579 jmp near 04267h ; e9 bc 02 5465 5580 xor di, di ; 31 ff 5466 jmp short 03 ecdh ; eb 065581 jmp short 03fb5h ; eb 06 5467 5582 inc di ; 47 5468 5583 cmp di, strict byte 00017h ; 83 ff 17 5469 jnc short 03 eddh ; 73 105584 jnc short 03fc5h ; 73 10 5470 5585 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5471 cmp al, byte [di+00d aeh] ; 3a 85 ae0d5472 je short 03 ec7h ; 74 f05586 cmp al, byte [di+00dc0h] ; 3a 85 c0 0d 5587 je short 03fafh ; 74 f0 5473 5588 mov ax, strict word 00006h ; b8 06 00 5474 jmp near 04 17dh ; e9 a0025589 jmp near 04267h ; e9 a2 02 5475 5590 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5476 5591 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5484 5599 xchg ah, al ; 86 c4 5485 5600 mov word [bp-01fh], ax ; 89 46 e1 5486 movzx di, byte [bp-00ch] ; 0f b6 7ef45487 imul di, di, strict byte 0001ch ; 6b ff1c5488 mov es, [bp-012h] ; 8e 46 ee5489 add di, word [bp-014h] ; 03 7e ec5601 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 5602 imul ax, ax, strict byte 0001ch ; 6b c0 1c 5603 les di, [bp-014h] ; c4 7e ec 5604 add di, ax ; 01 c7 5490 5605 movzx di, byte [es:di+022h] ; 26 0f b6 7d 22 5491 5606 add di, di ; 01 ff … … 5503 5618 call word [word di+0006ah] ; ff 95 6a 00 5504 5619 test ax, ax ; 85 c0 5505 je short 0 3f3ah ; 74 065620 je short 04021h ; 74 06 5506 5621 mov ax, strict word 00007h ; b8 07 00 5507 jmp near 04 17dh ; e9 43025622 jmp near 04267h ; e9 46 02 5508 5623 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5509 je short 0 3f47h ; 74 065624 je short 0402eh ; 74 06 5510 5625 mov ax, strict word 00008h ; b8 08 00 5511 jmp near 04 17dh ; e9 36025626 jmp near 04267h ; e9 39 02 5512 5627 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5513 je short 0 3f54h ; 74 065628 je short 0403bh ; 74 06 5514 5629 mov ax, strict word 00009h ; b8 09 00 5515 jmp near 04 17dh ; e9 29025630 jmp near 04267h ; e9 2c 02 5516 5631 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5517 je short 0 3f61h ; 74 065632 je short 04048h ; 74 06 5518 5633 mov ax, strict word 0000ah ; b8 0a 00 5519 jmp near 04 17dh ; e9 1c025634 jmp near 04267h ; e9 1f 02 5520 5635 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5521 jne short 0 3f5bh ; 75 f35636 jne short 04042h ; 75 f3 5522 5637 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5523 je short 0 3f75h ; 74 065638 je short 0405ch ; 74 06 5524 5639 mov ax, strict word 0000bh ; b8 0b 00 5525 jmp near 04 17dh ; e9 08025640 jmp near 04267h ; e9 0b 02 5526 5641 mov al, byte [bp-00805h] ; 8a 86 fb f7 5527 5642 mov es, [bp-010h] ; 8e 46 f0 5528 5643 mov byte [es:si+001h], al ; 26 88 44 01 5529 5644 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5530 jne short 0 3f8eh ; 75 075645 jne short 04075h ; 75 07 5531 5646 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5532 jmp short 0 3fa1h ; eb 135647 jmp short 04088h ; eb 13 5533 5648 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5534 jnc short 0 3f9ch ; 73 075649 jnc short 04083h ; 73 07 5535 5650 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5536 jmp short 0 3fa1h ; eb 055651 jmp short 04088h ; eb 05 5537 5652 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5538 5653 movzx di, byte [bp-00ch] ; 0f b6 7e f4 … … 5552 5667 mov word [bp-016h], ax ; 89 46 ea 5553 5668 test ax, ax ; 85 c0 5554 jne short 0 3fcfh ; 75 055669 jne short 040b6h ; 75 05 5555 5670 mov word [bp-016h], 007c0h ; c7 46 ea c0 07 5556 5671 mov ax, word [bp-016h] ; 8b 46 ea … … 5561 5676 mov word [es:si+00eh], di ; 26 89 7c 0e 5562 5677 test di, di ; 85 ff 5563 je short 0 3ff1h ; 74 065678 je short 040d8h ; 74 06 5564 5679 cmp di, 00400h ; 81 ff 00 04 5565 jbe short 0 3ff7h ; 76 065680 jbe short 040deh ; 76 06 5566 5681 mov ax, strict word 0000ch ; b8 0c 00 5567 jmp near 04 17dh ; e9 86015682 jmp near 04267h ; e9 89 01 5568 5683 mov ax, word [bp-007feh] ; 8b 86 02 f8 5569 5684 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5576 5691 mov word [bp-024h], ax ; 89 46 dc 5577 5692 mov word [bp-022h], dx ; 89 56 de 5578 lea dx, [di-001h] ; 8d 55ff5579 shr dx, 002h ; c1 ea025580 inc dx ; 425581 mov ax, dx ; 89 d05693 lea cx, [di-001h] ; 8d 4d ff 5694 shr cx, 002h ; c1 e9 02 5695 inc cx ; 41 5696 mov ax, cx ; 89 c8 5582 5697 xchg ah, al ; 86 c4 5583 5698 mov word [bp-01fh], ax ; 89 46 e1 5584 5699 les bx, [bp-014h] ; c4 5e ec 5585 mov word [es:bx+00eh], dx ; 26 89 570e5700 mov word [es:bx+00eh], cx ; 26 89 4f 0e 5586 5701 mov word [es:bx+010h], 00200h ; 26 c7 47 10 00 02 5587 5702 mov ax, di ; 89 f8 … … 5605 5720 sal ax, 1 ; d1 e0 5606 5721 rcl di, 1 ; d1 d7 5607 loop 04 065h ; e2 fa5722 loop 0414ch ; e2 fa 5608 5723 push di ; 57 5609 5724 push ax ; 50 … … 5618 5733 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5619 5734 test ax, ax ; 85 c0 5620 je short 04 095h ; 74 065735 je short 0417ch ; 74 06 5621 5736 mov ax, strict word 0000dh ; b8 0d 00 5622 jmp near 04 17dh ; e9 e8005737 jmp near 04267h ; e9 eb 00 5623 5738 mov es, [bp-010h] ; 8e 46 f0 5624 5739 mov al, byte [es:si+001h] ; 26 8a 44 01 5625 5740 cmp AL, strict byte 002h ; 3c 02 5626 jc short 04 0adh ; 72 0d5627 jbe short 04 0c5h ; 76 235741 jc short 04194h ; 72 0d 5742 jbe short 041ach ; 76 23 5628 5743 cmp AL, strict byte 004h ; 3c 04 5629 je short 04 0dbh ; 74 355744 je short 041c2h ; 74 35 5630 5745 cmp AL, strict byte 003h ; 3c 03 5631 je short 04 0d0h ; 74 265632 jmp near 04 126h ; e9 79005746 je short 041b7h ; 74 26 5747 jmp near 04210h ; e9 7c 00 5633 5748 cmp AL, strict byte 001h ; 3c 01 5634 jne short 04 126h ; 75 755749 jne short 04210h ; 75 78 5635 5750 mov es, [bp-010h] ; 8e 46 f0 5636 5751 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 00fh, 000h 5637 5752 ; mov dword [es:si+012h], strict dword 0000f0050h ; 66 26 c7 44 12 50 00 0f 00 5638 5753 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5639 jmp short 04 126h ; eb 615754 jmp short 04210h ; eb 64 5640 5755 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 012h, 000h 5641 5756 ; mov dword [es:si+012h], strict dword 000120050h ; 66 26 c7 44 12 50 00 12 00 5642 jmp short 04 0bdh ; eb ed5757 jmp short 041a4h ; eb ed 5643 5758 db 066h, 026h, 0c7h, 044h, 012h, 050h, 000h, 024h, 000h 5644 5759 ; mov dword [es:si+012h], strict dword 000240050h ; 66 26 c7 44 12 50 00 24 00 5645 jmp short 04 0bdh ; eb e25760 jmp short 041a4h ; eb e2 5646 5761 mov dx, 001c4h ; ba c4 01 5647 5762 mov ax, word [bp-016h] ; 8b 46 ea 5648 call 01 6b8h ; e8 d4d55763 call 01749h ; e8 7e d5 5649 5764 and AL, strict byte 03fh ; 24 3f 5650 5765 xor ah, ah ; 30 e4 … … 5653 5768 mov dx, 001c4h ; ba c4 01 5654 5769 mov ax, word [bp-016h] ; 8b 46 ea 5655 call 01 6b8h ; e8 c0d55770 call 01749h ; e8 6a d5 5656 5771 movzx bx, al ; 0f b6 d8 5772 and bl, 0c0h ; 80 e3 c0 5657 5773 sal bx, 002h ; c1 e3 02 5658 5774 mov dx, 001c5h ; ba c5 01 5659 5775 mov ax, word [bp-016h] ; 8b 46 ea 5660 call 01 6b8h ; e8 b1d55776 call 01749h ; e8 58 d5 5661 5777 xor ah, ah ; 30 e4 5662 5778 add ax, bx ; 01 d8 … … 5666 5782 mov dx, 001c3h ; ba c3 01 5667 5783 mov ax, word [bp-016h] ; 8b 46 ea 5668 call 01 6b8h ; e8 9cd55784 call 01749h ; e8 43 d5 5669 5785 xor ah, ah ; 30 e4 5670 5786 inc ax ; 40 … … 5673 5789 mov es, [bp-010h] ; 8e 46 f0 5674 5790 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5675 je short 04 164h ; 74 345791 je short 0424eh ; 74 34 5676 5792 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5677 jne short 04 14dh ; 75 165793 jne short 04237h ; 75 16 5678 5794 mov dx, strict word 00010h ; ba 10 00 5679 5795 mov ax, strict word 00040h ; b8 40 00 5680 call 01 6b8h ; e8 78d55796 call 01749h ; e8 1f d5 5681 5797 or AL, strict byte 041h ; 0c 41 5682 5798 movzx bx, al ; 0f b6 d8 5683 5799 mov dx, strict word 00010h ; ba 10 00 5684 5800 mov ax, strict word 00040h ; b8 40 00 5685 jmp short 04 161h ; eb 145801 jmp short 0424bh ; eb 14 5686 5802 mov dx, 00304h ; ba 04 03 5687 5803 mov ax, word [bp-018h] ; 8b 46 e8 5688 call 01 6b8h ; e8 62d55804 call 01749h ; e8 09 d5 5689 5805 db 0feh, 0c0h 5690 5806 ; inc al ; fe c0 … … 5692 5808 mov dx, 00304h ; ba 04 03 5693 5809 mov ax, word [bp-018h] ; 8b 46 e8 5694 call 01 6c6h ; e8 62d55810 call 01757h ; e8 09 d5 5695 5811 mov es, [bp-010h] ; 8e 46 f0 5696 5812 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5697 je short 04 172h ; 74 045813 je short 0425ch ; 74 04 5698 5814 mov byte [es:si], 001h ; 26 c6 04 01 5699 5815 mov es, [bp-010h] ; 8e 46 f0 … … 5709 5825 retn ; c3 5710 5826 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5711 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 78h, 045h, 086h5712 db 04 2h, 0d0h, 042h, 0f8h, 042h, 0c5h, 042h, 0f8h, 042h, 0c5h, 042h, 0ceh, 044h, 0abh, 042h, 078h5713 db 04 5h, 078h, 045h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 0abh, 042h, 06fh, 045h, 0abh5714 db 04 2h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h, 078h5715 db 04 5h, 078h, 045h, 078h, 045h, 078h, 045h, 078h, 045h5716 _int13_cdemu: ; 0xf4 1e0LB 0x4345827 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 062h, 046h, 070h 5828 db 043h, 0bah, 043h, 0e2h, 043h, 0afh, 043h, 0e2h, 043h, 0afh, 043h, 0b8h, 045h, 095h, 043h, 062h 5829 db 046h, 062h, 046h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 095h, 043h, 059h, 046h, 095h 5830 db 043h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h 5831 db 046h, 062h, 046h, 062h, 046h, 062h, 046h, 062h, 046h 5832 _int13_cdemu: ; 0xf42ca LB 0x434 5717 5833 push bp ; 55 5718 5834 mov bp, sp ; 89 e5 … … 5722 5838 mov dx, strict word 0000eh ; ba 0e 00 5723 5839 mov ax, strict word 00040h ; b8 40 00 5724 call 01 6d4h ; e8 e3d45840 call 01765h ; e8 8a d4 5725 5841 mov di, 00366h ; bf 66 03 5726 5842 mov cx, ax ; 89 c1 … … 5738 5854 mov dx, strict word 00074h ; ba 74 00 5739 5855 mov ax, strict word 00040h ; b8 40 00 5740 call 01 6c6h ; e8 a6d45856 call 01757h ; e8 4d d4 5741 5857 mov es, cx ; 8e c1 5742 5858 cmp byte [es:di], 000h ; 26 80 3d 00 5743 je short 04 236h ; 74 0e5859 je short 04320h ; 74 0e 5744 5860 movzx dx, byte [es:di+002h] ; 26 0f b6 55 02 5745 5861 mov ax, word [bp+012h] ; 8b 46 12 5746 5862 xor ah, ah ; 30 e4 5747 5863 cmp dx, ax ; 39 c2 5748 je short 04 25fh ; 74 295749 mov bx, 00d a0h ; bb a00d5864 je short 04349h ; 74 29 5865 mov bx, 00db2h ; bb b2 0d 5750 5866 mov cx, ds ; 8c d9 5751 5867 mov ax, strict word 00004h ; b8 04 00 5752 call 01 999h ; e8 58 d75868 call 01a2ah ; e8 ff d6 5753 5869 mov ax, word [bp+012h] ; 8b 46 12 5754 5870 xor ah, ah ; 30 e4 … … 5757 5873 shr ax, 008h ; c1 e8 08 5758 5874 push ax ; 50 5759 push 003 4ch ; 68 4c035760 push 003 58h ; 68 58035875 push 0035eh ; 68 5e 03 5876 push 0036ah ; 68 6a 03 5761 5877 push strict byte 00004h ; 6a 04 5762 call 01 9dah ; e8 81d75878 call 01a6bh ; e8 28 d7 5763 5879 add sp, strict byte 0000ah ; 83 c4 0a 5764 jmp near 04 598h ; e9 39 035880 jmp near 04682h ; e9 39 03 5765 5881 mov ax, word [bp+016h] ; 8b 46 16 5766 5882 shr ax, 008h ; c1 e8 08 5767 5883 cmp ax, strict word 00050h ; 3d 50 00 5768 jnbe near 04 578h ; 0f 87 0c 035884 jnbe near 04662h ; 0f 87 0c 03 5769 5885 push CS ; 0e 5770 5886 pop ES ; 07 5771 5887 mov cx, strict word 0001eh ; b9 1e 00 5772 mov di, 04 187h ; bf 87 415888 mov di, 04271h ; bf 71 42 5773 5889 repne scasb ; f2 ae 5774 5890 sal cx, 1 ; d1 e1 5775 5891 mov di, cx ; 89 cf 5776 mov ax, word [cs:di+04 1a4h] ; 2e 8b 85 a4 415892 mov ax, word [cs:di+0428eh] ; 2e 8b 85 8e 42 5777 5893 mov bx, word [bp+016h] ; 8b 5e 16 5778 5894 xor bh, bh ; 30 ff … … 5785 5901 add bx, bx ; 01 db 5786 5902 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 5787 je near 04 2abh ; 0f 84 08 005903 je near 04395h ; 0f 84 08 00 5788 5904 movzx ax, byte [bp-006h] ; 0f b6 46 fa 5789 5905 call word [word bx+00076h] ; ff 97 76 00 … … 5792 5908 mov dx, strict word 00074h ; ba 74 00 5793 5909 mov ax, strict word 00040h ; b8 40 00 5794 call 01 6c6h ; e8 0c d45910 call 01757h ; e8 b3 d3 5795 5911 and byte [bp+01ch], 0feh ; 80 66 1c fe 5796 5912 lea sp, [bp-004h] ; 8d 66 fc … … 5802 5918 xor ah, ah ; 30 e4 5803 5919 or ah, 003h ; 80 cc 03 5804 jmp near 04 5a0h ; e9 d0 025920 jmp near 0468ah ; e9 d0 02 5805 5921 mov dx, strict word 00074h ; ba 74 00 5806 5922 mov ax, strict word 00040h ; b8 40 00 5807 call 01 6b8h ; e8 dfd35923 call 01749h ; e8 86 d3 5808 5924 mov cl, al ; 88 c1 5809 5925 movzx ax, cl ; 0f b6 c1 … … 5814 5930 mov dx, strict word 00074h ; ba 74 00 5815 5931 mov ax, strict word 00040h ; b8 40 00 5816 call 01 6c6h ; e8 d5d35932 call 01757h ; e8 7c d3 5817 5933 test cl, cl ; 84 c9 5818 je short 04 2afh ; 74 ba5819 jmp near 04 5b4h ; e9 bc 025934 je short 04399h ; 74 ba 5935 jmp near 0469eh ; e9 bc 02 5820 5936 mov es, [bp-008h] ; 8e 46 f8 5821 5937 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 5841 5957 mov word [bp-00ah], cx ; 89 4e f6 5842 5958 test cx, cx ; 85 c9 5843 jne short 04 345h ; 75 035844 jmp near 04 2abh ; e9 66 ff5959 jne short 0442fh ; 75 03 5960 jmp near 04395h ; e9 66 ff 5845 5961 cmp di, word [bp-010h] ; 3b 7e f0 5846 jc near 04 598h ; 0f 82 4c 025962 jc near 04682h ; 0f 82 4c 02 5847 5963 cmp ax, dx ; 39 d0 5848 jnc near 04 598h ; 0f 83 46 025964 jnc near 04682h ; 0f 83 46 02 5849 5965 cmp si, bx ; 39 de 5850 jnc near 04 598h ; 0f 83 40 025966 jnc near 04682h ; 0f 83 40 02 5851 5967 mov dx, word [bp+016h] ; 8b 56 16 5852 5968 shr dx, 008h ; c1 ea 08 5853 5969 cmp dx, strict byte 00004h ; 83 fa 04 5854 jne short 04 366h ; 75 035855 jmp near 04 2abh ; e9 45 ff5970 jne short 04450h ; 75 03 5971 jmp near 04395h ; e9 45 ff 5856 5972 mov dx, word [bp+010h] ; 8b 56 10 5857 5973 shr dx, 004h ; c1 ea 04 … … 5864 5980 xor dl, dl ; 30 d2 5865 5981 xor cx, cx ; 31 c9 5866 call 09 ec0h ; e8 3c5b5982 call 09fb0h ; e8 42 5b 5867 5983 xor bx, bx ; 31 db 5868 5984 add ax, si ; 01 f0 … … 5870 5986 mov bx, di ; 89 fb 5871 5987 xor cx, cx ; 31 c9 5872 call 09 ec0h ; e8 2f5b5988 call 09fb0h ; e8 35 5b 5873 5989 mov bx, ax ; 89 c3 5874 5990 mov ax, word [bp-010h] ; 8b 46 f0 … … 5905 6021 mov dx, ss ; 8c d2 5906 6022 lea ax, [bp-02eh] ; 8d 46 d2 5907 call 0 9f60h ; e8 785b6023 call 0a050h ; e8 7e 5b 5908 6024 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 5909 6025 mov ax, word [bp-014h] ; 8b 46 ec … … 5953 6069 sal si, 1 ; d1 e6 5954 6070 rcl di, 1 ; d1 d7 5955 loop 04 468h ; e2 fa6071 loop 04552h ; e2 fa 5956 6072 push di ; 57 5957 6073 push si ; 56 … … 5968 6084 ; mov dword [es:bx+01eh], strict dword 000000000h ; 66 26 c7 47 1e 00 00 00 00 5969 6085 test al, al ; 84 c0 5970 je near 04 2abh ; 0f 84 13 fe5971 mov bx, 00d a0h ; bb a00d6086 je near 04395h ; 0f 84 13 fe 6087 mov bx, 00db2h ; bb b2 0d 5972 6088 mov cx, ds ; 8c d9 5973 6089 mov ax, strict word 00004h ; b8 04 00 5974 call 01 999h ; e8 f6d46090 call 01a2ah ; e8 9d d4 5975 6091 movzx ax, dl ; 0f b6 c2 5976 6092 push ax ; 50 … … 5978 6094 shr ax, 008h ; c1 e8 08 5979 6095 push ax ; 50 5980 push 003 4ch ; 68 4c035981 push 003 8eh ; 68 8e036096 push 0035eh ; 68 5e 03 6097 push 003a0h ; 68 a0 03 5982 6098 push strict byte 00004h ; 6a 04 5983 call 01 9dah ; e8 21 d56099 call 01a6bh ; e8 c8 d4 5984 6100 add sp, strict byte 0000ah ; 83 c4 0a 5985 6101 mov ax, word [bp+016h] ; 8b 46 16 … … 5988 6104 mov word [bp+016h], ax ; 89 46 16 5989 6105 mov byte [bp+016h], 000h ; c6 46 16 00 5990 jmp near 04 5a3h ; e9 d5 006106 jmp near 0468dh ; e9 d5 00 5991 6107 mov es, [bp-008h] ; 8e 46 f8 5992 6108 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 6027 6143 mov word [bp+010h], ax ; 89 46 10 6028 6144 cmp dl, 003h ; 80 fa 03 6029 je short 04 552h ; 74 1a6145 je short 0463ch ; 74 1a 6030 6146 cmp dl, 002h ; 80 fa 02 6031 je short 04 54eh ; 74 116147 je short 04638h ; 74 11 6032 6148 cmp dl, 001h ; 80 fa 01 6033 jne short 04 556h ; 75 146149 jne short 04640h ; 75 14 6034 6150 mov ax, word [bp+010h] ; 8b 46 10 6035 6151 xor al, al ; 30 c0 6036 6152 or AL, strict byte 002h ; 0c 02 6037 6153 mov word [bp+010h], ax ; 89 46 10 6038 jmp short 04 556h ; eb 086154 jmp short 04640h ; eb 08 6039 6155 or AL, strict byte 004h ; 0c 04 6040 jmp short 04 549h ; eb f76156 jmp short 04633h ; eb f7 6041 6157 or AL, strict byte 005h ; 0c 05 6042 jmp short 04 549h ; eb f36158 jmp short 04633h ; eb f3 6043 6159 mov es, [bp-008h] ; 8e 46 f8 6044 6160 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6045 jnc near 04 2abh ; 0f 83 49 fd6161 jnc near 04395h ; 0f 83 49 fd 6046 6162 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6047 6163 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6048 jmp near 04 2abh ; e9 3c fd6164 jmp near 04395h ; e9 3c fd 6049 6165 or bh, 003h ; 80 cf 03 6050 6166 mov word [bp+016h], bx ; 89 5e 16 6051 jmp near 04 2afh ; e9 37 fd6052 mov bx, 00d a0h ; bb a00d6167 jmp near 04399h ; e9 37 fd 6168 mov bx, 00db2h ; bb b2 0d 6053 6169 mov cx, ds ; 8c d9 6054 6170 mov ax, strict word 00004h ; b8 04 00 6055 call 01 999h ; e8 16 d46171 call 01a2ah ; e8 bd d3 6056 6172 mov ax, word [bp+016h] ; 8b 46 16 6057 6173 shr ax, 008h ; c1 e8 08 6058 6174 push ax ; 50 6059 push 003 4ch ; 68 4c036060 push 003 afh ; 68 af036175 push 0035eh ; 68 5e 03 6176 push 003c1h ; 68 c1 03 6061 6177 push strict byte 00004h ; 6a 04 6062 call 01 9dah ; e8 45 d46178 call 01a6bh ; e8 ec d3 6063 6179 add sp, strict byte 00008h ; 83 c4 08 6064 6180 mov ax, word [bp+016h] ; 8b 46 16 … … 6071 6187 mov dx, strict word 00074h ; ba 74 00 6072 6188 mov ax, strict word 00040h ; b8 40 00 6073 call 01 6c6h ; e8 12 d16189 call 01757h ; e8 b9 d0 6074 6190 or byte [bp+01ch], 001h ; 80 4e 1c 01 6075 jmp near 04 2beh ; e9 03 fd6191 jmp near 043a8h ; e9 03 fd 6076 6192 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6077 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 59h, 04bh, 0d5h6078 db 04 8h, 0c1h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0b6h, 046h, 059h, 04bh, 0d5h, 048h, 059h6079 db 04 bh, 059h, 04bh, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0d5h, 048h, 0ebh, 046h, 0d5h6080 db 04 8h, 059h, 04bh, 0f4h, 046h, 007h, 047h, 0b6h, 046h, 007h, 047h, 035h, 048h, 0efh, 048h, 007h6081 db 047h, 0 16h, 049h, 012h, 04bh, 01ah, 04bh, 059h, 04bh6082 _int13_cdrom: ; 0xf46 14LB 0x5626193 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 043h, 04ch, 0bfh 6194 db 049h, 0abh, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0a0h, 047h, 043h, 04ch, 0bfh, 049h, 043h 6195 db 04ch, 043h, 04ch, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0bfh, 049h, 0d5h, 047h, 0bfh 6196 db 049h, 043h, 04ch, 0deh, 047h, 0f1h, 047h, 0a0h, 047h, 0f1h, 047h, 01fh, 049h, 0d9h, 049h, 0f1h 6197 db 047h, 000h, 04ah, 0fch, 04bh, 004h, 04ch, 043h, 04ch 6198 _int13_cdrom: ; 0xf46fe LB 0x562 6083 6199 push bp ; 55 6084 6200 mov bp, sp ; 89 e5 … … 6088 6204 mov dx, strict word 0000eh ; ba 0e 00 6089 6205 mov ax, strict word 00040h ; b8 40 00 6090 call 01 6d4h ; e8 afd06206 call 01765h ; e8 56 d0 6091 6207 mov word [bp-01ah], ax ; 89 46 e6 6092 6208 mov si, 00122h ; be 22 01 … … 6095 6211 mov dx, strict word 00074h ; ba 74 00 6096 6212 mov ax, strict word 00040h ; b8 40 00 6097 call 01 6c6h ; e8 8dd06213 call 01757h ; e8 34 d0 6098 6214 mov ax, word [bp+010h] ; 8b 46 10 6099 6215 xor ah, ah ; 30 e4 6100 6216 cmp ax, 000e0h ; 3d e0 00 6101 jc short 04 648h ; 72 056217 jc short 04732h ; 72 05 6102 6218 cmp ax, 000f0h ; 3d f0 00 6103 jc short 04 666h ; 72 1e6219 jc short 04750h ; 72 1e 6104 6220 mov ax, word [bp+010h] ; 8b 46 10 6105 6221 xor ah, ah ; 30 e4 … … 6108 6224 shr ax, 008h ; c1 e8 08 6109 6225 push ax ; 50 6110 push 003 dfh ; 68 df036111 push 003 ebh ; 68 eb036226 push 003f1h ; 68 f1 03 6227 push 003fdh ; 68 fd 03 6112 6228 push strict byte 00004h ; 6a 04 6113 call 01 9dah ; e8 7ad36229 call 01a6bh ; e8 21 d3 6114 6230 add sp, strict byte 0000ah ; 83 c4 0a 6115 jmp near 04 b36h ; e9 d0 046231 jmp near 04c20h ; e9 d0 04 6116 6232 mov ax, word [bp+010h] ; 8b 46 10 6117 6233 xor ah, ah ; 30 e4 … … 6122 6238 mov byte [bp-008h], dl ; 88 56 f8 6123 6239 cmp dl, 010h ; 80 fa 10 6124 jc short 04 68fh ; 72 106240 jc short 04779h ; 72 10 6125 6241 push ax ; 50 6126 6242 mov ax, word [bp+018h] ; 8b 46 18 6127 6243 shr ax, 008h ; c1 e8 08 6128 6244 push ax ; 50 6129 push 003 dfh ; 68 df036130 push 004 16h ; 68 16046131 jmp short 04 65bh ; eb cc6245 push 003f1h ; 68 f1 03 6246 push 00428h ; 68 28 04 6247 jmp short 04745h ; eb cc 6132 6248 mov ax, word [bp+018h] ; 8b 46 18 6133 6249 shr ax, 008h ; c1 e8 08 6134 6250 cmp ax, strict word 00050h ; 3d 50 00 6135 jnbe near 04 b59h ; 0f 87 bd 046251 jnbe near 04c43h ; 0f 87 bd 04 6136 6252 push CS ; 0e 6137 6253 pop ES ; 07 6138 6254 mov cx, strict word 0001eh ; b9 1e 00 6139 mov di, 04 5bbh ; bf bb 456255 mov di, 046a5h ; bf a5 46 6140 6256 repne scasb ; f2 ae 6141 6257 sal cx, 1 ; d1 e1 6142 6258 mov di, cx ; 89 cf 6143 mov ax, word [cs:di+04 5d8h] ; 2e 8b 85 d8 456259 mov ax, word [cs:di+046c2h] ; 2e 8b 85 c2 46 6144 6260 mov bx, word [bp+018h] ; 8b 5e 18 6145 6261 xor bh, bh ; 30 ff … … 6148 6264 xor ah, ah ; 30 e4 6149 6265 or ah, 003h ; 80 cc 03 6150 jmp near 04 b3eh ; e9 7d 046266 jmp near 04c28h ; e9 7d 04 6151 6267 mov dx, strict word 00074h ; ba 74 00 6152 6268 mov ax, strict word 00040h ; b8 40 00 6153 call 01 6b8h ; e8 eecf6269 call 01749h ; e8 95 cf 6154 6270 mov cl, al ; 88 c1 6155 6271 movzx ax, cl ; 0f b6 c1 … … 6160 6276 mov dx, strict word 00074h ; ba 74 00 6161 6277 mov ax, strict word 00040h ; b8 40 00 6162 call 01 6c6h ; e8 e4cf6278 call 01757h ; e8 8b cf 6163 6279 test cl, cl ; 84 c9 6164 je near 04 8d9h ; 0f 84 f1 016165 jmp near 04 b52h ; e9 67 046280 je near 049c3h ; 0f 84 f1 01 6281 jmp near 04c3ch ; e9 67 04 6166 6282 or bh, 002h ; 80 cf 02 6167 6283 mov word [bp+018h], bx ; 89 5e 18 6168 jmp near 04 b41h ; e9 4d 046284 jmp near 04c2bh ; e9 4d 04 6169 6285 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6170 6286 or bh, 030h ; 80 cf 30 6171 6287 mov word [bp+018h], bx ; 89 5e 18 6172 6288 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6173 jmp near 04 8d9h ; e9 d2 016289 jmp near 049c3h ; e9 d2 01 6174 6290 mov bx, word [bp+00ch] ; 8b 5e 0c 6175 6291 mov es, [bp+006h] ; 8e 46 06 … … 6186 6302 mov di, word [es:bx+00eh] ; 26 8b 7f 0e 6187 6303 or di, ax ; 09 c7 6188 je short 04 74fh ; 74 186304 je short 04839h ; 74 18 6189 6305 mov ax, word [bp+018h] ; 8b 46 18 6190 6306 shr ax, 008h ; c1 e8 08 6191 6307 push ax ; 50 6192 push 003 dfh ; 68 df036193 push 004 48h ; 68 48046308 push 003f1h ; 68 f1 03 6309 push 0045ah ; 68 5a 04 6194 6310 push strict byte 00007h ; 6a 07 6195 call 01 9dah ; e8 91d26311 call 01a6bh ; e8 38 d2 6196 6312 add sp, strict byte 00008h ; 83 c4 08 6197 jmp near 04 b36h ; e9 e7 036313 jmp near 04c20h ; e9 e7 03 6198 6314 les bx, [bp-014h] ; c4 5e ec 6199 6315 mov ax, word [es:bx+008h] ; 26 8b 47 08 … … 6205 6321 mov word [bp-016h], ax ; 89 46 ea 6206 6322 cmp ax, strict word 00044h ; 3d 44 00 6207 je near 04 8d5h ; 0f 84 66 016323 je near 049bfh ; 0f 84 66 01 6208 6324 cmp ax, strict word 00047h ; 3d 47 00 6209 je near 04 8d5h ; 0f 84 5f 016325 je near 049bfh ; 0f 84 5f 01 6210 6326 mov cx, strict word 0000ch ; b9 0c 00 6211 6327 xor bx, bx ; 31 db 6212 6328 mov dx, ss ; 8c d2 6213 6329 lea ax, [bp-02ch] ; 8d 46 d4 6214 call 0 9f60h ; e8 dd576330 call 0a050h ; e8 e3 57 6215 6331 mov word [bp-02ch], strict word 00028h ; c7 46 d4 28 00 6216 6332 mov ax, word [bp-018h] ; 8b 46 e8 … … 6240 6356 sal ax, 1 ; d1 e0 6241 6357 rcl bx, 1 ; d1 d3 6242 loop 04 7cdh ; e2 fa6358 loop 048b7h ; e2 fa 6243 6359 push bx ; 53 6244 6360 push ax ; 50 … … 6256 6372 shr di, 1 ; d1 ef 6257 6373 rcr ax, 1 ; d1 d8 6258 loop 04 7f7h ; e2 fa6374 loop 048e1h ; e2 fa 6259 6375 les bx, [bp-014h] ; c4 5e ec 6260 6376 mov word [es:bx+002h], ax ; 26 89 47 02 6261 6377 test dl, dl ; 84 d2 6262 je near 04 8d5h ; 0f 84 cb 006263 mov bx, 00d a0h ; bb a00d6378 je near 049bfh ; 0f 84 cb 00 6379 mov bx, 00db2h ; bb b2 0d 6264 6380 mov cx, ds ; 8c d9 6265 6381 mov ax, strict word 00004h ; b8 04 00 6266 call 01 999h ; e8 84d16382 call 01a2ah ; e8 2b d1 6267 6383 movzx ax, dl ; 0f b6 c2 6268 6384 push ax ; 50 6269 6385 push word [bp-016h] ; ff 76 ea 6270 push 003 dfh ; 68 df036271 push 004 71h ; 68 71046386 push 003f1h ; 68 f1 03 6387 push 00483h ; 68 83 04 6272 6388 push strict byte 00004h ; 6a 04 6273 call 01 9dah ; e8 b3d16389 call 01a6bh ; e8 5a d1 6274 6390 add sp, strict byte 0000ah ; 83 c4 0a 6275 6391 mov ax, word [bp+018h] ; 8b 46 18 6276 6392 xor ah, ah ; 30 e4 6277 6393 or ah, 00ch ; 80 cc 0c 6278 jmp near 04 b3eh ; e9 09 036394 jmp near 04c28h ; e9 09 03 6279 6395 cmp bx, strict byte 00002h ; 83 fb 02 6280 jnbe near 04 b36h ; 0f 87 fa 026396 jnbe near 04c20h ; 0f 87 fa 02 6281 6397 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6282 6398 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6286 6402 mov al, byte [es:di+025h] ; 26 8a 45 25 6287 6403 cmp bx, strict byte 00002h ; 83 fb 02 6288 je short 04 8c6h ; 74 736404 je short 049b0h ; 74 73 6289 6405 cmp bx, strict byte 00001h ; 83 fb 01 6290 je short 04 893h ; 74 3b6406 je short 0497dh ; 74 3b 6291 6407 test bx, bx ; 85 db 6292 jne near 04 8d5h ; 0f 85 77 006408 jne near 049bfh ; 0f 85 77 00 6293 6409 cmp AL, strict byte 0ffh ; 3c ff 6294 jne short 04 874h ; 75 126410 jne short 0495eh ; 75 12 6295 6411 mov ax, word [bp+018h] ; 8b 46 18 6296 6412 xor ah, ah ; 30 e4 … … 6299 6415 xor al, al ; 30 c0 6300 6416 or AL, strict byte 001h ; 0c 01 6301 jmp near 04 b3eh ; e9 ca 026417 jmp near 04c28h ; e9 ca 02 6302 6418 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6303 6419 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6311 6427 or AL, strict byte 001h ; 0c 01 6312 6428 mov word [bp+018h], ax ; 89 46 18 6313 jmp near 04 8d5h ; e9 42 006429 jmp near 049bfh ; e9 42 00 6314 6430 test al, al ; 84 c0 6315 jne short 04 8a3h ; 75 0c6431 jne short 0498dh ; 75 0c 6316 6432 or bh, 0b0h ; 80 cf b0 6317 6433 mov word [bp+018h], bx ; 89 5e 18 6318 6434 mov byte [bp+018h], al ; 88 46 18 6319 jmp near 04 b41h ; e9 9e 026435 jmp near 04c2bh ; e9 9e 02 6320 6436 movzx dx, byte [bp-008h] ; 0f b6 56 f8 6321 6437 imul dx, dx, strict byte 0001ch ; 6b d2 1c … … 6332 6448 xor al, al ; 30 c0 6333 6449 or ax, dx ; 09 d0 6334 jmp short 04 88dh ; eb c76450 jmp short 04977h ; eb c7 6335 6451 test al, al ; 84 c0 6336 6452 db 00fh, 095h, 0c0h … … 6344 6460 mov dx, strict word 00074h ; ba 74 00 6345 6461 mov ax, strict word 00040h ; b8 40 00 6346 call 01 6c6h ; e8 e2cd6462 call 01757h ; e8 89 cd 6347 6463 and byte [bp+01eh], 0feh ; 80 66 1e fe 6348 6464 lea sp, [bp-004h] ; 8d 66 fc … … 6357 6473 mov al, byte [es:si+025h] ; 26 8a 44 25 6358 6474 test al, al ; 84 c0 6359 je short 049 09h ; 74 066475 je short 049f3h ; 74 06 6360 6476 or bh, 0b1h ; 80 cf b1 6361 jmp near 04 6eeh ; e9 e5 fd6362 je short 04 8d5h ; 74 ca6477 jmp near 047d8h ; e9 e5 fd 6478 je short 049bfh ; 74 ca 6363 6479 mov ax, word [bp+018h] ; 8b 46 18 6364 6480 xor ah, ah ; 30 e4 6365 6481 or ah, 0b1h ; 80 cc b1 6366 jmp near 04 b3eh ; e9 28 026482 jmp near 04c28h ; e9 28 02 6367 6483 mov dx, word [bp+00ch] ; 8b 56 0c 6368 6484 mov cx, word [bp+006h] ; 8b 4e 06 … … 6374 6490 mov word [bp-00eh], ax ; 89 46 f2 6375 6491 cmp ax, strict word 0001ah ; 3d 1a 00 6376 jc near 04 b36h ; 0f 82 04 026377 jc short 04 983h ; 72 4f6492 jc near 04c20h ; 0f 82 04 02 6493 jc short 04a6dh ; 72 4f 6378 6494 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6379 6495 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 6398 6514 ; mov dword [es:di+014h], strict dword 0ffffffffh ; 66 26 c7 45 14 ff ff ff ff 6399 6515 cmp word [bp-00eh], strict byte 0001eh ; 83 7e f2 1e 6400 jc near 04 a5ah ; 0f 82 cf 006516 jc near 04b44h ; 0f 82 cf 00 6401 6517 mov es, [bp-00ah] ; 8e 46 f6 6402 6518 mov word [es:bx], strict word 0001eh ; 26 c7 07 1e 00 … … 6450 6566 xor cl, cl ; 30 c9 6451 6567 xor ch, ch ; 30 ed 6452 jmp short 04 a3dh ; eb 056568 jmp short 04b27h ; eb 05 6453 6569 cmp ch, 00fh ; 80 fd 0f 6454 jnc short 04 a50h ; 73 136570 jnc short 04b3ah ; 73 13 6455 6571 movzx dx, ch ; 0f b6 d5 6456 6572 add dx, 00356h ; 81 c2 56 03 6457 6573 mov ax, word [bp-01ah] ; 8b 46 e6 6458 call 01 6b8h ; e8 6ecc6574 call 01749h ; e8 15 cc 6459 6575 add cl, al ; 00 c1 6460 6576 db 0feh, 0c5h 6461 6577 ; inc ch ; fe c5 6462 jmp short 04 a38h ; eb e86578 jmp short 04b22h ; eb e8 6463 6579 neg cl ; f6 d9 6464 6580 mov es, [bp-00ch] ; 8e 46 f4 6465 6581 mov byte [es:si+00243h], cl ; 26 88 8c 43 02 6466 6582 cmp word [bp-00eh], strict byte 00042h ; 83 7e f2 42 6467 jc near 04 8d5h ; 0f 82 73 fe6583 jc near 049bfh ; 0f 82 73 fe 6468 6584 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6469 6585 cwd ; 99 … … 6483 6599 mov word [es:bx+022h], strict word 00000h ; 26 c7 47 22 00 00 6484 6600 test al, al ; 84 c0 6485 jne short 04 aa3h ; 75 096601 jne short 04b8dh ; 75 09 6486 6602 db 066h, 026h, 0c7h, 047h, 024h, 049h, 053h, 041h, 020h 6487 6603 ; mov dword [es:bx+024h], strict dword 020415349h ; 66 26 c7 47 24 49 53 41 20 … … 6492 6608 ; mov dword [es:bx+02ch], strict dword 020202020h ; 66 26 c7 47 2c 20 20 20 20 6493 6609 test al, al ; 84 c0 6494 jne short 04 acfh ; 75 136610 jne short 04bb9h ; 75 13 6495 6611 mov word [es:bx+030h], dx ; 26 89 57 30 6496 6612 db 066h, 026h, 0c7h, 047h, 032h, 000h, 000h, 000h, 000h … … 6507 6623 xor al, al ; 30 c0 6508 6624 mov AH, strict byte 01eh ; b4 1e 6509 jmp short 04 af7h ; eb 056625 jmp short 04be1h ; eb 05 6510 6626 cmp ah, 040h ; 80 fc 40 6511 jnc short 04b 06h ; 73 0f6627 jnc short 04bf0h ; 73 0f 6512 6628 movzx si, ah ; 0f b6 f4 6513 6629 mov es, [bp-00ah] ; 8e 46 f6 … … 6516 6632 db 0feh, 0c4h 6517 6633 ; inc ah ; fe c4 6518 jmp short 04 af2h ; eb ec6634 jmp short 04bdch ; eb ec 6519 6635 neg al ; f6 d8 6520 6636 mov es, [bp-00ah] ; 8e 46 f6 6521 6637 mov byte [es:bx+041h], al ; 26 88 47 41 6522 jmp near 04 8d5h ; e9 c3 fd6638 jmp near 049bfh ; e9 c3 fd 6523 6639 or bh, 006h ; 80 cf 06 6524 6640 mov word [bp+018h], bx ; 89 5e 18 6525 jmp short 04 b52h ; eb 386641 jmp short 04c3ch ; eb 38 6526 6642 cmp bx, strict byte 00006h ; 83 fb 06 6527 je near 04 8d5h ; 0f 84 b4 fd6643 je near 049bfh ; 0f 84 b4 fd 6528 6644 cmp bx, strict byte 00001h ; 83 fb 01 6529 jc short 04 b36h ; 72 106530 jbe near 04 8d5h ; 0f 86 ab fd6645 jc short 04c20h ; 72 10 6646 jbe near 049bfh ; 0f 86 ab fd 6531 6647 cmp bx, strict byte 00003h ; 83 fb 03 6532 jc short 04 b36h ; 72 076648 jc short 04c20h ; 72 07 6533 6649 cmp bx, strict byte 00004h ; 83 fb 04 6534 jbe near 04 8d5h ; 0f 86 9f fd6650 jbe near 049bfh ; 0f 86 9f fd 6535 6651 mov ax, word [bp+018h] ; 8b 46 18 6536 6652 xor ah, ah ; 30 e4 … … 6542 6658 mov dx, strict word 00074h ; ba 74 00 6543 6659 mov ax, strict word 00040h ; b8 40 00 6544 call 01 6c6h ; e8 74cb6660 call 01757h ; e8 1b cb 6545 6661 or byte [bp+01eh], 001h ; 80 4e 1e 01 6546 jmp near 04 8e8h ; e9 8f fd6547 mov bx, 00d a0h ; bb a00d6662 jmp near 049d2h ; e9 8f fd 6663 mov bx, 00db2h ; bb b2 0d 6548 6664 mov cx, ds ; 8c d9 6549 6665 mov ax, strict word 00004h ; b8 04 00 6550 call 01 999h ; e8 35 ce6666 call 01a2ah ; e8 dc cd 6551 6667 mov ax, word [bp+018h] ; 8b 46 18 6552 6668 shr ax, 008h ; c1 e8 08 6553 6669 push ax ; 50 6554 push 003 dfh ; 68 df036555 push 003 33h ; 68 33036670 push 003f1h ; 68 f1 03 6671 push 00345h ; 68 45 03 6556 6672 push strict byte 00004h ; 6a 04 6557 jmp near 04 746h ; e9 d0 fb6558 print_boot_device_: ; 0xf4 b76LB 0x4b6673 jmp near 04830h ; e9 d0 fb 6674 print_boot_device_: ; 0xf4c60 LB 0x4b 6559 6675 push bp ; 55 6560 6676 mov bp, sp ; 89 e5 6561 6677 push cx ; 51 6562 6678 test al, al ; 84 c0 6563 je short 04 b83h ; 74 056679 je short 04c6dh ; 74 05 6564 6680 mov dx, strict word 00002h ; ba 02 00 6565 jmp short 04 b9dh ; eb 1a6681 jmp short 04c87h ; eb 1a 6566 6682 test dl, dl ; 84 d2 6567 je short 04 b8ch ; 74 056683 je short 04c76h ; 74 05 6568 6684 mov dx, strict word 00003h ; ba 03 00 6569 jmp short 04 b9dh ; eb 116685 jmp short 04c87h ; eb 11 6570 6686 test bl, 080h ; f6 c3 80 6571 jne short 04 b95h ; 75 046687 jne short 04c7fh ; 75 04 6572 6688 xor dh, dh ; 30 f6 6573 jmp short 04 b9dh ; eb 086689 jmp short 04c87h ; eb 08 6574 6690 test bl, 080h ; f6 c3 80 6575 je short 04 bbbh ; 74 216691 je short 04ca5h ; 74 21 6576 6692 mov dx, strict word 00001h ; ba 01 00 6577 mov bx, 00d a0h ; bb a00d6693 mov bx, 00db2h ; bb b2 0d 6578 6694 mov cx, ds ; 8c d9 6579 6695 mov ax, strict word 00004h ; b8 04 00 6580 call 01 999h ; e8 f1cd6696 call 01a2ah ; e8 98 cd 6581 6697 imul dx, dx, strict byte 0000ah ; 6b d2 0a 6582 add dx, 00d c6h ; 81 c2 c60d6698 add dx, 00dd8h ; 81 c2 d8 0d 6583 6699 push dx ; 52 6584 push 004 94h ; 68 94046700 push 004a6h ; 68 a6 04 6585 6701 push strict byte 00004h ; 6a 04 6586 call 01 9dah ; e8 22 ce6702 call 01a6bh ; e8 c9 cd 6587 6703 add sp, strict byte 00006h ; 83 c4 06 6588 6704 lea sp, [bp-002h] ; 8d 66 fe … … 6590 6706 pop bp ; 5d 6591 6707 retn ; c3 6592 print_boot_failure_: ; 0xf4 bc1LB 0x936708 print_boot_failure_: ; 0xf4cab LB 0x93 6593 6709 push bp ; 55 6594 6710 mov bp, sp ; 89 e5 … … 6599 6715 movzx si, ah ; 0f b6 f4 6600 6716 test al, al ; 84 c0 6601 je short 04 beeh ; 74 1b6602 mov bx, 00d a0h ; bb a00d6717 je short 04cd8h ; 74 1b 6718 mov bx, 00db2h ; bb b2 0d 6603 6719 mov cx, ds ; 8c d9 6604 6720 mov ax, strict word 00004h ; b8 04 00 6605 call 01 999h ; e8 bbcd6606 push 00d dah ; 68 da0d6607 push 004 a8h ; 68 a8046721 call 01a2ah ; e8 62 cd 6722 push 00dech ; 68 ec 0d 6723 push 004bah ; 68 ba 04 6608 6724 push strict byte 00004h ; 6a 04 6609 call 01 9dah ; e8 f1cd6725 call 01a6bh ; e8 98 cd 6610 6726 add sp, strict byte 00006h ; 83 c4 06 6611 jmp short 04 c32h ; eb 446727 jmp short 04d1ch ; eb 44 6612 6728 test dl, dl ; 84 d2 6613 je short 04c 02h ; 74 106614 mov bx, 00d a0h ; bb a00d6729 je short 04cech ; 74 10 6730 mov bx, 00db2h ; bb b2 0d 6615 6731 mov cx, ds ; 8c d9 6616 6732 mov ax, strict word 00004h ; b8 04 00 6617 call 01 999h ; e8 9ccd6618 push 00d e4h ; 68 e40d6619 jmp short 04 be1h ; eb df6733 call 01a2ah ; e8 43 cd 6734 push 00df6h ; 68 f6 0d 6735 jmp short 04ccbh ; eb df 6620 6736 test bl, 080h ; f6 c3 80 6621 je short 04 c18h ; 74 116622 mov bx, 00d a0h ; bb a00d6737 je short 04d02h ; 74 11 6738 mov bx, 00db2h ; bb b2 0d 6623 6739 mov cx, ds ; 8c d9 6624 6740 mov ax, strict word 00004h ; b8 04 00 6625 call 01 999h ; e8 87cd6741 call 01a2ah ; e8 2e cd 6626 6742 push si ; 56 6627 push 00d d0h ; 68 d00d6628 jmp short 04 c27h ; eb 0f6629 mov bx, 00d a0h ; bb a00d6743 push 00de2h ; 68 e2 0d 6744 jmp short 04d11h ; eb 0f 6745 mov bx, 00db2h ; bb b2 0d 6630 6746 mov cx, ds ; 8c d9 6631 6747 mov ax, strict word 00004h ; b8 04 00 6632 call 01 999h ; e8 76cd6748 call 01a2ah ; e8 1d cd 6633 6749 push si ; 56 6634 push 00d c6h ; 68 c60d6635 push 004 bdh ; 68 bd046750 push 00dd8h ; 68 d8 0d 6751 push 004cfh ; 68 cf 04 6636 6752 push strict byte 00004h ; 6a 04 6637 call 01 9dah ; e8 abcd6753 call 01a6bh ; e8 52 cd 6638 6754 add sp, strict byte 00008h ; 83 c4 08 6639 6755 cmp byte [bp+004h], 001h ; 80 7e 04 01 6640 jne short 04 c4ch ; 75 146756 jne short 04d36h ; 75 14 6641 6757 test dh, dh ; 84 f6 6642 jne short 04 c41h ; 75 056643 push 004 d5h ; 68 d5046644 jmp short 04 c44h ; eb 036645 push 00 4ffh ; 68 ff 046758 jne short 04d2bh ; 75 05 6759 push 004e7h ; 68 e7 04 6760 jmp short 04d2eh ; eb 03 6761 push 00511h ; 68 11 05 6646 6762 push strict byte 00007h ; 6a 07 6647 call 01 9dah ; e8 91cd6763 call 01a6bh ; e8 38 cd 6648 6764 add sp, strict byte 00004h ; 83 c4 04 6649 6765 lea sp, [bp-002h] ; 8d 66 fe … … 6651 6767 pop bp ; 5d 6652 6768 retn 00002h ; c2 02 00 6653 print_cdromboot_failure_: ; 0xf4 c54LB 0x276769 print_cdromboot_failure_: ; 0xf4d3e LB 0x27 6654 6770 push bp ; 55 6655 6771 mov bp, sp ; 89 e5 … … 6658 6774 push dx ; 52 6659 6775 mov dx, ax ; 89 c2 6660 mov bx, 00d a0h ; bb a00d6776 mov bx, 00db2h ; bb b2 0d 6661 6777 mov cx, ds ; 8c d9 6662 6778 mov ax, strict word 00004h ; b8 04 00 6663 call 01 999h ; e8 32 cd6779 call 01a2ah ; e8 d9 cc 6664 6780 push dx ; 52 6665 push 005 34h ; 68 34056781 push 00546h ; 68 46 05 6666 6782 push strict byte 00004h ; 6a 04 6667 call 01 9dah ; e8 6acd6783 call 01a6bh ; e8 11 cd 6668 6784 add sp, strict byte 00006h ; 83 c4 06 6669 6785 lea sp, [bp-006h] ; 8d 66 fa … … 6673 6789 pop bp ; 5d 6674 6790 retn ; c3 6675 _int19_function: ; 0xf4 c7bLB 0x2566791 _int19_function: ; 0xf4d65 LB 0x256 6676 6792 push bp ; 55 6677 6793 mov bp, sp ; 89 e5 … … 6681 6797 mov dx, strict word 0000eh ; ba 0e 00 6682 6798 mov ax, strict word 00040h ; b8 40 00 6683 call 01 6d4h ; e8 48 ca6799 call 01765h ; e8 ef c9 6684 6800 mov bx, ax ; 89 c3 6685 6801 mov word [bp-00eh], ax ; 89 46 f2 6686 6802 mov byte [bp-008h], 000h ; c6 46 f8 00 6687 6803 mov ax, strict word 0003dh ; b8 3d 00 6688 call 017 14h ; e8 79ca6804 call 017a5h ; e8 20 ca 6689 6805 movzx si, al ; 0f b6 f0 6690 6806 mov ax, strict word 00038h ; b8 38 00 6691 call 017 14h ; e8 70ca6807 call 017a5h ; e8 17 ca 6692 6808 and AL, strict byte 0f0h ; 24 f0 6693 6809 xor ah, ah ; 30 e4 … … 6695 6811 or si, ax ; 09 c6 6696 6812 mov ax, strict word 0003ch ; b8 3c 00 6697 call 017 14h ; e8 61ca6813 call 017a5h ; e8 08 ca 6698 6814 and AL, strict byte 00fh ; 24 0f 6699 6815 xor ah, ah ; 30 e4 … … 6702 6818 mov dx, 0037dh ; ba 7d 03 6703 6819 mov ax, bx ; 89 d8 6704 call 01 6b8h ; e8 f4c96820 call 01749h ; e8 9b c9 6705 6821 test al, al ; 84 c0 6706 je short 04 cd3h ; 74 0b6822 je short 04dbdh ; 74 0b 6707 6823 mov dx, 0037dh ; ba 7d 03 6708 6824 mov ax, bx ; 89 d8 6709 call 01 6b8h ; e8 e8c96825 call 01749h ; e8 8f c9 6710 6826 movzx si, al ; 0f b6 f0 6711 6827 cmp byte [bp+004h], 001h ; 80 7e 04 01 6712 jne short 04 ce9h ; 75 106828 jne short 04dd3h ; 75 10 6713 6829 mov ax, strict word 0003ch ; b8 3c 00 6714 call 017 14h ; e8 35 ca6830 call 017a5h ; e8 dc c9 6715 6831 and AL, strict byte 0f0h ; 24 f0 6716 6832 xor ah, ah ; 30 e4 6717 6833 sar ax, 004h ; c1 f8 04 6718 call 07 d55h ; e8 6c 306834 call 07e3fh ; e8 6c 30 6719 6835 cmp byte [bp+004h], 002h ; 80 7e 04 02 6720 jne short 04 cf2h ; 75 036836 jne short 04ddch ; 75 03 6721 6837 shr si, 004h ; c1 ee 04 6722 6838 cmp byte [bp+004h], 003h ; 80 7e 04 03 6723 jne short 04 cfbh ; 75 036839 jne short 04de5h ; 75 03 6724 6840 shr si, 008h ; c1 ee 08 6725 6841 cmp byte [bp+004h], 004h ; 80 7e 04 04 6726 jne short 04d 04h ; 75 036842 jne short 04deeh ; 75 03 6727 6843 shr si, 00ch ; c1 ee 0c 6728 6844 cmp si, strict byte 00010h ; 83 fe 10 6729 jnc short 04d 0dh ; 73 046845 jnc short 04df7h ; 73 04 6730 6846 mov byte [bp-008h], 001h ; c6 46 f8 01 6731 6847 xor al, al ; 30 c0 … … 6733 6849 mov byte [bp-00ah], al ; 88 46 f6 6734 6850 mov byte [bp-00ch], al ; 88 46 f4 6735 mov bx, 00d a0h ; bb a00d6851 mov bx, 00db2h ; bb b2 0d 6736 6852 mov cx, ds ; 8c d9 6737 6853 mov ax, strict word 00004h ; b8 04 00 6738 call 01 999h ; e8 76cc6854 call 01a2ah ; e8 1d cc 6739 6855 push si ; 56 6740 6856 movzx ax, byte [bp+004h] ; 0f b6 46 04 6741 6857 push ax ; 50 6742 push 005 54h ; 68 54056858 push 00566h ; 68 66 05 6743 6859 push strict byte 00004h ; 6a 04 6744 call 01 9dah ; e8 a9cc6860 call 01a6bh ; e8 50 cc 6745 6861 add sp, strict byte 00008h ; 83 c4 08 6746 6862 and si, strict byte 0000fh ; 83 e6 0f 6747 6863 cmp si, strict byte 00002h ; 83 fe 02 6748 jc short 04 d4ah ; 72 0e6749 jbe short 04 d59h ; 76 1b6864 jc short 04e34h ; 72 0e 6865 jbe short 04e43h ; 76 1b 6750 6866 cmp si, strict byte 00004h ; 83 fe 04 6751 je short 04 d77h ; 74 346867 je short 04e61h ; 74 34 6752 6868 cmp si, strict byte 00003h ; 83 fe 03 6753 je short 04 d6dh ; 74 256754 jmp short 04 da4h ; eb 5a6869 je short 04e57h ; 74 25 6870 jmp short 04e8eh ; eb 5a 6755 6871 cmp si, strict byte 00001h ; 83 fe 01 6756 jne short 04 da4h ; 75 556872 jne short 04e8eh ; 75 55 6757 6873 xor al, al ; 30 c0 6758 6874 mov byte [bp-006h], al ; 88 46 fa 6759 6875 mov byte [bp-00ah], al ; 88 46 f6 6760 jmp short 04 dbch ; eb 636876 jmp short 04ea6h ; eb 63 6761 6877 mov dx, 0037ch ; ba 7c 03 6762 6878 mov ax, word [bp-00eh] ; 8b 46 f2 6763 call 01 6b8h ; e8 56 c96879 call 01749h ; e8 fd c8 6764 6880 add AL, strict byte 080h ; 04 80 6765 6881 mov byte [bp-006h], al ; 88 46 fa 6766 6882 mov byte [bp-00ah], 000h ; c6 46 f6 00 6767 jmp short 04 dbch ; eb 4f6883 jmp short 04ea6h ; eb 4f 6768 6884 mov byte [bp-006h], 000h ; c6 46 fa 00 6769 6885 mov byte [bp-00ah], 001h ; c6 46 f6 01 6770 jmp short 04 d81h ; eb 0a6886 jmp short 04e6bh ; eb 0a 6771 6887 mov byte [bp-00ch], 001h ; c6 46 f4 01 6772 6888 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6773 je short 04 dbch ; 74 3b6774 call 03 dcah ; e8 46f06889 je short 04ea6h ; 74 3b 6890 call 03eb3h ; e8 45 f0 6775 6891 mov bx, ax ; 89 c3 6776 6892 test AL, strict byte 0ffh ; a8 ff 6777 je short 04 dabh ; 74 216778 call 04 c54h ; e8 c7 fe6893 je short 04e95h ; 74 21 6894 call 04d3eh ; e8 c7 fe 6779 6895 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6780 6896 push ax ; 50 … … 6783 6899 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6784 6900 mov cx, strict word 00001h ; b9 01 00 6785 call 04 bc1h ; e8 1d fe6901 call 04cabh ; e8 1d fe 6786 6902 xor ax, ax ; 31 c0 6787 6903 xor dx, dx ; 31 d2 6788 jmp near 04 ecah ; e9 1f 016904 jmp near 04fb4h ; e9 1f 01 6789 6905 mov dx, 00372h ; ba 72 03 6790 6906 mov ax, word [bp-00eh] ; 8b 46 f2 6791 call 01 6d4h ; e8 20 c96907 call 01765h ; e8 c7 c8 6792 6908 mov di, ax ; 89 c7 6793 6909 shr bx, 008h ; c1 eb 08 6794 6910 mov byte [bp-006h], bl ; 88 5e fa 6795 6911 cmp byte [bp-00ch], 001h ; 80 7e f4 01 6796 jne near 04 e38h ; 0f 85 74 006912 jne near 04f22h ; 0f 85 74 00 6797 6913 xor si, si ; 31 f6 6798 6914 mov ax, 0e200h ; b8 00 e2 6799 6915 mov es, ax ; 8e c0 6800 6916 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 6801 jne short 04 d8dh ; 75 bb6917 jne short 04e77h ; 75 bb 6802 6918 mov cx, ax ; 89 c1 6803 6919 mov si, word [es:si+01ah] ; 26 8b 74 1a 6804 6920 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 6805 jne short 04 d8dh ; 75 ad6921 jne short 04e77h ; 75 ad 6806 6922 cmp word [es:si], 05024h ; 26 81 3c 24 50 6807 jne short 04 d8dh ; 75 a66923 jne short 04e77h ; 75 a6 6808 6924 mov di, word [es:si+00eh] ; 26 8b 7c 0e 6809 6925 mov dx, word [es:di] ; 26 8b 15 6810 6926 mov ax, word [es:di+002h] ; 26 8b 45 02 6811 6927 cmp ax, 06568h ; 3d 68 65 6812 jne short 04 e16h ; 75 1f6928 jne short 04f00h ; 75 1f 6813 6929 cmp dx, 07445h ; 81 fa 45 74 6814 jne short 04 e16h ; 75 196930 jne short 04f00h ; 75 19 6815 6931 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6816 6932 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6817 6933 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6818 call 04 b76h ; e8 6a fd6934 call 04c60h ; e8 6a fd 6819 6935 mov word [bp-012h], strict word 00006h ; c7 46 ee 06 00 6820 6936 mov word [bp-010h], cx ; 89 4e f0 6821 jmp short 04 e32h ; eb 1c6937 jmp short 04f1ch ; eb 1c 6822 6938 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6823 6939 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6824 6940 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6825 call 04 b76h ; e8 51 fd6941 call 04c60h ; e8 51 fd 6826 6942 sti ; fb 6827 6943 mov word [bp-010h], cx ; 89 4e f0 … … 6830 6946 mov word [bp-012h], ax ; 89 46 ee 6831 6947 call far [bp-012h] ; ff 5e ee 6832 jmp near 04 d8dh ; e9 55 ff6948 jmp near 04e77h ; e9 55 ff 6833 6949 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6834 jne short 04 e64h ; 75 266950 jne short 04f4eh ; 75 26 6835 6951 cmp byte [bp-00ch], 000h ; 80 7e f4 00 6836 jne short 04 e64h ; 75 206952 jne short 04f4eh ; 75 20 6837 6953 mov di, 007c0h ; bf c0 07 6838 6954 mov es, di ; 8e c7 … … 6847 6963 sbb ax, strict byte 00000h ; 83 d8 00 6848 6964 test ax, ax ; 85 c0 6849 jne near 04 d8dh ; 0f 85 29 ff6965 jne near 04e77h ; 0f 85 29 ff 6850 6966 cmp byte [bp-006h], 000h ; 80 7e fa 00 6851 6967 db 00fh, 094h, 0c1h 6852 6968 ; sete cl ; 0f 94 c1 6853 6969 cmp byte [bp-00ah], 000h ; 80 7e f6 00 6854 je short 04 e73h ; 74 026970 je short 04f5dh ; 74 02 6855 6971 mov CL, strict byte 001h ; b1 01 6856 6972 xor dx, dx ; 31 d2 6857 6973 mov ax, di ; 89 f8 6858 call 01 6d4h ; e8 5ac86974 call 01765h ; e8 01 c8 6859 6975 mov bx, ax ; 89 c3 6860 6976 mov dx, strict word 00002h ; ba 02 00 6861 6977 mov ax, di ; 89 f8 6862 call 01 6d4h ; e8 50 c86978 call 01765h ; e8 f7 c7 6863 6979 cmp bx, ax ; 39 c3 6864 je short 04 e99h ; 74 116980 je short 04f83h ; 74 11 6865 6981 test cl, cl ; 84 c9 6866 jne short 04 eafh ; 75 236982 jne short 04f99h ; 75 23 6867 6983 mov dx, 001feh ; ba fe 01 6868 6984 mov ax, di ; 89 f8 6869 call 01 6d4h ; e8 40 c86985 call 01765h ; e8 e7 c7 6870 6986 cmp ax, 0aa55h ; 3d 55 aa 6871 je short 04 eafh ; 74 166987 je short 04f99h ; 74 16 6872 6988 movzx ax, byte [bp-008h] ; 0f b6 46 f8 6873 6989 push ax ; 50 … … 6876 6992 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6877 6993 xor cx, cx ; 31 c9 6878 jmp near 04 da1h ; e9 f2 fe6994 jmp near 04e8bh ; e9 f2 fe 6879 6995 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6880 6996 movzx dx, byte [bp-00ch] ; 0f b6 56 f4 6881 6997 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 6882 call 04 b76h ; e8 b8 fc6998 call 04c60h ; e8 b8 fc 6883 6999 movzx bx, byte [bp-006h] ; 0f b6 5e fa 6884 7000 xor dx, dx ; 31 d2 … … 6891 7007 pop bp ; 5d 6892 7008 retn ; c3 6893 keyboard_panic_: ; 0xf4 ed1LB 0x137009 keyboard_panic_: ; 0xf4fbb LB 0x13 6894 7010 push bp ; 55 6895 7011 mov bp, sp ; 89 e5 6896 7012 push ax ; 50 6897 push 005 74h ; 68 74057013 push 00586h ; 68 86 05 6898 7014 push strict byte 00007h ; 6a 07 6899 call 01 9dah ; e8 fdca7015 call 01a6bh ; e8 a4 ca 6900 7016 add sp, strict byte 00006h ; 83 c4 06 6901 7017 mov sp, bp ; 89 ec 6902 7018 pop bp ; 5d 6903 7019 retn ; c3 6904 _keyboard_init: ; 0xf4 ee4LB 0x26a7020 _keyboard_init: ; 0xf4fce LB 0x26a 6905 7021 push bp ; 55 6906 7022 mov bp, sp ; 89 e5 … … 6914 7030 ; sub ah, ah ; 2a e4 6915 7031 test AL, strict byte 002h ; a8 02 6916 je short 04f 07h ; 74 0d7032 je short 04ff1h ; 74 0d 6917 7033 dec bx ; 4b 6918 7034 test bx, bx ; 85 db 6919 jbe short 04f 07h ; 76 087035 jbe short 04ff1h ; 76 08 6920 7036 xor al, al ; 30 c0 6921 7037 mov dx, 00080h ; ba 80 00 6922 7038 out DX, AL ; ee 6923 jmp short 04 ef0h ; eb e97039 jmp short 04fdah ; eb e9 6924 7040 test bx, bx ; 85 db 6925 jne short 04f 10h ; 75 057041 jne short 04ffah ; 75 05 6926 7042 xor ax, ax ; 31 c0 6927 call 04 ed1h ; e8 c1 ff7043 call 04fbbh ; e8 c1 ff 6928 7044 mov bx, strict word 0ffffh ; bb ff ff 6929 7045 mov dx, strict word 00064h ; ba 64 00 … … 6932 7048 ; sub ah, ah ; 2a e4 6933 7049 test AL, strict byte 001h ; a8 01 6934 jne short 0 4f2ah ; 75 0d7050 jne short 05014h ; 75 0d 6935 7051 dec bx ; 4b 6936 7052 test bx, bx ; 85 db 6937 jbe short 0 4f2ah ; 76 087053 jbe short 05014h ; 76 08 6938 7054 mov AL, strict byte 001h ; b0 01 6939 7055 mov dx, 00080h ; ba 80 00 6940 7056 out DX, AL ; ee 6941 jmp short 04f 13h ; eb e97057 jmp short 04ffdh ; eb e9 6942 7058 test bx, bx ; 85 db 6943 jne short 0 4f34h ; 75 067059 jne short 0501eh ; 75 06 6944 7060 mov ax, strict word 00001h ; b8 01 00 6945 call 04 ed1h ; e8 9d ff7061 call 04fbbh ; e8 9d ff 6946 7062 mov dx, strict word 00060h ; ba 60 00 6947 7063 in AL, DX ; ec … … 6949 7065 ; sub ah, ah ; 2a e4 6950 7066 cmp ax, strict word 00055h ; 3d 55 00 6951 je short 0 4f45h ; 74 067067 je short 0502fh ; 74 06 6952 7068 mov ax, 003dfh ; b8 df 03 6953 call 04 ed1h ; e8 8c ff7069 call 04fbbh ; e8 8c ff 6954 7070 mov AL, strict byte 0abh ; b0 ab 6955 7071 mov dx, strict word 00064h ; ba 64 00 … … 6961 7077 ; sub ah, ah ; 2a e4 6962 7078 test AL, strict byte 002h ; a8 02 6963 je short 0 4f65h ; 74 0d7079 je short 0504fh ; 74 0d 6964 7080 dec bx ; 4b 6965 7081 test bx, bx ; 85 db 6966 jbe short 0 4f65h ; 76 087082 jbe short 0504fh ; 76 08 6967 7083 mov AL, strict byte 010h ; b0 10 6968 7084 mov dx, 00080h ; ba 80 00 6969 7085 out DX, AL ; ee 6970 jmp short 0 4f4eh ; eb e97086 jmp short 05038h ; eb e9 6971 7087 test bx, bx ; 85 db 6972 jne short 0 4f6fh ; 75 067088 jne short 05059h ; 75 06 6973 7089 mov ax, strict word 0000ah ; b8 0a 00 6974 call 04 ed1h ; e8 62 ff7090 call 04fbbh ; e8 62 ff 6975 7091 mov bx, strict word 0ffffh ; bb ff ff 6976 7092 mov dx, strict word 00064h ; ba 64 00 … … 6979 7095 ; sub ah, ah ; 2a e4 6980 7096 test AL, strict byte 001h ; a8 01 6981 jne short 0 4f89h ; 75 0d7097 jne short 05073h ; 75 0d 6982 7098 dec bx ; 4b 6983 7099 test bx, bx ; 85 db 6984 jbe short 0 4f89h ; 76 087100 jbe short 05073h ; 76 08 6985 7101 mov AL, strict byte 011h ; b0 11 6986 7102 mov dx, 00080h ; ba 80 00 6987 7103 out DX, AL ; ee 6988 jmp short 0 4f72h ; eb e97104 jmp short 0505ch ; eb e9 6989 7105 test bx, bx ; 85 db 6990 jne short 0 4f93h ; 75 067106 jne short 0507dh ; 75 06 6991 7107 mov ax, strict word 0000bh ; b8 0b 00 6992 call 04 ed1h ; e8 3e ff7108 call 04fbbh ; e8 3e ff 6993 7109 mov dx, strict word 00060h ; ba 60 00 6994 7110 in AL, DX ; ec … … 6996 7112 ; sub ah, ah ; 2a e4 6997 7113 test ax, ax ; 85 c0 6998 je short 0 4fa3h ; 74 067114 je short 0508dh ; 74 06 6999 7115 mov ax, 003e0h ; b8 e0 03 7000 call 04 ed1h ; e8 2e ff7116 call 04fbbh ; e8 2e ff 7001 7117 mov AL, strict byte 0ffh ; b0 ff 7002 7118 mov dx, strict word 00060h ; ba 60 00 … … 7008 7124 ; sub ah, ah ; 2a e4 7009 7125 test AL, strict byte 002h ; a8 02 7010 je short 0 4fc3h ; 74 0d7126 je short 050adh ; 74 0d 7011 7127 dec bx ; 4b 7012 7128 test bx, bx ; 85 db 7013 jbe short 0 4fc3h ; 76 087129 jbe short 050adh ; 76 08 7014 7130 mov AL, strict byte 020h ; b0 20 7015 7131 mov dx, 00080h ; ba 80 00 7016 7132 out DX, AL ; ee 7017 jmp short 0 4fach ; eb e97133 jmp short 05096h ; eb e9 7018 7134 test bx, bx ; 85 db 7019 jne short 0 4fcdh ; 75 067135 jne short 050b7h ; 75 06 7020 7136 mov ax, strict word 00014h ; b8 14 00 7021 call 04 ed1h ; e8 04 ff7137 call 04fbbh ; e8 04 ff 7022 7138 mov bx, strict word 0ffffh ; bb ff ff 7023 7139 mov dx, strict word 00064h ; ba 64 00 … … 7026 7142 ; sub ah, ah ; 2a e4 7027 7143 test AL, strict byte 001h ; a8 01 7028 jne short 0 4fe7h ; 75 0d7144 jne short 050d1h ; 75 0d 7029 7145 dec bx ; 4b 7030 7146 test bx, bx ; 85 db 7031 jbe short 0 4fe7h ; 76 087147 jbe short 050d1h ; 76 08 7032 7148 mov AL, strict byte 021h ; b0 21 7033 7149 mov dx, 00080h ; ba 80 00 7034 7150 out DX, AL ; ee 7035 jmp short 0 4fd0h ; eb e97151 jmp short 050bah ; eb e9 7036 7152 test bx, bx ; 85 db 7037 jne short 0 4ff1h ; 75 067153 jne short 050dbh ; 75 06 7038 7154 mov ax, strict word 00015h ; b8 15 00 7039 call 04 ed1h ; e8 e0 fe7155 call 04fbbh ; e8 e0 fe 7040 7156 mov dx, strict word 00060h ; ba 60 00 7041 7157 in AL, DX ; ec … … 7043 7159 ; sub ah, ah ; 2a e4 7044 7160 cmp ax, 000fah ; 3d fa 00 7045 je short 050 02h ; 74 067161 je short 050ech ; 74 06 7046 7162 mov ax, 003e1h ; b8 e1 03 7047 call 04 ed1h ; e8 cf fe7163 call 04fbbh ; e8 cf fe 7048 7164 mov dx, strict word 00064h ; ba 64 00 7049 7165 in AL, DX ; ec … … 7051 7167 ; sub ah, ah ; 2a e4 7052 7168 test AL, strict byte 001h ; a8 01 7053 jne short 050 14h ; 75 087169 jne short 050feh ; 75 08 7054 7170 mov AL, strict byte 031h ; b0 31 7055 7171 mov dx, 00080h ; ba 80 00 7056 7172 out DX, AL ; ee 7057 jmp short 050 02h ; eb ee7173 jmp short 050ech ; eb ee 7058 7174 mov dx, strict word 00060h ; ba 60 00 7059 7175 in AL, DX ; ec … … 7061 7177 ; sub ah, ah ; 2a e4 7062 7178 cmp ax, 000aah ; 3d aa 00 7063 je short 05 02dh ; 74 0e7179 je short 05117h ; 74 0e 7064 7180 in AL, DX ; ec 7065 7181 db 02ah, 0e4h 7066 7182 ; sub ah, ah ; 2a e4 7067 7183 cmp ax, 000aah ; 3d aa 00 7068 je short 05 02dh ; 74 067184 je short 05117h ; 74 06 7069 7185 mov ax, 003e2h ; b8 e2 03 7070 call 04 ed1h ; e8 a4 fe7186 call 04fbbh ; e8 a4 fe 7071 7187 mov AL, strict byte 0f5h ; b0 f5 7072 7188 mov dx, strict word 00060h ; ba 60 00 … … 7078 7194 ; sub ah, ah ; 2a e4 7079 7195 test AL, strict byte 002h ; a8 02 7080 je short 05 04dh ; 74 0d7196 je short 05137h ; 74 0d 7081 7197 dec bx ; 4b 7082 7198 test bx, bx ; 85 db 7083 jbe short 05 04dh ; 76 087199 jbe short 05137h ; 76 08 7084 7200 mov AL, strict byte 040h ; b0 40 7085 7201 mov dx, 00080h ; ba 80 00 7086 7202 out DX, AL ; ee 7087 jmp short 05 036h ; eb e97203 jmp short 05120h ; eb e9 7088 7204 test bx, bx ; 85 db 7089 jne short 05 057h ; 75 067205 jne short 05141h ; 75 06 7090 7206 mov ax, strict word 00028h ; b8 28 00 7091 call 04 ed1h ; e8 7a fe7207 call 04fbbh ; e8 7a fe 7092 7208 mov bx, strict word 0ffffh ; bb ff ff 7093 7209 mov dx, strict word 00064h ; ba 64 00 … … 7096 7212 ; sub ah, ah ; 2a e4 7097 7213 test AL, strict byte 001h ; a8 01 7098 jne short 05 071h ; 75 0d7214 jne short 0515bh ; 75 0d 7099 7215 dec bx ; 4b 7100 7216 test bx, bx ; 85 db 7101 jbe short 05 071h ; 76 087217 jbe short 0515bh ; 76 08 7102 7218 mov AL, strict byte 041h ; b0 41 7103 7219 mov dx, 00080h ; ba 80 00 7104 7220 out DX, AL ; ee 7105 jmp short 05 05ah ; eb e97221 jmp short 05144h ; eb e9 7106 7222 test bx, bx ; 85 db 7107 jne short 05 07bh ; 75 067223 jne short 05165h ; 75 06 7108 7224 mov ax, strict word 00029h ; b8 29 00 7109 call 04 ed1h ; e8 56 fe7225 call 04fbbh ; e8 56 fe 7110 7226 mov dx, strict word 00060h ; ba 60 00 7111 7227 in AL, DX ; ec … … 7113 7229 ; sub ah, ah ; 2a e4 7114 7230 cmp ax, 000fah ; 3d fa 00 7115 je short 05 08ch ; 74 067231 je short 05176h ; 74 06 7116 7232 mov ax, 003e3h ; b8 e3 03 7117 call 04 ed1h ; e8 45 fe7233 call 04fbbh ; e8 45 fe 7118 7234 mov AL, strict byte 060h ; b0 60 7119 7235 mov dx, strict word 00064h ; ba 64 00 … … 7125 7241 ; sub ah, ah ; 2a e4 7126 7242 test AL, strict byte 002h ; a8 02 7127 je short 05 0ach ; 74 0d7243 je short 05196h ; 74 0d 7128 7244 dec bx ; 4b 7129 7245 test bx, bx ; 85 db 7130 jbe short 05 0ach ; 76 087246 jbe short 05196h ; 76 08 7131 7247 mov AL, strict byte 050h ; b0 50 7132 7248 mov dx, 00080h ; ba 80 00 7133 7249 out DX, AL ; ee 7134 jmp short 05 095h ; eb e97250 jmp short 0517fh ; eb e9 7135 7251 test bx, bx ; 85 db 7136 jne short 05 0b6h ; 75 067252 jne short 051a0h ; 75 06 7137 7253 mov ax, strict word 00032h ; b8 32 00 7138 call 04 ed1h ; e8 1b fe7254 call 04fbbh ; e8 1b fe 7139 7255 mov AL, strict byte 065h ; b0 65 7140 7256 mov dx, strict word 00060h ; ba 60 00 … … 7146 7262 ; sub ah, ah ; 2a e4 7147 7263 test AL, strict byte 002h ; a8 02 7148 je short 05 0d6h ; 74 0d7264 je short 051c0h ; 74 0d 7149 7265 dec bx ; 4b 7150 7266 test bx, bx ; 85 db 7151 jbe short 05 0d6h ; 76 087267 jbe short 051c0h ; 76 08 7152 7268 mov AL, strict byte 060h ; b0 60 7153 7269 mov dx, 00080h ; ba 80 00 7154 7270 out DX, AL ; ee 7155 jmp short 05 0bfh ; eb e97271 jmp short 051a9h ; eb e9 7156 7272 test bx, bx ; 85 db 7157 jne short 05 0e0h ; 75 067273 jne short 051cah ; 75 06 7158 7274 mov ax, strict word 0003ch ; b8 3c 00 7159 call 04 ed1h ; e8 f1 fd7275 call 04fbbh ; e8 f1 fd 7160 7276 mov AL, strict byte 0f4h ; b0 f4 7161 7277 mov dx, strict word 00060h ; ba 60 00 … … 7167 7283 ; sub ah, ah ; 2a e4 7168 7284 test AL, strict byte 002h ; a8 02 7169 je short 051 00h ; 74 0d7285 je short 051eah ; 74 0d 7170 7286 dec bx ; 4b 7171 7287 test bx, bx ; 85 db 7172 jbe short 051 00h ; 76 087288 jbe short 051eah ; 76 08 7173 7289 mov AL, strict byte 070h ; b0 70 7174 7290 mov dx, 00080h ; ba 80 00 7175 7291 out DX, AL ; ee 7176 jmp short 05 0e9h ; eb e97292 jmp short 051d3h ; eb e9 7177 7293 test bx, bx ; 85 db 7178 jne short 051 0ah ; 75 067294 jne short 051f4h ; 75 06 7179 7295 mov ax, strict word 00046h ; b8 46 00 7180 call 04 ed1h ; e8 c7 fd7296 call 04fbbh ; e8 c7 fd 7181 7297 mov bx, strict word 0ffffh ; bb ff ff 7182 7298 mov dx, strict word 00064h ; ba 64 00 … … 7185 7301 ; sub ah, ah ; 2a e4 7186 7302 test AL, strict byte 001h ; a8 01 7187 jne short 05 124h ; 75 0d7303 jne short 0520eh ; 75 0d 7188 7304 dec bx ; 4b 7189 7305 test bx, bx ; 85 db 7190 jbe short 05 124h ; 76 087306 jbe short 0520eh ; 76 08 7191 7307 mov AL, strict byte 071h ; b0 71 7192 7308 mov dx, 00080h ; ba 80 00 7193 7309 out DX, AL ; ee 7194 jmp short 051 0dh ; eb e97310 jmp short 051f7h ; eb e9 7195 7311 test bx, bx ; 85 db 7196 jne short 05 12eh ; 75 067312 jne short 05218h ; 75 06 7197 7313 mov ax, strict word 00046h ; b8 46 00 7198 call 04 ed1h ; e8 a3 fd7314 call 04fbbh ; e8 a3 fd 7199 7315 mov dx, strict word 00060h ; ba 60 00 7200 7316 in AL, DX ; ec … … 7202 7318 ; sub ah, ah ; 2a e4 7203 7319 cmp ax, 000fah ; 3d fa 00 7204 je short 05 13fh ; 74 067320 je short 05229h ; 74 06 7205 7321 mov ax, 003e4h ; b8 e4 03 7206 call 04 ed1h ; e8 92 fd7322 call 04fbbh ; e8 92 fd 7207 7323 mov AL, strict byte 0a8h ; b0 a8 7208 7324 mov dx, strict word 00064h ; ba 64 00 7209 7325 out DX, AL ; ee 7210 7326 xor ax, ax ; 31 c0 7211 call 06 596h ; e8 4c 147327 call 06680h ; e8 4c 14 7212 7328 mov sp, bp ; 89 ec 7213 7329 pop bp ; 5d 7214 7330 retn ; c3 7215 enqueue_key_: ; 0xf5 14eLB 0x997331 enqueue_key_: ; 0xf5238 LB 0x99 7216 7332 push bp ; 55 7217 7333 mov bp, sp ; 89 e5 … … 7225 7341 mov dx, strict word 0001ah ; ba 1a 00 7226 7342 mov ax, strict word 00040h ; b8 40 00 7227 call 01 6d4h ; e8 70c57343 call 01765h ; e8 17 c5 7228 7344 mov di, ax ; 89 c7 7229 7345 mov dx, strict word 0001ch ; ba 1c 00 7230 7346 mov ax, strict word 00040h ; b8 40 00 7231 call 01 6d4h ; e8 65c57347 call 01765h ; e8 0c c5 7232 7348 mov si, ax ; 89 c6 7233 7349 lea cx, [si+002h] ; 8d 4c 02 7234 7350 cmp cx, strict byte 0003eh ; 83 f9 3e 7235 jc short 05 17ch ; 72 037351 jc short 05266h ; 72 03 7236 7352 mov cx, strict word 0001eh ; b9 1e 00 7237 7353 cmp cx, di ; 39 f9 7238 jne short 05 184h ; 75 047354 jne short 0526eh ; 75 04 7239 7355 xor ax, ax ; 31 c0 7240 jmp short 05 1a9h ; eb 257356 jmp short 05293h ; eb 25 7241 7357 xor bh, bh ; 30 ff 7242 7358 mov dx, si ; 89 f2 7243 7359 mov ax, strict word 00040h ; b8 40 00 7244 call 01 6c6h ; e8 38 c57360 call 01757h ; e8 df c4 7245 7361 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7246 7362 lea dx, [si+001h] ; 8d 54 01 7247 7363 mov ax, strict word 00040h ; b8 40 00 7248 call 01 6c6h ; e8 2b c57364 call 01757h ; e8 d2 c4 7249 7365 mov bx, cx ; 89 cb 7250 7366 mov dx, strict word 0001ch ; ba 1c 00 7251 7367 mov ax, strict word 00040h ; b8 40 00 7252 call 01 6e2h ; e8 3c c57368 call 01773h ; e8 e3 c4 7253 7369 mov ax, strict word 00001h ; b8 01 00 7254 7370 lea sp, [bp-008h] ; 8d 66 f8 … … 7260 7376 retn ; c3 7261 7377 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7262 db 01dh, 0 0fh, 055h, 0d8h, 052h, 080h, 052h, 080h, 052h, 061h, 053h, 056h, 052h, 0dfh, 053h, 04dh7263 db 05 4h, 0f5h, 054h, 0d1h, 054h, 01ch, 053h, 080h, 052h, 080h, 052h, 0a0h, 053h, 072h, 052h, 02eh7264 db 05 4h, 0b2h, 054h, 0eeh, 054h7265 _int09_function: ; 0xf5 1e7LB 0x4747378 db 01dh, 0f9h, 055h, 0c2h, 053h, 06ah, 053h, 06ah, 053h, 04bh, 054h, 040h, 053h, 0c9h, 054h, 037h 7379 db 055h, 0dfh, 055h, 0bbh, 055h, 006h, 054h, 06ah, 053h, 06ah, 053h, 08ah, 054h, 05ch, 053h, 018h 7380 db 055h, 09ch, 055h, 0d8h, 055h 7381 _int09_function: ; 0xf52d1 LB 0x474 7266 7382 push bp ; 55 7267 7383 mov bp, sp ; 89 e5 … … 7271 7387 mov byte [bp-00ch], al ; 88 46 f4 7272 7388 test al, al ; 84 c0 7273 jne short 052 11h ; 75 197274 mov bx, 00d a0h ; bb a00d7389 jne short 052fbh ; 75 19 7390 mov bx, 00db2h ; bb b2 0d 7275 7391 mov cx, ds ; 8c d9 7276 7392 mov ax, strict word 00004h ; b8 04 00 7277 call 01 999h ; e8 96c77278 push 005 87h ; 68 87057393 call 01a2ah ; e8 3d c7 7394 push 00599h ; 68 99 05 7279 7395 push strict byte 00004h ; 6a 04 7280 call 01 9dah ; e8 cfc77396 call 01a6bh ; e8 76 c7 7281 7397 add sp, strict byte 00004h ; 83 c4 04 7282 jmp near 05 2d2h ; e9 c1 007398 jmp near 053bch ; e9 c1 00 7283 7399 mov dx, strict word 00018h ; ba 18 00 7284 7400 mov ax, strict word 00040h ; b8 40 00 7285 call 01 6b8h ; e8 9ec47401 call 01749h ; e8 45 c4 7286 7402 mov byte [bp-006h], al ; 88 46 fa 7287 7403 mov byte [bp-00ah], al ; 88 46 f6 7288 7404 mov dx, 00096h ; ba 96 00 7289 7405 mov ax, strict word 00040h ; b8 40 00 7290 call 01 6b8h ; e8 8fc47406 call 01749h ; e8 36 c4 7291 7407 mov byte [bp-00eh], al ; 88 46 f2 7292 7408 mov byte [bp-004h], al ; 88 46 fc 7293 7409 mov dx, strict word 00017h ; ba 17 00 7294 7410 mov ax, strict word 00040h ; b8 40 00 7295 call 01 6b8h ; e8 80c47411 call 01749h ; e8 27 c4 7296 7412 mov byte [bp-010h], al ; 88 46 f0 7297 7413 mov byte [bp-008h], al ; 88 46 f8 … … 7300 7416 pop ES ; 07 7301 7417 mov cx, strict word 00012h ; b9 12 00 7302 mov di, 05 1b2h ; bf b2 517418 mov di, 0529ch ; bf 9c 52 7303 7419 repne scasb ; f2 ae 7304 7420 sal cx, 1 ; d1 e1 7305 7421 mov di, cx ; 89 cf 7306 mov ax, word [cs:di+05 1c3h] ; 2e 8b 85 c3 517422 mov ax, word [cs:di+052adh] ; 2e 8b 85 ad 52 7307 7423 jmp ax ; ff e0 7308 7424 xor byte [bp-008h], 040h ; 80 76 f8 40 … … 7310 7426 mov dx, strict word 00017h ; ba 17 00 7311 7427 mov ax, strict word 00040h ; b8 40 00 7312 call 01 6c6h ; e8 5fc47428 call 01757h ; e8 06 c4 7313 7429 or byte [bp-00ah], 040h ; 80 4e f6 40 7314 7430 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7315 jmp near 05 4e2h ; e9 70 027431 jmp near 055cch ; e9 70 02 7316 7432 mov al, byte [bp-006h] ; 8a 46 fa 7317 7433 and AL, strict byte 0bfh ; 24 bf 7318 7434 mov byte [bp-00ah], al ; 88 46 f6 7319 7435 movzx bx, al ; 0f b6 d8 7320 jmp near 05 4e2h ; e9 62 027436 jmp near 055cch ; e9 62 02 7321 7437 test byte [bp-004h], 002h ; f6 46 fc 02 7322 jne near 05 2b4h ; 0f 85 2c 007438 jne near 0539eh ; 0f 85 2c 00 7323 7439 mov al, byte [bp-00ch] ; 8a 46 f4 7324 7440 and AL, strict byte 07fh ; 24 7f … … 7330 7446 mov dl, al ; 88 c2 7331 7447 test byte [bp-00ch], 080h ; f6 46 f4 80 7332 je short 05 2a4h ; 74 077448 je short 0538eh ; 74 07 7333 7449 not al ; f6 d0 7334 7450 and byte [bp-008h], al ; 20 46 f8 7335 jmp short 05 2a7h ; eb 037451 jmp short 05391h ; eb 03 7336 7452 or byte [bp-008h], al ; 08 46 f8 7337 7453 movzx bx, byte [bp-008h] ; 0f b6 5e f8 7338 7454 mov dx, strict word 00017h ; ba 17 00 7339 7455 mov ax, strict word 00040h ; b8 40 00 7340 call 01 6c6h ; e8 12 c47456 call 01757h ; e8 b9 c3 7341 7457 mov al, byte [bp-00ch] ; 8a 46 f4 7342 7458 and AL, strict byte 07fh ; 24 7f 7343 7459 cmp AL, strict byte 01dh ; 3c 1d 7344 je short 05 2c1h ; 74 047460 je short 053abh ; 74 04 7345 7461 and byte [bp-004h], 0feh ; 80 66 fc fe 7346 7462 and byte [bp-004h], 0fdh ; 80 66 fc fd … … 7348 7464 mov dx, 00096h ; ba 96 00 7349 7465 mov ax, strict word 00040h ; b8 40 00 7350 call 01 6c6h ; e8 f4c37466 call 01757h ; e8 9b c3 7351 7467 lea sp, [bp-002h] ; 8d 66 fe 7352 7468 pop di ; 5f … … 7354 7470 retn ; c3 7355 7471 test byte [bp-00eh], 001h ; f6 46 f2 01 7356 jne short 05 2b4h ; 75 d67472 jne short 0539eh ; 75 d6 7357 7473 mov al, byte [bp-010h] ; 8a 46 f0 7358 7474 or AL, strict byte 004h ; 0c 04 … … 7361 7477 mov dx, strict word 00017h ; ba 17 00 7362 7478 mov ax, strict word 00040h ; b8 40 00 7363 call 01 6c6h ; e8 d4c37479 call 01757h ; e8 7b c3 7364 7480 mov al, byte [bp-00eh] ; 8a 46 f2 7365 7481 test AL, strict byte 002h ; a8 02 7366 je short 053 06h ; 74 0d7482 je short 053f0h ; 74 0d 7367 7483 or AL, strict byte 004h ; 0c 04 7368 7484 mov byte [bp-004h], al ; 88 46 fc 7369 7485 movzx bx, al ; 0f b6 d8 7370 7486 mov dx, 00096h ; ba 96 00 7371 jmp short 053 14h ; eb 0e7487 jmp short 053feh ; eb 0e 7372 7488 mov al, byte [bp-006h] ; 8a 46 fa 7373 7489 or AL, strict byte 001h ; 0c 01 … … 7376 7492 mov dx, strict word 00018h ; ba 18 00 7377 7493 mov ax, strict word 00040h ; b8 40 00 7378 call 01 6c6h ; e8 acc37379 jmp short 05 2b4h ; eb 987494 call 01757h ; e8 53 c3 7495 jmp short 0539eh ; eb 98 7380 7496 test byte [bp-00eh], 001h ; f6 46 f2 01 7381 jne short 05 2b4h ; 75 927497 jne short 0539eh ; 75 92 7382 7498 mov al, byte [bp-010h] ; 8a 46 f0 7383 7499 and AL, strict byte 0fbh ; 24 fb … … 7386 7502 mov dx, strict word 00017h ; ba 17 00 7387 7503 mov ax, strict word 00040h ; b8 40 00 7388 call 01 6c6h ; e8 90c37504 call 01757h ; e8 37 c3 7389 7505 mov al, byte [bp-00eh] ; 8a 46 f2 7390 7506 test AL, strict byte 002h ; a8 02 7391 je short 05 34ah ; 74 0d7507 je short 05434h ; 74 0d 7392 7508 and AL, strict byte 0fbh ; 24 fb 7393 7509 mov byte [bp-004h], al ; 88 46 fc 7394 7510 movzx bx, al ; 0f b6 d8 7395 7511 mov dx, 00096h ; ba 96 00 7396 jmp short 05 358h ; eb 0e7512 jmp short 05442h ; eb 0e 7397 7513 mov al, byte [bp-006h] ; 8a 46 fa 7398 7514 and AL, strict byte 0feh ; 24 fe … … 7401 7517 mov dx, strict word 00018h ; ba 18 00 7402 7518 mov ax, strict word 00040h ; b8 40 00 7403 call 01 6c6h ; e8 68c37404 jmp near 05 2b4h ; e9 53 ff7519 call 01757h ; e8 0f c3 7520 jmp near 0539eh ; e9 53 ff 7405 7521 mov al, byte [bp-010h] ; 8a 46 f0 7406 7522 or AL, strict byte 008h ; 0c 08 … … 7409 7525 mov dx, strict word 00017h ; ba 17 00 7410 7526 mov ax, strict word 00040h ; b8 40 00 7411 call 01 6c6h ; e8 51 c37527 call 01757h ; e8 f8 c2 7412 7528 mov al, byte [bp-00eh] ; 8a 46 f2 7413 7529 test AL, strict byte 002h ; a8 02 7414 je short 05 389h ; 74 0d7530 je short 05473h ; 74 0d 7415 7531 or AL, strict byte 008h ; 0c 08 7416 7532 mov byte [bp-004h], al ; 88 46 fc 7417 7533 movzx bx, al ; 0f b6 d8 7418 7534 mov dx, 00096h ; ba 96 00 7419 jmp short 05 397h ; eb 0e7535 jmp short 05481h ; eb 0e 7420 7536 mov al, byte [bp-006h] ; 8a 46 fa 7421 7537 or AL, strict byte 002h ; 0c 02 … … 7424 7540 mov dx, strict word 00018h ; ba 18 00 7425 7541 mov ax, strict word 00040h ; b8 40 00 7426 call 01 6c6h ; e8 29 c37427 jmp near 05 2b4h ; e9 14 ff7542 call 01757h ; e8 d0 c2 7543 jmp near 0539eh ; e9 14 ff 7428 7544 mov al, byte [bp-010h] ; 8a 46 f0 7429 7545 and AL, strict byte 0f7h ; 24 f7 … … 7432 7548 mov dx, strict word 00017h ; ba 17 00 7433 7549 mov ax, strict word 00040h ; b8 40 00 7434 call 01 6c6h ; e8 12 c37550 call 01757h ; e8 b9 c2 7435 7551 mov al, byte [bp-00eh] ; 8a 46 f2 7436 7552 test AL, strict byte 002h ; a8 02 7437 je short 05 3c8h ; 74 0d7553 je short 054b2h ; 74 0d 7438 7554 and AL, strict byte 0f7h ; 24 f7 7439 7555 mov byte [bp-004h], al ; 88 46 fc 7440 7556 movzx bx, al ; 0f b6 d8 7441 7557 mov dx, 00096h ; ba 96 00 7442 jmp short 05 3d6h ; eb 0e7558 jmp short 054c0h ; eb 0e 7443 7559 mov al, byte [bp-006h] ; 8a 46 fa 7444 7560 and AL, strict byte 0fdh ; 24 fd … … 7447 7563 mov dx, strict word 00018h ; ba 18 00 7448 7564 mov ax, strict word 00040h ; b8 40 00 7449 call 01 6c6h ; e8 eac27450 jmp near 05 2b4h ; e9 d5 fe7565 call 01757h ; e8 91 c2 7566 jmp near 0539eh ; e9 d5 fe 7451 7567 test byte [bp-00eh], 003h ; f6 46 f2 03 7452 jne short 054 01h ; 75 1c7568 jne short 054ebh ; 75 1c 7453 7569 mov al, byte [bp-006h] ; 8a 46 fa 7454 7570 or AL, strict byte 020h ; 0c 20 … … 7457 7573 mov dx, strict word 00018h ; ba 18 00 7458 7574 mov ax, strict word 00040h ; b8 40 00 7459 call 01 6c6h ; e8 cdc27575 call 01757h ; e8 74 c2 7460 7576 mov al, byte [bp-010h] ; 8a 46 f0 7461 7577 xor AL, strict byte 020h ; 34 20 7462 jmp near 05 4a0h ; e9 9f 007578 jmp near 0558ah ; e9 9f 00 7463 7579 mov al, byte [bp-006h] ; 8a 46 fa 7464 7580 or AL, strict byte 008h ; 0c 08 … … 7467 7583 mov dx, strict word 00018h ; ba 18 00 7468 7584 mov ax, strict word 00040h ; b8 40 00 7469 call 01 6c6h ; e8 b1c27585 call 01757h ; e8 58 c2 7470 7586 mov AL, strict byte 0aeh ; b0 ae 7471 7587 mov dx, strict word 00064h ; ba 64 00 7472 7588 out DX, AL ; ee 7473 call 0e034h ; e8 16 8c7589 call 0e034h ; e8 2c 8b 7474 7590 mov dx, strict word 00018h ; ba 18 00 7475 7591 mov ax, strict word 00040h ; b8 40 00 7476 call 01 6b8h ; e8 91c27592 call 01749h ; e8 38 c2 7477 7593 test AL, strict byte 008h ; a8 08 7478 jne short 05 41eh ; 75 f37479 jmp near 05 2b4h ; e9 86 fe7594 jne short 05508h ; 75 f3 7595 jmp near 0539eh ; e9 86 fe 7480 7596 test byte [bp-00eh], 003h ; f6 46 f2 03 7481 jne near 05 2b4h ; 0f 85 7e fe7597 jne near 0539eh ; 0f 85 7e fe 7482 7598 mov al, byte [bp-006h] ; 8a 46 fa 7483 7599 and AL, strict byte 0dfh ; 24 df … … 7486 7602 mov dx, strict word 00018h ; ba 18 00 7487 7603 mov ax, strict word 00040h ; b8 40 00 7488 call 01 6c6h ; e8 7cc27489 jmp near 05 2b4h ; e9 67 fe7604 call 01757h ; e8 23 c2 7605 jmp near 0539eh ; e9 67 fe 7490 7606 test byte [bp-00eh], 002h ; f6 46 f2 02 7491 je short 05 487h ; 74 347607 je short 05571h ; 74 34 7492 7608 mov dx, strict word 0001ah ; ba 1a 00 7493 7609 mov ax, strict word 00040h ; b8 40 00 7494 call 01 6d4h ; e8 78c27610 call 01765h ; e8 1f c2 7495 7611 mov bx, ax ; 89 c3 7496 7612 mov dx, strict word 0001ch ; ba 1c 00 7497 7613 mov ax, strict word 00040h ; b8 40 00 7498 call 01 6e2h ; e8 7bc27614 call 01773h ; e8 22 c2 7499 7615 mov bx, 00080h ; bb 80 00 7500 7616 mov dx, strict word 00071h ; ba 71 00 7501 7617 mov ax, strict word 00040h ; b8 40 00 7502 call 01 6c6h ; e8 53 c27618 call 01757h ; e8 fa c1 7503 7619 mov AL, strict byte 0aeh ; b0 ae 7504 7620 mov dx, strict word 00064h ; ba 64 00 … … 7509 7625 xor dx, dx ; 31 d2 7510 7626 xor ax, ax ; 31 c0 7511 call 05 14eh ; e8 ca fc7512 jmp near 05 2b4h ; e9 2d fe7627 call 05238h ; e8 ca fc 7628 jmp near 0539eh ; e9 2d fe 7513 7629 mov al, byte [bp-006h] ; 8a 46 fa 7514 7630 or AL, strict byte 010h ; 0c 10 … … 7517 7633 mov dx, strict word 00018h ; ba 18 00 7518 7634 mov ax, strict word 00040h ; b8 40 00 7519 call 01 6c6h ; e8 2b c27635 call 01757h ; e8 d2 c1 7520 7636 mov al, byte [bp-010h] ; 8a 46 f0 7521 7637 xor AL, strict byte 010h ; 34 10 … … 7524 7640 mov dx, strict word 00017h ; ba 17 00 7525 7641 mov ax, strict word 00040h ; b8 40 00 7526 call 01 6c6h ; e8 17 c27527 jmp near 05 2b4h ; e9 02 fe7642 call 01757h ; e8 be c1 7643 jmp near 0539eh ; e9 02 fe 7528 7644 test byte [bp-00eh], 002h ; f6 46 f2 02 7529 jne near 05 2b4h ; 0f 85 fa fd7645 jne near 0539eh ; 0f 85 fa fd 7530 7646 mov al, byte [bp-006h] ; 8a 46 fa 7531 7647 and AL, strict byte 0efh ; 24 ef … … 7534 7650 mov dx, strict word 00018h ; ba 18 00 7535 7651 mov ax, strict word 00040h ; b8 40 00 7536 call 01 6c6h ; e8 f8c17537 jmp near 05 2b4h ; e9 e3 fd7652 call 01757h ; e8 9f c1 7653 jmp near 0539eh ; e9 e3 fd 7538 7654 mov al, byte [bp-006h] ; 8a 46 fa 7539 7655 test AL, strict byte 004h ; a8 04 7540 jne near 05 2b4h ; 0f 85 da fd7656 jne near 0539eh ; 0f 85 da fd 7541 7657 or AL, strict byte 004h ; 0c 04 7542 7658 mov byte [bp-00ah], al ; 88 46 f6 … … 7544 7660 mov dx, strict word 00018h ; ba 18 00 7545 7661 mov ax, strict word 00040h ; b8 40 00 7546 call 01 6c6h ; e8 dbc17547 jmp near 05 2b4h ; e9 c6 fd7662 call 01757h ; e8 82 c1 7663 jmp near 0539eh ; e9 c6 fd 7548 7664 mov al, byte [bp-006h] ; 8a 46 fa 7549 7665 and AL, strict byte 0fbh ; 24 fb 7550 jmp short 05 4dch ; eb e77666 jmp short 055c6h ; eb e7 7551 7667 mov al, byte [bp-010h] ; 8a 46 f0 7552 7668 and AL, strict byte 00ch ; 24 0c 7553 7669 cmp AL, strict byte 00ch ; 3c 0c 7554 jne short 055 0fh ; 75 117670 jne short 055f9h ; 75 11 7555 7671 mov bx, 01234h ; bb 34 12 7556 7672 mov dx, strict word 00072h ; ba 72 00 7557 7673 mov ax, strict word 00040h ; b8 40 00 7558 call 01 6e2h ; e8 d8c17674 call 01773h ; e8 7f c1 7559 7675 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7560 7676 test byte [bp-00ah], 008h ; f6 46 f6 08 7561 je short 05 523h ; 74 0e7677 je short 0560dh ; 74 0e 7562 7678 and byte [bp-00ah], 0f7h ; 80 66 f6 f7 7563 7679 movzx bx, byte [bp-00ah] ; 0f b6 5e f6 7564 7680 mov dx, strict word 00018h ; ba 18 00 7565 jmp near 05 2cch ; e9 a9 fd7681 jmp near 053b6h ; e9 a9 fd 7566 7682 mov al, byte [bp-00ch] ; 8a 46 f4 7567 7683 test AL, strict byte 080h ; a8 80 7568 je short 05 561h ; 74 377684 je short 0564bh ; 74 37 7569 7685 cmp AL, strict byte 0fah ; 3c fa 7570 jne short 05 53eh ; 75 107686 jne short 05628h ; 75 10 7571 7687 mov dx, 00097h ; ba 97 00 7572 7688 mov ax, strict word 00040h ; b8 40 00 7573 call 01 6b8h ; e8 81c17689 call 01749h ; e8 28 c1 7574 7690 mov dl, al ; 88 c2 7575 7691 or dl, 010h ; 80 ca 10 7576 jmp short 05 552h ; eb 147692 jmp short 0563ch ; eb 14 7577 7693 cmp AL, strict byte 0feh ; 3c fe 7578 jne near 05 2b4h ; 0f 85 70 fd7694 jne near 0539eh ; 0f 85 70 fd 7579 7695 mov dx, 00097h ; ba 97 00 7580 7696 mov ax, strict word 00040h ; b8 40 00 7581 call 01 6b8h ; e8 6bc17697 call 01749h ; e8 12 c1 7582 7698 mov dl, al ; 88 c2 7583 7699 or dl, 020h ; 80 ca 20 … … 7585 7701 mov dx, 00097h ; ba 97 00 7586 7702 mov ax, strict word 00040h ; b8 40 00 7587 call 01 6c6h ; e8 68c17588 jmp near 05 2b4h ; e9 53 fd7703 call 01757h ; e8 0f c1 7704 jmp near 0539eh ; e9 53 fd 7589 7705 cmp byte [bp-00ch], 058h ; 80 7e f4 58 7590 jbe short 05 585h ; 76 1e7591 mov bx, 00d a0h ; bb a00d7706 jbe short 0566fh ; 76 1e 7707 mov bx, 00db2h ; bb b2 0d 7592 7708 mov cx, ds ; 8c d9 7593 7709 mov ax, strict word 00004h ; b8 04 00 7594 call 01 999h ; e8 27 c47710 call 01a2ah ; e8 ce c3 7595 7711 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7596 7712 push ax ; 50 7597 push 005 a1h ; 68 a1057713 push 005b3h ; 68 b3 05 7598 7714 push strict byte 00004h ; 6a 04 7599 call 01 9dah ; e8 5bc47715 call 01a6bh ; e8 02 c4 7600 7716 add sp, strict byte 00006h ; 83 c4 06 7601 jmp near 05 2d2h ; e9 4d fd7717 jmp near 053bch ; e9 4d fd 7602 7718 mov al, byte [bp-008h] ; 8a 46 f8 7603 7719 test AL, strict byte 008h ; a8 08 7604 je short 05 59eh ; 74 127720 je short 05688h ; 74 12 7605 7721 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7606 7722 imul bx, bx, strict byte 0000ah ; 6b db 0a 7607 mov dl, byte [bx+00 df4h] ; 8a 97 f4 0d7608 mov ax, word [bx+00 df4h] ; 8b 87 f4 0d7609 jmp near 05 62ch ; e9 8e 007723 mov dl, byte [bx+00e06h] ; 8a 97 06 0e 7724 mov ax, word [bx+00e06h] ; 8b 87 06 0e 7725 jmp near 05716h ; e9 8e 00 7610 7726 test AL, strict byte 004h ; a8 04 7611 je short 05 5b4h ; 74 127727 je short 0569eh ; 74 12 7612 7728 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7613 7729 imul bx, bx, strict byte 0000ah ; 6b db 0a 7614 mov dl, byte [bx+00 df2h] ; 8a 97 f2 0d7615 mov ax, word [bx+00 df2h] ; 8b 87 f2 0d7616 jmp near 05 62ch ; e9 78 007730 mov dl, byte [bx+00e04h] ; 8a 97 04 0e 7731 mov ax, word [bx+00e04h] ; 8b 87 04 0e 7732 jmp near 05716h ; e9 78 00 7617 7733 mov al, byte [bp-004h] ; 8a 46 fc 7618 7734 and AL, strict byte 002h ; 24 02 7619 7735 test al, al ; 84 c0 7620 jbe short 05 5d2h ; 76 157736 jbe short 056bch ; 76 15 7621 7737 mov al, byte [bp-00ch] ; 8a 46 f4 7622 7738 cmp AL, strict byte 047h ; 3c 47 7623 jc short 05 5d2h ; 72 0e7739 jc short 056bch ; 72 0e 7624 7740 cmp AL, strict byte 053h ; 3c 53 7625 jnbe short 05 5d2h ; 77 0a7741 jnbe short 056bch ; 77 0a 7626 7742 mov DL, strict byte 0e0h ; b2 e0 7627 7743 movzx bx, al ; 0f b6 d8 7628 7744 imul bx, bx, strict byte 0000ah ; 6b db 0a 7629 jmp short 05 628h ; eb 567745 jmp short 05712h ; eb 56 7630 7746 test byte [bp-008h], 003h ; f6 46 f8 03 7631 je short 056 06h ; 74 2e7747 je short 056f0h ; 74 2e 7632 7748 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7633 7749 imul bx, bx, strict byte 0000ah ; 6b db 0a 7634 movzx ax, byte [bx+00 df6h] ; 0f b6 87 f6 0d7750 movzx ax, byte [bx+00e08h] ; 0f b6 87 08 0e 7635 7751 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7636 7752 test dx, ax ; 85 c2 7637 je short 05 5f6h ; 74 0a7638 mov dl, byte [bx+00 deeh] ; 8a 97 ee 0d7639 mov ax, word [bx+00 deeh] ; 8b 87 ee 0d7640 jmp short 05 5feh ; eb 087641 mov dl, byte [bx+00 df0h] ; 8a 97 f0 0d7642 mov ax, word [bx+00 df0h] ; 8b 87 f0 0d7753 je short 056e0h ; 74 0a 7754 mov dl, byte [bx+00e00h] ; 8a 97 00 0e 7755 mov ax, word [bx+00e00h] ; 8b 87 00 0e 7756 jmp short 056e8h ; eb 08 7757 mov dl, byte [bx+00e02h] ; 8a 97 02 0e 7758 mov ax, word [bx+00e02h] ; 8b 87 02 0e 7643 7759 shr ax, 008h ; c1 e8 08 7644 7760 mov byte [bp-00ch], al ; 88 46 f4 7645 jmp short 05 632h ; eb 2c7761 jmp short 0571ch ; eb 2c 7646 7762 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 7647 7763 imul bx, bx, strict byte 0000ah ; 6b db 0a 7648 movzx ax, byte [bx+00 df6h] ; 0f b6 87 f6 0d7764 movzx ax, byte [bx+00e08h] ; 0f b6 87 08 0e 7649 7765 movzx dx, byte [bp-008h] ; 0f b6 56 f8 7650 7766 test dx, ax ; 85 c2 7651 je short 05 624h ; 74 0a7652 mov dl, byte [bx+00 df0h] ; 8a 97 f0 0d7653 mov ax, word [bx+00 df0h] ; 8b 87 f0 0d7654 jmp short 05 62ch ; eb 087655 mov dl, byte [bx+00 deeh] ; 8a 97 ee 0d7656 mov ax, word [bx+00 deeh] ; 8b 87 ee 0d7767 je short 0570eh ; 74 0a 7768 mov dl, byte [bx+00e02h] ; 8a 97 02 0e 7769 mov ax, word [bx+00e02h] ; 8b 87 02 0e 7770 jmp short 05716h ; eb 08 7771 mov dl, byte [bx+00e00h] ; 8a 97 00 0e 7772 mov ax, word [bx+00e00h] ; 8b 87 00 0e 7657 7773 shr ax, 008h ; c1 e8 08 7658 7774 mov byte [bp-00ch], al ; 88 46 f4 7659 7775 cmp byte [bp-00ch], 000h ; 80 7e f4 00 7660 jne short 05 652h ; 75 1a7776 jne short 0573ch ; 75 1a 7661 7777 test dl, dl ; 84 d2 7662 jne short 05 652h ; 75 167663 mov bx, 00d a0h ; bb a00d7778 jne short 0573ch ; 75 16 7779 mov bx, 00db2h ; bb b2 0d 7664 7780 mov cx, ds ; 8c d9 7665 7781 mov ax, strict word 00004h ; b8 04 00 7666 call 01 999h ; e8 52 c37667 push 005 d8h ; 68 d8057782 call 01a2ah ; e8 f9 c2 7783 push 005eah ; 68 ea 05 7668 7784 push strict byte 00004h ; 6a 04 7669 call 01 9dah ; e8 8bc37785 call 01a6bh ; e8 32 c3 7670 7786 add sp, strict byte 00004h ; 83 c4 04 7671 7787 xor dh, dh ; 30 f6 7672 7788 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 7673 jmp near 05 481h ; e9 26 fe7674 dequeue_key_: ; 0xf5 65bLB 0x947789 jmp near 0556bh ; e9 26 fe 7790 dequeue_key_: ; 0xf5745 LB 0x94 7675 7791 push bp ; 55 7676 7792 mov bp, sp ; 89 e5 … … 7685 7801 mov dx, strict word 0001ah ; ba 1a 00 7686 7802 mov ax, strict word 00040h ; b8 40 00 7687 call 01 6d4h ; e8 5fc07803 call 01765h ; e8 06 c0 7688 7804 mov bx, ax ; 89 c3 7689 7805 mov dx, strict word 0001ch ; ba 1c 00 7690 7806 mov ax, strict word 00040h ; b8 40 00 7691 call 01 6d4h ; e8 54 c07807 call 01765h ; e8 fb bf 7692 7808 cmp bx, ax ; 39 c3 7693 je short 05 6c1h ; 74 3d7809 je short 057abh ; 74 3d 7694 7810 mov dx, bx ; 89 da 7695 7811 mov ax, strict word 00040h ; b8 40 00 7696 call 01 6b8h ; e8 2c c07812 call 01749h ; e8 d3 bf 7697 7813 mov cl, al ; 88 c1 7698 7814 lea dx, [bx+001h] ; 8d 57 01 7699 7815 mov ax, strict word 00040h ; b8 40 00 7700 call 01 6b8h ; e8 21 c07816 call 01749h ; e8 c8 bf 7701 7817 mov es, [bp-008h] ; 8e 46 f8 7702 7818 mov byte [es:si], cl ; 26 88 0c … … 7704 7820 mov byte [es:di], al ; 26 88 05 7705 7821 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 7706 je short 05 6bch ; 74 137822 je short 057a6h ; 74 13 7707 7823 inc bx ; 43 7708 7824 inc bx ; 43 7709 7825 cmp bx, strict byte 0003eh ; 83 fb 3e 7710 jc short 05 6b3h ; 72 037826 jc short 0579dh ; 72 03 7711 7827 mov bx, strict word 0001eh ; bb 1e 00 7712 7828 mov dx, strict word 0001ah ; ba 1a 00 7713 7829 mov ax, strict word 00040h ; b8 40 00 7714 call 01 6e2h ; e8 26 c07830 call 01773h ; e8 cd bf 7715 7831 mov ax, strict word 00001h ; b8 01 00 7716 jmp short 05 6c3h ; eb 027832 jmp short 057adh ; eb 02 7717 7833 xor ax, ax ; 31 c0 7718 7834 lea sp, [bp-004h] ; 8d 66 fc … … 7725 7841 or cl, byte [bx+di] ; 0a 09 7726 7842 add ax, 00102h ; 05 02 01 7727 add byte [di-05ca7h], cl ; 00 8d 59 a3 7728 push di ; 57 7729 jmp far 04658h:03657h ; ea 57 36 58 46 7843 add byte [bx+05ah], dh ; 00 77 5a 7844 lea bx, [bx+si-02ch] ; 8d 58 d4 7730 7845 pop ax ; 58 7731 jo short 0573bh ; 70 58 7732 jns short 0573dh ; 79 58 7733 jmp far 04859h:01b58h ; ea 58 1b 59 48 7846 and byte [bx+di+030h], bl ; 20 59 30 7734 7847 pop cx ; 59 7735 db 082h, 059h, 0d0h, 059h 7736 ; sbb byte [bx+di-030h], 059h ; 82 59 d0 59 7737 _int16_function: ; 0xf56ef LB 0x2e7 7848 pop dx ; 5a 7849 pop cx ; 59 7850 arpl [bx+di-02ch], bx ; 63 59 d4 7851 pop cx ; 59 7852 add ax, 0325ah ; 05 5a 32 7853 pop dx ; 5a 7854 insb ; 6c 7855 pop dx ; 5a 7856 db 0bah 7857 pop dx ; 5a 7858 _int16_function: ; 0xf57d9 LB 0x2e7 7738 7859 push bp ; 55 7739 7860 mov bp, sp ; 89 e5 … … 7742 7863 mov dx, strict word 00017h ; ba 17 00 7743 7864 mov ax, strict word 00040h ; b8 40 00 7744 call 01 6b8h ; e8 b9bf7865 call 01749h ; e8 60 bf 7745 7866 mov cl, al ; 88 c1 7746 7867 mov bh, al ; 88 c7 7747 7868 mov dx, 00097h ; ba 97 00 7748 7869 mov ax, strict word 00040h ; b8 40 00 7749 call 01 6b8h ; e8 acbf7870 call 01749h ; e8 53 bf 7750 7871 mov bl, al ; 88 c3 7751 7872 movzx dx, cl ; 0f b6 d1 … … 7756 7877 xor al, dl ; 30 d0 7757 7878 test ax, ax ; 85 c0 7758 je short 05 781h ; 74 607879 je short 0586bh ; 74 60 7759 7880 cli ; fa 7760 7881 mov AL, strict byte 0edh ; b0 ed … … 7766 7887 ; sub ah, ah ; 2a e4 7767 7888 test AL, strict byte 001h ; a8 01 7768 jne short 05 73ah ; 75 087889 jne short 05824h ; 75 08 7769 7890 mov AL, strict byte 021h ; b0 21 7770 7891 mov dx, 00080h ; ba 80 00 7771 7892 out DX, AL ; ee 7772 jmp short 05 728h ; eb ee7893 jmp short 05812h ; eb ee 7773 7894 mov dx, strict word 00060h ; ba 60 00 7774 7895 in AL, DX ; ec … … 7776 7897 ; sub ah, ah ; 2a e4 7777 7898 cmp ax, 000fah ; 3d fa 00 7778 jne short 05 780h ; 75 3b7899 jne short 0586ah ; 75 3b 7779 7900 and bl, 0c8h ; 80 e3 c8 7780 7901 movzx ax, bh ; 0f b6 c7 … … 7792 7913 ; sub ah, ah ; 2a e4 7793 7914 test AL, strict byte 001h ; a8 01 7794 jne short 05 76fh ; 75 087915 jne short 05859h ; 75 08 7795 7916 mov AL, strict byte 021h ; b0 21 7796 7917 mov dx, 00080h ; ba 80 00 7797 7918 out DX, AL ; ee 7798 jmp short 05 75dh ; eb ee7919 jmp short 05847h ; eb ee 7799 7920 mov dx, strict word 00060h ; ba 60 00 7800 7921 in AL, DX ; ec … … 7804 7925 mov dx, 00097h ; ba 97 00 7805 7926 mov ax, strict word 00040h ; b8 40 00 7806 call 01 6c6h ; e8 46 bf7927 call 01757h ; e8 ed be 7807 7928 sti ; fb 7808 7929 mov ax, word [bp+012h] ; 8b 46 12 7809 7930 shr ax, 008h ; c1 e8 08 7810 7931 cmp ax, 000a2h ; 3d a2 00 7811 jnbe near 05 98dh ; 0f 87 ff 017932 jnbe near 05a77h ; 0f 87 ff 01 7812 7933 push CS ; 0e 7813 7934 pop ES ; 07 7814 7935 mov cx, strict word 0000ch ; b9 0c 00 7815 mov di, 05 6cch ; bf cc 567936 mov di, 057b6h ; bf b6 57 7816 7937 repne scasb ; f2 ae 7817 7938 sal cx, 1 ; d1 e1 7818 7939 mov di, cx ; 89 cf 7819 mov ax, word [cs:di+05 6d7h] ; 2e 8b 85 d7 567940 mov ax, word [cs:di+057c1h] ; 2e 8b 85 c1 57 7820 7941 jmp ax ; ff e0 7821 7942 push strict byte 00001h ; 6a 01 … … 7824 7945 mov dx, ss ; 8c d2 7825 7946 lea ax, [bp-006h] ; 8d 46 fa 7826 call 05 65bh ; e8 a9 fe7947 call 05745h ; e8 a9 fe 7827 7948 test ax, ax ; 85 c0 7828 jne short 05 7c1h ; 75 0b7829 push 006 0fh ; 68 0f067949 jne short 058abh ; 75 0b 7950 push 00621h ; 68 21 06 7830 7951 push strict byte 00007h ; 6a 07 7831 call 01 9dah ; e8 1c c27952 call 01a6bh ; e8 c3 c1 7832 7953 add sp, strict byte 00004h ; 83 c4 04 7833 7954 cmp byte [bp-006h], 000h ; 80 7e fa 00 7834 je short 05 7cdh ; 74 067955 je short 058b7h ; 74 06 7835 7956 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7836 je short 05 7d3h ; 74 067957 je short 058bdh ; 74 06 7837 7958 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7838 jne short 05 7d7h ; 75 047959 jne short 058c1h ; 75 04 7839 7960 mov byte [bp-008h], 000h ; c6 46 f8 00 7840 7961 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7843 7964 or dx, ax ; 09 c2 7844 7965 mov word [bp+012h], dx ; 89 56 12 7845 jmp near 05 9d0h ; e9 e6 017966 jmp near 05abah ; e9 e6 01 7846 7967 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7847 7968 push strict byte 00000h ; 6a 00 … … 7850 7971 mov dx, ss ; 8c d2 7851 7972 lea ax, [bp-006h] ; 8d 46 fa 7852 call 05 65bh ; e8 5d fe7973 call 05745h ; e8 5d fe 7853 7974 test ax, ax ; 85 c0 7854 jne short 058 09h ; 75 077975 jne short 058f3h ; 75 07 7855 7976 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 7856 jmp near 05 9d0h ; e9 c7 017977 jmp near 05abah ; e9 c7 01 7857 7978 cmp byte [bp-006h], 000h ; 80 7e fa 00 7858 je short 058 15h ; 74 067979 je short 058ffh ; 74 06 7859 7980 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7860 je short 05 81bh ; 74 067981 je short 05905h ; 74 06 7861 7982 cmp byte [bp-008h], 0e0h ; 80 7e f8 e0 7862 jne short 05 81fh ; 75 047983 jne short 05909h ; 75 04 7863 7984 mov byte [bp-008h], 000h ; c6 46 f8 00 7864 7985 movzx dx, byte [bp-006h] ; 0f b6 56 fa … … 7868 7989 mov word [bp+012h], dx ; 89 56 12 7869 7990 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 7870 jmp near 05 9d0h ; e9 9a 017991 jmp near 05abah ; e9 9a 01 7871 7992 mov dx, strict word 00017h ; ba 17 00 7872 7993 mov ax, strict word 00040h ; b8 40 00 7873 call 01 6b8h ; e8 79be7994 call 01749h ; e8 20 be 7874 7995 mov dx, word [bp+012h] ; 8b 56 12 7875 7996 mov dl, al ; 88 c2 7876 jmp short 05 7e4h ; eb 9e7997 jmp short 058ceh ; eb 9e 7877 7998 mov al, byte [bp+010h] ; 8a 46 10 7878 7999 movzx dx, al ; 0f b6 d0 … … 7880 8001 shr ax, 008h ; c1 e8 08 7881 8002 xor ah, ah ; 30 e4 7882 call 05 14eh ; e8 f7 f88003 call 05238h ; e8 f7 f8 7883 8004 test ax, ax ; 85 c0 7884 jne short 05 868h ; 75 0d8005 jne short 05952h ; 75 0d 7885 8006 mov ax, word [bp+012h] ; 8b 46 12 7886 8007 xor al, al ; 30 c0 7887 8008 or AL, strict byte 001h ; 0c 01 7888 8009 mov word [bp+012h], ax ; 89 46 12 7889 jmp near 05 9d0h ; e9 68 018010 jmp near 05abah ; e9 68 01 7890 8011 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 7891 jmp near 05 9d0h ; e9 60 018012 jmp near 05abah ; e9 60 01 7892 8013 mov ax, word [bp+012h] ; 8b 46 12 7893 8014 xor al, al ; 30 c0 7894 8015 or AL, strict byte 030h ; 0c 30 7895 jmp short 05 862h ; eb e98016 jmp short 0594ch ; eb e9 7896 8017 mov byte [bp-004h], 002h ; c6 46 fc 02 7897 8018 xor cx, cx ; 31 c9 … … 7906 8027 ; sub ah, ah ; 2a e4 7907 8028 test AL, strict byte 001h ; a8 01 7908 jne short 05 8a0h ; 75 0d8029 jne short 0598ah ; 75 0d 7909 8030 dec bx ; 4b 7910 8031 test bx, bx ; 85 db 7911 jbe short 05 8a0h ; 76 088032 jbe short 0598ah ; 76 08 7912 8033 mov dx, 00080h ; ba 80 00 7913 8034 in AL, DX ; ec 7914 8035 db 02ah, 0e4h 7915 8036 ; sub ah, ah ; 2a e4 7916 jmp short 05 889h ; eb e98037 jmp short 05973h ; eb e9 7917 8038 test bx, bx ; 85 db 7918 jbe short 05 8e4h ; 76 408039 jbe short 059ceh ; 76 40 7919 8040 mov dx, strict word 00060h ; ba 60 00 7920 8041 in AL, DX ; ec … … 7922 8043 ; sub ah, ah ; 2a e4 7923 8044 cmp ax, 000fah ; 3d fa 00 7924 jne short 05 8e4h ; 75 358045 jne short 059ceh ; 75 35 7925 8046 mov bx, strict word 0ffffh ; bb ff ff 7926 8047 mov dx, strict word 00064h ; ba 64 00 … … 7929 8050 ; sub ah, ah ; 2a e4 7930 8051 test AL, strict byte 001h ; a8 01 7931 jne short 05 8c9h ; 75 0d8052 jne short 059b3h ; 75 0d 7932 8053 dec bx ; 4b 7933 8054 test bx, bx ; 85 db 7934 jbe short 05 8c9h ; 76 088055 jbe short 059b3h ; 76 08 7935 8056 mov dx, 00080h ; ba 80 00 7936 8057 in AL, DX ; ec 7937 8058 db 02ah, 0e4h 7938 8059 ; sub ah, ah ; 2a e4 7939 jmp short 05 8b2h ; eb e98060 jmp short 0599ch ; eb e9 7940 8061 test bx, bx ; 85 db 7941 jbe short 05 8dbh ; 76 0e8062 jbe short 059c5h ; 76 0e 7942 8063 shr cx, 008h ; c1 e9 08 7943 8064 mov dx, strict word 00060h ; ba 60 00 … … 7949 8070 dec byte [bp-004h] ; fe 4e fc 7950 8071 cmp byte [bp-004h], 000h ; 80 7e fc 00 7951 jnbe short 05 8afh ; 77 cb8072 jnbe short 05999h ; 77 cb 7952 8073 mov word [bp+00ch], cx ; 89 4e 0c 7953 jmp near 05 9d0h ; e9 e6 008074 jmp near 05abah ; e9 e6 00 7954 8075 push strict byte 00001h ; 6a 01 7955 8076 mov cx, ss ; 8c d1 … … 7957 8078 mov dx, ss ; 8c d2 7958 8079 lea ax, [bp-006h] ; 8d 46 fa 7959 call 05 65bh ; e8 62 fd8080 call 05745h ; e8 62 fd 7960 8081 test ax, ax ; 85 c0 7961 jne short 059 08h ; 75 0b7962 push 006 0fh ; 68 0f068082 jne short 059f2h ; 75 0b 8083 push 00621h ; 68 21 06 7963 8084 push strict byte 00007h ; 6a 07 7964 call 01 9dah ; e8 d5c08085 call 01a6bh ; e8 7c c0 7965 8086 add sp, strict byte 00004h ; 83 c4 04 7966 8087 cmp byte [bp-006h], 000h ; 80 7e fa 00 7967 je near 05 7d7h ; 0f 84 c7 fe8088 je near 058c1h ; 0f 84 c7 fe 7968 8089 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7969 je near 05 7d3h ; 0f 84 bb fe7970 jmp near 05 7d7h ; e9 bc fe8090 je near 058bdh ; 0f 84 bb fe 8091 jmp near 058c1h ; e9 bc fe 7971 8092 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 7972 8093 push strict byte 00000h ; 6a 00 … … 7975 8096 mov dx, ss ; 8c d2 7976 8097 lea ax, [bp-006h] ; 8d 46 fa 7977 call 05 65bh ; e8 2c fd8098 call 05745h ; e8 2c fd 7978 8099 test ax, ax ; 85 c0 7979 je near 058 02h ; 0f 84 cd fe8100 je near 058ech ; 0f 84 cd fe 7980 8101 cmp byte [bp-006h], 000h ; 80 7e fa 00 7981 je near 05 81fh ; 0f 84 e2 fe8102 je near 05909h ; 0f 84 e2 fe 7982 8103 cmp byte [bp-008h], 0f0h ; 80 7e f8 f0 7983 je near 05 81bh ; 0f 84 d6 fe7984 jmp near 05 81fh ; e9 d7 fe8104 je near 05905h ; 0f 84 d6 fe 8105 jmp near 05909h ; e9 d7 fe 7985 8106 mov dx, strict word 00017h ; ba 17 00 7986 8107 mov ax, strict word 00040h ; b8 40 00 7987 call 01 6b8h ; e8 67bd8108 call 01749h ; e8 0e bd 7988 8109 mov dx, word [bp+012h] ; 8b 56 12 7989 8110 mov dl, al ; 88 c2 … … 7991 8112 mov dx, strict word 00018h ; ba 18 00 7992 8113 mov ax, strict word 00040h ; b8 40 00 7993 call 01 6b8h ; e8 56 bd8114 call 01749h ; e8 fd bc 7994 8115 mov bh, al ; 88 c7 7995 8116 and bh, 073h ; 80 e7 73 7996 8117 mov dx, 00096h ; ba 96 00 7997 8118 mov ax, strict word 00040h ; b8 40 00 7998 call 01 6b8h ; e8 48 bd8119 call 01749h ; e8 ef bc 7999 8120 and AL, strict byte 00ch ; 24 0c 8000 8121 or bh, al ; 08 c7 … … 8003 8124 movzx ax, bh ; 0f b6 c7 8004 8125 sal ax, 008h ; c1 e0 08 8005 jmp near 05 7e2h ; e9 60 fe8126 jmp near 058cch ; e9 60 fe 8006 8127 mov ax, word [bp+012h] ; 8b 46 12 8007 8128 xor ah, ah ; 30 e4 8008 8129 or ah, 080h ; 80 cc 80 8009 jmp near 05 862h ; e9 d5 fe8010 mov bx, 00d a0h ; bb a00d8130 jmp near 0594ch ; e9 d5 fe 8131 mov bx, 00db2h ; bb b2 0d 8011 8132 mov cx, ds ; 8c d9 8012 8133 mov ax, strict word 00004h ; b8 04 00 8013 call 01 999h ; e8 01 c08134 call 01a2ah ; e8 a8 bf 8014 8135 mov ax, word [bp+012h] ; 8b 46 12 8015 8136 shr ax, 008h ; c1 e8 08 8016 8137 push ax ; 50 8017 push 006 33h ; 68 33068138 push 00645h ; 68 45 06 8018 8139 push strict byte 00004h ; 6a 04 8019 call 01 9dah ; e8 33 c08140 call 01a6bh ; e8 da bf 8020 8141 add sp, strict byte 00006h ; 83 c4 06 8021 mov bx, 00d a0h ; bb a00d8142 mov bx, 00db2h ; bb b2 0d 8022 8143 mov cx, ds ; 8c d9 8023 8144 mov ax, strict word 00004h ; b8 04 00 8024 call 01 999h ; e8 e4bf8145 call 01a2ah ; e8 8b bf 8025 8146 mov ax, word [bp+00eh] ; 8b 46 0e 8026 8147 push ax ; 50 … … 8031 8152 mov ax, word [bp+012h] ; 8b 46 12 8032 8153 push ax ; 50 8033 push 006 5bh ; 68 5b068154 push 0066dh ; 68 6d 06 8034 8155 push strict byte 00004h ; 6a 04 8035 call 01 9dah ; e8 0d c08156 call 01a6bh ; e8 b4 bf 8036 8157 add sp, strict byte 0000ch ; 83 c4 0c 8037 8158 lea sp, [bp-002h] ; 8d 66 fe … … 8039 8160 pop bp ; 5d 8040 8161 retn ; c3 8041 set_geom_lba_: ; 0xf5 9d6LB 0xe58162 set_geom_lba_: ; 0xf5ac0 LB 0xe5 8042 8163 push bx ; 53 8043 8164 push cx ; 51 … … 8054 8175 mov dx, word [bp+00ch] ; 8b 56 0c 8055 8176 mov si, strict word 00020h ; be 20 00 8056 call 0 9f40h ; e8 3f458177 call 0a030h ; e8 45 45 8057 8178 test ax, ax ; 85 c0 8058 jne short 05a 11h ; 75 0c8179 jne short 05afbh ; 75 0c 8059 8180 test bx, bx ; 85 db 8060 jne short 05a 11h ; 75 088181 jne short 05afbh ; 75 08 8061 8182 test cx, cx ; 85 c9 8062 jne short 05a 11h ; 75 048183 jne short 05afbh ; 75 04 8063 8184 test dx, dx ; 85 d2 8064 je short 05 a18h ; 74 078185 je short 05b02h ; 74 07 8065 8186 mov bx, strict word 0ffffh ; bb ff ff 8066 8187 mov si, bx ; 89 de 8067 jmp short 05 a1eh ; eb 068188 jmp short 05b08h ; eb 06 8068 8189 mov bx, word [bp+00ch] ; 8b 5e 0c 8069 8190 mov si, word [bp+00eh] ; 8b 76 0e 8070 8191 mov word [bp-004h], bx ; 89 5e fc 8071 8192 xor bx, bx ; 31 db 8072 jmp short 05 a2ah ; eb 058193 jmp short 05b14h ; eb 05 8073 8194 cmp bx, strict byte 00004h ; 83 fb 04 8074 jnl short 05 a4dh ; 7d 238195 jnl short 05b37h ; 7d 23 8075 8196 mov ax, word [bp-006h] ; 8b 46 fa 8076 8197 cmp si, ax ; 39 c6 8077 jc short 05 a3bh ; 72 0a8078 jne short 05 a44h ; 75 118198 jc short 05b25h ; 72 0a 8199 jne short 05b2eh ; 75 11 8079 8200 mov ax, word [bp-004h] ; 8b 46 fc 8080 8201 cmp ax, word [bp-008h] ; 3b 46 f8 8081 jnbe short 05 a44h ; 77 098202 jnbe short 05b2eh ; 77 09 8082 8203 mov ax, word [bp-002h] ; 8b 46 fe 8083 8204 inc ax ; 40 … … 8087 8208 rcr word [bp-008h], 1 ; d1 5e f8 8088 8209 inc bx ; 43 8089 jmp short 05 a25h ; eb d88210 jmp short 05b0fh ; eb d8 8090 8211 mov ax, word [bp-002h] ; 8b 46 fe 8091 8212 xor dx, dx ; 31 d2 8092 8213 mov bx, strict word 0003fh ; bb 3f 00 8093 8214 xor cx, cx ; 31 c9 8094 call 09 ec0h ; e8 66448215 call 09fb0h ; e8 6c 44 8095 8216 mov bx, ax ; 89 c3 8096 8217 mov cx, dx ; 89 d1 8097 8218 mov ax, word [bp-004h] ; 8b 46 fc 8098 8219 mov dx, si ; 89 f2 8099 call 09f 00h ; e8 9a448220 call 09ff0h ; e8 a0 44 8100 8221 mov word [es:di+002h], ax ; 26 89 45 02 8101 8222 cmp ax, 00400h ; 3d 00 04 8102 jbe short 05 a75h ; 76 068223 jbe short 05b5fh ; 76 06 8103 8224 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8104 8225 mov ax, word [bp-002h] ; 8b 46 fe … … 8111 8232 pop bx ; 5b 8112 8233 retn 00008h ; c2 08 00 8113 inc bp ; 45 8114 pop bx ; 5b 8115 imul bx, word [bp+di-068h], strict byte 0005bh ; 6b 5b 98 5b 8116 cbw ; 98 8117 pop bx ; 5b 8118 cbw ; 98 8119 pop bx ; 5b 8120 jns short 05af2h ; 79 5d 8121 cmpsw ; a7 8122 pop si ; 5e 8123 cmpsw ; a7 8124 pop si ; 5e 8125 xchg dx, ax ; 92 8126 pop bp ; 5d 8127 test byte [bp-059h], bl ; 84 5e a7 8128 pop si ; 5e 8129 cmpsw ; a7 8130 pop si ; 5e 8131 test byte [bp-07ch], bl ; 84 5e 84 8132 pop si ; 5e 8133 cmpsw ; a7 8134 pop si ; 5e 8135 cmpsw ; a7 8136 pop si ; 5e 8137 or byte [bp-07ch], bl ; 08 5e 84 8138 pop si ; 5e 8139 cmpsw ; a7 8140 pop si ; 5e 8141 cmpsw ; a7 8142 pop si ; 5e 8143 test byte [bp+038h], bl ; 84 5e 38 8144 pop si ; 5e 8145 cmpsw ; a7 8146 pop si ; 5e 8147 cmpsw ; a7 8148 pop si ; 5e 8149 cmpsw ; a7 8150 pop si ; 5e 8151 _int13_harddisk: ; 0xf5abb LB 0x44a 8234 das ; 2f 8235 pop sp ; 5c 8236 push bp ; 55 8237 pop sp ; 5c 8238 db 082h, 05ch, 082h, 05ch 8239 ; sbb byte [si-07eh], 05ch ; 82 5c 82 5c 8240 db 082h, 05ch, 063h, 05eh 8241 ; sbb byte [si+063h], 05eh ; 82 5c 63 5e 8242 xchg cx, ax ; 91 8243 pop di ; 5f 8244 xchg cx, ax ; 91 8245 pop di ; 5f 8246 jl short 05be3h ; 7c 5e 8247 outsb ; 6e 8248 pop di ; 5f 8249 xchg cx, ax ; 91 8250 pop di ; 5f 8251 xchg cx, ax ; 91 8252 pop di ; 5f 8253 outsb ; 6e 8254 pop di ; 5f 8255 outsb ; 6e 8256 pop di ; 5f 8257 xchg cx, ax ; 91 8258 pop di ; 5f 8259 xchg cx, ax ; 91 8260 pop di ; 5f 8261 db 0f2h, 05eh 8262 ; repne pop si ; f2 5e 8263 outsb ; 6e 8264 pop di ; 5f 8265 xchg cx, ax ; 91 8266 pop di ; 5f 8267 xchg cx, ax ; 91 8268 pop di ; 5f 8269 outsb ; 6e 8270 pop di ; 5f 8271 and bl, byte [bx-06fh] ; 22 5f 91 8272 pop di ; 5f 8273 xchg cx, ax ; 91 8274 pop di ; 5f 8275 xchg cx, ax ; 91 8276 pop di ; 5f 8277 _int13_harddisk: ; 0xf5ba5 LB 0x44a 8152 8278 push bp ; 55 8153 8279 mov bp, sp ; 89 e5 … … 8155 8281 mov dx, strict word 0000eh ; ba 0e 00 8156 8282 mov ax, strict word 00040h ; b8 40 00 8157 call 01 6d4h ; e8 0a bc8283 call 01765h ; e8 b1 bb 8158 8284 mov si, 00122h ; be 22 01 8159 8285 mov word [bp-004h], ax ; 89 46 fc … … 8161 8287 mov dx, 0008eh ; ba 8e 00 8162 8288 mov ax, strict word 00040h ; b8 40 00 8163 call 01 6c6h ; e8 ebbb8289 call 01757h ; e8 92 bb 8164 8290 mov ax, word [bp+00eh] ; 8b 46 0e 8165 8291 xor ah, ah ; 30 e4 8166 8292 cmp ax, 00080h ; 3d 80 00 8167 jc short 05 aeah ; 72 058293 jc short 05bd4h ; 72 05 8168 8294 cmp ax, 00090h ; 3d 90 00 8169 jc short 05b 08h ; 72 1e8295 jc short 05bf2h ; 72 1e 8170 8296 mov ax, word [bp+00eh] ; 8b 46 0e 8171 8297 xor ah, ah ; 30 e4 … … 8174 8300 shr ax, 008h ; c1 e8 08 8175 8301 push ax ; 50 8176 push 006 7eh ; 68 7e068177 push 006 8dh ; 68 8d068302 push 00690h ; 68 90 06 8303 push 0069fh ; 68 9f 06 8178 8304 push strict byte 00004h ; 6a 04 8179 call 01 9dah ; e8 d8be8305 call 01a6bh ; e8 7f be 8180 8306 add sp, strict byte 0000ah ; 83 c4 0a 8181 jmp near 05 ec2h ; e9 ba 038307 jmp near 05fach ; e9 ba 03 8182 8308 mov ax, word [bp+00eh] ; 8b 46 0e 8183 8309 xor ah, ah ; 30 e4 … … 8188 8314 mov byte [bp-002h], dl ; 88 56 fe 8189 8315 cmp dl, 010h ; 80 fa 10 8190 jc short 05 b31h ; 72 108316 jc short 05c1bh ; 72 10 8191 8317 push ax ; 50 8192 8318 mov ax, word [bp+016h] ; 8b 46 16 8193 8319 shr ax, 008h ; c1 e8 08 8194 8320 push ax ; 50 8195 push 006 7eh ; 68 7e068196 push 006 b8h ; 68 b8068197 jmp short 05 afdh ; eb cc8321 push 00690h ; 68 90 06 8322 push 006cah ; 68 ca 06 8323 jmp short 05be7h ; eb cc 8198 8324 mov bx, word [bp+016h] ; 8b 5e 16 8199 8325 shr bx, 008h ; c1 eb 08 8200 8326 cmp bx, strict byte 00018h ; 83 fb 18 8201 jnbe near 05 ea7h ; 0f 87 69 038327 jnbe near 05f91h ; 0f 87 69 03 8202 8328 add bx, bx ; 01 db 8203 jmp word [cs:bx+05 a89h] ; 2e ff a7 89 5a8329 jmp word [cs:bx+05b73h] ; 2e ff a7 73 5b 8204 8330 cmp byte [bp-002h], 008h ; 80 7e fe 08 8205 jnc near 05 b54h ; 0f 83 07 008331 jnc near 05c3eh ; 0f 83 07 00 8206 8332 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8207 call 01 de4h ; e8 90c28333 call 01e75h ; e8 37 c2 8208 8334 mov byte [bp+017h], 000h ; c6 46 17 00 8209 8335 xor bx, bx ; 31 db 8210 8336 mov dx, strict word 00074h ; ba 74 00 8211 8337 mov ax, strict word 00040h ; b8 40 00 8212 call 01 6c6h ; e8 63bb8338 call 01757h ; e8 0a bb 8213 8339 and byte [bp+01ch], 0feh ; 80 66 1c fe 8214 8340 mov sp, bp ; 89 ec … … 8217 8343 mov dx, strict word 00074h ; ba 74 00 8218 8344 mov ax, strict word 00040h ; b8 40 00 8219 call 01 6b8h ; e8 44 bb8345 call 01749h ; e8 eb ba 8220 8346 mov cl, al ; 88 c1 8221 8347 mov dx, word [bp+016h] ; 8b 56 16 … … 8228 8354 mov dx, strict word 00074h ; ba 74 00 8229 8355 mov ax, strict word 00040h ; b8 40 00 8230 call 01 6c6h ; e8 35 bb8356 call 01757h ; e8 dc ba 8231 8357 test cl, cl ; 84 c9 8232 je short 05 b58h ; 74 c38233 jmp near 05 edeh ; e9 46 038358 je short 05c42h ; 74 c3 8359 jmp near 05fc8h ; e9 46 03 8234 8360 mov ax, word [bp+016h] ; 8b 46 16 8235 8361 xor ah, ah ; 30 e4 … … 8251 8377 mov ax, word [bp-00ch] ; 8b 46 f4 8252 8378 cmp ax, 00080h ; 3d 80 00 8253 jnbe short 05 bd3h ; 77 048379 jnbe short 05cbdh ; 77 04 8254 8380 test ax, ax ; 85 c0 8255 jne short 05 bf6h ; 75 238256 mov bx, 00d a0h ; bb a00d8381 jne short 05ce0h ; 75 23 8382 mov bx, 00db2h ; bb b2 0d 8257 8383 mov cx, ds ; 8c d9 8258 8384 mov ax, strict word 00004h ; b8 04 00 8259 call 01 999h ; e8 bbbd8385 call 01a2ah ; e8 62 bd 8260 8386 mov ax, word [bp+016h] ; 8b 46 16 8261 8387 shr ax, 008h ; c1 e8 08 8262 8388 push ax ; 50 8263 push 006 7eh ; 68 7e068264 push 006 eah ; 68 ea068389 push 00690h ; 68 90 06 8390 push 006fch ; 68 fc 06 8265 8391 push strict byte 00004h ; 6a 04 8266 call 01 9dah ; e8 eabd8392 call 01a6bh ; e8 91 bd 8267 8393 add sp, strict byte 00008h ; 83 c4 08 8268 jmp near 05 ec2h ; e9 cc 028394 jmp near 05fach ; e9 cc 02 8269 8395 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8270 8396 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8277 8403 mov word [bp-00ah], dx ; 89 56 f6 8278 8404 cmp di, ax ; 39 c7 8279 jnc short 05 c23h ; 73 0c8405 jnc short 05d0dh ; 73 0c 8280 8406 cmp cx, word [bp-008h] ; 3b 4e f8 8281 jbe short 05 c23h ; 76 078407 jbe short 05d0dh ; 76 07 8282 8408 mov ax, word [bp-006h] ; 8b 46 fa 8283 8409 cmp ax, dx ; 39 d0 8284 jbe short 05 c51h ; 76 2e8285 mov bx, 00d a0h ; bb a00d8410 jbe short 05d3bh ; 76 2e 8411 mov bx, 00db2h ; bb b2 0d 8286 8412 mov cx, ds ; 8c d9 8287 8413 mov ax, strict word 00004h ; b8 04 00 8288 call 01 999h ; e8 6bbd8414 call 01a2ah ; e8 12 bd 8289 8415 push dword [bp-008h] ; 66 ff 76 f8 8290 8416 push di ; 57 … … 8295 8421 shr ax, 008h ; c1 e8 08 8296 8422 push ax ; 50 8297 push 006 7eh ; 68 7e068298 push 007 12h ; 68 12078423 push 00690h ; 68 90 06 8424 push 00724h ; 68 24 07 8299 8425 push strict byte 00004h ; 6a 04 8300 call 01 9dah ; e8 8fbd8426 call 01a6bh ; e8 36 bd 8301 8427 add sp, strict byte 00010h ; 83 c4 10 8302 jmp near 05 ec2h ; e9 71 028428 jmp near 05fach ; e9 71 02 8303 8429 mov ax, word [bp+016h] ; 8b 46 16 8304 8430 shr ax, 008h ; c1 e8 08 8305 8431 cmp ax, strict word 00004h ; 3d 04 00 8306 jne short 05 c5fh ; 75 038307 jmp near 05 b54h ; e9 f5 fe8432 jne short 05d49h ; 75 03 8433 jmp near 05c3eh ; e9 f5 fe 8308 8434 movzx bx, byte [bp-002h] ; 0f b6 5e fe 8309 8435 imul bx, bx, strict byte 0001ch ; 6b db 1c … … 8311 8437 add bx, si ; 01 f3 8312 8438 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8313 jne short 05 c80h ; 75 0f8439 jne short 05d6ah ; 75 0f 8314 8440 mov ax, word [es:bx+034h] ; 26 8b 47 34 8315 8441 cmp ax, word [bp-00ah] ; 3b 46 f6 8316 jne short 05 c80h ; 75 068442 jne short 05d6ah ; 75 06 8317 8443 cmp byte [bp-002h], 008h ; 80 7e fe 08 8318 jc short 05 cb0h ; 72 308444 jc short 05d9ah ; 72 30 8319 8445 mov ax, di ; 89 f8 8320 8446 xor dx, dx ; 31 d2 8321 8447 mov bx, cx ; 89 cb 8322 8448 xor cx, cx ; 31 c9 8323 call 09 ec0h ; e8 35428449 call 09fb0h ; e8 3b 42 8324 8450 xor bx, bx ; 31 db 8325 8451 add ax, word [bp-008h] ; 03 46 f8 … … 8327 8453 mov bx, word [bp-00ah] ; 8b 5e f6 8328 8454 xor cx, cx ; 31 c9 8329 call 09 ec0h ; e8 26428455 call 09fb0h ; e8 2c 42 8330 8456 xor bx, bx ; 31 db 8331 8457 add ax, word [bp-006h] ; 03 46 fa … … 8382 8508 mov word [bp+016h], bx ; 89 5e 16 8383 8509 test dl, dl ; 84 d2 8384 je near 05 b54h ; 0f 84 0a fe8385 mov bx, 00d a0h ; bb a00d8510 je near 05c3eh ; 0f 84 0a fe 8511 mov bx, 00db2h ; bb b2 0d 8386 8512 mov cx, ds ; 8c d9 8387 8513 mov ax, strict word 00004h ; b8 04 00 8388 call 01 999h ; e8 44 bc8514 call 01a2ah ; e8 eb bb 8389 8515 movzx ax, dl ; 0f b6 c2 8390 8516 push ax ; 50 … … 8392 8518 shr ax, 008h ; c1 e8 08 8393 8519 push ax ; 50 8394 push 006 7eh ; 68 7e068395 push 007 59h ; 68 59078520 push 00690h ; 68 90 06 8521 push 0076bh ; 68 6b 07 8396 8522 push strict byte 00004h ; 6a 04 8397 call 01 9dah ; e8 6fbc8523 call 01a6bh ; e8 16 bc 8398 8524 add sp, strict byte 0000ah ; 83 c4 0a 8399 8525 mov ax, word [bp+016h] ; 8b 46 16 8400 8526 xor ah, ah ; 30 e4 8401 8527 or ah, 00ch ; 80 cc 0c 8402 jmp near 05 ecah ; e9 51 018403 mov bx, 00d a0h ; bb a00d8528 jmp near 05fb4h ; e9 51 01 8529 mov bx, 00db2h ; bb b2 0d 8404 8530 mov cx, ds ; 8c d9 8405 8531 mov ax, strict word 00004h ; b8 04 00 8406 call 01 999h ; e8 15 bc8407 push 007 7ah ; 68 7a078532 call 01a2ah ; e8 bc bb 8533 push 0078ch ; 68 8c 07 8408 8534 push strict byte 00004h ; 6a 04 8409 call 01 9dah ; e8 4e bc8535 call 01a6bh ; e8 f5 bb 8410 8536 add sp, strict byte 00004h ; 83 c4 04 8411 jmp near 05 b54h ; e9 c2 fd8537 jmp near 05c3eh ; e9 c2 fd 8412 8538 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8413 8539 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8452 8578 or dx, ax ; 09 c2 8453 8579 mov word [bp+012h], dx ; 89 56 12 8454 jmp near 05 b54h ; e9 4c fd8580 jmp near 05c3eh ; e9 4c fd 8455 8581 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8456 8582 cwd ; 99 … … 8468 8594 and AL, strict byte 0c0h ; 24 c0 8469 8595 cmp AL, strict byte 040h ; 3c 40 8470 jne short 05 e2dh ; 75 038471 jmp near 05 b54h ; e9 27 fd8596 jne short 05f17h ; 75 03 8597 jmp near 05c3eh ; e9 27 fd 8472 8598 mov ax, word [bp+016h] ; 8b 46 16 8473 8599 xor ah, ah ; 30 e4 8474 8600 or ah, 0aah ; 80 cc aa 8475 jmp near 05 ecah ; e9 92 008601 jmp near 05fb4h ; e9 92 00 8476 8602 movzx ax, byte [bp-002h] ; 0f b6 46 fe 8477 8603 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8487 8613 mov bx, word [bp-008h] ; 8b 5e f8 8488 8614 xor cx, cx ; 31 c9 8489 call 09 ec0h ; e8 5e408615 call 09fb0h ; e8 64 40 8490 8616 mov bx, word [bp-006h] ; 8b 5e fa 8491 8617 xor cx, cx ; 31 c9 8492 call 09 ec0h ; e8 56408618 call 09fb0h ; e8 5c 40 8493 8619 mov word [bp-010h], ax ; 89 46 f0 8494 8620 mov word [bp-00eh], dx ; 89 56 f2 … … 8499 8625 or ah, 003h ; 80 cc 03 8500 8626 mov word [bp+016h], ax ; 89 46 16 8501 jmp near 05 b58h ; e9 d4 fc8502 mov bx, 00d a0h ; bb a00d8627 jmp near 05c42h ; e9 d4 fc 8628 mov bx, 00db2h ; bb b2 0d 8503 8629 mov cx, ds ; 8c d9 8504 8630 mov ax, strict word 00004h ; b8 04 00 8505 call 01 999h ; e8 0a bb8631 call 01a2ah ; e8 b1 ba 8506 8632 mov ax, word [bp+016h] ; 8b 46 16 8507 8633 shr ax, 008h ; c1 e8 08 8508 8634 push ax ; 50 8509 push 006 7eh ; 68 7e068510 push 007 94h ; 68 94078635 push 00690h ; 68 90 06 8636 push 007a6h ; 68 a6 07 8511 8637 push strict byte 00004h ; 6a 04 8512 call 01 9dah ; e8 39 bb8638 call 01a6bh ; e8 e0 ba 8513 8639 add sp, strict byte 00008h ; 83 c4 08 8514 jmp near 05 b54h ; e9 ad fc8515 mov bx, 00d a0h ; bb a00d8640 jmp near 05c3eh ; e9 ad fc 8641 mov bx, 00db2h ; bb b2 0d 8516 8642 mov cx, ds ; 8c d9 8517 8643 mov ax, strict word 00004h ; b8 04 00 8518 call 01 999h ; e8 e7ba8644 call 01a2ah ; e8 8e ba 8519 8645 mov ax, word [bp+016h] ; 8b 46 16 8520 8646 shr ax, 008h ; c1 e8 08 8521 8647 push ax ; 50 8522 push 006 7eh ; 68 7e068523 push 007 c7h ; 68 c7078524 jmp near 05 bebh ; e9 29 fd8648 push 00690h ; 68 90 06 8649 push 007d9h ; 68 d9 07 8650 jmp near 05cd5h ; e9 29 fd 8525 8651 mov ax, word [bp+016h] ; 8b 46 16 8526 8652 xor ah, ah ; 30 e4 … … 8532 8658 mov dx, strict word 00074h ; ba 74 00 8533 8659 mov ax, strict word 00040h ; b8 40 00 8534 call 01 6c6h ; e8 e8b78660 call 01757h ; e8 8f b7 8535 8661 or byte [bp+01ch], 001h ; 80 4e 1c 01 8536 jmp near 05b67h ; e9 82 fc 8537 mov word [0bb5fh], ax ; a3 5f bb 8538 pop di ; 5f 8539 mov bx, 0bb5fh ; bb 5f bb 8540 pop di ; 5f 8541 db 08fh, 063h, 010h 8542 ; pop word [bp+di+010h] ; 8f 63 10 8662 jmp near 05c51h ; e9 82 fc 8663 lea sp, [bx+si-05bh] ; 8d 60 a5 8664 pushaw ; 60 8665 movsw ; a5 8666 pushaw ; 60 8667 movsw ; a5 8668 pushaw ; 60 8669 jns short 0603dh ; 79 64 8670 cli ; fa 8543 8671 popaw ; 61 8544 mov bx, 0165fh ; bb 5f 16 8545 popaw ; 61 8546 db 08fh, 063h, 0deh 8547 ; pop word [bp+di-022h] ; 8f 63 de 8548 arpl si, bx ; 63 de 8549 arpl si, bx ; 63 de 8550 arpl si, bx ; 63 de 8551 arpl [bp-0219dh], sp ; 63 a6 63 de 8552 arpl si, bx ; 63 de 8553 db 063h 8554 _int13_harddisk_ext: ; 0xf5f05 LB 0x4f4 8672 movsw ; a5 8673 pushaw ; 60 8674 add byte [bp+si+079h], ah ; 00 62 79 8675 db 064h, 0c8h, 064h, 0c8h, 064h 8676 ; fs enter 0c864h, 064h ; 64 c8 64 c8 64 8677 enter 0c864h, 064h ; c8 64 c8 64 8678 nop ; 90 8679 db 064h, 0c8h, 064h, 0c8h, 064h 8680 ; fs enter 0c864h, 064h ; 64 c8 64 c8 64 8681 _int13_harddisk_ext: ; 0xf5fef LB 0x4f4 8555 8682 push bp ; 55 8556 8683 mov bp, sp ; 89 e5 … … 8558 8685 mov dx, strict word 0000eh ; ba 0e 00 8559 8686 mov ax, strict word 00040h ; b8 40 00 8560 call 01 6d4h ; e8 c0b78687 call 01765h ; e8 67 b7 8561 8688 mov word [bp-014h], ax ; 89 46 ec 8562 8689 mov dx, strict word 0000eh ; ba 0e 00 8563 8690 mov ax, strict word 00040h ; b8 40 00 8564 call 01 6d4h ; e8 b4b78691 call 01765h ; e8 5b b7 8565 8692 mov word [bp-008h], 00122h ; c7 46 f8 22 01 8566 8693 mov word [bp-006h], ax ; 89 46 fa … … 8568 8695 mov dx, 0008eh ; ba 8e 00 8569 8696 mov ax, strict word 00040h ; b8 40 00 8570 call 01 6c6h ; e8 93b78697 call 01757h ; e8 3a b7 8571 8698 mov ax, word [bp+00eh] ; 8b 46 0e 8572 8699 xor ah, ah ; 30 e4 8573 8700 cmp ax, 00080h ; 3d 80 00 8574 jc short 0 5f42h ; 72 058701 jc short 0602ch ; 72 05 8575 8702 cmp ax, 00090h ; 3d 90 00 8576 jc short 0 5f60h ; 72 1e8703 jc short 0604ah ; 72 1e 8577 8704 mov ax, word [bp+00eh] ; 8b 46 0e 8578 8705 xor ah, ah ; 30 e4 … … 8581 8708 shr ax, 008h ; c1 e8 08 8582 8709 push ax ; 50 8583 push 00 7f5h ; 68 f5 078584 push 006 8dh ; 68 8d068710 push 00807h ; 68 07 08 8711 push 0069fh ; 68 9f 06 8585 8712 push strict byte 00004h ; 6a 04 8586 call 01 9dah ; e8 80ba8713 call 01a6bh ; e8 27 ba 8587 8714 add sp, strict byte 0000ah ; 83 c4 0a 8588 jmp near 06 3bch ; e9 5c 048715 jmp near 064a6h ; e9 5c 04 8589 8716 mov ax, word [bp+00eh] ; 8b 46 0e 8590 8717 xor ah, ah ; 30 e4 … … 8594 8721 mov byte [bp-004h], dl ; 88 56 fc 8595 8722 cmp dl, 010h ; 80 fa 10 8596 jc short 0 5f87h ; 72 108723 jc short 06071h ; 72 10 8597 8724 push ax ; 50 8598 8725 mov ax, word [bp+016h] ; 8b 46 16 8599 8726 shr ax, 008h ; c1 e8 08 8600 8727 push ax ; 50 8601 push 00 7f5h ; 68 f5 078602 push 006 b8h ; 68 b8068603 jmp short 0 5f55h ; eb ce8728 push 00807h ; 68 07 08 8729 push 006cah ; 68 ca 06 8730 jmp short 0603fh ; eb ce 8604 8731 mov bx, word [bp+016h] ; 8b 5e 16 8605 8732 shr bx, 008h ; c1 eb 08 8606 8733 sub bx, strict byte 00041h ; 83 eb 41 8607 8734 cmp bx, strict byte 0000fh ; 83 fb 0f 8608 jnbe near 06 3deh ; 0f 87 47 048735 jnbe near 064c8h ; 0f 87 47 04 8609 8736 add bx, bx ; 01 db 8610 8737 mov ax, word [bp+016h] ; 8b 46 16 8611 8738 xor ah, ah ; 30 e4 8612 jmp word [cs:bx+05 ee5h] ; 2e ff a7 e5 5e8739 jmp word [cs:bx+05fcfh] ; 2e ff a7 cf 5f 8613 8740 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 8614 8741 mov ax, word [bp+016h] ; 8b 46 16 … … 8617 8744 mov word [bp+016h], ax ; 89 46 16 8618 8745 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 8619 jmp near 06 393h ; e9 d8 038746 jmp near 0647dh ; e9 d8 03 8620 8747 mov di, word [bp+00ah] ; 8b 7e 0a 8621 8748 mov es, [bp+004h] ; 8e 46 04 … … 8633 8760 xor bx, bx ; 31 db 8634 8761 mov si, strict word 00020h ; be 20 00 8635 call 0 9f50h ; e8 623f8762 call 0a040h ; e8 68 3f 8636 8763 mov word [bp-00eh], bx ; 89 5e f2 8637 8764 mov bx, word [es:di+008h] ; 26 8b 5d 08 … … 8645 8772 mov bl, byte [es:di+022h] ; 26 8a 5d 22 8646 8773 cmp ax, word [es:di+03ch] ; 26 3b 45 3c 8647 jnbe short 06 035h ; 77 228648 jne short 06 058h ; 75 438774 jnbe short 0611fh ; 77 22 8775 jne short 06142h ; 75 43 8649 8776 mov si, word [bp-00eh] ; 8b 76 f2 8650 8777 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8651 jnbe short 06 035h ; 77 178778 jnbe short 0611fh ; 77 17 8652 8779 mov si, word [bp-00eh] ; 8b 76 f2 8653 8780 cmp si, word [es:di+03ah] ; 26 3b 75 3a 8654 jne short 06 058h ; 75 318781 jne short 06142h ; 75 31 8655 8782 cmp cx, word [es:di+038h] ; 26 3b 4d 38 8656 jnbe short 06 035h ; 77 088657 jne short 06 058h ; 75 298783 jnbe short 0611fh ; 77 08 8784 jne short 06142h ; 75 29 8658 8785 cmp dx, word [es:di+036h] ; 26 3b 55 36 8659 jc short 06 058h ; 72 238660 mov bx, 00d a0h ; bb a00d8786 jc short 06142h ; 72 23 8787 mov bx, 00db2h ; bb b2 0d 8661 8788 mov cx, ds ; 8c d9 8662 8789 mov ax, strict word 00004h ; b8 04 00 8663 call 01 999h ; e8 59b98790 call 01a2ah ; e8 00 b9 8664 8791 mov ax, word [bp+016h] ; 8b 46 16 8665 8792 shr ax, 008h ; c1 e8 08 8666 8793 push ax ; 50 8667 push 00 7f5h ; 68 f5 078668 push 008 08h ; 68 08088794 push 00807h ; 68 07 08 8795 push 0081ah ; 68 1a 08 8669 8796 push strict byte 00004h ; 6a 04 8670 call 01 9dah ; e8 88b98797 call 01a6bh ; e8 2f b9 8671 8798 add sp, strict byte 00008h ; 83 c4 08 8672 jmp near 06 3bch ; e9 64 038799 jmp near 064a6h ; e9 64 03 8673 8800 mov di, word [bp+016h] ; 8b 7e 16 8674 8801 shr di, 008h ; c1 ef 08 8675 8802 cmp di, strict byte 00044h ; 83 ff 44 8676 je near 06 38fh ; 0f 84 2a 038803 je near 06479h ; 0f 84 2a 03 8677 8804 cmp di, strict byte 00047h ; 83 ff 47 8678 je near 06 38fh ; 0f 84 23 038805 je near 06479h ; 0f 84 23 03 8679 8806 les si, [bp-008h] ; c4 76 f8 8680 8807 db 066h, 026h, 0c7h, 044h, 018h, 000h, 000h, 000h, 000h … … 8713 8840 mov word [es:bx+002h], ax ; 26 89 47 02 8714 8841 test dl, dl ; 84 d2 8715 je near 06 38fh ; 0f 84 a8 028716 mov bx, 00d a0h ; bb a00d8842 je near 06479h ; 0f 84 a8 02 8843 mov bx, 00db2h ; bb b2 0d 8717 8844 mov cx, ds ; 8c d9 8718 8845 mov ax, strict word 00004h ; b8 04 00 8719 call 01 999h ; e8 a7b88846 call 01a2ah ; e8 4e b8 8720 8847 movzx ax, dl ; 0f b6 c2 8721 8848 push ax ; 50 8722 8849 push di ; 57 8723 push 00 7f5h ; 68 f5 078724 push 007 59h ; 68 59078850 push 00807h ; 68 07 08 8851 push 0076bh ; 68 6b 07 8725 8852 push strict byte 00004h ; 6a 04 8726 call 01 9dah ; e8 d8b88853 call 01a6bh ; e8 7f b8 8727 8854 add sp, strict byte 0000ah ; 83 c4 0a 8728 8855 mov ax, word [bp+016h] ; 8b 46 16 8729 8856 xor ah, ah ; 30 e4 8730 8857 or ah, 00ch ; 80 cc 0c 8731 jmp near 06 3c4h ; e9 b4 028858 jmp near 064aeh ; e9 b4 02 8732 8859 or ah, 0b2h ; 80 cc b2 8733 jmp near 06 3c4h ; e9 ae 028860 jmp near 064aeh ; e9 ae 02 8734 8861 mov bx, word [bp+00ah] ; 8b 5e 0a 8735 8862 mov ax, word [bp+004h] ; 8b 46 04 … … 8741 8868 mov word [bp-010h], ax ; 89 46 f0 8742 8869 cmp ax, strict word 0001ah ; 3d 1a 00 8743 jc near 06 3bch ; 0f 82 89 028744 jc near 06 1d2h ; 0f 82 9b 008870 jc near 064a6h ; 0f 82 89 02 8871 jc near 062bch ; 0f 82 9b 00 8745 8872 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8746 8873 imul ax, ax, strict byte 0001ch ; 6b c0 1c … … 8784 8911 mov bx, word [bp-00eh] ; 8b 5e f2 8785 8912 mov si, strict word 00020h ; be 20 00 8786 call 0 9f40h ; e8 783d8913 call 0a030h ; e8 7e 3d 8787 8914 mov bx, di ; 89 fb 8788 8915 mov word [es:bx+014h], dx ; 26 89 57 14 8789 8916 mov word [es:bx+016h], cx ; 26 89 4f 16 8790 8917 cmp word [bp-010h], strict byte 0001eh ; 83 7e f0 1e 8791 jc near 06 2d7h ; 0f 82 fd 008918 jc near 063c1h ; 0f 82 fd 00 8792 8919 mov es, [bp-00ah] ; 8e 46 f6 8793 8920 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 8815 8942 mov al, byte [es:bx+027h] ; 26 8a 47 27 8816 8943 test al, al ; 84 c0 8817 jne short 06 231h ; 75 048944 jne short 0631bh ; 75 04 8818 8945 xor bx, bx ; 31 db 8819 jmp short 06 234h ; eb 038946 jmp short 0631eh ; eb 03 8820 8947 mov bx, strict word 00008h ; bb 08 00 8821 8948 or bl, 010h ; 80 cb 10 … … 8831 8958 or bx, cx ; 09 cb 8832 8959 cmp AL, strict byte 003h ; 3c 03 8833 jne short 06 255h ; 75 058960 jne short 0633fh ; 75 05 8834 8961 mov ax, strict word 00003h ; b8 03 00 8835 jmp short 06 257h ; eb 028962 jmp short 06341h ; eb 02 8836 8963 xor ax, ax ; 31 c0 8837 8964 or bx, ax ; 09 c3 … … 8859 8986 xor bl, bl ; 30 db 8860 8987 xor bh, bh ; 30 ff 8861 jmp short 06 2bah ; eb 058988 jmp short 063a4h ; eb 05 8862 8989 cmp bh, 00fh ; 80 ff 0f 8863 jnc short 06 2cdh ; 73 138990 jnc short 063b7h ; 73 13 8864 8991 movzx dx, bh ; 0f b6 d7 8865 8992 add dx, 00356h ; 81 c2 56 03 8866 8993 mov ax, word [bp-014h] ; 8b 46 ec 8867 call 01 6b8h ; e8 f1b38994 call 01749h ; e8 98 b3 8868 8995 add bl, al ; 00 c3 8869 8996 db 0feh, 0c7h 8870 8997 ; inc bh ; fe c7 8871 jmp short 06 2b5h ; eb e88998 jmp short 0639fh ; eb e8 8872 8999 neg bl ; f6 db 8873 9000 les si, [bp-008h] ; c4 76 f8 8874 9001 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 8875 9002 cmp word [bp-010h], strict byte 00042h ; 83 7e f0 42 8876 jc near 06 38fh ; 0f 82 b0 009003 jc near 06479h ; 0f 82 b0 00 8877 9004 movzx ax, byte [bp-004h] ; 0f b6 46 fc 8878 9005 cwd ; 99 … … 8892 9019 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 8893 9020 test al, al ; 84 c0 8894 jne short 06 320h ; 75 099021 jne short 0640ah ; 75 09 8895 9022 db 066h, 026h, 0c7h, 045h, 024h, 049h, 053h, 041h, 020h 8896 9023 ; mov dword [es:di+024h], strict dword 020415349h ; 66 26 c7 45 24 49 53 41 20 … … 8901 9028 ; mov dword [es:di+02ch], strict dword 020202020h ; 66 26 c7 45 2c 20 20 20 20 8902 9029 test al, al ; 84 c0 8903 jne short 06 34ch ; 75 139030 jne short 06436h ; 75 13 8904 9031 mov word [es:di+030h], dx ; 26 89 55 30 8905 9032 db 066h, 026h, 0c7h, 045h, 032h, 000h, 000h, 000h, 000h … … 8916 9043 xor bl, bl ; 30 db 8917 9044 mov BH, strict byte 01eh ; b7 1e 8918 jmp short 06 374h ; eb 059045 jmp short 0645eh ; eb 05 8919 9046 cmp bh, 040h ; 80 ff 40 8920 jnc short 06 386h ; 73 129047 jnc short 06470h ; 73 12 8921 9048 movzx dx, bh ; 0f b6 d7 8922 9049 add dx, word [bp+00ah] ; 03 56 0a 8923 9050 mov ax, word [bp+004h] ; 8b 46 04 8924 call 01 6b8h ; e8 38 b39051 call 01749h ; e8 df b2 8925 9052 add bl, al ; 00 c3 8926 9053 db 0feh, 0c7h 8927 9054 ; inc bh ; fe c7 8928 jmp short 06 36fh ; eb e99055 jmp short 06459h ; eb e9 8929 9056 neg bl ; f6 db 8930 9057 mov es, [bp-00ah] ; 8e 46 f6 … … 8934 9061 mov dx, strict word 00074h ; ba 74 00 8935 9062 mov ax, strict word 00040h ; b8 40 00 8936 call 01 6c6h ; e8 28 b39063 call 01757h ; e8 cf b2 8937 9064 and byte [bp+01ch], 0feh ; 80 66 1c fe 8938 9065 mov sp, bp ; 89 ec … … 8940 9067 retn ; c3 8941 9068 cmp ax, strict word 00006h ; 3d 06 00 8942 je short 06 38fh ; 74 e49069 je short 06479h ; 74 e4 8943 9070 cmp ax, strict word 00001h ; 3d 01 00 8944 jc short 06 3bch ; 72 0c8945 jbe short 06 38fh ; 76 dd9071 jc short 064a6h ; 72 0c 9072 jbe short 06479h ; 76 dd 8946 9073 cmp ax, strict word 00003h ; 3d 03 00 8947 jc short 06 3bch ; 72 059074 jc short 064a6h ; 72 05 8948 9075 cmp ax, strict word 00004h ; 3d 04 00 8949 jbe short 06 38fh ; 76 d39076 jbe short 06479h ; 76 d3 8950 9077 mov ax, word [bp+016h] ; 8b 46 16 8951 9078 xor ah, ah ; 30 e4 … … 8957 9084 mov dx, strict word 00074h ; ba 74 00 8958 9085 mov ax, strict word 00040h ; b8 40 00 8959 call 01 6c6h ; e8 eeb29086 call 01757h ; e8 95 b2 8960 9087 or byte [bp+01ch], 001h ; 80 4e 1c 01 8961 jmp short 06 3a2h ; eb c48962 mov bx, 00d a0h ; bb a00d9088 jmp short 0648ch ; eb c4 9089 mov bx, 00db2h ; bb b2 0d 8963 9090 mov cx, ds ; 8c d9 8964 9091 mov ax, strict word 00004h ; b8 04 00 8965 call 01 999h ; e8 b0b59092 call 01a2ah ; e8 57 b5 8966 9093 mov ax, word [bp+016h] ; 8b 46 16 8967 9094 shr ax, 008h ; c1 e8 08 8968 9095 push ax ; 50 8969 push 00 7f5h ; 68 f5 078970 push 007 c7h ; 68 c7078971 jmp near 06 04dh ; e9 54 fc8972 _int14_function: ; 0xf6 3f9LB 0x15a9096 push 00807h ; 68 07 08 9097 push 007d9h ; 68 d9 07 9098 jmp near 06137h ; e9 54 fc 9099 _int14_function: ; 0xf64e3 LB 0x15a 8973 9100 push bp ; 55 8974 9101 mov bp, sp ; 89 e5 … … 8978 9105 add dx, dx ; 01 d2 8979 9106 mov ax, strict word 00040h ; b8 40 00 8980 call 01 6d4h ; e8 cbb29107 call 01765h ; e8 72 b2 8981 9108 mov si, ax ; 89 c6 8982 9109 mov bx, ax ; 89 c3 … … 8984 9111 add dx, strict byte 0007ch ; 83 c2 7c 8985 9112 mov ax, strict word 00040h ; b8 40 00 8986 call 01 6b8h ; e8 9fb29113 call 01749h ; e8 46 b2 8987 9114 mov cl, al ; 88 c1 8988 9115 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 8989 jnc near 06 549h ; 0f 83 26 019116 jnc near 06633h ; 0f 83 26 01 8990 9117 test si, si ; 85 f6 8991 jbe near 06 549h ; 0f 86 20 019118 jbe near 06633h ; 0f 86 20 01 8992 9119 mov al, byte [bp+013h] ; 8a 46 13 8993 9120 cmp AL, strict byte 001h ; 3c 01 8994 jc short 06 441h ; 72 118995 jbe short 06 49ah ; 76 689121 jc short 0652bh ; 72 11 9122 jbe short 06584h ; 76 68 8996 9123 cmp AL, strict byte 003h ; 3c 03 8997 je near 06 532h ; 0f 84 fa 009124 je near 0661ch ; 0f 84 fa 00 8998 9125 cmp AL, strict byte 002h ; 3c 02 8999 je near 06 4e8h ; 0f 84 aa 009000 jmp near 06 543h ; e9 02 019126 je near 065d2h ; 0f 84 aa 00 9127 jmp near 0662dh ; e9 02 01 9001 9128 test al, al ; 84 c0 9002 jne near 06 543h ; 0f 85 fc 009129 jne near 0662dh ; 0f 85 fc 00 9003 9130 lea dx, [bx+003h] ; 8d 57 03 9004 9131 in AL, DX ; ec … … 9010 9137 mov al, byte [bp+012h] ; 8a 46 12 9011 9138 test AL, strict byte 0e0h ; a8 e0 9012 jne short 06 466h ; 75 0c9139 jne short 06550h ; 75 0c 9013 9140 mov AL, strict byte 017h ; b0 17 9014 9141 mov dx, bx ; 89 da … … 9017 9144 mov dx, si ; 89 f2 9018 9145 out DX, AL ; ee 9019 jmp short 06 47ch ; eb 169146 jmp short 06566h ; eb 16 9020 9147 and AL, strict byte 0e0h ; 24 e0 9021 9148 movzx cx, al ; 0f b6 c8 … … 9042 9169 ; sub ah, ah ; 2a e4 9043 9170 mov byte [bp+012h], al ; 88 46 12 9044 jmp near 06 524h ; e9 8a 009171 jmp near 0660eh ; e9 8a 00 9045 9172 mov dx, strict word 0006ch ; ba 6c 00 9046 9173 mov ax, strict word 00040h ; b8 40 00 9047 call 01 6d4h ; e8 31 b29174 call 01765h ; e8 d8 b1 9048 9175 mov si, ax ; 89 c6 9049 9176 lea dx, [bx+005h] ; 8d 57 05 … … 9053 9180 and ax, strict word 00060h ; 25 60 00 9054 9181 cmp ax, strict word 00060h ; 3d 60 00 9055 je short 06 4cah ; 74 179182 je short 065b4h ; 74 17 9056 9183 test cl, cl ; 84 c9 9057 je short 06 4cah ; 74 139184 je short 065b4h ; 74 13 9058 9185 mov dx, strict word 0006ch ; ba 6c 00 9059 9186 mov ax, strict word 00040h ; b8 40 00 9060 call 01 6d4h ; e8 14 b29187 call 01765h ; e8 bb b1 9061 9188 cmp ax, si ; 39 f0 9062 je short 06 4a5h ; 74 e19189 je short 0658fh ; 74 e1 9063 9190 mov si, ax ; 89 c6 9064 9191 db 0feh, 0c9h 9065 9192 ; dec cl ; fe c9 9066 jmp short 06 4a5h ; eb db9193 jmp short 0658fh ; eb db 9067 9194 test cl, cl ; 84 c9 9068 je short 06 4d4h ; 74 069195 je short 065beh ; 74 06 9069 9196 mov al, byte [bp+012h] ; 8a 46 12 9070 9197 mov dx, bx ; 89 da … … 9076 9203 mov byte [bp+013h], al ; 88 46 13 9077 9204 test cl, cl ; 84 c9 9078 jne short 06 524h ; 75 439205 jne short 0660eh ; 75 43 9079 9206 or AL, strict byte 080h ; 0c 80 9080 9207 mov byte [bp+013h], al ; 88 46 13 9081 jmp short 06 524h ; eb 3c9208 jmp short 0660eh ; eb 3c 9082 9209 mov dx, strict word 0006ch ; ba 6c 00 9083 9210 mov ax, strict word 00040h ; b8 40 00 9084 call 01 6d4h ; e8 e3b19211 call 01765h ; e8 8a b1 9085 9212 mov si, ax ; 89 c6 9086 9213 lea dx, [bx+005h] ; 8d 57 05 … … 9089 9216 ; sub ah, ah ; 2a e4 9090 9217 test AL, strict byte 001h ; a8 01 9091 jne short 065 14h ; 75 179218 jne short 065feh ; 75 17 9092 9219 test cl, cl ; 84 c9 9093 je short 065 14h ; 74 139220 je short 065feh ; 74 13 9094 9221 mov dx, strict word 0006ch ; ba 6c 00 9095 9222 mov ax, strict word 00040h ; b8 40 00 9096 call 01 6d4h ; e8 cab19223 call 01765h ; e8 71 b1 9097 9224 cmp ax, si ; 39 f0 9098 je short 06 4f3h ; 74 e59225 je short 065ddh ; 74 e5 9099 9226 mov si, ax ; 89 c6 9100 9227 db 0feh, 0c9h 9101 9228 ; dec cl ; fe c9 9102 jmp short 06 4f3h ; eb df9229 jmp short 065ddh ; eb df 9103 9230 test cl, cl ; 84 c9 9104 je short 06 52ah ; 74 129231 je short 06614h ; 74 12 9105 9232 mov byte [bp+013h], 000h ; c6 46 13 00 9106 9233 mov dx, bx ; 89 da … … 9110 9237 mov byte [bp+012h], al ; 88 46 12 9111 9238 and byte [bp+01ch], 0feh ; 80 66 1c fe 9112 jmp short 06 54dh ; eb 239239 jmp short 06637h ; eb 23 9113 9240 lea dx, [bx+005h] ; 8d 57 05 9114 9241 in AL, DX ; ec 9115 9242 db 02ah, 0e4h 9116 9243 ; sub ah, ah ; 2a e4 9117 jmp short 06 4e3h ; eb b19244 jmp short 065cdh ; eb b1 9118 9245 lea dx, [si+005h] ; 8d 54 05 9119 9246 in AL, DX ; ec … … 9125 9252 db 02ah, 0e4h 9126 9253 ; sub ah, ah ; 2a e4 9127 jmp short 06 521h ; eb de9254 jmp short 0660bh ; eb de 9128 9255 or byte [bp+01ch], 001h ; 80 4e 1c 01 9129 jmp short 06 54dh ; eb 049256 jmp short 06637h ; eb 04 9130 9257 or byte [bp+01ch], 001h ; 80 4e 1c 01 9131 9258 lea sp, [bp-002h] ; 8d 66 fe … … 9133 9260 pop bp ; 5d 9134 9261 retn ; c3 9135 timer_wait_: ; 0xf6 553LB 0x439262 timer_wait_: ; 0xf663d LB 0x43 9136 9263 push bp ; 55 9137 9264 mov bp, sp ; 89 e5 … … 9141 9268 mov bx, strict word 0000fh ; bb 0f 00 9142 9269 xor cx, cx ; 31 c9 9143 call 09f 00h ; e8 9f399270 call 09ff0h ; e8 a5 39 9144 9271 mov cx, ax ; 89 c1 9145 9272 mov bx, dx ; 89 d3 … … 9153 9280 adc bx, strict byte 0ffffh ; 83 d3 ff 9154 9281 cmp bx, strict byte 0ffffh ; 83 fb ff 9155 jne short 06 580h ; 75 059282 jne short 0666ah ; 75 05 9156 9283 cmp cx, strict byte 0ffffh ; 83 f9 ff 9157 je short 06 58fh ; 74 0f9284 je short 06679h ; 74 0f 9158 9285 mov dx, strict word 00061h ; ba 61 00 9159 9286 in AL, DX ; ec … … 9162 9289 and AL, strict byte 010h ; 24 10 9163 9290 cmp al, byte [bp-006h] ; 3a 46 fa 9164 jne short 06 580h ; 75 f39165 jmp short 06 570h ; eb e19291 jne short 0666ah ; 75 f3 9292 jmp short 0665ah ; eb e1 9166 9293 lea sp, [bp-004h] ; 8d 66 fc 9167 9294 pop cx ; 59 … … 9169 9296 pop bp ; 5d 9170 9297 retn ; c3 9171 set_enable_a20_: ; 0xf6 596LB 0x2c9298 set_enable_a20_: ; 0xf6680 LB 0x2c 9172 9299 push bp ; 55 9173 9300 mov bp, sp ; 89 e5 … … 9182 9309 mov cl, al ; 88 c1 9183 9310 test bx, bx ; 85 db 9184 je short 06 5afh ; 74 059311 je short 06699h ; 74 05 9185 9312 or AL, strict byte 002h ; 0c 02 9186 9313 out DX, AL ; ee 9187 jmp short 06 5b2h ; eb 039314 jmp short 0669ch ; eb 03 9188 9315 and AL, strict byte 0fdh ; 24 fd 9189 9316 out DX, AL ; ee … … 9198 9325 pop bp ; 5d 9199 9326 retn ; c3 9200 set_e820_range_: ; 0xf6 5c2LB 0x899327 set_e820_range_: ; 0xf66ac LB 0x89 9201 9328 push si ; 56 9202 9329 push bp ; 55 … … 9227 9354 retn 0000ah ; c2 0a 00 9228 9355 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9229 db 0 4fh, 069h, 088h, 066h, 09bh, 066h, 030h, 067h, 036h, 067h, 03bh, 067h, 040h, 067h, 0e2h, 067h9230 db 0 0ch, 068h, 029h, 067h, 029h, 067h, 0d9h, 068h, 001h, 069h, 014h, 069h, 023h, 069h, 030h, 067h9231 db 0 2ah, 069h9232 _int15_function: ; 0xf6 64bLB 0x3369356 db 039h, 06ah, 072h, 067h, 085h, 067h, 01ah, 068h, 020h, 068h, 025h, 068h, 02ah, 068h, 0cch, 068h 9357 db 0f6h, 068h, 013h, 068h, 013h, 068h, 0c3h, 069h, 0ebh, 069h, 0feh, 069h, 00dh, 06ah, 01ah, 068h 9358 db 014h, 06ah 9359 _int15_function: ; 0xf6735 LB 0x336 9233 9360 push bp ; 55 9234 9361 mov bp, sp ; 89 e5 … … 9238 9365 shr ax, 008h ; c1 e8 08 9239 9366 cmp ax, 000ech ; 3d ec 00 9240 jnbe near 06 94fh ; 0f 87 f2 029367 jnbe near 06a39h ; 0f 87 f2 02 9241 9368 push CS ; 0e 9242 9369 pop ES ; 07 9243 9370 mov cx, strict word 00011h ; b9 11 00 9244 mov di, 06 619h ; bf 19 669371 mov di, 06703h ; bf 03 67 9245 9372 repne scasb ; f2 ae 9246 9373 sal cx, 1 ; d1 e1 9247 9374 mov di, cx ; 89 cf 9248 mov si, word [cs:di+06 629h] ; 2e 8b b5 29 669375 mov si, word [cs:di+06713h] ; 2e 8b b5 13 67 9249 9376 mov ax, word [bp+012h] ; 8b 46 12 9250 9377 xor ah, ah ; 30 e4 … … 9259 9386 xor ah, ah ; 30 e4 9260 9387 cmp ax, 000c0h ; 3d c0 00 9261 jne near 06 94fh ; 0f 85 bb 029388 jne near 06a39h ; 0f 85 bb 02 9262 9389 or byte [bp+018h], 001h ; 80 4e 18 01 9263 jmp near 06 8f8h ; e9 5d 029390 jmp near 069e2h ; e9 5d 02 9264 9391 mov dx, ax ; 89 c2 9265 9392 cmp ax, strict word 00001h ; 3d 01 00 9266 jc short 06 6b0h ; 72 0e9267 jbe short 06 6c4h ; 76 209393 jc short 0679ah ; 72 0e 9394 jbe short 067aeh ; 76 20 9268 9395 cmp ax, strict word 00003h ; 3d 03 00 9269 je short 06 6f1h ; 74 489396 je short 067dbh ; 74 48 9270 9397 cmp ax, strict word 00002h ; 3d 02 00 9271 je short 06 6d4h ; 74 269272 jmp short 06 6feh ; eb 4e9398 je short 067beh ; 74 26 9399 jmp short 067e8h ; eb 4e 9273 9400 test ax, ax ; 85 c0 9274 jne short 06 6feh ; 75 4a9401 jne short 067e8h ; 75 4a 9275 9402 xor ax, ax ; 31 c0 9276 call 06 596h ; e8 dd fe9403 call 06680h ; e8 dd fe 9277 9404 and byte [bp+018h], 0feh ; 80 66 18 fe 9278 9405 mov byte [bp+013h], 000h ; c6 46 13 00 9279 jmp near 06 729h ; e9 65 009406 jmp near 06813h ; e9 65 00 9280 9407 mov ax, strict word 00001h ; b8 01 00 9281 call 06 596h ; e8 cc fe9408 call 06680h ; e8 cc fe 9282 9409 and byte [bp+018h], 0feh ; 80 66 18 fe 9283 9410 mov byte [bp+013h], dh ; 88 76 13 9284 jmp near 06 729h ; e9 55 009411 jmp near 06813h ; e9 55 00 9285 9412 mov dx, 00092h ; ba 92 00 9286 9413 in AL, DX ; ec … … 9294 9421 and byte [bp+018h], 0feh ; 80 66 18 fe 9295 9422 mov byte [bp+013h], ah ; 88 66 13 9296 jmp near 06 729h ; e9 38 009423 jmp near 06813h ; e9 38 00 9297 9424 and byte [bp+018h], 0feh ; 80 66 18 fe 9298 9425 mov byte [bp+013h], ah ; 88 66 13 9299 9426 mov word [bp+00ch], ax ; 89 46 0c 9300 jmp near 06 729h ; e9 2b 009301 mov bx, 00d a0h ; bb a00d9427 jmp near 06813h ; e9 2b 00 9428 mov bx, 00db2h ; bb b2 0d 9302 9429 mov cx, ds ; 8c d9 9303 9430 mov ax, strict word 00004h ; b8 04 00 9304 call 01 999h ; e8 90b29431 call 01a2ah ; e8 37 b2 9305 9432 mov ax, word [bp+012h] ; 8b 46 12 9306 9433 xor ah, ah ; 30 e4 9307 9434 push ax ; 50 9308 push 008 2eh ; 68 2e089435 push 00840h ; 68 40 08 9309 9436 push strict byte 00004h ; 6a 04 9310 call 01 9dah ; e8 c3b29437 call 01a6bh ; e8 6a b2 9311 9438 add sp, strict byte 00006h ; 83 c4 06 9312 9439 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9321 9448 retn ; c3 9322 9449 mov word [bp+018h], bx ; 89 5e 18 9323 jmp near 06 7dch ; e9 a6 009450 jmp near 068c6h ; e9 a6 00 9324 9451 mov word [bp+018h], bx ; 89 5e 18 9325 jmp short 06 729h ; eb ee9452 jmp short 06813h ; eb ee 9326 9453 mov word [bp+018h], cx ; 89 4e 18 9327 jmp short 06 726h ; eb e69454 jmp short 06810h ; eb e6 9328 9455 test byte [bp+012h], 0ffh ; f6 46 12 ff 9329 jne short 06 7b2h ; 75 6c9456 jne short 0689ch ; 75 6c 9330 9457 mov dx, 000a0h ; ba a0 00 9331 9458 mov ax, strict word 00040h ; b8 40 00 9332 call 01 6b8h ; e8 69af9459 call 01749h ; e8 10 af 9333 9460 test AL, strict byte 001h ; a8 01 9334 jne near 06 8efh ; 0f 85 9a 019461 jne near 069d9h ; 0f 85 9a 01 9335 9462 mov bx, strict word 00001h ; bb 01 00 9336 9463 mov dx, 000a0h ; ba a0 00 9337 9464 mov ax, strict word 00040h ; b8 40 00 9338 call 01 6c6h ; e8 65af9465 call 01757h ; e8 0c af 9339 9466 mov bx, word [bp+014h] ; 8b 5e 14 9340 9467 mov dx, 00098h ; ba 98 00 9341 9468 mov ax, strict word 00040h ; b8 40 00 9342 call 01 6e2h ; e8 75af9469 call 01773h ; e8 1c af 9343 9470 mov bx, word [bp+00ch] ; 8b 5e 0c 9344 9471 mov dx, 0009ah ; ba 9a 00 9345 9472 mov ax, strict word 00040h ; b8 40 00 9346 call 01 6e2h ; e8 69af9473 call 01773h ; e8 10 af 9347 9474 mov bx, word [bp+00eh] ; 8b 5e 0e 9348 9475 mov dx, 0009ch ; ba 9c 00 9349 9476 mov ax, strict word 00040h ; b8 40 00 9350 call 01 6e2h ; e8 5daf9477 call 01773h ; e8 04 af 9351 9478 mov bx, word [bp+010h] ; 8b 5e 10 9352 9479 mov dx, 0009eh ; ba 9e 00 9353 9480 mov ax, strict word 00040h ; b8 40 00 9354 call 01 6e2h ; e8 51 af9481 call 01773h ; e8 f8 ae 9355 9482 and byte [bp+018h], 0feh ; 80 66 18 fe 9356 9483 mov dx, 000a1h ; ba a1 00 … … 9361 9488 out DX, AL ; ee 9362 9489 mov ax, strict word 0000bh ; b8 0b 00 9363 call 017 14h ; e8 70af9490 call 017a5h ; e8 17 af 9364 9491 or AL, strict byte 040h ; 0c 40 9365 9492 movzx dx, al ; 0f b6 d0 9366 9493 mov ax, strict word 0000bh ; b8 0b 00 9367 call 017 31h ; e8 82af9368 jmp near 06 729h ; e9 77 ff9494 call 017c2h ; e8 29 af 9495 jmp near 06813h ; e9 77 ff 9369 9496 cmp ax, strict word 00001h ; 3d 01 00 9370 jne short 06 7d0h ; 75 199497 jne short 068bah ; 75 19 9371 9498 xor bx, bx ; 31 db 9372 9499 mov dx, 000a0h ; ba a0 00 9373 9500 mov ax, strict word 00040h ; b8 40 00 9374 call 01 6c6h ; e8 04 af9501 call 01757h ; e8 ab ae 9375 9502 and byte [bp+018h], 0feh ; 80 66 18 fe 9376 9503 mov ax, strict word 0000bh ; b8 0b 00 9377 call 017 14h ; e8 48 af9504 call 017a5h ; e8 ef ae 9378 9505 and AL, strict byte 0bfh ; 24 bf 9379 jmp short 06 7a6h ; eb d69506 jmp short 06890h ; eb d6 9380 9507 mov word [bp+018h], bx ; 89 5e 18 9381 9508 mov ax, dx ; 89 d0 … … 9385 9512 or dx, ax ; 09 c2 9386 9513 mov word [bp+012h], dx ; 89 56 12 9387 jmp near 06 729h ; e9 47 ff9514 jmp near 06813h ; e9 47 ff 9388 9515 mov ax, strict word 00031h ; b8 31 00 9389 call 017 14h ; e8 2c af9516 call 017a5h ; e8 d3 ae 9390 9517 movzx dx, al ; 0f b6 d0 9391 9518 sal dx, 008h ; c1 e2 08 9392 9519 mov ax, strict word 00030h ; b8 30 00 9393 call 017 14h ; e8 20 af9520 call 017a5h ; e8 c7 ae 9394 9521 xor ah, ah ; 30 e4 9395 9522 or dx, ax ; 09 c2 9396 9523 mov word [bp+012h], dx ; 89 56 12 9397 9524 cmp dx, strict byte 0ffc0h ; 83 fa c0 9398 jbe short 068 05h ; 76 059525 jbe short 068efh ; 76 05 9399 9526 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9400 9527 and byte [bp+018h], 0feh ; 80 66 18 fe 9401 jmp near 06 729h ; e9 1d ff9528 jmp near 06813h ; e9 1d ff 9402 9529 cli ; fa 9403 9530 mov ax, strict word 00001h ; b8 01 00 9404 call 06 596h ; e8 83 fd9531 call 06680h ; e8 83 fd 9405 9532 mov dx, word [bp+006h] ; 8b 56 06 9406 9533 add dx, strict byte 00038h ; 83 c2 38 9407 9534 mov ax, word [bp+014h] ; 8b 46 14 9408 9535 mov bx, strict word 0ffffh ; bb ff ff 9409 call 01 6e2h ; e8 c0ae9536 call 01773h ; e8 67 ae 9410 9537 mov dx, word [bp+006h] ; 8b 56 06 9411 9538 add dx, strict byte 0003ah ; 83 c2 3a 9412 9539 mov ax, word [bp+014h] ; 8b 46 14 9413 9540 xor bx, bx ; 31 db 9414 call 01 6e2h ; e8 b2ae9541 call 01773h ; e8 59 ae 9415 9542 mov dx, word [bp+006h] ; 8b 56 06 9416 9543 add dx, strict byte 0003ch ; 83 c2 3c 9417 9544 mov ax, word [bp+014h] ; 8b 46 14 9418 9545 mov bx, strict word 0000fh ; bb 0f 00 9419 call 01 6c6h ; e8 87ae9546 call 01757h ; e8 2e ae 9420 9547 mov dx, word [bp+006h] ; 8b 56 06 9421 9548 add dx, strict byte 0003dh ; 83 c2 3d 9422 9549 mov ax, word [bp+014h] ; 8b 46 14 9423 9550 mov bx, 0009bh ; bb 9b 00 9424 call 01 6c6h ; e8 78ae9551 call 01757h ; e8 1f ae 9425 9552 mov dx, word [bp+006h] ; 8b 56 06 9426 9553 add dx, strict byte 0003eh ; 83 c2 3e 9427 9554 mov ax, word [bp+014h] ; 8b 46 14 9428 9555 xor bx, bx ; 31 db 9429 call 01 6e2h ; e8 86ae9556 call 01773h ; e8 2d ae 9430 9557 mov AL, strict byte 011h ; b0 11 9431 9558 mov dx, strict word 00020h ; ba 20 00 … … 9457 9584 out DX, AL ; ee 9458 9585 mov si, word [bp+006h] ; 8b 76 06 9459 call 06 89dh ; e8 00 009586 call 06987h ; e8 00 00 9460 9587 pop di ; 5f 9461 9588 add di, strict byte 00018h ; 83 c7 18 … … 9485 9612 push cx ; 51 9486 9613 retf ; cb 9487 jmp near 06 729h ; e9 50 fe9488 mov bx, 00d a0h ; bb a00d9614 jmp near 06813h ; e9 50 fe 9615 mov bx, 00db2h ; bb b2 0d 9489 9616 mov cx, ds ; 8c d9 9490 9617 mov ax, strict word 00004h ; b8 04 00 9491 call 01 999h ; e8 b5b09492 push 008 6eh ; 68 6e089618 call 01a2ah ; e8 5c b0 9619 push 00880h ; 68 80 08 9493 9620 push strict byte 00004h ; 6a 04 9494 call 01 9dah ; e8 eeb09621 call 01a6bh ; e8 95 b0 9495 9622 add sp, strict byte 00004h ; 83 c4 04 9496 9623 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9499 9626 or ah, 086h ; 80 cc 86 9500 9627 mov word [bp+012h], ax ; 89 46 12 9501 jmp near 06 729h ; e9 28 fe9628 jmp near 06813h ; e9 28 fe 9502 9629 mov word [bp+018h], cx ; 89 4e 18 9503 9630 mov word [bp+012h], ax ; 89 46 12 9504 9631 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 9505 9632 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 9506 jmp near 06 729h ; e9 15 fe9633 jmp near 06813h ; e9 15 fe 9507 9634 mov dx, strict word 0000eh ; ba 0e 00 9508 9635 mov ax, strict word 00040h ; b8 40 00 9509 call 01 6d4h ; e8 b7ad9636 call 01765h ; e8 5e ad 9510 9637 mov word [bp+014h], ax ; 89 46 14 9511 jmp near 068 05h ; e9 e2 fe9512 push 008 9dh ; 68 9d089638 jmp near 068efh ; e9 e2 fe 9639 push 008afh ; 68 af 08 9513 9640 push strict byte 00008h ; 6a 08 9514 jmp short 06 8e9h ; eb bf9641 jmp short 069d3h ; eb bf 9515 9642 test byte [bp+012h], 0ffh ; f6 46 12 ff 9516 jne short 06 94fh ; 75 1f9643 jne short 06a39h ; 75 1f 9517 9644 mov word [bp+012h], ax ; 89 46 12 9518 9645 mov ax, word [bp+00ch] ; 8b 46 0c 9519 9646 xor ah, ah ; 30 e4 9520 9647 cmp ax, strict word 00001h ; 3d 01 00 9521 jc short 06 948h ; 72 0b9648 jc short 06a32h ; 72 0b 9522 9649 cmp ax, strict word 00003h ; 3d 03 00 9523 jnbe short 06 948h ; 77 069650 jnbe short 06a32h ; 77 06 9524 9651 mov word [bp+018h], cx ; 89 4e 18 9525 jmp near 06 729h ; e9 e1 fd9652 jmp near 06813h ; e9 e1 fd 9526 9653 or byte [bp+018h], 001h ; 80 4e 18 01 9527 jmp near 06 729h ; e9 da fd9528 mov bx, 00d a0h ; bb a00d9654 jmp near 06813h ; e9 da fd 9655 mov bx, 00db2h ; bb b2 0d 9529 9656 mov cx, ds ; 8c d9 9530 9657 mov ax, strict word 00004h ; b8 04 00 9531 call 01 999h ; e8 3f b09658 call 01a2ah ; e8 e6 af 9532 9659 push word [bp+00ch] ; ff 76 0c 9533 9660 push word [bp+012h] ; ff 76 12 9534 push 008 b4h ; 68 b4089661 push 008c6h ; 68 c6 08 9535 9662 push strict byte 00004h ; 6a 04 9536 call 01 9dah ; e8 72b09663 call 01a6bh ; e8 19 b0 9537 9664 add sp, strict byte 00008h ; 83 c4 08 9538 jmp short 068efh ; eb 82 9539 cli ; fa 9540 push strict byte 0001ch ; 6a 1c 9541 imul di, word [bx], strict byte 0006bh ; 6b 3f 6b 9542 popaw ; 61 9543 imul ax, word [bx+di-05f95h], strict byte 0006bh ; 6b 81 6b a0 6b 9544 les bp, [bp+di-018h] ; c4 6b e8 9545 imul sp, word [bx], strict byte 0006ch ; 6b 27 6c 9546 push bx ; 53 9665 jmp short 069d9h ; eb 82 9666 in AL, strict byte 06bh ; e4 6b 9667 push ES ; 06 9547 9668 insb ; 6c 9548 _int15_function32: ; 0xf6981 LB 0x396 9669 sub word [si+04bh], bp ; 29 6c 4b 9670 insb ; 6c 9671 imul bp, word [si-076h], strict byte 0006ch ; 6b 6c 8a 6c 9672 scasb ; ae 9673 insb ; 6c 9674 shr byte [si+011h], CL ; d2 6c 11 9675 insw ; 6d 9676 db 03dh 9677 insw ; 6d 9678 _int15_function32: ; 0xf6a6b LB 0x396 9549 9679 push bp ; 55 9550 9680 mov bp, sp ; 89 e5 … … 9558 9688 xor dh, dh ; 30 f6 9559 9689 cmp ax, 000e8h ; 3d e8 00 9560 je near 06 a1eh ; 0f 84 7e 009690 je near 06b08h ; 0f 84 7e 00 9561 9691 cmp ax, 000d0h ; 3d d0 00 9562 je short 06 9b9h ; 74 149692 je short 06aa3h ; 74 14 9563 9693 cmp ax, 00086h ; 3d 86 00 9564 jne near 06 ce7h ; 0f 85 3b 039694 jne near 06dd1h ; 0f 85 3b 03 9565 9695 sti ; fb 9566 9696 mov dx, word [bp+01ch] ; 8b 56 1c 9567 9697 mov ax, word [bp+018h] ; 8b 46 18 9568 call 06 553h ; e8 9d fb9569 jmp near 06d 11h ; e9 58 039698 call 0663dh ; e8 9d fb 9699 jmp near 06dfbh ; e9 58 03 9570 9700 cmp dx, strict byte 0004fh ; 83 fa 4f 9571 jne near 06 ce7h ; 0f 85 27 039701 jne near 06dd1h ; 0f 85 27 03 9572 9702 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 9573 jne near 06 ce7h ; 0f 85 1e 039703 jne near 06dd1h ; 0f 85 1e 03 9574 9704 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 9575 jne near 06 ce7h ; 0f 85 15 039705 jne near 06dd1h ; 0f 85 15 03 9576 9706 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 9577 jne near 06 ce7h ; 0f 85 0c 039707 jne near 06dd1h ; 0f 85 0c 03 9578 9708 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 9579 jne near 06 ce7h ; 0f 85 03 039709 jne near 06dd1h ; 0f 85 03 03 9580 9710 mov ax, word [bp+00ah] ; 8b 46 0a 9581 9711 or ax, word [bp+008h] ; 0b 46 08 9582 jne near 06 ce7h ; 0f 85 f9 029712 jne near 06dd1h ; 0f 85 f9 02 9583 9713 mov ax, word [bp+006h] ; 8b 46 06 9584 9714 or ax, word [bp+004h] ; 0b 46 04 9585 jne near 06 ce7h ; 0f 85 ef 029715 jne near 06dd1h ; 0f 85 ef 02 9586 9716 mov word [bp+028h], bx ; 89 5e 28 9587 9717 mov ax, word [bp+014h] ; 8b 46 14 … … 9594 9724 mov word [bp+006h], ax ; 89 46 06 9595 9725 mov dword [bp+020h], strict dword 049413332h ; 66 c7 46 20 32 33 41 49 9596 jmp near 06d 11h ; e9 f3 029726 jmp near 06dfbh ; e9 f3 02 9597 9727 cmp dx, strict byte 00020h ; 83 fa 20 9598 je short 06 a2dh ; 74 0a9728 je short 06b17h ; 74 0a 9599 9729 cmp dx, strict byte 00001h ; 83 fa 01 9600 je near 06 c9ah ; 0f 84 70 029601 jmp near 06 ce7h ; e9 ba 029730 je near 06d84h ; 0f 84 70 02 9731 jmp near 06dd1h ; e9 ba 02 9602 9732 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 9603 jne near 06 ce7h ; 0f 85 b1 029733 jne near 06dd1h ; 0f 85 b1 02 9604 9734 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 9605 jne near 06 ce7h ; 0f 85 a8 029735 jne near 06dd1h ; 0f 85 a8 02 9606 9736 mov ax, strict word 00035h ; b8 35 00 9607 call 017 14h ; e8 cfac9737 call 017a5h ; e8 76 ac 9608 9738 movzx bx, al ; 0f b6 d8 9609 9739 xor dx, dx ; 31 d2 … … 9611 9741 sal bx, 1 ; d1 e3 9612 9742 rcl dx, 1 ; d1 d2 9613 loop 06 a4dh ; e2 fa9743 loop 06b37h ; e2 fa 9614 9744 mov ax, strict word 00034h ; b8 34 00 9615 call 017 14h ; e8 bbac9745 call 017a5h ; e8 62 ac 9616 9746 xor ah, ah ; 30 e4 9617 9747 mov dx, bx ; 89 da … … 9621 9751 adc dx, 00100h ; 81 d2 00 01 9622 9752 cmp dx, 00100h ; 81 fa 00 01 9623 jc short 06 a73h ; 72 069624 jne short 06 aa0h ; 75 319753 jc short 06b5dh ; 72 06 9754 jne short 06b8ah ; 75 31 9625 9755 test bx, bx ; 85 db 9626 jnbe short 06 aa0h ; 77 2d9756 jnbe short 06b8ah ; 77 2d 9627 9757 mov ax, strict word 00031h ; b8 31 00 9628 call 017 14h ; e8 9bac9758 call 017a5h ; e8 42 ac 9629 9759 movzx bx, al ; 0f b6 d8 9630 9760 xor dx, dx ; 31 d2 … … 9632 9762 sal bx, 1 ; d1 e3 9633 9763 rcl dx, 1 ; d1 d2 9634 loop 06 a81h ; e2 fa9764 loop 06b6bh ; e2 fa 9635 9765 mov ax, strict word 00030h ; b8 30 00 9636 call 017 14h ; e8 87ac9766 call 017a5h ; e8 2e ac 9637 9767 xor ah, ah ; 30 e4 9638 9768 or bx, ax ; 09 c3 … … 9640 9770 sal bx, 1 ; d1 e3 9641 9771 rcl dx, 1 ; d1 d2 9642 loop 06 a94h ; e2 fa9772 loop 06b7eh ; e2 fa 9643 9773 add bx, strict byte 00000h ; 83 c3 00 9644 9774 adc dx, strict byte 00010h ; 83 d2 10 9645 9775 mov ax, strict word 00062h ; b8 62 00 9646 call 017 14h ; e8 6eac9776 call 017a5h ; e8 15 ac 9647 9777 xor ah, ah ; 30 e4 9648 9778 mov word [bp-00ah], ax ; 89 46 f6 … … 9652 9782 sal word [bp-00ah], 1 ; d1 66 f6 9653 9783 rcl word [bp-008h], 1 ; d1 56 f8 9654 loop 06 ab3h ; e2 f89784 loop 06b9dh ; e2 f8 9655 9785 mov ax, strict word 00061h ; b8 61 00 9656 call 017 14h ; e8 53 ac9786 call 017a5h ; e8 fa ab 9657 9787 xor ah, ah ; 30 e4 9658 9788 or word [bp-00ah], ax ; 09 46 f6 … … 9661 9791 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 9662 9792 mov ax, strict word 00063h ; b8 63 00 9663 call 017 14h ; e8 3d ac9793 call 017a5h ; e8 e4 ab 9664 9794 mov byte [bp-004h], al ; 88 46 fc 9665 9795 mov byte [bp-006h], al ; 88 46 fa 9666 9796 mov ax, word [bp+014h] ; 8b 46 14 9667 9797 cmp ax, strict word 00009h ; 3d 09 00 9668 jnbe near 06 ce7h ; 0f 87 00 029798 jnbe near 06dd1h ; 0f 87 00 02 9669 9799 mov si, ax ; 89 c6 9670 9800 add si, ax ; 01 c6 … … 9673 9803 mov cx, dx ; 89 d1 9674 9804 adc cx, strict byte 0ffffh ; 83 d1 ff 9675 jmp word [cs:si+06 96dh] ; 2e ff a4 6d 699805 jmp word [cs:si+06a57h] ; 2e ff a4 57 6a 9676 9806 push strict byte 00001h ; 6a 01 9677 9807 push dword 000000000h ; 66 6a 00 … … 9682 9812 xor bx, bx ; 31 db 9683 9813 xor cx, cx ; 31 c9 9684 call 06 5c2h ; e8 b1 fa9814 call 066ach ; e8 b1 fa 9685 9815 mov dword [bp+014h], strict dword 000000001h ; 66 c7 46 14 01 00 00 00 9686 jmp near 06 c84h ; e9 68 019816 jmp near 06d6eh ; e9 68 01 9687 9817 push strict byte 00002h ; 6a 02 9688 9818 push dword 000000000h ; 66 6a 00 … … 9693 9823 mov bx, 0fc00h ; bb 00 fc 9694 9824 mov cx, strict word 00009h ; b9 09 00 9695 call 06 5c2h ; e8 8e fa9825 call 066ach ; e8 8e fa 9696 9826 mov dword [bp+014h], strict dword 000000002h ; 66 c7 46 14 02 00 00 00 9697 jmp near 06 c84h ; e9 45 019827 jmp near 06d6eh ; e9 45 01 9698 9828 push strict byte 00002h ; 6a 02 9699 9829 push dword 000000000h ; 66 6a 00 … … 9704 9834 xor bx, bx ; 31 db 9705 9835 mov cx, strict word 0000fh ; b9 0f 00 9706 call 06 5c2h ; e8 6c fa9836 call 066ach ; e8 6c fa 9707 9837 mov dword [bp+014h], strict dword 000000003h ; 66 c7 46 14 03 00 00 00 9708 jmp near 06 c84h ; e9 23 019838 jmp near 06d6eh ; e9 23 01 9709 9839 push strict byte 00001h ; 6a 01 9710 9840 push dword 000000000h ; 66 6a 00 … … 9715 9845 xor bx, bx ; 31 db 9716 9846 mov cx, strict word 00010h ; b9 10 00 9717 call 06 5c2h ; e8 4c fa9847 call 066ach ; e8 4c fa 9718 9848 mov dword [bp+014h], strict dword 000000004h ; 66 c7 46 14 04 00 00 00 9719 jmp near 06 c84h ; e9 03 019849 jmp near 06d6eh ; e9 03 01 9720 9850 push strict byte 00003h ; 6a 03 9721 9851 push dword 000000000h ; 66 6a 00 … … 9726 9856 mov bx, ax ; 89 c3 9727 9857 mov ax, si ; 89 f0 9728 call 06 5c2h ; e8 2d fa9858 call 066ach ; e8 2d fa 9729 9859 mov dword [bp+014h], strict dword 000000005h ; 66 c7 46 14 05 00 00 00 9730 jmp near 06 c84h ; e9 e4 009860 jmp near 06d6eh ; e9 e4 00 9731 9861 push strict byte 00002h ; 6a 02 9732 9862 push dword 000000000h ; 66 6a 00 … … 9737 9867 xor bx, bx ; 31 db 9738 9868 mov cx, 0fec0h ; b9 c0 fe 9739 call 06 5c2h ; e8 09 fa9869 call 066ach ; e8 09 fa 9740 9870 mov dword [bp+014h], strict dword 000000006h ; 66 c7 46 14 06 00 00 00 9741 jmp near 06 c84h ; e9 c0 009871 jmp near 06d6eh ; e9 c0 00 9742 9872 push strict byte 00002h ; 6a 02 9743 9873 push dword 000000000h ; 66 6a 00 … … 9748 9878 xor bx, bx ; 31 db 9749 9879 mov cx, 0fee0h ; b9 e0 fe 9750 call 06 5c2h ; e8 e5 f99880 call 066ach ; e8 e5 f9 9751 9881 mov dword [bp+014h], strict dword 000000007h ; 66 c7 46 14 07 00 00 00 9752 jmp near 06 c84h ; e9 9c 009882 jmp near 06d6eh ; e9 9c 00 9753 9883 push strict byte 00002h ; 6a 02 9754 9884 push dword 000000000h ; 66 6a 00 … … 9758 9888 xor bx, bx ; 31 db 9759 9889 mov cx, strict word 0fffch ; b9 fc ff 9760 call 06 5c2h ; e8 c4 f99890 call 066ach ; e8 c4 f9 9761 9891 cmp byte [bp-004h], 000h ; 80 7e fc 00 9762 jne short 06c 0bh ; 75 079892 jne short 06cf5h ; 75 07 9763 9893 mov ax, word [bp-008h] ; 8b 46 f8 9764 9894 test ax, ax ; 85 c0 9765 je short 06 c1fh ; 74 149895 je short 06d09h ; 74 14 9766 9896 mov dword [bp+014h], strict dword 000000009h ; 66 c7 46 14 09 00 00 00 9767 jmp short 06 c84h ; eb 6f9897 jmp short 06d6eh ; eb 6f 9768 9898 mov dword [bp+014h], strict dword 000000008h ; 66 c7 46 14 08 00 00 00 9769 jmp short 06 c84h ; eb 659899 jmp short 06d6eh ; eb 65 9770 9900 mov word [bp+014h], ax ; 89 46 14 9771 9901 mov word [bp+016h], ax ; 89 46 16 9772 jmp short 06 c84h ; eb 5d9902 jmp short 06d6eh ; eb 5d 9773 9903 push strict byte 00002h ; 6a 02 9774 9904 push dword 000000000h ; 66 6a 00 … … 9778 9908 xor bx, bx ; 31 db 9779 9909 xor cx, cx ; 31 c9 9780 call 06 5c2h ; e8 86 f99910 call 066ach ; e8 86 f9 9781 9911 cmp byte [bp-004h], 000h ; 80 7e fc 00 9782 jne short 06 c49h ; 75 079912 jne short 06d33h ; 75 07 9783 9913 mov ax, word [bp-008h] ; 8b 46 f8 9784 9914 test ax, ax ; 85 c0 9785 je short 06 c4bh ; 74 029786 jmp short 06c 0bh ; eb c09915 je short 06d35h ; 74 02 9916 jmp short 06cf5h ; eb c0 9787 9917 mov word [bp+014h], ax ; 89 46 14 9788 9918 mov word [bp+016h], ax ; 89 46 16 9789 jmp short 06 c84h ; eb 319919 jmp short 06d6eh ; eb 31 9790 9920 cmp byte [bp-004h], 000h ; 80 7e fc 00 9791 jne short 06 c5fh ; 75 069921 jne short 06d49h ; 75 06 9792 9922 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 9793 je short 06 c84h ; 74 259923 je short 06d6eh ; 74 25 9794 9924 push strict byte 00001h ; 6a 01 9795 9925 mov al, byte [bp-006h] ; 8a 46 fa … … 9804 9934 xor bx, bx ; 31 db 9805 9935 xor cx, cx ; 31 c9 9806 call 06 5c2h ; e8 46 f99936 call 066ach ; e8 46 f9 9807 9937 xor ax, ax ; 31 c0 9808 9938 mov word [bp+014h], ax ; 89 46 14 … … 9811 9941 mov dword [bp+01ch], strict dword 000000014h ; 66 c7 46 1c 14 00 00 00 9812 9942 and byte [bp+028h], 0feh ; 80 66 28 fe 9813 jmp short 06d 11h ; eb 779943 jmp short 06dfbh ; eb 77 9814 9944 mov word [bp+028h], bx ; 89 5e 28 9815 9945 mov ax, strict word 00031h ; b8 31 00 9816 call 017 14h ; e8 71aa9946 call 017a5h ; e8 18 aa 9817 9947 xor ah, ah ; 30 e4 9818 9948 mov dx, ax ; 89 c2 9819 9949 sal dx, 008h ; c1 e2 08 9820 9950 mov ax, strict word 00030h ; b8 30 00 9821 call 017 14h ; e8 64aa9951 call 017a5h ; e8 0b aa 9822 9952 xor ah, ah ; 30 e4 9823 9953 or dx, ax ; 09 c2 9824 9954 mov word [bp+01ch], dx ; 89 56 1c 9825 9955 cmp dx, 03c00h ; 81 fa 00 3c 9826 jbe short 06 cc2h ; 76 059956 jbe short 06dach ; 76 05 9827 9957 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 9828 9958 mov ax, strict word 00035h ; b8 35 00 9829 call 017 14h ; e8 4c aa9959 call 017a5h ; e8 f3 a9 9830 9960 xor ah, ah ; 30 e4 9831 9961 mov dx, ax ; 89 c2 9832 9962 sal dx, 008h ; c1 e2 08 9833 9963 mov ax, strict word 00034h ; b8 34 00 9834 call 017 14h ; e8 3f aa9964 call 017a5h ; e8 e6 a9 9835 9965 xor ah, ah ; 30 e4 9836 9966 or dx, ax ; 09 c2 … … 9839 9969 mov word [bp+020h], ax ; 89 46 20 9840 9970 mov word [bp+014h], dx ; 89 56 14 9841 jmp short 06d 11h ; eb 2a9842 mov bx, 00d a0h ; bb a00d9971 jmp short 06dfbh ; eb 2a 9972 mov bx, 00db2h ; bb b2 0d 9843 9973 mov cx, ds ; 8c d9 9844 9974 mov ax, strict word 00004h ; b8 04 00 9845 call 01 999h ; e8 a7ac9975 call 01a2ah ; e8 4e ac 9846 9976 push word [bp+014h] ; ff 76 14 9847 9977 push word [bp+020h] ; ff 76 20 9848 push 008 b4h ; 68 b4089978 push 008c6h ; 68 c6 08 9849 9979 push strict byte 00004h ; 6a 04 9850 call 01 9dah ; e8 daac9980 call 01a6bh ; e8 81 ac 9851 9981 add sp, strict byte 00008h ; 83 c4 08 9852 9982 or byte [bp+028h], 001h ; 80 4e 28 01 … … 9859 9989 pop bp ; 5d 9860 9990 retn ; c3 9861 _int15_blkmove: ; 0xf6 d17LB 0x1ab9991 _int15_blkmove: ; 0xf6e01 LB 0x1ab 9862 9992 push bp ; 55 9863 9993 mov bp, sp ; 89 e5 … … 9868 9998 cli ; fa 9869 9999 mov ax, strict word 00001h ; b8 01 00 9870 call 06 596h ; e8 71 f810000 call 06680h ; e8 71 f8 9871 10001 mov di, ax ; 89 c7 9872 10002 mov ax, word [bp+006h] ; 8b 46 06 … … 9878 10008 mov byte [bp-006h], dl ; 88 56 fa 9879 10009 cmp cx, ax ; 39 c1 9880 jnc short 06 d44h ; 73 0510010 jnc short 06e2eh ; 73 05 9881 10011 db 0feh, 0c2h 9882 10012 ; inc dl ; fe c2 … … 9886 10016 mov ax, word [bp+006h] ; 8b 46 06 9887 10017 mov bx, strict word 0002fh ; bb 2f 00 9888 call 01 6e2h ; e8 8fa910018 call 01773h ; e8 36 a9 9889 10019 mov dx, word [bp+00ah] ; 8b 56 0a 9890 10020 add dx, strict byte 0000ah ; 83 c2 0a 9891 10021 mov ax, word [bp+006h] ; 8b 46 06 9892 10022 mov bx, cx ; 89 cb 9893 call 01 6e2h ; e8 81a910023 call 01773h ; e8 28 a9 9894 10024 movzx bx, byte [bp-006h] ; 0f b6 5e fa 9895 10025 mov dx, word [bp+00ah] ; 8b 56 0a 9896 10026 add dx, strict byte 0000ch ; 83 c2 0c 9897 10027 mov ax, word [bp+006h] ; 8b 46 06 9898 call 01 6c6h ; e8 55 a910028 call 01757h ; e8 fc a8 9899 10029 mov dx, word [bp+00ah] ; 8b 56 0a 9900 10030 add dx, strict byte 0000dh ; 83 c2 0d 9901 10031 mov ax, word [bp+006h] ; 8b 46 06 9902 10032 mov bx, 00093h ; bb 93 00 9903 call 01 6c6h ; e8 46 a910033 call 01757h ; e8 ed a8 9904 10034 mov dx, word [bp+00ah] ; 8b 56 0a 9905 10035 add dx, strict byte 0000eh ; 83 c2 0e 9906 10036 mov ax, word [bp+006h] ; 8b 46 06 9907 10037 xor bx, bx ; 31 db 9908 call 01 6e2h ; e8 54 a910038 call 01773h ; e8 fb a8 9909 10039 mov dx, word [bp+00ah] ; 8b 56 0a 9910 10040 add dx, strict byte 00020h ; 83 c2 20 9911 10041 mov ax, word [bp+006h] ; 8b 46 06 9912 10042 mov bx, strict word 0ffffh ; bb ff ff 9913 call 01 6e2h ; e8 45 a910043 call 01773h ; e8 ec a8 9914 10044 mov dx, word [bp+00ah] ; 8b 56 0a 9915 10045 add dx, strict byte 00022h ; 83 c2 22 9916 10046 mov ax, word [bp+006h] ; 8b 46 06 9917 10047 xor bx, bx ; 31 db 9918 call 01 6e2h ; e8 37 a910048 call 01773h ; e8 de a8 9919 10049 mov dx, word [bp+00ah] ; 8b 56 0a 9920 10050 add dx, strict byte 00024h ; 83 c2 24 9921 10051 mov ax, word [bp+006h] ; 8b 46 06 9922 10052 mov bx, strict word 0000fh ; bb 0f 00 9923 call 01 6c6h ; e8 0c a910053 call 01757h ; e8 b3 a8 9924 10054 mov dx, word [bp+00ah] ; 8b 56 0a 9925 10055 add dx, strict byte 00025h ; 83 c2 25 9926 10056 mov ax, word [bp+006h] ; 8b 46 06 9927 10057 mov bx, 0009bh ; bb 9b 00 9928 call 01 6c6h ; e8 fda810058 call 01757h ; e8 a4 a8 9929 10059 mov dx, word [bp+00ah] ; 8b 56 0a 9930 10060 add dx, strict byte 00026h ; 83 c2 26 9931 10061 mov ax, word [bp+006h] ; 8b 46 06 9932 10062 xor bx, bx ; 31 db 9933 call 01 6e2h ; e8 0b a910063 call 01773h ; e8 b2 a8 9934 10064 mov ax, ss ; 8c d0 9935 10065 mov cx, ax ; 89 c1 … … 9941 10071 mov ax, word [bp+006h] ; 8b 46 06 9942 10072 mov bx, strict word 0ffffh ; bb ff ff 9943 call 01 6e2h ; e8 efa810073 call 01773h ; e8 96 a8 9944 10074 mov dx, word [bp+00ah] ; 8b 56 0a 9945 10075 add dx, strict byte 0002ah ; 83 c2 2a 9946 10076 mov ax, word [bp+006h] ; 8b 46 06 9947 10077 mov bx, cx ; 89 cb 9948 call 01 6e2h ; e8 e1a810078 call 01773h ; e8 88 a8 9949 10079 movzx bx, byte [bp-008h] ; 0f b6 5e f8 9950 10080 mov dx, word [bp+00ah] ; 8b 56 0a 9951 10081 add dx, strict byte 0002ch ; 83 c2 2c 9952 10082 mov ax, word [bp+006h] ; 8b 46 06 9953 call 01 6c6h ; e8 b5a810083 call 01757h ; e8 5c a8 9954 10084 mov dx, word [bp+00ah] ; 8b 56 0a 9955 10085 add dx, strict byte 0002dh ; 83 c2 2d 9956 10086 mov ax, word [bp+006h] ; 8b 46 06 9957 10087 mov bx, 00093h ; bb 93 00 9958 call 01 6c6h ; e8 a6a810088 call 01757h ; e8 4d a8 9959 10089 mov dx, word [bp+00ah] ; 8b 56 0a 9960 10090 add dx, strict byte 0002eh ; 83 c2 2e 9961 10091 mov ax, word [bp+006h] ; 8b 46 06 9962 10092 xor bx, bx ; 31 db 9963 call 01 6e2h ; e8 b4a810093 call 01773h ; e8 5b a8 9964 10094 lea ax, [bp+004h] ; 8d 46 04 9965 10095 mov si, word [bp+00ah] ; 8b 76 0a … … 9973 10103 mov word [00467h], sp ; 89 26 67 04 9974 10104 mov [00469h], ss ; 8c 16 69 04 9975 call 06 e4dh ; e8 00 0010105 call 06f37h ; e8 00 00 9976 10106 pop di ; 5f 9977 10107 add di, strict byte 0001bh ; 83 c7 1b … … 9996 10126 cld ; fc 9997 10127 rep movsw ; f3 a5 9998 call 06 e81h ; e8 00 0010128 call 06f6bh ; e8 00 00 9999 10129 pop ax ; 58 10000 10130 push 0f000h ; 68 00 f0 … … 10017 10147 pop DS ; 1f 10018 10148 mov ax, di ; 89 f8 10019 call 06 596h ; e8 e4 f610149 call 06680h ; e8 e4 f6 10020 10150 sti ; fb 10021 10151 mov byte [bp+017h], 000h ; c6 46 17 00 … … 10026 10156 pop bp ; 5d 10027 10157 retn ; c3 10028 _inv_op_handler: ; 0xf6 ec2LB 0x19510158 _inv_op_handler: ; 0xf6fac LB 0x195 10029 10159 push bp ; 55 10030 10160 mov bp, sp ; 89 e5 … … 10035 10165 les bx, [bp+018h] ; c4 5e 18 10036 10166 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10037 jne short 06 ed8h ; 75 0610167 jne short 06fc2h ; 75 06 10038 10168 inc word [bp+018h] ; ff 46 18 10039 jmp near 07 050h ; e9 78 0110169 jmp near 0713ah ; e9 78 01 10040 10170 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10041 jne near 07 04ch ; 0f 85 6b 0110171 jne near 07136h ; 0f 85 6b 01 10042 10172 mov si, 00800h ; be 00 08 10043 10173 xor ax, ax ; 31 c0 … … 10067 10197 sal ax, 1 ; d1 e0 10068 10198 rcl dx, 1 ; d1 d2 10069 loop 0 6f31h ; e2 fa10199 loop 0701bh ; e2 fa 10070 10200 cmp bx, dx ; 39 d3 10071 jne short 0 6f3fh ; 75 0410201 jne short 07029h ; 75 04 10072 10202 cmp di, ax ; 39 c7 10073 je short 0 6f44h ; 74 0510203 je short 0702eh ; 74 05 10074 10204 mov word [bp-008h], strict word 00001h ; c7 46 f8 01 00 10075 10205 mov es, [bp-006h] ; 8e 46 fa … … 10081 10211 sal ax, 1 ; d1 e0 10082 10212 rcl dx, 1 ; d1 d2 10083 loop 0 6f59h ; e2 fa10213 loop 07043h ; e2 fa 10084 10214 cmp di, dx ; 39 d7 10085 jne short 0 6f67h ; 75 0410215 jne short 07051h ; 75 04 10086 10216 cmp bx, ax ; 39 c3 10087 je short 0 6f6bh ; 74 0410217 je short 07055h ; 74 04 10088 10218 or byte [bp-008h], 002h ; 80 4e f8 02 10089 10219 push strict byte 00000h ; 6a 00 … … 10135 10265 mov ax, strict word 00008h ; b8 08 00 10136 10266 test cx, strict word 00001h ; f7 c1 01 00 10137 je near 070 09h ; 0f 84 02 0010267 je near 070f3h ; 0f 84 02 00 10138 10268 mov es, ax ; 8e c0 10139 10269 test cx, strict word 00002h ; f7 c1 02 00 10140 je near 07 031h ; 0f 84 20 0010270 je near 0711bh ; 0f 84 20 00 10141 10271 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10142 10272 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10155 10285 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10156 10286 iret ; cf 10157 jmp short 07 050h ; eb 0410287 jmp short 0713ah ; eb 04 10158 10288 sti ; fb 10159 10289 hlt ; f4 10160 jmp short 07 04dh ; eb fd10290 jmp short 07137h ; eb fd 10161 10291 lea sp, [bp-004h] ; 8d 66 fc 10162 10292 pop di ; 5f … … 10164 10294 pop bp ; 5d 10165 10295 retn ; c3 10166 init_rtc_: ; 0xf7 057LB 0x2810296 init_rtc_: ; 0xf7141 LB 0x28 10167 10297 push bp ; 55 10168 10298 mov bp, sp ; 89 e5 … … 10170 10300 mov dx, strict word 00026h ; ba 26 00 10171 10301 mov ax, strict word 0000ah ; b8 0a 00 10172 call 017 31h ; e8 cda610302 call 017c2h ; e8 74 a6 10173 10303 mov dx, strict word 00002h ; ba 02 00 10174 10304 mov ax, strict word 0000bh ; b8 0b 00 10175 call 017 31h ; e8 c4a610305 call 017c2h ; e8 6b a6 10176 10306 mov ax, strict word 0000ch ; b8 0c 00 10177 call 017 14h ; e8 a1a610307 call 017a5h ; e8 48 a6 10178 10308 mov ax, strict word 0000dh ; b8 0d 00 10179 call 017 14h ; e8 9ba610309 call 017a5h ; e8 42 a6 10180 10310 lea sp, [bp-002h] ; 8d 66 fe 10181 10311 pop dx ; 5a 10182 10312 pop bp ; 5d 10183 10313 retn ; c3 10184 rtc_updating_: ; 0xf7 07fLB 0x2110314 rtc_updating_: ; 0xf7169 LB 0x21 10185 10315 push bp ; 55 10186 10316 mov bp, sp ; 89 e5 … … 10188 10318 mov dx, 061a8h ; ba a8 61 10189 10319 dec dx ; 4a 10190 je short 07 097h ; 74 0e10320 je short 07181h ; 74 0e 10191 10321 mov ax, strict word 0000ah ; b8 0a 00 10192 call 017 14h ; e8 85a610322 call 017a5h ; e8 2c a6 10193 10323 test AL, strict byte 080h ; a8 80 10194 jne short 07 086h ; 75 f310324 jne short 07170h ; 75 f3 10195 10325 xor ax, ax ; 31 c0 10196 jmp short 07 09ah ; eb 0310326 jmp short 07184h ; eb 03 10197 10327 mov ax, strict word 00001h ; b8 01 00 10198 10328 lea sp, [bp-002h] ; 8d 66 fe … … 10200 10330 pop bp ; 5d 10201 10331 retn ; c3 10202 _int70_function: ; 0xf7 0a0LB 0xbe10332 _int70_function: ; 0xf718a LB 0xbe 10203 10333 push bp ; 55 10204 10334 mov bp, sp ; 89 e5 … … 10206 10336 push ax ; 50 10207 10337 mov ax, strict word 0000bh ; b8 0b 00 10208 call 017 14h ; e8 69a610338 call 017a5h ; e8 10 a6 10209 10339 mov dl, al ; 88 c2 10210 10340 mov byte [bp-004h], al ; 88 46 fc 10211 10341 mov ax, strict word 0000ch ; b8 0c 00 10212 call 017 14h ; e8 5ea610342 call 017a5h ; e8 05 a6 10213 10343 mov dh, al ; 88 c6 10214 10344 test dl, 060h ; f6 c2 60 10215 je near 07 145h ; 0f 84 86 0010345 je near 0722fh ; 0f 84 86 00 10216 10346 test AL, strict byte 020h ; a8 20 10217 je short 07 0c7h ; 74 0410347 je short 071b1h ; 74 04 10218 10348 sti ; fb 10219 10349 int 04ah ; cd 4a 10220 10350 cli ; fa 10221 10351 test dh, 040h ; f6 c6 40 10222 je near 07 145h ; 0f 84 77 0010352 je near 0722fh ; 0f 84 77 00 10223 10353 mov dx, 000a0h ; ba a0 00 10224 10354 mov ax, strict word 00040h ; b8 40 00 10225 call 01 6b8h ; e8 e1a510355 call 01749h ; e8 88 a5 10226 10356 test al, al ; 84 c0 10227 je short 07 145h ; 74 6a10357 je short 0722fh ; 74 6a 10228 10358 mov dx, 0009ch ; ba 9c 00 10229 10359 mov ax, strict word 00040h ; b8 40 00 10230 call 01 6f0h ; e8 0c a610360 call 01781h ; e8 b3 a5 10231 10361 test dx, dx ; 85 d2 10232 jne short 07 131h ; 75 4910362 jne short 0721bh ; 75 49 10233 10363 cmp ax, 003d1h ; 3d d1 03 10234 jnc short 07 131h ; 73 4410364 jnc short 0721bh ; 73 44 10235 10365 mov dx, 00098h ; ba 98 00 10236 10366 mov ax, strict word 00040h ; b8 40 00 10237 call 01 6d4h ; e8 dea510367 call 01765h ; e8 85 a5 10238 10368 mov si, ax ; 89 c6 10239 10369 mov dx, 0009ah ; ba 9a 00 10240 10370 mov ax, strict word 00040h ; b8 40 00 10241 call 01 6d4h ; e8 d3a510371 call 01765h ; e8 7a a5 10242 10372 mov cx, ax ; 89 c1 10243 10373 xor bx, bx ; 31 db 10244 10374 mov dx, 000a0h ; ba a0 00 10245 10375 mov ax, strict word 00040h ; b8 40 00 10246 call 01 6c6h ; e8 b8a510376 call 01757h ; e8 5f a5 10247 10377 mov al, byte [bp-004h] ; 8a 46 fc 10248 10378 and AL, strict byte 037h ; 24 37 10249 10379 movzx dx, al ; 0f b6 d0 10250 10380 mov ax, strict word 0000bh ; b8 0b 00 10251 call 017 31h ; e8 15 a610381 call 017c2h ; e8 bc a5 10252 10382 mov dx, cx ; 89 ca 10253 10383 mov ax, si ; 89 f0 10254 call 01 6b8h ; e8 95a510384 call 01749h ; e8 3c a5 10255 10385 or AL, strict byte 080h ; 0c 80 10256 10386 movzx bx, al ; 0f b6 d8 10257 10387 mov dx, cx ; 89 ca 10258 10388 mov ax, si ; 89 f0 10259 call 01 6c6h ; e8 97a510260 jmp short 07 145h ; eb 1410389 call 01757h ; e8 3e a5 10390 jmp short 0722fh ; eb 14 10261 10391 mov bx, ax ; 89 c3 10262 10392 add bx, 0fc2fh ; 81 c3 2f fc … … 10265 10395 mov dx, 0009ch ; ba 9c 00 10266 10396 mov ax, strict word 00040h ; b8 40 00 10267 call 017 02h ; e8 bda510268 call 0e030h ; e8 e8 6e10397 call 01793h ; e8 64 a5 10398 call 0e030h ; e8 fe 6d 10269 10399 lea sp, [bp-002h] ; 8d 66 fe 10270 10400 pop si ; 5e 10271 10401 pop bp ; 5d 10272 10402 retn ; c3 10273 jne short 071c1h ; 75 7110274 sahf ; 9e10275 j no short 07116h ; 71 c310276 j no short 0714ah ; 71 f510277 j no short 0719bh ; 71 4410278 j c short 071d5h ; 72 7c10279 j c short 0711ah ; 72 bf10280 j c short 07173h ; 72 1610281 db 07 3h10282 _int1a_function: ; 0xf7 15eLB 0x1c810403 pop di ; 5f 10404 jc short 071c3h ; 72 88 10405 jc short 071eah ; 72 ad 10406 jc short 0721eh ; 72 df 10407 jc short 0726fh ; 72 2e 10408 jnc short 072a9h ; 73 66 10409 jnc short 071eeh ; 73 a9 10410 jnc short 07247h ; 73 00 10411 db 074h 10412 _int1a_function: ; 0xf7248 LB 0x1c8 10283 10413 push bp ; 55 10284 10414 mov bp, sp ; 89 e5 … … 10286 10416 mov al, byte [bp+013h] ; 8a 46 13 10287 10417 cmp AL, strict byte 007h ; 3c 07 10288 jnbe near 07 19ah ; 0f 87 2f 0010418 jnbe near 07284h ; 0f 87 2f 00 10289 10419 movzx bx, al ; 0f b6 d8 10290 10420 add bx, bx ; 01 db 10291 jmp word [cs:bx+07 14eh] ; 2e ff a7 4e 7110421 jmp word [cs:bx+07238h] ; 2e ff a7 38 72 10292 10422 cli ; fa 10293 10423 mov bx, 0046eh ; bb 6e 04 … … 10320 10450 sti ; fb 10321 10451 mov byte [bp+013h], 000h ; c6 46 13 00 10322 jmp short 07 19ah ; eb d710323 call 07 07fh ; e8 b9 fe10452 jmp short 07284h ; eb d7 10453 call 07169h ; e8 b9 fe 10324 10454 test ax, ax ; 85 c0 10325 je short 07 1cch ; 74 0210326 jmp short 07 19ah ; eb ce10455 je short 072b6h ; 74 02 10456 jmp short 07284h ; eb ce 10327 10457 xor ax, ax ; 31 c0 10328 call 017 14h ; e8 43 a510458 call 017a5h ; e8 ea a4 10329 10459 mov byte [bp+00fh], al ; 88 46 0f 10330 10460 mov ax, strict word 00002h ; b8 02 00 10331 call 017 14h ; e8 3a a510461 call 017a5h ; e8 e1 a4 10332 10462 mov byte [bp+010h], al ; 88 46 10 10333 10463 mov ax, strict word 00004h ; b8 04 00 10334 call 017 14h ; e8 31 a510464 call 017a5h ; e8 d8 a4 10335 10465 mov bl, al ; 88 c3 10336 10466 mov byte [bp+011h], al ; 88 46 11 10337 10467 mov ax, strict word 0000bh ; b8 0b 00 10338 call 017 14h ; e8 26 a510468 call 017a5h ; e8 cd a4 10339 10469 and AL, strict byte 001h ; 24 01 10340 10470 mov byte [bp+00eh], al ; 88 46 0e 10341 jmp short 07 23ah ; eb 4510342 call 07 07fh ; e8 87 fe10471 jmp short 07324h ; eb 45 10472 call 07169h ; e8 87 fe 10343 10473 test ax, ax ; 85 c0 10344 je short 07 1ffh ; 74 0310345 call 07 057h ; e8 58 fe10474 je short 072e9h ; 74 03 10475 call 07141h ; e8 58 fe 10346 10476 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10347 10477 xor ax, ax ; 31 c0 10348 call 017 31h ; e8 29 a510478 call 017c2h ; e8 d0 a4 10349 10479 movzx dx, byte [bp+010h] ; 0f b6 56 10 10350 10480 mov ax, strict word 00002h ; b8 02 00 10351 call 017 31h ; e8 1f a510481 call 017c2h ; e8 c6 a4 10352 10482 movzx dx, byte [bp+011h] ; 0f b6 56 11 10353 10483 mov ax, strict word 00004h ; b8 04 00 10354 call 017 31h ; e8 15 a510484 call 017c2h ; e8 bc a4 10355 10485 mov ax, strict word 0000bh ; b8 0b 00 10356 call 017 14h ; e8 f2a410486 call 017a5h ; e8 99 a4 10357 10487 mov bl, al ; 88 c3 10358 10488 and bl, 060h ; 80 e3 60 … … 10363 10493 movzx dx, bl ; 0f b6 d3 10364 10494 mov ax, strict word 0000bh ; b8 0b 00 10365 call 017 31h ; e8 f7a410495 call 017c2h ; e8 9e a4 10366 10496 mov byte [bp+013h], 000h ; c6 46 13 00 10367 10497 mov byte [bp+012h], bl ; 88 5e 12 10368 jmp near 07 19ah ; e9 56 ff10498 jmp near 07284h ; e9 56 ff 10369 10499 mov byte [bp+013h], 000h ; c6 46 13 00 10370 call 07 07fh ; e8 34 fe10500 call 07169h ; e8 34 fe 10371 10501 test ax, ax ; 85 c0 10372 je short 07 252h ; 74 0310373 jmp near 07 19ah ; e9 48 ff10502 je short 0733ch ; 74 03 10503 jmp near 07284h ; e9 48 ff 10374 10504 mov ax, strict word 00009h ; b8 09 00 10375 call 017 14h ; e8 bca410505 call 017a5h ; e8 63 a4 10376 10506 mov byte [bp+010h], al ; 88 46 10 10377 10507 mov ax, strict word 00008h ; b8 08 00 10378 call 017 14h ; e8 b3a410508 call 017a5h ; e8 5a a4 10379 10509 mov byte [bp+00fh], al ; 88 46 0f 10380 10510 mov ax, strict word 00007h ; b8 07 00 10381 call 017 14h ; e8 aaa410511 call 017a5h ; e8 51 a4 10382 10512 mov byte [bp+00eh], al ; 88 46 0e 10383 10513 mov ax, strict word 00032h ; b8 32 00 10384 call 017 14h ; e8 a1a410514 call 017a5h ; e8 48 a4 10385 10515 mov byte [bp+011h], al ; 88 46 11 10386 10516 mov byte [bp+012h], al ; 88 46 12 10387 jmp near 07 19ah ; e9 1e ff10388 call 07 07fh ; e8 00 fe10517 jmp near 07284h ; e9 1e ff 10518 call 07169h ; e8 00 fe 10389 10519 test ax, ax ; 85 c0 10390 je short 07 289h ; 74 0610391 call 07 057h ; e8 d1 fd10392 jmp near 07 19ah ; e9 11 ff10520 je short 07373h ; 74 06 10521 call 07141h ; e8 d1 fd 10522 jmp near 07284h ; e9 11 ff 10393 10523 movzx dx, byte [bp+010h] ; 0f b6 56 10 10394 10524 mov ax, strict word 00009h ; b8 09 00 10395 call 017 31h ; e8 9ea410525 call 017c2h ; e8 45 a4 10396 10526 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10397 10527 mov ax, strict word 00008h ; b8 08 00 10398 call 017 31h ; e8 94a410528 call 017c2h ; e8 3b a4 10399 10529 movzx dx, byte [bp+00eh] ; 0f b6 56 0e 10400 10530 mov ax, strict word 00007h ; b8 07 00 10401 call 017 31h ; e8 8aa410531 call 017c2h ; e8 31 a4 10402 10532 movzx dx, byte [bp+011h] ; 0f b6 56 11 10403 10533 mov ax, strict word 00032h ; b8 32 00 10404 call 017 31h ; e8 80a410534 call 017c2h ; e8 27 a4 10405 10535 mov ax, strict word 0000bh ; b8 0b 00 10406 call 017 14h ; e8 5da410536 call 017a5h ; e8 04 a4 10407 10537 mov bl, al ; 88 c3 10408 10538 and bl, 07fh ; 80 e3 7f 10409 jmp near 07 231h ; e9 72 ff10539 jmp near 0731bh ; e9 72 ff 10410 10540 mov ax, strict word 0000bh ; b8 0b 00 10411 call 017 14h ; e8 4f a410541 call 017a5h ; e8 f6 a3 10412 10542 mov bl, al ; 88 c3 10413 10543 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10414 10544 test AL, strict byte 020h ; a8 20 10415 je short 07 2d3h ; 74 0310416 jmp near 07 19ah ; e9 c7 fe10417 call 07 07fh ; e8 a9 fd10545 je short 073bdh ; 74 03 10546 jmp near 07284h ; e9 c7 fe 10547 call 07169h ; e8 a9 fd 10418 10548 test ax, ax ; 85 c0 10419 je short 07 2ddh ; 74 0310420 call 07 057h ; e8 7a fd10549 je short 073c7h ; 74 03 10550 call 07141h ; e8 7a fd 10421 10551 movzx dx, byte [bp+00fh] ; 0f b6 56 0f 10422 10552 mov ax, strict word 00001h ; b8 01 00 10423 call 017 31h ; e8 4a a410553 call 017c2h ; e8 f1 a3 10424 10554 movzx dx, byte [bp+010h] ; 0f b6 56 10 10425 10555 mov ax, strict word 00003h ; b8 03 00 10426 call 017 31h ; e8 40 a410556 call 017c2h ; e8 e7 a3 10427 10557 movzx dx, byte [bp+011h] ; 0f b6 56 11 10428 10558 mov ax, strict word 00005h ; b8 05 00 10429 call 017 31h ; e8 36 a410559 call 017c2h ; e8 dd a3 10430 10560 mov dx, 000a1h ; ba a1 00 10431 10561 in AL, DX ; ec … … 10439 10569 movzx dx, al ; 0f b6 d0 10440 10570 mov ax, strict word 0000bh ; b8 0b 00 10441 call 017 31h ; e8 1e a410442 jmp near 07 19ah ; e9 84 fe10571 call 017c2h ; e8 c5 a3 10572 jmp near 07284h ; e9 84 fe 10443 10573 mov ax, strict word 0000bh ; b8 0b 00 10444 call 017 14h ; e8 f8a310574 call 017a5h ; e8 9f a3 10445 10575 mov bl, al ; 88 c3 10446 10576 and AL, strict byte 057h ; 24 57 10447 10577 movzx dx, al ; 0f b6 d0 10448 jmp near 07 234h ; e9 0e ff10449 send_to_mouse_ctrl_: ; 0xf7 326LB 0x3410578 jmp near 0731eh ; e9 0e ff 10579 send_to_mouse_ctrl_: ; 0xf7410 LB 0x34 10450 10580 push bp ; 55 10451 10581 mov bp, sp ; 89 e5 … … 10458 10588 ; sub ah, ah ; 2a e4 10459 10589 test AL, strict byte 002h ; a8 02 10460 je short 07 345h ; 74 0e10461 push 00 8eeh ; 68 ee 0810462 push 011 68h ; 68 681110590 je short 0742fh ; 74 0e 10591 push 00900h ; 68 00 09 10592 push 0117ah ; 68 7a 11 10463 10593 push strict byte 00007h ; 6a 07 10464 call 01 9dah ; e8 98a610594 call 01a6bh ; e8 3f a6 10465 10595 add sp, strict byte 00006h ; 83 c4 06 10466 10596 mov AL, strict byte 0d4h ; b0 d4 … … 10476 10606 pop bp ; 5d 10477 10607 retn ; c3 10478 get_mouse_data_: ; 0xf7 35aLB 0x5c10608 get_mouse_data_: ; 0xf7444 LB 0x5c 10479 10609 push bp ; 55 10480 10610 mov bp, sp ; 89 e5 … … 10491 10621 and ax, strict word 00021h ; 25 21 00 10492 10622 cmp ax, strict word 00021h ; 3d 21 00 10493 je short 07 39ch ; 74 2710623 je short 07486h ; 74 27 10494 10624 test cx, cx ; 85 c9 10495 je short 07 39ch ; 74 2310625 je short 07486h ; 74 23 10496 10626 mov dx, strict word 00061h ; ba 61 00 10497 10627 in AL, DX ; ec … … 10509 10639 movzx ax, byte [bp-006h] ; 0f b6 46 fa 10510 10640 cmp dx, ax ; 39 c2 10511 je short 07 384h ; 74 eb10641 je short 0746eh ; 74 eb 10512 10642 dec cx ; 49 10513 jmp short 07 367h ; eb cb10643 jmp short 07451h ; eb cb 10514 10644 test cx, cx ; 85 c9 10515 jne short 07 3a4h ; 75 0410645 jne short 0748eh ; 75 04 10516 10646 mov AL, strict byte 001h ; b0 01 10517 jmp short 07 3afh ; eb 0b10647 jmp short 07499h ; eb 0b 10518 10648 mov dx, strict word 00060h ; ba 60 00 10519 10649 in AL, DX ; ec … … 10527 10657 pop bp ; 5d 10528 10658 retn ; c3 10529 set_kbd_command_byte_: ; 0xf7 3b6LB 0x3210659 set_kbd_command_byte_: ; 0xf74a0 LB 0x32 10530 10660 push bp ; 55 10531 10661 mov bp, sp ; 89 e5 … … 10538 10668 ; sub ah, ah ; 2a e4 10539 10669 test AL, strict byte 002h ; a8 02 10540 je short 07 3d5h ; 74 0e10541 push 00 8f8h ; 68 f8 0810542 push 011 68h ; 68 681110670 je short 074bfh ; 74 0e 10671 push 0090ah ; 68 0a 09 10672 push 0117ah ; 68 7a 11 10543 10673 push strict byte 00007h ; 6a 07 10544 call 01 9dah ; e8 08 a610674 call 01a6bh ; e8 af a5 10545 10675 add sp, strict byte 00006h ; 83 c4 06 10546 10676 mov AL, strict byte 060h ; b0 60 … … 10555 10685 pop bp ; 5d 10556 10686 retn ; c3 10557 _int74_function: ; 0xf7 3e8LB 0xca10687 _int74_function: ; 0xf74d2 LB 0xca 10558 10688 push bp ; 55 10559 10689 mov bp, sp ; 89 e5 … … 10561 10691 mov dx, strict word 0000eh ; ba 0e 00 10562 10692 mov ax, strict word 00040h ; b8 40 00 10563 call 01 6d4h ; e8 dda210693 call 01765h ; e8 84 a2 10564 10694 mov cx, ax ; 89 c1 10565 10695 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10570 10700 and AL, strict byte 021h ; 24 21 10571 10701 cmp AL, strict byte 021h ; 3c 21 10572 jne near 07 49eh ; 0f 85 92 0010702 jne near 07588h ; 0f 85 92 00 10573 10703 mov dx, strict word 00060h ; ba 60 00 10574 10704 in AL, DX ; ec … … 10578 10708 mov dx, strict word 00026h ; ba 26 00 10579 10709 mov ax, cx ; 89 c8 10580 call 01 6b8h ; e8 9ca210710 call 01749h ; e8 43 a2 10581 10711 mov byte [bp-006h], al ; 88 46 fa 10582 10712 mov dx, strict word 00027h ; ba 27 00 10583 10713 mov ax, cx ; 89 c8 10584 call 01 6b8h ; e8 91a210714 call 01749h ; e8 38 a2 10585 10715 mov byte [bp-008h], al ; 88 46 f8 10586 10716 test AL, strict byte 080h ; a8 80 10587 je short 07 49eh ; 74 7010717 je short 07588h ; 74 70 10588 10718 mov al, byte [bp-008h] ; 8a 46 f8 10589 10719 and AL, strict byte 007h ; 24 07 … … 10596 10726 add dx, strict byte 00028h ; 83 c2 28 10597 10727 mov ax, cx ; 89 c8 10598 call 01 6c6h ; e8 7ba210728 call 01757h ; e8 22 a2 10599 10729 mov al, byte [bp-004h] ; 8a 46 fc 10600 10730 cmp al, byte [bp-002h] ; 3a 46 fe 10601 jc short 07 48fh ; 72 3c10731 jc short 07579h ; 72 3c 10602 10732 mov dx, strict word 00028h ; ba 28 00 10603 10733 mov ax, cx ; 89 c8 10604 call 01 6b8h ; e8 5da210734 call 01749h ; e8 04 a2 10605 10735 xor ah, ah ; 30 e4 10606 10736 mov word [bp+00ch], ax ; 89 46 0c 10607 10737 mov dx, strict word 00029h ; ba 29 00 10608 10738 mov ax, cx ; 89 c8 10609 call 01 6b8h ; e8 50 a210739 call 01749h ; e8 f7 a1 10610 10740 xor ah, ah ; 30 e4 10611 10741 mov word [bp+00ah], ax ; 89 46 0a 10612 10742 mov dx, strict word 0002ah ; ba 2a 00 10613 10743 mov ax, cx ; 89 c8 10614 call 01 6b8h ; e8 43 a210744 call 01749h ; e8 ea a1 10615 10745 xor ah, ah ; 30 e4 10616 10746 mov word [bp+008h], ax ; 89 46 08 … … 10619 10749 mov byte [bp-006h], ah ; 88 66 fa 10620 10750 test byte [bp-008h], 080h ; f6 46 f8 80 10621 je short 07 492h ; 74 0a10751 je short 0757ch ; 74 0a 10622 10752 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 10623 jmp short 07 492h ; eb 0310753 jmp short 0757ch ; eb 03 10624 10754 inc byte [bp-006h] ; fe 46 fa 10625 10755 movzx bx, byte [bp-006h] ; 0f b6 5e fa 10626 10756 mov dx, strict word 00026h ; ba 26 00 10627 10757 mov ax, cx ; 89 c8 10628 call 01 6c6h ; e8 28 a210758 call 01757h ; e8 cf a1 10629 10759 mov sp, bp ; 89 ec 10630 10760 pop bp ; 5d 10631 10761 retn ; c3 10632 div byte [si+06ch] ; f6 74 6c 10633 jne short 07496h ; 75 ef 10634 jne short 07429h ; 75 80 10635 jbe short 07499h ; 76 ee 10636 jbe short 074efh ; 76 42 10637 jne short 074c5h ; 75 16 10638 jnbe short 0748ch ; 77 db 10639 db 077h 10640 _int15_function_mouse: ; 0xf74b2 LB 0x38b 10762 loopne 07603h ; e0 75 10763 push si ; 56 10764 jbe short 0756ah ; 76 d9 10765 jbe short 075fdh ; 76 6a 10766 jnbe short 0756dh ; 77 d8 10767 jnbe short 075c3h ; 77 2c 10768 jbe short 07599h ; 76 00 10769 js short 07560h ; 78 c5 10770 db 078h 10771 _int15_function_mouse: ; 0xf759c LB 0x38b 10641 10772 push bp ; 55 10642 10773 mov bp, sp ; 89 e5 … … 10645 10776 mov dx, strict word 0000eh ; ba 0e 00 10646 10777 mov ax, strict word 00040h ; b8 40 00 10647 call 01 6d4h ; e8 12 a210778 call 01765h ; e8 b9 a1 10648 10779 mov cx, ax ; 89 c1 10649 10780 cmp byte [bp+012h], 007h ; 80 7e 12 07 10650 jbe short 07 4d5h ; 76 0b10781 jbe short 075bfh ; 76 0b 10651 10782 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10652 10783 mov byte [bp+013h], 001h ; c6 46 13 01 10653 jmp near 07 837h ; e9 62 0310784 jmp near 07921h ; e9 62 03 10654 10785 mov ax, strict word 00065h ; b8 65 00 10655 call 07 3b6h ; e8 db fe10786 call 074a0h ; e8 db fe 10656 10787 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 10657 10788 mov byte [bp+013h], 000h ; c6 46 13 00 10658 10789 mov al, byte [bp+012h] ; 8a 46 12 10659 10790 cmp AL, strict byte 007h ; 3c 07 10660 jnbe near 07 81eh ; 0f 87 32 0310791 jnbe near 07908h ; 0f 87 32 03 10661 10792 movzx si, al ; 0f b6 f0 10662 10793 add si, si ; 01 f6 10663 jmp word [cs:si+07 4a2h] ; 2e ff a4 a2 7410794 jmp word [cs:si+0758ch] ; 2e ff a4 8c 75 10664 10795 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 10665 jnbe near 07 829h ; 0f 87 2b 0310796 jnbe near 07913h ; 0f 87 2b 03 10666 10797 mov dx, strict word 00027h ; ba 27 00 10667 10798 mov ax, cx ; 89 c8 10668 call 01 6b8h ; e8 b2a110799 call 01749h ; e8 59 a1 10669 10800 test AL, strict byte 080h ; a8 80 10670 jne short 075 15h ; 75 0b10801 jne short 075ffh ; 75 0b 10671 10802 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10672 10803 mov byte [bp+013h], 005h ; c6 46 13 05 10673 jmp near 07 831h ; e9 1c 0310804 jmp near 0791bh ; e9 1c 03 10674 10805 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 10675 10806 db 00fh, 094h, 0c0h … … 10677 10808 add AL, strict byte 0f4h ; 04 f4 10678 10809 xor ah, ah ; 30 e4 10679 call 07 326h ; e8 03 fe10810 call 07410h ; e8 03 fe 10680 10811 test al, al ; 84 c0 10681 jne near 07 7b7h ; 0f 85 8e 0210812 jne near 078a1h ; 0f 85 8e 02 10682 10813 mov dx, ss ; 8c d2 10683 10814 lea ax, [bp-008h] ; 8d 46 f8 10684 call 07 35ah ; e8 29 fe10815 call 07444h ; e8 29 fe 10685 10816 test al, al ; 84 c0 10686 je near 07 831h ; 0f 84 fa 0210817 je near 0791bh ; 0f 84 fa 02 10687 10818 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10688 jne near 07 7b7h ; 0f 85 78 0210689 jmp near 07 831h ; e9 ef 0210819 jne near 078a1h ; 0f 85 78 02 10820 jmp near 0791bh ; e9 ef 02 10690 10821 mov al, byte [bp+00dh] ; 8a 46 0d 10691 10822 cmp AL, strict byte 001h ; 3c 01 10692 jc short 07 54dh ; 72 0410823 jc short 07637h ; 72 04 10693 10824 cmp AL, strict byte 008h ; 3c 08 10694 jbe short 07 550h ; 76 0310695 jmp near 07 6e3h ; e9 93 0110825 jbe short 0763ah ; 76 03 10826 jmp near 077cdh ; e9 93 01 10696 10827 mov dx, strict word 00027h ; ba 27 00 10697 10828 mov ax, cx ; 89 c8 10698 call 01 6b8h ; e8 60a110829 call 01749h ; e8 07 a1 10699 10830 mov ah, byte [bp+00dh] ; 8a 66 0d 10700 10831 db 0feh, 0cch … … 10705 10836 mov dx, strict word 00027h ; ba 27 00 10706 10837 mov ax, cx ; 89 c8 10707 call 01 6c6h ; e8 5aa110838 call 01757h ; e8 01 a1 10708 10839 mov dx, strict word 00026h ; ba 26 00 10709 10840 mov ax, cx ; 89 c8 10710 call 01 6b8h ; e8 44 a110841 call 01749h ; e8 eb a0 10711 10842 and AL, strict byte 0f8h ; 24 f8 10712 10843 movzx bx, al ; 0f b6 d8 10713 10844 mov dx, strict word 00026h ; ba 26 00 10714 10845 mov ax, cx ; 89 c8 10715 call 01 6c6h ; e8 45 a110846 call 01757h ; e8 ec a0 10716 10847 mov ax, 000ffh ; b8 ff 00 10717 call 07 326h ; e8 9f fd10848 call 07410h ; e8 9f fd 10718 10849 test al, al ; 84 c0 10719 jne near 07 7b7h ; 0f 85 2a 0210850 jne near 078a1h ; 0f 85 2a 02 10720 10851 mov dx, ss ; 8c d2 10721 10852 lea ax, [bp-004h] ; 8d 46 fc 10722 call 07 35ah ; e8 c5 fd10853 call 07444h ; e8 c5 fd 10723 10854 mov cl, al ; 88 c1 10724 10855 cmp byte [bp-004h], 0feh ; 80 7e fc fe 10725 jne short 07 5a8h ; 75 0b10856 jne short 07692h ; 75 0b 10726 10857 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10727 10858 mov byte [bp+013h], 004h ; c6 46 13 04 10728 jmp near 07 831h ; e9 89 0210859 jmp near 0791bh ; e9 89 02 10729 10860 cmp byte [bp-004h], 0fah ; 80 7e fc fa 10730 je short 07 5beh ; 74 1010861 je short 076a8h ; 74 10 10731 10862 movzx ax, byte [bp-004h] ; 0f b6 46 fc 10732 10863 push ax ; 50 10733 push 009 03h ; 68 030910864 push 00915h ; 68 15 09 10734 10865 push strict byte 00007h ; 6a 07 10735 call 01 9dah ; e8 1f a410866 call 01a6bh ; e8 c6 a3 10736 10867 add sp, strict byte 00006h ; 83 c4 06 10737 10868 test cl, cl ; 84 c9 10738 jne near 07 7b7h ; 0f 85 f3 0110869 jne near 078a1h ; 0f 85 f3 01 10739 10870 mov dx, ss ; 8c d2 10740 10871 lea ax, [bp-008h] ; 8d 46 f8 10741 call 07 35ah ; e8 8e fd10872 call 07444h ; e8 8e fd 10742 10873 test al, al ; 84 c0 10743 jne near 07 7b7h ; 0f 85 e5 0110874 jne near 078a1h ; 0f 85 e5 01 10744 10875 mov dx, ss ; 8c d2 10745 10876 lea ax, [bp-006h] ; 8d 46 fa 10746 call 07 35ah ; e8 80 fd10877 call 07444h ; e8 80 fd 10747 10878 test al, al ; 84 c0 10748 jne near 07 7b7h ; 0f 85 d7 0110879 jne near 078a1h ; 0f 85 d7 01 10749 10880 mov al, byte [bp-008h] ; 8a 46 f8 10750 10881 mov byte [bp+00ch], al ; 88 46 0c 10751 10882 mov al, byte [bp-006h] ; 8a 46 fa 10752 10883 mov byte [bp+00dh], al ; 88 46 0d 10753 jmp near 07 831h ; e9 42 0210884 jmp near 0791bh ; e9 42 02 10754 10885 mov al, byte [bp+00dh] ; 8a 46 0d 10755 10886 cmp AL, strict byte 003h ; 3c 03 10756 jc short 076 06h ; 72 1010757 jbe short 07 624h ; 76 2c10887 jc short 076f0h ; 72 10 10888 jbe short 0770eh ; 76 2c 10758 10889 cmp AL, strict byte 006h ; 3c 06 10759 je short 07 636h ; 74 3a10890 je short 07720h ; 74 3a 10760 10891 cmp AL, strict byte 005h ; 3c 05 10761 je short 07 630h ; 74 3010892 je short 0771ah ; 74 30 10762 10893 cmp AL, strict byte 004h ; 3c 04 10763 je short 07 62ah ; 74 2610764 jmp short 07 63ch ; eb 3610894 je short 07714h ; 74 26 10895 jmp short 07726h ; eb 36 10765 10896 cmp AL, strict byte 002h ; 3c 02 10766 je short 07 61eh ; 74 1410897 je short 07708h ; 74 14 10767 10898 cmp AL, strict byte 001h ; 3c 01 10768 je short 07 618h ; 74 0a10899 je short 07702h ; 74 0a 10769 10900 test al, al ; 84 c0 10770 jne short 07 63ch ; 75 2a10901 jne short 07726h ; 75 2a 10771 10902 mov byte [bp-008h], 00ah ; c6 46 f8 0a 10772 jmp short 07 640h ; eb 2810903 jmp short 0772ah ; eb 28 10773 10904 mov byte [bp-008h], 014h ; c6 46 f8 14 10774 jmp short 07 640h ; eb 2210905 jmp short 0772ah ; eb 22 10775 10906 mov byte [bp-008h], 028h ; c6 46 f8 28 10776 jmp short 07 640h ; eb 1c10907 jmp short 0772ah ; eb 1c 10777 10908 mov byte [bp-008h], 03ch ; c6 46 f8 3c 10778 jmp short 07 640h ; eb 1610909 jmp short 0772ah ; eb 16 10779 10910 mov byte [bp-008h], 050h ; c6 46 f8 50 10780 jmp short 07 640h ; eb 1010911 jmp short 0772ah ; eb 10 10781 10912 mov byte [bp-008h], 064h ; c6 46 f8 64 10782 jmp short 07 640h ; eb 0a10913 jmp short 0772ah ; eb 0a 10783 10914 mov byte [bp-008h], 0c8h ; c6 46 f8 c8 10784 jmp short 07 640h ; eb 0410915 jmp short 0772ah ; eb 04 10785 10916 mov byte [bp-008h], 000h ; c6 46 f8 00 10786 10917 cmp byte [bp-008h], 000h ; 80 7e f8 00 10787 jbe short 07 675h ; 76 2f10918 jbe short 0775fh ; 76 2f 10788 10919 mov ax, 000f3h ; b8 f3 00 10789 call 07 326h ; e8 da fc10920 call 07410h ; e8 da fc 10790 10921 test al, al ; 84 c0 10791 jne short 07 66ah ; 75 1a10922 jne short 07754h ; 75 1a 10792 10923 mov dx, ss ; 8c d2 10793 10924 lea ax, [bp-006h] ; 8d 46 fa 10794 call 07 35ah ; e8 02 fd10925 call 07444h ; e8 02 fd 10795 10926 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10796 call 07 326h ; e8 c7 fc10927 call 07410h ; e8 c7 fc 10797 10928 mov dx, ss ; 8c d2 10798 10929 lea ax, [bp-006h] ; 8d 46 fa 10799 call 07 35ah ; e8 f3 fc10800 jmp near 07 831h ; e9 c7 0110930 call 07444h ; e8 f3 fc 10931 jmp near 0791bh ; e9 c7 01 10801 10932 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10802 10933 mov byte [bp+013h], 003h ; c6 46 13 03 10803 jmp near 07 831h ; e9 bc 0110934 jmp near 0791bh ; e9 bc 01 10804 10935 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10805 10936 mov byte [bp+013h], 002h ; c6 46 13 02 10806 jmp near 07 831h ; e9 b1 0110937 jmp near 0791bh ; e9 b1 01 10807 10938 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 10808 jnc short 07 6e3h ; 73 5d10939 jnc short 077cdh ; 73 5d 10809 10940 mov ax, 000e8h ; b8 e8 00 10810 call 07 326h ; e8 9a fc10941 call 07410h ; e8 9a fc 10811 10942 test al, al ; 84 c0 10812 jne short 07 6d8h ; 75 4810943 jne short 077c2h ; 75 48 10813 10944 mov dx, ss ; 8c d2 10814 10945 lea ax, [bp-008h] ; 8d 46 f8 10815 call 07 35ah ; e8 c2 fc10946 call 07444h ; e8 c2 fc 10816 10947 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10817 je short 07 6aeh ; 74 1010948 je short 07798h ; 74 10 10818 10949 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10819 10950 push ax ; 50 10820 push 009 2eh ; 68 2e0910951 push 00940h ; 68 40 09 10821 10952 push strict byte 00007h ; 6a 07 10822 call 01 9dah ; e8 2f a310953 call 01a6bh ; e8 d6 a2 10823 10954 add sp, strict byte 00006h ; 83 c4 06 10824 10955 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10825 call 07 326h ; e8 71 fc10956 call 07410h ; e8 71 fc 10826 10957 mov dx, ss ; 8c d2 10827 10958 lea ax, [bp-008h] ; 8d 46 f8 10828 call 07 35ah ; e8 9d fc10959 call 07444h ; e8 9d fc 10829 10960 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10830 je near 07 831h ; 0f 84 6c 0110961 je near 0791bh ; 0f 84 6c 01 10831 10962 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10832 10963 push ax ; 50 10833 push 009 2eh ; 68 2e0910964 push 00940h ; 68 40 09 10834 10965 push strict byte 00007h ; 6a 07 10835 call 01 9dah ; e8 08 a310966 call 01a6bh ; e8 af a2 10836 10967 add sp, strict byte 00006h ; 83 c4 06 10837 jmp near 07 831h ; e9 59 0110968 jmp near 0791bh ; e9 59 01 10838 10969 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10839 10970 mov byte [bp+013h], 003h ; c6 46 13 03 10840 jmp near 07 831h ; e9 4e 0110971 jmp near 0791bh ; e9 4e 01 10841 10972 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10842 10973 mov byte [bp+013h], 002h ; c6 46 13 02 10843 jmp near 07 831h ; e9 43 0110974 jmp near 0791bh ; e9 43 01 10844 10975 mov ax, 000f2h ; b8 f2 00 10845 call 07 326h ; e8 32 fc10976 call 07410h ; e8 32 fc 10846 10977 test al, al ; 84 c0 10847 jne short 077 0bh ; 75 1310978 jne short 077f5h ; 75 13 10848 10979 mov dx, ss ; 8c d2 10849 10980 lea ax, [bp-008h] ; 8d 46 f8 10850 call 07 35ah ; e8 5a fc10981 call 07444h ; e8 5a fc 10851 10982 mov dx, ss ; 8c d2 10852 10983 lea ax, [bp-006h] ; 8d 46 fa 10853 call 07 35ah ; e8 52 fc10854 jmp near 07 5e6h ; e9 db fe10984 call 07444h ; e8 52 fc 10985 jmp near 076d0h ; e9 db fe 10855 10986 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10856 10987 mov byte [bp+013h], 003h ; c6 46 13 03 10857 jmp near 07 831h ; e9 1b 0110988 jmp near 0791bh ; e9 1b 01 10858 10989 mov al, byte [bp+00dh] ; 8a 46 0d 10859 10990 test al, al ; 84 c0 10860 jbe short 07 724h ; 76 0710991 jbe short 0780eh ; 76 07 10861 10992 cmp AL, strict byte 002h ; 3c 02 10862 jbe short 07 78dh ; 76 6c10863 jmp near 07 7c1h ; e9 9d 0010993 jbe short 07877h ; 76 6c 10994 jmp near 078abh ; e9 9d 00 10864 10995 mov ax, 000e9h ; b8 e9 00 10865 call 07 326h ; e8 fc fb10996 call 07410h ; e8 fc fb 10866 10997 test al, al ; 84 c0 10867 jne near 07 7b7h ; 0f 85 87 0010998 jne near 078a1h ; 0f 85 87 00 10868 10999 mov dx, ss ; 8c d2 10869 11000 lea ax, [bp-008h] ; 8d 46 f8 10870 call 07 35ah ; e8 22 fc11001 call 07444h ; e8 22 fc 10871 11002 mov cl, al ; 88 c1 10872 11003 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10873 je short 07 750h ; 74 1011004 je short 0783ah ; 74 10 10874 11005 movzx ax, byte [bp-008h] ; 0f b6 46 f8 10875 11006 push ax ; 50 10876 push 009 2eh ; 68 2e0911007 push 00940h ; 68 40 09 10877 11008 push strict byte 00007h ; 6a 07 10878 call 01 9dah ; e8 8da211009 call 01a6bh ; e8 34 a2 10879 11010 add sp, strict byte 00006h ; 83 c4 06 10880 11011 test cl, cl ; 84 c9 10881 jne short 07 7b7h ; 75 6311012 jne short 078a1h ; 75 63 10882 11013 mov dx, ss ; 8c d2 10883 11014 lea ax, [bp-008h] ; 8d 46 f8 10884 call 07 35ah ; e8 fe fb11015 call 07444h ; e8 fe fb 10885 11016 test al, al ; 84 c0 10886 jne short 07 7b7h ; 75 5711017 jne short 078a1h ; 75 57 10887 11018 mov dx, ss ; 8c d2 10888 11019 lea ax, [bp-006h] ; 8d 46 fa 10889 call 07 35ah ; e8 f2 fb11020 call 07444h ; e8 f2 fb 10890 11021 test al, al ; 84 c0 10891 jne short 07 7b7h ; 75 4b11022 jne short 078a1h ; 75 4b 10892 11023 mov dx, ss ; 8c d2 10893 11024 lea ax, [bp-004h] ; 8d 46 fc 10894 call 07 35ah ; e8 e6 fb11025 call 07444h ; e8 e6 fb 10895 11026 test al, al ; 84 c0 10896 jne short 07 7b7h ; 75 3f11027 jne short 078a1h ; 75 3f 10897 11028 mov al, byte [bp-008h] ; 8a 46 f8 10898 11029 mov byte [bp+00ch], al ; 88 46 0c … … 10901 11032 mov al, byte [bp-004h] ; 8a 46 fc 10902 11033 mov byte [bp+00eh], al ; 88 46 0e 10903 jmp near 07 831h ; e9 a4 0011034 jmp near 0791bh ; e9 a4 00 10904 11035 cmp AL, strict byte 001h ; 3c 01 10905 jne short 07 796h ; 75 0511036 jne short 07880h ; 75 05 10906 11037 mov ax, 000e6h ; b8 e6 00 10907 jmp short 07 799h ; eb 0311038 jmp short 07883h ; eb 03 10908 11039 mov ax, 000e7h ; b8 e7 00 10909 call 07 326h ; e8 8a fb11040 call 07410h ; e8 8a fb 10910 11041 mov cl, al ; 88 c1 10911 11042 test cl, cl ; 84 c9 10912 jne short 07 7b1h ; 75 0f11043 jne short 0789bh ; 75 0f 10913 11044 mov dx, ss ; 8c d2 10914 11045 lea ax, [bp-008h] ; 8d 46 f8 10915 call 07 35ah ; e8 b0 fb11046 call 07444h ; e8 b0 fb 10916 11047 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 10917 11048 db 00fh, 095h, 0c1h 10918 11049 ; setne cl ; 0f 95 c1 10919 11050 test cl, cl ; 84 c9 10920 je near 07 831h ; 0f 84 7a 0011051 je near 0791bh ; 0f 84 7a 00 10921 11052 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10922 11053 mov byte [bp+013h], 003h ; c6 46 13 03 10923 jmp short 07 831h ; eb 7011054 jmp short 0791bh ; eb 70 10924 11055 movzx ax, byte [bp+00dh] ; 0f b6 46 0d 10925 11056 push ax ; 50 10926 push 009 5ah ; 68 5a0911057 push 0096ch ; 68 6c 09 10927 11058 push strict byte 00007h ; 6a 07 10928 call 01 9dah ; e8 0c a211059 call 01a6bh ; e8 b3 a1 10929 11060 add sp, strict byte 00006h ; 83 c4 06 10930 11061 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10931 11062 mov byte [bp+013h], 001h ; c6 46 13 01 10932 jmp short 07 831h ; eb 5611063 jmp short 0791bh ; eb 56 10933 11064 mov si, word [bp+00ch] ; 8b 76 0c 10934 11065 mov bx, si ; 89 f3 10935 11066 mov dx, strict word 00022h ; ba 22 00 10936 11067 mov ax, cx ; 89 c8 10937 call 01 6e2h ; e8 fa9e11068 call 01773h ; e8 a1 9e 10938 11069 mov bx, word [bp+014h] ; 8b 5e 14 10939 11070 mov dx, strict word 00024h ; ba 24 00 10940 11071 mov ax, cx ; 89 c8 10941 call 01 6e2h ; e8 ef9e11072 call 01773h ; e8 96 9e 10942 11073 mov dx, strict word 00027h ; ba 27 00 10943 11074 mov ax, cx ; 89 c8 10944 call 01 6b8h ; e8 bd9e11075 call 01749h ; e8 64 9e 10945 11076 mov ah, al ; 88 c4 10946 11077 test si, si ; 85 f6 10947 jne short 078 0fh ; 75 0e11078 jne short 078f9h ; 75 0e 10948 11079 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 10949 jne short 078 0fh ; 75 0811080 jne short 078f9h ; 75 08 10950 11081 test AL, strict byte 080h ; a8 80 10951 je short 078 11h ; 74 0611082 je short 078fbh ; 74 06 10952 11083 and AL, strict byte 07fh ; 24 7f 10953 jmp short 078 11h ; eb 0211084 jmp short 078fbh ; eb 02 10954 11085 or AL, strict byte 080h ; 0c 80 10955 11086 movzx bx, al ; 0f b6 d8 10956 11087 mov dx, strict word 00027h ; ba 27 00 10957 11088 mov ax, cx ; 89 c8 10958 call 01 6c6h ; e8 aa9e10959 jmp short 07 831h ; eb 1310960 push 009 74h ; 68 740911089 call 01757h ; e8 51 9e 11090 jmp short 0791bh ; eb 13 11091 push 00986h ; 68 86 09 10961 11092 push strict byte 00007h ; 6a 07 10962 call 01 9dah ; e8 b4a111093 call 01a6bh ; e8 5b a1 10963 11094 add sp, strict byte 00004h ; 83 c4 04 10964 11095 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 10965 11096 mov byte [bp+013h], 001h ; c6 46 13 01 10966 11097 mov ax, strict word 00047h ; b8 47 00 10967 call 07 3b6h ; e8 7f fb11098 call 074a0h ; e8 7f fb 10968 11099 lea sp, [bp-002h] ; 8d 66 fe 10969 11100 pop si ; 5e 10970 11101 pop bp ; 5d 10971 11102 retn ; c3 10972 _int17_function: ; 0xf7 83dLB 0xb311103 _int17_function: ; 0xf7927 LB 0xb3 10973 11104 push bp ; 55 10974 11105 mov bp, sp ; 89 e5 … … 10980 11111 add dx, strict byte 00008h ; 83 c2 08 10981 11112 mov ax, strict word 00040h ; b8 40 00 10982 call 01 6d4h ; e8 839e11113 call 01765h ; e8 2a 9e 10983 11114 mov bx, ax ; 89 c3 10984 11115 mov si, ax ; 89 c6 10985 11116 cmp byte [bp+013h], 003h ; 80 7e 13 03 10986 jnc near 07 8e6h ; 0f 83 89 0011117 jnc near 079d0h ; 0f 83 89 00 10987 11118 mov ax, word [bp+00eh] ; 8b 46 0e 10988 11119 cmp ax, strict word 00003h ; 3d 03 00 10989 jnc near 07 8e6h ; 0f 83 7f 0011120 jnc near 079d0h ; 0f 83 7f 00 10990 11121 test bx, bx ; 85 db 10991 jbe near 07 8e6h ; 0f 86 79 0011122 jbe near 079d0h ; 0f 86 79 00 10992 11123 mov dx, ax ; 89 c2 10993 11124 add dx, strict byte 00078h ; 83 c2 78 10994 11125 mov ax, strict word 00040h ; b8 40 00 10995 call 01 6b8h ; e8 40 9e11126 call 01749h ; e8 e7 9d 10996 11127 movzx cx, al ; 0f b6 c8 10997 11128 sal cx, 008h ; c1 e1 08 10998 11129 cmp byte [bp+013h], 000h ; 80 7e 13 00 10999 jne short 07 8b1h ; 75 2d11130 jne short 0799bh ; 75 2d 11000 11131 mov al, byte [bp+012h] ; 8a 46 12 11001 11132 mov dx, bx ; 89 da … … 11017 11148 ; sub ah, ah ; 2a e4 11018 11149 test AL, strict byte 040h ; a8 40 11019 je short 07 8b1h ; 74 0711150 je short 0799bh ; 74 07 11020 11151 test cx, cx ; 85 c9 11021 je short 07 8b1h ; 74 0311152 je short 0799bh ; 74 03 11022 11153 dec cx ; 49 11023 jmp short 07 8a0h ; eb ef11154 jmp short 0798ah ; eb ef 11024 11155 cmp byte [bp+013h], 001h ; 80 7e 13 01 11025 jne short 07 8cdh ; 75 1611156 jne short 079b7h ; 75 16 11026 11157 lea dx, [si+002h] ; 8d 54 02 11027 11158 in AL, DX ; ec … … 11042 11173 mov byte [bp+013h], al ; 88 46 13 11043 11174 test cx, cx ; 85 c9 11044 jne short 07 8e0h ; 75 0411175 jne short 079cah ; 75 04 11045 11176 or byte [bp+013h], 001h ; 80 4e 13 01 11046 11177 and byte [bp+01ch], 0feh ; 80 66 1c fe 11047 jmp short 07 8eah ; eb 0411178 jmp short 079d4h ; eb 04 11048 11179 or byte [bp+01ch], 001h ; 80 4e 1c 01 11049 11180 lea sp, [bp-002h] ; 8d 66 fe … … 11051 11182 pop bp ; 5d 11052 11183 retn ; c3 11053 wait_: ; 0xf7 8f0LB 0xb211184 wait_: ; 0xf79da LB 0xb2 11054 11185 push bp ; 55 11055 11186 mov bp, sp ; 89 e5 … … 11069 11200 mov dx, 0046ch ; ba 6c 04 11070 11201 xor ax, ax ; 31 c0 11071 call 01 6f0h ; e8 dd9d11202 call 01781h ; e8 84 9d 11072 11203 mov word [bp-00eh], ax ; 89 46 f2 11073 11204 mov bx, dx ; 89 d3 … … 11075 11206 mov dx, 0046ch ; ba 6c 04 11076 11207 xor ax, ax ; 31 c0 11077 call 01 6f0h ; e8 cf9d11208 call 01781h ; e8 76 9d 11078 11209 mov word [bp-012h], ax ; 89 46 ee 11079 11210 mov di, dx ; 89 d7 11080 11211 cmp dx, bx ; 39 da 11081 jnbe short 07 931h ; 77 0711082 jne short 07 938h ; 75 0c11212 jnbe short 07a1bh ; 77 07 11213 jne short 07a22h ; 75 0c 11083 11214 cmp ax, word [bp-00eh] ; 3b 46 f2 11084 jbe short 07 938h ; 76 0711215 jbe short 07a22h ; 76 07 11085 11216 sub ax, word [bp-00eh] ; 2b 46 f2 11086 11217 sbb dx, bx ; 19 da 11087 jmp short 07 943h ; eb 0b11218 jmp short 07a2dh ; eb 0b 11088 11219 cmp dx, bx ; 39 da 11089 jc short 07 943h ; 72 0711090 jne short 07 947h ; 75 0911220 jc short 07a2dh ; 72 07 11221 jne short 07a31h ; 75 09 11091 11222 cmp ax, word [bp-00eh] ; 3b 46 f2 11092 jnc short 07 947h ; 73 0411223 jnc short 07a31h ; 73 04 11093 11224 sub si, ax ; 29 c6 11094 11225 sbb cx, dx ; 19 d1 … … 11098 11229 mov ax, 00100h ; b8 00 01 11099 11230 int 016h ; cd 16 11100 je near 07 95dh ; 0f 84 05 0011231 je near 07a47h ; 0f 84 05 00 11101 11232 mov AL, strict byte 001h ; b0 01 11102 jmp near 07 95fh ; e9 02 0011233 jmp near 07a49h ; e9 02 00 11103 11234 db 032h, 0c0h 11104 11235 ; xor al, al ; 32 c0 11105 11236 test al, al ; 84 c0 11106 je short 07 987h ; 74 2411237 je short 07a71h ; 74 24 11107 11238 db 033h, 0c0h 11108 11239 ; xor ax, ax ; 33 c0 … … 11113 11244 movzx ax, dl ; 0f b6 c2 11114 11245 push ax ; 50 11115 push 009 96h ; 68 960911246 push 009a8h ; 68 a8 09 11116 11247 push strict byte 00004h ; 6a 04 11117 call 01 9dah ; e8 60a011248 call 01a6bh ; e8 07 a0 11118 11249 add sp, strict byte 00006h ; 83 c4 06 11119 11250 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11120 je short 07 987h ; 74 0411251 je short 07a71h ; 74 04 11121 11252 mov al, dl ; 88 d0 11122 jmp short 07 999h ; eb 1211253 jmp short 07a83h ; eb 12 11123 11254 test cx, cx ; 85 c9 11124 jnle short 07 918h ; 7f 8d11125 jne short 07 991h ; 75 0411255 jnle short 07a02h ; 7f 8d 11256 jne short 07a7bh ; 75 04 11126 11257 test si, si ; 85 f6 11127 jnbe short 07 918h ; 77 8711258 jnbe short 07a02h ; 77 87 11128 11259 mov ax, word [bp-010h] ; 8b 46 f0 11129 11260 push ax ; 50 … … 11137 11268 pop bp ; 5d 11138 11269 retn ; c3 11139 read_logo_byte_: ; 0xf7 9a2LB 0x1611270 read_logo_byte_: ; 0xf7a8c LB 0x16 11140 11271 push bp ; 55 11141 11272 mov bp, sp ; 89 e5 … … 11152 11283 pop bp ; 5d 11153 11284 retn ; c3 11154 read_logo_word_: ; 0xf7 9b8LB 0x1411285 read_logo_word_: ; 0xf7aa2 LB 0x14 11155 11286 push bp ; 55 11156 11287 mov bp, sp ; 89 e5 … … 11165 11296 pop bp ; 5d 11166 11297 retn ; c3 11167 print_detected_harddisks_: ; 0xf7 9ccLB 0x13011298 print_detected_harddisks_: ; 0xf7ab6 LB 0x130 11168 11299 push bp ; 55 11169 11300 mov bp, sp ; 89 e5 … … 11177 11308 mov dx, strict word 0000eh ; ba 0e 00 11178 11309 mov ax, strict word 00040h ; b8 40 00 11179 call 01 6d4h ; e8 f59c11310 call 01765h ; e8 9c 9c 11180 11311 mov si, ax ; 89 c6 11181 11312 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11183 11314 xor ch, ch ; 30 ed 11184 11315 mov dx, 00304h ; ba 04 03 11185 call 01 6b8h ; e8 c99c11316 call 01749h ; e8 70 9c 11186 11317 mov byte [bp-00eh], al ; 88 46 f2 11187 11318 xor bl, bl ; 30 db 11188 11319 cmp bl, byte [bp-00eh] ; 3a 5e f2 11189 jnc near 07 aceh ; 0f 83 d3 0011320 jnc near 07bb8h ; 0f 83 d3 00 11190 11321 movzx dx, bl ; 0f b6 d3 11191 11322 add dx, 00305h ; 81 c2 05 03 11192 11323 mov ax, si ; 89 f0 11193 call 01 6b8h ; e8 b19c11324 call 01749h ; e8 58 9c 11194 11325 mov bh, al ; 88 c7 11195 11326 cmp AL, strict byte 00ch ; 3c 0c 11196 jc short 07 a31h ; 72 2411327 jc short 07b1bh ; 72 24 11197 11328 test cl, cl ; 84 c9 11198 jne short 07 a1eh ; 75 0d11199 push 009 a7h ; 68 a70911329 jne short 07b08h ; 75 0d 11330 push 009b9h ; 68 b9 09 11200 11331 push strict byte 00002h ; 6a 02 11201 call 01 9dah ; e8 c19f11332 call 01a6bh ; e8 68 9f 11202 11333 add sp, strict byte 00004h ; 83 c4 04 11203 11334 mov CL, strict byte 001h ; b1 01 … … 11205 11336 inc ax ; 40 11206 11337 push ax ; 50 11207 push 009 bch ; 68 bc0911338 push 009ceh ; 68 ce 09 11208 11339 push strict byte 00002h ; 6a 02 11209 call 01 9dah ; e8 af9f11340 call 01a6bh ; e8 56 9f 11210 11341 add sp, strict byte 00006h ; 83 c4 06 11211 jmp near 07 ac9h ; e9 98 0011342 jmp near 07bb3h ; e9 98 00 11212 11343 cmp AL, strict byte 008h ; 3c 08 11213 jc short 07 a48h ; 72 1311344 jc short 07b32h ; 72 13 11214 11345 test ch, ch ; 84 ed 11215 jne short 07 a46h ; 75 0d11216 push 009 cfh ; 68 cf0911346 jne short 07b30h ; 75 0d 11347 push 009e1h ; 68 e1 09 11217 11348 push strict byte 00002h ; 6a 02 11218 call 01 9dah ; e8 999f11349 call 01a6bh ; e8 40 9f 11219 11350 add sp, strict byte 00004h ; 83 c4 04 11220 11351 mov CH, strict byte 001h ; b5 01 11221 jmp short 07 a1eh ; eb d611352 jmp short 07b08h ; eb d6 11222 11353 cmp AL, strict byte 004h ; 3c 04 11223 jnc short 07 a63h ; 73 1711354 jnc short 07b4dh ; 73 17 11224 11355 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11225 jne short 07 a63h ; 75 1111226 push 009 e4h ; 68 e40911356 jne short 07b4dh ; 75 11 11357 push 009f6h ; 68 f6 09 11227 11358 push strict byte 00002h ; 6a 02 11228 call 01 9dah ; e8 809f11359 call 01a6bh ; e8 27 9f 11229 11360 add sp, strict byte 00004h ; 83 c4 04 11230 11361 mov byte [bp-00ch], 001h ; c6 46 f4 01 11231 jmp short 07 a79h ; eb 1611362 jmp short 07b63h ; eb 16 11232 11363 cmp bh, 004h ; 80 ff 04 11233 jc short 07 a79h ; 72 1111364 jc short 07b63h ; 72 11 11234 11365 test cl, cl ; 84 c9 11235 jne short 07 a79h ; 75 0d11236 push 00 9f6h ; 68 f6 0911366 jne short 07b63h ; 75 0d 11367 push 00a08h ; 68 08 0a 11237 11368 push strict byte 00002h ; 6a 02 11238 call 01 9dah ; e8 669f11369 call 01a6bh ; e8 0d 9f 11239 11370 add sp, strict byte 00004h ; 83 c4 04 11240 11371 mov CL, strict byte 001h ; b1 01 … … 11242 11373 inc ax ; 40 11243 11374 push ax ; 50 11244 push 00a 0ah ; 68 0a0a11375 push 00a1ch ; 68 1c 0a 11245 11376 push strict byte 00002h ; 6a 02 11246 call 01 9dah ; e8 54 9f11377 call 01a6bh ; e8 fb 9e 11247 11378 add sp, strict byte 00006h ; 83 c4 06 11248 11379 cmp bh, 004h ; 80 ff 04 11249 jc short 07 a91h ; 72 0311380 jc short 07b7bh ; 72 03 11250 11381 sub bh, 004h ; 80 ef 04 11251 11382 movzx ax, bh ; 0f b6 c7 … … 11255 11386 sar ax, 1 ; d1 f8 11256 11387 test ax, ax ; 85 c0 11257 je short 07 aa2h ; 74 0511258 push 00a 14h ; 68 140a11259 jmp short 07 aa5h ; eb 0311260 push 00a 1fh ; 68 1f0a11388 je short 07b8ch ; 74 05 11389 push 00a26h ; 68 26 0a 11390 jmp short 07b8fh ; eb 03 11391 push 00a31h ; 68 31 0a 11261 11392 push strict byte 00002h ; 6a 02 11262 call 01 9dah ; e8 30 9f11393 call 01a6bh ; e8 d7 9e 11263 11394 add sp, strict byte 00004h ; 83 c4 04 11264 11395 movzx ax, bh ; 0f b6 c7 … … 11267 11398 idiv di ; f7 ff 11268 11399 test dx, dx ; 85 d2 11269 je short 07 abfh ; 74 0511270 push 00a 28h ; 68 280a11271 jmp short 07 ac2h ; eb 0311272 push 00a 2eh ; 68 2e0a11400 je short 07ba9h ; 74 05 11401 push 00a3ah ; 68 3a 0a 11402 jmp short 07bach ; eb 03 11403 push 00a40h ; 68 40 0a 11273 11404 push di ; 57 11274 call 01 9dah ; e8 14 9f11405 call 01a6bh ; e8 bb 9e 11275 11406 add sp, strict byte 00004h ; 83 c4 04 11276 11407 db 0feh, 0c3h 11277 11408 ; inc bl ; fe c3 11278 jmp near 07 9f4h ; e9 26 ff11409 jmp near 07adeh ; e9 26 ff 11279 11410 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11280 jne short 07 ae7h ; 75 1311411 jne short 07bd1h ; 75 13 11281 11412 test cl, cl ; 84 c9 11282 jne short 07 ae7h ; 75 0f11413 jne short 07bd1h ; 75 0f 11283 11414 test ch, ch ; 84 ed 11284 jne short 07 ae7h ; 75 0b11285 push 00a 35h ; 68 350a11415 jne short 07bd1h ; 75 0b 11416 push 00a47h ; 68 47 0a 11286 11417 push strict byte 00002h ; 6a 02 11287 call 01 9dah ; e8 f69e11418 call 01a6bh ; e8 9d 9e 11288 11419 add sp, strict byte 00004h ; 83 c4 04 11289 push 00a 49h ; 68 490a11420 push 00a5bh ; 68 5b 0a 11290 11421 push strict byte 00002h ; 6a 02 11291 call 01 9dah ; e8 eb9e11422 call 01a6bh ; e8 92 9e 11292 11423 add sp, strict byte 00004h ; 83 c4 04 11293 11424 lea sp, [bp-00ah] ; 8d 66 f6 … … 11299 11430 pop bp ; 5d 11300 11431 retn ; c3 11301 get_boot_drive_: ; 0xf7 afcLB 0x2811432 get_boot_drive_: ; 0xf7be6 LB 0x28 11302 11433 push bp ; 55 11303 11434 mov bp, sp ; 89 e5 … … 11307 11438 mov dx, strict word 0000eh ; ba 0e 00 11308 11439 mov ax, strict word 00040h ; b8 40 00 11309 call 01 6d4h ; e8 c89b11440 call 01765h ; e8 6f 9b 11310 11441 mov dx, 00304h ; ba 04 03 11311 call 01 6b8h ; e8 a69b11442 call 01749h ; e8 4d 9b 11312 11443 sub bl, 002h ; 80 eb 02 11313 11444 cmp bl, al ; 38 c3 11314 jc short 07 b1bh ; 72 0211445 jc short 07c05h ; 72 02 11315 11446 mov BL, strict byte 0ffh ; b3 ff 11316 11447 mov al, bl ; 88 d8 … … 11320 11451 pop bp ; 5d 11321 11452 retn ; c3 11322 show_logo_: ; 0xf7 b24LB 0x23111453 show_logo_: ; 0xf7c0e LB 0x231 11323 11454 push bp ; 55 11324 11455 mov bp, sp ; 89 e5 … … 11331 11462 mov dx, strict word 0000eh ; ba 0e 00 11332 11463 mov ax, strict word 00040h ; b8 40 00 11333 call 01 6d4h ; e8 9c9b11464 call 01765h ; e8 43 9b 11334 11465 mov si, ax ; 89 c6 11335 11466 xor cl, cl ; 30 c9 … … 11342 11473 out strict byte 040h, AL ; e6 40 11343 11474 movzx ax, dl ; 0f b6 c2 11344 call 07 9b8h ; e8 68 fe11475 call 07aa2h ; e8 68 fe 11345 11476 cmp ax, 066bbh ; 3d bb 66 11346 jne near 07 c35h ; 0f 85 de 0011477 jne near 07d1fh ; 0f 85 de 00 11347 11478 push SS ; 16 11348 11479 pop ES ; 07 … … 11352 11483 mov word [es:di], bx ; 26 89 1d 11353 11484 cmp ax, strict word 0004fh ; 3d 4f 00 11354 jne near 07 c35h ; 0f 85 ca 0011485 jne near 07d1fh ; 0f 85 ca 00 11355 11486 mov al, dl ; 88 d0 11356 11487 add AL, strict byte 004h ; 04 04 11357 11488 xor ah, ah ; 30 e4 11358 call 07 9a2h ; e8 2e fe11489 call 07a8ch ; e8 2e fe 11359 11490 mov ch, al ; 88 c5 11360 11491 mov byte [bp-00ch], al ; 88 46 f4 … … 11362 11493 add AL, strict byte 005h ; 04 05 11363 11494 xor ah, ah ; 30 e4 11364 call 07 9a2h ; e8 20 fe11495 call 07a8ch ; e8 20 fe 11365 11496 mov dh, al ; 88 c6 11366 11497 mov byte [bp-010h], al ; 88 46 f0 … … 11368 11499 add AL, strict byte 002h ; 04 02 11369 11500 xor ah, ah ; 30 e4 11370 call 07 9b8h ; e8 28 fe11501 call 07aa2h ; e8 28 fe 11371 11502 mov bx, ax ; 89 c3 11372 11503 mov word [bp-014h], ax ; 89 46 ec … … 11374 11505 add AL, strict byte 006h ; 04 06 11375 11506 xor ah, ah ; 30 e4 11376 call 07 9a2h ; e8 04 fe11507 call 07a8ch ; e8 04 fe 11377 11508 mov byte [bp-012h], al ; 88 46 ee 11378 11509 test ch, ch ; 84 ed 11379 jne short 07 bafh ; 75 0a11510 jne short 07c99h ; 75 0a 11380 11511 test dh, dh ; 84 f6 11381 jne short 07 bafh ; 75 0611512 jne short 07c99h ; 75 06 11382 11513 test bx, bx ; 85 db 11383 je near 07 c35h ; 0f 84 86 0011514 je near 07d1fh ; 0f 84 86 00 11384 11515 mov bx, 00142h ; bb 42 01 11385 11516 mov ax, 04f02h ; b8 02 4f 11386 11517 int 010h ; cd 10 11387 11518 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11388 je short 07 be0h ; 74 2311519 je short 07ccah ; 74 23 11389 11520 xor bx, bx ; 31 db 11390 jmp short 07 bc7h ; eb 0611521 jmp short 07cb1h ; eb 06 11391 11522 inc bx ; 43 11392 11523 cmp bx, strict byte 00010h ; 83 fb 10 11393 jnbe short 07 be7h ; 77 2011524 jnbe short 07cd1h ; 77 20 11394 11525 mov ax, bx ; 89 d8 11395 11526 or ah, 002h ; 80 cc 02 … … 11398 11529 xor dx, dx ; 31 d2 11399 11530 mov ax, strict word 00001h ; b8 01 00 11400 call 07 8f0h ; e8 18 fd11531 call 079dah ; e8 18 fd 11401 11532 cmp AL, strict byte 086h ; 3c 86 11402 jne short 07 bc1h ; 75 e511533 jne short 07cabh ; 75 e5 11403 11534 mov CL, strict byte 001h ; b1 01 11404 jmp short 07 be7h ; eb 0711535 jmp short 07cd1h ; eb 07 11405 11536 mov ax, 00210h ; b8 10 02 11406 11537 mov dx, 003b8h ; ba b8 03 11407 11538 out DX, ax ; ef 11408 11539 test cl, cl ; 84 c9 11409 jne short 07 bfdh ; 75 1211540 jne short 07ce7h ; 75 12 11410 11541 mov ax, word [bp-014h] ; 8b 46 ec 11411 11542 shr ax, 004h ; c1 e8 04 11412 11543 mov dx, strict word 00001h ; ba 01 00 11413 call 07 8f0h ; e8 f9 fc11544 call 079dah ; e8 f9 fc 11414 11545 cmp AL, strict byte 086h ; 3c 86 11415 jne short 07 bfdh ; 75 0211546 jne short 07ce7h ; 75 02 11416 11547 mov CL, strict byte 001h ; b1 01 11417 11548 cmp byte [bp-010h], 000h ; 80 7e f0 00 11418 je short 07 c2ah ; 74 2711549 je short 07d14h ; 74 27 11419 11550 test cl, cl ; 84 c9 11420 jne short 07 c2ah ; 75 2311551 jne short 07d14h ; 75 23 11421 11552 mov bx, strict word 00010h ; bb 10 00 11422 jmp short 07c 11h ; eb 0511553 jmp short 07cfbh ; eb 05 11423 11554 dec bx ; 4b 11424 11555 test bx, bx ; 85 db 11425 jbe short 07 c35h ; 76 2411556 jbe short 07d1fh ; 76 24 11426 11557 mov ax, bx ; 89 d8 11427 11558 or ah, 002h ; 80 cc 02 … … 11430 11561 xor dx, dx ; 31 d2 11431 11562 mov ax, strict word 00001h ; b8 01 00 11432 call 07 8f0h ; e8 ce fc11563 call 079dah ; e8 ce fc 11433 11564 cmp AL, strict byte 086h ; 3c 86 11434 jne short 07c 0ch ; 75 e611565 jne short 07cf6h ; 75 e6 11435 11566 mov CL, strict byte 001h ; b1 01 11436 jmp short 07 c35h ; eb 0b11567 jmp short 07d1fh ; eb 0b 11437 11568 test cl, cl ; 84 c9 11438 jne short 07 c35h ; 75 0711569 jne short 07d1fh ; 75 07 11439 11570 mov ax, 00200h ; b8 00 02 11440 11571 mov dx, 003b8h ; ba b8 03 … … 11443 11574 mov dx, 0037dh ; ba 7d 03 11444 11575 mov ax, si ; 89 f0 11445 call 01 6c6h ; e8 879a11576 call 01757h ; e8 2e 9a 11446 11577 mov AL, strict byte 003h ; b0 03 11447 11578 mov AH, strict byte 000h ; b4 00 11448 11579 int 010h ; cd 10 11449 11580 cmp byte [bp-012h], 000h ; 80 7e ee 00 11450 je near 07 d36h ; 0f 84 e9 0011581 je near 07e20h ; 0f 84 e9 00 11451 11582 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11452 jne short 07 c83h ; 75 3011583 jne short 07d6dh ; 75 30 11453 11584 cmp byte [bp-010h], 000h ; 80 7e f0 00 11454 jne short 07 c83h ; 75 2a11585 jne short 07d6dh ; 75 2a 11455 11586 cmp word [bp-014h], strict byte 00000h ; 83 7e ec 00 11456 jne short 07 c83h ; 75 2411587 jne short 07d6dh ; 75 24 11457 11588 cmp byte [bp-012h], 002h ; 80 7e ee 02 11458 jne short 07 c70h ; 75 0b11459 push 00a 4bh ; 68 4b0a11589 jne short 07d5ah ; 75 0b 11590 push 00a5dh ; 68 5d 0a 11460 11591 push strict byte 00002h ; 6a 02 11461 call 01 9dah ; e8 6d9d11592 call 01a6bh ; e8 14 9d 11462 11593 add sp, strict byte 00004h ; 83 c4 04 11463 11594 test cl, cl ; 84 c9 11464 jne short 07 c83h ; 75 0f11595 jne short 07d6dh ; 75 0f 11465 11596 mov dx, strict word 00001h ; ba 01 00 11466 11597 mov ax, 000c0h ; b8 c0 00 11467 call 07 8f0h ; e8 73 fc11598 call 079dah ; e8 73 fc 11468 11599 cmp AL, strict byte 086h ; 3c 86 11469 jne short 07 c83h ; 75 0211600 jne short 07d6dh ; 75 02 11470 11601 mov CL, strict byte 001h ; b1 01 11471 11602 test cl, cl ; 84 c9 11472 je near 07 d36h ; 0f 84 ad 0011603 je near 07e20h ; 0f 84 ad 00 11473 11604 mov byte [bp-00eh], 000h ; c6 46 f2 00 11474 11605 mov ax, 00100h ; b8 00 01 … … 11487 11618 ; xor dx, dx ; 33 d2 11488 11619 int 010h ; cd 10 11489 push 00a 6dh ; 68 6d0a11620 push 00a7fh ; 68 7f 0a 11490 11621 push strict byte 00002h ; 6a 02 11491 call 01 9dah ; e8 28 9d11622 call 01a6bh ; e8 cf 9c 11492 11623 add sp, strict byte 00004h ; 83 c4 04 11493 call 07 9cch ; e8 14 fd11494 push 00a b1h ; 68 b10a11624 call 07ab6h ; e8 14 fd 11625 push 00ac3h ; 68 c3 0a 11495 11626 push strict byte 00002h ; 6a 02 11496 call 01 9dah ; e8 1a 9d11627 call 01a6bh ; e8 c1 9c 11497 11628 add sp, strict byte 00004h ; 83 c4 04 11498 11629 mov dx, strict word 00001h ; ba 01 00 11499 11630 mov ax, strict word 00040h ; b8 40 00 11500 call 07 8f0h ; e8 24 fc11631 call 079dah ; e8 24 fc 11501 11632 mov bl, al ; 88 c3 11502 11633 test al, al ; 84 c0 11503 je short 07 cc3h ; 74 f111634 je short 07dadh ; 74 f1 11504 11635 cmp AL, strict byte 030h ; 3c 30 11505 je short 07 d24h ; 74 4e11636 je short 07e0eh ; 74 4e 11506 11637 cmp bl, 002h ; 80 fb 02 11507 jc short 07 cfdh ; 72 2211638 jc short 07de7h ; 72 22 11508 11639 cmp bl, 009h ; 80 fb 09 11509 jnbe short 07 cfdh ; 77 1d11640 jnbe short 07de7h ; 77 1d 11510 11641 movzx ax, bl ; 0f b6 c3 11511 call 07 afch ; e8 16 fe11642 call 07be6h ; e8 16 fe 11512 11643 cmp AL, strict byte 0ffh ; 3c ff 11513 jne short 07 cech ; 75 0211514 jmp short 07 cc3h ; eb d711644 jne short 07dd6h ; 75 02 11645 jmp short 07dadh ; eb d7 11515 11646 movzx bx, al ; 0f b6 d8 11516 11647 mov dx, 0037ch ; ba 7c 03 11517 11648 mov ax, si ; 89 f0 11518 call 01 6c6h ; e8 cf9911649 call 01757h ; e8 76 99 11519 11650 mov byte [bp-00eh], 002h ; c6 46 f2 02 11520 jmp short 07 d24h ; eb 2711651 jmp short 07e0eh ; eb 27 11521 11652 cmp bl, 02eh ; 80 fb 2e 11522 je short 07d 12h ; 74 1011653 je short 07dfch ; 74 10 11523 11654 cmp bl, 026h ; 80 fb 26 11524 je short 07 d18h ; 74 1111655 je short 07e02h ; 74 11 11525 11656 cmp bl, 021h ; 80 fb 21 11526 jne short 07 d1eh ; 75 1211657 jne short 07e08h ; 75 12 11527 11658 mov byte [bp-00eh], 001h ; c6 46 f2 01 11528 jmp short 07 d24h ; eb 1211659 jmp short 07e0eh ; eb 12 11529 11660 mov byte [bp-00eh], 003h ; c6 46 f2 03 11530 jmp short 07 d24h ; eb 0c11661 jmp short 07e0eh ; eb 0c 11531 11662 mov byte [bp-00eh], 004h ; c6 46 f2 04 11532 jmp short 07 d24h ; eb 0611663 jmp short 07e0eh ; eb 06 11533 11664 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11534 je short 07 cc3h ; 74 9f11665 je short 07dadh ; 74 9f 11535 11666 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 11536 11667 mov dx, 0037dh ; ba 7d 03 11537 11668 mov ax, si ; 89 f0 11538 call 01 6c6h ; e8 969911669 call 01757h ; e8 3d 99 11539 11670 mov AL, strict byte 003h ; b0 03 11540 11671 mov AH, strict byte 000h ; b4 00 … … 11549 11680 push DS ; 1e 11550 11681 mov ds, ax ; 8e d8 11551 call 0edbfh ; e8 77 7011682 call 0edbfh ; e8 8d 6f 11552 11683 pop DS ; 1f 11553 11684 popad ; 66 61 … … 11560 11691 pop bp ; 5d 11561 11692 retn ; c3 11562 delay_boot_: ; 0xf7 d55LB 0x6711693 delay_boot_: ; 0xf7e3f LB 0x67 11563 11694 push bp ; 55 11564 11695 mov bp, sp ; 89 e5 … … 11567 11698 mov dx, ax ; 89 c2 11568 11699 test ax, ax ; 85 c0 11569 je short 07 db5h ; 74 5511700 je short 07e9fh ; 74 55 11570 11701 mov AL, strict byte 034h ; b0 34 11571 11702 out strict byte 043h, AL ; e6 43 … … 11575 11706 out strict byte 040h, AL ; e6 40 11576 11707 push dx ; 52 11577 push 00 afbh ; 68 fb 0a11708 push 00b0dh ; 68 0d 0b 11578 11709 push strict byte 00002h ; 6a 02 11579 call 01 9dah ; e8 659c11710 call 01a6bh ; e8 0c 9c 11580 11711 add sp, strict byte 00006h ; 83 c4 06 11581 11712 mov bx, dx ; 89 d3 11582 11713 test bx, bx ; 85 db 11583 jbe short 07 d95h ; 76 1711714 jbe short 07e7fh ; 76 17 11584 11715 push bx ; 53 11585 push 00b 19h ; 68 190b11716 push 00b2bh ; 68 2b 0b 11586 11717 push strict byte 00002h ; 6a 02 11587 call 01 9dah ; e8 53 9c11718 call 01a6bh ; e8 fa 9b 11588 11719 add sp, strict byte 00006h ; 83 c4 06 11589 11720 xor dx, dx ; 31 d2 11590 11721 mov ax, strict word 00040h ; b8 40 00 11591 call 07 8f0h ; e8 5e fb11722 call 079dah ; e8 5e fb 11592 11723 dec bx ; 4b 11593 jmp short 07 d7ah ; eb e511594 push 00a 49h ; 68 490a11724 jmp short 07e64h ; eb e5 11725 push 00a5bh ; 68 5b 0a 11595 11726 push strict byte 00002h ; 6a 02 11596 call 01 9dah ; e8 3d 9c11727 call 01a6bh ; e8 e4 9b 11597 11728 add sp, strict byte 00004h ; 83 c4 04 11598 11729 mov AL, strict byte 034h ; b0 34 … … 11605 11736 push DS ; 1e 11606 11737 mov ds, ax ; 8e d8 11607 call 0edbfh ; e8 0d 7011738 call 0edbfh ; e8 23 6f 11608 11739 pop DS ; 1f 11609 11740 popad ; 66 61 … … 11613 11744 pop bp ; 5d 11614 11745 retn ; c3 11615 scsi_cmd_data_in_: ; 0xf7 dbcLB 0xd511746 scsi_cmd_data_in_: ; 0xf7ea6 LB 0xd5 11616 11747 push bp ; 55 11617 11748 mov bp, sp ; 89 e5 … … 11629 11760 ; sub ah, ah ; 2a e4 11630 11761 test AL, strict byte 001h ; a8 01 11631 jne short 07 dd2h ; 75 f711762 jne short 07ebch ; 75 f7 11632 11763 cmp byte [bp+004h], 010h ; 80 7e 04 10 11633 jne short 07 de5h ; 75 0411764 jne short 07ecfh ; 75 04 11634 11765 xor ax, ax ; 31 c0 11635 jmp short 07 de9h ; eb 0411766 jmp short 07ed3h ; eb 04 11636 11767 movzx ax, byte [bp+004h] ; 0f b6 46 04 11637 11768 mov di, ax ; 89 c7 … … 11641 11772 shr dx, 1 ; d1 ea 11642 11773 rcr ax, 1 ; d1 d8 11643 loop 07 df3h ; e2 fa11774 loop 07eddh ; e2 fa 11644 11775 mov cx, ax ; 89 c1 11645 11776 and cx, 000f0h ; 81 e1 f0 00 … … 11659 11790 shr dx, 1 ; d1 ea 11660 11791 rcr ax, 1 ; d1 d8 11661 loop 07 e18h ; e2 fa11792 loop 07f02h ; e2 fa 11662 11793 mov dx, si ; 89 f2 11663 11794 out DX, AL ; ee … … 11665 11796 movzx ax, byte [bp+004h] ; 0f b6 46 04 11666 11797 cmp cx, ax ; 39 c1 11667 jnc short 07 e39h ; 73 0e11798 jnc short 07f23h ; 73 0e 11668 11799 les di, [bp-00ah] ; c4 7e f6 11669 11800 add di, cx ; 01 cf … … 11672 11803 out DX, AL ; ee 11673 11804 inc cx ; 41 11674 jmp short 07 e23h ; eb ea11805 jmp short 07f0dh ; eb ea 11675 11806 mov dx, si ; 89 f2 11676 11807 in AL, DX ; ec … … 11678 11809 ; sub ah, ah ; 2a e4 11679 11810 test AL, strict byte 001h ; a8 01 11680 jne short 07 e39h ; 75 f711811 jne short 07f23h ; 75 f7 11681 11812 test AL, strict byte 002h ; a8 02 11682 je short 07 e54h ; 74 0e11813 je short 07f3eh ; 74 0e 11683 11814 lea dx, [si+003h] ; 8d 54 03 11684 11815 xor al, al ; 30 c0 … … 11688 11819 ; sub ah, ah ; 2a e4 11689 11820 mov di, strict word 00004h ; bf 04 00 11690 jmp short 07 e86h ; eb 3211821 jmp short 07f70h ; eb 32 11691 11822 lea dx, [si+001h] ; 8d 54 01 11692 11823 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11693 jne short 07 e63h ; 75 0611824 jne short 07f4dh ; 75 06 11694 11825 cmp bx, 08000h ; 81 fb 00 80 11695 jbe short 07 e7dh ; 76 1a11826 jbe short 07f67h ; 76 1a 11696 11827 mov cx, 08000h ; b9 00 80 11697 11828 les di, [bp+006h] ; c4 7e 06 … … 11702 11833 add ax, 00800h ; 05 00 08 11703 11834 mov word [bp+008h], ax ; 89 46 08 11704 jmp short 07 e54h ; eb d711835 jmp short 07f3eh ; eb d7 11705 11836 mov cx, bx ; 89 d9 11706 11837 les di, [bp+006h] ; c4 7e 06 … … 11713 11844 pop bp ; 5d 11714 11845 retn 0000ah ; c2 0a 00 11715 scsi_cmd_data_out_: ; 0xf7 e91LB 0xd511846 scsi_cmd_data_out_: ; 0xf7f7b LB 0xd5 11716 11847 push bp ; 55 11717 11848 mov bp, sp ; 89 e5 … … 11729 11860 ; sub ah, ah ; 2a e4 11730 11861 test AL, strict byte 001h ; a8 01 11731 jne short 07 ea7h ; 75 f711862 jne short 07f91h ; 75 f7 11732 11863 cmp byte [bp+004h], 010h ; 80 7e 04 10 11733 jne short 07 ebah ; 75 0411864 jne short 07fa4h ; 75 04 11734 11865 xor ax, ax ; 31 c0 11735 jmp short 07 ebeh ; eb 0411866 jmp short 07fa8h ; eb 04 11736 11867 movzx ax, byte [bp+004h] ; 0f b6 46 04 11737 11868 mov si, ax ; 89 c6 … … 11741 11872 shr dx, 1 ; d1 ea 11742 11873 rcr ax, 1 ; d1 d8 11743 loop 07 ec8h ; e2 fa11874 loop 07fb2h ; e2 fa 11744 11875 mov cx, ax ; 89 c1 11745 11876 and cx, 000f0h ; 81 e1 f0 00 … … 11759 11890 shr dx, 1 ; d1 ea 11760 11891 rcr ax, 1 ; d1 d8 11761 loop 07 eedh ; e2 fa11892 loop 07fd7h ; e2 fa 11762 11893 mov dx, di ; 89 fa 11763 11894 out DX, AL ; ee … … 11765 11896 movzx ax, byte [bp+004h] ; 0f b6 46 04 11766 11897 cmp cx, ax ; 39 c1 11767 jnc short 07f 0eh ; 73 0e11898 jnc short 07ff8h ; 73 0e 11768 11899 les si, [bp-00ah] ; c4 76 f6 11769 11900 add si, cx ; 01 ce … … 11772 11903 out DX, AL ; ee 11773 11904 inc cx ; 41 11774 jmp short 07 ef8h ; eb ea11905 jmp short 07fe2h ; eb ea 11775 11906 lea dx, [di+001h] ; 8d 55 01 11776 11907 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 11777 jne short 0 7f1dh ; 75 0611908 jne short 08007h ; 75 06 11778 11909 cmp bx, 08000h ; 81 fb 00 80 11779 jbe short 0 7f38h ; 76 1b11910 jbe short 08022h ; 76 1b 11780 11911 mov cx, 08000h ; b9 00 80 11781 11912 les si, [bp+006h] ; c4 76 06 … … 11787 11918 add ax, 00800h ; 05 00 08 11788 11919 mov word [bp+008h], ax ; 89 46 08 11789 jmp short 07f 0eh ; eb d611920 jmp short 07ff8h ; eb d6 11790 11921 mov cx, bx ; 89 d9 11791 11922 les si, [bp+006h] ; c4 76 06 … … 11797 11928 ; sub ah, ah ; 2a e4 11798 11929 test AL, strict byte 001h ; a8 01 11799 jne short 0 7f40h ; 75 f711930 jne short 0802ah ; 75 f7 11800 11931 test AL, strict byte 002h ; a8 02 11801 je short 0 7f5bh ; 74 0e11932 je short 08045h ; 74 0e 11802 11933 lea dx, [di+003h] ; 8d 55 03 11803 11934 xor al, al ; 30 c0 … … 11807 11938 ; sub ah, ah ; 2a e4 11808 11939 mov ax, strict word 00004h ; b8 04 00 11809 jmp short 0 7f5dh ; eb 0211940 jmp short 08047h ; eb 02 11810 11941 xor ax, ax ; 31 c0 11811 11942 lea sp, [bp-004h] ; 8d 66 fc … … 11814 11945 pop bp ; 5d 11815 11946 retn 0000ah ; c2 0a 00 11816 @scsi_read_sectors: ; 0xf 7f66LB 0xdb11947 @scsi_read_sectors: ; 0xf8050 LB 0xdb 11817 11948 push bp ; 55 11818 11949 mov bp, sp ; 89 e5 … … 11826 11957 mov byte [bp-006h], al ; 88 46 fa 11827 11958 cmp AL, strict byte 004h ; 3c 04 11828 jbe short 0 7f94h ; 76 1311959 jbe short 0807eh ; 76 13 11829 11960 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11830 11961 push ax ; 50 11831 push 00b1eh ; 68 1e 0b11832 11962 push 00b30h ; 68 30 0b 11963 push 00b42h ; 68 42 0b 11833 11964 push strict byte 00007h ; 6a 07 11834 call 01 9dah ; e8 49 9a11965 call 01a6bh ; e8 f0 99 11835 11966 add sp, strict byte 00008h ; 83 c4 08 11836 11967 mov es, [bp+006h] ; 8e 46 06 … … 11871 12002 sal word [bp-00ah], 1 ; d1 66 f6 11872 12003 rcl word [bp-008h], 1 ; d1 56 f8 11873 loop 0 7ffdh ; e2 f812004 loop 080e7h ; e2 f8 11874 12005 push dword [bp-00ah] ; 66 ff 76 f6 11875 12006 db 066h, 026h, 0ffh, 074h, 008h … … 11879 12010 mov cx, ss ; 8c d1 11880 12011 lea bx, [bp-01ah] ; 8d 5e e6 11881 call 07 dbch ; e8 a2 fd12012 call 07ea6h ; e8 a2 fd 11882 12013 mov ah, al ; 88 c4 11883 12014 test al, al ; 84 c0 11884 jne short 08 035h ; 75 1512015 jne short 0811fh ; 75 15 11885 12016 mov es, [bp+006h] ; 8e 46 06 11886 12017 mov word [es:si+018h], di ; 26 89 7c 18 … … 11895 12026 pop bp ; 5d 11896 12027 retn 00004h ; c2 04 00 11897 @scsi_write_sectors: ; 0xf8 041LB 0xdb12028 @scsi_write_sectors: ; 0xf812b LB 0xdb 11898 12029 push bp ; 55 11899 12030 mov bp, sp ; 89 e5 … … 11907 12038 mov byte [bp-006h], al ; 88 46 fa 11908 12039 cmp AL, strict byte 004h ; 3c 04 11909 jbe short 08 06fh ; 76 1312040 jbe short 08159h ; 76 13 11910 12041 movzx ax, byte [bp-006h] ; 0f b6 46 fa 11911 12042 push ax ; 50 11912 push 00b 4fh ; 68 4f0b11913 push 00b 30h ; 68 300b12043 push 00b61h ; 68 61 0b 12044 push 00b42h ; 68 42 0b 11914 12045 push strict byte 00007h ; 6a 07 11915 call 01 9dah ; e8 6e9912046 call 01a6bh ; e8 15 99 11916 12047 add sp, strict byte 00008h ; 83 c4 08 11917 12048 mov es, [bp+006h] ; 8e 46 06 … … 11952 12083 sal word [bp-00ah], 1 ; d1 66 f6 11953 12084 rcl word [bp-008h], 1 ; d1 56 f8 11954 loop 08 0d8h ; e2 f812085 loop 081c2h ; e2 f8 11955 12086 push dword [bp-00ah] ; 66 ff 76 f6 11956 12087 db 066h, 026h, 0ffh, 074h, 008h … … 11960 12091 mov cx, ss ; 8c d1 11961 12092 lea bx, [bp-01ah] ; 8d 5e e6 11962 call 07 e91h ; e8 9c fd12093 call 07f7bh ; e8 9c fd 11963 12094 mov ah, al ; 88 c4 11964 12095 test al, al ; 84 c0 11965 jne short 081 10h ; 75 1512096 jne short 081fah ; 75 15 11966 12097 mov es, [bp+006h] ; 8e 46 06 11967 12098 mov word [es:si+018h], di ; 26 89 7c 18 … … 11976 12107 pop bp ; 5d 11977 12108 retn 00004h ; c2 04 00 11978 scsi_cmd_packet_: ; 0xf8 11cLB 0x16612109 scsi_cmd_packet_: ; 0xf8206 LB 0x166 11979 12110 push bp ; 55 11980 12111 mov bp, sp ; 89 e5 … … 11988 12119 mov dx, strict word 0000eh ; ba 0e 00 11989 12120 mov ax, strict word 00040h ; b8 40 00 11990 call 01 6d4h ; e8 9c9512121 call 01765h ; e8 43 95 11991 12122 mov si, 00122h ; be 22 01 11992 12123 mov word [bp-00eh], ax ; 89 46 f2 11993 12124 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 11994 jne short 08 163h ; 75 1f11995 mov bx, 00d a0h ; bb a00d12125 jne short 0824dh ; 75 1f 12126 mov bx, 00db2h ; bb b2 0d 11996 12127 mov cx, ds ; 8c d9 11997 12128 mov ax, strict word 00004h ; b8 04 00 11998 call 01 999h ; e8 4a 9811999 push 00b 62h ; 68 620b12000 push 00b 72h ; 68 720b12129 call 01a2ah ; e8 f1 97 12130 push 00b74h ; 68 74 0b 12131 push 00b84h ; 68 84 0b 12001 12132 push strict byte 00004h ; 6a 04 12002 call 01 9dah ; e8 809812133 call 01a6bh ; e8 27 98 12003 12134 add sp, strict byte 00006h ; 83 c4 06 12004 12135 mov dx, strict word 00001h ; ba 01 00 12005 jmp near 08 277h ; e9 14 0112136 jmp near 08361h ; e9 14 01 12006 12137 sub di, strict byte 00008h ; 83 ef 08 12007 12138 sal di, 002h ; c1 e7 02 … … 12017 12148 ; sub ah, ah ; 2a e4 12018 12149 test AL, strict byte 001h ; a8 01 12019 jne short 08 17fh ; 75 f712150 jne short 08269h ; 75 f7 12020 12151 xor ax, ax ; 31 c0 12021 12152 mov dx, word [bp+006h] ; 8b 56 06 … … 12033 12164 shr dx, 1 ; d1 ea 12034 12165 rcr ax, 1 ; d1 d8 12035 loop 08 1aah ; e2 fa12166 loop 08294h ; e2 fa 12036 12167 and ax, 000f0h ; 25 f0 00 12037 12168 movzx cx, byte [bp-006h] ; 0f b6 4e fa … … 12051 12182 shr dx, 1 ; d1 ea 12052 12183 rcr ax, 1 ; d1 d8 12053 loop 08 1d1h ; e2 fa12184 loop 082bbh ; e2 fa 12054 12185 mov dx, bx ; 89 da 12055 12186 out DX, AL ; ee … … 12057 12188 movzx ax, byte [bp-006h] ; 0f b6 46 fa 12058 12189 cmp cx, ax ; 39 c1 12059 jnc short 08 1f2h ; 73 0e12190 jnc short 082dch ; 73 0e 12060 12191 les di, [bp-00ch] ; c4 7e f4 12061 12192 add di, cx ; 01 cf … … 12064 12195 out DX, AL ; ee 12065 12196 inc cx ; 41 12066 jmp short 08 1dch ; eb ea12197 jmp short 082c6h ; eb ea 12067 12198 mov dx, bx ; 89 da 12068 12199 in AL, DX ; ec … … 12070 12201 ; sub ah, ah ; 2a e4 12071 12202 test AL, strict byte 001h ; a8 01 12072 jne short 08 1f2h ; 75 f712203 jne short 082dch ; 75 f7 12073 12204 test AL, strict byte 002h ; a8 02 12074 je short 082 0dh ; 74 0e12205 je short 082f7h ; 74 0e 12075 12206 lea dx, [bx+003h] ; 8d 57 03 12076 12207 xor al, al ; 30 c0 … … 12080 12211 ; sub ah, ah ; 2a e4 12081 12212 mov dx, strict word 00003h ; ba 03 00 12082 jmp short 08 277h ; eb 6a12213 jmp short 08361h ; eb 6a 12083 12214 mov ax, word [bp+004h] ; 8b 46 04 12084 12215 test ax, ax ; 85 c0 12085 je short 08 21ch ; 74 0812216 je short 08306h ; 74 08 12086 12217 lea dx, [bx+001h] ; 8d 57 01 12087 12218 mov cx, ax ; 89 c1 12088 12219 in AL, DX ; ec 12089 loop 08 219h ; e2 fd12220 loop 08303h ; e2 fd 12090 12221 mov ax, word [bp+006h] ; 8b 46 06 12091 12222 mov es, [bp-00eh] ; 8e 46 f2 … … 12095 12226 lea ax, [bx+001h] ; 8d 47 01 12096 12227 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12097 jne short 08 23dh ; 75 0712228 jne short 08327h ; 75 07 12098 12229 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12099 jbe short 08 25ah ; 76 1d12230 jbe short 08344h ; 76 1d 12100 12231 mov dx, ax ; 89 c2 12101 12232 mov cx, 08000h ; b9 00 80 … … 12107 12238 add ax, 00800h ; 05 00 08 12108 12239 mov word [bp+00eh], ax ; 89 46 0e 12109 jmp short 08 22dh ; eb d312240 jmp short 08317h ; eb d3 12110 12241 mov dx, ax ; 89 c2 12111 12242 mov cx, word [bp+006h] ; 8b 4e 06 … … 12114 12245 mov es, [bp-00eh] ; 8e 46 f2 12115 12246 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12116 je short 08 275h ; 74 0712247 je short 0835fh ; 74 07 12117 12248 mov cx, word [es:si+020h] ; 26 8b 4c 20 12118 12249 in AL, DX ; ec 12119 loop 08 272h ; e2 fd12250 loop 0835ch ; e2 fd 12120 12251 xor dx, dx ; 31 d2 12121 12252 mov ax, dx ; 89 d0 … … 12125 12256 pop bp ; 5d 12126 12257 retn 0000ch ; c2 0c 00 12127 scsi_enumerate_attached_devices_: ; 0xf8 282LB 0x48212258 scsi_enumerate_attached_devices_: ; 0xf836c LB 0x482 12128 12259 push bp ; 55 12129 12260 mov bp, sp ; 89 e5 … … 12137 12268 mov dx, strict word 0000eh ; ba 0e 00 12138 12269 mov ax, strict word 00040h ; b8 40 00 12139 call 01 6d4h ; e8 3c 9412270 call 01765h ; e8 e3 93 12140 12271 mov di, 00122h ; bf 22 01 12141 12272 mov word [bp-02eh], ax ; 89 46 d2 12142 12273 mov word [bp-01eh], strict word 00000h ; c7 46 e2 00 00 12143 jmp near 08 686h ; e9 e0 0312274 jmp near 08770h ; e9 e0 03 12144 12275 cmp AL, strict byte 004h ; 3c 04 12145 jnc near 08 6fah ; 0f 83 4e 0412276 jnc near 087e4h ; 0f 83 4e 04 12146 12277 mov cx, strict word 00010h ; b9 10 00 12147 12278 xor bx, bx ; 31 db 12148 12279 mov dx, ss ; 8c d2 12149 12280 lea ax, [bp-046h] ; 8d 46 ba 12150 call 0 9f60h ; e8 a71c12281 call 0a050h ; e8 ad 1c 12151 12282 mov byte [bp-046h], 09eh ; c6 46 ba 9e 12152 12283 mov byte [bp-045h], 010h ; c6 46 bb 10 … … 12161 12292 lea bx, [bp-046h] ; 8d 5e ba 12162 12293 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12163 call 07 dbch ; e8 dc fa12294 call 07ea6h ; e8 dc fa 12164 12295 test al, al ; 84 c0 12165 je short 08 2f2h ; 74 0e12166 push 00b 92h ; 68 920b12167 push 00b cbh ; 68 cb0b12296 je short 083dch ; 74 0e 12297 push 00ba4h ; 68 a4 0b 12298 push 00bddh ; 68 dd 0b 12168 12299 push strict byte 00007h ; 6a 07 12169 call 01 9dah ; e8 eb9612300 call 01a6bh ; e8 92 96 12170 12301 add sp, strict byte 00006h ; 83 c4 06 12171 12302 mov ax, word [bp-00240h] ; 8b 86 c0 fd … … 12197 12328 sal ax, 1 ; d1 e0 12198 12329 rcl dx, 1 ; d1 d2 12199 loop 08 340h ; e2 fa12330 loop 0842ah ; e2 fa 12200 12331 or bx, ax ; 09 c3 12201 12332 or dx, si ; 09 f2 … … 12204 12335 mov word [bp-024h], bx ; 89 5e dc 12205 12336 test dx, dx ; 85 d2 12206 jne short 08 35eh ; 75 0612337 jne short 08448h ; 75 06 12207 12338 cmp bx, 00200h ; 81 fb 00 02 12208 je short 08 37eh ; 74 2012209 mov bx, 00d a0h ; bb a00d12339 je short 08468h ; 74 20 12340 mov bx, 00db2h ; bb b2 0d 12210 12341 mov cx, ds ; 8c d9 12211 12342 mov ax, strict word 00004h ; b8 04 00 12212 call 01 999h ; e8 30 9612343 call 01a2ah ; e8 d7 95 12213 12344 push dx ; 52 12214 12345 push word [bp-024h] ; ff 76 dc 12215 12346 push word [bp-01eh] ; ff 76 e2 12216 push 00b eah ; 68 ea0b12347 push 00bfch ; 68 fc 0b 12217 12348 push strict byte 00004h ; 6a 04 12218 call 01 9dah ; e8 629612349 call 01a6bh ; e8 09 96 12219 12350 add sp, strict byte 0000ah ; 83 c4 0a 12220 jmp near 08 67dh ; e9 ff 0212351 jmp near 08767h ; e9 ff 02 12221 12352 mov al, byte [bp-00ch] ; 8a 46 f4 12222 12353 cmp AL, strict byte 001h ; 3c 01 12223 jc short 08 391h ; 72 0c12224 jbe short 08 399h ; 76 1212354 jc short 0847bh ; 72 0c 12355 jbe short 08483h ; 76 12 12225 12356 cmp AL, strict byte 003h ; 3c 03 12226 je short 08 3a1h ; 74 1612357 je short 0848bh ; 74 16 12227 12358 cmp AL, strict byte 002h ; 3c 02 12228 je short 08 39dh ; 74 0e12229 jmp short 08 3eah ; eb 5912359 je short 08487h ; 74 0e 12360 jmp short 084d4h ; eb 59 12230 12361 test al, al ; 84 c0 12231 jne short 08 3eah ; 75 5512362 jne short 084d4h ; 75 55 12232 12363 mov BL, strict byte 090h ; b3 90 12233 jmp short 08 3a3h ; eb 0a12364 jmp short 0848dh ; eb 0a 12234 12365 mov BL, strict byte 098h ; b3 98 12235 jmp short 08 3a3h ; eb 0612366 jmp short 0848dh ; eb 06 12236 12367 mov BL, strict byte 0a0h ; b3 a0 12237 jmp short 08 3a3h ; eb 0212368 jmp short 0848dh ; eb 02 12238 12369 mov BL, strict byte 0a8h ; b3 a8 12239 12370 mov al, bl ; 88 d8 … … 12241 12372 movzx cx, al ; 0f b6 c8 12242 12373 mov ax, cx ; 89 c8 12243 call 017 14h ; e8 659312374 call 017a5h ; e8 0c 93 12244 12375 test al, al ; 84 c0 12245 je short 08 3eah ; 74 3712376 je short 084d4h ; 74 37 12246 12377 mov al, bl ; 88 d8 12247 12378 db 0feh, 0c0h 12248 12379 ; inc al ; fe c0 12249 12380 xor ah, ah ; 30 e4 12250 call 017 14h ; e8 58 9312381 call 017a5h ; e8 ff 92 12251 12382 movzx dx, al ; 0f b6 d0 12252 12383 sal dx, 008h ; c1 e2 08 12253 12384 movzx ax, bl ; 0f b6 c3 12254 call 017 14h ; e8 4c 9312385 call 017a5h ; e8 f3 92 12255 12386 xor ah, ah ; 30 e4 12256 12387 add ax, dx ; 01 d0 … … 12260 12391 add AL, strict byte 002h ; 04 02 12261 12392 xor ah, ah ; 30 e4 12262 call 017 14h ; e8 3c 9312393 call 017a5h ; e8 e3 92 12263 12394 xor ah, ah ; 30 e4 12264 12395 mov word [bp-034h], ax ; 89 46 cc 12265 12396 mov ax, cx ; 89 c8 12266 call 017 14h ; e8 32 9312397 call 017a5h ; e8 d9 92 12267 12398 xor ah, ah ; 30 e4 12268 12399 mov word [bp-032h], ax ; 89 46 ce 12269 jmp near 08 4d3h ; e9 e9 0012400 jmp near 085bdh ; e9 e9 00 12270 12401 mov ax, word [bp-010h] ; 8b 46 f0 12271 12402 mov bx, word [bp-030h] ; 8b 5e d0 … … 12273 12404 mov dx, word [bp-016h] ; 8b 56 ea 12274 12405 mov si, strict word 0000ch ; be 0c 00 12275 call 0 9f40h ; e8 441b12406 call 0a030h ; e8 4a 1b 12276 12407 mov word [bp-018h], ax ; 89 46 e8 12277 12408 mov word [bp-014h], bx ; 89 5e ec … … 12280 12411 mov ax, word [bp-010h] ; 8b 46 f0 12281 12412 test ax, ax ; 85 c0 12282 jnbe short 08 425h ; 77 1612283 jne near 08 498h ; 0f 85 85 0012413 jnbe short 0850fh ; 77 16 12414 jne near 08582h ; 0f 85 85 00 12284 12415 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12285 jnbe short 08 425h ; 77 0c12286 jne near 08 498h ; 0f 85 7b 0012416 jnbe short 0850fh ; 77 0c 12417 jne near 08582h ; 0f 85 7b 00 12287 12418 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12288 jnbe short 08 425h ; 77 0212289 jne short 08 498h ; 75 7312419 jnbe short 0850fh ; 77 02 12420 jne short 08582h ; 75 73 12290 12421 mov dword [bp-034h], strict dword 0003f00ffh ; 66 c7 46 cc ff 00 3f 00 12291 12422 mov bx, word [bp-030h] ; 8b 5e d0 … … 12293 12424 mov dx, word [bp-016h] ; 8b 56 ea 12294 12425 mov si, strict word 00006h ; be 06 00 12295 call 0 9f40h ; e8 041b12426 call 0a030h ; e8 0a 1b 12296 12427 mov si, word [bp-020h] ; 8b 76 e0 12297 12428 add si, dx ; 01 d6 … … 12311 12442 mov dx, si ; 89 f2 12312 12443 mov si, strict word 00008h ; be 08 00 12313 call 0 9f40h ; e8 d41a12444 call 0a030h ; e8 da 1a 12314 12445 mov word [bp-022h], bx ; 89 5e de 12315 12446 mov word [bp-02ch], cx ; 89 4e d4 … … 12320 12451 mov dx, word [bp-02ah] ; 8b 56 d6 12321 12452 mov si, strict word 00010h ; be 10 00 12322 call 0 9f40h ; e8 b91a12453 call 0a030h ; e8 bf 1a 12323 12454 mov si, word [bp-01ah] ; 8b 76 e6 12324 12455 add si, dx ; 01 d6 … … 12327 12458 mov ax, word [bp-022h] ; 8b 46 de 12328 12459 adc ax, bx ; 11 d8 12329 jmp short 08 4d3h ; eb 3b12460 jmp short 085bdh ; eb 3b 12330 12461 test ax, ax ; 85 c0 12331 jnbe short 08 4aeh ; 77 1212332 jne short 08 4b8h ; 75 1a12462 jnbe short 08598h ; 77 12 12463 jne short 085a2h ; 75 1a 12333 12464 cmp word [bp-030h], strict byte 00000h ; 83 7e d0 00 12334 jnbe short 08 4aeh ; 77 0a12335 jne short 08 4b8h ; 75 1212465 jnbe short 08598h ; 77 0a 12466 jne short 085a2h ; 75 12 12336 12467 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12337 jnbe short 08 4aeh ; 77 0212338 jne short 08 4b8h ; 75 0a12468 jnbe short 08598h ; 77 02 12469 jne short 085a2h ; 75 0a 12339 12470 mov dword [bp-034h], strict dword 000200080h ; 66 c7 46 cc 80 00 20 00 12340 jmp short 08 4cfh ; eb 1712471 jmp short 085b9h ; eb 17 12341 12472 mov dword [bp-034h], strict dword 000200040h ; 66 c7 46 cc 40 00 20 00 12342 12473 mov bx, word [bp-030h] ; 8b 5e d0 … … 12344 12475 mov dx, word [bp-016h] ; 8b 56 ea 12345 12476 mov si, strict word 0000bh ; be 0b 00 12346 call 0 9f40h ; e8 711a12477 call 0a030h ; e8 77 1a 12347 12478 mov si, dx ; 89 d6 12348 12479 mov dx, cx ; 89 ca … … 12377 12508 mov word [es:bx+034h], ax ; 26 89 47 34 12378 12509 test dx, dx ; 85 d2 12379 jne short 08 540h ; 75 0612510 jne short 0862ah ; 75 06 12380 12511 cmp si, 00400h ; 81 fe 00 04 12381 jbe short 08 54eh ; 76 0e12512 jbe short 08638h ; 76 0e 12382 12513 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12383 12514 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12384 jmp short 08 556h ; eb 0812515 jmp short 08640h ; eb 08 12385 12516 mov word [es:bx+02ch], si ; 26 89 77 2c 12386 12517 mov word [es:bx+032h], si ; 26 89 77 32 12387 mov bx, 00d a0h ; bb a00d12518 mov bx, 00db2h ; bb b2 0d 12388 12519 mov cx, ds ; 8c d9 12389 12520 mov ax, strict word 00004h ; b8 04 00 12390 call 01 999h ; e8 38 9412521 call 01a2ah ; e8 df 93 12391 12522 push word [bp-010h] ; ff 76 f0 12392 12523 push word [bp-030h] ; ff 76 d0 … … 12399 12530 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 12400 12531 push ax ; 50 12401 push 00c 18h ; 68 180c12532 push 00c2ah ; 68 2a 0c 12402 12533 push strict byte 00004h ; 6a 04 12403 call 01 9dah ; e8 57 9412534 call 01a6bh ; e8 fe 93 12404 12535 add sp, strict byte 00018h ; 83 c4 18 12405 12536 movzx bx, byte [bp-00eh] ; 0f b6 5e f2 … … 12426 12557 mov dx, strict word 00075h ; ba 75 00 12427 12558 mov ax, strict word 00040h ; b8 40 00 12428 call 01 6b8h ; e8 e59012559 call 01749h ; e8 8c 90 12429 12560 db 0feh, 0c0h 12430 12561 ; inc al ; fe c0 … … 12432 12563 mov dx, strict word 00075h ; ba 75 00 12433 12564 mov ax, strict word 00040h ; b8 40 00 12434 call 01 6c6h ; e8 e59012565 call 01757h ; e8 8c 90 12435 12566 inc byte [bp-00ch] ; fe 46 f4 12436 jmp near 08 672h ; e9 8b 0012437 mov bx, 00d a0h ; bb a00d12567 jmp near 0875ch ; e9 8b 00 12568 mov bx, 00db2h ; bb b2 0d 12438 12569 mov cx, ds ; 8c d9 12439 12570 mov ax, strict word 00004h ; b8 04 00 12440 call 01 999h ; e8 a79312571 call 01a2ah ; e8 4e 93 12441 12572 push word [bp-01eh] ; ff 76 e2 12442 12573 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 12443 12574 push ax ; 50 12444 push 00c 46h ; 68 460c12575 push 00c58h ; 68 58 0c 12445 12576 push strict byte 00004h ; 6a 04 12446 call 01 9dah ; e8 d89312577 call 01a6bh ; e8 7f 93 12447 12578 add sp, strict byte 00008h ; 83 c4 08 12448 12579 mov al, byte [bp-00ch] ; 8a 46 f4 … … 12485 12616 inc word [bp-01eh] ; ff 46 e2 12486 12617 cmp word [bp-01eh], strict byte 00010h ; 83 7e e2 10 12487 jnl short 08 6fah ; 7d 7412618 jnl short 087e4h ; 7d 74 12488 12619 mov byte [bp-046h], 012h ; c6 46 ba 12 12489 12620 xor al, al ; 30 c0 … … 12502 12633 lea bx, [bp-046h] ; 8d 5e ba 12503 12634 mov ax, word [bp-00248h] ; 8b 86 b8 fd 12504 call 07 dbch ; e8 05 f712635 call 07ea6h ; e8 05 f7 12505 12636 test al, al ; 84 c0 12506 je short 08 6c9h ; 74 0e12507 push 00b 92h ; 68 920b12508 push 00b b2h ; 68 b20b12637 je short 087b3h ; 74 0e 12638 push 00ba4h ; 68 a4 0b 12639 push 00bc4h ; 68 c4 0b 12509 12640 push strict byte 00007h ; 6a 07 12510 call 01 9dah ; e8 14 9312641 call 01a6bh ; e8 bb 92 12511 12642 add sp, strict byte 00006h ; 83 c4 06 12512 12643 mov es, [bp-02eh] ; 8e 46 d2 … … 12514 12645 mov byte [bp-00ch], al ; 88 46 f4 12515 12646 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12516 jne short 08 6e4h ; 75 0912647 jne short 087ceh ; 75 09 12517 12648 test byte [bp-00246h], 01fh ; f6 86 ba fd 1f 12518 je near 08 2a6h ; 0f 84 c2 fb12649 je near 08390h ; 0f 84 c2 fb 12519 12650 test byte [bp-00246h], 0e0h ; f6 86 ba fd e0 12520 jne short 08 672h ; 75 8712651 jne short 0875ch ; 75 87 12521 12652 mov al, byte [bp-00246h] ; 8a 86 ba fd 12522 12653 and AL, strict byte 01fh ; 24 1f 12523 12654 cmp AL, strict byte 005h ; 3c 05 12524 je near 08 5e7h ; 0f 84 f0 fe12525 jmp near 08 672h ; e9 78 ff12655 je near 086d1h ; 0f 84 f0 fe 12656 jmp near 0875ch ; e9 78 ff 12526 12657 lea sp, [bp-00ah] ; 8d 66 f6 12527 12658 pop di ; 5f … … 12532 12663 pop bp ; 5d 12533 12664 retn ; c3 12534 _scsi_init: ; 0xf87 04LB 0x6612665 _scsi_init: ; 0xf87ee LB 0x66 12535 12666 push bp ; 55 12536 12667 mov bp, sp ; 89 e5 12537 12668 mov dx, strict word 0000eh ; ba 0e 00 12538 12669 mov ax, strict word 00040h ; b8 40 00 12539 call 01 6d4h ; e8 c48f12670 call 01765h ; e8 6b 8f 12540 12671 mov bx, 00122h ; bb 22 01 12541 12672 mov es, ax ; 8e c0 … … 12548 12679 ; sub ah, ah ; 2a e4 12549 12680 cmp AL, strict byte 055h ; 3c 55 12550 jne short 08 734h ; 75 0c12681 jne short 0881eh ; 75 0c 12551 12682 xor al, al ; 30 c0 12552 12683 mov dx, 00433h ; ba 33 04 12553 12684 out DX, AL ; ee 12554 12685 mov ax, 00430h ; b8 30 04 12555 call 08 282h ; e8 4e fb12686 call 0836ch ; e8 4e fb 12556 12687 mov AL, strict byte 055h ; b0 55 12557 12688 mov dx, 00436h ; ba 36 04 … … 12561 12692 ; sub ah, ah ; 2a e4 12562 12693 cmp AL, strict byte 055h ; 3c 55 12563 jne short 08 74dh ; 75 0c12694 jne short 08837h ; 75 0c 12564 12695 xor al, al ; 30 c0 12565 12696 mov dx, 00437h ; ba 37 04 12566 12697 out DX, AL ; ee 12567 12698 mov ax, 00434h ; b8 34 04 12568 call 08 282h ; e8 35 fb12699 call 0836ch ; e8 35 fb 12569 12700 mov AL, strict byte 055h ; b0 55 12570 12701 mov dx, 0043ah ; ba 3a 04 … … 12574 12705 ; sub ah, ah ; 2a e4 12575 12706 cmp AL, strict byte 055h ; 3c 55 12576 jne short 08 766h ; 75 0c12707 jne short 08850h ; 75 0c 12577 12708 xor al, al ; 30 c0 12578 12709 mov dx, 0043bh ; ba 3b 04 12579 12710 out DX, AL ; ee 12580 12711 mov ax, 00438h ; b8 38 04 12581 call 08 282h ; e8 1c fb12712 call 0836ch ; e8 1c fb 12582 12713 mov sp, bp ; 89 ec 12583 12714 pop bp ; 5d 12584 12715 retn ; c3 12585 ahci_ctrl_extract_bits_: ; 0xf8 76aLB 0x1b12716 ahci_ctrl_extract_bits_: ; 0xf8854 LB 0x1b 12586 12717 push si ; 56 12587 12718 push bp ; 55 … … 12591 12722 and dx, cx ; 21 ca 12592 12723 movzx cx, byte [bp+006h] ; 0f b6 4e 06 12593 jcxz 08 780h ; e3 0612724 jcxz 0886ah ; e3 06 12594 12725 shr dx, 1 ; d1 ea 12595 12726 rcr ax, 1 ; d1 d8 12596 loop 08 77ah ; e2 fa12727 loop 08864h ; e2 fa 12597 12728 pop bp ; 5d 12598 12729 pop si ; 5e 12599 12730 retn 00002h ; c2 02 00 12600 ahci_addr_to_phys_: ; 0xf8 785LB 0x1e12731 ahci_addr_to_phys_: ; 0xf886f LB 0x1e 12601 12732 push bx ; 53 12602 12733 push cx ; 51 … … 12609 12740 sal ax, 1 ; d1 e0 12610 12741 rcl dx, 1 ; d1 d2 12611 loop 08 793h ; e2 fa12742 loop 0887dh ; e2 fa 12612 12743 xor cx, cx ; 31 c9 12613 12744 add ax, bx ; 01 d8 … … 12617 12748 pop bx ; 5b 12618 12749 retn ; c3 12619 ahci_port_cmd_sync_: ; 0xf8 7a3LB 0x14b12750 ahci_port_cmd_sync_: ; 0xf888d LB 0x14b 12620 12751 push bp ; 55 12621 12752 mov bp, sp ; 89 e5 … … 12632 12763 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 12633 12764 cmp ah, 0ffh ; 80 fc ff 12634 je near 08 8e6h ; 0f 84 20 0112765 je near 089d0h ; 0f 84 20 01 12635 12766 movzx dx, byte [es:si+00263h] ; 26 0f b6 94 63 02 12636 12767 xor di, di ; 31 ff … … 12644 12775 lea ax, [si+00080h] ; 8d 84 80 00 12645 12776 mov dx, cx ; 89 ca 12646 call 08 785h ; e8 96 ff12777 call 0886fh ; e8 96 ff 12647 12778 mov es, cx ; 8e c1 12648 12779 mov word [es:si+008h], ax ; 26 89 44 08 … … 12707 12838 xchg dx, ax ; 92 12708 12839 test dh, 040h ; f6 c6 40 12709 jne short 08 87ch ; 75 0412840 jne short 08966h ; 75 04 12710 12841 test AL, strict byte 001h ; a8 01 12711 je short 08 880h ; 74 0412842 je short 0896ah ; 74 04 12712 12843 mov AL, strict byte 001h ; b0 01 12713 jmp short 08 882h ; eb 0212844 jmp short 0896ch ; eb 02 12714 12845 xor al, al ; 30 c0 12715 12846 test al, al ; 84 c0 12716 je short 08 850h ; 74 ca12847 je short 0893ah ; 74 ca 12717 12848 movzx di, byte [bp-008h] ; 0f b6 7e f8 12718 12849 sal di, 007h ; c1 e7 07 … … 12768 12899 pop bp ; 5d 12769 12900 retn ; c3 12770 ahci_cmd_data_: ; 0xf8 8eeLB 0x26212901 ahci_cmd_data_: ; 0xf89d8 LB 0x262 12771 12902 push bp ; 55 12772 12903 mov bp, sp ; 89 e5 … … 12793 12924 mov ax, 00080h ; b8 80 00 12794 12925 mov dx, word [bp-00ah] ; 8b 56 f6 12795 call 0 9f60h ; e8 341612926 call 0a050h ; e8 3a 16 12796 12927 mov es, [bp-00ah] ; 8e 46 f6 12797 12928 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 12811 12942 mov dx, word [es:si] ; 26 8b 14 12812 12943 mov si, strict word 00008h ; be 08 00 12813 call 0 9f40h ; e8 d01512944 call 0a030h ; e8 d6 15 12814 12945 mov es, [bp-00ah] ; 8e 46 f6 12815 12946 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 12822 12953 mov dx, word [es:si] ; 26 8b 14 12823 12954 mov si, strict word 00010h ; be 10 00 12824 call 0 9f40h ; e8 aa1512955 call 0a030h ; e8 b0 15 12825 12956 mov es, [bp-00ah] ; 8e 46 f6 12826 12957 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 12834 12965 mov dx, word [es:si] ; 26 8b 14 12835 12966 mov si, strict word 00018h ; be 18 00 12836 call 0 9f40h ; e8 7e1512967 call 0a030h ; e8 84 15 12837 12968 mov es, [bp-00ah] ; 8e 46 f6 12838 12969 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 12845 12976 mov dx, word [es:si] ; 26 8b 14 12846 12977 mov si, strict word 00020h ; be 20 00 12847 call 0 9f40h ; e8 581512978 call 0a030h ; e8 5e 15 12848 12979 mov es, [bp-00ah] ; 8e 46 f6 12849 12980 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 12856 12987 mov dx, word [es:si] ; 26 8b 14 12857 12988 mov si, strict word 00028h ; be 28 00 12858 call 0 9f40h ; e8 321512989 call 0a030h ; e8 38 15 12859 12990 mov es, [bp-00ah] ; 8e 46 f6 12860 12991 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 12870 13001 mov bx, word [bp-010h] ; 8b 5e f0 12871 13002 xor cx, cx ; 31 c9 12872 call 09 ec0h ; e8 7d1413003 call 09fb0h ; e8 83 14 12873 13004 push dx ; 52 12874 13005 push ax ; 50 … … 12880 13011 mov ax, 0026ah ; b8 6a 02 12881 13012 mov dx, word [bp-00ah] ; 8b 56 f6 12882 call 09e 11h ; e8 b2 1313013 call 09efbh ; e8 b2 13 12883 13014 mov es, [bp-00ah] ; 8e 46 f6 12884 13015 mov ax, word [es:di+0027eh] ; 26 8b 85 7e 02 … … 12901 13032 mov ax, word [es:bx+020h] ; 26 8b 47 20 12902 13033 test ax, ax ; 85 c0 12903 je short 08 aedh ; 74 3913034 je short 08bd7h ; 74 39 12904 13035 dec ax ; 48 12905 13036 mov es, [bp-00ah] ; 8e 46 f6 … … 12917 13048 mov al, byte [bp-008h] ; 8a 46 f8 12918 13049 cmp AL, strict byte 035h ; 3c 35 12919 jne short 08 afah ; 75 0613050 jne short 08be4h ; 75 06 12920 13051 mov byte [bp-008h], 040h ; c6 46 f8 40 12921 jmp short 08b 11h ; eb 1713052 jmp short 08bfbh ; eb 17 12922 13053 cmp AL, strict byte 0a0h ; 3c a0 12923 jne short 08b 0dh ; 75 0f13054 jne short 08bf7h ; 75 0f 12924 13055 or byte [bp-008h], 020h ; 80 4e f8 20 12925 13056 les bx, [bp-00eh] ; c4 5e f2 12926 13057 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 12927 jmp short 08b 11h ; eb 0413058 jmp short 08bfbh ; eb 04 12928 13059 mov byte [bp-008h], 000h ; c6 46 f8 00 12929 13060 or byte [bp-008h], 005h ; 80 4e f8 05 … … 12931 13062 mov ax, word [bp-00eh] ; 8b 46 f2 12932 13063 mov dx, word [bp-00ch] ; 8b 56 f4 12933 call 08 7a3h ; e8 81 fc13064 call 0888dh ; e8 81 fc 12934 13065 mov cx, word [bp-00ch] ; 8b 4e f4 12935 13066 mov bx, word [bp-00eh] ; 8b 5e f2 … … 12938 13069 add ax, 0026ah ; 05 6a 02 12939 13070 mov dx, cx ; 89 ca 12940 call 09 e8ah ; e8 53 1313071 call 09f74h ; e8 53 13 12941 13072 mov es, cx ; 8e c1 12942 13073 mov al, byte [es:bx+003h] ; 26 8a 47 03 12943 13074 test al, al ; 84 c0 12944 je short 08 b46h ; 74 0513075 je short 08c30h ; 74 05 12945 13076 mov ax, strict word 00004h ; b8 04 00 12946 jmp short 08 b48h ; eb 0213077 jmp short 08c32h ; eb 02 12947 13078 xor ah, ah ; 30 e4 12948 13079 lea sp, [bp-006h] ; 8d 66 fa … … 12952 13083 pop bp ; 5d 12953 13084 retn ; c3 12954 ahci_port_deinit_current_: ; 0xf8 b50LB 0x17f13085 ahci_port_deinit_current_: ; 0xf8c3a LB 0x17f 12955 13086 push bp ; 55 12956 13087 mov bp, sp ; 89 e5 … … 12967 13098 mov byte [bp-00ah], al ; 88 46 f6 12968 13099 cmp AL, strict byte 0ffh ; 3c ff 12969 je near 08 cc6h ; 0f 84 52 0113100 je near 08db0h ; 0f 84 52 01 12970 13101 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 12971 13102 sal ax, 007h ; c1 e0 07 … … 13010 13141 xchg dx, ax ; 92 13011 13142 test ax, 0c011h ; a9 11 c0 13012 je short 08 bd4h ; 74 0413143 je short 08cbeh ; 74 04 13013 13144 mov AL, strict byte 001h ; b0 01 13014 jmp short 08 bd6h ; eb 0213145 jmp short 08cc0h ; eb 02 13015 13146 xor al, al ; 30 c0 13016 13147 cmp AL, strict byte 001h ; 3c 01 13017 je short 08 ba8h ; 74 ce13148 je short 08c92h ; 74 ce 13018 13149 mov cx, strict word 00020h ; b9 20 00 13019 13150 xor bx, bx ; 31 db 13020 13151 mov ax, di ; 89 f8 13021 13152 mov dx, word [bp-00ch] ; 8b 56 f4 13022 call 0 9f60h ; e8 791313153 call 0a050h ; e8 7f 13 13023 13154 lea ax, [di+00080h] ; 8d 85 80 00 13024 13155 mov cx, strict word 00040h ; b9 40 00 13025 13156 xor bx, bx ; 31 db 13026 13157 mov dx, word [bp-00ch] ; 8b 56 f4 13027 call 0 9f60h ; e8 6a1313158 call 0a050h ; e8 70 13 13028 13159 lea ax, [di+00200h] ; 8d 85 00 02 13029 13160 mov cx, strict word 00060h ; b9 60 00 13030 13161 xor bx, bx ; 31 db 13031 13162 mov dx, word [bp-00ch] ; 8b 56 f4 13032 call 0 9f60h ; e8 5b1313163 call 0a050h ; e8 61 13 13033 13164 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13034 13165 sal ax, 007h ; c1 e0 07 … … 13134 13265 pop bp ; 5d 13135 13266 retn ; c3 13136 ahci_port_init_: ; 0xf8 ccfLB 0x24a13267 ahci_port_init_: ; 0xf8db9 LB 0x24a 13137 13268 push bp ; 55 13138 13269 mov bp, sp ; 89 e5 … … 13144 13275 mov word [bp-00ah], dx ; 89 56 f6 13145 13276 mov byte [bp-008h], bl ; 88 5e f8 13146 call 08 b50h ; e8 6d fe13277 call 08c3ah ; e8 6d fe 13147 13278 movzx ax, bl ; 0f b6 c3 13148 13279 sal ax, 007h ; c1 e0 07 … … 13191 13322 xchg dx, ax ; 92 13192 13323 test ax, 0c011h ; a9 11 c0 13193 je short 08 d52h ; 74 0413324 je short 08e3ch ; 74 04 13194 13325 mov AL, strict byte 001h ; b0 01 13195 jmp short 08 d54h ; eb 0213326 jmp short 08e3eh ; eb 02 13196 13327 xor al, al ; 30 c0 13197 13328 cmp AL, strict byte 001h ; 3c 01 13198 je short 08 d1eh ; 74 c613329 je short 08e08h ; 74 c6 13199 13330 mov cx, strict word 00020h ; b9 20 00 13200 13331 xor bx, bx ; 31 db 13201 13332 mov ax, si ; 89 f0 13202 13333 mov dx, word [bp-00ah] ; 8b 56 f6 13203 call 0 9f60h ; e8 fb 1113334 call 0a050h ; e8 01 12 13204 13335 lea ax, [si+00080h] ; 8d 84 80 00 13205 13336 mov cx, strict word 00040h ; b9 40 00 13206 13337 xor bx, bx ; 31 db 13207 13338 mov dx, word [bp-00ah] ; 8b 56 f6 13208 call 0 9f60h ; e8 ec1113339 call 0a050h ; e8 f2 11 13209 13340 lea di, [si+00200h] ; 8d bc 00 02 13210 13341 mov cx, strict word 00060h ; b9 60 00 … … 13212 13343 mov ax, di ; 89 f8 13213 13344 mov dx, word [bp-00ah] ; 8b 56 f6 13214 call 0 9f60h ; e8 db1113345 call 0a050h ; e8 e1 11 13215 13346 movzx bx, byte [bp-008h] ; 0f b6 5e f8 13216 13347 sal bx, 007h ; c1 e3 07 … … 13229 13360 mov ax, di ; 89 f8 13230 13361 mov dx, word [bp-00ah] ; 8b 56 f6 13231 call 08 785h ; e8 d3 f913362 call 0886fh ; e8 d3 f9 13232 13363 mov es, [bp-00ah] ; 8e 46 f6 13233 13364 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13274 13405 mov ax, si ; 89 f0 13275 13406 mov dx, word [bp-00ah] ; 8b 56 f6 13276 call 08 785h ; e8 67 f913407 call 0886fh ; e8 67 f9 13277 13408 mov es, [bp-00ah] ; 8e 46 f6 13278 13409 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13379 13510 pop bp ; 5d 13380 13511 retn ; c3 13381 @ahci_read_sectors: ; 0xf 8f19LB 0xa613512 @ahci_read_sectors: ; 0xf9003 LB 0xa6 13382 13513 push bp ; 55 13383 13514 mov bp, sp ; 89 e5 … … 13389 13520 sub di, strict byte 0000ch ; 83 ef 0c 13390 13521 cmp di, strict byte 00004h ; 83 ff 04 13391 jbe short 0 8f3eh ; 76 0f13522 jbe short 09028h ; 76 0f 13392 13523 push di ; 57 13393 push 00c62h ; 68 62 0c13394 13524 push 00c74h ; 68 74 0c 13525 push 00c86h ; 68 86 0c 13395 13526 push strict byte 00007h ; 6a 07 13396 call 01 9dah ; e8 9f8a13527 call 01a6bh ; e8 46 8a 13397 13528 add sp, strict byte 00008h ; 83 c4 08 13398 13529 xor bx, bx ; 31 db … … 13408 13539 mov dx, word [es:di+00232h] ; 26 8b 95 32 02 13409 13540 xor ax, ax ; 31 c0 13410 call 08 ccfh ; e8 65 fd13541 call 08db9h ; e8 65 fd 13411 13542 mov bx, strict word 00025h ; bb 25 00 13412 13543 mov ax, si ; 89 f0 13413 13544 mov dx, word [bp+006h] ; 8b 56 06 13414 call 08 8eeh ; e8 79 f913545 call 089d8h ; e8 79 f9 13415 13546 mov word [bp-006h], ax ; 89 46 fa 13416 13547 mov es, [bp+006h] ; 8e 46 06 … … 13441 13572 pop bp ; 5d 13442 13573 retn 00004h ; c2 04 00 13443 @ahci_write_sectors: ; 0xf 8fbfLB 0x8413574 @ahci_write_sectors: ; 0xf90a9 LB 0x84 13444 13575 push bp ; 55 13445 13576 mov bp, sp ; 89 e5 … … 13452 13583 sub dx, strict byte 0000ch ; 83 ea 0c 13453 13584 cmp dx, strict byte 00004h ; 83 fa 04 13454 jbe short 0 8fe8h ; 76 0f13585 jbe short 090d2h ; 76 0f 13455 13586 push dx ; 52 13456 push 00c 93h ; 68 930c13457 push 00c 74h ; 68 740c13587 push 00ca5h ; 68 a5 0c 13588 push 00c86h ; 68 86 0c 13458 13589 push strict byte 00007h ; 6a 07 13459 call 01 9dah ; e8 f58913590 call 01a6bh ; e8 9c 89 13460 13591 add sp, strict byte 00008h ; 83 c4 08 13461 13592 xor bx, bx ; 31 db … … 13471 13602 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13472 13603 xor ax, ax ; 31 c0 13473 call 08 ccfh ; e8 bd fc13604 call 08db9h ; e8 bd fc 13474 13605 mov bx, strict word 00035h ; bb 35 00 13475 13606 mov ax, si ; 89 f0 13476 13607 mov dx, cx ; 89 ca 13477 call 08 8eeh ; e8 d2 f813608 call 089d8h ; e8 d2 f8 13478 13609 mov dx, ax ; 89 c2 13479 13610 mov es, cx ; 8e c1 … … 13490 13621 pop bp ; 5d 13491 13622 retn 00004h ; c2 04 00 13492 ahci_cmd_packet_: ; 0xf9 043LB 0x18313623 ahci_cmd_packet_: ; 0xf912d LB 0x183 13493 13624 push bp ; 55 13494 13625 mov bp, sp ; 89 e5 … … 13502 13633 mov dx, strict word 0000eh ; ba 0e 00 13503 13634 mov ax, strict word 00040h ; b8 40 00 13504 call 01 6d4h ; e8 768613635 call 01765h ; e8 1d 86 13505 13636 mov si, 00122h ; be 22 01 13506 13637 mov word [bp-008h], ax ; 89 46 f8 13507 13638 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 13508 jne short 09 089h ; 75 1f13509 mov bx, 00d a0h ; bb a00d13639 jne short 09173h ; 75 1f 13640 mov bx, 00db2h ; bb b2 0d 13510 13641 mov cx, ds ; 8c d9 13511 13642 mov ax, strict word 00004h ; b8 04 00 13512 call 01 999h ; e8 24 8913513 push 00c a6h ; 68 a60c13514 push 00c b6h ; 68 b60c13643 call 01a2ah ; e8 cb 88 13644 push 00cb8h ; 68 b8 0c 13645 push 00cc8h ; 68 c8 0c 13515 13646 push strict byte 00004h ; 6a 04 13516 call 01 9dah ; e8 5a8913647 call 01a6bh ; e8 01 89 13517 13648 add sp, strict byte 00006h ; 83 c4 06 13518 13649 mov ax, strict word 00001h ; b8 01 00 13519 jmp near 09 1bdh ; e9 34 0113650 jmp near 092a7h ; e9 34 01 13520 13651 test byte [bp+004h], 001h ; f6 46 04 01 13521 jne short 09 083h ; 75 f413652 jne short 0916dh ; 75 f4 13522 13653 mov ax, word [bp+006h] ; 8b 46 06 13523 13654 mov dx, word [bp+008h] ; 8b 56 08 … … 13525 13656 sal ax, 1 ; d1 e0 13526 13657 rcl dx, 1 ; d1 d2 13527 loop 09 098h ; e2 fa13658 loop 09182h ; e2 fa 13528 13659 mov es, [bp-008h] ; 8e 46 f8 13529 13660 mov word [es:si], ax ; 26 89 04 … … 13539 13670 mov dx, word [bp+008h] ; 8b 56 08 13540 13671 xor cx, cx ; 31 c9 13541 call 09f 00h ; e8 320e13672 call 09ff0h ; e8 38 0e 13542 13673 mov word [es:si+00eh], ax ; 26 89 44 0e 13543 13674 xor di, di ; 31 ff … … 13556 13687 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 13557 13688 xor ax, ax ; 31 c0 13558 call 08 ccfh ; e8 c5 fb13689 call 08db9h ; e8 c5 fb 13559 13690 movzx ax, byte [bp-006h] ; 0f b6 46 fa 13560 13691 push ax ; 50 … … 13563 13694 mov ax, 000c0h ; b8 c0 00 13564 13695 mov dx, word [bp-00ah] ; 8b 56 f6 13565 call 0 9f70h ; e8 520e13696 call 0a060h ; e8 58 0e 13566 13697 mov es, [bp-008h] ; 8e 46 f8 13567 13698 mov word [es:si+018h], di ; 26 89 7c 18 … … 13570 13701 mov ax, word [es:si+01eh] ; 26 8b 44 1e 13571 13702 test ax, ax ; 85 c0 13572 je short 09 15ch ; 74 2713703 je short 09246h ; 74 27 13573 13704 dec ax ; 48 13574 13705 mov es, [bp-00ah] ; 8e 46 f6 … … 13583 13714 mov ax, si ; 89 f0 13584 13715 mov dx, word [bp-008h] ; 8b 56 f8 13585 call 08 8eeh ; e8 87 f713716 call 089d8h ; e8 87 f7 13586 13717 les bx, [bp-00eh] ; c4 5e f2 13587 13718 mov ax, word [es:bx+004h] ; 26 8b 47 04 … … 13610 13741 mov ax, word [es:bx+006h] ; 26 8b 47 06 13611 13742 or ax, word [es:bx+004h] ; 26 0b 47 04 13612 jne short 09 1bbh ; 75 0513743 jne short 092a5h ; 75 05 13613 13744 mov ax, strict word 00004h ; b8 04 00 13614 jmp short 09 1bdh ; eb 0213745 jmp short 092a7h ; eb 02 13615 13746 xor ax, ax ; 31 c0 13616 13747 lea sp, [bp-004h] ; 8d 66 fc … … 13619 13750 pop bp ; 5d 13620 13751 retn 0000ch ; c2 0c 00 13621 ahci_port_detect_device_: ; 0xf9 1c6LB 0x4b113752 ahci_port_detect_device_: ; 0xf92b0 LB 0x4b1 13622 13753 push bp ; 55 13623 13754 mov bp, sp ; 89 e5 … … 13631 13762 movzx di, bl ; 0f b6 fb 13632 13763 mov bx, di ; 89 fb 13633 call 08 ccfh ; e8 ef fa13764 call 08db9h ; e8 ef fa 13634 13765 mov dx, strict word 0000eh ; ba 0e 00 13635 13766 mov ax, strict word 00040h ; b8 40 00 13636 call 01 6d4h ; e8 eb8413767 call 01765h ; e8 92 84 13637 13768 mov word [bp-010h], 00122h ; c7 46 f0 22 01 13638 13769 mov word [bp-00eh], ax ; 89 46 f2 … … 13703 13834 mov bx, strict word 0000fh ; bb 0f 00 13704 13835 xor cx, cx ; 31 c9 13705 call 08 76ah ; e8 d7 f413836 call 08854h ; e8 d7 f4 13706 13837 test ax, ax ; 85 c0 13707 je near 09 66fh ; 0f 84 d6 0313838 je near 09759h ; 0f 84 d6 03 13708 13839 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 13709 13840 sal ax, 007h ; c1 e0 07 … … 13733 13864 mov bx, strict word 0000fh ; bb 0f 00 13734 13865 xor cx, cx ; 31 c9 13735 call 08 76ah ; e8 8b f413866 call 08854h ; e8 8b f4 13736 13867 cmp ax, strict word 00001h ; 3d 01 00 13737 je short 09 299h ; 74 b513868 je short 09383h ; 74 b5 13738 13869 push strict byte 00000h ; 6a 00 13739 13870 mov bx, strict word 0000fh ; bb 0f 00 … … 13741 13872 mov ax, di ; 89 f8 13742 13873 mov dx, word [bp-022h] ; 8b 56 de 13743 call 08 76ah ; e8 77 f413874 call 08854h ; e8 77 f4 13744 13875 cmp ax, strict word 00003h ; 3d 03 00 13745 jne near 09 66fh ; 0f 85 75 0313876 jne near 09759h ; 0f 85 75 03 13746 13877 mov ax, word [bp-018h] ; 8b 46 e8 13747 13878 add ax, 00130h ; 05 30 01 … … 13770 13901 mov byte [bp-008h], al ; 88 46 f8 13771 13902 cmp AL, strict byte 004h ; 3c 04 13772 jnc near 09 66fh ; 0f 83 2f 0313903 jnc near 09759h ; 0f 83 2f 03 13773 13904 mov ax, word [bp-018h] ; 8b 46 e8 13774 13905 add ax, 00118h ; 05 18 01 … … 13822 13953 add cl, 00ch ; 80 c1 0c 13823 13954 test dx, dx ; 85 d2 13824 jne near 09 5c5h ; 0f 85 0d 0213955 jne near 096afh ; 0f 85 0d 02 13825 13956 cmp di, 00101h ; 81 ff 01 01 13826 jne near 09 5c5h ; 0f 85 05 0213957 jne near 096afh ; 0f 85 05 02 13827 13958 les bx, [bp-010h] ; c4 5e f0 13828 13959 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 13838 13969 mov ax, word [bp-010h] ; 8b 46 f0 13839 13970 mov dx, es ; 8c c2 13840 call 08 8eeh ; e8 fa f413971 call 089d8h ; e8 fa f4 13841 13972 mov byte [bp-00ch], cl ; 88 4e f4 13842 13973 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 … … 13855 13986 mov dword [bp-016h], strict dword 000000000h ; 66 c7 46 ea 00 00 00 00 13856 13987 cmp di, 00fffh ; 81 ff ff 0f 13857 jne short 09 44dh ; 75 1e13988 jne short 09537h ; 75 1e 13858 13989 cmp dx, strict byte 0ffffh ; 83 fa ff 13859 jne short 09 44dh ; 75 1913990 jne short 09537h ; 75 19 13860 13991 mov dx, word [bp-0015ch] ; 8b 96 a4 fe 13861 13992 mov word [bp-014h], dx ; 89 56 ec … … 13894 14025 mov al, byte [bp-008h] ; 8a 46 f8 13895 14026 cmp AL, strict byte 001h ; 3c 01 13896 jc short 09 4c6h ; 72 0c13897 jbe short 09 4ceh ; 76 1214027 jc short 095b0h ; 72 0c 14028 jbe short 095b8h ; 76 12 13898 14029 cmp AL, strict byte 003h ; 3c 03 13899 je short 09 4d6h ; 74 1614030 je short 095c0h ; 74 16 13900 14031 cmp AL, strict byte 002h ; 3c 02 13901 je short 09 4d2h ; 74 0e13902 jmp short 09 51fh ; eb 5914032 je short 095bch ; 74 0e 14033 jmp short 09609h ; eb 59 13903 14034 test al, al ; 84 c0 13904 jne short 09 51fh ; 75 5514035 jne short 09609h ; 75 55 13905 14036 mov DL, strict byte 040h ; b2 40 13906 jmp short 09 4d8h ; eb 0a14037 jmp short 095c2h ; eb 0a 13907 14038 mov DL, strict byte 048h ; b2 48 13908 jmp short 09 4d8h ; eb 0614039 jmp short 095c2h ; eb 06 13909 14040 mov DL, strict byte 050h ; b2 50 13910 jmp short 09 4d8h ; eb 0214041 jmp short 095c2h ; eb 02 13911 14042 mov DL, strict byte 058h ; b2 58 13912 14043 mov al, dl ; 88 d0 … … 13914 14045 movzx bx, al ; 0f b6 d8 13915 14046 mov ax, bx ; 89 d8 13916 call 017 14h ; e8 30 8214047 call 017a5h ; e8 d7 81 13917 14048 test al, al ; 84 c0 13918 je short 09 51fh ; 74 3714049 je short 09609h ; 74 37 13919 14050 mov al, dl ; 88 d0 13920 14051 db 0feh, 0c0h 13921 14052 ; inc al ; fe c0 13922 14053 xor ah, ah ; 30 e4 13923 call 017 14h ; e8 23 8214054 call 017a5h ; e8 ca 81 13924 14055 xor ah, ah ; 30 e4 13925 14056 mov si, ax ; 89 c6 13926 14057 sal si, 008h ; c1 e6 08 13927 14058 movzx ax, dl ; 0f b6 c2 13928 call 017 14h ; e8 16 8214059 call 017a5h ; e8 bd 81 13929 14060 xor ah, ah ; 30 e4 13930 14061 add ax, si ; 01 f0 … … 13933 14064 add AL, strict byte 002h ; 04 02 13934 14065 xor ah, ah ; 30 e4 13935 call 017 14h ; e8 06 8214066 call 017a5h ; e8 ad 81 13936 14067 xor ah, ah ; 30 e4 13937 14068 mov word [bp-02ah], ax ; 89 46 d6 13938 14069 mov ax, bx ; 89 d8 13939 call 017 14h ; e8 fc8114070 call 017a5h ; e8 a3 81 13940 14071 xor ah, ah ; 30 e4 13941 14072 mov word [bp-026h], ax ; 89 46 da 13942 jmp short 09 52fh ; eb 1014073 jmp short 09619h ; eb 10 13943 14074 push dword [bp-016h] ; 66 ff 76 ea 13944 14075 push di ; 57 … … 13946 14077 mov dx, ss ; 8c d2 13947 14078 lea ax, [bp-02ah] ; 8d 46 d6 13948 call 05 9d6h ; e8 a7 c413949 mov bx, 00d a0h ; bb a00d14079 call 05ac0h ; e8 a7 c4 14080 mov bx, 00db2h ; bb b2 0d 13950 14081 mov cx, ds ; 8c d9 13951 14082 mov ax, strict word 00004h ; b8 04 00 13952 call 01 999h ; e8 5f8414083 call 01a2ah ; e8 06 84 13953 14084 push dword [bp-016h] ; 66 ff 76 ea 13954 14085 push di ; 57 … … 13967 14098 movzx ax, byte [bp-008h] ; 0f b6 46 f8 13968 14099 push ax ; 50 13969 push 00c d6h ; 68 d60c14100 push 00ce8h ; 68 e8 0c 13970 14101 push strict byte 00004h ; 6a 04 13971 call 01 9dah ; e8 718414102 call 01a6bh ; e8 18 84 13972 14103 add sp, strict byte 0001ch ; 83 c4 1c 13973 14104 movzx ax, byte [bp-00ch] ; 0f b6 46 f4 … … 13998 14129 mov dx, strict word 00075h ; ba 75 00 13999 14130 mov ax, strict word 00040h ; b8 40 00 14000 call 01 6b8h ; e8 04 8114131 call 01749h ; e8 ab 80 14001 14132 db 0feh, 0c0h 14002 14133 ; inc al ; fe c0 … … 14004 14135 mov dx, strict word 00075h ; ba 75 00 14005 14136 mov ax, strict word 00040h ; b8 40 00 14006 call 01 6c6h ; e8 04 8114007 jmp near 09 661h ; e9 9c 0014137 call 01757h ; e8 ab 80 14138 jmp near 0974bh ; e9 9c 00 14008 14139 cmp dx, 0eb14h ; 81 fa 14 eb 14009 jne near 09 661h ; 0f 85 94 0014140 jne near 0974bh ; 0f 85 94 00 14010 14141 cmp di, 00101h ; 81 ff 01 01 14011 jne near 09 661h ; 0f 85 8c 0014142 jne near 0974bh ; 0f 85 8c 00 14012 14143 les bx, [bp-010h] ; c4 5e f0 14013 14144 db 066h, 026h, 0c7h, 047h, 004h, 000h, 000h, 000h, 000h … … 14023 14154 mov ax, word [bp-010h] ; 8b 46 f0 14024 14155 mov dx, es ; 8c c2 14025 call 08 8eeh ; e8 e5 f214156 call 089d8h ; e8 e5 f2 14026 14157 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14027 14158 db 00fh, 095h, 0c0h … … 14060 14191 pop bp ; 5d 14061 14192 retn ; c3 14062 ahci_mem_alloc_: ; 0xf9 677LB 0x4314193 ahci_mem_alloc_: ; 0xf9761 LB 0x43 14063 14194 push bp ; 55 14064 14195 mov bp, sp ; 89 e5 … … 14070 14201 mov dx, 00413h ; ba 13 04 14071 14202 xor ax, ax ; 31 c0 14072 call 01 6d4h ; e8 4d 8014203 call 01765h ; e8 f4 7f 14073 14204 test ax, ax ; 85 c0 14074 je short 09 6b0h ; 74 2514205 je short 0979ah ; 74 25 14075 14206 dec ax ; 48 14076 14207 mov bx, ax ; 89 c3 … … 14079 14210 sal ax, 1 ; d1 e0 14080 14211 rcl dx, 1 ; d1 d2 14081 loop 09 693h ; e2 fa14212 loop 0977dh ; e2 fa 14082 14213 mov si, ax ; 89 c6 14083 14214 mov di, dx ; 89 d7 … … 14085 14216 shr di, 1 ; d1 ef 14086 14217 rcr si, 1 ; d1 de 14087 loop 09 6a0h ; e2 fa14218 loop 0978ah ; e2 fa 14088 14219 mov dx, 00413h ; ba 13 04 14089 14220 xor ax, ax ; 31 c0 14090 call 01 6e2h ; e8 34 8014221 call 01773h ; e8 db 7f 14091 14222 mov ax, si ; 89 f0 14092 14223 lea sp, [bp-00ah] ; 8d 66 f6 … … 14098 14229 pop bp ; 5d 14099 14230 retn ; c3 14100 ahci_hba_init_: ; 0xf9 6baLB 0x16614231 ahci_hba_init_: ; 0xf97a4 LB 0x166 14101 14232 push bp ; 55 14102 14233 mov bp, sp ; 89 e5 … … 14110 14241 mov dx, strict word 0000eh ; ba 0e 00 14111 14242 mov ax, strict word 00040h ; b8 40 00 14112 call 01 6d4h ; e8 04 8014243 call 01765h ; e8 ab 7f 14113 14244 mov bx, 00122h ; bb 22 01 14114 14245 mov di, ax ; 89 c7 … … 14127 14258 shr eax, 010h ; 66 c1 e8 10 14128 14259 xchg dx, ax ; 92 14129 call 09 677h ; e8 83 ff14260 call 09761h ; e8 83 ff 14130 14261 mov word [bp-010h], ax ; 89 46 f0 14131 14262 test ax, ax ; 85 c0 14132 je near 09 7ffh ; 0f 84 02 0114263 je near 098e9h ; 0f 84 02 01 14133 14264 mov ax, word [bp-010h] ; 8b 46 f0 14134 14265 mov es, di ; 8e c7 … … 14180 14311 xchg dx, ax ; 92 14181 14312 test AL, strict byte 001h ; a8 01 14182 jne short 09 753h ; 75 de14313 jne short 0983dh ; 75 de 14183 14314 xor ax, ax ; 31 c0 14184 14315 xor cx, cx ; 31 c9 … … 14198 14329 mov bx, strict word 0001fh ; bb 1f 00 14199 14330 xor cx, cx ; 31 c9 14200 call 08 76ah ; e8 d1 ef14331 call 08854h ; e8 d1 ef 14201 14332 db 0feh, 0c0h 14202 14333 ; inc al ; fe c0 14203 14334 mov byte [bp-00eh], al ; 88 46 f2 14204 14335 mov byte [bp-00ch], 000h ; c6 46 f4 00 14205 jmp short 09 7c4h ; eb 2014336 jmp short 098aeh ; eb 20 14206 14337 xor al, al ; 30 c0 14207 14338 test al, al ; 84 c0 14208 je short 09 7bbh ; 74 1114339 je short 098a5h ; 74 11 14209 14340 movzx bx, byte [bp-00ch] ; 0f b6 5e f4 14210 14341 xor ax, ax ; 31 c0 14211 14342 mov dx, word [bp-010h] ; 8b 56 f0 14212 call 09 1c6h ; e8 10 fa14343 call 092b0h ; e8 10 fa 14213 14344 dec byte [bp-00eh] ; fe 4e f2 14214 je short 09 7fdh ; 74 4214345 je short 098e7h ; 74 42 14215 14346 inc byte [bp-00ch] ; fe 46 f4 14216 14347 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14217 jnc short 09 7fdh ; 73 3914348 jnc short 098e7h ; 73 39 14218 14349 movzx cx, byte [bp-00ch] ; 0f b6 4e f4 14219 14350 mov bx, strict word 00001h ; bb 01 00 14220 14351 xor di, di ; 31 ff 14221 jcxz 09 7d5h ; e3 0614352 jcxz 098bfh ; e3 06 14222 14353 sal bx, 1 ; d1 e3 14223 14354 rcl di, 1 ; d1 d7 14224 loop 09 7cfh ; e2 fa14355 loop 098b9h ; e2 fa 14225 14356 mov ax, strict word 0000ch ; b8 0c 00 14226 14357 xor cx, cx ; 31 c9 … … 14238 14369 xchg dx, ax ; 92 14239 14370 test dx, di ; 85 fa 14240 jne short 09 7f9h ; 75 0414371 jne short 098e3h ; 75 04 14241 14372 test ax, bx ; 85 d8 14242 je short 09 7a4h ; 74 ab14373 je short 0988eh ; 74 ab 14243 14374 mov AL, strict byte 001h ; b0 01 14244 jmp short 09 7a6h ; eb a914375 jmp short 09890h ; eb a9 14245 14376 xor ax, ax ; 31 c0 14246 14377 lea sp, [bp-00ah] ; 8d 66 f6 … … 14252 14383 pop bp ; 5d 14253 14384 retn ; c3 14254 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 efh, 098h, 0cdh, 098h, 0d3h, 098h, 0d9h, 098h, 0dfh14255 db 09 8h, 0e5h, 098h, 0ebh, 098h, 0efh, 098h14256 _ahci_init: ; 0xf9 820LB 0xfe14385 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0d9h, 099h, 0b7h, 099h, 0bdh, 099h, 0c3h, 099h, 0c9h 14386 db 099h, 0cfh, 099h, 0d5h, 099h, 0d9h, 099h 14387 _ahci_init: ; 0xf990a LB 0xfe 14257 14388 push bp ; 55 14258 14389 mov bp, sp ; 89 e5 … … 14262 14393 mov ax, 00601h ; b8 01 06 14263 14394 mov dx, strict word 00001h ; ba 01 00 14264 call 09 d3eh ; e8 0d 0514395 call 09e28h ; e8 0d 05 14265 14396 mov dx, ax ; 89 c2 14266 14397 cmp ax, strict word 0ffffh ; 3d ff ff 14267 je near 09 917h ; 0f 84 dd 0014398 je near 09a01h ; 0f 84 dd 00 14268 14399 xor al, al ; 30 c0 14269 14400 shr ax, 008h ; c1 e8 08 … … 14273 14404 xor ah, ah ; 30 e4 14274 14405 mov bx, strict word 00034h ; bb 34 00 14275 call 09 d69h ; e8 1a 0514406 call 09e53h ; e8 1a 05 14276 14407 mov cl, al ; 88 c1 14277 14408 test cl, cl ; 84 c9 14278 je short 09 878h ; 74 2314409 je short 09962h ; 74 23 14279 14410 movzx bx, cl ; 0f b6 d9 14280 14411 movzx di, byte [bp-008h] ; 0f b6 7e f8 … … 14282 14413 mov dx, di ; 89 fa 14283 14414 mov ax, si ; 89 f0 14284 call 09 d69h ; e8 02 0514415 call 09e53h ; e8 02 05 14285 14416 cmp AL, strict byte 012h ; 3c 12 14286 je short 09 878h ; 74 0d14417 je short 09962h ; 74 0d 14287 14418 mov al, cl ; 88 c8 14288 14419 db 0feh, 0c0h … … 14291 14422 mov dx, di ; 89 fa 14292 14423 mov ax, si ; 89 f0 14293 jmp short 09 84ch ; eb d414424 jmp short 09936h ; eb d4 14294 14425 test cl, cl ; 84 c9 14295 je near 09 917h ; 0f 84 99 0014426 je near 09a01h ; 0f 84 99 00 14296 14427 add cl, 002h ; 80 c1 02 14297 14428 movzx bx, cl ; 0f b6 d9 … … 14300 14431 mov dx, di ; 89 fa 14301 14432 mov ax, si ; 89 f0 14302 call 09 d69h ; e8 d6 0414433 call 09e53h ; e8 d6 04 14303 14434 cmp AL, strict byte 010h ; 3c 10 14304 jne near 09 917h ; 0f 85 7e 0014435 jne near 09a01h ; 0f 85 7e 00 14305 14436 mov byte [bp-006h], 000h ; c6 46 fa 00 14306 14437 mov al, cl ; 88 c8 … … 14309 14440 mov dx, di ; 89 fa 14310 14441 mov ax, si ; 89 f0 14311 call 09 d8dh ; e8 e2 0414442 call 09e77h ; e8 e2 04 14312 14443 mov dx, ax ; 89 c2 14313 14444 and ax, strict word 0000fh ; 25 0f 00 14314 14445 sub ax, strict word 00004h ; 2d 04 00 14315 14446 cmp ax, strict word 0000bh ; 3d 0b 00 14316 jnbe short 09 8efh ; 77 3714447 jnbe short 099d9h ; 77 37 14317 14448 push CS ; 0e 14318 14449 pop ES ; 07 14319 14450 mov cx, strict word 00008h ; b9 08 00 14320 mov di, 098 09h ; bf 099814451 mov di, 098f3h ; bf f3 98 14321 14452 repne scasb ; f2 ae 14322 14453 sal cx, 1 ; d1 e1 14323 14454 mov di, cx ; 89 cf 14324 mov ax, word [cs:di-067 f0h] ; 2e 8b 85 109814455 mov ax, word [cs:di-06706h] ; 2e 8b 85 fa 98 14325 14456 jmp ax ; ff e0 14326 14457 mov byte [bp-006h], 010h ; c6 46 fa 10 14327 jmp short 09 8efh ; eb 1c14458 jmp short 099d9h ; eb 1c 14328 14459 mov byte [bp-006h], 014h ; c6 46 fa 14 14329 jmp short 09 8efh ; eb 1614460 jmp short 099d9h ; eb 16 14330 14461 mov byte [bp-006h], 018h ; c6 46 fa 18 14331 jmp short 09 8efh ; eb 1014462 jmp short 099d9h ; eb 10 14332 14463 mov byte [bp-006h], 01ch ; c6 46 fa 1c 14333 jmp short 09 8efh ; eb 0a14464 jmp short 099d9h ; eb 0a 14334 14465 mov byte [bp-006h], 020h ; c6 46 fa 20 14335 jmp short 09 8efh ; eb 0414466 jmp short 099d9h ; eb 04 14336 14467 mov byte [bp-006h], 024h ; c6 46 fa 24 14337 14468 mov si, dx ; 89 d6 … … 14340 14471 mov al, byte [bp-006h] ; 8a 46 fa 14341 14472 test al, al ; 84 c0 14342 je short 09 917h ; 74 1914473 je short 09a01h ; 74 19 14343 14474 movzx bx, al ; 0f b6 d8 14344 14475 movzx dx, byte [bp-008h] ; 0f b6 56 f8 14345 14476 movzx ax, byte [bp-00ah] ; 0f b6 46 f6 14346 call 09 dafh ; e8 a3 0414477 call 09e99h ; e8 a3 04 14347 14478 test AL, strict byte 001h ; a8 01 14348 je short 09 917h ; 74 0714479 je short 09a01h ; 74 07 14349 14480 and AL, strict byte 0f0h ; 24 f0 14350 14481 add ax, si ; 01 f0 14351 call 09 6bah ; e8 a3 fd14482 call 097a4h ; e8 a3 fd 14352 14483 lea sp, [bp-004h] ; 8d 66 fc 14353 14484 pop di ; 5f … … 14355 14486 pop bp ; 5d 14356 14487 retn ; c3 14357 apm_out_str_: ; 0xf9 91eLB 0x3914488 apm_out_str_: ; 0xf9a08 LB 0x39 14358 14489 push bp ; 55 14359 14490 mov bp, sp ; 89 e5 … … 14361 14492 mov bx, ax ; 89 c3 14362 14493 cmp byte [bx], 000h ; 80 3f 00 14363 je short 09 933h ; 74 0a14494 je short 09a1dh ; 74 0a 14364 14495 mov al, byte [bx] ; 8a 07 14365 14496 out DX, AL ; ee … … 14368 14499 db 00ah, 0c0h 14369 14500 ; or al, al ; 0a c0 14370 jne short 09 92bh ; 75 f814501 jne short 09a15h ; 75 f8 14371 14502 lea sp, [bp-002h] ; 8d 66 fe 14372 14503 pop bx ; 5b 14373 14504 pop bp ; 5d 14374 14505 retn ; c3 14375 jp short 098d4h ; 7a 99 14376 inc si ; 46 14377 call far 099a7h:0998ch ; 9a 8c 99 a7 99 14378 inc si ; 46 14379 call far 09a46h:099d2h ; 9a d2 99 46 9a 14380 xlatb ; d7 14381 cwd ; 99 14382 sbb bx, word [bp+si-065e5h] ; 1b 9a 1b 9a 14383 sbb bx, word [bp+si-065eah] ; 1b 9a 16 9a 14384 sbb bx, word [bp+si-065e5h] ; 1b 9a 1b 9a 14385 db 00fh 14506 db 064h, 09ah, 030h, 09bh, 076h, 09ah 14507 ; fs call far fs:09a76h:09b30h ; 64 9a 30 9b 76 9a 14508 xchg cx, ax ; 91 14509 call far 09abch:09b30h ; 9a 30 9b bc 9a 14510 xor byte [bp+di-0653fh], bl ; 30 9b c1 9a 14511 add ax, 0059bh ; 05 9b 05 14512 wait ; 9b 14513 add ax, 0009bh ; 05 9b 00 14514 wait ; 9b 14515 add ax, 0059bh ; 05 9b 05 14516 wait ; 9b 14517 stc ; f9 14386 14518 db 09ah 14387 _apm_function: ; 0xf9 957LB 0xf514519 _apm_function: ; 0xf9a41 LB 0xf5 14388 14520 push bp ; 55 14389 14521 mov bp, sp ; 89 e5 … … 14393 14525 xor ah, ah ; 30 e4 14394 14526 cmp ax, strict word 0000eh ; 3d 0e 00 14395 jnbe near 09 a1bh ; 0f 87 b0 0014527 jnbe near 09b05h ; 0f 87 b0 00 14396 14528 mov bx, ax ; 89 c3 14397 14529 add bx, ax ; 01 c3 14398 14530 mov dx, word [bp+018h] ; 8b 56 18 14399 14531 or dl, 001h ; 80 ca 01 14400 jmp word [cs:bx-06 6c7h] ; 2e ff a7 39 9914532 jmp word [cs:bx-065ddh] ; 2e ff a7 23 9a 14401 14533 mov word [bp+012h], 00102h ; c7 46 12 02 01 14402 14534 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 14403 14535 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 14404 jmp near 09 a46h ; e9 ba 0014536 jmp near 09b30h ; e9 ba 00 14405 14537 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14406 mov word [bp+00ch], 0 9fe4h ; c7 46 0c e4 9f14538 mov word [bp+00ch], 0a0d4h ; c7 46 0c d4 a0 14407 14539 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 14408 14540 mov ax, strict word 0fff0h ; b8 f0 ff 14409 14541 mov word [bp+006h], ax ; 89 46 06 14410 14542 mov word [bp+004h], ax ; 89 46 04 14411 jmp near 09 a46h ; e9 9f 0014543 jmp near 09b30h ; e9 9f 00 14412 14544 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 14413 14545 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 14422 14554 mov si, ax ; 89 c6 14423 14555 sal esi, 010h ; 66 c1 e6 10 14424 jmp near 09 a46h ; e9 74 0014556 jmp near 09b30h ; e9 74 00 14425 14557 sti ; fb 14426 14558 hlt ; f4 14427 jmp near 09 a46h ; e9 6f 0014559 jmp near 09b30h ; e9 6f 00 14428 14560 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 14429 je short 09 9fch ; 74 1f14561 je short 09ae6h ; 74 1f 14430 14562 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 14431 je short 09 9f4h ; 74 1114563 je short 09adeh ; 74 11 14432 14564 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 14433 jne short 09a 04h ; 75 1b14565 jne short 09aeeh ; 75 1b 14434 14566 mov dx, 0040fh ; ba 0f 04 14435 mov ax, 00d 10h ; b8 100d14436 call 09 91eh ; e8 2c ff14437 jmp short 09 a46h ; eb 5214567 mov ax, 00d22h ; b8 22 0d 14568 call 09a08h ; e8 2c ff 14569 jmp short 09b30h ; eb 52 14438 14570 mov dx, 0040fh ; ba 0f 04 14439 mov ax, 00d 18h ; b8 180d14440 jmp short 09 9efh ; eb f314571 mov ax, 00d2ah ; b8 2a 0d 14572 jmp short 09ad9h ; eb f3 14441 14573 mov dx, 0040fh ; ba 0f 04 14442 mov ax, 00d 20h ; b8 200d14443 jmp short 09 9efh ; eb eb14574 mov ax, 00d32h ; b8 32 0d 14575 jmp short 09ad9h ; eb eb 14444 14576 or ah, 00ah ; 80 cc 0a 14445 14577 mov word [bp+012h], ax ; 89 46 12 14446 14578 mov word [bp+018h], dx ; 89 56 18 14447 jmp short 09 a46h ; eb 3714579 jmp short 09b30h ; eb 37 14448 14580 mov word [bp+012h], 00102h ; c7 46 12 02 01 14449 jmp short 09 a46h ; eb 3014581 jmp short 09b30h ; eb 30 14450 14582 or ah, 080h ; 80 cc 80 14451 jmp short 09a 07h ; eb ec14452 mov bx, 00d a0h ; bb a00d14583 jmp short 09af1h ; eb ec 14584 mov bx, 00db2h ; bb b2 0d 14453 14585 mov cx, ds ; 8c d9 14454 14586 mov ax, strict word 00004h ; b8 04 00 14455 call 01 999h ; e8 737f14587 call 01a2ah ; e8 1a 7f 14456 14588 push word [bp+00ch] ; ff 76 0c 14457 14589 push word [bp+012h] ; ff 76 12 14458 push 00d 29h ; 68 290d14590 push 00d3bh ; 68 3b 0d 14459 14591 push strict byte 00004h ; 6a 04 14460 call 01 9dah ; e8 a67f14592 call 01a6bh ; e8 4d 7f 14461 14593 add sp, strict byte 00008h ; 83 c4 08 14462 14594 mov ax, word [bp+012h] ; 8b 46 12 … … 14469 14601 pop bp ; 5d 14470 14602 retn ; c3 14471 pci16_select_reg_: ; 0xf9 a4cLB 0x2414603 pci16_select_reg_: ; 0xf9b36 LB 0x24 14472 14604 push bp ; 55 14473 14605 mov bp, sp ; 89 e5 … … 14486 14618 pop bp ; 5d 14487 14619 retn ; c3 14488 pci16_find_device_: ; 0xf9 a70LB 0xf714620 pci16_find_device_: ; 0xf9b5a LB 0xf7 14489 14621 push bp ; 55 14490 14622 mov bp, sp ; 89 e5 … … 14500 14632 mov byte [bp-008h], 000h ; c6 46 f8 00 14501 14633 test bl, 007h ; f6 c3 07 14502 jne short 09 ab8h ; 75 2d14634 jne short 09ba2h ; 75 2d 14503 14635 mov dx, strict word 0000eh ; ba 0e 00 14504 14636 mov ax, bx ; 89 d8 14505 call 09 a4ch ; e8 b9 ff14637 call 09b36h ; e8 b9 ff 14506 14638 mov dx, 00cfeh ; ba fe 0c 14507 14639 in AL, DX ; ec … … 14510 14642 mov byte [bp-006h], al ; 88 46 fa 14511 14643 cmp AL, strict byte 0ffh ; 3c ff 14512 jne short 09 aa6h ; 75 0614644 jne short 09b90h ; 75 06 14513 14645 add bx, strict byte 00008h ; 83 c3 08 14514 jmp near 09 b39h ; e9 93 0014646 jmp near 09c23h ; e9 93 00 14515 14647 test byte [bp-006h], 080h ; f6 46 fa 80 14516 je short 09 ab3h ; 74 0714648 je short 09b9dh ; 74 07 14517 14649 mov word [bp-00ah], strict word 00001h ; c7 46 f6 01 00 14518 jmp short 09 ab8h ; eb 0514650 jmp short 09ba2h ; eb 05 14519 14651 mov word [bp-00ah], strict word 00008h ; c7 46 f6 08 00 14520 14652 mov al, byte [bp-006h] ; 8a 46 fa 14521 14653 and AL, strict byte 007h ; 24 07 14522 14654 cmp AL, strict byte 001h ; 3c 01 14523 jne short 09 ae0h ; 75 1f14655 jne short 09bcah ; 75 1f 14524 14656 mov ax, bx ; 89 d8 14525 14657 shr ax, 008h ; c1 e8 08 14526 14658 test ax, ax ; 85 c0 14527 jne short 09 ae0h ; 75 1614659 jne short 09bcah ; 75 16 14528 14660 mov dx, strict word 0001ah ; ba 1a 00 14529 14661 mov ax, bx ; 89 d8 14530 call 09 a4ch ; e8 7a ff14662 call 09b36h ; e8 7a ff 14531 14663 mov dx, 00cfeh ; ba fe 0c 14532 14664 in AL, DX ; ec … … 14534 14666 ; sub ah, ah ; 2a e4 14535 14667 cmp al, byte [bp-008h] ; 3a 46 f8 14536 jbe short 09 ae0h ; 76 0314668 jbe short 09bcah ; 76 03 14537 14669 mov byte [bp-008h], al ; 88 46 f8 14538 14670 test di, di ; 85 ff 14539 je short 09 ae9h ; 74 0514671 je short 09bd3h ; 74 05 14540 14672 mov dx, strict word 00008h ; ba 08 00 14541 jmp short 09 aebh ; eb 0214673 jmp short 09bd5h ; eb 02 14542 14674 xor dx, dx ; 31 d2 14543 14675 mov ax, bx ; 89 d8 14544 call 09 a4ch ; e8 5c ff14676 call 09b36h ; e8 5c ff 14545 14677 mov dx, 00cfch ; ba fc 0c 14546 14678 in eax, DX ; 66 ed … … 14553 14685 mov word [bp-010h], strict word 00000h ; c7 46 f0 00 00 14554 14686 test di, di ; 85 ff 14555 je short 09 b1ah ; 74 0f14687 je short 09c04h ; 74 0f 14556 14688 mov cx, strict word 00008h ; b9 08 00 14557 14689 shr dx, 1 ; d1 ea 14558 14690 rcr ax, 1 ; d1 d8 14559 loop 09b 0eh ; e2 fa14691 loop 09bf8h ; e2 fa 14560 14692 mov word [bp-00eh], ax ; 89 46 f2 14561 14693 mov word [bp-00ch], dx ; 89 56 f4 14562 14694 mov ax, word [bp-00ch] ; 8b 46 f4 14563 14695 cmp ax, word [bp-014h] ; 3b 46 ec 14564 jne short 09 b2ah ; 75 0814696 jne short 09c14h ; 75 08 14565 14697 mov ax, word [bp-00eh] ; 8b 46 f2 14566 14698 cmp ax, word [bp-012h] ; 3b 46 ee 14567 je short 09 b30h ; 74 0614699 je short 09c1ah ; 74 06 14568 14700 cmp word [bp-010h], strict byte 00000h ; 83 7e f0 00 14569 je short 09 b36h ; 74 0614701 je short 09c20h ; 74 06 14570 14702 dec si ; 4e 14571 14703 cmp si, strict byte 0ffffh ; 83 fe ff 14572 je short 09 b48h ; 74 1214704 je short 09c32h ; 74 12 14573 14705 add bx, word [bp-00ah] ; 03 5e f6 14574 14706 mov dx, bx ; 89 da … … 14576 14708 movzx ax, byte [bp-008h] ; 0f b6 46 f8 14577 14709 cmp dx, ax ; 39 c2 14578 jbe near 09 a86h ; 0f 86 3e ff14710 jbe near 09b70h ; 0f 86 3e ff 14579 14711 cmp si, strict byte 0ffffh ; 83 fe ff 14580 jne short 09 b51h ; 75 0414712 jne short 09c3bh ; 75 04 14581 14713 mov ax, bx ; 89 d8 14582 jmp short 09 b54h ; eb 0314714 jmp short 09c3eh ; eb 03 14583 14715 mov ax, strict word 0ffffh ; b8 ff ff 14584 14716 lea sp, [bp-004h] ; 8d 66 fc … … 14587 14719 pop bp ; 5d 14588 14720 retn ; c3 14589 dec cx ; 4914590 push fw ; 9c14591 arpl [si-0638ah], bx ; 63 9c 76 9c14592 mov bx, word [si-06362h] ; 8b 9c 9e 9c14593 mov CL, strict byte 09ch ; b1 9c14594 _pci16_function: ; 0xf9 b67LB 0x1d714721 xor bx, word [di-062b3h] ; 33 9d 4d 9d 14722 pushaw ; 60 14723 popfw ; 9d 14724 jne short 09beah ; 75 9d 14725 mov byte [di-06265h], bl ; 88 9d 9b 9d 14726 _pci16_function: ; 0xf9c51 LB 0x1d7 14595 14727 push bp ; 55 14596 14728 mov bp, sp ; 89 e5 … … 14606 14738 xor ah, ah ; 30 e4 14607 14739 cmp bx, strict byte 00003h ; 83 fb 03 14608 jc short 09 ba0h ; 72 1a14609 jbe short 09 bf8h ; 76 7014740 jc short 09c8ah ; 72 1a 14741 jbe short 09ce2h ; 76 70 14610 14742 cmp bx, strict byte 0000eh ; 83 fb 0e 14611 je near 09 cc5h ; 0f 84 36 0114743 je near 09dafh ; 0f 84 36 01 14612 14744 cmp bx, strict byte 00008h ; 83 fb 08 14613 jc near 09d 0ah ; 0f 82 74 0114745 jc near 09df4h ; 0f 82 74 01 14614 14746 cmp bx, strict byte 0000dh ; 83 fb 0d 14615 jbe near 09 c1dh ; 0f 86 80 0014616 jmp near 09d 0ah ; e9 6a 0114747 jbe near 09d07h ; 0f 86 80 00 14748 jmp near 09df4h ; e9 6a 01 14617 14749 cmp bx, strict byte 00002h ; 83 fb 02 14618 je short 09 bc8h ; 74 2314750 je short 09cb2h ; 74 23 14619 14751 cmp bx, strict byte 00001h ; 83 fb 01 14620 jne near 09d 0ah ; 0f 85 5e 0114752 jne near 09df4h ; 0f 85 5e 01 14621 14753 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 14622 14754 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 14624 14756 mov word [bp+018h], 04350h ; c7 46 18 50 43 14625 14757 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 14626 jmp near 09 d37h ; e9 6f 0114758 jmp near 09e21h ; e9 6f 01 14627 14759 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 14628 jne short 09 bd4h ; 75 0614760 jne short 09cbeh ; 75 06 14629 14761 or ah, 083h ; 80 cc 83 14630 jmp near 09 d30h ; e9 5c 0114762 jmp near 09e1ah ; e9 5c 01 14631 14763 mov bx, word [bp+008h] ; 8b 5e 08 14632 14764 mov dx, word [bp+01ch] ; 8b 56 1c 14633 14765 mov ax, word [bp+018h] ; 8b 46 18 14634 14766 xor cx, cx ; 31 c9 14635 call 09 a70h ; e8 8e fe14767 call 09b5ah ; e8 8e fe 14636 14768 cmp ax, strict word 0ffffh ; 3d ff ff 14637 jne short 09 bf2h ; 75 0b14769 jne short 09cdch ; 75 0b 14638 14770 mov ax, word [bp+020h] ; 8b 46 20 14639 14771 xor ah, ah ; 30 e4 14640 14772 or ah, 086h ; 80 cc 86 14641 jmp near 09 d30h ; e9 3e 0114773 jmp near 09e1ah ; e9 3e 01 14642 14774 mov word [bp+014h], ax ; 89 46 14 14643 jmp near 09 d37h ; e9 3f 0114775 jmp near 09e21h ; e9 3f 01 14644 14776 mov bx, word [bp+008h] ; 8b 5e 08 14645 14777 mov ax, word [bp+01ch] ; 8b 46 1c 14646 14778 mov dx, word [bp+01eh] ; 8b 56 1e 14647 14779 mov cx, strict word 00001h ; b9 01 00 14648 call 09 a70h ; e8 69 fe14780 call 09b5ah ; e8 69 fe 14649 14781 cmp ax, strict word 0ffffh ; 3d ff ff 14650 jne short 09 c17h ; 75 0b14782 jne short 09d01h ; 75 0b 14651 14783 mov ax, word [bp+020h] ; 8b 46 20 14652 14784 xor ah, ah ; 30 e4 14653 14785 or ah, 086h ; 80 cc 86 14654 jmp near 09 d30h ; e9 19 0114786 jmp near 09e1ah ; e9 19 01 14655 14787 mov word [bp+014h], ax ; 89 46 14 14656 jmp near 09 d37h ; e9 1a 0114788 jmp near 09e21h ; e9 1a 01 14657 14789 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 14658 jc short 09 c2ah ; 72 0614790 jc short 09d14h ; 72 06 14659 14791 or ah, 087h ; 80 cc 87 14660 jmp near 09 d30h ; e9 06 0114792 jmp near 09e1ah ; e9 06 01 14661 14793 mov dx, word [bp+004h] ; 8b 56 04 14662 14794 mov ax, word [bp+014h] ; 8b 46 14 14663 call 09 a4ch ; e8 19 fe14795 call 09b36h ; e8 19 fe 14664 14796 mov bx, word [bp+020h] ; 8b 5e 20 14665 14797 xor bh, bh ; 30 ff 14666 14798 sub bx, strict byte 00008h ; 83 eb 08 14667 14799 cmp bx, strict byte 00005h ; 83 fb 05 14668 jnbe near 09 d37h ; 0f 87 f5 0014800 jnbe near 09e21h ; 0f 87 f5 00 14669 14801 add bx, bx ; 01 db 14670 jmp word [cs:bx-06 4a5h] ; 2e ff a7 5b 9b14802 jmp word [cs:bx-063bbh] ; 2e ff a7 45 9c 14671 14803 mov bx, word [bp+01ch] ; 8b 5e 1c 14672 14804 xor bl, bl ; 30 db … … 14679 14811 or bx, ax ; 09 c3 14680 14812 mov word [bp+01ch], bx ; 89 5e 1c 14681 jmp near 09 d37h ; e9 d4 0014813 jmp near 09e21h ; e9 d4 00 14682 14814 mov dx, word [bp+004h] ; 8b 56 04 14683 14815 xor dh, dh ; 30 f6 … … 14686 14818 in ax, DX ; ed 14687 14819 mov word [bp+01ch], ax ; 89 46 1c 14688 jmp near 09 d37h ; e9 c1 0014820 jmp near 09e21h ; e9 c1 00 14689 14821 mov dx, 00cfch ; ba fc 0c 14690 14822 in eax, DX ; 66 ed … … 14695 14827 mov word [bp+01ch], ax ; 89 46 1c 14696 14828 mov word [bp+01eh], dx ; 89 56 1e 14697 jmp near 09 d37h ; e9 ac 0014829 jmp near 09e21h ; e9 ac 00 14698 14830 mov ax, word [bp+01ch] ; 8b 46 1c 14699 14831 mov dx, word [bp+004h] ; 8b 56 04 … … 14702 14834 add dx, 00cfch ; 81 c2 fc 0c 14703 14835 out DX, AL ; ee 14704 jmp near 09 d37h ; e9 99 0014836 jmp near 09e21h ; e9 99 00 14705 14837 mov ax, word [bp+01ch] ; 8b 46 1c 14706 14838 mov dx, word [bp+004h] ; 8b 56 04 … … 14709 14841 add dx, 00cfch ; 81 c2 fc 0c 14710 14842 out DX, ax ; ef 14711 jmp near 09 d37h ; e9 86 0014843 jmp near 09e21h ; e9 86 00 14712 14844 mov ax, word [bp+01ch] ; 8b 46 1c 14713 14845 mov cx, word [bp+01eh] ; 8b 4e 1e … … 14718 14850 ; mov ax, cx ; 8b c1 14719 14851 out DX, eax ; 66 ef 14720 jmp short 09 d37h ; eb 7214852 jmp short 09e21h ; eb 72 14721 14853 mov bx, word [bp+004h] ; 8b 5e 04 14722 14854 mov es, [bp+026h] ; 8e 46 26 … … 14725 14857 mov cx, word [0f4a0h] ; 8b 0e a0 f4 14726 14858 cmp cx, word [es:bx] ; 26 3b 0f 14727 jbe short 09 cebh ; 76 1114859 jbe short 09dd5h ; 76 11 14728 14860 mov ax, word [bp+020h] ; 8b 46 20 14729 14861 xor ah, ah ; 30 e4 … … 14731 14863 mov word [bp+020h], ax ; 89 46 20 14732 14864 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 14733 jmp short 09 cffh ; eb 1414865 jmp short 09de9h ; eb 14 14734 14866 les di, [es:bx+002h] ; 26 c4 7f 02 14735 14867 mov si, 0f2c0h ; be c0 f2 … … 14743 14875 les bx, [bp-008h] ; c4 5e f8 14744 14876 mov word [es:bx], ax ; 26 89 07 14745 jmp short 09 d37h ; eb 2d14746 mov bx, 00d a0h ; bb a00d14877 jmp short 09e21h ; eb 2d 14878 mov bx, 00db2h ; bb b2 0d 14747 14879 mov cx, ds ; 8c d9 14748 14880 mov ax, strict word 00004h ; b8 04 00 14749 call 01 999h ; e8 847c14881 call 01a2ah ; e8 2b 7c 14750 14882 mov ax, word [bp+014h] ; 8b 46 14 14751 14883 push ax ; 50 14752 14884 mov ax, word [bp+020h] ; 8b 46 20 14753 14885 push ax ; 50 14754 push 00d 5ch ; 68 5c0d14886 push 00d6eh ; 68 6e 0d 14755 14887 push strict byte 00004h ; 6a 04 14756 call 01 9dah ; e8 b57c14888 call 01a6bh ; e8 5c 7c 14757 14889 add sp, strict byte 00008h ; 83 c4 08 14758 14890 mov ax, word [bp+020h] ; 8b 46 20 … … 14766 14898 pop bp ; 5d 14767 14899 retn ; c3 14768 pci_find_classcode_: ; 0xf9 d3eLB 0x2b14900 pci_find_classcode_: ; 0xf9e28 LB 0x2b 14769 14901 push bp ; 55 14770 14902 mov bp, sp ; 89 e5 … … 14781 14913 int 01ah ; cd 1a 14782 14914 cmp ah, 000h ; 80 fc 00 14783 je near 09 d5fh ; 0f 84 03 0014915 je near 09e49h ; 0f 84 03 00 14784 14916 mov bx, strict word 0ffffh ; bb ff ff 14785 14917 mov ax, bx ; 89 d8 … … 14790 14922 pop bp ; 5d 14791 14923 retn ; c3 14792 pci_read_config_byte_: ; 0xf9 d69LB 0x2414924 pci_read_config_byte_: ; 0xf9e53 LB 0x24 14793 14925 push bp ; 55 14794 14926 mov bp, sp ; 89 e5 … … 14809 14941 pop bp ; 5d 14810 14942 retn ; c3 14811 pci_read_config_word_: ; 0xf9 d8dLB 0x2214943 pci_read_config_word_: ; 0xf9e77 LB 0x22 14812 14944 push bp ; 55 14813 14945 mov bp, sp ; 89 e5 … … 14828 14960 pop bp ; 5d 14829 14961 retn ; c3 14830 pci_read_config_dword_: ; 0xf9 dafLB 0x2714962 pci_read_config_dword_: ; 0xf9e99 LB 0x27 14831 14963 push bp ; 55 14832 14964 mov bp, sp ; 89 e5 … … 14849 14981 pop bp ; 5d 14850 14982 retn ; c3 14851 vds_is_present_: ; 0xf9 dd6LB 0x1d14983 vds_is_present_: ; 0xf9ec0 LB 0x1d 14852 14984 push bx ; 53 14853 14985 push bp ; 55 … … 14857 14989 mov es, ax ; 8e c0 14858 14990 test byte [es:bx], 020h ; 26 f6 07 20 14859 je short 09 deeh ; 74 0614991 je short 09ed8h ; 74 06 14860 14992 mov ax, strict word 00001h ; b8 01 00 14861 14993 pop bp ; 5d … … 14866 14998 pop bx ; 5b 14867 14999 retn ; c3 14868 vds_real_to_lin_: ; 0xf9 df3LB 0x1e15000 vds_real_to_lin_: ; 0xf9edd LB 0x1e 14869 15001 push bx ; 53 14870 15002 push cx ; 51 … … 14877 15009 sal ax, 1 ; d1 e0 14878 15010 rcl dx, 1 ; d1 d2 14879 loop 09e 01h ; e2 fa15011 loop 09eebh ; e2 fa 14880 15012 xor cx, cx ; 31 c9 14881 15013 add ax, bx ; 01 d8 … … 14885 15017 pop bx ; 5b 14886 15018 retn ; c3 14887 vds_build_sg_list_: ; 0xf9e 11LB 0x7915019 vds_build_sg_list_: ; 0xf9efb LB 0x79 14888 15020 push bp ; 55 14889 15021 mov bp, sp ; 89 e5 … … 14899 15031 mov bx, word [bp+006h] ; 8b 5e 06 14900 15032 mov word [es:di+002h], bx ; 26 89 5d 02 14901 call 09 df3h ; e8 c3 ff15033 call 09eddh ; e8 c3 ff 14902 15034 mov es, si ; 8e c6 14903 15035 mov word [es:di+004h], ax ; 26 89 45 04 14904 15036 mov word [es:di+006h], dx ; 26 89 55 06 14905 15037 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 14906 call 09 dd6h ; e8 93 ff15038 call 09ec0h ; e8 93 ff 14907 15039 test ax, ax ; 85 c0 14908 je short 09 e5ah ; 74 1315040 je short 09f44h ; 74 13 14909 15041 mov es, si ; 8e c6 14910 15042 mov ax, 08105h ; b8 05 81 14911 15043 mov dx, strict word 00000h ; ba 00 00 14912 15044 int 04bh ; cd 4b 14913 jc near 09 e57h ; 0f 82 02 0015045 jc near 09f41h ; 0f 82 02 00 14914 15046 db 032h, 0c0h 14915 15047 ; xor al, al ; 32 c0 14916 15048 cbw ; 98 14917 jmp short 09 e81h ; eb 2715049 jmp short 09f6bh ; eb 27 14918 15050 mov es, si ; 8e c6 14919 15051 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 14932 15064 pop bp ; 5d 14933 15065 retn 00004h ; c2 04 00 14934 vds_free_sg_list_: ; 0xf9 e8a LB 0x3615066 vds_free_sg_list_: ; 0xf9f74 LB 0x3c 14935 15067 push bp ; 55 14936 15068 mov bp, sp ; 89 e5 … … 14938 15070 push di ; 57 14939 15071 mov bx, ax ; 89 c3 14940 call 09 dd6h ; e8 42 ff15072 call 09ec0h ; e8 42 ff 14941 15073 test ax, ax ; 85 c0 14942 je short 09 eabh ; 74 1315074 je short 09f95h ; 74 13 14943 15075 mov di, bx ; 89 df 14944 15076 mov es, dx ; 8e c2 … … 14946 15078 mov dx, strict word 00000h ; ba 00 00 14947 15079 int 04bh ; cd 4b 14948 jc near 09 eaah ; 0f 82 02 0015080 jc near 09f94h ; 0f 82 02 00 14949 15081 db 032h, 0c0h 14950 15082 ; xor al, al ; 32 c0 … … 14957 15089 pop bp ; 5d 14958 15090 retn ; c3 14959 times 0x 6db 014960 __U4M: ; 0xf9 ec0 LB 0x4015091 times 0xc db 0 15092 __U4M: ; 0xf9fb0 LB 0x40 14961 15093 pushfw ; 9c 14962 15094 push eax ; 66 50 … … 14984 15116 retn ; c3 14985 15117 times 0xf db 0 14986 __U4D: ; 0xf9f 00 LB 0x4015118 __U4D: ; 0xf9ff0 LB 0x40 14987 15119 pushfw ; 9c 14988 15120 push eax ; 66 50 … … 15015 15147 retn ; c3 15016 15148 times 0x7 db 0 15017 __U8RS: ; 0xf 9f40 LB 0x1015149 __U8RS: ; 0xfa030 LB 0x10 15018 15150 test si, si ; 85 f6 15019 je short 0 9f4fh ; 74 0b15151 je short 0a03fh ; 74 0b 15020 15152 shr ax, 1 ; d1 e8 15021 15153 rcr bx, 1 ; d1 db … … 15023 15155 rcr dx, 1 ; d1 da 15024 15156 dec si ; 4e 15025 jne short 0 9f44h ; 75 f515157 jne short 0a034h ; 75 f5 15026 15158 retn ; c3 15027 __U8LS: ; 0xf 9f50 LB 0x1015159 __U8LS: ; 0xfa040 LB 0x10 15028 15160 test si, si ; 85 f6 15029 je short 0 9f5fh ; 74 0b15161 je short 0a04fh ; 74 0b 15030 15162 sal dx, 1 ; d1 e2 15031 15163 rcl cx, 1 ; d1 d1 … … 15033 15165 rcl ax, 1 ; d1 d0 15034 15166 dec si ; 4e 15035 jne short 0 9f54h ; 75 f515167 jne short 0a044h ; 75 f5 15036 15168 retn ; c3 15037 _fmemset_: ; 0xf 9f60 LB 0x1015169 _fmemset_: ; 0xfa050 LB 0x10 15038 15170 push di ; 57 15039 15171 mov es, dx ; 8e c2 … … 15046 15178 retn ; c3 15047 15179 times 0x3 db 0 15048 _fmemcpy_: ; 0xf 9f70 LB 0x3a15180 _fmemcpy_: ; 0xfa060 LB 0x3a 15049 15181 push bp ; 55 15050 15182 db 08bh, 0ech … … 15071 15203 add byte [bx+si], al ; 00 00 15072 15204 add byte [bx+si], al ; 00 00 15073 rcr byte [bx-0603eh], 0c6h ; c0 9f c2 9f c6 15074 lahf ; 9f 15075 db 0c6h, 09fh, 0c6h, 09fh, 0c8h 15076 ; mov byte [bx-0603ah], 0c8h ; c6 9f c6 9f c8 15077 lahf ; 9f 15078 enter 0ca9fh, 09fh ; c8 9f ca 9f 15079 into ; ce 15080 lahf ; 9f 15081 into ; ce 15082 lahf ; 9f 15083 rcr byte [bx-0602bh], 1 ; d0 9f d5 9f 15084 xlatb ; d7 15085 lahf ; 9f 15086 apm_worker: ; 0xf9faa LB 0x3a 15205 mov AL, strict byte 0a0h ; b0 a0 15206 mov DL, strict byte 0a0h ; b2 a0 15207 mov DH, strict byte 0a0h ; b6 a0 15208 mov DH, strict byte 0a0h ; b6 a0 15209 mov DH, strict byte 0a0h ; b6 a0 15210 mov ax, 0b8a0h ; b8 a0 b8 15211 mov AL, byte [0a0bah] ; a0 ba a0 15212 mov si, 0bea0h ; be a0 be 15213 mov AL, byte [0a0c0h] ; a0 c0 a0 15214 lds sp, [bx+si-05f39h] ; c5 a0 c7 a0 15215 apm_worker: ; 0xfa09a LB 0x3a 15087 15216 sti ; fb 15088 15217 push ax ; 50 … … 15096 15225 pop ax ; 58 15097 15226 mov AH, strict byte 053h ; b4 53 15098 jnc short 0 9fe0h ; 73 2515099 jmp word [cs:bp-0 6070h] ; 2e ff a6 90 9f15100 jmp short 0 9fdeh ; eb 1c15227 jnc short 0a0d0h ; 73 25 15228 jmp word [cs:bp-05f80h] ; 2e ff a6 80 a0 15229 jmp short 0a0ceh ; eb 1c 15101 15230 sti ; fb 15102 15231 hlt ; f4 15103 jmp short 0 9fdeh ; eb 1815104 jmp short 0 9fdeh ; eb 1615105 jmp short 0 9fe0h ; eb 1615232 jmp short 0a0ceh ; eb 18 15233 jmp short 0a0ceh ; eb 16 15234 jmp short 0a0d0h ; eb 16 15106 15235 mov AH, strict byte 080h ; b4 80 15107 jmp short 0 9fe2h ; eb 1415108 jmp short 0 9fe0h ; eb 1015236 jmp short 0a0d2h ; eb 14 15237 jmp short 0a0d0h ; eb 10 15109 15238 mov ax, 00102h ; b8 02 01 15110 jmp short 0 9fdeh ; eb 0915111 jmp short 0 9fdeh ; eb 0715239 jmp short 0a0ceh ; eb 09 15240 jmp short 0a0ceh ; eb 07 15112 15241 mov BL, strict byte 000h ; b3 00 15113 15242 mov cx, strict word 00000h ; b9 00 00 15114 jmp short 0 9fdeh ; eb 0015243 jmp short 0a0ceh ; eb 00 15115 15244 clc ; f8 15116 15245 retn ; c3 … … 15118 15247 stc ; f9 15119 15248 retn ; c3 15120 apm_pm16_entry: ; 0xf 9fe4 LB 0x1115249 apm_pm16_entry: ; 0xfa0d4 LB 0x11 15121 15250 mov AH, strict byte 002h ; b4 02 15122 15251 push DS ; 1e … … 15126 15255 add bp, strict byte 00008h ; 83 c5 08 15127 15256 mov ds, bp ; 8e dd 15128 call 0 9faah ; e8 b8 ff15257 call 0a09ah ; e8 b8 ff 15129 15258 pop bp ; 5d 15130 15259 pop DS ; 1f 15131 15260 retf ; cb 15132 15261 15133 ; Padding 0x3 a0b bytes at 0xf9ff515134 times 14 859 db 015262 ; Padding 0x391b bytes at 0xfa0e5 15263 times 14619 db 0 15135 15264 15136 15265 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 15179 15308 add bp, strict byte 00008h ; 83 c5 08 15180 15309 push ebp ; 66 55 15181 mov bp, 0 9fe6h ; bd e6 9f15310 mov bp, 0a0d6h ; bd d6 a0 15182 15311 add byte [bx+si], al ; 00 00 15183 15312 push ebp ; 66 55 … … 15645 15774 cmp AL, strict byte 009h ; 3c 09 15646 15775 jne short 0e0bch ; 75 03 15647 jmp near 0e3 6dh ; e9 b10215776 jmp near 0e379h ; e9 bd 02 15648 15777 cmp AL, strict byte 005h ; 3c 05 15649 15778 je short 0e044h ; 74 84 … … 15690 15819 pop DS ; 1f 15691 15820 cld ; fc 15692 call 01 7dfh ; e8 d5 3615821 call 01870h ; e8 66 37 15693 15822 call 0e8e0h ; e8 d3 07 15694 15823 db 033h, 0dbh … … 15704 15833 mov ax, 0027fh ; b8 7f 02 15705 15834 mov word [00413h], ax ; a3 13 04 15706 mov ax, 0e9 d6h ; b8 d6e915835 mov ax, 0e9cch ; b8 cc e9 15707 15836 mov word [00018h], ax ; a3 18 00 15708 15837 mov ax, 0f000h ; b8 00 f0 … … 15791 15920 mov dx, 0c800h ; ba 00 c8 15792 15921 call 01600h ; e8 e1 33 15793 call 04 ee4h ; e8 c2 6c15922 call 04fceh ; e8 ac 6d 15794 15923 pop DS ; 1f 15795 15924 mov ax, 0ff53h ; b8 53 ff … … 15860 15989 pop DS ; 1f 15861 15990 cld ; fc 15862 call 01 7bbh ; e8 f2 3415991 call 0184ch ; e8 83 35 15863 15992 iret ; cf 15864 15993 int75_handler: ; 0xfe2ca LB 0x8 … … 15867 15996 int 002h ; cd 02 15868 15997 iret ; cf 15869 hard_drive_post: ; 0xfe2d2 LB 0x c415998 hard_drive_post: ; 0xfe2d2 LB 0xd0 15870 15999 db 033h, 0c0h 15871 16000 ; xor ax, ax ; 33 c0 … … 15908 16037 cld ; fc 15909 16038 pushad ; 66 60 15910 call 016 50h ; e8 123316039 call 01692h ; e8 54 33 15911 16040 popad ; 66 61 15912 call 01d 17h ; e8 d4 3915913 call 02 1a4h ; e8 5e3e15914 call 09 820h ; e8 d7 b415915 call 087 04h ; e8 b8 a316041 call 01da8h ; e8 65 3a 16042 call 02235h ; e8 ef 3e 16043 call 0990ah ; e8 c1 b5 16044 call 087eeh ; e8 a2 a4 15916 16045 call 0ed2fh ; e8 e0 09 15917 16046 call 0e2d2h ; e8 80 ff … … 15922 16051 mov dx, 0f000h ; ba 00 f0 15923 16052 call 01600h ; e8 a2 32 15924 call 017ffh ; e8 9e 34 15925 call 03bc8h ; e8 64 58 16053 db 066h, 033h, 0c0h 16054 ; xor eax, eax ; 66 33 c0 16055 db 066h, 033h, 0dbh 16056 ; xor ebx, ebx ; 66 33 db 16057 db 066h, 033h, 0c9h 16058 ; xor ecx, ecx ; 66 33 c9 16059 db 066h, 033h, 0d2h 16060 ; xor edx, edx ; 66 33 d2 16061 call 01890h ; e8 23 35 16062 call 03cb1h ; e8 41 59 15926 16063 sti ; fb 15927 16064 int 019h ; cd 19 15928 16065 sti ; fb 15929 16066 hlt ; f4 15930 jmp short 0e3 68h ; eb fd16067 jmp short 0e374h ; eb fd 15931 16068 cli ; fa 15932 16069 hlt ; f4 … … 15950 16087 sti ; fb 15951 16088 retf 00002h ; ca 02 00 15952 biosorg_check_before_or_at_0E3FCh: ; 0xfe3 96 LB 0x6815953 times 0x 66db 016089 biosorg_check_before_or_at_0E3FCh: ; 0xfe3a2 LB 0x5c 16090 times 0x5a db 0 15954 16091 db 'XM' 15955 16092 int13_handler: ; 0xfe3fe LB 0x3 … … 16025 16162 pop DS ; 1f 16026 16163 cld ; fc 16027 call 06 3f9h ; e8 b7 7c16164 call 064e3h ; e8 a1 7d 16028 16165 popaw ; 61 16029 16166 pop ES ; 07 … … 16036 16173 pop DS ; 1f 16037 16174 cld ; fc 16038 call 017 50h ; e8 013016175 call 017e1h ; e8 92 30 16039 16176 popaw ; 61 16040 16177 pop ES ; 07 … … 16101 16238 pop DS ; 1f 16102 16239 cld ; fc 16103 call 05 6efh ; e8 ad 6e16240 call 057d9h ; e8 97 6f 16104 16241 popaw ; 61 16105 16242 pop DS ; 1f … … 16118 16255 pop DS ; 1f 16119 16256 cld ; fc 16120 call 05 6efh ; e8 8f 6e16257 call 057d9h ; e8 79 6f 16121 16258 popaw ; 61 16122 16259 pop DS ; 1f … … 16180 16317 times 0x49 db 0 16181 16318 db 'XM' 16182 biosorg_check_at_0E987h: ; 0xfe987 LB 0x5 c16319 biosorg_check_at_0E987h: ; 0xfe987 LB 0x52 16183 16320 cli ; fa 16184 16321 push ax ; 50 16185 16322 mov AL, strict byte 0adh ; b0 ad 16186 16323 out strict byte 064h, AL ; e6 64 16187 mov AL, strict byte 00bh ; b0 0b16188 out strict byte 020h, AL ; e6 2016189 in AL, strict byte 020h ; e4 2016190 and AL, strict byte 002h ; 24 0216191 je short 0e9d0h ; 74 3916192 16324 in AL, strict byte 060h ; e4 60 16193 16325 push DS ; 1e … … 16197 16329 stc ; f9 16198 16330 int 015h ; cd 15 16199 jnc short 0e9c ah ; 73 2716331 jnc short 0e9c0h ; 73 27 16200 16332 sti ; fb 16201 16333 cmp AL, strict byte 0e0h ; 3c e0 16202 jne short 0e9 b3h ; 75 0b16334 jne short 0e9a9h ; 75 0b 16203 16335 db 033h, 0c0h 16204 16336 ; xor ax, ax ; 33 c0 16205 16337 mov ds, ax ; 8e d8 16206 16338 or byte [00496h], 002h ; 80 0e 96 04 02 16207 jmp short 0e9c ah ; eb 1716339 jmp short 0e9c0h ; eb 17 16208 16340 cmp AL, strict byte 0e1h ; 3c e1 16209 jne short 0e9 c2h ; 75 0b16341 jne short 0e9b8h ; 75 0b 16210 16342 db 033h, 0c0h 16211 16343 ; xor ax, ax ; 33 c0 16212 16344 mov ds, ax ; 8e d8 16213 16345 or byte [00496h], 001h ; 80 0e 96 04 01 16214 jmp short 0e9c ah ; eb 0816346 jmp short 0e9c0h ; eb 08 16215 16347 push ES ; 06 16216 16348 push CS ; 0e 16217 16349 pop DS ; 1f 16218 16350 cld ; fc 16219 call 05 1e7h ; e8 1e 6816351 call 052d1h ; e8 12 69 16220 16352 pop ES ; 07 16221 16353 popaw ; 61 16222 16354 pop DS ; 1f 16223 16355 cli ; fa 16224 call 0e034h ; e8 6 4f616356 call 0e034h ; e8 6e f6 16225 16357 mov AL, strict byte 0aeh ; b0 ae 16226 16358 out strict byte 064h, AL ; e6 64 … … 16233 16365 pop DS ; 1f 16234 16366 cld ; fc 16235 call 06 ec2h ; e8 e3 8416367 call 06fach ; e8 d7 85 16236 16368 pop DS ; 1f 16237 16369 pop ES ; 07 16238 16370 popaw ; 61 16239 16371 iret ; cf 16240 biosorg_check_before_or_at_0EC57h: ; 0xfe9 e3 LB 0x27616241 times 0x27 4db 016372 biosorg_check_before_or_at_0EC57h: ; 0xfe9d9 LB 0x280 16373 times 0x27e db 0 16242 16374 db 'XM' 16243 16375 biosorg_check_at_0EC59h: ; 0xfec59 LB 0x2 … … 16255 16387 cld ; fc 16256 16388 push 0ece9h ; 68 e9 ec 16257 jmp near 03c 0ch ; e9 9b 4f16389 jmp near 03cf5h ; e9 84 50 16258 16390 push ES ; 06 16259 16391 push ax ; 50 … … 16261 16393 push cx ; 51 16262 16394 push dx ; 52 16263 call 03 be0h ; e8 67 4f16395 call 03cc9h ; e8 50 50 16264 16396 cmp AL, strict byte 000h ; 3c 00 16265 16397 je short 0ecabh ; 74 2e 16266 call 03 bf6h ; e8 76 4f16398 call 03cdfh ; e8 5f 50 16267 16399 pop dx ; 5a 16268 16400 push dx ; 52 … … 16282 16414 cld ; fc 16283 16415 push 0ece9h ; 68 e9 ec 16284 jmp near 04 1e0h ; e9 49 5516416 jmp near 042cah ; e9 33 56 16285 16417 and dl, 0e0h ; 80 e2 e0 16286 16418 db 03ah, 0c2h … … 16322 16454 jne short 0ecc8h ; 75 06 16323 16455 push 0ece9h ; 68 e9 ec 16324 jmp near 03 288h ; e9 c0 4516456 jmp near 03303h ; e9 3b 46 16325 16457 int13_notfloppy: ; 0xfecc8 LB 0x14 16326 16458 cmp dl, 0e0h ; 80 fa e0 … … 16328 16460 shr ebx, 010h ; 66 c1 eb 10 16329 16461 push bx ; 53 16330 call 046 14h ; e8 3f 5916462 call 046feh ; e8 29 5a 16331 16463 pop bx ; 5b 16332 16464 sal ebx, 010h ; 66 c1 e3 10 … … 16335 16467 cmp ah, 040h ; 80 fc 40 16336 16468 jnbe short 0ece6h ; 77 05 16337 call 05 abbh ; e8 d7 6d16469 call 05ba5h ; e8 c1 6e 16338 16470 jmp short 0ece9h ; eb 03 16339 call 05f 05h ; e8 1c 7216471 call 05fefh ; e8 06 73 16340 16472 int13_out: ; 0xfece9 LB 0x4 16341 16473 pop DS ; 1f … … 16553 16685 pop DS ; 1f 16554 16686 cld ; fc 16555 call 07 83dh ; e8 60 8816687 call 07927h ; e8 4a 89 16556 16688 popaw ; 61 16557 16689 pop ES ; 07 … … 16581 16713 pop DS ; 1f 16582 16714 cld ; fc 16583 call 01 7cdh ; e8 232716715 call 0185eh ; e8 b4 27 16584 16716 hlt ; f4 16585 16717 iret ; cf … … 16604 16736 mov ax, strict word 00001h ; b8 01 00 16605 16737 push ax ; 50 16606 call 04 c7bh ; e8 ab 5b16738 call 04d65h ; e8 95 5c 16607 16739 inc sp ; 44 16608 16740 inc sp ; 44 … … 16611 16743 mov ax, strict word 00002h ; b8 02 00 16612 16744 push ax ; 50 16613 call 04 c7bh ; e8 9e 5b16745 call 04d65h ; e8 88 5c 16614 16746 inc sp ; 44 16615 16747 inc sp ; 44 … … 16618 16750 mov ax, strict word 00003h ; b8 03 00 16619 16751 push ax ; 50 16620 call 04 c7bh ; e8 91 5b16752 call 04d65h ; e8 7b 5c 16621 16753 inc sp ; 44 16622 16754 inc sp ; 44 … … 16625 16757 mov ax, strict word 00004h ; b8 04 00 16626 16758 push ax ; 50 16627 call 04 c7bh ; e8 84 5b16759 call 04d65h ; e8 6e 5c 16628 16760 inc sp ; 44 16629 16761 inc sp ; 44 … … 16908 17040 pop DS ; 1f 16909 17041 cld ; fc 16910 call 06 d17h ; e8 b0 7417042 call 06e01h ; e8 9a 75 16911 17043 pop DS ; 1f 16912 17044 pop ES ; 07 … … 16930 17062 cmp ah, 0c2h ; 80 fc c2 16931 17063 je short 0f899h ; 74 0e 16932 call 06 64bh ; e8 bd 6d17064 call 06735h ; e8 a7 6e 16933 17065 popaw ; 61 16934 17066 pop ES ; 07 … … 16936 17068 popfw ; 9d 16937 17069 jmp short 0f8a7h ; eb 13 16938 call 09 957h ; e8 c0 a017070 call 09a41h ; e8 aa a1 16939 17071 jmp short 0f88eh ; eb f5 16940 17072 int15_handler_mouse: ; 0xff899 LB 0x5 16941 call 07 4b2h ; e8 16 7c17073 call 0759ch ; e8 00 7d 16942 17074 jmp short 0f88eh ; eb f0 16943 17075 int15_handler32: ; 0xff89e LB 0x9 16944 17076 pushad ; 66 60 16945 call 06 981h ; e8 de 7017077 call 06a6bh ; e8 c8 71 16946 17078 popad ; 66 61 16947 17079 jmp short 0f88fh ; eb e8 … … 16975 17107 pop DS ; 1f 16976 17108 cld ; fc 16977 call 07 3e8h ; e8 1c 7b17109 call 074d2h ; e8 06 7c 16978 17110 pop cx ; 59 16979 17111 jcxz 0f8dbh ; e3 0c … … 17007 17139 pop DS ; 1f 17008 17140 cld ; fc 17009 call 07 0a0h ; e8 9f 7717141 call 0718ah ; e8 89 78 17010 17142 popaw ; 61 17011 17143 pop DS ; 1f … … 17089 17221 cld ; fc 17090 17222 pushad ; 66 60 17091 call 09 b67h ; e8 ea 9c17223 call 09c51h ; e8 d4 9d 17092 17224 popad ; 66 61 17093 17225 pop DS ; 1f … … 17100 17232 pop DS ; 1f 17101 17233 cld ; fc 17102 call 07 15eh ; e8 d3 7217234 call 07248h ; e8 bd 73 17103 17235 popaw ; 61 17104 17236 pop DS ; 1f … … 17203 17335 cpu_reset: ; 0xffff0 LB 0x10 17204 17336 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 17205 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03 1h17337 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fch, 03ah -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative386.md5sum
r66146 r67495 1 0d999d86f4e7faf14b247137b10e2926 *VBoxPcBios386.rom1 8754dcaf0f6dc65cc52733150d18ab66 *VBoxPcBios386.rom -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.asm
r66146 r67495 11 11 ; 12 12 ; 13 ; Copyright (C) 2004-201 6Oracle Corporation13 ; Copyright (C) 2004-2017 Oracle Corporation 14 14 ; 15 15 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 880 880 ; 881 881 ; 882 ; Copyright (C) 2006-201 6Oracle Corporation882 ; Copyright (C) 2006-2017 Oracle Corporation 883 883 ; 884 884 ; This file is part of VirtualBox Open Source Edition (OSE), as … … 988 988 db 001h, 000h, 002h, 002h, 003h, 003h, 004h, 004h, 005h, 005h, 00eh, 006h, 00fh, 006h, 000h 989 989 _pktacc: ; 0xf006a LB 0xc 990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0 d7h, 081h, 072h, 091h990 db 000h, 000h, 000h, 000h, 000h, 000h, 0a1h, 02bh, 0ffh, 081h, 09ah, 091h 991 991 _softrst: ; 0xf0076 LB 0xc 992 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 0 03h, 03ch, 003h, 03ch992 db 000h, 000h, 000h, 000h, 000h, 000h, 02ch, 02eh, 02ah, 03ch, 02ah, 03ch 993 993 _dskacc: ; 0xf0082 LB 0x2e 994 994 db 000h, 000h, 000h, 000h, 000h, 000h, 000h, 000h, 085h, 02ah, 046h, 02bh, 000h, 000h, 000h, 000h 995 db 0 05h, 080h, 0eeh, 080h, 040h, 090h, 0eah, 090h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h995 db 02dh, 080h, 016h, 081h, 068h, 090h, 012h, 091h, 000h, 000h, 000h, 000h, 000h, 000h, 05fh, 033h 996 996 db 032h, 05fh, 000h, 0dah, 00fh, 000h, 000h, 001h, 0f3h, 000h, 000h, 000h, 000h, 000h 997 997 … … 1190 1190 times 1144 db 0 1191 1191 1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8 de8 class=CODE group=AUTO1192 section _TEXT progbits vstart=0x1600 align=1 ; size=0x8e18 class=CODE group=AUTO 1193 1193 rom_scan_: ; 0xf1600 LB 0x52 1194 1194 push bp ; 55 … … 1450 1450 int 010h ; cd 10 1451 1451 jmp short 017c3h ; eb 03 1452 call 07b 9ah ; e8 d7631452 call 07bc2h ; e8 ff 63 1453 1453 mov sp, bp ; 89 ec 1454 1454 pop bp ; 5d … … 1596 1596 mov bx, strict word 0000ah ; bb 0a 00 1597 1597 xor cx, cx ; 31 c9 1598 call 0a0 80h ; e8 a3 871598 call 0a0b0h ; e8 d3 87 1599 1599 mov word [bp-008h], ax ; 89 46 f8 1600 1600 mov cx, dx ; 89 d1 … … 1833 1833 mov dx, word [bp-026h] ; 8b 56 da 1834 1834 mov si, word [bp-01eh] ; 8b 76 e2 1835 call 0a0 b0h ; e8 98 851835 call 0a0e0h ; e8 c8 85 1836 1836 mov ax, dx ; 89 d0 1837 1837 xor ah, dh ; 30 f4 … … 2294 2294 mov dx, word [es:si] ; 26 8b 14 2295 2295 mov si, strict word 00018h ; be 18 00 2296 call 0a0 b0h ; e8 1e 812296 call 0a0e0h ; e8 4e 81 2297 2297 xor dh, dh ; 30 f6 2298 2298 mov word [bp-014h], dx ; 89 56 ec … … 2304 2304 mov dx, word [es:si] ; 26 8b 14 2305 2305 mov si, strict word 00020h ; be 20 00 2306 call 0a0 b0h ; e8 fe 802306 call 0a0e0h ; e8 2e 81 2307 2307 mov bx, dx ; 89 d3 2308 2308 mov word [bp-010h], dx ; 89 56 f0 … … 2336 2336 mov dx, word [es:si] ; 26 8b 14 2337 2337 mov si, strict word 00008h ; be 08 00 2338 call 0a0 b0h ; e8 ab 802338 call 0a0e0h ; e8 db 80 2339 2339 mov word [bp-010h], dx ; 89 56 f0 2340 2340 mov bx, word [bp-016h] ; 8b 5e ea … … 2345 2345 mov dx, word [es:si] ; 26 8b 14 2346 2346 mov si, strict word 00018h ; be 18 00 2347 call 0a0 b0h ; e8 8d 802347 call 0a0e0h ; e8 bd 80 2348 2348 mov bl, dl ; 88 d3 2349 2349 and bl, 00fh ; 80 e3 0f … … 2741 2741 mov dx, ss ; 8c d2 2742 2742 lea ax, [bp-03eh] ; 8d 46 c2 2743 call 05b 4fh ; e8 4e372743 call 05b77h ; e8 76 37 2744 2744 mov bx, 00da0h ; bb a0 0d 2745 2745 mov cx, ds ; 8c d9 … … 2923 2923 mov dx, word [es:di+036h] ; 26 8b 55 36 2924 2924 mov si, strict word 0000bh ; be 0b 00 2925 call 0a0 b0h ; e8 b1 7a2925 call 0a0e0h ; e8 e1 7a 2926 2926 mov word [bp-02ah], dx ; 89 56 d6 2927 2927 mov word [bp-026h], cx ; 89 4e da … … 3215 3215 mov dx, word [bp-022h] ; 8b 56 de 3216 3216 mov si, strict word 00018h ; be 18 00 3217 call 0a0 b0h ; e8 d4 773217 call 0a0e0h ; e8 04 78 3218 3218 xor dh, dh ; 30 f6 3219 3219 mov word [bp-014h], dx ; 89 56 ec … … 3223 3223 mov dx, word [bp-022h] ; 8b 56 de 3224 3224 mov si, strict word 00020h ; be 20 00 3225 call 0a0 b0h ; e8 bd 773225 call 0a0e0h ; e8 ed 77 3226 3226 mov bx, dx ; 89 d3 3227 3227 mov word [bp-024h], dx ; 89 56 dc … … 3257 3257 mov dx, word [bp-022h] ; 8b 56 de 3258 3258 mov si, strict word 00008h ; be 08 00 3259 call 0a0 b0h ; e8 69 773259 call 0a0e0h ; e8 99 77 3260 3260 mov word [bp-00ch], ax ; 89 46 f4 3261 3261 mov word [bp-020h], bx ; 89 5e e0 … … 3264 3264 mov word [bp-024h], dx ; 89 56 dc 3265 3265 mov si, strict word 00010h ; be 10 00 3266 call 0a0 b0h ; e8 54 773266 call 0a0e0h ; e8 84 77 3267 3267 mov word [bp-022h], dx ; 89 56 de 3268 3268 mov ax, dx ; 89 d0 … … 3843 3843 pop bp ; 5d 3844 3844 retn ; c3 3845 set_diskette_ ret_status_: ; 0xf2eb0 LB 0x193845 set_diskette_current_cyl_: ; 0xf2eb0 LB 0x2c 3846 3846 push bp ; 55 3847 3847 mov bp, sp ; 89 e5 3848 3848 push bx ; 53 3849 push dx ; 52 3850 xor ah, ah ; 30 e4 3851 mov bx, ax ; 89 c3 3852 mov dx, strict word 00041h ; ba 41 00 3849 mov bl, al ; 88 c3 3850 cmp AL, strict byte 001h ; 3c 01 3851 jbe short 02ec8h ; 76 0e 3852 mov ax, 00250h ; b8 50 02 3853 push ax ; 50 3854 mov ax, strict word 00007h ; b8 07 00 3855 push ax ; 50 3856 call 01976h ; e8 b1 ea 3857 add sp, strict byte 00004h ; 83 c4 04 3858 xor bh, bh ; 30 ff 3859 add bx, 00094h ; 81 c3 94 00 3853 3860 mov ax, strict word 00040h ; b8 40 00 3854 call 01660h ; e8 9e e73855 lea sp, [bp-004h] ; 8d 66 fc3856 pop dx ; 5a3861 mov es, ax ; 8e c0 3862 mov byte [es:bx], dl ; 26 88 17 3863 lea sp, [bp-002h] ; 8d 66 fe 3857 3864 pop bx ; 5b 3858 3865 pop bp ; 5d 3859 3866 retn ; c3 3860 set_diskette_current_cyl_: ; 0xf2ec9 LB 0x36 3867 floppy_wait_for_interrupt_: ; 0xf2edc LB 0x23 3861 3868 push bp ; 55 3862 3869 mov bp, sp ; 89 e5 3863 3870 push bx ; 53 3864 push cx ; 51 3865 mov bl, al ; 88 c3 3866 cmp AL, strict byte 001h ; 3c 01 3867 jbe short 02ee2h ; 76 0e 3868 mov ax, 00250h ; b8 50 02 3869 push ax ; 50 3870 mov ax, strict word 00007h ; b8 07 00 3871 push ax ; 50 3872 call 01976h ; e8 97 ea 3873 add sp, strict byte 00004h ; 83 c4 04 3874 mov al, dl ; 88 d0 3875 xor ah, ah ; 30 e4 3876 mov cx, ax ; 89 c1 3877 mov al, bl ; 88 d8 3878 mov dx, ax ; 89 c2 3879 add dx, 00094h ; 81 c2 94 00 3880 mov bx, cx ; 89 cb 3871 cli ; fa 3872 mov bx, strict word 0003eh ; bb 3e 00 3881 3873 mov ax, strict word 00040h ; b8 40 00 3882 call 01660h ; e8 68 e7 3883 lea sp, [bp-004h] ; 8d 66 fc 3884 pop cx ; 59 3874 mov es, ax ; 8e c0 3875 mov al, byte [es:bx] ; 26 8a 07 3876 test AL, strict byte 080h ; a8 80 3877 je short 02ef4h ; 74 04 3878 and AL, strict byte 080h ; 24 80 3879 jmp short 02ef9h ; eb 05 3880 sti ; fb 3881 hlt ; f4 3882 cli ; fa 3883 jmp short 02ee1h ; eb e8 3884 lea sp, [bp-002h] ; 8d 66 fe 3885 3885 pop bx ; 5b 3886 3886 pop bp ; 5d 3887 3887 retn ; c3 3888 floppy_wait_for_interrupt_ : ; 0xf2eff LB 0x213888 floppy_wait_for_interrupt_or_timeout_: ; 0xf2eff LB 0x38 3889 3889 push bp ; 55 3890 3890 mov bp, sp ; 89 e5 3891 push dx ; 523891 push bx ; 53 3892 3892 cli ; fa 3893 mov dx, strict word 0003eh ; ba 3e 00 3893 mov bx, strict word 00040h ; bb 40 00 3894 mov es, bx ; 8e c3 3895 mov al, byte [es:bx] ; 26 8a 07 3896 test al, al ; 84 c0 3897 jne short 02f13h ; 75 03 3898 sti ; fb 3899 jmp short 02f31h ; eb 1e 3900 mov bx, strict word 0003eh ; bb 3e 00 3894 3901 mov ax, strict word 00040h ; b8 40 00 3895 call 01652h ; e8 45 e7 3902 mov es, ax ; 8e c0 3903 mov al, byte [es:bx] ; 26 8a 07 3896 3904 test AL, strict byte 080h ; a8 80 3897 je short 02f15h ; 74 04 3898 and AL, strict byte 080h ; 24 80 3899 jmp short 02f1ah ; eb 05 3905 je short 02f2ch ; 74 0a 3906 mov ah, al ; 88 c4 3907 and ah, 07fh ; 80 e4 7f 3908 mov byte [es:bx], ah ; 26 88 27 3909 jmp short 02f31h ; eb 05 3900 3910 sti ; fb 3901 3911 hlt ; f4 3902 3912 cli ; fa 3903 jmp short 02f04h ; eb ea3913 jmp short 02f04h ; eb d3 3904 3914 lea sp, [bp-002h] ; 8d 66 fe 3905 pop dx ; 5a3915 pop bx ; 5b 3906 3916 pop bp ; 5d 3907 3917 retn ; c3 3908 floppy_ wait_for_interrupt_or_timeout_: ; 0xf2f20 LB 0x473918 floppy_reset_controller_: ; 0xf2f37 LB 0x3f 3909 3919 push bp ; 55 3910 3920 mov bp, sp ; 89 e5 … … 3912 3922 push cx ; 51 3913 3923 push dx ; 52 3914 cli ; fa 3915 mov dx, strict word 00040h ; ba 40 00 3916 mov ax, dx ; 89 d0 3917 call 01652h ; e8 23 e7 3918 test al, al ; 84 c0 3919 jne short 02f38h ; 75 05 3920 sti ; fb 3921 xor cl, cl ; 30 c9 3922 jmp short 02f5dh ; eb 25 3923 mov dx, strict word 0003eh ; ba 3e 00 3924 mov cx, ax ; 89 c1 3925 mov dx, 003f2h ; ba f2 03 3926 in AL, DX ; ec 3927 db 02ah, 0e4h 3928 ; sub ah, ah ; 2a e4 3929 mov bx, ax ; 89 c3 3930 and AL, strict byte 0fbh ; 24 fb 3931 out DX, AL ; ee 3932 mov al, bl ; 88 d8 3933 or AL, strict byte 004h ; 0c 04 3934 out DX, AL ; ee 3935 mov dx, 003f4h ; ba f4 03 3936 in AL, DX ; ec 3937 db 02ah, 0e4h 3938 ; sub ah, ah ; 2a e4 3939 and AL, strict byte 0c0h ; 24 c0 3940 cmp AL, strict byte 080h ; 3c 80 3941 jne short 02f4fh ; 75 f4 3942 mov bx, cx ; 89 cb 3943 add bx, 00090h ; 81 c3 90 00 3924 3944 mov ax, strict word 00040h ; b8 40 00 3925 call 01652h ; e8 11 e7 3926 mov cl, al ; 88 c1 3927 test AL, strict byte 080h ; a8 80 3928 je short 02f58h ; 74 11 3929 and AL, strict byte 07fh ; 24 7f 3930 xor ah, ah ; 30 e4 3931 mov bx, ax ; 89 c3 3932 mov dx, strict word 0003eh ; ba 3e 00 3933 mov ax, strict word 00040h ; b8 40 00 3934 call 01660h ; e8 0a e7 3935 jmp short 02f5dh ; eb 05 3936 sti ; fb 3937 hlt ; f4 3938 cli ; fa 3939 jmp short 02f27h ; eb ca 3940 mov al, cl ; 88 c8 3945 mov es, ax ; 8e c0 3946 mov al, byte [es:bx] ; 26 8a 07 3947 and AL, strict byte 0efh ; 24 ef 3948 mov byte [es:bx], al ; 26 88 07 3941 3949 lea sp, [bp-006h] ; 8d 66 fa 3942 3950 pop dx ; 5a … … 3945 3953 pop bp ; 5d 3946 3954 retn ; c3 3947 floppy_ reset_controller_: ; 0xf2f67 LB 0x463955 floppy_prepare_controller_: ; 0xf2f76 LB 0x75 3948 3956 push bp ; 55 3949 3957 mov bp, sp ; 89 e5 … … 3951 3959 push cx ; 51 3952 3960 push dx ; 52 3953 mov bx, ax ; 89 c3 3954 mov dx, 003f2h ; ba f2 03 3955 in AL, DX ; ec 3956 db 02ah, 0e4h 3957 ; sub ah, ah ; 2a e4 3961 push ax ; 50 3958 3962 mov cx, ax ; 89 c1 3959 and AL, strict byte 0fbh ; 24 fb 3960 out DX, AL ; ee 3961 mov al, cl ; 88 c8 3962 or AL, strict byte 004h ; 0c 04 3963 out DX, AL ; ee 3964 mov dx, 003f4h ; ba f4 03 3965 in AL, DX ; ec 3966 db 02ah, 0e4h 3967 ; sub ah, ah ; 2a e4 3968 and AL, strict byte 0c0h ; 24 c0 3969 cmp AL, strict byte 080h ; 3c 80 3970 jne short 02f7fh ; 75 f4 3971 lea cx, [bx+00090h] ; 8d 8f 90 00 3972 mov dx, cx ; 89 ca 3963 mov bx, strict word 0003eh ; bb 3e 00 3973 3964 mov ax, strict word 00040h ; b8 40 00 3974 call 01652h ; e8 bb e6 3975 and AL, strict byte 0efh ; 24 ef 3976 xor ah, ah ; 30 e4 3977 mov bx, ax ; 89 c3 3978 mov dx, cx ; 89 ca 3979 mov ax, strict word 00040h ; b8 40 00 3980 call 01660h ; e8 bb e6 3981 lea sp, [bp-006h] ; 8d 66 fa 3982 pop dx ; 5a 3983 pop cx ; 59 3984 pop bx ; 5b 3985 pop bp ; 5d 3986 retn ; c3 3987 floppy_prepare_controller_: ; 0xf2fad LB 0x84 3988 push bp ; 55 3989 mov bp, sp ; 89 e5 3990 push bx ; 53 3991 push cx ; 51 3992 push dx ; 52 3993 push ax ; 50 3994 mov cx, ax ; 89 c1 3995 mov dx, strict word 0003eh ; ba 3e 00 3996 mov ax, strict word 00040h ; b8 40 00 3997 call 01652h ; e8 93 e6 3965 mov es, ax ; 8e c0 3966 mov al, byte [es:bx] ; 26 8a 07 3998 3967 and AL, strict byte 07fh ; 24 7f 3999 xor ah, ah ; 30 e4 4000 mov bx, ax ; 89 c3 4001 mov dx, strict word 0003eh ; ba 3e 00 4002 mov ax, strict word 00040h ; b8 40 00 4003 call 01660h ; e8 92 e6 3968 mov byte [es:bx], al ; 26 88 07 4004 3969 mov dx, 003f2h ; ba f2 03 4005 3970 in AL, DX ; ec … … 4009 3974 mov byte [bp-008h], al ; 88 46 f8 4010 3975 test cx, cx ; 85 c9 4011 je short 02f e1h ; 74 043976 je short 02fa2h ; 74 04 4012 3977 mov AL, strict byte 020h ; b0 20 4013 jmp short 02f e3h ; eb 023978 jmp short 02fa4h ; eb 02 4014 3979 mov AL, strict byte 010h ; b0 10 4015 3980 or AL, strict byte 00ch ; 0c 0c … … 4017 3982 mov dx, 003f2h ; ba f2 03 4018 3983 out DX, AL ; ee 4019 mov bx, strict word 00025h ; bb 25 00 4020 mov dx, strict word 00040h ; ba 40 00 4021 mov ax, dx ; 89 d0 4022 call 01660h ; e8 6a e6 4023 mov dx, 0008bh ; ba 8b 00 4024 mov ax, strict word 00040h ; b8 40 00 4025 call 01652h ; e8 53 e6 3984 mov bx, strict word 00040h ; bb 40 00 3985 mov es, bx ; 8e c3 3986 mov byte [es:bx], 025h ; 26 c6 07 25 3987 mov bx, 0008bh ; bb 8b 00 3988 mov al, byte [es:bx] ; 26 8a 07 4026 3989 mov CL, strict byte 006h ; b1 06 4027 3990 shr al, CL ; d2 e8 … … 4034 3997 and AL, strict byte 0c0h ; 24 c0 4035 3998 cmp AL, strict byte 080h ; 3c 80 4036 jne short 0 3007h ; 75 f43999 jne short 02fc3h ; 75 f4 4037 4000 cmp byte [bp-008h], 000h ; 80 7e f8 00 4038 jne short 03029h ; 75 10 4039 call 02effh ; e8 e3 fe 4040 mov bl, al ; 88 c3 4041 xor bh, bh ; 30 ff 4042 mov dx, strict word 0003eh ; ba 3e 00 4043 mov ax, strict word 00040h ; b8 40 00 4044 call 01660h ; e8 37 e6 4001 jne short 02fe3h ; 75 0e 4002 call 02edch ; e8 04 ff 4003 mov bx, strict word 0003eh ; bb 3e 00 4004 mov dx, strict word 00040h ; ba 40 00 4005 mov es, dx ; 8e c2 4006 mov byte [es:bx], al ; 26 88 07 4045 4007 lea sp, [bp-006h] ; 8d 66 fa 4046 4008 pop dx ; 5a … … 4049 4011 pop bp ; 5d 4050 4012 retn ; c3 4051 floppy_media_known_: ; 0xf3031 LB 0x46 4052 push bp ; 55 4053 mov bp, sp ; 89 e5 4013 floppy_media_known_: ; 0xf2feb LB 0x4c 4054 4014 push bx ; 53 4055 4015 push cx ; 51 4056 4016 push dx ; 52 4057 mov bx, ax ; 89 c3 4058 mov dx, strict word 0003eh ; ba 3e 00 4017 push bp ; 55 4018 mov bp, sp ; 89 e5 4019 mov bx, strict word 0003eh ; bb 3e 00 4020 mov dx, strict word 00040h ; ba 40 00 4021 mov es, dx ; 8e c2 4022 mov bh, byte [es:bx] ; 26 8a 3f 4023 mov bl, bh ; 88 fb 4024 test ax, ax ; 85 c0 4025 je short 03004h ; 74 02 4026 shr bl, 1 ; d0 eb 4027 and bl, 001h ; 80 e3 01 4028 jne short 0300dh ; 75 04 4029 xor bh, bh ; 30 ff 4030 jmp short 03030h ; eb 23 4031 mov bx, 00090h ; bb 90 00 4032 test ax, ax ; 85 c0 4033 je short 03017h ; 74 03 4034 mov bx, 00091h ; bb 91 00 4059 4035 mov ax, strict word 00040h ; b8 40 00 4060 call 01652h ; e8 10 e6 4061 mov ah, al ; 88 c4 4062 test bx, bx ; 85 db 4063 je short 0304ah ; 74 02 4064 shr al, 1 ; d0 e8 4065 and AL, strict byte 001h ; 24 01 4066 jne short 03052h ; 75 04 4067 xor ah, ah ; 30 e4 4068 jmp short 0306fh ; eb 1d 4069 mov dx, 00090h ; ba 90 00 4070 test bx, bx ; 85 db 4071 je short 0305ch ; 74 03 4072 mov dx, 00091h ; ba 91 00 4073 mov ax, strict word 00040h ; b8 40 00 4074 call 01652h ; e8 f0 e5 4036 mov es, ax ; 8e c0 4037 mov al, byte [es:bx] ; 26 8a 07 4075 4038 xor ah, ah ; 30 e4 4076 4039 mov CL, strict byte 004h ; b1 04 4077 4040 sar ax, CL ; d3 f8 4078 4041 and AL, strict byte 001h ; 24 01 4079 je short 0304eh ; 74 e2 4080 mov ax, strict word 00001h ; b8 01 00 4081 lea sp, [bp-006h] ; 8d 66 fa 4042 jne short 0302dh ; 75 04 4043 xor bx, bx ; 31 db 4044 jmp short 03030h ; eb 03 4045 mov bx, strict word 00001h ; bb 01 00 4046 mov ax, bx ; 89 d8 4047 pop bp ; 5d 4082 4048 pop dx ; 5a 4083 4049 pop cx ; 59 4084 4050 pop bx ; 5b 4085 pop bp ; 5d4086 4051 retn ; c3 4087 floppy_read_id_: ; 0xf30 77 LB 0x444052 floppy_read_id_: ; 0xf3037 LB 0x52 4088 4053 push bp ; 55 4089 4054 mov bp, sp ; 89 e5 … … 4091 4056 push dx ; 52 4092 4057 push si ; 56 4093 sub sp, strict byte 00008h ; 83 ec 084094 4058 mov bx, ax ; 89 c3 4095 call 02f adh ; e8 28ff4059 call 02f76h ; e8 34 ff 4096 4060 mov AL, strict byte 04ah ; b0 4a 4097 4061 mov dx, 003f5h ; ba f5 03 … … 4099 4063 mov al, bl ; 88 d8 4100 4064 out DX, AL ; ee 4101 call 02e ffh ; e8 6e fe4102 xor si, si ; 31 f64103 jmp short 030 9ah ; eb 054104 cmp si, strict byte 00007h ; 83 fe074105 jnl short 030 a6h ; 7d 0c4065 call 02edch ; e8 8e fe 4066 xor bx, bx ; 31 db 4067 jmp short 03057h ; eb 05 4068 cmp bx, strict byte 00007h ; 83 fb 07 4069 jnl short 0306bh ; 7d 14 4106 4070 mov dx, 003f5h ; ba f5 03 4107 4071 in AL, DX ; ec 4108 4072 db 02ah, 0e4h 4109 4073 ; sub ah, ah ; 2a e4 4110 mov byte [bp+si-00eh], al ; 88 42 f2 4111 inc si ; 46 4112 jmp short 03095h ; eb ef 4113 test byte [bp-00eh], 0c0h ; f6 46 f2 c0 4114 je short 030b0h ; 74 04 4074 lea si, [bx+042h] ; 8d 77 42 4075 mov dx, strict word 00040h ; ba 40 00 4076 mov es, dx ; 8e c2 4077 mov byte [es:si], al ; 26 88 04 4078 inc bx ; 43 4079 jmp short 03052h ; eb e7 4080 mov bx, strict word 00042h ; bb 42 00 4081 mov ax, strict word 00040h ; b8 40 00 4082 mov es, ax ; 8e c0 4083 mov al, byte [es:bx] ; 26 8a 07 4084 test AL, strict byte 0c0h ; a8 c0 4085 je short 0307eh ; 74 04 4115 4086 xor ax, ax ; 31 c0 4116 jmp short 030 b3h ; eb 034087 jmp short 03081h ; eb 03 4117 4088 mov ax, strict word 00001h ; b8 01 00 4118 4089 lea sp, [bp-006h] ; 8d 66 fa … … 4122 4093 pop bp ; 5d 4123 4094 retn ; c3 4124 floppy_drive_recal_: ; 0xf30 bb LB 0x4d4095 floppy_drive_recal_: ; 0xf3089 LB 0x41 4125 4096 push bp ; 55 4126 4097 mov bp, sp ; 89 e5 4127 4098 push bx ; 53 4128 push cx ; 514129 4099 push dx ; 52 4100 push si ; 56 4130 4101 mov bx, ax ; 89 c3 4131 call 02f adh ; e8 e7fe4102 call 02f76h ; e8 e2 fe 4132 4103 mov AL, strict byte 007h ; b0 07 4133 4104 mov dx, 003f5h ; ba f5 03 … … 4135 4106 mov al, bl ; 88 d8 4136 4107 out DX, AL ; ee 4137 call 02e ffh ; e8 2dfe4108 call 02edch ; e8 3c fe 4138 4109 test bx, bx ; 85 db 4139 je short 030e0h ; 74 0a 4140 mov bl, al ; 88 c3 4141 or bl, 002h ; 80 cb 02 4142 mov cx, 00095h ; b9 95 00 4143 jmp short 030e8h ; eb 08 4144 mov bl, al ; 88 c3 4145 or bl, 001h ; 80 cb 01 4146 mov cx, 00094h ; b9 94 00 4147 xor bh, bh ; 30 ff 4148 mov dx, strict word 0003eh ; ba 3e 00 4149 mov ax, strict word 00040h ; b8 40 00 4150 call 01660h ; e8 6d e5 4151 xor bx, bx ; 31 db 4152 mov dx, cx ; 89 ca 4153 mov ax, strict word 00040h ; b8 40 00 4154 call 01660h ; e8 63 e5 4110 je short 030abh ; 74 07 4111 or AL, strict byte 002h ; 0c 02 4112 mov bx, 00095h ; bb 95 00 4113 jmp short 030b0h ; eb 05 4114 or AL, strict byte 001h ; 0c 01 4115 mov bx, 00094h ; bb 94 00 4116 mov si, strict word 0003eh ; be 3e 00 4117 mov dx, strict word 00040h ; ba 40 00 4118 mov es, dx ; 8e c2 4119 mov byte [es:si], al ; 26 88 04 4120 mov byte [es:bx], 000h ; 26 c6 07 00 4155 4121 mov ax, strict word 00001h ; b8 01 00 4156 4122 lea sp, [bp-006h] ; 8d 66 fa 4123 pop si ; 5e 4157 4124 pop dx ; 5a 4158 pop cx ; 594159 4125 pop bx ; 5b 4160 4126 pop bp ; 5d 4161 4127 retn ; c3 4162 floppy_media_sense_: ; 0xf3 108 LB 0xfa4128 floppy_media_sense_: ; 0xf30ca LB 0xe7 4163 4129 push bp ; 55 4164 4130 mov bp, sp ; 89 e5 … … 4168 4134 push si ; 56 4169 4135 push di ; 57 4170 mov di, ax ; 89 c74171 call 030 bbh ; e8 a6ff4136 mov si, ax ; 89 c6 4137 call 03089h ; e8 b2 ff 4172 4138 test ax, ax ; 85 c0 4173 jne short 03 11eh ; 75 054174 xor cx, cx ; 31 c94175 jmp near 031 f6h ; e9 d8004139 jne short 030e0h ; 75 05 4140 xor dx, dx ; 31 d2 4141 jmp near 031a5h ; e9 c5 00 4176 4142 mov ax, strict word 00010h ; b8 10 00 4177 call 016aeh ; e8 8ae54178 test di, di ; 85 ff4179 jne short 03 130h ; 75 084143 call 016aeh ; e8 c8 e5 4144 test si, si ; 85 f6 4145 jne short 030f2h ; 75 08 4180 4146 mov CL, strict byte 004h ; b1 04 4181 shr al, CL ; d2 e8 4182 mov cl, al ; 88 c1 4183 jmp short 03135h ; eb 05 4184 mov cl, al ; 88 c1 4185 and cl, 00fh ; 80 e1 0f 4186 cmp cl, 001h ; 80 f9 01 4187 jne short 03143h ; 75 09 4188 xor cl, cl ; 30 c9 4189 mov CH, strict byte 015h ; b5 15 4190 mov si, strict word 00001h ; be 01 00 4191 jmp short 03181h ; eb 3e 4192 cmp cl, 002h ; 80 f9 02 4193 jne short 0314eh ; 75 06 4194 xor cl, cl ; 30 c9 4195 mov CH, strict byte 035h ; b5 35 4196 jmp short 0313eh ; eb f0 4197 cmp cl, 003h ; 80 f9 03 4198 jne short 03159h ; 75 06 4199 xor cl, cl ; 30 c9 4200 mov CH, strict byte 017h ; b5 17 4201 jmp short 0313eh ; eb e5 4202 cmp cl, 004h ; 80 f9 04 4203 jne short 03164h ; 75 06 4204 xor cl, cl ; 30 c9 4205 mov CH, strict byte 017h ; b5 17 4206 jmp short 0313eh ; eb da 4207 cmp cl, 005h ; 80 f9 05 4208 jne short 0316fh ; 75 06 4209 mov CL, strict byte 0cch ; b1 cc 4210 mov CH, strict byte 0d7h ; b5 d7 4211 jmp short 0313eh ; eb cf 4212 cmp cl, 00eh ; 80 f9 0e 4213 je short 03179h ; 74 05 4214 cmp cl, 00fh ; 80 f9 0f 4215 jne short 0317bh ; 75 02 4216 jmp short 03169h ; eb ee 4217 xor cl, cl ; 30 c9 4218 xor ch, ch ; 30 ed 4219 xor si, si ; 31 f6 4220 mov al, cl ; 88 c8 4221 xor ah, ah ; 30 e4 4222 mov bx, ax ; 89 c3 4223 mov dx, 0008bh ; ba 8b 00 4147 mov dl, al ; 88 c2 4148 shr dl, CL ; d2 ea 4149 jmp short 030f7h ; eb 05 4150 mov dl, al ; 88 c2 4151 and dl, 00fh ; 80 e2 0f 4152 cmp dl, 001h ; 80 fa 01 4153 jne short 03105h ; 75 09 4154 xor dl, dl ; 30 d2 4155 mov DH, strict byte 015h ; b6 15 4156 mov bx, strict word 00001h ; bb 01 00 4157 jmp short 03143h ; eb 3e 4158 cmp dl, 002h ; 80 fa 02 4159 jne short 03110h ; 75 06 4160 xor dl, dl ; 30 d2 4161 mov DH, strict byte 035h ; b6 35 4162 jmp short 03100h ; eb f0 4163 cmp dl, 003h ; 80 fa 03 4164 jne short 0311bh ; 75 06 4165 xor dl, dl ; 30 d2 4166 mov DH, strict byte 017h ; b6 17 4167 jmp short 03100h ; eb e5 4168 cmp dl, 004h ; 80 fa 04 4169 jne short 03126h ; 75 06 4170 xor dl, dl ; 30 d2 4171 mov DH, strict byte 017h ; b6 17 4172 jmp short 03100h ; eb da 4173 cmp dl, 005h ; 80 fa 05 4174 jne short 03131h ; 75 06 4175 mov DL, strict byte 0cch ; b2 cc 4176 mov DH, strict byte 0d7h ; b6 d7 4177 jmp short 03100h ; eb cf 4178 cmp dl, 00eh ; 80 fa 0e 4179 je short 0313bh ; 74 05 4180 cmp dl, 00fh ; 80 fa 0f 4181 jne short 0313dh ; 75 02 4182 jmp short 0312bh ; eb ee 4183 xor dl, dl ; 30 d2 4184 xor dh, dh ; 30 f6 4185 xor bx, bx ; 31 db 4186 mov di, 0008bh ; bf 8b 00 4224 4187 mov ax, strict word 00040h ; b8 40 00 4225 call 01660h ; e8 d0 e4 4226 mov ax, di ; 89 f8 4227 call 03077h ; e8 e2 fe 4188 mov es, ax ; 8e c0 4189 mov byte [es:di], dl ; 26 88 15 4190 mov ax, si ; 89 f0 4191 call 03037h ; e8 e4 fe 4228 4192 test ax, ax ; 85 c0 4229 jne short 031 cbh ; 75 324230 mov al, cl ; 88 c84193 jne short 03189h ; 75 32 4194 mov al, dl ; 88 d0 4231 4195 and AL, strict byte 0c0h ; 24 c0 4232 4196 cmp AL, strict byte 080h ; 3c 80 4233 je short 031 cbh ; 74 2a4234 mov al, cl ; 88 c84197 je short 03189h ; 74 2a 4198 mov al, dl ; 88 d0 4235 4199 and AL, strict byte 0c0h ; 24 c0 4236 4200 cmp AL, strict byte 0c0h ; 3c c0 4237 je short 031 b8h ; 74 0f4238 mov ah, cl ; 88 cc4201 je short 03176h ; 74 0f 4202 mov ah, dl ; 88 d4 4239 4203 and ah, 03fh ; 80 e4 3f 4240 4204 cmp AL, strict byte 040h ; 3c 40 4241 je short 031 c4h ; 74 124205 je short 03182h ; 74 12 4242 4206 test al, al ; 84 c0 4243 je short 031bdh ; 74 07 4244 jmp short 03181h ; eb c9 4245 and cl, 03fh ; 80 e1 3f 4246 jmp short 03181h ; eb c4 4247 mov cl, ah ; 88 e1 4248 or cl, 040h ; 80 c9 40 4249 jmp short 03181h ; eb bd 4250 mov cl, ah ; 88 e1 4251 or cl, 080h ; 80 c9 80 4252 jmp short 03181h ; eb b6 4253 test di, di ; 85 ff 4254 jne short 031d4h ; 75 05 4255 mov di, 00090h ; bf 90 00 4256 jmp short 031d7h ; eb 03 4257 mov di, 00091h ; bf 91 00 4258 mov al, cl ; 88 c8 4259 xor ah, ah ; 30 e4 4260 mov bx, ax ; 89 c3 4261 mov dx, 0008bh ; ba 8b 00 4207 je short 0317bh ; 74 07 4208 jmp short 03143h ; eb cd 4209 and dl, 03fh ; 80 e2 3f 4210 jmp short 03143h ; eb c8 4211 mov dl, ah ; 88 e2 4212 or dl, 040h ; 80 ca 40 4213 jmp short 03143h ; eb c1 4214 mov dl, ah ; 88 e2 4215 or dl, 080h ; 80 ca 80 4216 jmp short 03143h ; eb ba 4217 test si, si ; 85 f6 4218 jne short 03192h ; 75 05 4219 mov si, 00090h ; be 90 00 4220 jmp short 03195h ; eb 03 4221 mov si, 00091h ; be 91 00 4222 mov di, 0008bh ; bf 8b 00 4262 4223 mov ax, strict word 00040h ; b8 40 00 4263 call 01660h ; e8 7a e4 4264 mov al, ch ; 88 e8 4265 xor ah, ah ; 30 e4 4266 mov bx, ax ; 89 c3 4267 mov dx, di ; 89 fa 4268 mov ax, strict word 00040h ; b8 40 00 4269 call 01660h ; e8 6c e4 4270 mov cx, si ; 89 f1 4271 mov ax, cx ; 89 c8 4224 mov es, ax ; 8e c0 4225 mov byte [es:di], dl ; 26 88 15 4226 mov byte [es:si], dh ; 26 88 34 4227 mov dx, bx ; 89 da 4228 mov ax, dx ; 89 d0 4272 4229 lea sp, [bp-00ah] ; 8d 66 f6 4273 4230 pop di ; 5f … … 4278 4235 pop bp ; 5d 4279 4236 retn ; c3 4280 floppy_drive_exists_: ; 0xf3 202 LB 0x2b4237 floppy_drive_exists_: ; 0xf31b1 LB 0x4e 4281 4238 push bp ; 55 4282 4239 mov bp, sp ; 89 e5 … … 4285 4242 mov dx, ax ; 89 c2 4286 4243 mov ax, strict word 00010h ; b8 10 00 4287 call 016aeh ; e8 9fe44244 call 016aeh ; e8 f0 e4 4288 4245 test dx, dx ; 85 d2 4289 jne short 03 219h ; 75 064246 jne short 031c8h ; 75 06 4290 4247 mov CL, strict byte 004h ; b1 04 4291 4248 shr al, CL ; d2 e8 4292 jmp short 03 21bh ; eb 024249 jmp short 031cah ; eb 02 4293 4250 and AL, strict byte 00fh ; 24 0f 4294 4251 test al, al ; 84 c0 4295 je short 03 224h ; 74 054252 je short 031d3h ; 74 05 4296 4253 mov ax, strict word 00001h ; b8 01 00 4297 jmp short 03 226h ; eb 024254 jmp short 031d5h ; eb 02 4298 4255 xor ah, ah ; 30 e4 4299 4256 lea sp, [bp-004h] ; 8d 66 fc … … 4302 4259 pop bp ; 5d 4303 4260 retn ; c3 4304 _int13_diskette_function: ; 0xf322d LB 0x9a4 4261 sbb byte [bx], dl ; 18 17 4262 push SS ; 16 4263 adc ax, 00508h ; 15 08 05 4264 add AL, strict byte 003h ; 04 03 4265 add al, byte [bx+di] ; 02 01 4266 add dl, dl ; 00 d2 4267 cmp di, word [bx+di] ; 3b 39 4268 xor bh, byte [bp+di-02aceh] ; 32 bb 32 d5 4269 db 032h, 0d5h 4270 ; xor dl, ch ; 32 d5 4271 db 032h, 0d5h 4272 ; xor dl, ch ; 32 d5 4273 xor al, byte [bp+06a36h] ; 32 86 36 6a 4274 cmp byte [di+039h], ah ; 38 65 39 4275 test AL, strict byte 039h ; a8 39 4276 fdivr qword [bx+di] ; dc 39 4277 push ax ; 50 4278 db 03ah 4279 _int13_diskette_function: ; 0xf31ff LB 0x9f9 4305 4280 push bp ; 55 4306 4281 mov bp, sp ; 89 e5 4307 push si ; 56 4308 push di ; 57 4309 sub sp, strict byte 00018h ; 83 ec 18 4310 mov bl, byte [bp+017h] ; 8a 5e 17 4311 xor bh, bh ; 30 ff 4312 mov cl, bl ; 88 d9 4313 mov si, word [bp+016h] ; 8b 76 16 4314 and si, 000ffh ; 81 e6 ff 00 4315 mov al, byte [bp+00eh] ; 8a 46 0e 4316 mov dl, byte [bp+014h] ; 8a 56 14 4317 mov byte [bp-010h], dl ; 88 56 f0 4318 mov ch, byte [bp+016h] ; 8a 6e 16 4319 mov dl, byte [bp+015h] ; 8a 56 15 4320 mov byte [bp-012h], dl ; 88 56 ee 4321 mov byte [bp-011h], bh ; 88 7e ef 4322 mov dx, word [bp-012h] ; 8b 56 ee 4323 cmp bl, 008h ; 80 fb 08 4324 jc short 0328eh ; 72 2e 4325 mov dx, word [bp+01ch] ; 8b 56 1c 4326 or dl, 001h ; 80 ca 01 4327 cmp bl, 008h ; 80 fb 08 4328 jbe short 032c4h ; 76 59 4329 cmp bl, 016h ; 80 fb 16 4330 jc short 03286h ; 72 16 4282 sub sp, strict byte 0000eh ; 83 ec 0e 4283 mov al, byte [bp+017h] ; 8a 46 17 4284 xor ah, ah ; 30 e4 4285 mov dx, ax ; 89 c2 4286 cmp ax, strict word 00018h ; 3d 18 00 4287 jnbe short 0326dh ; 77 5c 4288 push CS ; 0e 4289 pop ES ; 07 4290 mov cx, strict word 0000ch ; b9 0c 00 4291 mov di, 031dch ; bf dc 31 4292 repne scasb ; f2 ae 4293 sal cx, 1 ; d1 e1 4294 mov di, cx ; 89 cf 4295 mov di, word [cs:di+031e7h] ; 2e 8b bd e7 31 4296 mov cx, word [bp+016h] ; 8b 4e 16 4297 xor ch, ch ; 30 ed 4298 mov dl, byte [bp+00eh] ; 8a 56 0e 4299 mov ax, word [bp+01ch] ; 8b 46 1c 4300 or AL, strict byte 001h ; 0c 01 4301 mov si, cx ; 89 ce 4331 4302 or si, 00100h ; 81 ce 00 01 4332 cmp bl, 016h ; 80 fb 16 4333 jbe short 032c7h ; 76 4e 4334 cmp bl, 018h ; 80 fb 18 4335 je short 032cah ; 74 4c 4336 cmp bl, 017h ; 80 fb 17 4337 je short 032e1h ; 74 5e 4338 jmp near 03babh ; e9 25 09 4339 cmp bl, 015h ; 80 fb 15 4340 je short 032e4h ; 74 59 4341 jmp near 03babh ; e9 1d 09 4303 jmp di ; ff e7 4304 mov bl, byte [bp+00eh] ; 8a 5e 0e 4342 4305 cmp bl, 001h ; 80 fb 01 4343 jc short 032a2h ; 72 0f 4344 jbe short 032e7h ; 76 52 4345 cmp bl, 005h ; 80 fb 05 4346 je short 03302h ; 74 68 4347 cmp bl, 004h ; 80 fb 04 4348 jbe short 03305h ; 76 66 4349 jmp near 03babh ; e9 09 09 4350 test bl, bl ; 84 db 4351 jne short 03307h ; 75 61 4352 mov al, byte [bp+00eh] ; 8a 46 0e 4353 mov byte [bp-006h], al ; 88 46 fa 4354 cmp AL, strict byte 001h ; 3c 01 4355 jbe short 032cdh ; 76 1d 4306 jbe short 0325bh ; 76 1a 4356 4307 mov ax, word [bp+016h] ; 8b 46 16 4357 4308 xor ah, ah ; 30 e4 4358 4309 or ah, 001h ; 80 cc 01 4359 4310 mov word [bp+016h], ax ; 89 46 16 4360 mov ax, strict word 00001h ; b8 01 00 4361 call 02eb0h ; e8 ef fb 4362 jmp near 03697h ; e9 d3 03 4363 jmp near 0386bh ; e9 a4 05 4364 jmp near 039afh ; e9 e5 06 4365 jmp near 03a48h ; e9 7b 07 4311 mov bx, strict word 00041h ; bb 41 00 4312 mov ax, strict word 00040h ; b8 40 00 4313 mov es, ax ; 8e c0 4314 mov byte [es:bx], 001h ; 26 c6 07 01 4315 jmp near 03abdh ; e9 62 08 4366 4316 mov ax, strict word 00010h ; b8 10 00 4367 call 016aeh ; e8 db e34368 cmp byte [bp-006h], 000h ; 80 7e fa 004369 jne short 032 e9h ; 75 104317 call 016aeh ; e8 4d e4 4318 test bl, bl ; 84 db 4319 jne short 03270h ; 75 0b 4370 4320 mov CL, strict byte 004h ; b1 04 4371 mov ch, al ; 88 c5 4372 shr ch, CL ; d2 ed 4373 jmp short 032eeh ; eb 0d 4374 jmp near 039d3h ; e9 ef 06 4375 jmp near 0396ah ; e9 83 06 4376 jmp short 03330h ; eb 47 4377 mov ch, al ; 88 c5 4378 and ch, 00fh ; 80 e5 0f 4379 test ch, ch ; 84 ed 4380 jne short 0330ah ; 75 18 4321 mov dl, al ; 88 c2 4322 shr dl, CL ; d2 ea 4323 jmp short 03275h ; eb 08 4324 jmp near 03bd2h ; e9 62 09 4325 mov dl, al ; 88 c2 4326 and dl, 00fh ; 80 e2 0f 4327 test dl, dl ; 84 d2 4328 jne short 03293h ; 75 1a 4381 4329 mov ax, word [bp+016h] ; 8b 46 16 4382 4330 xor ah, ah ; 30 e4 4383 4331 or ah, 080h ; 80 cc 80 4384 4332 mov word [bp+016h], ax ; 89 46 16 4385 mov ax, 00080h ; b8 80 00 4386 jmp short 032beh ; eb bc 4387 jmp near 036c1h ; e9 bc 03 4388 jmp short 0334ch ; eb 45 4389 jmp near 03babh ; e9 a1 08 4390 xor bx, bx ; 31 db 4391 mov dx, strict word 0003eh ; ba 3e 00 4333 mov bx, strict word 00041h ; bb 41 00 4392 4334 mov ax, strict word 00040h ; b8 40 00 4393 call 01660h ; e8 4b e3 4335 mov es, ax ; 8e c0 4336 mov byte [es:bx], 080h ; 26 c6 07 80 4337 jmp near 03abdh ; e9 2a 08 4338 mov si, strict word 0003eh ; be 3e 00 4339 mov ax, strict word 00040h ; b8 40 00 4340 mov es, ax ; 8e c0 4341 mov byte [es:si], 000h ; 26 c6 04 00 4394 4342 xor al, al ; 30 c0 4395 4343 mov byte [bp+017h], al ; 88 46 17 4396 xor ah, ah ; 30 e44397 call 02eb0h ; e8 91 fb4344 mov si, strict word 00041h ; be 41 00 4345 mov byte [es:si], al ; 26 88 04 4398 4346 and byte [bp+01ch], 0feh ; 80 66 1c fe 4399 mov al, b yte [bp-006h] ; 8a 46 fa4347 mov al, bl ; 88 d8 4400 4348 xor ah, ah ; 30 e4 4401 4349 xor dx, dx ; 31 d2 4402 call 02ec9h ; e8 9c fb 4403 jmp near 036bah ; e9 8a 03 4350 call 02eb0h ; e8 f9 fb 4351 mov sp, bp ; 89 ec 4352 pop bp ; 5d 4353 retn ; c3 4404 4354 and byte [bp+01ch], 0feh ; 80 66 1c fe 4405 mov dx, 00441h ; ba41 044355 mov bx, 00441h ; bb 41 04 4406 4356 xor ax, ax ; 31 c0 4407 call 01652h ; e8 16 e3 4408 mov dh, al ; 88 c6 4409 xor dl, dl ; 30 d2 4410 or si, dx ; 09 d6 4411 mov word [bp+016h], si ; 89 76 16 4412 test al, al ; 84 c0 4413 je short 033a3h ; 74 5a 4414 jmp near 03697h ; e9 4b 03 4415 mov byte [bp-008h], ch ; 88 6e f8 4416 mov byte [bp-00ah], dl ; 88 56 f6 4417 mov ah, byte [bp-010h] ; 8a 66 f0 4418 mov byte [bp-00eh], ah ; 88 66 f2 4419 mov dl, byte [bp+013h] ; 8a 56 13 4420 xor dh, dh ; 30 f6 4421 mov byte [bp-00ch], dl ; 88 56 f4 4357 mov es, ax ; 8e c0 4358 mov dl, byte [es:bx] ; 26 8a 17 4359 mov ch, dl ; 88 d5 4360 mov word [bp+016h], cx ; 89 4e 16 4361 test dl, dl ; 84 d2 4362 je short 032b7h ; 74 e5 4363 jmp near 03abdh ; e9 e8 07 4364 mov bh, byte [bp+016h] ; 8a 7e 16 4365 mov al, byte [bp+015h] ; 8a 46 15 4366 mov byte [bp-004h], al ; 88 46 fc 4367 mov al, byte [bp+014h] ; 8a 46 14 4368 mov byte [bp-002h], al ; 88 46 fe 4369 mov al, byte [bp+013h] ; 8a 46 13 4370 xor ah, ah ; 30 e4 4422 4371 mov byte [bp-006h], al ; 88 46 fa 4372 mov bl, byte [bp+00eh] ; 8a 5e 0e 4373 cmp bl, 001h ; 80 fb 01 4374 jnbe short 03301h ; 77 0d 4423 4375 cmp AL, strict byte 001h ; 3c 01 4424 jnbe short 03375h ; 77 0e 4425 cmp dl, 001h ; 80 fa 01 4426 jnbe short 03375h ; 77 09 4427 test ch, ch ; 84 ed 4428 je short 03375h ; 74 05 4429 cmp ch, 048h ; 80 fd 48 4430 jbe short 033a6h ; 76 31 4376 jnbe short 03301h ; 77 09 4377 test bh, bh ; 84 ff 4378 je short 03301h ; 74 05 4379 cmp bh, 048h ; 80 ff 48 4380 jbe short 03338h ; 76 37 4431 4381 mov bx, 00da0h ; bb a0 0d 4432 4382 mov cx, ds ; 8c d9 4433 4383 mov ax, strict word 00004h ; b8 04 00 4434 call 01933h ; e8 b3 e54384 call 01933h ; e8 27 e6 4435 4385 mov ax, 00275h ; b8 75 02 4436 4386 push ax ; 50 … … 4439 4389 mov ax, strict word 00004h ; b8 04 00 4440 4390 push ax ; 50 4441 call 01976h ; e8 e7 e54391 call 01976h ; e8 5b e6 4442 4392 add sp, strict byte 00006h ; 83 c4 06 4443 4393 mov ax, word [bp+016h] ; 8b 46 16 … … 4445 4395 or ah, 001h ; 80 cc 01 4446 4396 mov word [bp+016h], ax ; 89 46 16 4447 mov ax, strict word 00001h ; b8 01 00 4448 jmp near 03435h ; e9 92 00 4449 jmp near 036bah ; e9 14 03 4450 mov al, byte [bp-006h] ; 8a 46 fa 4451 xor ah, ah ; 30 e4 4452 call 03202h ; e8 54 fe 4397 mov bx, strict word 00041h ; bb 41 00 4398 mov ax, strict word 00040h ; b8 40 00 4399 mov es, ax ; 8e c0 4400 mov byte [es:bx], 001h ; 26 c6 07 01 4401 jmp near 033e2h ; e9 aa 00 4402 mov al, bl ; 88 d8 4403 xor ah, ah ; 30 e4 4404 call 031b1h ; e8 72 fe 4453 4405 test ax, ax ; 85 c0 4454 jne short 033 c3h ; 75 114406 jne short 0335dh ; 75 1a 4455 4407 mov ax, word [bp+016h] ; 8b 46 16 4456 4408 xor ah, ah ; 30 e4 4457 4409 or ah, 080h ; 80 cc 80 4458 4410 mov word [bp+016h], ax ; 89 46 16 4459 mov ax, 00080h ; b8 80 00 4460 jmp near 03435h ; e9 72 00 4461 mov dl, byte [bp-006h] ; 8a 56 fa 4462 xor dh, dh ; 30 f6 4463 mov ax, dx ; 89 d0 4464 call 03031h ; e8 64 fc 4411 mov bx, strict word 00041h ; bb 41 00 4412 mov ax, strict word 00040h ; b8 40 00 4413 mov es, ax ; 8e c0 4414 mov byte [es:bx], 080h ; 26 c6 07 80 4415 jmp near 033e2h ; e9 85 00 4416 mov cl, bl ; 88 d9 4417 xor ch, ch ; 30 ed 4418 mov ax, cx ; 89 c8 4419 call 02febh ; e8 85 fc 4465 4420 test ax, ax ; 85 c0 4466 jne short 033 f1h ; 75 204467 mov ax, dx ; 89 d04468 call 03 108h ; e8 32fd4421 jne short 03390h ; 75 26 4422 mov ax, cx ; 89 c8 4423 call 030cah ; e8 5b fd 4469 4424 test ax, ax ; 85 c0 4470 jne short 033 f1h ; 75 174425 jne short 03390h ; 75 1d 4471 4426 mov ax, word [bp+016h] ; 8b 46 16 4472 4427 xor ah, ah ; 30 e4 4473 4428 or ah, 00ch ; 80 cc 0c 4474 4429 mov word [bp+016h], ax ; 89 46 16 4475 mov ax, strict word 0000ch ; b8 0c 00 4476 call 02eb0h ; e8 c5 fa 4477 mov byte [bp+016h], dh ; 88 76 16 4478 jmp near 03697h ; e9 a6 02 4479 cmp cl, 002h ; 80 f9 02 4480 jne short 0343fh ; 75 49 4430 mov bx, strict word 00041h ; bb 41 00 4431 mov ax, strict word 00040h ; b8 40 00 4432 mov es, ax ; 8e c0 4433 mov byte [es:bx], 00ch ; 26 c6 07 0c 4434 mov byte [bp+016h], ch ; 88 6e 16 4435 jmp near 03abdh ; e9 2d 07 4436 mov al, byte [bp+017h] ; 8a 46 17 4437 xor ah, ah ; 30 e4 4438 cmp ax, strict word 00002h ; 3d 02 00 4439 jne short 033e9h ; 75 4f 4481 4440 mov CL, strict byte 00ch ; b1 0c 4441 mov ax, word [bp+006h] ; 8b 46 06 4442 shr ax, CL ; d3 e8 4443 mov ch, al ; 88 c5 4444 mov CL, strict byte 004h ; b1 04 4482 4445 mov dx, word [bp+006h] ; 8b 56 06 4483 shr dx, CL ; d3 ea 4484 mov ch, dl ; 88 d5 4485 mov CL, strict byte 004h ; b1 04 4486 mov ax, word [bp+006h] ; 8b 46 06 4487 sal ax, CL ; d3 e0 4488 mov bx, word [bp+010h] ; 8b 5e 10 4489 add bx, ax ; 01 c3 4490 mov word [bp-014h], bx ; 89 5e ec 4491 cmp ax, bx ; 39 d8 4492 jbe short 03414h ; 76 02 4446 sal dx, CL ; d3 e2 4447 mov si, word [bp+010h] ; 8b 76 10 4448 add si, dx ; 01 d6 4449 mov word [bp-00eh], si ; 89 76 f2 4450 cmp dx, si ; 39 f2 4451 jbe short 033b8h ; 76 02 4493 4452 db 0feh, 0c5h 4494 4453 ; inc ch ; fe c5 4495 mov al, b yte [bp-008h] ; 8a 46f84454 mov al, bh ; 88 f8 4496 4455 xor ah, ah ; 30 e4 4497 4456 mov CL, strict byte 009h ; b1 09 4498 mov bx, ax ; 89 c34499 sal bx, CL ; d3 e34500 dec bx ; 4b4501 mov ax, word [bp-0 14h] ; 8b 46 ec4502 add ax, bx ; 01 d84503 cmp ax, word [bp-0 14h] ; 3b 46 ec4504 jnc short 03 442h ; 73 184457 sal ax, CL ; d3 e0 4458 dec ax ; 48 4459 mov word [bp-008h], ax ; 89 46 f8 4460 mov ax, word [bp-00eh] ; 8b 46 f2 4461 add ax, word [bp-008h] ; 03 46 f8 4462 cmp ax, word [bp-00eh] ; 3b 46 f2 4463 jnc short 033ech ; 73 1d 4505 4464 mov ax, word [bp+016h] ; 8b 46 16 4506 4465 mov ah, cl ; 88 cc 4507 4466 mov word [bp+016h], ax ; 89 46 16 4508 mov ax, strict word 00009h ; b8 09 00 4509 call 02eb0h ; e8 78 fa 4467 mov bx, strict word 00041h ; bb 41 00 4468 mov ax, strict word 00040h ; b8 40 00 4469 mov es, ax ; 8e c0 4470 mov byte [es:bx], cl ; 26 88 0f 4510 4471 mov byte [bp+016h], 000h ; c6 46 16 00 4511 jmp near 03 697h ; e9 58 024512 jmp near 035 79h ; e9 37014472 jmp near 03abdh ; e9 d4 06 4473 jmp near 03536h ; e9 4a 01 4513 4474 mov AL, strict byte 006h ; b0 06 4514 4475 mov dx, strict word 0000ah ; ba 0a 00 … … 4517 4478 mov dx, strict word 0000ch ; ba 0c 00 4518 4479 out DX, AL ; ee 4519 mov al, byte [bp-0 14h] ; 8a 46 ec4480 mov al, byte [bp-00eh] ; 8a 46 f2 4520 4481 mov dx, strict word 00004h ; ba 04 00 4521 4482 out DX, AL ; ee 4522 mov al, byte [bp-0 13h] ; 8a 46 ed4483 mov al, byte [bp-00dh] ; 8a 46 f3 4523 4484 out DX, AL ; ee 4524 4485 xor al, al ; 30 c0 4525 4486 mov dx, strict word 0000ch ; ba 0c 00 4526 4487 out DX, AL ; ee 4527 mov al, b l ; 88 d84488 mov al, byte [bp-008h] ; 8a 46 f8 4528 4489 mov dx, strict word 00005h ; ba 05 00 4529 4490 out DX, AL ; ee 4530 mov al, b h ; 88 f84491 mov al, byte [bp-007h] ; 8a 46 f9 4531 4492 out DX, AL ; ee 4532 4493 mov AL, strict byte 046h ; b0 46 … … 4539 4500 mov dx, strict word 0000ah ; ba 0a 00 4540 4501 out DX, AL ; ee 4541 mov bl, byte [bp-006h] ; 8a 5e fa4542 xor bh, bh ; 30 ff4543 mov ax, bx ; 89 d84544 call 02f adh ; e8 29fb4502 mov cl, bl ; 88 d9 4503 xor ch, ch ; 30 ed 4504 mov ax, cx ; 89 c8 4505 call 02f76h ; e8 47 fb 4545 4506 mov AL, strict byte 0e6h ; b0 e6 4546 4507 mov dx, 003f5h ; ba f5 03 4547 4508 out DX, AL ; ee 4548 mov al, byte [bp-00 ch] ; 8a 46 f44509 mov al, byte [bp-006h] ; 8a 46 fa 4549 4510 xor ah, ah ; 30 e4 4550 4511 mov dx, ax ; 89 c2 … … 4555 4516 mov dx, 003f5h ; ba f5 03 4556 4517 out DX, AL ; ee 4557 mov al, byte [bp-00 ah] ; 8a 46 f64558 out DX, AL ; ee 4559 mov al, byte [bp-00 ch] ; 8a 46 f44560 out DX, AL ; ee 4561 mov al, byte [bp-00 eh] ; 8a 46 f24518 mov al, byte [bp-004h] ; 8a 46 fc 4519 out DX, AL ; ee 4520 mov al, byte [bp-006h] ; 8a 46 fa 4521 out DX, AL ; ee 4522 mov al, byte [bp-002h] ; 8a 46 fe 4562 4523 out DX, AL ; ee 4563 4524 mov AL, strict byte 002h ; b0 02 4564 4525 out DX, AL ; ee 4565 mov dl, byte [bp-00eh] ; 8a 56 f2 4526 mov al, byte [bp-002h] ; 8a 46 fe 4527 xor ah, ah ; 30 e4 4528 mov dl, bh ; 88 fa 4566 4529 xor dh, dh ; 30 f6 4567 mov al, byte [bp-008h] ; 8a 46 f84568 xor ah, ah ; 30 e44569 4530 add ax, dx ; 01 d0 4570 4531 dec ax ; 48 … … 4575 4536 mov AL, strict byte 0ffh ; b0 ff 4576 4537 out DX, AL ; ee 4577 call 02 f20h ; e8 5afa4538 call 02effh ; e8 8f fa 4578 4539 test al, al ; 84 c0 4579 jne short 034 e6h ; 75 1c4580 mov ax, bx ; 89 d84581 call 02f 67h ; e8 98fa4540 jne short 03493h ; 75 1f 4541 mov ax, cx ; 89 c8 4542 call 02f37h ; e8 be fa 4582 4543 mov ax, word [bp+016h] ; 8b 46 16 4583 4544 xor ah, ah ; 30 e4 4584 4545 or ah, 080h ; 80 cc 80 4585 4546 mov word [bp+016h], ax ; 89 46 16 4586 mov ax, 00080h ; b8 80 00 4587 call 02eb0h ; e8 d0 f9 4588 mov byte [bp+016h], bh ; 88 7e 16 4589 jmp near 03697h ; e9 b1 01 4547 mov bx, strict word 00041h ; bb 41 00 4548 mov ax, strict word 00040h ; b8 40 00 4549 mov es, ax ; 8e c0 4550 mov byte [es:bx], 080h ; 26 c6 07 80 4551 jmp near 0338ah ; e9 f7 fe 4590 4552 mov dx, 003f4h ; ba f4 03 4591 4553 in AL, DX ; ec … … 4594 4556 and AL, strict byte 0c0h ; 24 c0 4595 4557 cmp AL, strict byte 0c0h ; 3c c0 4596 je short 03 504h ; 74 124558 je short 034b1h ; 74 12 4597 4559 mov ax, 00275h ; b8 75 02 4598 4560 push ax ; 50 … … 4601 4563 mov ax, strict word 00007h ; b8 07 00 4602 4564 push ax ; 50 4603 call 01976h ; e8 75e44565 call 01976h ; e8 c8 e4 4604 4566 add sp, strict byte 00006h ; 83 c4 06 4605 xor si, si ; 31 f64606 jmp short 03 50dh ; eb 054607 cmp si, strict byte 00007h ; 83 fe074608 jnl short 03 526h ; 7d 194567 xor cx, cx ; 31 c9 4568 jmp short 034bah ; eb 05 4569 cmp cx, strict byte 00007h ; 83 f9 07 4570 jnl short 034d0h ; 7d 16 4609 4571 mov dx, 003f5h ; ba f5 03 4610 4572 in AL, DX ; ec 4611 4573 db 02ah, 0e4h 4612 4574 ; sub ah, ah ; 2a e4 4613 mov byte [bp+si-01ch], al ; 88 42 e4 4614 mov bl, al ; 88 c3 4615 xor bh, bh ; 30 ff 4616 lea dx, [si+042h] ; 8d 54 42 4575 mov si, cx ; 89 ce 4576 add si, strict byte 00042h ; 83 c6 42 4577 mov dx, strict word 00040h ; ba 40 00 4578 mov es, dx ; 8e c2 4579 mov byte [es:si], al ; 26 88 04 4580 inc cx ; 41 4581 jmp short 034b5h ; eb e5 4582 mov si, strict word 00042h ; be 42 00 4617 4583 mov ax, strict word 00040h ; b8 40 00 4618 call 01660h ; e8 3d e1 4619 inc si ; 46 4620 jmp short 03508h ; eb e2 4621 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4622 je short 03545h ; 74 19 4623 mov al, byte [bp-006h] ; 8a 46 fa 4624 xor ah, ah ; 30 e4 4625 call 02f67h ; e8 33 fa 4584 mov es, ax ; 8e c0 4585 mov al, byte [es:si] ; 26 8a 04 4586 test AL, strict byte 0c0h ; a8 c0 4587 je short 03500h ; 74 21 4588 mov al, bl ; 88 d8 4589 xor ah, ah ; 30 e4 4590 call 02f37h ; e8 51 fa 4626 4591 mov ax, word [bp+016h] ; 8b 46 16 4627 4592 xor ah, ah ; 30 e4 4628 4593 or ah, 020h ; 80 cc 20 4629 4594 mov word [bp+016h], ax ; 89 46 16 4630 mov ax, strict word 00020h ; b8 20 00 4631 jmp near 03435h ; e9 f0 fe 4632 mov al, byte [bp-008h] ; 8a 46 f8 4595 mov bx, strict word 00041h ; bb 41 00 4596 mov ax, strict word 00040h ; b8 40 00 4597 mov es, ax ; 8e c0 4598 mov byte [es:bx], 020h ; 26 c6 07 20 4599 jmp near 033e2h ; e9 e2 fe 4600 mov al, bh ; 88 f8 4633 4601 xor ah, ah ; 30 e4 4634 4602 mov CL, strict byte 009h ; b1 09 … … 4641 4609 mov dx, word [bp+006h] ; 8b 56 06 4642 4610 mov di, si ; 89 f7 4611 mov cx, ax ; 89 c1 4643 4612 mov es, dx ; 8e c2 4644 mov cx, ax ; 89 c14645 4613 push DS ; 1e 4646 4614 mov ds, dx ; 8e da 4647 4615 rep movsw ; f3 a5 4648 4616 pop DS ; 1f 4649 mov dl, byte [bp-00 ah] ; 8a 56 f64617 mov dl, byte [bp-004h] ; 8a 56 fc 4650 4618 xor dh, dh ; 30 f6 4651 mov al, b yte [bp-006h] ; 8a 46 fa4652 xor ah, ah ; 30 e4 4653 call 02e c9h ; e8 57f94619 mov al, bl ; 88 d8 4620 xor ah, ah ; 30 e4 4621 call 02eb0h ; e8 85 f9 4654 4622 mov byte [bp+017h], 000h ; c6 46 17 00 4655 jmp near 03a41h ; e9 c8 04 4656 cmp cl, 003h ; 80 f9 03 4657 je short 03581h ; 74 03 4658 jmp near 036a5h ; e9 24 01 4623 and byte [bp+01ch], 0feh ; 80 66 1c fe 4624 jmp near 032b7h ; e9 81 fd 4625 mov al, byte [bp+017h] ; 8a 46 17 4626 xor ah, ah ; 30 e4 4627 cmp ax, strict word 00003h ; 3d 03 00 4628 je short 03543h ; 74 03 4629 jmp near 0366fh ; e9 2c 01 4659 4630 mov CL, strict byte 00ch ; b1 0c 4660 4631 mov dx, word [bp+006h] ; 8b 56 06 … … 4664 4635 mov ax, word [bp+006h] ; 8b 46 06 4665 4636 sal ax, CL ; d3 e0 4666 mov bx, word [bp+010h] ; 8b 5e104667 add bx, ax ; 01 c34668 mov word [bp-0 14h], bx ; 89 5e ec4669 cmp ax, bx ; 39 d84670 jbe short 035 9fh ; 76 024637 mov si, word [bp+010h] ; 8b 76 10 4638 add si, ax ; 01 c6 4639 mov word [bp-00eh], si ; 89 76 f2 4640 cmp ax, si ; 39 f0 4641 jbe short 03561h ; 76 02 4671 4642 db 0feh, 0c5h 4672 4643 ; inc ch ; fe c5 4673 mov al, b yte [bp-008h] ; 8a 46f84644 mov al, bh ; 88 f8 4674 4645 xor ah, ah ; 30 e4 4675 4646 mov CL, strict byte 009h ; b1 09 4676 mov bx, ax ; 89 c34677 sal bx, CL ; d3 e34678 dec bx ; 4b4679 mov ax, word [bp-0 14h] ; 8b 46 ec4680 add ax, bx ; 01 d84681 cmp ax, word [bp-0 14h] ; 3b 46 ec4682 jnc short 035 b8h ; 73 034683 jmp near 03 42ah ; e9 72fe4647 sal ax, CL ; d3 e0 4648 dec ax ; 48 4649 mov word [bp-008h], ax ; 89 46 f8 4650 mov ax, word [bp-00eh] ; 8b 46 f2 4651 add ax, word [bp-008h] ; 03 46 f8 4652 cmp ax, word [bp-00eh] ; 3b 46 f2 4653 jnc short 0357bh ; 73 03 4654 jmp near 033cfh ; e9 54 fe 4684 4655 mov AL, strict byte 006h ; b0 06 4685 4656 mov dx, strict word 0000ah ; ba 0a 00 … … 4688 4659 mov dx, strict word 0000ch ; ba 0c 00 4689 4660 out DX, AL ; ee 4690 mov al, byte [bp-0 14h] ; 8a 46 ec4661 mov al, byte [bp-00eh] ; 8a 46 f2 4691 4662 mov dx, strict word 00004h ; ba 04 00 4692 4663 out DX, AL ; ee 4693 mov al, byte [bp-0 13h] ; 8a 46 ed4664 mov al, byte [bp-00dh] ; 8a 46 f3 4694 4665 out DX, AL ; ee 4695 4666 xor al, al ; 30 c0 4696 4667 mov dx, strict word 0000ch ; ba 0c 00 4697 4668 out DX, AL ; ee 4698 mov al, b l ; 88 d84669 mov al, byte [bp-008h] ; 8a 46 f8 4699 4670 mov dx, strict word 00005h ; ba 05 00 4700 4671 out DX, AL ; ee 4701 mov al, b h ; 88 f84672 mov al, byte [bp-007h] ; 8a 46 f9 4702 4673 out DX, AL ; ee 4703 4674 mov AL, strict byte 04ah ; b0 4a … … 4710 4681 mov dx, strict word 0000ah ; ba 0a 00 4711 4682 out DX, AL ; ee 4712 mov bl, byte [bp-006h] ; 8a 5e fa4713 xor bh, bh ; 30 ff4714 mov ax, bx ; 89 d84715 call 02f adh ; e8 b3f94683 mov cl, bl ; 88 d9 4684 xor ch, ch ; 30 ed 4685 mov ax, cx ; 89 c8 4686 call 02f76h ; e8 b8 f9 4716 4687 mov AL, strict byte 0c5h ; b0 c5 4717 4688 mov dx, 003f5h ; ba f5 03 4718 4689 out DX, AL ; ee 4719 mov al, byte [bp-00 ch] ; 8a 46 f44690 mov al, byte [bp-006h] ; 8a 46 fa 4720 4691 xor ah, ah ; 30 e4 4721 4692 mov dx, ax ; 89 c2 … … 4726 4697 mov dx, 003f5h ; ba f5 03 4727 4698 out DX, AL ; ee 4728 mov al, byte [bp-00 ah] ; 8a 46 f64729 out DX, AL ; ee 4730 mov al, byte [bp-00 ch] ; 8a 46 f44731 out DX, AL ; ee 4732 mov al, byte [bp-00 eh] ; 8a 46 f24699 mov al, byte [bp-004h] ; 8a 46 fc 4700 out DX, AL ; ee 4701 mov al, byte [bp-006h] ; 8a 46 fa 4702 out DX, AL ; ee 4703 mov al, byte [bp-002h] ; 8a 46 fe 4733 4704 out DX, AL ; ee 4734 4705 mov AL, strict byte 002h ; b0 02 4735 4706 out DX, AL ; ee 4736 mov dl, byte [bp-00 eh] ; 8a 56 f24707 mov dl, byte [bp-002h] ; 8a 56 fe 4737 4708 xor dh, dh ; 30 f6 4738 mov al, b yte [bp-008h] ; 8a 46f84709 mov al, bh ; 88 f8 4739 4710 xor ah, ah ; 30 e4 4740 4711 add ax, dx ; 01 d0 … … 4746 4717 mov AL, strict byte 0ffh ; b0 ff 4747 4718 out DX, AL ; ee 4748 call 02 f20h ; e8 e4 f84719 call 02effh ; e8 00 f9 4749 4720 test al, al ; 84 c0 4750 jne short 036 43h ; 75 034751 jmp near 034 cah ; e9 87fe4721 jne short 03606h ; 75 03 4722 jmp near 03474h ; e9 6e fe 4752 4723 mov dx, 003f4h ; ba f4 03 4753 4724 in AL, DX ; ec … … 4756 4727 and AL, strict byte 0c0h ; 24 c0 4757 4728 cmp AL, strict byte 0c0h ; 3c c0 4758 je short 036 61h ; 74 124729 je short 03624h ; 74 12 4759 4730 mov ax, 00275h ; b8 75 02 4760 4731 push ax ; 50 … … 4763 4734 mov ax, strict word 00007h ; b8 07 00 4764 4735 push ax ; 50 4765 call 01976h ; e8 18e34736 call 01976h ; e8 55 e3 4766 4737 add sp, strict byte 00006h ; 83 c4 06 4767 xor si, si ; 31 f64768 jmp short 036 6ah ; eb 054769 cmp si, strict byte 00007h ; 83 fe074770 jnl short 036 83h ; 7d 194738 xor cx, cx ; 31 c9 4739 jmp short 0362dh ; eb 05 4740 cmp cx, strict byte 00007h ; 83 f9 07 4741 jnl short 03643h ; 7d 16 4771 4742 mov dx, 003f5h ; ba f5 03 4772 4743 in AL, DX ; ec 4773 4744 db 02ah, 0e4h 4774 4745 ; sub ah, ah ; 2a e4 4775 mov byte [bp+si-01ch], al ; 88 42 e4 4776 mov bl, al ; 88 c3 4777 xor bh, bh ; 30 ff 4778 lea dx, [si+042h] ; 8d 54 42 4746 mov si, cx ; 89 ce 4747 add si, strict byte 00042h ; 83 c6 42 4748 mov dx, strict word 00040h ; ba 40 00 4749 mov es, dx ; 8e c2 4750 mov byte [es:si], al ; 26 88 04 4751 inc cx ; 41 4752 jmp short 03628h ; eb e5 4753 mov si, strict word 00042h ; be 42 00 4779 4754 mov ax, strict word 00040h ; b8 40 00 4780 call 01660h ; e8 e0 df 4781 inc si ; 46 4782 jmp short 03665h ; eb e2 4783 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4784 jne short 0368ch ; 75 03 4785 jmp near 03565h ; e9 d9 fe 4786 test byte [bp-01bh], 002h ; f6 46 e5 02 4787 je short 0369eh ; 74 0c 4755 mov es, ax ; 8e c0 4756 mov al, byte [es:si] ; 26 8a 04 4757 test AL, strict byte 0c0h ; a8 c0 4758 jne short 03655h ; 75 03 4759 jmp near 0351fh ; e9 ca fe 4760 mov bx, strict word 00043h ; bb 43 00 4761 mov al, byte [es:bx] ; 26 8a 07 4762 test AL, strict byte 002h ; a8 02 4763 je short 03667h ; 74 08 4788 4764 mov word [bp+016h], 00300h ; c7 46 16 00 03 4789 or byte [bp+01ch], 001h ; 80 4e 1c 01 4790 jmp near 036bah ; e9 1c 00 4765 jmp near 03abdh ; e9 56 04 4791 4766 mov word [bp+016h], 00100h ; c7 46 16 00 01 4792 jmp short 03697h ; eb f24793 mov dl, byte [bp-00 ah] ; 8a 56 f64767 jmp near 03abdh ; e9 4e 04 4768 mov dl, byte [bp-004h] ; 8a 56 fc 4794 4769 xor dh, dh ; 30 f6 4795 mov al, b yte [bp-006h] ; 8a 46 fa4796 xor ah, ah ; 30 e4 4797 call 02e c9h ; e8 17f84770 mov al, bl ; 88 d8 4771 xor ah, ah ; 30 e4 4772 call 02eb0h ; e8 35 f8 4798 4773 and byte [bp+01ch], 0feh ; 80 66 1c fe 4799 4774 mov byte [bp+017h], 000h ; c6 46 17 00 4800 lea sp, [bp-004h] ; 8d 66 fc 4801 pop di ; 5f 4802 pop si ; 5e 4803 pop bp ; 5d 4804 retn ; c3 4805 mov al, byte [bp+016h] ; 8a 46 16 4806 mov byte [bp-008h], al ; 88 46 f8 4775 jmp near 032b7h ; e9 31 fc 4776 mov bh, byte [bp+016h] ; 8a 7e 16 4807 4777 mov al, byte [bp+015h] ; 8a 46 15 4808 4778 xor ah, ah ; 30 e4 4809 4779 mov dx, ax ; 89 c2 4810 mov byte [bp-00 ah], al ; 88 46 f64780 mov byte [bp-004h], al ; 88 46 fc 4811 4781 mov al, byte [bp+013h] ; 8a 46 13 4812 mov byte [bp-00 ch], al ; 88 46 f44782 mov byte [bp-006h], al ; 88 46 fa 4813 4783 mov bl, byte [bp+00eh] ; 8a 5e 0e 4814 mov byte [bp-006h], bl ; 88 5e fa4815 4784 cmp bl, 001h ; 80 fb 01 4816 jnbe short 036 f6h ; 77 144785 jnbe short 036b3h ; 77 12 4817 4786 cmp AL, strict byte 001h ; 3c 01 4818 jnbe short 036 f6h ; 77 104787 jnbe short 036b3h ; 77 0e 4819 4788 cmp dl, 04fh ; 80 fa 4f 4820 jnbe short 036f6h ; 77 0b 4821 mov al, byte [bp-008h] ; 8a 46 f8 4822 test al, al ; 84 c0 4823 je short 036f6h ; 74 04 4824 cmp AL, strict byte 012h ; 3c 12 4825 jbe short 0370bh ; 76 15 4789 jnbe short 036b3h ; 77 09 4790 test bh, bh ; 84 ff 4791 je short 036b3h ; 74 05 4792 cmp bh, 012h ; 80 ff 12 4793 jbe short 036ceh ; 76 1b 4826 4794 mov ax, word [bp+016h] ; 8b 46 16 4827 4795 xor ah, ah ; 30 e4 4828 4796 or ah, 001h ; 80 cc 01 4829 4797 mov word [bp+016h], ax ; 89 46 16 4830 mov ax, strict word 00001h ; b8 01 00 4831 call 02eb0h ; e8 a9 f7 4798 mov si, strict word 00041h ; be 41 00 4799 mov ax, strict word 00040h ; b8 40 00 4800 mov es, ax ; 8e c0 4801 mov byte [es:si], 001h ; 26 c6 04 01 4832 4802 or byte [bp+01ch], 001h ; 80 4e 1c 01 4833 mov al, b yte [bp-006h] ; 8a 46 fa4834 xor ah, ah ; 30 e4 4835 call 03 202h ; e8 effa4803 mov al, bl ; 88 d8 4804 xor ah, ah ; 30 e4 4805 call 031b1h ; e8 dc fa 4836 4806 test ax, ax ; 85 c0 4837 jne short 0371ah ; 75 03 4838 jmp near 032f2h ; e9 d8 fb 4839 mov dl, byte [bp-006h] ; 8a 56 fa 4840 xor dh, dh ; 30 f6 4841 mov ax, dx ; 89 d0 4842 call 03031h ; e8 0d f9 4807 jne short 036f3h ; 75 1a 4808 mov ax, word [bp+016h] ; 8b 46 16 4809 xor ah, ah ; 30 e4 4810 or ah, 080h ; 80 cc 80 4811 mov word [bp+016h], ax ; 89 46 16 4812 mov bx, strict word 00041h ; bb 41 00 4813 mov ax, strict word 00040h ; b8 40 00 4814 mov es, ax ; 8e c0 4815 mov byte [es:bx], 080h ; 26 c6 07 80 4816 jmp near 03abdh ; e9 ca 03 4817 mov cl, bl ; 88 d9 4818 xor ch, ch ; 30 ed 4819 mov ax, cx ; 89 c8 4820 call 02febh ; e8 ef f8 4843 4821 test ax, ax ; 85 c0 4844 jne short 037 34h ; 75 0c4845 mov ax, dx ; 89 d04846 call 03 108h ; e8 dbf94822 jne short 0370ch ; 75 0c 4823 mov ax, cx ; 89 c8 4824 call 030cah ; e8 c5 f9 4847 4825 test ax, ax ; 85 c0 4848 jne short 037 34h ; 75 034849 jmp near 033 dah ; e9 a6fc4826 jne short 0370ch ; 75 03 4827 jmp near 03373h ; e9 67 fc 4850 4828 mov CL, strict byte 00ch ; b1 0c 4851 4829 mov ax, word [bp+006h] ; 8b 46 06 … … 4855 4833 mov dx, word [bp+006h] ; 8b 56 06 4856 4834 sal dx, CL ; d3 e2 4857 mov bx, word [bp+010h] ; 8b 5e104858 add bx, dx ; 01 d34859 mov word [bp-0 14h], bx ; 89 5e ec4860 cmp dx, bx ; 39 da4861 jbe short 037 52h ; 76 024835 mov si, word [bp+010h] ; 8b 76 10 4836 add si, dx ; 01 d6 4837 mov word [bp-00eh], si ; 89 76 f2 4838 cmp dx, si ; 39 f2 4839 jbe short 0372ah ; 76 02 4862 4840 db 0feh, 0c5h 4863 4841 ; inc ch ; fe c5 4864 mov al, b yte [bp-008h] ; 8a 46f84865 xor ah, ah ; 30 e4 4866 mov bx, ax ; 89 c34867 sal bx, 1 ; d1 e34868 sal bx, 1 ; d1 e34869 dec bx ; 4b4870 mov ax, word [bp-0 14h] ; 8b 46 ec4871 add ax, bx ; 01 d84872 cmp ax, word [bp-0 14h] ; 3b 46 ec4873 jnc short 037 73h ; 73 0b4842 mov al, bh ; 88 f8 4843 xor ah, ah ; 30 e4 4844 sal ax, 1 ; d1 e0 4845 sal ax, 1 ; d1 e0 4846 dec ax ; 48 4847 mov word [bp-008h], ax ; 89 46 f8 4848 mov ax, word [bp-00eh] ; 8b 46 f2 4849 add ax, word [bp-008h] ; 03 46 f8 4850 cmp ax, word [bp-00eh] ; 3b 46 f2 4851 jnc short 0375bh ; 73 1a 4874 4852 mov ax, word [bp+016h] ; 8b 46 16 4875 4853 xor ah, ah ; 30 e4 4876 4854 or ah, 009h ; 80 cc 09 4877 jmp near 0342fh ; e9 bc fc 4855 mov word [bp+016h], ax ; 89 46 16 4856 mov bx, strict word 00041h ; bb 41 00 4857 mov ax, strict word 00040h ; b8 40 00 4858 mov es, ax ; 8e c0 4859 mov byte [es:bx], 009h ; 26 c6 07 09 4860 jmp near 033e2h ; e9 87 fc 4878 4861 mov AL, strict byte 006h ; b0 06 4879 4862 mov dx, strict word 0000ah ; ba 0a 00 … … 4882 4865 mov dx, strict word 0000ch ; ba 0c 00 4883 4866 out DX, AL ; ee 4884 mov al, byte [bp-0 14h] ; 8a 46 ec4867 mov al, byte [bp-00eh] ; 8a 46 f2 4885 4868 mov dx, strict word 00004h ; ba 04 00 4886 4869 out DX, AL ; ee 4887 mov al, byte [bp-0 13h] ; 8a 46 ed4870 mov al, byte [bp-00dh] ; 8a 46 f3 4888 4871 out DX, AL ; ee 4889 4872 xor al, al ; 30 c0 4890 4873 mov dx, strict word 0000ch ; ba 0c 00 4891 4874 out DX, AL ; ee 4892 mov al, b l ; 88 d84875 mov al, byte [bp-008h] ; 8a 46 f8 4893 4876 mov dx, strict word 00005h ; ba 05 00 4894 4877 out DX, AL ; ee 4895 mov al, b h ; 88 f84878 mov al, byte [bp-007h] ; 8a 46 f9 4896 4879 out DX, AL ; ee 4897 4880 mov AL, strict byte 04ah ; b0 4a … … 4904 4887 mov dx, strict word 0000ah ; ba 0a 00 4905 4888 out DX, AL ; ee 4906 mov bl, byte [bp-006h] ; 8a 5e fa4907 xor bh, bh ; 30 ff4908 mov ax, bx ; 89 d84909 call 02f adh ; e8 f8 f74889 mov cl, bl ; 88 d9 4890 xor ch, ch ; 30 ed 4891 mov ax, cx ; 89 c8 4892 call 02f76h ; e8 d8 f7 4910 4893 mov AL, strict byte 00fh ; b0 0f 4911 4894 mov dx, 003f5h ; ba f5 03 4912 4895 out DX, AL ; ee 4896 mov al, byte [bp-006h] ; 8a 46 fa 4897 xor ah, ah ; 30 e4 4898 mov dx, ax ; 89 c2 4899 sal dx, 1 ; d1 e2 4900 sal dx, 1 ; d1 e2 4901 mov al, bl ; 88 d8 4902 or dx, ax ; 09 c2 4903 mov word [bp-00ch], dx ; 89 56 f4 4913 4904 mov al, byte [bp-00ch] ; 8a 46 f4 4914 xor ah, ah ; 30 e4 4915 sal ax, 1 ; d1 e0 4916 sal ax, 1 ; d1 e0 4917 mov cl, bl ; 88 d9 4918 xor ch, ch ; 30 ed 4919 or cx, ax ; 09 c1 4920 mov al, cl ; 88 c8 4921 out DX, AL ; ee 4922 mov al, byte [bp-00ah] ; 8a 46 f6 4905 mov dx, 003f5h ; ba f5 03 4906 out DX, AL ; ee 4907 mov al, byte [bp-004h] ; 8a 46 fc 4923 4908 out DX, AL ; ee 4924 4909 mov AL, strict byte 04dh ; b0 4d 4925 4910 out DX, AL ; ee 4926 mov al, cl ; 88 c84911 mov al, byte [bp-00ch] ; 8a 46 f4 4927 4912 out DX, AL ; ee 4928 4913 mov AL, strict byte 002h ; b0 02 4929 4914 out DX, AL ; ee 4930 mov al, b yte [bp-008h] ; 8a 46f84931 out DX, AL ; ee 4932 xor al, al ; 30 c04915 mov al, bh ; 88 f8 4916 out DX, AL ; ee 4917 xor al, bh ; 30 f8 4933 4918 out DX, AL ; ee 4934 4919 mov AL, strict byte 0f6h ; b0 f6 4935 4920 out DX, AL ; ee 4936 call 02 f20h ; e8 39f74921 call 02effh ; e8 28 f7 4937 4922 test al, al ; 84 c0 4938 jne short 037 f3h ; 75 084939 mov ax, bx ; 89 d84940 call 02f 67h ; e8 77 f74941 jmp near 03 2f2h ; e9 ff fa4923 jne short 037e3h ; 75 08 4924 mov ax, cx ; 89 c8 4925 call 02f37h ; e8 57 f7 4926 jmp near 036d9h ; e9 f6 fe 4942 4927 mov dx, 003f4h ; ba f4 03 4943 4928 in AL, DX ; ec … … 4946 4931 and AL, strict byte 0c0h ; 24 c0 4947 4932 cmp AL, strict byte 0c0h ; 3c c0 4948 je short 038 11h ; 74 124933 je short 03801h ; 74 12 4949 4934 mov ax, 00275h ; b8 75 02 4950 4935 push ax ; 50 … … 4953 4938 mov ax, strict word 00007h ; b8 07 00 4954 4939 push ax ; 50 4955 call 01976h ; e8 68 e14940 call 01976h ; e8 78 e1 4956 4941 add sp, strict byte 00006h ; 83 c4 06 4957 xor si, si ; 31 f64958 jmp short 038 1ah ; eb 054959 cmp si, strict byte 00007h ; 83 fe074960 jnl short 038 33h ; 7d 194942 xor cx, cx ; 31 c9 4943 jmp short 0380ah ; eb 05 4944 cmp cx, strict byte 00007h ; 83 f9 07 4945 jnl short 03820h ; 7d 16 4961 4946 mov dx, 003f5h ; ba f5 03 4962 4947 in AL, DX ; ec 4963 4948 db 02ah, 0e4h 4964 4949 ; sub ah, ah ; 2a e4 4965 mov byte [bp+si-01ch], al ; 88 42 e4 4966 mov bl, al ; 88 c3 4967 xor bh, bh ; 30 ff 4968 lea dx, [si+042h] ; 8d 54 42 4950 mov si, cx ; 89 ce 4951 add si, strict byte 00042h ; 83 c6 42 4952 mov dx, strict word 00040h ; ba 40 00 4953 mov es, dx ; 8e c2 4954 mov byte [es:si], al ; 26 88 04 4955 inc cx ; 41 4956 jmp short 03805h ; eb e5 4957 mov si, strict word 00042h ; be 42 00 4969 4958 mov ax, strict word 00040h ; b8 40 00 4970 call 01660h ; e8 30 de 4971 inc si ; 46 4972 jmp short 03815h ; eb e2 4973 test byte [bp-01ch], 0c0h ; f6 46 e4 c0 4974 je short 03854h ; 74 1b 4975 test byte [bp-01bh], 002h ; f6 46 e5 02 4976 je short 03842h ; 74 03 4977 jmp near 03692h ; e9 50 fe 4959 mov es, ax ; 8e c0 4960 mov al, byte [es:si] ; 26 8a 04 4961 test AL, strict byte 0c0h ; a8 c0 4962 je short 0384eh ; 74 1f 4963 mov si, strict word 00043h ; be 43 00 4964 mov al, byte [es:si] ; 26 8a 04 4965 test AL, strict byte 002h ; a8 02 4966 je short 0383ch ; 74 03 4967 jmp near 0365fh ; e9 23 fe 4978 4968 mov ax, 00275h ; b8 75 02 4979 4969 push ax ; 50 … … 4982 4972 mov ax, strict word 00007h ; b8 07 00 4983 4973 push ax ; 50 4984 call 01976h ; e8 2 5e14974 call 01976h ; e8 2b e1 4985 4975 add sp, strict byte 00006h ; 83 c4 06 4986 xor al, al ; 30 c0 4987 mov byte [bp+017h], al ; 88 46 17 4988 xor ah, ah ; 30 e4 4989 call 02eb0h ; e8 52 f6 4990 mov al, byte [bp-006h] ; 8a 46 fa 4976 mov byte [bp+017h], 000h ; c6 46 17 00 4977 mov si, strict word 00041h ; be 41 00 4978 mov ax, strict word 00040h ; b8 40 00 4979 mov es, ax ; 8e c0 4980 mov byte [es:si], 000h ; 26 c6 04 00 4981 mov al, bl ; 88 d8 4991 4982 xor ah, ah ; 30 e4 4992 4983 xor dx, dx ; 31 d2 4993 call 02e c9h ; e8 61f64994 jmp near 03 a41h ; e9 d6 014995 mov b yte [bp-006h], al ; 88 46 fa4996 cmp AL, strict byte 001h ; 3c014997 jbe short 0389 ah ; 76 284984 call 02eb0h ; e8 49 f6 4985 jmp near 0352fh ; e9 c5 fc 4986 mov bl, dl ; 88 d3 4987 cmp dl, 001h ; 80 fa 01 4988 jbe short 03897h ; 76 26 4998 4989 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 4999 4990 mov word [bp+010h], strict word 00000h ; c7 46 10 00 00 … … 5002 4993 mov word [bp+006h], strict word 00000h ; c7 46 06 00 00 5003 4994 mov word [bp+008h], strict word 00000h ; c7 46 08 00 00 5004 mov al, ah ; 88 e0 5005 xor ah, ah ; 30 e4 5006 mov word [bp+012h], ax ; 89 46 12 5007 jmp near 039bch ; e9 22 01 4995 mov dl, bh ; 88 fa 4996 mov word [bp+012h], dx ; 89 56 12 4997 jmp near 039bch ; e9 25 01 5008 4998 mov ax, strict word 00010h ; b8 10 00 5009 call 016aeh ; e8 0ede5010 mov ch, al ; 88 c55011 xor ah, ah ; 30 e44999 call 016aeh ; e8 11 de 5000 mov dl, al ; 88 c2 5001 xor bh, bh ; 30 ff 5012 5002 test AL, strict byte 0f0h ; a8 f0 5013 je short 038a ah ; 74 025014 mov AH, strict byte 001h ; b4015015 test ch, 00fh ; f6 c50f5016 je short 038 b1h ; 74 025017 db 0feh, 0c 4h5018 ; inc ah ; fe c45019 cmp byte [bp-006h], 000h ; 80 7e fa 005020 jne short 038b dh ; 75 065003 je short 038a7h ; 74 02 5004 mov BH, strict byte 001h ; b7 01 5005 test dl, 00fh ; f6 c2 0f 5006 je short 038aeh ; 74 02 5007 db 0feh, 0c7h 5008 ; inc bh ; fe c7 5009 test bl, bl ; 84 db 5010 jne short 038b8h ; 75 06 5021 5011 mov CL, strict byte 004h ; b1 04 5022 shr ch, CL ; d2 ed5023 jmp short 038 c0h ; eb 035024 and ch, 00fh ; 80 e50f5012 shr dl, CL ; d2 ea 5013 jmp short 038bbh ; eb 03 5014 and dl, 00fh ; 80 e2 0f 5025 5015 mov byte [bp+011h], 000h ; c6 46 11 00 5026 mov dl, ch ; 88 ea 5027 xor dh, dh ; 30 f6 5028 mov word [bp+010h], dx ; 89 56 10 5029 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 5030 mov dx, word [bp+012h] ; 8b 56 12 5031 mov dl, ah ; 88 e2 5032 mov word [bp+012h], dx ; 89 56 12 5033 mov ax, dx ; 89 d0 5034 xor ah, dh ; 30 f4 5016 mov al, dl ; 88 d0 5017 xor ah, ah ; 30 e4 5018 mov word [bp+010h], ax ; 89 46 10 5019 xor al, dl ; 30 d0 5020 mov word [bp+016h], ax ; 89 46 16 5021 mov cx, word [bp+012h] ; 8b 4e 12 5022 mov cl, bh ; 88 f9 5023 mov word [bp+012h], cx ; 89 4e 12 5024 mov ax, cx ; 89 c8 5025 xor ah, ch ; 30 ec 5035 5026 or ah, 001h ; 80 cc 01 5036 5027 mov word [bp+012h], ax ; 89 46 12 5037 cmp ch, 003h ; 80 fd035038 jc short 038f ch ; 72 155039 jbe short 039 23h ; 76 3a5040 cmp ch, 005h ; 80 fd055041 jc short 0392 ah ; 72 3c5042 jbe short 039 31h ; 76 415043 cmp ch, 00fh ; 80 fd0f5044 je short 0393 fh ; 74 4a5045 cmp ch, 00eh ; 80 fd0e5046 je short 0393 8h ; 74 3e5047 jmp short 0394 6h ; eb 4a5048 cmp ch, 002h ; 80 fd025049 je short 0391 ch ; 74 1b5050 cmp ch, 001h ; 80 fd015051 je short 0391 5h ; 74 0f5052 test ch, ch ; 84 ed5053 jne short 0394 6h ; 75 3c5028 cmp dl, 003h ; 80 fa 03 5029 jc short 038f7h ; 72 15 5030 jbe short 0391eh ; 76 3a 5031 cmp dl, 005h ; 80 fa 05 5032 jc short 03925h ; 72 3c 5033 jbe short 0392ch ; 76 41 5034 cmp dl, 00fh ; 80 fa 0f 5035 je short 0393ah ; 74 4a 5036 cmp dl, 00eh ; 80 fa 0e 5037 je short 03933h ; 74 3e 5038 jmp short 03941h ; eb 4a 5039 cmp dl, 002h ; 80 fa 02 5040 je short 03917h ; 74 1b 5041 cmp dl, 001h ; 80 fa 01 5042 je short 03910h ; 74 0f 5043 test dl, dl ; 84 d2 5044 jne short 03941h ; 75 3c 5054 5045 mov word [bp+014h], strict word 00000h ; c7 46 14 00 00 5055 5046 mov byte [bp+013h], 000h ; c6 46 13 00 5056 jmp short 0395 8h ; eb 435047 jmp short 03953h ; eb 43 5057 5048 mov word [bp+014h], 02709h ; c7 46 14 09 27 5058 jmp short 0395 8h ; eb 3c5049 jmp short 03953h ; eb 3c 5059 5050 mov word [bp+014h], 04f0fh ; c7 46 14 0f 4f 5060 jmp short 0395 8h ; eb 355051 jmp short 03953h ; eb 35 5061 5052 mov word [bp+014h], 04f09h ; c7 46 14 09 4f 5062 jmp short 0395 8h ; eb 2e5053 jmp short 03953h ; eb 2e 5063 5054 mov word [bp+014h], 04f12h ; c7 46 14 12 4f 5064 jmp short 0395 8h ; eb 275055 jmp short 03953h ; eb 27 5065 5056 mov word [bp+014h], 04f24h ; c7 46 14 24 4f 5066 jmp short 0395 8h ; eb 205057 jmp short 03953h ; eb 20 5067 5058 mov word [bp+014h], 0fe3fh ; c7 46 14 3f fe 5068 jmp short 0395 8h ; eb 195059 jmp short 03953h ; eb 19 5069 5060 mov word [bp+014h], 0feffh ; c7 46 14 ff fe 5070 jmp short 0395 8h ; eb 125061 jmp short 03953h ; eb 12 5071 5062 mov ax, 00275h ; b8 75 02 5072 5063 push ax ; 50 … … 5075 5066 mov ax, strict word 00007h ; b8 07 00 5076 5067 push ax ; 50 5077 call 01976h ; e8 2 1e05068 call 01976h ; e8 26 e0 5078 5069 add sp, strict byte 00006h ; 83 c4 06 5079 5070 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5080 mov al, ch ; 88 e85081 xor ah, ah ; 30 e4 5082 call 03b d1h ; e8 6d025071 mov al, dl ; 88 d0 5072 xor ah, ah ; 30 e4 5073 call 03bf8h ; e8 99 02 5083 5074 mov word [bp+008h], ax ; 89 46 08 5084 jmp near 03 a41h ; e9 d7 005085 mov b yte [bp-006h], al ; 88 46 fa5086 cmp AL, strict byte 001h ; 3c015087 jbe short 0397 6h ; 76 055088 mov word [bp+016h], si ; 89 76165089 jmp short 039bch ; eb 4 65075 jmp near 0352fh ; e9 ca fb 5076 mov bl, dl ; 88 d3 5077 cmp dl, 001h ; 80 fa 01 5078 jbe short 03971h ; 76 05 5079 mov word [bp+016h], cx ; 89 4e 16 5080 jmp short 039bch ; eb 4b 5090 5081 mov ax, strict word 00010h ; b8 10 00 5091 call 016aeh ; e8 3 2dd5092 cmp byte [bp-006h], 000h ; 80 7e fa 005093 jne short 0398 ah ; 75 085082 call 016aeh ; e8 37 dd 5083 test bl, bl ; 84 db 5084 jne short 03983h ; 75 08 5094 5085 mov CL, strict byte 004h ; b1 04 5095 mov ch, al ; 88 c55096 shr ch, CL ; d2 ed5097 jmp short 0398 fh ; eb 055098 mov ch, al ; 88 c55099 and ch, 00fh ; 80 e50f5086 mov dl, al ; 88 c2 5087 shr dl, CL ; d2 ea 5088 jmp short 03988h ; eb 05 5089 mov dl, al ; 88 c2 5090 and dl, 00fh ; 80 e2 0f 5100 5091 and byte [bp+01ch], 0feh ; 80 66 1c fe 5101 5092 mov ax, word [bp+016h] ; 8b 46 16 5102 5093 xor ah, ah ; 30 e4 5103 test ch, ch ; 84 ed5104 je short 039a 9h ; 74 0d5105 cmp ch, 001h ; 80 fd015106 jbe short 039 a6h ; 76 055094 test dl, dl ; 84 d2 5095 je short 039a2h ; 74 0d 5096 cmp dl, 001h ; 80 fa 01 5097 jbe short 0399fh ; 76 05 5107 5098 or ah, 002h ; 80 cc 02 5108 jmp short 039a 9h ; eb 035099 jmp short 039a2h ; eb 03 5109 5100 or ah, 001h ; 80 cc 01 5110 5101 mov word [bp+016h], ax ; 89 46 16 5111 jmp near 03 6bah ; e9 0b fd5112 cmp AL, strict byte 001h ; 3c015113 jbe short 039c2h ; 76 0f5102 jmp near 032b7h ; e9 0f f9 5103 cmp dl, 001h ; 80 fa 01 5104 jbe short 039c2h ; 76 15 5114 5105 mov word [bp+016h], si ; 89 76 16 5115 mov ax, strict word 00001h ; b8 01 00 5116 call 02eb0h ; e8 f4 f4 5117 mov word [bp+01ch], dx ; 89 56 1c 5118 jmp near 036bah ; e9 f8 fc 5106 mov bx, strict word 00041h ; bb 41 00 5107 mov dx, strict word 00040h ; ba 40 00 5108 mov es, dx ; 8e c2 5109 mov byte [es:bx], 001h ; 26 c6 07 01 5110 mov word [bp+01ch], ax ; 89 46 1c 5111 jmp near 032b7h ; e9 f5 f8 5119 5112 mov ax, word [bp+016h] ; 8b 46 16 5120 5113 xor ah, ah ; 30 e4 5121 5114 or ah, 006h ; 80 cc 06 5122 5115 mov word [bp+016h], ax ; 89 46 16 5123 mov ax, strict word 00006h ; b8 06 00 5124 jmp near 032beh ; e9 eb f8 5125 mov byte [bp-006h], al ; 88 46 fa 5126 mov bl, ch ; 88 eb 5127 cmp AL, strict byte 001h ; 3c 01 5128 jnbe short 039b3h ; 77 d7 5129 mov al, byte [bp-006h] ; 8a 46 fa 5130 xor ah, ah ; 30 e4 5131 call 03202h ; e8 1e f8 5116 mov bx, strict word 00041h ; bb 41 00 5117 mov ax, strict word 00040h ; b8 40 00 5118 mov es, ax ; 8e c0 5119 mov byte [es:bx], 006h ; 26 c6 07 06 5120 jmp near 03abdh ; e9 e1 00 5121 mov bl, dl ; 88 d3 5122 mov cl, byte [bp+016h] ; 8a 4e 16 5123 cmp dl, 001h ; 80 fa 01 5124 jnbe short 039adh ; 77 c7 5125 mov al, bl ; 88 d8 5126 xor ah, ah ; 30 e4 5127 call 031b1h ; e8 c4 f7 5132 5128 test ax, ax ; 85 c0 5133 jne short 039 ebh ; 75 035134 jmp near 03 2f2h ; e9 07 f95135 cmp byte [bp-006h], 000h ; 80 7e fa 005136 je short 039f 6h ; 74 055137 mov dx, 00091h ; ba91 005138 jmp short 03 9f9h ; eb 035139 mov dx, 00090h ; ba90 005140 mov word [bp-0 14h], dx ; 89 56 ec5129 jne short 039f4h ; 75 03 5130 jmp near 036d9h ; e9 e5 fc 5131 test bl, bl ; 84 db 5132 je short 039fdh ; 74 05 5133 mov bx, 00091h ; bb 91 00 5134 jmp short 03a00h ; eb 03 5135 mov bx, 00090h ; bb 90 00 5136 mov word [bp-00eh], bx ; 89 5e f2 5141 5137 mov ax, strict word 00040h ; b8 40 00 5142 call 01652h ; e8 50 dc 5143 and AL, strict byte 00fh ; 24 0f 5144 cmp bl, 002h ; 80 fb 02 5145 jc short 03a18h ; 72 0f 5146 jbe short 03a24h ; 76 19 5147 cmp bl, 004h ; 80 fb 04 5148 je short 03a20h ; 74 10 5149 cmp bl, 003h ; 80 fb 03 5150 je short 03a28h ; 74 13 5151 jmp near 032b0h ; e9 98 f8 5152 cmp bl, 001h ; 80 fb 01 5153 je short 03a20h ; 74 03 5154 jmp near 032b0h ; e9 90 f8 5155 or AL, strict byte 090h ; 0c 90 5156 jmp short 03a2ah ; eb 06 5157 or AL, strict byte 070h ; 0c 70 5158 jmp short 03a2ah ; eb 02 5159 or AL, strict byte 010h ; 0c 10 5160 mov bl, al ; 88 c3 5161 xor bh, bh ; 30 ff 5162 mov dx, word [bp-014h] ; 8b 56 ec 5138 mov es, ax ; 8e c0 5139 mov bl, byte [es:bx] ; 26 8a 1f 5140 and bl, 00fh ; 80 e3 0f 5141 cmp cl, 002h ; 80 f9 02 5142 jc short 03a22h ; 72 0f 5143 jbe short 03a2fh ; 76 1a 5144 cmp cl, 004h ; 80 f9 04 5145 je short 03a2ah ; 74 10 5146 cmp cl, 003h ; 80 f9 03 5147 je short 03a34h ; 74 15 5148 jmp near 03241h ; e9 1f f8 5149 cmp cl, 001h ; 80 f9 01 5150 je short 03a2ah ; 74 03 5151 jmp near 03241h ; e9 17 f8 5152 or bl, 090h ; 80 cb 90 5153 jmp short 03a37h ; eb 08 5154 or bl, 070h ; 80 cb 70 5155 jmp short 03a37h ; eb 03 5156 or bl, 010h ; 80 cb 10 5163 5157 mov ax, strict word 00040h ; b8 40 00 5164 call 01660h ; e8 29 dc 5158 mov es, ax ; 8e c0 5159 mov si, word [bp-00eh] ; 8b 76 f2 5160 mov byte [es:si], bl ; 26 88 1c 5165 5161 xor al, al ; 30 c0 5166 5162 mov byte [bp+017h], al ; 88 46 17 5167 xor ah, ah ; 30 e45168 call 02eb0h ; e8 6f f45169 and byte [bp+01ch], 0feh ; 80 66 1c fe5170 jmp near 036bah ; e9 72 fc5171 mov byte [bp-006h], al ; 88 46 fa5172 mov ah, byte [bp+014h] ; 8a 66 145173 and ah, 03fh ; 80 e43f5174 mov byte [bp-00 8h], ah ; 88 66 f85175 mov b l, byte [bp-010h] ; 8a 5e f05163 mov bx, strict word 00041h ; bb 41 00 5164 mov byte [es:bx], al ; 26 88 07 5165 jmp near 0352fh ; e9 df fa 5166 mov bl, dl ; 88 d3 5167 mov cl, byte [bp+014h] ; 8a 4e 14 5168 mov bh, cl ; 88 cf 5169 and bh, 03fh ; 80 e7 3f 5170 mov byte [bp-00ah], cl ; 88 4e f6 5171 mov byte [bp-009h], dh ; 88 76 f7 5176 5172 mov CL, strict byte 006h ; b1 06 5177 sar bx, CL ; d3 fb 5178 mov bh, bl ; 88 df 5179 xor bl, bl ; 30 db 5180 add bx, word [bp-012h] ; 03 5e ee 5181 mov byte [bp-00ah], bl ; 88 5e f6 5182 cmp AL, strict byte 001h ; 3c 01 5183 jbe short 03a6ch ; 76 03 5184 jmp near 039b3h ; e9 47 ff 5185 mov al, byte [bp-006h] ; 8a 46 fa 5186 xor ah, ah ; 30 e4 5187 call 03202h ; e8 8e f7 5173 mov di, word [bp-00ah] ; 8b 7e f6 5174 sar di, CL ; d3 ff 5175 mov cx, di ; 89 f9 5176 mov byte [bp-009h], cl ; 88 4e f7 5177 mov byte [bp-00ah], dh ; 88 76 f6 5178 mov cl, byte [bp+015h] ; 8a 4e 15 5179 xor ch, ch ; 30 ed 5180 add cx, word [bp-00ah] ; 03 4e f6 5181 mov byte [bp-004h], cl ; 88 4e fc 5182 cmp dl, 001h ; 80 fa 01 5183 jbe short 03a82h ; 76 03 5184 jmp near 039adh ; e9 2b ff 5185 mov al, bl ; 88 d8 5186 xor ah, ah ; 30 e4 5187 call 031b1h ; e8 28 f7 5188 5188 test ax, ax ; 85 c0 5189 jne short 03a 7bh ; 75 035190 jmp near 03 2f2h ; e9 77 f85191 mov dl, byte [bp-006h] ; 8a 56 fa5192 xor dh, dh ; 30 f65193 mov ax, dx ; 89 d05194 call 0 3031h ; e8 acf55189 jne short 03a90h ; 75 03 5190 jmp near 036d9h ; e9 49 fc 5191 mov cl, bl ; 88 d9 5192 xor ch, ch ; 30 ed 5193 mov ax, cx ; 89 c8 5194 call 02febh ; e8 52 f5 5195 5195 test ax, ax ; 85 c0 5196 jne short 03a a3h ; 75 1a5197 mov ax, dx ; 89 d05198 call 03 108h ; e8 7af65196 jne short 03ac4h ; 75 27 5197 mov ax, cx ; 89 c8 5198 call 030cah ; e8 28 f6 5199 5199 test ax, ax ; 85 c0 5200 jne short 03a a3h ; 75 115200 jne short 03ac4h ; 75 1e 5201 5201 mov ax, word [bp+016h] ; 8b 46 16 5202 5202 xor ah, ah ; 30 e4 5203 5203 or ah, 00ch ; 80 cc 0c 5204 5204 mov word [bp+016h], ax ; 89 46 16 5205 mov ax, strict word 0000ch ; b8 0c 00 5206 jmp near 032beh ; e9 1b f8 5205 mov bx, strict word 00041h ; bb 41 00 5206 mov ax, strict word 00040h ; b8 40 00 5207 mov es, ax ; 8e c0 5208 mov byte [es:bx], 00ch ; 26 c6 07 0c 5209 or byte [bp+01ch], 001h ; 80 4e 1c 01 5210 jmp near 032b7h ; e9 f3 f7 5207 5211 mov ax, strict word 00010h ; b8 10 00 5208 call 016aeh ; e8 05 dc5209 cmp byte [bp-006h], 000h ; 80 7e fa 005210 jne short 03a b7h ; 75 085212 call 016aeh ; e8 e4 db 5213 test bl, bl ; 84 db 5214 jne short 03ad6h ; 75 08 5211 5215 mov CL, strict byte 004h ; b1 04 5212 mov ch, al ; 88 c55213 shr ch, CL ; d2 ed5214 jmp short 03a bch ; eb 055215 mov ch, al ; 88 c55216 and ch, 00fh ; 80 e50f5217 cmp byte [bp-006h], 000h ; 80 7e fa 005218 je short 03a c7h ; 74 055219 mov dx, 00091h ; ba91 005220 jmp short 03a cah ; eb 035221 mov dx, 00090h ; ba90 005222 mov word [bp-0 14h], dx ; 89 56 ec5216 mov dl, al ; 88 c2 5217 shr dl, CL ; d2 ea 5218 jmp short 03adbh ; eb 05 5219 mov dl, al ; 88 c2 5220 and dl, 00fh ; 80 e2 0f 5221 test bl, bl ; 84 db 5222 je short 03ae4h ; 74 05 5223 mov si, 00091h ; be 91 00 5224 jmp short 03ae7h ; eb 03 5225 mov si, 00090h ; be 90 00 5226 mov word [bp-00eh], si ; 89 76 f2 5223 5227 mov ax, strict word 00040h ; b8 40 00 5224 call 01652h ; e8 7f db 5225 and AL, strict byte 00fh ; 24 0f 5226 cmp ch, 003h ; 80 fd 03 5227 jc short 03af6h ; 72 1c 5228 mov ah, al ; 88 c4 5229 or ah, 090h ; 80 cc 90 5230 cmp ch, 003h ; 80 fd 03 5231 jbe short 03b32h ; 76 4e 5232 mov dl, al ; 88 c2 5233 or dl, 010h ; 80 ca 10 5234 cmp ch, 005h ; 80 fd 05 5235 je short 03b30h ; 74 42 5236 cmp ch, 004h ; 80 fd 04 5237 je short 03b40h ; 74 4d 5238 jmp near 03b7ch ; e9 86 00 5239 cmp ch, 002h ; 80 fd 02 5240 je short 03b10h ; 74 15 5241 cmp ch, 001h ; 80 fd 01 5242 jne short 03b44h ; 75 44 5243 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5244 jne short 03b44h ; 75 3e 5245 cmp byte [bp-008h], 009h ; 80 7e f8 09 5246 jne short 03b5ch ; 75 50 5228 mov es, ax ; 8e c0 5229 mov bl, byte [es:si] ; 26 8a 1c 5230 and bl, 00fh ; 80 e3 0f 5231 cmp dl, 003h ; 80 fa 03 5232 jc short 03b15h ; 72 1b 5233 mov al, bl ; 88 d8 5247 5234 or AL, strict byte 090h ; 0c 90 5248 jmp short 03b5ch ; eb 4c 5249 cmp byte [bp-00ah], 027h ; 80 7e f6 27 5250 jne short 03b20h ; 75 0a 5251 cmp byte [bp-008h], 009h ; 80 7e f8 09 5252 jne short 03b20h ; 75 04 5253 or AL, strict byte 070h ; 0c 70 5254 jmp short 03b5ch ; eb 3c 5255 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5256 jne short 03b5ch ; 75 36 5257 cmp byte [bp-008h], 00fh ; 80 7e f8 0f 5258 jne short 03b7ch ; 75 50 5259 or AL, strict byte 010h ; 0c 10 5260 jmp short 03b7ch ; eb 4c 5261 jmp short 03b5eh ; eb 2c 5262 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5263 jne short 03b7ch ; 75 44 5264 cmp byte [bp-008h], 009h ; 80 7e f8 09 5265 je short 03b42h ; 74 04 5266 jmp short 03b7ch ; eb 3c 5267 jmp short 03b46h ; eb 04 5268 mov al, ah ; 88 e0 5269 jmp short 03b7ch ; eb 36 5270 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5271 jne short 03b7ch ; 75 30 5272 cmp byte [bp-008h], 009h ; 80 7e f8 09 5273 jne short 03b54h ; 75 02 5274 jmp short 03b42h ; eb ee 5275 cmp byte [bp-008h], 012h ; 80 7e f8 12 5276 jne short 03b7ch ; 75 22 5235 cmp dl, 003h ; 80 fa 03 5236 jbe short 03b51h ; 76 4e 5237 mov ah, bl ; 88 dc 5238 or ah, 010h ; 80 cc 10 5239 cmp dl, 005h ; 80 fa 05 5240 je short 03b4fh ; 74 42 5241 cmp dl, 004h ; 80 fa 04 5242 je short 03b5eh ; 74 4c 5243 jmp near 03b96h ; e9 81 00 5244 cmp dl, 002h ; 80 fa 02 5245 je short 03b2fh ; 74 15 5246 cmp dl, 001h ; 80 fa 01 5247 jne short 03b62h ; 75 43 5248 cmp byte [bp-004h], 027h ; 80 7e fc 27 5249 jne short 03b62h ; 75 3d 5250 cmp bh, 009h ; 80 ff 09 5251 jne short 03b78h ; 75 4e 5252 or bl, 090h ; 80 cb 90 5253 jmp short 03b78h ; eb 49 5254 cmp byte [bp-004h], 027h ; 80 7e fc 27 5255 jne short 03b3fh ; 75 0a 5256 cmp bh, 009h ; 80 ff 09 5257 jne short 03b3fh ; 75 05 5258 or bl, 070h ; 80 cb 70 5259 jmp short 03b78h ; eb 39 5260 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5261 jne short 03b96h ; 75 51 5262 cmp bh, 00fh ; 80 ff 0f 5263 jne short 03b96h ; 75 4c 5264 or bl, 010h ; 80 cb 10 5265 jmp short 03b96h ; eb 47 5266 jmp short 03b7ah ; eb 29 5267 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5268 jne short 03b96h ; 75 3f 5269 cmp bh, 009h ; 80 ff 09 5270 je short 03b60h ; 74 04 5271 jmp short 03b96h ; eb 38 5272 jmp short 03b64h ; eb 04 5273 mov bl, al ; 88 c3 5274 jmp short 03b96h ; eb 32 5275 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5276 jne short 03b96h ; 75 2c 5277 cmp bh, 009h ; 80 ff 09 5278 jne short 03b71h ; 75 02 5279 jmp short 03b60h ; eb ef 5280 cmp bh, 012h ; 80 ff 12 5281 jne short 03b96h ; 75 20 5282 mov bl, ah ; 88 e3 5283 jmp short 03b96h ; eb 1c 5284 cmp byte [bp-004h], 04fh ; 80 7e fc 4f 5285 jne short 03b96h ; 75 16 5286 cmp bh, 009h ; 80 ff 09 5287 jne short 03b87h ; 75 02 5288 jmp short 03b60h ; eb d9 5289 cmp bh, 012h ; 80 ff 12 5290 jne short 03b8eh ; 75 02 5291 jmp short 03b76h ; eb e8 5292 cmp bh, 024h ; 80 ff 24 5293 jne short 03b96h ; 75 03 5294 or bl, 0d0h ; 80 cb d0 5295 mov al, bl ; 88 d8 5296 xor ah, ah ; 30 e4 5297 mov CL, strict byte 004h ; b1 04 5298 sar ax, CL ; d3 f8 5299 test AL, strict byte 001h ; a8 01 5300 jne short 03ba5h ; 75 03 5301 jmp near 03aa6h ; e9 01 ff 5302 mov ax, strict word 00040h ; b8 40 00 5303 mov es, ax ; 8e c0 5304 mov si, word [bp-00eh] ; 8b 76 f2 5305 mov byte [es:si], bl ; 26 88 1c 5306 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5277 5307 mov al, dl ; 88 d0 5278 jmp short 03b7ch ; eb 1e 5279 cmp byte [bp-00ah], 04fh ; 80 7e f6 4f 5280 jne short 03b7ch ; 75 18 5281 cmp byte [bp-008h], 009h ; 80 7e f8 09 5282 jne short 03b6ch ; 75 02 5283 jmp short 03b42h ; eb d6 5284 cmp byte [bp-008h], 012h ; 80 7e f8 12 5285 jne short 03b74h ; 75 02 5286 jmp short 03b5ah ; eb e6 5287 cmp byte [bp-008h], 024h ; 80 7e f8 24 5288 jne short 03b7ch ; 75 02 5289 or AL, strict byte 0d0h ; 0c d0 5290 mov dl, al ; 88 c2 5291 xor dh, dh ; 30 f6 5292 mov CL, strict byte 004h ; b1 04 5293 sar dx, CL ; d3 fa 5294 test dl, 001h ; f6 c2 01 5295 jne short 03b8ch ; 75 03 5296 jmp near 03a92h ; e9 06 ff 5297 mov bl, al ; 88 c3 5298 xor bh, bh ; 30 ff 5299 mov dx, word [bp-014h] ; 8b 56 ec 5308 xor ah, ah ; 30 e4 5309 call 03bf8h ; e8 3c 00 5310 mov word [bp+008h], ax ; 89 46 08 5311 mov byte [bp+017h], 000h ; c6 46 17 00 5312 mov bx, strict word 00041h ; bb 41 00 5300 5313 mov ax, strict word 00040h ; b8 40 00 5301 call 01660h ; e8 c7 da 5302 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 5303 mov al, ch ; 88 e8 5304 xor ah, ah ; 30 e4 5305 call 03bd1h ; e8 2c 00 5306 mov word [bp+008h], ax ; 89 46 08 5307 jmp near 03a37h ; e9 8c fe 5314 mov es, ax ; 8e c0 5315 mov byte [es:bx], 000h ; 26 c6 07 00 5316 jmp near 0352fh ; e9 5d f9 5308 5317 mov bx, 00da0h ; bb a0 0d 5309 5318 mov cx, ds ; 8c d9 5310 5319 mov ax, strict word 00004h ; b8 04 00 5311 call 01933h ; e8 7ddd5320 call 01933h ; e8 56 dd 5312 5321 mov al, byte [bp+017h] ; 8a 46 17 5313 5322 xor ah, ah ; 30 e4 … … 5319 5328 mov ax, strict word 00004h ; b8 04 00 5320 5329 push ax ; 50 5321 call 01976h ; e8 abdd5330 call 01976h ; e8 84 dd 5322 5331 add sp, strict byte 00008h ; 83 c4 08 5323 jmp near 032 b0h ; e9 dff65324 get_floppy_dpt_: ; 0xf3b d1LB 0x325332 jmp near 03241h ; e9 49 f6 5333 get_floppy_dpt_: ; 0xf3bf8 LB 0x32 5325 5334 push bx ; 53 5326 5335 push dx ; 52 … … 5329 5338 mov dl, al ; 88 c2 5330 5339 xor ax, ax ; 31 c0 5331 jmp short 03 be2h ; eb 065340 jmp short 03c09h ; eb 06 5332 5341 inc ax ; 40 5333 5342 cmp ax, strict word 00007h ; 3d 07 00 5334 jnc short 03 bfch ; 73 1a5343 jnc short 03c23h ; 73 1a 5335 5344 mov bx, ax ; 89 c3 5336 5345 sal bx, 1 ; d1 e3 5337 5346 cmp dl, byte [word bx+0005bh] ; 3a 97 5b 00 5338 jne short 03 bdch ; 75 f05347 jne short 03c03h ; 75 f0 5339 5348 mov al, byte [word bx+0005ch] ; 8a 87 5c 00 5340 5349 xor ah, ah ; 30 e4 … … 5342 5351 imul bx ; f7 eb 5343 5352 add ax, strict word 00000h ; 05 00 00 5344 jmp short 03 bffh ; eb 035353 jmp short 03c26h ; eb 03 5345 5354 mov ax, strict word 00041h ; b8 41 00 5346 5355 pop bp ; 5d … … 5348 5357 pop bx ; 5b 5349 5358 retn ; c3 5350 dummy_soft_reset_: ; 0xf3c 03LB 0x75359 dummy_soft_reset_: ; 0xf3c2a LB 0x7 5351 5360 push bp ; 55 5352 5361 mov bp, sp ; 89 e5 … … 5354 5363 pop bp ; 5d 5355 5364 retn ; c3 5356 _cdemu_init: ; 0xf3c 0aLB 0x185365 _cdemu_init: ; 0xf3c31 LB 0x18 5357 5366 push bp ; 55 5358 5367 mov bp, sp ; 89 e5 5359 5368 mov dx, strict word 0000eh ; ba 0e 00 5360 5369 mov ax, strict word 00040h ; b8 40 00 5361 call 0166eh ; e8 58da5370 call 0166eh ; e8 31 da 5362 5371 xor bx, bx ; 31 db 5363 5372 mov dx, 00366h ; ba 66 03 5364 call 01660h ; e8 42da5373 call 01660h ; e8 1b da 5365 5374 mov sp, bp ; 89 ec 5366 5375 pop bp ; 5d 5367 5376 retn ; c3 5368 _cdemu_isactive: ; 0xf3c 22LB 0x165377 _cdemu_isactive: ; 0xf3c49 LB 0x16 5369 5378 push bp ; 55 5370 5379 mov bp, sp ; 89 e5 5371 5380 mov dx, strict word 0000eh ; ba 0e 00 5372 5381 mov ax, strict word 00040h ; b8 40 00 5373 call 0166eh ; e8 40da5382 call 0166eh ; e8 19 da 5374 5383 mov dx, 00366h ; ba 66 03 5375 call 01652h ; e8 1e da5384 call 01652h ; e8 f7 d9 5376 5385 mov sp, bp ; 89 ec 5377 5386 pop bp ; 5d 5378 5387 retn ; c3 5379 _cdemu_emulated_drive: ; 0xf3c 38LB 0x165388 _cdemu_emulated_drive: ; 0xf3c5f LB 0x16 5380 5389 push bp ; 55 5381 5390 mov bp, sp ; 89 e5 5382 5391 mov dx, strict word 0000eh ; ba 0e 00 5383 5392 mov ax, strict word 00040h ; b8 40 00 5384 call 0166eh ; e8 2ada5393 call 0166eh ; e8 03 da 5385 5394 mov dx, 00368h ; ba 68 03 5386 call 01652h ; e8 08 da5395 call 01652h ; e8 e1 d9 5387 5396 mov sp, bp ; 89 ec 5388 5397 pop bp ; 5d 5389 5398 retn ; c3 5390 _int13_eltorito: ; 0xf3c 4eLB 0x1915399 _int13_eltorito: ; 0xf3c75 LB 0x191 5391 5400 push bp ; 55 5392 5401 mov bp, sp ; 89 e5 … … 5395 5404 mov dx, strict word 0000eh ; ba 0e 00 5396 5405 mov ax, strict word 00040h ; b8 40 00 5397 call 0166eh ; e8 12 da5406 call 0166eh ; e8 eb d9 5398 5407 mov si, 00366h ; be 66 03 5399 5408 mov di, ax ; 89 c7 … … 5401 5410 xor ah, ah ; 30 e4 5402 5411 cmp ax, strict word 0004bh ; 3d 4b 00 5403 jc short 03c 75h ; 72 0a5404 jbe short 03c a0h ; 76 335412 jc short 03c9ch ; 72 0a 5413 jbe short 03cc7h ; 76 33 5405 5414 cmp ax, strict word 0004dh ; 3d 4d 00 5406 jbe short 03c 7ah ; 76 085407 jmp near 03d a5h ; e9 30 015415 jbe short 03ca1h ; 76 08 5416 jmp near 03dcch ; e9 30 01 5408 5417 cmp ax, strict word 0004ah ; 3d 4a 00 5409 jne short 03c 9dh ; 75 235418 jne short 03cc4h ; 75 23 5410 5419 mov bx, 00da0h ; bb a0 0d 5411 5420 mov cx, ds ; 8c d9 5412 5421 mov ax, strict word 00004h ; b8 04 00 5413 call 01933h ; e8 aedc5422 call 01933h ; e8 87 dc 5414 5423 push word [bp+016h] ; ff 76 16 5415 5424 mov ax, 002fch ; b8 fc 02 … … 5419 5428 mov ax, strict word 00004h ; b8 04 00 5420 5429 push ax ; 50 5421 call 01976h ; e8 dfdc5430 call 01976h ; e8 b8 dc 5422 5431 add sp, strict byte 00008h ; 83 c4 08 5423 jmp near 03d c0h ; e9 23 015424 jmp near 03d a5h ; e9 05 015432 jmp near 03de7h ; e9 23 01 5433 jmp near 03dcch ; e9 05 01 5425 5434 mov dx, word [bp+00ah] ; 8b 56 0a 5426 5435 mov ax, word [bp+004h] ; 8b 46 04 5427 5436 mov bx, strict word 00013h ; bb 13 00 5428 call 01660h ; e8 b4d95437 call 01660h ; e8 8d d9 5429 5438 mov es, di ; 8e c7 5430 5439 mov bl, byte [es:si+001h] ; 26 8a 5c 01 … … 5433 5442 inc dx ; 42 5434 5443 mov ax, word [bp+004h] ; 8b 46 04 5435 call 01660h ; e8 a2d95444 call 01660h ; e8 7b d9 5436 5445 mov es, di ; 8e c7 5437 5446 mov bl, byte [es:si+002h] ; 26 8a 5c 02 … … 5441 5450 inc dx ; 42 5442 5451 mov ax, word [bp+004h] ; 8b 46 04 5443 call 01660h ; e8 8fd95452 call 01660h ; e8 68 d9 5444 5453 mov es, di ; 8e c7 5445 5454 mov bl, byte [es:si+003h] ; 26 8a 5c 03 … … 5448 5457 add dx, strict byte 00003h ; 83 c2 03 5449 5458 mov ax, word [bp+004h] ; 8b 46 04 5450 call 01660h ; e8 7bd95459 call 01660h ; e8 54 d9 5451 5460 mov es, di ; 8e c7 5452 5461 mov bx, word [es:si+008h] ; 26 8b 5c 08 … … 5455 5464 add dx, strict byte 00004h ; 83 c2 04 5456 5465 mov ax, word [bp+004h] ; 8b 46 04 5457 call 0169ch ; e8 a1d95466 call 0169ch ; e8 7a d9 5458 5467 mov es, di ; 8e c7 5459 5468 mov bx, word [es:si+004h] ; 26 8b 5c 04 … … 5461 5470 add dx, strict byte 00008h ; 83 c2 08 5462 5471 mov ax, word [bp+004h] ; 8b 46 04 5463 call 0167ch ; e8 6fd95472 call 0167ch ; e8 48 d9 5464 5473 mov es, di ; 8e c7 5465 5474 mov bx, word [es:si+006h] ; 26 8b 5c 06 … … 5467 5476 add dx, strict byte 0000ah ; 83 c2 0a 5468 5477 mov ax, word [bp+004h] ; 8b 46 04 5469 call 0167ch ; e8 5dd95478 call 0167ch ; e8 36 d9 5470 5479 mov es, di ; 8e c7 5471 5480 mov bx, word [es:si+00ch] ; 26 8b 5c 0c … … 5473 5482 add dx, strict byte 0000ch ; 83 c2 0c 5474 5483 mov ax, word [bp+004h] ; 8b 46 04 5475 call 0167ch ; e8 4bd95484 call 0167ch ; e8 24 d9 5476 5485 mov es, di ; 8e c7 5477 5486 mov bx, word [es:si+00eh] ; 26 8b 5c 0e … … 5479 5488 add dx, strict byte 0000eh ; 83 c2 0e 5480 5489 mov ax, word [bp+004h] ; 8b 46 04 5481 call 0167ch ; e8 39d95490 call 0167ch ; e8 12 d9 5482 5491 mov es, di ; 8e c7 5483 5492 mov bl, byte [es:si+012h] ; 26 8a 5c 12 … … 5486 5495 add dx, strict byte 00010h ; 83 c2 10 5487 5496 mov ax, word [bp+004h] ; 8b 46 04 5488 call 01660h ; e8 09 d95497 call 01660h ; e8 e2 d8 5489 5498 mov es, di ; 8e c7 5490 5499 mov bl, byte [es:si+014h] ; 26 8a 5c 14 … … 5493 5502 add dx, strict byte 00011h ; 83 c2 11 5494 5503 mov ax, word [bp+004h] ; 8b 46 04 5495 call 01660h ; e8 f5d85504 call 01660h ; e8 ce d8 5496 5505 mov es, di ; 8e c7 5497 5506 mov bl, byte [es:si+010h] ; 26 8a 5c 10 … … 5500 5509 add dx, strict byte 00012h ; 83 c2 12 5501 5510 mov ax, word [bp+004h] ; 8b 46 04 5502 call 01660h ; e8 e1d85511 call 01660h ; e8 ba d8 5503 5512 test byte [bp+016h], 0ffh ; f6 46 16 ff 5504 jne short 03d 8bh ; 75 065513 jne short 03db2h ; 75 06 5505 5514 mov es, di ; 8e c7 5506 5515 mov byte [es:si], 000h ; 26 c6 04 00 … … 5509 5518 mov dx, strict word 00074h ; ba 74 00 5510 5519 mov ax, strict word 00040h ; b8 40 00 5511 call 01660h ; e8 c6d85520 call 01660h ; e8 9f d8 5512 5521 and byte [bp+01ch], 0feh ; 80 66 1c fe 5513 5522 lea sp, [bp-004h] ; 8d 66 fc … … 5519 5528 mov cx, ds ; 8c d9 5520 5529 mov ax, strict word 00004h ; b8 04 00 5521 call 01933h ; e8 83db5530 call 01933h ; e8 5c db 5522 5531 mov al, byte [bp+017h] ; 8a 46 17 5523 5532 xor ah, ah ; 30 e4 … … 5526 5535 push ax ; 50 5527 5536 mov ax, 00333h ; b8 33 03 5528 jmp near 03c 8fh ; e9 cf fe5537 jmp near 03cb6h ; e9 cf fe 5529 5538 mov ax, word [bp+016h] ; 8b 46 16 5530 5539 xor ah, ah ; 30 e4 … … 5535 5544 mov dx, strict word 00074h ; ba 74 00 5536 5545 mov ax, strict word 00040h ; b8 40 00 5537 call 01660h ; e8 87d85546 call 01660h ; e8 60 d8 5538 5547 or byte [bp+01ch], 001h ; 80 4e 1c 01 5539 jmp short 03d 9eh ; eb bf5540 device_is_cdrom_: ; 0xf3 ddfLB 0x3f5548 jmp short 03dc5h ; eb bf 5549 device_is_cdrom_: ; 0xf3e06 LB 0x3f 5541 5550 push bp ; 55 5542 5551 mov bp, sp ; 89 e5 … … 5547 5556 mov dx, strict word 0000eh ; ba 0e 00 5548 5557 mov ax, strict word 00040h ; b8 40 00 5549 call 0166eh ; e8 7ed85558 call 0166eh ; e8 57 d8 5550 5559 mov cx, ax ; 89 c1 5551 5560 cmp bl, 010h ; 80 fb 10 5552 jc short 03 dfbh ; 72 045561 jc short 03e22h ; 72 04 5553 5562 xor ax, ax ; 31 c0 5554 jmp short 03e 16h ; eb 1b5563 jmp short 03e3dh ; eb 1b 5555 5564 mov al, bl ; 88 d8 5556 5565 xor ah, ah ; 30 e4 … … 5561 5570 add bx, 00122h ; 81 c3 22 01 5562 5571 cmp byte [es:bx+023h], 005h ; 26 80 7f 23 05 5563 jne short 03 df7h ; 75 e45572 jne short 03e1eh ; 75 e4 5564 5573 mov ax, strict word 00001h ; b8 01 00 5565 5574 lea sp, [bp-006h] ; 8d 66 fa … … 5569 5578 pop bp ; 5d 5570 5579 retn ; c3 5571 cdrom_boot_: ; 0xf3e 1e LB 0x43d5580 cdrom_boot_: ; 0xf3e45 LB 0x43e 5572 5581 push bp ; 55 5573 5582 mov bp, sp ; 89 e5 … … 5580 5589 mov dx, strict word 0000eh ; ba 0e 00 5581 5590 mov ax, strict word 00040h ; b8 40 00 5582 call 0166eh ; e8 3bd85583 mov word [bp-01 ah], ax ; 89 46 e65591 call 0166eh ; e8 14 d8 5592 mov word [bp-018h], ax ; 89 46 e8 5584 5593 mov si, 00366h ; be 66 03 5585 mov word [bp-01 8h], ax ; 89 46 e85586 mov word [bp-01 4h], 00122h ; c7 46 ec22 015587 mov word [bp-01 2h], ax ; 89 46 ee5588 mov byte [bp-00 ch], 000h ; c6 46 f4005589 jmp short 03e 53h ; eb 095590 inc byte [bp-00 ch] ; fe 46 f45591 cmp byte [bp-00 ch], 010h ; 80 7e f4105592 jnc short 03e 5fh ; 73 0c5593 mov al, byte [bp-00 ch] ; 8a 46 f45594 xor ah, ah ; 30 e4 5595 call 03 ddfh ; e8 84 ff5594 mov word [bp-016h], ax ; 89 46 ea 5595 mov word [bp-012h], 00122h ; c7 46 ee 22 01 5596 mov word [bp-010h], ax ; 89 46 f0 5597 mov byte [bp-00eh], 000h ; c6 46 f2 00 5598 jmp short 03e7ah ; eb 09 5599 inc byte [bp-00eh] ; fe 46 f2 5600 cmp byte [bp-00eh], 010h ; 80 7e f2 10 5601 jnc short 03e86h ; 73 0c 5602 mov al, byte [bp-00eh] ; 8a 46 f2 5603 xor ah, ah ; 30 e4 5604 call 03e06h ; e8 84 ff 5596 5605 test ax, ax ; 85 c0 5597 je short 03e 4ah ; 74 eb5598 cmp byte [bp-00 ch], 010h ; 80 7e f4105599 jc short 03e 6bh ; 72 065606 je short 03e71h ; 74 eb 5607 cmp byte [bp-00eh], 010h ; 80 7e f2 10 5608 jc short 03e92h ; 72 06 5600 5609 mov ax, strict word 00002h ; b8 02 00 5601 jmp near 04 1f8h ; e9 8d035610 jmp near 04220h ; e9 8e 03 5602 5611 mov cx, strict word 0000ch ; b9 0c 00 5603 5612 xor bx, bx ; 31 db 5604 5613 mov dx, ss ; 8c d2 5605 5614 lea ax, [bp-026h] ; 8d 46 da 5606 call 0a 0d0h ; e8 58625615 call 0a100h ; e8 61 62 5607 5616 mov word [bp-026h], strict word 00028h ; c7 46 da 28 00 5608 5617 mov ax, strict word 00011h ; b8 11 00 … … 5616 5625 xchg ah, al ; 86 c4 5617 5626 mov word [bp-01fh], ax ; 89 46 e1 5618 les bx, [bp-01 4h] ; c4 5e ec5627 les bx, [bp-012h] ; c4 5e ee 5619 5628 mov word [es:bx+00eh], strict word 00001h ; 26 c7 47 0e 01 00 5620 5629 mov word [es:bx+010h], 00800h ; 26 c7 47 10 00 08 5621 mov byte [bp-00 eh], 000h ; c6 46 f2005622 jmp short 03e b3h ; eb 095623 inc byte [bp-00 eh] ; fe 46 f25624 cmp byte [bp-00 eh], 004h ; 80 7e f2045625 jnbe short 03 ef5h ; 77 425626 mov al, byte [bp-00 ch] ; 8a 46 f45630 mov byte [bp-00ch], 000h ; c6 46 f4 00 5631 jmp short 03edah ; eb 09 5632 inc byte [bp-00ch] ; fe 46 f4 5633 cmp byte [bp-00ch], 004h ; 80 7e f4 04 5634 jnbe short 03f1ch ; 77 42 5635 mov al, byte [bp-00eh] ; 8a 46 f2 5627 5636 xor ah, ah ; 30 e4 5628 5637 mov dx, strict word 0001ch ; ba 1c 00 5629 5638 imul dx ; f7 ea 5630 les bx, [bp-01 4h] ; c4 5e ec5639 les bx, [bp-012h] ; c4 5e ee 5631 5640 add bx, ax ; 01 c3 5632 5641 mov al, byte [es:bx+022h] ; 26 8a 47 22 … … 5645 5654 xor ax, ax ; 31 c0 5646 5655 push ax ; 50 5647 mov al, byte [bp-00 ch] ; 8a 46 f45656 mov al, byte [bp-00eh] ; 8a 46 f2 5648 5657 xor ah, ah ; 30 e4 5649 5658 mov cx, ss ; 8c d1 … … 5652 5661 call word [word di+0006ah] ; ff 95 6a 00 5653 5662 test ax, ax ; 85 c0 5654 jne short 03e aah ; 75 b55663 jne short 03ed1h ; 75 b5 5655 5664 test ax, ax ; 85 c0 5656 je short 03 effh ; 74 065665 je short 03f26h ; 74 06 5657 5666 mov ax, strict word 00003h ; b8 03 00 5658 jmp near 04 1f8h ; e9 f9025667 jmp near 04220h ; e9 fa 02 5659 5668 cmp byte [bp-00826h], 000h ; 80 be da f7 00 5660 je short 03f 0ch ; 74 065669 je short 03f33h ; 74 06 5661 5670 mov ax, strict word 00004h ; b8 04 00 5662 jmp near 04 1f8h ; e9 ec025671 jmp near 04220h ; e9 ed 02 5663 5672 xor di, di ; 31 ff 5664 jmp short 03f 16h ; eb 065673 jmp short 03f3dh ; eb 06 5665 5674 inc di ; 47 5666 5675 cmp di, strict byte 00005h ; 83 ff 05 5667 jnc short 03f 26h ; 73 105676 jnc short 03f4dh ; 73 10 5668 5677 mov al, byte [bp+di-00825h] ; 8a 83 db f7 5669 5678 cmp al, byte [di+00da8h] ; 3a 85 a8 0d 5670 je short 03f 10h ; 74 f05679 je short 03f37h ; 74 f0 5671 5680 mov ax, strict word 00005h ; b8 05 00 5672 jmp near 04 1f8h ; e9 d2025681 jmp near 04220h ; e9 d3 02 5673 5682 xor di, di ; 31 ff 5674 jmp short 03f 30h ; eb 065683 jmp short 03f57h ; eb 06 5675 5684 inc di ; 47 5676 5685 cmp di, strict byte 00017h ; 83 ff 17 5677 jnc short 03f 40h ; 73 105686 jnc short 03f67h ; 73 10 5678 5687 mov al, byte [bp+di-0081fh] ; 8a 83 e1 f7 5679 5688 cmp al, byte [di+00daeh] ; 3a 85 ae 0d 5680 je short 03f 2ah ; 74 f05689 je short 03f51h ; 74 f0 5681 5690 mov ax, strict word 00006h ; b8 06 00 5682 jmp near 04 1f8h ; e9 b8025691 jmp near 04220h ; e9 b9 02 5683 5692 mov ax, word [bp-007dfh] ; 8b 86 21 f8 5684 5693 mov dx, word [bp-007ddh] ; 8b 96 23 f8 … … 5692 5701 xchg ah, al ; 86 c4 5693 5702 mov word [bp-01fh], ax ; 89 46 e1 5694 mov al, byte [bp-00 ch] ; 8a 46 f45703 mov al, byte [bp-00eh] ; 8a 46 f2 5695 5704 xor ah, ah ; 30 e4 5696 5705 mov dx, strict word 0001ch ; ba 1c 00 5697 5706 imul dx ; f7 ea 5698 les bx, [bp-01 4h] ; c4 5e ec5707 les bx, [bp-012h] ; c4 5e ee 5699 5708 add bx, ax ; 01 c3 5700 5709 mov al, byte [es:bx+022h] ; 26 8a 47 22 … … 5713 5722 xor ax, ax ; 31 c0 5714 5723 push ax ; 50 5715 mov al, byte [bp-00 ch] ; 8a 46 f45724 mov al, byte [bp-00eh] ; 8a 46 f2 5716 5725 xor ah, ah ; 30 e4 5717 5726 mov cx, ss ; 8c d1 … … 5720 5729 call word [word di+0006ah] ; ff 95 6a 00 5721 5730 test ax, ax ; 85 c0 5722 je short 03f a8h ; 74 065731 je short 03fcfh ; 74 06 5723 5732 mov ax, strict word 00007h ; b8 07 00 5724 jmp near 04 1f8h ; e9 50025733 jmp near 04220h ; e9 51 02 5725 5734 cmp byte [bp-00826h], 001h ; 80 be da f7 01 5726 je short 03f b5h ; 74 065735 je short 03fdch ; 74 06 5727 5736 mov ax, strict word 00008h ; b8 08 00 5728 jmp near 04 1f8h ; e9 43025737 jmp near 04220h ; e9 44 02 5729 5738 cmp byte [bp-00825h], 000h ; 80 be db f7 00 5730 je short 03f c2h ; 74 065739 je short 03fe9h ; 74 06 5731 5740 mov ax, strict word 00009h ; b8 09 00 5732 jmp near 04 1f8h ; e9 36025741 jmp near 04220h ; e9 37 02 5733 5742 cmp byte [bp-00808h], 055h ; 80 be f8 f7 55 5734 je short 03f cfh ; 74 065743 je short 03ff6h ; 74 06 5735 5744 mov ax, strict word 0000ah ; b8 0a 00 5736 jmp near 04 1f8h ; e9 29025745 jmp near 04220h ; e9 2a 02 5737 5746 cmp byte [bp-00807h], 0aah ; 80 be f9 f7 aa 5738 jne short 03f c9h ; 75 f35747 jne short 03ff0h ; 75 f3 5739 5748 cmp byte [bp-00806h], 088h ; 80 be fa f7 88 5740 je short 0 3fe3h ; 74 065749 je short 0400ah ; 74 06 5741 5750 mov ax, strict word 0000bh ; b8 0b 00 5742 jmp near 04 1f8h ; e9 15025751 jmp near 04220h ; e9 16 02 5743 5752 mov al, byte [bp-00805h] ; 8a 86 fb f7 5744 mov es, [bp-01 8h] ; 8e 46 e85753 mov es, [bp-016h] ; 8e 46 ea 5745 5754 mov byte [es:si+001h], al ; 26 88 44 01 5746 5755 cmp byte [bp-00805h], 000h ; 80 be fb f7 00 5747 jne short 0 3ffch ; 75 075756 jne short 04023h ; 75 07 5748 5757 mov byte [es:si+002h], 0e0h ; 26 c6 44 02 e0 5749 jmp short 040 0fh ; eb 135758 jmp short 04036h ; eb 13 5750 5759 cmp byte [bp-00805h], 004h ; 80 be fb f7 04 5751 jnc short 040 0ah ; 73 075760 jnc short 04031h ; 73 07 5752 5761 mov byte [es:si+002h], 000h ; 26 c6 44 02 00 5753 jmp short 040 0fh ; eb 055762 jmp short 04036h ; eb 05 5754 5763 mov byte [es:si+002h], 080h ; 26 c6 44 02 80 5755 mov bl, byte [bp-00 ch] ; 8a 5e f45764 mov bl, byte [bp-00eh] ; 8a 5e f2 5756 5765 xor bh, bh ; 30 ff 5757 5766 mov ax, bx ; 89 d8 … … 5760 5769 ; sub ax, dx ; 2b c2 5761 5770 sar ax, 1 ; d1 f8 5762 mov es, [bp-01 8h] ; 8e 46 e85771 mov es, [bp-016h] ; 8e 46 ea 5763 5772 mov byte [es:si+003h], al ; 26 88 44 03 5764 5773 mov ax, bx ; 89 d8 … … 5768 5777 mov word [es:si+004h], dx ; 26 89 54 04 5769 5778 mov ax, word [bp-00804h] ; 8b 86 fc f7 5770 mov word [bp-01 0h], ax ; 89 46 f05779 mov word [bp-014h], ax ; 89 46 ec 5771 5780 test ax, ax ; 85 c0 5772 jne short 040 3eh ; 75 055773 mov word [bp-01 0h], 007c0h ; c7 46 f0c0 075774 mov ax, word [bp-01 0h] ; 8b 46 f05775 mov es, [bp-01 8h] ; 8e 46 e85781 jne short 04065h ; 75 05 5782 mov word [bp-014h], 007c0h ; c7 46 ec c0 07 5783 mov ax, word [bp-014h] ; 8b 46 ec 5784 mov es, [bp-016h] ; 8e 46 ea 5776 5785 mov word [es:si+00ch], ax ; 26 89 44 0c 5777 5786 mov word [es:si+006h], strict word 00000h ; 26 c7 44 06 00 00 … … 5779 5788 mov word [es:si+00eh], bx ; 26 89 5c 0e 5780 5789 test bx, bx ; 85 db 5781 je short 040 60h ; 74 065790 je short 04087h ; 74 06 5782 5791 cmp bx, 00400h ; 81 fb 00 04 5783 jbe short 040 66h ; 76 065792 jbe short 0408dh ; 76 06 5784 5793 mov ax, strict word 0000ch ; b8 0c 00 5785 jmp near 04 1f8h ; e9 92015794 jmp near 04220h ; e9 93 01 5786 5795 mov ax, word [bp-007feh] ; 8b 86 02 f8 5787 5796 mov dx, word [bp-007fch] ; 8b 96 04 f8 … … 5801 5810 xchg ah, al ; 86 c4 5802 5811 mov word [bp-01fh], ax ; 89 46 e1 5803 les di, [bp-01 4h] ; c4 7e ec5812 les di, [bp-012h] ; c4 7e ee 5804 5813 mov word [es:di+00eh], dx ; 26 89 55 0e 5805 5814 mov word [es:di+010h], 00200h ; 26 c7 45 10 00 02 … … 5812 5821 and ah, 007h ; 80 e4 07 5813 5822 mov word [es:di+020h], ax ; 26 89 45 20 5814 mov al, byte [bp-00 ch] ; 8a 46 f45823 mov al, byte [bp-00eh] ; 8a 46 f2 5815 5824 xor ah, ah ; 30 e4 5816 5825 mov dx, strict word 0001ch ; ba 1c 00 … … 5820 5829 xor ah, ah ; 30 e4 5821 5830 sal ax, 1 ; d1 e0 5822 mov word [bp-01 6h], ax ; 89 46 ea5823 push word [bp-01 0h] ; ff 76 f05831 mov word [bp-01ah], ax ; 89 46 e6 5832 push word [bp-014h] ; ff 76 ec 5824 5833 xor ax, ax ; 31 c0 5825 5834 push ax ; 50 … … 5831 5840 sal ax, 1 ; d1 e0 5832 5841 rcl di, 1 ; d1 d7 5833 loop 04 0deh ; e2 fa5842 loop 04105h ; e2 fa 5834 5843 push di ; 57 5835 5844 push ax ; 50 5836 5845 xor ax, ax ; 31 c0 5837 5846 push ax ; 50 5838 mov al, byte [bp-00 ch] ; 8a 46 f45847 mov al, byte [bp-00eh] ; 8a 46 f2 5839 5848 xor ah, ah ; 30 e4 5840 5849 mov cx, ss ; 8c d1 5841 5850 lea bx, [bp-026h] ; 8d 5e da 5842 5851 mov dx, strict word 0000ch ; ba 0c 00 5843 mov di, word [bp-01 6h] ; 8b 7e ea5852 mov di, word [bp-01ah] ; 8b 7e e6 5844 5853 call word [word di+0006ah] ; ff 95 6a 00 5845 les bx, [bp-01 4h] ; c4 5e ec5854 les bx, [bp-012h] ; c4 5e ee 5846 5855 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 5847 5856 test ax, ax ; 85 c0 5848 je short 041 10h ; 74 065857 je short 04137h ; 74 06 5849 5858 mov ax, strict word 0000dh ; b8 0d 00 5850 jmp near 04 1f8h ; e9 e8005851 mov es, [bp-01 8h] ; 8e 46 e85859 jmp near 04220h ; e9 e9 00 5860 mov es, [bp-016h] ; 8e 46 ea 5852 5861 mov al, byte [es:si+001h] ; 26 8a 44 01 5853 5862 cmp AL, strict byte 002h ; 3c 02 5854 jc short 041 28h ; 72 0d5855 jbe short 041 43h ; 76 265863 jc short 0414fh ; 72 0d 5864 jbe short 0416ah ; 76 26 5856 5865 cmp AL, strict byte 004h ; 3c 04 5857 je short 041 53h ; 74 325866 je short 0417ah ; 74 32 5858 5867 cmp AL, strict byte 003h ; 3c 03 5859 je short 041 4bh ; 74 265860 jmp near 041 a0h ; e9 78005868 je short 04172h ; 74 26 5869 jmp near 041c8h ; e9 79 00 5861 5870 cmp AL, strict byte 001h ; 3c 01 5862 jne short 041 a0h ; 75 745863 mov es, [bp-01 8h] ; 8e 46 e85871 jne short 041c8h ; 75 75 5872 mov es, [bp-016h] ; 8e 46 ea 5864 5873 mov word [es:si+014h], strict word 0000fh ; 26 c7 44 14 0f 00 5865 5874 mov word [es:si+012h], strict word 00050h ; 26 c7 44 12 50 00 5866 5875 mov word [es:si+010h], strict word 00002h ; 26 c7 44 10 02 00 5867 jmp short 041 a0h ; eb 5d5876 jmp short 041c8h ; eb 5e 5868 5877 mov word [es:si+014h], strict word 00012h ; 26 c7 44 14 12 00 5869 jmp short 041 35h ; eb ea5878 jmp short 0415ch ; eb ea 5870 5879 mov word [es:si+014h], strict word 00024h ; 26 c7 44 14 24 00 5871 jmp short 041 35h ; eb e25880 jmp short 0415ch ; eb e2 5872 5881 mov dx, 001c4h ; ba c4 01 5873 mov ax, word [bp-01 0h] ; 8b 46 f05874 call 01652h ; e8 f6d45882 mov ax, word [bp-014h] ; 8b 46 ec 5883 call 01652h ; e8 cf d4 5875 5884 and AL, strict byte 03fh ; 24 3f 5876 5885 xor ah, ah ; 30 e4 5877 mov es, [bp-01 8h] ; 8e 46 e85886 mov es, [bp-016h] ; 8e 46 ea 5878 5887 mov word [es:si+014h], ax ; 26 89 44 14 5879 5888 mov dx, 001c4h ; ba c4 01 5880 mov ax, word [bp-01 0h] ; 8b 46 f05881 call 01652h ; e8 e2d45882 xor ah, ah ; 30 e45889 mov ax, word [bp-014h] ; 8b 46 ec 5890 call 01652h ; e8 bb d4 5891 and ax, 000c0h ; 25 c0 00 5883 5892 mov bx, ax ; 89 c3 5884 5893 sal bx, 1 ; d1 e3 5885 5894 sal bx, 1 ; d1 e3 5886 5895 mov dx, 001c5h ; ba c5 01 5887 mov ax, word [bp-01 0h] ; 8b 46 f05888 call 01652h ; e8 d1d45896 mov ax, word [bp-014h] ; 8b 46 ec 5897 call 01652h ; e8 a9 d4 5889 5898 xor ah, ah ; 30 e4 5890 5899 add ax, bx ; 01 d8 5891 5900 inc ax ; 40 5892 mov es, [bp-01 8h] ; 8e 46 e85901 mov es, [bp-016h] ; 8e 46 ea 5893 5902 mov word [es:si+012h], ax ; 26 89 44 12 5894 5903 mov dx, 001c3h ; ba c3 01 5895 mov ax, word [bp-01 0h] ; 8b 46 f05896 call 01652h ; e8 bcd45904 mov ax, word [bp-014h] ; 8b 46 ec 5905 call 01652h ; e8 94 d4 5897 5906 xor ah, ah ; 30 e4 5898 5907 inc ax ; 40 5899 mov es, [bp-01 8h] ; 8e 46 e85908 mov es, [bp-016h] ; 8e 46 ea 5900 5909 mov word [es:si+010h], ax ; 26 89 44 10 5901 mov es, [bp-01 8h] ; 8e 46 e85910 mov es, [bp-016h] ; 8e 46 ea 5902 5911 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5903 je short 04 1e1h ; 74 375912 je short 04209h ; 74 37 5904 5913 cmp byte [es:si+002h], 000h ; 26 80 7c 02 00 5905 jne short 041 c9h ; 75 185914 jne short 041f1h ; 75 18 5906 5915 mov dx, strict word 00010h ; ba 10 00 5907 5916 mov ax, strict word 00040h ; b8 40 00 5908 call 01652h ; e8 98d45917 call 01652h ; e8 70 d4 5909 5918 mov bl, al ; 88 c3 5910 5919 or bl, 041h ; 80 cb 41 … … 5912 5921 mov dx, strict word 00010h ; ba 10 00 5913 5922 mov ax, strict word 00040h ; b8 40 00 5914 jmp short 04 1deh ; eb 155923 jmp short 04206h ; eb 15 5915 5924 mov dx, 00304h ; ba 04 03 5916 mov ax, word [bp-01 ah] ; 8b 46 e65917 call 01652h ; e8 80d45925 mov ax, word [bp-018h] ; 8b 46 e8 5926 call 01652h ; e8 58 d4 5918 5927 mov bl, al ; 88 c3 5919 5928 db 0feh, 0c3h … … 5921 5930 xor bh, bh ; 30 ff 5922 5931 mov dx, 00304h ; ba 04 03 5923 mov ax, word [bp-01 ah] ; 8b 46 e65924 call 01660h ; e8 7fd45925 mov es, [bp-01 8h] ; 8e 46 e85932 mov ax, word [bp-018h] ; 8b 46 e8 5933 call 01660h ; e8 57 d4 5934 mov es, [bp-016h] ; 8e 46 ea 5926 5935 cmp byte [es:si+001h], 000h ; 26 80 7c 01 00 5927 je short 04 1efh ; 74 045936 je short 04217h ; 74 04 5928 5937 mov byte [es:si], 001h ; 26 c6 04 01 5929 mov es, [bp-01 8h] ; 8e 46 e85938 mov es, [bp-016h] ; 8e 46 ea 5930 5939 mov ah, byte [es:si+002h] ; 26 8a 64 02 5931 5940 xor al, al ; 30 c0 … … 5939 5948 retn ; c3 5940 5949 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 5941 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 12h, 046h, 002h5942 db 043h, 0 37h, 043h, 05ch, 043h, 02ch, 043h, 05ch, 043h, 02ch, 043h, 05bh, 045h, 041h, 045h, 012h5943 db 046h, 0 12h, 046h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 041h, 045h, 009h, 046h, 041h5944 db 045h, 0 12h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h, 046h, 012h5945 db 046h, 0 12h, 046h, 012h, 046h, 012h, 046h, 012h, 046h5946 _int13_cdemu: ; 0xf42 5bLB 0x4535950 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 03ah, 046h, 02ah 5951 db 043h, 05fh, 043h, 084h, 043h, 054h, 043h, 084h, 043h, 054h, 043h, 083h, 045h, 069h, 045h, 03ah 5952 db 046h, 03ah, 046h, 069h, 045h, 069h, 045h, 069h, 045h, 069h, 045h, 069h, 045h, 031h, 046h, 069h 5953 db 045h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah 5954 db 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h, 03ah, 046h 5955 _int13_cdemu: ; 0xf4283 LB 0x453 5947 5956 push bp ; 55 5948 5957 mov bp, sp ; 89 e5 … … 5952 5961 mov dx, strict word 0000eh ; ba 0e 00 5953 5962 mov ax, strict word 00040h ; b8 40 00 5954 call 0166eh ; e8 02 d45963 call 0166eh ; e8 da d3 5955 5964 mov di, 00366h ; bf 66 03 5956 5965 mov cx, ax ; 89 c1 … … 5968 5977 mov dx, strict word 00074h ; ba 74 00 5969 5978 mov ax, strict word 00040h ; b8 40 00 5970 call 01660h ; e8 c5d35979 call 01660h ; e8 9d d3 5971 5980 mov es, cx ; 8e c1 5972 5981 cmp byte [es:di], 000h ; 26 80 3d 00 5973 je short 042 b2h ; 74 0f5982 je short 042dah ; 74 0f 5974 5983 mov al, byte [es:di+002h] ; 26 8a 45 02 5975 5984 xor ah, ah ; 30 e4 … … 5977 5986 xor dh, dh ; 30 f6 5978 5987 cmp ax, dx ; 39 d0 5979 je short 04 2dch ; 74 2a5988 je short 04304h ; 74 2a 5980 5989 mov bx, 00da0h ; bb a0 0d 5981 5990 mov cx, ds ; 8c d9 5982 5991 mov ax, strict word 00004h ; b8 04 00 5983 call 01933h ; e8 76d65992 call 01933h ; e8 4e d6 5984 5993 mov ax, word [bp+012h] ; 8b 46 12 5985 5994 xor ah, ah ; 30 e4 … … 5993 6002 mov ax, strict word 00004h ; b8 04 00 5994 6003 push ax ; 50 5995 call 01976h ; e8 a0d66004 call 01976h ; e8 78 d6 5996 6005 add sp, strict byte 0000ah ; 83 c4 0a 5997 jmp near 046 35h ; e9 59 036006 jmp near 0465dh ; e9 59 03 5998 6007 mov al, byte [bp+017h] ; 8a 46 17 5999 6008 xor ah, ah ; 30 e4 6000 6009 mov dx, ax ; 89 c2 6001 6010 cmp ax, strict word 00050h ; 3d 50 00 6002 jnbe short 043 59h ; 77 716011 jnbe short 04381h ; 77 71 6003 6012 push CS ; 0e 6004 6013 pop ES ; 07 6005 6014 mov cx, strict word 0001eh ; b9 1e 00 6006 mov di, 042 02h ; bf 02426015 mov di, 0422ah ; bf 2a 42 6007 6016 repne scasb ; f2 ae 6008 6017 sal cx, 1 ; d1 e1 6009 6018 mov di, cx ; 89 cf 6010 mov ax, word [cs:di+042 1fh] ; 2e 8b 85 1f426019 mov ax, word [cs:di+04247h] ; 2e 8b 85 47 42 6011 6020 mov bx, word [bp+016h] ; 8b 5e 16 6012 6021 xor bh, bh ; 30 ff … … 6022 6031 sal bx, 1 ; d1 e3 6023 6032 cmp word [word bx+0006ah], strict byte 00000h ; 83 bf 6a 00 00 6024 je short 043 29h ; 74 096033 je short 04351h ; 74 09 6025 6034 mov al, byte [bp-006h] ; 8a 46 fa 6026 6035 xor ah, ah ; 30 e4 6027 6036 call word [word bx+00076h] ; ff 97 76 00 6028 jmp near 045 41h ; e9 15 026037 jmp near 04569h ; e9 15 02 6029 6038 mov ax, word [bp+016h] ; 8b 46 16 6030 6039 xor ah, ah ; 30 e4 6031 6040 or ah, 003h ; 80 cc 03 6032 jmp near 046 3dh ; e9 06 036041 jmp near 04665h ; e9 06 03 6033 6042 mov dx, strict word 00074h ; ba 74 00 6034 6043 mov ax, strict word 00040h ; b8 40 00 6035 call 01652h ; e8 12 d36044 call 01652h ; e8 ea d2 6036 6045 mov cl, al ; 88 c1 6037 6046 mov bh, al ; 88 c7 … … 6040 6049 mov dx, strict word 00074h ; ba 74 00 6041 6050 mov ax, strict word 00040h ; b8 40 00 6042 call 01660h ; e8 0e d36051 call 01660h ; e8 e6 d2 6043 6052 test cl, cl ; 84 c9 6044 je short 043 bbh ; 74 656045 jmp near 046 4eh ; e9 f5 026046 jmp near 046 12h ; e9 b6 026053 je short 043e3h ; 74 65 6054 jmp near 04676h ; e9 f5 02 6055 jmp near 0463ah ; e9 b6 02 6047 6056 mov es, [bp-012h] ; 8e 46 ee 6048 6057 mov di, word [es:si+014h] ; 26 8b 7c 14 … … 6070 6079 mov word [bp-014h], cx ; 89 4e ec 6071 6080 test cx, cx ; 85 c9 6072 je short 043 c8h ; 74 1d6081 je short 043f0h ; 74 1d 6073 6082 cmp di, word [bp-00ah] ; 3b 7e f6 6074 jc short 043 b8h ; 72 086083 jc short 043e0h ; 72 08 6075 6084 cmp ax, dx ; 39 d0 6076 jnc short 043 b8h ; 73 046085 jnc short 043e0h ; 73 04 6077 6086 cmp bx, si ; 39 f3 6078 jnbe short 043 beh ; 77 066079 jmp near 046 35h ; e9 7a 026080 jmp near 045 45h ; e9 87 016087 jnbe short 043e6h ; 77 06 6088 jmp near 0465dh ; e9 7a 02 6089 jmp near 0456dh ; e9 87 01 6081 6090 mov dl, byte [bp+017h] ; 8a 56 17 6082 6091 xor dh, dh ; 30 f6 6083 6092 cmp dx, strict byte 00004h ; 83 fa 04 6084 jne short 043 cbh ; 75 036085 jmp near 045 41h ; e9 76 016093 jne short 043f3h ; 75 03 6094 jmp near 04569h ; e9 76 01 6086 6095 mov CL, strict byte 004h ; b1 04 6087 6096 mov dx, word [bp+010h] ; 8b 56 10 … … 6096 6105 xor dl, dl ; 30 d2 6097 6106 xor cx, cx ; 31 c9 6098 call 0a0 60h ; e8 745c6107 call 0a090h ; e8 7c 5c 6099 6108 xor bx, bx ; 31 db 6100 6109 add ax, si ; 01 f0 … … 6102 6111 mov bx, di ; 89 fb 6103 6112 xor cx, cx ; 31 c9 6104 call 0a0 60h ; e8 675c6113 call 0a090h ; e8 6f 5c 6105 6114 mov bx, ax ; 89 c3 6106 6115 mov ax, word [bp-00ah] ; 8b 46 f6 … … 6137 6146 mov dx, ss ; 8c d2 6138 6147 lea ax, [bp-030h] ; 8d 46 d0 6139 call 0a 0d0h ; e8 805c6148 call 0a100h ; e8 88 5c 6140 6149 mov word [bp-030h], strict word 00028h ; c7 46 d0 28 00 6141 6150 mov ax, word [bp-00eh] ; 8b 46 f2 … … 6190 6199 sal si, 1 ; d1 e6 6191 6200 rcl di, 1 ; d1 d7 6192 loop 044 d5h ; e2 fa6201 loop 044fdh ; e2 fa 6193 6202 push di ; 57 6194 6203 push si ; 56 … … 6206 6215 mov word [es:bx+020h], strict word 00000h ; 26 c7 47 20 00 00 6207 6216 test al, al ; 84 c0 6208 je short 045 41h ; 74 386217 je short 04569h ; 74 38 6209 6218 mov bx, 00da0h ; bb a0 0d 6210 6219 mov cx, ds ; 8c d9 6211 6220 mov ax, strict word 00004h ; b8 04 00 6212 call 01933h ; e8 1f d46221 call 01933h ; e8 f7 d3 6213 6222 mov al, dl ; 88 d0 6214 6223 xor ah, ah ; 30 e4 … … 6222 6231 mov ax, strict word 00004h ; b8 04 00 6223 6232 push ax ; 50 6224 call 01976h ; e8 4ad46233 call 01976h ; e8 22 d4 6225 6234 add sp, strict byte 0000ah ; 83 c4 0a 6226 6235 mov ax, word [bp+016h] ; 8b 46 16 … … 6229 6238 mov word [bp+016h], ax ; 89 46 16 6230 6239 mov byte [bp+016h], 000h ; c6 46 16 00 6231 jmp near 046 40h ; e9 ff 006240 jmp near 04668h ; e9 ff 00 6232 6241 mov byte [bp+017h], 000h ; c6 46 17 00 6233 6242 xor bx, bx ; 31 db 6234 6243 mov dx, strict word 00074h ; ba 74 00 6235 6244 mov ax, strict word 00040h ; b8 40 00 6236 call 01660h ; e8 10 d16245 call 01660h ; e8 e8 d0 6237 6246 and byte [bp+01ch], 0feh ; 80 66 1c fe 6238 6247 lea sp, [bp-004h] ; 8d 66 fc … … 6284 6293 mov word [bp+010h], cx ; 89 4e 10 6285 6294 cmp AL, strict byte 003h ; 3c 03 6286 je short 04 5ebh ; 74 1c6295 je short 04613h ; 74 1c 6287 6296 cmp AL, strict byte 002h ; 3c 02 6288 je short 04 5e3h ; 74 106297 je short 0460bh ; 74 10 6289 6298 cmp AL, strict byte 001h ; 3c 01 6290 jne short 04 5f0h ; 75 196299 jne short 04618h ; 75 19 6291 6300 mov ax, word [bp+010h] ; 8b 46 10 6292 6301 xor al, al ; 30 c0 6293 6302 or AL, strict byte 002h ; 0c 02 6294 6303 mov word [bp+010h], ax ; 89 46 10 6295 jmp short 04 5f0h ; eb 0d6304 jmp short 04618h ; eb 0d 6296 6305 or cl, 004h ; 80 c9 04 6297 6306 mov word [bp+010h], cx ; 89 4e 10 6298 jmp short 04 5f0h ; eb 056307 jmp short 04618h ; eb 05 6299 6308 or cl, 005h ; 80 c9 05 6300 jmp short 04 5e6h ; eb f66309 jmp short 0460eh ; eb f6 6301 6310 mov es, [bp-012h] ; 8e 46 ee 6302 6311 cmp byte [es:si+001h], 004h ; 26 80 7c 01 04 6303 jc short 04 5fdh ; 72 036304 jmp near 045 41h ; e9 44 ff6312 jc short 04625h ; 72 03 6313 jmp near 04569h ; e9 44 ff 6305 6314 mov word [bp+008h], 0efc7h ; c7 46 08 c7 ef 6306 6315 mov word [bp+006h], 0f000h ; c7 46 06 00 f0 6307 jmp short 04 5fah ; eb f16316 jmp short 04622h ; eb f1 6308 6317 or bh, 003h ; 80 cf 03 6309 6318 mov word [bp+016h], bx ; 89 5e 16 6310 jmp near 045 45h ; e9 33 ff6319 jmp near 0456dh ; e9 33 ff 6311 6320 mov bx, 00da0h ; bb a0 0d 6312 6321 mov cx, ds ; 8c d9 6313 6322 mov ax, strict word 00004h ; b8 04 00 6314 call 01933h ; e8 16 d36323 call 01933h ; e8 ee d2 6315 6324 mov al, byte [bp+017h] ; 8a 46 17 6316 6325 xor ah, ah ; 30 e4 … … 6322 6331 mov ax, strict word 00004h ; b8 04 00 6323 6332 push ax ; 50 6324 call 01976h ; e8 44d36333 call 01976h ; e8 1c d3 6325 6334 add sp, strict byte 00008h ; 83 c4 08 6326 6335 mov ax, word [bp+016h] ; 8b 46 16 … … 6332 6341 mov dx, strict word 00074h ; ba 74 00 6333 6342 mov ax, strict word 00040h ; b8 40 00 6334 call 01660h ; e8 12 d06343 call 01660h ; e8 ea cf 6335 6344 or byte [bp+01ch], 001h ; 80 4e 1c 01 6336 jmp near 045 54h ; e9 ff fe6345 jmp near 0457ch ; e9 ff fe 6337 6346 db 050h, 04eh, 049h, 048h, 047h, 046h, 045h, 044h, 043h, 042h, 041h, 018h, 016h, 015h, 014h, 011h 6338 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0 97h, 047h, 0dch6339 db 04 bh, 059h, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 04eh, 047h, 097h, 047h, 0dch, 04bh, 097h6340 db 047h, 0 97h, 047h, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 0dch, 04bh, 07bh, 047h, 0dch6341 db 04 bh, 097h, 047h, 084h, 047h, 0b5h, 047h, 04eh, 047h, 0b5h, 047h, 0feh, 048h, 09eh, 049h, 0b5h6342 db 047h, 0 c8h, 049h, 0f6h, 04bh, 0feh, 04bh, 097h, 047h6343 _int13_cdrom: ; 0xf46 aeLB 0x5856347 db 010h, 00dh, 00ch, 00bh, 00ah, 009h, 008h, 005h, 004h, 003h, 002h, 001h, 000h, 0bfh, 047h, 004h 6348 db 04ch, 081h, 047h, 0bfh, 047h, 076h, 047h, 0bfh, 047h, 076h, 047h, 0bfh, 047h, 004h, 04ch, 0bfh 6349 db 047h, 0bfh, 047h, 004h, 04ch, 004h, 04ch, 004h, 04ch, 004h, 04ch, 004h, 04ch, 0a3h, 047h, 004h 6350 db 04ch, 0bfh, 047h, 0ach, 047h, 0ddh, 047h, 076h, 047h, 0ddh, 047h, 026h, 049h, 0c6h, 049h, 0ddh 6351 db 047h, 0f0h, 049h, 01eh, 04ch, 026h, 04ch, 0bfh, 047h 6352 _int13_cdrom: ; 0xf46d6 LB 0x585 6344 6353 push bp ; 55 6345 6354 mov bp, sp ; 89 e5 … … 6349 6358 mov dx, strict word 0000eh ; ba 0e 00 6350 6359 mov ax, strict word 00040h ; b8 40 00 6351 call 0166eh ; e8 afcf6360 call 0166eh ; e8 87 cf 6352 6361 mov word [bp-018h], ax ; 89 46 e8 6353 6362 mov word [bp-00eh], 00122h ; c7 46 f2 22 01 … … 6356 6365 mov dx, strict word 00074h ; ba 74 00 6357 6366 mov ax, strict word 00040h ; b8 40 00 6358 call 01660h ; e8 8bcf6367 call 01660h ; e8 63 cf 6359 6368 mov ax, word [bp+010h] ; 8b 46 10 6360 6369 xor ah, ah ; 30 e4 6361 6370 cmp ax, 000e0h ; 3d e0 00 6362 jc short 04 6e4h ; 72 056371 jc short 0470ch ; 72 05 6363 6372 cmp ax, 000f0h ; 3d f0 00 6364 jc short 047 03h ; 72 1f6373 jc short 0472bh ; 72 1f 6365 6374 mov ax, word [bp+010h] ; 8b 46 10 6366 6375 xor ah, ah ; 30 e4 … … 6374 6383 mov ax, strict word 00004h ; b8 04 00 6375 6384 push ax ; 50 6376 call 01976h ; e8 79d26385 call 01976h ; e8 51 d2 6377 6386 add sp, strict byte 0000ah ; 83 c4 0a 6378 jmp near 04c 14h ; e9 11 056387 jmp near 04c3ch ; e9 11 05 6379 6388 mov ax, word [bp+010h] ; 8b 46 10 6380 6389 xor ah, ah ; 30 e4 … … 6384 6393 mov byte [bp-008h], dl ; 88 56 f8 6385 6394 cmp dl, 010h ; 80 fa 10 6386 jc short 047 28h ; 72 0e6395 jc short 04750h ; 72 0e 6387 6396 push ax ; 50 6388 6397 mov al, byte [bp+019h] ; 8a 46 19 … … 6391 6400 push ax ; 50 6392 6401 mov ax, 00416h ; b8 16 04 6393 jmp short 04 6f5h ; eb cd6402 jmp short 0471dh ; eb cd 6394 6403 mov al, byte [bp+019h] ; 8a 46 19 6395 6404 xor ah, ah ; 30 e4 6396 6405 mov dx, ax ; 89 c2 6397 6406 cmp ax, strict word 00050h ; 3d 50 00 6398 jnbe short 047 97h ; 77 636407 jnbe short 047bfh ; 77 63 6399 6408 push CS ; 0e 6400 6409 pop ES ; 07 6401 6410 mov cx, strict word 0001eh ; b9 1e 00 6402 mov di, 046 55h ; bf 55466411 mov di, 0467dh ; bf 7d 46 6403 6412 repne scasb ; f2 ae 6404 6413 sal cx, 1 ; d1 e1 6405 6414 mov di, cx ; 89 cf 6406 mov ax, word [cs:di+046 72h] ; 2e 8b 85 72466415 mov ax, word [cs:di+0469ah] ; 2e 8b 85 9a 46 6407 6416 mov bx, word [bp+018h] ; 8b 5e 18 6408 6417 xor bh, bh ; 30 ff … … 6411 6420 xor ah, ah ; 30 e4 6412 6421 or ah, 003h ; 80 cc 03 6413 jmp near 04c 1ch ; e9 c3 046422 jmp near 04c44h ; e9 c3 04 6414 6423 mov dx, strict word 00074h ; ba 74 00 6415 6424 mov ax, strict word 00040h ; b8 40 00 6416 call 01652h ; e8 f0ce6425 call 01652h ; e8 c8 ce 6417 6426 mov cl, al ; 88 c1 6418 6427 mov bh, al ; 88 c7 … … 6421 6430 mov dx, strict word 00074h ; ba 74 00 6422 6431 mov ax, strict word 00040h ; b8 40 00 6423 call 01660h ; e8 ecce6432 call 01660h ; e8 c4 ce 6424 6433 test cl, cl ; 84 c9 6425 je short 047 94h ; 74 1c6426 jmp near 04c 2dh ; e9 b2 046434 je short 047bch ; 74 1c 6435 jmp near 04c55h ; e9 b2 04 6427 6436 or bh, 002h ; 80 cf 02 6428 6437 mov word [bp+018h], bx ; 89 5e 18 6429 jmp near 04c 1fh ; e9 9b 046438 jmp near 04c47h ; e9 9b 04 6430 6439 mov word [bp+012h], 0aa55h ; c7 46 12 55 aa 6431 6440 or bh, 030h ; 80 cf 30 6432 6441 mov word [bp+018h], bx ; 89 5e 18 6433 6442 mov word [bp+016h], strict word 00007h ; c7 46 16 07 00 6434 jmp near 04 be0h ; e9 49 046443 jmp near 04c08h ; e9 49 04 6435 6444 mov bx, 00da0h ; bb a0 0d 6436 6445 mov cx, ds ; 8c d9 6437 6446 mov ax, strict word 00004h ; b8 04 00 6438 call 01933h ; e8 91d16447 call 01933h ; e8 69 d1 6439 6448 mov al, byte [bp+019h] ; 8a 46 19 6440 6449 xor ah, ah ; 30 e4 … … 6445 6454 push ax ; 50 6446 6455 mov ax, strict word 00004h ; b8 04 00 6447 jmp short 04 7f6h ; eb 416456 jmp short 0481eh ; eb 41 6448 6457 mov bx, word [bp+00ch] ; 8b 5e 0c 6449 6458 mov es, [bp+006h] ; 8e 46 06 … … 6460 6469 mov word [bp-012h], ax ; 89 46 ee 6461 6470 or ax, word [bp-014h] ; 0b 46 ec 6462 je short 048 00h ; 74 1b6471 je short 04828h ; 74 1b 6463 6472 mov al, byte [bp+019h] ; 8a 46 19 6464 6473 xor ah, ah ; 30 e4 … … 6470 6479 mov ax, strict word 00007h ; b8 07 00 6471 6480 push ax ; 50 6472 call 01976h ; e8 7cd16481 call 01976h ; e8 54 d1 6473 6482 add sp, strict byte 00008h ; 83 c4 08 6474 jmp near 04c 14h ; e9 14 046483 jmp near 04c3ch ; e9 14 04 6475 6484 mov es, [bp-020h] ; 8e 46 e0 6476 6485 mov ax, word [es:di+008h] ; 26 8b 45 08 … … 6483 6492 mov ax, word [bp-010h] ; 8b 46 f0 6484 6493 cmp ax, strict word 00044h ; 3d 44 00 6485 je short 048 28h ; 74 056494 je short 04850h ; 74 05 6486 6495 cmp ax, strict word 00047h ; 3d 47 00 6487 jne short 048 2bh ; 75 036488 jmp near 04 bdch ; e9 b1 036496 jne short 04853h ; 75 03 6497 jmp near 04c04h ; e9 b1 03 6489 6498 mov cx, strict word 0000ch ; b9 0c 00 6490 6499 xor bx, bx ; 31 db 6491 6500 mov dx, ss ; 8c d2 6492 6501 lea ax, [bp-02eh] ; 8d 46 d2 6493 call 0a 0d0h ; e8 98586502 call 0a100h ; e8 a0 58 6494 6503 mov word [bp-02eh], strict word 00028h ; c7 46 d2 28 00 6495 6504 mov ax, word [bp-014h] ; 8b 46 ec … … 6524 6533 sal bx, 1 ; d1 e3 6525 6534 rcl si, 1 ; d1 d6 6526 loop 048 8ah ; e2 fa6535 loop 048b2h ; e2 fa 6527 6536 push si ; 56 6528 6537 push bx ; 53 … … 6543 6552 shr dx, 1 ; d1 ea 6544 6553 rcr ax, 1 ; d1 d8 6545 loop 048 bah ; e2 fa6554 loop 048e2h ; e2 fa 6546 6555 mov es, [bp-020h] ; 8e 46 e0 6547 6556 mov word [es:di+002h], ax ; 26 89 45 02 6548 6557 cmp byte [bp-016h], 000h ; 80 7e ea 00 6549 je short 049 24h ; 74 576558 je short 0494ch ; 74 57 6550 6559 mov bx, 00da0h ; bb a0 0d 6551 6560 mov cx, ds ; 8c d9 6552 6561 mov ax, strict word 00004h ; b8 04 00 6553 call 01933h ; e8 5bd06562 call 01933h ; e8 33 d0 6554 6563 mov al, byte [bp-016h] ; 8a 46 ea 6555 6564 xor ah, ah ; 30 e4 … … 6562 6571 mov ax, strict word 00004h ; b8 04 00 6563 6572 push ax ; 50 6564 call 01976h ; e8 86d06573 call 01976h ; e8 5e d0 6565 6574 add sp, strict byte 0000ah ; 83 c4 0a 6566 6575 mov ax, word [bp+018h] ; 8b 46 18 6567 6576 xor ah, ah ; 30 e4 6568 6577 or ah, 00ch ; 80 cc 0c 6569 jmp near 04c 1ch ; e9 1e 036578 jmp near 04c44h ; e9 1e 03 6570 6579 cmp bx, strict byte 00002h ; 83 fb 02 6571 jnbe short 049 6fh ; 77 6c6580 jnbe short 04997h ; 77 6c 6572 6581 mov al, byte [bp-008h] ; 8a 46 f8 6573 6582 xor ah, ah ; 30 e4 … … 6578 6587 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6579 6588 cmp bx, strict byte 00002h ; 83 fb 02 6580 je short 049 87h ; 74 6c6589 je short 049afh ; 74 6c 6581 6590 cmp bx, strict byte 00001h ; 83 fb 01 6582 je short 049 5fh ; 74 3f6591 je short 04987h ; 74 3f 6583 6592 test bx, bx ; 85 db 6584 je short 049 27h ; 74 036585 jmp near 04 bdch ; e9 b5 026593 je short 0494fh ; 74 03 6594 jmp near 04c04h ; e9 b5 02 6586 6595 cmp cl, 0ffh ; 80 f9 ff 6587 jne short 049 3eh ; 75 126596 jne short 04966h ; 75 12 6588 6597 mov ax, word [bp+018h] ; 8b 46 18 6589 6598 xor ah, ah ; 30 e4 … … 6592 6601 xor al, al ; 30 c0 6593 6602 or AL, strict byte 001h ; 0c 01 6594 jmp near 04c 1ch ; e9 de 026603 jmp near 04c44h ; e9 de 02 6595 6604 mov al, byte [bp-008h] ; 8a 46 f8 6596 6605 xor ah, ah ; 30 e4 … … 6606 6615 or AL, strict byte 001h ; 0c 01 6607 6616 mov word [bp+018h], ax ; 89 46 18 6608 jmp short 049 24h ; eb c56617 jmp short 0494ch ; eb c5 6609 6618 test cl, cl ; 84 c9 6610 jne short 049 72h ; 75 0f6619 jne short 0499ah ; 75 0f 6611 6620 or bh, 0b0h ; 80 cf b0 6612 6621 mov word [bp+018h], bx ; 89 5e 18 6613 6622 mov byte [bp+018h], cl ; 88 4e 18 6614 jmp near 04c 1fh ; e9 b0 026615 jmp near 04c 14h ; e9 a2 026623 jmp near 04c47h ; e9 b0 02 6624 jmp near 04c3ch ; e9 a2 02 6616 6625 mov al, byte [bp-008h] ; 8a 46 f8 6617 6626 xor ah, ah ; 30 e4 … … 6624 6633 mov byte [es:bx+025h], cl ; 26 88 4f 25 6625 6634 test cl, cl ; 84 c9 6626 jne short 049 99h ; 75 0e6635 jne short 049c1h ; 75 0e 6627 6636 xor ax, ax ; 31 c0 6628 6637 mov dx, word [bp+018h] ; 8b 56 18 … … 6630 6639 or dx, ax ; 09 c2 6631 6640 mov word [bp+018h], dx ; 89 56 18 6632 jmp short 049 24h ; eb 8b6641 jmp short 0494ch ; eb 8b 6633 6642 mov ax, strict word 00001h ; b8 01 00 6634 jmp short 049 8dh ; eb ef6643 jmp short 049b5h ; eb ef 6635 6644 mov al, byte [bp-008h] ; 8a 46 f8 6636 6645 xor ah, ah ; 30 e4 … … 6641 6650 mov cl, byte [es:si+025h] ; 26 8a 4c 25 6642 6651 test cl, cl ; 84 c9 6643 je short 049 bbh ; 74 066652 je short 049e3h ; 74 06 6644 6653 or bh, 0b1h ; 80 cf b1 6645 jmp near 047 7eh ; e9 c3 fd6646 je short 04 9e2h ; 74 256654 jmp near 047a6h ; e9 c3 fd 6655 je short 04a0ah ; 74 25 6647 6656 mov ax, word [bp+018h] ; 8b 46 18 6648 6657 xor ah, ah ; 30 e4 6649 6658 or ah, 0b1h ; 80 cc b1 6650 jmp near 04c 1ch ; e9 54 026659 jmp near 04c44h ; e9 54 02 6651 6660 mov bx, word [bp+00ch] ; 8b 5e 0c 6652 6661 mov cx, word [bp+006h] ; 8b 4e 06 … … 6657 6666 mov word [bp-01eh], ax ; 89 46 e2 6658 6667 cmp ax, strict word 0001ah ; 3d 1a 00 6659 jnc short 04 9e5h ; 73 056660 jmp short 049 6fh ; eb 8d6661 jmp near 04 bdch ; e9 f7 016662 jc short 04a 47h ; 72 606668 jnc short 04a0dh ; 73 05 6669 jmp short 04997h ; eb 8d 6670 jmp near 04c04h ; e9 f7 01 6671 jc short 04a6fh ; 72 60 6663 6672 mov al, byte [bp-008h] ; 8a 46 f8 6664 6673 xor ah, ah ; 30 e4 … … 6683 6692 mov word [es:bx+016h], strict word 0ffffh ; 26 c7 47 16 ff ff 6684 6693 cmp word [bp-01eh], strict byte 0001eh ; 83 7e e2 1e 6685 jnc short 04a 50h ; 73 036686 jmp near 04b 10h ; e9 c0 006694 jnc short 04a78h ; 73 03 6695 jmp near 04b38h ; e9 c0 00 6687 6696 mov es, [bp-00ah] ; 8e 46 f6 6688 6697 mov word [es:si], strict word 0001eh ; 26 c7 04 1e 00 … … 6729 6738 xor bl, bl ; 30 db 6730 6739 xor bh, bh ; 30 ff 6731 jmp short 04 af0h ; eb 056740 jmp short 04b18h ; eb 05 6732 6741 cmp bh, 00fh ; 80 ff 0f 6733 jnc short 04b 06h ; 73 166742 jnc short 04b2eh ; 73 16 6734 6743 mov al, bh ; 88 f8 6735 6744 xor ah, ah ; 30 e4 … … 6737 6746 add dx, 00356h ; 81 c2 56 03 6738 6747 mov ax, word [bp-018h] ; 8b 46 e8 6739 call 01652h ; e8 52cb6748 call 01652h ; e8 2a cb 6740 6749 add bl, al ; 00 c3 6741 6750 db 0feh, 0c7h 6742 6751 ; inc bh ; fe c7 6743 jmp short 04 aebh ; eb e56752 jmp short 04b13h ; eb e5 6744 6753 neg bl ; f6 db 6745 6754 les di, [bp-00eh] ; c4 7e f2 6746 6755 mov byte [es:di+00243h], bl ; 26 88 9d 43 02 6747 6756 cmp word [bp-01eh], strict byte 00042h ; 83 7e e2 42 6748 jnc short 04b 19h ; 73 036749 jmp near 04 bdch ; e9 c3 006757 jnc short 04b41h ; 73 03 6758 jmp near 04c04h ; e9 c3 00 6750 6759 mov al, byte [bp-008h] ; 8a 46 f8 6751 6760 xor ah, ah ; 30 e4 … … 6767 6776 mov word [es:si+022h], strict word 00000h ; 26 c7 44 22 00 00 6768 6777 test al, al ; 84 c0 6769 jne short 04b 63h ; 75 0c6778 jne short 04b8bh ; 75 0c 6770 6779 mov word [es:si+024h], 05349h ; 26 c7 44 24 49 53 6771 6780 mov word [es:si+026h], 02041h ; 26 c7 44 26 41 20 … … 6776 6785 mov word [es:si+02eh], 02020h ; 26 c7 44 2e 20 20 6777 6786 test al, al ; 84 c0 6778 jne short 04b 98h ; 75 166787 jne short 04bc0h ; 75 16 6779 6788 mov word [es:si+030h], dx ; 26 89 54 30 6780 6789 mov word [es:si+032h], strict word 00000h ; 26 c7 44 32 00 00 … … 6791 6800 xor al, al ; 30 c0 6792 6801 mov AH, strict byte 01eh ; b4 1e 6793 jmp short 04b c3h ; eb 056802 jmp short 04bebh ; eb 05 6794 6803 cmp ah, 040h ; 80 fc 40 6795 jnc short 04b d3h ; 73 106804 jnc short 04bfbh ; 73 10 6796 6805 mov bl, ah ; 88 e3 6797 6806 xor bh, bh ; 30 ff … … 6801 6810 db 0feh, 0c4h 6802 6811 ; inc ah ; fe c4 6803 jmp short 04b beh ; eb eb6812 jmp short 04be6h ; eb eb 6804 6813 neg al ; f6 d8 6805 6814 mov es, [bp-00ah] ; 8e 46 f6 … … 6809 6818 mov dx, strict word 00074h ; ba 74 00 6810 6819 mov ax, strict word 00040h ; b8 40 00 6811 call 01660h ; e8 75ca6820 call 01660h ; e8 4d ca 6812 6821 and byte [bp+01eh], 0feh ; 80 66 1e fe 6813 6822 lea sp, [bp-004h] ; 8d 66 fc … … 6818 6827 or bh, 006h ; 80 cf 06 6819 6828 mov word [bp+018h], bx ; 89 5e 18 6820 jmp short 04c 2dh ; eb 2f6829 jmp short 04c55h ; eb 2f 6821 6830 cmp bx, strict byte 00006h ; 83 fb 06 6822 je short 04 bdch ; 74 d96831 je short 04c04h ; 74 d9 6823 6832 cmp bx, strict byte 00001h ; 83 fb 01 6824 jc short 04c 14h ; 72 0c6825 jbe short 04 bdch ; 76 d26833 jc short 04c3ch ; 72 0c 6834 jbe short 04c04h ; 76 d2 6826 6835 cmp bx, strict byte 00003h ; 83 fb 03 6827 jc short 04c 14h ; 72 056836 jc short 04c3ch ; 72 05 6828 6837 cmp bx, strict byte 00004h ; 83 fb 04 6829 jbe short 04 bdch ; 76 c86838 jbe short 04c04h ; 76 c8 6830 6839 mov ax, word [bp+018h] ; 8b 46 18 6831 6840 xor ah, ah ; 30 e4 … … 6836 6845 mov dx, strict word 00074h ; ba 74 00 6837 6846 mov ax, strict word 00040h ; b8 40 00 6838 call 01660h ; e8 33ca6847 call 01660h ; e8 0b ca 6839 6848 or byte [bp+01eh], 001h ; 80 4e 1e 01 6840 jmp short 04 befh ; eb bc6841 print_boot_device_: ; 0xf4c 33LB 0x516849 jmp short 04c17h ; eb bc 6850 print_boot_device_: ; 0xf4c5b LB 0x51 6842 6851 push bp ; 55 6843 6852 mov bp, sp ; 89 e5 6844 6853 push cx ; 51 6845 6854 test al, al ; 84 c0 6846 je short 04c 40h ; 74 056855 je short 04c68h ; 74 05 6847 6856 mov dx, strict word 00002h ; ba 02 00 6848 jmp short 04c 5ah ; eb 1a6857 jmp short 04c82h ; eb 1a 6849 6858 test dl, dl ; 84 d2 6850 je short 04c 49h ; 74 056859 je short 04c71h ; 74 05 6851 6860 mov dx, strict word 00003h ; ba 03 00 6852 jmp short 04c 5ah ; eb 116861 jmp short 04c82h ; eb 11 6853 6862 test bl, 080h ; f6 c3 80 6854 jne short 04c 52h ; 75 046863 jne short 04c7ah ; 75 04 6855 6864 xor dh, dh ; 30 f6 6856 jmp short 04c 5ah ; eb 086865 jmp short 04c82h ; eb 08 6857 6866 test bl, 080h ; f6 c3 80 6858 je short 04c 7eh ; 74 276867 je short 04ca6h ; 74 27 6859 6868 mov dx, strict word 00001h ; ba 01 00 6860 6869 mov bx, 00da0h ; bb a0 0d 6861 6870 mov cx, ds ; 8c d9 6862 6871 mov ax, strict word 00004h ; b8 04 00 6863 call 01933h ; e8 cecc6872 call 01933h ; e8 a6 cc 6864 6873 mov ax, dx ; 89 d0 6865 6874 mov dx, strict word 0000ah ; ba 0a 00 … … 6871 6880 mov ax, strict word 00004h ; b8 04 00 6872 6881 push ax ; 50 6873 call 01976h ; e8 fbcc6882 call 01976h ; e8 d3 cc 6874 6883 add sp, strict byte 00006h ; 83 c4 06 6875 6884 lea sp, [bp-002h] ; 8d 66 fe … … 6877 6886 pop bp ; 5d 6878 6887 retn ; c3 6879 print_boot_failure_: ; 0xf4c 84LB 0x9f6888 print_boot_failure_: ; 0xf4cac LB 0x9f 6880 6889 push bp ; 55 6881 6890 mov bp, sp ; 89 e5 … … 6887 6896 mov si, cx ; 89 ce 6888 6897 test al, al ; 84 c0 6889 je short 04c b6h ; 74 1f6898 je short 04cdeh ; 74 1f 6890 6899 mov bx, 00da0h ; bb a0 0d 6891 6900 mov cx, ds ; 8c d9 6892 6901 mov ax, strict word 00004h ; b8 04 00 6893 call 01933h ; e8 91cc6902 call 01933h ; e8 69 cc 6894 6903 mov cx, 00ddah ; b9 da 0d 6895 6904 push cx ; 51 … … 6898 6907 mov cx, strict word 00004h ; b9 04 00 6899 6908 push cx ; 51 6900 call 01976h ; e8 c5cc6909 call 01976h ; e8 9d cc 6901 6910 add sp, strict byte 00006h ; 83 c4 06 6902 jmp short 04 cfeh ; eb 486911 jmp short 04d26h ; eb 48 6903 6912 test dl, dl ; 84 d2 6904 je short 04c cah ; 74 106913 je short 04cf2h ; 74 10 6905 6914 mov bx, 00da0h ; bb a0 0d 6906 6915 mov cx, ds ; 8c d9 6907 6916 mov ax, strict word 00004h ; b8 04 00 6908 call 01933h ; e8 6ecc6917 call 01933h ; e8 46 cc 6909 6918 mov cx, 00de4h ; b9 e4 0d 6910 jmp short 04c a5h ; eb db6919 jmp short 04ccdh ; eb db 6911 6920 test bl, 080h ; f6 c3 80 6912 je short 04 ce0h ; 74 116921 je short 04d08h ; 74 11 6913 6922 mov bx, 00da0h ; bb a0 0d 6914 6923 mov cx, ds ; 8c d9 6915 6924 mov ax, strict word 00004h ; b8 04 00 6916 call 01933h ; e8 59cc6925 call 01933h ; e8 31 cc 6917 6926 push si ; 56 6918 6927 mov cx, 00dd0h ; b9 d0 0d 6919 jmp short 04 cefh ; eb 0f6928 jmp short 04d17h ; eb 0f 6920 6929 mov bx, 00da0h ; bb a0 0d 6921 6930 mov cx, ds ; 8c d9 6922 6931 mov ax, strict word 00004h ; b8 04 00 6923 call 01933h ; e8 48cc6932 call 01933h ; e8 20 cc 6924 6933 push si ; 56 6925 6934 mov cx, 00dc6h ; b9 c6 0d … … 6929 6938 mov cx, strict word 00004h ; b9 04 00 6930 6939 push cx ; 51 6931 call 01976h ; e8 7bcc6940 call 01976h ; e8 53 cc 6932 6941 add sp, strict byte 00008h ; 83 c4 08 6933 6942 cmp byte [bp+004h], 001h ; 80 7e 04 01 6934 jne short 04d 1bh ; 75 176943 jne short 04d43h ; 75 17 6935 6944 test dh, dh ; 84 f6 6936 jne short 04d 0dh ; 75 056945 jne short 04d35h ; 75 05 6937 6946 mov dx, 004d5h ; ba d5 04 6938 jmp short 04d 10h ; eb 036947 jmp short 04d38h ; eb 03 6939 6948 mov dx, 004ffh ; ba ff 04 6940 6949 push dx ; 52 6941 6950 mov dx, strict word 00007h ; ba 07 00 6942 6951 push dx ; 52 6943 call 01976h ; e8 5ecc6952 call 01976h ; e8 36 cc 6944 6953 add sp, strict byte 00004h ; 83 c4 04 6945 6954 lea sp, [bp-002h] ; 8d 66 fe … … 6947 6956 pop bp ; 5d 6948 6957 retn 00002h ; c2 02 00 6949 print_cdromboot_failure_: ; 0xf4d 23LB 0x2a6958 print_cdromboot_failure_: ; 0xf4d4b LB 0x2a 6950 6959 push bp ; 55 6951 6960 mov bp, sp ; 89 e5 … … 6957 6966 mov cx, ds ; 8c d9 6958 6967 mov ax, strict word 00004h ; b8 04 00 6959 call 01933h ; e8 fdcb6968 call 01933h ; e8 d5 cb 6960 6969 push dx ; 52 6961 6970 mov dx, 00534h ; ba 34 05 … … 6963 6972 mov dx, strict word 00004h ; ba 04 00 6964 6973 push dx ; 52 6965 call 01976h ; e8 34cc6974 call 01976h ; e8 0c cc 6966 6975 add sp, strict byte 00006h ; 83 c4 06 6967 6976 lea sp, [bp-006h] ; 8d 66 fa … … 6971 6980 pop bp ; 5d 6972 6981 retn ; c3 6973 _int19_function: ; 0xf4d 4dLB 0x28d6982 _int19_function: ; 0xf4d75 LB 0x28d 6974 6983 push bp ; 55 6975 6984 mov bp, sp ; 89 e5 … … 6979 6988 mov dx, strict word 0000eh ; ba 0e 00 6980 6989 mov ax, strict word 00040h ; b8 40 00 6981 call 0166eh ; e8 10 c96990 call 0166eh ; e8 e8 c8 6982 6991 mov bx, ax ; 89 c3 6983 6992 mov di, ax ; 89 c7 6984 6993 mov byte [bp-00ch], 000h ; c6 46 f4 00 6985 6994 mov ax, strict word 0003dh ; b8 3d 00 6986 call 016aeh ; e8 42c96995 call 016aeh ; e8 1a c9 6987 6996 mov dl, al ; 88 c2 6988 6997 xor dh, dh ; 30 f6 6989 6998 mov word [bp-00eh], dx ; 89 56 f2 6990 6999 mov ax, strict word 00038h ; b8 38 00 6991 call 016aeh ; e8 35c97000 call 016aeh ; e8 0d c9 6992 7001 and AL, strict byte 0f0h ; 24 f0 6993 7002 mov byte [bp-010h], al ; 88 46 f0 … … 6999 7008 mov word [bp-00eh], dx ; 89 56 f2 7000 7009 mov ax, strict word 0003ch ; b8 3c 00 7001 call 016aeh ; e8 1b c97010 call 016aeh ; e8 f3 c8 7002 7011 and AL, strict byte 00fh ; 24 0f 7003 7012 xor ah, ah ; 30 e4 … … 7007 7016 mov dx, 0037dh ; ba 7d 03 7008 7017 mov ax, bx ; 89 d8 7009 call 01652h ; e8 acc87018 call 01652h ; e8 84 c8 7010 7019 test al, al ; 84 c0 7011 je short 04d b7h ; 74 0d7020 je short 04ddfh ; 74 0d 7012 7021 mov dx, 0037dh ; ba 7d 03 7013 7022 mov ax, bx ; 89 d8 7014 call 01652h ; e8 a0c87023 call 01652h ; e8 78 c8 7015 7024 xor ah, ah ; 30 e4 7016 7025 mov word [bp-00eh], ax ; 89 46 f2 7017 7026 cmp byte [bp+004h], 001h ; 80 7e 04 01 7018 jne short 04d ceh ; 75 117027 jne short 04df6h ; 75 11 7019 7028 mov ax, strict word 0003ch ; b8 3c 00 7020 call 016aeh ; e8 ebc87029 call 016aeh ; e8 c3 c8 7021 7030 and AL, strict byte 0f0h ; 24 f0 7022 7031 xor ah, ah ; 30 e4 7023 7032 mov CL, strict byte 004h ; b1 04 7024 7033 sar ax, CL ; d3 f8 7025 call 07 de9h ; e8 1b 307034 call 07e11h ; e8 1b 30 7026 7035 cmp byte [bp+004h], 002h ; 80 7e 04 02 7027 jne short 04 dd9h ; 75 057036 jne short 04e01h ; 75 05 7028 7037 mov CL, strict byte 004h ; b1 04 7029 7038 shr word [bp-00eh], CL ; d3 6e f2 7030 7039 cmp byte [bp+004h], 003h ; 80 7e 04 03 7031 jne short 04 de7h ; 75 087040 jne short 04e0fh ; 75 08 7032 7041 mov al, byte [bp-00dh] ; 8a 46 f3 7033 7042 xor ah, ah ; 30 e4 7034 7043 mov word [bp-00eh], ax ; 89 46 f2 7035 7044 cmp byte [bp+004h], 004h ; 80 7e 04 04 7036 jne short 04 df2h ; 75 057045 jne short 04e1ah ; 75 05 7037 7046 mov CL, strict byte 00ch ; b1 0c 7038 7047 shr word [bp-00eh], CL ; d3 6e f2 7039 7048 cmp word [bp-00eh], strict byte 00010h ; 83 7e f2 10 7040 jnc short 04 dfch ; 73 047049 jnc short 04e24h ; 73 04 7041 7050 mov byte [bp-00ch], 001h ; c6 46 f4 01 7042 7051 xor al, al ; 30 c0 … … 7047 7056 mov cx, ds ; 8c d9 7048 7057 mov ax, strict word 00004h ; b8 04 00 7049 call 01933h ; e8 21 cb7058 call 01933h ; e8 f9 ca 7050 7059 push word [bp-00eh] ; ff 76 f2 7051 7060 mov al, byte [bp+004h] ; 8a 46 04 … … 7056 7065 mov ax, strict word 00004h ; b8 04 00 7057 7066 push ax ; 50 7058 call 01976h ; e8 50cb7067 call 01976h ; e8 28 cb 7059 7068 add sp, strict byte 00008h ; 83 c4 08 7060 7069 mov ax, word [bp-00eh] ; 8b 46 f2 7061 7070 and ax, strict word 0000fh ; 25 0f 00 7062 7071 cmp ax, strict word 00002h ; 3d 02 00 7063 jc short 04e 42h ; 72 0e7064 jbe short 04e 51h ; 76 1b7072 jc short 04e6ah ; 72 0e 7073 jbe short 04e79h ; 76 1b 7065 7074 cmp ax, strict word 00004h ; 3d 04 00 7066 je short 04e 6eh ; 74 337075 je short 04e96h ; 74 33 7067 7076 cmp ax, strict word 00003h ; 3d 03 00 7068 je short 04e 64h ; 74 247069 jmp short 04e 9dh ; eb 5b7077 je short 04e8ch ; 74 24 7078 jmp short 04ec5h ; eb 5b 7070 7079 cmp ax, strict word 00001h ; 3d 01 00 7071 jne short 04e 9dh ; 75 567080 jne short 04ec5h ; 75 56 7072 7081 xor al, al ; 30 c0 7073 7082 mov byte [bp-006h], al ; 88 46 fa 7074 7083 mov byte [bp-008h], al ; 88 46 f8 7075 jmp short 04e b1h ; eb 607084 jmp short 04ed9h ; eb 60 7076 7085 mov dx, 0037ch ; ba 7c 03 7077 7086 mov ax, di ; 89 f8 7078 call 01652h ; e8 f9c77087 call 01652h ; e8 d1 c7 7079 7088 add AL, strict byte 080h ; 04 80 7080 7089 mov byte [bp-006h], al ; 88 46 fa 7081 7090 mov byte [bp-008h], 000h ; c6 46 f8 00 7082 jmp short 04e b1h ; eb 4d7091 jmp short 04ed9h ; eb 4d 7083 7092 mov byte [bp-006h], 000h ; c6 46 fa 00 7084 7093 mov byte [bp-008h], 001h ; c6 46 f8 01 7085 jmp short 04e 78h ; eb 0a7094 jmp short 04ea0h ; eb 0a 7086 7095 mov byte [bp-00ah], 001h ; c6 46 f6 01 7087 7096 cmp byte [bp-008h], 000h ; 80 7e f8 00 7088 je short 04e b1h ; 74 397089 call 03e 1eh ; e8 a3ef7097 je short 04ed9h ; 74 39 7098 call 03e45h ; e8 a2 ef 7090 7099 mov bx, ax ; 89 c3 7091 7100 test AL, strict byte 0ffh ; a8 ff 7092 je short 04e a4h ; 74 237093 call 04d 23h ; e8 9f fe7101 je short 04ecch ; 74 23 7102 call 04d4bh ; e8 9f fe 7094 7103 mov al, byte [bp-00ch] ; 8a 46 f4 7095 7104 xor ah, ah ; 30 e4 … … 7101 7110 mov al, byte [bp-008h] ; 8a 46 f8 7102 7111 mov cx, strict word 00001h ; b9 01 00 7103 call 04c 84h ; e8 e7 fd7112 call 04cach ; e8 e7 fd 7104 7113 xor ax, ax ; 31 c0 7105 7114 xor dx, dx ; 31 d2 7106 jmp near 04f d3h ; e9 2f 017115 jmp near 04ffbh ; e9 2f 01 7107 7116 mov dx, 00372h ; ba 72 03 7108 7117 mov ax, di ; 89 f8 7109 call 0166eh ; e8 c2c77118 call 0166eh ; e8 9a c7 7110 7119 mov si, ax ; 89 c6 7111 7120 mov byte [bp-006h], bh ; 88 7e fa 7112 7121 cmp byte [bp-00ah], 001h ; 80 7e f6 01 7113 jne short 04f 0ch ; 75 557122 jne short 04f34h ; 75 55 7114 7123 xor si, si ; 31 f6 7115 7124 mov ax, 0e200h ; b8 00 e2 7116 7125 mov es, ax ; 8e c0 7117 7126 cmp word [es:si], 0aa55h ; 26 81 3c 55 aa 7118 jne short 04e 84h ; 75 bf7127 jne short 04each ; 75 bf 7119 7128 mov cx, ax ; 89 c1 7120 7129 mov si, word [es:si+01ah] ; 26 8b 74 1a 7121 7130 cmp word [es:si+002h], 0506eh ; 26 81 7c 02 6e 50 7122 jne short 04e 84h ; 75 b17131 jne short 04each ; 75 b1 7123 7132 cmp word [es:si], 05024h ; 26 81 3c 24 50 7124 jne short 04e 84h ; 75 aa7133 jne short 04each ; 75 aa 7125 7134 mov bx, word [es:si+00eh] ; 26 8b 5c 0e 7126 7135 mov dx, word [es:bx] ; 26 8b 17 7127 7136 mov ax, word [es:bx+002h] ; 26 8b 47 02 7128 7137 cmp ax, 06568h ; 3d 68 65 7129 jne short 04f 0eh ; 75 247138 jne short 04f36h ; 75 24 7130 7139 cmp dx, 07445h ; 81 fa 45 74 7131 jne short 04f 0eh ; 75 1e7140 jne short 04f36h ; 75 1e 7132 7141 mov bl, byte [bp-006h] ; 8a 5e fa 7133 7142 xor bh, bh ; 30 ff … … 7136 7145 mov al, byte [bp-008h] ; 8a 46 f8 7137 7146 xor ah, ah ; 30 e4 7138 call 04c 33h ; e8 31 fd7147 call 04c5bh ; e8 31 fd 7139 7148 mov word [bp-014h], strict word 00006h ; c7 46 ec 06 00 7140 7149 mov word [bp-012h], cx ; 89 4e ee 7141 jmp short 04f 2dh ; eb 217142 jmp short 04f 33h ; eb 257150 jmp short 04f55h ; eb 21 7151 jmp short 04f5bh ; eb 25 7143 7152 mov bl, byte [bp-006h] ; 8a 5e fa 7144 7153 xor bh, bh ; 30 ff … … 7147 7156 mov al, byte [bp-008h] ; 8a 46 f8 7148 7157 xor ah, ah ; 30 e4 7149 call 04c 33h ; e8 13 fd7158 call 04c5bh ; e8 13 fd 7150 7159 sti ; fb 7151 7160 mov word [bp-012h], cx ; 89 4e ee … … 7154 7163 mov word [bp-014h], ax ; 89 46 ec 7155 7164 call far [bp-014h] ; ff 5e ec 7156 jmp near 04e 84h ; e9 51 ff7165 jmp near 04each ; e9 51 ff 7157 7166 cmp byte [bp-008h], 000h ; 80 7e f8 00 7158 jne short 04f 60h ; 75 277167 jne short 04f88h ; 75 27 7159 7168 cmp byte [bp-00ah], 000h ; 80 7e f6 00 7160 jne short 04f 60h ; 75 217169 jne short 04f88h ; 75 21 7161 7170 mov si, 007c0h ; be c0 07 7162 7171 mov es, si ; 8e c6 … … 7171 7180 sbb ax, strict byte 00000h ; 83 d8 00 7172 7181 test ax, ax ; 85 c0 7173 je short 04f 60h ; 74 037174 jmp near 04e 84h ; e9 24 ff7182 je short 04f88h ; 74 03 7183 jmp near 04each ; e9 24 ff 7175 7184 cmp byte [bp-006h], 000h ; 80 7e fa 00 7176 je short 04f 6ah ; 74 047185 je short 04f92h ; 74 04 7177 7186 xor bl, bl ; 30 db 7178 jmp short 04f 6ch ; eb 027187 jmp short 04f94h ; eb 02 7179 7188 mov BL, strict byte 001h ; b3 01 7180 7189 cmp byte [bp-008h], 000h ; 80 7e f8 00 7181 je short 04f 74h ; 74 027190 je short 04f9ch ; 74 02 7182 7191 mov BL, strict byte 001h ; b3 01 7183 7192 xor dx, dx ; 31 d2 7184 7193 mov ax, si ; 89 f0 7185 call 0166eh ; e8 f3c67194 call 0166eh ; e8 cb c6 7186 7195 mov di, ax ; 89 c7 7187 7196 mov dx, strict word 00002h ; ba 02 00 7188 7197 mov ax, si ; 89 f0 7189 call 0166eh ; e8 e9c67198 call 0166eh ; e8 c1 c6 7190 7199 cmp di, ax ; 39 c7 7191 je short 04f 9ah ; 74 117200 je short 04fc2h ; 74 11 7192 7201 test bl, bl ; 84 db 7193 jne short 04f b2h ; 75 257202 jne short 04fdah ; 75 25 7194 7203 mov dx, 001feh ; ba fe 01 7195 7204 mov ax, si ; 89 f0 7196 call 0166eh ; e8 d9c67205 call 0166eh ; e8 b1 c6 7197 7206 cmp ax, 0aa55h ; 3d 55 aa 7198 je short 04f b2h ; 74 187207 je short 04fdah ; 74 18 7199 7208 mov al, byte [bp-00ch] ; 8a 46 f4 7200 7209 xor ah, ah ; 30 e4 … … 7206 7215 mov al, byte [bp-008h] ; 8a 46 f8 7207 7216 xor cx, cx ; 31 c9 7208 jmp near 04e 9ah ; e9 e8 fe7217 jmp near 04ec2h ; e9 e8 fe 7209 7218 mov bl, byte [bp-006h] ; 8a 5e fa 7210 7219 xor bh, bh ; 30 ff … … 7213 7222 mov al, byte [bp-008h] ; 8a 46 f8 7214 7223 xor ah, ah ; 30 e4 7215 call 04c 33h ; e8 6f fc7224 call 04c5bh ; e8 6f fc 7216 7225 mov al, byte [bp-006h] ; 8a 46 fa 7217 7226 xor ah, ah ; 30 e4 … … 7226 7235 pop bp ; 5d 7227 7236 retn ; c3 7228 keyboard_panic_: ; 0xf 4fdaLB 0x167237 keyboard_panic_: ; 0xf5002 LB 0x16 7229 7238 push bp ; 55 7230 7239 mov bp, sp ; 89 e5 … … 7234 7243 mov ax, strict word 00007h ; b8 07 00 7235 7244 push ax ; 50 7236 call 01976h ; e8 8dc97245 call 01976h ; e8 65 c9 7237 7246 add sp, strict byte 00006h ; 83 c4 06 7238 7247 mov sp, bp ; 89 ec 7239 7248 pop bp ; 5d 7240 7249 retn ; c3 7241 _keyboard_init: ; 0xf 4ff0LB 0x26a7250 _keyboard_init: ; 0xf5018 LB 0x26a 7242 7251 push bp ; 55 7243 7252 mov bp, sp ; 89 e5 … … 7251 7260 ; sub ah, ah ; 2a e4 7252 7261 test AL, strict byte 002h ; a8 02 7253 je short 050 13h ; 74 0d7262 je short 0503bh ; 74 0d 7254 7263 dec bx ; 4b 7255 7264 test bx, bx ; 85 db 7256 jbe short 050 13h ; 76 087265 jbe short 0503bh ; 76 08 7257 7266 xor al, al ; 30 c0 7258 7267 mov dx, 00080h ; ba 80 00 7259 7268 out DX, AL ; ee 7260 jmp short 0 4ffch ; eb e97269 jmp short 05024h ; eb e9 7261 7270 test bx, bx ; 85 db 7262 jne short 050 1ch ; 75 057271 jne short 05044h ; 75 05 7263 7272 xor ax, ax ; 31 c0 7264 call 0 4fdah ; e8 be ff7273 call 05002h ; e8 be ff 7265 7274 mov bx, strict word 0ffffh ; bb ff ff 7266 7275 mov dx, strict word 00064h ; ba 64 00 … … 7269 7278 ; sub ah, ah ; 2a e4 7270 7279 test AL, strict byte 001h ; a8 01 7271 jne short 050 36h ; 75 0d7280 jne short 0505eh ; 75 0d 7272 7281 dec bx ; 4b 7273 7282 test bx, bx ; 85 db 7274 jbe short 050 36h ; 76 087283 jbe short 0505eh ; 76 08 7275 7284 mov AL, strict byte 001h ; b0 01 7276 7285 mov dx, 00080h ; ba 80 00 7277 7286 out DX, AL ; ee 7278 jmp short 050 1fh ; eb e97287 jmp short 05047h ; eb e9 7279 7288 test bx, bx ; 85 db 7280 jne short 050 40h ; 75 067289 jne short 05068h ; 75 06 7281 7290 mov ax, strict word 00001h ; b8 01 00 7282 call 0 4fdah ; e8 9a ff7291 call 05002h ; e8 9a ff 7283 7292 mov dx, strict word 00060h ; ba 60 00 7284 7293 in AL, DX ; ec … … 7286 7295 ; sub ah, ah ; 2a e4 7287 7296 cmp ax, strict word 00055h ; 3d 55 00 7288 je short 050 51h ; 74 067297 je short 05079h ; 74 06 7289 7298 mov ax, 003dfh ; b8 df 03 7290 call 0 4fdah ; e8 89 ff7299 call 05002h ; e8 89 ff 7291 7300 mov AL, strict byte 0abh ; b0 ab 7292 7301 mov dx, strict word 00064h ; ba 64 00 … … 7298 7307 ; sub ah, ah ; 2a e4 7299 7308 test AL, strict byte 002h ; a8 02 7300 je short 050 71h ; 74 0d7309 je short 05099h ; 74 0d 7301 7310 dec bx ; 4b 7302 7311 test bx, bx ; 85 db 7303 jbe short 050 71h ; 76 087312 jbe short 05099h ; 76 08 7304 7313 mov AL, strict byte 010h ; b0 10 7305 7314 mov dx, 00080h ; ba 80 00 7306 7315 out DX, AL ; ee 7307 jmp short 050 5ah ; eb e97316 jmp short 05082h ; eb e9 7308 7317 test bx, bx ; 85 db 7309 jne short 050 7bh ; 75 067318 jne short 050a3h ; 75 06 7310 7319 mov ax, strict word 0000ah ; b8 0a 00 7311 call 0 4fdah ; e8 5f ff7320 call 05002h ; e8 5f ff 7312 7321 mov bx, strict word 0ffffh ; bb ff ff 7313 7322 mov dx, strict word 00064h ; ba 64 00 … … 7316 7325 ; sub ah, ah ; 2a e4 7317 7326 test AL, strict byte 001h ; a8 01 7318 jne short 050 95h ; 75 0d7327 jne short 050bdh ; 75 0d 7319 7328 dec bx ; 4b 7320 7329 test bx, bx ; 85 db 7321 jbe short 050 95h ; 76 087330 jbe short 050bdh ; 76 08 7322 7331 mov AL, strict byte 011h ; b0 11 7323 7332 mov dx, 00080h ; ba 80 00 7324 7333 out DX, AL ; ee 7325 jmp short 050 7eh ; eb e97334 jmp short 050a6h ; eb e9 7326 7335 test bx, bx ; 85 db 7327 jne short 050 9fh ; 75 067336 jne short 050c7h ; 75 06 7328 7337 mov ax, strict word 0000bh ; b8 0b 00 7329 call 0 4fdah ; e8 3b ff7338 call 05002h ; e8 3b ff 7330 7339 mov dx, strict word 00060h ; ba 60 00 7331 7340 in AL, DX ; ec … … 7333 7342 ; sub ah, ah ; 2a e4 7334 7343 test ax, ax ; 85 c0 7335 je short 050 afh ; 74 067344 je short 050d7h ; 74 06 7336 7345 mov ax, 003e0h ; b8 e0 03 7337 call 0 4fdah ; e8 2b ff7346 call 05002h ; e8 2b ff 7338 7347 mov AL, strict byte 0ffh ; b0 ff 7339 7348 mov dx, strict word 00060h ; ba 60 00 … … 7345 7354 ; sub ah, ah ; 2a e4 7346 7355 test AL, strict byte 002h ; a8 02 7347 je short 050 cfh ; 74 0d7356 je short 050f7h ; 74 0d 7348 7357 dec bx ; 4b 7349 7358 test bx, bx ; 85 db 7350 jbe short 050 cfh ; 76 087359 jbe short 050f7h ; 76 08 7351 7360 mov AL, strict byte 020h ; b0 20 7352 7361 mov dx, 00080h ; ba 80 00 7353 7362 out DX, AL ; ee 7354 jmp short 050 b8h ; eb e97363 jmp short 050e0h ; eb e9 7355 7364 test bx, bx ; 85 db 7356 jne short 05 0d9h ; 75 067365 jne short 05101h ; 75 06 7357 7366 mov ax, strict word 00014h ; b8 14 00 7358 call 0 4fdah ; e8 01 ff7367 call 05002h ; e8 01 ff 7359 7368 mov bx, strict word 0ffffh ; bb ff ff 7360 7369 mov dx, strict word 00064h ; ba 64 00 … … 7363 7372 ; sub ah, ah ; 2a e4 7364 7373 test AL, strict byte 001h ; a8 01 7365 jne short 05 0f3h ; 75 0d7374 jne short 0511bh ; 75 0d 7366 7375 dec bx ; 4b 7367 7376 test bx, bx ; 85 db 7368 jbe short 05 0f3h ; 76 087377 jbe short 0511bh ; 76 08 7369 7378 mov AL, strict byte 021h ; b0 21 7370 7379 mov dx, 00080h ; ba 80 00 7371 7380 out DX, AL ; ee 7372 jmp short 05 0dch ; eb e97381 jmp short 05104h ; eb e9 7373 7382 test bx, bx ; 85 db 7374 jne short 05 0fdh ; 75 067383 jne short 05125h ; 75 06 7375 7384 mov ax, strict word 00015h ; b8 15 00 7376 call 0 4fdah ; e8 dd fe7385 call 05002h ; e8 dd fe 7377 7386 mov dx, strict word 00060h ; ba 60 00 7378 7387 in AL, DX ; ec … … 7380 7389 ; sub ah, ah ; 2a e4 7381 7390 cmp ax, 000fah ; 3d fa 00 7382 je short 051 0eh ; 74 067391 je short 05136h ; 74 06 7383 7392 mov ax, 003e1h ; b8 e1 03 7384 call 0 4fdah ; e8 cc fe7393 call 05002h ; e8 cc fe 7385 7394 mov dx, strict word 00064h ; ba 64 00 7386 7395 in AL, DX ; ec … … 7388 7397 ; sub ah, ah ; 2a e4 7389 7398 test AL, strict byte 001h ; a8 01 7390 jne short 051 20h ; 75 087399 jne short 05148h ; 75 08 7391 7400 mov AL, strict byte 031h ; b0 31 7392 7401 mov dx, 00080h ; ba 80 00 7393 7402 out DX, AL ; ee 7394 jmp short 051 0eh ; eb ee7403 jmp short 05136h ; eb ee 7395 7404 mov dx, strict word 00060h ; ba 60 00 7396 7405 in AL, DX ; ec … … 7398 7407 ; sub ah, ah ; 2a e4 7399 7408 cmp ax, 000aah ; 3d aa 00 7400 je short 051 39h ; 74 0e7409 je short 05161h ; 74 0e 7401 7410 in AL, DX ; ec 7402 7411 db 02ah, 0e4h 7403 7412 ; sub ah, ah ; 2a e4 7404 7413 cmp ax, 000aah ; 3d aa 00 7405 je short 051 39h ; 74 067414 je short 05161h ; 74 06 7406 7415 mov ax, 003e2h ; b8 e2 03 7407 call 0 4fdah ; e8 a1 fe7416 call 05002h ; e8 a1 fe 7408 7417 mov AL, strict byte 0f5h ; b0 f5 7409 7418 mov dx, strict word 00060h ; ba 60 00 … … 7415 7424 ; sub ah, ah ; 2a e4 7416 7425 test AL, strict byte 002h ; a8 02 7417 je short 051 59h ; 74 0d7426 je short 05181h ; 74 0d 7418 7427 dec bx ; 4b 7419 7428 test bx, bx ; 85 db 7420 jbe short 051 59h ; 76 087429 jbe short 05181h ; 76 08 7421 7430 mov AL, strict byte 040h ; b0 40 7422 7431 mov dx, 00080h ; ba 80 00 7423 7432 out DX, AL ; ee 7424 jmp short 051 42h ; eb e97433 jmp short 0516ah ; eb e9 7425 7434 test bx, bx ; 85 db 7426 jne short 051 63h ; 75 067435 jne short 0518bh ; 75 06 7427 7436 mov ax, strict word 00028h ; b8 28 00 7428 call 0 4fdah ; e8 77 fe7437 call 05002h ; e8 77 fe 7429 7438 mov bx, strict word 0ffffh ; bb ff ff 7430 7439 mov dx, strict word 00064h ; ba 64 00 … … 7433 7442 ; sub ah, ah ; 2a e4 7434 7443 test AL, strict byte 001h ; a8 01 7435 jne short 051 7dh ; 75 0d7444 jne short 051a5h ; 75 0d 7436 7445 dec bx ; 4b 7437 7446 test bx, bx ; 85 db 7438 jbe short 051 7dh ; 76 087447 jbe short 051a5h ; 76 08 7439 7448 mov AL, strict byte 041h ; b0 41 7440 7449 mov dx, 00080h ; ba 80 00 7441 7450 out DX, AL ; ee 7442 jmp short 051 66h ; eb e97451 jmp short 0518eh ; eb e9 7443 7452 test bx, bx ; 85 db 7444 jne short 051 87h ; 75 067453 jne short 051afh ; 75 06 7445 7454 mov ax, strict word 00029h ; b8 29 00 7446 call 0 4fdah ; e8 53 fe7455 call 05002h ; e8 53 fe 7447 7456 mov dx, strict word 00060h ; ba 60 00 7448 7457 in AL, DX ; ec … … 7450 7459 ; sub ah, ah ; 2a e4 7451 7460 cmp ax, 000fah ; 3d fa 00 7452 je short 051 98h ; 74 067461 je short 051c0h ; 74 06 7453 7462 mov ax, 003e3h ; b8 e3 03 7454 call 0 4fdah ; e8 42 fe7463 call 05002h ; e8 42 fe 7455 7464 mov AL, strict byte 060h ; b0 60 7456 7465 mov dx, strict word 00064h ; ba 64 00 … … 7462 7471 ; sub ah, ah ; 2a e4 7463 7472 test AL, strict byte 002h ; a8 02 7464 je short 051 b8h ; 74 0d7473 je short 051e0h ; 74 0d 7465 7474 dec bx ; 4b 7466 7475 test bx, bx ; 85 db 7467 jbe short 051 b8h ; 76 087476 jbe short 051e0h ; 76 08 7468 7477 mov AL, strict byte 050h ; b0 50 7469 7478 mov dx, 00080h ; ba 80 00 7470 7479 out DX, AL ; ee 7471 jmp short 051 a1h ; eb e97480 jmp short 051c9h ; eb e9 7472 7481 test bx, bx ; 85 db 7473 jne short 051 c2h ; 75 067482 jne short 051eah ; 75 06 7474 7483 mov ax, strict word 00032h ; b8 32 00 7475 call 0 4fdah ; e8 18 fe7484 call 05002h ; e8 18 fe 7476 7485 mov AL, strict byte 065h ; b0 65 7477 7486 mov dx, strict word 00060h ; ba 60 00 … … 7483 7492 ; sub ah, ah ; 2a e4 7484 7493 test AL, strict byte 002h ; a8 02 7485 je short 05 1e2h ; 74 0d7494 je short 0520ah ; 74 0d 7486 7495 dec bx ; 4b 7487 7496 test bx, bx ; 85 db 7488 jbe short 05 1e2h ; 76 087497 jbe short 0520ah ; 76 08 7489 7498 mov AL, strict byte 060h ; b0 60 7490 7499 mov dx, 00080h ; ba 80 00 7491 7500 out DX, AL ; ee 7492 jmp short 051 cbh ; eb e97501 jmp short 051f3h ; eb e9 7493 7502 test bx, bx ; 85 db 7494 jne short 05 1ech ; 75 067503 jne short 05214h ; 75 06 7495 7504 mov ax, strict word 0003ch ; b8 3c 00 7496 call 0 4fdah ; e8 ee fd7505 call 05002h ; e8 ee fd 7497 7506 mov AL, strict byte 0f4h ; b0 f4 7498 7507 mov dx, strict word 00060h ; ba 60 00 … … 7504 7513 ; sub ah, ah ; 2a e4 7505 7514 test AL, strict byte 002h ; a8 02 7506 je short 052 0ch ; 74 0d7515 je short 05234h ; 74 0d 7507 7516 dec bx ; 4b 7508 7517 test bx, bx ; 85 db 7509 jbe short 052 0ch ; 76 087518 jbe short 05234h ; 76 08 7510 7519 mov AL, strict byte 070h ; b0 70 7511 7520 mov dx, 00080h ; ba 80 00 7512 7521 out DX, AL ; ee 7513 jmp short 05 1f5h ; eb e97522 jmp short 0521dh ; eb e9 7514 7523 test bx, bx ; 85 db 7515 jne short 052 16h ; 75 067524 jne short 0523eh ; 75 06 7516 7525 mov ax, strict word 00046h ; b8 46 00 7517 call 0 4fdah ; e8 c4 fd7526 call 05002h ; e8 c4 fd 7518 7527 mov bx, strict word 0ffffh ; bb ff ff 7519 7528 mov dx, strict word 00064h ; ba 64 00 … … 7522 7531 ; sub ah, ah ; 2a e4 7523 7532 test AL, strict byte 001h ; a8 01 7524 jne short 052 30h ; 75 0d7533 jne short 05258h ; 75 0d 7525 7534 dec bx ; 4b 7526 7535 test bx, bx ; 85 db 7527 jbe short 052 30h ; 76 087536 jbe short 05258h ; 76 08 7528 7537 mov AL, strict byte 071h ; b0 71 7529 7538 mov dx, 00080h ; ba 80 00 7530 7539 out DX, AL ; ee 7531 jmp short 052 19h ; eb e97540 jmp short 05241h ; eb e9 7532 7541 test bx, bx ; 85 db 7533 jne short 052 3ah ; 75 067542 jne short 05262h ; 75 06 7534 7543 mov ax, strict word 00046h ; b8 46 00 7535 call 0 4fdah ; e8 a0 fd7544 call 05002h ; e8 a0 fd 7536 7545 mov dx, strict word 00060h ; ba 60 00 7537 7546 in AL, DX ; ec … … 7539 7548 ; sub ah, ah ; 2a e4 7540 7549 cmp ax, 000fah ; 3d fa 00 7541 je short 052 4bh ; 74 067550 je short 05273h ; 74 06 7542 7551 mov ax, 003e4h ; b8 e4 03 7543 call 0 4fdah ; e8 8f fd7552 call 05002h ; e8 8f fd 7544 7553 mov AL, strict byte 0a8h ; b0 a8 7545 7554 mov dx, strict word 00064h ; ba 64 00 7546 7555 out DX, AL ; ee 7547 7556 xor ax, ax ; 31 c0 7548 call 067 4ah ; e8 f4 147557 call 06772h ; e8 f4 14 7549 7558 mov sp, bp ; 89 ec 7550 7559 pop bp ; 5d 7551 7560 retn ; c3 7552 enqueue_key_: ; 0xf52 5aLB 0x9e7561 enqueue_key_: ; 0xf5282 LB 0x9e 7553 7562 push bp ; 55 7554 7563 mov bp, sp ; 89 e5 … … 7562 7571 mov dx, strict word 0001ah ; ba 1a 00 7563 7572 mov ax, strict word 00040h ; b8 40 00 7564 call 0166eh ; e8 fec37573 call 0166eh ; e8 d6 c3 7565 7574 mov di, ax ; 89 c7 7566 7575 mov dx, strict word 0001ch ; ba 1c 00 7567 7576 mov ax, strict word 00040h ; b8 40 00 7568 call 0166eh ; e8 f3c37577 call 0166eh ; e8 cb c3 7569 7578 mov si, ax ; 89 c6 7570 7579 lea cx, [si+002h] ; 8d 4c 02 7571 7580 cmp cx, strict byte 0003eh ; 83 f9 3e 7572 jc short 052 88h ; 72 037581 jc short 052b0h ; 72 03 7573 7582 mov cx, strict word 0001eh ; b9 1e 00 7574 7583 cmp cx, di ; 39 f9 7575 jne short 052 90h ; 75 047584 jne short 052b8h ; 75 04 7576 7585 xor ax, ax ; 31 c0 7577 jmp short 052 bah ; eb 2a7586 jmp short 052e2h ; eb 2a 7578 7587 mov al, bl ; 88 d8 7579 7588 xor ah, ah ; 30 e4 … … 7581 7590 mov dx, si ; 89 f2 7582 7591 mov ax, strict word 00040h ; b8 40 00 7583 call 01660h ; e8 c2c37592 call 01660h ; e8 9a c3 7584 7593 mov bl, byte [bp-00ah] ; 8a 5e f6 7585 7594 xor bh, bh ; 30 ff 7586 7595 lea dx, [si+001h] ; 8d 54 01 7587 7596 mov ax, strict word 00040h ; b8 40 00 7588 call 01660h ; e8 b4c37597 call 01660h ; e8 8c c3 7589 7598 mov bx, cx ; 89 cb 7590 7599 mov dx, strict word 0001ch ; ba 1c 00 7591 7600 mov ax, strict word 00040h ; b8 40 00 7592 call 0167ch ; e8 c5c37601 call 0167ch ; e8 9d c3 7593 7602 mov ax, strict word 00001h ; b8 01 00 7594 7603 lea sp, [bp-008h] ; 8d 66 f8 … … 7600 7609 retn ; c3 7601 7610 db 0d4h, 0c6h, 0c5h, 0bah, 0b8h, 0b6h, 0aah, 09dh, 054h, 053h, 046h, 045h, 03ah, 038h, 036h, 02ah 7602 db 01dh, 0 3eh, 056h, 0f9h, 053h, 099h, 053h, 099h, 053h, 088h, 054h, 06ah, 053h, 00ch, 055h, 07dh7603 db 055h, 0 24h, 056h, 002h, 056h, 040h, 054h, 099h, 053h, 099h, 053h, 0cah, 054h, 08ah, 053h, 05dh7604 db 055h, 0 e2h, 055h, 01dh, 056h7605 _int09_function: ; 0xf5 2f8LB 0x4cd7611 db 01dh, 066h, 056h, 021h, 054h, 0c1h, 053h, 0c1h, 053h, 0b0h, 054h, 092h, 053h, 034h, 055h, 0a5h 7612 db 055h, 04ch, 056h, 02ah, 056h, 068h, 054h, 0c1h, 053h, 0c1h, 053h, 0f2h, 054h, 0b2h, 053h, 085h 7613 db 055h, 00ah, 056h, 045h, 056h 7614 _int09_function: ; 0xf5320 LB 0x4cd 7606 7615 push bp ; 55 7607 7616 mov bp, sp ; 89 e5 … … 7611 7620 mov byte [bp-004h], al ; 88 46 fc 7612 7621 test al, al ; 84 c0 7613 jne short 053 25h ; 75 1c7622 jne short 0534dh ; 75 1c 7614 7623 mov bx, 00da0h ; bb a0 0d 7615 7624 mov cx, ds ; 8c d9 7616 7625 mov ax, strict word 00004h ; b8 04 00 7617 call 01933h ; e8 1f c67626 call 01933h ; e8 f7 c5 7618 7627 mov ax, 00587h ; b8 87 05 7619 7628 push ax ; 50 7620 7629 mov ax, strict word 00004h ; b8 04 00 7621 7630 push ax ; 50 7622 call 01976h ; e8 57c67631 call 01976h ; e8 2f c6 7623 7632 add sp, strict byte 00004h ; 83 c4 04 7624 jmp near 05 3f3h ; e9 ce 007633 jmp near 0541bh ; e9 ce 00 7625 7634 mov dx, strict word 00018h ; ba 18 00 7626 7635 mov ax, strict word 00040h ; b8 40 00 7627 call 01652h ; e8 24 c37636 call 01652h ; e8 fc c2 7628 7637 mov byte [bp-006h], al ; 88 46 fa 7629 7638 mov byte [bp-008h], al ; 88 46 f8 7630 7639 mov dx, 00096h ; ba 96 00 7631 7640 mov ax, strict word 00040h ; b8 40 00 7632 call 01652h ; e8 15 c37641 call 01652h ; e8 ed c2 7633 7642 mov byte [bp-00ah], al ; 88 46 f6 7634 7643 mov byte [bp-010h], al ; 88 46 f0 7635 7644 mov dx, strict word 00017h ; ba 17 00 7636 7645 mov ax, strict word 00040h ; b8 40 00 7637 call 01652h ; e8 06 c37646 call 01652h ; e8 de c2 7638 7647 mov byte [bp-00ch], al ; 88 46 f4 7639 7648 mov byte [bp-00eh], al ; 88 46 f2 … … 7642 7651 pop ES ; 07 7643 7652 mov cx, strict word 00012h ; b9 12 00 7644 mov di, 052 c3h ; bf c3527653 mov di, 052ebh ; bf eb 52 7645 7654 repne scasb ; f2 ae 7646 7655 sal cx, 1 ; d1 e1 7647 7656 mov di, cx ; 89 cf 7648 mov ax, word [cs:di+052 d4h] ; 2e 8b 85 d4527657 mov ax, word [cs:di+052fch] ; 2e 8b 85 fc 52 7649 7658 jmp ax ; ff e0 7650 7659 xor byte [bp-00eh], 040h ; 80 76 f2 40 … … 7653 7662 mov dx, strict word 00017h ; ba 17 00 7654 7663 mov ax, strict word 00040h ; b8 40 00 7655 call 01660h ; e8 e4c27664 call 01660h ; e8 bc c2 7656 7665 or byte [bp-008h], 040h ; 80 4e f8 40 7657 7666 mov al, byte [bp-008h] ; 8a 46 f8 7658 7667 xor ah, ah ; 30 e4 7659 7668 mov bx, ax ; 89 c3 7660 jmp near 056 12h ; e9 88 027669 jmp near 0563ah ; e9 88 02 7661 7670 mov al, byte [bp-006h] ; 8a 46 fa 7662 7671 and AL, strict byte 0bfh ; 24 bf … … 7664 7673 mov bl, al ; 88 c3 7665 7674 xor bh, bh ; 30 ff 7666 jmp near 056 12h ; e9 79 027675 jmp near 0563ah ; e9 79 02 7667 7676 test byte [bp-010h], 002h ; f6 46 f0 02 7668 jne short 053 d2h ; 75 337677 jne short 053fah ; 75 33 7669 7678 mov al, byte [bp-004h] ; 8a 46 fc 7670 7679 and AL, strict byte 07fh ; 24 7f 7671 7680 cmp AL, strict byte 02ah ; 3c 2a 7672 jne short 053 adh ; 75 057681 jne short 053d5h ; 75 05 7673 7682 mov bx, strict word 00002h ; bb 02 00 7674 jmp short 053 b0h ; eb 037683 jmp short 053d8h ; eb 03 7675 7684 mov bx, strict word 00001h ; bb 01 00 7676 7685 test byte [bp-004h], 080h ; f6 46 fc 80 7677 je short 053 bfh ; 74 097686 je short 053e7h ; 74 09 7678 7687 mov al, bl ; 88 d8 7679 7688 not al ; f6 d0 7680 7689 and byte [bp-00eh], al ; 20 46 f2 7681 jmp short 053 c2h ; eb 037690 jmp short 053eah ; eb 03 7682 7691 or byte [bp-00eh], bl ; 08 5e f2 7683 7692 mov al, byte [bp-00eh] ; 8a 46 f2 … … 7686 7695 mov dx, strict word 00017h ; ba 17 00 7687 7696 mov ax, strict word 00040h ; b8 40 00 7688 call 01660h ; e8 8ec27697 call 01660h ; e8 66 c2 7689 7698 mov al, byte [bp-004h] ; 8a 46 fc 7690 7699 and AL, strict byte 07fh ; 24 7f 7691 7700 cmp AL, strict byte 01dh ; 3c 1d 7692 je short 05 3dfh ; 74 047701 je short 05407h ; 74 04 7693 7702 and byte [bp-010h], 0feh ; 80 66 f0 fe 7694 7703 and byte [bp-010h], 0fdh ; 80 66 f0 fd … … 7698 7707 mov dx, 00096h ; ba 96 00 7699 7708 mov ax, strict word 00040h ; b8 40 00 7700 call 01660h ; e8 6dc27709 call 01660h ; e8 45 c2 7701 7710 lea sp, [bp-002h] ; 8d 66 fe 7702 7711 pop di ; 5f … … 7704 7713 retn ; c3 7705 7714 test byte [bp-00ah], 001h ; f6 46 f6 01 7706 jne short 053 d2h ; 75 d37715 jne short 053fah ; 75 d3 7707 7716 mov al, byte [bp-00ch] ; 8a 46 f4 7708 7717 or AL, strict byte 004h ; 0c 04 … … 7712 7721 mov dx, strict word 00017h ; ba 17 00 7713 7722 mov ax, strict word 00040h ; b8 40 00 7714 call 01660h ; e8 4cc27723 call 01660h ; e8 24 c2 7715 7724 mov al, byte [bp-00ah] ; 8a 46 f6 7716 7725 test AL, strict byte 002h ; a8 02 7717 je short 054 29h ; 74 0e7726 je short 05451h ; 74 0e 7718 7727 or AL, strict byte 004h ; 0c 04 7719 7728 mov byte [bp-010h], al ; 88 46 f0 … … 7721 7730 mov bx, ax ; 89 c3 7722 7731 mov dx, 00096h ; ba 96 00 7723 jmp short 054 38h ; eb 0f7732 jmp short 05460h ; eb 0f 7724 7733 mov al, byte [bp-006h] ; 8a 46 fa 7725 7734 or AL, strict byte 001h ; 0c 01 … … 7729 7738 mov dx, strict word 00018h ; ba 18 00 7730 7739 mov ax, strict word 00040h ; b8 40 00 7731 call 01660h ; e8 22 c27732 jmp short 053 d2h ; eb 927740 call 01660h ; e8 fa c1 7741 jmp short 053fah ; eb 92 7733 7742 test byte [bp-00ah], 001h ; f6 46 f6 01 7734 jne short 053 d2h ; 75 8c7743 jne short 053fah ; 75 8c 7735 7744 mov al, byte [bp-00ch] ; 8a 46 f4 7736 7745 and AL, strict byte 0fbh ; 24 fb … … 7740 7749 mov dx, strict word 00017h ; ba 17 00 7741 7750 mov ax, strict word 00040h ; b8 40 00 7742 call 01660h ; e8 05 c27751 call 01660h ; e8 dd c1 7743 7752 mov al, byte [bp-00ah] ; 8a 46 f6 7744 7753 test AL, strict byte 002h ; a8 02 7745 je short 054 70h ; 74 0e7754 je short 05498h ; 74 0e 7746 7755 and AL, strict byte 0fbh ; 24 fb 7747 7756 mov byte [bp-010h], al ; 88 46 f0 … … 7749 7758 mov bx, ax ; 89 c3 7750 7759 mov dx, 00096h ; ba 96 00 7751 jmp short 054 7fh ; eb 0f7760 jmp short 054a7h ; eb 0f 7752 7761 mov al, byte [bp-006h] ; 8a 46 fa 7753 7762 and AL, strict byte 0feh ; 24 fe … … 7757 7766 mov dx, strict word 00018h ; ba 18 00 7758 7767 mov ax, strict word 00040h ; b8 40 00 7759 call 01660h ; e8 dbc17760 jmp near 053 d2h ; e9 4a ff7768 call 01660h ; e8 b3 c1 7769 jmp near 053fah ; e9 4a ff 7761 7770 mov al, byte [bp-00ch] ; 8a 46 f4 7762 7771 or AL, strict byte 008h ; 0c 08 … … 7766 7775 mov dx, strict word 00017h ; ba 17 00 7767 7776 mov ax, strict word 00040h ; b8 40 00 7768 call 01660h ; e8 c3c17777 call 01660h ; e8 9b c1 7769 7778 mov al, byte [bp-00ah] ; 8a 46 f6 7770 7779 test AL, strict byte 002h ; a8 02 7771 je short 054 b2h ; 74 0e7780 je short 054dah ; 74 0e 7772 7781 or AL, strict byte 008h ; 0c 08 7773 7782 mov byte [bp-010h], al ; 88 46 f0 … … 7775 7784 mov bx, ax ; 89 c3 7776 7785 mov dx, 00096h ; ba 96 00 7777 jmp short 054 c1h ; eb 0f7786 jmp short 054e9h ; eb 0f 7778 7787 mov al, byte [bp-006h] ; 8a 46 fa 7779 7788 or AL, strict byte 002h ; 0c 02 … … 7783 7792 mov dx, strict word 00018h ; ba 18 00 7784 7793 mov ax, strict word 00040h ; b8 40 00 7785 call 01660h ; e8 99c17786 jmp near 053 d2h ; e9 08 ff7794 call 01660h ; e8 71 c1 7795 jmp near 053fah ; e9 08 ff 7787 7796 mov al, byte [bp-00ch] ; 8a 46 f4 7788 7797 and AL, strict byte 0f7h ; 24 f7 … … 7792 7801 mov dx, strict word 00017h ; ba 17 00 7793 7802 mov ax, strict word 00040h ; b8 40 00 7794 call 01660h ; e8 81c17803 call 01660h ; e8 59 c1 7795 7804 mov al, byte [bp-00ah] ; 8a 46 f6 7796 7805 test AL, strict byte 002h ; a8 02 7797 je short 05 4f4h ; 74 0e7806 je short 0551ch ; 74 0e 7798 7807 and AL, strict byte 0f7h ; 24 f7 7799 7808 mov byte [bp-010h], al ; 88 46 f0 … … 7801 7810 mov bx, ax ; 89 c3 7802 7811 mov dx, 00096h ; ba 96 00 7803 jmp short 055 03h ; eb 0f7812 jmp short 0552bh ; eb 0f 7804 7813 mov al, byte [bp-006h] ; 8a 46 fa 7805 7814 and AL, strict byte 0fdh ; 24 fd … … 7809 7818 mov dx, strict word 00018h ; ba 18 00 7810 7819 mov ax, strict word 00040h ; b8 40 00 7811 call 01660h ; e8 57c17812 jmp near 053 d2h ; e9 c6 fe7820 call 01660h ; e8 2f c1 7821 jmp near 053fah ; e9 c6 fe 7813 7822 test byte [bp-00ah], 003h ; f6 46 f6 03 7814 jne short 055 2fh ; 75 1d7823 jne short 05557h ; 75 1d 7815 7824 mov al, byte [bp-006h] ; 8a 46 fa 7816 7825 or AL, strict byte 020h ; 0c 20 … … 7820 7829 mov dx, strict word 00018h ; ba 18 00 7821 7830 mov ax, strict word 00040h ; b8 40 00 7822 call 01660h ; e8 39c17831 call 01660h ; e8 11 c1 7823 7832 mov al, byte [bp-00ch] ; 8a 46 f4 7824 7833 xor AL, strict byte 020h ; 34 20 7825 jmp near 055 d0h ; e9 a1 007834 jmp near 055f8h ; e9 a1 00 7826 7835 mov al, byte [bp-006h] ; 8a 46 fa 7827 7836 or AL, strict byte 008h ; 0c 08 … … 7831 7840 mov dx, strict word 00018h ; ba 18 00 7832 7841 mov ax, strict word 00040h ; b8 40 00 7833 call 01660h ; e8 1c c17842 call 01660h ; e8 f4 c0 7834 7843 mov AL, strict byte 0aeh ; b0 ae 7835 7844 mov dx, strict word 00064h ; ba 64 00 7836 7845 out DX, AL ; ee 7837 call 0e034h ; e8 e78a7846 call 0e034h ; e8 bf 8a 7838 7847 mov dx, strict word 00018h ; ba 18 00 7839 7848 mov ax, strict word 00040h ; b8 40 00 7840 call 01652h ; e8 fcc07849 call 01652h ; e8 d4 c0 7841 7850 test AL, strict byte 008h ; a8 08 7842 jne short 055 4dh ; 75 f37843 jmp near 053 d2h ; e9 75 fe7851 jne short 05575h ; 75 f3 7852 jmp near 053fah ; e9 75 fe 7844 7853 test byte [bp-00ah], 003h ; f6 46 f6 03 7845 je short 055 66h ; 74 037846 jmp near 053 d2h ; e9 6c fe7854 je short 0558eh ; 74 03 7855 jmp near 053fah ; e9 6c fe 7847 7856 mov al, byte [bp-006h] ; 8a 46 fa 7848 7857 and AL, strict byte 0dfh ; 24 df … … 7852 7861 mov dx, strict word 00018h ; ba 18 00 7853 7862 mov ax, strict word 00040h ; b8 40 00 7854 call 01660h ; e8 e5c07855 jmp short 055 63h ; eb e67863 call 01660h ; e8 bd c0 7864 jmp short 0558bh ; eb e6 7856 7865 test byte [bp-00ah], 002h ; f6 46 f6 02 7857 je short 055 b6h ; 74 337866 je short 055deh ; 74 33 7858 7867 mov dx, strict word 0001ah ; ba 1a 00 7859 7868 mov ax, strict word 00040h ; b8 40 00 7860 call 0166eh ; e8 e2c07869 call 0166eh ; e8 ba c0 7861 7870 mov bx, ax ; 89 c3 7862 7871 mov dx, strict word 0001ch ; ba 1c 00 7863 7872 mov ax, strict word 00040h ; b8 40 00 7864 call 0167ch ; e8 e5c07873 call 0167ch ; e8 bd c0 7865 7874 mov bx, 00080h ; bb 80 00 7866 7875 mov dx, strict word 00071h ; ba 71 00 7867 7876 mov ax, strict word 00040h ; b8 40 00 7868 call 01660h ; e8 bdc07877 call 01660h ; e8 95 c0 7869 7878 mov AL, strict byte 0aeh ; b0 ae 7870 7879 mov dx, strict word 00064h ; ba 64 00 … … 7875 7884 xor dx, dx ; 31 d2 7876 7885 xor ax, ax ; 31 c0 7877 call 052 5ah ; e8 a6 fc7878 jmp short 055 63h ; eb ad7886 call 05282h ; e8 a6 fc 7887 jmp short 0558bh ; eb ad 7879 7888 mov al, byte [bp-006h] ; 8a 46 fa 7880 7889 or AL, strict byte 010h ; 0c 10 … … 7884 7893 mov dx, strict word 00018h ; ba 18 00 7885 7894 mov ax, strict word 00040h ; b8 40 00 7886 call 01660h ; e8 95c07895 call 01660h ; e8 6d c0 7887 7896 mov al, byte [bp-00ch] ; 8a 46 f4 7888 7897 xor AL, strict byte 010h ; 34 10 … … 7892 7901 mov dx, strict word 00017h ; ba 17 00 7893 7902 mov ax, strict word 00040h ; b8 40 00 7894 call 01660h ; e8 80c07895 jmp short 055 63h ; eb 817903 call 01660h ; e8 58 c0 7904 jmp short 0558bh ; eb 81 7896 7905 test byte [bp-00ah], 002h ; f6 46 f6 02 7897 je short 05 5ebh ; 74 037898 jmp near 053 d2h ; e9 e7 fd7906 je short 05613h ; 74 03 7907 jmp near 053fah ; e9 e7 fd 7899 7908 mov al, byte [bp-006h] ; 8a 46 fa 7900 7909 and AL, strict byte 0efh ; 24 ef … … 7904 7913 mov dx, strict word 00018h ; ba 18 00 7905 7914 mov ax, strict word 00040h ; b8 40 00 7906 call 01660h ; e8 60c07907 jmp short 05 5e8h ; eb e67915 call 01660h ; e8 38 c0 7916 jmp short 05610h ; eb e6 7908 7917 mov al, byte [bp-006h] ; 8a 46 fa 7909 7918 test AL, strict byte 004h ; a8 04 7910 jne short 05 5e8h ; 75 df7919 jne short 05610h ; 75 df 7911 7920 or AL, strict byte 004h ; 0c 04 7912 7921 mov byte [bp-008h], al ; 88 46 f8 … … 7915 7924 mov dx, strict word 00018h ; ba 18 00 7916 7925 mov ax, strict word 00040h ; b8 40 00 7917 call 01660h ; e8 45c07918 jmp short 05 5e8h ; eb cb7926 call 01660h ; e8 1d c0 7927 jmp short 05610h ; eb cb 7919 7928 mov al, byte [bp-006h] ; 8a 46 fa 7920 7929 and AL, strict byte 0fbh ; 24 fb 7921 jmp short 056 0bh ; eb e77930 jmp short 05633h ; eb e7 7922 7931 mov al, byte [bp-00ch] ; 8a 46 f4 7923 7932 and AL, strict byte 00ch ; 24 0c 7924 7933 cmp AL, strict byte 00ch ; 3c 0c 7925 jne short 056 3eh ; 75 117934 jne short 05666h ; 75 11 7926 7935 mov bx, 01234h ; bb 34 12 7927 7936 mov dx, strict word 00072h ; ba 72 00 7928 7937 mov ax, strict word 00040h ; b8 40 00 7929 call 0167ch ; e8 43c07938 call 0167ch ; e8 1b c0 7930 7939 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 7931 7940 test byte [bp-008h], 008h ; f6 46 f8 08 7932 je short 056 55h ; 74 117941 je short 0567dh ; 74 11 7933 7942 and byte [bp-008h], 0f7h ; 80 66 f8 f7 7934 7943 mov al, byte [bp-008h] ; 8a 46 f8 … … 7936 7945 mov bx, ax ; 89 c3 7937 7946 mov dx, strict word 00018h ; ba 18 00 7938 jmp near 05 3edh ; e9 98 fd7947 jmp near 05415h ; e9 98 fd 7939 7948 mov al, byte [bp-004h] ; 8a 46 fc 7940 7949 test AL, strict byte 080h ; a8 80 7941 je short 056 93h ; 74 377950 je short 056bbh ; 74 37 7942 7951 cmp AL, strict byte 0fah ; 3c fa 7943 jne short 056 72h ; 75 127952 jne short 0569ah ; 75 12 7944 7953 mov dx, 00097h ; ba 97 00 7945 7954 mov ax, strict word 00040h ; b8 40 00 7946 call 01652h ; e8 e9bf7955 call 01652h ; e8 c1 bf 7947 7956 mov bl, al ; 88 c3 7948 7957 or bl, 010h ; 80 cb 10 7949 7958 xor bh, bh ; 30 ff 7950 jmp short 056 88h ; eb 167959 jmp short 056b0h ; eb 16 7951 7960 cmp AL, strict byte 0feh ; 3c fe 7952 je short 056 79h ; 74 037953 jmp near 053 d2h ; e9 59 fd7961 je short 056a1h ; 74 03 7962 jmp near 053fah ; e9 59 fd 7954 7963 mov dx, 00097h ; ba 97 00 7955 7964 mov ax, strict word 00040h ; b8 40 00 7956 call 01652h ; e8 d0bf7965 call 01652h ; e8 a8 bf 7957 7966 or AL, strict byte 020h ; 0c 20 7958 7967 xor ah, ah ; 30 e4 … … 7960 7969 mov dx, 00097h ; ba 97 00 7961 7970 mov ax, strict word 00040h ; b8 40 00 7962 call 01660h ; e8 cfbf7963 jmp short 056 76h ; eb e37971 call 01660h ; e8 a7 bf 7972 jmp short 0569eh ; eb e3 7964 7973 cmp byte [bp-004h], 058h ; 80 7e fc 58 7965 jbe short 056 bbh ; 76 227974 jbe short 056e3h ; 76 22 7966 7975 mov bx, 00da0h ; bb a0 0d 7967 7976 mov cx, ds ; 8c d9 7968 7977 mov ax, strict word 00004h ; b8 04 00 7969 call 01933h ; e8 8fc27978 call 01933h ; e8 67 c2 7970 7979 mov al, byte [bp-004h] ; 8a 46 fc 7971 7980 xor ah, ah ; 30 e4 … … 7975 7984 mov ax, strict word 00004h ; b8 04 00 7976 7985 push ax ; 50 7977 call 01976h ; e8 c1c27986 call 01976h ; e8 99 c2 7978 7987 add sp, strict byte 00006h ; 83 c4 06 7979 jmp near 05 3f3h ; e9 38 fd7988 jmp near 0541bh ; e9 38 fd 7980 7989 mov al, byte [bp-00eh] ; 8a 46 f2 7981 7990 test AL, strict byte 008h ; a8 08 7982 je short 05 6dch ; 74 1a7991 je short 05704h ; 74 1a 7983 7992 mov al, byte [bp-004h] ; 8a 46 fc 7984 7993 xor ah, ah ; 30 e4 … … 7989 7998 mov byte [bp-012h], al ; 88 46 ee 7990 7999 mov al, byte [bx+00df5h] ; 8a 87 f5 0d 7991 jmp near 057 8eh ; e9 b2 008000 jmp near 057b6h ; e9 b2 00 7992 8001 test AL, strict byte 004h ; a8 04 7993 je short 05 6fah ; 74 1a8002 je short 05722h ; 74 1a 7994 8003 mov al, byte [bp-004h] ; 8a 46 fc 7995 8004 xor ah, ah ; 30 e4 … … 8000 8009 mov byte [bp-012h], al ; 88 46 ee 8001 8010 mov al, byte [bx+00df3h] ; 8a 87 f3 0d 8002 jmp near 057 8eh ; e9 94 008011 jmp near 057b6h ; e9 94 00 8003 8012 mov al, byte [bp-010h] ; 8a 46 f0 8004 8013 and AL, strict byte 002h ; 24 02 8005 8014 test al, al ; 84 c0 8006 jbe short 057 1dh ; 76 1a8015 jbe short 05745h ; 76 1a 8007 8016 mov al, byte [bp-004h] ; 8a 46 fc 8008 8017 cmp AL, strict byte 047h ; 3c 47 8009 jc short 057 1dh ; 72 138018 jc short 05745h ; 72 13 8010 8019 cmp AL, strict byte 053h ; 3c 53 8011 jnbe short 057 1dh ; 77 0f8020 jnbe short 05745h ; 77 0f 8012 8021 mov byte [bp-012h], 0e0h ; c6 46 ee e0 8013 8022 xor ah, ah ; 30 e4 … … 8015 8024 imul dx ; f7 ea 8016 8025 mov bx, ax ; 89 c3 8017 jmp short 057 8ah ; eb 6d8026 jmp short 057b2h ; eb 6d 8018 8027 test byte [bp-00eh], 003h ; f6 46 f2 03 8019 je short 057 5bh ; 74 388028 je short 05783h ; 74 38 8020 8029 mov al, byte [bp-004h] ; 8a 46 fc 8021 8030 xor ah, ah ; 30 e4 … … 8028 8037 mov al, byte [bp-00eh] ; 8a 46 f2 8029 8038 test ax, dx ; 85 d0 8030 je short 057 4bh ; 74 0d8039 je short 05773h ; 74 0d 8031 8040 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 8032 8041 mov byte [bp-012h], al ; 88 46 ee 8033 8042 mov al, byte [bx+00defh] ; 8a 87 ef 0d 8034 jmp short 057 56h ; eb 0b8043 jmp short 0577eh ; eb 0b 8035 8044 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 8036 8045 mov byte [bp-012h], al ; 88 46 ee 8037 8046 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 8038 8047 mov byte [bp-004h], al ; 88 46 fc 8039 jmp short 057 91h ; eb 368048 jmp short 057b9h ; eb 36 8040 8049 mov al, byte [bp-004h] ; 8a 46 fc 8041 8050 xor ah, ah ; 30 e4 … … 8048 8057 mov al, byte [bp-00eh] ; 8a 46 f2 8049 8058 test ax, dx ; 85 d0 8050 je short 057 83h ; 74 0d8059 je short 057abh ; 74 0d 8051 8060 mov al, byte [bx+00df0h] ; 8a 87 f0 0d 8052 8061 mov byte [bp-012h], al ; 88 46 ee 8053 8062 mov al, byte [bx+00df1h] ; 8a 87 f1 0d 8054 jmp short 057 8eh ; eb 0b8063 jmp short 057b6h ; eb 0b 8055 8064 mov al, byte [bx+00deeh] ; 8a 87 ee 0d 8056 8065 mov byte [bp-012h], al ; 88 46 ee … … 8058 8067 mov byte [bp-004h], al ; 88 46 fc 8059 8068 cmp byte [bp-004h], 000h ; 80 7e fc 00 8060 jne short 057 b6h ; 75 1f8069 jne short 057deh ; 75 1f 8061 8070 cmp byte [bp-012h], 000h ; 80 7e ee 00 8062 jne short 057 b6h ; 75 198071 jne short 057deh ; 75 19 8063 8072 mov bx, 00da0h ; bb a0 0d 8064 8073 mov cx, ds ; 8c d9 8065 8074 mov ax, strict word 00004h ; b8 04 00 8066 call 01933h ; e8 8bc18075 call 01933h ; e8 63 c1 8067 8076 mov ax, 005d8h ; b8 d8 05 8068 8077 push ax ; 50 8069 8078 mov ax, strict word 00004h ; b8 04 00 8070 8079 push ax ; 50 8071 call 01976h ; e8 c3c18080 call 01976h ; e8 9b c1 8072 8081 add sp, strict byte 00004h ; 83 c4 04 8073 8082 mov bl, byte [bp-012h] ; 8a 5e ee … … 8076 8085 xor ah, ah ; 30 e4 8077 8086 mov dx, bx ; 89 da 8078 jmp near 055 b1h ; e9 ec fd8079 dequeue_key_: ; 0xf57 c5LB 0x948087 jmp near 055d9h ; e9 ec fd 8088 dequeue_key_: ; 0xf57ed LB 0x94 8080 8089 push bp ; 55 8081 8090 mov bp, sp ; 89 e5 … … 8090 8099 mov dx, strict word 0001ah ; ba 1a 00 8091 8100 mov ax, strict word 00040h ; b8 40 00 8092 call 0166eh ; e8 8fbe8101 call 0166eh ; e8 67 be 8093 8102 mov bx, ax ; 89 c3 8094 8103 mov dx, strict word 0001ch ; ba 1c 00 8095 8104 mov ax, strict word 00040h ; b8 40 00 8096 call 0166eh ; e8 84be8105 call 0166eh ; e8 5c be 8097 8106 cmp bx, ax ; 39 c3 8098 je short 058 2bh ; 74 3d8107 je short 05853h ; 74 3d 8099 8108 mov dx, bx ; 89 da 8100 8109 mov ax, strict word 00040h ; b8 40 00 8101 call 01652h ; e8 5cbe8110 call 01652h ; e8 34 be 8102 8111 mov cl, al ; 88 c1 8103 8112 lea dx, [bx+001h] ; 8d 57 01 8104 8113 mov ax, strict word 00040h ; b8 40 00 8105 call 01652h ; e8 51be8114 call 01652h ; e8 29 be 8106 8115 mov es, [bp-008h] ; 8e 46 f8 8107 8116 mov byte [es:si], cl ; 26 88 0c … … 8109 8118 mov byte [es:di], al ; 26 88 05 8110 8119 cmp word [bp+004h], strict byte 00000h ; 83 7e 04 00 8111 je short 058 26h ; 74 138120 je short 0584eh ; 74 13 8112 8121 inc bx ; 43 8113 8122 inc bx ; 43 8114 8123 cmp bx, strict byte 0003eh ; 83 fb 3e 8115 jc short 058 1dh ; 72 038124 jc short 05845h ; 72 03 8116 8125 mov bx, strict word 0001eh ; bb 1e 00 8117 8126 mov dx, strict word 0001ah ; ba 1a 00 8118 8127 mov ax, strict word 00040h ; b8 40 00 8119 call 0167ch ; e8 56be8128 call 0167ch ; e8 2e be 8120 8129 mov ax, strict word 00001h ; b8 01 00 8121 jmp short 058 2dh ; eb 028130 jmp short 05855h ; eb 02 8122 8131 xor ax, ax ; 31 c0 8123 8132 lea sp, [bp-004h] ; 8d 66 fc … … 8130 8139 or cl, byte [bx+di] ; 0a 09 8131 8140 add ax, 00102h ; 05 02 01 8132 add byte [bx+059h], bl ; 00 5f 59 8133 sbb bl, byte [bx+di-051h] ; 1a 59 af 8141 add byte [bx+04259h], al ; 00 87 59 42 8134 8142 pop cx ; 59 8135 db 0f3h, 059h8136 ; rep pop cx ; f3598137 push ES ; 068143 xlatb ; d7 8144 pop cx ; 59 8145 sbb bx, word [bp+si+02eh] ; 1b 5a 2e 8138 8146 pop dx ; 5a 8139 sub ax, 0375ah ; 2d 5a 378147 push bp ; 55 8140 8148 pop dx ; 5a 8141 cmpsb ; a68149 pop di ; 5f 8142 8150 pop dx ; 5a 8143 fstp qword [bp+si+00dh] ; dd 5a 0d 8151 into ; ce 8152 pop dx ; 5a 8153 add ax, 0355bh ; 05 5b 35 8144 8154 pop bx ; 5b 8145 in c sp ; 448155 insb ; 6c 8146 8156 pop bx ; 5b 8147 db 0 a9h8157 db 0d1h 8148 8158 pop cx ; 59 8149 _int16_function: ; 0xf58 59LB 0x2f68159 _int16_function: ; 0xf5881 LB 0x2f6 8150 8160 push bp ; 55 8151 8161 mov bp, sp ; 89 e5 … … 8154 8164 mov dx, strict word 00017h ; ba 17 00 8155 8165 mov ax, strict word 00040h ; b8 40 00 8156 call 01652h ; e8 e9bd8166 call 01652h ; e8 c1 bd 8157 8167 mov cl, al ; 88 c1 8158 8168 mov bh, al ; 88 c7 8159 8169 mov dx, 00097h ; ba 97 00 8160 8170 mov ax, strict word 00040h ; b8 40 00 8161 call 01652h ; e8 dcbd8171 call 01652h ; e8 b4 bd 8162 8172 mov bl, al ; 88 c3 8163 8173 mov dl, cl ; 88 ca … … 8170 8180 xor al, dl ; 30 d0 8171 8181 test ax, ax ; 85 c0 8172 je short 05 8f9h ; 74 6c8182 je short 05921h ; 74 6c 8173 8183 cli ; fa 8174 8184 mov AL, strict byte 0edh ; b0 ed … … 8180 8190 ; sub ah, ah ; 2a e4 8181 8191 test AL, strict byte 001h ; a8 01 8182 jne short 058 a6h ; 75 088192 jne short 058ceh ; 75 08 8183 8193 mov AL, strict byte 021h ; b0 21 8184 8194 mov dx, 00080h ; ba 80 00 8185 8195 out DX, AL ; ee 8186 jmp short 058 94h ; eb ee8196 jmp short 058bch ; eb ee 8187 8197 mov dx, strict word 00060h ; ba 60 00 8188 8198 in AL, DX ; ec … … 8190 8200 ; sub ah, ah ; 2a e4 8191 8201 cmp ax, 000fah ; 3d fa 00 8192 jne short 05 8f8h ; 75 478202 jne short 05920h ; 75 47 8193 8203 and bl, 0c8h ; 80 e3 c8 8194 8204 mov al, bh ; 88 f8 … … 8213 8223 ; sub ah, ah ; 2a e4 8214 8224 test AL, strict byte 001h ; a8 01 8215 jne short 05 8e7h ; 75 088225 jne short 0590fh ; 75 08 8216 8226 mov AL, strict byte 021h ; b0 21 8217 8227 mov dx, 00080h ; ba 80 00 8218 8228 out DX, AL ; ee 8219 jmp short 058 d5h ; eb ee8229 jmp short 058fdh ; eb ee 8220 8230 mov dx, strict word 00060h ; ba 60 00 8221 8231 in AL, DX ; ec … … 8225 8235 mov dx, 00097h ; ba 97 00 8226 8236 mov ax, strict word 00040h ; b8 40 00 8227 call 01660h ; e8 68bd8237 call 01660h ; e8 40 bd 8228 8238 sti ; fb 8229 8239 mov CL, strict byte 008h ; b1 08 … … 8231 8241 shr ax, CL ; d3 e8 8232 8242 cmp ax, 000a2h ; 3d a2 00 8233 jnbe short 059 5fh ; 77 5a8243 jnbe short 05987h ; 77 5a 8234 8244 push CS ; 0e 8235 8245 pop ES ; 07 8236 8246 mov cx, strict word 0000ch ; b9 0c 00 8237 mov di, 058 36h ; bf 36588247 mov di, 0585eh ; bf 5e 58 8238 8248 repne scasb ; f2 ae 8239 8249 sal cx, 1 ; d1 e1 8240 8250 mov di, cx ; 89 cf 8241 mov ax, word [cs:di+058 41h] ; 2e 8b 85 41588251 mov ax, word [cs:di+05869h] ; 2e 8b 85 69 58 8242 8252 jmp ax ; ff e0 8243 8253 mov ax, strict word 00001h ; b8 01 00 … … 8247 8257 mov dx, ss ; 8c d2 8248 8258 lea ax, [bp-008h] ; 8d 46 f8 8249 call 057 c5h ; e8 9a fe8259 call 057edh ; e8 9a fe 8250 8260 test ax, ax ; 85 c0 8251 jne short 059 3dh ; 75 0e8261 jne short 05965h ; 75 0e 8252 8262 mov ax, 0060fh ; b8 0f 06 8253 8263 push ax ; 50 8254 8264 mov ax, strict word 00007h ; b8 07 00 8255 8265 push ax ; 50 8256 call 01976h ; e8 3cc08266 call 01976h ; e8 14 c0 8257 8267 add sp, strict byte 00004h ; 83 c4 04 8258 8268 cmp byte [bp-008h], 000h ; 80 7e f8 00 8259 je short 059 49h ; 74 068269 je short 05971h ; 74 06 8260 8270 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8261 je short 059 4fh ; 74 068271 je short 05977h ; 74 06 8262 8272 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 8263 jne short 059 53h ; 75 048273 jne short 0597bh ; 75 04 8264 8274 mov byte [bp-006h], 000h ; c6 46 fa 00 8265 8275 mov ah, byte [bp-008h] ; 8a 66 f8 8266 8276 mov al, byte [bp-006h] ; 8a 46 fa 8267 8277 mov word [bp+012h], ax ; 89 46 12 8268 jmp near 059 a9h ; e9 4a 008278 jmp near 059d1h ; e9 4a 00 8269 8279 mov bx, 00da0h ; bb a0 0d 8270 8280 mov cx, ds ; 8c d9 8271 8281 mov ax, strict word 00004h ; b8 04 00 8272 call 01933h ; e8 c9bf8282 call 01933h ; e8 a1 bf 8273 8283 mov CL, strict byte 008h ; b1 08 8274 8284 mov ax, word [bp+012h] ; 8b 46 12 … … 8279 8289 mov ax, strict word 00004h ; b8 04 00 8280 8290 push ax ; 50 8281 call 01976h ; e8 f9bf8291 call 01976h ; e8 d1 bf 8282 8292 add sp, strict byte 00006h ; 83 c4 06 8283 8293 mov bx, 00da0h ; bb a0 0d 8284 8294 mov cx, ds ; 8c d9 8285 8295 mov ax, strict word 00004h ; b8 04 00 8286 call 01933h ; e8 a8bf8296 call 01933h ; e8 80 bf 8287 8297 mov ax, word [bp+00eh] ; 8b 46 0e 8288 8298 push ax ; 50 … … 8297 8307 mov ax, strict word 00004h ; b8 04 00 8298 8308 push ax ; 50 8299 call 01976h ; e8 d0bf8309 call 01976h ; e8 a8 bf 8300 8310 add sp, strict byte 0000ch ; 83 c4 0c 8301 8311 lea sp, [bp-002h] ; 8d 66 fe … … 8310 8320 mov dx, ss ; 8c d2 8311 8321 lea ax, [bp-008h] ; 8d 46 f8 8312 call 057 c5h ; e8 01 fe8322 call 057edh ; e8 01 fe 8313 8323 test ax, ax ; 85 c0 8314 jne short 059 ceh ; 75 068324 jne short 059f6h ; 75 06 8315 8325 or word [bp+01ch], strict byte 00040h ; 83 4e 1c 40 8316 jmp short 059 a9h ; eb db8326 jmp short 059d1h ; eb db 8317 8327 cmp byte [bp-008h], 000h ; 80 7e f8 00 8318 je short 05 9dah ; 74 068328 je short 05a02h ; 74 06 8319 8329 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8320 je short 05 9e0h ; 74 068330 je short 05a08h ; 74 06 8321 8331 cmp byte [bp-006h], 0e0h ; 80 7e fa e0 8322 jne short 05 9e4h ; 75 048332 jne short 05a0ch ; 75 04 8323 8333 mov byte [bp-006h], 000h ; c6 46 fa 00 8324 8334 mov dh, byte [bp-008h] ; 8a 76 f8 … … 8326 8336 mov word [bp+012h], dx ; 89 56 12 8327 8337 and word [bp+01ch], strict byte 0ffbfh ; 83 66 1c bf 8328 jmp short 059 a9h ; eb b68338 jmp short 059d1h ; eb b6 8329 8339 mov dx, strict word 00017h ; ba 17 00 8330 8340 mov ax, strict word 00040h ; b8 40 00 8331 call 01652h ; e8 56bc8341 call 01652h ; e8 2e bc 8332 8342 mov dx, word [bp+012h] ; 8b 56 12 8333 8343 mov dl, al ; 88 c2 8334 8344 mov word [bp+012h], dx ; 89 56 12 8335 jmp short 059 a9h ; eb a38345 jmp short 059d1h ; eb a3 8336 8346 mov dl, byte [bp+010h] ; 8a 56 10 8337 8347 xor dh, dh ; 30 f6 … … 8340 8350 shr ax, CL ; d3 e8 8341 8351 xor ah, ah ; 30 e4 8342 call 052 5ah ; e8 43 f88352 call 05282h ; e8 43 f8 8343 8353 test ax, ax ; 85 c0 8344 jne short 05a 25h ; 75 0a8354 jne short 05a4dh ; 75 0a 8345 8355 mov ax, word [bp+012h] ; 8b 46 12 8346 8356 xor al, al ; 30 c0 8347 8357 or AL, strict byte 001h ; 0c 01 8348 jmp near 059 59h ; e9 34 ff8358 jmp near 05981h ; e9 34 ff 8349 8359 and word [bp+012h], 0ff00h ; 81 66 12 00 ff 8350 jmp near 059 a9h ; e9 7c ff8360 jmp near 059d1h ; e9 7c ff 8351 8361 mov ax, word [bp+012h] ; 8b 46 12 8352 8362 xor al, al ; 30 c0 8353 8363 or AL, strict byte 030h ; 0c 30 8354 jmp near 059 59h ; e9 22 ff8364 jmp near 05981h ; e9 22 ff 8355 8365 mov byte [bp-004h], 002h ; c6 46 fc 02 8356 8366 xor cx, cx ; 31 c9 … … 8365 8375 ; sub ah, ah ; 2a e4 8366 8376 test AL, strict byte 001h ; a8 01 8367 jne short 05a 5eh ; 75 0d8377 jne short 05a86h ; 75 0d 8368 8378 dec bx ; 4b 8369 8379 test bx, bx ; 85 db 8370 jbe short 05a 5eh ; 76 088380 jbe short 05a86h ; 76 08 8371 8381 mov dx, 00080h ; ba 80 00 8372 8382 in AL, DX ; ec 8373 8383 db 02ah, 0e4h 8374 8384 ; sub ah, ah ; 2a e4 8375 jmp short 05a 47h ; eb e98385 jmp short 05a6fh ; eb e9 8376 8386 test bx, bx ; 85 db 8377 jbe short 05a a0h ; 76 3e8387 jbe short 05ac8h ; 76 3e 8378 8388 mov dx, strict word 00060h ; ba 60 00 8379 8389 in AL, DX ; ec … … 8381 8391 ; sub ah, ah ; 2a e4 8382 8392 cmp ax, 000fah ; 3d fa 00 8383 jne short 05a a0h ; 75 338393 jne short 05ac8h ; 75 33 8384 8394 mov bx, strict word 0ffffh ; bb ff ff 8385 8395 mov dx, strict word 00064h ; ba 64 00 … … 8388 8398 ; sub ah, ah ; 2a e4 8389 8399 test AL, strict byte 001h ; a8 01 8390 jne short 05a 87h ; 75 0d8400 jne short 05aafh ; 75 0d 8391 8401 dec bx ; 4b 8392 8402 test bx, bx ; 85 db 8393 jbe short 05a 87h ; 76 088403 jbe short 05aafh ; 76 08 8394 8404 mov dx, 00080h ; ba 80 00 8395 8405 in AL, DX ; ec 8396 8406 db 02ah, 0e4h 8397 8407 ; sub ah, ah ; 2a e4 8398 jmp short 05a 70h ; eb e98408 jmp short 05a98h ; eb e9 8399 8409 test bx, bx ; 85 db 8400 jbe short 05a 97h ; 76 0c8410 jbe short 05abfh ; 76 0c 8401 8411 mov bl, ch ; 88 eb 8402 8412 mov dx, strict word 00060h ; ba 60 00 … … 8408 8418 dec byte [bp-004h] ; fe 4e fc 8409 8419 cmp byte [bp-004h], 000h ; 80 7e fc 00 8410 jnbe short 05a 6dh ; 77 cd8420 jnbe short 05a95h ; 77 cd 8411 8421 mov word [bp+00ch], cx ; 89 4e 0c 8412 jmp near 059 a9h ; e9 03 ff8422 jmp near 059d1h ; e9 03 ff 8413 8423 mov ax, strict word 00001h ; b8 01 00 8414 8424 push ax ; 50 … … 8417 8427 mov dx, ss ; 8c d2 8418 8428 lea ax, [bp-008h] ; 8d 46 f8 8419 call 057 c5h ; e8 0e fd8429 call 057edh ; e8 0e fd 8420 8430 test ax, ax ; 85 c0 8421 jne short 05a c9h ; 75 0e8431 jne short 05af1h ; 75 0e 8422 8432 mov ax, 0060fh ; b8 0f 06 8423 8433 push ax ; 50 8424 8434 mov ax, strict word 00007h ; b8 07 00 8425 8435 push ax ; 50 8426 call 01976h ; e8 b0be8436 call 01976h ; e8 88 be 8427 8437 add sp, strict byte 00004h ; 83 c4 04 8428 8438 cmp byte [bp-008h], 000h ; 80 7e f8 00 8429 jne short 05a d2h ; 75 038430 jmp near 059 53h ; e9 81 fe8439 jne short 05afah ; 75 03 8440 jmp near 0597bh ; e9 81 fe 8431 8441 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8432 jne short 05 adbh ; 75 038433 jmp near 059 4fh ; e9 74 fe8434 jmp short 05a cfh ; eb f28442 jne short 05b03h ; 75 03 8443 jmp near 05977h ; e9 74 fe 8444 jmp short 05af7h ; eb f2 8435 8445 or word [bp+01ch], 00200h ; 81 4e 1c 00 02 8436 8446 xor ax, ax ; 31 c0 … … 8440 8450 mov dx, ss ; 8c d2 8441 8451 lea ax, [bp-008h] ; 8d 46 f8 8442 call 057 c5h ; e8 d3 fc8452 call 057edh ; e8 d3 fc 8443 8453 test ax, ax ; 85 c0 8444 jne short 05 af9h ; 75 038445 jmp near 059 c8h ; e9 cf fe8454 jne short 05b21h ; 75 03 8455 jmp near 059f0h ; e9 cf fe 8446 8456 cmp byte [bp-008h], 000h ; 80 7e f8 00 8447 jne short 05b 02h ; 75 038448 jmp near 05 9e4h ; e9 e2 fe8457 jne short 05b2ah ; 75 03 8458 jmp near 05a0ch ; e9 e2 fe 8449 8459 cmp byte [bp-006h], 0f0h ; 80 7e fa f0 8450 jne short 05b 0bh ; 75 038451 jmp near 05 9e0h ; e9 d5 fe8452 jmp short 05 affh ; eb f28460 jne short 05b33h ; 75 03 8461 jmp near 05a08h ; e9 d5 fe 8462 jmp short 05b27h ; eb f2 8453 8463 mov dx, strict word 00017h ; ba 17 00 8454 8464 mov ax, strict word 00040h ; b8 40 00 8455 call 01652h ; e8 3cbb8465 call 01652h ; e8 14 bb 8456 8466 mov dx, word [bp+012h] ; 8b 56 12 8457 8467 mov dl, al ; 88 c2 … … 8459 8469 mov dx, strict word 00018h ; ba 18 00 8460 8470 mov ax, strict word 00040h ; b8 40 00 8461 call 01652h ; e8 2bbb8471 call 01652h ; e8 03 bb 8462 8472 mov bh, al ; 88 c7 8463 8473 and bh, 073h ; 80 e7 73 8464 8474 mov dx, 00096h ; ba 96 00 8465 8475 mov ax, strict word 00040h ; b8 40 00 8466 call 01652h ; e8 1d bb8476 call 01652h ; e8 f5 ba 8467 8477 mov ah, al ; 88 c4 8468 8478 and ah, 00ch ; 80 e4 0c … … 8470 8480 mov dx, word [bp+012h] ; 8b 56 12 8471 8481 mov dh, ah ; 88 e6 8472 jmp near 05a 01h ; e9 bd fe8482 jmp near 05a29h ; e9 bd fe 8473 8483 mov ax, word [bp+012h] ; 8b 46 12 8474 8484 xor ah, ah ; 30 e4 8475 8485 or ah, 080h ; 80 cc 80 8476 jmp near 059 59h ; e9 0a fe8477 set_geom_lba_: ; 0xf5b 4fLB 0xeb8486 jmp near 05981h ; e9 0a fe 8487 set_geom_lba_: ; 0xf5b77 LB 0xeb 8478 8488 push bx ; 53 8479 8489 push cx ; 51 … … 8493 8503 mov dx, word [bp+00ch] ; 8b 56 0c 8494 8504 mov si, strict word 00020h ; be 20 00 8495 call 0a0 b0h ; e8 32458505 call 0a0e0h ; e8 3a 45 8496 8506 test ax, ax ; 85 c0 8497 jne short 05b 8eh ; 75 0c8507 jne short 05bb6h ; 75 0c 8498 8508 test bx, bx ; 85 db 8499 jne short 05b 8eh ; 75 088509 jne short 05bb6h ; 75 08 8500 8510 test cx, cx ; 85 c9 8501 jne short 05b 8eh ; 75 048511 jne short 05bb6h ; 75 04 8502 8512 test dx, dx ; 85 d2 8503 je short 05b 95h ; 74 078513 je short 05bbdh ; 74 07 8504 8514 mov bx, strict word 0ffffh ; bb ff ff 8505 8515 mov si, bx ; 89 de 8506 jmp short 05b 9bh ; eb 068516 jmp short 05bc3h ; eb 06 8507 8517 mov bx, word [bp+00ch] ; 8b 5e 0c 8508 8518 mov si, word [bp+00eh] ; 8b 76 0e 8509 8519 mov word [bp-004h], bx ; 89 5e fc 8510 8520 xor bx, bx ; 31 db 8511 jmp short 05b a7h ; eb 058521 jmp short 05bcfh ; eb 05 8512 8522 cmp bx, strict byte 00004h ; 83 fb 04 8513 jnl short 05b cah ; 7d 238523 jnl short 05bf2h ; 7d 23 8514 8524 mov ax, word [bp-006h] ; 8b 46 fa 8515 8525 cmp si, ax ; 39 c6 8516 jc short 05b b8h ; 72 0a8517 jne short 05b c1h ; 75 118526 jc short 05be0h ; 72 0a 8527 jne short 05be9h ; 75 11 8518 8528 mov ax, word [bp-004h] ; 8b 46 fc 8519 8529 cmp ax, word [bp-008h] ; 3b 46 f8 8520 jnbe short 05b c1h ; 77 098530 jnbe short 05be9h ; 77 09 8521 8531 mov ax, word [bp-002h] ; 8b 46 fe 8522 8532 inc ax ; 40 … … 8526 8536 rcr word [bp-008h], 1 ; d1 5e f8 8527 8537 inc bx ; 43 8528 jmp short 05b a2h ; eb d88538 jmp short 05bcah ; eb d8 8529 8539 mov ax, word [bp-002h] ; 8b 46 fe 8530 8540 xor dx, dx ; 31 d2 8531 8541 mov bx, strict word 0003fh ; bb 3f 00 8532 8542 xor cx, cx ; 31 c9 8533 call 0a0 60h ; e8 89448543 call 0a090h ; e8 91 44 8534 8544 mov bx, ax ; 89 c3 8535 8545 mov cx, dx ; 89 d1 8536 8546 mov ax, word [bp-004h] ; 8b 46 fc 8537 8547 mov dx, si ; 89 f2 8538 call 0a0 80h ; e8 9d448548 call 0a0b0h ; e8 a5 44 8539 8549 mov word [es:di+002h], ax ; 26 89 45 02 8540 8550 cmp ax, 00400h ; 3d 00 04 8541 jbe short 05 bf2h ; 76 068551 jbe short 05c1ah ; 76 06 8542 8552 mov word [es:di+002h], 00400h ; 26 c7 45 02 00 04 8543 8553 mov ax, word [bp-002h] ; 8b 46 fe … … 8551 8561 pop bx ; 5b 8552 8562 retn 00008h ; c2 08 00 8553 retn 0d35ch ; c2 5c d3 8554 pop sp ; 5c 8555 sti ; fb 8556 pop sp ; 5c 8557 sti ; fb 8558 pop sp ; 5c 8559 sti ; fb 8560 pop sp ; 5c 8561 jmp near 08173h ; e9 5e 25 8563 jmp far 0235ch:0fb5ch ; ea 5c fb 5c 23 8564 pop bp ; 5d 8565 and bx, word [di+023h] ; 23 5d 23 8566 pop bp ; 5d 8567 adc word [bx+04dh], bx ; 11 5f 4d 8562 8568 pushaw ; 60 8563 and ax, 01960h ; 25 60 19 8569 dec bp ; 4d 8570 pushaw ; 60 8571 inc cx ; 41 8564 8572 pop di ; 5f 8565 call far [bx+025h] ; ff 5f 258573 daa ; 27 8566 8574 pushaw ; 60 8567 and ax, 0ff60h ; 25 60 ff 8575 dec bp ; 4d 8576 pushaw ; 60 8577 dec bp ; 4d 8578 pushaw ; 60 8579 daa ; 27 8580 pushaw ; 60 8581 daa ; 27 8582 pushaw ; 60 8583 dec bp ; 4d 8584 pushaw ; 60 8585 dec bp ; 4d 8586 pushaw ; 60 8587 cmpsw ; a7 8568 8588 pop di ; 5f 8569 call far [bx+025h] ; ff 5f 258589 daa ; 27 8570 8590 pushaw ; 60 8571 and ax, 07f60h ; 25 60 7f 8572 pop di ; 5f 8573 call far [bx+025h] ; ff 5f 25 8591 dec bp ; 4d 8574 8592 pushaw ; 60 8575 and ax, 0ff60h ; 25 60 ff 8576 pop di ; 5f 8577 mov AL, strict byte 05fh ; b0 5f 8578 and ax, 02560h ; 25 60 25 8593 dec bp ; 4d 8579 8594 pushaw ; 60 8580 d b 025h8595 daa ; 27 8581 8596 pushaw ; 60 8582 _int13_harddisk: ; 0xf5c3a LB 0x446 8597 fcomp dword [bx+04dh] ; d8 5f 4d 8598 pushaw ; 60 8599 dec bp ; 4d 8600 pushaw ; 60 8601 dec bp ; 4d 8602 pushaw ; 60 8603 _int13_harddisk: ; 0xf5c62 LB 0x446 8583 8604 push bp ; 55 8584 8605 mov bp, sp ; 89 e5 … … 8586 8607 mov dx, strict word 0000eh ; ba 0e 00 8587 8608 mov ax, strict word 00040h ; b8 40 00 8588 call 0166eh ; e8 25 ba8609 call 0166eh ; e8 fd b9 8589 8610 mov si, 00122h ; be 22 01 8590 8611 mov word [bp-004h], ax ; 89 46 fc … … 8592 8613 mov dx, 0008eh ; ba 8e 00 8593 8614 mov ax, strict word 00040h ; b8 40 00 8594 call 01660h ; e8 06 ba8615 call 01660h ; e8 de b9 8595 8616 mov ax, word [bp+00eh] ; 8b 46 0e 8596 8617 xor ah, ah ; 30 e4 8597 8618 cmp ax, 00080h ; 3d 80 00 8598 jc short 05c 69h ; 72 058619 jc short 05c91h ; 72 05 8599 8620 cmp ax, 00090h ; 3d 90 00 8600 jc short 05c 88h ; 72 1f8621 jc short 05cb0h ; 72 1f 8601 8622 mov ax, word [bp+00eh] ; 8b 46 0e 8602 8623 xor ah, ah ; 30 e4 … … 8610 8631 mov ax, strict word 00004h ; b8 04 00 8611 8632 push ax ; 50 8612 call 01976h ; e8 f4bc8633 call 01976h ; e8 cc bc 8613 8634 add sp, strict byte 0000ah ; 83 c4 0a 8614 jmp near 060 40h ; e9 b8 038635 jmp near 06068h ; e9 b8 03 8615 8636 mov ax, word [bp+00eh] ; 8b 46 0e 8616 8637 xor ah, ah ; 30 e4 … … 8621 8642 mov byte [bp-002h], dl ; 88 56 fe 8622 8643 cmp dl, 010h ; 80 fa 10 8623 jc short 05c afh ; 72 0e8644 jc short 05cd7h ; 72 0e 8624 8645 push ax ; 50 8625 8646 mov al, byte [bp+017h] ; 8a 46 17 … … 8628 8649 push ax ; 50 8629 8650 mov ax, 006b8h ; b8 b8 06 8630 jmp short 05c 7ah ; eb cb8651 jmp short 05ca2h ; eb cb 8631 8652 mov al, byte [bp+017h] ; 8a 46 17 8632 8653 xor ah, ah ; 30 e4 8633 8654 cmp ax, strict word 00018h ; 3d 18 00 8634 jnbe short 05 cf8h ; 77 3f8655 jnbe short 05d20h ; 77 3f 8635 8656 mov bx, ax ; 89 c3 8636 8657 sal bx, 1 ; d1 e3 8637 jmp word [cs:bx+05c 08h] ; 2e ff a7 085c8658 jmp word [cs:bx+05c30h] ; 2e ff a7 30 5c 8638 8659 cmp byte [bp-002h], 008h ; 80 7e fe 08 8639 jnc short 05c d0h ; 73 088660 jnc short 05cf8h ; 73 08 8640 8661 mov al, byte [bp-002h] ; 8a 46 fe 8641 8662 xor ah, ah ; 30 e4 8642 call 01db8h ; e8 e8c08643 jmp near 05f 02h ; e9 2f 028663 call 01db8h ; e8 c0 c0 8664 jmp near 05f2ah ; e9 2f 02 8644 8665 mov dx, strict word 00074h ; ba 74 00 8645 8666 mov ax, strict word 00040h ; b8 40 00 8646 call 01652h ; e8 76b98667 call 01652h ; e8 4e b9 8647 8668 mov cl, al ; 88 c1 8648 8669 mov dx, word [bp+016h] ; 8b 56 16 … … 8652 8673 mov dx, strict word 00074h ; ba 74 00 8653 8674 mov ax, strict word 00040h ; b8 40 00 8654 call 01660h ; e8 6fb98675 call 01660h ; e8 47 b9 8655 8676 test cl, cl ; 84 c9 8656 je short 05d 57h ; 74 628657 jmp near 060 59h ; e9 61 038658 jmp near 060 25h ; e9 2a 038677 je short 05d7fh ; 74 62 8678 jmp near 06081h ; e9 61 03 8679 jmp near 0604dh ; e9 2a 03 8659 8680 mov ax, word [bp+016h] ; 8b 46 16 8660 8681 xor ah, ah ; 30 e4 … … 8675 8696 mov ax, word [bp-00eh] ; 8b 46 f2 8676 8697 cmp ax, 00080h ; 3d 80 00 8677 jnbe short 05d 31h ; 77 048698 jnbe short 05d59h ; 77 04 8678 8699 test ax, ax ; 85 c0 8679 jne short 05d 5ah ; 75 298700 jne short 05d82h ; 75 29 8680 8701 mov bx, 00da0h ; bb a0 0d 8681 8702 mov cx, ds ; 8c d9 8682 8703 mov ax, strict word 00004h ; b8 04 00 8683 call 01933h ; e8 f7bb8704 call 01933h ; e8 cf bb 8684 8705 mov al, byte [bp+017h] ; 8a 46 17 8685 8706 xor ah, ah ; 30 e4 … … 8691 8712 mov ax, strict word 00004h ; b8 04 00 8692 8713 push ax ; 50 8693 call 01976h ; e8 25 bc8714 call 01976h ; e8 fd bb 8694 8715 add sp, strict byte 00008h ; 83 c4 08 8695 jmp near 060 40h ; e9 e9 028696 jmp near 05f 06h ; e9 ac 018716 jmp near 06068h ; e9 e9 02 8717 jmp near 05f2eh ; e9 ac 01 8697 8718 mov al, byte [bp-002h] ; 8a 46 fe 8698 8719 xor ah, ah ; 30 e4 … … 8707 8728 mov word [bp-010h], dx ; 89 56 f0 8708 8729 cmp ax, word [bp-00ah] ; 3b 46 f6 8709 jbe short 05d 88h ; 76 098730 jbe short 05db0h ; 76 09 8710 8731 cmp cx, word [bp-00ch] ; 3b 4e f4 8711 jbe short 05d 88h ; 76 048732 jbe short 05db0h ; 76 04 8712 8733 cmp di, dx ; 39 d7 8713 jbe short 05d b9h ; 76 318734 jbe short 05de1h ; 76 31 8714 8735 mov bx, 00da0h ; bb a0 0d 8715 8736 mov cx, ds ; 8c d9 8716 8737 mov ax, strict word 00004h ; b8 04 00 8717 call 01933h ; e8 a0bb8738 call 01933h ; e8 78 bb 8718 8739 push di ; 57 8719 8740 push word [bp-00ch] ; ff 76 f4 … … 8730 8751 mov ax, strict word 00004h ; b8 04 00 8731 8752 push ax ; 50 8732 call 01976h ; e8 c3bb8753 call 01976h ; e8 9b bb 8733 8754 add sp, strict byte 00010h ; 83 c4 10 8734 jmp near 060 40h ; e9 87 028755 jmp near 06068h ; e9 87 02 8735 8756 mov al, byte [bp+017h] ; 8a 46 17 8736 8757 xor ah, ah ; 30 e4 8737 8758 cmp ax, strict word 00004h ; 3d 04 00 8738 je short 05 de3h ; 74 208759 je short 05e0bh ; 74 20 8739 8760 mov al, byte [bp-002h] ; 8a 46 fe 8740 8761 mov dx, strict word 0001ch ; ba 1c 00 … … 8744 8765 add bx, ax ; 01 c3 8745 8766 cmp cx, word [es:bx+030h] ; 26 3b 4f 30 8746 jne short 05 dech ; 75 148767 jne short 05e14h ; 75 14 8747 8768 mov ax, word [es:bx+034h] ; 26 8b 47 34 8748 8769 cmp ax, word [bp-010h] ; 3b 46 f0 8749 je short 05 de6h ; 74 058750 jmp short 05 dech ; eb 098751 jmp near 05f 02h ; e9 1c 018770 je short 05e0eh ; 74 05 8771 jmp short 05e14h ; eb 09 8772 jmp near 05f2ah ; e9 1c 01 8752 8773 cmp byte [bp-002h], 008h ; 80 7e fe 08 8753 jc short 05e 1bh ; 72 2f8774 jc short 05e43h ; 72 2f 8754 8775 mov ax, word [bp-00ah] ; 8b 46 f6 8755 8776 xor dx, dx ; 31 d2 8756 8777 mov bx, cx ; 89 cb 8757 8778 xor cx, cx ; 31 c9 8758 call 0a0 60h ; e8 68428779 call 0a090h ; e8 70 42 8759 8780 xor bx, bx ; 31 db 8760 8781 add ax, word [bp-00ch] ; 03 46 f4 … … 8762 8783 mov bx, word [bp-010h] ; 8b 5e f0 8763 8784 xor cx, cx ; 31 c9 8764 call 0a0 60h ; e8 59428785 call 0a090h ; e8 61 42 8765 8786 xor bx, bx ; 31 db 8766 8787 add ax, di ; 01 f8 … … 8819 8840 mov word [bp+016h], bx ; 89 5e 16 8820 8841 test dl, dl ; 84 d2 8821 je short 05f 02h ; 74 4a8842 je short 05f2ah ; 74 4a 8822 8843 mov bx, 00da0h ; bb a0 0d 8823 8844 mov cx, ds ; 8c d9 8824 8845 mov ax, strict word 00004h ; b8 04 00 8825 call 01933h ; e8 70ba8846 call 01933h ; e8 48 ba 8826 8847 mov al, dl ; 88 d0 8827 8848 xor ah, ah ; 30 e4 … … 8835 8856 mov ax, strict word 00004h ; b8 04 00 8836 8857 push ax ; 50 8837 call 01976h ; e8 9bba8858 call 01976h ; e8 73 ba 8838 8859 add sp, strict byte 0000ah ; 83 c4 0a 8839 8860 mov ax, word [bp+016h] ; 8b 46 16 8840 8861 xor ah, ah ; 30 e4 8841 8862 or ah, 00ch ; 80 cc 0c 8842 jmp near 060 48h ; e9 5f 018863 jmp near 06070h ; e9 5f 01 8843 8864 mov bx, 00da0h ; bb a0 0d 8844 8865 mov cx, ds ; 8c d9 8845 8866 mov ax, strict word 00004h ; b8 04 00 8846 call 01933h ; e8 3fba8867 call 01933h ; e8 17 ba 8847 8868 mov ax, 0077ah ; b8 7a 07 8848 8869 push ax ; 50 8849 8870 mov ax, strict word 00004h ; b8 04 00 8850 8871 push ax ; 50 8851 call 01976h ; e8 77ba8872 call 01976h ; e8 4f ba 8852 8873 add sp, strict byte 00004h ; 83 c4 04 8853 8874 mov byte [bp+017h], 000h ; c6 46 17 00 … … 8855 8876 mov dx, strict word 00074h ; ba 74 00 8856 8877 mov ax, strict word 00040h ; b8 40 00 8857 call 01660h ; e8 4fb78878 call 01660h ; e8 27 b7 8858 8879 and byte [bp+01ch], 0feh ; 80 66 1c fe 8859 8880 mov sp, bp ; 89 ec … … 8898 8919 or ax, dx ; 09 d0 8899 8920 mov word [bp+012h], ax ; 89 46 12 8900 jmp short 05f 02h ; eb 838921 jmp short 05f2ah ; eb 83 8901 8922 mov al, byte [bp-002h] ; 8a 46 fe 8902 8923 cwd ; 99 … … 8915 8936 and AL, strict byte 0c0h ; 24 c0 8916 8937 cmp AL, strict byte 040h ; 3c 40 8917 jne short 05f a5h ; 75 038918 jmp near 05f 02h ; e9 5d ff8938 jne short 05fcdh ; 75 03 8939 jmp near 05f2ah ; e9 5d ff 8919 8940 mov ax, word [bp+016h] ; 8b 46 16 8920 8941 xor ah, ah ; 30 e4 8921 8942 or ah, 0aah ; 80 cc aa 8922 jmp near 060 48h ; e9 98 008943 jmp near 06070h ; e9 98 00 8923 8944 mov al, byte [bp-002h] ; 8a 46 fe 8924 8945 xor ah, ah ; 30 e4 … … 8936 8957 mov bx, word [bp-00ch] ; 8b 5e f4 8937 8958 xor cx, cx ; 31 c9 8938 call 0a0 60h ; e8 82408959 call 0a090h ; e8 8a 40 8939 8960 mov bx, di ; 89 fb 8940 8961 xor cx, cx ; 31 c9 8941 call 0a0 60h ; e8 7b408962 call 0a090h ; e8 83 40 8942 8963 mov word [bp-008h], ax ; 89 46 f8 8943 8964 mov word [bp-006h], dx ; 89 56 fa … … 8948 8969 or ah, 003h ; 80 cc 03 8949 8970 mov word [bp+016h], ax ; 89 46 16 8950 jmp near 05f 06h ; e9 07 ff8971 jmp near 05f2eh ; e9 07 ff 8951 8972 mov bx, 00da0h ; bb a0 0d 8952 8973 mov cx, ds ; 8c d9 8953 8974 mov ax, strict word 00004h ; b8 04 00 8954 call 01933h ; e8 29b98975 call 01933h ; e8 01 b9 8955 8976 mov al, byte [bp+017h] ; 8a 46 17 8956 8977 xor ah, ah ; 30 e4 … … 8962 8983 mov ax, strict word 00004h ; b8 04 00 8963 8984 push ax ; 50 8964 call 01976h ; e8 57b98985 call 01976h ; e8 2f b9 8965 8986 add sp, strict byte 00008h ; 83 c4 08 8966 jmp near 05f 02h ; e9 dd fe8987 jmp near 05f2ah ; e9 dd fe 8967 8988 mov bx, 00da0h ; bb a0 0d 8968 8989 mov cx, ds ; 8c d9 8969 8990 mov ax, strict word 00004h ; b8 04 00 8970 call 01933h ; e8 03 b98991 call 01933h ; e8 db b8 8971 8992 mov al, byte [bp+017h] ; 8a 46 17 8972 8993 xor ah, ah ; 30 e4 … … 8975 8996 push ax ; 50 8976 8997 mov ax, 007c7h ; b8 c7 07 8977 jmp near 05d 49h ; e9 09 fd8998 jmp near 05d71h ; e9 09 fd 8978 8999 mov ax, word [bp+016h] ; 8b 46 16 8979 9000 xor ah, ah ; 30 e4 … … 8984 9005 mov dx, strict word 00074h ; ba 74 00 8985 9006 mov ax, strict word 00040h ; b8 40 00 8986 call 01660h ; e8 07 b69007 call 01660h ; e8 df b5 8987 9008 or byte [bp+01ch], 001h ; 80 4e 1c 01 8988 jmp near 05f15h ; e9 b5 fe 8989 sbb ah, byte [bx+di+04dh] ; 1a 61 4d 8990 popaw ; 61 8991 dec bp ; 4d 8992 popaw ; 61 8993 dec bp ; 4d 8994 popaw ; 61 8995 pop di ; 5f 8996 db 065h, 0c2h, 062h, 04dh 8997 ; gs retn 04d62h ; 65 c2 62 4d 8998 popaw ; 61 8999 enter 05f62h, 065h ; c8 62 5f 65 9000 xor ah, byte [bx+di+032h] ; 32 61 32 9001 popaw ; 61 9002 xor ah, byte [bx+di+032h] ; 32 61 32 9003 popaw ; 61 9004 jbe short 060e1h ; 76 65 9005 xor ah, byte [bx+di+032h] ; 32 61 32 9006 popaw ; 61 9007 _int13_harddisk_ext: ; 0xf6080 LB 0x52b 9009 jmp near 05f3dh ; e9 b5 fe 9010 db 042h, 061h, 075h, 061h, 075h, 061h, 075h, 061h, 087h, 065h, 0eah, 062h, 075h, 061h, 0f0h, 062h 9011 db 087h, 065h, 05ah, 061h, 05ah, 061h, 05ah, 061h, 05ah, 061h, 09eh, 065h, 05ah, 061h, 05ah, 061h 9012 _int13_harddisk_ext: ; 0xf60a8 LB 0x52b 9008 9013 push bp ; 55 9009 9014 mov bp, sp ; 89 e5 … … 9011 9016 mov dx, strict word 0000eh ; ba 0e 00 9012 9017 mov ax, strict word 00040h ; b8 40 00 9013 call 0166eh ; e8 dfb59018 call 0166eh ; e8 b7 b5 9014 9019 mov word [bp-018h], ax ; 89 46 e8 9015 9020 mov dx, strict word 0000eh ; ba 0e 00 9016 9021 mov ax, strict word 00040h ; b8 40 00 9017 call 0166eh ; e8 d3b59022 call 0166eh ; e8 ab b5 9018 9023 mov word [bp-008h], 00122h ; c7 46 f8 22 01 9019 9024 mov word [bp-006h], ax ; 89 46 fa … … 9021 9026 mov dx, 0008eh ; ba 8e 00 9022 9027 mov ax, strict word 00040h ; b8 40 00 9023 call 01660h ; e8 b2b59028 call 01660h ; e8 8a b5 9024 9029 mov ax, word [bp+00eh] ; 8b 46 0e 9025 9030 xor ah, ah ; 30 e4 9026 9031 cmp ax, 00080h ; 3d 80 00 9027 jc short 060 bdh ; 72 059032 jc short 060e5h ; 72 05 9028 9033 cmp ax, 00090h ; 3d 90 00 9029 jc short 06 0dch ; 72 1f9034 jc short 06104h ; 72 1f 9030 9035 mov ax, word [bp+00eh] ; 8b 46 0e 9031 9036 xor ah, ah ; 30 e4 … … 9039 9044 mov ax, strict word 00004h ; b8 04 00 9040 9045 push ax ; 50 9041 call 01976h ; e8 a0b89046 call 01976h ; e8 78 b8 9042 9047 add sp, strict byte 0000ah ; 83 c4 0a 9043 jmp near 065 8ch ; e9 b0 049048 jmp near 065b4h ; e9 b0 04 9044 9049 mov ax, word [bp+00eh] ; 8b 46 0e 9045 9050 xor ah, ah ; 30 e4 … … 9049 9054 mov byte [bp-004h], dl ; 88 56 fc 9050 9055 cmp dl, 010h ; 80 fa 10 9051 jc short 061 01h ; 72 0e9056 jc short 06129h ; 72 0e 9052 9057 push ax ; 50 9053 9058 mov al, byte [bp+017h] ; 8a 46 17 … … 9056 9061 push ax ; 50 9057 9062 mov ax, 006b8h ; b8 b8 06 9058 jmp short 060 ceh ; eb cd9063 jmp short 060f6h ; eb cd 9059 9064 mov bl, byte [bp+017h] ; 8a 5e 17 9060 9065 xor bh, bh ; 30 ff 9061 9066 sub bx, strict byte 00041h ; 83 eb 41 9062 9067 cmp bx, strict byte 0000fh ; 83 fb 0f 9063 jnbe short 061 32h ; 77 249068 jnbe short 0615ah ; 77 24 9064 9069 sal bx, 1 ; d1 e3 9065 9070 mov ax, word [bp+016h] ; 8b 46 16 9066 9071 xor ah, ah ; 30 e4 9067 jmp word [cs:bx+060 60h] ; 2e ff a7 60609072 jmp word [cs:bx+06088h] ; 2e ff a7 88 60 9068 9073 mov word [bp+010h], 0aa55h ; c7 46 10 55 aa 9069 9074 mov ax, word [bp+016h] ; 8b 46 16 … … 9072 9077 mov word [bp+016h], ax ; 89 46 16 9073 9078 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 9074 jmp near 065 63h ; e9 31 049079 jmp near 0658bh ; e9 31 04 9075 9080 mov bx, 00da0h ; bb a0 0d 9076 9081 mov cx, ds ; 8c d9 9077 9082 mov ax, strict word 00004h ; b8 04 00 9078 call 01933h ; e8 f6b79083 call 01933h ; e8 ce b7 9079 9084 mov al, byte [bp+017h] ; 8a 46 17 9080 9085 xor ah, ah ; 30 e4 … … 9083 9088 push ax ; 50 9084 9089 mov ax, 007c7h ; b8 c7 07 9085 jmp near 06 1eah ; e9 9d 009090 jmp near 06212h ; e9 9d 00 9086 9091 mov di, word [bp+00ah] ; 8b 7e 0a 9087 9092 mov es, [bp+004h] ; 8e 46 04 … … 9099 9104 xor bx, bx ; 31 db 9100 9105 mov si, strict word 00020h ; be 20 00 9101 call 0a0 c0h ; e8 403f9106 call 0a0f0h ; e8 48 3f 9102 9107 mov word [bp-00eh], ax ; 89 46 f2 9103 9108 mov word [bp-010h], bx ; 89 5e f0 … … 9116 9121 mov dx, word [bp-00eh] ; 8b 56 f2 9117 9122 cmp dx, word [es:bx+03ch] ; 26 3b 57 3c 9118 jnbe short 061 d2h ; 77 229119 jne short 06 1f8h ; 75 469123 jnbe short 061fah ; 77 22 9124 jne short 06220h ; 75 46 9120 9125 mov dx, word [bp-010h] ; 8b 56 f0 9121 9126 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9122 jnbe short 061 d2h ; 77 179127 jnbe short 061fah ; 77 17 9123 9128 mov dx, word [bp-010h] ; 8b 56 f0 9124 9129 cmp dx, word [es:bx+03ah] ; 26 3b 57 3a 9125 jne short 06 1f8h ; 75 349130 jne short 06220h ; 75 34 9126 9131 cmp cx, word [es:bx+038h] ; 26 3b 4f 38 9127 jnbe short 061 d2h ; 77 089128 jne short 06 1f8h ; 75 2c9132 jnbe short 061fah ; 77 08 9133 jne short 06220h ; 75 2c 9129 9134 cmp si, word [es:bx+036h] ; 26 3b 77 36 9130 jc short 06 1f8h ; 72 269135 jc short 06220h ; 72 26 9131 9136 mov bx, 00da0h ; bb a0 0d 9132 9137 mov cx, ds ; 8c d9 9133 9138 mov ax, strict word 00004h ; b8 04 00 9134 call 01933h ; e8 56b79139 call 01933h ; e8 2e b7 9135 9140 mov al, byte [bp+017h] ; 8a 46 17 9136 9141 xor ah, ah ; 30 e4 … … 9142 9147 mov ax, strict word 00004h ; b8 04 00 9143 9148 push ax ; 50 9144 call 01976h ; e8 84b79149 call 01976h ; e8 5c b7 9145 9150 add sp, strict byte 00008h ; 83 c4 08 9146 jmp near 065 8ch ; e9 94 039151 jmp near 065b4h ; e9 94 03 9147 9152 mov ah, byte [bp+017h] ; 8a 66 17 9148 9153 mov byte [bp-012h], ah ; 88 66 ee 9149 9154 mov byte [bp-011h], 000h ; c6 46 ef 00 9150 9155 cmp word [bp-012h], strict byte 00044h ; 83 7e ee 44 9151 je short 062 0eh ; 74 069156 je short 06236h ; 74 06 9152 9157 cmp word [bp-012h], strict byte 00047h ; 83 7e ee 47 9153 jne short 062 11h ; 75 039154 jmp near 065 5fh ; e9 4e 039158 jne short 06239h ; 75 03 9159 jmp near 06587h ; e9 4e 03 9155 9160 les bx, [bp-008h] ; c4 5e f8 9156 9161 mov word [es:bx+018h], strict word 00000h ; 26 c7 47 18 00 00 … … 9190 9195 mov word [es:bx+002h], ax ; 26 89 47 02 9191 9196 test dl, dl ; 84 d2 9192 je short 06 2e6h ; 74 549197 je short 0630eh ; 74 54 9193 9198 mov bx, 00da0h ; bb a0 0d 9194 9199 mov cx, ds ; 8c d9 9195 9200 mov ax, strict word 00004h ; b8 04 00 9196 call 01933h ; e8 96b69201 call 01933h ; e8 6e b6 9197 9202 mov al, dl ; 88 d0 9198 9203 xor ah, ah ; 30 e4 … … 9205 9210 mov ax, strict word 00004h ; b8 04 00 9206 9211 push ax ; 50 9207 call 01976h ; e8 c2b69212 call 01976h ; e8 9a b6 9208 9213 add sp, strict byte 0000ah ; 83 c4 0a 9209 9214 mov ax, word [bp+016h] ; 8b 46 16 9210 9215 xor ah, ah ; 30 e4 9211 9216 or ah, 00ch ; 80 cc 0c 9212 jmp near 065 94h ; e9 d2 029217 jmp near 065bch ; e9 d2 02 9213 9218 or ah, 0b2h ; 80 cc b2 9214 jmp near 065 94h ; e9 cc 029219 jmp near 065bch ; e9 cc 02 9215 9220 mov bx, word [bp+00ah] ; 8b 5e 0a 9216 9221 mov ax, word [bp+004h] ; 8b 46 04 … … 9222 9227 mov word [bp-014h], ax ; 89 46 ec 9223 9228 cmp ax, strict word 0001ah ; 3d 1a 00 9224 jnc short 06 2e9h ; 73 069225 jmp near 065 8ch ; e9 a6 029226 jmp near 065 5fh ; e9 76 029227 jnc short 06 2eeh ; 73 039228 jmp near 063 81h ; e9 93 009229 jnc short 06311h ; 73 06 9230 jmp near 065b4h ; e9 a6 02 9231 jmp near 06587h ; e9 76 02 9232 jnc short 06316h ; 73 03 9233 jmp near 063a9h ; e9 93 00 9229 9234 mov al, byte [bp-004h] ; 8a 46 fc 9230 9235 xor ah, ah ; 30 e4 … … 9264 9269 mov dx, si ; 89 f2 9265 9270 mov si, strict word 00020h ; be 20 00 9266 call 0a0 b0h ; e8 393d9271 call 0a0e0h ; e8 41 3d 9267 9272 mov bx, di ; 89 fb 9268 9273 mov word [es:bx+014h], dx ; 26 89 57 14 9269 9274 mov word [es:bx+016h], cx ; 26 89 4f 16 9270 9275 cmp word [bp-014h], strict byte 0001eh ; 83 7e ec 1e 9271 jc short 06 3f3h ; 72 6c9276 jc short 0641bh ; 72 6c 9272 9277 mov es, [bp-00ah] ; 8e 46 f6 9273 9278 mov word [es:di], strict word 0001eh ; 26 c7 05 1e 00 … … 9300 9305 mov al, byte [es:bx+027h] ; 26 8a 47 27 9301 9306 test al, al ; 84 c0 9302 jne short 06 3e4h ; 75 049307 jne short 0640ch ; 75 04 9303 9308 xor si, si ; 31 f6 9304 jmp short 06 3e7h ; eb 039309 jmp short 0640fh ; eb 03 9305 9310 mov si, strict word 00008h ; be 08 00 9306 9311 or si, strict byte 00010h ; 83 ce 10 9307 9312 cmp AL, strict byte 001h ; 3c 01 9308 jne short 06 3f6h ; 75 089313 jne short 0641eh ; 75 08 9309 9314 mov dx, strict word 00001h ; ba 01 00 9310 jmp short 06 3f8h ; eb 059311 jmp near 064 8eh ; e9 98 009315 jmp short 06420h ; eb 05 9316 jmp near 064b6h ; e9 98 00 9312 9317 xor dx, dx ; 31 d2 9313 9318 or si, dx ; 09 d6 9314 9319 cmp AL, strict byte 003h ; 3c 03 9315 jne short 064 03h ; 75 059320 jne short 0642bh ; 75 05 9316 9321 mov ax, strict word 00003h ; b8 03 00 9317 jmp short 064 05h ; eb 029322 jmp short 0642dh ; eb 02 9318 9323 xor ax, ax ; 31 c0 9319 9324 or si, ax ; 09 c6 … … 9344 9349 xor bl, bl ; 30 db 9345 9350 xor bh, bh ; 30 ff 9346 jmp short 064 6eh ; eb 059351 jmp short 06496h ; eb 05 9347 9352 cmp bh, 00fh ; 80 ff 0f 9348 jnc short 064 84h ; 73 169353 jnc short 064ach ; 73 16 9349 9354 mov al, bh ; 88 f8 9350 9355 xor ah, ah ; 30 e4 … … 9352 9357 add dx, 00356h ; 81 c2 56 03 9353 9358 mov ax, word [bp-018h] ; 8b 46 e8 9354 call 01652h ; e8 d4b19359 call 01652h ; e8 ac b1 9355 9360 add bl, al ; 00 c3 9356 9361 db 0feh, 0c7h 9357 9362 ; inc bh ; fe c7 9358 jmp short 064 69h ; eb e59363 jmp short 06491h ; eb e5 9359 9364 neg bl ; f6 db 9360 9365 les si, [bp-008h] ; c4 76 f8 9361 9366 mov byte [es:si+00243h], bl ; 26 88 9c 43 02 9362 9367 cmp word [bp-014h], strict byte 00042h ; 83 7e ec 42 9363 jnc short 064 97h ; 73 039364 jmp near 065 5fh ; e9 c8 009368 jnc short 064bfh ; 73 03 9369 jmp near 06587h ; e9 c8 00 9365 9370 mov al, byte [bp-004h] ; 8a 46 fc 9366 9371 xor ah, ah ; 30 e4 … … 9382 9387 mov word [es:di+022h], strict word 00000h ; 26 c7 45 22 00 00 9383 9388 test al, al ; 84 c0 9384 jne short 06 4e1h ; 75 0c9389 jne short 06509h ; 75 0c 9385 9390 mov word [es:di+024h], 05349h ; 26 c7 45 24 49 53 9386 9391 mov word [es:di+026h], 02041h ; 26 c7 45 26 41 20 … … 9391 9396 mov word [es:di+02eh], 02020h ; 26 c7 45 2e 20 20 9392 9397 test al, al ; 84 c0 9393 jne short 065 16h ; 75 169398 jne short 0653eh ; 75 16 9394 9399 mov word [es:di+030h], dx ; 26 89 55 30 9395 9400 mov word [es:di+032h], strict word 00000h ; 26 c7 45 32 00 00 … … 9406 9411 xor bl, bl ; 30 db 9407 9412 mov BH, strict byte 01eh ; b7 1e 9408 jmp short 065 41h ; eb 059413 jmp short 06569h ; eb 05 9409 9414 cmp bh, 040h ; 80 ff 40 9410 jnc short 065 56h ; 73 159415 jnc short 0657eh ; 73 15 9411 9416 mov al, bh ; 88 f8 9412 9417 xor ah, ah ; 30 e4 … … 9414 9419 add dx, ax ; 01 c2 9415 9420 mov ax, word [bp+004h] ; 8b 46 04 9416 call 01652h ; e8 02 b19421 call 01652h ; e8 da b0 9417 9422 add bl, al ; 00 c3 9418 9423 db 0feh, 0c7h 9419 9424 ; inc bh ; fe c7 9420 jmp short 065 3ch ; eb e69425 jmp short 06564h ; eb e6 9421 9426 neg bl ; f6 db 9422 9427 mov es, [bp-00ah] ; 8e 46 f6 … … 9426 9431 mov dx, strict word 00074h ; ba 74 00 9427 9432 mov ax, strict word 00040h ; b8 40 00 9428 call 01660h ; e8 f2b09433 call 01660h ; e8 ca b0 9429 9434 and byte [bp+01ch], 0feh ; 80 66 1c fe 9430 9435 mov sp, bp ; 89 ec … … 9432 9437 retn ; c3 9433 9438 cmp ax, strict word 00006h ; 3d 06 00 9434 je short 065 5fh ; 74 e49439 je short 06587h ; 74 e4 9435 9440 cmp ax, strict word 00001h ; 3d 01 00 9436 jc short 065 8ch ; 72 0c9437 jbe short 065 5fh ; 76 dd9441 jc short 065b4h ; 72 0c 9442 jbe short 06587h ; 76 dd 9438 9443 cmp ax, strict word 00003h ; 3d 03 00 9439 jc short 065 8ch ; 72 059444 jc short 065b4h ; 72 05 9440 9445 cmp ax, strict word 00004h ; 3d 04 00 9441 jbe short 065 5fh ; 76 d39446 jbe short 06587h ; 76 d3 9442 9447 mov ax, word [bp+016h] ; 8b 46 16 9443 9448 xor ah, ah ; 30 e4 … … 9448 9453 mov dx, strict word 00074h ; ba 74 00 9449 9454 mov ax, strict word 00040h ; b8 40 00 9450 call 01660h ; e8 bbb09455 call 01660h ; e8 93 b0 9451 9456 or byte [bp+01ch], 001h ; 80 4e 1c 01 9452 jmp short 065 72h ; eb c79453 _int14_function: ; 0xf65 abLB 0x15c9457 jmp short 0659ah ; eb c7 9458 _int14_function: ; 0xf65d3 LB 0x15c 9454 9459 push bp ; 55 9455 9460 mov bp, sp ; 89 e5 … … 9459 9464 sal dx, 1 ; d1 e2 9460 9465 mov ax, strict word 00040h ; b8 40 00 9461 call 0166eh ; e8 b3b09466 call 0166eh ; e8 8b b0 9462 9467 mov si, ax ; 89 c6 9463 9468 mov bx, ax ; 89 c3 … … 9465 9470 add dx, strict byte 0007ch ; 83 c2 7c 9466 9471 mov ax, strict word 00040h ; b8 40 00 9467 call 01652h ; e8 87b09472 call 01652h ; e8 5f b0 9468 9473 mov cl, al ; 88 c1 9469 9474 cmp word [bp+00eh], strict byte 00004h ; 83 7e 0e 04 9470 jnc short 065 d7h ; 73 049475 jnc short 065ffh ; 73 04 9471 9476 test si, si ; 85 f6 9472 jnbe short 06 5dah ; 77 039473 jmp near 06 6fdh ; e9 23 019477 jnbe short 06602h ; 77 03 9478 jmp near 06725h ; e9 23 01 9474 9479 mov al, byte [bp+013h] ; 8a 46 13 9475 9480 cmp AL, strict byte 001h ; 3c 01 9476 jc short 06 5eeh ; 72 0d9477 jbe short 066 4eh ; 76 6b9481 jc short 06616h ; 72 0d 9482 jbe short 06676h ; 76 6b 9478 9483 cmp AL, strict byte 003h ; 3c 03 9479 je short 066 46h ; 74 5f9484 je short 0666eh ; 74 5f 9480 9485 cmp AL, strict byte 002h ; 3c 02 9481 je short 066 49h ; 74 5e9482 jmp near 06 6f7h ; e9 09 019486 je short 06671h ; 74 5e 9487 jmp near 0671fh ; e9 09 01 9483 9488 test al, al ; 84 c0 9484 jne short 066 4bh ; 75 599489 jne short 06673h ; 75 59 9485 9490 lea dx, [bx+003h] ; 8d 57 03 9486 9491 in AL, DX ; ec … … 9492 9497 mov al, byte [bp+012h] ; 8a 46 12 9493 9498 test AL, strict byte 0e0h ; a8 e0 9494 jne short 066 11h ; 75 0c9499 jne short 06639h ; 75 0c 9495 9500 mov AL, strict byte 017h ; b0 17 9496 9501 mov dx, bx ; 89 da … … 9499 9504 mov dx, si ; 89 f2 9500 9505 out DX, AL ; ee 9501 jmp short 066 28h ; eb 179506 jmp short 06650h ; eb 17 9502 9507 and AL, strict byte 0e0h ; 24 e0 9503 9508 xor ah, ah ; 30 e4 … … 9526 9531 ; sub ah, ah ; 2a e4 9527 9532 mov byte [bp+012h], al ; 88 46 12 9528 jmp near 06 6d8h ; e9 92 009529 jmp near 06 6e6h ; e9 9d 009530 jmp short 066 9ch ; eb 519531 jmp near 06 6f7h ; e9 a9 009533 jmp near 06700h ; e9 92 00 9534 jmp near 0670eh ; e9 9d 00 9535 jmp short 066c4h ; eb 51 9536 jmp near 0671fh ; e9 a9 00 9532 9537 mov dx, strict word 0006ch ; ba 6c 00 9533 9538 mov ax, strict word 00040h ; b8 40 00 9534 call 0166eh ; e8 17 b09539 call 0166eh ; e8 ef af 9535 9540 mov si, ax ; 89 c6 9536 9541 lea dx, [bx+005h] ; 8d 57 05 … … 9540 9545 and ax, strict word 00060h ; 25 60 00 9541 9546 cmp ax, strict word 00060h ; 3d 60 00 9542 je short 066 7eh ; 74 179547 je short 066a6h ; 74 17 9543 9548 test cl, cl ; 84 c9 9544 je short 066 7eh ; 74 139549 je short 066a6h ; 74 13 9545 9550 mov dx, strict word 0006ch ; ba 6c 00 9546 9551 mov ax, strict word 00040h ; b8 40 00 9547 call 0166eh ; e8 faaf9552 call 0166eh ; e8 d2 af 9548 9553 cmp ax, si ; 39 f0 9549 je short 066 59h ; 74 e19554 je short 06681h ; 74 e1 9550 9555 mov si, ax ; 89 c6 9551 9556 db 0feh, 0c9h 9552 9557 ; dec cl ; fe c9 9553 jmp short 066 59h ; eb db9558 jmp short 06681h ; eb db 9554 9559 test cl, cl ; 84 c9 9555 je short 066 88h ; 74 069560 je short 066b0h ; 74 06 9556 9561 mov al, byte [bp+012h] ; 8a 46 12 9557 9562 mov dx, bx ; 89 da … … 9563 9568 mov byte [bp+013h], al ; 88 46 13 9564 9569 test cl, cl ; 84 c9 9565 jne short 06 6d8h ; 75 439570 jne short 06700h ; 75 43 9566 9571 or AL, strict byte 080h ; 0c 80 9567 9572 mov byte [bp+013h], al ; 88 46 13 9568 jmp short 06 6d8h ; eb 3c9573 jmp short 06700h ; eb 3c 9569 9574 mov dx, strict word 0006ch ; ba 6c 00 9570 9575 mov ax, strict word 00040h ; b8 40 00 9571 call 0166eh ; e8 c9af9576 call 0166eh ; e8 a1 af 9572 9577 mov si, ax ; 89 c6 9573 9578 lea dx, [bx+005h] ; 8d 57 05 … … 9576 9581 ; sub ah, ah ; 2a e4 9577 9582 test AL, strict byte 001h ; a8 01 9578 jne short 066 c8h ; 75 179583 jne short 066f0h ; 75 17 9579 9584 test cl, cl ; 84 c9 9580 je short 066 c8h ; 74 139585 je short 066f0h ; 74 13 9581 9586 mov dx, strict word 0006ch ; ba 6c 00 9582 9587 mov ax, strict word 00040h ; b8 40 00 9583 call 0166eh ; e8 b0af9588 call 0166eh ; e8 88 af 9584 9589 cmp ax, si ; 39 f0 9585 je short 066 a7h ; 74 e59590 je short 066cfh ; 74 e5 9586 9591 mov si, ax ; 89 c6 9587 9592 db 0feh, 0c9h 9588 9593 ; dec cl ; fe c9 9589 jmp short 066 a7h ; eb df9594 jmp short 066cfh ; eb df 9590 9595 test cl, cl ; 84 c9 9591 je short 06 6deh ; 74 129596 je short 06706h ; 74 12 9592 9597 mov byte [bp+013h], 000h ; c6 46 13 00 9593 9598 mov dx, bx ; 89 da … … 9597 9602 mov byte [bp+012h], al ; 88 46 12 9598 9603 and byte [bp+01ch], 0feh ; 80 66 1c fe 9599 jmp short 067 01h ; eb 239604 jmp short 06729h ; eb 23 9600 9605 lea dx, [bx+005h] ; 8d 57 05 9601 9606 in AL, DX ; ec 9602 9607 db 02ah, 0e4h 9603 9608 ; sub ah, ah ; 2a e4 9604 jmp short 066 97h ; eb b19609 jmp short 066bfh ; eb b1 9605 9610 lea dx, [si+005h] ; 8d 54 05 9606 9611 in AL, DX ; ec … … 9612 9617 db 02ah, 0e4h 9613 9618 ; sub ah, ah ; 2a e4 9614 jmp short 066 d5h ; eb de9619 jmp short 066fdh ; eb de 9615 9620 or byte [bp+01ch], 001h ; 80 4e 1c 01 9616 jmp short 067 01h ; eb 049621 jmp short 06729h ; eb 04 9617 9622 or byte [bp+01ch], 001h ; 80 4e 1c 01 9618 9623 lea sp, [bp-002h] ; 8d 66 fe … … 9620 9625 pop bp ; 5d 9621 9626 retn ; c3 9622 timer_wait_: ; 0xf67 07LB 0x439627 timer_wait_: ; 0xf672f LB 0x43 9623 9628 push bp ; 55 9624 9629 mov bp, sp ; 89 e5 … … 9628 9633 mov bx, strict word 0000fh ; bb 0f 00 9629 9634 xor cx, cx ; 31 c9 9630 call 0a0 80h ; e8 6b399635 call 0a0b0h ; e8 73 39 9631 9636 mov cx, ax ; 89 c1 9632 9637 mov bx, dx ; 89 d3 … … 9640 9645 adc bx, strict byte 0ffffh ; 83 d3 ff 9641 9646 cmp bx, strict byte 0ffffh ; 83 fb ff 9642 jne short 067 34h ; 75 059647 jne short 0675ch ; 75 05 9643 9648 cmp cx, strict byte 0ffffh ; 83 f9 ff 9644 je short 067 43h ; 74 0f9649 je short 0676bh ; 74 0f 9645 9650 mov dx, strict word 00061h ; ba 61 00 9646 9651 in AL, DX ; ec … … 9649 9654 and AL, strict byte 010h ; 24 10 9650 9655 cmp al, byte [bp-006h] ; 3a 46 fa 9651 jne short 067 34h ; 75 f39652 jmp short 067 24h ; eb e19656 jne short 0675ch ; 75 f3 9657 jmp short 0674ch ; eb e1 9653 9658 lea sp, [bp-004h] ; 8d 66 fc 9654 9659 pop cx ; 59 … … 9656 9661 pop bp ; 5d 9657 9662 retn ; c3 9658 set_enable_a20_: ; 0xf67 4aLB 0x309663 set_enable_a20_: ; 0xf6772 LB 0x30 9659 9664 push bp ; 55 9660 9665 mov bp, sp ; 89 e5 … … 9669 9674 mov cl, al ; 88 c1 9670 9675 test bx, bx ; 85 db 9671 je short 067 63h ; 74 059676 je short 0678bh ; 74 05 9672 9677 or AL, strict byte 002h ; 0c 02 9673 9678 out DX, AL ; ee 9674 jmp short 067 66h ; eb 039679 jmp short 0678eh ; eb 03 9675 9680 and AL, strict byte 0fdh ; 24 fd 9676 9681 out DX, AL ; ee 9677 9682 test cl, 002h ; f6 c1 02 9678 je short 067 70h ; 74 059683 je short 06798h ; 74 05 9679 9684 mov ax, strict word 00001h ; b8 01 00 9680 jmp short 067 72h ; eb 029685 jmp short 0679ah ; eb 02 9681 9686 xor ax, ax ; 31 c0 9682 9687 lea sp, [bp-006h] ; 8d 66 fa … … 9686 9691 pop bp ; 5d 9687 9692 retn ; c3 9688 set_e820_range_: ; 0xf67 7aLB 0x889693 set_e820_range_: ; 0xf67a2 LB 0x88 9689 9694 push si ; 56 9690 9695 push bp ; 55 … … 9716 9721 retn 0000ah ; c2 0a 00 9717 9722 db 0ech, 0e9h, 0d8h, 0c1h, 0c0h, 0bfh, 091h, 090h, 089h, 088h, 083h, 052h, 04fh, 041h, 024h, 000h 9718 db 0 0fh, 06bh, 03eh, 068h, 052h, 068h, 0eeh, 068h, 0f4h, 068h, 0f9h, 068h, 0feh, 068h, 0a6h, 069h9719 db 0 cah, 069h, 0e7h, 068h, 0e7h, 068h, 094h, 06ah, 0bfh, 06ah, 0d2h, 06ah, 0e1h, 06ah, 0eeh, 068h9720 db 0 eah, 06ah9721 _int15_function: ; 0xf68 02LB 0x3439723 db 037h, 06bh, 066h, 068h, 07ah, 068h, 016h, 069h, 01ch, 069h, 021h, 069h, 026h, 069h, 0ceh, 069h 9724 db 0f2h, 069h, 00fh, 069h, 00fh, 069h, 0bch, 06ah, 0e7h, 06ah, 0fah, 06ah, 009h, 06bh, 016h, 069h 9725 db 012h, 06bh 9726 _int15_function: ; 0xf682a LB 0x343 9722 9727 push bp ; 55 9723 9728 mov bp, sp ; 89 e5 … … 9728 9733 mov dx, ax ; 89 c2 9729 9734 cmp ax, 000ech ; 3d ec 00 9730 jnbe short 068 48h ; 77 359735 jnbe short 06870h ; 77 35 9731 9736 push CS ; 0e 9732 9737 pop ES ; 07 9733 9738 mov cx, strict word 00011h ; b9 11 00 9734 mov di, 067 d0h ; bf d0679739 mov di, 067f8h ; bf f8 67 9735 9740 repne scasb ; f2 ae 9736 9741 sal cx, 1 ; d1 e1 9737 9742 mov di, cx ; 89 cf 9738 mov si, word [cs:di+06 7e0h] ; 2e 8b b5 e0 679743 mov si, word [cs:di+06808h] ; 2e 8b b5 08 68 9739 9744 mov ax, word [bp+012h] ; 8b 46 12 9740 9745 xor ah, ah ; 30 e4 … … 9749 9754 xor ah, ah ; 30 e4 9750 9755 cmp ax, 000c0h ; 3d c0 00 9751 je short 068 4bh ; 74 039752 jmp near 06b 0fh ; e9 c4 029756 je short 06873h ; 74 03 9757 jmp near 06b37h ; e9 c4 02 9753 9758 or byte [bp+018h], 001h ; 80 4e 18 01 9754 jmp near 06a b6h ; e9 64 029759 jmp near 06adeh ; e9 64 02 9755 9760 mov dx, ax ; 89 c2 9756 9761 cmp ax, strict word 00001h ; 3d 01 00 9757 jc short 068 67h ; 72 0e9758 jbe short 068 7bh ; 76 209762 jc short 0688fh ; 72 0e 9763 jbe short 068a3h ; 76 20 9759 9764 cmp ax, strict word 00003h ; 3d 03 00 9760 je short 068 ach ; 74 4c9765 je short 068d4h ; 74 4c 9761 9766 cmp ax, strict word 00002h ; 3d 02 00 9762 je short 068 8bh ; 74 269763 jmp short 068 b9h ; eb 529767 je short 068b3h ; 74 26 9768 jmp short 068e1h ; eb 52 9764 9769 test ax, ax ; 85 c0 9765 jne short 068 b9h ; 75 4e9770 jne short 068e1h ; 75 4e 9766 9771 xor ax, ax ; 31 c0 9767 call 067 4ah ; e8 da fe9772 call 06772h ; e8 da fe 9768 9773 and byte [bp+018h], 0feh ; 80 66 18 fe 9769 9774 mov byte [bp+013h], 000h ; c6 46 13 00 9770 jmp near 06 8e7h ; e9 6c 009775 jmp near 0690fh ; e9 6c 00 9771 9776 mov ax, strict word 00001h ; b8 01 00 9772 call 067 4ah ; e8 c9 fe9777 call 06772h ; e8 c9 fe 9773 9778 and byte [bp+018h], 0feh ; 80 66 18 fe 9774 9779 mov byte [bp+013h], dh ; 88 76 13 9775 jmp near 06 8e7h ; e9 5c 009780 jmp near 0690fh ; e9 5c 00 9776 9781 mov dx, 00092h ; ba 92 00 9777 9782 in AL, DX ; ec … … 9787 9792 xor al, dl ; 30 d0 9788 9793 mov byte [bp+013h], al ; 88 46 13 9789 jmp near 06 8e7h ; e9 3b 009794 jmp near 0690fh ; e9 3b 00 9790 9795 and byte [bp+018h], 0feh ; 80 66 18 fe 9791 9796 mov byte [bp+013h], ah ; 88 66 13 9792 9797 mov word [bp+00ch], ax ; 89 46 0c 9793 jmp near 06 8e7h ; e9 2e 009798 jmp near 0690fh ; e9 2e 00 9794 9799 mov bx, 00da0h ; bb a0 0d 9795 9800 mov cx, ds ; 8c d9 9796 9801 mov ax, strict word 00004h ; b8 04 00 9797 call 01933h ; e8 6fb09802 call 01933h ; e8 47 b0 9798 9803 mov ax, word [bp+012h] ; 8b 46 12 9799 9804 xor ah, ah ; 30 e4 … … 9803 9808 mov ax, strict word 00004h ; b8 04 00 9804 9809 push ax ; 50 9805 call 01976h ; e8 a1b09810 call 01976h ; e8 79 b0 9806 9811 add sp, strict byte 00006h ; 83 c4 06 9807 9812 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9816 9821 retn ; c3 9817 9822 mov word [bp+018h], dx ; 89 56 18 9818 jmp near 069 a0h ; e9 ac 009823 jmp near 069c8h ; e9 ac 00 9819 9824 mov word [bp+018h], dx ; 89 56 18 9820 jmp short 06 8e7h ; eb ee9825 jmp short 0690fh ; eb ee 9821 9826 mov word [bp+018h], cx ; 89 4e 18 9822 jmp short 06 8e4h ; eb e69827 jmp short 0690ch ; eb e6 9823 9828 test byte [bp+012h], 0ffh ; f6 46 12 ff 9824 jne short 069 73h ; 75 6f9829 jne short 0699bh ; 75 6f 9825 9830 mov dx, 000a0h ; ba a0 00 9826 9831 mov ax, strict word 00040h ; b8 40 00 9827 call 01652h ; e8 45ad9832 call 01652h ; e8 1d ad 9828 9833 test AL, strict byte 001h ; a8 01 9829 jne short 069 70h ; 75 5f9834 jne short 06998h ; 75 5f 9830 9835 mov bx, strict word 00001h ; bb 01 00 9831 9836 mov dx, 000a0h ; ba a0 00 9832 9837 mov ax, strict word 00040h ; b8 40 00 9833 call 01660h ; e8 43ad9838 call 01660h ; e8 1b ad 9834 9839 mov bx, word [bp+014h] ; 8b 5e 14 9835 9840 mov dx, 00098h ; ba 98 00 9836 9841 mov ax, strict word 00040h ; b8 40 00 9837 call 0167ch ; e8 53ad9842 call 0167ch ; e8 2b ad 9838 9843 mov bx, word [bp+00ch] ; 8b 5e 0c 9839 9844 mov dx, 0009ah ; ba 9a 00 9840 9845 mov ax, strict word 00040h ; b8 40 00 9841 call 0167ch ; e8 47ad9846 call 0167ch ; e8 1f ad 9842 9847 mov bx, word [bp+00eh] ; 8b 5e 0e 9843 9848 mov dx, 0009ch ; ba 9c 00 9844 9849 mov ax, strict word 00040h ; b8 40 00 9845 call 0167ch ; e8 3bad9850 call 0167ch ; e8 13 ad 9846 9851 mov bx, word [bp+010h] ; 8b 5e 10 9847 9852 mov dx, 0009eh ; ba 9e 00 9848 9853 mov ax, strict word 00040h ; b8 40 00 9849 call 0167ch ; e8 2fad9854 call 0167ch ; e8 07 ad 9850 9855 and byte [bp+018h], 0feh ; 80 66 18 fe 9851 9856 mov dx, 000a1h ; ba a1 00 … … 9856 9861 out DX, AL ; ee 9857 9862 mov ax, strict word 0000bh ; b8 0b 00 9858 call 016aeh ; e8 4ead9863 call 016aeh ; e8 26 ad 9859 9864 mov dl, al ; 88 c2 9860 9865 or dl, 040h ; 80 ca 40 9861 9866 xor dh, dh ; 30 f6 9862 9867 mov ax, strict word 0000bh ; b8 0b 00 9863 call 016c9h ; e8 5cad9864 jmp near 06 8e7h ; e9 77 ff9865 jmp near 06a adh ; e9 3a 019868 call 016c9h ; e8 34 ad 9869 jmp near 0690fh ; e9 77 ff 9870 jmp near 06ad5h ; e9 3a 01 9866 9871 cmp ax, strict word 00001h ; 3d 01 00 9867 jne short 069 94h ; 75 1c9872 jne short 069bch ; 75 1c 9868 9873 xor bx, bx ; 31 db 9869 9874 mov dx, 000a0h ; ba a0 00 9870 9875 mov ax, strict word 00040h ; b8 40 00 9871 call 01660h ; e8 ddac9876 call 01660h ; e8 b5 ac 9872 9877 and byte [bp+018h], 0feh ; 80 66 18 fe 9873 9878 mov ax, strict word 0000bh ; b8 0b 00 9874 call 016aeh ; e8 21 ad9879 call 016aeh ; e8 f9 ac 9875 9880 mov dl, al ; 88 c2 9876 9881 and dl, 0bfh ; 80 e2 bf 9877 jmp short 069 65h ; eb d19882 jmp short 0698dh ; eb d1 9878 9883 mov word [bp+018h], dx ; 89 56 18 9879 9884 mov ax, bx ; 89 d8 … … 9883 9888 or bx, ax ; 09 c3 9884 9889 mov word [bp+012h], bx ; 89 5e 12 9885 jmp near 06 8e7h ; e9 41 ff9890 jmp near 0690fh ; e9 41 ff 9886 9891 mov ax, strict word 00031h ; b8 31 00 9887 call 016aeh ; e8 02 ad9892 call 016aeh ; e8 da ac 9888 9893 mov dh, al ; 88 c6 9889 9894 mov ax, strict word 00030h ; b8 30 00 9890 call 016aeh ; e8 faac9895 call 016aeh ; e8 d2 ac 9891 9896 mov dl, al ; 88 c2 9892 9897 mov word [bp+012h], dx ; 89 56 12 9893 9898 cmp dx, strict byte 0ffc0h ; 83 fa c0 9894 jbe short 069 c3h ; 76 059899 jbe short 069ebh ; 76 05 9895 9900 mov word [bp+012h], strict word 0ffc0h ; c7 46 12 c0 ff 9896 9901 and byte [bp+018h], 0feh ; 80 66 18 fe 9897 jmp near 06 8e7h ; e9 1d ff9902 jmp near 0690fh ; e9 1d ff 9898 9903 cli ; fa 9899 9904 mov ax, strict word 00001h ; b8 01 00 9900 call 067 4ah ; e8 79 fd9905 call 06772h ; e8 79 fd 9901 9906 mov dx, word [bp+006h] ; 8b 56 06 9902 9907 add dx, strict byte 00038h ; 83 c2 38 9903 9908 mov ax, word [bp+014h] ; 8b 46 14 9904 9909 mov bx, strict word 0ffffh ; bb ff ff 9905 call 0167ch ; e8 9cac9910 call 0167ch ; e8 74 ac 9906 9911 mov dx, word [bp+006h] ; 8b 56 06 9907 9912 add dx, strict byte 0003ah ; 83 c2 3a 9908 9913 mov ax, word [bp+014h] ; 8b 46 14 9909 9914 xor bx, bx ; 31 db 9910 call 0167ch ; e8 8eac9915 call 0167ch ; e8 66 ac 9911 9916 mov dx, word [bp+006h] ; 8b 56 06 9912 9917 add dx, strict byte 0003ch ; 83 c2 3c 9913 9918 mov ax, word [bp+014h] ; 8b 46 14 9914 9919 mov bx, strict word 0000fh ; bb 0f 00 9915 call 01660h ; e8 63ac9920 call 01660h ; e8 3b ac 9916 9921 mov dx, word [bp+006h] ; 8b 56 06 9917 9922 add dx, strict byte 0003dh ; 83 c2 3d 9918 9923 mov ax, word [bp+014h] ; 8b 46 14 9919 9924 mov bx, 0009bh ; bb 9b 00 9920 call 01660h ; e8 54ac9925 call 01660h ; e8 2c ac 9921 9926 mov dx, word [bp+006h] ; 8b 56 06 9922 9927 add dx, strict byte 0003eh ; 83 c2 3e 9923 9928 mov ax, word [bp+014h] ; 8b 46 14 9924 9929 xor bx, bx ; 31 db 9925 call 0167ch ; e8 62ac9930 call 0167ch ; e8 3a ac 9926 9931 mov AL, strict byte 011h ; b0 11 9927 9932 mov dx, strict word 00020h ; ba 20 00 … … 9952 9957 out DX, AL ; ee 9953 9958 mov si, word [bp+006h] ; 8b 76 06 9954 call 06a 58h ; e8 00 009959 call 06a80h ; e8 00 00 9955 9960 pop di ; 5f 9956 9961 add di, strict byte 00018h ; 83 c7 18 … … 9980 9985 push cx ; 51 9981 9986 retf ; cb 9982 jmp near 06 8e7h ; e9 53 fe9987 jmp near 0690fh ; e9 53 fe 9983 9988 mov bx, 00da0h ; bb a0 0d 9984 9989 mov cx, ds ; 8c d9 9985 9990 mov ax, strict word 00004h ; b8 04 00 9986 call 01933h ; e8 94ae9991 call 01933h ; e8 6c ae 9987 9992 mov ax, 0086eh ; b8 6e 08 9988 9993 push ax ; 50 9989 9994 mov ax, strict word 00004h ; b8 04 00 9990 9995 push ax ; 50 9991 call 01976h ; e8 ccae9996 call 01976h ; e8 a4 ae 9992 9997 add sp, strict byte 00004h ; 83 c4 04 9993 9998 or byte [bp+018h], 001h ; 80 4e 18 01 … … 9996 10001 or ah, 086h ; 80 cc 86 9997 10002 mov word [bp+012h], ax ; 89 46 12 9998 jmp near 06 8e7h ; e9 28 fe10003 jmp near 0690fh ; e9 28 fe 9999 10004 mov word [bp+018h], cx ; 89 4e 18 10000 10005 mov word [bp+012h], ax ; 89 46 12 10001 10006 mov word [bp+00ch], 0e6f5h ; c7 46 0c f5 e6 10002 10007 mov word [bp+014h], 0f000h ; c7 46 14 00 f0 10003 jmp near 06 8e7h ; e9 15 fe10008 jmp near 0690fh ; e9 15 fe 10004 10009 mov dx, strict word 0000eh ; ba 0e 00 10005 10010 mov ax, strict word 00040h ; b8 40 00 10006 call 0166eh ; e8 93ab10011 call 0166eh ; e8 6b ab 10007 10012 mov word [bp+014h], ax ; 89 46 14 10008 jmp near 069 c3h ; e9 e2 fe10013 jmp near 069ebh ; e9 e2 fe 10009 10014 mov ax, 0089dh ; b8 9d 08 10010 10015 push ax ; 50 10011 10016 mov ax, strict word 00008h ; b8 08 00 10012 jmp short 06a a6h ; eb bc10017 jmp short 06aceh ; eb bc 10013 10018 test byte [bp+012h], 0ffh ; f6 46 12 ff 10014 jne short 06b 0fh ; 75 1f10019 jne short 06b37h ; 75 1f 10015 10020 mov word [bp+012h], ax ; 89 46 12 10016 10021 mov ax, word [bp+00ch] ; 8b 46 0c 10017 10022 xor ah, ah ; 30 e4 10018 10023 cmp ax, strict word 00001h ; 3d 01 00 10019 jc short 06b 08h ; 72 0b10024 jc short 06b30h ; 72 0b 10020 10025 cmp ax, strict word 00003h ; 3d 03 00 10021 jnbe short 06b 08h ; 77 0610026 jnbe short 06b30h ; 77 06 10022 10027 mov word [bp+018h], cx ; 89 4e 18 10023 jmp near 06 8e7h ; e9 df fd10028 jmp near 0690fh ; e9 df fd 10024 10029 or byte [bp+018h], 001h ; 80 4e 18 01 10025 jmp near 06 8e7h ; e9 d8 fd10030 jmp near 0690fh ; e9 d8 fd 10026 10031 mov bx, 00da0h ; bb a0 0d 10027 10032 mov cx, ds ; 8c d9 10028 10033 mov ax, strict word 00004h ; b8 04 00 10029 call 01933h ; e8 19 ae10034 call 01933h ; e8 f1 ad 10030 10035 push word [bp+00ch] ; ff 76 0c 10031 10036 push word [bp+012h] ; ff 76 12 … … 10034 10039 mov ax, strict word 00004h ; b8 04 00 10035 10040 push ax ; 50 10036 call 01976h ; e8 4bae10041 call 01976h ; e8 23 ae 10037 10042 add sp, strict byte 00008h ; 83 c4 08 10038 jmp near 06a adh ; e9 7c ff10039 scasb ; ae10043 jmp near 06ad5h ; e9 7c ff 10044 db 0d6h 10040 10045 insb ; 6c 10041 fsubr dword [si+030h] ; d8 6c 3010046 add byte [di+058h], ch ; 00 6d 58 10042 10047 insw ; 6d 10043 push bp ; 55 10048 jnl short 06bceh ; 7d 6d 10049 popfw ; 9d 10044 10050 insw ; 6d 10045 jne short 06ba8h ; 75 6d 10046 xchg sp, ax ; 94 10051 mov sp, 0e26dh ; bc 6d e2 10047 10052 insw ; 6d 10048 mov dx, 0e06dh ; ba 6d e0 10049 insw ; 6d 10050 sbb ax, 0516eh ; 1d 6e 51 10053 or byte [bp+045h], ch ; 08 6e 45 10051 10054 outsb ; 6e 10052 _int15_function32: ; 0xf6b45 LB 0x39e 10055 jns short 06bdbh ; 79 6e 10056 _int15_function32: ; 0xf6b6d LB 0x39e 10053 10057 push bp ; 55 10054 10058 mov bp, sp ; 89 e5 … … 10062 10066 xor dh, dh ; 30 f6 10063 10067 cmp ax, 000e8h ; 3d e8 00 10064 je short 06b abh ; 74 4a10068 je short 06bd3h ; 74 4a 10065 10069 cmp ax, 000d0h ; 3d d0 00 10066 je short 06b 78h ; 74 1210070 je short 06ba0h ; 74 12 10067 10071 cmp ax, 00086h ; 3d 86 00 10068 jne short 06b a9h ; 75 3e10072 jne short 06bd1h ; 75 3e 10069 10073 sti ; fb 10070 10074 mov dx, word [bp+01ch] ; 8b 56 1c 10071 10075 mov ax, word [bp+018h] ; 8b 46 18 10072 call 067 07h ; e8 92 fb10073 jmp near 06d 2ah ; e9 b2 0110076 call 0672fh ; e8 92 fb 10077 jmp near 06d52h ; e9 b2 01 10074 10078 cmp dx, strict byte 0004fh ; 83 fa 4f 10075 jne short 06b a9h ; 75 2c10079 jne short 06bd1h ; 75 2c 10076 10080 cmp word [bp+016h], 05052h ; 81 7e 16 52 50 10077 jne short 06 bdfh ; 75 5b10081 jne short 06c07h ; 75 5b 10078 10082 cmp word [bp+014h], 04f43h ; 81 7e 14 43 4f 10079 jne short 06 bdfh ; 75 5410083 jne short 06c07h ; 75 54 10080 10084 cmp word [bp+01eh], 04d4fh ; 81 7e 1e 4f 4d 10081 jne short 06 bdfh ; 75 4d10085 jne short 06c07h ; 75 4d 10082 10086 cmp word [bp+01ch], 04445h ; 81 7e 1c 45 44 10083 jne short 06 bdfh ; 75 4610087 jne short 06c07h ; 75 46 10084 10088 mov ax, word [bp+00ah] ; 8b 46 0a 10085 10089 or ax, word [bp+008h] ; 0b 46 08 10086 jne short 06 bdfh ; 75 3e10090 jne short 06c07h ; 75 3e 10087 10091 mov ax, word [bp+006h] ; 8b 46 06 10088 10092 or ax, word [bp+004h] ; 0b 46 04 10089 je short 06b adh ; 74 0410090 jmp short 06 bdfh ; eb 3410091 jmp short 06b d5h ; eb 2810093 je short 06bd5h ; 74 04 10094 jmp short 06c07h ; eb 34 10095 jmp short 06bfdh ; eb 28 10092 10096 mov word [bp+028h], bx ; 89 5e 28 10093 10097 mov ax, word [bp+014h] ; 8b 46 14 … … 10101 10105 mov word [bp+020h], 03332h ; c7 46 20 32 33 10102 10106 mov word [bp+022h], 04941h ; c7 46 22 41 49 10103 jmp near 06d 2ah ; e9 55 0110107 jmp near 06d52h ; e9 55 01 10104 10108 cmp dx, strict byte 00020h ; 83 fa 20 10105 je short 06 be5h ; 74 0b10109 je short 06c0dh ; 74 0b 10106 10110 cmp dx, strict byte 00001h ; 83 fa 01 10107 je short 06 be2h ; 74 0310108 jmp near 06 cfdh ; e9 1b 0110109 jmp near 06e a3h ; e9 be 0210111 je short 06c0ah ; 74 03 10112 jmp near 06d25h ; e9 1b 01 10113 jmp near 06ecbh ; e9 be 02 10110 10114 cmp word [bp+01ah], 0534dh ; 81 7e 1a 4d 53 10111 jne short 06 bdfh ; 75 f310115 jne short 06c07h ; 75 f3 10112 10116 cmp word [bp+018h], 04150h ; 81 7e 18 50 41 10113 jne short 06 bdfh ; 75 ec10117 jne short 06c07h ; 75 ec 10114 10118 mov ax, strict word 00035h ; b8 35 00 10115 call 016aeh ; e8 b5aa10119 call 016aeh ; e8 8d aa 10116 10120 mov bl, al ; 88 c3 10117 10121 xor bh, bh ; 30 ff … … 10120 10124 sal bx, 1 ; d1 e3 10121 10125 rcl dx, 1 ; d1 d2 10122 loop 06c 02h ; e2 fa10126 loop 06c2ah ; e2 fa 10123 10127 mov ax, strict word 00034h ; b8 34 00 10124 call 016aeh ; e8 a0aa10128 call 016aeh ; e8 78 aa 10125 10129 xor ah, ah ; 30 e4 10126 10130 mov dx, bx ; 89 da … … 10130 10134 adc dx, 00100h ; 81 d2 00 01 10131 10135 cmp dx, 00100h ; 81 fa 00 01 10132 jc short 06c 28h ; 72 0610133 jne short 06c 56h ; 75 3210136 jc short 06c50h ; 72 06 10137 jne short 06c7eh ; 75 32 10134 10138 test bx, bx ; 85 db 10135 jnbe short 06c 56h ; 77 2e10139 jnbe short 06c7eh ; 77 2e 10136 10140 mov ax, strict word 00031h ; b8 31 00 10137 call 016aeh ; e8 80aa10141 call 016aeh ; e8 58 aa 10138 10142 mov bl, al ; 88 c3 10139 10143 xor bh, bh ; 30 ff … … 10142 10146 sal bx, 1 ; d1 e3 10143 10147 rcl dx, 1 ; d1 d2 10144 loop 06c 37h ; e2 fa10148 loop 06c5fh ; e2 fa 10145 10149 mov ax, strict word 00030h ; b8 30 00 10146 call 016aeh ; e8 6baa10150 call 016aeh ; e8 43 aa 10147 10151 xor ah, ah ; 30 e4 10148 10152 or bx, ax ; 09 c3 … … 10150 10154 sal bx, 1 ; d1 e3 10151 10155 rcl dx, 1 ; d1 d2 10152 loop 06c 4ah ; e2 fa10156 loop 06c72h ; e2 fa 10153 10157 add bx, strict byte 00000h ; 83 c3 00 10154 10158 adc dx, strict byte 00010h ; 83 d2 10 10155 10159 mov ax, strict word 00062h ; b8 62 00 10156 call 016aeh ; e8 52aa10160 call 016aeh ; e8 2a aa 10157 10161 xor ah, ah ; 30 e4 10158 10162 mov word [bp-00ah], ax ; 89 46 f6 … … 10162 10166 sal word [bp-00ah], 1 ; d1 66 f6 10163 10167 rcl word [bp-008h], 1 ; d1 56 f8 10164 loop 06c 69h ; e2 f810168 loop 06c91h ; e2 f8 10165 10169 mov ax, strict word 00061h ; b8 61 00 10166 call 016aeh ; e8 37aa10170 call 016aeh ; e8 0f aa 10167 10171 xor ah, ah ; 30 e4 10168 10172 or word [bp-00ah], ax ; 09 46 f6 … … 10171 10175 mov word [bp-00ah], strict word 00000h ; c7 46 f6 00 00 10172 10176 mov ax, strict word 00063h ; b8 63 00 10173 call 016aeh ; e8 21 aa10177 call 016aeh ; e8 f9 a9 10174 10178 mov byte [bp-004h], al ; 88 46 fc 10175 10179 mov byte [bp-006h], al ; 88 46 fa 10176 10180 mov ax, word [bp+014h] ; 8b 46 14 10177 10181 cmp ax, strict word 00009h ; 3d 09 00 10178 jnbe short 06 cfdh ; 77 6210182 jnbe short 06d25h ; 77 62 10179 10183 mov si, ax ; 89 c6 10180 10184 sal si, 1 ; d1 e6 … … 10183 10187 mov cx, dx ; 89 d1 10184 10188 adc cx, strict byte 0ffffh ; 83 d1 ff 10185 jmp word [cs:si+06b 31h] ; 2e ff a4 316b10189 jmp word [cs:si+06b59h] ; 2e ff a4 59 6b 10186 10190 mov ax, strict word 00001h ; b8 01 00 10187 10191 push ax ; 50 … … 10197 10201 xor bx, bx ; 31 db 10198 10202 xor cx, cx ; 31 c9 10199 call 067 7ah ; e8 af fa10203 call 067a2h ; e8 af fa 10200 10204 mov word [bp+014h], strict word 00001h ; c7 46 14 01 00 10201 10205 mov word [bp+016h], strict word 00000h ; c7 46 16 00 00 10202 jmp near 06e 88h ; e9 b0 0110206 jmp near 06eb0h ; e9 b0 01 10203 10207 mov ax, strict word 00002h ; b8 02 00 10204 10208 push ax ; 50 … … 10214 10218 mov bx, 0fc00h ; bb 00 fc 10215 10219 mov cx, strict word 00009h ; b9 09 00 10216 call 067 7ah ; e8 84 fa10220 call 067a2h ; e8 84 fa 10217 10221 mov word [bp+014h], strict word 00002h ; c7 46 14 02 00 10218 jmp short 06c d0h ; eb d310222 jmp short 06cf8h ; eb d3 10219 10223 mov bx, 00da0h ; bb a0 0d 10220 10224 mov cx, ds ; 8c d9 10221 10225 mov ax, strict word 00004h ; b8 04 00 10222 call 01933h ; e8 2bac10226 call 01933h ; e8 03 ac 10223 10227 push word [bp+014h] ; ff 76 14 10224 10228 push word [bp+020h] ; ff 76 20 … … 10227 10231 mov ax, strict word 00004h ; b8 04 00 10228 10232 push ax ; 50 10229 call 01976h ; e8 5dac10233 call 01976h ; e8 35 ac 10230 10234 add sp, strict byte 00008h ; 83 c4 08 10231 10235 or byte [bp+028h], 001h ; 80 4e 28 01 … … 10251 10255 xor bx, bx ; 31 db 10252 10256 mov cx, strict word 0000fh ; b9 0f 00 10253 call 067 7ah ; e8 2d fa10257 call 067a2h ; e8 2d fa 10254 10258 mov word [bp+014h], strict word 00003h ; c7 46 14 03 00 10255 jmp near 06c d0h ; e9 7b ff10259 jmp near 06cf8h ; e9 7b ff 10256 10260 mov dx, strict word 00001h ; ba 01 00 10257 10261 push dx ; 52 … … 10265 10269 xor bx, bx ; 31 db 10266 10270 mov cx, strict word 00010h ; b9 10 00 10267 call 067 7ah ; e8 0d fa10271 call 067a2h ; e8 0d fa 10268 10272 mov word [bp+014h], strict word 00004h ; c7 46 14 04 00 10269 jmp near 06c d0h ; e9 5b ff10273 jmp near 06cf8h ; e9 5b ff 10270 10274 mov si, strict word 00003h ; be 03 00 10271 10275 push si ; 56 … … 10279 10283 mov bx, ax ; 89 c3 10280 10284 mov ax, si ; 89 f0 10281 call 067 7ah ; e8 ee f910285 call 067a2h ; e8 ee f9 10282 10286 mov word [bp+014h], strict word 00005h ; c7 46 14 05 00 10283 jmp near 06c d0h ; e9 3c ff10287 jmp near 06cf8h ; e9 3c ff 10284 10288 mov ax, strict word 00002h ; b8 02 00 10285 10289 push ax ; 50 … … 10295 10299 xor bx, bx ; 31 db 10296 10300 mov cx, 0fec0h ; b9 c0 fe 10297 call 067 7ah ; e8 c8 f910301 call 067a2h ; e8 c8 f9 10298 10302 mov word [bp+014h], strict word 00006h ; c7 46 14 06 00 10299 jmp near 06c d0h ; e9 16 ff10303 jmp near 06cf8h ; e9 16 ff 10300 10304 mov ax, strict word 00002h ; b8 02 00 10301 10305 push ax ; 50 … … 10311 10315 xor bx, bx ; 31 db 10312 10316 mov cx, 0fee0h ; b9 e0 fe 10313 call 067 7ah ; e8 a2 f910317 call 067a2h ; e8 a2 f9 10314 10318 mov word [bp+014h], strict word 00007h ; c7 46 14 07 00 10315 jmp near 06c d0h ; e9 f0 fe10319 jmp near 06cf8h ; e9 f0 fe 10316 10320 mov ax, strict word 00002h ; b8 02 00 10317 10321 push ax ; 50 … … 10325 10329 xor bx, bx ; 31 db 10326 10330 mov cx, strict word 0fffch ; b9 fc ff 10327 call 067 7ah ; e8 82 f910331 call 067a2h ; e8 82 f9 10328 10332 cmp byte [bp-004h], 000h ; 80 7e fc 00 10329 jne short 06e 05h ; 75 0710333 jne short 06e2dh ; 75 07 10330 10334 mov ax, word [bp-008h] ; 8b 46 f8 10331 10335 test ax, ax ; 85 c0 10332 je short 06e 15h ; 74 1010336 je short 06e3dh ; 74 10 10333 10337 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10334 jmp near 06c d0h ; e9 c3 fe10338 jmp near 06cf8h ; e9 c3 fe 10335 10339 mov word [bp+014h], strict word 00008h ; c7 46 14 08 00 10336 jmp near 06c d0h ; e9 bb fe10340 jmp near 06cf8h ; e9 bb fe 10337 10341 mov word [bp+014h], ax ; 89 46 14 10338 10342 mov word [bp+016h], ax ; 89 46 16 10339 jmp short 06e 88h ; eb 6b10343 jmp short 06eb0h ; eb 6b 10340 10344 mov ax, strict word 00002h ; b8 02 00 10341 10345 push ax ; 50 … … 10349 10353 xor bx, bx ; 31 db 10350 10354 xor cx, cx ; 31 c9 10351 call 067 7ah ; e8 46 f910355 call 067a2h ; e8 46 f9 10352 10356 cmp byte [bp-004h], 000h ; 80 7e fc 00 10353 jne short 06e 41h ; 75 0710357 jne short 06e69h ; 75 07 10354 10358 mov ax, word [bp-008h] ; 8b 46 f8 10355 10359 test ax, ax ; 85 c0 10356 je short 06e 49h ; 74 0810360 je short 06e71h ; 74 08 10357 10361 mov word [bp+014h], strict word 00009h ; c7 46 14 09 00 10358 jmp near 06c d0h ; e9 87 fe10362 jmp near 06cf8h ; e9 87 fe 10359 10363 mov word [bp+014h], ax ; 89 46 14 10360 10364 mov word [bp+016h], ax ; 89 46 16 10361 jmp short 06e 88h ; eb 3710365 jmp short 06eb0h ; eb 37 10362 10366 cmp byte [bp-004h], 000h ; 80 7e fc 00 10363 jne short 06e 5dh ; 75 0610367 jne short 06e85h ; 75 06 10364 10368 cmp word [bp-008h], strict byte 00000h ; 83 7e f8 00 10365 je short 06e 88h ; 74 2b10369 je short 06eb0h ; 74 2b 10366 10370 mov ax, strict word 00001h ; b8 01 00 10367 10371 push ax ; 50 … … 10379 10383 xor bx, bx ; 31 db 10380 10384 xor cx, cx ; 31 c9 10381 call 067 7ah ; e8 fa f810385 call 067a2h ; e8 fa f8 10382 10386 xor ax, ax ; 31 c0 10383 10387 mov word [bp+014h], ax ; 89 46 14 … … 10388 10392 mov word [bp+01eh], strict word 00000h ; c7 46 1e 00 00 10389 10393 and byte [bp+028h], 0feh ; 80 66 28 fe 10390 jmp near 06d 2ah ; e9 87 fe10394 jmp near 06d52h ; e9 87 fe 10391 10395 mov word [bp+028h], bx ; 89 5e 28 10392 10396 mov ax, strict word 00031h ; b8 31 00 10393 call 016aeh ; e8 02 a810397 call 016aeh ; e8 da a7 10394 10398 mov dh, al ; 88 c6 10395 10399 mov ax, strict word 00030h ; b8 30 00 10396 call 016aeh ; e8 faa710400 call 016aeh ; e8 d2 a7 10397 10401 mov dl, al ; 88 c2 10398 10402 mov word [bp+01ch], dx ; 89 56 1c 10399 10403 cmp dx, 03c00h ; 81 fa 00 3c 10400 jbe short 06e c4h ; 76 0510404 jbe short 06eech ; 76 05 10401 10405 mov word [bp+01ch], 03c00h ; c7 46 1c 00 3c 10402 10406 mov ax, strict word 00035h ; b8 35 00 10403 call 016aeh ; e8 e4a710407 call 016aeh ; e8 bc a7 10404 10408 mov dh, al ; 88 c6 10405 10409 mov ax, strict word 00034h ; b8 34 00 10406 call 016aeh ; e8 dca710410 call 016aeh ; e8 b4 a7 10407 10411 mov dl, al ; 88 c2 10408 10412 mov word [bp+018h], dx ; 89 56 18 … … 10410 10414 mov word [bp+020h], ax ; 89 46 20 10411 10415 mov word [bp+014h], dx ; 89 56 14 10412 jmp near 06d 2ah ; e9 47 fe10413 _inv_op_handler: ; 0xf6 ee3LB 0x18f10416 jmp near 06d52h ; e9 47 fe 10417 _inv_op_handler: ; 0xf6f0b LB 0x18f 10414 10418 push bp ; 55 10415 10419 mov bp, sp ; 89 e5 … … 10420 10424 les bx, [bp+018h] ; c4 5e 18 10421 10425 cmp byte [es:bx], 0f0h ; 26 80 3f f0 10422 jne short 06 ef9h ; 75 0610426 jne short 06f21h ; 75 06 10423 10427 inc word [bp+018h] ; ff 46 18 10424 jmp near 070 6bh ; e9 72 0110428 jmp near 07093h ; e9 72 01 10425 10429 cmp word [es:bx], 0050fh ; 26 81 3f 0f 05 10426 je short 06f 03h ; 74 0310427 jmp near 070 67h ; e9 64 0110430 je short 06f2bh ; 74 03 10431 jmp near 0708fh ; e9 64 01 10428 10432 mov si, 00800h ; be 00 08 10429 10433 xor ax, ax ; 31 c0 … … 10454 10458 sal ax, 1 ; d1 e0 10455 10459 rcl dx, 1 ; d1 d2 10456 loop 06f 54h ; e2 fa10460 loop 06f7ch ; e2 fa 10457 10461 cmp bx, dx ; 39 d3 10458 jne short 06f 62h ; 75 0410462 jne short 06f8ah ; 75 04 10459 10463 cmp di, ax ; 39 c7 10460 je short 06f 67h ; 74 0510464 je short 06f8fh ; 74 05 10461 10465 mov word [bp-006h], strict word 00001h ; c7 46 fa 01 00 10462 10466 mov es, [bp-008h] ; 8e 46 f8 … … 10469 10473 sal ax, 1 ; d1 e0 10470 10474 rcl dx, 1 ; d1 d2 10471 loop 06f 7dh ; e2 fa10475 loop 06fa5h ; e2 fa 10472 10476 cmp bx, dx ; 39 d3 10473 jne short 06f 8bh ; 75 0410477 jne short 06fb3h ; 75 04 10474 10478 cmp di, ax ; 39 c7 10475 je short 06f 8fh ; 74 0410479 je short 06fb7h ; 74 04 10476 10480 or byte [bp-006h], 002h ; 80 4e fa 02 10477 10481 xor ax, ax ; 31 c0 … … 10523 10527 mov ax, strict word 00008h ; b8 08 00 10524 10528 test cx, strict word 00001h ; f7 c1 01 00 10525 je near 070 24h ; 0f 84 02 0010529 je near 0704ch ; 0f 84 02 00 10526 10530 mov es, ax ; 8e c0 10527 10531 test cx, strict word 00002h ; f7 c1 02 00 10528 je near 070 4ch ; 0f 84 20 0010532 je near 07074h ; 0f 84 20 00 10529 10533 mov bx, word [word ss:00000h] ; 36 8b 1e 00 00 10530 10534 mov word [word ss:00008h], bx ; 36 89 1e 08 00 … … 10543 10547 mov ss, [word ss:00020h] ; 36 8e 16 20 00 10544 10548 iret ; cf 10545 jmp short 070 6bh ; eb 0410549 jmp short 07093h ; eb 04 10546 10550 sti ; fb 10547 10551 hlt ; f4 10548 jmp short 070 68h ; eb fd10552 jmp short 07090h ; eb fd 10549 10553 lea sp, [bp-004h] ; 8d 66 fc 10550 10554 pop di ; 5f … … 10552 10556 pop bp ; 5d 10553 10557 retn ; c3 10554 init_rtc_: ; 0xf70 72LB 0x2810558 init_rtc_: ; 0xf709a LB 0x28 10555 10559 push bp ; 55 10556 10560 mov bp, sp ; 89 e5 … … 10558 10562 mov dx, strict word 00026h ; ba 26 00 10559 10563 mov ax, strict word 0000ah ; b8 0a 00 10560 call 016c9h ; e8 4aa610564 call 016c9h ; e8 22 a6 10561 10565 mov dx, strict word 00002h ; ba 02 00 10562 10566 mov ax, strict word 0000bh ; b8 0b 00 10563 call 016c9h ; e8 41a610567 call 016c9h ; e8 19 a6 10564 10568 mov ax, strict word 0000ch ; b8 0c 00 10565 call 016aeh ; e8 20 a610569 call 016aeh ; e8 f8 a5 10566 10570 mov ax, strict word 0000dh ; b8 0d 00 10567 call 016aeh ; e8 1a a610571 call 016aeh ; e8 f2 a5 10568 10572 lea sp, [bp-002h] ; 8d 66 fe 10569 10573 pop dx ; 5a 10570 10574 pop bp ; 5d 10571 10575 retn ; c3 10572 rtc_updating_: ; 0xf70 9aLB 0x2110576 rtc_updating_: ; 0xf70c2 LB 0x21 10573 10577 push bp ; 55 10574 10578 mov bp, sp ; 89 e5 … … 10576 10580 mov dx, 061a8h ; ba a8 61 10577 10581 dec dx ; 4a 10578 je short 070 b2h ; 74 0e10582 je short 070dah ; 74 0e 10579 10583 mov ax, strict word 0000ah ; b8 0a 00 10580 call 016aeh ; e8 04 a610584 call 016aeh ; e8 dc a5 10581 10585 test AL, strict byte 080h ; a8 80 10582 jne short 070 a1h ; 75 f310586 jne short 070c9h ; 75 f3 10583 10587 xor ax, ax ; 31 c0 10584 jmp short 070 b5h ; eb 0310588 jmp short 070ddh ; eb 03 10585 10589 mov ax, strict word 00001h ; b8 01 00 10586 10590 lea sp, [bp-002h] ; 8d 66 fe … … 10588 10592 pop bp ; 5d 10589 10593 retn ; c3 10590 _int70_function: ; 0xf70 bbLB 0xbf10594 _int70_function: ; 0xf70e3 LB 0xbf 10591 10595 push bp ; 55 10592 10596 mov bp, sp ; 89 e5 … … 10594 10598 push ax ; 50 10595 10599 mov ax, strict word 0000bh ; b8 0b 00 10596 call 016aeh ; e8 e8a510600 call 016aeh ; e8 c0 a5 10597 10601 mov bl, al ; 88 c3 10598 10602 mov byte [bp-004h], al ; 88 46 fc 10599 10603 mov ax, strict word 0000ch ; b8 0c 00 10600 call 016aeh ; e8 dda510604 call 016aeh ; e8 b5 a5 10601 10605 mov dl, al ; 88 c2 10602 10606 test bl, 060h ; f6 c3 60 10603 jne short 07 0dbh ; 75 0310604 jmp near 071 61h ; e9 86 0010607 jne short 07103h ; 75 03 10608 jmp near 07189h ; e9 86 00 10605 10609 test AL, strict byte 020h ; a8 20 10606 je short 07 0e3h ; 74 0410610 je short 0710bh ; 74 04 10607 10611 sti ; fb 10608 10612 int 04ah ; cd 4a 10609 10613 cli ; fa 10610 10614 test dl, 040h ; f6 c2 40 10611 je short 071 4bh ; 74 6310615 je short 07173h ; 74 63 10612 10616 mov dx, 000a0h ; ba a0 00 10613 10617 mov ax, strict word 00040h ; b8 40 00 10614 call 01652h ; e8 61a510618 call 01652h ; e8 39 a5 10615 10619 test al, al ; 84 c0 10616 je short 071 61h ; 74 6c10620 je short 07189h ; 74 6c 10617 10621 mov dx, 0009ch ; ba 9c 00 10618 10622 mov ax, strict word 00040h ; b8 40 00 10619 call 0168ah ; e8 8ca510623 call 0168ah ; e8 64 a5 10620 10624 test dx, dx ; 85 d2 10621 jne short 071 4dh ; 75 4b10625 jne short 07175h ; 75 4b 10622 10626 cmp ax, 003d1h ; 3d d1 03 10623 jnc short 071 4dh ; 73 4610627 jnc short 07175h ; 73 46 10624 10628 mov dx, 00098h ; ba 98 00 10625 10629 mov ax, strict word 00040h ; b8 40 00 10626 call 0166eh ; e8 5ea510630 call 0166eh ; e8 36 a5 10627 10631 mov si, ax ; 89 c6 10628 10632 mov dx, 0009ah ; ba 9a 00 10629 10633 mov ax, strict word 00040h ; b8 40 00 10630 call 0166eh ; e8 53a510634 call 0166eh ; e8 2b a5 10631 10635 mov cx, ax ; 89 c1 10632 10636 xor bx, bx ; 31 db 10633 10637 mov dx, 000a0h ; ba a0 00 10634 10638 mov ax, strict word 00040h ; b8 40 00 10635 call 01660h ; e8 38a510639 call 01660h ; e8 10 a5 10636 10640 mov dl, byte [bp-004h] ; 8a 56 fc 10637 10641 and dl, 037h ; 80 e2 37 10638 10642 xor dh, dh ; 30 f6 10639 10643 mov ax, strict word 0000bh ; b8 0b 00 10640 call 016c9h ; e8 93a510644 call 016c9h ; e8 6b a5 10641 10645 mov dx, cx ; 89 ca 10642 10646 mov ax, si ; 89 f0 10643 call 01652h ; e8 15 a510647 call 01652h ; e8 ed a4 10644 10648 mov bl, al ; 88 c3 10645 10649 or bl, 080h ; 80 cb 80 … … 10647 10651 mov dx, cx ; 89 ca 10648 10652 mov ax, si ; 89 f0 10649 call 01660h ; e8 15 a510650 jmp short 071 61h ; eb 1410653 call 01660h ; e8 ed a4 10654 jmp short 07189h ; eb 14 10651 10655 mov bx, ax ; 89 c3 10652 10656 add bx, 0fc2fh ; 81 c3 2f fc … … 10655 10659 mov dx, 0009ch ; ba 9c 00 10656 10660 mov ax, strict word 00040h ; b8 40 00 10657 call 0169ch ; e8 3ba510658 call 0e030h ; e8 cc6e10661 call 0169ch ; e8 13 a5 10662 call 0e030h ; e8 a4 6e 10659 10663 lea sp, [bp-002h] ; 8d 66 fe 10660 10664 pop si ; 5e 10661 10665 pop bp ; 5d 10662 10666 retn ; c3 10663 nop ; 90 10664 jno short 07124h ; 71 b7 10665 jno short 0714bh ; 71 dc 10666 jno short 07189h ; 71 18 10667 jc short 071ddh ; 72 6a 10668 jc short 07116h ; 72 a1 10669 jc short 0715fh ; 72 e8 10670 jc short 071bch ; 72 43 10667 mov ax, 0df71h ; b8 71 df 10668 jno short 0719bh ; 71 04 10669 jc short 071d9h ; 72 40 10670 jc short 0712dh ; 72 92 10671 jc short 07166h ; 72 c9 10672 jc short 071afh ; 72 10 10673 jnc short 0720ch ; 73 6b 10671 10674 db 073h 10672 _int1a_function: ; 0xf71 7aLB 0x1d910675 _int1a_function: ; 0xf71a2 LB 0x1d9 10673 10676 push bp ; 55 10674 10677 mov bp, sp ; 89 e5 … … 10676 10679 mov al, byte [bp+013h] ; 8a 46 13 10677 10680 cmp AL, strict byte 007h ; 3c 07 10678 jnbe short 07 1e3h ; 77 5e10681 jnbe short 0720bh ; 77 5e 10679 10682 mov bl, al ; 88 c3 10680 10683 xor bh, bh ; 30 ff 10681 10684 sal bx, 1 ; d1 e3 10682 jmp word [cs:bx+071 6ah] ; 2e ff a7 6a7110685 jmp word [cs:bx+07192h] ; 2e ff a7 92 71 10683 10686 cli ; fa 10684 10687 mov bx, 0046eh ; bb 6e 04 … … 10695 10698 mov byte [es:bx], 000h ; 26 c6 07 00 10696 10699 sti ; fb 10697 jmp short 07 1e3h ; eb 2c10700 jmp short 0720bh ; eb 2c 10698 10701 cli ; fa 10699 10702 mov bx, 0046eh ; bb 6e 04 … … 10709 10712 sti ; fb 10710 10713 mov byte [bp+013h], 000h ; c6 46 13 00 10711 jmp short 07 1e3h ; eb 0710712 call 070 9ah ; e8 bb fe10714 jmp short 0720bh ; eb 07 10715 call 070c2h ; e8 bb fe 10713 10716 test ax, ax ; 85 c0 10714 je short 07 1e6h ; 74 0310715 jmp near 072 14h ; e9 2e 0010717 je short 0720eh ; 74 03 10718 jmp near 0723ch ; e9 2e 00 10716 10719 xor ax, ax ; 31 c0 10717 call 016aeh ; e8 c3a410720 call 016aeh ; e8 9b a4 10718 10721 mov byte [bp+00fh], al ; 88 46 0f 10719 10722 mov ax, strict word 00002h ; b8 02 00 10720 call 016aeh ; e8 baa410723 call 016aeh ; e8 92 a4 10721 10724 mov byte [bp+010h], al ; 88 46 10 10722 10725 mov ax, strict word 00004h ; b8 04 00 10723 call 016aeh ; e8 b1a410726 call 016aeh ; e8 89 a4 10724 10727 mov dl, al ; 88 c2 10725 10728 mov byte [bp+011h], al ; 88 46 11 10726 10729 mov ax, strict word 0000bh ; b8 0b 00 10727 call 016aeh ; e8 a6a410730 call 016aeh ; e8 7e a4 10728 10731 and AL, strict byte 001h ; 24 01 10729 10732 mov byte [bp+00eh], al ; 88 46 0e … … 10733 10736 pop bp ; 5d 10734 10737 retn ; c3 10735 call 070 9ah ; e8 7f fe10738 call 070c2h ; e8 7f fe 10736 10739 test ax, ax ; 85 c0 10737 je short 072 22h ; 74 0310738 call 070 72h ; e8 50 fe10740 je short 0724ah ; 74 03 10741 call 0709ah ; e8 50 fe 10739 10742 mov dl, byte [bp+00fh] ; 8a 56 0f 10740 10743 xor dh, dh ; 30 f6 10741 10744 xor ax, ax ; 31 c0 10742 call 016c9h ; e8 9da410745 call 016c9h ; e8 75 a4 10743 10746 mov dl, byte [bp+010h] ; 8a 56 10 10744 10747 xor dh, dh ; 30 f6 10745 10748 mov ax, strict word 00002h ; b8 02 00 10746 call 016c9h ; e8 92a410749 call 016c9h ; e8 6a a4 10747 10750 mov dl, byte [bp+011h] ; 8a 56 11 10748 10751 xor dh, dh ; 30 f6 10749 10752 mov ax, strict word 00004h ; b8 04 00 10750 call 016c9h ; e8 87a410753 call 016c9h ; e8 5f a4 10751 10754 mov ax, strict word 0000bh ; b8 0b 00 10752 call 016aeh ; e8 66a410755 call 016aeh ; e8 3e a4 10753 10756 mov bl, al ; 88 c3 10754 10757 and bl, 060h ; 80 e3 60 … … 10760 10763 xor dh, dh ; 30 f6 10761 10764 mov ax, strict word 0000bh ; b8 0b 00 10762 call 016c9h ; e8 68a410765 call 016c9h ; e8 40 a4 10763 10766 mov byte [bp+013h], 000h ; c6 46 13 00 10764 10767 mov byte [bp+012h], bl ; 88 5e 12 10765 jmp short 072 14h ; eb aa10768 jmp short 0723ch ; eb aa 10766 10769 mov byte [bp+013h], 000h ; c6 46 13 00 10767 call 070 9ah ; e8 29 fe10770 call 070c2h ; e8 29 fe 10768 10771 test ax, ax ; 85 c0 10769 je short 072 77h ; 74 0210770 jmp short 072 14h ; eb 9d10772 je short 0729fh ; 74 02 10773 jmp short 0723ch ; eb 9d 10771 10774 mov ax, strict word 00009h ; b8 09 00 10772 call 016aeh ; e8 31a410775 call 016aeh ; e8 09 a4 10773 10776 mov byte [bp+010h], al ; 88 46 10 10774 10777 mov ax, strict word 00008h ; b8 08 00 10775 call 016aeh ; e8 28a410778 call 016aeh ; e8 00 a4 10776 10779 mov byte [bp+00fh], al ; 88 46 0f 10777 10780 mov ax, strict word 00007h ; b8 07 00 10778 call 016aeh ; e8 1f a410781 call 016aeh ; e8 f7 a3 10779 10782 mov byte [bp+00eh], al ; 88 46 0e 10780 10783 mov ax, strict word 00032h ; b8 32 00 10781 call 016aeh ; e8 16 a410784 call 016aeh ; e8 ee a3 10782 10785 mov byte [bp+011h], al ; 88 46 11 10783 10786 mov byte [bp+012h], al ; 88 46 12 10784 jmp near 072 14h ; e9 73 ff10785 call 070 9ah ; e8 f6 fd10787 jmp near 0723ch ; e9 73 ff 10788 call 070c2h ; e8 f6 fd 10786 10789 test ax, ax ; 85 c0 10787 je short 072 aeh ; 74 0610788 call 070 72h ; e8 c7 fd10789 jmp near 072 14h ; e9 66 ff10790 je short 072d6h ; 74 06 10791 call 0709ah ; e8 c7 fd 10792 jmp near 0723ch ; e9 66 ff 10790 10793 mov dl, byte [bp+010h] ; 8a 56 10 10791 10794 xor dh, dh ; 30 f6 10792 10795 mov ax, strict word 00009h ; b8 09 00 10793 call 016c9h ; e8 10 a410796 call 016c9h ; e8 e8 a3 10794 10797 mov dl, byte [bp+00fh] ; 8a 56 0f 10795 10798 xor dh, dh ; 30 f6 10796 10799 mov ax, strict word 00008h ; b8 08 00 10797 call 016c9h ; e8 05 a410800 call 016c9h ; e8 dd a3 10798 10801 mov dl, byte [bp+00eh] ; 8a 56 0e 10799 10802 xor dh, dh ; 30 f6 10800 10803 mov ax, strict word 00007h ; b8 07 00 10801 call 016c9h ; e8 faa310804 call 016c9h ; e8 d2 a3 10802 10805 mov dl, byte [bp+011h] ; 8a 56 11 10803 10806 xor dh, dh ; 30 f6 10804 10807 mov ax, strict word 00032h ; b8 32 00 10805 call 016c9h ; e8 efa310808 call 016c9h ; e8 c7 a3 10806 10809 mov ax, strict word 0000bh ; b8 0b 00 10807 call 016aeh ; e8 cea310810 call 016aeh ; e8 a6 a3 10808 10811 mov bl, al ; 88 c3 10809 10812 and bl, 07fh ; 80 e3 7f 10810 jmp near 072 57h ; e9 6f ff10813 jmp near 0727fh ; e9 6f ff 10811 10814 mov ax, strict word 0000bh ; b8 0b 00 10812 call 016aeh ; e8 c0a310815 call 016aeh ; e8 98 a3 10813 10816 mov bl, al ; 88 c3 10814 10817 mov word [bp+012h], strict word 00000h ; c7 46 12 00 00 10815 10818 test AL, strict byte 020h ; a8 20 10816 je short 07 2fch ; 74 0310817 jmp near 072 14h ; e9 18 ff10818 call 070 9ah ; e8 9b fd10819 je short 07324h ; 74 03 10820 jmp near 0723ch ; e9 18 ff 10821 call 070c2h ; e8 9b fd 10819 10822 test ax, ax ; 85 c0 10820 je short 073 06h ; 74 0310821 call 070 72h ; e8 6c fd10823 je short 0732eh ; 74 03 10824 call 0709ah ; e8 6c fd 10822 10825 mov dl, byte [bp+00fh] ; 8a 56 0f 10823 10826 xor dh, dh ; 30 f6 10824 10827 mov ax, strict word 00001h ; b8 01 00 10825 call 016c9h ; e8 b8a310828 call 016c9h ; e8 90 a3 10826 10829 mov dl, byte [bp+010h] ; 8a 56 10 10827 10830 xor dh, dh ; 30 f6 10828 10831 mov ax, strict word 00003h ; b8 03 00 10829 call 016c9h ; e8 ada310832 call 016c9h ; e8 85 a3 10830 10833 mov dl, byte [bp+011h] ; 8a 56 11 10831 10834 xor dh, dh ; 30 f6 10832 10835 mov ax, strict word 00005h ; b8 05 00 10833 call 016c9h ; e8 a2a310836 call 016c9h ; e8 7a a3 10834 10837 mov dx, 000a1h ; ba a1 00 10835 10838 in AL, DX ; ec … … 10843 10846 xor dh, dh ; 30 f6 10844 10847 mov ax, strict word 0000bh ; b8 0b 00 10845 call 016c9h ; e8 89a310846 jmp near 072 14h ; e9 d1 fe10848 call 016c9h ; e8 61 a3 10849 jmp near 0723ch ; e9 d1 fe 10847 10850 mov ax, strict word 0000bh ; b8 0b 00 10848 call 016aeh ; e8 65a310851 call 016aeh ; e8 3d a3 10849 10852 mov bl, al ; 88 c3 10850 10853 mov dl, al ; 88 c2 10851 10854 and dl, 057h ; 80 e2 57 10852 jmp near 072 59h ; e9 06 ff10853 send_to_mouse_ctrl_: ; 0xf73 53LB 0x3810855 jmp near 07281h ; e9 06 ff 10856 send_to_mouse_ctrl_: ; 0xf737b LB 0x38 10854 10857 push bp ; 55 10855 10858 mov bp, sp ; 89 e5 … … 10862 10865 ; sub ah, ah ; 2a e4 10863 10866 test AL, strict byte 002h ; a8 02 10864 je short 073 76h ; 74 1210867 je short 0739eh ; 74 12 10865 10868 mov ax, 008eeh ; b8 ee 08 10866 10869 push ax ; 50 … … 10869 10872 mov ax, strict word 00007h ; b8 07 00 10870 10873 push ax ; 50 10871 call 01976h ; e8 03 a610874 call 01976h ; e8 db a5 10872 10875 add sp, strict byte 00006h ; 83 c4 06 10873 10876 mov AL, strict byte 0d4h ; b0 d4 … … 10883 10886 pop bp ; 5d 10884 10887 retn ; c3 10885 get_mouse_data_: ; 0xf73 8bLB 0x5d10888 get_mouse_data_: ; 0xf73b3 LB 0x5d 10886 10889 push bp ; 55 10887 10890 mov bp, sp ; 89 e5 … … 10898 10901 and ax, strict word 00021h ; 25 21 00 10899 10902 cmp ax, strict word 00021h ; 3d 21 00 10900 je short 073 ceh ; 74 2810903 je short 073f6h ; 74 28 10901 10904 test cx, cx ; 85 c9 10902 je short 073 ceh ; 74 2410905 je short 073f6h ; 74 24 10903 10906 mov dx, strict word 00061h ; ba 61 00 10904 10907 in AL, DX ; ec … … 10917 10920 xor ah, ah ; 30 e4 10918 10921 cmp dx, ax ; 39 c2 10919 je short 073 b5h ; 74 ea10922 je short 073ddh ; 74 ea 10920 10923 dec cx ; 49 10921 jmp short 073 98h ; eb ca10924 jmp short 073c0h ; eb ca 10922 10925 test cx, cx ; 85 c9 10923 jne short 073 d6h ; 75 0410926 jne short 073feh ; 75 04 10924 10927 mov AL, strict byte 001h ; b0 01 10925 jmp short 07 3e1h ; eb 0b10928 jmp short 07409h ; eb 0b 10926 10929 mov dx, strict word 00060h ; ba 60 00 10927 10930 in AL, DX ; ec … … 10935 10938 pop bp ; 5d 10936 10939 retn ; c3 10937 set_kbd_command_byte_: ; 0xf7 3e8LB 0x3610940 set_kbd_command_byte_: ; 0xf7410 LB 0x36 10938 10941 push bp ; 55 10939 10942 mov bp, sp ; 89 e5 … … 10946 10949 ; sub ah, ah ; 2a e4 10947 10950 test AL, strict byte 002h ; a8 02 10948 je short 074 0bh ; 74 1210951 je short 07433h ; 74 12 10949 10952 mov ax, 008f8h ; b8 f8 08 10950 10953 push ax ; 50 … … 10953 10956 mov ax, strict word 00007h ; b8 07 00 10954 10957 push ax ; 50 10955 call 01976h ; e8 6ea510958 call 01976h ; e8 46 a5 10956 10959 add sp, strict byte 00006h ; 83 c4 06 10957 10960 mov AL, strict byte 060h ; b0 60 … … 10966 10969 pop bp ; 5d 10967 10970 retn ; c3 10968 _int74_function: ; 0xf74 1eLB 0xd210971 _int74_function: ; 0xf7446 LB 0xd2 10969 10972 push bp ; 55 10970 10973 mov bp, sp ; 89 e5 … … 10972 10975 mov dx, strict word 0000eh ; ba 0e 00 10973 10976 mov ax, strict word 00040h ; b8 40 00 10974 call 0166eh ; e8 41a210977 call 0166eh ; e8 19 a2 10975 10978 mov cx, ax ; 89 c1 10976 10979 mov word [bp+004h], strict word 00000h ; c7 46 04 00 00 … … 10981 10984 and AL, strict byte 021h ; 24 21 10982 10985 cmp AL, strict byte 021h ; 3c 21 10983 jne short 074 62h ; 75 2210986 jne short 0748ah ; 75 22 10984 10987 mov dx, strict word 00060h ; ba 60 00 10985 10988 in AL, DX ; ec … … 10989 10992 mov dx, strict word 00026h ; ba 26 00 10990 10993 mov ax, cx ; 89 c8 10991 call 01652h ; e8 02 a210994 call 01652h ; e8 da a1 10992 10995 mov byte [bp-002h], al ; 88 46 fe 10993 10996 mov dx, strict word 00027h ; ba 27 00 10994 10997 mov ax, cx ; 89 c8 10995 call 01652h ; e8 f7a110998 call 01652h ; e8 cf a1 10996 10999 mov byte [bp-006h], al ; 88 46 fa 10997 11000 test AL, strict byte 080h ; a8 80 10998 jne short 074 65h ; 75 0310999 jmp near 07 4dch ; e9 77 0011001 jne short 0748dh ; 75 03 11002 jmp near 07504h ; e9 77 00 11000 11003 mov al, byte [bp-006h] ; 8a 46 fa 11001 11004 and AL, strict byte 007h ; 24 07 … … 11011 11014 add dx, strict byte 00028h ; 83 c2 28 11012 11015 mov ax, cx ; 89 c8 11013 call 01660h ; e8 d8a111016 call 01660h ; e8 b0 a1 11014 11017 mov al, byte [bp-008h] ; 8a 46 f8 11015 11018 cmp al, byte [bp-004h] ; 3a 46 fc 11016 jc short 074 cch ; 72 3c11019 jc short 074f4h ; 72 3c 11017 11020 mov dx, strict word 00028h ; ba 28 00 11018 11021 mov ax, cx ; 89 c8 11019 call 01652h ; e8 baa111022 call 01652h ; e8 92 a1 11020 11023 xor ah, ah ; 30 e4 11021 11024 mov word [bp+00ch], ax ; 89 46 0c 11022 11025 mov dx, strict word 00029h ; ba 29 00 11023 11026 mov ax, cx ; 89 c8 11024 call 01652h ; e8 ada111027 call 01652h ; e8 85 a1 11025 11028 xor ah, ah ; 30 e4 11026 11029 mov word [bp+00ah], ax ; 89 46 0a 11027 11030 mov dx, strict word 0002ah ; ba 2a 00 11028 11031 mov ax, cx ; 89 c8 11029 call 01652h ; e8 a0a111032 call 01652h ; e8 78 a1 11030 11033 xor ah, ah ; 30 e4 11031 11034 mov word [bp+008h], ax ; 89 46 08 … … 11034 11037 mov byte [bp-002h], ah ; 88 66 fe 11035 11038 test byte [bp-006h], 080h ; f6 46 fa 80 11036 je short 074 cfh ; 74 0a11039 je short 074f7h ; 74 0a 11037 11040 mov word [bp+004h], strict word 00001h ; c7 46 04 01 00 11038 jmp short 074 cfh ; eb 0311041 jmp short 074f7h ; eb 03 11039 11042 inc byte [bp-002h] ; fe 46 fe 11040 11043 mov bl, byte [bp-002h] ; 8a 5e fe … … 11042 11045 mov dx, strict word 00026h ; ba 26 00 11043 11046 mov ax, cx ; 89 c8 11044 call 01660h ; e8 84a111047 call 01660h ; e8 5c a1 11045 11048 mov sp, bp ; 89 ec 11046 11049 pop bp ; 5d 11047 11050 retn ; c3 11048 xor dh, byte [di-052h] ; 32 75 ae 11049 jne short 07513h ; 75 2e 11050 jbe short 074aah ; 76 c3 11051 jbe short 0751eh ; 76 35 11052 jnbe short 07564h ; 77 79 11053 jne short 0754ah ; 75 5d 11054 jnbe short 07519h ; 77 2a 11051 pop dx ; 5a 11052 jne short 074e1h ; 75 d6 11053 jne short 07563h ; 75 56 11054 jbe short 074fah ; 76 eb 11055 jbe short 0756eh ; 76 5d 11056 jnbe short 074b4h ; 77 a1 11057 jne short 0749ah ; 75 85 11058 jnbe short 07569h ; 77 52 11055 11059 db 078h 11056 _int15_function_mouse: ; 0xf7 4f0LB 0x3a011060 _int15_function_mouse: ; 0xf7518 LB 0x3a0 11057 11061 push bp ; 55 11058 11062 mov bp, sp ; 89 e5 … … 11061 11065 mov dx, strict word 0000eh ; ba 0e 00 11062 11066 mov ax, strict word 00040h ; b8 40 00 11063 call 0166eh ; e8 6ea111067 call 0166eh ; e8 46 a1 11064 11068 mov cx, ax ; 89 c1 11065 11069 cmp byte [bp+012h], 007h ; 80 7e 12 07 11066 jbe short 075 13h ; 76 0b11070 jbe short 0753bh ; 76 0b 11067 11071 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11068 11072 mov byte [bp+013h], 001h ; c6 46 13 01 11069 jmp near 078 8ah ; e9 77 0311073 jmp near 078b2h ; e9 77 03 11070 11074 mov ax, strict word 00065h ; b8 65 00 11071 call 07 3e8h ; e8 cf fe11075 call 07410h ; e8 cf fe 11072 11076 and word [bp+018h], strict byte 0fffeh ; 83 66 18 fe 11073 11077 mov byte [bp+013h], 000h ; c6 46 13 00 11074 11078 mov bl, byte [bp+012h] ; 8a 5e 12 11075 11079 cmp bl, 007h ; 80 fb 07 11076 jnbe short 075 87h ; 77 5e11080 jnbe short 075afh ; 77 5e 11077 11081 xor bh, bh ; 30 ff 11078 11082 sal bx, 1 ; d1 e3 11079 jmp word [cs:bx+07 4e0h] ; 2e ff a7 e0 7411083 jmp word [cs:bx+07508h] ; 2e ff a7 08 75 11080 11084 cmp byte [bp+00dh], 001h ; 80 7e 0d 01 11081 jnbe short 075 8ah ; 77 5211085 jnbe short 075b2h ; 77 52 11082 11086 mov dx, strict word 00027h ; ba 27 00 11083 11087 mov ax, cx ; 89 c8 11084 call 01652h ; e8 12 a111088 call 01652h ; e8 ea a0 11085 11089 test AL, strict byte 080h ; a8 80 11086 jne short 075 4fh ; 75 0b11090 jne short 07577h ; 75 0b 11087 11091 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11088 11092 mov byte [bp+013h], 005h ; c6 46 13 05 11089 jmp near 078 84h ; e9 35 0311093 jmp near 078ach ; e9 35 03 11090 11094 cmp byte [bp+00dh], 000h ; 80 7e 0d 00 11091 jne short 075 59h ; 75 0411095 jne short 07581h ; 75 04 11092 11096 mov AL, strict byte 0f5h ; b0 f5 11093 jmp short 075 5bh ; eb 0211097 jmp short 07583h ; eb 02 11094 11098 mov AL, strict byte 0f4h ; b0 f4 11095 11099 xor ah, ah ; 30 e4 11096 call 073 53h ; e8 f3 fd11100 call 0737bh ; e8 f3 fd 11097 11101 test al, al ; 84 c0 11098 jne short 075 8dh ; 75 2911102 jne short 075b5h ; 75 29 11099 11103 mov dx, ss ; 8c d2 11100 11104 lea ax, [bp-006h] ; 8d 46 fa 11101 call 073 8bh ; e8 1f fe11105 call 073b3h ; e8 1f fe 11102 11106 test al, al ; 84 c0 11103 je short 075 76h ; 74 0611107 je short 0759eh ; 74 06 11104 11108 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11105 jne short 075 8dh ; 75 1711106 jmp near 078 84h ; e9 0b 0311109 jne short 075b5h ; 75 17 11110 jmp near 078ach ; e9 0b 03 11107 11111 mov al, byte [bp+00dh] ; 8a 46 0d 11108 11112 cmp AL, strict byte 001h ; 3c 01 11109 jc short 075 84h ; 72 0411113 jc short 075ach ; 72 04 11110 11114 cmp AL, strict byte 008h ; 3c 08 11111 jbe short 075 90h ; 76 0c11112 jmp near 077 2bh ; e9 a4 0111113 jmp near 078 6eh ; e9 e4 0211114 jmp near 078 7ch ; e9 ef 0211115 jmp near 078 02h ; e9 72 0211115 jbe short 075b8h ; 76 0c 11116 jmp near 07753h ; e9 a4 01 11117 jmp near 07896h ; e9 e4 02 11118 jmp near 078a4h ; e9 ef 02 11119 jmp near 0782ah ; e9 72 02 11116 11120 mov dx, strict word 00027h ; ba 27 00 11117 11121 mov ax, cx ; 89 c8 11118 call 01652h ; e8 baa011122 call 01652h ; e8 92 a0 11119 11123 mov ah, byte [bp+00dh] ; 8a 66 0d 11120 11124 db 0feh, 0cch … … 11126 11130 mov dx, strict word 00027h ; ba 27 00 11127 11131 mov ax, cx ; 89 c8 11128 call 01660h ; e8 b2a011132 call 01660h ; e8 8a a0 11129 11133 mov dx, strict word 00026h ; ba 26 00 11130 11134 mov ax, cx ; 89 c8 11131 call 01652h ; e8 9ca011135 call 01652h ; e8 74 a0 11132 11136 mov bl, al ; 88 c3 11133 11137 and bl, 0f8h ; 80 e3 f8 … … 11135 11139 mov dx, strict word 00026h ; ba 26 00 11136 11140 mov ax, cx ; 89 c8 11137 call 01660h ; e8 9ba011141 call 01660h ; e8 73 a0 11138 11142 mov ax, 000ffh ; b8 ff 00 11139 call 073 53h ; e8 88 fd11143 call 0737bh ; e8 88 fd 11140 11144 test al, al ; 84 c0 11141 jne short 075 8dh ; 75 be11145 jne short 075b5h ; 75 be 11142 11146 mov dx, ss ; 8c d2 11143 11147 lea ax, [bp-008h] ; 8d 46 f8 11144 call 073 8bh ; e8 b4 fd11148 call 073b3h ; e8 b4 fd 11145 11149 mov cl, al ; 88 c1 11146 11150 cmp byte [bp-008h], 0feh ; 80 7e f8 fe 11147 jne short 07 5e9h ; 75 0a11151 jne short 07611h ; 75 0a 11148 11152 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11149 11153 mov byte [bp+013h], 004h ; c6 46 13 04 11150 jmp short 075 76h ; eb 8d11154 jmp short 0759eh ; eb 8d 11151 11155 cmp byte [bp-008h], 0fah ; 80 7e f8 fa 11152 je short 076 03h ; 74 1411156 je short 0762bh ; 74 14 11153 11157 mov al, byte [bp-008h] ; 8a 46 f8 11154 11158 xor ah, ah ; 30 e4 … … 11158 11162 mov ax, strict word 00007h ; b8 07 00 11159 11163 push ax ; 50 11160 call 01976h ; e8 76a311164 call 01976h ; e8 4e a3 11161 11165 add sp, strict byte 00006h ; 83 c4 06 11162 11166 test cl, cl ; 84 c9 11163 jne short 075 8dh ; 75 8611167 jne short 075b5h ; 75 86 11164 11168 mov dx, ss ; 8c d2 11165 11169 lea ax, [bp-006h] ; 8d 46 fa 11166 call 073 8bh ; e8 7c fd11170 call 073b3h ; e8 7c fd 11167 11171 test al, al ; 84 c0 11168 jne short 076 69h ; 75 5611172 jne short 07691h ; 75 56 11169 11173 mov dx, ss ; 8c d2 11170 11174 lea ax, [bp-004h] ; 8d 46 fc 11171 call 073 8bh ; e8 70 fd11175 call 073b3h ; e8 70 fd 11172 11176 test al, al ; 84 c0 11173 jne short 076 69h ; 75 4a11177 jne short 07691h ; 75 4a 11174 11178 mov al, byte [bp-006h] ; 8a 46 fa 11175 11179 mov byte [bp+00ch], al ; 88 46 0c 11176 11180 mov al, byte [bp-004h] ; 8a 46 fc 11177 11181 mov byte [bp+00dh], al ; 88 46 0d 11178 jmp near 078 84h ; e9 56 0211182 jmp near 078ach ; e9 56 02 11179 11183 mov al, byte [bp+00dh] ; 8a 46 0d 11180 11184 cmp AL, strict byte 003h ; 3c 03 11181 jc short 076 45h ; 72 1011182 jbe short 076 63h ; 76 2c11185 jc short 0766dh ; 72 10 11186 jbe short 0768bh ; 76 2c 11183 11187 cmp AL, strict byte 006h ; 3c 06 11184 je short 076 78h ; 74 3d11188 je short 076a0h ; 74 3d 11185 11189 cmp AL, strict byte 005h ; 3c 05 11186 je short 076 72h ; 74 3311190 je short 0769ah ; 74 33 11187 11191 cmp AL, strict byte 004h ; 3c 04 11188 je short 076 6ch ; 74 2911189 jmp short 076 7eh ; eb 3911192 je short 07694h ; 74 29 11193 jmp short 076a6h ; eb 39 11190 11194 cmp AL, strict byte 002h ; 3c 02 11191 je short 076 5dh ; 74 1411195 je short 07685h ; 74 14 11192 11196 cmp AL, strict byte 001h ; 3c 01 11193 je short 076 57h ; 74 0a11197 je short 0767fh ; 74 0a 11194 11198 test al, al ; 84 c0 11195 jne short 076 7eh ; 75 2d11199 jne short 076a6h ; 75 2d 11196 11200 mov byte [bp-006h], 00ah ; c6 46 fa 0a 11197 jmp short 076 82h ; eb 2b11201 jmp short 076aah ; eb 2b 11198 11202 mov byte [bp-006h], 014h ; c6 46 fa 14 11199 jmp short 076 82h ; eb 2511203 jmp short 076aah ; eb 25 11200 11204 mov byte [bp-006h], 028h ; c6 46 fa 28 11201 jmp short 076 82h ; eb 1f11205 jmp short 076aah ; eb 1f 11202 11206 mov byte [bp-006h], 03ch ; c6 46 fa 3c 11203 jmp short 076 82h ; eb 1911204 jmp near 078 02h ; e9 96 0111207 jmp short 076aah ; eb 19 11208 jmp near 0782ah ; e9 96 01 11205 11209 mov byte [bp-006h], 050h ; c6 46 fa 50 11206 jmp short 076 82h ; eb 1011210 jmp short 076aah ; eb 10 11207 11211 mov byte [bp-006h], 064h ; c6 46 fa 64 11208 jmp short 076 82h ; eb 0a11212 jmp short 076aah ; eb 0a 11209 11213 mov byte [bp-006h], 0c8h ; c6 46 fa c8 11210 jmp short 076 82h ; eb 0411214 jmp short 076aah ; eb 04 11211 11215 mov byte [bp-006h], 000h ; c6 46 fa 00 11212 11216 cmp byte [bp-006h], 000h ; 80 7e fa 00 11213 jbe short 076 b8h ; 76 3011217 jbe short 076e0h ; 76 30 11214 11218 mov ax, 000f3h ; b8 f3 00 11215 call 073 53h ; e8 c5 fc11219 call 0737bh ; e8 c5 fc 11216 11220 test al, al ; 84 c0 11217 jne short 076 adh ; 75 1b11221 jne short 076d5h ; 75 1b 11218 11222 mov dx, ss ; 8c d2 11219 11223 lea ax, [bp-004h] ; 8d 46 fc 11220 call 073 8bh ; e8 f1 fc11224 call 073b3h ; e8 f1 fc 11221 11225 mov al, byte [bp-006h] ; 8a 46 fa 11222 11226 xor ah, ah ; 30 e4 11223 call 073 53h ; e8 b1 fc11227 call 0737bh ; e8 b1 fc 11224 11228 mov dx, ss ; 8c d2 11225 11229 lea ax, [bp-004h] ; 8d 46 fc 11226 call 073 8bh ; e8 e1 fc11227 jmp near 078 84h ; e9 d7 0111230 call 073b3h ; e8 e1 fc 11231 jmp near 078ach ; e9 d7 01 11228 11232 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11229 11233 mov byte [bp+013h], 003h ; c6 46 13 03 11230 jmp near 078 84h ; e9 cc 0111234 jmp near 078ach ; e9 cc 01 11231 11235 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11232 11236 mov byte [bp+013h], 002h ; c6 46 13 02 11233 jmp near 078 84h ; e9 c1 0111237 jmp near 078ach ; e9 c1 01 11234 11238 cmp byte [bp+00dh], 004h ; 80 7e 0d 04 11235 jnc short 077 2bh ; 73 6211239 jnc short 07753h ; 73 62 11236 11240 mov ax, 000e8h ; b8 e8 00 11237 call 073 53h ; e8 84 fc11241 call 0737bh ; e8 84 fc 11238 11242 test al, al ; 84 c0 11239 jne short 077 21h ; 75 4e11243 jne short 07749h ; 75 4e 11240 11244 mov dx, ss ; 8c d2 11241 11245 lea ax, [bp-006h] ; 8d 46 fa 11242 call 073 8bh ; e8 b0 fc11246 call 073b3h ; e8 b0 fc 11243 11247 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11244 je short 07 6f5h ; 74 1411248 je short 0771dh ; 74 14 11245 11249 mov al, byte [bp-006h] ; 8a 46 fa 11246 11250 xor ah, ah ; 30 e4 … … 11250 11254 mov ax, strict word 00007h ; b8 07 00 11251 11255 push ax ; 50 11252 call 01976h ; e8 84a211256 call 01976h ; e8 5c a2 11253 11257 add sp, strict byte 00006h ; 83 c4 06 11254 11258 mov al, byte [bp+00dh] ; 8a 46 0d 11255 11259 xor ah, ah ; 30 e4 11256 call 073 53h ; e8 56 fc11260 call 0737bh ; e8 56 fc 11257 11261 mov dx, ss ; 8c d2 11258 11262 lea ax, [bp-006h] ; 8d 46 fa 11259 call 073 8bh ; e8 86 fc11263 call 073b3h ; e8 86 fc 11260 11264 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11261 je short 077 5ah ; 74 4f11265 je short 07782h ; 74 4f 11262 11266 mov al, byte [bp-006h] ; 8a 46 fa 11263 11267 xor ah, ah ; 30 e4 … … 11267 11271 mov ax, strict word 00007h ; b8 07 00 11268 11272 push ax ; 50 11269 call 01976h ; e8 5aa211273 call 01976h ; e8 32 a2 11270 11274 add sp, strict byte 00006h ; 83 c4 06 11271 jmp short 077 5ah ; eb 3911275 jmp short 07782h ; eb 39 11272 11276 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11273 11277 mov byte [bp+013h], 003h ; c6 46 13 03 11274 jmp short 077 5ah ; eb 2f11278 jmp short 07782h ; eb 2f 11275 11279 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11276 11280 mov byte [bp+013h], 002h ; c6 46 13 02 11277 jmp short 077 5ah ; eb 2511281 jmp short 07782h ; eb 25 11278 11282 mov ax, 000f2h ; b8 f2 00 11279 call 073 53h ; e8 18 fc11283 call 0737bh ; e8 18 fc 11280 11284 test al, al ; 84 c0 11281 jne short 077 52h ; 75 1311285 jne short 0777ah ; 75 13 11282 11286 mov dx, ss ; 8c d2 11283 11287 lea ax, [bp-006h] ; 8d 46 fa 11284 call 073 8bh ; e8 44 fc11288 call 073b3h ; e8 44 fc 11285 11289 mov dx, ss ; 8c d2 11286 11290 lea ax, [bp-004h] ; 8d 46 fc 11287 call 073 8bh ; e8 3c fc11288 jmp near 076 25h ; e9 d3 fe11291 call 073b3h ; e8 3c fc 11292 jmp near 0764dh ; e9 d3 fe 11289 11293 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11290 11294 mov byte [bp+013h], 003h ; c6 46 13 03 11291 jmp near 078 84h ; e9 27 0111295 jmp near 078ach ; e9 27 01 11292 11296 mov al, byte [bp+00dh] ; 8a 46 0d 11293 11297 test al, al ; 84 c0 11294 jbe short 077 6dh ; 76 0911298 jbe short 07795h ; 76 09 11295 11299 cmp AL, strict byte 002h ; 3c 02 11296 jbe short 077 6bh ; 76 0311297 jmp near 078 0ch ; e9 a1 0011298 jmp short 077 d7h ; eb 6a11300 jbe short 07793h ; 76 03 11301 jmp near 07834h ; e9 a1 00 11302 jmp short 077ffh ; eb 6a 11299 11303 mov ax, 000e9h ; b8 e9 00 11300 call 073 53h ; e8 e0 fb11304 call 0737bh ; e8 e0 fb 11301 11305 test al, al ; 84 c0 11302 jne short 07 7e0h ; 75 6911306 jne short 07808h ; 75 69 11303 11307 mov dx, ss ; 8c d2 11304 11308 lea ax, [bp-006h] ; 8d 46 fa 11305 call 073 8bh ; e8 0c fc11309 call 073b3h ; e8 0c fc 11306 11310 mov cl, al ; 88 c1 11307 11311 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11308 je short 077 9bh ; 74 1411312 je short 077c3h ; 74 14 11309 11313 mov al, byte [bp-006h] ; 8a 46 fa 11310 11314 xor ah, ah ; 30 e4 … … 11314 11318 mov ax, strict word 00007h ; b8 07 00 11315 11319 push ax ; 50 11316 call 01976h ; e8 dea111320 call 01976h ; e8 b6 a1 11317 11321 add sp, strict byte 00006h ; 83 c4 06 11318 11322 test cl, cl ; 84 c9 11319 jne short 078 02h ; 75 6311323 jne short 0782ah ; 75 63 11320 11324 mov dx, ss ; 8c d2 11321 11325 lea ax, [bp-006h] ; 8d 46 fa 11322 call 073 8bh ; e8 e4 fb11326 call 073b3h ; e8 e4 fb 11323 11327 test al, al ; 84 c0 11324 jne short 078 02h ; 75 5711328 jne short 0782ah ; 75 57 11325 11329 mov dx, ss ; 8c d2 11326 11330 lea ax, [bp-004h] ; 8d 46 fc 11327 call 073 8bh ; e8 d8 fb11331 call 073b3h ; e8 d8 fb 11328 11332 test al, al ; 84 c0 11329 jne short 078 02h ; 75 4b11333 jne short 0782ah ; 75 4b 11330 11334 mov dx, ss ; 8c d2 11331 11335 lea ax, [bp-008h] ; 8d 46 f8 11332 call 073 8bh ; e8 cc fb11336 call 073b3h ; e8 cc fb 11333 11337 test al, al ; 84 c0 11334 jne short 078 02h ; 75 3f11338 jne short 0782ah ; 75 3f 11335 11339 mov al, byte [bp-006h] ; 8a 46 fa 11336 11340 mov byte [bp+00ch], al ; 88 46 0c … … 11339 11343 mov al, byte [bp-008h] ; 8a 46 f8 11340 11344 mov byte [bp+00eh], al ; 88 46 0e 11341 jmp short 077 5ah ; eb 8311345 jmp short 07782h ; eb 83 11342 11346 cmp AL, strict byte 001h ; 3c 01 11343 jne short 07 7e2h ; 75 0711347 jne short 0780ah ; 75 07 11344 11348 mov ax, 000e6h ; b8 e6 00 11345 jmp short 07 7e5h ; eb 0511346 jmp short 078 02h ; eb 2011349 jmp short 0780dh ; eb 05 11350 jmp short 0782ah ; eb 20 11347 11351 mov ax, 000e7h ; b8 e7 00 11348 call 073 53h ; e8 6b fb11352 call 0737bh ; e8 6b fb 11349 11353 mov cl, al ; 88 c1 11350 11354 test cl, cl ; 84 c9 11351 jne short 07 7feh ; 75 1011355 jne short 07826h ; 75 10 11352 11356 mov dx, ss ; 8c d2 11353 11357 lea ax, [bp-006h] ; 8d 46 fa 11354 call 073 8bh ; e8 95 fb11358 call 073b3h ; e8 95 fb 11355 11359 cmp byte [bp-006h], 0fah ; 80 7e fa fa 11356 je short 07 7feh ; 74 0211360 je short 07826h ; 74 02 11357 11361 mov CL, strict byte 001h ; b1 01 11358 11362 test cl, cl ; 84 c9 11359 je short 078 6ch ; 74 6a11363 je short 07894h ; 74 6a 11360 11364 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11361 11365 mov byte [bp+013h], 003h ; c6 46 13 03 11362 jmp short 078 6ch ; eb 6011366 jmp short 07894h ; eb 60 11363 11367 mov al, byte [bp+00dh] ; 8a 46 0d 11364 11368 xor ah, ah ; 30 e4 … … 11368 11372 mov ax, strict word 00007h ; b8 07 00 11369 11373 push ax ; 50 11370 call 01976h ; e8 59a111374 call 01976h ; e8 31 a1 11371 11375 add sp, strict byte 00006h ; 83 c4 06 11372 11376 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11373 11377 mov byte [bp+013h], 001h ; c6 46 13 01 11374 jmp short 078 84h ; eb 5a11378 jmp short 078ach ; eb 5a 11375 11379 mov si, word [bp+00ch] ; 8b 76 0c 11376 11380 mov bx, si ; 89 f3 11377 11381 mov dx, strict word 00022h ; ba 22 00 11378 11382 mov ax, cx ; 89 c8 11379 call 0167ch ; e8 459e11383 call 0167ch ; e8 1d 9e 11380 11384 mov bx, word [bp+014h] ; 8b 5e 14 11381 11385 mov dx, strict word 00024h ; ba 24 00 11382 11386 mov ax, cx ; 89 c8 11383 call 0167ch ; e8 3a9e11387 call 0167ch ; e8 12 9e 11384 11388 mov dx, strict word 00027h ; ba 27 00 11385 11389 mov ax, cx ; 89 c8 11386 call 01652h ; e8 08 9e11390 call 01652h ; e8 e0 9d 11387 11391 mov ah, al ; 88 c4 11388 11392 test si, si ; 85 f6 11389 jne short 078 5eh ; 75 0e11393 jne short 07886h ; 75 0e 11390 11394 cmp word [bp+014h], strict byte 00000h ; 83 7e 14 00 11391 jne short 078 5eh ; 75 0811395 jne short 07886h ; 75 08 11392 11396 test AL, strict byte 080h ; a8 80 11393 je short 078 60h ; 74 0611397 je short 07888h ; 74 06 11394 11398 and AL, strict byte 07fh ; 24 7f 11395 jmp short 078 60h ; eb 0211399 jmp short 07888h ; eb 02 11396 11400 or AL, strict byte 080h ; 0c 80 11397 11401 mov bl, al ; 88 c3 … … 11399 11403 mov dx, strict word 00027h ; ba 27 00 11400 11404 mov ax, cx ; 89 c8 11401 call 01660h ; e8 f49d11402 jmp short 078 84h ; eb 1611405 call 01660h ; e8 cc 9d 11406 jmp short 078ach ; eb 16 11403 11407 mov ax, 00974h ; b8 74 09 11404 11408 push ax ; 50 11405 11409 mov ax, strict word 00007h ; b8 07 00 11406 11410 push ax ; 50 11407 call 01976h ; e8 fda011411 call 01976h ; e8 d5 a0 11408 11412 add sp, strict byte 00004h ; 83 c4 04 11409 11413 or word [bp+018h], strict byte 00001h ; 83 4e 18 01 11410 11414 mov byte [bp+013h], 001h ; c6 46 13 01 11411 11415 mov ax, strict word 00047h ; b8 47 00 11412 call 07 3e8h ; e8 5e fb11416 call 07410h ; e8 5e fb 11413 11417 lea sp, [bp-002h] ; 8d 66 fe 11414 11418 pop si ; 5e 11415 11419 pop bp ; 5d 11416 11420 retn ; c3 11417 _int17_function: ; 0xf78 90LB 0xac11421 _int17_function: ; 0xf78b8 LB 0xac 11418 11422 push bp ; 55 11419 11423 mov bp, sp ; 89 e5 … … 11425 11429 add dx, strict byte 00008h ; 83 c2 08 11426 11430 mov ax, strict word 00040h ; b8 40 00 11427 call 0166eh ; e8 ca9d11431 call 0166eh ; e8 a2 9d 11428 11432 mov bx, ax ; 89 c3 11429 11433 mov si, ax ; 89 c6 11430 11434 cmp byte [bp+013h], 003h ; 80 7e 13 03 11431 jnc short 078 bah ; 73 0c11435 jnc short 078e2h ; 73 0c 11432 11436 mov ax, word [bp+00eh] ; 8b 46 0e 11433 11437 cmp ax, strict word 00003h ; 3d 03 00 11434 jnc short 078 bah ; 73 0411438 jnc short 078e2h ; 73 04 11435 11439 test bx, bx ; 85 db 11436 jnbe short 078 bdh ; 77 0311437 jmp near 079 32h ; e9 75 0011440 jnbe short 078e5h ; 77 03 11441 jmp near 0795ah ; e9 75 00 11438 11442 mov dx, ax ; 89 c2 11439 11443 add dx, strict byte 00078h ; 83 c2 78 11440 11444 mov ax, strict word 00040h ; b8 40 00 11441 call 01652h ; e8 8a9d11445 call 01652h ; e8 62 9d 11442 11446 mov ch, al ; 88 c5 11443 11447 xor cl, cl ; 30 c9 11444 11448 cmp byte [bp+013h], 000h ; 80 7e 13 00 11445 jne short 07 8feh ; 75 2c11449 jne short 07926h ; 75 2c 11446 11450 mov al, byte [bp+012h] ; 8a 46 12 11447 11451 mov dx, bx ; 89 da … … 11463 11467 ; sub ah, ah ; 2a e4 11464 11468 test AL, strict byte 040h ; a8 40 11465 je short 07 8feh ; 74 0711469 je short 07926h ; 74 07 11466 11470 test cx, cx ; 85 c9 11467 je short 07 8feh ; 74 0311471 je short 07926h ; 74 03 11468 11472 dec cx ; 49 11469 jmp short 07 8edh ; eb ef11473 jmp short 07915h ; eb ef 11470 11474 cmp byte [bp+013h], 001h ; 80 7e 13 01 11471 jne short 079 19h ; 75 1511475 jne short 07941h ; 75 15 11472 11476 lea dx, [si+002h] ; 8d 54 02 11473 11477 in AL, DX ; ec … … 11488 11492 mov byte [bp+013h], al ; 88 46 13 11489 11493 test cx, cx ; 85 c9 11490 jne short 079 2ch ; 75 0411494 jne short 07954h ; 75 04 11491 11495 or byte [bp+013h], 001h ; 80 4e 13 01 11492 11496 and byte [bp+01ch], 0feh ; 80 66 1c fe 11493 jmp short 079 36h ; eb 0411497 jmp short 0795eh ; eb 04 11494 11498 or byte [bp+01ch], 001h ; 80 4e 1c 01 11495 11499 lea sp, [bp-002h] ; 8d 66 fe … … 11497 11501 pop bp ; 5d 11498 11502 retn ; c3 11499 wait_: ; 0xf79 3cLB 0xb211503 wait_: ; 0xf7964 LB 0xb2 11500 11504 push bp ; 55 11501 11505 mov bp, sp ; 89 e5 … … 11515 11519 mov dx, 0046ch ; ba 6c 04 11516 11520 xor ax, ax ; 31 c0 11517 call 0168ah ; e8 2b9d11521 call 0168ah ; e8 03 9d 11518 11522 mov word [bp-00eh], ax ; 89 46 f2 11519 11523 mov bx, dx ; 89 d3 … … 11521 11525 mov dx, 0046ch ; ba 6c 04 11522 11526 xor ax, ax ; 31 c0 11523 call 0168ah ; e8 1d 9d11527 call 0168ah ; e8 f5 9c 11524 11528 mov word [bp-012h], ax ; 89 46 ee 11525 11529 mov di, dx ; 89 d7 11526 11530 cmp dx, bx ; 39 da 11527 jnbe short 079 7dh ; 77 0711528 jne short 079 84h ; 75 0c11531 jnbe short 079a5h ; 77 07 11532 jne short 079ach ; 75 0c 11529 11533 cmp ax, word [bp-00eh] ; 3b 46 f2 11530 jbe short 079 84h ; 76 0711534 jbe short 079ach ; 76 07 11531 11535 sub ax, word [bp-00eh] ; 2b 46 f2 11532 11536 sbb dx, bx ; 19 da 11533 jmp short 079 8fh ; eb 0b11537 jmp short 079b7h ; eb 0b 11534 11538 cmp dx, bx ; 39 da 11535 jc short 079 8fh ; 72 0711536 jne short 079 93h ; 75 0911539 jc short 079b7h ; 72 07 11540 jne short 079bbh ; 75 09 11537 11541 cmp ax, word [bp-00eh] ; 3b 46 f2 11538 jnc short 079 93h ; 73 0411542 jnc short 079bbh ; 73 04 11539 11543 sub si, ax ; 29 c6 11540 11544 sbb cx, dx ; 19 d1 … … 11544 11548 mov ax, 00100h ; b8 00 01 11545 11549 int 016h ; cd 16 11546 je short 079 a7h ; 74 0511550 je short 079cfh ; 74 05 11547 11551 mov AL, strict byte 001h ; b0 01 11548 jmp near 079 a9h ; e9 02 0011552 jmp near 079d1h ; e9 02 00 11549 11553 db 032h, 0c0h 11550 11554 ; xor al, al ; 32 c0 11551 11555 test al, al ; 84 c0 11552 je short 079 d3h ; 74 2611556 je short 079fbh ; 74 26 11553 11557 db 033h, 0c0h 11554 11558 ; xor ax, ax ; 33 c0 … … 11563 11567 mov ax, strict word 00004h ; b8 04 00 11564 11568 push ax ; 50 11565 call 01976h ; e8 b09f11569 call 01976h ; e8 88 9f 11566 11570 add sp, strict byte 00006h ; 83 c4 06 11567 11571 cmp byte [bp-00ah], 000h ; 80 7e f6 00 11568 je short 079 d3h ; 74 0411572 je short 079fbh ; 74 04 11569 11573 mov al, dl ; 88 d0 11570 jmp short 07 9e5h ; eb 1211574 jmp short 07a0dh ; eb 12 11571 11575 test cx, cx ; 85 c9 11572 jnle short 079 64h ; 7f 8d11573 jne short 07 9ddh ; 75 0411576 jnle short 0798ch ; 7f 8d 11577 jne short 07a05h ; 75 04 11574 11578 test si, si ; 85 f6 11575 jnbe short 079 64h ; 77 8711579 jnbe short 0798ch ; 77 87 11576 11580 mov ax, word [bp-010h] ; 8b 46 f0 11577 11581 push ax ; 50 … … 11585 11589 pop bp ; 5d 11586 11590 retn ; c3 11587 read_logo_byte_: ; 0xf7 9eeLB 0x1611591 read_logo_byte_: ; 0xf7a16 LB 0x16 11588 11592 push bp ; 55 11589 11593 mov bp, sp ; 89 e5 … … 11600 11604 pop bp ; 5d 11601 11605 retn ; c3 11602 read_logo_word_: ; 0xf7a 04LB 0x1411606 read_logo_word_: ; 0xf7a2c LB 0x14 11603 11607 push bp ; 55 11604 11608 mov bp, sp ; 89 e5 … … 11613 11617 pop bp ; 5d 11614 11618 retn ; c3 11615 print_detected_harddisks_: ; 0xf7a 18LB 0x15a11619 print_detected_harddisks_: ; 0xf7a40 LB 0x15a 11616 11620 push bp ; 55 11617 11621 mov bp, sp ; 89 e5 … … 11623 11627 mov dx, strict word 0000eh ; ba 0e 00 11624 11628 mov ax, strict word 00040h ; b8 40 00 11625 call 0166eh ; e8 439c11629 call 0166eh ; e8 1b 9c 11626 11630 mov si, ax ; 89 c6 11627 11631 mov byte [bp-00eh], 000h ; c6 46 f2 00 … … 11629 11633 mov byte [bp-00ch], ch ; 88 6e f4 11630 11634 mov dx, 00304h ; ba 04 03 11631 call 01652h ; e8 16 9c11635 call 01652h ; e8 ee 9b 11632 11636 mov byte [bp-00ah], al ; 88 46 f6 11633 11637 xor cl, cl ; 30 c9 11634 11638 cmp cl, byte [bp-00ah] ; 3a 4e f6 11635 jnc short 07a a4h ; 73 5e11639 jnc short 07acch ; 73 5e 11636 11640 mov al, cl ; 88 c8 11637 11641 xor ah, ah ; 30 e4 … … 11639 11643 add dx, 00305h ; 81 c2 05 03 11640 11644 mov ax, si ; 89 f0 11641 call 01652h ; e8 fd9b11645 call 01652h ; e8 d5 9b 11642 11646 mov bl, al ; 88 c3 11643 11647 cmp AL, strict byte 00ch ; 3c 0c 11644 jc short 07a 86h ; 72 2b11648 jc short 07aaeh ; 72 2b 11645 11649 test ch, ch ; 84 ed 11646 jne short 07a 6fh ; 75 1011650 jne short 07a97h ; 75 10 11647 11651 mov ax, 009a7h ; b8 a7 09 11648 11652 push ax ; 50 11649 11653 mov ax, strict word 00002h ; b8 02 00 11650 11654 push ax ; 50 11651 call 01976h ; e8 0c 9f11655 call 01976h ; e8 e4 9e 11652 11656 add sp, strict byte 00004h ; 83 c4 04 11653 11657 mov CH, strict byte 001h ; b5 01 … … 11660 11664 mov ax, strict word 00002h ; b8 02 00 11661 11665 push ax ; 50 11662 call 01976h ; e8 f69e11666 call 01976h ; e8 ce 9e 11663 11667 add sp, strict byte 00006h ; 83 c4 06 11664 jmp near 07b 38h ; e9 b2 0011668 jmp near 07b60h ; e9 b2 00 11665 11669 cmp AL, strict byte 008h ; 3c 08 11666 jc short 07a a7h ; 72 1d11670 jc short 07acfh ; 72 1d 11667 11671 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11668 jne short 07a a2h ; 75 1211672 jne short 07acah ; 75 12 11669 11673 mov ax, 009cfh ; b8 cf 09 11670 11674 push ax ; 50 11671 11675 mov ax, strict word 00002h ; b8 02 00 11672 11676 push ax ; 50 11673 call 01976h ; e8 db9e11677 call 01976h ; e8 b3 9e 11674 11678 add sp, strict byte 00004h ; 83 c4 04 11675 11679 mov byte [bp-00ch], 001h ; c6 46 f4 01 11676 jmp short 07a 6fh ; eb cb11677 jmp near 07b 3dh ; e9 96 0011680 jmp short 07a97h ; eb cb 11681 jmp near 07b65h ; e9 96 00 11678 11682 cmp AL, strict byte 004h ; 3c 04 11679 jnc short 07a c5h ; 73 1a11683 jnc short 07aedh ; 73 1a 11680 11684 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11681 jne short 07a c5h ; 75 1411685 jne short 07aedh ; 75 14 11682 11686 mov ax, 009e4h ; b8 e4 09 11683 11687 push ax ; 50 11684 11688 mov ax, strict word 00002h ; b8 02 00 11685 11689 push ax ; 50 11686 call 01976h ; e8 ba9e11690 call 01976h ; e8 92 9e 11687 11691 add sp, strict byte 00004h ; 83 c4 04 11688 11692 mov byte [bp-00eh], 001h ; c6 46 f2 01 11689 jmp short 07 adeh ; eb 1911693 jmp short 07b06h ; eb 19 11690 11694 cmp bl, 004h ; 80 fb 04 11691 jc short 07 adeh ; 72 1411695 jc short 07b06h ; 72 14 11692 11696 test ch, ch ; 84 ed 11693 jne short 07 adeh ; 75 1011697 jne short 07b06h ; 75 10 11694 11698 mov ax, 009f6h ; b8 f6 09 11695 11699 push ax ; 50 11696 11700 mov ax, strict word 00002h ; b8 02 00 11697 11701 push ax ; 50 11698 call 01976h ; e8 9d9e11702 call 01976h ; e8 75 9e 11699 11703 add sp, strict byte 00004h ; 83 c4 04 11700 11704 mov CH, strict byte 001h ; b5 01 … … 11707 11711 mov ax, strict word 00002h ; b8 02 00 11708 11712 push ax ; 50 11709 call 01976h ; e8 879e11713 call 01976h ; e8 5f 9e 11710 11714 add sp, strict byte 00006h ; 83 c4 06 11711 11715 cmp bl, 004h ; 80 fb 04 11712 jc short 07 afah ; 72 0311716 jc short 07b22h ; 72 03 11713 11717 sub bl, 004h ; 80 eb 04 11714 11718 mov al, bl ; 88 d8 … … 11719 11723 sar ax, 1 ; d1 f8 11720 11724 test ax, ax ; 85 c0 11721 je short 07b 0ch ; 74 0511725 je short 07b34h ; 74 05 11722 11726 mov ax, 00a14h ; b8 14 0a 11723 jmp short 07b 0fh ; eb 0311727 jmp short 07b37h ; eb 03 11724 11728 mov ax, 00a1fh ; b8 1f 0a 11725 11729 push ax ; 50 11726 11730 mov ax, strict word 00002h ; b8 02 00 11727 11731 push ax ; 50 11728 call 01976h ; e8 5f9e11732 call 01976h ; e8 37 9e 11729 11733 add sp, strict byte 00004h ; 83 c4 04 11730 11734 mov al, bl ; 88 d8 … … 11734 11738 idiv bx ; f7 fb 11735 11739 test dx, dx ; 85 d2 11736 je short 07b 2dh ; 74 0511740 je short 07b55h ; 74 05 11737 11741 mov ax, 00a28h ; b8 28 0a 11738 jmp short 07b 30h ; eb 0311742 jmp short 07b58h ; eb 03 11739 11743 mov ax, 00a2eh ; b8 2e 0a 11740 11744 push ax ; 50 11741 11745 push bx ; 53 11742 call 01976h ; e8 419e11746 call 01976h ; e8 19 9e 11743 11747 add sp, strict byte 00004h ; 83 c4 04 11744 11748 db 0feh, 0c1h 11745 11749 ; inc cl ; fe c1 11746 jmp near 07a 41h ; e9 04 ff11750 jmp near 07a69h ; e9 04 ff 11747 11751 cmp byte [bp-00eh], 000h ; 80 7e f2 00 11748 jne short 07b 5bh ; 75 1811752 jne short 07b83h ; 75 18 11749 11753 test ch, ch ; 84 ed 11750 jne short 07b 5bh ; 75 1411754 jne short 07b83h ; 75 14 11751 11755 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11752 jne short 07b 5bh ; 75 0e11756 jne short 07b83h ; 75 0e 11753 11757 mov ax, 00a35h ; b8 35 0a 11754 11758 push ax ; 50 11755 11759 mov ax, strict word 00002h ; b8 02 00 11756 11760 push ax ; 50 11757 call 01976h ; e8 1e 9e11761 call 01976h ; e8 f6 9d 11758 11762 add sp, strict byte 00004h ; 83 c4 04 11759 11763 mov ax, 00a49h ; b8 49 0a … … 11761 11765 mov ax, strict word 00002h ; b8 02 00 11762 11766 push ax ; 50 11763 call 01976h ; e8 10 9e11767 call 01976h ; e8 e8 9d 11764 11768 add sp, strict byte 00004h ; 83 c4 04 11765 11769 lea sp, [bp-008h] ; 8d 66 f8 … … 11770 11774 pop bp ; 5d 11771 11775 retn ; c3 11772 get_boot_drive_: ; 0xf7b 72LB 0x2811776 get_boot_drive_: ; 0xf7b9a LB 0x28 11773 11777 push bp ; 55 11774 11778 mov bp, sp ; 89 e5 … … 11778 11782 mov dx, strict word 0000eh ; ba 0e 00 11779 11783 mov ax, strict word 00040h ; b8 40 00 11780 call 0166eh ; e8 ec9a11784 call 0166eh ; e8 c4 9a 11781 11785 mov dx, 00304h ; ba 04 03 11782 call 01652h ; e8 ca9a11786 call 01652h ; e8 a2 9a 11783 11787 sub bl, 002h ; 80 eb 02 11784 11788 cmp bl, al ; 38 c3 11785 jc short 07b 91h ; 72 0211789 jc short 07bb9h ; 72 02 11786 11790 mov BL, strict byte 0ffh ; b3 ff 11787 11791 mov al, bl ; 88 d8 … … 11791 11795 pop bp ; 5d 11792 11796 retn ; c3 11793 show_logo_: ; 0xf7b 9aLB 0x24f11797 show_logo_: ; 0xf7bc2 LB 0x24f 11794 11798 push bp ; 55 11795 11799 mov bp, sp ; 89 e5 … … 11802 11806 mov dx, strict word 0000eh ; ba 0e 00 11803 11807 mov ax, strict word 00040h ; b8 40 00 11804 call 0166eh ; e8 c09a11808 call 0166eh ; e8 98 9a 11805 11809 mov si, ax ; 89 c6 11806 11810 mov byte [bp-00ch], 000h ; c6 46 f4 00 … … 11814 11818 mov al, cl ; 88 c8 11815 11819 xor ah, ah ; 30 e4 11816 call 07a 04h ; e8 3b fe11820 call 07a2ch ; e8 3b fe 11817 11821 cmp ax, 066bbh ; 3d bb 66 11818 jne short 07 be0h ; 75 1211822 jne short 07c08h ; 75 12 11819 11823 push SS ; 16 11820 11824 pop ES ; 07 … … 11824 11828 mov word [es:di], bx ; 26 89 1d 11825 11829 cmp ax, strict word 0004fh ; 3d 4f 00 11826 je short 07 be3h ; 74 0311827 jmp near 07c b8h ; e9 d5 0011830 je short 07c0bh ; 74 03 11831 jmp near 07ce0h ; e9 d5 00 11828 11832 mov al, cl ; 88 c8 11829 11833 add AL, strict byte 004h ; 04 04 11830 11834 xor ah, ah ; 30 e4 11831 call 07 9eeh ; e8 02 fe11835 call 07a16h ; e8 02 fe 11832 11836 mov bl, al ; 88 c3 11833 11837 mov byte [bp-014h], al ; 88 46 ec … … 11835 11839 add AL, strict byte 005h ; 04 05 11836 11840 xor ah, ah ; 30 e4 11837 call 07 9eeh ; e8 f4 fd11841 call 07a16h ; e8 f4 fd 11838 11842 mov bh, al ; 88 c7 11839 11843 mov byte [bp-012h], al ; 88 46 ee … … 11841 11845 add AL, strict byte 002h ; 04 02 11842 11846 xor ah, ah ; 30 e4 11843 call 07a 04h ; e8 fc fd11847 call 07a2ch ; e8 fc fd 11844 11848 mov dx, ax ; 89 c2 11845 11849 mov word [bp-016h], ax ; 89 46 ea … … 11847 11851 add AL, strict byte 006h ; 04 06 11848 11852 xor ah, ah ; 30 e4 11849 call 07 9eeh ; e8 d8 fd11853 call 07a16h ; e8 d8 fd 11850 11854 mov byte [bp-010h], al ; 88 46 f0 11851 11855 test bl, bl ; 84 db 11852 jne short 07c 25h ; 75 0811856 jne short 07c4dh ; 75 08 11853 11857 test bh, bh ; 84 ff 11854 jne short 07c 25h ; 75 0411858 jne short 07c4dh ; 75 04 11855 11859 test dx, dx ; 85 d2 11856 je short 07 be0h ; 74 bb11860 je short 07c08h ; 74 bb 11857 11861 mov bx, 00142h ; bb 42 01 11858 11862 mov ax, 04f02h ; b8 02 4f 11859 11863 int 010h ; cd 10 11860 11864 cmp byte [bp-014h], 000h ; 80 7e ec 00 11861 je short 07c 58h ; 74 2511865 je short 07c80h ; 74 25 11862 11866 xor cx, cx ; 31 c9 11863 jmp short 07c 3dh ; eb 0611867 jmp short 07c65h ; eb 06 11864 11868 inc cx ; 41 11865 11869 cmp cx, strict byte 00010h ; 83 f9 10 11866 jnbe short 07c 5fh ; 77 2211870 jnbe short 07c87h ; 77 22 11867 11871 mov ax, cx ; 89 c8 11868 11872 or ah, 002h ; 80 cc 02 … … 11871 11875 xor dx, dx ; 31 d2 11872 11876 mov ax, strict word 00001h ; b8 01 00 11873 call 079 3ch ; e8 ee fc11877 call 07964h ; e8 ee fc 11874 11878 cmp AL, strict byte 086h ; 3c 86 11875 jne short 07c 37h ; 75 e511879 jne short 07c5fh ; 75 e5 11876 11880 mov byte [bp-00ch], 001h ; c6 46 f4 01 11877 jmp short 07c 5fh ; eb 0711881 jmp short 07c87h ; eb 07 11878 11882 mov ax, 00210h ; b8 10 02 11879 11883 mov dx, 003b8h ; ba b8 03 11880 11884 out DX, ax ; ef 11881 11885 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11882 jne short 07c 7ah ; 75 1511886 jne short 07ca2h ; 75 15 11883 11887 mov CL, strict byte 004h ; b1 04 11884 11888 mov ax, word [bp-016h] ; 8b 46 ea 11885 11889 shr ax, CL ; d3 e8 11886 11890 mov dx, strict word 00001h ; ba 01 00 11887 call 079 3ch ; e8 ca fc11891 call 07964h ; e8 ca fc 11888 11892 cmp AL, strict byte 086h ; 3c 86 11889 jne short 07c 7ah ; 75 0411893 jne short 07ca2h ; 75 04 11890 11894 mov byte [bp-00ch], 001h ; c6 46 f4 01 11891 11895 cmp byte [bp-012h], 000h ; 80 7e ee 00 11892 je short 07c abh ; 74 2b11896 je short 07cd3h ; 74 2b 11893 11897 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11894 jne short 07c abh ; 75 2511898 jne short 07cd3h ; 75 25 11895 11899 mov cx, strict word 00010h ; b9 10 00 11896 jmp short 07c 90h ; eb 0511900 jmp short 07cb8h ; eb 05 11897 11901 dec cx ; 49 11898 11902 test cx, cx ; 85 c9 11899 jbe short 07c b8h ; 76 2811903 jbe short 07ce0h ; 76 28 11900 11904 mov ax, cx ; 89 c8 11901 11905 or ah, 002h ; 80 cc 02 … … 11904 11908 xor dx, dx ; 31 d2 11905 11909 mov ax, strict word 00001h ; b8 01 00 11906 call 079 3ch ; e8 9b fc11910 call 07964h ; e8 9b fc 11907 11911 cmp AL, strict byte 086h ; 3c 86 11908 jne short 07c 8bh ; 75 e611912 jne short 07cb3h ; 75 e6 11909 11913 mov byte [bp-00ch], 001h ; c6 46 f4 01 11910 jmp short 07c b8h ; eb 0d11914 jmp short 07ce0h ; eb 0d 11911 11915 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11912 jne short 07c b8h ; 75 0711916 jne short 07ce0h ; 75 07 11913 11917 mov ax, 00200h ; b8 00 02 11914 11918 mov dx, 003b8h ; ba b8 03 … … 11917 11921 mov dx, 0037dh ; ba 7d 03 11918 11922 mov ax, si ; 89 f0 11919 call 01660h ; e8 9e9911923 call 01660h ; e8 76 99 11920 11924 mov AL, strict byte 003h ; b0 03 11921 11925 mov AH, strict byte 000h ; b4 00 11922 11926 int 010h ; cd 10 11923 11927 cmp byte [bp-010h], 000h ; 80 7e f0 00 11924 je short 07 ce2h ; 74 1411928 je short 07d0ah ; 74 14 11925 11929 cmp byte [bp-014h], 000h ; 80 7e ec 00 11926 jne short 07d 10h ; 75 3c11930 jne short 07d38h ; 75 3c 11927 11931 cmp byte [bp-012h], 000h ; 80 7e ee 00 11928 jne short 07d 10h ; 75 3611932 jne short 07d38h ; 75 36 11929 11933 cmp word [bp-016h], strict byte 00000h ; 83 7e ea 00 11930 je short 07 ce5h ; 74 0511931 jmp short 07d 10h ; eb 2e11932 jmp near 07d cch ; e9 e7 0011934 je short 07d0dh ; 74 05 11935 jmp short 07d38h ; eb 2e 11936 jmp near 07df4h ; e9 e7 00 11933 11937 cmp byte [bp-010h], 002h ; 80 7e f0 02 11934 jne short 07 cf9h ; 75 0e11938 jne short 07d21h ; 75 0e 11935 11939 mov ax, 00a4bh ; b8 4b 0a 11936 11940 push ax ; 50 11937 11941 mov ax, strict word 00002h ; b8 02 00 11938 11942 push ax ; 50 11939 call 01976h ; e8 809c11943 call 01976h ; e8 58 9c 11940 11944 add sp, strict byte 00004h ; 83 c4 04 11941 11945 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11942 jne short 07d 10h ; 75 1111946 jne short 07d38h ; 75 11 11943 11947 mov dx, strict word 00001h ; ba 01 00 11944 11948 mov ax, 000c0h ; b8 c0 00 11945 call 079 3ch ; e8 34 fc11949 call 07964h ; e8 34 fc 11946 11950 cmp AL, strict byte 086h ; 3c 86 11947 jne short 07d 10h ; 75 0411951 jne short 07d38h ; 75 04 11948 11952 mov byte [bp-00ch], 001h ; c6 46 f4 01 11949 11953 cmp byte [bp-00ch], 000h ; 80 7e f4 00 11950 je short 07 ce2h ; 74 cc11954 je short 07d0ah ; 74 cc 11951 11955 mov byte [bp-00eh], 000h ; c6 46 f2 00 11952 11956 mov ax, 00100h ; b8 00 01 … … 11969 11973 mov ax, strict word 00002h ; b8 02 00 11970 11974 push ax ; 50 11971 call 01976h ; e8 349c11975 call 01976h ; e8 0c 9c 11972 11976 add sp, strict byte 00004h ; 83 c4 04 11973 call 07a 18h ; e8 d0 fc11977 call 07a40h ; e8 d0 fc 11974 11978 mov ax, 00ab1h ; b8 b1 0a 11975 11979 push ax ; 50 11976 11980 mov ax, strict word 00002h ; b8 02 00 11977 11981 push ax ; 50 11978 call 01976h ; e8 23 9c11982 call 01976h ; e8 fb 9b 11979 11983 add sp, strict byte 00004h ; 83 c4 04 11980 11984 mov dx, strict word 00001h ; ba 01 00 11981 11985 mov ax, strict word 00040h ; b8 40 00 11982 call 079 3ch ; e8 dd fb11986 call 07964h ; e8 dd fb 11983 11987 mov cl, al ; 88 c1 11984 11988 test al, al ; 84 c0 11985 je short 07d 56h ; 74 f111989 je short 07d7eh ; 74 f1 11986 11990 cmp AL, strict byte 030h ; 3c 30 11987 je short 07d b9h ; 74 5011991 je short 07de1h ; 74 50 11988 11992 cmp cl, 002h ; 80 f9 02 11989 jc short 07d 92h ; 72 2411993 jc short 07dbah ; 72 24 11990 11994 cmp cl, 009h ; 80 f9 09 11991 jnbe short 07d 92h ; 77 1f11995 jnbe short 07dbah ; 77 1f 11992 11996 mov al, cl ; 88 c8 11993 11997 xor ah, ah ; 30 e4 11994 call 07b 72h ; e8 f8 fd11998 call 07b9ah ; e8 f8 fd 11995 11999 cmp AL, strict byte 0ffh ; 3c ff 11996 jne short 07d 80h ; 75 0211997 jmp short 07d 56h ; eb d612000 jne short 07da8h ; 75 02 12001 jmp short 07d7eh ; eb d6 11998 12002 mov bl, al ; 88 c3 11999 12003 xor bh, bh ; 30 ff 12000 12004 mov dx, 0037ch ; ba 7c 03 12001 12005 mov ax, si ; 89 f0 12002 call 01660h ; e8 d49812006 call 01660h ; e8 ac 98 12003 12007 mov byte [bp-00eh], 002h ; c6 46 f2 02 12004 jmp short 07d b9h ; eb 2712008 jmp short 07de1h ; eb 27 12005 12009 cmp cl, 02eh ; 80 f9 2e 12006 je short 07d a7h ; 74 1012010 je short 07dcfh ; 74 10 12007 12011 cmp cl, 026h ; 80 f9 26 12008 je short 07d adh ; 74 1112012 je short 07dd5h ; 74 11 12009 12013 cmp cl, 021h ; 80 f9 21 12010 jne short 07d b3h ; 75 1212014 jne short 07ddbh ; 75 12 12011 12015 mov byte [bp-00eh], 001h ; c6 46 f2 01 12012 jmp short 07d b9h ; eb 1212016 jmp short 07de1h ; eb 12 12013 12017 mov byte [bp-00eh], 003h ; c6 46 f2 03 12014 jmp short 07d b9h ; eb 0c12018 jmp short 07de1h ; eb 0c 12015 12019 mov byte [bp-00eh], 004h ; c6 46 f2 04 12016 jmp short 07d b9h ; eb 0612020 jmp short 07de1h ; eb 06 12017 12021 cmp byte [bp-00eh], 000h ; 80 7e f2 00 12018 je short 07d 56h ; 74 9d12022 je short 07d7eh ; 74 9d 12019 12023 mov bl, byte [bp-00eh] ; 8a 5e f2 12020 12024 xor bh, bh ; 30 ff 12021 12025 mov dx, 0037dh ; ba 7d 03 12022 12026 mov ax, si ; 89 f0 12023 call 01660h ; e8 9a9812027 call 01660h ; e8 72 98 12024 12028 mov AL, strict byte 003h ; b0 03 12025 12029 mov AH, strict byte 000h ; b4 00 … … 12034 12038 push DS ; 1e 12035 12039 mov ds, ax ; 8e d8 12036 call 0ede3h ; e8 06 7012040 call 0ede3h ; e8 de 6f 12037 12041 pop DS ; 1f 12038 12042 pop bp ; 5d … … 12045 12049 pop bp ; 5d 12046 12050 retn ; c3 12047 delay_boot_: ; 0xf7 de9LB 0x7212051 delay_boot_: ; 0xf7e11 LB 0x72 12048 12052 push bp ; 55 12049 12053 mov bp, sp ; 89 e5 … … 12055 12059 mov bx, ax ; 89 c3 12056 12060 test ax, ax ; 85 c0 12057 je short 07e 51h ; 74 5a12061 je short 07e79h ; 74 5a 12058 12062 mov AL, strict byte 034h ; b0 34 12059 12063 out strict byte 043h, AL ; e6 43 … … 12067 12071 mov ax, strict word 00002h ; b8 02 00 12068 12072 push ax ; 50 12069 call 01976h ; e8 679b12073 call 01976h ; e8 3f 9b 12070 12074 add sp, strict byte 00006h ; 83 c4 06 12071 12075 test bx, bx ; 85 db 12072 jbe short 07e 30h ; 76 1a12076 jbe short 07e58h ; 76 1a 12073 12077 push bx ; 53 12074 12078 mov ax, 00b19h ; b8 19 0b … … 12076 12080 mov ax, strict word 00002h ; b8 02 00 12077 12081 push ax ; 50 12078 call 01976h ; e8 549b12082 call 01976h ; e8 2c 9b 12079 12083 add sp, strict byte 00006h ; 83 c4 06 12080 12084 xor dx, dx ; 31 d2 12081 12085 mov ax, strict word 00040h ; b8 40 00 12082 call 079 3ch ; e8 0f fb12086 call 07964h ; e8 0f fb 12083 12087 dec bx ; 4b 12084 jmp short 07e 12h ; eb e212088 jmp short 07e3ah ; eb e2 12085 12089 mov bx, 00a49h ; bb 49 0a 12086 12090 push bx ; 53 12087 12091 mov bx, strict word 00002h ; bb 02 00 12088 12092 push bx ; 53 12089 call 01976h ; e8 3b9b12093 call 01976h ; e8 13 9b 12090 12094 add sp, strict byte 00004h ; 83 c4 04 12091 12095 mov AL, strict byte 034h ; b0 34 … … 12098 12102 push DS ; 1e 12099 12103 mov ds, ax ; 8e d8 12100 call 0ede3h ; e8 946f12104 call 0ede3h ; e8 6c 6f 12101 12105 pop DS ; 1f 12102 12106 pop bp ; 5d … … 12109 12113 pop bp ; 5d 12110 12114 retn ; c3 12111 scsi_cmd_data_in_: ; 0xf7e 5bLB 0xd512115 scsi_cmd_data_in_: ; 0xf7e83 LB 0xd5 12112 12116 push bp ; 55 12113 12117 mov bp, sp ; 89 e5 … … 12125 12129 ; sub ah, ah ; 2a e4 12126 12130 test AL, strict byte 001h ; a8 01 12127 jne short 07e 71h ; 75 f712131 jne short 07e99h ; 75 f7 12128 12132 mov al, byte [bp+004h] ; 8a 46 04 12129 12133 cmp AL, strict byte 010h ; 3c 10 12130 jne short 07e 85h ; 75 0412134 jne short 07eadh ; 75 04 12131 12135 xor ax, ax ; 31 c0 12132 jmp short 07e 87h ; eb 0212136 jmp short 07eafh ; eb 02 12133 12137 xor ah, ah ; 30 e4 12134 12138 mov di, ax ; 89 c7 … … 12138 12142 shr dx, 1 ; d1 ea 12139 12143 rcr ax, 1 ; d1 d8 12140 loop 07e 91h ; e2 fa12144 loop 07eb9h ; e2 fa 12141 12145 mov cx, ax ; 89 c1 12142 12146 and cx, 000f0h ; 81 e1 f0 00 … … 12156 12160 shr dx, 1 ; d1 ea 12157 12161 rcr ax, 1 ; d1 d8 12158 loop 07e b6h ; e2 fa12162 loop 07edeh ; e2 fa 12159 12163 mov dx, si ; 89 f2 12160 12164 out DX, AL ; ee … … 12163 12167 xor ah, ah ; 30 e4 12164 12168 cmp cx, ax ; 39 c1 12165 jnc short 07 ed8h ; 73 0e12169 jnc short 07f00h ; 73 0e 12166 12170 les di, [bp-00ah] ; c4 7e f6 12167 12171 add di, cx ; 01 cf … … 12170 12174 out DX, AL ; ee 12171 12175 inc cx ; 41 12172 jmp short 07e c1h ; eb e912176 jmp short 07ee9h ; eb e9 12173 12177 mov dx, si ; 89 f2 12174 12178 in AL, DX ; ec … … 12176 12180 ; sub ah, ah ; 2a e4 12177 12181 test AL, strict byte 001h ; a8 01 12178 jne short 07 ed8h ; 75 f712182 jne short 07f00h ; 75 f7 12179 12183 test AL, strict byte 002h ; a8 02 12180 je short 07 ef3h ; 74 0e12184 je short 07f1bh ; 74 0e 12181 12185 lea dx, [si+003h] ; 8d 54 03 12182 12186 xor al, al ; 30 c0 … … 12186 12190 ; sub ah, ah ; 2a e4 12187 12191 mov di, strict word 00004h ; bf 04 00 12188 jmp short 07f 25h ; eb 3212192 jmp short 07f4dh ; eb 32 12189 12193 lea dx, [si+001h] ; 8d 54 01 12190 12194 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12191 jne short 07f 02h ; 75 0612195 jne short 07f2ah ; 75 06 12192 12196 cmp bx, 08000h ; 81 fb 00 80 12193 jbe short 07f 1ch ; 76 1a12197 jbe short 07f44h ; 76 1a 12194 12198 mov cx, 08000h ; b9 00 80 12195 12199 les di, [bp+006h] ; c4 7e 06 … … 12200 12204 add ax, 00800h ; 05 00 08 12201 12205 mov word [bp+008h], ax ; 89 46 08 12202 jmp short 07 ef3h ; eb d712206 jmp short 07f1bh ; eb d7 12203 12207 mov cx, bx ; 89 d9 12204 12208 les di, [bp+006h] ; c4 7e 06 … … 12211 12215 pop bp ; 5d 12212 12216 retn 0000ah ; c2 0a 00 12213 scsi_cmd_data_out_: ; 0xf7f 30LB 0xd512217 scsi_cmd_data_out_: ; 0xf7f58 LB 0xd5 12214 12218 push bp ; 55 12215 12219 mov bp, sp ; 89 e5 … … 12227 12231 ; sub ah, ah ; 2a e4 12228 12232 test AL, strict byte 001h ; a8 01 12229 jne short 07f 46h ; 75 f712233 jne short 07f6eh ; 75 f7 12230 12234 mov al, byte [bp+004h] ; 8a 46 04 12231 12235 cmp AL, strict byte 010h ; 3c 10 12232 jne short 07f 5ah ; 75 0412236 jne short 07f82h ; 75 04 12233 12237 xor ax, ax ; 31 c0 12234 jmp short 07f 5ch ; eb 0212238 jmp short 07f84h ; eb 02 12235 12239 xor ah, ah ; 30 e4 12236 12240 mov si, ax ; 89 c6 … … 12240 12244 shr dx, 1 ; d1 ea 12241 12245 rcr ax, 1 ; d1 d8 12242 loop 07f 66h ; e2 fa12246 loop 07f8eh ; e2 fa 12243 12247 mov cx, ax ; 89 c1 12244 12248 and cx, 000f0h ; 81 e1 f0 00 … … 12258 12262 shr dx, 1 ; d1 ea 12259 12263 rcr ax, 1 ; d1 d8 12260 loop 07f 8bh ; e2 fa12264 loop 07fb3h ; e2 fa 12261 12265 mov dx, di ; 89 fa 12262 12266 out DX, AL ; ee … … 12265 12269 xor ah, ah ; 30 e4 12266 12270 cmp cx, ax ; 39 c1 12267 jnc short 07f adh ; 73 0e12271 jnc short 07fd5h ; 73 0e 12268 12272 les si, [bp-00ah] ; c4 76 f6 12269 12273 add si, cx ; 01 ce … … 12272 12276 out DX, AL ; ee 12273 12277 inc cx ; 41 12274 jmp short 07f 96h ; eb e912278 jmp short 07fbeh ; eb e9 12275 12279 lea dx, [di+001h] ; 8d 55 01 12276 12280 cmp word [bp+00ch], strict byte 00000h ; 83 7e 0c 00 12277 jne short 07f bch ; 75 0612281 jne short 07fe4h ; 75 06 12278 12282 cmp bx, 08000h ; 81 fb 00 80 12279 jbe short 07f d7h ; 76 1b12283 jbe short 07fffh ; 76 1b 12280 12284 mov cx, 08000h ; b9 00 80 12281 12285 les si, [bp+006h] ; c4 76 06 … … 12287 12291 add ax, 00800h ; 05 00 08 12288 12292 mov word [bp+008h], ax ; 89 46 08 12289 jmp short 07f adh ; eb d612293 jmp short 07fd5h ; eb d6 12290 12294 mov cx, bx ; 89 d9 12291 12295 les si, [bp+006h] ; c4 76 06 … … 12297 12301 ; sub ah, ah ; 2a e4 12298 12302 test AL, strict byte 001h ; a8 01 12299 jne short 0 7fdfh ; 75 f712303 jne short 08007h ; 75 f7 12300 12304 test AL, strict byte 002h ; a8 02 12301 je short 0 7ffah ; 74 0e12305 je short 08022h ; 74 0e 12302 12306 lea dx, [di+003h] ; 8d 55 03 12303 12307 xor al, al ; 30 c0 … … 12307 12311 ; sub ah, ah ; 2a e4 12308 12312 mov ax, strict word 00004h ; b8 04 00 12309 jmp short 0 7ffch ; eb 0212313 jmp short 08024h ; eb 02 12310 12314 xor ax, ax ; 31 c0 12311 12315 lea sp, [bp-004h] ; 8d 66 fc … … 12314 12318 pop bp ; 5d 12315 12319 retn 0000ah ; c2 0a 00 12316 @scsi_read_sectors: ; 0xf80 05LB 0xe912320 @scsi_read_sectors: ; 0xf802d LB 0xe9 12317 12321 push bp ; 55 12318 12322 mov bp, sp ; 89 e5 … … 12326 12330 mov byte [bp-006h], al ; 88 46 fa 12327 12331 cmp AL, strict byte 004h ; 3c 04 12328 jbe short 080 35h ; 76 1512332 jbe short 0805dh ; 76 15 12329 12333 xor ah, ah ; 30 e4 12330 12334 push ax ; 50 … … 12335 12339 mov ax, strict word 00007h ; b8 07 00 12336 12340 push ax ; 50 12337 call 01976h ; e8 449912341 call 01976h ; e8 1c 99 12338 12342 add sp, strict byte 00008h ; 83 c4 08 12339 12343 mov es, [bp+006h] ; 8e 46 06 … … 12376 12380 sal word [bp-00ah], 1 ; d1 66 f6 12377 12381 rcl word [bp-008h], 1 ; d1 56 f8 12378 loop 080 a0h ; e2 f812382 loop 080c8h ; e2 f8 12379 12383 push word [bp-008h] ; ff 76 f8 12380 12384 push word [bp-00ah] ; ff 76 f6 … … 12387 12391 mov cx, ss ; 8c d1 12388 12392 lea bx, [bp-01ah] ; 8d 5e e6 12389 call 07e 5bh ; e8 95 fd12393 call 07e83h ; e8 95 fd 12390 12394 mov ah, al ; 88 c4 12391 12395 test al, al ; 84 c0 12392 jne short 08 0e1h ; 75 1512396 jne short 08109h ; 75 15 12393 12397 mov es, [bp+006h] ; 8e 46 06 12394 12398 mov word [es:si+018h], di ; 26 89 7c 18 … … 12404 12408 pop bp ; 5d 12405 12409 retn 00004h ; c2 04 00 12406 @scsi_write_sectors: ; 0xf8 0eeLB 0xe912410 @scsi_write_sectors: ; 0xf8116 LB 0xe9 12407 12411 push bp ; 55 12408 12412 mov bp, sp ; 89 e5 … … 12416 12420 mov byte [bp-006h], al ; 88 46 fa 12417 12421 cmp AL, strict byte 004h ; 3c 04 12418 jbe short 081 1eh ; 76 1512422 jbe short 08146h ; 76 15 12419 12423 xor ah, ah ; 30 e4 12420 12424 push ax ; 50 … … 12425 12429 mov ax, strict word 00007h ; b8 07 00 12426 12430 push ax ; 50 12427 call 01976h ; e8 5b9812431 call 01976h ; e8 33 98 12428 12432 add sp, strict byte 00008h ; 83 c4 08 12429 12433 mov es, [bp+006h] ; 8e 46 06 … … 12466 12470 sal word [bp-00ah], 1 ; d1 66 f6 12467 12471 rcl word [bp-008h], 1 ; d1 56 f8 12468 loop 081 89h ; e2 f812472 loop 081b1h ; e2 f8 12469 12473 push word [bp-008h] ; ff 76 f8 12470 12474 push word [bp-00ah] ; ff 76 f6 … … 12477 12481 mov cx, ss ; 8c d1 12478 12482 lea bx, [bp-01ah] ; 8d 5e e6 12479 call 07f 30h ; e8 81 fd12483 call 07f58h ; e8 81 fd 12480 12484 mov ah, al ; 88 c4 12481 12485 test al, al ; 84 c0 12482 jne short 081 cah ; 75 1512486 jne short 081f2h ; 75 15 12483 12487 mov es, [bp+006h] ; 8e 46 06 12484 12488 mov word [es:si+018h], di ; 26 89 7c 18 … … 12494 12498 pop bp ; 5d 12495 12499 retn 00004h ; c2 04 00 12496 scsi_cmd_packet_: ; 0xf81 d7LB 0x17012500 scsi_cmd_packet_: ; 0xf81ff LB 0x170 12497 12501 push bp ; 55 12498 12502 mov bp, sp ; 89 e5 … … 12506 12510 mov dx, strict word 0000eh ; ba 0e 00 12507 12511 mov ax, strict word 00040h ; b8 40 00 12508 call 0166eh ; e8 7b9412512 call 0166eh ; e8 53 94 12509 12513 mov si, 00122h ; be 22 01 12510 12514 mov word [bp-00ch], ax ; 89 46 f4 12511 12515 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 12512 jne short 082 22h ; 75 2312516 jne short 0824ah ; 75 23 12513 12517 mov bx, 00da0h ; bb a0 0d 12514 12518 mov cx, ds ; 8c d9 12515 12519 mov ax, strict word 00004h ; b8 04 00 12516 call 01933h ; e8 299712520 call 01933h ; e8 01 97 12517 12521 mov ax, 00b62h ; b8 62 0b 12518 12522 push ax ; 50 … … 12521 12525 mov ax, strict word 00004h ; b8 04 00 12522 12526 push ax ; 50 12523 call 01976h ; e8 5d9712527 call 01976h ; e8 35 97 12524 12528 add sp, strict byte 00006h ; 83 c4 06 12525 12529 mov dx, strict word 00001h ; ba 01 00 12526 jmp near 083 3ch ; e9 1a 0112530 jmp near 08364h ; e9 1a 01 12527 12531 sub di, strict byte 00008h ; 83 ef 08 12528 12532 sal di, 1 ; d1 e7 … … 12539 12543 ; sub ah, ah ; 2a e4 12540 12544 test AL, strict byte 001h ; a8 01 12541 jne short 082 3fh ; 75 f712545 jne short 08267h ; 75 f7 12542 12546 xor dx, bx ; 31 da 12543 12547 mov ax, word [bp+006h] ; 8b 46 06 … … 12555 12559 shr dx, 1 ; d1 ea 12556 12560 rcr ax, 1 ; d1 d8 12557 loop 082 6ah ; e2 fa12561 loop 08292h ; e2 fa 12558 12562 and ax, 000f0h ; 25 f0 00 12559 12563 mov cl, byte [bp-006h] ; 8a 4e fa … … 12574 12578 shr dx, 1 ; d1 ea 12575 12579 rcr ax, 1 ; d1 d8 12576 loop 082 92h ; e2 fa12580 loop 082bah ; e2 fa 12577 12581 mov dx, bx ; 89 da 12578 12582 out DX, AL ; ee … … 12581 12585 xor ah, ah ; 30 e4 12582 12586 cmp cx, ax ; 39 c1 12583 jnc short 082 b7h ; 73 1112587 jnc short 082dfh ; 73 11 12584 12588 mov es, [bp-00ah] ; 8e 46 f6 12585 12589 mov di, word [bp-00eh] ; 8b 7e f2 … … 12589 12593 out DX, AL ; ee 12590 12594 inc cx ; 41 12591 jmp short 082 9dh ; eb e612595 jmp short 082c5h ; eb e6 12592 12596 mov dx, bx ; 89 da 12593 12597 in AL, DX ; ec … … 12595 12599 ; sub ah, ah ; 2a e4 12596 12600 test AL, strict byte 001h ; a8 01 12597 jne short 082 b7h ; 75 f712601 jne short 082dfh ; 75 f7 12598 12602 test AL, strict byte 002h ; a8 02 12599 je short 082 d2h ; 74 0e12603 je short 082fah ; 74 0e 12600 12604 lea dx, [bx+003h] ; 8d 57 03 12601 12605 xor al, al ; 30 c0 … … 12605 12609 ; sub ah, ah ; 2a e4 12606 12610 mov dx, strict word 00003h ; ba 03 00 12607 jmp short 083 3ch ; eb 6a12611 jmp short 08364h ; eb 6a 12608 12612 mov ax, word [bp+004h] ; 8b 46 04 12609 12613 test ax, ax ; 85 c0 12610 je short 08 2e1h ; 74 0812614 je short 08309h ; 74 08 12611 12615 lea dx, [bx+001h] ; 8d 57 01 12612 12616 mov cx, ax ; 89 c1 12613 12617 in AL, DX ; ec 12614 loop 08 2deh ; e2 fd12618 loop 08306h ; e2 fd 12615 12619 mov ax, word [bp+006h] ; 8b 46 06 12616 12620 mov es, [bp-00ch] ; 8e 46 f4 … … 12620 12624 lea ax, [bx+001h] ; 8d 47 01 12621 12625 cmp word [bp+008h], strict byte 00000h ; 83 7e 08 00 12622 jne short 083 02h ; 75 0712626 jne short 0832ah ; 75 07 12623 12627 cmp word [bp+006h], 08000h ; 81 7e 06 00 80 12624 jbe short 083 1fh ; 76 1d12628 jbe short 08347h ; 76 1d 12625 12629 mov dx, ax ; 89 c2 12626 12630 mov cx, 08000h ; b9 00 80 … … 12632 12636 add ax, 00800h ; 05 00 08 12633 12637 mov word [bp+00eh], ax ; 89 46 0e 12634 jmp short 08 2f2h ; eb d312638 jmp short 0831ah ; eb d3 12635 12639 mov dx, ax ; 89 c2 12636 12640 mov cx, word [bp+006h] ; 8b 4e 06 … … 12639 12643 mov es, [bp-00ch] ; 8e 46 f4 12640 12644 cmp word [es:si+020h], strict byte 00000h ; 26 83 7c 20 00 12641 je short 083 3ah ; 74 0712645 je short 08362h ; 74 07 12642 12646 mov cx, word [es:si+020h] ; 26 8b 4c 20 12643 12647 in AL, DX ; ec 12644 loop 083 37h ; e2 fd12648 loop 0835fh ; e2 fd 12645 12649 xor dx, dx ; 31 d2 12646 12650 mov ax, dx ; 89 d0 … … 12650 12654 pop bp ; 5d 12651 12655 retn 0000ch ; c2 0c 00 12652 scsi_enumerate_attached_devices_: ; 0xf83 47LB 0x4cb12656 scsi_enumerate_attached_devices_: ; 0xf836f LB 0x4cb 12653 12657 push bp ; 55 12654 12658 mov bp, sp ; 89 e5 … … 12662 12666 mov dx, strict word 0000eh ; ba 0e 00 12663 12667 mov ax, strict word 00040h ; b8 40 00 12664 call 0166eh ; e8 11 9312668 call 0166eh ; e8 e9 92 12665 12669 mov di, 00122h ; bf 22 01 12666 12670 mov word [bp-016h], ax ; 89 46 ea 12667 12671 mov word [bp-014h], strict word 00000h ; c7 46 ec 00 00 12668 jmp near 087 85h ; e9 1a 0412672 jmp near 087adh ; e9 1a 04 12669 12673 cmp AL, strict byte 004h ; 3c 04 12670 jc short 083 72h ; 72 0312671 jmp near 088 08h ; e9 96 0412674 jc short 0839ah ; 72 03 12675 jmp near 08830h ; e9 96 04 12672 12676 mov cx, strict word 00010h ; b9 10 00 12673 12677 xor bx, bx ; 31 db 12674 12678 mov dx, ss ; 8c d2 12675 12679 lea ax, [bp-048h] ; 8d 46 b8 12676 call 0a 0d0h ; e8 511d12680 call 0a100h ; e8 59 1d 12677 12681 mov byte [bp-048h], 09eh ; c6 46 b8 9e 12678 12682 mov byte [bp-047h], 010h ; c6 46 b9 10 … … 12692 12696 lea bx, [bp-048h] ; 8d 5e b8 12693 12697 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 12694 call 07e 5bh ; e8 ae fa12698 call 07e83h ; e8 ae fa 12695 12699 test al, al ; 84 c0 12696 je short 083 c3h ; 74 1212700 je short 083ebh ; 74 12 12697 12701 mov ax, 00b92h ; b8 92 0b 12698 12702 push ax ; 50 … … 12701 12705 mov ax, strict word 00007h ; b8 07 00 12702 12706 push ax ; 50 12703 call 01976h ; e8 b69512707 call 01976h ; e8 8e 95 12704 12708 add sp, strict byte 00006h ; 83 c4 06 12705 12709 mov ax, word [bp-00242h] ; 8b 86 be fd … … 12733 12737 sal ax, 1 ; d1 e0 12734 12738 rcl dx, 1 ; d1 d2 12735 loop 084 11h ; e2 fa12739 loop 08439h ; e2 fa 12736 12740 or bx, ax ; 09 c3 12737 12741 or dx, si ; 09 f2 … … 12741 12745 mov word [bp-01ch], bx ; 89 5e e4 12742 12746 test dx, dx ; 85 d2 12743 jne short 084 30h ; 75 0612747 jne short 08458h ; 75 06 12744 12748 cmp bx, 00200h ; 81 fb 00 02 12745 je short 084 53h ; 74 2312749 je short 0847bh ; 74 23 12746 12750 mov bx, 00da0h ; bb a0 0d 12747 12751 mov cx, ds ; 8c d9 12748 12752 mov ax, strict word 00004h ; b8 04 00 12749 call 01933h ; e8 f89412753 call 01933h ; e8 d0 94 12750 12754 push dx ; 52 12751 12755 push word [bp-01ch] ; ff 76 e4 … … 12755 12759 mov ax, strict word 00004h ; b8 04 00 12756 12760 push ax ; 50 12757 call 01976h ; e8 299512761 call 01976h ; e8 01 95 12758 12762 add sp, strict byte 0000ah ; 83 c4 0a 12759 jmp near 087 79h ; e9 26 0312763 jmp near 087a1h ; e9 26 03 12760 12764 mov al, byte [bp-00ch] ; 8a 46 f4 12761 12765 cmp AL, strict byte 001h ; 3c 01 12762 jc short 084 66h ; 72 0c12763 jbe short 084 6eh ; 76 1212766 jc short 0848eh ; 72 0c 12767 jbe short 08496h ; 76 12 12764 12768 cmp AL, strict byte 003h ; 3c 03 12765 je short 084 76h ; 74 1612769 je short 0849eh ; 74 16 12766 12770 cmp AL, strict byte 002h ; 3c 02 12767 je short 084 72h ; 74 0e12768 jmp short 084 bdh ; eb 5712771 je short 0849ah ; 74 0e 12772 jmp short 084e5h ; eb 57 12769 12773 test al, al ; 84 c0 12770 jne short 084 bdh ; 75 5312774 jne short 084e5h ; 75 53 12771 12775 mov BL, strict byte 090h ; b3 90 12772 jmp short 084 78h ; eb 0a12776 jmp short 084a0h ; eb 0a 12773 12777 mov BL, strict byte 098h ; b3 98 12774 jmp short 084 78h ; eb 0612778 jmp short 084a0h ; eb 06 12775 12779 mov BL, strict byte 0a0h ; b3 a0 12776 jmp short 084 78h ; eb 0212780 jmp short 084a0h ; eb 02 12777 12781 mov BL, strict byte 0a8h ; b3 a8 12778 12782 mov cl, bl ; 88 d9 … … 12780 12784 xor ch, ch ; 30 ed 12781 12785 mov ax, cx ; 89 c8 12782 call 016aeh ; e8 2a9212786 call 016aeh ; e8 02 92 12783 12787 test al, al ; 84 c0 12784 je short 084 bdh ; 74 3512788 je short 084e5h ; 74 35 12785 12789 mov al, bl ; 88 d8 12786 12790 db 0feh, 0c0h 12787 12791 ; inc al ; fe c0 12788 12792 xor ah, ah ; 30 e4 12789 call 016aeh ; e8 1d 9212793 call 016aeh ; e8 f5 91 12790 12794 mov dh, al ; 88 c6 12791 12795 mov al, bl ; 88 d8 12792 12796 xor ah, ah ; 30 e4 12793 call 016aeh ; e8 14 9212797 call 016aeh ; e8 ec 91 12794 12798 mov ah, dh ; 88 f4 12795 12799 cwd ; 99 … … 12799 12803 add AL, strict byte 002h ; 04 02 12800 12804 xor ah, ah ; 30 e4 12801 call 016aeh ; e8 03 9212805 call 016aeh ; e8 db 91 12802 12806 xor ah, ah ; 30 e4 12803 12807 mov word [bp-028h], ax ; 89 46 d8 12804 12808 mov ax, cx ; 89 c8 12805 call 016aeh ; e8 f99112809 call 016aeh ; e8 d1 91 12806 12810 xor ah, ah ; 30 e4 12807 12811 mov word [bp-01ah], ax ; 89 46 e6 12808 jmp near 085 aah ; e9 ed 0012812 jmp near 085d2h ; e9 ed 00 12809 12813 mov ax, word [bp-020h] ; 8b 46 e0 12810 12814 mov bx, word [bp-022h] ; 8b 5e de … … 12812 12816 mov dx, word [bp-024h] ; 8b 56 dc 12813 12817 mov si, strict word 0000ch ; be 0c 00 12814 call 0a0 b0h ; e8 e11b12818 call 0a0e0h ; e8 e9 1b 12815 12819 mov word [bp-02ah], ax ; 89 46 d6 12816 12820 mov word [bp-02ch], bx ; 89 5e d4 … … 12819 12823 mov ax, word [bp-020h] ; 8b 46 e0 12820 12824 test ax, ax ; 85 c0 12821 jnbe short 08 4f7h ; 77 1512822 je short 08 4e7h ; 74 0312823 jmp near 085 6ah ; e9 83 0012825 jnbe short 0851fh ; 77 15 12826 je short 0850fh ; 74 03 12827 jmp near 08592h ; e9 83 00 12824 12828 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12825 jnbe short 08 4f7h ; 77 0a12826 jne short 08 4e4h ; 75 f512829 jnbe short 0851fh ; 77 0a 12830 jne short 0850ch ; 75 f5 12827 12831 cmp word [bp-012h], strict byte 00040h ; 83 7e ee 40 12828 jnbe short 08 4f7h ; 77 0212829 jne short 085 6ah ; 75 7312832 jnbe short 0851fh ; 77 02 12833 jne short 08592h ; 75 73 12830 12834 mov word [bp-028h], 000ffh ; c7 46 d8 ff 00 12831 12835 mov word [bp-01ah], strict word 0003fh ; c7 46 e6 3f 00 … … 12834 12838 mov dx, word [bp-024h] ; 8b 56 dc 12835 12839 mov si, strict word 00006h ; be 06 00 12836 call 0a0 b0h ; e8 a01b12840 call 0a0e0h ; e8 a8 1b 12837 12841 mov si, word [bp-018h] ; 8b 76 e8 12838 12842 add si, dx ; 01 d6 … … 12852 12856 mov dx, si ; 89 f2 12853 12857 mov si, strict word 00008h ; be 08 00 12854 call 0a0 b0h ; e8 701b12858 call 0a0e0h ; e8 78 1b 12855 12859 mov word [bp-02eh], bx ; 89 5e d2 12856 12860 mov word [bp-030h], cx ; 89 4e d0 … … 12861 12865 mov dx, word [bp-01eh] ; 8b 56 e2 12862 12866 mov si, strict word 00010h ; be 10 00 12863 call 0a0 b0h ; e8 551b12867 call 0a0e0h ; e8 5d 1b 12864 12868 mov si, word [bp-032h] ; 8b 76 ce 12865 12869 add si, dx ; 01 d6 … … 12867 12871 mov ax, word [bp-02eh] ; 8b 46 d2 12868 12872 adc ax, bx ; 11 d8 12869 jmp short 085 a7h ; eb 3d12873 jmp short 085cfh ; eb 3d 12870 12874 test ax, ax ; 85 c0 12871 jnbe short 085 80h ; 77 1212872 jne short 085 8ch ; 75 1c12875 jnbe short 085a8h ; 77 12 12876 jne short 085b4h ; 75 1c 12873 12877 cmp word [bp-022h], strict byte 00000h ; 83 7e de 00 12874 jnbe short 085 80h ; 77 0a12875 jne short 085 8ch ; 75 1412878 jnbe short 085a8h ; 77 0a 12879 jne short 085b4h ; 75 14 12876 12880 cmp word [bp-012h], strict byte 00020h ; 83 7e ee 20 12877 jnbe short 085 80h ; 77 0212878 jne short 085 8ch ; 75 0c12881 jnbe short 085a8h ; 77 02 12882 jne short 085b4h ; 75 0c 12879 12883 mov word [bp-028h], 00080h ; c7 46 d8 80 00 12880 12884 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 12881 jmp short 085 a5h ; eb 1912885 jmp short 085cdh ; eb 19 12882 12886 mov word [bp-028h], strict word 00040h ; c7 46 d8 40 00 12883 12887 mov word [bp-01ah], strict word 00020h ; c7 46 e6 20 00 … … 12886 12890 mov dx, word [bp-024h] ; 8b 56 dc 12887 12891 mov si, strict word 0000bh ; be 0b 00 12888 call 0a0 b0h ; e8 0b1b12892 call 0a0e0h ; e8 13 1b 12889 12893 mov si, dx ; 89 d6 12890 12894 mov word [bp-026h], cx ; 89 4e da … … 12923 12927 mov word [es:bx+034h], ax ; 26 89 47 34 12924 12928 cmp word [bp-026h], strict byte 00000h ; 83 7e da 00 12925 jne short 086 21h ; 75 0612929 jne short 08649h ; 75 06 12926 12930 cmp si, 00400h ; 81 fe 00 04 12927 jbe short 086 2fh ; 76 0e12931 jbe short 08657h ; 76 0e 12928 12932 mov word [es:bx+02ch], 00400h ; 26 c7 47 2c 00 04 12929 12933 mov word [es:bx+032h], 00400h ; 26 c7 47 32 00 04 12930 jmp short 086 37h ; eb 0812934 jmp short 0865fh ; eb 08 12931 12935 mov word [es:bx+02ch], si ; 26 89 77 2c 12932 12936 mov word [es:bx+032h], si ; 26 89 77 32 … … 12934 12938 mov cx, ds ; 8c d9 12935 12939 mov ax, strict word 00004h ; b8 04 00 12936 call 01933h ; e8 f19212940 call 01933h ; e8 c9 92 12937 12941 push word [bp-020h] ; ff 76 e0 12938 12942 push word [bp-022h] ; ff 76 de … … 12951 12955 mov ax, strict word 00004h ; b8 04 00 12952 12956 push ax ; 50 12953 call 01976h ; e8 0a 9312957 call 01976h ; e8 e2 92 12954 12958 add sp, strict byte 00018h ; 83 c4 18 12955 12959 mov al, byte [bp-00eh] ; 8a 46 f2 … … 12980 12984 mov dx, strict word 00075h ; ba 75 00 12981 12985 mov ax, strict word 00040h ; b8 40 00 12982 call 01652h ; e8 908f12986 call 01652h ; e8 68 8f 12983 12987 mov bl, al ; 88 c3 12984 12988 db 0feh, 0c3h … … 12987 12991 mov dx, strict word 00075h ; ba 75 00 12988 12992 mov ax, strict word 00040h ; b8 40 00 12989 call 01660h ; e8 8f8f12993 call 01660h ; e8 67 8f 12990 12994 inc byte [bp-00ch] ; fe 46 f4 12991 jmp near 087 6eh ; e9 97 0012995 jmp near 08796h ; e9 97 00 12992 12996 mov bx, 00da0h ; bb a0 0d 12993 12997 mov cx, ds ; 8c d9 12994 12998 mov ax, strict word 00004h ; b8 04 00 12995 call 01933h ; e8 519212999 call 01933h ; e8 29 92 12996 13000 push word [bp-014h] ; ff 76 ec 12997 13001 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13002 13006 mov ax, strict word 00004h ; b8 04 00 13003 13007 push ax ; 50 13004 call 01976h ; e8 809213008 call 01976h ; e8 58 92 13005 13009 add sp, strict byte 00008h ; 83 c4 08 13006 13010 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13008 13012 mov byte [bp-00eh], al ; 88 46 f2 13009 13013 test byte [bp-00247h], 080h ; f6 86 b9 fd 80 13010 je short 087 0dh ; 74 0513014 je short 08735h ; 74 05 13011 13015 mov cx, strict word 00001h ; b9 01 00 13012 jmp short 087 0fh ; eb 0213016 jmp short 08737h ; eb 02 13013 13017 xor cx, cx ; 31 c9 13014 13018 mov al, byte [bp-00ch] ; 8a 46 f4 … … 13048 13052 inc word [bp-014h] ; ff 46 ec 13049 13053 cmp word [bp-014h], strict byte 00010h ; 83 7e ec 10 13050 jl short 087 85h ; 7c 0313051 jmp near 088 08h ; e9 83 0013054 jl short 087adh ; 7c 03 13055 jmp near 08830h ; e9 83 00 13052 13056 mov byte [bp-048h], 012h ; c6 46 b8 12 13053 13057 xor al, al ; 30 c0 … … 13071 13075 lea bx, [bp-048h] ; 8d 5e b8 13072 13076 mov ax, word [bp-0024ah] ; 8b 86 b6 fd 13073 call 07e 5bh ; e8 9e f613077 call 07e83h ; e8 9e f6 13074 13078 test al, al ; 84 c0 13075 je short 087 d3h ; 74 1213079 je short 087fbh ; 74 12 13076 13080 mov ax, 00b92h ; b8 92 0b 13077 13081 push ax ; 50 … … 13080 13084 mov ax, strict word 00007h ; b8 07 00 13081 13085 push ax ; 50 13082 call 01976h ; e8 a69113086 call 01976h ; e8 7e 91 13083 13087 add sp, strict byte 00006h ; 83 c4 06 13084 13088 mov es, [bp-016h] ; 8e 46 ea … … 13086 13090 mov byte [bp-00ch], al ; 88 46 f4 13087 13091 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13088 jne short 08 7efh ; 75 0a13092 jne short 08817h ; 75 0a 13089 13093 test byte [bp-00248h], 01fh ; f6 86 b8 fd 1f 13090 jne short 08 7efh ; 75 0313091 jmp near 083 6bh ; e9 7c fb13094 jne short 08817h ; 75 03 13095 jmp near 08393h ; e9 7c fb 13092 13096 test byte [bp-00248h], 0e0h ; f6 86 b8 fd e0 13093 je short 08 7f9h ; 74 0313094 jmp near 087 6eh ; e9 75 ff13097 je short 08821h ; 74 03 13098 jmp near 08796h ; e9 75 ff 13095 13099 mov al, byte [bp-00248h] ; 8a 86 b8 fd 13096 13100 and AL, strict byte 01fh ; 24 1f 13097 13101 cmp AL, strict byte 005h ; 3c 05 13098 jne short 088 06h ; 75 0313099 jmp near 086 d7h ; e9 d1 fe13100 jmp short 08 7f6h ; eb ee13102 jne short 0882eh ; 75 03 13103 jmp near 086ffh ; e9 d1 fe 13104 jmp short 0881eh ; eb ee 13101 13105 lea sp, [bp-00ah] ; 8d 66 f6 13102 13106 pop di ; 5f … … 13107 13111 pop bp ; 5d 13108 13112 retn ; c3 13109 _scsi_init: ; 0xf88 12LB 0x6613113 _scsi_init: ; 0xf883a LB 0x66 13110 13114 push bp ; 55 13111 13115 mov bp, sp ; 89 e5 13112 13116 mov dx, strict word 0000eh ; ba 0e 00 13113 13117 mov ax, strict word 00040h ; b8 40 00 13114 call 0166eh ; e8 508e13118 call 0166eh ; e8 28 8e 13115 13119 mov bx, 00122h ; bb 22 01 13116 13120 mov es, ax ; 8e c0 … … 13123 13127 ; sub ah, ah ; 2a e4 13124 13128 cmp AL, strict byte 055h ; 3c 55 13125 jne short 088 42h ; 75 0c13129 jne short 0886ah ; 75 0c 13126 13130 xor al, al ; 30 c0 13127 13131 mov dx, 00433h ; ba 33 04 13128 13132 out DX, AL ; ee 13129 13133 mov ax, 00430h ; b8 30 04 13130 call 083 47h ; e8 05 fb13134 call 0836fh ; e8 05 fb 13131 13135 mov AL, strict byte 055h ; b0 55 13132 13136 mov dx, 00436h ; ba 36 04 … … 13136 13140 ; sub ah, ah ; 2a e4 13137 13141 cmp AL, strict byte 055h ; 3c 55 13138 jne short 088 5bh ; 75 0c13142 jne short 08883h ; 75 0c 13139 13143 xor al, al ; 30 c0 13140 13144 mov dx, 00437h ; ba 37 04 13141 13145 out DX, AL ; ee 13142 13146 mov ax, 00434h ; b8 34 04 13143 call 083 47h ; e8 ec fa13147 call 0836fh ; e8 ec fa 13144 13148 mov AL, strict byte 055h ; b0 55 13145 13149 mov dx, 0043ah ; ba 3a 04 … … 13149 13153 ; sub ah, ah ; 2a e4 13150 13154 cmp AL, strict byte 055h ; 3c 55 13151 jne short 088 74h ; 75 0c13155 jne short 0889ch ; 75 0c 13152 13156 xor al, al ; 30 c0 13153 13157 mov dx, 0043bh ; ba 3b 04 13154 13158 out DX, AL ; ee 13155 13159 mov ax, 00438h ; b8 38 04 13156 call 083 47h ; e8 d3 fa13160 call 0836fh ; e8 d3 fa 13157 13161 mov sp, bp ; 89 ec 13158 13162 pop bp ; 5d 13159 13163 retn ; c3 13160 ahci_ctrl_extract_bits_: ; 0xf88 78LB 0x1c13164 ahci_ctrl_extract_bits_: ; 0xf88a0 LB 0x1c 13161 13165 push si ; 56 13162 13166 push bp ; 55 … … 13167 13171 mov cl, byte [bp+006h] ; 8a 4e 06 13168 13172 xor ch, ch ; 30 ed 13169 jcxz 088 8fh ; e3 0613173 jcxz 088b7h ; e3 06 13170 13174 shr dx, 1 ; d1 ea 13171 13175 rcr ax, 1 ; d1 d8 13172 loop 088 89h ; e2 fa13176 loop 088b1h ; e2 fa 13173 13177 pop bp ; 5d 13174 13178 pop si ; 5e 13175 13179 retn 00002h ; c2 02 00 13176 ahci_addr_to_phys_: ; 0xf88 94LB 0x1e13180 ahci_addr_to_phys_: ; 0xf88bc LB 0x1e 13177 13181 push bx ; 53 13178 13182 push cx ; 51 … … 13185 13189 sal ax, 1 ; d1 e0 13186 13190 rcl dx, 1 ; d1 d2 13187 loop 088 a2h ; e2 fa13191 loop 088cah ; e2 fa 13188 13192 xor cx, cx ; 31 c9 13189 13193 add ax, bx ; 01 d8 … … 13193 13197 pop bx ; 5b 13194 13198 retn ; c3 13195 ahci_port_cmd_sync_: ; 0xf88 b2LB 0x15913199 ahci_port_cmd_sync_: ; 0xf88da LB 0x159 13196 13200 push bp ; 55 13197 13201 mov bp, sp ; 89 e5 … … 13208 13212 mov bx, word [es:si+00260h] ; 26 8b 9c 60 02 13209 13213 cmp AL, strict byte 0ffh ; 3c ff 13210 jne short 088 d5h ; 75 0313211 jmp near 08a 03h ; e9 2e 0113214 jne short 088fdh ; 75 03 13215 jmp near 08a2bh ; e9 2e 01 13212 13216 mov al, byte [es:si+00263h] ; 26 8a 84 63 02 13213 13217 xor ah, ah ; 30 e4 … … 13222 13226 lea ax, [si+00080h] ; 8d 84 80 00 13223 13227 mov dx, cx ; 89 ca 13224 call 088 94h ; e8 92 ff13228 call 088bch ; e8 92 ff 13225 13229 mov es, cx ; 8e c1 13226 13230 mov word [es:si+008h], ax ; 26 89 44 08 … … 13290 13294 xchg dx, ax ; 92 13291 13295 test dh, 040h ; f6 c6 40 13292 jne short 089 95h ; 75 0413296 jne short 089bdh ; 75 04 13293 13297 test AL, strict byte 001h ; a8 01 13294 je short 089 99h ; 74 0413298 je short 089c1h ; 74 04 13295 13299 mov AL, strict byte 001h ; b0 01 13296 jmp short 089 9bh ; eb 0213300 jmp short 089c3h ; eb 02 13297 13301 xor al, al ; 30 c0 13298 13302 test al, al ; 84 c0 13299 je short 089 67h ; 74 c813303 je short 0898fh ; 74 c8 13300 13304 mov al, byte [bp-008h] ; 8a 46 f8 13301 13305 xor ah, ah ; 30 e4 … … 13354 13358 pop bp ; 5d 13355 13359 retn ; c3 13356 ahci_cmd_data_: ; 0xf8a 0bLB 0x26213360 ahci_cmd_data_: ; 0xf8a33 LB 0x262 13357 13361 push bp ; 55 13358 13362 mov bp, sp ; 89 e5 … … 13379 13383 mov ax, 00080h ; b8 80 00 13380 13384 mov dx, word [bp-00ah] ; 8b 56 f6 13381 call 0a 0d0h ; e8 871613385 call 0a100h ; e8 8f 16 13382 13386 mov es, [bp-00ah] ; 8e 46 f6 13383 13387 mov word [es:di+00080h], 08027h ; 26 c7 85 80 00 27 80 … … 13397 13401 mov dx, word [es:si] ; 26 8b 14 13398 13402 mov si, strict word 00008h ; be 08 00 13399 call 0a0 b0h ; e8 231613403 call 0a0e0h ; e8 2b 16 13400 13404 mov es, [bp-00ah] ; 8e 46 f6 13401 13405 mov byte [es:di+00085h], dl ; 26 88 95 85 00 … … 13408 13412 mov dx, word [es:si] ; 26 8b 14 13409 13413 mov si, strict word 00010h ; be 10 00 13410 call 0a0 b0h ; e8 fd 1513414 call 0a0e0h ; e8 05 16 13411 13415 mov es, [bp-00ah] ; 8e 46 f6 13412 13416 mov byte [es:di+00086h], dl ; 26 88 95 86 00 … … 13420 13424 mov dx, word [es:si] ; 26 8b 14 13421 13425 mov si, strict word 00018h ; be 18 00 13422 call 0a0 b0h ; e8 d11513426 call 0a0e0h ; e8 d9 15 13423 13427 mov es, [bp-00ah] ; 8e 46 f6 13424 13428 mov byte [es:di+00088h], dl ; 26 88 95 88 00 … … 13431 13435 mov dx, word [es:si] ; 26 8b 14 13432 13436 mov si, strict word 00020h ; be 20 00 13433 call 0a0 b0h ; e8 ab1513437 call 0a0e0h ; e8 b3 15 13434 13438 mov es, [bp-00ah] ; 8e 46 f6 13435 13439 mov byte [es:di+00089h], dl ; 26 88 95 89 00 … … 13442 13446 mov dx, word [es:si] ; 26 8b 14 13443 13447 mov si, strict word 00028h ; be 28 00 13444 call 0a0 b0h ; e8 851513448 call 0a0e0h ; e8 8d 15 13445 13449 mov es, [bp-00ah] ; 8e 46 f6 13446 13450 mov byte [es:di+0008ah], dl ; 26 88 95 8a 00 … … 13455 13459 mov bx, word [bp-012h] ; 8b 5e ee 13456 13460 xor cx, cx ; 31 c9 13457 call 0a0 60h ; e8 031513461 call 0a090h ; e8 0b 15 13458 13462 push dx ; 52 13459 13463 push ax ; 50 … … 13465 13469 mov ax, 0026ah ; b8 6a 02 13466 13470 mov dx, word [bp-00ah] ; 8b 56 f6 13467 call 09f b4h ; e8 3b 1413471 call 09fdch ; e8 3b 14 13468 13472 mov es, [bp-00ah] ; 8e 46 f6 13469 13473 mov dx, word [es:di+0027eh] ; 26 8b 95 7e 02 … … 13489 13493 mov ax, word [es:bx+020h] ; 26 8b 47 20 13490 13494 test ax, ax ; 85 c0 13491 je short 08c 09h ; 74 3913495 je short 08c31h ; 74 39 13492 13496 dec ax ; 48 13493 13497 mov es, [bp-00ah] ; 8e 46 f6 … … 13507 13511 mov al, byte [bp-008h] ; 8a 46 f8 13508 13512 cmp AL, strict byte 035h ; 3c 35 13509 jne short 08c 16h ; 75 0613513 jne short 08c3eh ; 75 06 13510 13514 mov byte [bp-008h], 040h ; c6 46 f8 40 13511 jmp short 08c 2dh ; eb 1713515 jmp short 08c55h ; eb 17 13512 13516 cmp AL, strict byte 0a0h ; 3c a0 13513 jne short 08c 29h ; 75 0f13517 jne short 08c51h ; 75 0f 13514 13518 or byte [bp-008h], 020h ; 80 4e f8 20 13515 13519 les bx, [bp-00eh] ; c4 5e f2 13516 13520 or byte [es:bx+00083h], 001h ; 26 80 8f 83 00 01 13517 jmp short 08c 2dh ; eb 0413521 jmp short 08c55h ; eb 04 13518 13522 mov byte [bp-008h], 000h ; c6 46 f8 00 13519 13523 or byte [bp-008h], 005h ; 80 4e f8 05 … … 13522 13526 mov ax, word [bp-00eh] ; 8b 46 f2 13523 13527 mov dx, word [bp-00ch] ; 8b 56 f4 13524 call 088 b2h ; e8 73 fc13528 call 088dah ; e8 73 fc 13525 13529 mov cx, word [bp-00ch] ; 8b 4e f4 13526 13530 mov bx, word [bp-00eh] ; 8b 5e f2 … … 13529 13533 add ax, 0026ah ; 05 6a 02 13530 13534 mov dx, cx ; 89 ca 13531 call 0a0 2bh ; e8 d7 1313535 call 0a053h ; e8 d7 13 13532 13536 mov es, cx ; 8e c1 13533 13537 mov al, byte [es:bx+003h] ; 26 8a 47 03 13534 13538 test al, al ; 84 c0 13535 je short 08c 63h ; 74 0513539 je short 08c8bh ; 74 05 13536 13540 mov ax, strict word 00004h ; b8 04 00 13537 jmp short 08c 65h ; eb 0213541 jmp short 08c8dh ; eb 02 13538 13542 xor ah, ah ; 30 e4 13539 13543 lea sp, [bp-006h] ; 8d 66 fa … … 13543 13547 pop bp ; 5d 13544 13548 retn ; c3 13545 ahci_port_deinit_current_: ; 0xf8c 6dLB 0x18313549 ahci_port_deinit_current_: ; 0xf8c95 LB 0x183 13546 13550 push bp ; 55 13547 13551 mov bp, sp ; 89 e5 … … 13558 13562 mov byte [bp-00ah], al ; 88 46 f6 13559 13563 cmp AL, strict byte 0ffh ; 3c ff 13560 je short 08 cf0h ; 74 6113564 je short 08d18h ; 74 61 13561 13565 xor ah, ah ; 30 e4 13562 13566 mov CL, strict byte 007h ; b1 07 … … 13604 13608 xchg dx, ax ; 92 13605 13609 test ax, 0c011h ; a9 11 c0 13606 je short 08 cf3h ; 74 0713610 je short 08d1bh ; 74 07 13607 13611 mov AL, strict byte 001h ; b0 01 13608 jmp short 08 cf5h ; eb 0513609 jmp near 08 de7h ; e9 f4 0013612 jmp short 08d1dh ; eb 05 13613 jmp near 08e0fh ; e9 f4 00 13610 13614 xor al, al ; 30 c0 13611 13615 cmp AL, strict byte 001h ; 3c 01 13612 je short 08c c2h ; 74 c913616 je short 08ceah ; 74 c9 13613 13617 mov cx, strict word 00020h ; b9 20 00 13614 13618 xor bx, bx ; 31 db 13615 13619 mov ax, di ; 89 f8 13616 13620 mov dx, word [bp-00eh] ; 8b 56 f2 13617 call 0a 0d0h ; e8 ca1313621 call 0a100h ; e8 d2 13 13618 13622 lea ax, [di+00080h] ; 8d 85 80 00 13619 13623 mov cx, strict word 00040h ; b9 40 00 13620 13624 xor bx, bx ; 31 db 13621 13625 mov dx, word [bp-00eh] ; 8b 56 f2 13622 call 0a 0d0h ; e8 bb1313626 call 0a100h ; e8 c3 13 13623 13627 lea ax, [di+00200h] ; 8d 85 00 02 13624 13628 mov cx, strict word 00060h ; b9 60 00 13625 13629 xor bx, bx ; 31 db 13626 13630 mov dx, word [bp-00eh] ; 8b 56 f2 13627 call 0a 0d0h ; e8 ac1313631 call 0a100h ; e8 b4 13 13628 13632 mov al, byte [bp-00ah] ; 8a 46 f6 13629 13633 xor ah, ah ; 30 e4 … … 13731 13735 pop bp ; 5d 13732 13736 retn ; c3 13733 ahci_port_init_: ; 0xf8 df0LB 0x25013737 ahci_port_init_: ; 0xf8e18 LB 0x250 13734 13738 push bp ; 55 13735 13739 mov bp, sp ; 89 e5 … … 13741 13745 mov word [bp-00ah], dx ; 89 56 f6 13742 13746 mov byte [bp-008h], bl ; 88 5e f8 13743 call 08c 6dh ; e8 69 fe13747 call 08c95h ; e8 69 fe 13744 13748 mov al, bl ; 88 d8 13745 13749 xor ah, ah ; 30 e4 … … 13792 13796 xchg dx, ax ; 92 13793 13797 test ax, 0c011h ; a9 11 c0 13794 je short 08e 77h ; 74 0413798 je short 08e9fh ; 74 04 13795 13799 mov AL, strict byte 001h ; b0 01 13796 jmp short 08e 79h ; eb 0213800 jmp short 08ea1h ; eb 02 13797 13801 xor al, al ; 30 c0 13798 13802 cmp AL, strict byte 001h ; 3c 01 13799 je short 08e 41h ; 74 c413803 je short 08e69h ; 74 c4 13800 13804 mov cx, strict word 00020h ; b9 20 00 13801 13805 xor bx, bx ; 31 db 13802 13806 mov ax, si ; 89 f0 13803 13807 mov dx, word [bp-00ah] ; 8b 56 f6 13804 call 0a 0d0h ; e8 461213808 call 0a100h ; e8 4e 12 13805 13809 lea ax, [si+00080h] ; 8d 84 80 00 13806 13810 mov cx, strict word 00040h ; b9 40 00 13807 13811 xor bx, bx ; 31 db 13808 13812 mov dx, word [bp-00ah] ; 8b 56 f6 13809 call 0a 0d0h ; e8 371213813 call 0a100h ; e8 3f 12 13810 13814 lea di, [si+00200h] ; 8d bc 00 02 13811 13815 mov cx, strict word 00060h ; b9 60 00 … … 13813 13817 mov ax, di ; 89 f8 13814 13818 mov dx, word [bp-00ah] ; 8b 56 f6 13815 call 0a 0d0h ; e8 261213819 call 0a100h ; e8 2e 12 13816 13820 mov bl, byte [bp-008h] ; 8a 5e f8 13817 13821 xor bh, bh ; 30 ff … … 13832 13836 mov ax, di ; 89 f8 13833 13837 mov dx, word [bp-00ah] ; 8b 56 f6 13834 call 088 94h ; e8 bb f913838 call 088bch ; e8 bb f9 13835 13839 mov es, [bp-00ah] ; 8e 46 f6 13836 13840 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13877 13881 mov ax, si ; 89 f0 13878 13882 mov dx, word [bp-00ah] ; 8b 56 f6 13879 call 088 94h ; e8 4f f913883 call 088bch ; e8 4f f9 13880 13884 mov es, [bp-00ah] ; 8e 46 f6 13881 13885 mov di, word [es:si+00260h] ; 26 8b bc 60 02 … … 13982 13986 pop bp ; 5d 13983 13987 retn ; c3 13984 @ahci_read_sectors: ; 0xf90 40LB 0xaa13988 @ahci_read_sectors: ; 0xf9068 LB 0xaa 13985 13989 push bp ; 55 13986 13990 mov bp, sp ; 89 e5 … … 13993 13997 sub di, strict byte 0000ch ; 83 ef 0c 13994 13998 cmp di, strict byte 00004h ; 83 ff 04 13995 jbe short 090 6bh ; 76 1313999 jbe short 09093h ; 76 13 13996 14000 push di ; 57 13997 14001 mov ax, 00c62h ; b8 62 0c … … 14001 14005 mov ax, strict word 00007h ; b8 07 00 14002 14006 push ax ; 50 14003 call 01976h ; e8 0e 8914007 call 01976h ; e8 e6 88 14004 14008 add sp, strict byte 00008h ; 83 c4 08 14005 14009 xor bx, bx ; 31 db … … 14015 14019 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14016 14020 xor ax, ax ; 31 c0 14017 call 08 df0h ; e8 5a fd14021 call 08e18h ; e8 5a fd 14018 14022 mov bx, strict word 00025h ; bb 25 00 14019 14023 mov ax, si ; 89 f0 14020 14024 mov dx, word [bp+006h] ; 8b 56 06 14021 call 08a 0bh ; e8 6a f914025 call 08a33h ; e8 6a f9 14022 14026 mov bx, ax ; 89 c3 14023 14027 mov es, [bp+006h] ; 8e 46 06 … … 14049 14053 pop bp ; 5d 14050 14054 retn 00004h ; c2 04 00 14051 @ahci_write_sectors: ; 0xf9 0eaLB 0x8814055 @ahci_write_sectors: ; 0xf9112 LB 0x88 14052 14056 push bp ; 55 14053 14057 mov bp, sp ; 89 e5 … … 14061 14065 sub bx, strict byte 0000ch ; 83 eb 0c 14062 14066 cmp bx, strict byte 00004h ; 83 fb 04 14063 jbe short 091 18h ; 76 1314067 jbe short 09140h ; 76 13 14064 14068 push bx ; 53 14065 14069 mov ax, 00c93h ; b8 93 0c … … 14069 14073 mov ax, strict word 00007h ; b8 07 00 14070 14074 push ax ; 50 14071 call 01976h ; e8 618814075 call 01976h ; e8 39 88 14072 14076 add sp, strict byte 00008h ; 83 c4 08 14073 14077 xor di, di ; 31 ff … … 14083 14087 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14084 14088 xor ax, ax ; 31 c0 14085 call 08 df0h ; e8 af fc14089 call 08e18h ; e8 af fc 14086 14090 mov bx, strict word 00035h ; bb 35 00 14087 14091 mov ax, si ; 89 f0 14088 14092 mov dx, cx ; 89 ca 14089 call 08a 0bh ; e8 c0 f814093 call 08a33h ; e8 c0 f8 14090 14094 mov dx, ax ; 89 c2 14091 14095 mov es, cx ; 8e c1 … … 14102 14106 pop bp ; 5d 14103 14107 retn 00004h ; c2 04 00 14104 ahci_cmd_packet_: ; 0xf91 72LB 0x18c14108 ahci_cmd_packet_: ; 0xf919a LB 0x18c 14105 14109 push bp ; 55 14106 14110 mov bp, sp ; 89 e5 … … 14114 14118 mov dx, strict word 0000eh ; ba 0e 00 14115 14119 mov ax, strict word 00040h ; b8 40 00 14116 call 0166eh ; e8 e18414120 call 0166eh ; e8 b9 84 14117 14121 mov si, 00122h ; be 22 01 14118 14122 mov word [bp-008h], ax ; 89 46 f8 14119 14123 cmp byte [bp+00ah], 002h ; 80 7e 0a 02 14120 jne short 091 bch ; 75 2314124 jne short 091e4h ; 75 23 14121 14125 mov bx, 00da0h ; bb a0 0d 14122 14126 mov cx, ds ; 8c d9 14123 14127 mov ax, strict word 00004h ; b8 04 00 14124 call 01933h ; e8 8f8714128 call 01933h ; e8 67 87 14125 14129 mov ax, 00ca6h ; b8 a6 0c 14126 14130 push ax ; 50 … … 14129 14133 mov ax, strict word 00004h ; b8 04 00 14130 14134 push ax ; 50 14131 call 01976h ; e8 c38714135 call 01976h ; e8 9b 87 14132 14136 add sp, strict byte 00006h ; 83 c4 06 14133 14137 mov ax, strict word 00001h ; b8 01 00 14134 jmp near 09 2f5h ; e9 39 0114138 jmp near 0931dh ; e9 39 01 14135 14139 test byte [bp+004h], 001h ; f6 46 04 01 14136 jne short 091 b6h ; 75 f414140 jne short 091deh ; 75 f4 14137 14141 mov bx, word [bp+006h] ; 8b 5e 06 14138 14142 mov di, word [bp+008h] ; 8b 7e 08 … … 14140 14144 sal bx, 1 ; d1 e3 14141 14145 rcl di, 1 ; d1 d7 14142 loop 091 cbh ; e2 fa14146 loop 091f3h ; e2 fa 14143 14147 mov es, [bp-008h] ; 8e 46 f8 14144 14148 mov word [es:si], bx ; 26 89 1c … … 14154 14158 mov dx, word [bp+008h] ; 8b 56 08 14155 14159 xor cx, cx ; 31 c9 14156 call 0a0 80h ; e8 7c0e14160 call 0a0b0h ; e8 84 0e 14157 14161 mov word [es:si+00eh], ax ; 26 89 44 0e 14158 14162 xor di, di ; 31 ff … … 14172 14176 mov dx, word [es:si+00232h] ; 26 8b 94 32 02 14173 14177 xor ax, ax ; 31 c0 14174 call 08 df0h ; e8 af fb14178 call 08e18h ; e8 af fb 14175 14179 mov al, byte [bp-006h] ; 8a 46 fa 14176 14180 xor ah, ah ; 30 e4 … … 14180 14184 mov ax, 000c0h ; b8 c0 00 14181 14185 mov dx, word [bp-00ah] ; 8b 56 f6 14182 call 0a 0e0h ; e8 8a0e14186 call 0a110h ; e8 92 0e 14183 14187 mov es, [bp-008h] ; 8e 46 f8 14184 14188 mov word [es:si+018h], di ; 26 89 7c 18 … … 14187 14191 mov ax, word [es:si+01eh] ; 26 8b 44 1e 14188 14192 test ax, ax ; 85 c0 14189 je short 092 94h ; 74 2714193 je short 092bch ; 74 27 14190 14194 dec ax ; 48 14191 14195 mov es, [bp-00ah] ; 8e 46 f6 … … 14200 14204 mov ax, si ; 89 f0 14201 14205 mov dx, word [bp-008h] ; 8b 56 f8 14202 call 08a 0bh ; e8 6c f714206 call 08a33h ; e8 6c f7 14203 14207 les bx, [bp-00eh] ; c4 5e f2 14204 14208 mov dx, word [es:bx+004h] ; 26 8b 57 04 … … 14227 14231 mov ax, word [es:bx+006h] ; 26 8b 47 06 14228 14232 or ax, word [es:bx+004h] ; 26 0b 47 04 14229 jne short 09 2f3h ; 75 0514233 jne short 0931bh ; 75 05 14230 14234 mov ax, strict word 00004h ; b8 04 00 14231 jmp short 09 2f5h ; eb 0214235 jmp short 0931dh ; eb 02 14232 14236 xor ax, ax ; 31 c0 14233 14237 lea sp, [bp-004h] ; 8d 66 fc … … 14236 14240 pop bp ; 5d 14237 14241 retn 0000ch ; c2 0c 00 14238 ahci_port_detect_device_: ; 0xf9 2feLB 0x4fe14242 ahci_port_detect_device_: ; 0xf9326 LB 0x4fe 14239 14243 push bp ; 55 14240 14244 mov bp, sp ; 89 e5 … … 14252 14256 mov bx, word [bp-020h] ; 8b 5e e0 14253 14257 mov ax, si ; 89 f0 14254 call 08 df0h ; e8 ce fa14258 call 08e18h ; e8 ce fa 14255 14259 mov dx, strict word 0000eh ; ba 0e 00 14256 14260 mov ax, strict word 00040h ; b8 40 00 14257 call 0166eh ; e8 438314261 call 0166eh ; e8 1b 83 14258 14262 mov word [bp-01ah], 00122h ; c7 46 e6 22 01 14259 14263 mov word [bp-00eh], ax ; 89 46 f2 … … 14327 14331 mov bx, strict word 0000fh ; bb 0f 00 14328 14332 xor cx, cx ; 31 c9 14329 call 088 78h ; e8 9f f414333 call 088a0h ; e8 9f f4 14330 14334 test ax, ax ; 85 c0 14331 jne short 09 3e0h ; 75 0314332 jmp near 09 7f4h ; e9 14 0414335 jne short 09408h ; 75 03 14336 jmp near 0981ch ; e9 14 04 14333 14337 mov al, byte [bp-008h] ; 8a 46 f8 14334 14338 xor ah, ah ; 30 e4 … … 14362 14366 xor cx, cx ; 31 c9 14363 14367 mov ax, di ; 89 f8 14364 call 088 78h ; e8 4d f414368 call 088a0h ; e8 4d f4 14365 14369 cmp ax, strict word 00001h ; 3d 01 00 14366 je short 09 3e0h ; 74 b014370 je short 09408h ; 74 b0 14367 14371 xor ax, ax ; 31 c0 14368 14372 push ax ; 50 … … 14371 14375 mov ax, di ; 89 f8 14372 14376 mov dx, word [bp-01ch] ; 8b 56 e4 14373 call 088 78h ; e8 38 f414377 call 088a0h ; e8 38 f4 14374 14378 cmp ax, strict word 00003h ; 3d 03 00 14375 jne short 09 3ddh ; 75 9814379 jne short 09405h ; 75 98 14376 14380 mov ax, word [bp-016h] ; 8b 46 ea 14377 14381 add ax, 00130h ; 05 30 01 … … 14401 14405 mov byte [bp-00ch], al ; 88 46 f4 14402 14406 cmp AL, strict byte 004h ; 3c 04 14403 jc short 094 8fh ; 72 0314404 jmp near 09 7f4h ; e9 65 0314407 jc short 094b7h ; 72 03 14408 jmp near 0981ch ; e9 65 03 14405 14409 mov ax, word [bp-016h] ; 8b 46 ea 14406 14410 add ax, 00118h ; 05 18 01 … … 14454 14458 add cl, 00ch ; 80 c1 0c 14455 14459 test dx, dx ; 85 d2 14456 jne short 095 5ah ; 75 5514460 jne short 09582h ; 75 55 14457 14461 cmp bx, 00101h ; 81 fb 01 01 14458 jne short 095 5ah ; 75 4f14462 jne short 09582h ; 75 4f 14459 14463 mov es, [bp-00eh] ; 8e 46 f2 14460 14464 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14471 14475 mov ax, word [bp-01ah] ; 8b 46 e6 14472 14476 mov dx, es ; 8c c2 14473 call 08a 0bh ; e8 c0 f414477 call 08a33h ; e8 c0 f4 14474 14478 mov byte [bp-00ah], cl ; 88 4e f6 14475 14479 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14476 je short 095 5dh ; 74 0814480 je short 09585h ; 74 08 14477 14481 mov ax, strict word 00001h ; b8 01 00 14478 jmp short 095 5fh ; eb 0514479 jmp near 097 2fh ; e9 d2 0114482 jmp short 09587h ; eb 05 14483 jmp near 09757h ; e9 d2 01 14480 14484 xor ax, ax ; 31 c0 14481 14485 mov cl, al ; 88 c1 … … 14493 14497 mov word [bp-012h], ax ; 89 46 ee 14494 14498 cmp di, 00fffh ; 81 ff ff 0f 14495 jne short 095 aeh ; 75 1f14499 jne short 095d6h ; 75 1f 14496 14500 cmp word [bp-014h], strict byte 0ffffh ; 83 7e ec ff 14497 jne short 095 aeh ; 75 1914501 jne short 095d6h ; 75 19 14498 14502 mov ax, word [bp-0015ch] ; 8b 86 a4 fe 14499 14503 mov word [bp-012h], ax ; 89 46 ee … … 14535 14539 mov al, byte [bp-00ch] ; 8a 46 f4 14536 14540 cmp AL, strict byte 001h ; 3c 01 14537 jc short 096 2bh ; 72 0c14538 jbe short 096 33h ; 76 1214541 jc short 09653h ; 72 0c 14542 jbe short 0965bh ; 76 12 14539 14543 cmp AL, strict byte 003h ; 3c 03 14540 je short 096 3bh ; 74 1614544 je short 09663h ; 74 16 14541 14545 cmp AL, strict byte 002h ; 3c 02 14542 je short 096 37h ; 74 0e14543 jmp short 096 7eh ; eb 5314546 je short 0965fh ; 74 0e 14547 jmp short 096a6h ; eb 53 14544 14548 test al, al ; 84 c0 14545 jne short 096 7eh ; 75 4f14549 jne short 096a6h ; 75 4f 14546 14550 mov DL, strict byte 040h ; b2 40 14547 jmp short 096 3dh ; eb 0a14551 jmp short 09665h ; eb 0a 14548 14552 mov DL, strict byte 048h ; b2 48 14549 jmp short 096 3dh ; eb 0614553 jmp short 09665h ; eb 06 14550 14554 mov DL, strict byte 050h ; b2 50 14551 jmp short 096 3dh ; eb 0214555 jmp short 09665h ; eb 02 14552 14556 mov DL, strict byte 058h ; b2 58 14553 14557 mov bl, dl ; 88 d3 … … 14555 14559 xor bh, bh ; 30 ff 14556 14560 mov ax, bx ; 89 d8 14557 call 016aeh ; e8 658014561 call 016aeh ; e8 3d 80 14558 14562 test al, al ; 84 c0 14559 je short 096 7eh ; 74 3114563 je short 096a6h ; 74 31 14560 14564 mov al, dl ; 88 d0 14561 14565 db 0feh, 0c0h 14562 14566 ; inc al ; fe c0 14563 14567 xor ah, ah ; 30 e4 14564 call 016aeh ; e8 588014568 call 016aeh ; e8 30 80 14565 14569 mov ch, al ; 88 c5 14566 14570 mov al, dl ; 88 d0 14567 14571 xor ah, ah ; 30 e4 14568 call 016aeh ; e8 4f8014572 call 016aeh ; e8 27 80 14569 14573 mov ah, ch ; 88 ec 14570 14574 mov word [bp-028h], ax ; 89 46 d8 … … 14572 14576 add AL, strict byte 002h ; 04 02 14573 14577 xor ah, ah ; 30 e4 14574 call 016aeh ; e8 418014578 call 016aeh ; e8 19 80 14575 14579 xor ah, ah ; 30 e4 14576 14580 mov word [bp-02ah], ax ; 89 46 d6 14577 14581 mov ax, bx ; 89 d8 14578 call 016aeh ; e8 378014582 call 016aeh ; e8 0f 80 14579 14583 xor ah, ah ; 30 e4 14580 14584 mov word [bp-026h], ax ; 89 46 da 14581 jmp short 096 90h ; eb 1214585 jmp short 096b8h ; eb 12 14582 14586 push word [bp-012h] ; ff 76 ee 14583 14587 push word [bp-01eh] ; ff 76 e2 … … 14586 14590 mov dx, ss ; 8c d2 14587 14591 lea ax, [bp-02ah] ; 8d 46 d6 14588 call 05b 4fh ; e8 bf c414592 call 05b77h ; e8 bf c4 14589 14593 mov bx, 00da0h ; bb a0 0d 14590 14594 mov cx, ds ; 8c d9 14591 14595 mov ax, strict word 00004h ; b8 04 00 14592 call 01933h ; e8 988214596 call 01933h ; e8 70 82 14593 14597 push word [bp-012h] ; ff 76 ee 14594 14598 push word [bp-01eh] ; ff 76 e2 … … 14613 14617 mov ax, strict word 00004h ; b8 04 00 14614 14618 push ax ; 50 14615 call 01976h ; e8 a78214619 call 01976h ; e8 7f 82 14616 14620 add sp, strict byte 0001ch ; 83 c4 1c 14617 14621 mov al, byte [bp-00ah] ; 8a 46 f6 … … 14645 14649 mov dx, strict word 00075h ; ba 75 00 14646 14650 mov ax, strict word 00040h ; b8 40 00 14647 call 01652h ; e8 357f14651 call 01652h ; e8 0d 7f 14648 14652 mov bl, al ; 88 c3 14649 14653 db 0feh, 0c3h … … 14652 14656 mov dx, strict word 00075h ; ba 75 00 14653 14657 mov ax, strict word 00040h ; b8 40 00 14654 call 01660h ; e8 347f14655 jmp near 09 7e3h ; e9 b4 0014658 call 01660h ; e8 0c 7f 14659 jmp near 0980bh ; e9 b4 00 14656 14660 cmp dx, 0eb14h ; 81 fa 14 eb 14657 jne short 097 8ah ; 75 5514661 jne short 097b2h ; 75 55 14658 14662 cmp bx, 00101h ; 81 fb 01 01 14659 jne short 097 8ah ; 75 4f14663 jne short 097b2h ; 75 4f 14660 14664 mov es, [bp-00eh] ; 8e 46 f2 14661 14665 mov bx, word [bp-01ah] ; 8b 5e e6 … … 14672 14676 mov ax, word [bp-01ah] ; 8b 46 e6 14673 14677 mov dx, es ; 8c c2 14674 call 08a 0bh ; e8 90 f214678 call 08a33h ; e8 90 f2 14675 14679 mov byte [bp-00ah], cl ; 88 4e f6 14676 14680 test byte [bp-0022ah], 080h ; f6 86 d6 fd 80 14677 je short 097 8ch ; 74 0714681 je short 097b4h ; 74 07 14678 14682 mov cx, strict word 00001h ; b9 01 00 14679 jmp short 097 8eh ; eb 0414680 jmp short 09 7e3h ; eb 5714683 jmp short 097b6h ; eb 04 14684 jmp short 0980bh ; eb 57 14681 14685 xor cx, cx ; 31 c9 14682 14686 mov bl, byte [bp-00ch] ; 8a 5e f4 … … 14718 14722 pop bp ; 5d 14719 14723 retn ; c3 14720 ahci_mem_alloc_: ; 0xf9 7fcLB 0x4314724 ahci_mem_alloc_: ; 0xf9824 LB 0x43 14721 14725 push bp ; 55 14722 14726 mov bp, sp ; 89 e5 … … 14728 14732 mov dx, 00413h ; ba 13 04 14729 14733 xor ax, ax ; 31 c0 14730 call 0166eh ; e8 627e14734 call 0166eh ; e8 3a 7e 14731 14735 test ax, ax ; 85 c0 14732 je short 098 35h ; 74 2514736 je short 0985dh ; 74 25 14733 14737 dec ax ; 48 14734 14738 mov bx, ax ; 89 c3 … … 14737 14741 sal ax, 1 ; d1 e0 14738 14742 rcl dx, 1 ; d1 d2 14739 loop 098 18h ; e2 fa14743 loop 09840h ; e2 fa 14740 14744 mov si, ax ; 89 c6 14741 14745 mov di, dx ; 89 d7 … … 14743 14747 shr di, 1 ; d1 ef 14744 14748 rcr si, 1 ; d1 de 14745 loop 098 25h ; e2 fa14749 loop 0984dh ; e2 fa 14746 14750 mov dx, 00413h ; ba 13 04 14747 14751 xor ax, ax ; 31 c0 14748 call 0167ch ; e8 497e14752 call 0167ch ; e8 21 7e 14749 14753 mov ax, si ; 89 f0 14750 14754 lea sp, [bp-00ah] ; 8d 66 f6 … … 14756 14760 pop bp ; 5d 14757 14761 retn ; c3 14758 ahci_hba_init_: ; 0xf98 3fLB 0x16e14762 ahci_hba_init_: ; 0xf9867 LB 0x16e 14759 14763 push bp ; 55 14760 14764 mov bp, sp ; 89 e5 … … 14768 14772 mov dx, strict word 0000eh ; ba 0e 00 14769 14773 mov ax, strict word 00040h ; b8 40 00 14770 call 0166eh ; e8 19 7e14774 call 0166eh ; e8 f1 7d 14771 14775 mov bx, 00122h ; bb 22 01 14772 14776 mov di, ax ; 89 c7 … … 14785 14789 shr eax, 010h ; 66 c1 e8 10 14786 14790 xchg dx, ax ; 92 14787 call 09 7fch ; e8 83 ff14791 call 09824h ; e8 83 ff 14788 14792 mov word [bp-010h], ax ; 89 46 f0 14789 14793 test ax, ax ; 85 c0 14790 jne short 098 83h ; 75 0314791 jmp near 099 8ch ; e9 09 0114794 jne short 098abh ; 75 03 14795 jmp near 099b4h ; e9 09 01 14792 14796 mov ax, word [bp-010h] ; 8b 46 f0 14793 14797 mov es, di ; 8e c7 … … 14839 14843 xchg dx, ax ; 92 14840 14844 test AL, strict byte 001h ; a8 01 14841 jne short 09 8ddh ; 75 de14845 jne short 09905h ; 75 de 14842 14846 xor ax, ax ; 31 c0 14843 14847 xor cx, cx ; 31 c9 … … 14858 14862 mov bx, strict word 0001fh ; bb 1f 00 14859 14863 xor cx, cx ; 31 c9 14860 call 088 78h ; e8 54 ef14864 call 088a0h ; e8 54 ef 14861 14865 db 0feh, 0c0h 14862 14866 ; inc al ; fe c0 14863 14867 mov byte [bp-00eh], al ; 88 46 f2 14864 14868 mov byte [bp-00ch], 000h ; c6 46 f4 00 14865 jmp short 099 50h ; eb 2114869 jmp short 09978h ; eb 21 14866 14870 xor al, al ; 30 c0 14867 14871 test al, al ; 84 c0 14868 je short 099 47h ; 74 1214872 je short 0996fh ; 74 12 14869 14873 mov bl, byte [bp-00ch] ; 8a 5e f4 14870 14874 xor bh, bh ; 30 ff 14871 14875 xor ax, ax ; 31 c0 14872 14876 mov dx, word [bp-010h] ; 8b 56 f0 14873 call 09 2feh ; e8 bc f914877 call 09326h ; e8 bc f9 14874 14878 dec byte [bp-00eh] ; fe 4e f2 14875 je short 099 8ah ; 74 4314879 je short 099b2h ; 74 43 14876 14880 inc byte [bp-00ch] ; fe 46 f4 14877 14881 cmp byte [bp-00ch], 020h ; 80 7e f4 20 14878 jnc short 099 8ah ; 73 3a14882 jnc short 099b2h ; 73 3a 14879 14883 mov cl, byte [bp-00ch] ; 8a 4e f4 14880 14884 xor ch, ch ; 30 ed 14881 14885 mov bx, strict word 00001h ; bb 01 00 14882 14886 xor di, di ; 31 ff 14883 jcxz 099 62h ; e3 0614887 jcxz 0998ah ; e3 06 14884 14888 sal bx, 1 ; d1 e3 14885 14889 rcl di, 1 ; d1 d7 14886 loop 099 5ch ; e2 fa14890 loop 09984h ; e2 fa 14887 14891 mov ax, strict word 0000ch ; b8 0c 00 14888 14892 xor cx, cx ; 31 c9 … … 14900 14904 xchg dx, ax ; 92 14901 14905 test dx, di ; 85 fa 14902 jne short 099 86h ; 75 0414906 jne short 099aeh ; 75 04 14903 14907 test ax, bx ; 85 d8 14904 je short 099 2fh ; 74 a914908 je short 09957h ; 74 a9 14905 14909 mov AL, strict byte 001h ; b0 01 14906 jmp short 099 31h ; eb a714910 jmp short 09959h ; eb a7 14907 14911 xor ax, ax ; 31 c0 14908 14912 lea sp, [bp-00ah] ; 8d 66 f6 … … 14914 14918 pop bp ; 5d 14915 14919 retn ; c3 14916 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0 92h, 09ah, 070h, 09ah, 076h, 09ah, 07ch, 09ah, 082h14917 db 09ah, 0 88h, 09ah, 08eh, 09ah, 092h, 09ah14918 _ahci_init: ; 0xf99 adLB 0x11a14920 db 00bh, 005h, 004h, 003h, 002h, 001h, 000h, 0bah, 09ah, 098h, 09ah, 09eh, 09ah, 0a4h, 09ah, 0aah 14921 db 09ah, 0b0h, 09ah, 0b6h, 09ah, 0bah, 09ah 14922 _ahci_init: ; 0xf99d5 LB 0x11a 14919 14923 push bp ; 55 14920 14924 mov bp, sp ; 89 e5 … … 14923 14927 mov ax, 00601h ; b8 01 06 14924 14928 mov dx, strict word 00001h ; ba 01 00 14925 call 09 ee6h ; e8 29 0514929 call 09f0eh ; e8 29 05 14926 14930 mov dx, ax ; 89 c2 14927 14931 cmp ax, strict word 0ffffh ; 3d ff ff 14928 je short 09a 0dh ; 74 4914932 je short 09a35h ; 74 49 14929 14933 mov al, ah ; 88 e0 14930 14934 mov byte [bp-006h], ah ; 88 66 fa … … 14933 14937 xor ah, ah ; 30 e4 14934 14938 mov bx, strict word 00034h ; bb 34 00 14935 call 09 eeeh ; e8 18 0514939 call 09f16h ; e8 18 05 14936 14940 mov cl, al ; 88 c1 14937 14941 test cl, cl ; 84 c9 14938 je short 09a 10h ; 74 3414942 je short 09a38h ; 74 34 14939 14943 mov bl, cl ; 88 cb 14940 14944 xor bh, bh ; 30 ff … … 14947 14951 mov dx, word [bp-00ch] ; 8b 56 f4 14948 14952 mov ax, word [bp-010h] ; 8b 46 f0 14949 call 09 eeeh ; e8 f3 0414953 call 09f16h ; e8 f3 04 14950 14954 cmp AL, strict byte 012h ; 3c 12 14951 je short 09a 10h ; 74 1114955 je short 09a38h ; 74 11 14952 14956 mov bl, cl ; 88 cb 14953 14957 db 0feh, 0c3h … … 14956 14960 mov dx, word [bp-00ch] ; 8b 56 f4 14957 14961 mov ax, word [bp-010h] ; 8b 46 f0 14958 jmp short 099 d3h ; eb c614959 jmp near 09a c1h ; e9 b1 0014962 jmp short 099fbh ; eb c6 14963 jmp near 09ae9h ; e9 b1 00 14960 14964 test cl, cl ; 84 c9 14961 je short 09a 0dh ; 74 f914965 je short 09a35h ; 74 f9 14962 14966 add cl, 002h ; 80 c1 02 14963 14967 mov bl, cl ; 88 cb … … 14971 14975 mov dx, word [bp-00eh] ; 8b 56 f2 14972 14976 mov ax, word [bp-00ah] ; 8b 46 f6 14973 call 09 eeeh ; e8 b8 0414977 call 09f16h ; e8 b8 04 14974 14978 cmp AL, strict byte 010h ; 3c 10 14975 jne short 09a 0dh ; 75 d314979 jne short 09a35h ; 75 d3 14976 14980 mov byte [bp-004h], 000h ; c6 46 fc 00 14977 14981 mov bl, cl ; 88 cb … … 14980 14984 mov dx, word [bp-00eh] ; 8b 56 f2 14981 14985 mov ax, word [bp-00ah] ; 8b 46 f6 14982 call 09f 15h ; e8 c7 0414986 call 09f3dh ; e8 c7 04 14983 14987 mov dx, ax ; 89 c2 14984 14988 and ax, strict word 0000fh ; 25 0f 00 14985 14989 sub ax, strict word 00004h ; 2d 04 00 14986 14990 cmp ax, strict word 0000bh ; 3d 0b 00 14987 jnbe short 09a 92h ; 77 3714991 jnbe short 09abah ; 77 37 14988 14992 push CS ; 0e 14989 14993 pop ES ; 07 14990 14994 mov cx, strict word 00008h ; b9 08 00 14991 mov di, 099 96h ; bf 969914995 mov di, 099beh ; bf be 99 14992 14996 repne scasb ; f2 ae 14993 14997 sal cx, 1 ; d1 e1 14994 14998 mov di, cx ; 89 cf 14995 mov ax, word [cs:di-066 63h] ; 2e 8b 85 9d9914999 mov ax, word [cs:di-0663bh] ; 2e 8b 85 c5 99 14996 15000 jmp ax ; ff e0 14997 15001 mov byte [bp-004h], 010h ; c6 46 fc 10 14998 jmp short 09a 92h ; eb 1c15002 jmp short 09abah ; eb 1c 14999 15003 mov byte [bp-004h], 014h ; c6 46 fc 14 15000 jmp short 09a 92h ; eb 1615004 jmp short 09abah ; eb 16 15001 15005 mov byte [bp-004h], 018h ; c6 46 fc 18 15002 jmp short 09a 92h ; eb 1015006 jmp short 09abah ; eb 10 15003 15007 mov byte [bp-004h], 01ch ; c6 46 fc 1c 15004 jmp short 09a 92h ; eb 0a15008 jmp short 09abah ; eb 0a 15005 15009 mov byte [bp-004h], 020h ; c6 46 fc 20 15006 jmp short 09a 92h ; eb 0415010 jmp short 09abah ; eb 04 15007 15011 mov byte [bp-004h], 024h ; c6 46 fc 24 15008 15012 mov CL, strict byte 004h ; b1 04 … … 15014 15018 mov al, byte [bp-004h] ; 8a 46 fc 15015 15019 test al, al ; 84 c0 15016 je short 09a c1h ; 74 1c15020 je short 09ae9h ; 74 1c 15017 15021 mov bl, al ; 88 c3 15018 15022 xor bh, bh ; 30 ff … … 15021 15025 mov al, byte [bp-006h] ; 8a 46 fa 15022 15026 xor ah, ah ; 30 e4 15023 call 09f 3ah ; e8 84 0415027 call 09f62h ; e8 84 04 15024 15028 test AL, strict byte 001h ; a8 01 15025 je short 09a c1h ; 74 0715029 je short 09ae9h ; 74 07 15026 15030 and AL, strict byte 0f0h ; 24 f0 15027 15031 add ax, cx ; 01 c8 15028 call 098 3fh ; e8 7e fd15032 call 09867h ; e8 7e fd 15029 15033 lea sp, [bp-002h] ; 8d 66 fe 15030 15034 pop di ; 5f 15031 15035 pop bp ; 5d 15032 15036 retn ; c3 15033 apm_out_str_: ; 0xf9a c7LB 0x3915037 apm_out_str_: ; 0xf9aef LB 0x39 15034 15038 push bp ; 55 15035 15039 mov bp, sp ; 89 e5 … … 15037 15041 mov bx, ax ; 89 c3 15038 15042 cmp byte [bx], 000h ; 80 3f 00 15039 je short 09 adch ; 74 0a15043 je short 09b04h ; 74 0a 15040 15044 mov al, byte [bx] ; 8a 07 15041 15045 out DX, AL ; ee … … 15044 15048 db 00ah, 0c0h 15045 15049 ; or al, al ; 0a c0 15046 jne short 09a d4h ; 75 f815050 jne short 09afch ; 75 f8 15047 15051 lea sp, [bp-002h] ; 8d 66 fe 15048 15052 pop bx ; 5b 15049 15053 pop bp ; 5d 15050 15054 retn ; c3 15051 and word [bp+di-06454h], bx ; 21 9b ac 9b 15052 xor bx, word [bp+di-064b2h] ; 33 9b 4e 9b 15053 lodsb ; ac 15055 dec cx ; 49 15054 15056 wait ; 9b 15055 jns short 09a89h ; 799b15056 lodsb ; ac15057 aam 09bh ; d4 9b 15058 pop bx ; 5b 15057 15059 wait ; 9b 15058 mov DL, strict byte 09bh ; b2 9b 15059 jle short 09a8fh ; 7e 9b 15060 jle short 09a91h ; 7e 9b 15061 jle short 09a93h ; 7e 9b 15062 db 0f1h 15060 jbe short 09aadh ; 76 9b 15061 aam 09bh ; d4 9b 15062 mov ax, word [0d49bh] ; a1 9b d4 15063 15063 wait ; 9b 15064 jle short 09a97h ; 7e 9b 15065 jle short 09a99h ; 7e 9b 15066 db 0eah 15064 ficomp dword [bp+di-0645ah] ; da 9b a6 9b 15065 cmpsb ; a6 15067 15066 wait ; 9b 15068 _apm_function: ; 0xf9b00 LB 0xf6 15067 cmpsb ; a6 15068 wait ; 9b 15069 sbb word [si-0645ah], bx ; 19 9c a6 9b 15070 cmpsb ; a6 15071 wait ; 9b 15072 db 012h 15073 pushfw ; 9c 15074 _apm_function: ; 0xf9b28 LB 0xf6 15069 15075 push bp ; 55 15070 15076 mov bp, sp ; 89 e5 … … 15074 15080 xor ah, ah ; 30 e4 15075 15081 cmp ax, strict word 0000eh ; 3d 0e 00 15076 jnbe short 09b 7eh ; 77 6c15082 jnbe short 09ba6h ; 77 6c 15077 15083 mov bx, ax ; 89 c3 15078 15084 sal bx, 1 ; d1 e3 15079 15085 mov dx, word [bp+018h] ; 8b 56 18 15080 15086 or dl, 001h ; 80 ca 01 15081 jmp word [cs:bx-06 51eh] ; 2e ff a7 e2 9a15087 jmp word [cs:bx-064f6h] ; 2e ff a7 0a 9b 15082 15088 mov word [bp+012h], 00102h ; c7 46 12 02 01 15083 15089 mov word [bp+00ch], 0504dh ; c7 46 0c 4d 50 15084 15090 mov word [bp+010h], strict word 00003h ; c7 46 10 03 00 15085 jmp near 09b ach ; e9 79 0015091 jmp near 09bd4h ; e9 79 00 15086 15092 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15087 mov word [bp+00ch], 0a1 54h ; c7 46 0c 54 a115093 mov word [bp+00ch], 0a184h ; c7 46 0c 84 a1 15088 15094 mov word [bp+010h], 0f000h ; c7 46 10 00 f0 15089 15095 mov ax, strict word 0fff0h ; b8 f0 ff 15090 15096 mov word [bp+006h], ax ; 89 46 06 15091 15097 mov word [bp+004h], ax ; 89 46 04 15092 jmp near 09b ach ; e9 5e 0015098 jmp near 09bd4h ; e9 5e 00 15093 15099 mov word [bp+012h], 0f000h ; c7 46 12 00 f0 15094 15100 mov word [bp+00ch], 0da40h ; c7 46 0c 40 da … … 15103 15109 mov si, ax ; 89 c6 15104 15110 sal esi, 010h ; 66 c1 e6 10 15105 jmp near 09b ach ; e9 33 0015111 jmp near 09bd4h ; e9 33 00 15106 15112 sti ; fb 15107 15113 hlt ; f4 15108 jmp near 09b ach ; e9 2e 0015114 jmp near 09bd4h ; e9 2e 00 15109 15115 mov bx, 00da0h ; bb a0 0d 15110 15116 mov cx, ds ; 8c d9 15111 15117 mov ax, strict word 00004h ; b8 04 00 15112 call 01933h ; e8 aa7d15118 call 01933h ; e8 82 7d 15113 15119 push word [bp+00ch] ; ff 76 0c 15114 15120 push word [bp+012h] ; ff 76 12 … … 15117 15123 mov ax, strict word 00004h ; b8 04 00 15118 15124 push ax ; 50 15119 call 01976h ; e8 dc7d15125 call 01976h ; e8 b4 7d 15120 15126 add sp, strict byte 00008h ; 83 c4 08 15121 15127 mov ax, word [bp+012h] ; 8b 46 12 … … 15129 15135 retn ; c3 15130 15136 cmp word [bp+010h], strict byte 00003h ; 83 7e 10 03 15131 je short 09b d7h ; 74 1f15137 je short 09bffh ; 74 1f 15132 15138 cmp word [bp+010h], strict byte 00002h ; 83 7e 10 02 15133 je short 09b cfh ; 74 1115139 je short 09bf7h ; 74 11 15134 15140 cmp word [bp+010h], strict byte 00001h ; 83 7e 10 01 15135 jne short 09 bdfh ; 75 1b15141 jne short 09c07h ; 75 1b 15136 15142 mov dx, 0040fh ; ba 0f 04 15137 15143 mov ax, 00d10h ; b8 10 0d 15138 call 09a c7h ; e8 fa fe15139 jmp short 09b ach ; eb dd15144 call 09aefh ; e8 fa fe 15145 jmp short 09bd4h ; eb dd 15140 15146 mov dx, 0040fh ; ba 0f 04 15141 15147 mov ax, 00d18h ; b8 18 0d 15142 jmp short 09b cah ; eb f315148 jmp short 09bf2h ; eb f3 15143 15149 mov dx, 0040fh ; ba 0f 04 15144 15150 mov ax, 00d20h ; b8 20 0d 15145 jmp short 09b cah ; eb eb15151 jmp short 09bf2h ; eb eb 15146 15152 or ah, 00ah ; 80 cc 0a 15147 15153 mov word [bp+012h], ax ; 89 46 12 15148 15154 mov word [bp+018h], dx ; 89 56 18 15149 jmp short 09b ach ; eb c215155 jmp short 09bd4h ; eb c2 15150 15156 mov word [bp+012h], 00102h ; c7 46 12 02 01 15151 jmp short 09b ach ; eb bb15157 jmp short 09bd4h ; eb bb 15152 15158 or ah, 080h ; 80 cc 80 15153 jmp short 09 be2h ; eb ec15154 pci16_select_reg_: ; 0xf9 bf6LB 0x2415159 jmp short 09c0ah ; eb ec 15160 pci16_select_reg_: ; 0xf9c1e LB 0x24 15155 15161 push bp ; 55 15156 15162 mov bp, sp ; 89 e5 … … 15169 15175 pop bp ; 5d 15170 15176 retn ; c3 15171 pci16_find_device_: ; 0xf9c 1aLB 0xf715177 pci16_find_device_: ; 0xf9c42 LB 0xf7 15172 15178 push bp ; 55 15173 15179 mov bp, sp ; 89 e5 … … 15183 15189 mov byte [bp-006h], 000h ; c6 46 fa 00 15184 15190 test bl, 007h ; f6 c3 07 15185 jne short 09c 62h ; 75 2d15191 jne short 09c8ah ; 75 2d 15186 15192 mov dx, strict word 0000eh ; ba 0e 00 15187 15193 mov ax, bx ; 89 d8 15188 call 09 bf6h ; e8 b9 ff15194 call 09c1eh ; e8 b9 ff 15189 15195 mov dx, 00cfeh ; ba fe 0c 15190 15196 in AL, DX ; ec … … 15193 15199 mov byte [bp-008h], al ; 88 46 f8 15194 15200 cmp AL, strict byte 0ffh ; 3c ff 15195 jne short 09c 50h ; 75 0615201 jne short 09c78h ; 75 06 15196 15202 add bx, strict byte 00008h ; 83 c3 08 15197 jmp near 09 ce2h ; e9 92 0015203 jmp near 09d0ah ; e9 92 00 15198 15204 test byte [bp-008h], 080h ; f6 46 f8 80 15199 je short 09c 5dh ; 74 0715205 je short 09c85h ; 74 07 15200 15206 mov word [bp-00eh], strict word 00001h ; c7 46 f2 01 00 15201 jmp short 09c 62h ; eb 0515207 jmp short 09c8ah ; eb 05 15202 15208 mov word [bp-00eh], strict word 00008h ; c7 46 f2 08 00 15203 15209 mov al, byte [bp-008h] ; 8a 46 f8 15204 15210 and AL, strict byte 007h ; 24 07 15205 15211 cmp AL, strict byte 001h ; 3c 01 15206 jne short 09c 89h ; 75 1e15212 jne short 09cb1h ; 75 1e 15207 15213 mov al, bh ; 88 f8 15208 15214 xor ah, ah ; 30 e4 15209 15215 test ax, ax ; 85 c0 15210 jne short 09c 89h ; 75 1615216 jne short 09cb1h ; 75 16 15211 15217 mov dx, strict word 0001ah ; ba 1a 00 15212 15218 mov ax, bx ; 89 d8 15213 call 09 bf6h ; e8 7b ff15219 call 09c1eh ; e8 7b ff 15214 15220 mov dx, 00cfeh ; ba fe 0c 15215 15221 in AL, DX ; ec … … 15217 15223 ; sub ah, ah ; 2a e4 15218 15224 cmp al, byte [bp-006h] ; 3a 46 fa 15219 jbe short 09c 89h ; 76 0315225 jbe short 09cb1h ; 76 03 15220 15226 mov byte [bp-006h], al ; 88 46 fa 15221 15227 test di, di ; 85 ff 15222 je short 09c 92h ; 74 0515228 je short 09cbah ; 74 05 15223 15229 mov dx, strict word 00008h ; ba 08 00 15224 jmp short 09c 94h ; eb 0215230 jmp short 09cbch ; eb 02 15225 15231 xor dx, dx ; 31 d2 15226 15232 mov ax, bx ; 89 d8 15227 call 09 bf6h ; e8 5d ff15233 call 09c1eh ; e8 5d ff 15228 15234 mov dx, 00cfch ; ba fc 0c 15229 15235 in eax, DX ; 66 ed … … 15236 15242 mov word [bp-00ch], strict word 00000h ; c7 46 f4 00 00 15237 15243 test di, di ; 85 ff 15238 je short 09c c3h ; 74 0f15244 je short 09cebh ; 74 0f 15239 15245 mov cx, strict word 00008h ; b9 08 00 15240 15246 shr dx, 1 ; d1 ea 15241 15247 rcr ax, 1 ; d1 d8 15242 loop 09c b7h ; e2 fa15248 loop 09cdfh ; e2 fa 15243 15249 mov word [bp-00ah], ax ; 89 46 f6 15244 15250 mov word [bp-010h], dx ; 89 56 f0 15245 15251 mov ax, word [bp-010h] ; 8b 46 f0 15246 15252 cmp ax, word [bp-014h] ; 3b 46 ec 15247 jne short 09c d3h ; 75 0815253 jne short 09cfbh ; 75 08 15248 15254 mov ax, word [bp-00ah] ; 8b 46 f6 15249 15255 cmp ax, word [bp-012h] ; 3b 46 ee 15250 je short 09 cd9h ; 74 0615256 je short 09d01h ; 74 06 15251 15257 cmp word [bp-00ch], strict byte 00000h ; 83 7e f4 00 15252 je short 09 cdfh ; 74 0615258 je short 09d07h ; 74 06 15253 15259 dec si ; 4e 15254 15260 cmp si, strict byte 0ffffh ; 83 fe ff 15255 je short 09 cf2h ; 74 1315261 je short 09d1ah ; 74 13 15256 15262 add bx, word [bp-00eh] ; 03 5e f2 15257 15263 mov al, bh ; 88 f8 … … 15260 15266 xor dh, dh ; 30 f6 15261 15267 cmp ax, dx ; 39 d0 15262 jnbe short 09 cf2h ; 77 0315263 jmp near 09c 30h ; e9 3e ff15268 jnbe short 09d1ah ; 77 03 15269 jmp near 09c58h ; e9 3e ff 15264 15270 cmp si, strict byte 0ffffh ; 83 fe ff 15265 jne short 09 cfbh ; 75 0415271 jne short 09d23h ; 75 04 15266 15272 mov ax, bx ; 89 d8 15267 jmp short 09 cfeh ; eb 0315273 jmp short 09d26h ; eb 03 15268 15274 mov ax, strict word 0ffffh ; b8 ff ff 15269 15275 lea sp, [bp-004h] ; 8d 66 fc … … 15272 15278 pop bp ; 5d 15273 15279 retn ; c3 15274 db 0f2h, 09dh 15275 ; repne popfw ; f2 9d 15276 or bx, word [bp-061e3h] ; 0b 9e 1d 9e 15277 xor word [bp-061bdh], bx ; 31 9e 43 9e 15278 push si ; 56 15280 sbb bl, byte [bp-061cdh] ; 1a 9e 33 9e 15281 inc bp ; 45 15279 15282 sahf ; 9e 15280 _pci16_function: ; 0xf9d11 LB 0x1d5 15283 pop cx ; 59 15284 sahf ; 9e 15285 db 06bh 15286 sahf ; 9e 15287 jle short 09cd7h ; 7e 9e 15288 _pci16_function: ; 0xf9d39 LB 0x1d5 15281 15289 push bp ; 55 15282 15290 mov bp, sp ; 89 e5 … … 15292 15300 xor ah, ah ; 30 e4 15293 15301 cmp bx, strict byte 00003h ; 83 fb 03 15294 jc short 09d 43h ; 72 1315295 jbe short 09d 96h ; 76 6415302 jc short 09d6bh ; 72 13 15303 jbe short 09dbeh ; 76 64 15296 15304 cmp bx, strict byte 0000eh ; 83 fb 0e 15297 je short 09d 9eh ; 74 6715305 je short 09dc6h ; 74 67 15298 15306 cmp bx, strict byte 00008h ; 83 fb 08 15299 jc short 09d 4dh ; 72 1115307 jc short 09d75h ; 72 11 15300 15308 cmp bx, strict byte 0000dh ; 83 fb 0d 15301 jbe short 09d a1h ; 76 6015302 jmp short 09d 4dh ; eb 0a15309 jbe short 09dc9h ; 76 60 15310 jmp short 09d75h ; eb 0a 15303 15311 cmp bx, strict byte 00002h ; 83 fb 02 15304 je short 09d 6ch ; 74 2415312 je short 09d94h ; 74 24 15305 15313 cmp bx, strict byte 00001h ; 83 fb 01 15306 je short 09d 50h ; 74 0315307 jmp near 09e afh ; e9 5f 0115314 je short 09d78h ; 74 03 15315 jmp near 09ed7h ; e9 5f 01 15308 15316 mov word [bp+020h], strict word 00001h ; c7 46 20 01 00 15309 15317 mov word [bp+014h], 00210h ; c7 46 14 10 02 … … 15311 15319 mov word [bp+018h], 04350h ; c7 46 18 50 43 15312 15320 mov word [bp+01ah], 02049h ; c7 46 1a 49 20 15313 jmp near 09 edfh ; e9 73 0115321 jmp near 09f07h ; e9 73 01 15314 15322 cmp word [bp+018h], strict byte 0ffffh ; 83 7e 18 ff 15315 jne short 09d 78h ; 75 0615323 jne short 09da0h ; 75 06 15316 15324 or ah, 083h ; 80 cc 83 15317 jmp near 09 ed8h ; e9 60 0115325 jmp near 09f00h ; e9 60 01 15318 15326 mov bx, word [bp+008h] ; 8b 5e 08 15319 15327 mov dx, word [bp+01ch] ; 8b 56 1c 15320 15328 mov ax, word [bp+018h] ; 8b 46 18 15321 15329 xor cx, cx ; 31 c9 15322 call 09c 1ah ; e8 94 fe15330 call 09c42h ; e8 94 fe 15323 15331 cmp ax, strict word 0ffffh ; 3d ff ff 15324 jne short 09d 98h ; 75 0d15332 jne short 09dc0h ; 75 0d 15325 15333 mov ax, word [bp+020h] ; 8b 46 20 15326 15334 xor ah, ah ; 30 e4 15327 15335 or ah, 086h ; 80 cc 86 15328 jmp near 09 ed8h ; e9 42 0115329 jmp short 09d a3h ; eb 0b15336 jmp near 09f00h ; e9 42 01 15337 jmp short 09dcbh ; eb 0b 15330 15338 mov word [bp+014h], ax ; 89 46 14 15331 jmp near 09 edfh ; e9 41 0115332 jmp near 09e 6ah ; e9 c9 0015333 jmp short 09d c8h ; eb 2515339 jmp near 09f07h ; e9 41 01 15340 jmp near 09e92h ; e9 c9 00 15341 jmp short 09df0h ; eb 25 15334 15342 mov bx, word [bp+008h] ; 8b 5e 08 15335 15343 mov ax, word [bp+01ch] ; 8b 46 1c 15336 15344 mov dx, word [bp+01eh] ; 8b 56 1e 15337 15345 mov cx, strict word 00001h ; b9 01 00 15338 call 09c 1ah ; e8 68 fe15346 call 09c42h ; e8 68 fe 15339 15347 cmp ax, strict word 0ffffh ; 3d ff ff 15340 jne short 09d c2h ; 75 0b15348 jne short 09deah ; 75 0b 15341 15349 mov ax, word [bp+020h] ; 8b 46 20 15342 15350 xor ah, ah ; 30 e4 15343 15351 or ah, 086h ; 80 cc 86 15344 jmp near 09 ed8h ; e9 16 0115352 jmp near 09f00h ; e9 16 01 15345 15353 mov word [bp+014h], ax ; 89 46 14 15346 jmp near 09 edfh ; e9 17 0115354 jmp near 09f07h ; e9 17 01 15347 15355 cmp word [bp+004h], 00100h ; 81 7e 04 00 01 15348 jc short 09d d5h ; 72 0615356 jc short 09dfdh ; 72 06 15349 15357 or ah, 087h ; 80 cc 87 15350 jmp near 09 ed8h ; e9 03 0115358 jmp near 09f00h ; e9 03 01 15351 15359 mov dx, word [bp+004h] ; 8b 56 04 15352 15360 mov ax, word [bp+014h] ; 8b 46 14 15353 call 09 bf6h ; e8 18 fe15361 call 09c1eh ; e8 18 fe 15354 15362 mov bx, word [bp+020h] ; 8b 5e 20 15355 15363 xor bh, bh ; 30 ff 15356 15364 sub bx, strict byte 00008h ; 83 eb 08 15357 15365 cmp bx, strict byte 00005h ; 83 fb 05 15358 jnbe short 09e 53h ; 77 6815366 jnbe short 09e7bh ; 77 68 15359 15367 sal bx, 1 ; d1 e3 15360 jmp word [cs:bx-062 fbh] ; 2e ff a7 059d15368 jmp word [cs:bx-062d3h] ; 2e ff a7 2d 9d 15361 15369 mov bx, word [bp+01ch] ; 8b 5e 1c 15362 15370 xor bl, bl ; 30 db … … 15369 15377 or bx, ax ; 09 c3 15370 15378 mov word [bp+01ch], bx ; 89 5e 1c 15371 jmp short 09e 53h ; eb 4815379 jmp short 09e7bh ; eb 48 15372 15380 mov dx, word [bp+004h] ; 8b 56 04 15373 15381 xor dh, dh ; 30 f6 … … 15376 15384 in ax, DX ; ed 15377 15385 mov word [bp+01ch], ax ; 89 46 1c 15378 jmp short 09e 53h ; eb 3615386 jmp short 09e7bh ; eb 36 15379 15387 mov dx, 00cfch ; ba fc 0c 15380 15388 in eax, DX ; 66 ed … … 15385 15393 mov word [bp+01ch], ax ; 89 46 1c 15386 15394 mov word [bp+01eh], dx ; 89 56 1e 15387 jmp short 09e 53h ; eb 2215395 jmp short 09e7bh ; eb 22 15388 15396 mov ax, word [bp+01ch] ; 8b 46 1c 15389 15397 mov dx, word [bp+004h] ; 8b 56 04 … … 15392 15400 add dx, 00cfch ; 81 c2 fc 0c 15393 15401 out DX, AL ; ee 15394 jmp short 09e 53h ; eb 1015402 jmp short 09e7bh ; eb 10 15395 15403 mov ax, word [bp+01ch] ; 8b 46 1c 15396 15404 mov dx, word [bp+004h] ; 8b 56 04 … … 15399 15407 add dx, 00cfch ; 81 c2 fc 0c 15400 15408 out DX, ax ; ef 15401 jmp near 09 edfh ; e9 89 0015409 jmp near 09f07h ; e9 89 00 15402 15410 mov ax, word [bp+01ch] ; 8b 46 1c 15403 15411 mov cx, word [bp+01eh] ; 8b 4e 1e … … 15408 15416 ; mov ax, cx ; 8b c1 15409 15417 out DX, eax ; 66 ef 15410 jmp short 09 edfh ; eb 7515418 jmp short 09f07h ; eb 75 15411 15419 mov bx, word [bp+004h] ; 8b 5e 04 15412 15420 mov es, [bp+026h] ; 8e 46 26 … … 15415 15423 mov cx, word [0f4a0h] ; 8b 0e a0 f4 15416 15424 cmp cx, word [es:bx] ; 26 3b 0f 15417 jbe short 09e 90h ; 76 1115425 jbe short 09eb8h ; 76 11 15418 15426 mov ax, word [bp+020h] ; 8b 46 20 15419 15427 xor ah, ah ; 30 e4 … … 15421 15429 mov word [bp+020h], ax ; 89 46 20 15422 15430 or word [bp+02ch], strict byte 00001h ; 83 4e 2c 01 15423 jmp short 09e a4h ; eb 1415431 jmp short 09ecch ; eb 14 15424 15432 les di, [es:bx+002h] ; 26 c4 7f 02 15425 15433 mov si, 0f2c0h ; be c0 f2 … … 15433 15441 les bx, [bp-008h] ; c4 5e f8 15434 15442 mov word [es:bx], ax ; 26 89 07 15435 jmp short 09 edfh ; eb 3015443 jmp short 09f07h ; eb 30 15436 15444 mov bx, 00da0h ; bb a0 0d 15437 15445 mov cx, ds ; 8c d9 15438 15446 mov ax, strict word 00004h ; b8 04 00 15439 call 01933h ; e8 797a15447 call 01933h ; e8 51 7a 15440 15448 mov ax, word [bp+014h] ; 8b 46 14 15441 15449 push ax ; 50 … … 15446 15454 mov ax, strict word 00004h ; b8 04 00 15447 15455 push ax ; 50 15448 call 01976h ; e8 a97a15456 call 01976h ; e8 81 7a 15449 15457 add sp, strict byte 00008h ; 83 c4 08 15450 15458 mov ax, word [bp+020h] ; 8b 46 20 … … 15458 15466 pop bp ; 5d 15459 15467 retn ; c3 15460 pci_find_classcode_: ; 0xf9 ee6LB 0x815468 pci_find_classcode_: ; 0xf9f0e LB 0x8 15461 15469 push bp ; 55 15462 15470 mov bp, sp ; 89 e5 … … 15464 15472 pop bp ; 5d 15465 15473 retn ; c3 15466 pci_read_config_byte_: ; 0xf9 eeeLB 0x2715474 pci_read_config_byte_: ; 0xf9f16 LB 0x27 15467 15475 push bp ; 55 15468 15476 mov bp, sp ; 89 e5 … … 15487 15495 pop bp ; 5d 15488 15496 retn ; c3 15489 pci_read_config_word_: ; 0xf9f 15LB 0x2515497 pci_read_config_word_: ; 0xf9f3d LB 0x25 15490 15498 push bp ; 55 15491 15499 mov bp, sp ; 89 e5 … … 15509 15517 pop bp ; 5d 15510 15518 retn ; c3 15511 pci_read_config_dword_: ; 0xf9f 3aLB 0x3f15519 pci_read_config_dword_: ; 0xf9f62 LB 0x3f 15512 15520 push bp ; 55 15513 15521 mov bp, sp ; 89 e5 … … 15524 15532 int 01ah ; cd 1a 15525 15533 test cx, cx ; 85 c9 15526 jne short 09f 6ah ; 75 1415534 jne short 09f92h ; 75 14 15527 15535 mov al, byte [bp-006h] ; 8a 46 fa 15528 15536 xor ah, ah ; 30 e4 … … 15534 15542 int 01ah ; cd 1a 15535 15543 test cx, cx ; 85 c9 15536 je short 09f 6fh ; 74 0515544 je short 09f97h ; 74 05 15537 15545 mov ax, strict word 00001h ; b8 01 00 15538 jmp short 09f 71h ; eb 0215546 jmp short 09f99h ; eb 02 15539 15547 xor ax, ax ; 31 c0 15540 15548 cwd ; 99 … … 15544 15552 pop bp ; 5d 15545 15553 retn ; c3 15546 vds_is_present_: ; 0xf9f 79LB 0x1d15554 vds_is_present_: ; 0xf9fa1 LB 0x1d 15547 15555 push bx ; 53 15548 15556 push bp ; 55 … … 15552 15560 mov es, ax ; 8e c0 15553 15561 test byte [es:bx], 020h ; 26 f6 07 20 15554 je short 09f 91h ; 74 0615562 je short 09fb9h ; 74 06 15555 15563 mov ax, strict word 00001h ; b8 01 00 15556 15564 pop bp ; 5d … … 15561 15569 pop bx ; 5b 15562 15570 retn ; c3 15563 vds_real_to_lin_: ; 0xf9f 96LB 0x1e15571 vds_real_to_lin_: ; 0xf9fbe LB 0x1e 15564 15572 push bx ; 53 15565 15573 push cx ; 51 … … 15572 15580 sal ax, 1 ; d1 e0 15573 15581 rcl dx, 1 ; d1 d2 15574 loop 09f a4h ; e2 fa15582 loop 09fcch ; e2 fa 15575 15583 xor cx, cx ; 31 c9 15576 15584 add ax, bx ; 01 d8 … … 15580 15588 pop bx ; 5b 15581 15589 retn ; c3 15582 vds_build_sg_list_: ; 0xf9f b4LB 0x7715590 vds_build_sg_list_: ; 0xf9fdc LB 0x77 15583 15591 push bp ; 55 15584 15592 mov bp, sp ; 89 e5 … … 15594 15602 mov bx, word [bp+006h] ; 8b 5e 06 15595 15603 mov word [es:di+002h], bx ; 26 89 5d 02 15596 call 09f 96h ; e8 c3 ff15604 call 09fbeh ; e8 c3 ff 15597 15605 mov es, si ; 8e c6 15598 15606 mov word [es:di+004h], ax ; 26 89 45 04 15599 15607 mov word [es:di+006h], dx ; 26 89 55 06 15600 15608 mov word [es:di+008h], strict word 00000h ; 26 c7 45 08 00 00 15601 call 09f 79h ; e8 93 ff15609 call 09fa1h ; e8 93 ff 15602 15610 test ax, ax ; 85 c0 15603 je short 0 9ffbh ; 74 1115611 je short 0a023h ; 74 11 15604 15612 mov es, si ; 8e c6 15605 15613 mov ax, 08105h ; b8 05 81 15606 15614 mov dx, strict word 00000h ; ba 00 00 15607 15615 int 04bh ; cd 4b 15608 jc short 0 9ff8h ; 72 0215616 jc short 0a020h ; 72 02 15609 15617 db 032h, 0c0h 15610 15618 ; xor al, al ; 32 c0 15611 15619 cbw ; 98 15612 jmp short 0a0 22h ; eb 2715620 jmp short 0a04ah ; eb 27 15613 15621 mov es, si ; 8e c6 15614 15622 mov word [es:di+00eh], strict word 00001h ; 26 c7 45 0e 01 00 … … 15627 15635 pop bp ; 5d 15628 15636 retn 00004h ; c2 04 00 15629 vds_free_sg_list_: ; 0xfa0 2b LB 0x3515637 vds_free_sg_list_: ; 0xfa053 LB 0x3d 15630 15638 push bp ; 55 15631 15639 mov bp, sp ; 89 e5 … … 15633 15641 push di ; 57 15634 15642 mov bx, ax ; 89 c3 15635 call 09f 79h ; e8 44 ff15643 call 09fa1h ; e8 44 ff 15636 15644 test ax, ax ; 85 c0 15637 je short 0a0 4ah ; 74 1115645 je short 0a072h ; 74 11 15638 15646 mov di, bx ; 89 df 15639 15647 mov es, dx ; 8e c2 … … 15641 15649 mov dx, strict word 00000h ; ba 00 00 15642 15650 int 04bh ; cd 4b 15643 jc short 0a0 49h ; 72 0215651 jc short 0a071h ; 72 02 15644 15652 db 032h, 0c0h 15645 15653 ; xor al, al ; 32 c0 … … 15652 15660 pop bp ; 5d 15653 15661 retn ; c3 15654 times 0x 7db 015655 __U4M: ; 0xfa0 60 LB 0x2015662 times 0xf db 0 15663 __U4M: ; 0xfa090 LB 0x20 15656 15664 pushfw ; 9c 15657 15665 push si ; 56 … … 15680 15688 retn ; c3 15681 15689 times 0x4 db 0 15682 __U4D: ; 0xfa0 80 LB 0x3015690 __U4D: ; 0xfa0b0 LB 0x30 15683 15691 pushfw ; 9c 15684 15692 push DS ; 1e … … 15695 15703 push dx ; 52 15696 15704 push ax ; 50 15697 call 0a1 65h ; e8 d0 0015705 call 0a195h ; e8 d0 00 15698 15706 mov cx, word [bp-002h] ; 8b 4e fe 15699 15707 mov bx, word [bp-004h] ; 8b 5e fc … … 15706 15714 retn ; c3 15707 15715 times 0xe db 0 15708 __U8RS: ; 0xfa0 b0 LB 0x1015716 __U8RS: ; 0xfa0e0 LB 0x10 15709 15717 test si, si ; 85 f6 15710 je short 0a0 bfh ; 74 0b15718 je short 0a0efh ; 74 0b 15711 15719 shr ax, 1 ; d1 e8 15712 15720 rcr bx, 1 ; d1 db … … 15714 15722 rcr dx, 1 ; d1 da 15715 15723 dec si ; 4e 15716 jne short 0a0 b4h ; 75 f515724 jne short 0a0e4h ; 75 f5 15717 15725 retn ; c3 15718 __U8LS: ; 0xfa0 c0 LB 0x1015726 __U8LS: ; 0xfa0f0 LB 0x10 15719 15727 test si, si ; 85 f6 15720 je short 0a0 cfh ; 74 0b15728 je short 0a0ffh ; 74 0b 15721 15729 sal dx, 1 ; d1 e2 15722 15730 rcl cx, 1 ; d1 d1 … … 15724 15732 rcl ax, 1 ; d1 d0 15725 15733 dec si ; 4e 15726 jne short 0a0 c4h ; 75 f515734 jne short 0a0f4h ; 75 f5 15727 15735 retn ; c3 15728 _fmemset_: ; 0xfa 0d0 LB 0x1015736 _fmemset_: ; 0xfa100 LB 0x10 15729 15737 push di ; 57 15730 15738 mov es, dx ; 8e c2 … … 15737 15745 retn ; c3 15738 15746 times 0x3 db 0 15739 _fmemcpy_: ; 0xfa 0e0 LB 0x3a15747 _fmemcpy_: ; 0xfa110 LB 0x3a 15740 15748 push bp ; 55 15741 15749 db 08bh, 0ech … … 15762 15770 add byte [bx+si], al ; 00 00 15763 15771 add byte [bx+si], al ; 00 00 15764 xor byte [bx+di-05eceh], ah ; 30 a1 32 a1 15765 mov ax, word [ss:0a136h] ; 36 a1 36 a1 15766 mov ax, word [ss:0a138h] ; 36 a1 38 a1 15767 cmp byte [bx+di-05ec6h], ah ; 38 a1 3a a1 15768 mov ax, word [ds:0a13eh] ; 3e a1 3e a1 15769 inc ax ; 40 15770 mov ax, word [0a145h] ; a1 45 a1 15771 inc di ; 47 15772 db 0a1h 15773 apm_worker: ; 0xfa11a LB 0x3a 15772 pushaw ; 60 15773 mov ax, word [0a162h] ; a1 62 a1 15774 mov eax, dword [0a166h] ; 66 a1 66 a1 15775 mov eax, dword [0a168h] ; 66 a1 68 a1 15776 push 06aa1h ; 68 a1 6a 15777 mov ax, word [0a16eh] ; a1 6e a1 15778 outsb ; 6e 15779 mov ax, word [0a170h] ; a1 70 a1 15780 jne short 0a0e9h ; 75 a1 15781 jnbe short 0a0ebh ; 77 a1 15782 apm_worker: ; 0xfa14a LB 0x3a 15774 15783 sti ; fb 15775 15784 push ax ; 50 … … 15783 15792 pop ax ; 58 15784 15793 mov AH, strict byte 053h ; b4 53 15785 jnc short 0a1 50h ; 73 2515786 jmp word [cs:bp-05 f00h] ; 2e ff a6 00 a115787 jmp short 0a1 4eh ; eb 1c15794 jnc short 0a180h ; 73 25 15795 jmp word [cs:bp-05ed0h] ; 2e ff a6 30 a1 15796 jmp short 0a17eh ; eb 1c 15788 15797 sti ; fb 15789 15798 hlt ; f4 15790 jmp short 0a1 4eh ; eb 1815791 jmp short 0a1 4eh ; eb 1615792 jmp short 0a1 50h ; eb 1615799 jmp short 0a17eh ; eb 18 15800 jmp short 0a17eh ; eb 16 15801 jmp short 0a180h ; eb 16 15793 15802 mov AH, strict byte 080h ; b4 80 15794 jmp short 0a1 52h ; eb 1415795 jmp short 0a1 50h ; eb 1015803 jmp short 0a182h ; eb 14 15804 jmp short 0a180h ; eb 10 15796 15805 mov ax, 00102h ; b8 02 01 15797 jmp short 0a1 4eh ; eb 0915798 jmp short 0a1 4eh ; eb 0715806 jmp short 0a17eh ; eb 09 15807 jmp short 0a17eh ; eb 07 15799 15808 mov BL, strict byte 000h ; b3 00 15800 15809 mov cx, strict word 00000h ; b9 00 00 15801 jmp short 0a1 4eh ; eb 0015810 jmp short 0a17eh ; eb 00 15802 15811 clc ; f8 15803 15812 retn ; c3 … … 15805 15814 stc ; f9 15806 15815 retn ; c3 15807 apm_pm16_entry: ; 0xfa1 54 LB 0x1115816 apm_pm16_entry: ; 0xfa184 LB 0x11 15808 15817 mov AH, strict byte 002h ; b4 02 15809 15818 push DS ; 1e … … 15813 15822 add bp, strict byte 00008h ; 83 c5 08 15814 15823 mov ds, bp ; 8e dd 15815 call 0a1 1ah ; e8 b8 ff15824 call 0a14ah ; e8 b8 ff 15816 15825 pop bp ; 5d 15817 15826 pop DS ; 1f 15818 15827 retf ; cb 15819 _DoUInt32Div: ; 0xfa1 65 LB 0x26b15828 _DoUInt32Div: ; 0xfa195 LB 0x26b 15820 15829 push bp ; 55 15821 15830 mov bp, sp ; 89 e5 … … 15835 15844 mov [bp-006h], ds ; 8c 5e fa 15836 15845 cmp word [bx+002h], strict byte 00000h ; 83 7f 02 00 15837 jne short 0a1 b5h ; 75 2215846 jne short 0a1e5h ; 75 22 15838 15847 mov ax, word [bx] ; 8b 07 15839 15848 test ax, ax ; 85 c0 15840 je short 0a1 b2h ; 74 1915849 je short 0a1e2h ; 74 19 15841 15850 cmp ax, strict word 00001h ; 3d 01 00 15842 jne short 0a1 b5h ; 75 1715851 jne short 0a1e5h ; 75 17 15843 15852 xor ax, ax ; 31 c0 15844 15853 mov word [bp+00ah], ax ; 89 46 0a … … 15848 15857 mov ax, word [bp-01ah] ; 8b 46 e6 15849 15858 mov word [bp+006h], ax ; 89 46 06 15850 jmp near 0a3 bdh ; e9 08 0215859 jmp near 0a3edh ; e9 08 02 15851 15860 lds bx, [bp-00ch] ; c5 5e f4 15852 15861 mov ax, word [bx+002h] ; 8b 47 02 15853 15862 mov ds, [bp-006h] ; 8e 5e fa 15854 15863 cmp ax, word [si+002h] ; 3b 44 02 15855 je short 0a 1dbh ; 74 1815864 je short 0a20bh ; 74 18 15856 15865 mov ds, [bp-00ah] ; 8e 5e f6 15857 15866 mov ax, word [bx+002h] ; 8b 47 02 15858 15867 mov ds, [bp-006h] ; 8e 5e fa 15859 15868 cmp ax, word [si+002h] ; 3b 44 02 15860 jbe short 0a 1d6h ; 76 0515869 jbe short 0a206h ; 76 05 15861 15870 mov ax, strict word 00001h ; b8 01 00 15862 jmp short 0a 1fch ; eb 2615871 jmp short 0a22ch ; eb 26 15863 15872 mov ax, strict word 0ffffh ; b8 ff ff 15864 jmp short 0a 1fch ; eb 2115873 jmp short 0a22ch ; eb 21 15865 15874 mov ds, [bp-00ah] ; 8e 5e f6 15866 15875 mov ax, word [bx] ; 8b 07 15867 15876 mov ds, [bp-006h] ; 8e 5e fa 15868 15877 cmp ax, word [si] ; 3b 04 15869 je short 0a 1fah ; 74 1315878 je short 0a22ah ; 74 13 15870 15879 mov ds, [bp-00ah] ; 8e 5e f6 15871 15880 mov ax, word [bx] ; 8b 07 15872 15881 mov ds, [bp-006h] ; 8e 5e fa 15873 15882 cmp ax, word [si] ; 3b 04 15874 jbe short 0a 1f5h ; 76 0215875 jmp short 0a 1d1h ; eb dc15883 jbe short 0a225h ; 76 02 15884 jmp short 0a201h ; eb dc 15876 15885 mov ax, strict word 0ffffh ; b8 ff ff 15877 jmp short 0a 1fch ; eb 0215886 jmp short 0a22ch ; eb 02 15878 15887 xor ax, ax ; 31 c0 15879 15888 test ax, ax ; 85 c0 15880 jnl short 0a2 1eh ; 7d 1e15889 jnl short 0a24eh ; 7d 1e 15881 15890 lds bx, [bp-00ch] ; c5 5e f4 15882 15891 mov ax, word [bx] ; 8b 07 … … 15888 15897 mov word [bx+002h], strict word 00000h ; c7 47 02 00 00 15889 15898 mov word [bx], strict word 00000h ; c7 07 00 00 15890 jmp short 0a1 b2h ; eb 9415891 jne short 0a2 35h ; 75 1515899 jmp short 0a1e2h ; eb 94 15900 jne short 0a265h ; 75 15 15892 15901 mov ds, [bp-008h] ; 8e 5e f8 15893 15902 mov word [di+002h], ax ; 89 45 02 … … 15896 15905 mov word [bx], strict word 00001h ; c7 07 01 00 15897 15906 mov word [bx+002h], ax ; 89 47 02 15898 jmp near 0a3 bdh ; e9 88 0115907 jmp near 0a3edh ; e9 88 01 15899 15908 lds bx, [bp-00ch] ; c5 5e f4 15900 15909 mov ax, word [bx+002h] ; 8b 47 02 15901 15910 test ax, ax ; 85 c0 15902 je short 0a2 50h ; 74 1115911 je short 0a280h ; 74 11 15903 15912 push ax ; 50 15904 15913 mov ax, 0f000h ; b8 00 f0 15905 15914 mov ds, ax ; 8e d8 15906 call 0a 3d0h ; e8 88 0115915 call 0a400h ; e8 88 01 15907 15916 add sp, strict byte 00002h ; 83 c4 02 15908 15917 add ax, strict word 00010h ; 05 10 00 15909 jmp short 0a2 5dh ; eb 0d15918 jmp short 0a28dh ; eb 0d 15910 15919 push word [bx] ; ff 37 15911 15920 mov ax, 0f000h ; b8 00 f0 15912 15921 mov ds, ax ; 8e d8 15913 call 0a 3d0h ; e8 76 0115922 call 0a400h ; e8 76 01 15914 15923 add sp, strict byte 00002h ; 83 c4 02 15915 15924 mov word [bp-014h], ax ; 89 46 ec … … 15917 15926 mov ax, word [si+002h] ; 8b 44 02 15918 15927 test ax, ax ; 85 c0 15919 je short 0a2 7bh ; 74 1115928 je short 0a2abh ; 74 11 15920 15929 push ax ; 50 15921 15930 mov ax, 0f000h ; b8 00 f0 15922 15931 mov ds, ax ; 8e d8 15923 call 0a 3d0h ; e8 5d 0115932 call 0a400h ; e8 5d 01 15924 15933 add sp, strict byte 00002h ; 83 c4 02 15925 15934 add ax, strict word 00010h ; 05 10 00 15926 jmp short 0a2 88h ; eb 0d15935 jmp short 0a2b8h ; eb 0d 15927 15936 push word [si] ; ff 34 15928 15937 mov ax, 0f000h ; b8 00 f0 15929 15938 mov ds, ax ; 8e d8 15930 call 0a 3d0h ; e8 4b 0115939 call 0a400h ; e8 4b 01 15931 15940 add sp, strict byte 00002h ; 83 c4 02 15932 15941 mov dx, word [bp-014h] ; 8b 56 ec … … 15939 15948 mov word [bp-016h], ax ; 89 46 ea 15940 15949 test dx, dx ; 85 d2 15941 je short 0a 2f8h ; 74 5615950 je short 0a328h ; 74 56 15942 15951 mov cx, dx ; 89 d1 15943 15952 xor ch, dh ; 30 f5 … … 15945 15954 mov ax, word [si] ; 8b 04 15946 15955 mov dx, word [si+002h] ; 8b 54 02 15947 jcxz 0a2 b6h ; e3 0615956 jcxz 0a2e6h ; e3 06 15948 15957 sal ax, 1 ; d1 e0 15949 15958 rcl dx, 1 ; d1 d2 15950 loop 0a2 b0h ; e2 fa15959 loop 0a2e0h ; e2 fa 15951 15960 mov word [bp-018h], ax ; 89 46 e8 15952 15961 mov word [bp-016h], dx ; 89 56 ea … … 15954 15963 lds bx, [bp-00ch] ; c5 5e f4 15955 15964 cmp ax, word [bx+002h] ; 3b 47 02 15956 jnbe short 0a 2d6h ; 77 0f15965 jnbe short 0a306h ; 77 0f 15957 15966 mov ax, word [bp-016h] ; 8b 46 ea 15958 15967 cmp ax, word [bx+002h] ; 3b 47 02 15959 jne short 0a 2dah ; 75 0b15968 jne short 0a30ah ; 75 0b 15960 15969 mov ax, word [bp-018h] ; 8b 46 e8 15961 15970 cmp ax, word [bx] ; 3b 07 15962 jbe short 0a 2dah ; 76 0415971 jbe short 0a30ah ; 76 04 15963 15972 mov AL, strict byte 001h ; b0 01 15964 jmp short 0a 2dch ; eb 0215973 jmp short 0a30ch ; eb 02 15965 15974 xor al, al ; 30 c0 15966 15975 test al, al ; 84 c0 15967 je short 0a3 03h ; 74 2315976 je short 0a333h ; 74 23 15968 15977 shr word [bp-016h], 1 ; d1 6e ea 15969 15978 rcr word [bp-018h], 1 ; d1 5e e8 15970 15979 dec word [bp-012h] ; ff 4e ee 15971 jmp short 0a3 03h ; eb 1815980 jmp short 0a333h ; eb 18 15972 15981 mov cx, strict word 0001fh ; b9 1f 00 15973 15982 sal word [bp-018h], 1 ; d1 66 e8 15974 15983 rcl word [bp-016h], 1 ; d1 56 ea 15975 loop 0a 2eeh ; e2 f815976 jmp short 0a 2e6h ; eb ee15984 loop 0a31eh ; e2 f8 15985 jmp short 0a316h ; eb ee 15977 15986 mov ax, word [si] ; 8b 04 15978 15987 mov word [bp-018h], ax ; 89 46 e8 … … 15991 16000 mov ds, [bp-006h] ; 8e 5e fa 15992 16001 cmp ax, word [si+002h] ; 3b 44 02 15993 jnbe short 0a3 2fh ; 77 0615994 jne short 0a3 33h ; 75 0816002 jnbe short 0a35fh ; 77 06 16003 jne short 0a363h ; 75 08 15995 16004 cmp dx, word [si] ; 3b 14 15996 jc short 0a3 33h ; 72 0416005 jc short 0a363h ; 72 04 15997 16006 mov AL, strict byte 001h ; b0 01 15998 jmp short 0a3 35h ; eb 0216007 jmp short 0a365h ; eb 02 15999 16008 xor al, al ; 30 c0 16000 16009 test al, al ; 84 c0 16001 je short 0a3 9ah ; 74 6116010 je short 0a3cah ; 74 61 16002 16011 mov ds, [bp-008h] ; 8e 5e f8 16003 16012 mov ax, word [di+002h] ; 8b 45 02 16004 16013 cmp ax, word [bp-016h] ; 3b 46 ea 16005 jnbe short 0a3 50h ; 77 0c16014 jnbe short 0a380h ; 77 0c 16006 16015 cmp ax, word [bp-016h] ; 3b 46 ea 16007 jne short 0a3 54h ; 75 0b16016 jne short 0a384h ; 75 0b 16008 16017 mov ax, word [di] ; 8b 05 16009 16018 cmp ax, word [bp-018h] ; 3b 46 e8 16010 jc short 0a3 54h ; 72 0416019 jc short 0a384h ; 72 04 16011 16020 mov AL, strict byte 001h ; b0 01 16012 jmp short 0a3 56h ; eb 0216021 jmp short 0a386h ; eb 02 16013 16022 xor al, al ; 30 c0 16014 16023 test al, al ; 84 c0 16015 je short 0a3 80h ; 74 2616024 je short 0a3b0h ; 74 26 16016 16025 mov ax, word [bp-018h] ; 8b 46 e8 16017 16026 mov ds, [bp-008h] ; 8e 5e f8 … … 16022 16031 xor dx, dx ; 31 d2 16023 16032 mov cx, word [bp-012h] ; 8b 4e ee 16024 jcxz 0a3 78h ; e3 0616033 jcxz 0a3a8h ; e3 06 16025 16034 sal ax, 1 ; d1 e0 16026 16035 rcl dx, 1 ; d1 d2 16027 loop 0a3 72h ; e2 fa16036 loop 0a3a2h ; e2 fa 16028 16037 lds bx, [bp-010h] ; c5 5e f0 16029 16038 or word [bx], ax ; 09 07 … … 16034 16043 mov ds, [bp-006h] ; 8e 5e fa 16035 16044 cmp ax, word [si+002h] ; 3b 44 02 16036 jc short 0a3 96h ; 72 0616037 jne short 0a3 9ch ; 75 0a16045 jc short 0a3c6h ; 72 06 16046 jne short 0a3cch ; 75 0a 16038 16047 cmp dx, word [si] ; 3b 14 16039 jnc short 0a3 9ch ; 73 0616048 jnc short 0a3cch ; 73 06 16040 16049 mov AL, strict byte 001h ; b0 01 16041 jmp short 0a3 9eh ; eb 0416042 jmp short 0a3 bdh ; eb 2116050 jmp short 0a3ceh ; eb 04 16051 jmp short 0a3edh ; eb 21 16043 16052 xor al, al ; 30 c0 16044 16053 test al, al ; 84 c0 16045 je short 0a3 b1h ; 74 0f16046 jmp short 0a3 bdh ; eb 1916054 je short 0a3e1h ; 74 0f 16055 jmp short 0a3edh ; eb 19 16047 16056 mov cx, strict word 0001fh ; b9 1f 00 16048 16057 sal word [bp-018h], 1 ; d1 66 e8 16049 16058 rcl word [bp-016h], 1 ; d1 56 ea 16050 loop 0a3 a7h ; e2 f816051 jmp short 0a3 b7h ; eb 0616059 loop 0a3d7h ; e2 f8 16060 jmp short 0a3e7h ; eb 06 16052 16061 shr word [bp-016h], 1 ; d1 6e ea 16053 16062 rcr word [bp-018h], 1 ; d1 5e e8 16054 16063 dec word [bp-012h] ; ff 4e ee 16055 jmp near 0a3 39h ; e9 7c ff16064 jmp near 0a369h ; e9 7c ff 16056 16065 mov ax, word [bp-01ch] ; 8b 46 e4 16057 16066 mov dx, word [bp-01ah] ; 8b 56 e6 … … 16062 16071 retn ; c3 16063 16072 times 0x6 db 0 16064 _ASMBitLastSetU16: ; 0xfa 3d0 LB 0x1816073 _ASMBitLastSetU16: ; 0xfa400 LB 0x18 16065 16074 push bp ; 55 16066 16075 db 08bh, 0ech … … 16068 16077 mov cx, word [bp+004h] ; 8b 4e 04 16069 16078 test cx, cx ; 85 c9 16070 je short 0a 3e4h ; 74 0a16079 je short 0a414h ; 74 0a 16071 16080 mov ax, strict word 00010h ; b8 10 00 16072 16081 sal cx, 1 ; d1 e1 16073 jc short 0a 3e6h ; 72 0516082 jc short 0a416h ; 72 05 16074 16083 dec ax ; 48 16075 jmp short 0a 3ddh ; eb f916084 jmp short 0a40dh ; eb f9 16076 16085 db 033h, 0c0h 16077 16086 ; xor ax, ax ; 33 c0 … … 16079 16088 retn ; c3 16080 16089 16081 ; Padding 0x3 618 bytes at 0xfa3e816082 times 138 48db 016090 ; Padding 0x35e8 bytes at 0xfa418 16091 times 13800 db 0 16083 16092 16084 16093 section BIOS32 progbits vstart=0xda00 align=1 ; size=0x3cb class=CODE group=AUTO … … 16127 16136 add bp, strict byte 00008h ; 83 c5 08 16128 16137 push ebp ; 66 55 16129 mov bp, 0a1 56h ; bd 56 a116138 mov bp, 0a186h ; bd 86 a1 16130 16139 add byte [bx+si], al ; 00 00 16131 16140 push ebp ; 66 55 … … 16649 16658 mov ax, 0027fh ; b8 7f 02 16650 16659 mov word [00413h], ax ; a3 13 04 16651 mov ax, 0e9 e4h ; b8 e4e916660 mov ax, 0e9dah ; b8 da e9 16652 16661 mov word [00018h], ax ; a3 18 00 16653 16662 mov ax, 0f000h ; b8 00 f0 … … 16734 16743 mov dx, 0c800h ; ba 00 c8 16735 16744 call 01600h ; e8 f0 33 16736 call 0 4ff0h ; e8 dd 6d16745 call 05018h ; e8 05 6e 16737 16746 pop DS ; 1f 16738 16747 mov ax, 0ff53h ; b8 53 ff … … 16857 16866 call 01cc5h ; e8 89 39 16858 16867 call 02154h ; e8 15 3e 16859 call 099 adh ; e8 6bb616860 call 088 12h ; e8 cda416868 call 099d5h ; e8 93 b6 16869 call 0883ah ; e8 f5 a4 16861 16870 call 0ed4ch ; e8 04 0a 16862 16871 call 0e2d2h ; e8 87 ff … … 16868 16877 call 01600h ; e8 a9 32 16869 16878 call 01799h ; e8 3f 34 16870 call 03c 0ah ; e8 ad5816879 call 03c31h ; e8 d4 58 16871 16880 sti ; fb 16872 16881 int 019h ; cd 19 … … 16977 16986 pop DS ; 1f 16978 16987 cld ; fc 16979 call 065 abh ; e8 627e16988 call 065d3h ; e8 8a 7e 16980 16989 pop di ; 5f 16981 16990 pop si ; 5e … … 17081 17090 pop DS ; 1f 17082 17091 cld ; fc 17083 call 058 59h ; e8 107017092 call 05881h ; e8 38 70 17084 17093 pop di ; 5f 17085 17094 pop si ; 5e … … 17105 17114 pop DS ; 1f 17106 17115 cld ; fc 17107 call 058 59h ; e8 eb 6f17116 call 05881h ; e8 13 70 17108 17117 pop di ; 5f 17109 17118 pop si ; 5e … … 17120 17129 times 0x10c db 0 17121 17130 db 'XM' 17122 biosorg_check_at_0E987h: ; 0xfe987 LB 0x 7817131 biosorg_check_at_0E987h: ; 0xfe987 LB 0x6e 17123 17132 cli ; fa 17124 17133 push ax ; 50 17125 17134 mov AL, strict byte 0adh ; b0 ad 17126 17135 out strict byte 064h, AL ; e6 64 17127 mov AL, strict byte 00bh ; b0 0b17128 out strict byte 020h, AL ; e6 2017129 in AL, strict byte 020h ; e4 2017130 and AL, strict byte 002h ; 24 0217131 je short 0e9deh ; 74 4717132 17136 in AL, strict byte 060h ; e4 60 17133 17137 push DS ; 1e … … 17144 17148 stc ; f9 17145 17149 int 015h ; cd 15 17146 jnc short 0e9 d1h ; 73 2717150 jnc short 0e9c7h ; 73 27 17147 17151 sti ; fb 17148 17152 cmp AL, strict byte 0e0h ; 3c e0 17149 jne short 0e9b ah ; 75 0b17153 jne short 0e9b0h ; 75 0b 17150 17154 db 033h, 0c0h 17151 17155 ; xor ax, ax ; 33 c0 17152 17156 mov ds, ax ; 8e d8 17153 17157 or byte [00496h], 002h ; 80 0e 96 04 02 17154 jmp short 0e9 d1h ; eb 1717158 jmp short 0e9c7h ; eb 17 17155 17159 cmp AL, strict byte 0e1h ; 3c e1 17156 jne short 0e9 c9h ; 75 0b17160 jne short 0e9bfh ; 75 0b 17157 17161 db 033h, 0c0h 17158 17162 ; xor ax, ax ; 33 c0 17159 17163 mov ds, ax ; 8e d8 17160 17164 or byte [00496h], 001h ; 80 0e 96 04 01 17161 jmp short 0e9 d1h ; eb 0817165 jmp short 0e9c7h ; eb 08 17162 17166 push ES ; 06 17163 17167 push CS ; 0e 17164 17168 pop DS ; 1f 17165 17169 cld ; fc 17166 call 05 2f8h ; e8 286917170 call 05320h ; e8 5a 69 17167 17171 pop ES ; 07 17168 17172 pop di ; 5f … … 17176 17180 pop DS ; 1f 17177 17181 cli ; fa 17178 call 0e034h ; e8 56f617182 call 0e034h ; e8 60 f6 17179 17183 mov AL, strict byte 0aeh ; b0 ae 17180 17184 out strict byte 064h, AL ; e6 64 … … 17194 17198 pop DS ; 1f 17195 17199 cld ; fc 17196 call 06 ee3h ; e8 ef 8417200 call 06f0bh ; e8 21 85 17197 17201 pop DS ; 1f 17198 17202 pop ES ; 07 … … 17206 17210 pop ax ; 58 17207 17211 iret ; cf 17208 biosorg_check_before_or_at_0EC57h: ; 0xfe9f f LB 0x25a17209 times 0x2 58db 017212 biosorg_check_before_or_at_0EC57h: ; 0xfe9f5 LB 0x264 17213 times 0x262 db 0 17210 17214 db 'XM' 17211 17215 biosorg_check_at_0EC59h: ; 0xfec59 LB 0x2 … … 17230 17234 cld ; fc 17231 17235 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17232 jmp near 03c 4eh ; e9 d44f17236 jmp near 03c75h ; e9 fb 4f 17233 17237 jmp_call_ret_int13_out: ; 0xfec7a LB 0x4a 17234 17238 db 0ffh … … 17239 17243 push cx ; 51 17240 17244 push dx ; 52 17241 call 03c 22h ; e8 9e4f17245 call 03c49h ; e8 c5 4f 17242 17246 cmp AL, strict byte 000h ; 3c 00 17243 17247 je short 0ecbfh ; 74 37 17244 call 03c 38h ; e8 ad4f17248 call 03c5fh ; e8 d4 4f 17245 17249 pop dx ; 5a 17246 17250 push dx ; 52 … … 17267 17271 cld ; fc 17268 17272 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17269 jmp near 042 5bh ; e9 b05517273 jmp near 04283h ; e9 d8 55 17270 17274 and dl, 0e0h ; 80 e2 e0 17271 17275 db 03ah, 0c2h … … 17307 17311 jne short 0ecdeh ; 75 08 17308 17312 push word [cs:0ec7ah] ; 2e ff 36 7a ec 17309 jmp near 03 22dh ; e9 4f4517313 jmp near 031ffh ; e9 21 45 17310 17314 int13_notfloppy: ; 0xfecde LB 0x14 17311 17315 cmp dl, 0e0h ; 80 fa e0 … … 17313 17317 shr ebx, 010h ; 66 c1 eb 10 17314 17318 push bx ; 53 17315 call 046 aeh ; e8 c35917319 call 046d6h ; e8 eb 59 17316 17320 pop bx ; 5b 17317 17321 sal ebx, 010h ; 66 c1 e3 10 … … 17320 17324 cmp ah, 040h ; 80 fc 40 17321 17325 jnbe short 0ecfch ; 77 05 17322 call 05c 3ah ; e8 406f17326 call 05c62h ; e8 68 6f 17323 17327 jmp short 0ecffh ; eb 03 17324 call 060 80h ; e8 817317328 call 060a8h ; e8 a9 73 17325 17329 int13_out: ; 0xfecff LB 0xb 17326 17330 pop DS ; 1f … … 17556 17560 pop DS ; 1f 17557 17561 cld ; fc 17558 call 078 90h ; e8 ac8817562 call 078b8h ; e8 d4 88 17559 17563 pop di ; 5f 17560 17564 pop si ; 5e … … 17614 17618 mov ax, strict word 00001h ; b8 01 00 17615 17619 push ax ; 50 17616 call 04d 4dh ; e8 7d5c17620 call 04d75h ; e8 a5 5c 17617 17621 inc sp ; 44 17618 17622 inc sp ; 44 … … 17621 17625 mov ax, strict word 00002h ; b8 02 00 17622 17626 push ax ; 50 17623 call 04d 4dh ; e8 705c17627 call 04d75h ; e8 98 5c 17624 17628 inc sp ; 44 17625 17629 inc sp ; 44 … … 17628 17632 mov ax, strict word 00003h ; b8 03 00 17629 17633 push ax ; 50 17630 call 04d 4dh ; e8 635c17634 call 04d75h ; e8 8b 5c 17631 17635 inc sp ; 44 17632 17636 inc sp ; 44 … … 17635 17639 mov ax, strict word 00004h ; b8 04 00 17636 17640 push ax ; 50 17637 call 04d 4dh ; e8 565c17641 call 04d75h ; e8 7e 5c 17638 17642 inc sp ; 44 17639 17643 inc sp ; 44 … … 17938 17942 cmp ah, 0c2h ; 80 fc c2 17939 17943 je short 0f895h ; 74 15 17940 call 068 02h ; e8 7f6f17944 call 0682ah ; e8 a7 6f 17941 17945 pop di ; 5f 17942 17946 pop si ; 5e … … 17951 17955 popfw ; 9d 17952 17956 jmp short 0f8afh ; eb 1f 17953 call 09b 00h ; e8 6da217957 call 09b28h ; e8 95 a2 17954 17958 jmp short 0f883h ; eb ee 17955 17959 int15_handler_mouse: ; 0xff895 LB 0x5 17956 call 07 4f0h ; e8 587c17960 call 07518h ; e8 80 7c 17957 17961 jmp short 0f883h ; eb e9 17958 17962 int15_handler32: ; 0xff89a LB 0x15 … … 17965 17969 push si ; 56 17966 17970 push di ; 57 17967 call 06b 45h ; e8 a07217971 call 06b6dh ; e8 c8 72 17968 17972 pop di ; 5f 17969 17973 pop si ; 5e … … 18011 18015 pop DS ; 1f 18012 18016 cld ; fc 18013 call 074 1eh ; e8 437b18017 call 07446h ; e8 6b 7b 18014 18018 pop cx ; 59 18015 18019 jcxz 0f8ebh ; e3 0d … … 18059 18063 pop DS ; 1f 18060 18064 cld ; fc 18061 call 070 bbh ; e8 9c7718065 call 070e3h ; e8 c4 77 18062 18066 pop di ; 5f 18063 18067 pop si ; 5e … … 18162 18166 pop DS ; 1f 18163 18167 cld ; fc 18164 call 071 7ah ; e8 fc 7218168 call 071a2h ; e8 24 73 18165 18169 pop di ; 5f 18166 18170 pop si ; 5e … … 18274 18278 cpu_reset: ; 0xffff0 LB 0x10 18275 18279 jmp far 0f000h:0e05bh ; ea 5b e0 00 f0 18276 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0 18h18280 db 030h, 036h, 02fh, 032h, 033h, 02fh, 039h, 039h, 000h, 0fbh, 0ffh -
trunk/src/VBox/Devices/PC/BIOS/VBoxBiosAlternative8086.md5sum
r66146 r67495 1 3c9f961cb03c5004439fcce031a895cf*VBoxPcBios8086.rom1 8ad7d52695284ae041ae25c322b029a5 *VBoxPcBios8086.rom
Note:
See TracChangeset
for help on using the changeset viewer.