;/////////////////////////////////////////////////////////////////////////////////
;// Code Generator: BoostC Compiler - http://www.sourceboost.com
;// Version       : 7.03
;// License Type  : Pro License
;// Limitations   : PIC18 max code size:Unlimited, max RAM banks:Unlimited
;/////////////////////////////////////////////////////////////////////////////////

	include "P18F26K22.inc"
__HEAPSTART                      EQU	0x0000007F ; Start address of heap 
__HEAPEND                        EQU	0x00000F37 ; End address of heap 
gbl_status                       EQU	0x00000FD8 ; bytes:1
gbl_prodl                        EQU	0x00000FF3 ; bytes:1
gbl_prodh                        EQU	0x00000FF4 ; bytes:1
gbl_14_LSR                       EQU	0x0000002D ; bytes:4
gbl_float_detect_tininess        EQU	0x00000055 ; bytes:1
gbl_float_rounding_mode          EQU	0x00000056 ; bytes:1
gbl_float_exception_flags        EQU	0x00000057 ; bytes:1
gbl_15_gbl_aSig                  EQU	0x00000031 ; bytes:4
gbl_15_gbl_bSig                  EQU	0x00000035 ; bytes:4
gbl_15_gbl_zSig                  EQU	0x00000039 ; bytes:4
gbl_15_gbl_aExp                  EQU	0x00000058 ; bytes:1
gbl_15_gbl_bExp                  EQU	0x00000059 ; bytes:1
gbl_15_gbl_zExp                  EQU	0x00000045 ; bytes:2
gbl_15_gbl_aSign                 EQU	0x0000005A ; bytes:1
gbl_15_gbl_bSign                 EQU	0x0000005B ; bytes:1
gbl_15_gbl_zSign                 EQU	0x0000005C ; bytes:1
gbl_15_gbl_zSigZero              EQU	0x0000005D ; bytes:1
gbl_15_gbl_ret                   EQU	0x0000003D ; bytes:4
gbl_ansela                       EQU	0x00000F38 ; bytes:1
gbl_anselb                       EQU	0x00000F39 ; bytes:1
gbl_anselc                       EQU	0x00000F3A ; bytes:1
gbl_pmd2                         EQU	0x00000F3D ; bytes:1
gbl_pmd1                         EQU	0x00000F3E ; bytes:1
gbl_pmd0                         EQU	0x00000F3F ; bytes:1
gbl_daccon1                      EQU	0x00000F40 ; bytes:1
gbl_vrefcon2                     EQU	0x00000F40 ; bytes:1
gbl_daccon0                      EQU	0x00000F41 ; bytes:1
gbl_vrefcon1                     EQU	0x00000F41 ; bytes:1
gbl_fvrcon                       EQU	0x00000F42 ; bytes:1
gbl_vrefcon0                     EQU	0x00000F42 ; bytes:1
gbl_ctmuicon                     EQU	0x00000F43 ; bytes:1
gbl_ctmuiconh                    EQU	0x00000F43 ; bytes:1
gbl_ctmucon1                     EQU	0x00000F44 ; bytes:1
gbl_ctmuconl                     EQU	0x00000F44 ; bytes:1
gbl_ctmucon0                     EQU	0x00000F45 ; bytes:1
gbl_ctmuconh                     EQU	0x00000F45 ; bytes:1
gbl_srcon1                       EQU	0x00000F46 ; bytes:1
gbl_srcon0                       EQU	0x00000F47 ; bytes:1
gbl_ccptmrs1                     EQU	0x00000F48 ; bytes:1
gbl_ccptmrs0                     EQU	0x00000F49 ; bytes:1
gbl_t6con                        EQU	0x00000F4A ; bytes:1
gbl_pr6                          EQU	0x00000F4B ; bytes:1
gbl_tmr6                         EQU	0x00000F4C ; bytes:1
gbl_t5gcon                       EQU	0x00000F4D ; bytes:1
gbl_t5con                        EQU	0x00000F4E ; bytes:1
gbl_tmr5l                        EQU	0x00000F4F ; bytes:1
gbl_tmr5h                        EQU	0x00000F50 ; bytes:1
gbl_t4con                        EQU	0x00000F51 ; bytes:1
gbl_pr4                          EQU	0x00000F52 ; bytes:1
gbl_tmr4                         EQU	0x00000F53 ; bytes:1
gbl_ccp5con                      EQU	0x00000F54 ; bytes:1
gbl_ccpr5                        EQU	0x00000F55 ; bytes:1
gbl_ccpr5l                       EQU	0x00000F55 ; bytes:1
gbl_ccpr5h                       EQU	0x00000F56 ; bytes:1
gbl_ccp4con                      EQU	0x00000F57 ; bytes:1
gbl_ccpr4                        EQU	0x00000F58 ; bytes:1
gbl_ccpr4l                       EQU	0x00000F58 ; bytes:1
gbl_ccpr4h                       EQU	0x00000F59 ; bytes:1
gbl_pstr3con                     EQU	0x00000F5A ; bytes:1
gbl_ccp3as                       EQU	0x00000F5B ; bytes:1
gbl_eccp3as                      EQU	0x00000F5B ; bytes:1
gbl_pwm3con                      EQU	0x00000F5C ; bytes:1
gbl_ccp3con                      EQU	0x00000F5D ; bytes:1
gbl_ccpr3                        EQU	0x00000F5E ; bytes:1
gbl_ccpr3l                       EQU	0x00000F5E ; bytes:1
gbl_ccpr3h                       EQU	0x00000F5F ; bytes:1
gbl_slrcon                       EQU	0x00000F60 ; bytes:1
gbl_wpub                         EQU	0x00000F61 ; bytes:1
gbl_iocb                         EQU	0x00000F62 ; bytes:1
gbl_pstr2con                     EQU	0x00000F63 ; bytes:1
gbl_ccp2as                       EQU	0x00000F64 ; bytes:1
gbl_eccp2as                      EQU	0x00000F64 ; bytes:1
gbl_pwm2con                      EQU	0x00000F65 ; bytes:1
gbl_ccp2con                      EQU	0x00000F66 ; bytes:1
gbl_ccpr2                        EQU	0x00000F67 ; bytes:1
gbl_ccpr2l                       EQU	0x00000F67 ; bytes:1
gbl_ccpr2h                       EQU	0x00000F68 ; bytes:1
gbl_ssp2con3                     EQU	0x00000F69 ; bytes:1
gbl_ssp2msk                      EQU	0x00000F6A ; bytes:1
gbl_ssp2con2                     EQU	0x00000F6B ; bytes:1
gbl_ssp2con1                     EQU	0x00000F6C ; bytes:1
gbl_ssp2stat                     EQU	0x00000F6D ; bytes:1
gbl_ssp2add                      EQU	0x00000F6E ; bytes:1
gbl_ssp2buf                      EQU	0x00000F6F ; bytes:1
gbl_baud2con                     EQU	0x00000F70 ; bytes:1
gbl_baudcon2                     EQU	0x00000F70 ; bytes:1
gbl_rc2sta                       EQU	0x00000F71 ; bytes:1
gbl_rcsta2                       EQU	0x00000F71 ; bytes:1
gbl_tx2sta                       EQU	0x00000F72 ; bytes:1
gbl_txsta2                       EQU	0x00000F72 ; bytes:1
gbl_tx2reg                       EQU	0x00000F73 ; bytes:1
gbl_txreg2                       EQU	0x00000F73 ; bytes:1
gbl_rc2reg                       EQU	0x00000F74 ; bytes:1
gbl_rcreg2                       EQU	0x00000F74 ; bytes:1
gbl_sp2brg                       EQU	0x00000F75 ; bytes:1
gbl_spbrg2                       EQU	0x00000F75 ; bytes:1
gbl_sp2brgh                      EQU	0x00000F76 ; bytes:1
gbl_spbrgh2                      EQU	0x00000F76 ; bytes:1
gbl_cm12con                      EQU	0x00000F77 ; bytes:1
gbl_cm2con1                      EQU	0x00000F77 ; bytes:1
gbl_cm2con                       EQU	0x00000F78 ; bytes:1
gbl_cm2con0                      EQU	0x00000F78 ; bytes:1
gbl_cm1con                       EQU	0x00000F79 ; bytes:1
gbl_cm1con0                      EQU	0x00000F79 ; bytes:1
gbl_pie4                         EQU	0x00000F7A ; bytes:1
gbl_pir4                         EQU	0x00000F7B ; bytes:1
gbl_ipr4                         EQU	0x00000F7C ; bytes:1
gbl_pie5                         EQU	0x00000F7D ; bytes:1
gbl_pir5                         EQU	0x00000F7E ; bytes:1
gbl_ipr5                         EQU	0x00000F7F ; bytes:1
gbl_porta                        EQU	0x00000F80 ; bytes:1
gbl_portb                        EQU	0x00000F81 ; bytes:1
gbl_portc                        EQU	0x00000F82 ; bytes:1
gbl_porte                        EQU	0x00000F84 ; bytes:1
gbl_lata                         EQU	0x00000F89 ; bytes:1
gbl_latb                         EQU	0x00000F8A ; bytes:1
gbl_latc                         EQU	0x00000F8B ; bytes:1
gbl_ddra                         EQU	0x00000F92 ; bytes:1
gbl_trisa                        EQU	0x00000F92 ; bytes:1
gbl_ddrb                         EQU	0x00000F93 ; bytes:1
gbl_trisb                        EQU	0x00000F93 ; bytes:1
gbl_ddrc                         EQU	0x00000F94 ; bytes:1
gbl_trisc                        EQU	0x00000F94 ; bytes:1
gbl_trise                        EQU	0x00000F96 ; bytes:1
gbl_osctune                      EQU	0x00000F9B ; bytes:1
gbl_hlvdcon                      EQU	0x00000F9C ; bytes:1
gbl_lvdcon                       EQU	0x00000F9C ; bytes:1
gbl_pie1                         EQU	0x00000F9D ; bytes:1
gbl_pir1                         EQU	0x00000F9E ; bytes:1
gbl_ipr1                         EQU	0x00000F9F ; bytes:1
gbl_pie2                         EQU	0x00000FA0 ; bytes:1
gbl_pir2                         EQU	0x00000FA1 ; bytes:1
gbl_ipr2                         EQU	0x00000FA2 ; bytes:1
gbl_pie3                         EQU	0x00000FA3 ; bytes:1
gbl_pir3                         EQU	0x00000FA4 ; bytes:1
gbl_ipr3                         EQU	0x00000FA5 ; bytes:1
gbl_eecon1                       EQU	0x00000FA6 ; bytes:1
gbl_eecon2                       EQU	0x00000FA7 ; bytes:1
gbl_eedata                       EQU	0x00000FA8 ; bytes:1
gbl_eeadr                        EQU	0x00000FA9 ; bytes:1
gbl_eeadrh                       EQU	0x00000FAA ; bytes:1
gbl_rc1sta                       EQU	0x00000FAB ; bytes:1
gbl_rcsta                        EQU	0x00000FAB ; bytes:1
gbl_rcsta1                       EQU	0x00000FAB ; bytes:1
gbl_tx1sta                       EQU	0x00000FAC ; bytes:1
gbl_txsta                        EQU	0x00000FAC ; bytes:1
gbl_txsta1                       EQU	0x00000FAC ; bytes:1
gbl_tx1reg                       EQU	0x00000FAD ; bytes:1
gbl_txreg                        EQU	0x00000FAD ; bytes:1
gbl_txreg1                       EQU	0x00000FAD ; bytes:1
gbl_rc1reg                       EQU	0x00000FAE ; bytes:1
gbl_rcreg                        EQU	0x00000FAE ; bytes:1
gbl_rcreg1                       EQU	0x00000FAE ; bytes:1
gbl_sp1brg                       EQU	0x00000FAF ; bytes:1
gbl_spbrg                        EQU	0x00000FAF ; bytes:1
gbl_spbrg1                       EQU	0x00000FAF ; bytes:1
gbl_sp1brgh                      EQU	0x00000FB0 ; bytes:1
gbl_spbrgh                       EQU	0x00000FB0 ; bytes:1
gbl_spbrgh1                      EQU	0x00000FB0 ; bytes:1
gbl_t3con                        EQU	0x00000FB1 ; bytes:1
gbl_tmr3l                        EQU	0x00000FB2 ; bytes:1
gbl_tmr3h                        EQU	0x00000FB3 ; bytes:1
gbl_t3gcon                       EQU	0x00000FB4 ; bytes:1
gbl_eccp1as                      EQU	0x00000FB6 ; bytes:1
gbl_eccpas                       EQU	0x00000FB6 ; bytes:1
gbl_pwm1con                      EQU	0x00000FB7 ; bytes:1
gbl_pwmcon                       EQU	0x00000FB7 ; bytes:1
gbl_baud1con                     EQU	0x00000FB8 ; bytes:1
gbl_baudcon                      EQU	0x00000FB8 ; bytes:1
gbl_baudcon1                     EQU	0x00000FB8 ; bytes:1
gbl_baudctl                      EQU	0x00000FB8 ; bytes:1
gbl_pstr1con                     EQU	0x00000FB9 ; bytes:1
gbl_pstrcon                      EQU	0x00000FB9 ; bytes:1
gbl_t2con                        EQU	0x00000FBA ; bytes:1
gbl_pr2                          EQU	0x00000FBB ; bytes:1
gbl_tmr2                         EQU	0x00000FBC ; bytes:1
gbl_ccp1con                      EQU	0x00000FBD ; bytes:1
gbl_ccpr1                        EQU	0x00000FBE ; bytes:1
gbl_ccpr1l                       EQU	0x00000FBE ; bytes:1
gbl_ccpr1h                       EQU	0x00000FBF ; bytes:1
gbl_adcon2                       EQU	0x00000FC0 ; bytes:1
gbl_adcon1                       EQU	0x00000FC1 ; bytes:1
gbl_adcon0                       EQU	0x00000FC2 ; bytes:1
gbl_adres                        EQU	0x00000FC3 ; bytes:1
gbl_adresl                       EQU	0x00000FC3 ; bytes:1
gbl_adresh                       EQU	0x00000FC4 ; bytes:1
gbl_ssp1con2                     EQU	0x00000FC5 ; bytes:1
gbl_sspcon2                      EQU	0x00000FC5 ; bytes:1
gbl_ssp1con1                     EQU	0x00000FC6 ; bytes:1
gbl_sspcon1                      EQU	0x00000FC6 ; bytes:1
gbl_ssp1stat                     EQU	0x00000FC7 ; bytes:1
gbl_sspstat                      EQU	0x00000FC7 ; bytes:1
gbl_ssp1add                      EQU	0x00000FC8 ; bytes:1
gbl_sspadd                       EQU	0x00000FC8 ; bytes:1
gbl_ssp1buf                      EQU	0x00000FC9 ; bytes:1
gbl_sspbuf                       EQU	0x00000FC9 ; bytes:1
gbl_ssp1msk                      EQU	0x00000FCA ; bytes:1
gbl_sspmsk                       EQU	0x00000FCA ; bytes:1
gbl_ssp1con3                     EQU	0x00000FCB ; bytes:1
gbl_sspcon3                      EQU	0x00000FCB ; bytes:1
gbl_t1gcon                       EQU	0x00000FCC ; bytes:1
gbl_t1con                        EQU	0x00000FCD ; bytes:1
gbl_tmr1l                        EQU	0x00000FCE ; bytes:1
gbl_tmr1h                        EQU	0x00000FCF ; bytes:1
gbl_rcon                         EQU	0x00000FD0 ; bytes:1
gbl_wdtcon                       EQU	0x00000FD1 ; bytes:1
gbl_osccon2                      EQU	0x00000FD2 ; bytes:1
gbl_osccon                       EQU	0x00000FD3 ; bytes:1
gbl_t0con                        EQU	0x00000FD5 ; bytes:1
gbl_tmr0l                        EQU	0x00000FD6 ; bytes:1
gbl_tmr0h                        EQU	0x00000FD7 ; bytes:1
gbl_fsr2l                        EQU	0x00000FD9 ; bytes:1
gbl_fsr2h                        EQU	0x00000FDA ; bytes:1
gbl_plusw2                       EQU	0x00000FDB ; bytes:1
gbl_preinc2                      EQU	0x00000FDC ; bytes:1
gbl_postdec2                     EQU	0x00000FDD ; bytes:1
gbl_postinc2                     EQU	0x00000FDE ; bytes:1
gbl_indf2                        EQU	0x00000FDF ; bytes:1
gbl_bsr                          EQU	0x00000FE0 ; bytes:1
gbl_fsr1l                        EQU	0x00000FE1 ; bytes:1
gbl_fsr1h                        EQU	0x00000FE2 ; bytes:1
gbl_plusw1                       EQU	0x00000FE3 ; bytes:1
gbl_preinc1                      EQU	0x00000FE4 ; bytes:1
gbl_postdec1                     EQU	0x00000FE5 ; bytes:1
gbl_postinc1                     EQU	0x00000FE6 ; bytes:1
gbl_indf1                        EQU	0x00000FE7 ; bytes:1
gbl_wreg                         EQU	0x00000FE8 ; bytes:1
gbl_fsr0l                        EQU	0x00000FE9 ; bytes:1
gbl_fsr0h                        EQU	0x00000FEA ; bytes:1
gbl_plusw0                       EQU	0x00000FEB ; bytes:1
gbl_preinc0                      EQU	0x00000FEC ; bytes:1
gbl_postdec0                     EQU	0x00000FED ; bytes:1
gbl_postinc0                     EQU	0x00000FEE ; bytes:1
gbl_indf0                        EQU	0x00000FEF ; bytes:1
gbl_intcon3                      EQU	0x00000FF0 ; bytes:1
gbl_intcon2                      EQU	0x00000FF1 ; bytes:1
gbl_intcon                       EQU	0x00000FF2 ; bytes:1
gbl_prod                         EQU	0x00000FF3 ; bytes:1
gbl_tablat                       EQU	0x00000FF5 ; bytes:1
gbl_tblptr                       EQU	0x00000FF6 ; bytes:1
gbl_tblptrl                      EQU	0x00000FF6 ; bytes:1
gbl_tblptrh                      EQU	0x00000FF7 ; bytes:1
gbl_tblptru                      EQU	0x00000FF8 ; bytes:1
gbl_pc                           EQU	0x00000FF9 ; bytes:1
gbl_pcl                          EQU	0x00000FF9 ; bytes:1
gbl_pclath                       EQU	0x00000FFA ; bytes:1
gbl_pclatu                       EQU	0x00000FFB ; bytes:1
gbl_stkptr                       EQU	0x00000FFC ; bytes:1
gbl_tos                          EQU	0x00000FFD ; bytes:1
gbl_tosl                         EQU	0x00000FFD ; bytes:1
gbl_tosh                         EQU	0x00000FFE ; bytes:1
gbl_tosu                         EQU	0x00000FFF ; bytes:1
gbl_FCV_PWM100HZ_ON              EQU	0x00000047 ; bytes:2
gbl_FCV_PWM1_VAR                 EQU	0x0000005E ; bytes:1
gbl_FCV_FP_HZ                    EQU	0x00000049 ; bytes:2
gbl_FCV_SW_DEL1_EN               EQU	0x0000005F ; bit:0
gbl_FCV_TX_IDX                   EQU	0x00000060 ; bytes:1
gbl_FCV_FP_PWM                   EQU	0x00000061 ; bytes:1
gbl_FCV_FP_DRIVE                 EQU	0x0000005F ; bit:1
gbl_FCV_FP_FREQ                  EQU	0x0000004B ; bytes:2
gbl_FCV_RX_IDX                   EQU	0x00000062 ; bytes:1
gbl_FCV_TX_ARRAY                 EQU	0x00000005 ; bytes:20
gbl_FCV_SWITCH_SUM               EQU	0x00000063 ; bytes:1
gbl_FCV_CRC_SORSZAM              EQU	0x00000064 ; bytes:1
gbl_FCV_FP_IMP_LENGHT            EQU	0x00000065 ; bytes:1
gbl_FCV_SW_DEL1                  EQU	0x0000004D ; bytes:2
gbl_FCV_INCOM_DATA_FLAG          EQU	0x0000005F ; bit:2
gbl_FCV_MS_100HZ_PWM             EQU	0x0000004F ; bytes:2
gbl_FCV_FIRST_BYTE               EQU	0x0000005F ; bit:3
gbl_FCV_RX_ARRAY                 EQU	0x00000019 ; bytes:20
gbl_FCV_GLOBVAR1                 EQU	0x00000041 ; bytes:4
gbl_FCV_UART_CRC                 EQU	0x00000066 ; bytes:1
gbl_FCV_SW1                      EQU	0x0000005F ; bit:4
gbl_FCV_RECBYTE                  EQU	0x00000067 ; bytes:1
gbl_FCV_SW2                      EQU	0x0000005F ; bit:5
gbl_FCV_PWM100HZ_DUTY            EQU	0x00000068 ; bytes:1
gbl_FCV_UART_HOSSZ               EQU	0x00000069 ; bytes:1
gbl_FCV_TMR0_FLIP1               EQU	0x0000005F ; bit:6
gbl_FCV_SW3                      EQU	0x0000005F ; bit:7
gbl_FCV_NEED_ANSWER              EQU	0x0000006A ; bit:0
gbl_FCV_FP_BASE_MS               EQU	0x00000051 ; bytes:2
gbl_FCV_TMR0_MS                  EQU	0x00000053 ; bytes:2
gbl_FCV_DC_IN                    EQU	0x0000006B ; bytes:1
gbl_FCLV_LOOP1                   EQU	0x0000006C ; bytes:1
gbl_FCLV_LOOP2                   EQU	0x0000006D ; bytes:1
CompTempVar2184                  EQU	0x0000006E ; bytes:1
CompTempVar2185                  EQU	0x0000006E ; bytes:1
CompTempVarRet2209               EQU	0x00000072 ; bytes:2
FC_CAL_UAR_0004D_arg_nChar       EQU	0x00000070 ; bytes:2
FC_CAL_UAR_0004E_arg_nTimeout    EQU	0x00000075 ; bytes:1
CompTempVarRet2215               EQU	0x0000007D ; bytes:2
FC_CAL_UAR_0004E_1_retVal        EQU	0x00000076 ; bytes:2
FC_CAL_UAR_0004E_1_delay1        EQU	0x00000078 ; bytes:1
FC_CAL_UAR_0004E_1_regcheck      EQU	0x00000079 ; bytes:1
FC_CAL_UAR_0004E_1_bWaitForever  EQU	0x0000007A ; bytes:1
FC_CAL_UAR_0004E_1_rxStatus      EQU	0x0000007B ; bytes:1
FC_CAL_UAR_0004E_1_dummy         EQU	0x0000007C ; bytes:1
FCD_RS2320_00049_arg_nChar       EQU	0x0000006E ; bytes:2
FCD_RS2320_0004B_arg_nTimeout    EQU	0x00000074 ; bytes:1
delay_us_00000_arg_del           EQU	0x0000007D ; bytes:1
delay_ms_00000_arg_del           EQU	0x0000006E ; bytes:1
Int1Context                      EQU	0x00000001 ; bytes:4
	ORG 0x00000000
	GOTO	_startup
	ORG 0x00000008
	GOTO	interrupt
	ORG 0x0000000C
