Basically, is a rectangular plane base with a CNC mechanism on it (ball-screw, two guides, cart and four linear bearings); the CNC simple mechanism is, actually, replacing an expensive actuator; on sides there are two triangular rods sistem needed for lateral stability of leg. The CNC mechanism is driven by a step-by-step DC motor, witch is driven by an MCU. This MCU is a PIC648 wich send to stepper impulses for STEP & DIR, using a simple stepper driver with L298 and diodes bridges; on the LCD there are displayed info about the limits of cart stroke and cart position; all this infos are converted in degrees of knee moving for easy user setings.
Hereunder are images of simulations of mechanical device:
(First I was tried a simplified version, as you can see, after I was tested it, I was remake a second version.)
1- side view, intermediate pos., v.1
2- pan view, intermediate pos., v1.0
3- side view, relaxed, v1.0
4- side view, flexed, v1.0
5 -side view middle of cart stroke, v1.1
6- 3D view, v1.1
7- side view relaxed, v1.1
8- side view flexed, v1.1
9- front view (motor side), v1.1
Next, I will post images from the construction process, detailes and some other signifiant parts of work. This is the firsat version, wich was modified later in version 1.1.
Last, I was modified the original version, because that was not very stable, so now I'll show you pictures when working to second version, more stable and easy to use.
Now some of subassemblyes:
DIY stepper driver
DIY stepper controller with PIC MCU
Home sw
Power supply
Here I'll show you the source code:
;/////////////////////////////////////////////////////////////////////////////////
;// Code Generator: BoostC Compiler - http://www.sourceboost.com
;// Version : 7.03
;// License Type : Pro License
;// Limitations : PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited
;/////////////////////////////////////////////////////////////////////////////////
include "P16F88.inc"
; Heap block 0, size:96 (0x00000110 - 0x0000016F)
__HEAP_BLOCK0_BANK EQU0x00000002
__HEAP_BLOCK0_START_OFFSET EQU0x00000010
__HEAP_BLOCK0_END_OFFSET EQU0x0000006F
; Heap block 1, size:96 (0x00000190 - 0x000001EF)
__HEAP_BLOCK1_BANK EQU0x00000003
__HEAP_BLOCK1_START_OFFSET EQU0x00000010
__HEAP_BLOCK1_END_OFFSET EQU0x0000006F
; Heap block 2, size:74 (0x000000A6 - 0x000000EF)
__HEAP_BLOCK2_BANK EQU0x00000001
__HEAP_BLOCK2_START_OFFSET EQU0x00000026
__HEAP_BLOCK2_END_OFFSET EQU0x0000006F
; Heap block 3, size:0 (0x00000000 - 0x00000000)
__HEAP_BLOCK3_BANK EQU0x00000000
__HEAP_BLOCK3_START_OFFSET EQU0x00000000
__HEAP_BLOCK3_END_OFFSET EQU0x00000000
__div_16_1_00003_arg_a EQU0x00000074 ; bytes:2
__div_16_1_00003_arg_b EQU0x00000076 ; bytes:2
CompTempVarRet212 EQU0x0000007D ; bytes:2
__div_16_1_00003_1_r EQU0x0000007A ; bytes:2
__div_16_1_00003_1_i EQU0x0000007C ; bytes:1
__div_8_8_00000_arg_a EQU0x0000006F ; bytes:1
__div_8_8_00000_arg_b EQU0x00000070 ; bytes:1
CompTempVarRet216 EQU0x00000073 ; bytes:1
__div_8_8_00000_1_r EQU0x00000071 ; bytes:1
__div_8_8_00000_1_i EQU0x00000072 ; bytes:1
__rem_8_8_00000_arg_a EQU0x0000006F ; bytes:1
__rem_8_8_00000_arg_b EQU0x00000070 ; bytes:1
CompTempVarRet218 EQU0x00000074 ; bytes:1
__rem_8_8_00000_1_c EQU0x00000072 ; bytes:1
__rem_8_8_00000_1_i EQU0x00000073 ; bytes:1
gbl_status EQU0x00000003 ; bytes:1
gbl_14_LSR EQU0x00000020 ; bytes:4
gbl_float_detect_tininess EQU0x00000049 ; bytes:1
gbl_float_rounding_mode EQU0x0000004A ; bytes:1
gbl_float_exception_flags EQU0x0000004B ; bytes:1
gbl_15_gbl_aSig EQU0x00000024 ; bytes:4
gbl_15_gbl_bSig EQU0x00000028 ; bytes:4
gbl_15_gbl_zSig EQU0x0000002C ; bytes:4
gbl_15_gbl_aExp EQU0x0000004C ; bytes:1
gbl_15_gbl_bExp EQU0x0000004D ; bytes:1
gbl_15_gbl_zExp EQU0x00000037 ; bytes:2
gbl_15_gbl_aSign EQU0x0000004E ; bytes:1
gbl_15_gbl_bSign EQU0x0000004F ; bytes:1
gbl_15_gbl_zSign EQU0x00000050 ; bytes:1
gbl_15_gbl_zSigZero EQU0x00000051 ; bytes:1
gbl_15_gbl_ret EQU0x00000030 ; bytes:4
gbl_indf EQU0x00000000 ; bytes:1
gbl_tmr0 EQU0x00000001 ; bytes:1
gbl_pcl EQU0x00000002 ; bytes:1
gbl_fsr EQU0x00000004 ; bytes:1
gbl_porta EQU0x00000005 ; bytes:1
gbl_portb EQU0x00000006 ; bytes:1
gbl_pclath EQU0x0000000A ; bytes:1
gbl_intcon EQU0x0000000B ; bytes:1
gbl_pir1 EQU0x0000000C ; bytes:1
gbl_pir2 EQU0x0000000D ; bytes:1
gbl_tmr1l EQU0x0000000E ; bytes:1
gbl_tmr1h EQU0x0000000F ; bytes:1
gbl_t1con EQU0x00000010 ; bytes:1
gbl_tmr2 EQU0x00000011 ; bytes:1
gbl_t2con EQU0x00000012 ; bytes:1
gbl_sspbuf EQU0x00000013 ; bytes:1
gbl_sspcon EQU0x00000014 ; bytes:1
gbl_ccpr1l EQU0x00000015 ; bytes:1
gbl_ccpr1h EQU0x00000016 ; bytes:1
gbl_ccp1con EQU0x00000017 ; bytes:1
gbl_rcsta EQU0x00000018 ; bytes:1
gbl_txreg EQU0x00000019 ; bytes:1
gbl_rcreg EQU0x0000001A ; bytes:1
gbl_adresh EQU0x0000001E ; bytes:1
gbl_adcon0 EQU0x0000001F ; bytes:1
gbl_option_reg EQU0x00000081 ; bytes:1
gbl_trisa EQU0x00000085 ; bytes:1
gbl_trisb EQU0x00000086 ; bytes:1
gbl_pie1 EQU0x0000008C ; bytes:1
gbl_pie2 EQU0x0000008D ; bytes:1
gbl_pcon EQU0x0000008E ; bytes:1
gbl_osccon EQU0x0000008F ; bytes:1
gbl_osctune EQU0x00000090 ; bytes:1
gbl_pr2 EQU0x00000092 ; bytes:1
gbl_sspadd EQU0x00000093 ; bytes:1
gbl_sspstat EQU0x00000094 ; bytes:1
gbl_txsta EQU0x00000098 ; bytes:1
gbl_spbrg EQU0x00000099 ; bytes:1
gbl_ansel EQU0x0000009B ; bytes:1
gbl_cmcon EQU0x0000009C ; bytes:1
gbl_cvrcon EQU0x0000009D ; bytes:1
gbl_adresl EQU0x0000009E ; bytes:1
gbl_adcon1 EQU0x0000009F ; bytes:1
gbl_wdtcon EQU0x00000105 ; bytes:1
gbl_eedata EQU0x0000010C ; bytes:1
gbl_eeadr EQU0x0000010D ; bytes:1
gbl_eedath EQU0x0000010E ; bytes:1
gbl_eeadrh EQU0x0000010F ; bytes:1
gbl_eecon1 EQU0x0000018C ; bytes:1
gbl_eecon2 EQU0x0000018D ; bytes:1
gbl_FCV_FLG_DIR_0 EQU0x00000052 ; bytes:1
gbl_FCV_END_TIMER EQU0x00000053 ; bytes:1
gbl_FCV_BARS EQU0x00000054 ; bytes:1
gbl_FCV_FLG_DIR_1 EQU0x00000055 ; bytes:1
gbl_FCV_SEC_DEL EQU0x00000056 ; bytes:1
gbl_FCV_SW EQU0x00000057 ; bytes:1
gbl_FCV_TEMP EQU0x00000039 ; bytes:2
gbl_FCV_TICK_DEL EQU0x0000003B ; bytes:2
gbl_FCV_STEP_ON EQU0x00000058 ; bytes:1
gbl_FCV_DEL_EXT EQU0x00000059 ; bytes:1
gbl_FCV_RUN EQU0x0000005A ; bytes:1
gbl_FCV_FLEX EQU0x0000005B ; bytes:1
gbl_FCV_DIR EQU0x0000005C ; bytes:1
gbl_FCV_SET_MIN EQU0x0000005D ; bytes:1
gbl_FCV_SET_ORE EQU0x0000005E ; bytes:1
gbl_FCV_COUNT EQU0x0000005F ; bytes:1
gbl_FCV_DEL_FLEX EQU0x00000060 ; bytes:1
gbl_FCV_STEP EQU0x0000003D ; bytes:2
gbl_FCV_DEGREE EQU0x00000061 ; bytes:1
gbl_FCV_VAR0 EQU0x0000003F ; bytes:2
gbl_FCV_SET EQU0x00000062 ; bytes:1
gbl_FCV_SEC EQU0x00000063 ; bytes:1
gbl_FCV_RUN_DEL EQU0x00000064 ; bytes:1
gbl_FCV_TICK_CLOCK EQU0x00000041 ; bytes:2
gbl_FCV_STEP_OFF EQU0x00000065 ; bytes:1
gbl_FCV_TICK EQU0x00000043 ; bytes:2
gbl_FCV_MIN EQU0x00000066 ; bytes:1
gbl_FCV_EXT EQU0x00000067 ; bytes:1
gbl_FCV_FLG_BAR EQU0x00000068 ; bytes:1
gbl_FCV_START EQU0x00000069 ; bytes:1
gbl_FCV_ORE EQU0x0000006A ; bytes:1
gbl_FCV_MENU EQU0x00000045 ; bytes:2
gbl_FCV_SET_DEGREE EQU0x0000006B ; bytes:1
gbl_FCV_HOME EQU0x0000006C ; bytes:1
gbl_QuadEnc_5_encoder_en EQU0x0000006D ; bytes:1
gbl_QuadEnc_5_encoder_mask EQU0x0000006E ; bytes:1
gbl_QuadEnc_5_encoder_count EQU0x00000047 ; bytes:2
Wdt_Delay__0003E_arg_delay EQU0x00000077 ; bytes:1
Wdt_Delay__0003E_1_i EQU0x00000078 ; bytes:1
CompTempVar2196 EQU0x000000A1 ; bytes:1
CompTempVar2197 EQU0x000000A1 ; bytes:1
CompTempVar2198 EQU0x000000A1 ; bytes:1
CompTempVar2203 EQU0x000000A1 ; bytes:1
CompTempVar2204 EQU0x000000A2 ; bytes:1
CompTempVar2207 EQU0x000000A1 ; bytes:1
CompTempVar2208 EQU0x000000A1 ; bytes:1
CompTempVar2210 EQU0x000000A1 ; bytes:1
CompTempVar2211 EQU0x000000A1 ; bytes:1
CompTempVar2235 EQU0x0000006F ; bytes:1
CompTempVar2236 EQU0x0000006F ; bytes:1
CompTempVar2238 EQU0x0000006F ; bytes:1
CompTempVar2239 EQU0x00000070 ; bytes:1
CompTempVar2240 EQU0x0000006F ; bytes:1
CompTempVar2241 EQU0x0000006F ; bytes:1
CompTempVar2242 EQU0x0000006F ; bytes:1
CompTempVarRet2250 EQU0x00000071 ; bytes:2
CompTempVar2243 EQU0x0000006F ; bytes:1
CompTempVarRet2271 EQU0x0000006F ; bytes:2
CompTempVar2247 EQU0x0000006F ; bytes:1
CompTempVar2248 EQU0x0000006F ; bytes:1
FCD_LCDDis_0005F_arg_in EQU0x00000078 ; bytes:1
FCD_LCDDis_0005F_arg_mask EQU0x00000079 ; bytes:1
FCD_LCDDis_0005F_1_pt EQU0x0000007A ; bytes:1
FCD_LCDDis_00053_arg_Character EQU0x00000072 ; bytes:1
FCD_LCDDis_00052_arg_x EQU0x00000075 ; bytes:1
FCD_LCDDis_00052_arg_y EQU0x00000076 ; bytes:1
FCD_LCDDis_00058_arg_Number EQU0x0000006F ; bytes:2
FCD_LCDDis_00058_1_tmp_int EQU0x00000071 ; bytes:2
FCD_LCDDis_00058_1_tmp_byte EQU0x00000073 ; bytes:1
CompTempVar2251 EQU0x00000074 ; bytes:1
CompTempVar2254 EQU0x00000078 ; bytes:1
CompTempVar2257 EQU0x00000078 ; bytes:1
CompTempVar2258 EQU0x00000079 ; bytes:1
CompTempVar2261 EQU0x00000074 ; bytes:1
CompTempVar2262 EQU0x00000078 ; bytes:1
CompTempVar2263 EQU0x00000079 ; bytes:1
CompTempVar2266 EQU0x00000074 ; bytes:1
CompTempVar2267 EQU0x00000078 ; bytes:1
CompTempVar2268 EQU0x00000079 ; bytes:1
FCD_LCDDis_00064_arg_Line EQU0x00000072 ; bytes:1
FCD_LCDDis_00064_1_count EQU0x00000073 ; bytes:1
FCD_LCDDis_00064_1_rowcount EQU0x00000074 ; bytes:1
FCD_LCDDis_0005D_arg_nIdx EQU0x0000006F ; bytes:1
FCD_LCDDis_0005D_arg_d0 EQU0x00000070 ; bytes:1
FCD_LCDDis_0005D_arg_d1 EQU0x00000071 ; bytes:1
FCD_LCDDis_0005D_arg_d2 EQU0x00000072 ; bytes:1
FCD_LCDDis_0005D_arg_d3 EQU0x00000073 ; bytes:1
FCD_LCDDis_0005D_arg_d4 EQU0x00000074 ; bytes:1
FCD_LCDDis_0005D_arg_d5 EQU0x00000075 ; bytes:1
FCD_LCDDis_0005D_arg_d6 EQU0x00000076 ; bytes:1
FCD_LCDDis_0005D_arg_d7 EQU0x00000077 ; bytes:1
CompTempVar2275 EQU0x0000007A ; bytes:1
CompTempVar2276 EQU0x0000007B ; bytes:1
CompTempVarRet2214 EQU0x000000A5 ; bytes:1
FCD_QuadEn_00051_1_maskcheck EQU0x000000A1 ; bytes:1
CompTempVar2216 EQU0x000000A2 ; bytes:1
CompTempVar2217 EQU0x000000A3 ; bytes:1
CompTempVar2218 EQU0x000000A4 ; bytes:1
FCD_SWITCH_00057_1_switchval EQU0x0000006F ; bytes:1
FCD_SWITCH_00057_1_del_count EQU0x00000070 ; bytes:2
FCD_SWITCH_00057_1_old_switchval EQU0x00000072 ; bytes:1
FC_CAL_EE__00068_arg_Address EQU0x00000071 ; bytes:2
CompTempVarRet2283 EQU0x00000074 ; bytes:1
FC_CAL_EE__00068_1_data EQU0x00000073 ; bytes:1
FC_CAL_EE__00069_arg_Address EQU0x00000073 ; bytes:2
FC_CAL_EE__00069_arg_Data EQU0x00000075 ; bytes:1
FC_CAL_EE__00069_1_bInterr_0006A EQU0x00000076 ; bytes:1
FCD_EEPROM_00055_arg_addr EQU0x0000006F ; bytes:2
FCD_EEPROM_00056_arg_addr EQU0x0000006F ; bytes:2
FCD_EEPROM_00056_arg_data EQU0x00000071 ; bytes:2
CompTempVar2284 EQU0x0000006F ; bytes:1
CompTempVar2286 EQU0x0000006F ; bytes:1
CompTempVar2288 EQU0x00000071 ; bytes:1
interrupt_1_mxtmp EQU0x000000A0 ; bytes:1
delay_us_00000_arg_del EQU0x00000073 ; bytes:1
delay_10us_00000_arg_del EQU0x0000007B ; bytes:1
delay_ms_00000_arg_del EQU0x00000079 ; bytes:1
delay_s_00000_arg_del EQU0x0000006F ; bytes:1
Int1Context EQU0x0000007F ; bytes:1
Int1BContext EQU0x00000034 ; bytes:3
ORG 0x00000000
BSF PCLATH,3
GOTO_startup
ORG 0x00000004
MOVWF Int1Context
SWAPF STATUS, W
BCF STATUS, RP0
BCF STATUS, RP1
MOVWF Int1BContext
SWAPF PCLATH, W
MOVWF Int1BContext+D'1'
SWAPF FSR, W
MOVWF Int1BContext+D'2'
BSF PCLATH,3
BCF PCLATH,4
GOTOinterrupt
ORG 0x00000010
delay_ms_00000
; { delay_ms ; function begin
MOVF delay_ms_00000_arg_del, F
BTFSS STATUS,Z
GOTOlabel1
RETURN
label1
MOVLW 0xF9
label2
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
ADDLW 0xFF
BTFSS STATUS,Z
GOTOlabel2
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
DECFSZ delay_ms_00000_arg_del, F
GOTOlabel1
RETURN
; } delay_ms function end
ORG 0x0000003C
delay_10us_00000
; { delay_10us ; function begin
MOVF delay_10us_00000_arg_del, F
BTFSS STATUS,Z
GOTOlabel3
RETURN
label3
MOVLW 0x09
label4
NOP
ADDLW 0xFF
BTFSS STATUS,Z
GOTOlabel4
NOP
NOP
DECFSZ delay_10us_00000_arg_del, F
GOTOlabel3
RETURN
; } delay_10us function end
ORG 0x0000004A
delay_us_00000
; { delay_us ; function begin
label5
NOP
NOP
DECFSZ delay_us_00000_arg_del, F
GOTOlabel5
RETURN
; } delay_us function end
ORG 0x0000004F
delay_s_00000
; { delay_s ; function begin
label6
MOVLW 0xFA
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
MOVLW 0xFA
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
MOVLW 0xFA
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
MOVLW 0xFA
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
DECFSZ delay_s_00000_arg_del, F
GOTOlabel6
RETURN
; } delay_s function end
ORG 0x0000005E
FCD_QuadEn_00051
; { FCD_QuadEnc0_Check_For_Changes ; function begin
BSF STATUS, RP0
BCF STATUS, RP1
CLRF FCD_QuadEn_00051_1_maskcheck
BCF STATUS, RP0
MOVF gbl_QuadEnc_5_encoder_en, F
BTFSC STATUS,Z
GOTOlabel20
BTFSS gbl_portb,6
GOTOlabel7
MOVLW 0x01
BSF STATUS, RP0
IORWF FCD_QuadEn_00051_1_maskcheck, W
MOVWF FCD_QuadEn_00051_1_maskcheck
label7
BCF STATUS, RP0
BTFSS gbl_portb,7
GOTOlabel8
MOVLW 0x02
BSF STATUS, RP0
IORWF FCD_QuadEn_00051_1_maskcheck, W
MOVWF FCD_QuadEn_00051_1_maskcheck
label8
BCF STATUS, RP0
MOVF gbl_QuadEnc_5_encoder_mask, W
BSF STATUS, RP0
XORWF FCD_QuadEn_00051_1_maskcheck, W
BTFSS STATUS,Z
GOTOlabel9
CLRF CompTempVarRet2214
RETURN
label9
CLRF CompTempVar2216
BCF STATUS, RP0
COMF gbl_QuadEnc_5_encoder_mask, W
BSF STATUS, RP0
MOVWF CompTempVar2217
COMF CompTempVar2216, F
MOVLW 0x03
ANDWF CompTempVar2217, F
CLRF CompTempVar2218
MOVF FCD_QuadEn_00051_1_maskcheck, W
XORWF CompTempVar2217, W
BTFSC STATUS,Z
MOVF CompTempVar2218, W
BTFSS STATUS,Z
GOTOlabel10
MOVLW 0xFF
MOVWF CompTempVarRet2214
RETURN
label10
MOVF FCD_QuadEn_00051_1_maskcheck, W
XORLW 0x00
BTFSC STATUS,Z
GOTOlabel11
XORLW 0x01
BTFSC STATUS,Z
GOTOlabel13
XORLW 0x02
BTFSC STATUS,Z
GOTOlabel15
XORLW 0x01
BTFSC STATUS,Z
GOTOlabel17
GOTOlabel19
label11
BCF STATUS, RP0
MOVF gbl_QuadEnc_5_encoder_mask, W
XORLW 0x02
BTFSS STATUS,Z
GOTOlabel12
MOVF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
INCF gbl_QuadEnc_5_encoder_count, F
BTFSC STATUS,Z
INCF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label12
MOVLW 0x01
SUBWF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
BTFSS STATUS,C
DECF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label13
BCF STATUS, RP0
MOVF gbl_QuadEnc_5_encoder_mask, F
BTFSS STATUS,Z
GOTOlabel14
MOVF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
INCF gbl_QuadEnc_5_encoder_count, F
BTFSC STATUS,Z
INCF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label14
MOVLW 0x01
SUBWF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
BTFSS STATUS,C
DECF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label15
BCF STATUS, RP0
DECF gbl_QuadEnc_5_encoder_mask, W
BTFSS STATUS,Z
GOTOlabel16
MOVF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
INCF gbl_QuadEnc_5_encoder_count, F
BTFSC STATUS,Z
INCF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label16
MOVLW 0x01
SUBWF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
BTFSS STATUS,C
DECF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label17
BCF STATUS, RP0
MOVF gbl_QuadEnc_5_encoder_mask, W
XORLW 0x03
BTFSS STATUS,Z
GOTOlabel18
MOVF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
INCF gbl_QuadEnc_5_encoder_count, F
BTFSC STATUS,Z
INCF gbl_QuadEnc_5_encoder_count+D'1', F
GOTOlabel19
label18
MOVLW 0x01
SUBWF gbl_QuadEnc_5_encoder_count, F
MOVF gbl_QuadEnc_5_encoder_count+D'1', F
BTFSS STATUS,C
DECF gbl_QuadEnc_5_encoder_count+D'1', F
label19
BSF STATUS, RP0
MOVF FCD_QuadEn_00051_1_maskcheck, W
BCF STATUS, RP0
MOVWF gbl_QuadEnc_5_encoder_mask
MOVLW 0x01
BSF STATUS, RP0
MOVWF CompTempVarRet2214
RETURN
label20
BSF STATUS, RP0
CLRF CompTempVarRet2214
RETURN
; } FCD_QuadEnc0_Check_For_Changes function end
ORG 0x000000E6
FCM_START_00000
; { FCM_START ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF gbl_FCV_SET, F
BTFSC STATUS,Z
GOTOlabel22
MOVF gbl_FCV_MENU, F
MOVF gbl_FCV_MENU+D'1', F
INCF gbl_FCV_MENU, F
BTFSC STATUS,Z
INCF gbl_FCV_MENU+D'1', F
MOVF gbl_FCV_MENU+D'1', W
XORLW 0x80
BSF STATUS, RP0
MOVWF CompTempVar2196
MOVLW 0x80
SUBWF CompTempVar2196, W
BTFSS STATUS,Z
GOTOlabel21
MOVLW 0x06
BCF STATUS, RP0
SUBWF gbl_FCV_MENU, W
label21
BTFSS STATUS,C
RETURN
BCF STATUS, RP0
CLRF gbl_FCV_MENU
CLRF gbl_FCV_MENU+D'1'
RETURN
label22
BSF STATUS, RP0
CLRF CompTempVar2197
BCF STATUS, RP0
MOVF gbl_FCV_START, F
BTFSS STATUS,Z
GOTOlabel23
BSF STATUS, RP0
INCF CompTempVar2197, F
label23
BSF STATUS, RP0
MOVF CompTempVar2197, W
BCF STATUS, RP0
MOVWF gbl_FCV_START
MOVF gbl_FCV_START, F
BTFSC STATUS,Z
GOTOlabel24
MOVLW 0x01
MOVWF gbl_FCV_RUN
MOVLW 0xFB
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xFB
BCF STATUS, RP0
ANDWF gbl_porta, W
BSF STATUS, RP0
MOVWF CompTempVar2198
MOVLW 0x04
IORWF CompTempVar2198, W
BCF STATUS, RP0
MOVWF gbl_porta
RETURN
label24
CLRF gbl_FCV_RUN
MOVLW 0xFB
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xFB
BCF STATUS, RP0
ANDWF gbl_porta, W
MOVWF gbl_porta
RETURN
; } FCM_START function end
ORG 0x0000012A
FCM_RUN_00000
; { FCM_RUN ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF gbl_FCV_START, F
BTFSC STATUS,Z
GOTOlabel34
MOVF gbl_FCV_TICK, F
MOVF gbl_FCV_TICK+D'1', F
INCF gbl_FCV_TICK, F
BTFSC STATUS,Z
INCF gbl_FCV_TICK+D'1', F
MOVF gbl_FCV_TICK_CLOCK, F
MOVF gbl_FCV_TICK_CLOCK+D'1', F
INCF gbl_FCV_TICK_CLOCK, F
BTFSC STATUS,Z
INCF gbl_FCV_TICK_CLOCK+D'1', F
MOVF gbl_FCV_TICK_CLOCK, W
XORLW 0x50
MOVLW 0xC3
BTFSC STATUS,Z
XORWF gbl_FCV_TICK_CLOCK+D'1', W
BTFSS STATUS,Z
GOTOlabel28
INCF gbl_FCV_SEC, W
MOVWF gbl_FCV_SEC
CLRF gbl_FCV_TICK_CLOCK
CLRF gbl_FCV_TICK_CLOCK+D'1'
MOVF gbl_FCV_SEC, W
XORLW 0x3C
BTFSS STATUS,Z
GOTOlabel28
INCF gbl_FCV_MIN, W
MOVWF gbl_FCV_MIN
CLRF gbl_FCV_SEC
BSF STATUS, RP0
CLRF CompTempVar2204
BCF STATUS, RP0
MOVF gbl_FCV_SET_ORE, W
SUBWF gbl_FCV_ORE, W
BTFSS STATUS,Z
GOTOlabel25
BSF STATUS, RP0
INCF CompTempVar2204, F
label25
BSF STATUS, RP0
CLRF CompTempVar2203
BCF STATUS, RP0
MOVF gbl_FCV_SET_MIN, W
SUBWF gbl_FCV_MIN, W
BTFSS STATUS,Z
GOTOlabel26
BSF STATUS, RP0
INCF CompTempVar2203, F
label26
BSF STATUS, RP0
MOVF CompTempVar2203, W
ANDWF CompTempVar2204, W
BTFSC STATUS,Z
GOTOlabel27
BCF STATUS, RP0
CLRF gbl_FCV_START
CLRF gbl_FCV_RUN
MOVLW 0x01
MOVWF gbl_FCV_END_TIMER
GOTOlabel28
label27
BCF STATUS, RP0
MOVF gbl_FCV_MIN, W
XORLW 0x3C
BTFSS STATUS,Z
GOTOlabel28
INCF gbl_FCV_ORE, W
MOVWF gbl_FCV_ORE
CLRF gbl_FCV_MIN
MOVF gbl_FCV_ORE, W
XORLW 0x18
BTFSC STATUS,Z
CLRF gbl_FCV_ORE
label28
MOVF gbl_FCV_RUN, F
BTFSC STATUS,Z
GOTOlabel34
MOVF gbl_FCV_STEP_ON, W
XORWF gbl_FCV_TICK, W
BTFSC STATUS,Z
MOVF gbl_FCV_TICK+D'1', W
BTFSS STATUS,Z
GOTOlabel33
MOVLW 0xEF
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xEF
BCF STATUS, RP0
ANDWF gbl_porta, W
MOVWF gbl_porta
CLRF gbl_FCV_TICK
CLRF gbl_FCV_TICK+D'1'
MOVF gbl_FCV_STEP, F
MOVF gbl_FCV_STEP+D'1', F
INCF gbl_FCV_STEP, F
BTFSC STATUS,Z
INCF gbl_FCV_STEP+D'1', F
MOVF gbl_FCV_STEP, W
XORLW 0x18
BTFSS gbl_FCV_STEP+D'1',7
MOVLW 0x01
BTFSC STATUS,Z
XORWF gbl_FCV_STEP+D'1', W
BTFSS STATUS,Z
GOTOlabel30
CLRF gbl_FCV_STEP
CLRF gbl_FCV_STEP+D'1'
INCF gbl_FCV_DEGREE, W
MOVWF gbl_FCV_DEGREE
MOVF gbl_FCV_DIR, F
BTFSC STATUS,Z
GOTOlabel33
MOVF gbl_FCV_SET_DEGREE, W
XORWF gbl_FCV_DEGREE, W
BTFSS STATUS,Z
GOTOlabel33
CLRF gbl_FCV_DEGREE
CLRF gbl_FCV_DIR
CLRF gbl_FCV_RUN
MOVLW 0x01
MOVWF gbl_FCV_RUN_DEL
MOVWF gbl_FCV_FLEX
MOVF gbl_FCV_DIR, F
BTFSC STATUS,Z
GOTOlabel29
MOVLW 0xF7
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xF7
BCF STATUS, RP0
ANDWF gbl_porta, W
BSF STATUS, RP0
MOVWF CompTempVar2207
MOVLW 0x08
IORWF CompTempVar2207, W
BCF STATUS, RP0
MOVWF gbl_porta
GOTOlabel33
label29
MOVLW 0xF7
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xF7
BCF STATUS, RP0
ANDWF gbl_porta, W
MOVWF gbl_porta
GOTOlabel33
label30
MOVF gbl_FCV_DIR, F
BTFSS STATUS,Z
GOTOlabel33
MOVLW 0x20
BSF STATUS, RP0
IORWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0x20
BCF STATUS, RP0
ANDWF gbl_porta, W
BSF STATUS, RP0
MOVWF CompTempVar2208
BCF STATUS, RP0
CLRF gbl_FCV_SW
MOVLW 0x20
BSF STATUS, RP0
SUBWF CompTempVar2208, W
BTFSS STATUS,Z
GOTOlabel31
BCF STATUS, RP0
INCF gbl_FCV_SW, F
label31
BCF STATUS, RP0
MOVF gbl_FCV_SW, F
BTFSS STATUS,Z
GOTOlabel33
CLRF gbl_FCV_STEP
CLRF gbl_FCV_STEP+D'1'
CLRF gbl_FCV_DEGREE
MOVLW 0x01
MOVWF gbl_FCV_DIR
CLRF gbl_FCV_RUN
MOVLW 0x01
MOVWF gbl_FCV_RUN_DEL
MOVWF gbl_FCV_EXT
MOVF gbl_FCV_DIR, F
BTFSC STATUS,Z
GOTOlabel32
MOVLW 0xF7
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xF7
BCF STATUS, RP0
ANDWF gbl_porta, W
BSF STATUS, RP0
MOVWF CompTempVar2210
MOVLW 0x08
IORWF CompTempVar2210, W
BCF STATUS, RP0
MOVWF gbl_porta
GOTOlabel33
label32
MOVLW 0xF7
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xF7
BCF STATUS, RP0
ANDWF gbl_porta, W
MOVWF gbl_porta
label33
MOVF gbl_FCV_STEP_OFF, W
XORWF gbl_FCV_TICK, W
BTFSC STATUS,Z
MOVF gbl_FCV_TICK+D'1', W
BTFSS STATUS,Z
GOTOlabel34
MOVLW 0xEF
BSF STATUS, RP0
ANDWF gbl_trisa, W
MOVWF gbl_trisa
MOVLW 0xEF
BCF STATUS, RP0
ANDWF gbl_porta, W
BSF STATUS, RP0
MOVWF CompTempVar2211
MOVLW 0x10
IORWF CompTempVar2211, W
BCF STATUS, RP0
MOVWF gbl_porta
label34
MOVF gbl_FCV_RUN_DEL, F
BTFSC STATUS,Z
RETURN
MOVF gbl_FCV_TICK_DEL, F
MOVF gbl_FCV_TICK_DEL+D'1', F
INCF gbl_FCV_TICK_DEL, F
BTFSC STATUS,Z
INCF gbl_FCV_TICK_DEL+D'1', F
MOVF gbl_FCV_TICK_DEL, W
XORLW 0x50
MOVLW 0xC3
BTFSC STATUS,Z
XORWF gbl_FCV_TICK_DEL+D'1', W
BTFSS STATUS,Z
RETURN
INCF gbl_FCV_SEC_DEL, W
MOVWF gbl_FCV_SEC_DEL
MOVF gbl_FCV_DIR, F
BTFSC STATUS,Z
GOTOlabel35
MOVF gbl_FCV_DEL_EXT, W
XORWF gbl_FCV_SEC_DEL, W
BTFSS STATUS,Z
RETURN
MOVLW 0x01
MOVWF gbl_FCV_RUN
CLRF gbl_FCV_RUN_DEL
CLRF gbl_FCV_SEC_DEL
CLRF gbl_FCV_EXT
RETURN
label35
MOVF gbl_FCV_DEL_FLEX, W
XORWF gbl_FCV_SEC_DEL, W
BTFSS STATUS,Z
RETURN
MOVLW 0x01
MOVWF gbl_FCV_RUN
CLRF gbl_FCV_RUN_DEL
CLRF gbl_FCV_SEC_DEL
CLRF gbl_FCV_FLEX
RETURN
; } FCM_RUN function end
ORG 0x00000235
FCM_ENC_00000
; { FCM_ENC ; function begin
CALL FCD_QuadEn_00051
RETURN
; } FCM_ENC function end
ORG 0x00000237
__div_16_1_00003
; { __div_16_16 ; function begin
CLRF __div_16_1_00003_1_r
CLRF __div_16_1_00003_1_r+D'1'
CLRF CompTempVarRet212
CLRF CompTempVarRet212+D'1'
CLRF __div_16_1_00003_1_i
label36
BTFSC __div_16_1_00003_1_i,4
RETURN
BCF STATUS,C
RLF CompTempVarRet212, F
RLF CompTempVarRet212+D'1', F
RLF __div_16_1_00003_arg_a, F
RLF __div_16_1_00003_arg_a+D'1', F
RLF __div_16_1_00003_1_r, F
RLF __div_16_1_00003_1_r+D'1', F
MOVF __div_16_1_00003_arg_b+D'1', W
SUBWF __div_16_1_00003_1_r+D'1', W
BTFSS STATUS,Z
GOTOlabel37
MOVF __div_16_1_00003_arg_b, W
SUBWF __div_16_1_00003_1_r, W
label37
BTFSS STATUS,C
GOTOlabel38
MOVF __div_16_1_00003_arg_b, W
SUBWF __div_16_1_00003_1_r, F
MOVF __div_16_1_00003_arg_b+D'1', W
BTFSS STATUS,C
DECF __div_16_1_00003_1_r+D'1', F
SUBWF __div_16_1_00003_1_r+D'1', F
BSF CompTempVarRet212,0
label38
INCF __div_16_1_00003_1_i, F
GOTOlabel36
; } __div_16_16 function end
ORG 0x00000256
Wdt_Delay__0003E
; { Wdt_Delay_Ms ; function begin
CLRF Wdt_Delay__0003E_1_i
label39
MOVF Wdt_Delay__0003E_arg_delay, W
SUBWF Wdt_Delay__0003E_1_i, W
BTFSC STATUS,C
RETURN
CLRWDT
MOVLW 0x01
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
INCF Wdt_Delay__0003E_1_i, F
GOTOlabel39
; } Wdt_Delay_Ms function end
ORG 0x00000261
FC_CAL_EE__00069
; { FC_CAL_EE_Write ; function begin
label40
BSF STATUS, RP0
BSF STATUS, RP1
BTFSC gbl_eecon1,1
GOTOlabel40
MOVF FC_CAL_EE__00069_arg_Address, W
BCF STATUS, RP0
MOVWF gbl_eeadr
MOVF FC_CAL_EE__00069_arg_Data, W
MOVWF gbl_eedata
BSF STATUS, RP0
BCF gbl_eecon1,7
BSF gbl_eecon1,2
MOVLW 0x80
ANDWF gbl_intcon, W
MOVWF FC_CAL_EE__00069_1_bInterr_0006A
BCF gbl_intcon,7
MOVLW 0x55
MOVWF gbl_eecon2
MOVLW 0xAA
MOVWF gbl_eecon2
BSF gbl_eecon1,1
label41
BTFSC gbl_eecon1,1
GOTOlabel41
MOVF FC_CAL_EE__00069_1_bInterr_0006A, F
BTFSC STATUS,Z
GOTOlabel42
BSF gbl_intcon,7
label42
BCF gbl_eecon1,2
RETURN
; } FC_CAL_EE_Write function end
ORG 0x0000027E
FC_CAL_EE__00068
; { FC_CAL_EE_Read ; function begin
CLRF FC_CAL_EE__00068_1_data
MOVF FC_CAL_EE__00068_arg_Address, W
BCF STATUS, RP0
BSF STATUS, RP1
MOVWF gbl_eeadr
BSF STATUS, RP0
BCF gbl_eecon1,7
BSF gbl_eecon1,0
BCF STATUS, RP0
MOVF gbl_eedata, W
MOVWF FC_CAL_EE__00068_1_data
MOVF FC_CAL_EE__00068_1_data, W
MOVWF CompTempVarRet2283
RETURN
; } FC_CAL_EE_Read function end
ORG 0x0000028C
FCD_LCDDis_0005F
; { FCD_LCDDisplay0_RawSend ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
BCF gbl_porta,0
BCF gbl_porta,1
BCF gbl_portb,3
BCF gbl_portb,2
BCF gbl_portb,5
BCF gbl_portb,4
SWAPF FCD_LCDDis_0005F_arg_in, W
ANDLW 0x0F
MOVWF FCD_LCDDis_0005F_1_pt
MOVLW 0x0F
ANDWF FCD_LCDDis_0005F_1_pt, F
BTFSC FCD_LCDDis_0005F_1_pt,0
BSF gbl_porta,0
BTFSC FCD_LCDDis_0005F_1_pt,1
BSF gbl_porta,1
BTFSC FCD_LCDDis_0005F_1_pt,2
BSF gbl_portb,3
BTFSC FCD_LCDDis_0005F_1_pt,3
BSF gbl_portb,2
MOVF FCD_LCDDis_0005F_arg_mask, F
BTFSS STATUS,Z
BSF gbl_portb,5
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
BSF gbl_portb,4
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
BCF gbl_portb,4
MOVLW 0x0F
ANDWF FCD_LCDDis_0005F_arg_in, W
MOVWF FCD_LCDDis_0005F_1_pt
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
BCF gbl_porta,0
BCF gbl_porta,1
BCF gbl_portb,3
BCF gbl_portb,2
BCF gbl_portb,5
BCF gbl_portb,4
BTFSC FCD_LCDDis_0005F_1_pt,0
BSF gbl_porta,0
BTFSC FCD_LCDDis_0005F_1_pt,1
BSF gbl_porta,1
BTFSC FCD_LCDDis_0005F_1_pt,2
BSF gbl_portb,3
BTFSC FCD_LCDDis_0005F_1_pt,3
BSF gbl_portb,2
MOVF FCD_LCDDis_0005F_arg_mask, F
BTFSS STATUS,Z
BSF gbl_portb,5
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
BSF gbl_portb,4
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
BCF gbl_portb,4
MOVLW 0x0A
MOVWF delay_10us_00000_arg_del
CALL delay_10us_00000
RETURN
; } FCD_LCDDisplay0_RawSend function end
ORG 0x000002CF
FCD_SWITCH_00057
; { FCD_SWITCH1_WaitUntilLow ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
CLRF FCD_SWITCH_00057_1_switchval
CLRF FCD_SWITCH_00057_1_del_count
CLRF FCD_SWITCH_00057_1_del_count+D'1'
BSF STATUS, RP0
BSF gbl_trisb,1
label43
BCF STATUS, RP0
MOVF FCD_SWITCH_00057_1_switchval, F
BTFSS STATUS,Z
RETURN
MOVLW 0x02
ANDWF gbl_portb, W
MOVWF FCD_SWITCH_00057_1_switchval
CLRF FCD_SWITCH_00057_1_del_count
CLRF FCD_SWITCH_00057_1_del_count+D'1'
MOVLW 0xFF
MOVWF FCD_SWITCH_00057_1_old_switchval
label44
MOVLW 0x11
SUBWF FCD_SWITCH_00057_1_del_count+D'1', W
BTFSS STATUS,Z
GOTOlabel45
MOVLW 0x94
SUBWF FCD_SWITCH_00057_1_del_count, W
label45
BTFSC STATUS,C
GOTOlabel43
MOVLW 0x0A
MOVWF delay_us_00000_arg_del
CALL delay_us_00000
MOVLW 0x02
ANDWF gbl_portb, W
MOVWF FCD_SWITCH_00057_1_switchval
MOVF FCD_SWITCH_00057_1_old_switchval, W
XORWF FCD_SWITCH_00057_1_switchval, W
BTFSS STATUS,Z
GOTOlabel46
INCF FCD_SWITCH_00057_1_del_count, F
BTFSS STATUS,Z
GOTOlabel47
INCF FCD_SWITCH_00057_1_del_count+D'1', F
GOTOlabel47
label46
CLRF FCD_SWITCH_00057_1_del_count
CLRF FCD_SWITCH_00057_1_del_count+D'1'
label47
MOVF FCD_SWITCH_00057_1_switchval, W
MOVWF FCD_SWITCH_00057_1_old_switchval
GOTOlabel44
; } FCD_SWITCH1_WaitUntilLow function end
ORG 0x000002FD
FCD_QuadEn_0005E
; { FCD_QuadEnc0_Enable ; function begin
MOVLW 0x01
BCF STATUS, RP0
BCF STATUS, RP1
MOVWF gbl_QuadEnc_5_encoder_en
CLRF gbl_QuadEnc_5_encoder_mask
BTFSS gbl_portb,6
GOTOlabel48
MOVLW 0x01
IORWF gbl_QuadEnc_5_encoder_mask, W
MOVWF gbl_QuadEnc_5_encoder_mask
label48
BTFSS gbl_portb,7
RETURN
MOVLW 0x02
IORWF gbl_QuadEnc_5_encoder_mask, W
MOVWF gbl_QuadEnc_5_encoder_mask
RETURN
; } FCD_QuadEnc0_Enable function end
ORG 0x0000030D
FCD_QuadEn_0005A
; { FCD_QuadEnc0_Reset_Counter ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
CLRF gbl_QuadEnc_5_encoder_count
CLRF gbl_QuadEnc_5_encoder_count+D'1'
RETURN
; } FCD_QuadEnc0_Reset_Counter function end
ORG 0x00000312
FCD_QuadEn_00059
; { FCD_QuadEnc0_Read_Counter ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF gbl_QuadEnc_5_encoder_count, W
MOVWF CompTempVarRet2271
MOVF gbl_QuadEnc_5_encoder_count+D'1', W
MOVWF CompTempVarRet2271+D'1'
RETURN
; } FCD_QuadEnc0_Read_Counter function end
ORG 0x00000319
FCD_LCDDis_0005D
; { FCD_LCDDisplay0_RAM_Write ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF FCD_LCDDis_0005D_arg_nIdx, W
MOVWF CompTempVar2275
CLRF CompTempVar2276
RLF CompTempVar2275, F
RLF CompTempVar2276, F
RLF CompTempVar2275, F
RLF CompTempVar2276, F
RLF CompTempVar2275, F
RLF CompTempVar2276, F
MOVLW 0xF8
ANDWF CompTempVar2275, W
ADDLW 0x40
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
MOVF FCD_LCDDis_0005D_arg_d0, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d1, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d2, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d3, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d4, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d5, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d6, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_0005D_arg_d7, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x01
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
MOVLW 0x02
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF delay_ms_00000_arg_del
CALL delay_ms_00000
RETURN
; } FCD_LCDDisplay0_RAM_Write function end
ORG 0x00000364
FCD_LCDDis_0005C
; { FCD_LCDDisplay0_Start ; function begin
BSF STATUS, RP0
BCF STATUS, RP1
BCF gbl_trisa,0
BCF STATUS, RP0
BCF gbl_porta,0
BSF STATUS, RP0
BCF gbl_trisa,1
BCF STATUS, RP0
BCF gbl_porta,1
BSF STATUS, RP0
BCF gbl_trisb,3
BCF STATUS, RP0
BCF gbl_portb,3
BSF STATUS, RP0
BCF gbl_trisb,2
BCF STATUS, RP0
BCF gbl_portb,2
BSF STATUS, RP0
BCF gbl_trisb,5
BCF STATUS, RP0
BCF gbl_portb,5
BSF STATUS, RP0
BCF gbl_trisb,4
BCF STATUS, RP0
BCF gbl_portb,4
MOVLW 0x0C
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x33
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x33
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x32
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x2C
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x06
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x0C
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x01
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x02
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
RETURN
; } FCD_LCDDisplay0_Start function end
ORG 0x000003B9
FCD_LCDDis_00058
; { FCD_LCDDisplay0_PrintNumber ; function begin
BTFSS FCD_LCDDis_00058_arg_Number+D'1',7
GOTOlabel49
MOVLW 0x2D
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVF FCD_LCDDis_00058_arg_Number, W
SUBLW 0x00
MOVWF CompTempVar2251
COMF FCD_LCDDis_00058_arg_Number+D'1', F
BTFSC STATUS,C
INCF FCD_LCDDis_00058_arg_Number+D'1', F
MOVF CompTempVar2251, W
MOVWF FCD_LCDDis_00058_arg_Number
label49
MOVF FCD_LCDDis_00058_arg_Number, W
MOVWF FCD_LCDDis_00058_1_tmp_int
MOVF FCD_LCDDis_00058_arg_Number+D'1', W
MOVWF FCD_LCDDis_00058_1_tmp_int+D'1'
MOVLW 0x27
SUBWF FCD_LCDDis_00058_arg_Number+D'1', W
BTFSS STATUS,Z
GOTOlabel50
MOVLW 0x10
SUBWF FCD_LCDDis_00058_arg_Number, W
label50
BTFSS STATUS,C
GOTOlabel54
BTFSC FCD_LCDDis_00058_arg_Number+D'1',7
GOTOlabel54
CLRF CompTempVar2254
MOVF FCD_LCDDis_00058_1_tmp_int, W
MOVWF __div_16_1_00003_arg_a
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', W
MOVWF __div_16_1_00003_arg_a+D'1'
BTFSS FCD_LCDDis_00058_1_tmp_int+D'1',7
GOTOlabel51
COMF __div_16_1_00003_arg_a, F
COMF __div_16_1_00003_arg_a+D'1', F
INCF __div_16_1_00003_arg_a, F
BTFSC STATUS,Z
INCF __div_16_1_00003_arg_a+D'1', F
INCF CompTempVar2254, F
label51
MOVLW 0x10
MOVWF __div_16_1_00003_arg_b
MOVLW 0x27
MOVWF __div_16_1_00003_arg_b+D'1'
CALL __div_16_1_00003
MOVF CompTempVarRet212, W
MOVWF FCD_LCDDis_00058_1_tmp_byte
BTFSS CompTempVar2254,0
GOTOlabel52
COMF FCD_LCDDis_00058_1_tmp_byte, F
INCF FCD_LCDDis_00058_1_tmp_byte, F
label52
MOVF FCD_LCDDis_00058_1_tmp_byte, W
ADDLW 0x30
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
label53
MOVF FCD_LCDDis_00058_1_tmp_byte, W
SUBLW 0x00
BTFSC STATUS,C
GOTOlabel54
MOVLW 0x10
SUBWF FCD_LCDDis_00058_1_tmp_int, F
MOVLW 0x27
BTFSS STATUS,C
MOVLW 0x28
SUBWF FCD_LCDDis_00058_1_tmp_int+D'1', F
DECF FCD_LCDDis_00058_1_tmp_byte, F
GOTOlabel53
label54
MOVLW 0x03
SUBWF FCD_LCDDis_00058_arg_Number+D'1', W
BTFSS STATUS,Z
GOTOlabel55
MOVLW 0xE8
SUBWF FCD_LCDDis_00058_arg_Number, W
label55
BTFSS STATUS,C
GOTOlabel59
BTFSC FCD_LCDDis_00058_arg_Number+D'1',7
GOTOlabel59
CLRF CompTempVar2258
MOVF FCD_LCDDis_00058_1_tmp_int, W
MOVWF __div_16_1_00003_arg_a
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', W
MOVWF __div_16_1_00003_arg_a+D'1'
BTFSS FCD_LCDDis_00058_1_tmp_int+D'1',7
GOTOlabel56
COMF __div_16_1_00003_arg_a, F
COMF __div_16_1_00003_arg_a+D'1', F
INCF __div_16_1_00003_arg_a, F
BTFSC STATUS,Z
INCF __div_16_1_00003_arg_a+D'1', F
INCF CompTempVar2258, F
label56
MOVLW 0xE8
MOVWF __div_16_1_00003_arg_b
MOVLW 0x03
MOVWF __div_16_1_00003_arg_b+D'1'
CALL __div_16_1_00003
MOVF CompTempVarRet212, W
MOVWF CompTempVar2257
BTFSS CompTempVar2258,0
GOTOlabel57
COMF CompTempVar2257, F
INCF CompTempVar2257, F
label57
MOVF CompTempVar2257, W
MOVWF FCD_LCDDis_00058_1_tmp_byte
MOVF FCD_LCDDis_00058_1_tmp_byte, W
ADDLW 0x30
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
label58
MOVF FCD_LCDDis_00058_1_tmp_byte, W
SUBLW 0x00
BTFSC STATUS,C
GOTOlabel59
MOVLW 0xE8
SUBWF FCD_LCDDis_00058_1_tmp_int, F
MOVLW 0x03
BTFSS STATUS,C
MOVLW 0x04
SUBWF FCD_LCDDis_00058_1_tmp_int+D'1', F
DECF FCD_LCDDis_00058_1_tmp_byte, F
GOTOlabel58
label59
MOVF FCD_LCDDis_00058_arg_Number+D'1', W
XORLW 0x80
MOVWF CompTempVar2261
MOVLW 0x80
SUBWF CompTempVar2261, W
BTFSS STATUS,Z
GOTOlabel60
MOVLW 0x64
SUBWF FCD_LCDDis_00058_arg_Number, W
label60
BTFSS STATUS,C
GOTOlabel64
CLRF CompTempVar2263
MOVF FCD_LCDDis_00058_1_tmp_int, W
MOVWF __div_16_1_00003_arg_a
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', W
MOVWF __div_16_1_00003_arg_a+D'1'
BTFSS FCD_LCDDis_00058_1_tmp_int+D'1',7
GOTOlabel61
COMF __div_16_1_00003_arg_a, F
COMF __div_16_1_00003_arg_a+D'1', F
INCF __div_16_1_00003_arg_a, F
BTFSC STATUS,Z
INCF __div_16_1_00003_arg_a+D'1', F
INCF CompTempVar2263, F
label61
MOVLW 0x64
MOVWF __div_16_1_00003_arg_b
CLRF __div_16_1_00003_arg_b+D'1'
CALL __div_16_1_00003
MOVF CompTempVarRet212, W
MOVWF CompTempVar2262
BTFSS CompTempVar2263,0
GOTOlabel62
COMF CompTempVar2262, F
INCF CompTempVar2262, F
label62
MOVF CompTempVar2262, W
MOVWF FCD_LCDDis_00058_1_tmp_byte
MOVF FCD_LCDDis_00058_1_tmp_byte, W
ADDLW 0x30
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
label63
MOVF FCD_LCDDis_00058_1_tmp_byte, W
SUBLW 0x00
BTFSC STATUS,C
GOTOlabel64
MOVLW 0x64
SUBWF FCD_LCDDis_00058_1_tmp_int, F
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', F
BTFSS STATUS,C
DECF FCD_LCDDis_00058_1_tmp_int+D'1', F
DECF FCD_LCDDis_00058_1_tmp_byte, F
GOTOlabel63
label64
MOVF FCD_LCDDis_00058_arg_Number+D'1', W
XORLW 0x80
MOVWF CompTempVar2266
MOVLW 0x80
SUBWF CompTempVar2266, W
BTFSS STATUS,Z
GOTOlabel65
MOVLW 0x0A
SUBWF FCD_LCDDis_00058_arg_Number, W
label65
BTFSS STATUS,C
GOTOlabel69
CLRF CompTempVar2268
MOVF FCD_LCDDis_00058_1_tmp_int, W
MOVWF __div_16_1_00003_arg_a
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', W
MOVWF __div_16_1_00003_arg_a+D'1'
BTFSS FCD_LCDDis_00058_1_tmp_int+D'1',7
GOTOlabel66
COMF __div_16_1_00003_arg_a, F
COMF __div_16_1_00003_arg_a+D'1', F
INCF __div_16_1_00003_arg_a, F
BTFSC STATUS,Z
INCF __div_16_1_00003_arg_a+D'1', F
INCF CompTempVar2268, F
label66
MOVLW 0x0A
MOVWF __div_16_1_00003_arg_b
CLRF __div_16_1_00003_arg_b+D'1'
CALL __div_16_1_00003
MOVF CompTempVarRet212, W
MOVWF CompTempVar2267
BTFSS CompTempVar2268,0
GOTOlabel67
COMF CompTempVar2267, F
INCF CompTempVar2267, F
label67
MOVF CompTempVar2267, W
MOVWF FCD_LCDDis_00058_1_tmp_byte
MOVF FCD_LCDDis_00058_1_tmp_byte, W
ADDLW 0x30
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
label68
MOVF FCD_LCDDis_00058_1_tmp_byte, W
SUBLW 0x00
BTFSC STATUS,C
GOTOlabel69
MOVLW 0x0A
SUBWF FCD_LCDDis_00058_1_tmp_int, F
MOVF FCD_LCDDis_00058_1_tmp_int+D'1', F
BTFSS STATUS,C
DECF FCD_LCDDis_00058_1_tmp_int+D'1', F
DECF FCD_LCDDis_00058_1_tmp_byte, F
GOTOlabel68
label69
MOVF FCD_LCDDis_00058_1_tmp_int, W
ADDLW 0x30
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
RETURN
; } FCD_LCDDisplay0_PrintNumber function end
ORG 0x000004A7
FCD_LCDDis_00054
; { FCD_LCDDisplay0_Clear ; function begin
MOVLW 0x01
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
MOVLW 0x02
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
RETURN
; } FCD_LCDDisplay0_Clear function end
ORG 0x000004B6
FCD_LCDDis_00053
; { FCD_LCDDisplay0_PrintASCII ; function begin
MOVF FCD_LCDDis_00053_arg_Character, W
MOVWF FCD_LCDDis_0005F_arg_in
MOVLW 0x10
MOVWF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
RETURN
; } FCD_LCDDisplay0_PrintASCII function end
ORG 0x000004BC
FCD_LCDDis_00052
; { FCD_LCDDisplay0_Cursor ; function begin
MOVF FCD_LCDDis_00052_arg_y, F
BTFSS STATUS,Z
GOTOlabel70
MOVLW 0x80
MOVWF FCD_LCDDis_00052_arg_y
GOTOlabel71
label70
MOVLW 0xC0
MOVWF FCD_LCDDis_00052_arg_y
label71
MOVF FCD_LCDDis_00052_arg_x, W
ADDWF FCD_LCDDis_00052_arg_y, W
MOVWF FCD_LCDDis_0005F_arg_in
CLRF FCD_LCDDis_0005F_arg_mask
CALL FCD_LCDDis_0005F
MOVLW 0x02
MOVWF Wdt_Delay__0003E_arg_delay
CALL Wdt_Delay__0003E
RETURN
; } FCD_LCDDisplay0_Cursor function end
ORG 0x000004CD
FCD_EEPROM_00056
; { FCD_EEPROM0_WriteEEPROM ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF FCD_EEPROM_00056_arg_addr, W
MOVWF FC_CAL_EE__00069_arg_Address
MOVF FCD_EEPROM_00056_arg_addr+D'1', W
MOVWF FC_CAL_EE__00069_arg_Address+D'1'
MOVF FCD_EEPROM_00056_arg_data, W
MOVWF FC_CAL_EE__00069_arg_Data
CALL FC_CAL_EE__00069
RETURN
; } FCD_EEPROM0_WriteEEPROM function end
ORG 0x000004D7
FCD_EEPROM_00055
; { FCD_EEPROM0_EEPROMRead ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
MOVF FCD_EEPROM_00055_arg_addr, W
MOVWF FC_CAL_EE__00068_arg_Address
MOVF FCD_EEPROM_00055_arg_addr+D'1', W
MOVWF FC_CAL_EE__00068_arg_Address+D'1'
CALL FC_CAL_EE__00068
MOVF CompTempVarRet2283, W
MOVWF CompTempVarRet2250
CLRF CompTempVarRet2250+D'1'
RETURN
; } FCD_EEPROM0_EEPROMRead function end
ORG 0x000004E2
__rem_8_8_00000
; { __rem_8_8 ; function begin
CLRF CompTempVarRet218
CLRF __rem_8_8_00000_1_c
CLRF __rem_8_8_00000_1_i
label72
BTFSC __rem_8_8_00000_1_i,3
RETURN
BCF STATUS,C
RLF __rem_8_8_00000_1_c, F
BCF STATUS, RP0
BCF STATUS, RP1
RLF __rem_8_8_00000_arg_a, F
RLF CompTempVarRet218, F
MOVF __rem_8_8_00000_arg_b, W
SUBWF CompTempVarRet218, W
BTFSS STATUS,C
GOTOlabel73
MOVWF CompTempVarRet218
BSF __rem_8_8_00000_1_c,0
label73
INCF __rem_8_8_00000_1_i, F
GOTOlabel72
; } __rem_8_8 function end
ORG 0x000004F5
__div_8_8_00000
; { __div_8_8 ; function begin
CLRF __div_8_8_00000_1_r
CLRF CompTempVarRet216
CLRF __div_8_8_00000_1_i
label74
BTFSC __div_8_8_00000_1_i,3
RETURN
BCF STATUS,C
RLF CompTempVarRet216, F
BCF STATUS, RP0
BCF STATUS, RP1
RLF __div_8_8_00000_arg_a, F
RLF __div_8_8_00000_1_r, F
MOVF __div_8_8_00000_arg_b, W
SUBWF __div_8_8_00000_1_r, W
BTFSS STATUS,C
GOTOlabel75
MOVWF __div_8_8_00000_1_r
BSF CompTempVarRet216,0
label75
INCF __div_8_8_00000_1_i, F
GOTOlabel74
; } __div_8_8 function end
ORG 0x00000508
FCM_MENU_00000
; { FCM_MENU ; function begin
BCF STATUS, RP0
BCF STATUS, RP1
CLRF FCD_EEPROM_00055_arg_addr
CLRF FCD_EEPROM_00055_arg_addr+D'1'
CALL FCD_EEPROM_00055
MOVF CompTempVarRet2250, W
BCF STATUS, RP1
MOVWF gbl_FCV_SET
MOVF gbl_FCV_SET, F
BTFSC STATUS,Z
GOTOlabel76
CLRF FCD_EEPROM_00056_arg_addr
CLRF FCD_EEPROM_00056_arg_addr+D'1'
CLRF FCD_EEPROM_00056_arg_data
CLRF FCD_EEPROM_00056_arg_data+D'1'
CALL FCD_EEPROM_00056
label76
MOVLW 0x01
BCF STATUS, RP0
BCF STATUS, RP1
MOVWF gbl_FCV_SET
CLRF FCD_LCDDis_00052_arg_x
CLRF FCD_LCDDis_00052_arg_y
CALL FCD_LCDDis_00052
MOVLW 0x53
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x54
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x41
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x52
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x49
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x50
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x41
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x52
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x41
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x4D
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x54
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x52
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x49
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x01
MOVWF delay_s_00000_arg_del
CALL delay_s_00000
CALL FCD_SWITCH_00057
CALL FCD_LCDDis_00054
MOVLW 0x02
BSF STATUS, RP0
IORWF gbl_trisb, W
MOVWF gbl_trisb
MOVLW 0x02
BCF STATUS, RP0
ANDWF gbl_portb, W
MOVWF CompTempVar2243
CLRF gbl_FCV_SW
MOVLW 0x02
SUBWF CompTempVar2243, W
BTFSC STATUS,Z
INCF gbl_FCV_SW, F
label77
DECF gbl_FCV_SW, W
BTFSS STATUS,Z
GOTOlabel103
CLRF FCD_LCDDis_00052_arg_x
MOVLW 0x01
MOVWF FCD_LCDDis_00052_arg_y
CALL FCD_LCDDis_00052
MOVF gbl_FCV_MENU, F
BTFSS STATUS,Z
GOTOlabel78
MOVF gbl_FCV_MENU+D'1', F
BTFSS STATUS,Z
GOTOlabel78
GOTOlabel79
label78
MOVLW 0x01
XORWF gbl_FCV_MENU, W
BTFSC STATUS,Z
MOVF gbl_FCV_MENU+D'1', W
BTFSC STATUS,Z
GOTOlabel82
MOVLW 0x02
XORWF gbl_FCV_MENU, W
BTFSC STATUS,Z
MOVF gbl_FCV_MENU+D'1', W
BTFSC STATUS,Z
GOTOlabel84
MOVLW 0x03
XORWF gbl_FCV_MENU, W
BTFSC STATUS,Z
MOVF gbl_FCV_MENU+D'1', W
BTFSC STATUS,Z
GOTOlabel86
MOVLW 0x04
XORWF gbl_FCV_MENU, W
BTFSC STATUS,Z
MOVF gbl_FCV_MENU+D'1', W
BTFSC STATUS,Z
GOTOlabel88
MOVLW 0x05
XORWF gbl_FCV_MENU, W
BTFSC STATUS,Z
MOVF gbl_FCV_MENU+D'1', W
BTFSC STATUS,Z
GOTOlabel90
GOTOlabel92
label79
MOVLW 0x43
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x55
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x52
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x53
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x41
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x64
SUBWF gbl_FCV_SET_DEGREE, W
BTFSC STATUS,C
GOTOlabel80
CLRF FCD_LCDDis_00058_arg_Number
CLRF FCD_LCDDis_00058_arg_Number+D'1'
CALL FCD_LCDDis_00058
label80
MOVLW 0x0A
SUBWF gbl_FCV_SET_DEGREE, W
BTFSC STATUS,C
GOTOlabel81
CLRF FCD_LCDDis_00058_arg_Number
CLRF FCD_LCDDis_00058_arg_Number+D'1'
CALL FCD_LCDDis_00058
label81
MOVF gbl_FCV_SET_DEGREE, W
MOVWF FCD_LCDDis_00058_arg_Number
CLRF FCD_LCDDis_00058_arg_Number+D'1'
CALL FCD_LCDDis_00058
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x47
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x52
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x41
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x44
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x01
MOVWF FCD_EEPROM_00056_arg_addr
CLRF FCD_EEPROM_00056_arg_addr+D'1'
MOVF gbl_FCV_SET_DEGREE, W
MOVWF FCD_EEPROM_00056_arg_data
CLRF FCD_EEPROM_00056_arg_data+D'1'
CALL FCD_EEPROM_00056
GOTOlabel92
label82
MOVLW 0x46
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x4C
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x58
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x49
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x0A
SUBWF gbl_FCV_DEL_FLEX, W
BTFSC STATUS,C
GOTOlabel83
CLRF FCD_LCDDis_00058_arg_Number
CLRF FCD_LCDDis_00058_arg_Number+D'1'
CALL FCD_LCDDis_00058
label83
MOVF gbl_FCV_DEL_FLEX, W
MOVWF FCD_LCDDis_00058_arg_Number
CLRF FCD_LCDDis_00058_arg_Number+D'1'
CALL FCD_LCDDis_00058
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x53
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x43
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x20
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x02
MOVWF FCD_EEPROM_00056_arg_addr
CLRF FCD_EEPROM_00056_arg_addr+D'1'
MOVF gbl_FCV_DEL_FLEX, W
MOVWF FCD_EEPROM_00056_arg_data
CLRF FCD_EEPROM_00056_arg_data+D'1'
CALL FCD_EEPROM_00056
GOTOlabel92
label84
MOVLW 0x45
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x58
MOVWF FCD_LCDDis_00053_arg_Character
CALL FCD_LCDDis_00053
MOVLW 0x54
MOVWF FCD_L