chiark / gitweb /
reserve ^ [^ ] for debugging insertions
authorian <ian>
Sun, 1 Jan 2006 13:23:44 +0000 (13:23 +0000)
committerian <ian>
Sun, 1 Jan 2006 13:23:44 +0000 (13:23 +0000)
detpic/nmra-stream.asm

index 0421bfd58f9a4712137831d0e1c177d2ed90b02a..1331f233dfc42d82a688bef7d65e86cb45e29d71 100644 (file)
@@ -24,40 +24,40 @@ clock equ mclock ; this part runs really only on master
 nmractrl       res     1       ; state relevant to NMRA control
 transmitbit    equ     7       ; bit 7: 0/1 bit currently being transmitted
 nextaction     equ     6       ; bit 6: change polarity on next interrupt y/n
- ; nmractrl is a bitmask, and only the bits above are used
+  ; nmractrl is a bitmask, and only the bits above are used
 
 fromserial     res     1       ; from-serial buffer location (in buffer bank)
 totrack                equ     FSR2L   ; to-track buffer location (in buffer bank)
 totrackbit     res     1       ; bit location of pointer within byte
- ;
- ; buffers are each 16 bytes (this is hardwired)
- ; and there are four of them starting at 0x500, 0x510, 0x520, 0x530.
- ; plus a copy of the watchdog `stop everything' command at 0x540.
- ;
- ; fromserial and totrack are pointers into the buffer page
- ;
- ; fromserial points to the first empty byte, where we will put new
- ; data provided by the host; this means that (fromserial & 0xf0) is
- ; the first buffer which fails to contain a complete nmra message.
- ; fromserial is updated only by the (low priority) serial receive
- ; interrupt handler.  Furthermore, it always maintains a correct
- ; and valid value for use by the high-priority nmra readout ISR.
- ;
- ; totrack points to the first remaining full byte, which is currently
- ; being transmitted; if nothing is currently being transmitted
- ; because there is no nmra data at all then totrack points to the
- ; start of the same buffer as fromserial
- ;
- ; We maintain the following properties, notionally:
- ;
- ;  totrack <= fromserial < totrack
- ;
- ;            \            \
- ;             \            `- equal would mean overrun
- ;              \
- ;               `- equal if we have nothing but
- ;                   idle to trasmit
- ;
+  ;
+  ; buffers are each 16 bytes (this is hardwired)
+  ; and there are four of them starting at 0x500, 0x510, 0x520, 0x530.
+  ; plus a copy of the watchdog `stop everything' command at 0x540.
+  ;
+  ; fromserial and totrack are pointers into the buffer page
+  ;
+  ; fromserial points to the first empty byte, where we will put new
+  ; data provided by the host; this means that (fromserial & 0xf0) is
+  ; the first buffer which fails to contain a complete nmra message.
+  ; fromserial is updated only by the (low priority) serial receive
+  ; interrupt handler.  Furthermore, it always maintains a correct
+  ; and valid value for use by the high-priority nmra readout ISR.
+  ;
+  ; totrack points to the first remaining full byte, which is currently
+  ; being transmitted; if nothing is currently being transmitted
+  ; because there is no nmra data at all then totrack points to the
+  ; start of the same buffer as fromserial
+  ;
+  ; We maintain the following properties, notionally:
+  ;
+  ;  totrack <= fromserial < totrack
+  ;
+  ;            \            \
+  ;             \            `- equal would mean overrun
+  ;              \
+  ;               `- equal if we have nothing but
+  ;                   idle to trasmit
+  ;
 
 bufferpage     equ     5