text: /*  CPU-Journal.h
  
  	A helper file used to debug the 65c02 interpreter.  Not included
  	in released versions of the LibAppleII library.
  */
  
  enum { kPClo = 0x2000, kPChi = 0x3000 };
  
  #define JOURNALING  1
  #undef  JOURNAL_OP
  #undef  JOURNAL_EA
  
  #define JOURNAL_OP \
  	if (not jstop  and  pc >= kPClo  and  pc <= kPChi) { \
  		jdata[++jnum].pc = pc;		jdata[  jnum].op = d; \
  		jdata[  jnum].p  = p;		jdata[  jnum].a  = mA; \
  		jdata[  jnum].x  = mX;		jdata[  jnum].y  = mY; \
  		jdata[  jnum].ea = -1; \
  	}
  
  #define JOURNAL_EA  jdata[jnum].ea = ea;
  
  static struct
  {
  	uint16_t	pc, p;
  	int			ea;
  	uint8_t		op, a, x, y;
  }				jdata[256];
  static uint8_t	jnum;
  static BOOL		jstop; // = NO
  
  
  static void LogJournal(void)
  {
  	for (int i = 1, j;  i <= 256;  ++i)
  	{
  		j = (jnum+i) & 0xFF;
  		fprintf(stderr,
  			"A=%02X X=%02X Y=%02X p=%03X | %04X- %02X",
  			jdata[j].a, jdata[j].x, jdata[j].y, jdata[j].p & 0xFFF,
  			jdata[j].pc, jdata[j].op);
  		if (jdata[j].ea >= 0)
  			fprintf(stderr, " $%04X", jdata[j].ea);
  		fputs("\n", stderr);
  	}
  }
  