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