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

AltStyle によって変換されたページ (->オリジナル) /