diff options
Diffstat (limited to 'bootloader')
-rw-r--r-- | bootloader/cmds-16f1847.inc | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/bootloader/cmds-16f1847.inc b/bootloader/cmds-16f1847.inc index d5460c1..bb51298 100644 --- a/bootloader/cmds-16f1847.inc +++ b/bootloader/cmds-16f1847.inc @@ -68,13 +68,14 @@ read_flash_segment_next ;; flash write -------- cmd_w_flash -;; movf combuff + .3,f ; if addr[15:8] == 0 -> boot loader section -;; btfsc STATUS,Z -;; goto address_prohibited -;; movlw FLASH_BOUNDARY ; addr on boundary? -;; andwf combuff + .2,w -;; btfss STATUS,Z -;; goto address_invalid + movlw .2 ; if addr[15:8] < 2 -> boot loader section + subwf combuff + .3,w + btfss STATUS,C + goto address_prohibited + movlw FLASH_BOUNDARY ; addr on boundary? + andwf combuff + .2,w + btfss STATUS,Z + goto address_invalid ;; movlw FSS ; initialize EEADR:EEADRH and FSR ;; movwf cnt ;; movlw b'01011000' @@ -119,9 +120,7 @@ cmd_w_flash ;; movlw E_FLASH_WERR ;; bcf STATUS,RP1 ;; bcf STATUS,RP0 -;; movwf combuff + .2 ; = E_OK -;; movlw .1 ; bytes to send -;; call send_answer - movlw E_NOT_IMPL - call ack_cmd + movwf combuff + .2 ; = E_OK + movlw .1 ; bytes to send + call send_answer goto wait_new_cmd |