Subversion Repositories Kolibri OS

Rev

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