The keyboard typing rate

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
3 posts • Page 1 of 1
ManOfSteel

The keyboard typing rate

Post 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.
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re:The keyboard typing rate

Post 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
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
LukeyTheKid
Posts: 17
Joined: Fri Jun 12, 2020 7:53 am
Libera.chat IRC: lukeythekid

Re: The keyboard typing rate

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

3 posts • Page 1 of 1

Return to "OS Development"