Commits

Trammell Hudson  committed 52d9a17

Send USB keyboard events. It works!

  • Participants
  • Parent commits b31c025

Comments (0)

Files changed (3)

 			goto reset;
 		}
 
-		print(" ");
-		pchar(c);
+		//print(" ");
+		//pchar(c);
 		pchar('\n');
 		
-		//usb_keyboard_press(KEY_SPACE, 0);
+		const uint8_t modbit = c & 0x80 ? KEY_SHIFT : 0;
+		c &= ~0x80;
+		usb_keyboard_press(c, modbit);
 
 reset:
 		bits = 0;

File make-alphabet

 while (<DATA>)
 {
 	chomp;
-	my ($c,$m) = split;
+	my ($c,$m,$real) = split;
 	my $v = 1;
 
 	for my $b (split //, $m)
 		$v |= 1 if $b eq '-';
 	}
 
-	printf "\t[0x%04x] = '%s', // %s\n",
+	my $modbit = "";
+	if ($real)
+	{
+		$m = "$real $m";
+		$modbit = " | 0x80";
+	}
+
+	printf "\t[0x%04x] = KEY_%s%s, // %s\n",
 		$v,
 		$c,
+		$modbit,
 		$m,
 		;
 }
 8 ---..
 9 ----.
 0 -----
-. .-.-.-
-, --..--
-? ..--..
-' .----.
-! -.-.--
-/ -..-.
-( -.--.
-) -.--.-
-& .-...
-: ---...
-; -.-.-.
-= -..-
-+ .-.-.
-- -....-
-_ ..--.-
-" .-..-.
-$ ...-..-
-@ .--.-.
+PERIOD .-.-.-
+COMMA --..--
+SLASH ..--.. ?
+QUOTE .----.
+1 -.-.-- !
+SLASH -..-.
+9 -.--. (
+0 -.--.- )
+7 .-... &
+SEMICOLON ---... :
+SEMICOLON -.-.-.
+EQUAL -..-
+EQUAL .-.-. +
+MINUS -....-
+MINUS ..--.- _
+QUOTE .-..-. "
+4 ...-..- $
+2 .--.-. @
 static const uint8_t morse[] PROGMEM = {
-	[0x0005] = 'A', // .-
-	[0x0018] = 'B', // -...
-	[0x001a] = 'C', // -.-.
-	[0x000c] = 'D', // -..
-	[0x0002] = 'E', // .
-	[0x0012] = 'F', // ..-.
-	[0x000e] = 'G', // --.
-	[0x0010] = 'H', // ....
-	[0x0004] = 'I', // ..
-	[0x0017] = 'J', // .---
-	[0x000d] = 'K', // -.-
-	[0x0014] = 'L', // .-..
-	[0x0007] = 'M', // --
-	[0x0006] = 'N', // -.
-	[0x000f] = 'O', // ---
-	[0x0016] = 'P', // .--.
-	[0x001d] = 'Q', // --.-
-	[0x000a] = 'R', // .-.
-	[0x0008] = 'S', // ...
-	[0x0003] = 'T', // -
-	[0x0009] = 'U', // ..-
-	[0x0011] = 'V', // ...-
-	[0x000b] = 'W', // .--
-	[0x0019] = 'X', // -..-
-	[0x001b] = 'Y', // -.--
-	[0x001c] = 'Z', // --..
-	[0x002f] = '1', // .----
-	[0x0027] = '2', // ..---
-	[0x0023] = '3', // ...--
-	[0x0021] = '4', // ....-
-	[0x0020] = '5', // .....
-	[0x0030] = '6', // -....
-	[0x0038] = '7', // --...
-	[0x003c] = '8', // ---..
-	[0x003e] = '9', // ----.
-	[0x003f] = '0', // -----
-	[0x0055] = '.', // .-.-.-
-	[0x0073] = ',', // --..--
-	[0x004c] = '?', // ..--..
-	[0x005e] = '\'', // .----.
-	[0x006b] = '!', // -.-.--
-	[0x0032] = '/', // -..-.
-	[0x0036] = '(', // -.--.
-	[0x006d] = ')', // -.--.-
-	[0x0028] = '&', // .-...
-	[0x0078] = ':', // ---...
-	[0x006a] = ';', // -.-.-.
-	[0x0019] = '=', // -..-
-	[0x002a] = '+', // .-.-.
-	[0x0061] = '-', // -....-
-	[0x004d] = '_', // ..--.-
-	[0x0052] = '"', // .-..-.
-	[0x0089] = '$', // ...-..-
-	[0x005a] = '@', // .--.-.
+	[0x0005] = KEY_A, // .-
+	[0x0018] = KEY_B, // -...
+	[0x001a] = KEY_C, // -.-.
+	[0x000c] = KEY_D, // -..
+	[0x0002] = KEY_E, // .
+	[0x0012] = KEY_F, // ..-.
+	[0x000e] = KEY_G, // --.
+	[0x0010] = KEY_H, // ....
+	[0x0004] = KEY_I, // ..
+	[0x0017] = KEY_J, // .---
+	[0x000d] = KEY_K, // -.-
+	[0x0014] = KEY_L, // .-..
+	[0x0007] = KEY_M, // --
+	[0x0006] = KEY_N, // -.
+	[0x000f] = KEY_O, // ---
+	[0x0016] = KEY_P, // .--.
+	[0x001d] = KEY_Q, // --.-
+	[0x000a] = KEY_R, // .-.
+	[0x0008] = KEY_S, // ...
+	[0x0003] = KEY_T, // -
+	[0x0009] = KEY_U, // ..-
+	[0x0011] = KEY_V, // ...-
+	[0x000b] = KEY_W, // .--
+	[0x0019] = KEY_X, // -..-
+	[0x001b] = KEY_Y, // -.--
+	[0x001c] = KEY_Z, // --..
+	[0x002f] = KEY_1, // .----
+	[0x0027] = KEY_2, // ..---
+	[0x0023] = KEY_3, // ...--
+	[0x0021] = KEY_4, // ....-
+	[0x0020] = KEY_5, // .....
+	[0x0030] = KEY_6, // -....
+	[0x0038] = KEY_7, // --...
+	[0x003c] = KEY_8, // ---..
+	[0x003e] = KEY_9, // ----.
+	[0x003f] = KEY_0, // -----
+	[0x0055] = KEY_PERIOD, // .-.-.-
+	[0x0073] = KEY_COMMA, // --..--
+	[0x004c] = KEY_SLASH | 0x80, // ? ..--..
+	[0x005e] = KEY_QUOTE, // .----.
+	[0x006b] = KEY_1 | 0x80, // ! -.-.--
+	[0x0032] = KEY_SLASH, // -..-.
+	[0x0036] = KEY_9 | 0x80, // ( -.--.
+	[0x006d] = KEY_0 | 0x80, // ) -.--.-
+	[0x0028] = KEY_7 | 0x80, // & .-...
+	[0x0078] = KEY_SEMICOLON | 0x80, // : ---...
+	[0x006a] = KEY_SEMICOLON, // -.-.-.
+	[0x0019] = KEY_EQUAL, // -..-
+	[0x002a] = KEY_EQUAL | 0x80, // + .-.-.
+	[0x0061] = KEY_MINUS, // -....-
+	[0x004d] = KEY_MINUS | 0x80, // _ ..--.-
+	[0x0052] = KEY_QUOTE | 0x80, // " .-..-.
+	[0x0089] = KEY_4 | 0x80, // $ ...-..-
+	[0x005a] = KEY_2 | 0x80, // @ .--.-.
 };