kolibrios-gitea/kernel/trunk/detect/ps2mouse.inc

70 lines
1.8 KiB
PHP
Raw Normal View History

MouseSearch_PS2:
pusha
mov bl, 0xAD
call kb_cmd
mov bl,0xa8 ; enable mouse cmd
call kb_cmd
cmp ah,1
je @@DataInputError
mov bl,0xd4 ; for mouse
call kb_cmd
cmp ah,1
je @@DataInputError
mov al,0xeb ;
call kb_write
cmp ah,1
je @@DataInputError
call kb_read ; Acknowledge
call kb_read
mov [ps2_mouse_detected],0
test al,18h
jz @f
mov [ps2_mouse_detected],1
@@:
call kb_read ;
call kb_read ;
mov bl,0x20 ; get command byte
call kb_cmd
cmp ah,1
je @@DataInputError
call kb_read
cmp ah,1
je @@DataInputError
or al,3 ; enable interrupt
mov bl,0x60 ; write command
push eax
call kb_cmd
pop eax
call kb_write
cmp ah,1
je @@DataInputError
mov bl,0xd4 ; for mouse
call kb_cmd
cmp ah,1
je @@DataInputError
mov al,0xf4 ; enable mouse device
call kb_write
cmp ah,1
je @@DataInputError
call kb_read ; read status return
cmp ah,1
je @@DataInputError
cmp AL,0FAh
jnz @@DataInputError ;<EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@DataInputError:
cmp [ps2_mouse_detected],0
je @f
mov esi,boot_setmouse_type
call boot_log
@@:
mov bl, 0xAE
call kb_cmd
popa