Rev 76 | Rev 102 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 76 | Rev 92 | ||
---|---|---|---|
Line 731... | Line 731... | ||
731 | 731 | ||
732 | mov [0xf400],byte 0 ; empty keyboard buffer |
732 | mov [0xf400],byte 0 ; empty keyboard buffer |
Line -... | Line 733... | ||
- | 733 | mov [0xf500],byte 0 ; empty button buffer |
|
- | 734 | ||
- | 735 | ||
- | 736 | ; remove defined hotkeys |
|
- | 737 | mov eax, hotkey_list |
|
- | 738 | .loop: |
|
- | 739 | cmp [eax+8], esi |
|
- | 740 | jnz .cont |
|
- | 741 | mov ecx, [eax] |
|
- | 742 | jecxz @f |
|
- | 743 | push dword [eax+12] |
|
- | 744 | pop dword [ecx+12] |
|
- | 745 | @@: |
|
- | 746 | mov ecx, [eax+12] |
|
- | 747 | push dword [eax] |
|
- | 748 | pop dword [ecx] |
|
- | 749 | xor ecx, ecx |
|
- | 750 | mov [eax], ecx |
|
- | 751 | mov [eax+4], ecx |
|
- | 752 | mov [eax+8], ecx |
|
- | 753 | mov [eax+12], ecx |
|
- | 754 | .cont: |
|
- | 755 | add eax, 16 |
|
- | 756 | cmp eax, hotkey_list+256*16 |
|
- | 757 | jb .loop |
|
- | 758 | ; remove hotkeys in buffer |
|
- | 759 | mov eax, hotkey_buffer |
|
- | 760 | .loop2: |
|
- | 761 | cmp [eax], esi |
|
- | 762 | jnz .cont2 |
|
- | 763 | and dword [eax+4], 0 |
|
- | 764 | and dword [eax], 0 |
|
- | 765 | .cont2: |
|
- | 766 | add eax, 8 |
|
733 | mov [0xf500],byte 0 ; empty button buffer |
767 | cmp eax, hotkey_buffer+120*8 |
734 | 768 | jb .loop2 |
|
735 | 769 | ||
736 | mov ecx,esi ; remove buttons |
770 | mov ecx,esi ; remove buttons |
737 | bnewba2: |
771 | bnewba2: |
Line 762... | Line 796... | ||
762 | cld |
796 | cld |
763 | shl esi,5 |
797 | shl esi,5 |
764 | add esi,window_data |
798 | add esi,window_data |
765 | mov ax,[esi+0] |
799 | mov ax,[esi+0] |
766 | mov word [dlx],ax |
800 | mov word [dlx],ax |
767 | mov bx,[esi+8] |
801 | add ax,[esi+8] |
768 | add ax,bx |
- | |
769 | mov word [dlxe],ax |
802 | mov word [dlxe],ax |
770 | mov ax,[esi+4] |
803 | mov ax,[esi+4] |
771 | mov word [dly],ax |
804 | mov word [dly],ax |
772 | mov bx,[esi+12] |
805 | add ax,[esi+12] |
773 | add ax,bx |
- | |
774 | mov word [dlye],ax |
806 | mov word [dlye],ax |
775 | mov [esi+0],word 0 |
807 | mov [esi+0],word 0 |
776 | mov [esi+8],word 5 |
808 | mov [esi+8],word 5 |
777 | mov ax,[0xFE04] |
809 | mov ax,[0xFE04] |
778 | mov [esi+4],ax |
810 | mov [esi+4],ax |
Line 796... | Line 828... | ||
796 | mov eax,[0xFE04] ; set window to start from maxy+1 |
828 | mov eax,[0xFE04] ; set window to start from maxy+1 |
797 | add eax,2 |
829 | add eax,2 |
Line 798... | Line 830... | ||
798 | 830 | ||
799 | mov edi,esi |
831 | mov edi,esi |
800 | shl edi,5 |
832 | shl edi,5 |
801 | add edi,window_data |
- | |
Line 802... | Line -... | ||
802 | mov [edi+4],eax |
- | |
803 | - | ||
804 | popa |
- | |
805 | - | ||
806 | pusha |
- | |
807 | mov edi,esi |
833 | mov [edi+4+window_data],eax |
808 | shl edi,5 |
834 | |
809 | add edi,draw_data |
835 | add edi,draw_data |
810 | mov ecx,32/4 |
- | |
811 | xor eax, eax |
836 | mov ecx,32/4 |
812 | ; cld |
837 | xor eax, eax |
Line 813... | Line 838... | ||
813 | rep stosd |
838 | rep stosd |
814 | popa |
839 | popa |
Line 862... | Line 887... | ||
862 | mov [0xC400 + ecx*2], si |
887 | mov [0xC400 + ecx*2], si |
863 | jmp nlc40 |
888 | jmp nlc40 |
864 | nlc41: |
889 | nlc41: |
865 | popa |
890 | popa |
Line 866... | Line 891... | ||
866 | 891 | ||
867 | pusha ; remove hd1 reservation |
892 | push esi ; remove hd1 & cd & flp reservation |
868 | mov edx,esi |
- | |
869 | shl edx, 5 ;imul edx,0x20 |
- | |
870 | add edx,0x3000 |
893 | shl esi, 5 |
871 | mov edx,[edx+4] |
894 | mov esi, [esi+0x3004] |
872 | cmp [hd1_status],edx |
895 | cmp [hd1_status], esi |
873 | jne no_hd1_s_remove |
896 | jnz @f |
- | 897 | mov [hd1_status], 0 |
|
- | 898 | @@: |
|
- | 899 | cmp [cd_status], esi |
|
- | 900 | jnz @f |
|
- | 901 | mov [cd_status], 0 |
|
- | 902 | @@: |
|
874 | mov [hd1_status],0 |
903 | cmp [flp_status], esi |
- | 904 | jnz @f |
|
- | 905 | mov [flp_status], 0 |
|
875 | no_hd1_s_remove: |
906 | @@: |
Line 876... | Line 907... | ||
876 | popa |
907 | pop esi |
877 | 908 | ||
878 | pusha ; remove all irq reservations |
909 | pusha ; remove all irq reservations |
879 | mov edx,esi |
- | |
880 | shl edx, 5 ;imul edx,0x20 |
910 | mov eax,esi |
881 | add edx,0x3000 |
911 | shl eax, 5 ;imul edx,0x20 |
882 | mov edx,[edx+4] |
912 | mov eax,[edx+0x3000+4] |
883 | mov edi,irq_owner |
913 | mov edi,irq_owner |
884 | mov ecx,16 |
914 | mov ecx,16 |
885 | newirqfree: |
915 | newirqfree: |
886 | cmp [edi],edx |
916 | scasd |
887 | jne nofreeirq |
917 | jne nofreeirq |
888 | mov [edi],dword 0 |
- | |
889 | nofreeirq: |
918 | mov [edi-4],dword 0 |
890 | add edi,4 |
919 | nofreeirq: |
Line 891... | Line 920... | ||
891 | loop newirqfree |
920 | loop newirqfree |