From cdfb7c0878a285a88f2d88e77d600b9139fab2af Mon Sep 17 00:00:00 2001 From: Bob Supnik Date: Mon, 15 Apr 2019 22:01:08 -0700 Subject: [PATCH] PDP11: Add SP to instruction history --- PDP11/pdp11_cpu.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/PDP11/pdp11_cpu.c b/PDP11/pdp11_cpu.c index 06f12e2c..69c38db4 100644 --- a/PDP11/pdp11_cpu.c +++ b/PDP11/pdp11_cpu.c @@ -258,6 +258,8 @@ typedef struct { uint16 psw; uint16 src; uint16 dst; + uint16 sp; + uint16 pad; uint16 inst[HIST_ILNT]; } InstHistory; @@ -963,6 +965,7 @@ while (reason == 0) { }; hst_ent = &hst[hst_p]; hst_ent->pc = PC | HIST_VLD; + hst_ent->sp = SP; hst_ent->psw = get_PSW (); hst_ent->src = 0; hst_ent->dst = 0; @@ -3551,12 +3554,12 @@ else lnt = hst_lnt; di = hst_p - lnt; /* work forward */ if (di < 0) di = di + hst_lnt; -fprintf (st, "PC PSW src dst IR\n\n"); +fprintf (st, "PC SP PSW src dst IR\n\n"); for (k = 0; k < lnt; k++) { /* print specified */ h = &hst[(di++) % hst_lnt]; /* entry pointer */ if (h->pc & HIST_VLD) { /* instruction? */ ir = h->inst[0]; - fprintf (st, "%06o %06o|", h->pc & ~HIST_VLD, h->psw); + fprintf (st, "%06o %06o %06o|", h->pc & ~HIST_VLD, h->psw); if (((ir & 0070000) != 0) || /* dops, eis, fpp */ ((ir & 0177000) == 0004000)) /* jsr */ fprintf (st, "%06o %06o ", h->src, h->dst);