reti ;
-.ORG 0x0EE0
-
+.ORG 0x0EC0
start:
cli
ldi mode,OWM_READ_COMMAND
rjmp pro_out_bitp1
pro_rcc_1:
- cpi rwbyte,0xF0
+ cpi rwbyte,0xF0 ;Searchrom
brne pro_rcc_2
ldi XL,low(sowid) ;init sram pointer
ldi XH,high(sowid)
ldi bytep,0
rjmp pro_serchrom_next_bit
pro_rcc_2:
- cpi rwbyte,0x55
+ cpi rwbyte,0x55 ;Matchrom
brne pro_rcc_3
// rcall pro_owidinit
ldi XL,low(sowid) ;init sram pointer
pro_read_command:
ldi mode,OWM_SLEEP
- cpi rwbyte,0x0F
+ cpi rwbyte,0x0F ;; Write to Scratchpad
brne pro_rc_1
ldi mode,OWM_WRITE_SCRATCHPAD
ldi XL,low(scratchpad) ;init sram pointer
pro_rc_1:
cpi rwbyte,0xAA
brne pro_rc_2
- ldi mode,OWM_READ_SCRATCHPAD
+ ldi mode,OWM_READ_SCRATCHPAD ;;Read from Scratchpad
ldi XL,low(scratchpad) ;init sram pointer
ldi XH,high(scratchpad)
inc smode
pro_rc_2:
cpi rwbyte,0xB8
brne pro_rc_3
- ldi mode,OWM_RECALL_FLASH
+ ldi mode,OWM_RECALL_FLASH ;; copy Flash page in Scratchpad
ldi XL,low(scratchpad) ;init sram pointer
ldi XH,high(scratchpad)
rjmp pro_out_bytep0
pro_rc_3:
- cpi rwbyte,0x55
+ cpi rwbyte,0x55 ; copy Scratchpad to Flash
brne pro_rc_4
ldi mode,OWM_SLEEP
rjmp pro_programm_page
pro_rc_4:
- cpi rwbyte,0x89
+ cpi rwbyte,0x89 ; Reset Device /Boot (new) Firmware
brne pro_rc_5
rjmp jreset
pro_rc_5:
- cpi rwbyte,0x8B
+ cpi rwbyte,0x8B ; Clear the OWID saved in EEPROM / one ID1
brne pro_rc_6
+ ldi temp,7
+pro_rc_5a:
ldi XL,low(E2END)
ldi XH,high(E2END)
- subi XL,7
+ sub XL,temp
out EEARH,XH
out EEARL,XL
ldi temp, (0<<EEPM1)|(0<<EEPM0)
pro_rc_6:
- ret
+ cpi rwbyte,0x8C ; Clear the OWID saved in EEPROM / one ID2
+ brne pro_rc_7
+ ldi temp,7+8
+ rjmp pro_rc_5a
+pro_rc_7:
+ ret
pro_write_scratchpad:
st X+,rwbyte