On Fri, 6 Nov 1998, John Payson wrote: > |We could have several tables like this: > |Length 1: E T > |Length 2: A I M N > |Length 3: D G K O R S U W > |Length 4: B C F H J L P Q V X Y Z > |Length 5: 0 1 2 3 4 5 6 7 8 9 > > A simpler approach, if you use "1" for dash and "0" for dot is to > add a single "1" before or after the received symbol and pad the > rest with zeroes. Thus: > > E : 00000010 . > T : 00000011 _ > I : 00000100 .. > A : 00000101 ._ > N : 00000110 _. > M : 00000111 __ > S : 00001000 ... > O : 00001111 ___ > > etc. This will allow most (all?) symbols and prosigns other than the > standard distress call (...___...) to be handled with a single byte > compare (the number of symbols of length LESS THAN eight, counting the > null symbol, is equal to the number of symbols of length eight) I did this *many* years ago with an EPROM-based wide path state machine that latched the data back into the addresses. Dit's and dah's would be fed in as they occurred, which would drive the state machine to a successively narrower solution, until the ASCII would pop out the first 8 data bits. A detected inter-character space would reset the address latch and load the output data latch. No CPU at all - worked great. I don't recall how many EPROMS it took to create the state machine...but it doesn't matter, because I spent so much time building that thing so that I could cheat on the morse code portion of my Ham license exam that I didn't study and flunked the written part... -Will