;*****************************************************************************
;*  FALCON TRAP STATE MACHINE (TSM) PROGRAM              KHH   7/28/87  V9   *
;*****************************************************************************
;
;                    N F F F F F F F  
;              T   T O             O  
;   P T      N T A R D     R   J   R S
; T C R      T R L A T O L I   S   C P
; S Z A      S A U P R R E G A T O E A
; E I C P    E C R O A E F H L A P   R
; Q P E C    Q E S N P G T T U T C R E
; + - + +    + - + + + - - - - - - + +
  X X X XX   0 1 0 0 0 1 1 1 1 1 1 0 0  ;        NORMAL CODE
;
  X 0 X 00   0 1 1 0 0 0 0 0 0 0 0 0 0  ;G0 = OREG    TRAP ENTRY POINT
  X 0 X 01   0 1 1 0 0 0 0 0 0 0 0 0 0  ;G1 = LEFT
  X 0 X 02   0 1 1 0 0 1 1 0 0 0 0 0 0  ;G2 = RIGHT
  X 0 X 03   0 1 1 0 0 1 1 1 0 0 0 0 0  ;G3 = STATUS
  X 0 X 04   0 1 1 0 0 1 1 1 1 1 0 0 0  ;G4 = JSTAT
  X 0 X 05   0 1 0 0 0 1 1 1 1 1 0 0 0  ;G5 = TRAP_REG AND TRAP_MASK)
  X 0 X 06   0 1 0 0 0 1 1 1 1 1 0 0 0  ;G6 = PRIORITIZE G5
  X 0 X 07   0 1 0 0 0 1 1 1 1 1 0 0 0  ;NOP = G6 OR 32
  X 0 X 08   0 1 0 0 0 1 1 1 1 1 0 0 0  ;G6 = OLDPC1
  X 0 X 09   0 1 0 0 0 1 1 1 1 1 1 0 0  ;G7 = OLDPC2, DISPATCH
  X 0 X 0A   0 1 0 0 0 1 1 1 1 1 1 0 0  ;SPARE
  X 0 X 0B   0 1 0 0 0 1 1 1 1 1 1 0 0  ;SPARE
;
  X 0 X 0C   0 1 0 0 0 1 1 1 1 1 1 0 0  ;JINDIR = G4    INTERRUPT EXIT
  X 0 X 0D   0 1 0 0 0 1 1 1 1 1 1 0 0  ;STATUS = G3
  X 0 X 0E   0 1 0 0 0 1 1 1 1 1 1 0 0  ;NOP = G5
  X 0 X 0F   0 1 0 0 0 1 1 1 0 1 1 0 0  ;NOP = G6
  X 0 X 10   1 1 0 1 0 1 1 1 0 1 1 0 0  ;NOP = G0, DISPATCH, JINDIR 
  1 X X XX   2 1 1 0 0 1 1 1 0 1 1 0 0  ;RE-EXEC ABORTED INSTR 
  2 X 0 XX   0 1 0 0 0 1 1 1 1 1 1 0 0  ;TRAPS ON AND KEEP GOING
  2 X 1 XX   3 1 0 0 0 1 1 1 1 1 1 0 0  ;TRAPS ON AND TRACE NEXT
  3 1 X XX   F 0 0 0 0 1 1 1 1 1 1 0 0  ;TRACE TRAP NOW
  3 0 X XX   0 1 0 0 0 1 1 1 1 1 1 0 0  ;TRACE TRAP NOW
;
  X 0 X 14   0 1 0 0 0 1 1 1 1 1 1 0 0  ;JINDIR = G4    TRAP EXIT
  X 0 X 15   0 1 0 0 0 1 1 1 1 1 1 0 0  ;STAT = G3         
  X 0 X 16   0 1 0 0 0 1 1 1 1 1 1 0 0  ;NOP = G7(L)  [G10 ON R]
  X 0 X 17   0 1 0 0 0 1 1 0 0 1 1 0 0  ;NOP = G6(L)
  X 0 X 18   4 1 0 0 0 1 1 0 0 1 1 0 0  ;NOP = G0(L), DISPATCH, JINDIR
  4 X X XX   5 1 1 1 0 1 1 0 0 1 1 1 0  ;RE-EXEC ABORTED INSTR 
  5 X 0 XX   0 1 0 0 1 1 1 1 1 1 1 0 0  ;TRAPS ON AND KEEP GOING
  5 X 1 XX   6 1 0 0 1 1 1 1 1 1 1 0 0  ;TRAPS ON AND TRACE NEXT
  6 1 X XX   F 0 0 0 0 1 1 1 1 1 1 0 0  ;TRACE TRAP NOW
  6 0 X XX   0 1 0 0 0 1 1 1 1 1 1 0 0  ;TRACE TRAP NOW
;
  X 0 X 1C   0 1 0 0 0 1 1 1 1 1 1 0 0  ;NOP = G7(L)   ICACHE DIAG EXIT
  X 0 X 1D   0 1 0 1 0 1 1 1 1 1 1 0 0  ;NOP = G6(L)
  X 0 X 1E   7 0 0 0 0 1 1 1 1 1 1 0 0  ;NOP = G0(L), DISPATCH, JINDIR
  7 X X XX   F 0 0 0 0 1 1 1 1 1 1 0 0  ;TRACE TRAP NOW
;
  F 1 X XX   F 0 0 0 0 1 1 1 1 1 1 0 0  ;KEEP ON TRACE UNTIL TRAP
  F 0 X XX   0 1 0 0 0 1 1 1 1 1 1 0 0  ;
;
  X 0 X 00   0 1 1 0 0 0 0 0 0 0 0 0 0  ;G0 = OREG    TRAP ENTRY POINT

