> 0 0010 000 (10) OFF Power off
> 00000000 CRASHED Acknowledge panic, go to readout mode
+ > 00001002 (0a) TELLMODE Confirm mode - say HELLO or CRASHED
+ if crashed, undoes the effect of ack
; In crash readout mode:
;
;----------
write_ifnot_00
bt_f_if0 panicst, panicst_acked ; well, ignore that !
- return
+ bra write_only_tellmode
; OK, we have an instruction:
bt_w_if1 7 ; huh?
bra write_if_master_masterread
bt_w_if0 3
bra write_if_master_slaveread
-
+;...
write_ifnot0_ifnotmaster
xor_lw 0x09
bra_z panic_reset
+ xor_lw 0x09
+;...
+write_only_tellmode
+ xor_lw 0x0a
+ bra_z panic_tellmode
; nope, well, we ignore it
return
panic_noop
return
-;======================================================================
+;======================================================================#
+; SPECIAL COMMANDS 0x08..0x0f
+
+;----------
panic_reset
reset
+;----------
+panic_tellmode
+ bt_f_if0 idloc1,idloc1_master
+ return
+ mov_lw 0x0b
+ bc_f panicst, panicst_acked
+ goto serial_write_char
+
;======================================================================
; MASTER READOUT AND MASTER READOUT OF SLAVES
;----------------------------------------------------------------------
serialrx_table_section code 0x2000
+;--------------------
+command_tellmode
+ mov_lw 0x09
+ goto serial_addbyte
+
;--------------------
serialrx_generalmsg @
;command_<something> has same calling convention:
xor_lw 0x11
bra_z command_power_on
- xor_lw 0x01
+ xor_lw 0x10 ^ 0x11
bra_z command_power_off
+ xor_lw 0x0a ^ 0x10
+ bra_z command_tellmode
bra serialrx_bad
;-----