TI4 ; for iwj
TI5 ; for iwj
X test-sofar:ch ; bad character received from host
-XK i2clib:st ; test
ZM i2clib:st,:sspstat,:sspcon1,:sspcon2 ; for testing
ZS i2clib:st,:sspstat,:sspcon1,:st_orig ; for testing
bra_nn m_ch_digit
m_ch_notdigit
- mov_lfsr 0x0200, 0
- mov_wf FSR0H ; prevent crashes due to wrapping
- return
+ mov_fw ch
+ mov_wf POSTINC0
+ clr_f INDF0
+ clr_f FSR0H ; prevent crashes due to wrapping
+ bra m_buffer_fix_fsr0h
;----------
m_ch_bad
;----------
m_buffer_reset
+ clr_f FSR0L
+m_buffer_fix_fsr0h
mov_lw 0x02
mov_wf FSR0H
- clr_f FSR0L
return
;----------------------------------------
xor_lw '!'
bra_z s_buffer_erase
+ mov_fw t
+ xor_lw '#'
+ bra_z s_panic_req
+
mov_fw t
mov_wf POSTINC0
bc_f FSR0L, s_bufbit
mov_lfsr 0x300, 1
return
+;----------
+s_panic_req
+ clr_f ch
+ panic morse_X
+
;======================================================================
m_delay4 rcall m_delay2
; W undefined undefined
mov_lw (1<<TXEN) | serial_brgh | (1<<TRMT)
mov_wf TXSTA ; asynch xmit enabled, high baud rate?, 8-bit,
- mov_lw serial_spbrg
- mov_wf SPBRG
+ movlw_movwf_spbrg
serial_receive_reset ;from serial_read_if_error
mov_lw (1<<SPEN) | (1<<CREN)
mov_wf RCSTA ; enable serial port, continuous rx, 8-bit