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 |
- |