*** SET 1-Wire Flasher Address from 0x0EE0 to 0x0EC0 **** for more freedom to impleme...
[owSlave2.git] / common / OWRomFunctions.s
index fdcc919..0b1488d 100644 (file)
 #define OW_SEARCHROMR 4  ; next resive master answer
 #define OW_READROM 5
 #define OW_READ_COMMAND 6
+#define OW_FWCONFIGINFO 7
 
 
 #ifdef _CHANGEABLE_ID_
-#define OW_WRITE_NEWID 7
-#define OW_READ_NEWID 8
-#define OW_SET_NEWID 9
-#define OW_FIRST_COMMAND 10
+#define OW_WRITE_NEWID 8
+#define OW_READ_NEWID 9
+#define OW_SET_NEWID 10
+#define OW_FIRST_COMMAND 11
 .comm newid,8
 
        
@@ -79,7 +80,7 @@
 
 
 #else
-#define OW_FIRST_COMMAND 7
+#define OW_FIRST_COMMAND 8
 #endif
 
 #ifndef _DIS_FLASH_
@@ -93,6 +94,9 @@
 .endm
 #endif
 
+.macro FW_CONFIG_INFO
+       cljmp 0x85,hrc_fw_configinfo
+.endm
 
 
 #ifdef _CHANGEABLE_ID_
@@ -135,6 +139,7 @@ handle_stable:
                rjmp h_searchromr
                rjmp h_readrom
                rjmp h_readcommand 
+               rjmp h_fwconfiginfo
 #ifdef _CHANGEABLE_ID_
                rjmp h_writeid
                rjmp h_readid
@@ -160,7 +165,7 @@ hrc_jmp_flasher:
        lds r_temp,flashmarker
        cpi r_temp,2
        brne hrc_jmp_flasher_inc
-       ldi r_temp,0xE0
+       ldi r_temp,0xC0
        push r_temp
        ldi r_temp,0x0E
        push r_temp
@@ -193,6 +198,14 @@ hrc_set_alarm_search:
        ; sonst tue nichts
        rjmp handle_end_sleep
 
+
+hrc_fw_configinfo:
+       ldi r_mode,OW_FWCONFIGINFO
+       ldi r_sendflag,1
+       CRCInit2
+       rjmp h_fwconfiginfo
+
+
 ;---------------------------------------------------
 ;   MATCH ROM
 ;---------------------------------------------------
@@ -290,6 +303,39 @@ h_readrom_all:
        rjmp handle_end_sleep
 
 
+;---------------------------------------------------
+;   FW_CONFIG_INFO
+;---------------------------------------------------
+
+h_fwconfiginfo:
+       cpi  r_bytep,16
+       breq h_fwconfiginfo_crc
+#ifdef _CRC8_
+       cpi  r_bytep,17
+       breq h_fwconfiginfo_all
+#elif defined _CRC16_
+       cpi  r_bytep,17
+       breq h_fwconfiginfo_crc2
+       cpi  r_bytep,18
+       breq h_fwconfiginfo_all
+#else
+       cpi  r_bytep,16
+       breq h_fwconfiginfo_all
+#warning No CRC known code implemented
+#endif
+       configZ config_info,r_bytep
+       ld   r_rwbyte,Z
+       rjmp handle_end_inc
+h_fwconfiginfo_crc:
+       lds r_rwbyte,crc
+       rjmp handle_end_inc
+h_fwconfiginfo_crc2:
+       lds r_rwbyte,crc+1
+       rjmp handle_end_inc
+h_fwconfiginfo_all:
+       rjmp handle_end_sleep
+
+
 ;---------------------------------------------------
 ;   CHANGE ROM FUNCTIONS
 ;---------------------------------------------------
@@ -407,7 +453,7 @@ OWINIT:
        sbic _SFR_IO_ADDR(PINA),PINA5 
        rjmp owinit_botest_end ;PINA5 nicht 0.... nicht verbunden
        cbi _SFR_IO_ADDR(DDRA),PINA4
-       ldi r_temp,0xE0
+       ldi r_temp,0xC0
        push r_temp
        ldi r_temp,0x0E
        push r_temp