Source

iambic / make-alphabet

Full commit
#!/usr/bin/perl
use warnings;
use strict;

print "static const uint8_t morse[] PROGMEM = {\n";

while (<DATA>)
{
	chomp;
	my ($c,$m) = split;
	my $v = 1;

	for my $b (split //, $m)
	{
		$v <<= 1;
		$v |= 1 if $b eq '-';
	}

	printf "\t[0x%04x] = '%s', // %s\n",
		$v,
		$c,
		$m,
		;
}

print "};\n";

__DATA__
A .-
B -...
C -.-.
D -..
E .
F ..-.
G --.
H ....
I ..
J .---
K -.-
L .-..
M --
N -.
O ---
P .--.
Q --.-
R .-.
S ...
T -
U ..-
V ...-
W .--
X -..-
Y -.--
Z --..
1 .----
2 ..---
3 ...--
4 ....-
5 .....
6 -....
7 --...
8 ---..
9 ----.
0 -----
. .-.-.-
, --..--
? ..--..
' .----.
! -.-.--
/ -..-.
( -.--.
) -.--.-
& .-...
: ---...
; -.-.-.
= -..-
+ .-.-.
- -....-
_ ..--.-
" .-..-.
$ ...-..-
@ .--.-.