E ; `expected'; we were told to panic
HX ::t ; host sent unknown command
HW ::t ; host sent message which was too long
+HO ; host RS232 read overrun
+HF ; host RS232 framing error
# Problematic interrupts
IH INTCON,INTCON3,PIR1,PIR2,PIR3 ; Interrupt source not found (high pri.)
DX ::t ; slave received wrong message byte
DB detect:message_buffer ; slave_add_short_message overrun
-# Messages for specific peripherals
+# Messages for specific peripherals:
+# R - Reversers (polarity)
RS FSR0L ; POLARITY message too short
RL FSR0L ; POLARITY message too long
+# P - Points
PB points:pointmsg ; Firing point when already busy
PI points:pointmsg,T3CON ; Unexpected Timer 3 interrupt
PU points:pointmsg ; Firing nonexistent point
; debug 'h' ; write 'h' to serial port
bt_fa_if1 RCSTA,FERR ; if FERR set (= framing error), then panic
- goto panic
+ goto panic_ferr
bt_fa_if1 RCSTA,OERR ; if OERR set (= overrun error), then panic
- goto panic
+ goto panic_oerr
mov_ff fromserial,FSR0L ; set low byte of INDF0 pointer
mov_lw bufferpage
;****************************************************************************
+panic_oerr panic morse_HO
+panic_ferr panic morse_HF
-panic
- debug 'x'
- clr_fa INTCON ; disable all interrupts EVER
- debug 'y'
- bc_fa PORTC,1 ; switch off booster
- debug 'z'
- call led_red
-panic_loop
- goto panic_loop
-
;****************************************************************************
include final.inc