StuBS
|
PS/2 Controller. More...
Functions | |
void | init () |
Initialization of connected devices. More... | |
bool | fetch (Key &pressed) |
Retrieve the keyboard event. More... | |
void | setRepeatRate (Speed speed, Delay delay) |
Configure the repeat rate of the keyboard. More... | |
void | setLed (enum LED led, bool on) |
Enable or disable a keyboard LED. More... | |
PS/2 Controller.
Initializes the PS/2 devices (Keyboard and optional Mouse), and determines both the scan code and ASCII character of a pressed key from the transmitted make and break codes using the KeyDecoder.
Flags in the PS/2 controller status register.
enum PS2Controller::KeyboardCommand : uint8_t |
Commands to be send to the Keyboard.
enum PS2Controller::Reply |
Commands for the PS/2 Controller.
These commands are processed by the controller and not send to keyboard/mouse. They have to be written into the command register.
enum PS2Controller::Delay |
enum PS2Controller::Speed |
Repeat Rate of Characters.
enum PS2Controller::LED |
void PS2Controller::init | ( | ) |
Initialization of connected devices.
All status LEDs of the keyboard are switched off and the repetition rate is set to maximum speed.
bool PS2Controller::fetch | ( | Key & | pressed | ) |
Retrieve the keyboard event.
Retrieves make and brake events from the keyboard. If a valid (non special) key was pressed, the scan code is determined using KeyDecoder::decode into a Key object. Events on special keys like Shift, Alt, CapsLock etc. are stored (in KeyDecoder) and applied on subsequent keystrokes, while no valid key is retrieved.
Mouse events are ignored.
pressed | Reference to an object which will contain the pressed Key on success |
true
if a valid key was decoded Configure the repeat rate of the keyboard.
delay | configures how long a key must be pressed before the repetition begins. |
speed | determines how fast the key codes should follow each other. Valid values are between 0 (30 characters per second) and 31 (2 characters per second). |