A var byte B var byte C var byte D var INL.bit4 E var word F var byte G var byte H var byte I var byte J var byte Q var byte T var byte C = 0 I = 0 low 8 low 10 low 15 pause 1000 serout 15,$4054,[254,1,254] OUTH=%00000000 OUTL=%00000000 DIRH=%11111111 DIRL=%11100000 Begin: E = 0 : G = 0 : J = 0 Listen: if D = 0 then Listen T = INL & 00000111 C = C + 1 E = E + 1 if E>2000 then Begin lookup T,["D1234567890*#ABC"],Q lookup T,["0004030200010000"],J if C<16 then Lock serout 15,$4054,[254,1,254] C = 0 Lock: serout 15,$4054,[Q] gosub Time J = J - 48 if J = 0 then Begin if E = 1 and J = 1 then Key if E = 2 and J = 2 then Key if E = 3 and J = 3 then Key if E = 4 and J = 4 then Key goto Listen Key: G = G + 1 if E = 4 and J = 4 and G = 4 then Callsign goto Listen Callsign: high 10 I = I + 1 output 8 for H = 0 to 1 lookup H,[131,1],F gosub Code next pause 400 for H = 0 to 5 lookup H,[99,66,133,132,67,194],F gosub Code next pause 7000 if I < 3 then Callsign I = 0 : low 10 goto Begin Time: if D = 1 then Time return Code: A = F & %00000111 if A = 7 then Blue if A = 6 then Red Send: for B = 1 to A if F >= 128 then Dah goto Dit Digit: F = F * 2 next pause 230 return Blue: A = 6 goto Send Red: F = F & %11111011 goto Send Dit: freqout 8,72,1520 pause 72 goto Digit Dah: freqout 8,216,1520 pause 72 goto Digit