X-Git-Url: http://git.smho.de/gw/?p=owSlave2.git;a=blobdiff_plain;f=common%2FOWRomFunctionsDual.s;h=f9ffb2f9ca1e469f88587cb28125e82ca506a33e;hp=c28d855e35666f036f29d2e88dc31d9a657aabae;hb=a8381e5cea363746ce596f2b57e3dbe13d0a15a6;hpb=eb07c81c36a283327b156eeee4d3d5030a4ed75f diff --git a/common/OWRomFunctionsDual.s b/common/OWRomFunctionsDual.s index c28d855..f9ffb2f 100644 --- a/common/OWRomFunctionsDual.s +++ b/common/OWRomFunctionsDual.s @@ -61,13 +61,15 @@ #define OW_SEARCHROMR 4 ; next resive master answer #define OW_READ_COMMAND1 5 #define OW_READ_COMMAND2 6 +#define OW_FWCONFIGINFO1 7 +#define OW_FWCONFIGINFO2 8 #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 9 +#define OW_READ_NEWID 10 +#define OW_SET_NEWID 11 +#define OW_FIRST_COMMAND 12 .comm newid,8 .comm idtable,64 @@ -79,7 +81,7 @@ #else -#define OW_FIRST_COMMAND 7 +#define OW_FIRST_COMMAND 9 #endif #ifndef _DIS_FLASH_ @@ -94,6 +96,12 @@ #endif +.macro FW_CONFIG_INFO1 + cljmp 0x85,hrc_fw_configinfo1 +.endm +.macro FW_CONFIG_INFO2 + cljmp 0x85,hrc_fw_configinfo2 +.endm #ifdef _CHANGEABLE_ID_ ; lesen der ID aus dem EEPROM beim Start @@ -145,6 +153,8 @@ handle_stable: rjmp h_searchromr rjmp h_readcommand1 rjmp h_readcommand2 + rjmp h_fwconfiginfo1 + rjmp h_fwconfiginfo2 #ifdef _CHANGEABLE_ID_ rjmp h_writeid rjmp h_readid @@ -216,6 +226,17 @@ hrc_set_alarm_search: ; sonst tue nichts rjmp handle_end_sleep +hrc_fw_configinfo1: + ldi r_mode,OW_FWCONFIGINFO1 + ldi r_sendflag,1 + rjmp h_fwconfiginfo1 + +hrc_fw_configinfo2: + ldi r_mode,OW_FWCONFIGINFO2 + ldi r_sendflag,1 + rjmp h_fwconfiginfo2 + + ;--------------------------------------------------- ; MATCH ROM ;--------------------------------------------------- @@ -353,6 +374,43 @@ h_searchromr: ; stelle um auf empfangen rjmp handle_end_no_bcount +;--------------------------------------------------- +; FW_CONFIG_INFO +;--------------------------------------------------- + +h_fwconfiginfo1: + configZ config_info1,r_bytep + rjmp h_fwconfiginfo_go +h_fwconfiginfo2: + configZ config_info2,r_bytep + +h_fwconfiginfo_go: + 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 + ld r_rwbyte,Z + rjmp handle_end_inc +h_fwconfiginfo_crc: + lds r_rwbyte,crc + rjmp handle_end +h_fwconfiginfo_crc2: + lds r_rwbyte,crc+1 + rjmp handle_end +h_fwconfiginfo_all: + rjmp handle_end_sleep + ;--------------------------------------------------- ; CHANGE ROM FUNCTIONS