chiark / gitweb /
correct handling of written bytes; slave panics on #; use movlw_movwf_spbrg because...
authorian <ian>
Sat, 26 Nov 2005 16:51:12 +0000 (16:51 +0000)
committerian <ian>
Sat, 26 Nov 2005 16:51:12 +0000 (16:51 +0000)
detpic/morse.messages
detpic/test-sofar.asm

index 6606457c2c59510b31cbe9153830b9a537f14c3e..a785f2070320cea85f58de14b49fe1698a562063 100644 (file)
@@ -29,7 +29,6 @@ TI3                           ; for iwj
 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
index 5430cd59491572cfd2d6a47b6ab4ca24f6b53c02..6ce7b67e5555b7cf64ff5aecf11535841443ebfd 100644 (file)
@@ -165,9 +165,11 @@ serialu_read_char
        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
@@ -205,9 +207,10 @@ m_ch_0
 
 ;----------
 m_buffer_reset
+       clr_f   FSR0L
+m_buffer_fix_fsr0h
        mov_lw  0x02
        mov_wf  FSR0H
-       clr_f   FSR0L
        return
 
 ;----------------------------------------
@@ -266,6 +269,10 @@ i2csu_write_another
        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
@@ -304,6 +311,11 @@ s_buffer_reset
        mov_lfsr 0x300, 1
        return
 
+;----------
+s_panic_req
+       clr_f   ch
+       panic   morse_X
+
 ;======================================================================
 
 m_delay4 rcall m_delay2
@@ -327,8 +339,7 @@ serial_setup
 ; 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