here is the entire front end...

Code:
@  __config _CONFIG1, _INTRC_OSC_NOCLKOUT & _WDT_ON & _MCLRE_ON & _LVP_OFF & _CP_OFF

OSCCON = $70 'sets the oscillator speed
DEFINE OSC 8 'Oscillator speed in MHz

'http://www.picbasic.co.uk/forum/showthread.php?t=3251
INCLUDE "DT_INTS-14.bas"     ' Base Interrupt System
INCLUDE "ReEnterPBP.bas"     ' Include if using PBP interrupts

PORTA = %00000000 ' output logic at power-up
PORTB = %00000000 ' output logic at power-up
PORTC = %00000000 ' output logic at power-up
PORTD = %00000000 ' output logic at power-up
PORTE = %00000000 ' output logic at power-up

' Set up serial UART
define HSER_RCSTA 90H           ' Set Receive Status and control register
DEFINE HSER_TXSTA 24H           ' set transmit status and control register
DEFINE HSER_BAUD 19200          ' baud setting   19200  115200
define HSER_CLROERR 1           ' reset on serial buffer overflow

' Define Analog parameters
ADCON1 = %10000000          'Right Justify
ANSEL = %11111111           'Analog on for AN0-AN7
ANSELH = %00000000          'AN8-13 off

Define	ADC_BITS 10 	    ' Set number of bits in result
Define	ADC_CLOCK 3	        ' Set clock source (3=rc)
Define	ADC_SAMPLEUS 10	    ' Set sampling time in uS

' Alias pins  (0=Output, 1=Input)
L1      VAR PORTC.5 :TRISC.5 = 0
L2      VAR PORTD.2 :TRISD.2 = 0
L3      VAR PORTD.1 :TRISD.1 = 0
L4      VAR PORTD.0 :TRISD.0 = 0
L5      VAR PORTC.1 :TRISC.1 = 0

Sp      var PORTC.2 :TRISC.2 = 0  'pulsed signal 

S2      var PORTD.5 :TRISD.5 = 1 'mode switch - LCD Select Mode
S3      var PORTD.4 :TRISD.4 = 1 'mode switch - LCD Light 
S1      var PORTD.7 :TRISD.7 = 1 'mode switch - Plus 
S5      var PORTD.6 :TRISD.6 = 1 'mode switch - Minus 

S8      var PORTB.4 :TRISB.4 = 1 'Pelco-D board - Zoom
S11     var PORTB.5 :TRISB.5 = 1 'Peclo-D board - Zoom

S7      var PORTB.1 :TRISB.1 = 1 'RC board - Mast
S10     var PORTB.3 :TRISB.3 = 1 'RC board - Mast

S6      var PORTB.2 :TRISB.2 = 1 'Video Select

'Define RAM
i               var     byte
j               var     byte
RC_Mode         var     Bit  'Flag to switch back and forth from arm and drive funtions
S2_Rel          var     BIT  'flag to see if switch is realsed
S6_Rel          var     BIT  'flag to see if switch is realsed
Mode_Debug      var     bit  'Flag for LCD Debug Mode
Mode_Debug1     var     bit  'Flag for LCD Debug Mode
LCD_msg         var     byte 'Counter to reset LCD message Display
wsave           VAR     BYTE $70 SYSTEM 'value required for interupt
PreLoad         VAR     WORD 'Preload value for timer interupt
PreLoad =  21537 

JOY1X           var     word    ' Analog Values
JOY1Y           var     word
JOY2X           var     word
JOY2Y           var     word
P1              var     word
Battery         var     word    ' Battery voltage analog
Battery_r       var     word    ' battery voltage remainder
Batt_div        con     660     ' scaling value to get Volts
Batt_Alarm      con     480     ' approx 7.2V
Batt_Stop       con     430     ' approx 6.5V
Batt_stop1      var     byte
Batt_beep       var     byte
Lights_Last     var     BIT
Video_Mode      var     BYTE
Video_Changed   VAR     BYTE