delay_us_00000
; { delay_us ; function begin
label1
	NOP
	DECFSZ delay_us_00000_arg_del, F, 1
	BRA	label1
	RETURN
; } delay_us function end

	ORG 0x00000014
delay_ms_00000
; { delay_ms ; function begin
	MOVF delay_ms_00000_arg_del, F, 1
	NOP
	BNZ	label2
	RETURN
label2
	MOVLW 0xF9
label3
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	ADDLW 0xFF
	BTFSS STATUS,Z
	BRA	label3
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	NOP
	DECFSZ delay_ms_00000_arg_del, F, 1
	BRA	label2
	RETURN
; } delay_ms function end

	ORG 0x0000005C
FC_CAL_UAR_0004E
; { FC_CAL_UART_Receive_1 ; function begin
	CLRF FC_CAL_UAR_0004E_1_retVal, 1
	MOVLW 0x02
	MOVWF FC_CAL_UAR_0004E_1_retVal+D'1', 1
	CLRF FC_CAL_UAR_0004E_1_delay1, 1
	CLRF FC_CAL_UAR_0004E_1_regcheck, 1
	CLRF FC_CAL_UAR_0004E_1_bWaitForever, 1
	CLRF FC_CAL_UAR_0004E_1_rxStatus, 1
	CLRF FC_CAL_UAR_0004E_1_dummy, 1
	INCF FC_CAL_UAR_0004E_arg_nTimeout, W, 1
	BNZ	label4
	MOVLW 0x01
	MOVWF FC_CAL_UAR_0004E_1_bWaitForever, 1
label4
	MOVF FC_CAL_UAR_0004E_1_rxStatus, F, 1
	BNZ	label7
	MOVF FC_CAL_UAR_0004E_1_bWaitForever, F, 1
	BNZ	label6
	MOVF FC_CAL_UAR_0004E_arg_nTimeout, F, 1
	BNZ	label5
	MOVLW 0x01
	MOVWF FC_CAL_UAR_0004E_1_rxStatus, 1
	BRA	label6
label5
	MOVLW 0x0A
	MOVWF delay_us_00000_arg_del, 1
	CALL delay_us_00000
	INCF FC_CAL_UAR_0004E_1_delay1, W, 1
	MOVWF FC_CAL_UAR_0004E_1_delay1, 1
	MOVLW 0x64
	CPFSEQ FC_CAL_UAR_0004E_1_delay1, 1
	BRA	label6
	DECF FC_CAL_UAR_0004E_arg_nTimeout, W, 1
	MOVWF FC_CAL_UAR_0004E_arg_nTimeout, 1
	CLRWDT
	CLRF FC_CAL_UAR_0004E_1_delay1, 1
label6
	MOVLW 0x20
	ANDWF gbl_pir1, W
	MOVWF FC_CAL_UAR_0004E_1_regcheck, 1
	MOVF FC_CAL_UAR_0004E_1_regcheck, F, 1
	BZ	label4
	MOVLW 0x02
	MOVWF FC_CAL_UAR_0004E_1_rxStatus, 1
	BRA	label4
label7
	MOVLW 0x02
	CPFSEQ FC_CAL_UAR_0004E_1_rxStatus, 1
	BRA	label10
	MOVLW 0x04
	ANDWF gbl_rcsta, W
	MOVWF FC_CAL_UAR_0004E_1_regcheck, 1
	MOVF FC_CAL_UAR_0004E_1_regcheck, F, 1
	BZ	label8
	MOVF gbl_rcreg, W
	MOVWF FC_CAL_UAR_0004E_1_dummy, 1
	CLRF FC_CAL_UAR_0004E_1_retVal, 1
	MOVLW 0x04
	MOVWF FC_CAL_UAR_0004E_1_retVal+D'1', 1
	BRA	label10
label8
	MOVLW 0x02
	ANDWF gbl_rcsta, W
	MOVWF FC_CAL_UAR_0004E_1_regcheck, 1
	MOVF FC_CAL_UAR_0004E_1_regcheck, F, 1
	BZ	label9
	BCF gbl_rcsta,4
	BSF gbl_rcsta,4
	CLRF FC_CAL_UAR_0004E_1_retVal, 1
	MOVLW 0x08
	MOVWF FC_CAL_UAR_0004E_1_retVal+D'1', 1
	BRA	label10
label9
	CLRF FC_CAL_UAR_0004E_1_retVal, 1
	CLRF FC_CAL_UAR_0004E_1_retVal+D'1', 1
	MOVF gbl_rcreg, W
	IORWF FC_CAL_UAR_0004E_1_retVal, F, 1
	MOVF FC_CAL_UAR_0004E_1_retVal+D'1', F, 1
label10
	MOVF FC_CAL_UAR_0004E_1_retVal, W, 1
	MOVWF CompTempVarRet2215, 1
	MOVF FC_CAL_UAR_0004E_1_retVal+D'1', W, 1
	MOVWF CompTempVarRet2215+D'1', 1
	RETURN
; } FC_CAL_UART_Receive_1 function end

	ORG 0x000000F6
