From: ceb Date: Sat, 8 Jan 2005 20:31:25 +0000 (+0000) Subject: debugging... X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=97448da41e02ef9d5e0613e7c092a5bb32fb7538;p=trains.git debugging... --- diff --git a/cebpic/nmra-stream.asm b/cebpic/nmra-stream.asm index eee0e68..5384b10 100644 --- a/cebpic/nmra-stream.asm +++ b/cebpic/nmra-stream.asm @@ -92,6 +92,7 @@ initialise bsf SPBRG,0,0 + debug 0x0A ; LF to terminak debug 'a' ; write 'a' to serial port ;---------------------------------------------------------------------------- @@ -215,7 +216,7 @@ serial_receive incf FROMSERIAL,1,0 ; advance FROMSERIAL pointer by 1 byte debug '3' ; write 'h' to serial port ; *** check for overrun and do something sensible - btfss INDF0,7,0 ; check if bit 7 is set + btfsc INDF0,7,0 ; check if bit 7 is set call advance_write_buffer ; if so, move to next buffer debug '4' ; write 'h' to serial port retfie 1 @@ -306,18 +307,18 @@ decide_next_bit bnz read_from_buffer bsf NMRACTRL,TRANSMITBIT,0 bsf NMRACTRL,NEXTACTION,0 - debug '3' ; write 'k' to serial port + debug '3' retfie 1 read_from_buffer - debug 'o' ; write 'o' to serial port + debug 'o' ; if currently on bit 7, want to skip to bit 6 ;*** wouldn't it be easier to start on bit 6 ? :-) -iwj btfsc TOTRACKBIT,7,0 - debug '4' ; write 'o' to serial port + debug '4' btfsc TOTRACKBIT,7,0 rrncf TOTRACKBIT,1,0 ; rotate mask right @@ -325,7 +326,7 @@ read_from_buffer ; set na=cb=bit value, advance bit (i.e. rotate TRANSMITBIT right), ; check if bit7, if so, advance byte, return - debug 'p' ; write 'p' to serial port + debug 'p' movff TOTRACK,FSR1L ; set low byte of IND1 pointer movlw 5 movwf FSR1H,0 ; set high byte of IND1 pointer @@ -391,6 +392,11 @@ advance_read_buffer movff TOTRACK,WREG ; copy TOTRACK pointer location to W andlw 0xF ; investigate last 4 bits + +; GIONG WRONG HERE - should be klnoopqstu7895, missing out 78 = advance to next buffer +; MUST advance byte before trying to advance buffer +# + ; if zero (i.e. overflowed to next buffer), branch to overflow check bz totrack_overflow diff --git a/detpic/nmra-stream.asm b/detpic/nmra-stream.asm index eee0e68..5384b10 100644 --- a/detpic/nmra-stream.asm +++ b/detpic/nmra-stream.asm @@ -92,6 +92,7 @@ initialise bsf SPBRG,0,0 + debug 0x0A ; LF to terminak debug 'a' ; write 'a' to serial port ;---------------------------------------------------------------------------- @@ -215,7 +216,7 @@ serial_receive incf FROMSERIAL,1,0 ; advance FROMSERIAL pointer by 1 byte debug '3' ; write 'h' to serial port ; *** check for overrun and do something sensible - btfss INDF0,7,0 ; check if bit 7 is set + btfsc INDF0,7,0 ; check if bit 7 is set call advance_write_buffer ; if so, move to next buffer debug '4' ; write 'h' to serial port retfie 1 @@ -306,18 +307,18 @@ decide_next_bit bnz read_from_buffer bsf NMRACTRL,TRANSMITBIT,0 bsf NMRACTRL,NEXTACTION,0 - debug '3' ; write 'k' to serial port + debug '3' retfie 1 read_from_buffer - debug 'o' ; write 'o' to serial port + debug 'o' ; if currently on bit 7, want to skip to bit 6 ;*** wouldn't it be easier to start on bit 6 ? :-) -iwj btfsc TOTRACKBIT,7,0 - debug '4' ; write 'o' to serial port + debug '4' btfsc TOTRACKBIT,7,0 rrncf TOTRACKBIT,1,0 ; rotate mask right @@ -325,7 +326,7 @@ read_from_buffer ; set na=cb=bit value, advance bit (i.e. rotate TRANSMITBIT right), ; check if bit7, if so, advance byte, return - debug 'p' ; write 'p' to serial port + debug 'p' movff TOTRACK,FSR1L ; set low byte of IND1 pointer movlw 5 movwf FSR1H,0 ; set high byte of IND1 pointer @@ -391,6 +392,11 @@ advance_read_buffer movff TOTRACK,WREG ; copy TOTRACK pointer location to W andlw 0xF ; investigate last 4 bits + +; GIONG WRONG HERE - should be klnoopqstu7895, missing out 78 = advance to next buffer +; MUST advance byte before trying to advance buffer +# + ; if zero (i.e. overflowed to next buffer), branch to overflow check bz totrack_overflow