Rev 33 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 33 | Rev 56 | ||
---|---|---|---|
1 | MouseSearch_PS2: |
1 | MouseSearch_PS2: |
2 | 2 | ||
3 | pusha |
3 | pusha |
- | 4 | mov bl, 0xAD |
|
- | 5 | call kb_cmd |
|
4 | 6 | ||
5 | mov bl,0xa8 ; enable mouse cmd |
7 | mov bl,0xa8 ; enable mouse cmd |
6 | call kb_cmd |
8 | call kb_cmd |
7 | cmp ah,1 |
9 | cmp ah,1 |
8 | je @@DataInputError |
10 | je @@DataInputError |
9 | 11 | ||
10 | mov bl,0xd4 ; for mouse |
12 | mov bl,0xd4 ; for mouse |
11 | call kb_cmd |
13 | call kb_cmd |
12 | cmp ah,1 |
14 | cmp ah,1 |
13 | je @@DataInputError |
15 | je @@DataInputError |
14 | mov al,0xeb ; |
16 | mov al,0xeb ; |
15 | call kb_write |
17 | call kb_write |
16 | cmp ah,1 |
18 | cmp ah,1 |
17 | je @@DataInputError |
19 | je @@DataInputError |
18 | call kb_read ; Acknowledge |
20 | call kb_read ; Acknowledge |
19 | call kb_read |
21 | call kb_read |
20 | mov [ps2_mouse_detected],0 |
22 | mov [ps2_mouse_detected],0 |
21 | test al,8 |
23 | test al,18h |
22 | jz @f |
24 | jz @f |
23 | mov [ps2_mouse_detected],1 |
25 | mov [ps2_mouse_detected],1 |
24 | @@: |
26 | @@: |
25 | call kb_read ; |
27 | call kb_read ; |
26 | call kb_read ; |
28 | call kb_read ; |
27 | 29 | ||
28 | mov bl,0x20 ; get command byte |
30 | mov bl,0x20 ; get command byte |
29 | call kb_cmd |
31 | call kb_cmd |
30 | cmp ah,1 |
32 | cmp ah,1 |
31 | je @@DataInputError |
33 | je @@DataInputError |
32 | call kb_read |
34 | call kb_read |
33 | cmp ah,1 |
35 | cmp ah,1 |
34 | je @@DataInputError |
36 | je @@DataInputError |
35 | or al,3 ; enable interrupt |
37 | or al,3 ; enable interrupt |
36 | mov bl,0x60 ; write command |
38 | mov bl,0x60 ; write command |
37 | push eax |
39 | push eax |
38 | call kb_cmd |
40 | call kb_cmd |
39 | pop eax |
41 | pop eax |
40 | call kb_write |
42 | call kb_write |
41 | cmp ah,1 |
43 | cmp ah,1 |
42 | je @@DataInputError |
44 | je @@DataInputError |
43 | 45 | ||
44 | mov bl,0xd4 ; for mouse |
46 | mov bl,0xd4 ; for mouse |
45 | call kb_cmd |
47 | call kb_cmd |
46 | cmp ah,1 |
48 | cmp ah,1 |
47 | je @@DataInputError |
49 | je @@DataInputError |
48 | mov al,0xf4 ; enable mouse device |
50 | mov al,0xf4 ; enable mouse device |
49 | call kb_write |
51 | call kb_write |
50 | cmp ah,1 |
52 | cmp ah,1 |
51 | je @@DataInputError |
53 | je @@DataInputError |
52 | call kb_read ; read status return |
54 | call kb_read ; read status return |
53 | cmp ah,1 |
55 | cmp ah,1 |
54 | je @@DataInputError |
56 | je @@DataInputError |
55 | cmp AL,0FAh |
57 | cmp AL,0FAh |
56 | jnz @@DataInputError ;íåò ïîäòâåðæäåíèÿ |
58 | jnz @@DataInputError ;íåò ïîäòâåðæäåíèÿ |
57 | 59 | ||
58 | @@DataInputError: |
60 | @@DataInputError: |
59 | cmp [ps2_mouse_detected],0 |
61 | cmp [ps2_mouse_detected],0 |
60 | je @f |
62 | je @f |
61 | mov esi,boot_setmouse_type |
63 | mov esi,boot_setmouse_type |
62 | call boot_log |
64 | call boot_log |
63 | @@: |
65 | @@: |
- | 66 | mov bl, 0xAE |
|
- | 67 | call kb_cmd |
|
64 | popa |
68 | popa |