changeset 125:8dab4014c398

Major code cleanup and preparation for PartialMap Macro Module - Code should be working, but much is untested - All of the old modules will need to update and use the new DefaultMap keymap - There might still be some naming conflicts with some Scan Modules
author Jacob Alexander <haata@kiibohd.com>
date Sun, 06 Apr 2014 11:49:27 -0700
parents 2b81083dcaef
children 670fc9c3a739
files CMakeLists.txt Debug/cli/cli.c Debug/cli/cli.h Debug/full/setup.cmake Debug/led/setup.cmake Debug/print/print.c Debug/print/print.h Debug/print/setup.cmake Keymap/avrcapsense.h Keymap/betkb.h Keymap/budkeypad.h Keymap/epsonqx10.h Keymap/facom6684.h Keymap/heathzenith.h Keymap/hp150.h Keymap/ibmconvertible.h Keymap/kaypro1.h Keymap/keymap.h Keymap/mbc55x.h Keymap/microswitch8304.h Keymap/skm67001.h Keymap/sonynews.h Keymap/sonyoas3400.h Keymap/tandy1000.h Keymap/univacf3w9.h Keymap/usb_keys.h Macro/PartialMap/macro.c Macro/PartialMap/macro.h Macro/PartialMap/setup.cmake Macro/PartialMap/usb_hid.h Macro/basic/setup.cmake Macro/buffer/Keymap/avrcapsense.h Macro/buffer/Keymap/betkb.h Macro/buffer/Keymap/budkeypad.h Macro/buffer/Keymap/epsonqx10.h Macro/buffer/Keymap/facom6684.h Macro/buffer/Keymap/heathzenith.h Macro/buffer/Keymap/hp150.h Macro/buffer/Keymap/ibmconvertible.h Macro/buffer/Keymap/kaypro1.h Macro/buffer/Keymap/keymap.h Macro/buffer/Keymap/mbc55x.h Macro/buffer/Keymap/microswitch8304.h Macro/buffer/Keymap/skm67001.h Macro/buffer/Keymap/sonynews.h Macro/buffer/Keymap/sonyoas3400.h Macro/buffer/Keymap/tandy1000.h Macro/buffer/Keymap/univacf3w9.h Macro/buffer/Keymap/usb_keys.h Macro/buffer/setup.cmake Output/pjrcUSB/output_com.c Output/pjrcUSB/output_com.h Scan/BETKB/scan_loop.c Scan/BETKB/scan_loop.h Scan/BETKB/setup.cmake Scan/BudKeypad/setup.cmake Scan/DPH/scan_loop.c Scan/DPH/scan_loop.h Scan/DPH/setup.cmake Scan/EpsonQX-10/scan_loop.c Scan/EpsonQX-10/scan_loop.h Scan/EpsonQX-10/setup.cmake Scan/FACOM6684/scan_loop.c Scan/FACOM6684/scan_loop.h Scan/FACOM6684/setup.cmake Scan/HP150/scan_loop.c Scan/HP150/scan_loop.h Scan/HP150/setup.cmake Scan/HeathZenith/setup.cmake Scan/IBMConvertible/setup.cmake Scan/Kaypro1/scan_loop.c Scan/Kaypro1/scan_loop.h Scan/Kaypro1/setup.cmake Scan/MBC-55X/scan_loop.c Scan/MBC-55X/scan_loop.h Scan/MBC-55X/setup.cmake Scan/MicroSwitch8304/scan_loop.c Scan/MicroSwitch8304/scan_loop.h Scan/MicroSwitch8304/setup.cmake Scan/SKM67001/customSKM.h Scan/SKM67001/defaultMap.h Scan/SKM67001/setup.cmake Scan/SonyNEWS/scan_loop.c Scan/SonyNEWS/scan_loop.h Scan/SonyNEWS/setup.cmake Scan/SonyOA-S3400/scan_loop.c Scan/SonyOA-S3400/scan_loop.h Scan/SonyOA-S3400/setup.cmake Scan/Tandy1000/scan_loop.c Scan/Tandy1000/scan_loop.h Scan/Tandy1000/setup.cmake Scan/UnivacF3W9/scan_loop.c Scan/UnivacF3W9/scan_loop.h Scan/UnivacF3W9/setup.cmake Scan/matrix/scan_loop.c Scan/matrix/scan_loop.h Scan/matrix/setup.cmake main.c setup.cmake
diffstat 99 files changed, 6994 insertions(+), 6525 deletions(-) [+]
line wrap: on
line diff
--- a/CMakeLists.txt	Tue Apr 01 01:16:53 2014 -0700
+++ b/CMakeLists.txt	Sun Apr 06 11:49:27 2014 -0700
@@ -11,9 +11,6 @@
 set( CMAKE_LEGACY_CYGWIN_WIN32 0 )
 set( CMAKE_USE_RELATIVE_PATHS  1 )
 
-#| Add Dependency Macro
-include( AddFileDependencies )
-
 
 
 ###
--- a/Debug/cli/cli.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/cli/cli.c	Sun Apr 06 11:49:27 2014 -0700
@@ -58,7 +58,7 @@
 }
 
 // Initialize the CLI
-inline void init_cli()
+inline void CLI_init()
 {
 	// Reset the Line Buffer
 	CLILineBufferCurrent = 0;
@@ -68,7 +68,7 @@
 
 	// Register first dictionary
 	CLIDictionariesUsed = 0;
-	registerDictionary_cli( basicCLIDict, basicCLIDictName );
+	CLI_registerDictionary( basicCLIDict, basicCLIDictName );
 
 	// Initialize main LED
 	init_errorLED();
@@ -79,7 +79,7 @@
 }
 
 // Query the serial input buffer for any new characters
-void process_cli()
+void CLI_process()
 {
 	// Current buffer position
 	uint8_t prev_buf_pos = CLILineBufferCurrent;
@@ -88,11 +88,11 @@
 	while ( 1 )
 	{
 		// No more characters to process
-		if ( output_availablechar() == 0 )
+		if ( Output_availablechar() == 0 )
 			break;
 
 		// Retrieve from output module
-		char cur_char = (char)output_getchar();
+		char cur_char = (char)Output_getchar();
 
 		// Make sure buffer isn't full
 		if ( CLILineBufferCurrent >= CLILineBufferMaxSize )
@@ -143,7 +143,7 @@
 				CLILineBufferCurrent--;
 
 			// Process the current line buffer
-			commandLookup_cli();
+			CLI_commandLookup();
 
 			// Reset the buffer
 			CLILineBufferCurrent = 0;
@@ -158,7 +158,7 @@
 
 		case 0x09: // Tab
 			// Tab completion for the current command
-			tabCompletion_cli();
+			CLI_tabCompletion();
 
 			CLILineBufferCurrent--; // Remove the Tab
 
@@ -207,7 +207,7 @@
 //  One to the first non-space character
 //  The second to the next argument (first NULL if there isn't an argument). delimited by a space
 //  Places a NULL at the first space after the first argument
-inline void argumentIsolation_cli( char* string, char** first, char** second )
+inline void CLI_argumentIsolation( char* string, char** first, char** second )
 {
 	// Mark out the first argument
 	// This is done by finding the first space after a list of non-spaces and setting it NULL
@@ -228,7 +228,7 @@
 }
 
 // Scans the CLILineBuffer for any valid commands
-void commandLookup_cli()
+void CLI_commandLookup()
 {
 	// Ignore command if buffer is 0 length
 	if ( CLILineBufferCurrent == 0 )
@@ -241,7 +241,7 @@
 	// Places a NULL at the first space after the command
 	char* cmdPtr;
 	char* argPtr;
-	argumentIsolation_cli( CLILineBuffer, &cmdPtr, &argPtr );
+	CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr );
 
 	// Scan array of dictionaries for a valid command match
 	for ( uint8_t dict = 0; dict < CLIDictionariesUsed; dict++ )
@@ -267,7 +267,7 @@
 }
 
 // Registers a command dictionary with the CLI
-inline void registerDictionary_cli( CLIDictItem *cmdDict, char* dictName )
+inline void CLI_registerDictionary( CLIDictItem *cmdDict, char* dictName )
 {
 	// Make sure this max limit of dictionaries hasn't been reached
 	if ( CLIDictionariesUsed >= CLIMaxDictionaries )
@@ -281,7 +281,7 @@
 	CLIDict[CLIDictionariesUsed++] = cmdDict;
 }
 
-inline void tabCompletion_cli()
+inline void CLI_tabCompletion()
 {
 	// Ignore command if buffer is 0 length
 	if ( CLILineBufferCurrent == 0 )
@@ -294,7 +294,7 @@
 	// Places a NULL at the first space after the command
 	char* cmdPtr;
 	char* argPtr;
-	argumentIsolation_cli( CLILineBuffer, &cmdPtr, &argPtr );
+	CLI_argumentIsolation( CLILineBuffer, &cmdPtr, &argPtr );
 
 	// Tab match pointer
 	char* tabMatch = 0;
@@ -393,7 +393,7 @@
 void cliFunc_reload( char* args )
 {
 	// Request to output module to be set into firmware reload mode
-	output_firmwareReload();
+	Output_firmwareReload();
 }
 
 void cliFunc_reset( char* args )
@@ -404,7 +404,7 @@
 void cliFunc_restart( char* args )
 {
 	// Trigger an overall software reset
-	output_softReset();
+	Output_softReset();
 }
 
 void cliFunc_version( char* args )
--- a/Debug/cli/cli.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/cli/cli.h	Sun Apr 06 11:49:27 2014 -0700
@@ -66,13 +66,13 @@
 
 // ----- Functions and Corresponding Function Aliases -----
 
-void init_cli();
-void process_cli();
-void registerDictionary_cli( CLIDictItem *cmdDict, char* dictName );
-void argumentIsolation_cli( char* string, char** first, char** second );
+void CLI_init();
+void CLI_process();
+void CLI_registerDictionary( CLIDictItem *cmdDict, char* dictName );
+void CLI_argumentIsolation( char* string, char** first, char** second );
 
-void commandLookup_cli();
-void tabCompletion_cli();
+void CLI_commandLookup();
+void CLI_tabCompletion();
 
 // CLI Command Functions
 void cliFunc_arch    ( char* args );
--- a/Debug/full/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/full/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -20,13 +20,6 @@
 
 
 ###
-# Setup File Dependencies
-#
-add_file_dependencies( ../led/led.c ../led/led.h )
-add_file_dependencies( ../print/print.c ../print/print.h )
-
-
-###
 # Module Specific Options
 #
 add_definitions(
--- a/Debug/led/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/led/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -17,12 +17,6 @@
 
 
 ###
-# Setup File Dependencies
-#
-add_file_dependencies( ../led/led.c ../led/led.h )
-
-
-###
 # Module Specific Options
 #
 
--- a/Debug/print/print.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/print/print.c	Sun Apr 06 11:49:27 2014 -0700
@@ -45,7 +45,7 @@
 	while ( !( cur[0] == '\0' && cur[1] == '\0' && cur[2] == '\0' ) )
 	{
 		// Print out the given string
-		output_putstr( cur );
+		Output_putstr( cur );
 
 		// Get the next argument ready
 		cur = va_arg( ap, char* );
@@ -62,10 +62,10 @@
 	char c;
 	while ( ( c = pgm_read_byte( s++ ) ) != '\0' )
 	{
-		output_putchar( c );
+		Output_putchar( c );
 	}
 #elif defined(_mk20dx128_) || defined(_mk20dx256_) // ARM
-	output_putstr( (char*)s );
+	Output_putstr( (char*)s );
 #endif
 }
 
--- a/Debug/print/print.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/print/print.h	Sun Apr 06 11:49:27 2014 -0700
@@ -46,8 +46,8 @@
  */
 
 // Function Aliases
-#define dPrint(c)         output_putstr(c)
-#define dPrintStr(c)      output_putstr(c)
+#define dPrint(c)         Output_putstr(c)
+#define dPrintStr(c)      Output_putstr(c)
 #define dPrintStrs(...)   printstrs(__VA_ARGS__, "\0\0\0")      // Convenience Variadic Macro
 #define dPrintStrNL(c)    dPrintStrs       (c, NL)              // Appends New Line Macro
 #define dPrintStrsNL(...) printstrs(__VA_ARGS__, NL, "\0\0\0")  // Appends New Line Macro
--- a/Debug/print/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Debug/print/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Debug Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -17,12 +17,6 @@
 
 
 ###
-# Setup File Dependencies
-#
-add_file_dependencies( ../led/print.c ../led/print.h )
-
-
-###
 # Module Specific Options
 #
 
--- a/Keymap/avrcapsense.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,538 +0,0 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
- * dfj, place whatever license you want here
- */
-
-#ifndef __AVRCAPSENSE_H
-#define __AVRCAPSENSE_H
-
-// This file contains various key layouts for dfj's AVR Capsense Controller
-
-
-// ----- Variables -----
-
-static uint8_t  avrcapsense_ModifierMask [] = { 0x34, 0x38, 0x3A, 0x40 };
-
-// Default 1-indexed key mappings
-static uint8_t avrcapsense_DefaultMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_SEMICOLON, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_D, // 0x64
-				KEY_E, // 0x65
-				KEY_F, // 0x66
-				KEY_G, // 0x67
-				KEY_H, // 0x68
-				KEY_I, // 0x69
-				KEY_J, // 0x6A
-				KEY_K, // 0x6B
-				KEY_L, // 0x6C
-				KEY_M, // 0x6D
-				KEY_N, // 0x6E
-				KEY_O, // 0x6F
-				KEY_P, // 0x70
-				KEY_Q, // 0x71
-				KEY_R, // 0x72
-				KEY_S, // 0x73
-				KEY_T, // 0x74
-				KEY_U, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_Y, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-static uint8_t avrcapsense_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_O, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_S, // 0x64
-				KEY_F, // 0x65
-				KEY_T, // 0x66
-				KEY_D, // 0x67
-				KEY_H, // 0x68
-				KEY_U, // 0x69
-				KEY_N, // 0x6A
-				KEY_E, // 0x6B
-				KEY_I, // 0x6C
-				KEY_M, // 0x6D
-				KEY_K, // 0x6E
-				KEY_Y, // 0x6F
-				KEY_SEMICOLON, // 0x70
-				KEY_Q, // 0x71
-				KEY_P, // 0x72
-				KEY_R, // 0x73
-				KEY_G, // 0x74
-				KEY_L, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_J, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-
-
-#endif
-
--- a/Keymap/betkb.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __BETKB_H
-#define __BETKB_H
-
-// This file contains various key layouts for the Burroughs Ergonomic Terminal Keyboard (Kokusai)
-
-
-// ----- Variables -----
-static uint8_t betkb_ModifierMask[] = { 0x20, 0x2D, 0x2E, 0x30, 0x3E, 0x60 };
-
-static uint8_t betkb_DefaultMap[] = { 
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				0, // 0x08
-				0, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				0, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				0, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_LEFT_SHIFT, // 0x20
-				0, // 0x21
-				KEY_Z, // 0x22
-				KEY_X, // 0x23
-				KEY_C, // 0x24
-				KEY_V, // 0x25
-				KEY_B, // 0x26
-				KEY_N, // 0x27
-				KEY_M, // 0x28
-				KEY_COMMA, // 0x29
-				KEY_PERIOD, // 0x2A
-				KEY_SLASH, // 0x2B
-				0, // 0x2C
-				KEY_RIGHT_SHIFT, // 0x2D
-				KEY_LEFT_ALT, // 0x2E
-				KEY_SPACE, // 0x2F
-				KEY_LEFT_CTRL, // 0x30
-				KEY_A, // 0x31
-				KEY_S, // 0x32
-				KEY_D, // 0x33
-				KEY_F, // 0x34
-				KEY_G, // 0x35
-				KEY_H, // 0x36
-				KEY_J, // 0x37
-				KEY_K, // 0x38
-				KEY_L, // 0x39
-				KEY_SEMICOLON, // 0x3A
-				KEY_QUOTE, // 0x3B
-				0, // 0x3C
-				KEY_ENTER, // 0x3D
-				KEY_RIGHT_GUI, // 0x3E
-				KEY_LEFT, // 0x3F (KEYPAD_1)
-				KEY_TAB, // 0x40
-				KEY_Q, // 0x41
-				KEY_W, // 0x42
-				KEY_E, // 0x43
-				KEY_R, // 0x44
-				KEY_T, // 0x45
-				KEY_Y, // 0x46
-				KEY_U, // 0x47
-				KEY_I, // 0x48
-				KEY_O, // 0x49
-				KEY_P, // 0x4A
-				KEY_LEFT_BRACE, // 0x4B
-				KEY_RIGHT_BRACE, // 0x4C
-				KEY_BACKSLASH, // 0x4D
-				KEY_DELETE, // 0x4E
-				KEYPAD_4, // 0x4F
-				KEY_ESC, // 0x50
-				KEY_1, // 0x51
-				KEY_2, // 0x52
-				KEY_3, // 0x53
-				KEY_4, // 0x54
-				KEY_5, // 0x55
-				KEY_6, // 0x56
-				KEY_7, // 0x57
-				KEY_8, // 0x58
-				KEY_9, // 0x59
-				KEY_0, // 0x5A
-				KEY_MINUS, // 0x5B
-				KEY_EQUAL, // 0x5C
-				KEY_TILDE, // 0x5D
-				KEY_BACKSPACE, // 0x5E
-				KEY_NUM_LOCK, // 0x5F
-				KEY_LEFT_GUI, // 0x60
-				KEY_HOME, // 0x61
-				KEY_END, // 0x62
-				KEY_INSERT, // 0x63
-				KEY_DELETE, // 0x64
-				KEY_F1, // 0x65
-				KEY_F2, // 0x66
-				KEY_F3, // 0x67
-				KEY_F4, // 0x68
-				KEY_F5, // 0x69
-				KEY_F6, // 0x6A
-				KEY_F7, // 0x6B
-				KEY_F8, // 0x6C
-				KEY_F9, // 0x6D
-				KEY_F10, // 0x6E
-				KEY_PRINTSCREEN, // 0x6F
-				KEY_PAGE_UP, // 0x70
-				KEY_PAGE_DOWN, // 0x71
-				KEY_F11, // 0x72
-				KEYPAD_7, // 0x73
-				KEYPAD_8, // 0x74
-				KEYPAD_9, // 0x75
-				KEY_UP, // 0x76 (KEYPAD_5)
-				KEYPAD_6, // 0x77
-				KEY_DOWN, // 0x78 (KEYPAD_2)
-				KEY_RIGHT, // 0x79 (KEYPAD_3)
-				KEYPAD_0, // 0x7A
-				KEYPAD_00, // 0x7B
-				KEYPAD_ENTER, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-static uint8_t betkb_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				0, // 0x08
-				0, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				0, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				0, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_LEFT_SHIFT, // 0x20
-				0, // 0x21
-				KEY_Z, // 0x22
-				KEY_X, // 0x23
-				KEY_C, // 0x24
-				KEY_V, // 0x25
-				KEY_B, // 0x26
-				KEY_K, // 0x27
-				KEY_M, // 0x28
-				KEY_COMMA, // 0x29
-				KEY_PERIOD, // 0x2A
-				KEY_SLASH, // 0x2B
-				0, // 0x2C
-				KEY_RIGHT_SHIFT, // 0x2D
-				KEY_LEFT_ALT, // 0x2E
-				KEY_SPACE, // 0x2F
-				KEY_LEFT_CTRL, // 0x30
-				KEY_A, // 0x31
-				KEY_R, // 0x32
-				KEY_S, // 0x33
-				KEY_T, // 0x34
-				KEY_D, // 0x35
-				KEY_H, // 0x36
-				KEY_N, // 0x37
-				KEY_E, // 0x38
-				KEY_I, // 0x39
-				KEY_O, // 0x3A
-				KEY_QUOTE, // 0x3B
-				0, // 0x3C
-				KEY_ENTER, // 0x3D
-				KEY_RIGHT_GUI, // 0x3E
-				KEY_LEFT, // 0x3F (KEYPAD_1)
-				KEY_TAB, // 0x40
-				KEY_Q, // 0x41
-				KEY_W, // 0x42
-				KEY_F, // 0x43
-				KEY_P, // 0x44
-				KEY_G, // 0x45
-				KEY_J, // 0x46
-				KEY_L, // 0x47
-				KEY_U, // 0x48
-				KEY_Y, // 0x49
-				KEY_SEMICOLON, // 0x4A
-				KEY_LEFT_BRACE, // 0x4B
-				KEY_RIGHT_BRACE, // 0x4C
-				KEY_BACKSLASH, // 0x4D
-				KEY_DELETE, // 0x4E
-				KEYPAD_4, // 0x4F
-				KEY_ESC, // 0x50
-				KEY_1, // 0x51
-				KEY_2, // 0x52
-				KEY_3, // 0x53
-				KEY_4, // 0x54
-				KEY_5, // 0x55
-				KEY_6, // 0x56
-				KEY_7, // 0x57
-				KEY_8, // 0x58
-				KEY_9, // 0x59
-				KEY_0, // 0x5A
-				KEY_MINUS, // 0x5B
-				KEY_EQUAL, // 0x5C
-				KEY_TILDE, // 0x5D
-				KEY_BACKSPACE, // 0x5E
-				KEY_NUM_LOCK, // 0x5F
-				KEY_LEFT_GUI, // 0x60
-				KEY_HOME, // 0x61
-				KEY_END, // 0x62
-				KEY_INSERT, // 0x63
-				KEY_DELETE, // 0x64
-				KEY_F1, // 0x65
-				KEY_F2, // 0x66
-				KEY_F3, // 0x67
-				KEY_F4, // 0x68
-				KEY_F5, // 0x69
-				KEY_F6, // 0x6A
-				KEY_F7, // 0x6B
-				KEY_F8, // 0x6C
-				KEY_F9, // 0x6D
-				KEY_F10, // 0x6E
-				KEY_PRINTSCREEN, // 0x6F
-				KEY_PAGE_UP, // 0x70
-				KEY_PAGE_DOWN, // 0x71
-				KEY_F11, // 0x72
-				KEYPAD_7, // 0x73
-				KEYPAD_8, // 0x74
-				KEYPAD_9, // 0x75
-				KEY_UP, // 0x76 (KEYPAD_5)
-				KEYPAD_6, // 0x77
-				KEY_DOWN, // 0x78 (KEYPAD_2)
-				KEY_RIGHT, // 0x79 (KEYPAD_3)
-				KEYPAD_0, // 0x7A
-				KEYPAD_00, // 0x7B
-				KEYPAD_ENTER, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-
-
-#endif
-
--- a/Keymap/budkeypad.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __BUDKEYPAD_H
-#define __BUDKEYPAD_H
-
-// This file contains various key layouts for the Bud Hall Effect Keypad (16 key)
-
-
-// ----- Variables -----
-
-static uint8_t budkeypad_ModifierMask[] = {};
-
-// Default 1-indexed key mappings
-static uint8_t budkeypad_DefaultMap[] = { 0,
-				KEYPAD_7,
-				KEYPAD_8,
-				KEYPAD_9,
-				KEYPAD_SLASH,
-				KEYPAD_4,
-				KEYPAD_5,
-				KEYPAD_6,
-				KEYPAD_ASTERIX,
-				KEYPAD_1,
-				KEYPAD_2,
-				KEYPAD_3,
-				KEYPAD_MINUS,
-				KEYPAD_ENTER,
-				KEYPAD_0,
-				KEYPAD_PERIOD,
-				KEYPAD_PLUS,
-};
-
-static uint8_t budkeypad_TheProfosistMap[] = { 0,
-				KEY_7,
-				KEY_8,
-				KEY_9,
-				KEYPAD_SLASH,
-				KEY_4,
-				KEY_5,
-				KEY_6,
-				KEYPAD_ASTERIX,
-				KEY_1,
-				KEY_2,
-				KEY_3,
-				KEYPAD_MINUS,
-				KEY_0,
-				KEYPAD_PERIOD,
-				KEYPAD_ENTER,
-				KEYPAD_PLUS,
-};
-
-
-
-#endif
-
--- a/Keymap/epsonqx10.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,331 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __EPSONQX10_H
-#define __EPSONQX10_H
-
-// This file contains various key layouts for the Epson QX-10 Series of keyboards
-// NOTE: Modifiers can't be remapped to non-modifer keys due to how the signals are interpretted
-//       Remapping between modifier keys is perfectly fine (or even a modifier to a normal key)
-
-
-
-// ----- Variables -----
-static uint8_t epsonqx10_ModifierMask[] = { 0x81, 0x83, 0x85, 0x87, 0x89, 0x8B, 0x8D, 0x8F };
-
-static uint8_t epsonqx10_DefaultMap[] = { 
-				0x00, // 0x00
-				KEY_F4, // 0x01
-				0, // 0x02
-				KEY_F5, // 0x03
-				KEY_F6, // 0x04
-				KEY_F7, // 0x05
-				KEY_F8, // 0x06
-				KEY_F9, // 0x07
-				0, // 0x08
-				KEY_F10, // 0x09
-				KEY_F11, // 0x0A
-				KEY_F12, // 0x0B
-				KEY_F13, // 0x0C
-				0, // 0x0D
-				KEY_F14, // 0x0E
-				KEY_F15, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				KEYPAD_ENTER, // 0x15
-				KEYPAD_PERIOD, // 0x16
-				KEYPAD_0, // 0x17
-				KEYPAD_EQUAL, // 0x18
-				KEYPAD_6, // 0x19
-				KEYPAD_5, // 0x1A
-				KEYPAD_4, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				KEY_F17, // 0x1E
-				KEY_F16, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				KEYPAD_3, // 0x25
-				KEYPAD_2, // 0x26
-				KEYPAD_1, // 0x27
-				KEYPAD_PLUS, // 0x28
-				KEYPAD_9, // 0x29
-				KEYPAD_8, // 0x2A
-				KEYPAD_7, // 0x2B
-				KEYPAD_MINUS, // 0x2C
-				KEYPAD_ASTERIX, // 0x2D
-				KEYPAD_SLASH, // 0x2E
-				KEY_NUM_LOCK, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_SPACE, // 0x32
-				KEY_Z, // 0x33
-				KEY_X, // 0x34
-				KEY_C, // 0x35
-				KEY_V, // 0x36
-				KEY_B, // 0x37
-				KEY_N, // 0x38
-				KEY_M, // 0x39
-				KEY_COMMA, // 0x3A
-				KEY_PERIOD, // 0x3B
-				KEY_UP, // 0x3C
-				KEY_LEFT, // 0x3D
-				KEY_RIGHT, // 0x3E
-				KEY_DOWN, // 0x3F
-				0, // 0x40
-				KEY_F19, // 0x41
-				KEY_CAPS_LOCK, // 0x42
-				KEY_A, // 0x43
-				KEY_S, // 0x44
-				KEY_D, // 0x45
-				KEY_F, // 0x46
-				KEY_G, // 0x47
-				KEY_H, // 0x48
-				KEY_J, // 0x49
-				KEY_K, // 0x4A
-				KEY_L, // 0x4B
-				KEY_SEMICOLON, // 0x4C
-				KEY_QUOTE, // 0x4D
-				KEY_ENTER, // 0x4E
-				KEY_SLASH, // 0x4F
-				0, // 0x50
-				KEY_Q, // 0x51
-				KEY_W, // 0x52
-				KEY_E, // 0x53
-				KEY_R, // 0x54
-				KEY_T, // 0x55
-				KEY_Y, // 0x56
-				KEY_U, // 0x57
-				KEY_I, // 0x58
-				KEY_O, // 0x59
-				KEY_P, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_RIGHT_BRACE, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_INSERT, // 0x5E
-				KEY_PAGE_DOWN, // 0x5F
-				0, // 0x60
-				KEY_2, // 0x61
-				KEY_3, // 0x62
-				KEY_4, // 0x63
-				KEY_5, // 0x64
-				KEY_6, // 0x65
-				KEY_7, // 0x66
-				KEY_8, // 0x67
-				KEY_9, // 0x68
-				KEY_0, // 0x69
-				KEY_MINUS, // 0x6A
-				KEY_EQUAL, // 0x6B
-				KEY_TILDE, // 0x6C
-				KEY_BACKSPACE, // 0x6D
-				KEY_DELETE, // 0x6E
-				KEY_PAGE_UP, // 0x6F
-				0, // 0x70
-				KEY_F3, // 0x71
-				KEY_F2, // 0x72
-				KEY_F1, // 0x73
-				KEY_F18, // 0x74
-				KEY_ESC, // 0x75
-				KEY_1, // 0x76
-				KEY_TAB, // 0x77
-				KEY_F19, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				KEY_RIGHT_SHIFT, // 0x85
-				0, // 0x86
-				KEY_LEFT_SHIFT, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				KEY_LEFT_CTRL, // 0x8B
-				0, // 0x8C
-				KEY_GUI, // 0x8D
-				0, // 0x8E
-				KEY_RIGHT_CTRL, // 0x8F
-};
-
-static uint8_t epsonqx10_ColemakMap[] = {
-				0x00, // 0x00
-				KEY_F4, // 0x01
-				0, // 0x02
-				KEY_F5, // 0x03
-				KEY_F6, // 0x04
-				KEY_F7, // 0x05
-				KEY_F8, // 0x06
-				KEY_F9, // 0x07
-				0, // 0x08
-				KEY_F10, // 0x09
-				KEY_F11, // 0x0A
-				KEY_F12, // 0x0B
-				KEY_F13, // 0x0C
-				0, // 0x0D
-				KEY_F14, // 0x0E
-				KEY_F15, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				KEYPAD_ENTER, // 0x15
-				KEYPAD_PERIOD, // 0x16
-				KEYPAD_0, // 0x17
-				KEYPAD_EQUAL, // 0x18
-				KEYPAD_6, // 0x19
-				KEYPAD_5, // 0x1A
-				KEYPAD_4, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				KEY_F17, // 0x1E
-				KEY_F16, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				KEYPAD_3, // 0x25
-				KEYPAD_2, // 0x26
-				KEYPAD_1, // 0x27
-				KEYPAD_PLUS, // 0x28
-				KEYPAD_9, // 0x29
-				KEYPAD_8, // 0x2A
-				KEYPAD_7, // 0x2B
-				KEYPAD_MINUS, // 0x2C
-				KEYPAD_ASTERIX, // 0x2D
-				KEYPAD_SLASH, // 0x2E
-				KEY_NUM_LOCK, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_SPACE, // 0x32
-				KEY_Z, // 0x33
-				KEY_X, // 0x34
-				KEY_C, // 0x35
-				KEY_V, // 0x36
-				KEY_B, // 0x37
-				KEY_K, // 0x38
-				KEY_M, // 0x39
-				KEY_COMMA, // 0x3A
-				KEY_PERIOD, // 0x3B
-				KEY_UP, // 0x3C
-				KEY_LEFT, // 0x3D
-				KEY_RIGHT, // 0x3E
-				KEY_DOWN, // 0x3F
-				0, // 0x40
-				KEY_F19, // 0x41
-				KEY_CAPS_LOCK, // 0x42
-				KEY_A, // 0x43
-				KEY_R, // 0x44
-				KEY_S, // 0x45
-				KEY_T, // 0x46
-				KEY_D, // 0x47
-				KEY_H, // 0x48
-				KEY_N, // 0x49
-				KEY_E, // 0x4A
-				KEY_I, // 0x4B
-				KEY_O, // 0x4C
-				KEY_QUOTE, // 0x4D
-				KEY_ENTER, // 0x4E
-				KEY_SLASH, // 0x4F
-				0, // 0x50
-				KEY_Q, // 0x51
-				KEY_W, // 0x52
-				KEY_F, // 0x53
-				KEY_P, // 0x54
-				KEY_G, // 0x55
-				KEY_J, // 0x56
-				KEY_L, // 0x57
-				KEY_U, // 0x58
-				KEY_Y, // 0x59
-				KEY_SEMICOLON, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_RIGHT_BRACE, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_INSERT, // 0x5E
-				KEY_PAGE_DOWN, // 0x5F
-				0, // 0x60
-				KEY_2, // 0x61
-				KEY_3, // 0x62
-				KEY_4, // 0x63
-				KEY_5, // 0x64
-				KEY_6, // 0x65
-				KEY_7, // 0x66
-				KEY_8, // 0x67
-				KEY_9, // 0x68
-				KEY_0, // 0x69
-				KEY_MINUS, // 0x6A
-				KEY_EQUAL, // 0x6B
-				KEY_TILDE, // 0x6C
-				KEY_BACKSPACE, // 0x6D
-				KEY_DELETE, // 0x6E
-				KEY_PAGE_UP, // 0x6F
-				0, // 0x70
-				KEY_F3, // 0x71
-				KEY_F2, // 0x72
-				KEY_F1, // 0x73
-				KEY_F18, // 0x74
-				KEY_ESC, // 0x75
-				KEY_1, // 0x76
-				KEY_TAB, // 0x77
-				KEY_F19, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				KEY_RIGHT_SHIFT, // 0x85
-				0, // 0x86
-				KEY_LEFT_SHIFT, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				KEY_LEFT_CTRL, // 0x8B
-				0, // 0x8C
-				KEY_GUI, // 0x8D
-				0, // 0x8E
-				KEY_ALT, // 0x8F
-};
-
-
-
-#endif
-
--- a/Keymap/facom6684.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __FACOM6684_H
-#define __FACOM6684_H
-
-// This file contains various key layouts for the Fujitsu FACOM 6684KC3 Supercomputer Terminal Keyboard
-
-
-// ----- Variables -----
-static uint8_t facom6684_ModifierMask[] = { 0x22, 0x12, 0x05, 0x04, 0x03 };
-
-static uint8_t facom6684_DefaultMap[] = { 
-				0, // 0x00
-				0, // 0x01
-				KEY_SPACE, // 0x02
-				KEY_LEFT_ALT, // 0x03
-				KEY_RIGHT_ALT, // 0x04
-				KEY_LEFT_GUI, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_ENTER, // 0x09
-				0, // 0x0A
-				KEY_ENTER, // 0x0B
-				KEYPAD_0, // 0x0C
-				KEYPAD_00, // 0x0D
-				KEYPAD_000, // 0x0E
-				KEYPAD_DECIMAL, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				KEY_LEFT_SHIFT, // 0x12
-				0, // 0x13
-				KEY_Z, // 0x14
-				KEY_X, // 0x15
-				KEY_C, // 0x16
-				KEY_V, // 0x17
-				KEY_B, // 0x18
-				KEY_N, // 0x19
-				KEY_M, // 0x1A
-				KEY_COMMA, // 0x1B
-				KEYPAD_1, // 0x1C
-				KEYPAD_2, // 0x1D
-				KEYPAD_3, // 0x1E
-				KEYPAD_ENTER, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				KEY_LEFT_CTRL, // 0x22
-				KEY_A, // 0x23
-				KEY_S, // 0x24
-				KEY_D, // 0x25
-				KEY_F, // 0x26
-				KEY_G, // 0x27
-				KEY_H, // 0x28
-				KEY_J, // 0x29
-				KEY_K, // 0x2A
-				KEY_L, // 0x2B
-				KEYPAD_4, // 0x2C
-				KEYPAD_5, // 0x2D
-				KEYPAD_6, // 0x2E
-				KEYPAD_MINUS, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_TAB, // 0x32
-				KEY_Q, // 0x33
-				KEY_W, // 0x34
-				KEY_E, // 0x35
-				KEY_R, // 0x36
-				KEY_T, // 0x37
-				KEY_Y, // 0x38
-				KEY_U, // 0x39
-				KEY_I, // 0x3A
-				KEY_O, // 0x3B
-				KEYPAD_7, // 0x3C
-				KEYPAD_8, // 0x3D
-				KEYPAD_9, // 0x3E
-				KEYPAD_TAB, // 0x3F
-				0, // 0x40
-				KEY_TILDE, // 0x41
-				KEY_ESC, // 0x42
-				KEY_1, // 0x43
-				KEY_2, // 0x44
-				KEY_3, // 0x45
-				KEY_4, // 0x46
-				KEY_5, // 0x47
-				KEY_6, // 0x48
-				KEY_7, // 0x49
-				KEY_8, // 0x4A
-				KEY_9, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				KEYPAD_COMMA, // 0x4E
-				KEYPAD_SPACE, // 0x4F
-				KEY_F1, // 0x50
-				KEY_F2, // 0x51
-				KEY_F3, // 0x52
-				KEY_F4, // 0x53
-				KEY_F5, // 0x54
-				KEY_F6, // 0x55
-				KEY_F7, // 0x56
-				KEY_F8, // 0x57
-				KEY_0, // 0x58
-				KEY_P, // 0x59
-				KEY_SEMICOLON, // 0x5A
-				KEY_PERIOD, // 0x5B
-				KEY_INSERT, // 0x5C
-				KEY_LEFT, // 0x5D
-				0, // 0x5E
-				KEY_DELETE, // 0x5F
-				KEY_F13, // 0x60
-				KEY_F14, // 0x61
-				KEY_F15, // 0x62
-				KEY_F16, // 0x63
-				KEY_F17, // 0x64
-				KEY_F18, // 0x65
-				KEY_F9, // 0x66
-				KEY_F10, // 0x67
-				KEY_MINUS, // 0x68
-				KEY_LEFT_BRACE, // 0x69
-				KEY_QUOTE, // 0x6A
-				KEY_SLASH, // 0x6B
-				KEY_HOME, // 0x6C
-				KEY_DOWN, // 0x6D
-				0, // 0x6E
-				KEY_END, // 0x6F
-				KEY_F19, // 0x70
-				KEY_F20, // 0x71
-				KEY_F21, // 0x72
-				KEY_F22, // 0x73
-				KEY_F23, // 0x74
-				KEY_F24, // 0x75
-				KEY_F11, // 0x76
-				KEY_F12, // 0x77
-				KEY_EQUAL, // 0x78
-				KEY_RIGHT_BRACE, // 0x79
-				KEY_BACKSLASH, // 0x7A
-				KEY_UP, // 0x7B
-				KEY_PAGE_UP, // 0x7C
-				KEY_RIGHT, // 0x7D
-				0, // 0x7E
-				KEY_PAGE_DOWN, // 0x7F
-};
-
-static uint8_t facom6684_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				KEY_SPACE, // 0x02
-				KEY_LEFT_ALT, // 0x03
-				KEY_RIGHT_ALT, // 0x04
-				KEY_LEFT_GUI, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_ENTER, // 0x09
-				0, // 0x0A
-				KEY_ENTER, // 0x0B
-				KEYPAD_0, // 0x0C
-				KEYPAD_00, // 0x0D
-				KEYPAD_000, // 0x0E
-				KEYPAD_DECIMAL, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				KEY_LEFT_SHIFT, // 0x12
-				0, // 0x13
-				KEY_Z, // 0x14
-				KEY_X, // 0x15
-				KEY_C, // 0x16
-				KEY_V, // 0x17
-				KEY_B, // 0x18
-				KEY_K, // 0x19
-				KEY_M, // 0x1A
-				KEY_COMMA, // 0x1B
-				KEYPAD_1, // 0x1C
-				KEYPAD_2, // 0x1D
-				KEYPAD_3, // 0x1E
-				KEYPAD_ENTER, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				KEY_LEFT_CTRL, // 0x22
-				KEY_A, // 0x23
-				KEY_R, // 0x24
-				KEY_S, // 0x25
-				KEY_T, // 0x26
-				KEY_D, // 0x27
-				KEY_H, // 0x28
-				KEY_N, // 0x29
-				KEY_E, // 0x2A
-				KEY_I, // 0x2B
-				KEYPAD_4, // 0x2C
-				KEYPAD_5, // 0x2D
-				KEYPAD_6, // 0x2E
-				KEYPAD_MINUS, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_TAB, // 0x32
-				KEY_Q, // 0x33
-				KEY_W, // 0x34
-				KEY_F, // 0x35
-				KEY_P, // 0x36
-				KEY_G, // 0x37
-				KEY_J, // 0x38
-				KEY_L, // 0x39
-				KEY_U, // 0x3A
-				KEY_Y, // 0x3B
-				KEYPAD_7, // 0x3C
-				KEYPAD_8, // 0x3D
-				KEYPAD_9, // 0x3E
-				KEYPAD_TAB, // 0x3F
-				0, // 0x40
-				KEY_TILDE, // 0x41
-				KEY_ESC, // 0x42
-				KEY_1, // 0x43
-				KEY_2, // 0x44
-				KEY_3, // 0x45
-				KEY_4, // 0x46
-				KEY_5, // 0x47
-				KEY_6, // 0x48
-				KEY_7, // 0x49
-				KEY_8, // 0x4A
-				KEY_9, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				KEYPAD_COMMA, // 0x4E
-				KEYPAD_SPACE, // 0x4F
-				KEY_F1, // 0x50
-				KEY_F2, // 0x51
-				KEY_F3, // 0x52
-				KEY_F4, // 0x53
-				KEY_F5, // 0x54
-				KEY_F6, // 0x55
-				KEY_F7, // 0x56
-				KEY_F8, // 0x57
-				KEY_0, // 0x58
-				KEY_SEMICOLON, // 0x59
-				KEY_O, // 0x5A
-				KEY_PERIOD, // 0x5B
-				KEY_INSERT, // 0x5C
-				KEY_LEFT, // 0x5D
-				0, // 0x5E
-				KEY_DELETE, // 0x5F
-				KEY_F13, // 0x60
-				KEY_F14, // 0x61
-				KEY_F15, // 0x62
-				KEY_F16, // 0x63
-				KEY_F17, // 0x64
-				KEY_F18, // 0x65
-				KEY_F9, // 0x66
-				KEY_F10, // 0x67
-				KEY_MINUS, // 0x68
-				KEY_LEFT_BRACE, // 0x69
-				KEY_QUOTE, // 0x6A
-				KEY_SLASH, // 0x6B
-				KEY_HOME, // 0x6C
-				KEY_DOWN, // 0x6D
-				0, // 0x6E
-				KEY_END, // 0x6F
-				KEY_F19, // 0x70
-				KEY_F20, // 0x71
-				KEY_F21, // 0x72
-				KEY_F22, // 0x73
-				KEY_F23, // 0x74
-				KEY_F24, // 0x75
-				KEY_F11, // 0x76
-				KEY_F12, // 0x77
-				KEY_EQUAL, // 0x78
-				KEY_RIGHT_BRACE, // 0x79
-				KEY_BACKSLASH, // 0x7A
-				KEY_UP, // 0x7B
-				KEY_PAGE_UP, // 0x7C
-				KEY_RIGHT, // 0x7D
-				0, // 0x7E
-				KEY_PAGE_DOWN, // 0x7F
-};
-
-
-
-#endif
-
--- a/Keymap/heathzenith.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,234 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __HEATHZENITH_H
-#define __HEATHZENITH_H
-
-// This file contains various key layouts for the custom Heath-Zenith Keyboard
-
-
-// ----- Variables -----
-
-static uint8_t  heathzenith_ModifierMask [] = { 1, 17, 33, 49 };
-static uint8_t  heathzenith_AlternateMask[] = { 1, 17, 33, 49, 62 };
-
-// Default 1-indexed key mappings
-static uint8_t heathzenith_DefaultMap[] = { 0,
-				KEY_GUI,
-				KEY_1,
-				KEY_2,
-				KEY_3,
-				KEY_4,
-				KEY_5,
-				KEY_6,
-				KEY_7,
-				KEY_8,
-				KEY_9,
-				KEY_0,
-				KEY_MINUS,
-				KEY_EQUAL,
-				KEY_BACKSLASH,
-				KEY_TILDE,
-				KEY_BACKSPACE,
-				KEY_ALT,
-				KEY_TAB,
-				KEY_Q,
-				KEY_W,
-				KEY_E,
-				KEY_R,
-				KEY_T,
-				KEY_Y,
-				KEY_U,
-				KEY_I,
-				KEY_O,
-				KEY_P,
-				KEY_LEFT_BRACE,
-				KEY_RIGHT_BRACE,
-				KEY_DELETE,
-				KEY_UP,
-				KEY_CTRL,
-				KEY_CAPS_LLOCK,
-				KEY_A,
-				KEY_S,
-				KEY_D,
-				KEY_F,
-				KEY_G,
-				KEY_H,
-				KEY_J,
-				KEY_K,
-				KEY_L,
-				KEY_SEMICOLON,
-				KEY_QUOTE,
-				KEY_ENTER,
-				KEY_DOWN,
-				KEY_ESC,
-				KEY_LEFT_SHIFT,
-				KEY_Z,
-				KEY_X,
-				KEY_C,
-				KEY_V,
-				KEY_B,
-				KEY_N,
-				KEY_M,
-				KEY_COMMA,
-				KEY_PERIOD,
-				KEY_SLASH,
-				KEY_RIGHT_SHIFT,
-				KEY_LEFT,
-				KEY_RIGHT,
-				KEY_SPACE
-};
-static uint8_t heathzenith_NavigationMap[] = { 0,
-				KEY_GUI,
-				KEY_F1,
-				KEY_F2,
-				KEY_F3,
-				KEY_F4,
-				KEY_F5,
-				KEY_F6,
-				KEY_F7,
-				KEY_F8,
-				KEY_F9,
-				KEY_F10,
-				KEY_F11,
-				KEY_F12,
-				KEY_INSERT,
-				KEY_DELETE,
-				KEY_BACKSPACE,
-				KEY_ALT,
-				KEY_CAPS_LOCK,
-				0,
-				0,
-				0,
-				0,
-				0,
-				0,
-				0,
-				KEY_SYSREQ_ATT,
-				KEY_SCROLL_LOCK,
-				KEY_PAUSE,
-				KEY_UP,
-				0,
-				0,
-				0,
-				KEY_CTRL,
-				KEY_CAPS_LLOCK,
-				0,
-				0,
-				0,
-				0,
-				0,
-				KEYPAD_ASTERIX,
-				KEYPAD_SLASH,
-				KEY_HOME,
-				KEY_PAGE_UP,
-				KEY_LEFT,
-				KEY_RIGHT,
-				KEY_ENTER,
-				0,
-				KEY_ESC,
-				KEY_LEFT_SHIFT,
-				0,
-				0,
-				0,
-				0,
-				0,
-				KEYPAD_PLUS,
-				KEYPAD_MINUS,
-				KEY_END,
-				KEY_PAGE_DOWN,
-				KEY_DOWN,
-				KEY_RIGHT_SHIFT,
-				165,
-				KEY_RIGHT_ALT,
-				KEY_SPACE
-};
-
-static uint8_t heathzenith_ColemakMap[] = { 0,
-				KEY_GUI,
-				KEY_1,
-				KEY_2,
-				KEY_3,
-				KEY_4,
-				KEY_5,
-				KEY_6,
-				KEY_7,
-				KEY_8,
-				KEY_9,
-				KEY_0,
-				KEY_MINUS,
-				KEY_EQUAL,
-				KEY_BACKSLASH,
-				KEY_TILDE,
-				KEY_BACKSPACE,
-				KEY_ALT,
-				KEY_TAB,
-				KEY_Q,
-				KEY_W,
-				KEY_F,
-				KEY_P,
-				KEY_G,
-				KEY_J,
-				KEY_L,
-				KEY_U,
-				KEY_Y,
-				KEY_SEMICOLON,
-				KEY_LEFT_BRACE,
-				KEY_RIGHT_BRACE,
-				KEY_DELETE,
-				KEY_PAGE_UP,
-				KEY_CTRL,
-				KEY_CAPS_LLOCK,
-				KEY_A,
-				KEY_R,
-				KEY_S,
-				KEY_T,
-				KEY_D,
-				KEY_H,
-				KEY_N,
-				KEY_E,
-				KEY_I,
-				KEY_O,
-				KEY_QUOTE,
-				KEY_ENTER,
-				KEY_PAGE_DOWN,
-				KEY_ESC,
-				KEY_LEFT_SHIFT,
-				KEY_Z,
-				KEY_X,
-				KEY_C,
-				KEY_V,
-				KEY_B,
-				KEY_K,
-				KEY_M,
-				KEY_COMMA,
-				KEY_PERIOD,
-				KEY_SLASH,
-				KEY_RIGHT_SHIFT,
-				165,
-				KEY_RIGHT_ALT,
-				KEY_SPACE
-};
-
-
-
-#endif
-
--- a/Keymap/hp150.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __HP150_H
-#define __HP150_H
-
-// This file contains various key layouts for the HP150 Keyboard
-
-
-// ----- Variables -----
-static uint8_t hp150_ModifierMask[] = { 0x2F, 0x39, 0x3A, 0x3F, 0x45, 0x46, 0x76 };
-
-static uint8_t hp150_DefaultMap[] = { 
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				0, // 0x08
-				0, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				KEY_MENU, // 0x0C
-				KEY_VOL_DOWN, // 0x0D
-				KEY_VOL_UP, // 0x0E
-				KEY_F8, // 0x0F
-				KEY_F7, // 0x10
-				KEY_F6, // 0x11
-				KEY_F5, // 0x12
-				KEY_PRINTSCREEN, // 0x13
-				KEY_8, // 0x14
-				KEY_END, // 0x15
-				KEY_HOME, // 0x16
-				KEY_BACKSPACE, // 0x17
-				KEY_EQUAL, // 0x18
-				KEY_MINUS, // 0x19
-				KEY_0, // 0x1A
-				KEY_9, // 0x1B
-				KEY_I, // 0x1C
-				KEY_DELETE, // 0x1D
-				KEY_INSERT, // 0x1E
-				KEY_BACKSLASH, // 0x1F
-				KEY_RIGHT_BRACE, // 0x20
-				KEY_LEFT_BRACE, // 0x21
-				KEY_P, // 0x22
-				KEY_O, // 0x23
-				KEY_J, // 0x24
-				KEY_PAGE_UP, // 0x25
-				KEY_NUM_LOCK, // 0x26
-				KEY_ENTER, // 0x27
-				KEY_QUOTE, // 0x28
-				KEY_SEMICOLON, // 0x29
-				KEY_L, // 0x2A
-				KEY_K, // 0x2B
-				KEY_M, // 0x2C
-				KEY_PAGE_DOWN, // 0x2D
-				KEY_UP, // 0x2E
-				KEY_RIGHT_GUI, // 0x2F
-				KEY_1, // 0x30
-				KEY_SLASH, // 0x31
-				KEY_PERIOD, // 0x32
-				KEY_COMMA, // 0x33
-				0, // 0x34
-				KEY_RIGHT, // 0x35
-				KEY_DOWN, // 0x36
-				KEY_LEFT, // 0x37
-				KEY_RIGHT_GUI, // 0x38
-				KEY_RIGHT_ALT, // 0x39
-				KEY_LEFT_ALT, // 0x3A
-				KEY_SPACE, // 0x3B
-				KEY_F4, // 0x3C
-				KEY_G, // 0x3D
-				KEY_NUMBER, // 0x3E
-				KEY_CTRL, // 0x3F
-				KEY_TILDE, // 0x40
-				KEY_F1, // 0x41
-				KEY_F2, // 0x42
-				KEY_F3, // 0x43
-				KEY_7, // 0x44
-				KEY_LEFT_SHIFT, // 0x45
-				KEY_RIGHT_SHIFT, // 0x46
-				KEY_CAPS_LOCK, // 0x47
-				KEY_3, // 0x48
-				KEY_4, // 0x49
-				KEY_5, // 0x4A
-				KEY_6, // 0x4B
-				KEY_U, // 0x4C
-				KEY_TAB, // 0x4D
-				KEY_Q, // 0x4E
-				KEY_W, // 0x4F
-				KEY_E, // 0x50
-				KEY_R, // 0x51
-				KEY_T, // 0x52
-				KEY_Y, // 0x53
-				KEY_H, // 0x54
-				KEY_2, // 0x55
-				KEY_LEFT_GUI, // 0x56
-				KEY_A, // 0x57
-				KEY_S, // 0x58
-				KEY_D, // 0x59
-				KEY_F, // 0x5A
-				KEY_ESC, // 0x5B
-				KEYPAD_COMMA, // 0x5C
-				KEYPAD_TAB, // 0x5D
-				KEYPAD_6, // 0x5E
-				KEYPAD_9, // 0x5F
-				KEYPAD_5, // 0x60
-				KEYPAD_8, // 0x61
-				KEYPAD_4, // 0x62
-				KEYPAD_7, // 0x63
-				KEY_TAB, // 0x64
-				KEYPAD_MINUS, // 0x65
-				KEYPAD_3, // 0x66
-				KEYPAD_PLUS, // 0x67
-				KEYPAD_2, // 0x68
-				KEYPAD_SLASH, // 0x69
-				KEYPAD_1, // 0x6A
-				KEYPAD_ASTERIX, // 0x6B
-				0, // 0x6C
-				KEY_F12, // 0x6D
-				KEYPAD_PERIOD, // 0x6E
-				KEY_F11, // 0x6F
-				0, // 0x70
-				KEY_F10, // 0x71
-				KEYPAD_0, // 0x72
-				KEY_F9, // 0x73
-				KEY_N, // 0x74
-				KEY_ESC, // 0x75
-				KEY_GUI, // 0x76
-				KEY_Z, // 0x77
-				KEY_X, // 0x78
-				KEY_C, // 0x79
-				KEY_V, // 0x7A
-				KEY_B, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-static uint8_t hp150_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				0, // 0x08
-				0, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				KEY_MENU, // 0x0C
-				KEY_VOL_DOWN, // 0x0D
-				KEY_VOL_UP, // 0x0E
-				KEY_F8, // 0x0F
-				KEY_F7, // 0x10
-				KEY_F6, // 0x11
-				KEY_F5, // 0x12
-				KEY_PRINTSCREEN, // 0x13
-				KEY_8, // 0x14
-				KEY_END, // 0x15
-				KEY_HOME, // 0x16
-				KEY_BACKSPACE, // 0x17
-				KEY_EQUAL, // 0x18
-				KEY_MINUS, // 0x19
-				KEY_0, // 0x1A
-				KEY_9, // 0x1B
-				KEY_U, // 0x1C
-				KEY_DELETE, // 0x1D
-				KEY_INSERT, // 0x1E
-				KEY_BACKSLASH, // 0x1F
-				KEY_RIGHT_BRACE, // 0x20
-				KEY_LEFT_BRACE, // 0x21
-				KEY_SEMICOLON, // 0x22
-				KEY_Y, // 0x23
-				KEY_N, // 0x24
-				KEY_PAGE_UP, // 0x25
-				KEY_NUM_LOCK, // 0x26
-				KEY_ENTER, // 0x27
-				KEY_QUOTE, // 0x28
-				KEY_O, // 0x29
-				KEY_I, // 0x2A
-				KEY_E, // 0x2B
-				KEY_M, // 0x2C
-				KEY_PAGE_DOWN, // 0x2D
-				KEY_UP, // 0x2E
-				KEY_RIGHT_GUI, // 0x2F
-				KEY_1, // 0x30
-				KEY_SLASH, // 0x31
-				KEY_PERIOD, // 0x32
-				KEY_COMMA, // 0x33
-				0, // 0x34
-				KEY_RIGHT, // 0x35
-				KEY_DOWN, // 0x36
-				KEY_LEFT, // 0x37
-				KEY_RIGHT_GUI, // 0x38
-				KEY_RIGHT_ALT, // 0x39
-				KEY_LEFT_ALT, // 0x3A
-				KEY_SPACE, // 0x3B
-				KEY_F4, // 0x3C
-				KEY_D, // 0x3D
-				KEY_NUMBER, // 0x3E
-				KEY_CTRL, // 0x3F
-				KEY_TILDE, // 0x40
-				KEY_F1, // 0x41
-				KEY_F2, // 0x42
-				KEY_F3, // 0x43
-				KEY_7, // 0x44
-				KEY_LEFT_SHIFT, // 0x45
-				KEY_RIGHT_SHIFT, // 0x46
-				KEY_CAPS_LOCK, // 0x47
-				KEY_3, // 0x48
-				KEY_4, // 0x49
-				KEY_5, // 0x4A
-				KEY_6, // 0x4B
-				KEY_L, // 0x4C
-				KEY_TAB, // 0x4D
-				KEY_Q, // 0x4E
-				KEY_W, // 0x4F
-				KEY_F, // 0x50
-				KEY_P, // 0x51
-				KEY_G, // 0x52
-				KEY_J, // 0x53
-				KEY_H, // 0x54
-				KEY_2, // 0x55
-				KEY_LEFT_GUI, // 0x56
-				KEY_A, // 0x57
-				KEY_R, // 0x58
-				KEY_S, // 0x59
-				KEY_T, // 0x5A
-				KEY_ESC, // 0x5B
-				KEYPAD_COMMA, // 0x5C
-				KEYPAD_TAB, // 0x5D
-				KEYPAD_6, // 0x5E
-				KEYPAD_9, // 0x5F
-				KEYPAD_5, // 0x60
-				KEYPAD_8, // 0x61
-				KEYPAD_4, // 0x62
-				KEYPAD_7, // 0x63
-				KEY_TAB, // 0x64
-				KEYPAD_MINUS, // 0x65
-				KEYPAD_3, // 0x66
-				KEYPAD_PLUS, // 0x67
-				KEYPAD_2, // 0x68
-				KEYPAD_SLASH, // 0x69
-				KEYPAD_1, // 0x6A
-				KEYPAD_ASTERIX, // 0x6B
-				0, // 0x6C
-				KEY_F12, // 0x6D
-				KEYPAD_PERIOD, // 0x6E
-				KEY_F11, // 0x6F
-				0, // 0x70
-				KEY_F10, // 0x71
-				KEYPAD_0, // 0x72
-				KEY_F9, // 0x73
-				KEY_K, // 0x74
-				KEY_ESC, // 0x75
-				KEY_GUI, // 0x76
-				KEY_Z, // 0x77
-				KEY_X, // 0x78
-				KEY_C, // 0x79
-				KEY_V, // 0x7A
-				KEY_B, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-
-
-#endif
-
--- a/Keymap/ibmconvertible.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __IBMCONV_H
-#define __IBMCONV_H
-
-// This file contains various key layouts for the IBM Convertible keyboard
-
-
-// ----- Variables -----
-
-static uint8_t  ibmconv_ModifierMask [] = { 0x2C, 0x38, 0x3A, 0x3B, 0x3C, 0x3E };
-
-// Default 1-indexed key mappings
-static uint8_t ibmconv_DefaultMap[] = {
-				0, // 0x00
-				KEY_TILDE, // 0x01
-				KEY_1, // 0x02
-				KEY_2, // 0x03
-				KEY_3, // 0x04
-				KEY_4, // 0x05
-				KEY_5, // 0x06
-				KEY_6, // 0x07
-				KEY_7, // 0x08 (7)
-				KEY_8, // 0x09 (8)
-				KEY_9, // 0x0A (9)
-				KEY_0, // 0x0B
-				KEY_MINUS, // 0x0C (-)
-				KEY_EQUAL, // 0x0D (+)
-				KEY_BACKSLASH, // 0x0E
-				KEY_BACKSPACE, // 0x0F
-				KEY_TAB, // 0x10
-				KEY_Q, // 0x11
-				KEY_W, // 0x12
-				KEY_E, // 0x13
-				KEY_R, // 0x14
-				KEY_T, // 0x15
-				KEY_Y, // 0x16
-				KEY_U, // 0x17 (4)
-				KEY_I, // 0x18 (5)
-				KEY_O, // 0x19 (6)
-				KEY_P, // 0x1A
-				KEY_LEFT_BRACE, // 0x1B
-				KEY_RIGHT_BRACE, // 0x1C
-				0, // 0x1D
-				KEY_CAPS_LOCK, // 0x1E
-				KEY_A, // 0x1F
-				KEY_S, // 0x20
-				KEY_D, // 0x21
-				KEY_F, // 0x22
-				KEY_G, // 0x23
-				KEY_H, // 0x24
-				KEY_J, // 0x25 (1)
-				KEY_K, // 0x26 (2)
-				KEY_L, // 0x27 (3)
-				KEY_SEMICOLON, // 0x28
-				KEY_QUOTE, // 0x29
-				0, // 0x2A (1/4)
-				KEY_ENTER, // 0x2B
-				KEY_LEFT_SHIFT, // 0x2C
-				0, // 0x2D
-				KEY_Z, // 0x2E
-				KEY_X, // 0x2F
-				KEY_C, // 0x30
-				KEY_V, // 0x31
-				KEY_B, // 0x32
-				KEY_N, // 0x33
-				KEY_M, // 0x34 (0)
-				KEY_COMMA, // 0x35
-				KEY_PERIOD, // 0x36 (Decimal)
-				KEY_SLASH, // 0x37 (/)
-				KEY_RIGHT_SHIFT, // 0x38
-				KEY_PRINTSCREEN, // 0x39 (*)
-				KEY_LEFT_CTRL, // 0x3A
-				KEY_LEFT_GUI, // 0x3B
-				KEY_LEFT_ALT, // 0x3C
-				KEY_SPACE, // 0x3D
-				KEY_RIGHT_ALT, // 0x3E
-				KEY_LEFT, // 0x3F (Home)
-				KEY_UP, // 0x40 (PgUp)
-				KEY_DOWN, // 0x41 (PgDn)
-				KEY_RIGHT, // 0x42 (End)
-				KEY_ESC, // 0x43
-				KEY_F1, // 0x44
-				KEY_F2, // 0x45
-				KEY_F3, // 0x46
-				KEY_F4, // 0x47
-				KEY_F5, // 0x48
-				KEY_F6, // 0x49
-				KEY_F7, // 0x4A
-				KEY_F8, // 0x4B
-				KEY_F9, // 0x4C
-				KEY_F10, // 0x4D
-				KEY_NUM_LOCK, // 0x4E
-				KEY_SCROLL_LOCK, // 0x4F
-				KEY_INSERT, // 0x50
-				KEY_DELETE, // 0x51
-};
-
-static uint8_t ibmconv_ColemakMap[] = {
-				0, // 0x00
-				KEY_TILDE, // 0x01
-				KEY_1, // 0x02
-				KEY_2, // 0x03
-				KEY_3, // 0x04
-				KEY_4, // 0x05
-				KEY_5, // 0x06
-				KEY_6, // 0x07
-				KEY_7, // 0x08 (7)
-				KEY_8, // 0x09 (8)
-				KEY_9, // 0x0A (9)
-				KEY_0, // 0x0B
-				KEY_MINUS, // 0x0C (-)
-				KEY_EQUAL, // 0x0D (+)
-				KEY_BACKSLASH, // 0x0E
-				KEY_BACKSPACE, // 0x0F
-				KEY_TAB, // 0x10
-				KEY_Q, // 0x11
-				KEY_W, // 0x12
-				KEY_F, // 0x13
-				KEY_P, // 0x14
-				KEY_G, // 0x15
-				KEY_J, // 0x16
-				KEY_L, // 0x17 (4)
-				KEY_U, // 0x18 (5)
-				KEY_Y, // 0x19 (6)
-				KEY_SEMICOLON, // 0x1A
-				KEY_LEFT_BRACE, // 0x1B
-				KEY_RIGHT_BRACE, // 0x1C
-				0, // 0x1D
-				KEY_CAPS_LOCK, // 0x1E
-				KEY_A, // 0x1F
-				KEY_R, // 0x20
-				KEY_S, // 0x21
-				KEY_T, // 0x22
-				KEY_D, // 0x23
-				KEY_H, // 0x24
-				KEY_N, // 0x25 (1)
-				KEY_E, // 0x26 (2)
-				KEY_I, // 0x27 (3)
-				KEY_O, // 0x28
-				KEY_QUOTE, // 0x29
-				0, // 0x2A (1/4)
-				KEY_ENTER, // 0x2B
-				KEY_LEFT_SHIFT, // 0x2C
-				0, // 0x2D
-				KEY_Z, // 0x2E
-				KEY_X, // 0x2F
-				KEY_C, // 0x30
-				KEY_V, // 0x31
-				KEY_B, // 0x32
-				KEY_K, // 0x33
-				KEY_M, // 0x34 (0)
-				KEY_COMMA, // 0x35
-				KEY_PERIOD, // 0x36 (Decimal)
-				KEY_SLASH, // 0x37 (/)
-				KEY_RIGHT_SHIFT, // 0x38
-				KEY_PRINTSCREEN, // 0x39 (*)
-				KEY_LEFT_CTRL, // 0x3A
-				KEY_LEFT_GUI, // 0x3B
-				KEY_LEFT_ALT, // 0x3C
-				KEY_SPACE, // 0x3D
-				KEY_RIGHT_ALT, // 0x3E
-				KEY_LEFT, // 0x3F (Home)
-				KEY_UP, // 0x40 (PgUp)
-				KEY_DOWN, // 0x41 (PgDn)
-				KEY_RIGHT, // 0x42 (End)
-				KEY_ESC, // 0x43
-				KEY_F1, // 0x44
-				KEY_F2, // 0x45
-				KEY_F3, // 0x46
-				KEY_F4, // 0x47
-				KEY_F5, // 0x48
-				KEY_F6, // 0x49
-				KEY_F7, // 0x4A
-				KEY_F8, // 0x4B
-				KEY_F9, // 0x4C
-				KEY_F10, // 0x4D
-				KEY_NUM_LOCK, // 0x4E
-				KEY_SCROLL_LOCK, // 0x4F
-				KEY_INSERT, // 0x50
-				KEY_DELETE, // 0x51
-};
-
-
-
-#endif
-
--- a/Keymap/kaypro1.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,551 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __KAYPRO1_H
-#define __KAYPRO1_H
-
-// This file contains various key layouts for the Kaypro 1 keyboard
-
-
-// ----- Variables -----
-
-static uint8_t kaypro1_ModifierMask[] = { 0xF5, 0xF6 };
-
-static uint8_t kaypro1_DefaultMap[] = { 0,
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_SEMICOLON, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_D, // 0x64
-				KEY_E, // 0x65
-				KEY_F, // 0x66
-				KEY_G, // 0x67
-				KEY_H, // 0x68
-				KEY_I, // 0x69
-				KEY_J, // 0x6A
-				KEY_K, // 0x6B
-				KEY_L, // 0x6C
-				KEY_M, // 0x6D
-				KEY_N, // 0x6E
-				KEY_O, // 0x6F
-				KEY_P, // 0x70
-				KEY_Q, // 0x71
-				KEY_R, // 0x72
-				KEY_S, // 0x73
-				KEY_T, // 0x74
-				KEY_U, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_Y, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-static uint8_t kaypro1_ColemakMap[] = { 0,
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_O, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_S, // 0x64
-				KEY_F, // 0x65
-				KEY_T, // 0x66
-				KEY_D, // 0x67
-				KEY_H, // 0x68
-				KEY_U, // 0x69
-				KEY_N, // 0x6A
-				KEY_E, // 0x6B
-				KEY_I, // 0x6C
-				KEY_M, // 0x6D
-				KEY_K, // 0x6E
-				KEY_Y, // 0x6F
-				KEY_SEMICOLON, // 0x70
-				KEY_Q, // 0x71
-				KEY_P, // 0x72
-				KEY_R, // 0x73
-				KEY_G, // 0x74
-				KEY_L, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_J, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-
-
-#endif
-
--- a/Keymap/keymap.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* Copyright (C) 2011-2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __KEYMAP_H
-#define __KEYMAP_H
-
-// ----- Includes -----
-
-#include "usb_keys.h"
-
-
-
-// ----- Defines -----
-
-
-
-// ----- Variables -----
-
-// Lots of these variables are not used, so ignore gcc unused warnings
-// But just for the variables in this file (and those included into it)
-#pragma GCC diagnostic ignored "-Wunused-variable"
-#pragma GCC diagnostic push
-
-
-// See files for full layout descriptions
-#include "avrcapsense.h"
-#include "betkb.h"
-#include "budkeypad.h"
-#include "epsonqx10.h"
-#include "facom6684.h"
-#include "heathzenith.h"
-#include "hp150.h"
-#include "ibmconvertible.h"
-#include "kaypro1.h"
-#include "mbc55x.h"
-#include "microswitch8304.h"
-#include "skm67001.h"
-#include "sonynews.h"
-#include "sonyoas3400.h"
-#include "tandy1000.h"
-#include "univacf3w9.h"
-
-
-
-// Only ignore unused warnings for the above variables
-#pragma GCC diagnostic pop
-
-
-
-#endif
-
--- a/Keymap/mbc55x.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,553 +0,0 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __MBC55X_H
-#define __MBC55X_H
-
-// This file contains various key layouts for the Sanyo MBC-55X Computer Keyboard
-
-
-// ----- Variables -----
-
-static uint8_t mbc55x_ModifierMask[] = { 0xF5, 0xF6 };
-
-static uint8_t mbc55x_DefaultMap[] = { 
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_SEMICOLON, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_D, // 0x64
-				KEY_E, // 0x65
-				KEY_F, // 0x66
-				KEY_G, // 0x67
-				KEY_H, // 0x68
-				KEY_I, // 0x69
-				KEY_J, // 0x6A
-				KEY_K, // 0x6B
-				KEY_L, // 0x6C
-				KEY_M, // 0x6D
-				KEY_N, // 0x6E
-				KEY_O, // 0x6F
-				KEY_P, // 0x70
-				KEY_Q, // 0x71
-				KEY_R, // 0x72
-				KEY_S, // 0x73
-				KEY_T, // 0x74
-				KEY_U, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_Y, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-static uint8_t mbc55x_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				KEY_ESC, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_O, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48
-				0, // 0x49
-				0, // 0x4A
-				0, // 0x4B
-				0, // 0x4C
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_BACKSLASH, // 0x5C
-				KEY_RIGHT_BRACE, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				KEY_TILDE, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_S, // 0x64
-				KEY_F, // 0x65
-				KEY_T, // 0x66
-				KEY_D, // 0x67
-				KEY_H, // 0x68
-				KEY_U, // 0x69
-				KEY_N, // 0x6A
-				KEY_E, // 0x6B
-				KEY_I, // 0x6C
-				KEY_M, // 0x6D
-				KEY_K, // 0x6E
-				KEY_Y, // 0x6F
-				KEY_SEMICOLON, // 0x70
-				KEY_Q, // 0x71
-				KEY_P, // 0x72
-				KEY_R, // 0x73
-				KEY_G, // 0x74
-				KEY_L, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_J, // 0x79
-				KEY_Z, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				0, // 0x90
-				0, // 0x91
-				0, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				KEYPAD_0, // 0xB1
-				KEYPAD_PERIOD, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				KEYPAD_1, // 0xC0
-				KEYPAD_2, // 0xC1
-				KEYPAD_3, // 0xC2
-				KEYPAD_ENTER, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				0, // 0xCE
-				0, // 0xCF
-				KEYPAD_4, // 0xD0
-				KEYPAD_5, // 0xD1
-				KEYPAD_6, // 0xD2
-				KEYPAD_COMMA, // 0xD3
-				0, // 0xD4
-				0, // 0xD5
-				0, // 0xD6
-				0, // 0xD7
-				0, // 0xD8
-				0, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				0, // 0xE0
-				KEYPAD_7, // 0xE1
-				KEYPAD_8, // 0xE2
-				KEYPAD_9, // 0xE3
-				KEYPAD_MINUS, // 0xE4
-				0, // 0xE5
-				0, // 0xE6
-				0, // 0xE7
-				0, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				KEY_UP, // 0xF1
-				KEY_DOWN, // 0xF2
-				KEY_LEFT, // 0xF3
-				KEY_RIGHT, // 0xF4
-				KEY_LEFT_SHIFT, // 0xF5
-				KEY_CTRL, // 0xF6
-				0, // 0xF7
-				0, // 0xF8
-				0, // 0xF9
-				0, // 0xFA
-				0, // 0xFB
-				0, // 0xFC
-				0, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-
-
-#endif
-
--- a/Keymap/microswitch8304.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __MICROSWITCH8304_H
-#define __MICROSWITCH8304_H
-
-// This file contains various key layouts for the Convergent microswitch8304 keyboard
-
-
-// ----- Variables -----
-static uint8_t microswitch8304_ModifierMask[] = { 0x48, 0x49, 0x4C, 0x4D, 0x45, 0x14 };
-
-static uint8_t microswitch8304_DefaultMap[] = { 
-				KEY_TILDE, // 0x00
-				KEY_UP, // 0x01
-				0, // 0x02
-				0, // 0x03
-				KEY_PRINTSCREEN, // 0x04
-				KEY_PAGE_DOWN, // 0x05
-				KEY_LEFT_BRACE, // 0x06
-				KEY_F11, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				KEY_ENTER, // 0x0A
-				KEY_DOWN, // 0x0B
-				KEY_PAGE_UP, // 0x0C
-				KEYPAD_ENTER, // 0x0D
-				KEY_LEFT, // 0x0E
-				KEY_RIGHT, // 0x0F
-				0, // 0x10
-				KEY_PAGE_UP, // 0x11
-				KEY_F12, // 0x12
-				KEY_PAGE_DOWN, // 0x13
-				KEY_GUI, // 0x14
-				KEY_F1, // 0x15
-				KEY_F2, // 0x16
-				KEY_F3, // 0x17
-				KEY_F4, // 0x18
-				KEY_F5, // 0x19
-				KEY_F6, // 0x1A
-				KEY_ESC, // 0x1B
-				KEY_F7, // 0x1C
-				KEY_F8, // 0x1D
-				KEY_F9, // 0x1E
-				KEY_F10, // 0x1F
-				KEY_SPACE, // 0x20
-				KEYPAD_9, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				KEY_EQUAL, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_SEMICOLON, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				KEYPAD_6, // 0x41
-				KEYPAD_MINUS, // 0x42
-				KEY_PAUSE, // 0x43
-				KEY_INSERT, // 0x44
-				KEY_CTRL, // 0x45
-				KEYPAD_2, // 0x46
-				KEYPAD_3, // 0x47
-				KEY_LEFT_SHIFT, // 0x48
-				KEY_RIGHT_SHIFT, // 0x49
-				KEYPAD_0, // 0x4A
-				KEYPAD_PERIOD, // 0x4B
-				KEY_LEFT_ALT, // 0x4C
-				KEY_RIGHT_ALT, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_RIGHT_BRACE, // 0x5B
-				KEYPAD_7, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_ESC, // 0x5E
-				0, // 0x5F
-				KEYPAD_1, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_D, // 0x64
-				KEY_E, // 0x65
-				KEY_F, // 0x66
-				KEY_G, // 0x67
-				KEY_H, // 0x68
-				KEY_I, // 0x69
-				KEY_J, // 0x6A
-				KEY_K, // 0x6B
-				KEY_L, // 0x6C
-				KEY_M, // 0x6D
-				KEY_N, // 0x6E
-				KEY_O, // 0x6F
-				KEY_P, // 0x70
-				KEY_Q, // 0x71
-				KEY_R, // 0x72
-				KEY_S, // 0x73
-				KEY_T, // 0x74
-				KEY_U, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_Y, // 0x79
-				KEY_Z, // 0x7A
-				KEYPAD_4, // 0x7B
-				KEYPAD_8, // 0x7C
-				KEYPAD_5, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-};
-
-static uint8_t microswitch8304_ColemakMap[] = {
-				KEY_TILDE, // 0x00
-				KEY_UP, // 0x01
-				0, // 0x02
-				0, // 0x03
-				KEY_PRINTSCREEN, // 0x04
-				KEY_PAGE_DOWN, // 0x05
-				KEY_LEFT_BRACE, // 0x06
-				KEY_F11, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				KEY_ENTER, // 0x0A
-				KEY_DOWN, // 0x0B
-				KEY_PAGE_UP, // 0x0C
-				KEYPAD_ENTER, // 0x0D
-				KEY_LEFT, // 0x0E
-				KEY_RIGHT, // 0x0F
-				0, // 0x10
-				KEY_PAGE_UP, // 0x11
-				KEY_F12, // 0x12
-				KEY_PAGE_DOWN, // 0x13
-				KEY_GUI, // 0x14
-				KEY_F1, // 0x15
-				KEY_F2, // 0x16
-				KEY_F3, // 0x17
-				KEY_F4, // 0x18
-				KEY_F5, // 0x19
-				KEY_F6, // 0x1A
-				KEY_ESC, // 0x1B
-				KEY_F7, // 0x1C
-				KEY_F8, // 0x1D
-				KEY_F9, // 0x1E
-				KEY_F10, // 0x1F
-				KEY_SPACE, // 0x20
-				KEYPAD_9, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				KEY_EQUAL, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_O, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				KEYPAD_6, // 0x41
-				KEYPAD_MINUS, // 0x42
-				KEY_PAUSE, // 0x43
-				KEY_INSERT, // 0x44
-				KEY_CTRL, // 0x45
-				KEYPAD_2, // 0x46
-				KEYPAD_3, // 0x47
-				KEY_LEFT_SHIFT, // 0x48
-				KEY_RIGHT_SHIFT, // 0x49
-				KEYPAD_0, // 0x4A
-				KEYPAD_PERIOD, // 0x4B
-				KEY_LEFT_ALT, // 0x4C
-				KEY_RIGHT_ALT, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-				0, // 0x56
-				0, // 0x57
-				0, // 0x58
-				0, // 0x59
-				0, // 0x5A
-				KEY_RIGHT_BRACE, // 0x5B
-				KEYPAD_7, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_ESC, // 0x5E
-				0, // 0x5F
-				KEYPAD_1, // 0x60
-				KEY_A, // 0x61
-				KEY_B, // 0x62
-				KEY_C, // 0x63
-				KEY_S, // 0x64
-				KEY_F, // 0x65
-				KEY_T, // 0x66
-				KEY_D, // 0x67
-				KEY_H, // 0x68
-				KEY_U, // 0x69
-				KEY_N, // 0x6A
-				KEY_E, // 0x6B
-				KEY_I, // 0x6C
-				KEY_M, // 0x6D
-				KEY_K, // 0x6E
-				KEY_Y, // 0x6F
-				KEY_SEMICOLON, // 0x70
-				KEY_Q, // 0x71
-				KEY_P, // 0x72
-				KEY_R, // 0x73
-				KEY_G, // 0x74
-				KEY_L, // 0x75
-				KEY_V, // 0x76
-				KEY_W, // 0x77
-				KEY_X, // 0x78
-				KEY_J, // 0x79
-				KEY_Z, // 0x7A
-				KEYPAD_4, // 0x7B
-				KEYPAD_8, // 0x7C
-				KEYPAD_5, // 0x7D
-				0, // 0x7E
-				KEY_DELETE, // 0x7F
-};
-
-
-
-#endif
-
--- a/Keymap/skm67001.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,214 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __SKM67001_H
-#define __SKM67001_H
-
-// This file contains various key layouts for the SKM 67001 Keyboard from the Olympia Professional ES 105 Typewriter
-
-
-// ----- Variables -----
-
-static uint8_t  skm67001_ModifierMask [] = { 0x34, 0x38, 0x3A, 0x40 };
-
-// Default 1-indexed key mappings
-static uint8_t skm67001_DefaultMap[] = {
-				0, // 0x00
-				KEY_1, // 0x01
-				KEY_Q, // 0x02
-				KEY_A, // 0x03
-				KEY_2, // 0x04
-				KEY_Z, // 0x05
-				KEY_W, // 0x06
-				KEY_S, // 0x07
-				KEY_3, // 0x08
-				KEY_X, // 0x09
-				KEY_E, // 0x0A
-				KEY_D, // 0x0B
-				KEY_4, // 0x0C
-				KEY_C, // 0x0D
-				KEY_R, // 0x0E
-				KEY_F, // 0x0F
-				KEY_5, // 0x10
-				KEY_V, // 0x11
-				KEY_T, // 0x12
-				KEY_G, // 0x13
-				KEY_6, // 0x14
-				KEY_B, // 0x15
-				KEY_Y, // 0x16
-				KEY_H, // 0x17
-				KEY_7, // 0x18
-				KEY_N, // 0x19
-				KEY_U, // 0x1A
-				KEY_J, // 0x1B
-				KEY_8, // 0x1C
-				KEY_M, // 0x1D
-				KEY_I, // 0x1E
-				KEY_K, // 0x1F
-				KEY_9, // 0x20
-				KEY_COMMA, // 0x21
-				KEY_O, // 0x22
-				KEY_L, // 0x23
-				KEY_0, // 0x24
-				KEY_PERIOD, // 0x25
-				KEY_P, // 0x26
-				KEY_SEMICOLON, // 0x27
-				KEY_MINUS, // 0x28
-				KEY_SLASH, // 0x29
-				KEY_LEFT_BRACE, // 0x2A (1/4)
-				KEY_QUOTE, // 0x2B
-				KEY_EQUAL, // 0x2C
-				KEY_RIGHT_BRACE, // 0x2D
-				0, // 0x2E
-				0, // 0x2F
-				KEY_TILDE, // 0x30
-				KEY_TAB, // 0x31
-				0, // 0x32
-				0, // 0x33
-				KEY_SHIFT, // 0x34
-				KEY_ENTER, // 0x35
-				KEY_BACKSPACE, // 0x36
-				KEY_DELETE, // 0x37
-				KEY_CTRL, // 0x38 (MAR LEFT)
-				KEY_SPACE, // 0x39
-				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
-				0, // 0x3B
-				0, // 0x3C
-				KEY_ESC, // 0x3D (MAR REL)
-				0, // 0x3E (STORE)
-				0, // 0x3F (RECALL)
-				KEY_GUI, // 0x40 (CODE)
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48 (DEC TAB)
-				0, // 0x49 (SET TAB)
-				0, // 0x4A (TAB CLEAR)
-				0, // 0x4B (INDEX)
-				0, // 0x4C (RELOC)
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50 (REV INDEX)
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-};
-
-static uint8_t skm67001_ColemakMap[] = {
-				0, // 0x00
-				KEY_1, // 0x01
-				KEY_Q, // 0x02
-				KEY_A, // 0x03
-				KEY_2, // 0x04
-				KEY_Z, // 0x05
-				KEY_W, // 0x06
-				KEY_R, // 0x07
-				KEY_3, // 0x08
-				KEY_X, // 0x09
-				KEY_F, // 0x0A
-				KEY_S, // 0x0B
-				KEY_4, // 0x0C
-				KEY_C, // 0x0D
-				KEY_P, // 0x0E
-				KEY_T, // 0x0F
-				KEY_5, // 0x10
-				KEY_V, // 0x11
-				KEY_G, // 0x12
-				KEY_D, // 0x13
-				KEY_6, // 0x14
-				KEY_B, // 0x15
-				KEY_J, // 0x16
-				KEY_H, // 0x17
-				KEY_7, // 0x18
-				KEY_K, // 0x19
-				KEY_L, // 0x1A
-				KEY_N, // 0x1B
-				KEY_8, // 0x1C
-				KEY_M, // 0x1D
-				KEY_U, // 0x1E
-				KEY_E, // 0x1F
-				KEY_9, // 0x20
-				KEY_COMMA, // 0x21
-				KEY_Y, // 0x22
-				KEY_I, // 0x23
-				KEY_0, // 0x24
-				KEY_PERIOD, // 0x25
-				KEY_SEMICOLON, // 0x26
-				KEY_O, // 0x27
-				KEY_MINUS, // 0x28
-				KEY_SLASH, // 0x29
-				KEY_LEFT_BRACE, // 0x2A (1/4)
-				KEY_QUOTE, // 0x2B
-				KEY_EQUAL, // 0x2C
-				KEY_RIGHT_BRACE, // 0x2D
-				0, // 0x2E
-				0, // 0x2F
-				KEY_TILDE, // 0x30
-				KEY_TAB, // 0x31
-				0, // 0x32
-				0, // 0x33
-				KEY_SHIFT, // 0x34
-				KEY_ENTER, // 0x35
-				KEY_BACKSPACE, // 0x36
-				KEY_DELETE, // 0x37
-				KEY_CTRL, // 0x38 (MAR LEFT)
-				KEY_SPACE, // 0x39
-				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
-				0, // 0x3B
-				0, // 0x3C
-				KEY_ESC, // 0x3D (MAR REL)
-				0, // 0x3E (STORE)
-				0, // 0x3F (RECALL)
-				KEY_GUI, // 0x40 (CODE)
-				0, // 0x41
-				0, // 0x42
-				0, // 0x43
-				0, // 0x44
-				0, // 0x45
-				0, // 0x46
-				0, // 0x47
-				0, // 0x48 (DEC TAB)
-				0, // 0x49 (SET TAB)
-				0, // 0x4A (TAB CLEAR)
-				0, // 0x4B (INDEX)
-				0, // 0x4C (RELOC)
-				0, // 0x4D
-				0, // 0x4E
-				0, // 0x4F
-				0, // 0x50 (REV INDEX)
-				0, // 0x51
-				0, // 0x52
-				0, // 0x53
-				0, // 0x54
-				0, // 0x55
-};
-
-
-
-#endif
-
--- a/Keymap/sonynews.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,299 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __SONYNEWS_H
-#define __SONYNEWS_H
-
-// This file contains various key layouts for the Sony NEWS Topre Keyboard
-// TODO
-
-
-
-// ----- Variables -----
-static uint8_t sonynews_ModifierMask[] = { 0x28, 0x36, 0x42, 0x43, 0x4A };
-
-static uint8_t sonynews_DefaultMap[] = { 
-				0x00, // 0x00
-				KEY_F1, // 0x01
-				KEY_F2, // 0x02
-				KEY_F3, // 0x03
-				KEY_F4, // 0x04
-				KEY_F5, // 0x05
-				KEY_F6, // 0x06
-				KEY_F7, // 0x07
-				KEY_F8, // 0x08
-				KEY_F9, // 0x09
-				KEY_F10, // 0x0A
-				KEY_ESC, // 0x0B
-				KEY_1, // 0x0C
-				KEY_2, // 0x0D
-				KEY_3, // 0x0E
-				KEY_4, // 0x0F
-				KEY_5, // 0x10
-				KEY_6, // 0x11
-				KEY_7, // 0x12
-				KEY_8, // 0x13
-				KEY_9, // 0x14
-				KEY_0, // 0x15
-				KEY_MINUS, // 0x16
-				KEY_EQUAL, // 0x17
-				KEY_INTER3, // 0x18 - Yen
-				KEY_BACKSPACE, // 0x19
-				KEY_TAB, // 0x1A
-				KEY_Q, // 0x1B
-				KEY_W, // 0x1C
-				KEY_E, // 0x1D
-				KEY_R, // 0x1E
-				KEY_T, // 0x1F
-				KEY_Y, // 0x20
-				KEY_U, // 0x21
-				KEY_I, // 0x22
-				KEY_O, // 0x23
-				KEY_P, // 0x24
-				KEY_LEFT_BRACE, // 0x25
-				KEY_RIGHT_BRACE, // 0x26
-				KEY_DELETE, // 0x27
-				KEY_CTRL, // 0x28
-				KEY_A, // 0x29
-				KEY_S, // 0x2A
-				KEY_D, // 0x2B
-				KEY_F, // 0x2C
-				KEY_G, // 0x2D
-				KEY_H, // 0x2E
-				KEY_J, // 0x2F
-				KEY_K, // 0x30
-				KEY_L, // 0x31
-				KEY_SEMICOLON, // 0x32
-				KEY_QUOTE, // 0x33
-				KEY_BACKSLASH, // 0x34
-				KEY_ENTER, // 0x35
-				KEY_LEFT_SHIFT, // 0x36
-				KEY_Z, // 0x37
-				KEY_X, // 0x38
-				KEY_C, // 0x39
-				KEY_V, // 0x3A
-				KEY_B, // 0x3B
-				KEY_N, // 0x3C
-				KEY_M, // 0x3D
-				KEY_COMMA, // 0x3E
-				KEY_PERIOD, // 0x3F
-				KEY_SLASH, // 0x40
-				KEY_INTER1, // 0x41 - "Ru" and "-"
-				KEY_RIGHT_SHIFT, // 0x42
-				KEY_ALT, // 0x43
-				KEY_CAPS_LOCK, // 0x44
-				KEY_INTER5, // 0x45 - Muhenkan
-				KEY_SPACE, // 0x46
-				KEY_INTER4, // 0x47 - Henkan
-				KEY_LANG2, // 0x48 - Eisu (English/Numbers) (I've seen references to this mapping)
-				KEY_INTER2, // 0x49 - Kana
-				KEY_EXEC, // 0x4A - Jikkou XXX Which means Execute, and since there is no Language key
-				KEYPAD_7, // 0x4B
-				KEYPAD_8, // 0x4C
-				KEYPAD_9, // 0x4D
-				KEYPAD_MINUS, // 0x4E
-				KEYPAD_4, // 0x4F
-				KEYPAD_5, // 0x50
-				KEYPAD_6, // 0x51
-				KEYPAD_PLUS, // 0x52
-				KEYPAD_1, // 0x53
-				KEYPAD_2, // 0x54
-				KEYPAD_3, // 0x55
-				KEYPAD_COMMA, // 0x56
-				KEYPAD_0, // 0x57
-				KEY_UP, // 0x58
-				KEYPAD_PERIOD, // 0x59
-				KEYPAD_ENTER, // 0x5A
-				KEY_LEFT, // 0x5B
-				KEY_DOWN, // 0x5C
-				KEY_RIGHT, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				0, // 0x60
-				0, // 0x61
-				0, // 0x62
-				0, // 0x63
-				KEYPAD_ASTERIX, // 0x64
-				KEYPAD_SLASH, // 0x65
-				KEYPAD_TAB, // 0x66
-				0, // 0x67
-				KEY_F11, // 0x68
-				KEY_F12, // 0x69
-				KEY_HELP, // 0x6A
-				KEY_INSERT, // 0x6B
-				KEY_CLEAR, // 0x6C
-				KEY_PAGE_UP, // 0x6D
-				KEY_PAGE_DOWN, // 0x6E
-				0, // 0x6F
-				0, // 0x70
-				0, // 0x71
-				0, // 0x72
-				0, // 0x73
-				0, // 0x74
-				0, // 0x75
-				0, // 0x76
-				0, // 0x77
-				0, // 0x78
-				0, // 0x79
-				KEY_F13, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-static uint8_t sonynews_ColemakMap[] = {
-				0x00, // 0x00
-				KEY_F1, // 0x01
-				KEY_F2, // 0x02
-				KEY_F3, // 0x03
-				KEY_F4, // 0x04
-				KEY_F5, // 0x05
-				KEY_F6, // 0x06
-				KEY_F7, // 0x07
-				KEY_F8, // 0x08
-				KEY_F9, // 0x09
-				KEY_F10, // 0x0A
-				KEY_ESC, // 0x0B
-				KEY_1, // 0x0C
-				KEY_2, // 0x0D
-				KEY_3, // 0x0E
-				KEY_4, // 0x0F
-				KEY_5, // 0x10
-				KEY_6, // 0x11
-				KEY_7, // 0x12
-				KEY_8, // 0x13
-				KEY_9, // 0x14
-				KEY_0, // 0x15
-				KEY_MINUS, // 0x16
-				KEY_EQUAL, // 0x17
-				KEY_INTER3, // 0x18 - Yen
-				KEY_BACKSPACE, // 0x19
-				KEY_TAB, // 0x1A
-				KEY_Q, // 0x1B
-				KEY_W, // 0x1C
-				KEY_F, // 0x1D
-				KEY_P, // 0x1E
-				KEY_G, // 0x1F
-				KEY_J, // 0x20
-				KEY_L, // 0x21
-				KEY_U, // 0x22
-				KEY_Y, // 0x23
-				KEY_SEMICOLON, // 0x24
-				KEY_LEFT_BRACE, // 0x25
-				KEY_RIGHT_BRACE, // 0x26
-				KEY_DELETE, // 0x27
-				KEY_CTRL, // 0x28
-				KEY_A, // 0x29
-				KEY_R, // 0x2A
-				KEY_S, // 0x2B
-				KEY_T, // 0x2C
-				KEY_D, // 0x2D
-				KEY_H, // 0x2E
-				KEY_N, // 0x2F
-				KEY_E, // 0x30
-				KEY_I, // 0x31
-				KEY_O, // 0x32
-				KEY_QUOTE, // 0x33
-				KEY_BACKSLASH, // 0x34
-				KEY_ENTER, // 0x35
-				KEY_LEFT_SHIFT, // 0x36
-				KEY_Z, // 0x37
-				KEY_X, // 0x38
-				KEY_C, // 0x39
-				KEY_V, // 0x3A
-				KEY_B, // 0x3B
-				KEY_K, // 0x3C
-				KEY_M, // 0x3D
-				KEY_COMMA, // 0x3E
-				KEY_PERIOD, // 0x3F
-				KEY_SLASH, // 0x40
-				KEY_INTER1, // 0x41 - "Ru" and "-"
-				KEY_RIGHT_SHIFT, // 0x42
-				KEY_ALT, // 0x43
-				KEY_CAPS_LOCK, // 0x44
-				KEY_INTER5, // 0x45 - Muhenkan
-				KEY_SPACE, // 0x46
-				KEY_INTER4, // 0x47 - Henkan
-				KEY_LANG2, // 0x48 - Eisu (English/Numbers) (I've seen references to this mapping)
-				KEY_INTER2, // 0x49 - Kana
-				//KEY_EXEC, // 0x4A - Jikkou XXX Which means Execute, and since there is no Language key
-				KEY_GUI, // 0x4A - Using Jikkou as Windows Key
-				KEYPAD_7, // 0x4B
-				KEYPAD_8, // 0x4C
-				KEYPAD_9, // 0x4D
-				KEYPAD_MINUS, // 0x4E
-				KEYPAD_4, // 0x4F
-				KEYPAD_5, // 0x50
-				KEYPAD_6, // 0x51
-				KEYPAD_PLUS, // 0x52
-				KEYPAD_1, // 0x53
-				KEYPAD_2, // 0x54
-				KEYPAD_3, // 0x55
-				KEYPAD_COMMA, // 0x56
-				KEYPAD_0, // 0x57
-				KEY_UP, // 0x58
-				KEYPAD_PERIOD, // 0x59
-				KEYPAD_ENTER, // 0x5A
-				KEY_LEFT, // 0x5B
-				KEY_DOWN, // 0x5C
-				KEY_RIGHT, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				0, // 0x60
-				0, // 0x61
-				0, // 0x62
-				0, // 0x63
-				KEYPAD_ASTERIX, // 0x64
-				KEYPAD_SLASH, // 0x65
-				KEYPAD_TAB, // 0x66
-				0, // 0x67
-				KEY_F11, // 0x68
-				KEY_F12, // 0x69
-				KEY_HELP, // 0x6A
-				KEY_INSERT, // 0x6B
-				KEY_CLEAR, // 0x6C
-				KEY_PAGE_UP, // 0x6D
-				KEY_PAGE_DOWN, // 0x6E
-				0, // 0x6F
-				0, // 0x70
-				0, // 0x71
-				0, // 0x72
-				0, // 0x73
-				0, // 0x74
-				0, // 0x75
-				0, // 0x76
-				0, // 0x77
-				0, // 0x78
-				0, // 0x79
-				KEY_F13, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-};
-
-
-
-#endif
-
--- a/Keymap/sonyoas3400.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,552 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __SONYOAS3400_H
-#define __SONYOAS3400_H
-
-// This file contains various key layouts for the Sony OA-S3400 Word Processor Keyboard
-
-
-// ----- Variables -----
-static uint8_t sonyoas3400_ModifierMask[] = { 0x90, 0x91, 0x92, 0xCE, 0xE0 };
-
-static uint8_t sonyoas3400_DefaultMap[] = { 
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				0, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_SEMICOLON, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				KEY_A, // 0x41
-				KEY_B, // 0x42
-				KEY_C, // 0x43
-				KEY_D, // 0x44
-				KEY_E, // 0x45
-				KEY_F, // 0x46
-				KEY_G, // 0x47
-				KEY_H, // 0x48
-				KEY_I, // 0x49
-				KEY_J, // 0x4A
-				KEY_K, // 0x4B
-				KEY_L, // 0x4C
-				KEY_M, // 0x4D
-				KEY_N, // 0x4E
-				KEY_O, // 0x4F
-				KEY_P, // 0x50
-				KEY_Q, // 0x51
-				KEY_R, // 0x52
-				KEY_S, // 0x53
-				KEY_T, // 0x54
-				KEY_U, // 0x55
-				KEY_V, // 0x56
-				KEY_W, // 0x57
-				KEY_X, // 0x58
-				KEY_Y, // 0x59
-				KEY_Z, // 0x5A
-				0, // 0x5B
-				0, // 0x5C
-				0, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				0, // 0x60
-				0, // 0x61
-				0, // 0x62
-				0, // 0x63
-				0, // 0x64
-				0, // 0x65
-				0, // 0x66
-				0, // 0x67
-				0, // 0x68
-				0, // 0x69
-				0, // 0x6A
-				0, // 0x6B
-				0, // 0x6C
-				0, // 0x6D
-				0, // 0x6E
-				0, // 0x6F
-				0, // 0x70
-				0, // 0x71
-				0, // 0x72
-				0, // 0x73
-				0, // 0x74
-				0, // 0x75
-				0, // 0x76
-				0, // 0x77
-				0, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				KEY_LEFT_BRACE, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				KEY_LEFT_SHIFT, // 0x90
-				KEY_LEFT_CTRL, // 0x91
-				KEY_LEFT_ALT, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				0, // 0xB1
-				0, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				0, // 0xC0
-				0, // 0xC1
-				0, // 0xC2
-				0, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				KEY_LEFT_GUI, // 0xCE
-				KEY_RIGHT_BRACE, // 0xCF
-				KEY_ESC, // 0xD0
-				KEY_TILDE, // 0xD1
-				KEY_BACKSLASH, // 0xD2
-				KEY_F11, // 0xD3
-				KEY_F12, // 0xD4
-				KEY_F10, // 0xD5
-				KEY_UP, // 0xD6
-				KEY_DOWN, // 0xD7
-				KEY_LEFT, // 0xD8
-				KEY_RIGHT, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				KEY_RIGHT_ALT, // 0xE0
-				KEY_INSERT, // 0xE1
-				KEY_HOME, // 0xE2
-				KEY_PAGE_UP, // 0xE3
-				KEY_DELETE, // 0xE4
-				KEY_END, // 0xE5
-				KEY_PAGE_DOWN, // 0xE6
-				KEY_DOWN, // 0xE7
-				KEY_F9, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				0, // 0xF1
-				0, // 0xF2
-				0, // 0xF3
-				0, // 0xF4
-				0, // 0xF5
-				KEY_F1, // 0xF6
-				KEY_F2, // 0xF7
-				KEY_F3, // 0xF8
-				KEY_F4, // 0xF9
-				KEY_F5, // 0xFA
-				KEY_F6, // 0xFB
-				KEY_F7, // 0xFC
-				KEY_F8, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-static uint8_t sonyoas3400_ColemakMap[] = {
-				0, // 0x00
-				0, // 0x01
-				0, // 0x02
-				0, // 0x03
-				0, // 0x04
-				0, // 0x05
-				0, // 0x06
-				0, // 0x07
-				KEY_BACKSPACE, // 0x08
-				KEY_TAB, // 0x09
-				0, // 0x0A
-				0, // 0x0B
-				0, // 0x0C
-				KEY_ENTER, // 0x0D
-				0, // 0x0E
-				0, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				0, // 0x15
-				0, // 0x16
-				0, // 0x17
-				0, // 0x18
-				0, // 0x19
-				0, // 0x1A
-				0, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				0, // 0x1E
-				0, // 0x1F
-				KEY_SPACE, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				0, // 0x25
-				0, // 0x26
-				KEY_QUOTE, // 0x27
-				0, // 0x28
-				0, // 0x29
-				0, // 0x2A
-				0, // 0x2B
-				KEY_COMMA, // 0x2C
-				KEY_MINUS, // 0x2D
-				KEY_PERIOD, // 0x2E
-				KEY_SLASH, // 0x2F
-				KEY_0, // 0x30
-				KEY_1, // 0x31
-				KEY_2, // 0x32
-				KEY_3, // 0x33
-				KEY_4, // 0x34
-				KEY_5, // 0x35
-				KEY_6, // 0x36
-				KEY_7, // 0x37
-				KEY_8, // 0x38
-				KEY_9, // 0x39
-				0, // 0x3A
-				KEY_O, // 0x3B
-				0, // 0x3C
-				KEY_EQUAL, // 0x3D
-				0, // 0x3E
-				0, // 0x3F
-				0, // 0x40
-				KEY_A, // 0x41
-				KEY_B, // 0x42
-				KEY_C, // 0x43
-				KEY_S, // 0x44
-				KEY_F, // 0x45
-				KEY_T, // 0x46
-				KEY_D, // 0x47
-				KEY_H, // 0x48
-				KEY_U, // 0x49
-				KEY_N, // 0x4A
-				KEY_E, // 0x4B
-				KEY_I, // 0x4C
-				KEY_M, // 0x4D
-				KEY_K, // 0x4E
-				KEY_Y, // 0x4F
-				KEY_SEMICOLON, // 0x50
-				KEY_Q, // 0x51
-				KEY_P, // 0x52
-				KEY_R, // 0x53
-				KEY_G, // 0x54
-				KEY_L, // 0x55
-				KEY_V, // 0x56
-				KEY_W, // 0x57
-				KEY_X, // 0x58
-				KEY_J, // 0x59
-				KEY_Z, // 0x5A
-				0, // 0x5B
-				0, // 0x5C
-				0, // 0x5D
-				0, // 0x5E
-				0, // 0x5F
-				0, // 0x60
-				0, // 0x61
-				0, // 0x62
-				0, // 0x63
-				0, // 0x64
-				0, // 0x65
-				0, // 0x66
-				0, // 0x67
-				0, // 0x68
-				0, // 0x69
-				0, // 0x6A
-				0, // 0x6B
-				0, // 0x6C
-				0, // 0x6D
-				0, // 0x6E
-				0, // 0x6F
-				0, // 0x70
-				0, // 0x71
-				0, // 0x72
-				0, // 0x73
-				0, // 0x74
-				0, // 0x75
-				0, // 0x76
-				0, // 0x77
-				0, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				KEY_LEFT_BRACE, // 0x82
-				0, // 0x83
-				0, // 0x84
-				0, // 0x85
-				0, // 0x86
-				0, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				0, // 0x8B
-				0, // 0x8C
-				0, // 0x8D
-				0, // 0x8E
-				0, // 0x8F
-				KEY_LEFT_SHIFT, // 0x90
-				KEY_LEFT_CTRL, // 0x91
-				KEY_LEFT_ALT, // 0x92
-				0, // 0x93
-				0, // 0x94
-				0, // 0x95
-				0, // 0x96
-				0, // 0x97
-				0, // 0x98
-				0, // 0x99
-				0, // 0x9A
-				0, // 0x9B
-				0, // 0x9C
-				0, // 0x9D
-				0, // 0x9E
-				0, // 0x9F
-				0, // 0xA0
-				0, // 0xA1
-				0, // 0xA2
-				0, // 0xA3
-				0, // 0xA4
-				0, // 0xA5
-				0, // 0xA6
-				0, // 0xA7
-				0, // 0xA8
-				0, // 0xA9
-				0, // 0xAA
-				0, // 0xAB
-				0, // 0xAC
-				0, // 0xAD
-				0, // 0xAE
-				0, // 0xAF
-				0, // 0xB0
-				0, // 0xB1
-				0, // 0xB2
-				0, // 0xB3
-				0, // 0xB4
-				0, // 0xB5
-				0, // 0xB6
-				0, // 0xB7
-				0, // 0xB8
-				0, // 0xB9
-				0, // 0xBA
-				0, // 0xBB
-				0, // 0xBC
-				0, // 0xBD
-				0, // 0xBE
-				0, // 0xBF
-				0, // 0xC0
-				0, // 0xC1
-				0, // 0xC2
-				0, // 0xC3
-				0, // 0xC4
-				0, // 0xC5
-				0, // 0xC6
-				0, // 0xC7
-				0, // 0xC8
-				0, // 0xC9
-				0, // 0xCA
-				0, // 0xCB
-				0, // 0xCC
-				0, // 0xCD
-				KEY_LEFT_GUI, // 0xCE
-				KEY_RIGHT_BRACE, // 0xCF
-				KEY_ESC, // 0xD0
-				KEY_TILDE, // 0xD1
-				KEY_BACKSLASH, // 0xD2
-				KEY_F11, // 0xD3
-				KEY_F12, // 0xD4
-				KEY_F10, // 0xD5
-				KEY_UP, // 0xD6
-				KEY_DOWN, // 0xD7
-				KEY_LEFT, // 0xD8
-				KEY_RIGHT, // 0xD9
-				0, // 0xDA
-				0, // 0xDB
-				0, // 0xDC
-				0, // 0xDD
-				0, // 0xDE
-				0, // 0xDF
-				KEY_RIGHT_ALT, // 0xE0
-				KEY_INSERT, // 0xE1
-				KEY_HOME, // 0xE2
-				KEY_PAGE_UP, // 0xE3
-				KEY_DELETE, // 0xE4
-				KEY_END, // 0xE5
-				KEY_PAGE_DOWN, // 0xE6
-				KEY_DOWN, // 0xE7
-				KEY_F9, // 0xE8
-				0, // 0xE9
-				0, // 0xEA
-				0, // 0xEB
-				0, // 0xEC
-				0, // 0xED
-				0, // 0xEE
-				0, // 0xEF
-				0, // 0xF0
-				0, // 0xF1
-				0, // 0xF2
-				0, // 0xF3
-				0, // 0xF4
-				0, // 0xF5
-				KEY_F1, // 0xF6
-				KEY_F2, // 0xF7
-				KEY_F3, // 0xF8
-				KEY_F4, // 0xF9
-				KEY_F5, // 0xFA
-				KEY_F6, // 0xFB
-				KEY_F7, // 0xFC
-				KEY_F8, // 0xFD
-				0, // 0xFE
-				0, // 0xFF
-};
-
-
-
-#endif
-
--- a/Keymap/tandy1000.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __TANDY1000_H
-#define __TANDY1000_H
-
-// This file contains various key layouts for the Tandy 1000 keyboard
-
-
-// ----- Variables -----
-
-static uint8_t tandy1000_ModifierMask[] = { 0x1D, 0x2A, 0x36, 0x38, 0x46 };
-
-static uint8_t tandy1000_DefaultMap[] = { 0,
-				KEY_ESC,
-				KEY_1,
-				KEY_2,
-				KEY_3,
-				KEY_4,
-				KEY_5,
-				KEY_6,
-				KEY_7,
-				KEY_8,
-				KEY_9,
-				KEY_0,
-				KEY_MINUS,
-				KEY_EQUAL,
-				KEY_BACKSPACE,
-				KEY_TAB,
-				KEY_Q,
-				KEY_W,
-				KEY_E,
-				KEY_R,
-				KEY_T,
-				KEY_Y,
-				KEY_U,
-				KEY_I,
-				KEY_O,
-				KEY_P,
-				KEY_LEFT_BRACE,
-				KEY_RIGHT_BRACE,
-				KEY_ENTER,
-				KEY_CTRL, // 0x1D
-				KEY_A,
-				KEY_S,
-				KEY_D,
-				KEY_F,
-				KEY_G,
-				KEY_H,
-				KEY_J,
-				KEY_K,
-				KEY_L,
-				KEY_SEMICOLON,
-				KEY_QUOTE,
-				KEY_UP,
-				KEY_LEFT_SHIFT, // 0x2A
-				KEY_LEFT,
-				KEY_Z,
-				KEY_X,
-				KEY_C,
-				KEY_V,
-				KEY_B,
-				KEY_N,
-				KEY_M,
-				KEY_COMMA,
-				KEY_PERIOD,
-				KEY_SLASH,
-				KEY_RIGHT_SHIFT, // 0x36
-				KEY_PRINTSCREEN,
-				KEY_ALT, // 0x38
-				KEY_SPACE,
-				KEY_CAPS_LOCK,
-				KEY_F1,
-				KEY_F2,
-				KEY_F3,
-				KEY_F4,
-				KEY_F5,
-				KEY_F6,
-				KEY_F7,
-				KEY_F8,
-				KEY_F9,
-				KEY_F10,
-				KEY_NUM_LOCK,
-				KEY_GUI, // Actually Hold... 0x48
-				KEY_BACKSLASH, // Also KEYPAD_7
-				KEY_TILDE, // Also KEYPAD_8
-				KEYPAD_9,
-				KEY_UP,
-				KEY_BACKSLASH, // Actually | and KEYPAD_4
-				KEYPAD_5,
-				KEYPAD_6,
-				KEY_RIGHT,
-				KEYPAD_1,
-				KEY_TILDE, // Actually ` and KEYPAD_2
-				KEYPAD_3,
-				KEYPAD_0,
-				KEY_DELETE,
-				KEY_PAUSE,
-				KEY_INSERT,
-				KEYPAD_PERIOD,
-				KEYPAD_ENTER,
-				KEY_HOME,
-				KEY_F11,
-				KEY_F12, // 0x5A
-};
-
-static uint8_t tandy1000_ColemakMap[] = { 0,
-				KEY_ESC,
-				KEY_1,
-				KEY_2,
-				KEY_3,
-				KEY_4,
-				KEY_5,
-				KEY_6,
-				KEY_7,
-				KEY_8,
-				KEY_9,
-				KEY_0,
-				KEY_MINUS,
-				KEY_EQUAL,
-				KEY_BACKSPACE,
-				KEY_TAB,
-				KEY_Q,
-				KEY_W,
-				KEY_F,
-				KEY_P,
-				KEY_G,
-				KEY_J,
-				KEY_L,
-				KEY_U,
-				KEY_Y,
-				KEY_SEMICOLON,
-				KEY_LEFT_BRACE,
-				KEY_RIGHT_BRACE,
-				KEY_ENTER,
-				KEY_CTRL, // 0x1D
-				KEY_A,
-				KEY_R,
-				KEY_S,
-				KEY_T,
-				KEY_D,
-				KEY_H,
-				KEY_N,
-				KEY_E,
-				KEY_I,
-				KEY_O,
-				KEY_QUOTE,
-				KEY_UP,
-				KEY_LEFT_SHIFT, // 0x2A
-				KEY_LEFT,
-				KEY_Z,
-				KEY_X,
-				KEY_C,
-				KEY_V,
-				KEY_B,
-				KEY_K,
-				KEY_M,
-				KEY_COMMA,
-				KEY_PERIOD,
-				KEY_SLASH,
-				KEY_RIGHT_SHIFT, // 0x36
-				KEY_PRINTSCREEN,
-				KEY_ALT, // 0x38
-				KEY_SPACE,
-				0, //KEY_CAPS_LOCK,
-				KEY_F1,
-				KEY_F2,
-				KEY_F3,
-				KEY_F4,
-				KEY_F5,
-				KEY_F6,
-				KEY_F7,
-				KEY_F8,
-				KEY_F9,
-				KEY_F10,
-				0, //KEY_NUM_LOCK,
-				KEY_GUI, // Actually Hold... 0x48
-				KEY_BACKSLASH, // Also KEYPAD_7
-				KEY_TILDE, // Also KEYPAD_8
-				KEYPAD_9,
-				KEY_DOWN,
-				KEY_BACKSLASH, // Actually | and KEYPAD_4
-				KEYPAD_5,
-				KEYPAD_6,
-				KEY_RIGHT,
-				KEYPAD_1,
-				KEY_TILDE, // Actually ` and KEYPAD_2
-				KEYPAD_3,
-				KEYPAD_0,
-				KEY_DELETE,
-				KEY_PAUSE,
-				KEY_INSERT,
-				KEYPAD_PERIOD,
-				KEYPAD_ENTER,
-				KEY_HOME,
-				KEY_F11,
-				KEY_F12, // 0x5A
-};
-
-
-
-#endif
-
--- a/Keymap/univacf3w9.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __UNIVACF3W9_H
-#define __UNIVACF3W9_H
-
-// This file contains various key layouts for the Univac F3W9 keyboard
-
-
-
-// ----- Variables -----
-static uint8_t univacf3w9_ModifierMask[] = { 0x81, 0x83, 0x85, 0x87, 0x89, 0x8B, 0x8D, 0x8F };
-
-static uint8_t univacf3w9_DefaultMap[] = { 
-				0x00, // 0x00
-				KEY_F4, // 0x01
-				0, // 0x02
-				KEY_F5, // 0x03
-				KEY_F6, // 0x04
-				KEY_F7, // 0x05
-				KEY_F8, // 0x06
-				KEY_F9, // 0x07
-				0, // 0x08
-				KEY_F10, // 0x09
-				KEY_F11, // 0x0A
-				KEY_F12, // 0x0B
-				KEY_F13, // 0x0C
-				0, // 0x0D
-				KEY_F14, // 0x0E
-				KEY_F15, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				KEYPAD_ENTER, // 0x15
-				KEYPAD_PERIOD, // 0x16
-				KEYPAD_0, // 0x17
-				KEYPAD_EQUAL, // 0x18
-				KEYPAD_6, // 0x19
-				KEYPAD_5, // 0x1A
-				KEYPAD_4, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				KEY_F17, // 0x1E
-				KEY_F16, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				KEYPAD_3, // 0x25
-				KEYPAD_2, // 0x26
-				KEYPAD_1, // 0x27
-				KEYPAD_PLUS, // 0x28
-				KEYPAD_9, // 0x29
-				KEYPAD_8, // 0x2A
-				KEYPAD_7, // 0x2B
-				KEYPAD_MINUS, // 0x2C
-				KEYPAD_ASTERIX, // 0x2D
-				KEYPAD_SLASH, // 0x2E
-				KEY_NUM_LOCK, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_SPACE, // 0x32
-				KEY_Z, // 0x33
-				KEY_X, // 0x34
-				KEY_C, // 0x35
-				KEY_V, // 0x36
-				KEY_B, // 0x37
-				KEY_N, // 0x38
-				KEY_M, // 0x39
-				KEY_COMMA, // 0x3A
-				KEY_PERIOD, // 0x3B
-				KEY_UP, // 0x3C
-				KEY_LEFT, // 0x3D
-				KEY_RIGHT, // 0x3E
-				KEY_DOWN, // 0x3F
-				0, // 0x40
-				KEY_F19, // 0x41
-				KEY_CAPS_LOCK, // 0x42
-				KEY_A, // 0x43
-				KEY_S, // 0x44
-				KEY_D, // 0x45
-				KEY_F, // 0x46
-				KEY_G, // 0x47
-				KEY_H, // 0x48
-				KEY_J, // 0x49
-				KEY_K, // 0x4A
-				KEY_L, // 0x4B
-				KEY_SEMICOLON, // 0x4C
-				KEY_QUOTE, // 0x4D
-				KEY_ENTER, // 0x4E
-				KEY_SLASH, // 0x4F
-				0, // 0x50
-				KEY_Q, // 0x51
-				KEY_W, // 0x52
-				KEY_E, // 0x53
-				KEY_R, // 0x54
-				KEY_T, // 0x55
-				KEY_Y, // 0x56
-				KEY_U, // 0x57
-				KEY_I, // 0x58
-				KEY_O, // 0x59
-				KEY_P, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_RIGHT_BRACE, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_INSERT, // 0x5E
-				KEY_PAGE_DOWN, // 0x5F
-				0, // 0x60
-				KEY_2, // 0x61
-				KEY_3, // 0x62
-				KEY_4, // 0x63
-				KEY_5, // 0x64
-				KEY_6, // 0x65
-				KEY_7, // 0x66
-				KEY_8, // 0x67
-				KEY_9, // 0x68
-				KEY_0, // 0x69
-				KEY_MINUS, // 0x6A
-				KEY_EQUAL, // 0x6B
-				KEY_TILDE, // 0x6C
-				KEY_BACKSPACE, // 0x6D
-				KEY_DELETE, // 0x6E
-				KEY_PAGE_UP, // 0x6F
-				0, // 0x70
-				KEY_F3, // 0x71
-				KEY_F2, // 0x72
-				KEY_F1, // 0x73
-				KEY_F18, // 0x74
-				KEY_ESC, // 0x75
-				KEY_1, // 0x76
-				KEY_TAB, // 0x77
-				KEY_F19, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				KEY_RIGHT_SHIFT, // 0x85
-				0, // 0x86
-				KEY_LEFT_SHIFT, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				KEY_LEFT_CTRL, // 0x8B
-				0, // 0x8C
-				KEY_GUI, // 0x8D
-				0, // 0x8E
-				KEY_RIGHT_CTRL, // 0x8F
-};
-
-static uint8_t univacf3w9_ColemakMap[] = {
-				0x00, // 0x00
-				KEY_F4, // 0x01
-				0, // 0x02
-				KEY_F5, // 0x03
-				KEY_F6, // 0x04
-				KEY_F7, // 0x05
-				KEY_F8, // 0x06
-				KEY_F9, // 0x07
-				0, // 0x08
-				KEY_F10, // 0x09
-				KEY_F11, // 0x0A
-				KEY_F12, // 0x0B
-				KEY_F13, // 0x0C
-				0, // 0x0D
-				KEY_F14, // 0x0E
-				KEY_F15, // 0x0F
-				0, // 0x10
-				0, // 0x11
-				0, // 0x12
-				0, // 0x13
-				0, // 0x14
-				KEYPAD_ENTER, // 0x15
-				KEYPAD_PERIOD, // 0x16
-				KEYPAD_0, // 0x17
-				KEYPAD_EQUAL, // 0x18
-				KEYPAD_6, // 0x19
-				KEYPAD_5, // 0x1A
-				KEYPAD_4, // 0x1B
-				0, // 0x1C
-				0, // 0x1D
-				KEY_F17, // 0x1E
-				KEY_F16, // 0x1F
-				0, // 0x20
-				0, // 0x21
-				0, // 0x22
-				0, // 0x23
-				0, // 0x24
-				KEYPAD_3, // 0x25
-				KEYPAD_2, // 0x26
-				KEYPAD_1, // 0x27
-				KEYPAD_PLUS, // 0x28
-				KEYPAD_9, // 0x29
-				KEYPAD_8, // 0x2A
-				KEYPAD_7, // 0x2B
-				KEYPAD_MINUS, // 0x2C
-				KEYPAD_ASTERIX, // 0x2D
-				KEYPAD_SLASH, // 0x2E
-				KEY_NUM_LOCK, // 0x2F
-				0, // 0x30
-				0, // 0x31
-				KEY_SPACE, // 0x32
-				KEY_Z, // 0x33
-				KEY_X, // 0x34
-				KEY_C, // 0x35
-				KEY_V, // 0x36
-				KEY_B, // 0x37
-				KEY_K, // 0x38
-				KEY_M, // 0x39
-				KEY_COMMA, // 0x3A
-				KEY_PERIOD, // 0x3B
-				KEY_UP, // 0x3C
-				KEY_LEFT, // 0x3D
-				KEY_RIGHT, // 0x3E
-				KEY_DOWN, // 0x3F
-				0, // 0x40
-				KEY_F19, // 0x41
-				KEY_CAPS_LOCK, // 0x42
-				KEY_A, // 0x43
-				KEY_R, // 0x44
-				KEY_S, // 0x45
-				KEY_T, // 0x46
-				KEY_D, // 0x47
-				KEY_H, // 0x48
-				KEY_N, // 0x49
-				KEY_E, // 0x4A
-				KEY_I, // 0x4B
-				KEY_O, // 0x4C
-				KEY_QUOTE, // 0x4D
-				KEY_ENTER, // 0x4E
-				KEY_SLASH, // 0x4F
-				0, // 0x50
-				KEY_Q, // 0x51
-				KEY_W, // 0x52
-				KEY_F, // 0x53
-				KEY_P, // 0x54
-				KEY_G, // 0x55
-				KEY_J, // 0x56
-				KEY_L, // 0x57
-				KEY_U, // 0x58
-				KEY_Y, // 0x59
-				KEY_SEMICOLON, // 0x5A
-				KEY_LEFT_BRACE, // 0x5B
-				KEY_RIGHT_BRACE, // 0x5C
-				KEY_BACKSLASH, // 0x5D
-				KEY_INSERT, // 0x5E
-				KEY_PAGE_DOWN, // 0x5F
-				0, // 0x60
-				KEY_2, // 0x61
-				KEY_3, // 0x62
-				KEY_4, // 0x63
-				KEY_5, // 0x64
-				KEY_6, // 0x65
-				KEY_7, // 0x66
-				KEY_8, // 0x67
-				KEY_9, // 0x68
-				KEY_0, // 0x69
-				KEY_MINUS, // 0x6A
-				KEY_EQUAL, // 0x6B
-				KEY_TILDE, // 0x6C
-				KEY_BACKSPACE, // 0x6D
-				KEY_DELETE, // 0x6E
-				KEY_PAGE_UP, // 0x6F
-				0, // 0x70
-				KEY_F3, // 0x71
-				KEY_F2, // 0x72
-				KEY_F1, // 0x73
-				KEY_F18, // 0x74
-				KEY_ESC, // 0x75
-				KEY_1, // 0x76
-				KEY_TAB, // 0x77
-				KEY_F19, // 0x78
-				0, // 0x79
-				0, // 0x7A
-				0, // 0x7B
-				0, // 0x7C
-				0, // 0x7D
-				0, // 0x7E
-				0, // 0x7F
-				0, // 0x80
-				0, // 0x81
-				0, // 0x82
-				0, // 0x83
-				0, // 0x84
-				KEY_RIGHT_SHIFT, // 0x85
-				0, // 0x86
-				KEY_LEFT_SHIFT, // 0x87
-				0, // 0x88
-				0, // 0x89
-				0, // 0x8A
-				KEY_LEFT_CTRL, // 0x8B
-				0, // 0x8C
-				KEY_GUI, // 0x8D
-				0, // 0x8E
-				KEY_ALT, // 0x8F
-};
-
-
-
-#endif
-
--- a/Keymap/usb_keys.h	Tue Apr 01 01:16:53 2014 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,266 +0,0 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- * 
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- * 
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#ifndef __usb_keys_h
-#define __usb_keys_h
-
-// ----- Defines -----
-
-// List of Modifiers
-#define KEY_CTRL          0x01
-#define KEY_SHIFT         0x02
-#define KEY_ALT	          0x04
-#define KEY_GUI	          0x08
-#define KEY_LEFT_CTRL     0x01
-#define KEY_LEFT_SHIFT    0x02
-#define KEY_LEFT_ALT      0x04
-#define KEY_LEFT_GUI      0x08
-#define KEY_RIGHT_CTRL    0x10
-#define KEY_RIGHT_SHIFT   0x20
-#define KEY_RIGHT_ALT     0x40
-#define KEY_RIGHT_GUI     0x80
-
-// List of Keycodes
-#define KEY_NOEVENT          0 // Event, not a physical key
-#define KEY_ERRORROLLOVER    1 // Event, not a physical key
-#define KEY_POSTFAIL         2 // Event, not a physical key
-#define KEY_ERRORUNDEFINED   3 // Event, not a physical key
-#define KEY_A                4
-#define KEY_B                5
-#define KEY_C                6
-#define KEY_D                7
-#define KEY_E                8
-#define KEY_F                9
-#define KEY_G               10
-#define KEY_H               11
-#define KEY_I               12
-#define KEY_J               13
-#define KEY_K               14
-#define KEY_L               15
-#define KEY_M               16
-#define KEY_N               17
-#define KEY_O               18
-#define KEY_P               19
-#define KEY_Q               20
-#define KEY_R               21
-#define KEY_S               22
-#define KEY_T               23
-#define KEY_U               24
-#define KEY_V               25
-#define KEY_W               26
-#define KEY_X               27
-#define KEY_Y               28
-#define KEY_Z               29
-#define KEY_1               30
-#define KEY_2               31
-#define KEY_3               32
-#define KEY_4               33
-#define KEY_5               34
-#define KEY_6               35
-#define KEY_7               36
-#define KEY_8               37
-#define KEY_9               38
-#define KEY_0               39
-#define KEY_ENTER           40
-#define KEY_ESC             41
-#define KEY_BACKSPACE       42
-#define KEY_TAB             43
-#define KEY_SPACE           44
-#define KEY_MINUS           45
-#define KEY_EQUAL           46
-#define KEY_LEFT_BRACE      47
-#define KEY_RIGHT_BRACE     48
-#define KEY_BACKSLASH       49
-#define KEY_NUMBER          50
-#define KEY_SEMICOLON       51
-#define KEY_QUOTE           52
-#define KEY_TILDE           53
-#define KEY_COMMA           54
-#define KEY_PERIOD          55
-#define KEY_SLASH           56
-#define KEY_CAPS_LOCK       57
-#define KEY_F1              58
-#define KEY_F2              59
-#define KEY_F3              60
-#define KEY_F4              61
-#define KEY_F5              62
-#define KEY_F6              63
-#define KEY_F7              64
-#define KEY_F8              65
-#define KEY_F9              66
-#define KEY_F10             67
-#define KEY_F11             68
-#define KEY_F12             69
-#define KEY_PRINTSCREEN     70
-#define KEY_SCROLL_LOCK     71
-#define KEY_PAUSE           72
-#define KEY_INSERT          73
-#define KEY_HOME            74
-#define KEY_PAGE_UP         75
-#define KEY_DELETE          76
-#define KEY_END             77
-#define KEY_PAGE_DOWN       78
-#define KEY_RIGHT           79
-#define KEY_LEFT            80
-#define KEY_DOWN            81
-#define KEY_UP              82
-#define KEY_NUM_LOCK        83
-#define KEYPAD_SLASH        84
-#define KEYPAD_ASTERIX      85
-#define KEYPAD_MINUS        86
-#define KEYPAD_PLUS         87
-#define KEYPAD_ENTER        88
-#define KEYPAD_1            89
-#define KEYPAD_2            90
-#define KEYPAD_3            91
-#define KEYPAD_4            92
-#define KEYPAD_5            93
-#define KEYPAD_6            94
-#define KEYPAD_7            95
-#define KEYPAD_8            96
-#define KEYPAD_9            97
-#define KEYPAD_0            98
-#define KEYPAD_PERIOD       99
-#define KEY_ISO_BACKSLASH  100
-#define KEY_APP            101
-#define KEYBOARD_ERROR     102 // See spec
-#define KEYPAD_EQUAL       103
-#define KEY_F13            104
-#define KEY_F14            105
-#define KEY_F15            106
-#define KEY_F16            107
-#define KEY_F17            108
-#define KEY_F18            109
-#define KEY_F19            110
-#define KEY_F20            111
-#define KEY_F21            112
-#define KEY_F22            113
-#define KEY_F23            114
-#define KEY_F24            115
-#define KEY_EXEC           116
-#define KEY_HELP           117
-#define KEY_MENU           118
-#define KEY_SELECT         119
-#define KEY_STOP           120
-#define KEY_AGAIN          121
-#define KEY_UNDO           122
-#define KEY_CUT            123
-#define KEY_COPY           124
-#define KEY_PASTE          125
-#define KEY_FIND           126
-#define KEY_MUTE           127
-#define KEY_VOL_UP         128
-#define KEY_VOL_DOWN       129
-#define KEY_CAPS_LLOCK     130 // "Locking" Scroll Lock (Old keyboards with Locking Caps Lock)
-#define KEY_NUM_LLOCK      131
-#define KEY_SCROLL_LLOCK   132
-#define KEYPAD_COMMA       133 // Brazillian (See spec)
-#define KEYPAD_EQUAL_AS    134 // AS/400 Keyboard (See spec)
-#define KEY_INTER1         135 // KANJI1 - Brazillian and Japanese "Ru" and "-"
-#define KEY_INTER2         136 // KANJI2 - Japanese Katakana/Hiragana
-#define KEY_INTER3         137 // KANJI3 - Japanese Yen
-#define KEY_INTER4         138 // KANJI4 - Japanese Henkan
-#define KEY_INTER5         139 // KANJI5 - Japanese Muhenkan
-#define KEY_INTER6         140 // KANJI6 - PC98 Comma (Ka-m-ma)
-#define KEY_INTER7         141 // KANJI7 - Double-Byte/Single-Byte Toggle
-#define KEY_INTER8         142 // KANJI8 - Undefined
-#define KEY_INTER9         143 // KANJI9 - Undefined
-#define KEY_LANG1          144 // Korean Hangul/English Toggle
-#define KEY_LANG2          145 // Korean Hanja Conversion - Japanese Eisu
-#define KEY_LANG3          146 // Japanese Katakana Key (USB)
-#define KEY_LANG4          147 // Japanese Hiragana Key (USB)
-#define KEY_LANG5          148 // Japanese Zenkaku/Hankaku Key (USB)
-#define KEY_LANG6          149 // Reserved (Application Specific)
-#define KEY_LANG7          150 // Reserved (Application Specific)
-#define KEY_LANG8          151 // Reserved (Application Specific)
-#define KEY_LANG9          152 // Reserved (Application Specific)
-#define KEY_ALT_ERASE      153 // Special Erase (See Spec)
-#define KEY_SYSREQ_ATT     154 // Modifier Type
-#define KEY_CANCEL         155
-#define KEY_CLEAR          156
-#define KEY_PRIOR          157
-#define KEY_RETURN         158
-#define KEY_SEPARATOR      159
-#define KEY_OUT            160
-#define KEY_OPER           161
-#define KEY_CLEAR_AGAIN    162
-#define KEY_CRSEL_PROPS    163
-#define KEY_EXSEL          164
-// 165 - 175 Reserved
-#define KEYPAD_00          176
-#define KEYPAD_000         177
-#define KEY_1000_SEP       178
-#define KEY_DECIMAL_SEP    179
-#define KEY_CURRENCY_MAIN  180
-#define KEY_CURRENCY_SUB   181
-#define KEYPAD_LPAREN      182
-#define KEYPAD_RPAREN      183
-#define KEYPAD_LBRACE      184
-#define KEYPAD_RBRACE      185
-#define KEYPAD_TAB         186
-#define KEYPAD_BACKSPACE   187
-#define KEYPAD_A           188
-#define KEYPAD_B           189
-#define KEYPAD_C           190
-#define KEYPAD_D           191
-#define KEYPAD_E           192
-#define KEYPAD_F           193
-#define KEYPAD_XOR         194
-#define KEYPAD_CHEVRON     195
-#define KEYPAD_PERCENT     196
-#define KEYPAD_LTHAN       197
-#define KEYPAD_GTHAN       198
-#define KEYPAD_AND         199
-#define KEYPAD_AND_AND     200
-#define KEYPAD_OR          201
-#define KEYPAD_OR_OR       202
-#define KEYPAD_COLON       203
-#define KEYPAD_POUND       204
-#define KEYPAD_SPACE       205
-#define KEYPAD_AT          206
-#define KEYPAD_EXCLAIM     207
-#define KEYPAD_MEM_STORE   208
-#define KEYPAD_MEM_RECALL  209
-#define KEYPAD_MEM_CLEAR   210
-#define KEYPAD_MEM_ADD     211
-#define KEYPAD_MEM_SUB     212
-#define KEYPAD_MEM_MULT    213
-#define KEYPAD_MEM_DIV     214
-#define KEYPAD_PLUS_MINUS  215
-#define KEYPAD_CLEAR       216
-#define KEYPAD_CLEAR_ENTRY 217
-#define KEYPAD_BINARY      218
-#define KEYPAD_OCTAL       219
-#define KEYPAD_DECIMAL     220
-#define KEYPAD_HEX         221
-// 222 - 223 Reserved
-#define KEYS_LCTRL         224
-#define KEYS_LSHIFT        225
-#define KEYS_LALT          226
-#define KEYS_LGUI          227
-#define KEYS_RCTRL         228
-#define KEYS_RSHIFT        229
-#define KEYS_RALT          230
-#define KEYS_RGUI          231
-// 232 - 65535 Reserved
-
-#endif
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/PartialMap/macro.c	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,172 @@
+/* Copyright (C) 2014 by Jacob Alexander
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+// ----- Includes -----
+
+// Compiler Includes
+#include <Lib/MacroLib.h>
+
+// Project Includes
+#include <cli.h>
+#include <led.h>
+#include <print.h>
+#include <scan_loop.h>
+#include <output_com.h>
+
+// Keymaps
+#include "usb_hid.h"
+#include <defaultMap.h>
+
+// Local Includes
+#include "macro.h"
+
+
+
+// ----- Function Declarations -----
+
+void cliFunc_capList    ( char* args );
+void cliFunc_capSelect  ( char* args );
+void cliFunc_lookComb   ( char* args );
+void cliFunc_lookDefault( char* args );
+void cliFunc_lookPartial( char* args );
+void cliFunc_macroDebug ( char* args );
+
+
+
+// ----- Variables -----
+
+// Output Module command dictionary
+char*       macroCLIDictName = "Macro Module Commands";
+CLIDictItem macroCLIDict[] = {
+	{ "capList",     "Prints an indexed list of all non USB keycode capabilities.", cliFunc_capList },
+	{ "capSelect",   "Triggers the specified capability. U10 is USB Code 0x0A (G). K11 is keyboard capability 0x0B.", cliFunc_capSelect },
+	{ "lookComb",    "Do a lookup on the Combined map. S10 specifies Scancode 0x0A. U10 specified USB keycode 0x0A.", cliFunc_lookComb },
+	{ "lookDefault", "Do a lookup on the Default map. S10 specifies Scancode 0x0A. USB keycodes are not valid.", cliFunc_lookDefault },
+	{ "lookPartial", "Do a lookup on the layered partial map. S10 specifies Scancode 0x0A. U10 specifies USB keycode 0x0A.", cliFunc_lookPartial },
+	{ "macroDebug",  "Disables/Enables sending USB keycodes to the Output Module and prints U/K codes.", cliFunc_macroDebug },
+	{ 0, 0, 0 } // Null entry for dictionary end
+};
+
+
+
+// ----- Functions -----
+
+inline void Macro_bufferAdd( uint8_t byte )
+{
+	// Make sure we haven't overflowed the key buffer
+	// Default function for adding keys to the KeyIndex_Buffer, does a DefaultMap_Lookup
+	if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER )
+	{
+		KeyIndex_Buffer[KeyIndex_BufferUsed++] = DefaultMap_Lookup[byte];
+	}
+}
+
+inline void Macro_finishWithUSBBuffer( uint8_t sentKeys )
+{
+}
+
+inline void Macro_process()
+{
+	// Only do one round of macro processing between Output Module timer sends
+	if ( USBKeys_Sent != 0 )
+		return;
+
+	// Loop through input buffer
+	for ( uint8_t index = 0; index < KeyIndex_BufferUsed; index++ )
+	{
+		// Get the keycode from the buffer
+		uint8_t key = KeyIndex_Buffer[index];
+
+		// Set the modifier bit if this key is a modifier
+		if ( key & KEY_LCTRL ) // AND with 0xE0
+		{
+			USBKeys_Modifiers |= 1 << (key ^ KEY_LCTRL); // Left shift 1 by key XOR 0xE0
+
+			// Modifier processed, move on to the next key
+			continue;
+		}
+
+		// Too many keys
+		if ( USBKeys_Sent >= USBKeys_MaxSize )
+		{
+			info_print("USB Key limit reached");
+			errorLED( 1 );
+			break;
+		}
+
+		// Allow ignoring keys with 0's
+		if ( key != 0 )
+		{
+			USBKeys_Array[USBKeys_Sent++] = key;
+		}
+		else
+		{
+			// Key was not mapped
+			// TODO Add dead key map
+			erro_dPrint( "Key not mapped... - " );
+			printHex( key );
+			errorLED( 1 );
+		}
+	}
+
+	// Signal buffer that we've used it
+	Scan_finishedWithBuffer( KeyIndex_BufferUsed );
+}
+
+inline void Macro_setup()
+{
+	// Register Macro CLI dictionary
+	CLI_registerDictionary( macroCLIDict, macroCLIDictName );
+}
+
+
+// ----- CLI Command Functions -----
+
+void cliFunc_capList( char* args )
+{
+	// TODO
+}
+
+void cliFunc_capSelect( char* args )
+{
+	// TODO
+}
+
+void cliFunc_lookComb( char* args )
+{
+	// TODO
+}
+
+void cliFunc_lookDefault( char* args )
+{
+	// TODO
+}
+
+void cliFunc_lookPartial( char* args )
+{
+	// TODO
+}
+
+void cliFunc_macroDebug( char* args )
+{
+	// TODO
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/PartialMap/macro.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,48 @@
+/* Copyright (C) 2014 by Jacob Alexander
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __macro_h
+#define __macro_h
+
+// ----- Includes -----
+
+// Compiler Includes
+#include <stdint.h>
+
+
+
+// ----- Variables -----
+
+
+
+// ----- Macros -----
+
+
+
+// ----- Functions -----
+
+void Macro_bufferAdd( uint8_t byte );
+void Macro_finishWithUSBBuffer( uint8_t sentKeys );
+void Macro_process();
+void Macro_setup();
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/PartialMap/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,31 @@
+###| CMake Kiibohd Controller Macro Module |###
+#
+# Written by Jacob Alexander in 2014 for the Kiibohd Controller
+#
+# Released into the Public Domain
+#
+###
+
+
+###
+# Module C files
+#
+
+set( MACRO_SRCS
+	macro.c
+)
+
+
+###
+# Module Specific Options
+#
+
+
+###
+# Compiler Family Compatibility
+#
+set( MacroModuleCompatibility
+	arm
+	avr
+)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/PartialMap/usb_hid.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,365 @@
+/* Copyright (C) 2011-2014 by Jacob Alexander
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __usb_hid_h
+#define __usb_hid_h
+
+// ----- Defines -----
+
+// The USB codes are all taken from the USB HID Spec
+// http://www.usb.org/developers/devclass_docs/Hut1_11.pdf
+
+// List of Keycodes - USB HID 1.11 pg 53
+#define KEY_NOEVENT        0x00 // Event, not a physical key
+#define KEY_ERRORROLLOVER  0x01 // Event, not a physical key
+#define KEY_POSTFAIL       0x02 // Event, not a physical key
+#define KEY_ERRORUNDEFINED 0x03 // Event, not a physical key
+#define KEY_A              0x04
+#define KEY_B              0x05
+#define KEY_C              0x06
+#define KEY_D              0x07
+#define KEY_E              0x08
+#define KEY_F              0x09
+#define KEY_G              0x0A
+#define KEY_H              0x0B
+#define KEY_I              0x0C
+#define KEY_J              0x0D
+#define KEY_K              0x0E
+#define KEY_L              0x0F
+#define KEY_M              0x10
+#define KEY_N              0x11
+#define KEY_O              0x12
+#define KEY_P              0x13
+#define KEY_Q              0x14
+#define KEY_R              0x15
+#define KEY_S              0x16
+#define KEY_T              0x17
+#define KEY_U              0x18
+#define KEY_V              0x19
+#define KEY_W              0x1A
+#define KEY_X              0x1B
+#define KEY_Y              0x1C
+#define KEY_Z              0x1D
+#define KEY_1              0x1E
+#define KEY_2              0x1F
+#define KEY_3              0x20
+#define KEY_4              0x21
+#define KEY_5              0x22
+#define KEY_6              0x23
+#define KEY_7              0x24
+#define KEY_8              0x25
+#define KEY_9              0x26
+#define KEY_0              0x27
+#define KEY_ENTER          0x28
+#define KEY_ESC            0x29
+#define KEY_BACKSPACE      0x2A
+#define KEY_TAB            0x2B
+#define KEY_SPACE          0x2C
+#define KEY_MINUS          0x2D
+#define KEY_EQUAL          0x2E
+#define KEY_LEFT_BRACE     0x2F
+#define KEY_RIGHT_BRACE    0x30
+#define KEY_BACKSLASH      0x31
+#define KEY_NUMBER         0x32
+#define KEY_SEMICOLON      0x33
+#define KEY_QUOTE          0x34
+#define KEY_TILDE          0x35
+#define KEY_COMMA          0x36
+#define KEY_PERIOD         0x37
+#define KEY_SLASH          0x38
+#define KEY_CAPS_LOCK      0x39
+#define KEY_F1             0x3A
+#define KEY_F2             0x3B
+#define KEY_F3             0x3C
+#define KEY_F4             0x3D
+#define KEY_F5             0x3E
+#define KEY_F6             0x3F
+#define KEY_F7             0x40
+#define KEY_F8             0x41
+#define KEY_F9             0x42
+#define KEY_F10            0x43
+#define KEY_F11            0x44
+#define KEY_F12            0x45
+#define KEY_PRINTSCREEN    0x46
+#define KEY_SCROLL_LOCK    0x47
+#define KEY_PAUSE          0x48
+#define KEY_INSERT         0x49
+#define KEY_HOME           0x4A
+#define KEY_PAGE_UP        0x4B
+#define KEY_DELETE         0x4C
+#define KEY_END            0x4D
+#define KEY_PAGE_DOWN      0x4E
+#define KEY_RIGHT          0x4F
+#define KEY_LEFT           0x50
+#define KEY_DOWN           0x51
+#define KEY_UP             0x52
+#define KEY_NUM_LOCK       0x53
+#define KEYPAD_SLASH       0x54
+#define KEYPAD_ASTERIX     0x55
+#define KEYPAD_MINUS       0x56
+#define KEYPAD_PLUS        0x57
+#define KEYPAD_ENTER       0x58
+#define KEYPAD_1           0x59
+#define KEYPAD_2           0x5A
+#define KEYPAD_3           0x5B
+#define KEYPAD_4           0x5C
+#define KEYPAD_5           0x5D
+#define KEYPAD_6           0x5E
+#define KEYPAD_7           0x5F
+#define KEYPAD_8           0x60
+#define KEYPAD_9           0x61
+#define KEYPAD_0           0x62
+#define KEYPAD_PERIOD      0x63
+#define KEY_ISO_BACKSLASH  0x64
+#define KEY_APP            0x65
+#define KEYBOARD_STATUS    0x66 // Used for indicating status or errors, not a key
+#define KEYPAD_EQUAL       0x67
+#define KEY_F13            0x68
+#define KEY_F14            0x69
+#define KEY_F15            0x6A
+#define KEY_F16            0x6B
+#define KEY_F17            0x6C
+#define KEY_F18            0x6D
+#define KEY_F19            0x6E
+#define KEY_F20            0x6F
+#define KEY_F21            0x70
+#define KEY_F22            0x71
+#define KEY_F23            0x72
+#define KEY_F24            0x73
+#define KEY_EXEC           0x74
+#define KEY_HELP           0x75
+#define KEY_MENU           0x76
+#define KEY_SELECT         0x77
+#define KEY_STOP           0x78
+#define KEY_AGAIN          0x79
+#define KEY_UNDO           0x7A
+#define KEY_CUT            0x7B
+#define KEY_COPY           0x7C
+#define KEY_PASTE          0x7D
+#define KEY_FIND           0x7E
+#define KEY_MUTE           0x7F
+#define KEY_VOL_UP         0x80
+#define KEY_VOL_DOWN       0x81
+#define KEY_CAPS_LLOCK     0x82 // "Locking" Scroll Lock (Old keyboards with Locking Caps Lock)
+#define KEY_NUM_LLOCK      0x83
+#define KEY_SCROLL_LLOCK   0x84
+#define KEYPAD_COMMA       0x85 // Brazillian (See spec)
+#define KEYPAD_EQUAL_AS    0x86 // AS/400 Keyboard (See spec)
+#define KEY_INTER1         0x87 // KANJI1 - Brazillian and Japanese "Ru" and "-"
+#define KEY_INTER2         0x88 // KANJI2 - Japanese Katakana/Hiragana
+#define KEY_INTER3         0x89 // KANJI3 - Japanese Yen
+#define KEY_INTER4         0x8A // KANJI4 - Japanese Henkan
+#define KEY_INTER5         0x8B // KANJI5 - Japanese Muhenkan
+#define KEY_INTER6         0x8C // KANJI6 - PC0x62 Comma (Ka-m-ma)
+#define KEY_INTER7         0x8D // KANJI7 - Double-Byte/Single-Byte Toggle
+#define KEY_INTER8         0x8E // KANJI8 - Undefined
+#define KEY_INTER9         0x8F // KANJI9 - Undefined
+#define KEY_LANG1          0x90 // Korean Hangul/English Toggle
+#define KEY_LANG2          0x91 // Korean Hanja Conversion - Japanese Eisu
+#define KEY_LANG3          0x92 // Japanese Katakana Key (USB)
+#define KEY_LANG4          0x93 // Japanese Hiragana Key (USB)
+#define KEY_LANG5          0x94 // Japanese Zenkaku/Hankaku Key (USB)
+#define KEY_LANG6          0x95 // Reserved (Application Specific)
+#define KEY_LANG7          0x96 // Reserved (Application Specific)
+#define KEY_LANG8          0x97 // Reserved (Application Specific)
+#define KEY_LANG9          0x98 // Reserved (Application Specific)
+#define KEY_ALT_ERASE      0x99 // Special Erase (See Spec)
+#define KEY_SYSREQ_ATT     0x9A // Modifier Type
+#define KEY_CANCEL         0x9B
+#define KEY_CLEAR          0x9C
+#define KEY_PRIOR          0x9D
+#define KEY_RETURN         0x9E
+#define KEY_SEPARATOR      0x9F
+#define KEY_OUT            0xA0
+
+#define KEY_OPER           0xA1
+#define KEY_CLEAR_AGAIN    0xA2
+#define KEY_CRSEL_PROPS    0xA3
+#define KEY_EXSEL          0xA4
+// 0xA5 - 0xAF Reserved
+#define KEYPAD_00          0xB0
+#define KEYPAD_000         0xB1
+#define KEY_1000_SEP       0xB2
+#define KEY_DECIMAL_SEP    0xB3
+#define KEY_CURRENCY_MAIN  0xB4
+#define KEY_CURRENCY_SUB   0xB5
+#define KEYPAD_LPAREN      0xB6
+#define KEYPAD_RPAREN      0xB7
+#define KEYPAD_LBRACE      0xB8
+#define KEYPAD_RBRACE      0xB9
+#define KEYPAD_TAB         0xBA
+#define KEYPAD_BACKSPACE   0xBB
+#define KEYPAD_A           0xBC
+#define KEYPAD_B           0xBD
+#define KEYPAD_C           0xBE
+#define KEYPAD_D           0xBF
+#define KEYPAD_E           0xC0
+#define KEYPAD_F           0xC1
+#define KEYPAD_XOR         0xC2
+#define KEYPAD_CHEVRON     0xC3
+#define KEYPAD_PERCENT     0xC4
+#define KEYPAD_LTHAN       0xC5
+#define KEYPAD_GTHAN       0xC6
+#define KEYPAD_BITAND      0xC7
+#define KEYPAD_AND         0xC8
+#define KEYPAD_BITOR       0xC9
+#define KEYPAD_OR          0xCA
+#define KEYPAD_COLON       0xCB
+#define KEYPAD_POUND       0xCC
+#define KEYPAD_SPACE       0xCD
+#define KEYPAD_AT          0xCE
+#define KEYPAD_EXCLAIM     0xCF
+#define KEYPAD_MEM_STORE   0xD0
+#define KEYPAD_MEM_RECALL  0xD1
+#define KEYPAD_MEM_CLEAR   0xD2
+#define KEYPAD_MEM_ADD     0xD3
+#define KEYPAD_MEM_SUB     0xD4
+#define KEYPAD_MEM_MULT    0xD5
+#define KEYPAD_MEM_DIV     0xD6
+#define KEYPAD_PLUS_MINUS  0xD7
+#define KEYPAD_CLEAR       0xD8
+#define KEYPAD_CLEAR_ENTRY 0xD9
+#define KEYPAD_BINARY      0xDA
+#define KEYPAD_OCTAL       0xDB
+#define KEYPAD_DECIMAL     0xDC
+#define KEYPAD_HEX         0xDD
+// 0xDE - 0xDF Reserved
+#define KEY_CTRL           0xE0 // Convenience
+#define KEY_LCTRL          0xE0
+#define KEY_SHIFT          0xE1 // Convenience
+#define KEY_LSHIFT         0xE1
+#define KEY_ALT            0xE2 // Convenience
+#define KEY_LALT           0xE2
+#define KEY_GUI            0xE3 // Convenience
+#define KEY_LGUI           0xE3
+#define KEY_RCTRL          0xE4
+#define KEY_RSHIFT         0xE5
+#define KEY_RALT           0xE6
+#define KEY_RGUI           0xE7
+// 0xE8 - 0xFFFF Reserved
+// Except for 0xE0-0xE7 which are DV (Dynamic Flags), all Keycodes are Sel (Selectors).
+
+
+// List of LED codes - USB HID 1.11 pg 61
+// LED/Indicators are defined as:
+//  OOC - On/Off Control
+//  US  - Usage Indicator: 1 - In Use, 0 - Not In Use
+//  UM  - Usage Multi Mode Indicator Collection of 1 or more indicators: On, Flash, Slow Blink, Fast Blink, Off
+//  Sel - Selector
+//  DV  - Dynamic Flag
+#define LED_UNDEFINED      0x00
+#define LED_NUM_LOCK       0x01 // OOC
+#define LED_CAPS_LOCK      0x02 // OOC
+#define LED_SCROLL_LOCK    0x03 // OOC
+#define LED_COMPOSE        0x04 // OOC
+#define LED_KANA           0x05 // OOC
+#define LED_POWER          0x06 // OOC
+#define LED_SHIFT          0x07 // OOC
+#define LED_DO_NOT_DISTURB 0x08 // OOC
+#define LED_MUTE           0x09 // OOC
+#define LED_TONE_ENABLE    0x0A // OOC
+#define LED_HIGHCUT_FILTER 0x0B // OOC
+#define LED_LOWCUT_FILTER  0x0C // OOC
+#define LED_EQL_ENABLE     0x0D // OOC
+#define LED_SND_FLD_ON     0x0E // OOC
+#define LED_SURROUND_ON    0x0F // OOC
+#define LED_REPEAT         0x10 // OOC
+#define LED_STEREO         0x11 // OOC
+#define LED_SAMPLE_RT_DET  0x12 // OOC
+#define LED_SPINNING       0x13 // OOC
+#define LED_CAV            0x14 // OOC
+#define LED_CLV            0x15 // OOC
+#define LED_REC_FMT_DET    0x16 // OOC
+#define LED_OFF_HOOK       0x17 // OOC
+#define LED_RING           0x18 // OOC
+#define LED_MSG_WAITING    0x19 // OOC
+#define LED_DATA_MODE      0x1A // OOC
+#define LED_BAT_OPERATION  0x1B // OOC
+#define LED_BAT_OK         0x1C // OOC
+#define LED_BAT_LOW        0x1D // OOC
+#define LED_SPEAKER        0x1E // OOC
+#define LED_HEAD_SET       0x1F // OOC
+#define LED_HOLD           0x20 // OOC
+#define LED_MICROPHONE     0x21 // OOC
+#define LED_COVERAGE       0x22 // OOC
+#define LED_NIGHT_MODE     0x23 // OOC
+#define LED_SEND_CALLS     0x24 // OOC
+#define LED_CALL_PICKUP    0x25 // OOC
+#define LED_CONFERENCE     0x26 // OOC
+#define LED_STAND_BY       0x27 // OOC
+#define LED_CAMERA_ON      0x28 // OOC
+#define LED_CAMERA_OFF     0x29 // OOC
+#define LED_ON_LINE        0x2A // OOC
+#define LED_OFF_LINE       0x2B // OOC
+#define LED_BUSY           0x2C // OOC
+#define LED_READY          0x2D // OOC
+#define LED_PAPER_OUT      0x2E // OOC
+#define LED_PAPER_JAM      0x2F // OOC
+#define LED_REMOTE         0x30 // OOC
+#define LED_FORWARD        0x31 // OOC
+#define LED_REVERSE        0x32 // OOC
+#define LED_STOP           0x33 // OOC
+#define LED_REWIND         0x34 // OOC
+#define LED_FAST_FORWARD   0x35 // OOC
+#define LED_PLAY           0x36 // OOC
+#define LED_PAUSE          0x37 // OOC
+#define LED_RECORD         0x38 // OOC
+#define LED_ERROR          0x39 // OOC
+#define LED_USI            0x3A // US
+#define LED_UIUI           0x3B // US
+#define LED_UMMI           0x3C // UM
+#define LED_IND_ON         0x3D // Sel
+#define LED_IND_FLASH      0x3E // Sel
+#define LED_IND_SLOW_BLNK  0x3F // Sel
+#define LED_IND_FAST_BLNK  0x40 // Sel
+#define LED_IND_OFF        0x41 // Sel
+#define LED_FLASH_ON_TIME  0x42 // DV
+#define LED_SLW_B_ON_TIME  0x43 // DV
+#define LED_SLW_B_OFF_TIME 0x44 // DV
+#define LED_FST_B_ON_TIME  0x45 // DV
+#define LED_FST_B_OFF_TIME 0x46 // DV
+#define LED_UIC            0x47 // UM
+#define LED_IND_RED        0x48 // Sel
+#define LED_IND_GREEN      0x49 // Sel
+#define LED_IND_AMBER      0x4A // Sel
+#define LED_GENERIC_IND    0x4B // OOC
+#define LED_SYS_SUSPEND    0x4C // OOC
+#define LED_EXT_PWR_CONN   0x4D // OOC
+// 0x4E - 0xFFFF Reserved
+
+
+// List of Mouse Buttons - USB HID 1.11 pg 67
+#define MOUSE_NOPRESS      0x00
+#define MOUSE_PRIMARY      0x01 // Button 1
+#define MOUSE_SECONDARY    0x02 // Button 2
+#define MOUSE_TERTIARY     0x03 // Button 3
+#define MOUSE_BUTTON(x)       x
+// Continues to 0xFFFF, the higher the Mouse code, the selector significance descreases
+// Buttons can be defined as:
+//  Sel - Selector
+//  OOC - On/Off Control
+//  MC  - Momentary Control
+//  OSC - One-Shot Control
+// depending on context.
+
+
+#endif
+
--- a/Macro/basic/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Macro/basic/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Macro Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -14,7 +14,8 @@
 message( AUTHOR_WARNING
 "The 'basic' macro module was originally designed for matrix scanning designs,
 it was found not to be scalable with NKRO keyboard converters.
-It has also not been tested in a long time, use at your own risk."
+It has also not been tested in a (very) long time, use at your own risk.
+It is older than the deprecated 'buffer' macro module."
 )
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/avrcapsense.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,538 @@
+/* Copyright (C) 2013 by Jacob Alexander
+ * 
+ * dfj, place whatever license you want here
+ */
+
+#ifndef __AVRCAPSENSE_H
+#define __AVRCAPSENSE_H
+
+// This file contains various key layouts for dfj's AVR Capsense Controller
+
+
+// ----- Variables -----
+
+static uint8_t  avrcapsense_ModifierMask [] = { 0x34, 0x38, 0x3A, 0x40 };
+
+// Default 1-indexed key mappings
+static uint8_t avrcapsense_DefaultMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_SEMICOLON, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_D, // 0x64
+				KEY_E, // 0x65
+				KEY_F, // 0x66
+				KEY_G, // 0x67
+				KEY_H, // 0x68
+				KEY_I, // 0x69
+				KEY_J, // 0x6A
+				KEY_K, // 0x6B
+				KEY_L, // 0x6C
+				KEY_M, // 0x6D
+				KEY_N, // 0x6E
+				KEY_O, // 0x6F
+				KEY_P, // 0x70
+				KEY_Q, // 0x71
+				KEY_R, // 0x72
+				KEY_S, // 0x73
+				KEY_T, // 0x74
+				KEY_U, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_Y, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+static uint8_t avrcapsense_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_O, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_S, // 0x64
+				KEY_F, // 0x65
+				KEY_T, // 0x66
+				KEY_D, // 0x67
+				KEY_H, // 0x68
+				KEY_U, // 0x69
+				KEY_N, // 0x6A
+				KEY_E, // 0x6B
+				KEY_I, // 0x6C
+				KEY_M, // 0x6D
+				KEY_K, // 0x6E
+				KEY_Y, // 0x6F
+				KEY_SEMICOLON, // 0x70
+				KEY_Q, // 0x71
+				KEY_P, // 0x72
+				KEY_R, // 0x73
+				KEY_G, // 0x74
+				KEY_L, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_J, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/betkb.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,296 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __BETKB_H
+#define __BETKB_H
+
+// This file contains various key layouts for the Burroughs Ergonomic Terminal Keyboard (Kokusai)
+
+
+// ----- Variables -----
+static uint8_t betkb_ModifierMask[] = { 0x20, 0x2D, 0x2E, 0x30, 0x3E, 0x60 };
+
+static uint8_t betkb_DefaultMap[] = { 
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				0, // 0x08
+				0, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				0, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				0, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_LEFT_SHIFT, // 0x20
+				0, // 0x21
+				KEY_Z, // 0x22
+				KEY_X, // 0x23
+				KEY_C, // 0x24
+				KEY_V, // 0x25
+				KEY_B, // 0x26
+				KEY_N, // 0x27
+				KEY_M, // 0x28
+				KEY_COMMA, // 0x29
+				KEY_PERIOD, // 0x2A
+				KEY_SLASH, // 0x2B
+				0, // 0x2C
+				KEY_RIGHT_SHIFT, // 0x2D
+				KEY_LEFT_ALT, // 0x2E
+				KEY_SPACE, // 0x2F
+				KEY_LEFT_CTRL, // 0x30
+				KEY_A, // 0x31
+				KEY_S, // 0x32
+				KEY_D, // 0x33
+				KEY_F, // 0x34
+				KEY_G, // 0x35
+				KEY_H, // 0x36
+				KEY_J, // 0x37
+				KEY_K, // 0x38
+				KEY_L, // 0x39
+				KEY_SEMICOLON, // 0x3A
+				KEY_QUOTE, // 0x3B
+				0, // 0x3C
+				KEY_ENTER, // 0x3D
+				KEY_RIGHT_GUI, // 0x3E
+				KEY_LEFT, // 0x3F (KEYPAD_1)
+				KEY_TAB, // 0x40
+				KEY_Q, // 0x41
+				KEY_W, // 0x42
+				KEY_E, // 0x43
+				KEY_R, // 0x44
+				KEY_T, // 0x45
+				KEY_Y, // 0x46
+				KEY_U, // 0x47
+				KEY_I, // 0x48
+				KEY_O, // 0x49
+				KEY_P, // 0x4A
+				KEY_LEFT_BRACE, // 0x4B
+				KEY_RIGHT_BRACE, // 0x4C
+				KEY_BACKSLASH, // 0x4D
+				KEY_DELETE, // 0x4E
+				KEYPAD_4, // 0x4F
+				KEY_ESC, // 0x50
+				KEY_1, // 0x51
+				KEY_2, // 0x52
+				KEY_3, // 0x53
+				KEY_4, // 0x54
+				KEY_5, // 0x55
+				KEY_6, // 0x56
+				KEY_7, // 0x57
+				KEY_8, // 0x58
+				KEY_9, // 0x59
+				KEY_0, // 0x5A
+				KEY_MINUS, // 0x5B
+				KEY_EQUAL, // 0x5C
+				KEY_TILDE, // 0x5D
+				KEY_BACKSPACE, // 0x5E
+				KEY_NUM_LOCK, // 0x5F
+				KEY_LEFT_GUI, // 0x60
+				KEY_HOME, // 0x61
+				KEY_END, // 0x62
+				KEY_INSERT, // 0x63
+				KEY_DELETE, // 0x64
+				KEY_F1, // 0x65
+				KEY_F2, // 0x66
+				KEY_F3, // 0x67
+				KEY_F4, // 0x68
+				KEY_F5, // 0x69
+				KEY_F6, // 0x6A
+				KEY_F7, // 0x6B
+				KEY_F8, // 0x6C
+				KEY_F9, // 0x6D
+				KEY_F10, // 0x6E
+				KEY_PRINTSCREEN, // 0x6F
+				KEY_PAGE_UP, // 0x70
+				KEY_PAGE_DOWN, // 0x71
+				KEY_F11, // 0x72
+				KEYPAD_7, // 0x73
+				KEYPAD_8, // 0x74
+				KEYPAD_9, // 0x75
+				KEY_UP, // 0x76 (KEYPAD_5)
+				KEYPAD_6, // 0x77
+				KEY_DOWN, // 0x78 (KEYPAD_2)
+				KEY_RIGHT, // 0x79 (KEYPAD_3)
+				KEYPAD_0, // 0x7A
+				KEYPAD_00, // 0x7B
+				KEYPAD_ENTER, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+static uint8_t betkb_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				0, // 0x08
+				0, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				0, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				0, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_LEFT_SHIFT, // 0x20
+				0, // 0x21
+				KEY_Z, // 0x22
+				KEY_X, // 0x23
+				KEY_C, // 0x24
+				KEY_V, // 0x25
+				KEY_B, // 0x26
+				KEY_K, // 0x27
+				KEY_M, // 0x28
+				KEY_COMMA, // 0x29
+				KEY_PERIOD, // 0x2A
+				KEY_SLASH, // 0x2B
+				0, // 0x2C
+				KEY_RIGHT_SHIFT, // 0x2D
+				KEY_LEFT_ALT, // 0x2E
+				KEY_SPACE, // 0x2F
+				KEY_LEFT_CTRL, // 0x30
+				KEY_A, // 0x31
+				KEY_R, // 0x32
+				KEY_S, // 0x33
+				KEY_T, // 0x34
+				KEY_D, // 0x35
+				KEY_H, // 0x36
+				KEY_N, // 0x37
+				KEY_E, // 0x38
+				KEY_I, // 0x39
+				KEY_O, // 0x3A
+				KEY_QUOTE, // 0x3B
+				0, // 0x3C
+				KEY_ENTER, // 0x3D
+				KEY_RIGHT_GUI, // 0x3E
+				KEY_LEFT, // 0x3F (KEYPAD_1)
+				KEY_TAB, // 0x40
+				KEY_Q, // 0x41
+				KEY_W, // 0x42
+				KEY_F, // 0x43
+				KEY_P, // 0x44
+				KEY_G, // 0x45
+				KEY_J, // 0x46
+				KEY_L, // 0x47
+				KEY_U, // 0x48
+				KEY_Y, // 0x49
+				KEY_SEMICOLON, // 0x4A
+				KEY_LEFT_BRACE, // 0x4B
+				KEY_RIGHT_BRACE, // 0x4C
+				KEY_BACKSLASH, // 0x4D
+				KEY_DELETE, // 0x4E
+				KEYPAD_4, // 0x4F
+				KEY_ESC, // 0x50
+				KEY_1, // 0x51
+				KEY_2, // 0x52
+				KEY_3, // 0x53
+				KEY_4, // 0x54
+				KEY_5, // 0x55
+				KEY_6, // 0x56
+				KEY_7, // 0x57
+				KEY_8, // 0x58
+				KEY_9, // 0x59
+				KEY_0, // 0x5A
+				KEY_MINUS, // 0x5B
+				KEY_EQUAL, // 0x5C
+				KEY_TILDE, // 0x5D
+				KEY_BACKSPACE, // 0x5E
+				KEY_NUM_LOCK, // 0x5F
+				KEY_LEFT_GUI, // 0x60
+				KEY_HOME, // 0x61
+				KEY_END, // 0x62
+				KEY_INSERT, // 0x63
+				KEY_DELETE, // 0x64
+				KEY_F1, // 0x65
+				KEY_F2, // 0x66
+				KEY_F3, // 0x67
+				KEY_F4, // 0x68
+				KEY_F5, // 0x69
+				KEY_F6, // 0x6A
+				KEY_F7, // 0x6B
+				KEY_F8, // 0x6C
+				KEY_F9, // 0x6D
+				KEY_F10, // 0x6E
+				KEY_PRINTSCREEN, // 0x6F
+				KEY_PAGE_UP, // 0x70
+				KEY_PAGE_DOWN, // 0x71
+				KEY_F11, // 0x72
+				KEYPAD_7, // 0x73
+				KEYPAD_8, // 0x74
+				KEYPAD_9, // 0x75
+				KEY_UP, // 0x76 (KEYPAD_5)
+				KEYPAD_6, // 0x77
+				KEY_DOWN, // 0x78 (KEYPAD_2)
+				KEY_RIGHT, // 0x79 (KEYPAD_3)
+				KEYPAD_0, // 0x7A
+				KEYPAD_00, // 0x7B
+				KEYPAD_ENTER, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/budkeypad.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,74 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __BUDKEYPAD_H
+#define __BUDKEYPAD_H
+
+// This file contains various key layouts for the Bud Hall Effect Keypad (16 key)
+
+
+// ----- Variables -----
+
+static uint8_t budkeypad_ModifierMask[] = {};
+
+// Default 1-indexed key mappings
+static uint8_t budkeypad_DefaultMap[] = { 0,
+				KEYPAD_7,
+				KEYPAD_8,
+				KEYPAD_9,
+				KEYPAD_SLASH,
+				KEYPAD_4,
+				KEYPAD_5,
+				KEYPAD_6,
+				KEYPAD_ASTERIX,
+				KEYPAD_1,
+				KEYPAD_2,
+				KEYPAD_3,
+				KEYPAD_MINUS,
+				KEYPAD_ENTER,
+				KEYPAD_0,
+				KEYPAD_PERIOD,
+				KEYPAD_PLUS,
+};
+
+static uint8_t budkeypad_TheProfosistMap[] = { 0,
+				KEY_7,
+				KEY_8,
+				KEY_9,
+				KEYPAD_SLASH,
+				KEY_4,
+				KEY_5,
+				KEY_6,
+				KEYPAD_ASTERIX,
+				KEY_1,
+				KEY_2,
+				KEY_3,
+				KEYPAD_MINUS,
+				KEY_0,
+				KEYPAD_PERIOD,
+				KEYPAD_ENTER,
+				KEYPAD_PLUS,
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/epsonqx10.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,331 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __EPSONQX10_H
+#define __EPSONQX10_H
+
+// This file contains various key layouts for the Epson QX-10 Series of keyboards
+// NOTE: Modifiers can't be remapped to non-modifer keys due to how the signals are interpretted
+//       Remapping between modifier keys is perfectly fine (or even a modifier to a normal key)
+
+
+
+// ----- Variables -----
+static uint8_t epsonqx10_ModifierMask[] = { 0x81, 0x83, 0x85, 0x87, 0x89, 0x8B, 0x8D, 0x8F };
+
+static uint8_t epsonqx10_DefaultMap[] = { 
+				0x00, // 0x00
+				KEY_F4, // 0x01
+				0, // 0x02
+				KEY_F5, // 0x03
+				KEY_F6, // 0x04
+				KEY_F7, // 0x05
+				KEY_F8, // 0x06
+				KEY_F9, // 0x07
+				0, // 0x08
+				KEY_F10, // 0x09
+				KEY_F11, // 0x0A
+				KEY_F12, // 0x0B
+				KEY_F13, // 0x0C
+				0, // 0x0D
+				KEY_F14, // 0x0E
+				KEY_F15, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				KEYPAD_ENTER, // 0x15
+				KEYPAD_PERIOD, // 0x16
+				KEYPAD_0, // 0x17
+				KEYPAD_EQUAL, // 0x18
+				KEYPAD_6, // 0x19
+				KEYPAD_5, // 0x1A
+				KEYPAD_4, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				KEY_F17, // 0x1E
+				KEY_F16, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				KEYPAD_3, // 0x25
+				KEYPAD_2, // 0x26
+				KEYPAD_1, // 0x27
+				KEYPAD_PLUS, // 0x28
+				KEYPAD_9, // 0x29
+				KEYPAD_8, // 0x2A
+				KEYPAD_7, // 0x2B
+				KEYPAD_MINUS, // 0x2C
+				KEYPAD_ASTERIX, // 0x2D
+				KEYPAD_SLASH, // 0x2E
+				KEY_NUM_LOCK, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_SPACE, // 0x32
+				KEY_Z, // 0x33
+				KEY_X, // 0x34
+				KEY_C, // 0x35
+				KEY_V, // 0x36
+				KEY_B, // 0x37
+				KEY_N, // 0x38
+				KEY_M, // 0x39
+				KEY_COMMA, // 0x3A
+				KEY_PERIOD, // 0x3B
+				KEY_UP, // 0x3C
+				KEY_LEFT, // 0x3D
+				KEY_RIGHT, // 0x3E
+				KEY_DOWN, // 0x3F
+				0, // 0x40
+				KEY_F19, // 0x41
+				KEY_CAPS_LOCK, // 0x42
+				KEY_A, // 0x43
+				KEY_S, // 0x44
+				KEY_D, // 0x45
+				KEY_F, // 0x46
+				KEY_G, // 0x47
+				KEY_H, // 0x48
+				KEY_J, // 0x49
+				KEY_K, // 0x4A
+				KEY_L, // 0x4B
+				KEY_SEMICOLON, // 0x4C
+				KEY_QUOTE, // 0x4D
+				KEY_ENTER, // 0x4E
+				KEY_SLASH, // 0x4F
+				0, // 0x50
+				KEY_Q, // 0x51
+				KEY_W, // 0x52
+				KEY_E, // 0x53
+				KEY_R, // 0x54
+				KEY_T, // 0x55
+				KEY_Y, // 0x56
+				KEY_U, // 0x57
+				KEY_I, // 0x58
+				KEY_O, // 0x59
+				KEY_P, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_RIGHT_BRACE, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_INSERT, // 0x5E
+				KEY_PAGE_DOWN, // 0x5F
+				0, // 0x60
+				KEY_2, // 0x61
+				KEY_3, // 0x62
+				KEY_4, // 0x63
+				KEY_5, // 0x64
+				KEY_6, // 0x65
+				KEY_7, // 0x66
+				KEY_8, // 0x67
+				KEY_9, // 0x68
+				KEY_0, // 0x69
+				KEY_MINUS, // 0x6A
+				KEY_EQUAL, // 0x6B
+				KEY_TILDE, // 0x6C
+				KEY_BACKSPACE, // 0x6D
+				KEY_DELETE, // 0x6E
+				KEY_PAGE_UP, // 0x6F
+				0, // 0x70
+				KEY_F3, // 0x71
+				KEY_F2, // 0x72
+				KEY_F1, // 0x73
+				KEY_F18, // 0x74
+				KEY_ESC, // 0x75
+				KEY_1, // 0x76
+				KEY_TAB, // 0x77
+				KEY_F19, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				KEY_RIGHT_SHIFT, // 0x85
+				0, // 0x86
+				KEY_LEFT_SHIFT, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				KEY_LEFT_CTRL, // 0x8B
+				0, // 0x8C
+				KEY_GUI, // 0x8D
+				0, // 0x8E
+				KEY_RIGHT_CTRL, // 0x8F
+};
+
+static uint8_t epsonqx10_ColemakMap[] = {
+				0x00, // 0x00
+				KEY_F4, // 0x01
+				0, // 0x02
+				KEY_F5, // 0x03
+				KEY_F6, // 0x04
+				KEY_F7, // 0x05
+				KEY_F8, // 0x06
+				KEY_F9, // 0x07
+				0, // 0x08
+				KEY_F10, // 0x09
+				KEY_F11, // 0x0A
+				KEY_F12, // 0x0B
+				KEY_F13, // 0x0C
+				0, // 0x0D
+				KEY_F14, // 0x0E
+				KEY_F15, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				KEYPAD_ENTER, // 0x15
+				KEYPAD_PERIOD, // 0x16
+				KEYPAD_0, // 0x17
+				KEYPAD_EQUAL, // 0x18
+				KEYPAD_6, // 0x19
+				KEYPAD_5, // 0x1A
+				KEYPAD_4, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				KEY_F17, // 0x1E
+				KEY_F16, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				KEYPAD_3, // 0x25
+				KEYPAD_2, // 0x26
+				KEYPAD_1, // 0x27
+				KEYPAD_PLUS, // 0x28
+				KEYPAD_9, // 0x29
+				KEYPAD_8, // 0x2A
+				KEYPAD_7, // 0x2B
+				KEYPAD_MINUS, // 0x2C
+				KEYPAD_ASTERIX, // 0x2D
+				KEYPAD_SLASH, // 0x2E
+				KEY_NUM_LOCK, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_SPACE, // 0x32
+				KEY_Z, // 0x33
+				KEY_X, // 0x34
+				KEY_C, // 0x35
+				KEY_V, // 0x36
+				KEY_B, // 0x37
+				KEY_K, // 0x38
+				KEY_M, // 0x39
+				KEY_COMMA, // 0x3A
+				KEY_PERIOD, // 0x3B
+				KEY_UP, // 0x3C
+				KEY_LEFT, // 0x3D
+				KEY_RIGHT, // 0x3E
+				KEY_DOWN, // 0x3F
+				0, // 0x40
+				KEY_F19, // 0x41
+				KEY_CAPS_LOCK, // 0x42
+				KEY_A, // 0x43
+				KEY_R, // 0x44
+				KEY_S, // 0x45
+				KEY_T, // 0x46
+				KEY_D, // 0x47
+				KEY_H, // 0x48
+				KEY_N, // 0x49
+				KEY_E, // 0x4A
+				KEY_I, // 0x4B
+				KEY_O, // 0x4C
+				KEY_QUOTE, // 0x4D
+				KEY_ENTER, // 0x4E
+				KEY_SLASH, // 0x4F
+				0, // 0x50
+				KEY_Q, // 0x51
+				KEY_W, // 0x52
+				KEY_F, // 0x53
+				KEY_P, // 0x54
+				KEY_G, // 0x55
+				KEY_J, // 0x56
+				KEY_L, // 0x57
+				KEY_U, // 0x58
+				KEY_Y, // 0x59
+				KEY_SEMICOLON, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_RIGHT_BRACE, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_INSERT, // 0x5E
+				KEY_PAGE_DOWN, // 0x5F
+				0, // 0x60
+				KEY_2, // 0x61
+				KEY_3, // 0x62
+				KEY_4, // 0x63
+				KEY_5, // 0x64
+				KEY_6, // 0x65
+				KEY_7, // 0x66
+				KEY_8, // 0x67
+				KEY_9, // 0x68
+				KEY_0, // 0x69
+				KEY_MINUS, // 0x6A
+				KEY_EQUAL, // 0x6B
+				KEY_TILDE, // 0x6C
+				KEY_BACKSPACE, // 0x6D
+				KEY_DELETE, // 0x6E
+				KEY_PAGE_UP, // 0x6F
+				0, // 0x70
+				KEY_F3, // 0x71
+				KEY_F2, // 0x72
+				KEY_F1, // 0x73
+				KEY_F18, // 0x74
+				KEY_ESC, // 0x75
+				KEY_1, // 0x76
+				KEY_TAB, // 0x77
+				KEY_F19, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				KEY_RIGHT_SHIFT, // 0x85
+				0, // 0x86
+				KEY_LEFT_SHIFT, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				KEY_LEFT_CTRL, // 0x8B
+				0, // 0x8C
+				KEY_GUI, // 0x8D
+				0, // 0x8E
+				KEY_ALT, // 0x8F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/facom6684.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,296 @@
+/* Copyright (C) 2013 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __FACOM6684_H
+#define __FACOM6684_H
+
+// This file contains various key layouts for the Fujitsu FACOM 6684KC3 Supercomputer Terminal Keyboard
+
+
+// ----- Variables -----
+static uint8_t facom6684_ModifierMask[] = { 0x22, 0x12, 0x05, 0x04, 0x03 };
+
+static uint8_t facom6684_DefaultMap[] = { 
+				0, // 0x00
+				0, // 0x01
+				KEY_SPACE, // 0x02
+				KEY_LEFT_ALT, // 0x03
+				KEY_RIGHT_ALT, // 0x04
+				KEY_LEFT_GUI, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_ENTER, // 0x09
+				0, // 0x0A
+				KEY_ENTER, // 0x0B
+				KEYPAD_0, // 0x0C
+				KEYPAD_00, // 0x0D
+				KEYPAD_000, // 0x0E
+				KEYPAD_DECIMAL, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				KEY_LEFT_SHIFT, // 0x12
+				0, // 0x13
+				KEY_Z, // 0x14
+				KEY_X, // 0x15
+				KEY_C, // 0x16
+				KEY_V, // 0x17
+				KEY_B, // 0x18
+				KEY_N, // 0x19
+				KEY_M, // 0x1A
+				KEY_COMMA, // 0x1B
+				KEYPAD_1, // 0x1C
+				KEYPAD_2, // 0x1D
+				KEYPAD_3, // 0x1E
+				KEYPAD_ENTER, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				KEY_LEFT_CTRL, // 0x22
+				KEY_A, // 0x23
+				KEY_S, // 0x24
+				KEY_D, // 0x25
+				KEY_F, // 0x26
+				KEY_G, // 0x27
+				KEY_H, // 0x28
+				KEY_J, // 0x29
+				KEY_K, // 0x2A
+				KEY_L, // 0x2B
+				KEYPAD_4, // 0x2C
+				KEYPAD_5, // 0x2D
+				KEYPAD_6, // 0x2E
+				KEYPAD_MINUS, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_TAB, // 0x32
+				KEY_Q, // 0x33
+				KEY_W, // 0x34
+				KEY_E, // 0x35
+				KEY_R, // 0x36
+				KEY_T, // 0x37
+				KEY_Y, // 0x38
+				KEY_U, // 0x39
+				KEY_I, // 0x3A
+				KEY_O, // 0x3B
+				KEYPAD_7, // 0x3C
+				KEYPAD_8, // 0x3D
+				KEYPAD_9, // 0x3E
+				KEYPAD_TAB, // 0x3F
+				0, // 0x40
+				KEY_TILDE, // 0x41
+				KEY_ESC, // 0x42
+				KEY_1, // 0x43
+				KEY_2, // 0x44
+				KEY_3, // 0x45
+				KEY_4, // 0x46
+				KEY_5, // 0x47
+				KEY_6, // 0x48
+				KEY_7, // 0x49
+				KEY_8, // 0x4A
+				KEY_9, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				KEYPAD_COMMA, // 0x4E
+				KEYPAD_SPACE, // 0x4F
+				KEY_F1, // 0x50
+				KEY_F2, // 0x51
+				KEY_F3, // 0x52
+				KEY_F4, // 0x53
+				KEY_F5, // 0x54
+				KEY_F6, // 0x55
+				KEY_F7, // 0x56
+				KEY_F8, // 0x57
+				KEY_0, // 0x58
+				KEY_P, // 0x59
+				KEY_SEMICOLON, // 0x5A
+				KEY_PERIOD, // 0x5B
+				KEY_INSERT, // 0x5C
+				KEY_LEFT, // 0x5D
+				0, // 0x5E
+				KEY_DELETE, // 0x5F
+				KEY_F13, // 0x60
+				KEY_F14, // 0x61
+				KEY_F15, // 0x62
+				KEY_F16, // 0x63
+				KEY_F17, // 0x64
+				KEY_F18, // 0x65
+				KEY_F9, // 0x66
+				KEY_F10, // 0x67
+				KEY_MINUS, // 0x68
+				KEY_LEFT_BRACE, // 0x69
+				KEY_QUOTE, // 0x6A
+				KEY_SLASH, // 0x6B
+				KEY_HOME, // 0x6C
+				KEY_DOWN, // 0x6D
+				0, // 0x6E
+				KEY_END, // 0x6F
+				KEY_F19, // 0x70
+				KEY_F20, // 0x71
+				KEY_F21, // 0x72
+				KEY_F22, // 0x73
+				KEY_F23, // 0x74
+				KEY_F24, // 0x75
+				KEY_F11, // 0x76
+				KEY_F12, // 0x77
+				KEY_EQUAL, // 0x78
+				KEY_RIGHT_BRACE, // 0x79
+				KEY_BACKSLASH, // 0x7A
+				KEY_UP, // 0x7B
+				KEY_PAGE_UP, // 0x7C
+				KEY_RIGHT, // 0x7D
+				0, // 0x7E
+				KEY_PAGE_DOWN, // 0x7F
+};
+
+static uint8_t facom6684_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				KEY_SPACE, // 0x02
+				KEY_LEFT_ALT, // 0x03
+				KEY_RIGHT_ALT, // 0x04
+				KEY_LEFT_GUI, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_ENTER, // 0x09
+				0, // 0x0A
+				KEY_ENTER, // 0x0B
+				KEYPAD_0, // 0x0C
+				KEYPAD_00, // 0x0D
+				KEYPAD_000, // 0x0E
+				KEYPAD_DECIMAL, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				KEY_LEFT_SHIFT, // 0x12
+				0, // 0x13
+				KEY_Z, // 0x14
+				KEY_X, // 0x15
+				KEY_C, // 0x16
+				KEY_V, // 0x17
+				KEY_B, // 0x18
+				KEY_K, // 0x19
+				KEY_M, // 0x1A
+				KEY_COMMA, // 0x1B
+				KEYPAD_1, // 0x1C
+				KEYPAD_2, // 0x1D
+				KEYPAD_3, // 0x1E
+				KEYPAD_ENTER, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				KEY_LEFT_CTRL, // 0x22
+				KEY_A, // 0x23
+				KEY_R, // 0x24
+				KEY_S, // 0x25
+				KEY_T, // 0x26
+				KEY_D, // 0x27
+				KEY_H, // 0x28
+				KEY_N, // 0x29
+				KEY_E, // 0x2A
+				KEY_I, // 0x2B
+				KEYPAD_4, // 0x2C
+				KEYPAD_5, // 0x2D
+				KEYPAD_6, // 0x2E
+				KEYPAD_MINUS, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_TAB, // 0x32
+				KEY_Q, // 0x33
+				KEY_W, // 0x34
+				KEY_F, // 0x35
+				KEY_P, // 0x36
+				KEY_G, // 0x37
+				KEY_J, // 0x38
+				KEY_L, // 0x39
+				KEY_U, // 0x3A
+				KEY_Y, // 0x3B
+				KEYPAD_7, // 0x3C
+				KEYPAD_8, // 0x3D
+				KEYPAD_9, // 0x3E
+				KEYPAD_TAB, // 0x3F
+				0, // 0x40
+				KEY_TILDE, // 0x41
+				KEY_ESC, // 0x42
+				KEY_1, // 0x43
+				KEY_2, // 0x44
+				KEY_3, // 0x45
+				KEY_4, // 0x46
+				KEY_5, // 0x47
+				KEY_6, // 0x48
+				KEY_7, // 0x49
+				KEY_8, // 0x4A
+				KEY_9, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				KEYPAD_COMMA, // 0x4E
+				KEYPAD_SPACE, // 0x4F
+				KEY_F1, // 0x50
+				KEY_F2, // 0x51
+				KEY_F3, // 0x52
+				KEY_F4, // 0x53
+				KEY_F5, // 0x54
+				KEY_F6, // 0x55
+				KEY_F7, // 0x56
+				KEY_F8, // 0x57
+				KEY_0, // 0x58
+				KEY_SEMICOLON, // 0x59
+				KEY_O, // 0x5A
+				KEY_PERIOD, // 0x5B
+				KEY_INSERT, // 0x5C
+				KEY_LEFT, // 0x5D
+				0, // 0x5E
+				KEY_DELETE, // 0x5F
+				KEY_F13, // 0x60
+				KEY_F14, // 0x61
+				KEY_F15, // 0x62
+				KEY_F16, // 0x63
+				KEY_F17, // 0x64
+				KEY_F18, // 0x65
+				KEY_F9, // 0x66
+				KEY_F10, // 0x67
+				KEY_MINUS, // 0x68
+				KEY_LEFT_BRACE, // 0x69
+				KEY_QUOTE, // 0x6A
+				KEY_SLASH, // 0x6B
+				KEY_HOME, // 0x6C
+				KEY_DOWN, // 0x6D
+				0, // 0x6E
+				KEY_END, // 0x6F
+				KEY_F19, // 0x70
+				KEY_F20, // 0x71
+				KEY_F21, // 0x72
+				KEY_F22, // 0x73
+				KEY_F23, // 0x74
+				KEY_F24, // 0x75
+				KEY_F11, // 0x76
+				KEY_F12, // 0x77
+				KEY_EQUAL, // 0x78
+				KEY_RIGHT_BRACE, // 0x79
+				KEY_BACKSLASH, // 0x7A
+				KEY_UP, // 0x7B
+				KEY_PAGE_UP, // 0x7C
+				KEY_RIGHT, // 0x7D
+				0, // 0x7E
+				KEY_PAGE_DOWN, // 0x7F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/heathzenith.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,234 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __HEATHZENITH_H
+#define __HEATHZENITH_H
+
+// This file contains various key layouts for the custom Heath-Zenith Keyboard
+
+
+// ----- Variables -----
+
+static uint8_t  heathzenith_ModifierMask [] = { 1, 17, 33, 49 };
+static uint8_t  heathzenith_AlternateMask[] = { 1, 17, 33, 49, 62 };
+
+// Default 1-indexed key mappings
+static uint8_t heathzenith_DefaultMap[] = { 0,
+				KEY_GUI,
+				KEY_1,
+				KEY_2,
+				KEY_3,
+				KEY_4,
+				KEY_5,
+				KEY_6,
+				KEY_7,
+				KEY_8,
+				KEY_9,
+				KEY_0,
+				KEY_MINUS,
+				KEY_EQUAL,
+				KEY_BACKSLASH,
+				KEY_TILDE,
+				KEY_BACKSPACE,
+				KEY_ALT,
+				KEY_TAB,
+				KEY_Q,
+				KEY_W,
+				KEY_E,
+				KEY_R,
+				KEY_T,
+				KEY_Y,
+				KEY_U,
+				KEY_I,
+				KEY_O,
+				KEY_P,
+				KEY_LEFT_BRACE,
+				KEY_RIGHT_BRACE,
+				KEY_DELETE,
+				KEY_UP,
+				KEY_CTRL,
+				KEY_CAPS_LLOCK,
+				KEY_A,
+				KEY_S,
+				KEY_D,
+				KEY_F,
+				KEY_G,
+				KEY_H,
+				KEY_J,
+				KEY_K,
+				KEY_L,
+				KEY_SEMICOLON,
+				KEY_QUOTE,
+				KEY_ENTER,
+				KEY_DOWN,
+				KEY_ESC,
+				KEY_LEFT_SHIFT,
+				KEY_Z,
+				KEY_X,
+				KEY_C,
+				KEY_V,
+				KEY_B,
+				KEY_N,
+				KEY_M,
+				KEY_COMMA,
+				KEY_PERIOD,
+				KEY_SLASH,
+				KEY_RIGHT_SHIFT,
+				KEY_LEFT,
+				KEY_RIGHT,
+				KEY_SPACE
+};
+static uint8_t heathzenith_NavigationMap[] = { 0,
+				KEY_GUI,
+				KEY_F1,
+				KEY_F2,
+				KEY_F3,
+				KEY_F4,
+				KEY_F5,
+				KEY_F6,
+				KEY_F7,
+				KEY_F8,
+				KEY_F9,
+				KEY_F10,
+				KEY_F11,
+				KEY_F12,
+				KEY_INSERT,
+				KEY_DELETE,
+				KEY_BACKSPACE,
+				KEY_ALT,
+				KEY_CAPS_LOCK,
+				0,
+				0,
+				0,
+				0,
+				0,
+				0,
+				0,
+				KEY_SYSREQ_ATT,
+				KEY_SCROLL_LOCK,
+				KEY_PAUSE,
+				KEY_UP,
+				0,
+				0,
+				0,
+				KEY_CTRL,
+				KEY_CAPS_LLOCK,
+				0,
+				0,
+				0,
+				0,
+				0,
+				KEYPAD_ASTERIX,
+				KEYPAD_SLASH,
+				KEY_HOME,
+				KEY_PAGE_UP,
+				KEY_LEFT,
+				KEY_RIGHT,
+				KEY_ENTER,
+				0,
+				KEY_ESC,
+				KEY_LEFT_SHIFT,
+				0,
+				0,
+				0,
+				0,
+				0,
+				KEYPAD_PLUS,
+				KEYPAD_MINUS,
+				KEY_END,
+				KEY_PAGE_DOWN,
+				KEY_DOWN,
+				KEY_RIGHT_SHIFT,
+				165,
+				KEY_RIGHT_ALT,
+				KEY_SPACE
+};
+
+static uint8_t heathzenith_ColemakMap[] = { 0,
+				KEY_GUI,
+				KEY_1,
+				KEY_2,
+				KEY_3,
+				KEY_4,
+				KEY_5,
+				KEY_6,
+				KEY_7,
+				KEY_8,
+				KEY_9,
+				KEY_0,
+				KEY_MINUS,
+				KEY_EQUAL,
+				KEY_BACKSLASH,
+				KEY_TILDE,
+				KEY_BACKSPACE,
+				KEY_ALT,
+				KEY_TAB,
+				KEY_Q,
+				KEY_W,
+				KEY_F,
+				KEY_P,
+				KEY_G,
+				KEY_J,
+				KEY_L,
+				KEY_U,
+				KEY_Y,
+				KEY_SEMICOLON,
+				KEY_LEFT_BRACE,
+				KEY_RIGHT_BRACE,
+				KEY_DELETE,
+				KEY_PAGE_UP,
+				KEY_CTRL,
+				KEY_CAPS_LLOCK,
+				KEY_A,
+				KEY_R,
+				KEY_S,
+				KEY_T,
+				KEY_D,
+				KEY_H,
+				KEY_N,
+				KEY_E,
+				KEY_I,
+				KEY_O,
+				KEY_QUOTE,
+				KEY_ENTER,
+				KEY_PAGE_DOWN,
+				KEY_ESC,
+				KEY_LEFT_SHIFT,
+				KEY_Z,
+				KEY_X,
+				KEY_C,
+				KEY_V,
+				KEY_B,
+				KEY_K,
+				KEY_M,
+				KEY_COMMA,
+				KEY_PERIOD,
+				KEY_SLASH,
+				KEY_RIGHT_SHIFT,
+				165,
+				KEY_RIGHT_ALT,
+				KEY_SPACE
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/hp150.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,296 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __HP150_H
+#define __HP150_H
+
+// This file contains various key layouts for the HP150 Keyboard
+
+
+// ----- Variables -----
+static uint8_t hp150_ModifierMask[] = { 0x2F, 0x39, 0x3A, 0x3F, 0x45, 0x46, 0x76 };
+
+static uint8_t hp150_DefaultMap[] = { 
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				0, // 0x08
+				0, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				KEY_MENU, // 0x0C
+				KEY_VOL_DOWN, // 0x0D
+				KEY_VOL_UP, // 0x0E
+				KEY_F8, // 0x0F
+				KEY_F7, // 0x10
+				KEY_F6, // 0x11
+				KEY_F5, // 0x12
+				KEY_PRINTSCREEN, // 0x13
+				KEY_8, // 0x14
+				KEY_END, // 0x15
+				KEY_HOME, // 0x16
+				KEY_BACKSPACE, // 0x17
+				KEY_EQUAL, // 0x18
+				KEY_MINUS, // 0x19
+				KEY_0, // 0x1A
+				KEY_9, // 0x1B
+				KEY_I, // 0x1C
+				KEY_DELETE, // 0x1D
+				KEY_INSERT, // 0x1E
+				KEY_BACKSLASH, // 0x1F
+				KEY_RIGHT_BRACE, // 0x20
+				KEY_LEFT_BRACE, // 0x21
+				KEY_P, // 0x22
+				KEY_O, // 0x23
+				KEY_J, // 0x24
+				KEY_PAGE_UP, // 0x25
+				KEY_NUM_LOCK, // 0x26
+				KEY_ENTER, // 0x27
+				KEY_QUOTE, // 0x28
+				KEY_SEMICOLON, // 0x29
+				KEY_L, // 0x2A
+				KEY_K, // 0x2B
+				KEY_M, // 0x2C
+				KEY_PAGE_DOWN, // 0x2D
+				KEY_UP, // 0x2E
+				KEY_RIGHT_GUI, // 0x2F
+				KEY_1, // 0x30
+				KEY_SLASH, // 0x31
+				KEY_PERIOD, // 0x32
+				KEY_COMMA, // 0x33
+				0, // 0x34
+				KEY_RIGHT, // 0x35
+				KEY_DOWN, // 0x36
+				KEY_LEFT, // 0x37
+				KEY_RIGHT_GUI, // 0x38
+				KEY_RIGHT_ALT, // 0x39
+				KEY_LEFT_ALT, // 0x3A
+				KEY_SPACE, // 0x3B
+				KEY_F4, // 0x3C
+				KEY_G, // 0x3D
+				KEY_NUMBER, // 0x3E
+				KEY_CTRL, // 0x3F
+				KEY_TILDE, // 0x40
+				KEY_F1, // 0x41
+				KEY_F2, // 0x42
+				KEY_F3, // 0x43
+				KEY_7, // 0x44
+				KEY_LEFT_SHIFT, // 0x45
+				KEY_RIGHT_SHIFT, // 0x46
+				KEY_CAPS_LOCK, // 0x47
+				KEY_3, // 0x48
+				KEY_4, // 0x49
+				KEY_5, // 0x4A
+				KEY_6, // 0x4B
+				KEY_U, // 0x4C
+				KEY_TAB, // 0x4D
+				KEY_Q, // 0x4E
+				KEY_W, // 0x4F
+				KEY_E, // 0x50
+				KEY_R, // 0x51
+				KEY_T, // 0x52
+				KEY_Y, // 0x53
+				KEY_H, // 0x54
+				KEY_2, // 0x55
+				KEY_LEFT_GUI, // 0x56
+				KEY_A, // 0x57
+				KEY_S, // 0x58
+				KEY_D, // 0x59
+				KEY_F, // 0x5A
+				KEY_ESC, // 0x5B
+				KEYPAD_COMMA, // 0x5C
+				KEYPAD_TAB, // 0x5D
+				KEYPAD_6, // 0x5E
+				KEYPAD_9, // 0x5F
+				KEYPAD_5, // 0x60
+				KEYPAD_8, // 0x61
+				KEYPAD_4, // 0x62
+				KEYPAD_7, // 0x63
+				KEY_TAB, // 0x64
+				KEYPAD_MINUS, // 0x65
+				KEYPAD_3, // 0x66
+				KEYPAD_PLUS, // 0x67
+				KEYPAD_2, // 0x68
+				KEYPAD_SLASH, // 0x69
+				KEYPAD_1, // 0x6A
+				KEYPAD_ASTERIX, // 0x6B
+				0, // 0x6C
+				KEY_F12, // 0x6D
+				KEYPAD_PERIOD, // 0x6E
+				KEY_F11, // 0x6F
+				0, // 0x70
+				KEY_F10, // 0x71
+				KEYPAD_0, // 0x72
+				KEY_F9, // 0x73
+				KEY_N, // 0x74
+				KEY_ESC, // 0x75
+				KEY_GUI, // 0x76
+				KEY_Z, // 0x77
+				KEY_X, // 0x78
+				KEY_C, // 0x79
+				KEY_V, // 0x7A
+				KEY_B, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+static uint8_t hp150_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				0, // 0x08
+				0, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				KEY_MENU, // 0x0C
+				KEY_VOL_DOWN, // 0x0D
+				KEY_VOL_UP, // 0x0E
+				KEY_F8, // 0x0F
+				KEY_F7, // 0x10
+				KEY_F6, // 0x11
+				KEY_F5, // 0x12
+				KEY_PRINTSCREEN, // 0x13
+				KEY_8, // 0x14
+				KEY_END, // 0x15
+				KEY_HOME, // 0x16
+				KEY_BACKSPACE, // 0x17
+				KEY_EQUAL, // 0x18
+				KEY_MINUS, // 0x19
+				KEY_0, // 0x1A
+				KEY_9, // 0x1B
+				KEY_U, // 0x1C
+				KEY_DELETE, // 0x1D
+				KEY_INSERT, // 0x1E
+				KEY_BACKSLASH, // 0x1F
+				KEY_RIGHT_BRACE, // 0x20
+				KEY_LEFT_BRACE, // 0x21
+				KEY_SEMICOLON, // 0x22
+				KEY_Y, // 0x23
+				KEY_N, // 0x24
+				KEY_PAGE_UP, // 0x25
+				KEY_NUM_LOCK, // 0x26
+				KEY_ENTER, // 0x27
+				KEY_QUOTE, // 0x28
+				KEY_O, // 0x29
+				KEY_I, // 0x2A
+				KEY_E, // 0x2B
+				KEY_M, // 0x2C
+				KEY_PAGE_DOWN, // 0x2D
+				KEY_UP, // 0x2E
+				KEY_RIGHT_GUI, // 0x2F
+				KEY_1, // 0x30
+				KEY_SLASH, // 0x31
+				KEY_PERIOD, // 0x32
+				KEY_COMMA, // 0x33
+				0, // 0x34
+				KEY_RIGHT, // 0x35
+				KEY_DOWN, // 0x36
+				KEY_LEFT, // 0x37
+				KEY_RIGHT_GUI, // 0x38
+				KEY_RIGHT_ALT, // 0x39
+				KEY_LEFT_ALT, // 0x3A
+				KEY_SPACE, // 0x3B
+				KEY_F4, // 0x3C
+				KEY_D, // 0x3D
+				KEY_NUMBER, // 0x3E
+				KEY_CTRL, // 0x3F
+				KEY_TILDE, // 0x40
+				KEY_F1, // 0x41
+				KEY_F2, // 0x42
+				KEY_F3, // 0x43
+				KEY_7, // 0x44
+				KEY_LEFT_SHIFT, // 0x45
+				KEY_RIGHT_SHIFT, // 0x46
+				KEY_CAPS_LOCK, // 0x47
+				KEY_3, // 0x48
+				KEY_4, // 0x49
+				KEY_5, // 0x4A
+				KEY_6, // 0x4B
+				KEY_L, // 0x4C
+				KEY_TAB, // 0x4D
+				KEY_Q, // 0x4E
+				KEY_W, // 0x4F
+				KEY_F, // 0x50
+				KEY_P, // 0x51
+				KEY_G, // 0x52
+				KEY_J, // 0x53
+				KEY_H, // 0x54
+				KEY_2, // 0x55
+				KEY_LEFT_GUI, // 0x56
+				KEY_A, // 0x57
+				KEY_R, // 0x58
+				KEY_S, // 0x59
+				KEY_T, // 0x5A
+				KEY_ESC, // 0x5B
+				KEYPAD_COMMA, // 0x5C
+				KEYPAD_TAB, // 0x5D
+				KEYPAD_6, // 0x5E
+				KEYPAD_9, // 0x5F
+				KEYPAD_5, // 0x60
+				KEYPAD_8, // 0x61
+				KEYPAD_4, // 0x62
+				KEYPAD_7, // 0x63
+				KEY_TAB, // 0x64
+				KEYPAD_MINUS, // 0x65
+				KEYPAD_3, // 0x66
+				KEYPAD_PLUS, // 0x67
+				KEYPAD_2, // 0x68
+				KEYPAD_SLASH, // 0x69
+				KEYPAD_1, // 0x6A
+				KEYPAD_ASTERIX, // 0x6B
+				0, // 0x6C
+				KEY_F12, // 0x6D
+				KEYPAD_PERIOD, // 0x6E
+				KEY_F11, // 0x6F
+				0, // 0x70
+				KEY_F10, // 0x71
+				KEYPAD_0, // 0x72
+				KEY_F9, // 0x73
+				KEY_K, // 0x74
+				KEY_ESC, // 0x75
+				KEY_GUI, // 0x76
+				KEY_Z, // 0x77
+				KEY_X, // 0x78
+				KEY_C, // 0x79
+				KEY_V, // 0x7A
+				KEY_B, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/ibmconvertible.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,206 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __IBMCONV_H
+#define __IBMCONV_H
+
+// This file contains various key layouts for the IBM Convertible keyboard
+
+
+// ----- Variables -----
+
+static uint8_t  ibmconv_ModifierMask [] = { 0x2C, 0x38, 0x3A, 0x3B, 0x3C, 0x3E };
+
+// Default 1-indexed key mappings
+static uint8_t ibmconv_DefaultMap[] = {
+				0, // 0x00
+				KEY_TILDE, // 0x01
+				KEY_1, // 0x02
+				KEY_2, // 0x03
+				KEY_3, // 0x04
+				KEY_4, // 0x05
+				KEY_5, // 0x06
+				KEY_6, // 0x07
+				KEY_7, // 0x08 (7)
+				KEY_8, // 0x09 (8)
+				KEY_9, // 0x0A (9)
+				KEY_0, // 0x0B
+				KEY_MINUS, // 0x0C (-)
+				KEY_EQUAL, // 0x0D (+)
+				KEY_BACKSLASH, // 0x0E
+				KEY_BACKSPACE, // 0x0F
+				KEY_TAB, // 0x10
+				KEY_Q, // 0x11
+				KEY_W, // 0x12
+				KEY_E, // 0x13
+				KEY_R, // 0x14
+				KEY_T, // 0x15
+				KEY_Y, // 0x16
+				KEY_U, // 0x17 (4)
+				KEY_I, // 0x18 (5)
+				KEY_O, // 0x19 (6)
+				KEY_P, // 0x1A
+				KEY_LEFT_BRACE, // 0x1B
+				KEY_RIGHT_BRACE, // 0x1C
+				0, // 0x1D
+				KEY_CAPS_LOCK, // 0x1E
+				KEY_A, // 0x1F
+				KEY_S, // 0x20
+				KEY_D, // 0x21
+				KEY_F, // 0x22
+				KEY_G, // 0x23
+				KEY_H, // 0x24
+				KEY_J, // 0x25 (1)
+				KEY_K, // 0x26 (2)
+				KEY_L, // 0x27 (3)
+				KEY_SEMICOLON, // 0x28
+				KEY_QUOTE, // 0x29
+				0, // 0x2A (1/4)
+				KEY_ENTER, // 0x2B
+				KEY_LEFT_SHIFT, // 0x2C
+				0, // 0x2D
+				KEY_Z, // 0x2E
+				KEY_X, // 0x2F
+				KEY_C, // 0x30
+				KEY_V, // 0x31
+				KEY_B, // 0x32
+				KEY_N, // 0x33
+				KEY_M, // 0x34 (0)
+				KEY_COMMA, // 0x35
+				KEY_PERIOD, // 0x36 (Decimal)
+				KEY_SLASH, // 0x37 (/)
+				KEY_RIGHT_SHIFT, // 0x38
+				KEY_PRINTSCREEN, // 0x39 (*)
+				KEY_LEFT_CTRL, // 0x3A
+				KEY_LEFT_GUI, // 0x3B
+				KEY_LEFT_ALT, // 0x3C
+				KEY_SPACE, // 0x3D
+				KEY_RIGHT_ALT, // 0x3E
+				KEY_LEFT, // 0x3F (Home)
+				KEY_UP, // 0x40 (PgUp)
+				KEY_DOWN, // 0x41 (PgDn)
+				KEY_RIGHT, // 0x42 (End)
+				KEY_ESC, // 0x43
+				KEY_F1, // 0x44
+				KEY_F2, // 0x45
+				KEY_F3, // 0x46
+				KEY_F4, // 0x47
+				KEY_F5, // 0x48
+				KEY_F6, // 0x49
+				KEY_F7, // 0x4A
+				KEY_F8, // 0x4B
+				KEY_F9, // 0x4C
+				KEY_F10, // 0x4D
+				KEY_NUM_LOCK, // 0x4E
+				KEY_SCROLL_LOCK, // 0x4F
+				KEY_INSERT, // 0x50
+				KEY_DELETE, // 0x51
+};
+
+static uint8_t ibmconv_ColemakMap[] = {
+				0, // 0x00
+				KEY_TILDE, // 0x01
+				KEY_1, // 0x02
+				KEY_2, // 0x03
+				KEY_3, // 0x04
+				KEY_4, // 0x05
+				KEY_5, // 0x06
+				KEY_6, // 0x07
+				KEY_7, // 0x08 (7)
+				KEY_8, // 0x09 (8)
+				KEY_9, // 0x0A (9)
+				KEY_0, // 0x0B
+				KEY_MINUS, // 0x0C (-)
+				KEY_EQUAL, // 0x0D (+)
+				KEY_BACKSLASH, // 0x0E
+				KEY_BACKSPACE, // 0x0F
+				KEY_TAB, // 0x10
+				KEY_Q, // 0x11
+				KEY_W, // 0x12
+				KEY_F, // 0x13
+				KEY_P, // 0x14
+				KEY_G, // 0x15
+				KEY_J, // 0x16
+				KEY_L, // 0x17 (4)
+				KEY_U, // 0x18 (5)
+				KEY_Y, // 0x19 (6)
+				KEY_SEMICOLON, // 0x1A
+				KEY_LEFT_BRACE, // 0x1B
+				KEY_RIGHT_BRACE, // 0x1C
+				0, // 0x1D
+				KEY_CAPS_LOCK, // 0x1E
+				KEY_A, // 0x1F
+				KEY_R, // 0x20
+				KEY_S, // 0x21
+				KEY_T, // 0x22
+				KEY_D, // 0x23
+				KEY_H, // 0x24
+				KEY_N, // 0x25 (1)
+				KEY_E, // 0x26 (2)
+				KEY_I, // 0x27 (3)
+				KEY_O, // 0x28
+				KEY_QUOTE, // 0x29
+				0, // 0x2A (1/4)
+				KEY_ENTER, // 0x2B
+				KEY_LEFT_SHIFT, // 0x2C
+				0, // 0x2D
+				KEY_Z, // 0x2E
+				KEY_X, // 0x2F
+				KEY_C, // 0x30
+				KEY_V, // 0x31
+				KEY_B, // 0x32
+				KEY_K, // 0x33
+				KEY_M, // 0x34 (0)
+				KEY_COMMA, // 0x35
+				KEY_PERIOD, // 0x36 (Decimal)
+				KEY_SLASH, // 0x37 (/)
+				KEY_RIGHT_SHIFT, // 0x38
+				KEY_PRINTSCREEN, // 0x39 (*)
+				KEY_LEFT_CTRL, // 0x3A
+				KEY_LEFT_GUI, // 0x3B
+				KEY_LEFT_ALT, // 0x3C
+				KEY_SPACE, // 0x3D
+				KEY_RIGHT_ALT, // 0x3E
+				KEY_LEFT, // 0x3F (Home)
+				KEY_UP, // 0x40 (PgUp)
+				KEY_DOWN, // 0x41 (PgDn)
+				KEY_RIGHT, // 0x42 (End)
+				KEY_ESC, // 0x43
+				KEY_F1, // 0x44
+				KEY_F2, // 0x45
+				KEY_F3, // 0x46
+				KEY_F4, // 0x47
+				KEY_F5, // 0x48
+				KEY_F6, // 0x49
+				KEY_F7, // 0x4A
+				KEY_F8, // 0x4B
+				KEY_F9, // 0x4C
+				KEY_F10, // 0x4D
+				KEY_NUM_LOCK, // 0x4E
+				KEY_SCROLL_LOCK, // 0x4F
+				KEY_INSERT, // 0x50
+				KEY_DELETE, // 0x51
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/kaypro1.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,551 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __KAYPRO1_H
+#define __KAYPRO1_H
+
+// This file contains various key layouts for the Kaypro 1 keyboard
+
+
+// ----- Variables -----
+
+static uint8_t kaypro1_ModifierMask[] = { 0xF5, 0xF6 };
+
+static uint8_t kaypro1_DefaultMap[] = { 0,
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_SEMICOLON, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_D, // 0x64
+				KEY_E, // 0x65
+				KEY_F, // 0x66
+				KEY_G, // 0x67
+				KEY_H, // 0x68
+				KEY_I, // 0x69
+				KEY_J, // 0x6A
+				KEY_K, // 0x6B
+				KEY_L, // 0x6C
+				KEY_M, // 0x6D
+				KEY_N, // 0x6E
+				KEY_O, // 0x6F
+				KEY_P, // 0x70
+				KEY_Q, // 0x71
+				KEY_R, // 0x72
+				KEY_S, // 0x73
+				KEY_T, // 0x74
+				KEY_U, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_Y, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+static uint8_t kaypro1_ColemakMap[] = { 0,
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_O, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_S, // 0x64
+				KEY_F, // 0x65
+				KEY_T, // 0x66
+				KEY_D, // 0x67
+				KEY_H, // 0x68
+				KEY_U, // 0x69
+				KEY_N, // 0x6A
+				KEY_E, // 0x6B
+				KEY_I, // 0x6C
+				KEY_M, // 0x6D
+				KEY_K, // 0x6E
+				KEY_Y, // 0x6F
+				KEY_SEMICOLON, // 0x70
+				KEY_Q, // 0x71
+				KEY_P, // 0x72
+				KEY_R, // 0x73
+				KEY_G, // 0x74
+				KEY_L, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_J, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/keymap.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,69 @@
+/* Copyright (C) 2011-2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __KEYMAP_H
+#define __KEYMAP_H
+
+// ----- Includes -----
+
+#include "usb_keys.h"
+
+
+
+// ----- Defines -----
+
+
+
+// ----- Variables -----
+
+// Lots of these variables are not used, so ignore gcc unused warnings
+// But just for the variables in this file (and those included into it)
+#pragma GCC diagnostic ignored "-Wunused-variable"
+#pragma GCC diagnostic push
+
+
+// See files for full layout descriptions
+#include "avrcapsense.h"
+#include "betkb.h"
+#include "budkeypad.h"
+#include "epsonqx10.h"
+#include "facom6684.h"
+#include "heathzenith.h"
+#include "hp150.h"
+#include "ibmconvertible.h"
+#include "kaypro1.h"
+#include "mbc55x.h"
+#include "microswitch8304.h"
+#include "skm67001.h"
+#include "sonynews.h"
+#include "sonyoas3400.h"
+#include "tandy1000.h"
+#include "univacf3w9.h"
+
+
+
+// Only ignore unused warnings for the above variables
+#pragma GCC diagnostic pop
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/mbc55x.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,553 @@
+/* Copyright (C) 2013 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __MBC55X_H
+#define __MBC55X_H
+
+// This file contains various key layouts for the Sanyo MBC-55X Computer Keyboard
+
+
+// ----- Variables -----
+
+static uint8_t mbc55x_ModifierMask[] = { 0xF5, 0xF6 };
+
+static uint8_t mbc55x_DefaultMap[] = { 
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_SEMICOLON, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_D, // 0x64
+				KEY_E, // 0x65
+				KEY_F, // 0x66
+				KEY_G, // 0x67
+				KEY_H, // 0x68
+				KEY_I, // 0x69
+				KEY_J, // 0x6A
+				KEY_K, // 0x6B
+				KEY_L, // 0x6C
+				KEY_M, // 0x6D
+				KEY_N, // 0x6E
+				KEY_O, // 0x6F
+				KEY_P, // 0x70
+				KEY_Q, // 0x71
+				KEY_R, // 0x72
+				KEY_S, // 0x73
+				KEY_T, // 0x74
+				KEY_U, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_Y, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+static uint8_t mbc55x_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				KEY_ESC, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_O, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48
+				0, // 0x49
+				0, // 0x4A
+				0, // 0x4B
+				0, // 0x4C
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_BACKSLASH, // 0x5C
+				KEY_RIGHT_BRACE, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				KEY_TILDE, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_S, // 0x64
+				KEY_F, // 0x65
+				KEY_T, // 0x66
+				KEY_D, // 0x67
+				KEY_H, // 0x68
+				KEY_U, // 0x69
+				KEY_N, // 0x6A
+				KEY_E, // 0x6B
+				KEY_I, // 0x6C
+				KEY_M, // 0x6D
+				KEY_K, // 0x6E
+				KEY_Y, // 0x6F
+				KEY_SEMICOLON, // 0x70
+				KEY_Q, // 0x71
+				KEY_P, // 0x72
+				KEY_R, // 0x73
+				KEY_G, // 0x74
+				KEY_L, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_J, // 0x79
+				KEY_Z, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				0, // 0x90
+				0, // 0x91
+				0, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				KEYPAD_0, // 0xB1
+				KEYPAD_PERIOD, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				KEYPAD_1, // 0xC0
+				KEYPAD_2, // 0xC1
+				KEYPAD_3, // 0xC2
+				KEYPAD_ENTER, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				0, // 0xCE
+				0, // 0xCF
+				KEYPAD_4, // 0xD0
+				KEYPAD_5, // 0xD1
+				KEYPAD_6, // 0xD2
+				KEYPAD_COMMA, // 0xD3
+				0, // 0xD4
+				0, // 0xD5
+				0, // 0xD6
+				0, // 0xD7
+				0, // 0xD8
+				0, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				0, // 0xE0
+				KEYPAD_7, // 0xE1
+				KEYPAD_8, // 0xE2
+				KEYPAD_9, // 0xE3
+				KEYPAD_MINUS, // 0xE4
+				0, // 0xE5
+				0, // 0xE6
+				0, // 0xE7
+				0, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				KEY_UP, // 0xF1
+				KEY_DOWN, // 0xF2
+				KEY_LEFT, // 0xF3
+				KEY_RIGHT, // 0xF4
+				KEY_LEFT_SHIFT, // 0xF5
+				KEY_CTRL, // 0xF6
+				0, // 0xF7
+				0, // 0xF8
+				0, // 0xF9
+				0, // 0xFA
+				0, // 0xFB
+				0, // 0xFC
+				0, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/microswitch8304.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,296 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __MICROSWITCH8304_H
+#define __MICROSWITCH8304_H
+
+// This file contains various key layouts for the Convergent microswitch8304 keyboard
+
+
+// ----- Variables -----
+static uint8_t microswitch8304_ModifierMask[] = { 0x48, 0x49, 0x4C, 0x4D, 0x45, 0x14 };
+
+static uint8_t microswitch8304_DefaultMap[] = { 
+				KEY_TILDE, // 0x00
+				KEY_UP, // 0x01
+				0, // 0x02
+				0, // 0x03
+				KEY_PRINTSCREEN, // 0x04
+				KEY_PAGE_DOWN, // 0x05
+				KEY_LEFT_BRACE, // 0x06
+				KEY_F11, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				KEY_ENTER, // 0x0A
+				KEY_DOWN, // 0x0B
+				KEY_PAGE_UP, // 0x0C
+				KEYPAD_ENTER, // 0x0D
+				KEY_LEFT, // 0x0E
+				KEY_RIGHT, // 0x0F
+				0, // 0x10
+				KEY_PAGE_UP, // 0x11
+				KEY_F12, // 0x12
+				KEY_PAGE_DOWN, // 0x13
+				KEY_GUI, // 0x14
+				KEY_F1, // 0x15
+				KEY_F2, // 0x16
+				KEY_F3, // 0x17
+				KEY_F4, // 0x18
+				KEY_F5, // 0x19
+				KEY_F6, // 0x1A
+				KEY_ESC, // 0x1B
+				KEY_F7, // 0x1C
+				KEY_F8, // 0x1D
+				KEY_F9, // 0x1E
+				KEY_F10, // 0x1F
+				KEY_SPACE, // 0x20
+				KEYPAD_9, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				KEY_EQUAL, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_SEMICOLON, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				KEYPAD_6, // 0x41
+				KEYPAD_MINUS, // 0x42
+				KEY_PAUSE, // 0x43
+				KEY_INSERT, // 0x44
+				KEY_CTRL, // 0x45
+				KEYPAD_2, // 0x46
+				KEYPAD_3, // 0x47
+				KEY_LEFT_SHIFT, // 0x48
+				KEY_RIGHT_SHIFT, // 0x49
+				KEYPAD_0, // 0x4A
+				KEYPAD_PERIOD, // 0x4B
+				KEY_LEFT_ALT, // 0x4C
+				KEY_RIGHT_ALT, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_RIGHT_BRACE, // 0x5B
+				KEYPAD_7, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_ESC, // 0x5E
+				0, // 0x5F
+				KEYPAD_1, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_D, // 0x64
+				KEY_E, // 0x65
+				KEY_F, // 0x66
+				KEY_G, // 0x67
+				KEY_H, // 0x68
+				KEY_I, // 0x69
+				KEY_J, // 0x6A
+				KEY_K, // 0x6B
+				KEY_L, // 0x6C
+				KEY_M, // 0x6D
+				KEY_N, // 0x6E
+				KEY_O, // 0x6F
+				KEY_P, // 0x70
+				KEY_Q, // 0x71
+				KEY_R, // 0x72
+				KEY_S, // 0x73
+				KEY_T, // 0x74
+				KEY_U, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_Y, // 0x79
+				KEY_Z, // 0x7A
+				KEYPAD_4, // 0x7B
+				KEYPAD_8, // 0x7C
+				KEYPAD_5, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+};
+
+static uint8_t microswitch8304_ColemakMap[] = {
+				KEY_TILDE, // 0x00
+				KEY_UP, // 0x01
+				0, // 0x02
+				0, // 0x03
+				KEY_PRINTSCREEN, // 0x04
+				KEY_PAGE_DOWN, // 0x05
+				KEY_LEFT_BRACE, // 0x06
+				KEY_F11, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				KEY_ENTER, // 0x0A
+				KEY_DOWN, // 0x0B
+				KEY_PAGE_UP, // 0x0C
+				KEYPAD_ENTER, // 0x0D
+				KEY_LEFT, // 0x0E
+				KEY_RIGHT, // 0x0F
+				0, // 0x10
+				KEY_PAGE_UP, // 0x11
+				KEY_F12, // 0x12
+				KEY_PAGE_DOWN, // 0x13
+				KEY_GUI, // 0x14
+				KEY_F1, // 0x15
+				KEY_F2, // 0x16
+				KEY_F3, // 0x17
+				KEY_F4, // 0x18
+				KEY_F5, // 0x19
+				KEY_F6, // 0x1A
+				KEY_ESC, // 0x1B
+				KEY_F7, // 0x1C
+				KEY_F8, // 0x1D
+				KEY_F9, // 0x1E
+				KEY_F10, // 0x1F
+				KEY_SPACE, // 0x20
+				KEYPAD_9, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				KEY_EQUAL, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_O, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				KEYPAD_6, // 0x41
+				KEYPAD_MINUS, // 0x42
+				KEY_PAUSE, // 0x43
+				KEY_INSERT, // 0x44
+				KEY_CTRL, // 0x45
+				KEYPAD_2, // 0x46
+				KEYPAD_3, // 0x47
+				KEY_LEFT_SHIFT, // 0x48
+				KEY_RIGHT_SHIFT, // 0x49
+				KEYPAD_0, // 0x4A
+				KEYPAD_PERIOD, // 0x4B
+				KEY_LEFT_ALT, // 0x4C
+				KEY_RIGHT_ALT, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+				0, // 0x56
+				0, // 0x57
+				0, // 0x58
+				0, // 0x59
+				0, // 0x5A
+				KEY_RIGHT_BRACE, // 0x5B
+				KEYPAD_7, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_ESC, // 0x5E
+				0, // 0x5F
+				KEYPAD_1, // 0x60
+				KEY_A, // 0x61
+				KEY_B, // 0x62
+				KEY_C, // 0x63
+				KEY_S, // 0x64
+				KEY_F, // 0x65
+				KEY_T, // 0x66
+				KEY_D, // 0x67
+				KEY_H, // 0x68
+				KEY_U, // 0x69
+				KEY_N, // 0x6A
+				KEY_E, // 0x6B
+				KEY_I, // 0x6C
+				KEY_M, // 0x6D
+				KEY_K, // 0x6E
+				KEY_Y, // 0x6F
+				KEY_SEMICOLON, // 0x70
+				KEY_Q, // 0x71
+				KEY_P, // 0x72
+				KEY_R, // 0x73
+				KEY_G, // 0x74
+				KEY_L, // 0x75
+				KEY_V, // 0x76
+				KEY_W, // 0x77
+				KEY_X, // 0x78
+				KEY_J, // 0x79
+				KEY_Z, // 0x7A
+				KEYPAD_4, // 0x7B
+				KEYPAD_8, // 0x7C
+				KEYPAD_5, // 0x7D
+				0, // 0x7E
+				KEY_DELETE, // 0x7F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/skm67001.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,214 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __SKM67001_H
+#define __SKM67001_H
+
+// This file contains various key layouts for the SKM 67001 Keyboard from the Olympia Professional ES 105 Typewriter
+
+
+// ----- Variables -----
+
+static uint8_t  skm67001_ModifierMask [] = { 0x34, 0x38, 0x3A, 0x40 };
+
+// Default 1-indexed key mappings
+static uint8_t skm67001_DefaultMap[] = {
+				0, // 0x00
+				KEY_1, // 0x01
+				KEY_Q, // 0x02
+				KEY_A, // 0x03
+				KEY_2, // 0x04
+				KEY_Z, // 0x05
+				KEY_W, // 0x06
+				KEY_S, // 0x07
+				KEY_3, // 0x08
+				KEY_X, // 0x09
+				KEY_E, // 0x0A
+				KEY_D, // 0x0B
+				KEY_4, // 0x0C
+				KEY_C, // 0x0D
+				KEY_R, // 0x0E
+				KEY_F, // 0x0F
+				KEY_5, // 0x10
+				KEY_V, // 0x11
+				KEY_T, // 0x12
+				KEY_G, // 0x13
+				KEY_6, // 0x14
+				KEY_B, // 0x15
+				KEY_Y, // 0x16
+				KEY_H, // 0x17
+				KEY_7, // 0x18
+				KEY_N, // 0x19
+				KEY_U, // 0x1A
+				KEY_J, // 0x1B
+				KEY_8, // 0x1C
+				KEY_M, // 0x1D
+				KEY_I, // 0x1E
+				KEY_K, // 0x1F
+				KEY_9, // 0x20
+				KEY_COMMA, // 0x21
+				KEY_O, // 0x22
+				KEY_L, // 0x23
+				KEY_0, // 0x24
+				KEY_PERIOD, // 0x25
+				KEY_P, // 0x26
+				KEY_SEMICOLON, // 0x27
+				KEY_MINUS, // 0x28
+				KEY_SLASH, // 0x29
+				KEY_LEFT_BRACE, // 0x2A (1/4)
+				KEY_QUOTE, // 0x2B
+				KEY_EQUAL, // 0x2C
+				KEY_RIGHT_BRACE, // 0x2D
+				0, // 0x2E
+				0, // 0x2F
+				KEY_TILDE, // 0x30
+				KEY_TAB, // 0x31
+				0, // 0x32
+				0, // 0x33
+				KEY_SHIFT, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_BACKSPACE, // 0x36
+				KEY_DELETE, // 0x37
+				KEY_CTRL, // 0x38 (MAR LEFT)
+				KEY_SPACE, // 0x39
+				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
+				0, // 0x3B
+				0, // 0x3C
+				KEY_ESC, // 0x3D (MAR REL)
+				0, // 0x3E (STORE)
+				0, // 0x3F (RECALL)
+				KEY_GUI, // 0x40 (CODE)
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48 (DEC TAB)
+				0, // 0x49 (SET TAB)
+				0, // 0x4A (TAB CLEAR)
+				0, // 0x4B (INDEX)
+				0, // 0x4C (RELOC)
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50 (REV INDEX)
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+};
+
+static uint8_t skm67001_ColemakMap[] = {
+				0, // 0x00
+				KEY_1, // 0x01
+				KEY_Q, // 0x02
+				KEY_A, // 0x03
+				KEY_2, // 0x04
+				KEY_Z, // 0x05
+				KEY_W, // 0x06
+				KEY_R, // 0x07
+				KEY_3, // 0x08
+				KEY_X, // 0x09
+				KEY_F, // 0x0A
+				KEY_S, // 0x0B
+				KEY_4, // 0x0C
+				KEY_C, // 0x0D
+				KEY_P, // 0x0E
+				KEY_T, // 0x0F
+				KEY_5, // 0x10
+				KEY_V, // 0x11
+				KEY_G, // 0x12
+				KEY_D, // 0x13
+				KEY_6, // 0x14
+				KEY_B, // 0x15
+				KEY_J, // 0x16
+				KEY_H, // 0x17
+				KEY_7, // 0x18
+				KEY_K, // 0x19
+				KEY_L, // 0x1A
+				KEY_N, // 0x1B
+				KEY_8, // 0x1C
+				KEY_M, // 0x1D
+				KEY_U, // 0x1E
+				KEY_E, // 0x1F
+				KEY_9, // 0x20
+				KEY_COMMA, // 0x21
+				KEY_Y, // 0x22
+				KEY_I, // 0x23
+				KEY_0, // 0x24
+				KEY_PERIOD, // 0x25
+				KEY_SEMICOLON, // 0x26
+				KEY_O, // 0x27
+				KEY_MINUS, // 0x28
+				KEY_SLASH, // 0x29
+				KEY_LEFT_BRACE, // 0x2A (1/4)
+				KEY_QUOTE, // 0x2B
+				KEY_EQUAL, // 0x2C
+				KEY_RIGHT_BRACE, // 0x2D
+				0, // 0x2E
+				0, // 0x2F
+				KEY_TILDE, // 0x30
+				KEY_TAB, // 0x31
+				0, // 0x32
+				0, // 0x33
+				KEY_SHIFT, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_BACKSPACE, // 0x36
+				KEY_DELETE, // 0x37
+				KEY_CTRL, // 0x38 (MAR LEFT)
+				KEY_SPACE, // 0x39
+				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
+				0, // 0x3B
+				0, // 0x3C
+				KEY_ESC, // 0x3D (MAR REL)
+				0, // 0x3E (STORE)
+				0, // 0x3F (RECALL)
+				KEY_GUI, // 0x40 (CODE)
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48 (DEC TAB)
+				0, // 0x49 (SET TAB)
+				0, // 0x4A (TAB CLEAR)
+				0, // 0x4B (INDEX)
+				0, // 0x4C (RELOC)
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50 (REV INDEX)
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/sonynews.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,299 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __SONYNEWS_H
+#define __SONYNEWS_H
+
+// This file contains various key layouts for the Sony NEWS Topre Keyboard
+// TODO
+
+
+
+// ----- Variables -----
+static uint8_t sonynews_ModifierMask[] = { 0x28, 0x36, 0x42, 0x43, 0x4A };
+
+static uint8_t sonynews_DefaultMap[] = { 
+				0x00, // 0x00
+				KEY_F1, // 0x01
+				KEY_F2, // 0x02
+				KEY_F3, // 0x03
+				KEY_F4, // 0x04
+				KEY_F5, // 0x05
+				KEY_F6, // 0x06
+				KEY_F7, // 0x07
+				KEY_F8, // 0x08
+				KEY_F9, // 0x09
+				KEY_F10, // 0x0A
+				KEY_ESC, // 0x0B
+				KEY_1, // 0x0C
+				KEY_2, // 0x0D
+				KEY_3, // 0x0E
+				KEY_4, // 0x0F
+				KEY_5, // 0x10
+				KEY_6, // 0x11
+				KEY_7, // 0x12
+				KEY_8, // 0x13
+				KEY_9, // 0x14
+				KEY_0, // 0x15
+				KEY_MINUS, // 0x16
+				KEY_EQUAL, // 0x17
+				KEY_INTER3, // 0x18 - Yen
+				KEY_BACKSPACE, // 0x19
+				KEY_TAB, // 0x1A
+				KEY_Q, // 0x1B
+				KEY_W, // 0x1C
+				KEY_E, // 0x1D
+				KEY_R, // 0x1E
+				KEY_T, // 0x1F
+				KEY_Y, // 0x20
+				KEY_U, // 0x21
+				KEY_I, // 0x22
+				KEY_O, // 0x23
+				KEY_P, // 0x24
+				KEY_LEFT_BRACE, // 0x25
+				KEY_RIGHT_BRACE, // 0x26
+				KEY_DELETE, // 0x27
+				KEY_CTRL, // 0x28
+				KEY_A, // 0x29
+				KEY_S, // 0x2A
+				KEY_D, // 0x2B
+				KEY_F, // 0x2C
+				KEY_G, // 0x2D
+				KEY_H, // 0x2E
+				KEY_J, // 0x2F
+				KEY_K, // 0x30
+				KEY_L, // 0x31
+				KEY_SEMICOLON, // 0x32
+				KEY_QUOTE, // 0x33
+				KEY_BACKSLASH, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_LEFT_SHIFT, // 0x36
+				KEY_Z, // 0x37
+				KEY_X, // 0x38
+				KEY_C, // 0x39
+				KEY_V, // 0x3A
+				KEY_B, // 0x3B
+				KEY_N, // 0x3C
+				KEY_M, // 0x3D
+				KEY_COMMA, // 0x3E
+				KEY_PERIOD, // 0x3F
+				KEY_SLASH, // 0x40
+				KEY_INTER1, // 0x41 - "Ru" and "-"
+				KEY_RIGHT_SHIFT, // 0x42
+				KEY_ALT, // 0x43
+				KEY_CAPS_LOCK, // 0x44
+				KEY_INTER5, // 0x45 - Muhenkan
+				KEY_SPACE, // 0x46
+				KEY_INTER4, // 0x47 - Henkan
+				KEY_LANG2, // 0x48 - Eisu (English/Numbers) (I've seen references to this mapping)
+				KEY_INTER2, // 0x49 - Kana
+				KEY_EXEC, // 0x4A - Jikkou XXX Which means Execute, and since there is no Language key
+				KEYPAD_7, // 0x4B
+				KEYPAD_8, // 0x4C
+				KEYPAD_9, // 0x4D
+				KEYPAD_MINUS, // 0x4E
+				KEYPAD_4, // 0x4F
+				KEYPAD_5, // 0x50
+				KEYPAD_6, // 0x51
+				KEYPAD_PLUS, // 0x52
+				KEYPAD_1, // 0x53
+				KEYPAD_2, // 0x54
+				KEYPAD_3, // 0x55
+				KEYPAD_COMMA, // 0x56
+				KEYPAD_0, // 0x57
+				KEY_UP, // 0x58
+				KEYPAD_PERIOD, // 0x59
+				KEYPAD_ENTER, // 0x5A
+				KEY_LEFT, // 0x5B
+				KEY_DOWN, // 0x5C
+				KEY_RIGHT, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				0, // 0x60
+				0, // 0x61
+				0, // 0x62
+				0, // 0x63
+				KEYPAD_ASTERIX, // 0x64
+				KEYPAD_SLASH, // 0x65
+				KEYPAD_TAB, // 0x66
+				0, // 0x67
+				KEY_F11, // 0x68
+				KEY_F12, // 0x69
+				KEY_HELP, // 0x6A
+				KEY_INSERT, // 0x6B
+				KEY_CLEAR, // 0x6C
+				KEY_PAGE_UP, // 0x6D
+				KEY_PAGE_DOWN, // 0x6E
+				0, // 0x6F
+				0, // 0x70
+				0, // 0x71
+				0, // 0x72
+				0, // 0x73
+				0, // 0x74
+				0, // 0x75
+				0, // 0x76
+				0, // 0x77
+				0, // 0x78
+				0, // 0x79
+				KEY_F13, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+static uint8_t sonynews_ColemakMap[] = {
+				0x00, // 0x00
+				KEY_F1, // 0x01
+				KEY_F2, // 0x02
+				KEY_F3, // 0x03
+				KEY_F4, // 0x04
+				KEY_F5, // 0x05
+				KEY_F6, // 0x06
+				KEY_F7, // 0x07
+				KEY_F8, // 0x08
+				KEY_F9, // 0x09
+				KEY_F10, // 0x0A
+				KEY_ESC, // 0x0B
+				KEY_1, // 0x0C
+				KEY_2, // 0x0D
+				KEY_3, // 0x0E
+				KEY_4, // 0x0F
+				KEY_5, // 0x10
+				KEY_6, // 0x11
+				KEY_7, // 0x12
+				KEY_8, // 0x13
+				KEY_9, // 0x14
+				KEY_0, // 0x15
+				KEY_MINUS, // 0x16
+				KEY_EQUAL, // 0x17
+				KEY_INTER3, // 0x18 - Yen
+				KEY_BACKSPACE, // 0x19
+				KEY_TAB, // 0x1A
+				KEY_Q, // 0x1B
+				KEY_W, // 0x1C
+				KEY_F, // 0x1D
+				KEY_P, // 0x1E
+				KEY_G, // 0x1F
+				KEY_J, // 0x20
+				KEY_L, // 0x21
+				KEY_U, // 0x22
+				KEY_Y, // 0x23
+				KEY_SEMICOLON, // 0x24
+				KEY_LEFT_BRACE, // 0x25
+				KEY_RIGHT_BRACE, // 0x26
+				KEY_DELETE, // 0x27
+				KEY_CTRL, // 0x28
+				KEY_A, // 0x29
+				KEY_R, // 0x2A
+				KEY_S, // 0x2B
+				KEY_T, // 0x2C
+				KEY_D, // 0x2D
+				KEY_H, // 0x2E
+				KEY_N, // 0x2F
+				KEY_E, // 0x30
+				KEY_I, // 0x31
+				KEY_O, // 0x32
+				KEY_QUOTE, // 0x33
+				KEY_BACKSLASH, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_LEFT_SHIFT, // 0x36
+				KEY_Z, // 0x37
+				KEY_X, // 0x38
+				KEY_C, // 0x39
+				KEY_V, // 0x3A
+				KEY_B, // 0x3B
+				KEY_K, // 0x3C
+				KEY_M, // 0x3D
+				KEY_COMMA, // 0x3E
+				KEY_PERIOD, // 0x3F
+				KEY_SLASH, // 0x40
+				KEY_INTER1, // 0x41 - "Ru" and "-"
+				KEY_RIGHT_SHIFT, // 0x42
+				KEY_ALT, // 0x43
+				KEY_CAPS_LOCK, // 0x44
+				KEY_INTER5, // 0x45 - Muhenkan
+				KEY_SPACE, // 0x46
+				KEY_INTER4, // 0x47 - Henkan
+				KEY_LANG2, // 0x48 - Eisu (English/Numbers) (I've seen references to this mapping)
+				KEY_INTER2, // 0x49 - Kana
+				//KEY_EXEC, // 0x4A - Jikkou XXX Which means Execute, and since there is no Language key
+				KEY_GUI, // 0x4A - Using Jikkou as Windows Key
+				KEYPAD_7, // 0x4B
+				KEYPAD_8, // 0x4C
+				KEYPAD_9, // 0x4D
+				KEYPAD_MINUS, // 0x4E
+				KEYPAD_4, // 0x4F
+				KEYPAD_5, // 0x50
+				KEYPAD_6, // 0x51
+				KEYPAD_PLUS, // 0x52
+				KEYPAD_1, // 0x53
+				KEYPAD_2, // 0x54
+				KEYPAD_3, // 0x55
+				KEYPAD_COMMA, // 0x56
+				KEYPAD_0, // 0x57
+				KEY_UP, // 0x58
+				KEYPAD_PERIOD, // 0x59
+				KEYPAD_ENTER, // 0x5A
+				KEY_LEFT, // 0x5B
+				KEY_DOWN, // 0x5C
+				KEY_RIGHT, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				0, // 0x60
+				0, // 0x61
+				0, // 0x62
+				0, // 0x63
+				KEYPAD_ASTERIX, // 0x64
+				KEYPAD_SLASH, // 0x65
+				KEYPAD_TAB, // 0x66
+				0, // 0x67
+				KEY_F11, // 0x68
+				KEY_F12, // 0x69
+				KEY_HELP, // 0x6A
+				KEY_INSERT, // 0x6B
+				KEY_CLEAR, // 0x6C
+				KEY_PAGE_UP, // 0x6D
+				KEY_PAGE_DOWN, // 0x6E
+				0, // 0x6F
+				0, // 0x70
+				0, // 0x71
+				0, // 0x72
+				0, // 0x73
+				0, // 0x74
+				0, // 0x75
+				0, // 0x76
+				0, // 0x77
+				0, // 0x78
+				0, // 0x79
+				KEY_F13, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/sonyoas3400.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,552 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __SONYOAS3400_H
+#define __SONYOAS3400_H
+
+// This file contains various key layouts for the Sony OA-S3400 Word Processor Keyboard
+
+
+// ----- Variables -----
+static uint8_t sonyoas3400_ModifierMask[] = { 0x90, 0x91, 0x92, 0xCE, 0xE0 };
+
+static uint8_t sonyoas3400_DefaultMap[] = { 
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				0, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_SEMICOLON, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				KEY_A, // 0x41
+				KEY_B, // 0x42
+				KEY_C, // 0x43
+				KEY_D, // 0x44
+				KEY_E, // 0x45
+				KEY_F, // 0x46
+				KEY_G, // 0x47
+				KEY_H, // 0x48
+				KEY_I, // 0x49
+				KEY_J, // 0x4A
+				KEY_K, // 0x4B
+				KEY_L, // 0x4C
+				KEY_M, // 0x4D
+				KEY_N, // 0x4E
+				KEY_O, // 0x4F
+				KEY_P, // 0x50
+				KEY_Q, // 0x51
+				KEY_R, // 0x52
+				KEY_S, // 0x53
+				KEY_T, // 0x54
+				KEY_U, // 0x55
+				KEY_V, // 0x56
+				KEY_W, // 0x57
+				KEY_X, // 0x58
+				KEY_Y, // 0x59
+				KEY_Z, // 0x5A
+				0, // 0x5B
+				0, // 0x5C
+				0, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				0, // 0x60
+				0, // 0x61
+				0, // 0x62
+				0, // 0x63
+				0, // 0x64
+				0, // 0x65
+				0, // 0x66
+				0, // 0x67
+				0, // 0x68
+				0, // 0x69
+				0, // 0x6A
+				0, // 0x6B
+				0, // 0x6C
+				0, // 0x6D
+				0, // 0x6E
+				0, // 0x6F
+				0, // 0x70
+				0, // 0x71
+				0, // 0x72
+				0, // 0x73
+				0, // 0x74
+				0, // 0x75
+				0, // 0x76
+				0, // 0x77
+				0, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				KEY_LEFT_BRACE, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				KEY_LEFT_SHIFT, // 0x90
+				KEY_LEFT_CTRL, // 0x91
+				KEY_LEFT_ALT, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				0, // 0xB1
+				0, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				0, // 0xC0
+				0, // 0xC1
+				0, // 0xC2
+				0, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				KEY_LEFT_GUI, // 0xCE
+				KEY_RIGHT_BRACE, // 0xCF
+				KEY_ESC, // 0xD0
+				KEY_TILDE, // 0xD1
+				KEY_BACKSLASH, // 0xD2
+				KEY_F11, // 0xD3
+				KEY_F12, // 0xD4
+				KEY_F10, // 0xD5
+				KEY_UP, // 0xD6
+				KEY_DOWN, // 0xD7
+				KEY_LEFT, // 0xD8
+				KEY_RIGHT, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				KEY_RIGHT_ALT, // 0xE0
+				KEY_INSERT, // 0xE1
+				KEY_HOME, // 0xE2
+				KEY_PAGE_UP, // 0xE3
+				KEY_DELETE, // 0xE4
+				KEY_END, // 0xE5
+				KEY_PAGE_DOWN, // 0xE6
+				KEY_DOWN, // 0xE7
+				KEY_F9, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				0, // 0xF1
+				0, // 0xF2
+				0, // 0xF3
+				0, // 0xF4
+				0, // 0xF5
+				KEY_F1, // 0xF6
+				KEY_F2, // 0xF7
+				KEY_F3, // 0xF8
+				KEY_F4, // 0xF9
+				KEY_F5, // 0xFA
+				KEY_F6, // 0xFB
+				KEY_F7, // 0xFC
+				KEY_F8, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+static uint8_t sonyoas3400_ColemakMap[] = {
+				0, // 0x00
+				0, // 0x01
+				0, // 0x02
+				0, // 0x03
+				0, // 0x04
+				0, // 0x05
+				0, // 0x06
+				0, // 0x07
+				KEY_BACKSPACE, // 0x08
+				KEY_TAB, // 0x09
+				0, // 0x0A
+				0, // 0x0B
+				0, // 0x0C
+				KEY_ENTER, // 0x0D
+				0, // 0x0E
+				0, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				0, // 0x15
+				0, // 0x16
+				0, // 0x17
+				0, // 0x18
+				0, // 0x19
+				0, // 0x1A
+				0, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				0, // 0x1E
+				0, // 0x1F
+				KEY_SPACE, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				0, // 0x25
+				0, // 0x26
+				KEY_QUOTE, // 0x27
+				0, // 0x28
+				0, // 0x29
+				0, // 0x2A
+				0, // 0x2B
+				KEY_COMMA, // 0x2C
+				KEY_MINUS, // 0x2D
+				KEY_PERIOD, // 0x2E
+				KEY_SLASH, // 0x2F
+				KEY_0, // 0x30
+				KEY_1, // 0x31
+				KEY_2, // 0x32
+				KEY_3, // 0x33
+				KEY_4, // 0x34
+				KEY_5, // 0x35
+				KEY_6, // 0x36
+				KEY_7, // 0x37
+				KEY_8, // 0x38
+				KEY_9, // 0x39
+				0, // 0x3A
+				KEY_O, // 0x3B
+				0, // 0x3C
+				KEY_EQUAL, // 0x3D
+				0, // 0x3E
+				0, // 0x3F
+				0, // 0x40
+				KEY_A, // 0x41
+				KEY_B, // 0x42
+				KEY_C, // 0x43
+				KEY_S, // 0x44
+				KEY_F, // 0x45
+				KEY_T, // 0x46
+				KEY_D, // 0x47
+				KEY_H, // 0x48
+				KEY_U, // 0x49
+				KEY_N, // 0x4A
+				KEY_E, // 0x4B
+				KEY_I, // 0x4C
+				KEY_M, // 0x4D
+				KEY_K, // 0x4E
+				KEY_Y, // 0x4F
+				KEY_SEMICOLON, // 0x50
+				KEY_Q, // 0x51
+				KEY_P, // 0x52
+				KEY_R, // 0x53
+				KEY_G, // 0x54
+				KEY_L, // 0x55
+				KEY_V, // 0x56
+				KEY_W, // 0x57
+				KEY_X, // 0x58
+				KEY_J, // 0x59
+				KEY_Z, // 0x5A
+				0, // 0x5B
+				0, // 0x5C
+				0, // 0x5D
+				0, // 0x5E
+				0, // 0x5F
+				0, // 0x60
+				0, // 0x61
+				0, // 0x62
+				0, // 0x63
+				0, // 0x64
+				0, // 0x65
+				0, // 0x66
+				0, // 0x67
+				0, // 0x68
+				0, // 0x69
+				0, // 0x6A
+				0, // 0x6B
+				0, // 0x6C
+				0, // 0x6D
+				0, // 0x6E
+				0, // 0x6F
+				0, // 0x70
+				0, // 0x71
+				0, // 0x72
+				0, // 0x73
+				0, // 0x74
+				0, // 0x75
+				0, // 0x76
+				0, // 0x77
+				0, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				KEY_LEFT_BRACE, // 0x82
+				0, // 0x83
+				0, // 0x84
+				0, // 0x85
+				0, // 0x86
+				0, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				0, // 0x8B
+				0, // 0x8C
+				0, // 0x8D
+				0, // 0x8E
+				0, // 0x8F
+				KEY_LEFT_SHIFT, // 0x90
+				KEY_LEFT_CTRL, // 0x91
+				KEY_LEFT_ALT, // 0x92
+				0, // 0x93
+				0, // 0x94
+				0, // 0x95
+				0, // 0x96
+				0, // 0x97
+				0, // 0x98
+				0, // 0x99
+				0, // 0x9A
+				0, // 0x9B
+				0, // 0x9C
+				0, // 0x9D
+				0, // 0x9E
+				0, // 0x9F
+				0, // 0xA0
+				0, // 0xA1
+				0, // 0xA2
+				0, // 0xA3
+				0, // 0xA4
+				0, // 0xA5
+				0, // 0xA6
+				0, // 0xA7
+				0, // 0xA8
+				0, // 0xA9
+				0, // 0xAA
+				0, // 0xAB
+				0, // 0xAC
+				0, // 0xAD
+				0, // 0xAE
+				0, // 0xAF
+				0, // 0xB0
+				0, // 0xB1
+				0, // 0xB2
+				0, // 0xB3
+				0, // 0xB4
+				0, // 0xB5
+				0, // 0xB6
+				0, // 0xB7
+				0, // 0xB8
+				0, // 0xB9
+				0, // 0xBA
+				0, // 0xBB
+				0, // 0xBC
+				0, // 0xBD
+				0, // 0xBE
+				0, // 0xBF
+				0, // 0xC0
+				0, // 0xC1
+				0, // 0xC2
+				0, // 0xC3
+				0, // 0xC4
+				0, // 0xC5
+				0, // 0xC6
+				0, // 0xC7
+				0, // 0xC8
+				0, // 0xC9
+				0, // 0xCA
+				0, // 0xCB
+				0, // 0xCC
+				0, // 0xCD
+				KEY_LEFT_GUI, // 0xCE
+				KEY_RIGHT_BRACE, // 0xCF
+				KEY_ESC, // 0xD0
+				KEY_TILDE, // 0xD1
+				KEY_BACKSLASH, // 0xD2
+				KEY_F11, // 0xD3
+				KEY_F12, // 0xD4
+				KEY_F10, // 0xD5
+				KEY_UP, // 0xD6
+				KEY_DOWN, // 0xD7
+				KEY_LEFT, // 0xD8
+				KEY_RIGHT, // 0xD9
+				0, // 0xDA
+				0, // 0xDB
+				0, // 0xDC
+				0, // 0xDD
+				0, // 0xDE
+				0, // 0xDF
+				KEY_RIGHT_ALT, // 0xE0
+				KEY_INSERT, // 0xE1
+				KEY_HOME, // 0xE2
+				KEY_PAGE_UP, // 0xE3
+				KEY_DELETE, // 0xE4
+				KEY_END, // 0xE5
+				KEY_PAGE_DOWN, // 0xE6
+				KEY_DOWN, // 0xE7
+				KEY_F9, // 0xE8
+				0, // 0xE9
+				0, // 0xEA
+				0, // 0xEB
+				0, // 0xEC
+				0, // 0xED
+				0, // 0xEE
+				0, // 0xEF
+				0, // 0xF0
+				0, // 0xF1
+				0, // 0xF2
+				0, // 0xF3
+				0, // 0xF4
+				0, // 0xF5
+				KEY_F1, // 0xF6
+				KEY_F2, // 0xF7
+				KEY_F3, // 0xF8
+				KEY_F4, // 0xF9
+				KEY_F5, // 0xFA
+				KEY_F6, // 0xFB
+				KEY_F7, // 0xFC
+				KEY_F8, // 0xFD
+				0, // 0xFE
+				0, // 0xFF
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/tandy1000.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,221 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __TANDY1000_H
+#define __TANDY1000_H
+
+// This file contains various key layouts for the Tandy 1000 keyboard
+
+
+// ----- Variables -----
+
+static uint8_t tandy1000_ModifierMask[] = { 0x1D, 0x2A, 0x36, 0x38, 0x46 };
+
+static uint8_t tandy1000_DefaultMap[] = { 0,
+				KEY_ESC,
+				KEY_1,
+				KEY_2,
+				KEY_3,
+				KEY_4,
+				KEY_5,
+				KEY_6,
+				KEY_7,
+				KEY_8,
+				KEY_9,
+				KEY_0,
+				KEY_MINUS,
+				KEY_EQUAL,
+				KEY_BACKSPACE,
+				KEY_TAB,
+				KEY_Q,
+				KEY_W,
+				KEY_E,
+				KEY_R,
+				KEY_T,
+				KEY_Y,
+				KEY_U,
+				KEY_I,
+				KEY_O,
+				KEY_P,
+				KEY_LEFT_BRACE,
+				KEY_RIGHT_BRACE,
+				KEY_ENTER,
+				KEY_CTRL, // 0x1D
+				KEY_A,
+				KEY_S,
+				KEY_D,
+				KEY_F,
+				KEY_G,
+				KEY_H,
+				KEY_J,
+				KEY_K,
+				KEY_L,
+				KEY_SEMICOLON,
+				KEY_QUOTE,
+				KEY_UP,
+				KEY_LEFT_SHIFT, // 0x2A
+				KEY_LEFT,
+				KEY_Z,
+				KEY_X,
+				KEY_C,
+				KEY_V,
+				KEY_B,
+				KEY_N,
+				KEY_M,
+				KEY_COMMA,
+				KEY_PERIOD,
+				KEY_SLASH,
+				KEY_RIGHT_SHIFT, // 0x36
+				KEY_PRINTSCREEN,
+				KEY_ALT, // 0x38
+				KEY_SPACE,
+				KEY_CAPS_LOCK,
+				KEY_F1,
+				KEY_F2,
+				KEY_F3,
+				KEY_F4,
+				KEY_F5,
+				KEY_F6,
+				KEY_F7,
+				KEY_F8,
+				KEY_F9,
+				KEY_F10,
+				KEY_NUM_LOCK,
+				KEY_GUI, // Actually Hold... 0x48
+				KEY_BACKSLASH, // Also KEYPAD_7
+				KEY_TILDE, // Also KEYPAD_8
+				KEYPAD_9,
+				KEY_UP,
+				KEY_BACKSLASH, // Actually | and KEYPAD_4
+				KEYPAD_5,
+				KEYPAD_6,
+				KEY_RIGHT,
+				KEYPAD_1,
+				KEY_TILDE, // Actually ` and KEYPAD_2
+				KEYPAD_3,
+				KEYPAD_0,
+				KEY_DELETE,
+				KEY_PAUSE,
+				KEY_INSERT,
+				KEYPAD_PERIOD,
+				KEYPAD_ENTER,
+				KEY_HOME,
+				KEY_F11,
+				KEY_F12, // 0x5A
+};
+
+static uint8_t tandy1000_ColemakMap[] = { 0,
+				KEY_ESC,
+				KEY_1,
+				KEY_2,
+				KEY_3,
+				KEY_4,
+				KEY_5,
+				KEY_6,
+				KEY_7,
+				KEY_8,
+				KEY_9,
+				KEY_0,
+				KEY_MINUS,
+				KEY_EQUAL,
+				KEY_BACKSPACE,
+				KEY_TAB,
+				KEY_Q,
+				KEY_W,
+				KEY_F,
+				KEY_P,
+				KEY_G,
+				KEY_J,
+				KEY_L,
+				KEY_U,
+				KEY_Y,
+				KEY_SEMICOLON,
+				KEY_LEFT_BRACE,
+				KEY_RIGHT_BRACE,
+				KEY_ENTER,
+				KEY_CTRL, // 0x1D
+				KEY_A,
+				KEY_R,
+				KEY_S,
+				KEY_T,
+				KEY_D,
+				KEY_H,
+				KEY_N,
+				KEY_E,
+				KEY_I,
+				KEY_O,
+				KEY_QUOTE,
+				KEY_UP,
+				KEY_LEFT_SHIFT, // 0x2A
+				KEY_LEFT,
+				KEY_Z,
+				KEY_X,
+				KEY_C,
+				KEY_V,
+				KEY_B,
+				KEY_K,
+				KEY_M,
+				KEY_COMMA,
+				KEY_PERIOD,
+				KEY_SLASH,
+				KEY_RIGHT_SHIFT, // 0x36
+				KEY_PRINTSCREEN,
+				KEY_ALT, // 0x38
+				KEY_SPACE,
+				0, //KEY_CAPS_LOCK,
+				KEY_F1,
+				KEY_F2,
+				KEY_F3,
+				KEY_F4,
+				KEY_F5,
+				KEY_F6,
+				KEY_F7,
+				KEY_F8,
+				KEY_F9,
+				KEY_F10,
+				0, //KEY_NUM_LOCK,
+				KEY_GUI, // Actually Hold... 0x48
+				KEY_BACKSLASH, // Also KEYPAD_7
+				KEY_TILDE, // Also KEYPAD_8
+				KEYPAD_9,
+				KEY_DOWN,
+				KEY_BACKSLASH, // Actually | and KEYPAD_4
+				KEYPAD_5,
+				KEYPAD_6,
+				KEY_RIGHT,
+				KEYPAD_1,
+				KEY_TILDE, // Actually ` and KEYPAD_2
+				KEYPAD_3,
+				KEYPAD_0,
+				KEY_DELETE,
+				KEY_PAUSE,
+				KEY_INSERT,
+				KEYPAD_PERIOD,
+				KEYPAD_ENTER,
+				KEY_HOME,
+				KEY_F11,
+				KEY_F12, // 0x5A
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/univacf3w9.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,329 @@
+/* Copyright (C) 2012 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __UNIVACF3W9_H
+#define __UNIVACF3W9_H
+
+// This file contains various key layouts for the Univac F3W9 keyboard
+
+
+
+// ----- Variables -----
+static uint8_t univacf3w9_ModifierMask[] = { 0x81, 0x83, 0x85, 0x87, 0x89, 0x8B, 0x8D, 0x8F };
+
+static uint8_t univacf3w9_DefaultMap[] = { 
+				0x00, // 0x00
+				KEY_F4, // 0x01
+				0, // 0x02
+				KEY_F5, // 0x03
+				KEY_F6, // 0x04
+				KEY_F7, // 0x05
+				KEY_F8, // 0x06
+				KEY_F9, // 0x07
+				0, // 0x08
+				KEY_F10, // 0x09
+				KEY_F11, // 0x0A
+				KEY_F12, // 0x0B
+				KEY_F13, // 0x0C
+				0, // 0x0D
+				KEY_F14, // 0x0E
+				KEY_F15, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				KEYPAD_ENTER, // 0x15
+				KEYPAD_PERIOD, // 0x16
+				KEYPAD_0, // 0x17
+				KEYPAD_EQUAL, // 0x18
+				KEYPAD_6, // 0x19
+				KEYPAD_5, // 0x1A
+				KEYPAD_4, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				KEY_F17, // 0x1E
+				KEY_F16, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				KEYPAD_3, // 0x25
+				KEYPAD_2, // 0x26
+				KEYPAD_1, // 0x27
+				KEYPAD_PLUS, // 0x28
+				KEYPAD_9, // 0x29
+				KEYPAD_8, // 0x2A
+				KEYPAD_7, // 0x2B
+				KEYPAD_MINUS, // 0x2C
+				KEYPAD_ASTERIX, // 0x2D
+				KEYPAD_SLASH, // 0x2E
+				KEY_NUM_LOCK, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_SPACE, // 0x32
+				KEY_Z, // 0x33
+				KEY_X, // 0x34
+				KEY_C, // 0x35
+				KEY_V, // 0x36
+				KEY_B, // 0x37
+				KEY_N, // 0x38
+				KEY_M, // 0x39
+				KEY_COMMA, // 0x3A
+				KEY_PERIOD, // 0x3B
+				KEY_UP, // 0x3C
+				KEY_LEFT, // 0x3D
+				KEY_RIGHT, // 0x3E
+				KEY_DOWN, // 0x3F
+				0, // 0x40
+				KEY_F19, // 0x41
+				KEY_CAPS_LOCK, // 0x42
+				KEY_A, // 0x43
+				KEY_S, // 0x44
+				KEY_D, // 0x45
+				KEY_F, // 0x46
+				KEY_G, // 0x47
+				KEY_H, // 0x48
+				KEY_J, // 0x49
+				KEY_K, // 0x4A
+				KEY_L, // 0x4B
+				KEY_SEMICOLON, // 0x4C
+				KEY_QUOTE, // 0x4D
+				KEY_ENTER, // 0x4E
+				KEY_SLASH, // 0x4F
+				0, // 0x50
+				KEY_Q, // 0x51
+				KEY_W, // 0x52
+				KEY_E, // 0x53
+				KEY_R, // 0x54
+				KEY_T, // 0x55
+				KEY_Y, // 0x56
+				KEY_U, // 0x57
+				KEY_I, // 0x58
+				KEY_O, // 0x59
+				KEY_P, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_RIGHT_BRACE, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_INSERT, // 0x5E
+				KEY_PAGE_DOWN, // 0x5F
+				0, // 0x60
+				KEY_2, // 0x61
+				KEY_3, // 0x62
+				KEY_4, // 0x63
+				KEY_5, // 0x64
+				KEY_6, // 0x65
+				KEY_7, // 0x66
+				KEY_8, // 0x67
+				KEY_9, // 0x68
+				KEY_0, // 0x69
+				KEY_MINUS, // 0x6A
+				KEY_EQUAL, // 0x6B
+				KEY_TILDE, // 0x6C
+				KEY_BACKSPACE, // 0x6D
+				KEY_DELETE, // 0x6E
+				KEY_PAGE_UP, // 0x6F
+				0, // 0x70
+				KEY_F3, // 0x71
+				KEY_F2, // 0x72
+				KEY_F1, // 0x73
+				KEY_F18, // 0x74
+				KEY_ESC, // 0x75
+				KEY_1, // 0x76
+				KEY_TAB, // 0x77
+				KEY_F19, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				KEY_RIGHT_SHIFT, // 0x85
+				0, // 0x86
+				KEY_LEFT_SHIFT, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				KEY_LEFT_CTRL, // 0x8B
+				0, // 0x8C
+				KEY_GUI, // 0x8D
+				0, // 0x8E
+				KEY_RIGHT_CTRL, // 0x8F
+};
+
+static uint8_t univacf3w9_ColemakMap[] = {
+				0x00, // 0x00
+				KEY_F4, // 0x01
+				0, // 0x02
+				KEY_F5, // 0x03
+				KEY_F6, // 0x04
+				KEY_F7, // 0x05
+				KEY_F8, // 0x06
+				KEY_F9, // 0x07
+				0, // 0x08
+				KEY_F10, // 0x09
+				KEY_F11, // 0x0A
+				KEY_F12, // 0x0B
+				KEY_F13, // 0x0C
+				0, // 0x0D
+				KEY_F14, // 0x0E
+				KEY_F15, // 0x0F
+				0, // 0x10
+				0, // 0x11
+				0, // 0x12
+				0, // 0x13
+				0, // 0x14
+				KEYPAD_ENTER, // 0x15
+				KEYPAD_PERIOD, // 0x16
+				KEYPAD_0, // 0x17
+				KEYPAD_EQUAL, // 0x18
+				KEYPAD_6, // 0x19
+				KEYPAD_5, // 0x1A
+				KEYPAD_4, // 0x1B
+				0, // 0x1C
+				0, // 0x1D
+				KEY_F17, // 0x1E
+				KEY_F16, // 0x1F
+				0, // 0x20
+				0, // 0x21
+				0, // 0x22
+				0, // 0x23
+				0, // 0x24
+				KEYPAD_3, // 0x25
+				KEYPAD_2, // 0x26
+				KEYPAD_1, // 0x27
+				KEYPAD_PLUS, // 0x28
+				KEYPAD_9, // 0x29
+				KEYPAD_8, // 0x2A
+				KEYPAD_7, // 0x2B
+				KEYPAD_MINUS, // 0x2C
+				KEYPAD_ASTERIX, // 0x2D
+				KEYPAD_SLASH, // 0x2E
+				KEY_NUM_LOCK, // 0x2F
+				0, // 0x30
+				0, // 0x31
+				KEY_SPACE, // 0x32
+				KEY_Z, // 0x33
+				KEY_X, // 0x34
+				KEY_C, // 0x35
+				KEY_V, // 0x36
+				KEY_B, // 0x37
+				KEY_K, // 0x38
+				KEY_M, // 0x39
+				KEY_COMMA, // 0x3A
+				KEY_PERIOD, // 0x3B
+				KEY_UP, // 0x3C
+				KEY_LEFT, // 0x3D
+				KEY_RIGHT, // 0x3E
+				KEY_DOWN, // 0x3F
+				0, // 0x40
+				KEY_F19, // 0x41
+				KEY_CAPS_LOCK, // 0x42
+				KEY_A, // 0x43
+				KEY_R, // 0x44
+				KEY_S, // 0x45
+				KEY_T, // 0x46
+				KEY_D, // 0x47
+				KEY_H, // 0x48
+				KEY_N, // 0x49
+				KEY_E, // 0x4A
+				KEY_I, // 0x4B
+				KEY_O, // 0x4C
+				KEY_QUOTE, // 0x4D
+				KEY_ENTER, // 0x4E
+				KEY_SLASH, // 0x4F
+				0, // 0x50
+				KEY_Q, // 0x51
+				KEY_W, // 0x52
+				KEY_F, // 0x53
+				KEY_P, // 0x54
+				KEY_G, // 0x55
+				KEY_J, // 0x56
+				KEY_L, // 0x57
+				KEY_U, // 0x58
+				KEY_Y, // 0x59
+				KEY_SEMICOLON, // 0x5A
+				KEY_LEFT_BRACE, // 0x5B
+				KEY_RIGHT_BRACE, // 0x5C
+				KEY_BACKSLASH, // 0x5D
+				KEY_INSERT, // 0x5E
+				KEY_PAGE_DOWN, // 0x5F
+				0, // 0x60
+				KEY_2, // 0x61
+				KEY_3, // 0x62
+				KEY_4, // 0x63
+				KEY_5, // 0x64
+				KEY_6, // 0x65
+				KEY_7, // 0x66
+				KEY_8, // 0x67
+				KEY_9, // 0x68
+				KEY_0, // 0x69
+				KEY_MINUS, // 0x6A
+				KEY_EQUAL, // 0x6B
+				KEY_TILDE, // 0x6C
+				KEY_BACKSPACE, // 0x6D
+				KEY_DELETE, // 0x6E
+				KEY_PAGE_UP, // 0x6F
+				0, // 0x70
+				KEY_F3, // 0x71
+				KEY_F2, // 0x72
+				KEY_F1, // 0x73
+				KEY_F18, // 0x74
+				KEY_ESC, // 0x75
+				KEY_1, // 0x76
+				KEY_TAB, // 0x77
+				KEY_F19, // 0x78
+				0, // 0x79
+				0, // 0x7A
+				0, // 0x7B
+				0, // 0x7C
+				0, // 0x7D
+				0, // 0x7E
+				0, // 0x7F
+				0, // 0x80
+				0, // 0x81
+				0, // 0x82
+				0, // 0x83
+				0, // 0x84
+				KEY_RIGHT_SHIFT, // 0x85
+				0, // 0x86
+				KEY_LEFT_SHIFT, // 0x87
+				0, // 0x88
+				0, // 0x89
+				0, // 0x8A
+				KEY_LEFT_CTRL, // 0x8B
+				0, // 0x8C
+				KEY_GUI, // 0x8D
+				0, // 0x8E
+				KEY_ALT, // 0x8F
+};
+
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Macro/buffer/Keymap/usb_keys.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,266 @@
+/* Copyright (C) 2011 by Jacob Alexander
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __usb_keys_h
+#define __usb_keys_h
+
+// ----- Defines -----
+
+// List of Modifiers
+#define KEY_CTRL          0x01
+#define KEY_SHIFT         0x02
+#define KEY_ALT	          0x04
+#define KEY_GUI	          0x08
+#define KEY_LEFT_CTRL     0x01
+#define KEY_LEFT_SHIFT    0x02
+#define KEY_LEFT_ALT      0x04
+#define KEY_LEFT_GUI      0x08
+#define KEY_RIGHT_CTRL    0x10
+#define KEY_RIGHT_SHIFT   0x20
+#define KEY_RIGHT_ALT     0x40
+#define KEY_RIGHT_GUI     0x80
+
+// List of Keycodes
+#define KEY_NOEVENT          0 // Event, not a physical key
+#define KEY_ERRORROLLOVER    1 // Event, not a physical key
+#define KEY_POSTFAIL         2 // Event, not a physical key
+#define KEY_ERRORUNDEFINED   3 // Event, not a physical key
+#define KEY_A                4
+#define KEY_B                5
+#define KEY_C                6
+#define KEY_D                7
+#define KEY_E                8
+#define KEY_F                9
+#define KEY_G               10
+#define KEY_H               11
+#define KEY_I               12
+#define KEY_J               13
+#define KEY_K               14
+#define KEY_L               15
+#define KEY_M               16
+#define KEY_N               17
+#define KEY_O               18
+#define KEY_P               19
+#define KEY_Q               20
+#define KEY_R               21
+#define KEY_S               22
+#define KEY_T               23
+#define KEY_U               24
+#define KEY_V               25
+#define KEY_W               26
+#define KEY_X               27
+#define KEY_Y               28
+#define KEY_Z               29
+#define KEY_1               30
+#define KEY_2               31
+#define KEY_3               32
+#define KEY_4               33
+#define KEY_5               34
+#define KEY_6               35
+#define KEY_7               36
+#define KEY_8               37
+#define KEY_9               38
+#define KEY_0               39
+#define KEY_ENTER           40
+#define KEY_ESC             41
+#define KEY_BACKSPACE       42
+#define KEY_TAB             43
+#define KEY_SPACE           44
+#define KEY_MINUS           45
+#define KEY_EQUAL           46
+#define KEY_LEFT_BRACE      47
+#define KEY_RIGHT_BRACE     48
+#define KEY_BACKSLASH       49
+#define KEY_NUMBER          50
+#define KEY_SEMICOLON       51
+#define KEY_QUOTE           52
+#define KEY_TILDE           53
+#define KEY_COMMA           54
+#define KEY_PERIOD          55
+#define KEY_SLASH           56
+#define KEY_CAPS_LOCK       57
+#define KEY_F1              58
+#define KEY_F2              59
+#define KEY_F3              60
+#define KEY_F4              61
+#define KEY_F5              62
+#define KEY_F6              63
+#define KEY_F7              64
+#define KEY_F8              65
+#define KEY_F9              66
+#define KEY_F10             67
+#define KEY_F11             68
+#define KEY_F12             69
+#define KEY_PRINTSCREEN     70
+#define KEY_SCROLL_LOCK     71
+#define KEY_PAUSE           72
+#define KEY_INSERT          73
+#define KEY_HOME            74
+#define KEY_PAGE_UP         75
+#define KEY_DELETE          76
+#define KEY_END             77
+#define KEY_PAGE_DOWN       78
+#define KEY_RIGHT           79
+#define KEY_LEFT            80
+#define KEY_DOWN            81
+#define KEY_UP              82
+#define KEY_NUM_LOCK        83
+#define KEYPAD_SLASH        84
+#define KEYPAD_ASTERIX      85
+#define KEYPAD_MINUS        86
+#define KEYPAD_PLUS         87
+#define KEYPAD_ENTER        88
+#define KEYPAD_1            89
+#define KEYPAD_2            90
+#define KEYPAD_3            91
+#define KEYPAD_4            92
+#define KEYPAD_5            93
+#define KEYPAD_6            94
+#define KEYPAD_7            95
+#define KEYPAD_8            96
+#define KEYPAD_9            97
+#define KEYPAD_0            98
+#define KEYPAD_PERIOD       99
+#define KEY_ISO_BACKSLASH  100
+#define KEY_APP            101
+#define KEYBOARD_ERROR     102 // See spec
+#define KEYPAD_EQUAL       103
+#define KEY_F13            104
+#define KEY_F14            105
+#define KEY_F15            106
+#define KEY_F16            107
+#define KEY_F17            108
+#define KEY_F18            109
+#define KEY_F19            110
+#define KEY_F20            111
+#define KEY_F21            112
+#define KEY_F22            113
+#define KEY_F23            114
+#define KEY_F24            115
+#define KEY_EXEC           116
+#define KEY_HELP           117
+#define KEY_MENU           118
+#define KEY_SELECT         119
+#define KEY_STOP           120
+#define KEY_AGAIN          121
+#define KEY_UNDO           122
+#define KEY_CUT            123
+#define KEY_COPY           124
+#define KEY_PASTE          125
+#define KEY_FIND           126
+#define KEY_MUTE           127
+#define KEY_VOL_UP         128
+#define KEY_VOL_DOWN       129
+#define KEY_CAPS_LLOCK     130 // "Locking" Scroll Lock (Old keyboards with Locking Caps Lock)
+#define KEY_NUM_LLOCK      131
+#define KEY_SCROLL_LLOCK   132
+#define KEYPAD_COMMA       133 // Brazillian (See spec)
+#define KEYPAD_EQUAL_AS    134 // AS/400 Keyboard (See spec)
+#define KEY_INTER1         135 // KANJI1 - Brazillian and Japanese "Ru" and "-"
+#define KEY_INTER2         136 // KANJI2 - Japanese Katakana/Hiragana
+#define KEY_INTER3         137 // KANJI3 - Japanese Yen
+#define KEY_INTER4         138 // KANJI4 - Japanese Henkan
+#define KEY_INTER5         139 // KANJI5 - Japanese Muhenkan
+#define KEY_INTER6         140 // KANJI6 - PC98 Comma (Ka-m-ma)
+#define KEY_INTER7         141 // KANJI7 - Double-Byte/Single-Byte Toggle
+#define KEY_INTER8         142 // KANJI8 - Undefined
+#define KEY_INTER9         143 // KANJI9 - Undefined
+#define KEY_LANG1          144 // Korean Hangul/English Toggle
+#define KEY_LANG2          145 // Korean Hanja Conversion - Japanese Eisu
+#define KEY_LANG3          146 // Japanese Katakana Key (USB)
+#define KEY_LANG4          147 // Japanese Hiragana Key (USB)
+#define KEY_LANG5          148 // Japanese Zenkaku/Hankaku Key (USB)
+#define KEY_LANG6          149 // Reserved (Application Specific)
+#define KEY_LANG7          150 // Reserved (Application Specific)
+#define KEY_LANG8          151 // Reserved (Application Specific)
+#define KEY_LANG9          152 // Reserved (Application Specific)
+#define KEY_ALT_ERASE      153 // Special Erase (See Spec)
+#define KEY_SYSREQ_ATT     154 // Modifier Type
+#define KEY_CANCEL         155
+#define KEY_CLEAR          156
+#define KEY_PRIOR          157
+#define KEY_RETURN         158
+#define KEY_SEPARATOR      159
+#define KEY_OUT            160
+#define KEY_OPER           161
+#define KEY_CLEAR_AGAIN    162
+#define KEY_CRSEL_PROPS    163
+#define KEY_EXSEL          164
+// 165 - 175 Reserved
+#define KEYPAD_00          176
+#define KEYPAD_000         177
+#define KEY_1000_SEP       178
+#define KEY_DECIMAL_SEP    179
+#define KEY_CURRENCY_MAIN  180
+#define KEY_CURRENCY_SUB   181
+#define KEYPAD_LPAREN      182
+#define KEYPAD_RPAREN      183
+#define KEYPAD_LBRACE      184
+#define KEYPAD_RBRACE      185
+#define KEYPAD_TAB         186
+#define KEYPAD_BACKSPACE   187
+#define KEYPAD_A           188
+#define KEYPAD_B           189
+#define KEYPAD_C           190
+#define KEYPAD_D           191
+#define KEYPAD_E           192
+#define KEYPAD_F           193
+#define KEYPAD_XOR         194
+#define KEYPAD_CHEVRON     195
+#define KEYPAD_PERCENT     196
+#define KEYPAD_LTHAN       197
+#define KEYPAD_GTHAN       198
+#define KEYPAD_AND         199
+#define KEYPAD_AND_AND     200
+#define KEYPAD_OR          201
+#define KEYPAD_OR_OR       202
+#define KEYPAD_COLON       203
+#define KEYPAD_POUND       204
+#define KEYPAD_SPACE       205
+#define KEYPAD_AT          206
+#define KEYPAD_EXCLAIM     207
+#define KEYPAD_MEM_STORE   208
+#define KEYPAD_MEM_RECALL  209
+#define KEYPAD_MEM_CLEAR   210
+#define KEYPAD_MEM_ADD     211
+#define KEYPAD_MEM_SUB     212
+#define KEYPAD_MEM_MULT    213
+#define KEYPAD_MEM_DIV     214
+#define KEYPAD_PLUS_MINUS  215
+#define KEYPAD_CLEAR       216
+#define KEYPAD_CLEAR_ENTRY 217
+#define KEYPAD_BINARY      218
+#define KEYPAD_OCTAL       219
+#define KEYPAD_DECIMAL     220
+#define KEYPAD_HEX         221
+// 222 - 223 Reserved
+#define KEYS_LCTRL         224
+#define KEYS_LSHIFT        225
+#define KEYS_LALT          226
+#define KEYS_LGUI          227
+#define KEYS_RCTRL         228
+#define KEYS_RSHIFT        229
+#define KEYS_RALT          230
+#define KEYS_RGUI          231
+// 232 - 65535 Reserved
+
+#endif
+
--- a/Macro/buffer/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Macro/buffer/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Macro Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -8,6 +8,16 @@
 
 
 ###
+# Warning, this module has been deprecated
+#
+message( AUTHOR_WARNING
+"The 'buffer' macro module has been deprecated in favour of 'Partial Map'.
+This module may or may not compile/function properly.
+It has been kept for historical purposes."
+)
+
+
+###
 # Module C files
 #
 
--- a/Output/pjrcUSB/output_com.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Output/pjrcUSB/output_com.c	Sun Apr 06 11:49:27 2014 -0700
@@ -98,7 +98,7 @@
 // ----- Functions -----
 
 // USB Module Setup
-inline void output_setup()
+inline void Output_setup()
 {
 	// Initialize the USB, and then wait for the host to set configuration.
 	// If the Teensy is powered without a PC connected to the USB port,
@@ -106,8 +106,8 @@
 	usb_init();
 	while ( !usb_configured() ) /* wait */ ;
 
-	// Register USB Output dictionary
-	registerDictionary_cli( outputCLIDict, outputCLIDictName );
+	// Register USB Output CLI dictionary
+	CLI_registerDictionary( outputCLIDict, outputCLIDictName );
 
 	// Wait an extra second for the PC's operating system to load drivers
 	// and do whatever it does to actually be ready for input
@@ -116,7 +116,7 @@
 
 
 // USB Data Send
-inline void output_send(void)
+inline void Output_send(void)
 {
 		// TODO undo potentially old keys
 		for ( uint8_t c = USBKeys_Sent; c < USBKeys_MaxSize; c++ )
@@ -130,12 +130,12 @@
 		USBKeys_Sent      = 0;
 
 		// Signal Scan Module we are finishedA
-		scan_finishedWithUSBBuffer( USBKeys_Sent <= USBKeys_MaxSize ? USBKeys_Sent : USBKeys_MaxSize );
+		Scan_finishedWithUSBBuffer( USBKeys_Sent <= USBKeys_MaxSize ? USBKeys_Sent : USBKeys_MaxSize );
 }
 
 
 // Sets the device into firmware reload mode
-inline void output_firmwareReload()
+inline void Output_firmwareReload()
 {
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 	usb_debug_reload();
@@ -146,14 +146,14 @@
 
 
 // USB Input buffer available
-inline unsigned int output_availablechar()
+inline unsigned int Output_availablechar()
 {
 	return usb_serial_available();
 }
 
 
 // USB Get Character from input buffer
-inline int output_getchar()
+inline int Output_getchar()
 {
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 	// XXX Make sure to check output_availablechar() first! Information is lost with the cast (error codes)
@@ -165,14 +165,14 @@
 
 
 // USB Send Character to output buffer
-inline int output_putchar( char c )
+inline int Output_putchar( char c )
 {
 	return usb_serial_putchar( c );
 }
 
 
 // USB Send String to output buffer, null terminated
-inline int output_putstr( char* str )
+inline int Output_putstr( char* str )
 {
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 	uint16_t count = 0;
@@ -188,7 +188,7 @@
 
 
 // Soft Chip Reset
-inline void output_softReset()
+inline void Output_softReset()
 {
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 	usb_debug_software_reset();
@@ -232,7 +232,7 @@
 	for ( USBKeys_SentCLI = 0; USBKeys_SentCLI < USBKeys_MaxSize; ++USBKeys_SentCLI )
 	{
 		curArgs = arg2Ptr;
-		argumentIsolation_cli( curArgs, &arg1Ptr, &arg2Ptr );
+		CLI_argumentIsolation( curArgs, &arg1Ptr, &arg2Ptr );
 
 		// Stop processing args if no more are found
 		if ( *arg1Ptr == '\0' )
@@ -250,7 +250,7 @@
 	//  NOTE: Only first argument is used
 	char* arg1Ptr;
 	char* arg2Ptr;
-	argumentIsolation_cli( args, &arg1Ptr, &arg2Ptr );
+	CLI_argumentIsolation( args, &arg1Ptr, &arg2Ptr );
 
 	USBKeys_LEDs = decToInt( arg1Ptr );
 }
@@ -262,7 +262,7 @@
 	//  NOTE: Only first argument is used
 	char* arg1Ptr;
 	char* arg2Ptr;
-	argumentIsolation_cli( args, &arg1Ptr, &arg2Ptr );
+	CLI_argumentIsolation( args, &arg1Ptr, &arg2Ptr );
 
 	USBKeys_ModifiersCLI = decToInt( arg1Ptr );
 }
--- a/Output/pjrcUSB/output_com.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Output/pjrcUSB/output_com.h	Sun Apr 06 11:49:27 2014 -0700
@@ -41,7 +41,8 @@
 
 // ----- Variables -----
 
-// Variables used to communciate to the usb module
+// Variables used to communciate to the output module
+// XXX Even if the output module is not USB, this is internally understood keymapping scheme
 extern                       uint8_t USBKeys_Modifiers;
 extern                       uint8_t USBKeys_Array[USB_MAX_KEY_SEND];
 extern                       uint8_t USBKeys_Sent;
@@ -58,18 +59,18 @@
 
 // ----- Functions -----
 
-void output_setup();
-void output_send();
+void Output_setup();
+void Output_send();
 
-void output_firmwareReload();
-void output_softReset();
+void Output_firmwareReload();
+void Output_softReset();
 
 // Relies on USB serial module
-unsigned int output_availablechar();
+unsigned int Output_availablechar();
 
-int output_getchar();
-int output_putchar( char c );
-int output_putstr( char* str );
+int Output_getchar();
+int Output_putchar( char c );
+int Output_putstr( char* str );
 
 #endif
 
--- a/Scan/BETKB/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/BETKB/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -43,11 +43,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -176,7 +171,7 @@
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( keyValue );
+				Macro_bufferAdd( keyValue );
 
 				// Only send data if enabled
 				if ( KeyIndex_Add_InputSignal )
@@ -222,7 +217,7 @@
 	}
 }
 
-// Send data 
+// Send data
 uint8_t scan_sendData( uint8_t dataPayload )
 {
 	// Enable the USART Transmitter
@@ -245,12 +240,12 @@
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
--- a/Scan/BETKB/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/BETKB/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/BETKB/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/BETKB/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h microswitch8304.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=betkb_ModifierMask
-	-DKEYINDEX_MASK=betkb_ColemakMap
-	#-DKEYINDEX_MASK=betkb_DefaultMap
-)
 
 
 ###
--- a/Scan/BudKeypad/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/BudKeypad/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -21,16 +21,8 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
 add_definitions(
 	-I${HEAD_DIR}/Scan/matrix
-)	
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=budkeypad_ModifierMask
-	#-DKEYINDEX_MASK=budkeypad_TheProfosistMap
-	-DKEYINDEX_MASK=budkeypad_DefaultMap
 )
 
 
--- a/Scan/DPH/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/DPH/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -114,11 +114,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 // Select mux
 #define SET_FULL_MUX(X) ((ADMUX) = (((ADMUX) & ~(FULL_MUX_MASK)) | ((X) & (FULL_MUX_MASK))))
 
@@ -198,7 +193,7 @@
 // ----- Functions -----
 
 // Initial setup for cap sense controller
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// TODO dfj code...needs cleanup + commenting...
 	setup_ADC();
@@ -282,7 +277,7 @@
 	// TODO
 #endif
 
-	// TODO all this code should probably be in scan_resetKeyboard
+	// TODO all this code should probably be in Scan_resetKeyboard
 	for ( int i = 0; i < total_strobes; ++i)
 	{
 		cur_keymap[i] = 0;
@@ -309,7 +304,7 @@
 
 // Main Detection Loop
 // This is where the important stuff happens
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	capsense_scan();
 
@@ -342,43 +337,15 @@
 
 	// Return non-zero if macro and USB processing should be delayed
 	// Macro processing will always run if returning 0
-	// USB processing only happens once the USB send timer expires, if it has not, scan_loop will be called
+	// USB processing only happens once the USB send timer expires, if it has not, Scan_loop will be called
 	//  after the macro processing has been completed
 	return 0;
 }
 
 
-// Reset Keyboard
-void scan_resetKeyboard( void )
-{
-	// Empty buffer, now that keyboard has been reset
-	KeyIndex_BufferUsed = 0;
-}
-
-
-// Send data to keyboard
-// NOTE: Only used for converters, since the scan module shouldn't handle sending data in a controller
-uint8_t scan_sendData( uint8_t dataPayload )
-{
-	return 0;
-}
-
-
-// Reset/Hold keyboard
-// NOTE: Only used for converters, not needed for full controllers
-void scan_lockKeyboard( void )
-{
-}
-
-// NOTE: Only used for converters, not needed for full controllers
-void scan_unlockKeyboard( void )
-{
-}
-
-
 // Signal KeyIndex_Buffer that it has been properly read
 // NOTE: Only really required for implementing "tricks" in converters for odd protocols
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	// Convenient place to clear the KeyIndex_Buffer
 	KeyIndex_BufferUsed = 0;
@@ -388,7 +355,7 @@
 
 // Signal KeyIndex_Buffer that it has been properly read and sent out by the USB module
 // NOTE: Only really required for implementing "tricks" in converters for odd protocols
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	return;
 }
@@ -864,7 +831,7 @@
 					// Only add the key to the buffer once
 					// NOTE: Buffer can easily handle multiple adds, just more efficient
 					//        and nicer debug messages :P
-					//bufferAdd( key );
+					//Macro_bufferAdd( key );
 				}
 
 				keys_debounce[key]++;
--- a/Scan/DPH/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/DPH/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,5 +1,5 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
+/* Copyright (C) 2013-2014 by Jacob Alexander
+ *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * License as published by the Free Software Foundation; either
@@ -46,18 +46,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/DPH/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/DPH/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -17,32 +17,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h avrcapsense.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=avrcapsense_ModifierMask
-	#-DKEYINDEX_MASK=avrcapsense_ColemakMap
-	-DKEYINDEX_MASK=avrcapsense_DefaultMap
-)
 
 
 ###
--- a/Scan/EpsonQX-10/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/EpsonQX-10/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -43,11 +43,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 #define setLED(id, status) \
 		status = status ? 0 : 1; \
 		scan_setLED( id, status )
@@ -72,16 +67,16 @@
 
 // ----- Function Declarations -----
 
-void scan_diagnostics( void );
+void Scan_diagnostics( void );
 void processKeyValue( uint8_t keyValue );
-void scan_diagnostics( void );
-void scan_setRepeatStart( uint8_t n );
-void scan_readSwitchStatus( void );
-void scan_repeatControl( uint8_t on );
-void scan_enableKeyboard( uint8_t enable );
-void scan_setRepeatRate( uint8_t n );
-void scan_setLED( uint8_t ledNumber, uint8_t on );
-void scan_readLED( void );
+void Scan_diagnostics( void );
+void Scan_setRepeatStart( uint8_t n );
+void Scan_readSwitchStatus( void );
+void Scan_repeatControl( uint8_t on );
+void Scan_enableKeyboard( uint8_t enable );
+void Scan_setRepeatRate( uint8_t n );
+void Scan_setLED( uint8_t ledNumber, uint8_t on );
+void Scan_readLED( void );
 
 
 
@@ -129,7 +124,7 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup Timer Pulse (16 bit)
 	// 16 MHz / (2 * Prescaler * (1 + OCR1A)) = 1204.8 baud (820 us)
@@ -183,7 +178,7 @@
 
 // Main Detection Loop
 // Nothing is required here with the Epson QX-10 Keyboards as the interrupts take care of the inputs
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	return 0;
 }
@@ -241,7 +236,7 @@
 				// Key isn't in the buffer yet
 				if ( c == KeyIndex_BufferUsed )
 				{
-					bufferAdd( keyValue );
+					Macro_bufferAdd( keyValue );
 					break;
 				}
 
@@ -293,14 +288,14 @@
 		// - Last 4 bits corresond to the KSC signals (P13, P12, P11, P10 respectively)
 		// Or, that can be read as, each key has it's own keycode (with NO release code)
 		// Modifiers are treated differently
-		
+
 		// Add the key to the buffer, if it isn't already in the current Key Buffer
 		for ( uint8_t c = 0; c < KeyIndex_BufferUsed + 1; c++ )
 		{
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( keyValue );
+				Macro_bufferAdd( keyValue );
 				break;
 			}
 
@@ -368,7 +363,7 @@
 
 // Send data
 // See below functions for the input sequences for the Epson QX-10 Keyboard
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	// Debug
 	char tmpStr[6];
@@ -380,7 +375,7 @@
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-inline void scan_finishedWithBuffer( uint8_t sentKeys )
+inline void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	return;
 }
@@ -392,7 +387,7 @@
 //
 // However, this differentiation causes complications on how the key signals are discarded and used
 // The single keypresses must be discarded immediately, while the modifiers must be kept
-inline void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+inline void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	uint8_t foundModifiers = 0;
 
@@ -423,12 +418,12 @@
 // Reset/Hold keyboard
 // Warning! This will cause the keyboard to not send any data, so you can't disable with a keypress
 // The Epson QX-10 Keyboards have a command used to lock the keyboard output
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 	scan_enableKeyboard( 0x00 );
 }
 
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 	scan_enableKeyboard( 0x01 );
 }
@@ -440,7 +435,7 @@
 // - Sets repeat start time (500 ms)
 // - Sets repeat interval (50 ms)
 // - Turns off all LEDs
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Reset command for the QX-10 Keyboard
 	scan_sendData( 0xE0 );
@@ -451,11 +446,11 @@
 
 // TODO Check
 // Runs Diagnostics on the keyboard
-// - First does a reset (see scan_resetKeyboard)
+// - First does a reset (see Scan_resetKeyboard)
 // - Blinks all of the LEDs one after another
 // - Outputs 0x00 if no keys are pressed
 // - Outputs 0xFF if any keys are being pressed
-void scan_diagnostics( void )
+void Scan_diagnostics( void )
 {
 	// Send reset command with diagnositics
 	scan_sendData( 0xE7 );
@@ -465,7 +460,7 @@
 // Set Repeat Interval Start
 // 300 ms + n * 25 ms
 // Interval after which to start the repeated keys
-void scan_setRepeatStart( uint8_t n )
+void Scan_setRepeatStart( uint8_t n )
 {
 	// Send command
 	// Binary Representation: 000n nnnn
@@ -483,7 +478,7 @@
 // 101 - Left CTRL
 // 110 - GRPH SHIFT
 // 111 - Right CTRL
-void scan_readSwitchStatus( void )
+void Scan_readSwitchStatus( void )
 {
 	scan_sendData( 0x80 );
 }
@@ -492,7 +487,7 @@
 // Repeat Control
 // 0x00 Stops repeat function
 // 0x01 Enables repeat function
-void scan_repeatControl( uint8_t on )
+void Scan_repeatControl( uint8_t on )
 {
 	// Send command
 	// Binary Representation: 101X XXXn
@@ -504,7 +499,7 @@
 // Enable Sending Keyboard Data
 // 0x00 Stops keycode transmission
 // 0x01 Enables keycode transmission
-void scan_enableKeyboard( uint8_t enable )
+void Scan_enableKeyboard( uint8_t enable )
 {
 	// Send command
 	// Binary Representation: 110X XXXn
@@ -515,7 +510,7 @@
 // Set Repeat Interval
 // 30 ms + n * 5 ms
 // Period between sending each repeated key after the initial interval
-void scan_setRepeatRate( uint8_t n )
+void Scan_setRepeatRate( uint8_t n )
 {
 	// Send command
 	// Binary Representation: 001n nnnn
@@ -530,7 +525,7 @@
 //
 // 8 LEDs max (Note: 5 connected on my board, there is 1 position empty on the PCB for a total of 6)
 // 0 to 7 (0x0 to 0x7)
-void scan_setLED( uint8_t ledNumber, uint8_t on )
+void Scan_setLED( uint8_t ledNumber, uint8_t on )
 {
 	// Send command
 	// Binary Representation: 010l llln
@@ -564,7 +559,7 @@
 
 // Read LED Status
 // High priority data output (may overwrite some keycode data)
-void scan_readLED( void )
+void Scan_readLED( void )
 {
 	scan_sendData( 0x7F );
 }
--- a/Scan/EpsonQX-10/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/EpsonQX-10/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -48,18 +48,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/EpsonQX-10/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/EpsonQX-10/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h epsonqx10.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=epsonqx10_ModifierMask
-	-DKEYINDEX_MASK=epsonqx10_ColemakMap
-	#-DKEYINDEX_MASK=epsonqx10_DefaultMap
-)
 
 
 ###
--- a/Scan/FACOM6684/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/FACOM6684/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
+/* Copyright (C) 2013-2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -38,11 +38,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -105,7 +100,7 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the the USART interface for keyboard data input
 	
@@ -130,7 +125,7 @@
 
 
 // Main Detection Loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	// Remove any "released keys", this is delayed due to buffer release synchronization issues
 	for ( uint8_t c = 0; c < KeyBufferRemoveCount; c++ )
@@ -165,7 +160,7 @@
 		// Key isn't in the buffer yet
 		if ( c == KeyIndex_BufferUsed )
 		{
-			bufferAdd( keyValue );
+			Macro_bufferAdd( keyValue );
 			break;
 		}
 
@@ -206,7 +201,7 @@
 }
 
 // Send data 
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	// Debug
 	char tmpStr[6];
@@ -219,7 +214,7 @@
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	// Make sure we aren't in the middle of a receiving a new scancode
 	while ( KeyBufferCount != 0 );
@@ -276,7 +271,7 @@
 	// Add back lost keys, so they are processed on the next USB send
 	for ( ; key < prevBuffer; key++ )
 	{
-		bufferAdd( KeyIndex_Buffer[key] );
+		Macro_bufferAdd( KeyIndex_Buffer[key] );
 		info_print("Re-appending lost key after USB send...");
 	}
 
@@ -285,7 +280,7 @@
 	{
 		for ( uint8_t c = 0; c < latched; c++ )
 		{
-			bufferAdd( latchBuffer[c] );
+			Macro_bufferAdd( latchBuffer[c] );
 		}
 	}
 
@@ -293,23 +288,23 @@
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the FACOM6684
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
 // NOTE: Does nothing with the FACOM6684
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Not a calculated valued...
 	_delay_ms( 50 );
--- a/Scan/FACOM6684/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/FACOM6684/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
+/* Copyright (C) 2013-2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/FACOM6684/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/FACOM6684/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2013 for the Kiibohd Controller
+# Written by Jacob Alexander in 2013,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h facom6684.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=facom6684_ModifierMask
-	-DKEYINDEX_MASK=facom6684_ColemakMap
-	#-DKEYINDEX_MASK=facom6684_DefaultMap
-)
 
 
 ###
--- a/Scan/HP150/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/HP150/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -52,11 +52,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -110,7 +105,7 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup Timer Pulse (16 bit)
 
@@ -145,7 +140,7 @@
 // We are looking for a start of packet
 // If detected, all subsequent bits are then logged into a variable
 // Once the end of the packet has been detected (always the same length), decode the pressed keys
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	// Only use as a valid signal
 	// Check if there was a position change
@@ -181,7 +176,7 @@
 
 				// No duplicate keys, add it to the buffer
 				if ( c == KeyIndex_BufferUsed )
-					bufferAdd( positionCounter );
+					Macro_bufferAdd( positionCounter );
 			}
 		}
 		// Remove the key from the buffer
@@ -245,34 +240,34 @@
 }
 
 // Send data 
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	return 0;
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the HP150
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
 // NOTE: Does nothing with the HP150
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	info_print("Attempting to synchronize the keyboard, do not press any keys...");
 	errorLED( 1 );
--- a/Scan/HP150/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/HP150/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/HP150/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/HP150/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h microswitch8304.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=hp150_ModifierMask
-	-DKEYINDEX_MASK=hp150_ColemakMap
-	#-DKEYINDEX_MASK=hp150_DefaultMap
-)
 
 
 ###
--- a/Scan/HeathZenith/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/HeathZenith/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -21,16 +21,8 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
 add_definitions(
 	-I${HEAD_DIR}/Scan/matrix
-)	
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=heathzenith_ModifierMask
-	-DKEYINDEX_MASK=heathzenith_DefaultMap
-	#-DKEYINDEX_MASK=heathzenith_ColemakMap
 )
 
 
--- a/Scan/IBMConvertible/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/IBMConvertible/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2012 for the Kiibohd Controller
+# Written by Jacob Alexander in 2012,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -21,16 +21,8 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
 add_definitions(
 	-I${HEAD_DIR}/Scan/matrix
-)	
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=ibmconv_ModifierMask
-	#-DKEYINDEX_MASK=ibmconv_DefaultMap
-	-DKEYINDEX_MASK=ibmconv_ColemakMap
 )
 
 
--- a/Scan/Kaypro1/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Kaypro1/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011-2013 by Jacob Alexander
- * 
+/* Copyright (C) 2011-2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -39,11 +39,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -66,10 +61,10 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the the USART interface for keyboard data input
-	
+
 	// Setup baud rate
 	// 16 MHz / ( 16 * Baud ) = UBRR
 	// Baud <- 3.358 ms per bit, thus 1000 / 3.358 = 297.80
@@ -92,7 +87,7 @@
 // Nothing is needed here for the Kaypro, but the function is available as part of the api to be called in a polling fashion
 // TODO
 //  - Add songs :D
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	// We *could* do extra offline processing here, but, it's not really needed for the Kaypro 1 keyboard
 	return 0;
@@ -126,7 +121,7 @@
 	case 0x09: // ^I
 	case 0x0D: // ^M
 	case 0x1B: // ^[
-		bufferAdd( keyValue );
+		Macro_bufferAdd( keyValue );
 		break;
 	// 0x40 Offset Keys
 	// Add Ctrl key and offset to the lower alphabet
@@ -135,8 +130,8 @@
 	case 0x1D: // ^]
 	case 0x1E: // ^^
 	case 0x1F: // ^_
-		bufferAdd( 0xF6 );
-		bufferAdd( keyValue + 0x40 );
+		Macro_bufferAdd( 0xF6 );
+		Macro_bufferAdd( keyValue + 0x40 );
 		break;
 
 	// - Add Shift key and offset to non-shifted key -
@@ -145,73 +140,73 @@
 	case 0x23: // #
 	case 0x24: // $
 	case 0x25: // %
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x10 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x10 );
 		break;
 	// 0x11 Offset Keys
 	case 0x26: // &
 	case 0x28: // (
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x11 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x11 );
 		break;
 	// 0x07 Offset Keys
 	case 0x29: // )
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x07 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x07 );
 		break;
 	// -0x0E Offset Keys
 	case 0x40: // @
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x0E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x0E );
 		break;
 	// 0x0E Offset Keys
 	case 0x2A: // *
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x0E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x0E );
 		break;
 	// 0x12 Offset Keys
 	case 0x2B: // +
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x12 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x12 );
 		break;
 	// 0x05 Offset Keys
 	case 0x22: // "
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x05 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x05 );
 		break;
 	// 0x01 Offset Keys
 	case 0x3A: // :
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x01 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x01 );
 		break;
 	// -0x10 Offset Keys
 	case 0x3C: // <
 	case 0x3E: // >
 	case 0x3F: // ?
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x10 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x10 );
 		break;
 	// -0x28 Offset Keys
 	case 0x5E: // ^
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x28 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x28 );
 		break;
 	// -0x32 Offset Keys
 	case 0x5F: // _
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x32 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x32 );
 		break;
 	// -0x20 Offset Keys
 	case 0x7B: // {
 	case 0x7C: // |
 	case 0x7D: // }
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x20 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x20 );
 		break;
 	// -0x1E Offset Keys
 	case 0x7E: // ~
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x1E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x1E );
 		break;
 	// All other keys
 	default:
@@ -226,8 +221,8 @@
 		// Add Ctrl key and offset to the lower alphabet
 		if ( keyValue >= 0x00 && keyValue <= 0x1F )
 		{
-			bufferAdd( 0xF6 );
-			bufferAdd( keyValue + 0x60 );
+			Macro_bufferAdd( 0xF6 );
+			Macro_bufferAdd( keyValue + 0x60 );
 		}
 
 		// Shift Characters are from 0x41 to 0x59
@@ -235,14 +230,14 @@
 		// Add Shift key and offset to the lower alphabet
 		else if ( keyValue >= 0x41 && keyValue <= 0x5A )
 		{
-			bufferAdd( 0xF5 );
-			bufferAdd( keyValue + 0x20 );
+			Macro_bufferAdd( 0xF5 );
+			Macro_bufferAdd( keyValue + 0x20 );
 		}
 
 		// Everything else
 		else
 		{
-			bufferAdd( keyValue );
+			Macro_bufferAdd( keyValue );
 		}
 		break;
 	}
@@ -274,35 +269,35 @@
 }
 
 // Send data
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	UDR1 = dataPayload;
 	return 0;
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the BETKB
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
 // NOTE: Does nothing with the BETKB
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 }
 
--- a/Scan/Kaypro1/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Kaypro1/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011-2013 by Jacob Alexander
- * 
+/* Copyright (C) 2011-2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/Kaypro1/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Kaypro1/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,14 +19,6 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=kaypro1_ModifierMask
-	#-DKEYINDEX_MASK=kaypro1_ColemakMap
-	-DKEYINDEX_MASK=kaypro1_DefaultMap
-)
 
 
 ###
--- a/Scan/MBC-55X/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MBC-55X/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
+/* Copyright (C) 2013,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -38,11 +38,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -101,7 +96,7 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_) // AVR
 {
 	// Setup the the USART interface for keyboard data input
@@ -183,7 +178,7 @@
 
 
 // Main Detection Loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	return 0;
 }
@@ -207,7 +202,7 @@
 	case 0x09: // ^I
 	case 0x0D: // ^M
 	case 0x1B: // ^[
-		bufferAdd( keyValue );
+		Macro_bufferAdd( keyValue );
 		break;
 	// 0x40 Offset Keys
 	// Add Ctrl key and offset to the lower alphabet
@@ -216,8 +211,8 @@
 	case 0x1D: // ^]
 	case 0x1E: // ^^
 	case 0x1F: // ^_
-		bufferAdd( 0xF6 );
-		bufferAdd( keyValue + 0x40 );
+		Macro_bufferAdd( 0xF6 );
+		Macro_bufferAdd( keyValue + 0x40 );
 		break;
 
 	// - Add Shift key and offset to non-shifted key -
@@ -226,73 +221,73 @@
 	case 0x23: // #
 	case 0x24: // $
 	case 0x25: // %
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x10 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x10 );
 		break;
 	// 0x11 Offset Keys
 	case 0x26: // &
 	case 0x28: // (
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x11 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x11 );
 		break;
 	// 0x07 Offset Keys
 	case 0x29: // )
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x07 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x07 );
 		break;
 	// -0x0E Offset Keys
 	case 0x40: // @
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x0E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x0E );
 		break;
 	// 0x0E Offset Keys
 	case 0x2A: // *
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x0E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x0E );
 		break;
 	// 0x12 Offset Keys
 	case 0x2B: // +
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x12 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x12 );
 		break;
 	// 0x05 Offset Keys
 	case 0x22: // "
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x05 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x05 );
 		break;
 	// 0x01 Offset Keys
 	case 0x3A: // :
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue + 0x01 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue + 0x01 );
 		break;
 	// -0x10 Offset Keys
 	case 0x3C: // <
 	case 0x3E: // >
 	case 0x3F: // ?
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x10 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x10 );
 		break;
 	// -0x28 Offset Keys
 	case 0x5E: // ^
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x28 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x28 );
 		break;
 	// -0x32 Offset Keys
 	case 0x5F: // _
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x32 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x32 );
 		break;
 	// -0x20 Offset Keys
 	case 0x7B: // {
 	case 0x7C: // |
 	case 0x7D: // }
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x20 );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x20 );
 		break;
 	// -0x1E Offset Keys
 	case 0x7E: // ~
-		bufferAdd( 0xF5 );
-		bufferAdd( keyValue - 0x1E );
+		Macro_bufferAdd( 0xF5 );
+		Macro_bufferAdd( keyValue - 0x1E );
 		break;
 	// All other keys
 	default:
@@ -307,8 +302,8 @@
 		// Add Ctrl key and offset to the lower alphabet
 		if ( keyValue >= 0x00 && keyValue <= 0x1F )
 		{
-			bufferAdd( 0xF6 );
-			bufferAdd( keyValue + 0x60 );
+			Macro_bufferAdd( 0xF6 );
+			Macro_bufferAdd( keyValue + 0x60 );
 		}
 
 		// Shift Characters are from 0x41 to 0x59
@@ -316,14 +311,14 @@
 		// Add Shift key and offset to the lower alphabet
 		else if ( keyValue >= 0x41 && keyValue <= 0x5A )
 		{
-			bufferAdd( 0xF5 );
-			bufferAdd( keyValue + 0x20 );
+			Macro_bufferAdd( 0xF5 );
+			Macro_bufferAdd( keyValue + 0x20 );
 		}
 
 		// Everything else
 		else
 		{
-			bufferAdd( keyValue );
+			Macro_bufferAdd( keyValue );
 		}
 		break;
 	}
@@ -331,7 +326,7 @@
 
 // Send data
 // NOTE: Example only, MBC-55X cannot receive user data
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	// Debug
 	char tmpStr[6];
@@ -348,12 +343,12 @@
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	cli(); // Disable Interrupts
 
@@ -365,17 +360,17 @@
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the MBC-55x
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
 // NOTE: Does nothing with the MBC-55x
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Not a calculated valued...
 	_delay_ms( 50 );
--- a/Scan/MBC-55X/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MBC-55X/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2013 by Jacob Alexander
- * 
+/* Copyright (C) 2013,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/MBC-55X/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MBC-55X/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2013 for the Kiibohd Controller
+# Written by Jacob Alexander in 2013,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h facom6684.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=mbc55x_ModifierMask
-	#-DKEYINDEX_MASK=mbc55x_ColemakMap
-	-DKEYINDEX_MASK=mbc55x_DefaultMap
-)
 
 
 ###
--- a/Scan/MicroSwitch8304/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MicroSwitch8304/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -43,11 +43,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 #define UNSET_RESET()   RESET_DDR &= ~(1 << RESET_PIN)
 #define   SET_RESET()   RESET_DDR |=  (1 << RESET_PIN)
 
@@ -68,11 +63,11 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the the USART interface for keyboard data input
 	// NOTE: The input data signal needs to be inverted for the Teensy USART to properly work
-	
+
 	// Setup baud rate
 	// 16 MHz / ( 16 * Baud ) = UBRR
 	// Baud <- 0.82020 ms per bit, thus 1000 / 0.82020 = 1219.2
@@ -101,7 +96,7 @@
 
 // Main Detection Loop
 // Not needed for the Micro Switch 8304, this is just a busy loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	return 0;
 }
@@ -132,7 +127,7 @@
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( keyValue );
+				Macro_bufferAdd( keyValue );
 				break;
 			}
 
@@ -194,7 +189,7 @@
 // 0x9E sets echo scancode mode from (0x81 to 0xFF; translates to 0x01 to 0x7F)
 // Other echos: 0x15~0x19 send 0x15~0x19, 0x40 sends 0x40 (as well as 0x44,0x45, 0x80)
 // 0x8C Acks the keyboard and gets 0x70 sent back (delayed)
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	UDR1 = dataPayload;
 	return 0;
@@ -202,7 +197,7 @@
 
 // Signal KeyIndex_Buffer that it has been properly read
 // In the case of the Micro Switch 8304, we leave the buffer alone until more scancode data comes in
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	// We received a Clear code from the 8304, clear the buffer now that we've used it
 	if ( BufferReadyToClear )
@@ -213,25 +208,25 @@
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // Warning! This will cause the keyboard to not send any data, so you can't disable with a keypress
 // The Micro Switch 8304 has a dedicated reset line
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 	UNSET_RESET();
 }
 
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 	SET_RESET();
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Reset command for the 8304
 	scan_sendData( 0x92 );
--- a/Scan/MicroSwitch8304/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MicroSwitch8304/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/MicroSwitch8304/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/MicroSwitch8304/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h microswitch8304.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=microswitch8304_ModifierMask
-	-DKEYINDEX_MASK=microswitch8304_ColemakMap
-	#-DKEYINDEX_MASK=microswitch8304_DefaultMap
-)
 
 
 ###
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Scan/SKM67001/customSKM.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,119 @@
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __KEYMAP_H
+#define __KEYMAP_H
+
+// ----- Variables -----
+
+// Default 1-indexed key mappings
+static uint8_t DefaultMap_Lookup[] = {
+				0, // 0x00
+				KEY_1, // 0x01
+				KEY_Q, // 0x02
+				KEY_A, // 0x03
+				KEY_2, // 0x04
+				KEY_Z, // 0x05
+				KEY_W, // 0x06
+				KEY_S, // 0x07
+				KEY_3, // 0x08
+				KEY_X, // 0x09
+				KEY_E, // 0x0A
+				KEY_D, // 0x0B
+				KEY_4, // 0x0C
+				KEY_C, // 0x0D
+				KEY_R, // 0x0E
+				KEY_F, // 0x0F
+				KEY_5, // 0x10
+				KEY_V, // 0x11
+				KEY_T, // 0x12
+				KEY_G, // 0x13
+				KEY_6, // 0x14
+				KEY_B, // 0x15
+				KEY_Y, // 0x16
+				KEY_H, // 0x17
+				KEY_7, // 0x18
+				KEY_N, // 0x19
+				KEY_U, // 0x1A
+				KEY_J, // 0x1B
+				KEY_8, // 0x1C
+				KEY_M, // 0x1D
+				KEY_I, // 0x1E
+				KEY_K, // 0x1F
+				KEY_9, // 0x20
+				KEY_COMMA, // 0x21
+				KEY_O, // 0x22
+				KEY_L, // 0x23
+				KEY_0, // 0x24
+				KEY_PERIOD, // 0x25
+				KEY_P, // 0x26
+				KEY_SEMICOLON, // 0x27
+				KEY_MINUS, // 0x28
+				KEY_SLASH, // 0x29
+				KEY_LEFT_BRACE, // 0x2A (1/4)
+				KEY_QUOTE, // 0x2B
+				KEY_EQUAL, // 0x2C
+				KEY_RIGHT_BRACE, // 0x2D
+				0, // 0x2E
+				0, // 0x2F
+				KEY_TILDE, // 0x30
+				KEY_TAB, // 0x31
+				0, // 0x32
+				0, // 0x33
+				KEY_SHIFT, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_BACKSPACE, // 0x36
+				KEY_DELETE, // 0x37
+				KEY_CTRL, // 0x38 (MAR LEFT)
+				KEY_SPACE, // 0x39
+				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
+				0, // 0x3B
+				0, // 0x3C
+				KEY_ESC, // 0x3D (MAR REL)
+				0, // 0x3E (STORE)
+				0, // 0x3F (RECALL)
+				KEY_GUI, // 0x40 (CODE)
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48 (DEC TAB)
+				0, // 0x49 (SET TAB)
+				0, // 0x4A (TAB CLEAR)
+				0, // 0x4B (INDEX)
+				0, // 0x4C (RELOC)
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50 (REV INDEX)
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+};
+
+
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Scan/SKM67001/defaultMap.h	Sun Apr 06 11:49:27 2014 -0700
@@ -0,0 +1,121 @@
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included in
+ * all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+ * THE SOFTWARE.
+ */
+
+#ifndef __KEYMAP_H
+#define __KEYMAP_H
+
+// This file contains various key layouts for the SKM 67001 Keyboard from the Olympia Professional ES 105 Typewriter
+
+// ----- Variables -----
+
+// Default 1-indexed key mappings
+static uint8_t DefaultMap_Lookup[] = {
+				0, // 0x00
+				KEY_1, // 0x01
+				KEY_Q, // 0x02
+				KEY_A, // 0x03
+				KEY_2, // 0x04
+				KEY_Z, // 0x05
+				KEY_W, // 0x06
+				KEY_S, // 0x07
+				KEY_3, // 0x08
+				KEY_X, // 0x09
+				KEY_E, // 0x0A
+				KEY_D, // 0x0B
+				KEY_4, // 0x0C
+				KEY_C, // 0x0D
+				KEY_R, // 0x0E
+				KEY_F, // 0x0F
+				KEY_5, // 0x10
+				KEY_V, // 0x11
+				KEY_T, // 0x12
+				KEY_G, // 0x13
+				KEY_6, // 0x14
+				KEY_B, // 0x15
+				KEY_Y, // 0x16
+				KEY_H, // 0x17
+				KEY_7, // 0x18
+				KEY_N, // 0x19
+				KEY_U, // 0x1A
+				KEY_J, // 0x1B
+				KEY_8, // 0x1C
+				KEY_M, // 0x1D
+				KEY_I, // 0x1E
+				KEY_K, // 0x1F
+				KEY_9, // 0x20
+				KEY_COMMA, // 0x21
+				KEY_O, // 0x22
+				KEY_L, // 0x23
+				KEY_0, // 0x24
+				KEY_PERIOD, // 0x25
+				KEY_P, // 0x26
+				KEY_SEMICOLON, // 0x27
+				KEY_MINUS, // 0x28
+				KEY_SLASH, // 0x29
+				KEY_LEFT_BRACE, // 0x2A (1/4)
+				KEY_QUOTE, // 0x2B
+				KEY_EQUAL, // 0x2C
+				KEY_RIGHT_BRACE, // 0x2D
+				0, // 0x2E
+				0, // 0x2F
+				KEY_TILDE, // 0x30
+				KEY_TAB, // 0x31
+				0, // 0x32
+				0, // 0x33
+				KEY_SHIFT, // 0x34
+				KEY_ENTER, // 0x35
+				KEY_BACKSPACE, // 0x36
+				KEY_DELETE, // 0x37
+				KEY_CTRL, // 0x38 (MAR LEFT)
+				KEY_SPACE, // 0x39
+				KEY_ALT, // 0x3A (EXPRESS / MAR RIGHT)
+				0, // 0x3B
+				0, // 0x3C
+				KEY_ESC, // 0x3D (MAR REL)
+				0, // 0x3E (STORE)
+				0, // 0x3F (RECALL)
+				KEY_GUI, // 0x40 (CODE)
+				0, // 0x41
+				0, // 0x42
+				0, // 0x43
+				0, // 0x44
+				0, // 0x45
+				0, // 0x46
+				0, // 0x47
+				0, // 0x48 (DEC TAB)
+				0, // 0x49 (SET TAB)
+				0, // 0x4A (TAB CLEAR)
+				0, // 0x4B (INDEX)
+				0, // 0x4C (RELOC)
+				0, // 0x4D
+				0, // 0x4E
+				0, // 0x4F
+				0, // 0x50 (REV INDEX)
+				0, // 0x51
+				0, // 0x52
+				0, // 0x53
+				0, // 0x54
+				0, // 0x55
+};
+
+
+#endif
+
--- a/Scan/SKM67001/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SKM67001/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2012 for the Kiibohd Controller
+# Written by Jacob Alexander in 2012,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -21,18 +21,10 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
 add_definitions(
 	-I${HEAD_DIR}/Scan/matrix
 )
 
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=skm67001_ModifierMask
-	#-DKEYINDEX_MASK=skm67001_DefaultMap
-	-DKEYINDEX_MASK=skm67001_ColemakMap
-)
-
 
 ###
 # Compiler Family Compatibility
--- a/Scan/SonyNEWS/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyNEWS/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -48,11 +48,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -66,10 +61,10 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the the USART interface for keyboard data input
-	
+
 	// Setup baud rate
 	// 16 MHz / ( 16 * Baud ) = UBRR
 	// Baud <- 0.10450 ms per bit, thus 1000 / 0.10450 = 9569.4
@@ -105,7 +100,7 @@
 
 // Main Detection Loop
 // Not needed for the Sony NEWS, this is just a busy loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	return 0;
 }
@@ -158,7 +153,7 @@
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( keyValue );
+				Macro_bufferAdd( keyValue );
 				break;
 			}
 
@@ -193,7 +188,7 @@
 }
 
 // Send data to keyboard
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	// Debug
 	char tmpStr[6];
@@ -206,29 +201,29 @@
 
 // Signal KeyIndex_Buffer that it has been properly read
 // Not needed as a signal is sent to remove key-presses
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	return;
 }
 
 // Reset/Hold keyboard TODO
 // Warning! This will cause the keyboard to not send any data, so you can't disable with a keypress
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Empty buffer, now that keyboard has been reset
 	KeyIndex_BufferUsed = 0;
 }
 
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	return;
 }
--- a/Scan/SonyNEWS/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyNEWS/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -48,18 +48,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/SonyNEWS/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyNEWS/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,32 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h sonynews.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=sonynews_ModifierMask
-	#-DKEYINDEX_MASK=sonynews_ColemakMap
-	-DKEYINDEX_MASK=sonynews_DefaultMap
-)
 
 
 ###
--- a/Scan/SonyOA-S3400/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyOA-S3400/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -130,11 +130,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -158,7 +153,7 @@
 
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the external interrupts for
 	// - General keypresses     (INT6/E6) ->         rising edge (to detect key       release)
@@ -221,7 +216,7 @@
 // Not needed for the Sony OA-S3400 as signals are interrupt based, thus this is a busy loop
 // XXX Function is used for scanning troublesome keys, technically this is not needed for a pure converter
 //     I just want proper use of the shift and shift lock keys, without having to do major rework to attach to the entire matrix
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	// Loop through known keys
 	for ( uint8_t key = 0; key < MANUAL_SCAN_KEYS; key++ ) switch ( key )
@@ -437,7 +432,7 @@
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( keyValue );
+				Macro_bufferAdd( keyValue );
 				break;
 			}
 
@@ -498,7 +493,7 @@
 // Send data to keyboard
 // Sony OA-S3400 has no serial/parallel dataport to send data too...
 // Using this function for LED enable/disable
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	switch ( dataPayload )
 	{
@@ -517,23 +512,23 @@
 
 // Signal KeyIndex_Buffer that it has been properly read
 // Not needed as a signal is sent to remove key-presses
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	return;
 }
 
 // Reset/Hold keyboard
 // Sony OA-S3400 has no locking signals
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Empty buffer, now that keyboard has been reset
 	KeyIndex_BufferUsed = 0;
@@ -549,7 +544,7 @@
 
 // USB module is finished with buffer
 // Not needed as a signal is sent to remove key-presses
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	return;
 }
--- a/Scan/SonyOA-S3400/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyOA-S3400/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/SonyOA-S3400/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/SonyOA-S3400/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2012 for the Kiibohd Controller
+# Written by Jacob Alexander in 2012,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,31 +19,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=sonyoas3400_ModifierMask
-	-DKEYINDEX_MASK=sonyoas3400_ColemakMap
-	#-DKEYINDEX_MASK=sonyoas3400_DefaultMap
-)
 
 
 ###
--- a/Scan/Tandy1000/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Tandy1000/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -60,9 +60,6 @@
 #define UNSET_INTR()  INTR_DDR &= ~(1 << INTR_PIN)
 #define   SET_INTR()  INTR_DDR |=  (1 << INTR_PIN)
 
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
 
 
 // ----- Variables -----
@@ -81,10 +78,10 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Initially reset the keyboard (just in case we are in a wierd state)
-	scan_resetKeyboard();
+	Scan_resetKeyboard();
 
 	// Setup SPI for data input using the clock and data inputs
 	// TODO
@@ -108,7 +105,7 @@
 
 
 // Main Detection Loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	/*
 	// Packet Read
@@ -223,37 +220,37 @@
 
 // Send data
 // XXX Not used with the Tandy1000
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	return 0;
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
 // TODO
-void scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 }
 
 // Reset/Hold keyboard
 // Warning! This will cause the keyboard to not send any data, so you can't disable with a keypress
 // The Tandy 1000 keyboard has a dedicated hold/processor interrupt line
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 	UNSET_INTR();
 }
 
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 	SET_INTR();
 }
 
 // Reset Keyboard
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// TODO Tandy1000 has a dedicated reset line
 }
--- a/Scan/Tandy1000/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Tandy1000/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2011 by Jacob Alexander
- * 
+/* Copyright (C) 2011,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -49,18 +49,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/Tandy1000/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/Tandy1000/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -19,14 +19,6 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=tandy1000_ModifierMask
-	-DKEYINDEX_MASK=tandy1000_ColemakMap
-	#-DKEYINDEX_MASK=tandy1000_DefaultMap
-)
 
 
 ###
--- a/Scan/UnivacF3W9/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/UnivacF3W9/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -56,11 +56,6 @@
 #define REQUEST_DATA()  REQUEST_DDR &= ~(1 << REQUEST_PIN) // Start incoming keyboard transfer
 #define    STOP_DATA()  REQUEST_DDR |=  (1 << REQUEST_PIN) // Stop incoming keyboard data
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -90,7 +85,7 @@
 // To be nice, we wait a little bit after powering on, and dump any of the pending keyboard data.
 // Afterwards (as long as no keys were being held), the keyboard should have a clean buffer, and be ready to go.
 // (Even if keys were held down, everything should probably still work...)
-inline void scan_setup()
+inline void Scan_setup()
 {
 	// Setup the DATA pin
 	DATA_DDR  &= ~(1 << DATA_PIN); // Set to input
@@ -109,7 +104,7 @@
 
 	// Reset the keyboard before scanning, we might be in a wierd state
 	_delay_ms( 50 );
-	//scan_resetKeyboard();
+	//Scan_resetKeyboard();
 
 	// Message
 	info_print("Keyboard Buffer Flushed");
@@ -119,9 +114,9 @@
 // Main Detection Loop
 // The Univac-Sperry F3W9 has a convenient feature, an internal 8 key buffer
 // This buffer is only emptied (i.e. sent over the bus) when the REQUEST line is held high
-// Because of this, we can utilize the scan_loop to do all of the critical processing,
+// Because of this, we can utilize the Scan_loop to do all of the critical processing,
 //  without having to resort to interrupts, giving the data reading 100% of the CPU.
-// This is because the USB interrupts can wait until the scan_loop is finished to continue.
+// This is because the USB interrupts can wait until the Scan_loop is finished to continue.
 //
 // Normally, this approach isn't taken, as it's easier/faster/safer to use Teensy hardware shift registers
 //  for serial data transfers.
@@ -133,7 +128,7 @@
 // Output and /Output (NOT'ted version).
 // Not really useful here, but could be used for error checking, or eliminating an external NOT gate if
 //  we were using (but can't...) a hardware decoder like a USART.
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	return 0;
 	// Protocol Notes:
@@ -308,27 +303,27 @@
 	switch ( scanCode )
 	{
 	default:
-		//bufferAdd( scanCode ); TODO - Uncomment when ready for USB output
+		//Macro_bufferAdd( scanCode ); TODO - Uncomment when ready for USB output
 		break;
 	}
 }
 
 // Send data
 // NOTE: Does nothing with the Univac-Sperry F3W9
-uint8_t scan_sendData( uint8_t dataPayload )
+uint8_t Scan_sendData( uint8_t dataPayload )
 {
 	return 0;
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-inline void scan_finishedWithBuffer( uint8_t sentKeys )
+inline void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	return;
 }
 
 // Signal that the keys have been properly sent over USB
 // TODO
-inline void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+inline void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	/*
 	uint8_t foundModifiers = 0;
@@ -352,12 +347,12 @@
 
 // Reset/Hold keyboard
 // NOTE: Does nothing with the Univac-Sperry F3W9
-void scan_lockKeyboard( void )
+void Scan_lockKeyboard( void )
 {
 }
 
 // NOTE: Does nothing with the Univac-Sperry F3W9
-void scan_unlockKeyboard( void )
+void Scan_unlockKeyboard( void )
 {
 }
 
@@ -365,7 +360,7 @@
 // - Holds the input read line high to flush the buffer
 // - This does not actually reset the keyboard, but always seems brings it to a sane state
 // - Won't work fully if keys are being pressed done at the same time
-void scan_resetKeyboard( void )
+void Scan_resetKeyboard( void )
 {
 	// Initiate data request line, but don't read the incoming data
 	REQUEST_DATA();
--- a/Scan/UnivacF3W9/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/UnivacF3W9/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -1,15 +1,15 @@
-/* Copyright (C) 2012 by Jacob Alexander
- * 
+/* Copyright (C) 2012,2014 by Jacob Alexander
+ *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
  * in the Software without restriction, including without limitation the rights
  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  * copies of the Software, and to permit persons to whom the Software is
  * furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included in
  * all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@@ -48,18 +48,18 @@
 // ----- Functions -----
 
 // Functions used by main.c
-void scan_setup( void );
-uint8_t scan_loop( void );
+void Scan_setup( void );
+uint8_t Scan_loop( void );
 
 
 // Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
+uint8_t Scan_sendData( uint8_t dataPayload );
 
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_lockKeyboard( void );
+void Scan_unlockKeyboard( void );
+void Scan_resetKeyboard( void );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/UnivacF3W9/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/UnivacF3W9/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2012 for the Kiibohd Controller
+# Written by Jacob Alexander in 2012,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -17,32 +17,8 @@
 
 
 ###
-# Module H files
-#
-set( SCAN_HDRS
-	scan_loop.h
-)
-
-
-###
-# File Dependency Setup
-#
-ADD_FILE_DEPENDENCIES( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( scan_loop.c ${SCAN_HDRS} )
-#add_file_dependencies( macro.c keymap.h epsonqx10.h )
-
-
-###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-#| Keymap Settings
-add_definitions(
-	-DMODIFIER_MASK=univacf3w9_ModifierMask
-	-DKEYINDEX_MASK=univacf3w9_ColemakMap
-	#-DKEYINDEX_MASK=univacf3w9_DefaultMap
-)
 
 
 ###
--- a/Scan/matrix/scan_loop.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/matrix/scan_loop.c	Sun Apr 06 11:49:27 2014 -0700
@@ -26,6 +26,7 @@
 
 // Project Includes
 #include <led.h>
+#include <macro.h>
 #include <print.h>
 
 // Local Includes
@@ -47,11 +48,6 @@
 
 // ----- Macros -----
 
-// Make sure we haven't overflowed the buffer
-#define bufferAdd(byte) \
-		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
-			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
-
 
 
 // ----- Variables -----
@@ -63,7 +59,7 @@
 
 
 // Keeps track of the number of scans, so we only do a debounce assess when it would be valid (as it throws away data)
-uint8_t scan_count = 0;
+uint8_t Scan_count = 0;
 
 // This is where the matrix scan data is held, as well as debouncing is evaluated to, which (depending on the read value) is handled
 //  by the macro module
@@ -74,24 +70,24 @@
 // ----- Functions -----
 
 // Setup
-inline void scan_setup()
+inline void Scan_setup()
 {
 	matrix_pinSetup( (uint8_t*)matrix_pinout, scanMode );
 }
 
 // Main Detection Loop
-inline uint8_t scan_loop()
+inline uint8_t Scan_loop()
 {
 	// Check count to see if the sample threshold may have been reached, otherwise collect more data
-	if ( scan_count < MAX_SAMPLES )
+	if ( Scan_count < MAX_SAMPLES )
 	{
 		matrix_scan( (uint8_t*)matrix_pinout, KeyIndex_Array );
 
 		// scanDual requires 2 passes, and thus needs more memory per matrix_scan pass
 #if scanMode == scanDual
-		scan_count += 2;
+		Scan_count += 2;
 #else
-		scan_count++;
+		Scan_count++;
 #endif
 
 		// Signal Main Detection Loop to continue scanning
@@ -99,7 +95,7 @@
 	}
 
 	// Reset Sample Counter
-	scan_count = 0;
+	Scan_count = 0;
 
 	// Assess debouncing sample table
 	// Loop over all of the sampled keys of the given array
@@ -108,9 +104,8 @@
 	for ( uint8_t key = 1; key < KeyIndex_Size + 1; key++ ) if ( ( KeyIndex_Array[key] & ~(1 << 7) ) > SAMPLE_THRESHOLD )
 	{
 		// Debug output (keypress detected)
-		char tmpStr[6];
-		hexToStr( key, tmpStr );
-		dPrintStrs( tmpStr, " " );
+		printHex( key );
+		print(" ");
 
 		// Add the key to the buffer, if it isn't already in the current Key Buffer
 		for ( uint8_t c = 0; c < KeyIndex_BufferUsed + 1; c++ )
@@ -118,7 +113,7 @@
 			// Key isn't in the buffer yet
 			if ( c == KeyIndex_BufferUsed )
 			{
-				bufferAdd( key );
+				Macro_bufferAdd( key );
 				break;
 			}
 
@@ -160,23 +155,16 @@
 }
 
 
-// Signal that the keys have been properly sent over USB
-inline void scan_finishedWithUSBBuffer( uint8_t sentKeys )
+// Signal that the USB keycodes have been properly sent through the Output Module
+inline void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 {
 	return;
 }
 
 
-// Signal KeyIndex_Buffer that it has been fully scanned using the macro module
-inline void scan_finishedWithBuffer( uint8_t sentKeys )
+// Signal KeyIndex_Buffer that it has been fully processed using the macro module
+inline void Scan_finishedWithBuffer( uint8_t sentKeys )
 {
 	return;
 }
 
-// Send data to keyboard
-// Not used in this module
-uint8_t scan_sendData( uint8_t dataPayload )
-{
-	return 0;
-}
-
--- a/Scan/matrix/scan_loop.h	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/matrix/scan_loop.h	Sun Apr 06 11:49:27 2014 -0700
@@ -56,18 +56,12 @@
 
 // ----- Functions -----
 
-void scan_setup( void );
-uint8_t scan_loop( void );
-
+void    Scan_setup( void );
+uint8_t Scan_loop( void );
 
-// Functions available to macro.c
-uint8_t scan_sendData( uint8_t dataPayload );
-
-void scan_finishedWithBuffer( uint8_t sentKeys );
-void scan_finishedWithUSBBuffer( uint8_t sentKeys );
-void scan_lockKeyboard( void );
-void scan_unlockKeyboard( void );
-void scan_resetKeyboard( void );
+// Callbacks from the Macro and Output modules (useful with difficult protocols)
+void Scan_finishedWithBuffer( uint8_t sentKeys );
+void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
 
 
 #endif // __SCAN_LOOP_H
--- a/Scan/matrix/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/Scan/matrix/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2011 for the Kiibohd Controller
+# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -27,12 +27,6 @@
 ###
 # Module Specific Options
 #
-add_definitions( -I${HEAD_DIR}/Keymap )
-
-add_definitions(
-	#-DMODIFIER_MASK=
-	#-DKEYINDEX_MASK=
-)
 
 
 ###
--- a/main.c	Tue Apr 01 01:16:53 2014 -0700
+++ b/main.c	Sun Apr 06 11:49:27 2014 -0700
@@ -141,22 +141,21 @@
 	pinSetup();
 
 	// Enable CLI
-	init_cli();
+	CLI_init();
 
-	// Setup Output Module
-	output_setup();
+	// Setup Modules
+	Output_setup();
+	Macro_setup();
+	//scan_setup();
 
 	// Setup ISR Timer for flagging a kepress send to USB
 	usbTimerSetup();
 
-	// Setup the scanning module
-	//scan_setup();
-
 	// Main Detection Loop
 	while ( 1 )
 	{
 		// Process CLI
-		process_cli();
+		CLI_process();
 
 		// Acquire Key Indices
 		// Loop continuously until scan_loop returns 0
@@ -165,14 +164,14 @@
 		sei();
 
 		// Run Macros over Key Indices and convert to USB Keys
-		process_macros();
+		Macro_process();
 
 		// Send keypresses over USB if the ISR has signalled that it's time
 		if ( !sendKeypresses )
 			continue;
 
 		// Send USB Data
-		output_send();
+		Output_send();
 
 		// Clear sendKeypresses Flag
 		sendKeypresses = 0;
--- a/setup.cmake	Tue Apr 01 01:16:53 2014 -0700
+++ b/setup.cmake	Sun Apr 06 11:49:27 2014 -0700
@@ -20,18 +20,34 @@
 #| Please look at the {Scan,Macro,USB,Debug}/module.txt for information on the modules and how to create new ones
 
 ##| Deals with acquiring the keypress information and turning it into a key index
-set(  ScanModule  "SKM67001" )
+set(   ScanModule "SKM67001" )
 
-##| Uses the key index and potentially applies special conditions to it, mapping it to a usb key code
-set( MacroModule  "buffer"  )
+##| Provides the mapping functions for DefaultMap and handles any macro processing before sending to the OutputModule
+set(  MacroModule "PartialMap" )
 
 ##| Sends the current list of usb key codes through USB HID
-set( OutputModule  "pjrcUSB" )
+set( OutputModule "pjrcUSB" )
 
 ##| Debugging source to use, each module has it's own set of defines that it sets
-set( DebugModule   "full"    )
+set(  DebugModule "full" )
+
 
 
+###
+# Keymap Configuration
+#
+
+##| If there are multiple DefaultMaps, it is defined here. If, the specified DefaultMap is not found, defaultMap.h is used.
+set(   DefaultMap "kishsaver" )
+
+##| PartialMap combined keymap layering. The first keymap has the "least" precedence.
+set(  CombinedMap colemak capslock2ctrl )
+
+##| ParitalMaps available on top of the CombinedMap. If there are input conflicts, the last PartialMap takes precedence.
+set(  PartialMaps hhkbnav kbdctrl )
+
+##| MacroSets define extra capabilities that are not provided by the Scan or Output modules. Last MacroSet takes precedence.
+set(    MacroSets retype )
 
 
 ###
@@ -132,6 +148,11 @@
 PathPrepend( DEBUG_SRCS ${DebugModulePath} ${DEBUG_SRCS} )
 
 
+#| Default Map
+# TODO Add support for different defaultMaps
+configure_file( "${ScanModulePath}/defaultMap.h" defaultMap.h )
+
+
 #| Print list of all module sources
 message( STATUS "Detected Scan Module Source Files:" )
 message( "${SCAN_SRCS}" )