JOY1X_Trim      var     Byte 'trim value 128 = neutral trim, 0=-128, 256=128
JOY1Y_Trim      var     Byte 
JOY2X_Trim      var     Byte 
JOY2Y_Trim      var     Byte 
Temp_Trim       var     BYTE

JOY1X_GainH     con 6  'Gain for High end of stick 50-130% (5-13)
JOY1X_GainL     con 6  'Gain for Low end of stick 50-130% (5-13)
JOY1Y_GainH     con 6
JOY1Y_GainL     con 6
JOY2X_GainH     con 6
JOY2X_GainL     con 6
JOY2Y_GainH     con 6
JOY2Y_GainL     con 6
P1_GainH        con 10
P1_GainL        con 10

JOY1X_Max       con 1400  'pan
JOY1X_Min       con 800   'pan
JOY1Y_Max       con 1400  'tilt
JOY1Y_Min       con 800   'tilt 
JOY2X_Max       con 1400 
JOY2X_Min       con 800
JOY2Y_Max       con 1400
JOY2Y_Min       con 800
P1_Max          con 1850  'Aux Tilt
P1_Min          con 450   'Aux Tilt

Pulse_Start     con     400 '400us - fudge: Pulse Start (high) + chan pulse (low) = Total chan pulse
chan_adj        con     9 'fudge factor for pulses (used a scope to come up with value)
Chan_Ctr        con     1100
Chan1           var     word 'Aile
Chan2           var     word 'Elev
Chan3           var     word 'Thro
Chan4           var     word 'Rudd
Chan5           var     word 'Gear
Chan6           var     word 'Aux1
Chan7           var     word 'Aux2
Chan8           var     word 'Aux3
Chan1f          var     word 'Aile
Chan2f          var     word 'Elev
Chan3f          var     word 'Thro
Chan4f          var     word 'Rudd
Chan5f          var     word 'Gear
Chan6f          var     word 'Aux1
Chan7f          var     word 'Aux2
Chan8f          var     word 'Aux3

'Reverse Bits, Channel , Mode 1 (0=Normal, 1=Reverse)
Chan1_1R        con     0 'Drive Turn 
Chan2_1R        con     1 'Drive Speed
Chan3_1R        con     0 'Camera Tilt
Chan4_1R        con     0 'Camera Pan
Chan5_1R        con     1 'Aux Camera Tilt

'LCD Constants
LCD_CLR         con 88 'clear
LCD_INSTR       CON 254 'instruction command
LCD_L           con 71 'move curser to position 71 [column] [row]
LCD_H           CON 72 'move curser home
LCD_BL1         con 66 'backlight on, follow by minutes
LCD_BL0         con 70 'backlight off

ASM
INT_LIST  macro    ; IntSource, Label, Type, ResetFlag?
        INT_Handler TMR1_INT, _RC_Pulse, PBP, yes
    endm
    INT_CREATE               ; Creates the interrupt processor
ENDASM

T1CON = %00000001           ; Prescaler = 1:1, TMR1ON
TMR1L = PreLoad.LowByte
TMR1H = PreLoad.HighByte    ; preload to give 22mS interrupts (at 1:1)

' /////////////////////////////////////////////////////////////////////////////
' Begin
' /////////////////////////////////////////////////////////////////////////////

high l1: pause 50: high l2: pause 50: high l3: pause 50: high l4: pause 50: high l5: pause 50 
low l1: pause 50: low l2: pause 50: low l3: pause 50: low l4: pause 50: low l5: low 50

'trim values retreived from eeprom
gosub Sub_Read_EEprom

if JOY1X_Trim = 255 and JOY1Y_Trim = 255 then   'means things are zeroed out (reprogrammed), so set defaults
    High L5: pause 250: low L5
    JOY1X_Trim = 128 
    JOY1Y_Trim = 128 
    JOY2X_Trim = 128 
    JOY2Y_Trim = 128 
    gosub Sub_Write_EEprom
endif

@ INT_ENABLE  TMR1_INT     ; enable Timer 1 interrupts

' /////////////////////////////////////////////////////////////////////////////
' Main Loop
' /////////////////////////////////////////////////////////////////////////////
mainloop: ' Main program loop