FCD_RS2320_0004B
; { FCD_RS2320_ReceiveRS232Char ; function begin
	MOVF FCD_RS2320_0004B_arg_nTimeout, W, 1
	MOVWF FC_CAL_UAR_0004E_arg_nTimeout, 1
	CALL FC_CAL_UAR_0004E
	MOVF CompTempVarRet2215, W, 1
	MOVWF CompTempVarRet2209, 1
	MOVF CompTempVarRet2215+D'1', W, 1
	MOVWF CompTempVarRet2209+D'1', 1
	RETURN
; } FCD_RS2320_ReceiveRS232Char function end

	ORG 0x00000108
FCM_read_R_0004A
; { FCM_read_RXbuffer ; function begin
	MOVLB 0x00
	CLRF FCD_RS2320_0004B_arg_nTimeout, 1
	CALL FCD_RS2320_0004B
	MOVF CompTempVarRet2209, W, 1
	MOVWF gbl_FCV_RECBYTE, 1
	MOVLW 0xAA
	CPFSEQ gbl_FCV_RECBYTE, 1
	BRA	label11
	BTFSC gbl_FCV_INCOM_DATA_FLAG,2
	BRA	label11
	BSF gbl_FCV_FIRST_BYTE,3
	CLRF gbl_FCV_RX_IDX, 1
	BSF gbl_FCV_INCOM_DATA_FLAG,2
	MOVF gbl_FCV_RECBYTE, W, 1
	MOVWF gbl_FCV_RX_ARRAY
label11
	BTFSS gbl_FCV_INCOM_DATA_FLAG,2
	BRA	label13
	BTFSS gbl_FCV_FIRST_BYTE,3
	BRA	label12
	BCF gbl_FCV_FIRST_BYTE,3
	RETURN
label12
	INCF gbl_FCV_RX_IDX, W, 1
	MOVWF gbl_FCV_RX_IDX, 1
	LFSR 0x00, gbl_FCV_RX_ARRAY
	MOVF FSR0L, W
	MOVF gbl_FCV_RX_IDX, W, 1
	ADDWF FSR0L, F
	MOVF gbl_FCV_RECBYTE, W, 1
	MOVWF INDF0
	MOVLW 0x04
	CPFSEQ gbl_FCV_RX_IDX, 1
	RETURN
	BCF gbl_FCV_INCOM_DATA_FLAG,2
	BSF gbl_FCV_NEED_ANSWER,0, 1
	RETURN
label13
	CLRF gbl_FCV_RX_IDX, 1
	RETURN
; } FCM_read_RXbuffer function end

	ORG 0x00000156
