Page 1 of 1
The keyboard typing rate
Posted: Mon Jul 19, 2004 1:41 am
by ManOfSteel
Hello,
How do you change the keyboard typing rate (what ports and what data must be sent to them)?
Thanks for any help.
Re:The keyboard typing rate
Posted: Mon Jul 19, 2004 2:01 am
by Brendan
Hi,
ManOfSteel wrote:
How do you change the keyboard typing rate (what ports and what data must be sent to them)?
You'd send the command 0xF3 to the keyboard controller chip, followed by a byte containing the repeat rate and delay:
Code: Select all
mov al,0xf3
call sendData
jc .exit
mov al,[keydevArate] ;al = default repeat rate and delay
call sendData
Code: Select all
%define STATUSPORT 0x64
%define COMMANDPORT 0x64
%define DATAPORT 0x60
;Send data to controller or device A
;_______________________________________________________________________________
sendData:
pushes ebx,ecx
push eax
mov ebx,[SIBtickHigh]
mov ecx,[SIBtickOver]
add ebx,1
adc ecx,0
OSCALL 0x39 ;Sleep for 1 mS
mov ebx,[SIBtickHigh]
mov ecx,[SIBtickOver]
add ebx,100 ;100 mS timout
adc ecx,0
.sd1 in al,STATUSPORT
test al,controllerInputFull
je .sd2
cmp [SIBtickOver],ecx
jb .sd1
cmp [SIBtickHigh],ebx
jbe .sd1
pop eax
pops ebx,ecx
stc
ret
.sd2 pop eax
out DATAPORT,al
pops ebx,ecx
clc
ret
The repeat rate and delay values are avaliable at:
http://panda.cs.ndsu.nodak.edu/%7Eachap ... board.html
The keyboard should send an "ACK" (0xFA) in response.
Cheers,
Brendan
Re: The keyboard typing rate
Posted: Wed Jul 22, 2020 7:21 am
by LukeyTheKid
For fellow searchers finding this page far in the future from 2004, the wiki now has these type rate and delay values as well. Command code 0xF3 still applies
https://wiki.osdev.org/PS/2_Keyboard#Commands