changeset 48:8eee22f99cae

Completing the BETKB support - Keyboard is fully functional - LED, Beeper, and keyboard input not yet implemented
author Jacob Alexander <triplehaata@gmail.com>
date Tue, 27 Mar 2012 00:04:43 -0400
parents 0ee2207c5919
children 37f0411655cd
files Keymap/betkb.h Macro/buffer/macro.c Scan/BETKB/scan_loop.c Scan/BETKB/scan_loop.h
diffstat 4 files changed, 307 insertions(+), 305 deletions(-) [+]
line wrap: on
line diff
--- a/Keymap/betkb.h	Mon Mar 26 19:02:46 2012 -0400
+++ b/Keymap/betkb.h	Tue Mar 27 00:04:43 2012 -0400
@@ -26,268 +26,268 @@
 
 
 // ----- Variables -----
-static uint8_t betkb_ModifierMask[] = { 0x48, 0x49, 0x4C, 0x4D, 0x45, 0x14 };
+static uint8_t betkb_ModifierMask[] = { 0x20, 0x2D, 0x2E, 0x30, 0x3E, 0x60 };
 
 static uint8_t betkb_DefaultMap[] = { 
-				KEY_TILDE, // 0x00
-				KEY_UP, // 0x01
+				0, // 0x00
+				0, // 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, // 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
-				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, // 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_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
+				KEY_ENTER, // 0x3D
+				KEY_RIGHT_GUI, // 0x3E
+				KEYPAD_1, // 0x3F
+				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
+				KEYPAD_5, // 0x76
+				KEYPAD_6, // 0x77
+				KEYPAD_2, // 0x78
+				KEYPAD_3, // 0x79
+				KEYPAD_0, // 0x7A
+				KEYPAD_00, // 0x7B
+				KEYPAD_ENTER, // 0x7C
+				0, // 0x7D
 				0, // 0x7E
-				KEY_DELETE, // 0x7F
+				0, // 0x7F
 };
 
 static uint8_t betkb_ColemakMap[] = {
-				KEY_TILDE, // 0x00
-				KEY_UP, // 0x01
+				0, // 0x00
+				0, // 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, // 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
-				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, // 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_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
+				KEY_ENTER, // 0x3D
+				KEY_RIGHT_GUI, // 0x3E
+				KEYPAD_1, // 0x3F
+				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
+				KEYPAD_5, // 0x76
+				KEYPAD_6, // 0x77
+				KEYPAD_2, // 0x78
+				KEYPAD_3, // 0x79
+				KEYPAD_0, // 0x7A
+				KEYPAD_00, // 0x7B
+				KEYPAD_ENTER, // 0x7C
+				0, // 0x7D
 				0, // 0x7E
-				KEY_DELETE, // 0x7F
+				0, // 0x7F
 };
 
 
--- a/Macro/buffer/macro.c	Mon Mar 26 19:02:46 2012 -0400
+++ b/Macro/buffer/macro.c	Tue Mar 27 00:04:43 2012 -0400
@@ -215,6 +215,7 @@
 	}
 	return 1;
 	*/
+	/*
 	// BudKeypad
 	// Is this a bootloader sequence key?
 	if ( !Bootloader_KeyDetected
@@ -240,6 +241,7 @@
 		Bootloader_ConditionState = 0;
 		erro_dPrint("Arg");
 	}
+	*/
 
 	return 0;
 }
--- a/Scan/BETKB/scan_loop.c	Mon Mar 26 19:02:46 2012 -0400
+++ b/Scan/BETKB/scan_loop.c	Tue Mar 27 00:04:43 2012 -0400
@@ -67,6 +67,7 @@
 // ----- Function Declarations -----
 
 void processKeyValue( uint8_t keyValue );
+void  removeKeyValue( uint8_t keyValue );
 
 
 
@@ -78,36 +79,37 @@
 	cli(); // Disable Interrupts
 
 	uint8_t keyValue = 0x00;
+	uint8_t keyState = 0x00;
 
-	// The interrupt is always for the first item of the packet set, reset the buffer
-	KeyIndex_BufferUsed = 0;
+	// Read the scancode packet from the USART (1st to 8th bits)
+	keyValue = UDR1;
 