FC_CAL_UAR_0004D
; { FC_CAL_UART_Send_1 ; function begin
label14
	BTFSS gbl_pir1,4
	BRA	label14
	MOVF FC_CAL_UAR_0004D_arg_nChar, W, 1
	MOVWF gbl_txreg
	RETURN
; } FC_CAL_UART_Send_1 function end

	ORG 0x00000160
FCD_RS2320_00049
; { FCD_RS2320_SendRS232Char ; function begin
	MOVF FCD_RS2320_00049_arg_nChar, W, 1
	MOVWF FC_CAL_UAR_0004D_arg_nChar, 1
	MOVF FCD_RS2320_00049_arg_nChar+D'1', W, 1
	MOVWF FC_CAL_UAR_0004D_arg_nChar+D'1', 1
	CALL FC_CAL_UAR_0004D
	RETURN
; } FCD_RS2320_SendRS232Char function end

	ORG 0x0000016E
FC_CAL_UAR_0004C
; { FC_CAL_UART_Init_1 ; function begin
	BSF gbl_txsta,2
	MOVLW 0xCF
	MOVWF gbl_spbrg
	CLRF gbl_rcsta
	BSF gbl_rcsta,7
	BSF gbl_txsta,5
	BSF gbl_rcsta,4
	BCF gbl_pie1,5
	RETURN
; } FC_CAL_UART_Init_1 function end

	ORG 0x00000180
