Symbol Tone = 100 'sets
the tone frequency ( range 20 -127 )
Symbol Quiet = 0 'set
quiet tone
Symbol Dit_length = 7 'set length of a dot (7 milliseconds)- yields 10wpm
Symbol Dah_length = 21 'set length of a dash (21 mS = 3 dots long)
Symbol Wrd_Length = 86
'set space between words (43 mS = 2 dashes, 6 dots)
Symbol Character = b0 'set register for ch.
Symbol Index1 = b6 'loaded with number of chs. in message
Symbol Index2 = b2 'counts
the number of elements
Symbol Elements = b4 'set register for number of elements in ch.
Identify: '
routine to lookup ch.& put its value into the ch. register
for Index1 = 0 to 29 'cycle through lookup for times =
number of ch. in message
lookup
Index1,(0,1,0,1,0,0,100,0,2,0,129,0,129,0,3,0,132,0,35,0,67,0,195,0,4,0,0,1,0,1),Character
gosub Morse 'go
to the ch. generation routine
next 'loop back to get next ch. and
load it
goto
Start 'return to start to
wait for next input
Morse:
let Elements = Character & %00000111 'look at 3 LS digits and load into
Elements register
if Elements = 0 then Word_sp ' % means binary
Bang_Key:
for
Index2 = 1 to elements 'loop
through correct no. of times for number of elements
if Character >= 128
then Dah 'test MS digit of
ch. If it is 1 goto the Dah sub routine
goto Dit 'if it is 0 goto the Dit sub routine
Reenter:
let
Character = Character * 2 'do
a left shift on all the bits in ch.
next 'loop back to get the next
element
gosub Char_sp 'go to sub routine to put in
inter-ch. space
return 'return
to Identify routine to get next ch. to send
Dit:
sound 2,(Tone,Dit_Length) 'sound tone for dit length
sound
2,(Quiet,Dit_Length) 'silence
for dit length
goto Reenter 'return
to look at next element of ch.
Dah:
sound 2,(Tone,Dah_Length) 'sound tone for dah length
sound
2,(Quiet,Dit_Length) 'silence
for dit length
goto Reenter 'return to look at next element of ch.
Char_sp:
sound
2,(Quiet,Dah_Length) 'send
silence for dah length after ch.completely sent
return
'return to get next character
Word_sp:
sound
2,(Quiet,wrd_length) 'send
silence for break between words
return 'return
to get next ch.