From fffd71f3269b251cbe98b14b9577cb7bd337b14d Mon Sep 17 00:00:00 2001 From: Richard Cornwell Date: Sat, 22 Jan 2022 23:26:21 -0500 Subject: [PATCH] KA10: Minor fixes to try and get ITS working on KS10. --- PDP10/kx10_cpu.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/PDP10/kx10_cpu.c b/PDP10/kx10_cpu.c index 1a3a041..fc77a6b 100644 --- a/PDP10/kx10_cpu.c +++ b/PDP10/kx10_cpu.c @@ -4586,8 +4586,14 @@ in_loop: } #endif #if KS +#if KS_ITS + /* ITS I/O instruction are standard */ + /* Instructions don't do repeat indirect */ + if (!QITS && (IR & 0700) == 0700) { +#else /* I/O Instructions don't do repeat indirect */ if ((IR & 0700) == 0700) { +#endif AR = MB & (IOCTL|RMASK); AB = (t_addr)AR; ind = 0; @@ -5087,12 +5093,12 @@ unasign: goto unasign; #endif #if KS_ITS - case 0102: /* XCT */ - case 0103: /* XCTI */ + case 0102: /* XCTI */ + case 0103: /* XCT */ if (QITS && (FLAGS & USER) == 0) { f_load_pc = 0; f_pc_inh = 1; - xct_flag = 020|AC; + xct_flag = AC; break; } goto unasign; @@ -8561,7 +8567,15 @@ jrstf: if (QBBN && (FLAGS & USER) == 0) xct_flag = AC; #endif -#if KI | KL | KS +#if KS +#if KS_ITS + if (!QITS && (FLAGS & USER) == 0) +#else + if ((FLAGS & USER) == 0) +#endif + xct_flag = AC; +#endif +#if KI | KL if ((FLAGS & USER) == 0) xct_flag = AC; #endif @@ -8585,6 +8599,10 @@ jrstf: case 0257: /* MAP */ #if KI | KL | KS +#if KS_ITS + if (QITS) + goto muuo; +#endif f = AB >> 9; flag1 = (FLAGS & USER) != 0; flag3 = 0;