FCM_uart_a_00048
; { FCM_uart_answer ; function begin
	MOVLW 0xAB
	MOVWF gbl_FCV_TX_ARRAY
	MOVLW 0xBB
	MOVWF gbl_FCV_TX_ARRAY+D'1'
	MOVLW 0xBC
	MOVWF gbl_FCV_TX_ARRAY+D'2'
	MOVLW 0xCD
	MOVWF gbl_FCV_TX_ARRAY+D'3'
	MOVLW 0xDD
	MOVWF gbl_FCV_TX_ARRAY+D'4'
	MOVLW 0xDA
	MOVWF gbl_FCV_TX_ARRAY+D'5'
	MOVF gbl_FCV_TX_ARRAY, W
	MOVLB 0x00
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVF gbl_FCV_TX_ARRAY+D'1', W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVF gbl_FCV_TX_ARRAY+D'2', W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVF gbl_FCV_TX_ARRAY+D'3', W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVF gbl_FCV_TX_ARRAY+D'4', W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVF gbl_FCV_TX_ARRAY+D'5', W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVLW 0x0A
	MOVWF delay_ms_00000_arg_del, 1
	CALL delay_ms_00000
	CLRF gbl_FCV_TX_IDX, 1
	CLRF gbl_FCLV_LOOP1, 1
label15
	MOVLW 0x06
	CPFSLT gbl_FCLV_LOOP1, 1
	RETURN
	LFSR 0x00, gbl_FCV_TX_ARRAY
	MOVF FSR0L, W
	MOVF gbl_FCV_TX_IDX, W, 1
	ADDWF FSR0L, F
	MOVF INDF0, W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	INCF gbl_FCV_TX_IDX, W, 1
	MOVWF gbl_FCV_TX_IDX, 1
	INCF gbl_FCLV_LOOP1, F, 1
	BRA	label15
; } FCM_uart_answer function end

	ORG 0x00000204