-	// Only the first 7 bits have scancode data
-	// The last packet of the packet set has the 8th bit high, all the others are low
-	//
-	// Interrupts are too slow for the rest of the packet set, poll for the rest
-	while ( 1 )
-	{
-		// Read the raw packet from the USART
-		keyValue = UDR1;
+	// Read the release/press bit (9th bit) XXX Unnecessary, and wrong it seems, parity bit? or something else?
+	keyState = UCSR1B & 0x02;
+
+	// High bit of keyValue, also represents press/release
+	keyState = keyValue & 0x80 ? 0x00 : 0x02;
+
+	// Debug
+	char tmpStr[6];
+	hexToStr( keyValue & 0x7F, tmpStr );
 
-		// Debug
-		char tmpStr[6];
-		hexToStr( keyValue, tmpStr );
-		dPrintStrs( tmpStr, " " );
-
-		// Process the scancode
-		processKeyValue( keyValue );
+	// Process the scancode
+	switch ( keyState )
+	{
+	case 0x00: // Released
+		dPrintStrs( tmpStr, "R  " ); // Debug
 
-		// Last packet of the set
-		if ( keyValue & 0x80 )
-		{
-			dPrintStrs( "**" );
-			break;
-		}
+		// Remove key from press buffer
+		removeKeyValue( keyValue & 0x7F );
+		break;
 
-		// Delay enough so we don't run into the same packet (or the previous buffered packet)
-		_delay_us(10000);
+	case 0x02: // Pressed
+		dPrintStrs( tmpStr, "P " ); // Debug
+
+		// New key to process
+		processKeyValue( keyValue & 0x7F );
+		break;
 	}
 
 	sei(); // Re-enable Interrupts
@@ -156,23 +158,9 @@
 // TODO
 void processKeyValue( uint8_t keyValue )
 {
-	// Finalize output buffer
-	// Mask 8th bit
-	keyValue &= 0x7F;
-
 	// Interpret scan code
 	switch ( keyValue )
 	{
-	case 0x40: // Clear buffer command
-		info_print("CLEAR!");
-
-		BufferReadyToClear = 1;
-		break;
-	case 0x7F:
-		scan_lockKeyboard();
-		_delay_ms(3000);
-		scan_unlockKeyboard();
-
 	default:
 		// Make sure the key isn't already in the buffer
 		for ( uint8_t c = 0; c < KeyIndex_BufferUsed + 1; c++ )
@@ -192,6 +180,36 @@
 	}
 }
 
+void removeKeyValue( uint8_t keyValue )
+{
+	// Check for the released key, and shift the other keys lower on the buffer
+	uint8_t c;
+	for ( c = 0; c < KeyIndex_BufferUsed; c++ )
+	{
+		// Key to release found
+		if ( KeyIndex_Buffer[c] == keyValue )
+		{
+			// Shift keys from c position
+			for ( uint8_t k = c; k < KeyIndex_BufferUsed - 1; k++ )
+				KeyIndex_Buffer[k] = KeyIndex_Buffer[k + 1];
+
+			// Decrement Buffer
+			KeyIndex_BufferUsed--;
+
+			break;
+		}
+	}
+
+	// Error case (no key to release)
+	if ( c == KeyIndex_BufferUsed + 1 )
+	{
+		errorLED( 1 );
+		char tmpStr[6];
+		hexToStr( keyValue, tmpStr );
+		erro_dPrint( "Could not find key to release: ", tmpStr );
+	}
+}
+
 // Send data 
 uint8_t scan_sendData( uint8_t dataPayload )
 {
@@ -210,24 +228,6 @@
 // TODO
 void scan_finishedWithUSBBuffer( void )
 {
-	/*
-	uint8_t foundModifiers = 0;
-
-	// Look for all of the modifiers present, there is a max of 8 (but only keys for 5 on the HASCI version)
-	for ( uint8_t c = 0; c < KeyIndex_BufferUsed; c++ )
-	{
-		// The modifier range is from 0x80 to 0x8F (well, the last bit is the ON/OFF signal, but whatever...)
-		if ( KeyIndex_Buffer[c] <= 0x8F && KeyIndex_Buffer[c] >= 0x80 )
-		{
-			// Add the modifier back into the the Key Buffer
-			KeyIndex_Buffer[foundModifiers] = KeyIndex_Buffer[c];
-			foundModifiers++;
-		}
-	}
-
-	// Adjust the size of the new Key Buffer
-	KeyIndex_BufferUsed = foundModifiers;
-	*/
 }
 
 // Reset/Hold keyboard
--- a/Scan/BETKB/scan_loop.h	Mon Mar 26 19:02:46 2012 -0400
+++ b/Scan/BETKB/scan_loop.h	Tue Mar 27 00:04:43 2012 -0400
@@ -33,7 +33,7 @@
 
 // ----- Defines -----
 
-#define KEYBOARD_SIZE 0x100 // 255 - Size of the array space for the keyboard(max index)
+#define KEYBOARD_SIZE 0x7F // 127 - Size of the array space for the keyboard(max index)
 #define KEYBOARD_BUFFER 24 // Max number of key signals to buffer