Subversion Repositories Kolibri OS

Rev

Rev 4 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4 Rev 33
Line 5... Line 5...
5
;* óñòàíîâêè îáðàáîò÷èêà ïðåðûâàíèÿ               *
5
;* óñòàíîâêè îáðàáîò÷èêà ïðåðûâàíèÿ               *
6
;**************************************************
6
;**************************************************
7
; Àâòîð èñõîäíîãî òåêñòà Êóëàêîâ Âëàäèìèð Ãåííàäüåâè÷.
7
; Àâòîð èñõîäíîãî òåêñòà Êóëàêîâ Âëàäèìèð Ãåííàäüåâè÷.
8
; Àäàïòàöèÿ è äîðàáîòêà Mario79
8
; Àäàïòàöèÿ è äîðàáîòêà Mario79
Line 9... Line 9...
9
 
9
 
10
MSMouseSearch:
10
Detect_COM_Mouse:
-
 
11
        pusha
-
 
12
        call   MSMouseSearch
-
 
13
        cmp    AL,'M'
-
 
14
        jne    @f
-
 
15
        mov    [com1_mouse_detected],1
-
 
16
        mov    esi,boot_setmouse_type+22
-
 
17
        call  boot_log
-
 
18
     @@:
-
 
19
        sub    [COMPortBaseAddr],100h
-
 
20
        call   MSMouseSearch
-
 
21
        cmp    AL,'M'
-
 
22
        jne    @f        
-
 
23
        mov    [com2_mouse_detected],1
-
 
24
        mov    esi,boot_setmouse_type+44
-
 
25
        call  boot_log
-
 
26
     @@:
-
 
27
        popa
-
 
28
        jmp     end_detecting_mouse
-
 
29
 
11
        pusha
30
MSMouseSearch:
12
; ÏÎÈÑÊ ÌÛØÈ ×ÅÐÅÇ COM-ÏÎÐÒÛ
31
        ; ÏÎÈÑÊ ÌÛØÈ ×ÅÐÅÇ COM-ÏÎÐÒÛ
13
MouseSearch:
32
MouseSearch:
14
        ; Óñòàíàâëèâàåì ñêîðîñòü
33
        ; Óñòàíàâëèâàåì ñêîðîñòü
15
        ; ïðèåìà/ïåðåäà÷è 1200 áîä
34
        ; ïðèåìà/ïåðåäà÷è 1200 áîä
Line 68... Line 87...
68
        test    AL,1   ;Äàííûå ãîòîâû?
87
        test    AL,1   ;Äàííûå ãîòîâû?
69
        jz      WaitData
88
        jz      WaitData
70
        ; Ââåñòè äàííûå
89
        ; Ââåñòè äàííûå
71
        mov     DX,[COMPortBaseAddr]
90
        mov     DX,[COMPortBaseAddr]
72
        in      AL,DX
91
        in      AL,DX
73
        ; Óñòðîéñòâî ÿâëÿåòñÿ ìûøüþ?
-
 
74
        cmp     AL,'M'
-
 
75
        je EndDetect
-
 
76
NoMouse:
92
NoMouse:
77
        inc     [COMPortNum]
-
 
78
        cmp     [COMPortNum],1
-
 
79
        ja      EndDetect
93
        ret
80
        sub     [COMPortBaseAddr],100h
-
 
81
        jmp     MouseSearch
-
 
Line 82... Line 94...
82
 
94
 
83
iglobal
95
iglobal
84
COMPortBaseAddr dw 3F8h
96
COMPortBaseAddr dw 3F8h
85
COMPortNum dw 0
97
;COMPortNum dw 0
Line 86... Line 98...
86
endg
98
endg
87
 
99
 
88
iglobal
100
iglobal
89
boot_setmouse_type  db   'No COM mouse, set PS2',0
101
boot_setmouse_type  db   'Detected - PS2  mouse',0
90
                    db   'Detected - COM1 mouse',0
-
 
91
                    db   'Detected - COM2 mouse',0
102
                    db   'Detected - COM1 mouse',0
Line 92... Line -...
92
 
-
 
93
endg
-
 
94
 
-
 
95
EndDetect:
-
 
96
        cmp     [COMPortNum],0  ;íîìåð ïîðòà ìåíüøå 0?
-
 
97
        jl      ComMouseNotFound ;ìûøü íå íàéäåíà
-
 
98
        cmp     [COMPortNum],1  ;íîìåð ïîðòà áîëüøå 1?
-
 
99
        ja      ComMouseNotFound ;ìûøü íå íàéäåíà
-
 
100
        mov     ax,[COMPortNum]
-
 
101
        add     al,2
-
 
102
        jmp     set_detecting_mouse
103
                    db   'Detected - COM2 mouse',0
103
 ComMouseNotFound:
-
 
104
        mov al,1
-
 
105
 set_detecting_mouse:
-
 
106
        mov   [0xF604],al
-
 
107
        dec   al
-
 
108
        movzx eax,al
-
 
109
        imul  eax,22
-
 
110
        mov   esi,boot_setmouse_type
-
 
111
        add   esi,eax
-