FCM_NULL_T_00047
; { FCM_NULL_TO_OUT ; function begin
	MOVLW 0xFE
	ANDWF gbl_trisa, W
	MOVWF gbl_trisa
	MOVLW 0xFE
	ANDWF gbl_porta, W
	MOVWF gbl_porta
	MOVLW 0xF7
	ANDWF gbl_trisa, W
	MOVWF gbl_trisa
	MOVLW 0xF7
	ANDWF gbl_porta, W
	MOVWF gbl_porta
	MOVLW 0xDF
	ANDWF gbl_trisa, W
	MOVWF gbl_trisa
	MOVLW 0xDF
	ANDWF gbl_porta, W
	MOVWF gbl_porta
	MOVLW 0x7F
	ANDWF gbl_trisa, W
	MOVWF gbl_trisa
	MOVLW 0x7F
	ANDWF gbl_porta, W
	MOVWF gbl_porta
	MOVLW 0xBF
	ANDWF gbl_trisa, W
	MOVWF gbl_trisa
	MOVLW 0xBF
	ANDWF gbl_porta, W
	MOVWF gbl_porta
	MOVLW 0xFE
	ANDWF gbl_trisc, W
	MOVWF gbl_trisc
	MOVLW 0xFE
	ANDWF gbl_portc, W
	MOVLB 0x00
	MOVWF CompTempVar2184, 1
	MOVLW 0x01
	IORWF CompTempVar2184, W, 1
	MOVWF gbl_portc
	MOVLW 0xFB
	ANDWF gbl_trisc, W
	MOVWF gbl_trisc
	MOVLW 0xFB
	ANDWF gbl_portc, W
	MOVWF gbl_portc
	MOVLW 0xFE
	ANDWF gbl_trisb, W
	MOVWF gbl_trisb
	MOVLW 0xFE
	ANDWF gbl_portb, W
	MOVWF gbl_portb
	MOVLW 0xDF
	ANDWF gbl_trisb, W
	MOVWF gbl_trisb
	MOVLW 0xDF
	ANDWF gbl_portb, W
	MOVWF CompTempVar2185, 1
	MOVLW 0x20
	IORWF CompTempVar2185, W, 1
	MOVWF gbl_portb
	MOVLW 0xBF
	ANDWF gbl_trisb, W
	MOVWF gbl_trisb
	MOVLW 0xBF
	ANDWF gbl_portb, W
	MOVWF gbl_portb
	MOVLW 0x7F
	ANDWF gbl_trisb, W
	MOVWF gbl_trisb
	MOVLW 0x7F
	ANDWF gbl_portb, W
	MOVWF gbl_portb
	RETURN
; } FCM_NULL_TO_OUT function end

	ORG 0x00000298
