summaryrefslogtreecommitdiff
path: root/bootloader/cmds-16f1847.inc
diff options
context:
space:
mode:
Diffstat (limited to 'bootloader/cmds-16f1847.inc')
-rw-r--r--bootloader/cmds-16f1847.inc30
1 files changed, 29 insertions, 1 deletions
diff --git a/bootloader/cmds-16f1847.inc b/bootloader/cmds-16f1847.inc
index 1f15c20..67775c5 100644
--- a/bootloader/cmds-16f1847.inc
+++ b/bootloader/cmds-16f1847.inc
@@ -129,7 +129,7 @@ write_flash_segment_next
goto write_flash_segment_loop
bcf EECON1,WREN
- clrw ; check if a write error occured
+ movlw E_OK ; check if a write error occured
btfsc EECON1,WRERR
movlw E_FLASH_WERR
movlb .0
@@ -137,3 +137,31 @@ write_flash_segment_next
movlw .1 ; bytes to send
call send_answer
goto wait_new_cmd
+
+ ;; read config --------
+cmd_r_config
+ movf combuff + .2,w
+ sublw CFG - .1
+ btfss STATUS,C
+ goto address_invalid
+ movf combuff + .2,w
+ movlb .3
+ addlw CONFIG_OFFSET
+ movwf EEADRL
+ clrf EEADRH
+ bsf EECON1,CFGS
+ bsf EECON1,RD
+ nop
+ nop
+ movf EEDATL,w
+ movlb .0
+ movwf combuff + .3
+ movlb .3
+ movf EEDATH,w
+ movlb .0
+ movwf combuff + .4
+ movlw E_OK
+ movwf combuff + .2 ; = E_OK
+ movlw .3 ; bytes to send
+ call send_answer
+ goto wait_new_cmd