This could have interesting encoding. Drive it as FSM. It can be coded as one byte per encoded character(with shorter decoding than the last Morse code generator). MSBit as a dit/dah encoding leaving 7 bits for addressing next character with a few left over for "interchar" and other utility functions. dit/dah | Next state 7 6 - - 0 #define dit 0 #define dah 0x80 E: dit+&interchar N: dah+&E G: dah+&N P: dit+&G T: dah+&interchar A: dah+&T Organize as an upper case ascii representation this could be a very tight morse serial driver. w.. -- Walter Banks Byte Craft Limited 1 519 888 6911 http://www.bytecraft.com walter@bytecraft.com Barry Gershenfeld wrote: > As your morse code programs are getting smaller and smaller, they are in > danger of disappearing! This code trades efficiency for novelty. I saw > this idea at a ham club talk (in the '70's) and have been doing it this way > ever since. Since you guys use assembler more than anything else, I'll > post it that way. I do the same thing in other languages. > > ; Morse code, tree structured. > ; Example fragment assumes the basic elements have been previously defined: > > E: > call dit > goto interchar > > N: > call dah > goto E > > G: > call dah > goto N > > P: > call dit > goto G > > T: > call dah > goto interchar > > A: > call dit > goto T > > #pragma etc > ; the 'etc' directive writes the rest of the program for you! > > ; Barry > > -- > http://www.piclist.com PIC/SX FAQ & list archive > View/change your membership options at > http://mailman.mit.edu/mailman/listinfo/piclist -- http://www.piclist.com PIC/SX FAQ & list archive View/change your membership options at http://mailman.mit.edu/mailman/listinfo/piclist