FCM_ECHO_00000
; { FCM_ECHO ; function begin
	MOVF gbl_FCV_RX_ARRAY, W
	MOVLB 0x00
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	MOVLW 0x01
	MOVWF gbl_FCV_RX_IDX, 1
	CLRF gbl_FCLV_LOOP2, 1
label16
	MOVLW 0x04
	CPFSLT gbl_FCLV_LOOP2, 1
	RETURN
	LFSR 0x00, gbl_FCV_RX_ARRAY
	MOVF FSR0L, W
	MOVF gbl_FCV_RX_IDX, W, 1
	ADDWF FSR0L, F
	MOVF INDF0, W
	MOVWF FCD_RS2320_00049_arg_nChar, 1
	CLRF FCD_RS2320_00049_arg_nChar+D'1', 1
	CALL FCD_RS2320_00049
	INCF gbl_FCV_RX_IDX, W, 1
	MOVWF gbl_FCV_RX_IDX, 1
	INCF gbl_FCLV_LOOP2, F, 1
	BRA	label16
; } FCM_ECHO function end

	ORG 0x000002CC
main
; { main ; function begin
	MOVLB 0x0F
	CLRF gbl_ansela, 1
	CLRF gbl_anselb, 1
	CLRF gbl_anselc, 1
	CALL FC_CAL_UAR_0004C
	MOVLW 0x29
	MOVWF gbl_FCV_RX_ARRAY+D'4'
	MOVLW 0x33
	MOVWF gbl_FCV_RX_ARRAY+D'3'
	MOVLW 0x3D
	MOVWF gbl_FCV_RX_ARRAY+D'2'
	MOVLW 0x47
	MOVWF gbl_FCV_RX_ARRAY+D'1'
	MOVLW 0x51
	MOVWF gbl_FCV_RX_ARRAY
	MOVLW 0x73
	MOVWF gbl_osccon
	BCF gbl_txsta1,2
	BSF gbl_baudcon1,3
	MOVLW 0x01
	MOVWF gbl_spbrgh1
	MOVLW 0xA0
	MOVWF gbl_spbrg1
	CALL FCM_NULL_T_00047
	CLRF FCD_RS2320_0004B_arg_nTimeout, 1
	CALL FCD_RS2320_0004B
	MOVF CompTempVarRet2209, W, 1
	MOVWF gbl_FCV_RECBYTE, 1
	CLRF FCD_RS2320_0004B_arg_nTimeout, 1
	CALL FCD_RS2320_0004B
	MOVF CompTempVarRet2209, W, 1
	MOVWF gbl_FCV_RECBYTE, 1
	BSF gbl_intcon,7
	BSF gbl_intcon,7
	BSF gbl_intcon,6
	BSF gbl_pie1,5
	CLRF FCD_RS2320_0004B_arg_nTimeout, 1
	CALL FCD_RS2320_0004B
	MOVF CompTempVarRet2209, W, 1
	MOVWF gbl_FCV_RECBYTE, 1
	CLRF FCD_RS2320_0004B_arg_nTimeout, 1
	CALL FCD_RS2320_0004B
	MOVF CompTempVarRet2209, W, 1
	MOVWF gbl_FCV_RECBYTE, 1
label17
	BTFSS gbl_FCV_NEED_ANSWER,0, 1
	BRA	label18
	MOVLW 0x05
	MOVWF delay_ms_00000_arg_del, 1
	CALL delay_ms_00000
	CALL FCM_ECHO_00000
	MOVLW 0x0A
	MOVWF delay_ms_00000_arg_del, 1
	CALL delay_ms_00000
	CALL FCM_uart_a_00048
	BCF gbl_FCV_NEED_ANSWER,0, 1
label18
	MOVLW 0x01
	MOVWF delay_ms_00000_arg_del, 1
	CALL delay_ms_00000
	BRA	label17
; } main function end

	ORG 0x00000358
