;============================================================ ;== FTS-8 replacement (CTCSS encoder for Yaesu == ;== by Manfred Mornhinweg, may 2010 == ;============================================================ '============================== Pin definitions ============== ToneOut var porta.1 S1 var portb.0 S2 var portb.1 S3 var portb.2 S4 var portb.3 S5 var porta.2 S6 var porta.3 E var porta.4 'TX is fixed at MCLR '============================ variables ====================== Tnum var byte ;tone number from radio Frec var word ;tone frequency x 5 DEFINE OSC 20 ;trick compiler into thinking the crystal is 20MHz, to get better freq resolution. CMCON=7 ;disable comparators, enable digital functions on portA '=============Main============ ToneOff: if E=0 then goto ToneOff ;tones are disabled, just idle Tnum=S6 ;Read tone number, independent of pins Tnum=Tnum << 1 Tnum=Tnum+S5 Tnum=Tnum<<1 Tnum=Tnum+S4 Tnum=Tnum<<1 Tnum=Tnum+S3 Tnum=Tnum<<1 Tnum=Tnum+S2 Tnum=Tnum<<1 Tnum=Tnum+S1 Tnum=Tnum -20 ;Make first tone number zero Lookup2 Tnum, [487,457,442,427,412,398,385,372,359,335,1251,1209,1168,1128,1090,1053,1017,964,931,899,869,839,811,783,757,731,706,682,659,636,615,594,574,554,536,517,500,474,442,412,385,359,335],Frec Toneloop: FREQOUT Toneout,0, Frec goto Toneloop