Adding Kaypro1 functional support

- Uses USART instead of polling
- Supports two way communication (only 3 commands to the keyboard
  though)
- Kaypro sends data as ASCII, which severely limits the handling of
  modifiers
- No release signal is sent, so even faking modifiers is next to
  impossible outside of Shift and Ctrl
- Includes default QWERTY and Colemak layouts
- Developed a new buffer macro, which will become the basic macro module
  once all the other modules have been ported (much more efficient, as
  it keeps serial scanning schemes serial, and parallel scanning schemes
  such as matrix, that already serialized into a sort of buffer for the
  debouncing evaluation)
- This module is quite efficient, and would be able to handle very
  excessive macro processing in the future.
- If more of the keypboard communication protocol is desired, I have a
  rom dump of the microcontroller (M5L8049)
This commit is contained in:
Jacob Alexander 2011-11-03 00:09:10 -07:00
parent 266b59b851
commit a017d2f270
6 changed files with 709 additions and 114 deletions

View file

@ -34,15 +34,14 @@
// ----- Defines -----
#define KEYBOARD_SIZE 0x4c // 76 - Size of the array space for the keyboardr(max index)
#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer
// ----- Variables -----
// NOTE: Highest Bit: Valid keypress (0x80 is valid keypress)
// Other Bits: Pressed state sample counter
extern uint8_t KeyIndex_Array [KEYBOARD_SIZE + 1];
static const uint8_t KeyIndex_Size = KEYBOARD_SIZE;
extern volatile uint8_t KeyIndex_Buffer[KEYBOARD_BUFFER];
extern volatile uint8_t KeyIndex_BufferUsed;