_startup
	MOVLW 0xD5
	MOVWF gbl_14_LSR
	MOVLW 0xC4
	MOVWF gbl_14_LSR+D'1'
	MOVLW 0xBB
	MOVWF gbl_14_LSR+D'2'
	MOVLW 0xDC
	MOVWF gbl_14_LSR+D'3'
	CLRF gbl_15_gbl_aSig
	CLRF gbl_15_gbl_aSig+D'1'
	CLRF gbl_15_gbl_aSig+D'2'
	CLRF gbl_15_gbl_aSig+D'3'
	CLRF gbl_15_gbl_bSig
	CLRF gbl_15_gbl_bSig+D'1'
	CLRF gbl_15_gbl_bSig+D'2'
	CLRF gbl_15_gbl_bSig+D'3'
	CLRF gbl_15_gbl_zSig
	CLRF gbl_15_gbl_zSig+D'1'
	CLRF gbl_15_gbl_zSig+D'2'
	CLRF gbl_15_gbl_zSig+D'3'
	CLRF gbl_15_gbl_aExp
	CLRF gbl_15_gbl_bExp
	CLRF gbl_15_gbl_zExp
	CLRF gbl_15_gbl_zExp+D'1'
	CLRF gbl_15_gbl_aSign
	CLRF gbl_15_gbl_bSign
	CLRF gbl_15_gbl_zSign
	CLRF gbl_15_gbl_zSigZero
	CLRF gbl_15_gbl_ret
	CLRF gbl_15_gbl_ret+D'1'
	CLRF gbl_15_gbl_ret+D'2'
	CLRF gbl_15_gbl_ret+D'3'
	CLRF gbl_float_rounding_mode
	CLRF gbl_float_exception_flags
	CLRF gbl_float_detect_tininess
	CLRF gbl_FCV_PWM100HZ_ON
	CLRF gbl_FCV_PWM100HZ_ON+D'1'
	CLRF gbl_FCV_PWM1_VAR
	CLRF gbl_FCV_FP_HZ
	CLRF gbl_FCV_FP_HZ+D'1'
	BCF gbl_FCV_SW_DEL1_EN,0
	MOVLB 0x00
	CLRF gbl_FCV_TX_IDX, 1
	CLRF gbl_FCV_FP_PWM, 1
	BCF gbl_FCV_FP_DRIVE,1
	CLRF gbl_FCV_FP_FREQ
	CLRF gbl_FCV_FP_FREQ+D'1'
	CLRF gbl_FCV_RX_IDX, 1
	CLRF gbl_FCV_SWITCH_SUM, 1
	CLRF gbl_FCV_CRC_SORSZAM, 1
	MOVLW 0x2B
	MOVWF gbl_FCV_FP_IMP_LENGHT, 1
	CLRF gbl_FCV_SW_DEL1
	CLRF gbl_FCV_SW_DEL1+D'1'
	BCF gbl_FCV_INCOM_DATA_FLAG,2
	CLRF gbl_FCV_MS_100HZ_PWM
	CLRF gbl_FCV_MS_100HZ_PWM+D'1'
	BCF gbl_FCV_FIRST_BYTE,3
	CLRF gbl_FCV_GLOBVAR1
	CLRF gbl_FCV_GLOBVAR1+D'1'
	CLRF gbl_FCV_GLOBVAR1+D'2'
	CLRF gbl_FCV_GLOBVAR1+D'3'
	CLRF gbl_FCV_UART_CRC, 1
	BSF gbl_FCV_SW1,4
	CLRF gbl_FCV_RECBYTE, 1
	BSF gbl_FCV_SW2,5
	CLRF gbl_FCV_PWM100HZ_DUTY, 1
	CLRF gbl_FCV_UART_HOSSZ, 1
	BCF gbl_FCV_TMR0_FLIP1,6
	BSF gbl_FCV_SW3,7
	BCF gbl_FCV_NEED_ANSWER,0, 1
	CLRF gbl_FCV_FP_BASE_MS
	CLRF gbl_FCV_FP_BASE_MS+D'1'
	CLRF gbl_FCV_TMR0_MS
	CLRF gbl_FCV_TMR0_MS+D'1'
	CLRF gbl_FCV_DC_IN, 1
	GOTO	main
	ORG 0x000003F4
interrupt
; { interrupt ; function begin
	MOVFF FSR0H,  Int1Context
	MOVFF FSR0L,  Int1Context+D'1'
	MOVFF PRODH,  Int1Context+D'2'
	MOVFF PRODL,  Int1Context+D'3'
	BTFSS gbl_pir1,5
	BRA	label20
	BTFSS gbl_pie1,5
	BRA	label20
	BCF gbl_pir1,5
	CALL FCM_read_R_0004A
label20
	MOVFF Int1Context+D'3',  PRODL
	MOVFF Int1Context+D'2',  PRODH
	MOVFF Int1Context+D'1',  FSR0L
	MOVFF Int1Context,  FSR0H
	RETFIE 1
; } interrupt function end

	ORG 0x00300000
	DW 0x68FF
	DW 0x3C18
	DW 0xB7FF
	DW 0xFFC0
	DW 0xC00F
	DW 0xE00F
	DW 0x400F
	END
