![]() |
Ultibo API
C/C++ API for Ultibo Core
|
#include "ultibo/globalconst.h"Go to the source code of this file.
Data Structures | |
| struct | _PS2_KEYBOARD_SCANCODE |
| struct | _PS2_MOUSE_PACKET |
Macros | |
| #define | PS2_KEYBOARD_COMMAND_SET_LEDS 0xED |
| Set LEDS (Data: See below). | |
| #define | PS2_KEYBOARD_COMMAND_ECHO 0xEE |
| Echo (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SCANCODE 0xF0 |
| Get/set current scan code (Data: See below). | |
| #define | PS2_KEYBOARD_COMMAND_IDENTIFY 0xF2 |
| Identify (Data: None) (See: http://wiki.osdev.org/%228042%22_PS/2_Controller#Detecting_PS.2F2_Device_Types). | |
| #define | PS2_KEYBOARD_COMMAND_SET_RATE_DELAY 0xF3 |
| Set typematic rate and delay (Data: See below). | |
| #define | PS2_KEYBOARD_COMMAND_ENABLE_SCAN 0xF4 |
| Enable scanning (keyboard will send scan codes) (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_DISABLE_SCAN 0xF5 |
| Disable scanning (keyboard won't send scan codes) (Data: None) Note: May also restore default parameters. | |
| #define | PS2_KEYBOARD_COMMAND_SET_DEFAULTS 0xF6 |
| Set default parameters (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SET_ALL_TYPEMATIC_ONLY 0xF7 |
| Set all keys to typematic/autorepeat only (Scancode set 3 only) (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_RELEASE 0xF8 |
| Set all keys to make/release (Scancode set 3 only) (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_ONLY 0xF9 |
| Set all keys to make only (Scancode set 3 only) (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_TYPEMATIC 0xFA |
| Set all keys to typematic/autorepeat/make/release (Scancode set 3 only) (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_SET_TYPEMATIC_ONLY 0xFB |
| Set specific key to typematic/autorepeat only (Scancode set 3 only) (Data: Scancode for key). | |
| #define | PS2_KEYBOARD_COMMAND_SET_MAKE_RELEASE 0xFC |
| Set specific key to make/release (Scancode set 3 only) (Data: Scancode for key). | |
| #define | PS2_KEYBOARD_COMMAND_SET_MAKE_ONLY 0xFD |
| Set specific key to make only (Scancode set 3 only) (Data: Scancode for key). | |
| #define | PS2_KEYBOARD_COMMAND_RESEND 0xFE |
| Resend last byte (Data: None). | |
| #define | PS2_KEYBOARD_COMMAND_RESET 0xFF |
| Reset and start self-test (Data: None). | |
| #define | PS2_KEYBOARD_SET_LEDS_SCROLLLOCK (1 << 0) |
| ScrollLock. | |
| #define | PS2_KEYBOARD_SET_LEDS_NUMLOCK (1 << 1) |
| NumberLock. | |
| #define | PS2_KEYBOARD_SET_LEDS_CAPSLOCK (1 << 2) |
| CapsLock. | |
| #define | PS2_KEYBOARD_SCANCODE_GET 0 |
| Get current scan code set. | |
| #define | PS2_KEYBOARD_SCANCODE_SET1 1 |
| Set scan code set 1. | |
| #define | PS2_KEYBOARD_SCANCODE_SET2 2 |
| Set scan code set 2. | |
| #define | PS2_KEYBOARD_SCANCODE_SET3 3 |
| Set scan code set 3. | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_MASK 0x0F |
| Repeat rate (00000b = 30 Hz, ..., 11111b = 2 Hz). | |
| #define | PS2_KEYBOARD_SET_DELAY_MASK 0x70 |
| Delay before keys repeat (00b = 250 ms, 01b = 500 ms, 10b = 750 ms, 11b = 1000 ms). | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_30_0 0x00 |
| 30.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_26_7 0x01 |
| 26.7cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_24_0 0x02 |
| 24.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_21_8 0x03 |
| 21.8cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_20_7 0x04 |
| 20.7cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_18_5 0x05 |
| 18.5cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_17_1 0x06 |
| 17.1cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_16_0 0x07 |
| 16.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_15_0 0x08 |
| 15.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_13_3 0x09 |
| 13.3cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_12_0 0x0A |
| 12.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_10_9 0x0B |
| 10.9cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_10_0 0x0C |
| 10.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_9_2 0x0D |
| 9.2cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_8_6 0x0E |
| 8.6cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_8_0 0x0F |
| 8.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_7_5 0x10 |
| 7.5cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_6_7 0x11 |
| 6.7cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_6_0 0x12 |
| 6.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_5_5 0x13 |
| 5.5cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_5_0 0x14 |
| 5.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_4_6 0x15 |
| 4.6cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_4_3 0x16 |
| 4.3cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_4_0 0x17 |
| 4.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_3_7 0x18 |
| 3.7cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_3_3 0x19 |
| 3.3cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_3_0 0x1A |
| 3.0cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_2_7 0x1B |
| 2.7cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_2_5 0x1C |
| 2.5cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_2_3 0x1D |
| 2.3cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_2_1 0x1E |
| 2.1cps | |
| #define | PS2_KEYBOARD_SET_REPEAT_RATE_2_0 0x1F |
| 2.0cps | |
| #define | PS2_KEYBOARD_SET_DELAY_250 0x00 |
| 250ms | |
| #define | PS2_KEYBOARD_SET_DELAY_500 0x10 |
| 500ms | |
| #define | PS2_KEYBOARD_SET_DELAY_750 0x20 |
| 750ms | |
| #define | PS2_KEYBOARD_SET_DELAY_1000 0x30 |
| 1000ms | |
| #define | PS2_MOUSE_COMMAND_RESET 0xFF |
| Reset (Data: None). | |
| #define | PS2_MOUSE_COMMAND_RESEND 0xFE |
| Resend (Data: None). | |
| #define | PS2_MOUSE_COMMAND_SET_DEFAULTS 0xF6 |
| Set Defaults (Data: None). | |
| #define | PS2_MOUSE_COMMAND_DISABLE_REPORT 0xF5 |
| Disable Data Reporting (Data: None). | |
| #define | PS2_MOUSE_COMMAND_ENABLE_REPORT 0xF4 |
| Enable Data Reporting (Data: None). | |
| #define | PS2_MOUSE_COMMAND_SET_SAMPLE_RATE 0xF3 |
| Set Sample Rate (Data: Sample rate, ranges from 10-200). | |
| #define | PS2_MOUSE_COMMAND_GET_DEVICE_ID 0xF2 |
| Get Device ID (Data: None) (See: http://wiki.osdev.org/%228042%22_PS/2_Controller#Detecting_PS.2F2_Device_Types). | |
| #define | PS2_MOUSE_COMMAND_SET_REMOTE_MODE 0xF0 |
| Set Remote Mode (Data: None). | |
| #define | PS2_MOUSE_COMMAND_SET_WRAP_MODE 0xEE |
| Set Wrap Mode (Data: None). | |
| #define | PS2_MOUSE_COMMAND_RESET_WRAP_MODE 0xEC |
| Reset Wrap Mode (Data: None). | |
| #define | PS2_MOUSE_COMMAND_READ_DATA 0xEB |
| Read Data (Data: None). | |
| #define | PS2_MOUSE_COMMAND_SET_STREAM_MODE 0xEA |
| Set Stream Mode (Data: None). | |
| #define | PS2_MOUSE_COMMAND_STATUS_REQUEST 0xE9 |
| Status Request (Data: None). | |
| #define | PS2_MOUSE_COMMAND_SET_RESOLUTION 0xE8 |
| Set Resolution (Data: See below). | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_10 10 |
| 10 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_20 20 |
| 20 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_40 40 |
| 40 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_60 60 |
| 60 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_80 80 |
| 80 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_100 100 |
| 100 samples/sec | |
| #define | PS2_MOUSE_COMMAND_SAMPLE_RATE_200 200 |
| 200 samples/sec | |
| #define | PS2_MOUSE_COMMAND_RESOLUTION_1 0x00 |
| 1 count/mm | |
| #define | PS2_MOUSE_COMMAND_RESOLUTION_2 0x01 |
| 2 count/mm | |
| #define | PS2_MOUSE_COMMAND_RESOLUTION_4 0x02 |
| 4 count/mm | |
| #define | PS2_MOUSE_COMMAND_RESOLUTION_5 0x03 |
| 8 count/mm | |
| #define | PS2_RESPONSE_NONE 0x00 |
| Key detection error or internal buffer overrun. | |
| #define | PS2_RESPONSE_SELF_TEST_PASS 0xAA |
| Self test passed (sent after "0xFF (reset)" command or keyboard power up). | |
| #define | PS2_RESPONSE_ECHO 0xEE |
| Response to "0xEE (echo)" command. | |
| #define | PS2_RESPONSE_ACK 0xFA |
| Command acknowledged (ACK). | |
| #define | PS2_RESPONSE_SELFTEST_FAIL1 0xFC |
| Self test failed (sent after "0xFF (reset)" command or keyboard power up). | |
| #define | PS2_RESPONSE_SELFTEST_FAIL2 0xFD |
| Self test failed (sent after "0xFF (reset)" command or keyboard power up). | |
| #define | PS2_RESPONSE_RESEND 0xFE |
| Resend (keyboard wants controller to repeat last command it sent). | |
| #define | PS2_RESPONSE_ERROR 0xFF |
| Key detection error or internal buffer overrun. | |
| #define | PS2_MOUSE_BITS_YO (1 << 7) |
| Y-Axis Overflow. | |
| #define | PS2_MOUSE_BITS_XO (1 << 6) |
| X-Axis Overflow. | |
| #define | PS2_MOUSE_BITS_YS (1 << 5) |
| Y-Axis Sign Bit (9-Bit Y-Axis Relative Offset). | |
| #define | PS2_MOUSE_BITS_XS (1 << 4) |
| X-Axis Sign Bit (9-Bit X-Axis Relative Offset). | |
| #define | PS2_MOUSE_BITS_AO (1 << 3) |
| Always One. | |
| #define | PS2_MOUSE_BITS_BM (1 << 2) |
| Button Middle (Normally Off = 0). | |
| #define | PS2_MOUSE_BITS_BR (1 << 1) |
| Button Right (Normally Off = 0). | |
| #define | PS2_MOUSE_BITS_BL (1 << 0) |
| Button Left (Normally Off = 0). | |
| #define | PS2_SCANCODE_MAKE 0 |
| Key Down (Press). | |
| #define | PS2_SCANCODE_BREAK 1 |
| Key Up (Release). | |
| #define | PS2_SCANCODE_PC104_COUNT 104 |
| #define | PS2_SCANCODE_ACPI_COUNT 3 |
| #define | PS2_SCANCODE_MULTIMEDIA_COUNT 18 |
| #define | PS2_SCANCODE_COUNT PS2_SCANCODE_PC104_COUNT + PS2_SCANCODE_ACPI_COUNT + PS2_SCANCODE_MULTIMEDIA_COUNT |
Typedefs | |
| typedef uint8_t | PS2_SCANCODE_DATA[PS2_SCANCODE_COUNT *2][10] |
| typedef struct _PS2_KEYBOARD_SCANCODE | PS2_KEYBOARD_SCANCODE |
| typedef struct _PS2_MOUSE_PACKET | PS2_MOUSE_PACKET |
Functions | |
| uint32_t STDCALL | keyboard_leds_to_ps2_leds (uint32_t leds, uint8_t *ps2leds) |
| Map the Keyboard LED values to the PS/2 Keyboard LED values. | |
| uint32_t STDCALL | keyboard_rate_and_delay_to_ps2_typematic (uint32_t rate, uint32_t delay, uint8_t *ps2typematic) |
| Translate the Keyboard Repeat Rate and Delay values to the PS/2 Keyboard Typematic value. | |
| uint32_t STDCALL | ps2_keyboard_scancode_match (PS2_KEYBOARD_SCANCODE *keyboardscancode, int32_t *index) |
| Check a set of scancode bytes against the specified PS/2 Scancode set for a match. | |
| uint32_t STDCALL | ps2_keyboard_scancode_to_scan_code (PS2_KEYBOARD_SCANCODE *keyboardscancode, int32_t index, uint16_t *scancode) |
| Return the Keyboard Scan Code value for a PS/2 scancode value. | |
| uint32_t STDCALL | ps2_keyboard_scancode_to_modifiers (PS2_KEYBOARD_SCANCODE *keyboardscancode, int32_t index, uint32_t *modifiers) |
| Return the Keyboard Modifiers flags for a PS/2 scancode value. | |
| uint32_t STDCALL | mouse_sample_rate_to_ps2_sample_rate (uint32_t rate, uint8_t *ps2rate) |
| Translate a Mouse Sample Rate value to the PS/2 Mouse Sample Rate value. | |
| uint32_t STDCALL | ps2_mouse_packet_to_mouse_data (PS2_MOUSE_PACKET *mousepacket, MOUSE_DATA *mousedata, uint32_t flags, uint32_t rotation) |
| Translate a PS/2 Mouse Packet into a Mouse Data structure. | |
| #define PS2_KEYBOARD_COMMAND_SET_LEDS 0xED |
Set LEDS (Data: See below).
PS2 specific constants Keyboard command constants (See: http://wiki.osdev.org/PS/2_Keyboard)
| #define PS2_KEYBOARD_COMMAND_ECHO 0xEE |
Echo (Data: None).
| #define PS2_KEYBOARD_COMMAND_SCANCODE 0xF0 |
Get/set current scan code (Data: See below).
| #define PS2_KEYBOARD_COMMAND_IDENTIFY 0xF2 |
Identify (Data: None) (See: http://wiki.osdev.org/%228042%22_PS/2_Controller#Detecting_PS.2F2_Device_Types).
| #define PS2_KEYBOARD_COMMAND_SET_RATE_DELAY 0xF3 |
Set typematic rate and delay (Data: See below).
| #define PS2_KEYBOARD_COMMAND_ENABLE_SCAN 0xF4 |
Enable scanning (keyboard will send scan codes) (Data: None).
| #define PS2_KEYBOARD_COMMAND_DISABLE_SCAN 0xF5 |
Disable scanning (keyboard won't send scan codes) (Data: None) Note: May also restore default parameters.
| #define PS2_KEYBOARD_COMMAND_SET_DEFAULTS 0xF6 |
Set default parameters (Data: None).
| #define PS2_KEYBOARD_COMMAND_SET_ALL_TYPEMATIC_ONLY 0xF7 |
Set all keys to typematic/autorepeat only (Scancode set 3 only) (Data: None).
| #define PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_RELEASE 0xF8 |
Set all keys to make/release (Scancode set 3 only) (Data: None).
| #define PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_ONLY 0xF9 |
Set all keys to make only (Scancode set 3 only) (Data: None).
| #define PS2_KEYBOARD_COMMAND_SET_ALL_MAKE_TYPEMATIC 0xFA |
Set all keys to typematic/autorepeat/make/release (Scancode set 3 only) (Data: None).
| #define PS2_KEYBOARD_COMMAND_SET_TYPEMATIC_ONLY 0xFB |
Set specific key to typematic/autorepeat only (Scancode set 3 only) (Data: Scancode for key).
| #define PS2_KEYBOARD_COMMAND_SET_MAKE_RELEASE 0xFC |
Set specific key to make/release (Scancode set 3 only) (Data: Scancode for key).
| #define PS2_KEYBOARD_COMMAND_SET_MAKE_ONLY 0xFD |
Set specific key to make only (Scancode set 3 only) (Data: Scancode for key).
| #define PS2_KEYBOARD_COMMAND_RESEND 0xFE |
Resend last byte (Data: None).
| #define PS2_KEYBOARD_COMMAND_RESET 0xFF |
Reset and start self-test (Data: None).
| #define PS2_KEYBOARD_SET_LEDS_SCROLLLOCK (1 << 0) |
ScrollLock.
| #define PS2_KEYBOARD_SET_LEDS_NUMLOCK (1 << 1) |
NumberLock.
| #define PS2_KEYBOARD_SET_LEDS_CAPSLOCK (1 << 2) |
CapsLock.
| #define PS2_KEYBOARD_SCANCODE_GET 0 |
Get current scan code set.
| #define PS2_KEYBOARD_SCANCODE_SET1 1 |
Set scan code set 1.
| #define PS2_KEYBOARD_SCANCODE_SET2 2 |
Set scan code set 2.
| #define PS2_KEYBOARD_SCANCODE_SET3 3 |
Set scan code set 3.
| #define PS2_KEYBOARD_SET_REPEAT_RATE_MASK 0x0F |
Repeat rate (00000b = 30 Hz, ..., 11111b = 2 Hz).
| #define PS2_KEYBOARD_SET_DELAY_MASK 0x70 |
Delay before keys repeat (00b = 250 ms, 01b = 500 ms, 10b = 750 ms, 11b = 1000 ms).
| #define PS2_KEYBOARD_SET_REPEAT_RATE_30_0 0x00 |
30.0cps
Bit 7 Must be zero
| #define PS2_KEYBOARD_SET_REPEAT_RATE_26_7 0x01 |
26.7cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_24_0 0x02 |
24.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_21_8 0x03 |
21.8cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_20_7 0x04 |
20.7cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_18_5 0x05 |
18.5cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_17_1 0x06 |
17.1cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_16_0 0x07 |
16.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_15_0 0x08 |
15.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_13_3 0x09 |
13.3cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_12_0 0x0A |
12.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_10_9 0x0B |
10.9cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_10_0 0x0C |
10.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_9_2 0x0D |
9.2cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_8_6 0x0E |
8.6cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_8_0 0x0F |
8.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_7_5 0x10 |
7.5cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_6_7 0x11 |
6.7cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_6_0 0x12 |
6.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_5_5 0x13 |
5.5cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_5_0 0x14 |
5.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_4_6 0x15 |
4.6cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_4_3 0x16 |
4.3cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_4_0 0x17 |
4.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_3_7 0x18 |
3.7cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_3_3 0x19 |
3.3cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_3_0 0x1A |
3.0cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_2_7 0x1B |
2.7cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_2_5 0x1C |
2.5cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_2_3 0x1D |
2.3cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_2_1 0x1E |
2.1cps
| #define PS2_KEYBOARD_SET_REPEAT_RATE_2_0 0x1F |
2.0cps
| #define PS2_KEYBOARD_SET_DELAY_250 0x00 |
250ms
| #define PS2_KEYBOARD_SET_DELAY_500 0x10 |
500ms
| #define PS2_KEYBOARD_SET_DELAY_750 0x20 |
750ms
| #define PS2_KEYBOARD_SET_DELAY_1000 0x30 |
1000ms
| #define PS2_MOUSE_COMMAND_RESET 0xFF |
Reset (Data: None).
Mouse command constants (See: http://wiki.osdev.org/PS/2_Mouse)
| #define PS2_MOUSE_COMMAND_RESEND 0xFE |
Resend (Data: None).
| #define PS2_MOUSE_COMMAND_SET_DEFAULTS 0xF6 |
Set Defaults (Data: None).
| #define PS2_MOUSE_COMMAND_DISABLE_REPORT 0xF5 |
Disable Data Reporting (Data: None).
| #define PS2_MOUSE_COMMAND_ENABLE_REPORT 0xF4 |
Enable Data Reporting (Data: None).
| #define PS2_MOUSE_COMMAND_SET_SAMPLE_RATE 0xF3 |
Set Sample Rate (Data: Sample rate, ranges from 10-200).
| #define PS2_MOUSE_COMMAND_GET_DEVICE_ID 0xF2 |
Get Device ID (Data: None) (See: http://wiki.osdev.org/%228042%22_PS/2_Controller#Detecting_PS.2F2_Device_Types).
| #define PS2_MOUSE_COMMAND_SET_REMOTE_MODE 0xF0 |
Set Remote Mode (Data: None).
| #define PS2_MOUSE_COMMAND_SET_WRAP_MODE 0xEE |
Set Wrap Mode (Data: None).
| #define PS2_MOUSE_COMMAND_RESET_WRAP_MODE 0xEC |
Reset Wrap Mode (Data: None).
| #define PS2_MOUSE_COMMAND_READ_DATA 0xEB |
Read Data (Data: None).
| #define PS2_MOUSE_COMMAND_SET_STREAM_MODE 0xEA |
Set Stream Mode (Data: None).
| #define PS2_MOUSE_COMMAND_STATUS_REQUEST 0xE9 |
Status Request (Data: None).
| #define PS2_MOUSE_COMMAND_SET_RESOLUTION 0xE8 |
Set Resolution (Data: See below).
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_10 10 |
10 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_20 20 |
20 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_40 40 |
40 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_60 60 |
60 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_80 80 |
80 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_100 100 |
100 samples/sec
| #define PS2_MOUSE_COMMAND_SAMPLE_RATE_200 200 |
200 samples/sec
| #define PS2_MOUSE_COMMAND_RESOLUTION_1 0x00 |
1 count/mm
| #define PS2_MOUSE_COMMAND_RESOLUTION_2 0x01 |
2 count/mm
| #define PS2_MOUSE_COMMAND_RESOLUTION_4 0x02 |
4 count/mm
| #define PS2_MOUSE_COMMAND_RESOLUTION_5 0x03 |
8 count/mm
| #define PS2_RESPONSE_NONE 0x00 |
Key detection error or internal buffer overrun.
Response constants
| #define PS2_RESPONSE_SELF_TEST_PASS 0xAA |
Self test passed (sent after "0xFF (reset)" command or keyboard power up).
| #define PS2_RESPONSE_ECHO 0xEE |
Response to "0xEE (echo)" command.
| #define PS2_RESPONSE_ACK 0xFA |
Command acknowledged (ACK).
| #define PS2_RESPONSE_SELFTEST_FAIL1 0xFC |
Self test failed (sent after "0xFF (reset)" command or keyboard power up).
| #define PS2_RESPONSE_SELFTEST_FAIL2 0xFD |
Self test failed (sent after "0xFF (reset)" command or keyboard power up).
| #define PS2_RESPONSE_RESEND 0xFE |
Resend (keyboard wants controller to repeat last command it sent).
| #define PS2_RESPONSE_ERROR 0xFF |
Key detection error or internal buffer overrun.
| #define PS2_MOUSE_BITS_YO (1 << 7) |
Y-Axis Overflow.
Mouse packet bits
| #define PS2_MOUSE_BITS_XO (1 << 6) |
X-Axis Overflow.
| #define PS2_MOUSE_BITS_YS (1 << 5) |
Y-Axis Sign Bit (9-Bit Y-Axis Relative Offset).
| #define PS2_MOUSE_BITS_XS (1 << 4) |
X-Axis Sign Bit (9-Bit X-Axis Relative Offset).
| #define PS2_MOUSE_BITS_AO (1 << 3) |
Always One.
| #define PS2_MOUSE_BITS_BM (1 << 2) |
Button Middle (Normally Off = 0).
| #define PS2_MOUSE_BITS_BR (1 << 1) |
Button Right (Normally Off = 0).
| #define PS2_MOUSE_BITS_BL (1 << 0) |
Button Left (Normally Off = 0).
| #define PS2_SCANCODE_MAKE 0 |
Key Down (Press).
Keyboard scancode types
| #define PS2_SCANCODE_BREAK 1 |
Key Up (Release).
| #define PS2_SCANCODE_PC104_COUNT 104 |
Keyboard scancode counts
| #define PS2_SCANCODE_ACPI_COUNT 3 |
| #define PS2_SCANCODE_MULTIMEDIA_COUNT 18 |
| #define PS2_SCANCODE_COUNT PS2_SCANCODE_PC104_COUNT + PS2_SCANCODE_ACPI_COUNT + PS2_SCANCODE_MULTIMEDIA_COUNT |
| typedef uint8_t PS2_SCANCODE_DATA[PS2_SCANCODE_COUNT *2][10] |
PS2 specific types
| typedef struct _PS2_KEYBOARD_SCANCODE PS2_KEYBOARD_SCANCODE |
Keyboard types
| typedef struct _PS2_MOUSE_PACKET PS2_MOUSE_PACKET |
Mouse types
| uint32_t STDCALL keyboard_leds_to_ps2_leds | ( | uint32_t | leds, |
| uint8_t * | ps2leds ) |
Map the Keyboard LED values to the PS/2 Keyboard LED values.
PS2 Helper Functions
| LEDs | The Keyboard LED values to map (eg KEYBOARD_LED_NUMLOCK) |
| PS2LEDs | The returned PS/2 Keyboard LED values (eg PS2_KEYBOARD_SET_LEDS_NUMLOCK) |
| uint32_t STDCALL keyboard_rate_and_delay_to_ps2_typematic | ( | uint32_t | rate, |
| uint32_t | delay, | ||
| uint8_t * | ps2typematic ) |
Translate the Keyboard Repeat Rate and Delay values to the PS/2 Keyboard Typematic value.
| Rate | The Keyboard Repeat Rate to translate (Milliseconds between repeats) |
| Delay | The Keyboard Repeat Delay to translate (Number of Repeat Rate intervals before first repeat) |
| PS2Typematic | The translated PS/2 Typematic value returned |
| uint32_t STDCALL ps2_keyboard_scancode_match | ( | PS2_KEYBOARD_SCANCODE * | keyboardscancode, |
| int32_t * | index ) |
Check a set of scancode bytes against the specified PS/2 Scancode set for a match.
| KeyboardScancode | Pointer to the scancode bytes and scancode set information |
| Index | The index of the matching scancode on success or the nearest match on not found (Pass -1 to start search from first entry, on subsequent calls pass the previous value to continue) |
| uint32_t STDCALL ps2_keyboard_scancode_to_scan_code | ( | PS2_KEYBOARD_SCANCODE * | keyboardscancode, |
| int32_t | index, | ||
| uint16_t * | scancode ) |
Return the Keyboard Scan Code value for a PS/2 scancode value.
| KeyboardScancode | Pointer to the scancode bytes and scancode set information |
| Index | The index value returned by PS2KeyboardScancodeMatch (-1 to search for match) |
| ScanCode | The returned keyboard scan code value (eg SCAN_CODE_A) |
| uint32_t STDCALL ps2_keyboard_scancode_to_modifiers | ( | PS2_KEYBOARD_SCANCODE * | keyboardscancode, |
| int32_t | index, | ||
| uint32_t * | modifiers ) |
Return the Keyboard Modifiers flags for a PS/2 scancode value.
| Index | The index value returned by PS2KeyboardScancodeMatch (-1 to search for match) |
| Modifiers | The returned keyboard modifiers flags (eg KEYBOARD_LEFT_CTRL) |
| uint32_t STDCALL mouse_sample_rate_to_ps2_sample_rate | ( | uint32_t | rate, |
| uint8_t * | ps2rate ) |
Translate a Mouse Sample Rate value to the PS/2 Mouse Sample Rate value.
| Rate | The Mouse Sample Rate to translate (Samples per second) |
| PS2Rate | The translated PS/2 Sample Rate value returned |
| uint32_t STDCALL ps2_mouse_packet_to_mouse_data | ( | PS2_MOUSE_PACKET * | mousepacket, |
| MOUSE_DATA * | mousedata, | ||
| uint32_t | flags, | ||
| uint32_t | rotation ) |
Translate a PS/2 Mouse Packet into a Mouse Data structure.
| MousePacket | Pointer to the PS/2 Mouse Packet received from the mouse |
| MouseData | Pointer to the Mouse Data structure to return |
| Flags | The Mouse device flags (eg MOUSE_FLAG_SWAP_BUTTONS) |
| Rotation | The Mouse device rotation setting (eg MOUSE_ROTATION_180) |