sdk-core
v2026.11.05
PS2 SDK - core tier (build-critical EE/IOP modules)
Toggle main menu visibility
Loading...
Searching...
No Matches
ps2kbd.h
Go to the documentation of this file.
1
/*
2
# _____ ___ ____ ___ ____
3
# ____| | ____| | | |____|
4
# | ___| |____ ___| ____| | \ PS2DEV Open Source Project.
5
#-----------------------------------------------------------------------
6
# Copyright 2001-2004, ps2dev - http://www.ps2dev.org
7
# Licenced under Academic Free License version 2.0
8
# Review ps2sdk README & LICENSE files for further details.
9
*/
10
16
17
#ifndef __PS2KBD_H__
18
#define __PS2KBD_H__
19
20
#include <
tamtypes.h
>
21
22
#define PS2KBD_FSNAME "usbkbd"
23
#define PS2KBD_KBDFILE "dev"
24
#define PS2KBD_DEVFILE (PS2KBD_FSNAME ":" PS2KBD_KBDFILE)
25
26
#define PS2KBD_LED_NUMLOCK 1
27
#define PS2KBD_LED_CAPSLOCK 2
28
#define PS2KBD_LED_SCRLOCK 4
29
#define PS2KBD_LED_COMPOSE 8
30
#define PS2KBD_LED_KANA 16
31
32
#define PS2KBD_LED_MASK 0x1F;
33
34
#define PS2KBD_ESCAPE_KEY 0x1B
35
36
#define PS2KBD_LEFT_CTRL (1 << 0)
37
#define PS2KBD_LEFT_SHIFT (1 << 1)
38
#define PS2KBD_LEFT_ALT (1 << 2)
39
#define PS2KBD_LEFT_GUI (1 << 3)
40
#define PS2KBD_RIGHT_CTRL (1 << 4)
41
#define PS2KBD_RIGHT_SHIFT (1 << 5)
42
#define PS2KBD_RIGHT_ALT (1 << 6)
43
#define PS2KBD_RIGHT_GUI (1 << 7)
44
45
#define PS2KBD_CTRL (PS2KBD_LEFT_CTRL | PS2KBD_RIGHT_CTRL)
46
#define PS2KBD_SHIFT (PS2KBD_LEFT_SHIFT | PS2KBD_RIGHT_SHIFT)
47
#define PS2KBD_ALT (PS2KBD_LEFT_ALT | PS2KBD_RIGHT_ALT)
48
#define PS2KBD_GUI (PS2KBD_LEFT_GUI | PS2KBD_RIGHT_GUI)
49
50
#define PS2KBD_RAWKEY_UP 0xF0
51
#define PS2KBD_RAWKEY_DOWN 0xF1
52
53
typedef
struct
_kbd_rawkey
54
{
55
u8 state;
56
u8 key;
57
} kbd_rawkey;
58
59
#define PS2KBD_READMODE_NORMAL 1
60
#define PS2KBD_READMODE_RAW 2
61
62
/* Notes on read mode */
63
/* In normal readmode (default) read multiples of 1 character off the keyboard file. These are
64
processed by the keymaps so that you get back ASCII data */
65
/* In raw readmode must read multiples of 2. First byte indicates state (i.e. Up or Down)
66
Second byte is the USB key code for that key. This table is presented in the USB HID Usage Tables manaual
67
from usb.org */
68
69
#define PS2KBD_BLOCKING 1
70
#define PS2KBD_NONBLOCKING 0
71
72
#define PS2KBD_KEYMAP_SIZE 256
73
74
typedef
struct
_kbd_keymap
75
{
76
u8 keymap[PS2KBD_KEYMAP_SIZE];
77
u8 shiftkeymap[PS2KBD_KEYMAP_SIZE];
78
u8 keycap[PS2KBD_KEYMAP_SIZE];
79
} kbd_keymap;
80
81
/* IOCTLs for the keyboard file driver */
82
84
#define PS2KBD_IOCTL_SETREADMODE 1
86
#define PS2KBD_IOCTL_SETLEDS 2
88
#define PS2KBD_IOCTL_SETREPEATRATE 3
90
#define PS2KBD_IOCTL_SETKEYMAP 4
92
#define PS2KBD_IOCTL_SETCTRLMAP 5
94
#define PS2KBD_IOCTL_SETALTMAP 6
96
#define PS2KBD_IOCTL_SETSPECIALMAP 7
98
#define PS2KBD_IOCTL_SETBLOCKMODE 8
100
#define PS2KBD_IOCTL_FLUSHBUFFER 9
102
#define PS2KBD_IOCTL_RESETKEYMAP 10
103
104
/* Note on keymaps. In normal keymap a 0 would indicate no key */
105
/* Key maps are represented by 3 256*8bit tables. First table maps USB key to a char when not shifted */
106
/* Second table maps USB key to a char when shifted */
107
/* Third table contains boolean values. If 1 then the key is shifted/unshifted in capslock, else capslock is ignored */
108
109
#endif
/* __PS2KBD_H__ */
_kbd_keymap
Definition
ps2kbd.h:75
_kbd_rawkey
Definition
ps2kbd.h:54
tamtypes.h
core
kbd
include
ps2kbd.h
Generated by
1.18.0