109 lines
2.1 KiB
C
Executable file
109 lines
2.1 KiB
C
Executable file
/*** K E Y B O A R D ***/
|
|
#define KBD_INT 0x09
|
|
|
|
extern volatile unsigned char keybuf[128];
|
|
extern volatile char kbd_triggered;
|
|
|
|
void kbd_init();
|
|
void kbd_debounce(); // call once per frame
|
|
void kbd_cleanup();
|
|
unsigned char kbd_wait();
|
|
|
|
#define KEY_OFF 0
|
|
#define KEY_PRESSED 1
|
|
#define KEY_DOWN 2
|
|
#define KEY_RELEASED 3
|
|
#define KEY_SIGNAL 0x80
|
|
|
|
#define keyIsDown(k) (keybuf[k] & KEY_SIGNAL)
|
|
#define keyWasPressed(k) ((keybuf[k] & 0x0f) == KEY_PRESSED)
|
|
#define consumeKey(k) (keybuf[k] = keyWasPressed(k) ? KEY_DOWN : keybuf[k])
|
|
#define keyWasReleased(k) ((keybuf[k] & 0x0f) == KEY_RELEASED)
|
|
|
|
#define K_ESC 1
|
|
#define K_1 2
|
|
#define K_2 3
|
|
#define K_3 4
|
|
#define K_4 5
|
|
#define K_5 6
|
|
#define K_6 7
|
|
#define K_7 8
|
|
#define K_8 9
|
|
#define K_9 10
|
|
#define K_0 11
|
|
#define K_MINUS 12
|
|
#define K_EQUAL 13
|
|
#define K_BKSP 14
|
|
#define K_TAB 15
|
|
#define K_Q 16
|
|
#define K_W 17
|
|
#define K_E 18
|
|
#define K_R 19
|
|
#define K_T 20
|
|
#define K_Y 21
|
|
#define K_U 22
|
|
#define K_I 23
|
|
#define K_O 24
|
|
#define K_P 25
|
|
#define K_LBRK 26
|
|
#define K_RBRK 27
|
|
#define K_ENTER 28
|
|
#define K_CTRL 29
|
|
#define K_A 30
|
|
#define K_S 31
|
|
#define K_D 32
|
|
#define K_F 33
|
|
#define K_G 34
|
|
#define K_H 35
|
|
#define K_J 36
|
|
#define K_K 37
|
|
#define K_L 38
|
|
#define K_SEMI 39
|
|
#define K_APOS 40
|
|
#define K_TILDE 41
|
|
#define K_LSHFT 42
|
|
#define K_BSLSH 43
|
|
#define K_Z 44
|
|
#define K_X 45
|
|
#define K_C 46
|
|
#define K_V 47
|
|
#define K_B 48
|
|
#define K_N 49
|
|
#define K_M 50
|
|
#define K_COMMA 51
|
|
#define K_DOT 52
|
|
#define K_SLASH 53
|
|
#define K_RSHFT 54
|
|
#define K_PSCRN 55
|
|
#define K_ALT 56
|
|
#define K_SPACE 57
|
|
#define K_CAPS 58
|
|
#define K_F1 59
|
|
#define K_F2 60
|
|
#define K_F3 61
|
|
#define K_F4 62
|
|
#define K_F5 63
|
|
#define K_F6 64
|
|
#define K_F7 65
|
|
#define K_F8 66
|
|
#define K_F9 67
|
|
#define K_F10 68
|
|
#define K_NUMLK 69
|
|
#define K_SCRL 70
|
|
#define K_HOME 71
|
|
#define K_UP 72
|
|
#define K_PGUP 73
|
|
#define K_NDASH 74
|
|
#define K_LEFT 75
|
|
#define K_CENT 76
|
|
#define K_RIGHT 77
|
|
#define K_NPLUS 78
|
|
#define K_END 79
|
|
#define K_DOWN 80
|
|
#define K_PGDN 81
|
|
#define K_INS 82
|
|
#define K_DEL 83
|
|
#define K_F11 87
|
|
#define K_F12 88
|
|
|