; t_dolocal Low ISR High ISR
; FSR1 Low ISR High ISR (detect[1])
; FSR2 High ISR (nmra[1]) High ISR (detect[1])
+; PORTB Special read handling[2] Used normally
;
; Main loop detection scan detection scan
; High ISR NMRA output I2C service
; detect_slave_init. Likewise FSR2 is reserved exclusively
; for the NMRA output ISR after nmra_init.
;
+; [2] On the master PIC we the interrupt-on-change feature of PORTB.
+; This means that routines mustn't casually read PORTB. Instead,
+; they should call portb_read from serout.asm.
+;
; General-purpose hardware allocation:
;
; Master Slave
;
; <something>_intrl Low ISR service routine.
; Checks for any relevant interrupt.
-; If not, just returns.
+; If not, just returns
; If found, services it and then does either
; intrl_handled or intrl_handled_nostack
; neither of which return; the latter is
-; faster but implies a promise
+; faster but implies a promise
;
;----------------------------------------------------------------------
; MACROS