aboutsummaryrefslogtreecommitdiff
path: root/emulators/simh/files/patch-PDP1_pdp1__cpu.c
diff options
context:
space:
mode:
Diffstat (limited to 'emulators/simh/files/patch-PDP1_pdp1__cpu.c')
-rw-r--r--emulators/simh/files/patch-PDP1_pdp1__cpu.c302
1 files changed, 302 insertions, 0 deletions
diff --git a/emulators/simh/files/patch-PDP1_pdp1__cpu.c b/emulators/simh/files/patch-PDP1_pdp1__cpu.c
new file mode 100644
index 000000000000..14407a1639f4
--- /dev/null
+++ b/emulators/simh/files/patch-PDP1_pdp1__cpu.c
@@ -0,0 +1,302 @@
+--- PDP1/pdp1_cpu.c.orig 2016-12-01 22:43:42 UTC
++++ PDP1/pdp1_cpu.c
+@@ -546,7 +546,7 @@ reason = 0;
+ while (reason == 0) { /* loop until halted */
+
+ if (sim_interval <= 0) { /* check clock queue */
+- if (reason = sim_process_event ())
++ if ((reason = sim_process_event ()))
+ break;
+ sbs_lvl = sbs_eval (); /* eval sbs system */
+ }
+@@ -610,25 +610,25 @@ while (reason == 0) {
+ /* Logical, load, store instructions */
+
+ case 001: /* AND */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = AC & MB;
+ break;
+
+ case 002: /* IOR */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = AC | MB;
+ break;
+
+ case 003: /* XOR */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = AC ^ MB;
+ break;
+@@ -638,9 +638,9 @@ while (reason == 0) {
+ reason = STOP_XCT;
+ break;
+ }
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ xct_count = xct_count + 1; /* count XCT's */
+ IR = MB; /* get instruction */
+@@ -648,9 +648,9 @@ while (reason == 0) {
+
+ case 005: /* LCH */
+ if (cpu_unit.flags & UNIT_1D) { /* PDP-1D? */
+- if (reason = Ea_ch (IR, &byno)) /* MA <- eff addr */
++ if ((reason = Ea_ch (IR, &byno))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = (MB << byt_shf[byno]) & 0770000; /* extract byte */
+ }
+@@ -659,9 +659,9 @@ while (reason == 0) {
+
+ case 006: /* DCH */
+ if (cpu_unit.flags & UNIT_1D) { /* PDP-1D? */
+- if (reason = Ea_ch (IR, &byno)) /* MA <- eff addr */
++ if ((reason = Ea_ch (IR, &byno))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ MB = (MB & ~(0770000 >> byt_shf[byno])) | /* insert byte */
+ ((AC & 0770000) >> byt_shf[byno]);
+@@ -683,55 +683,55 @@ while (reason == 0) {
+ break;
+
+ case 010: /* LAC */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = MB;
+ break;
+
+ case 011: /* LIO */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ IO = MB;
+ break;
+
+ case 012: /* DAC */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+ MB = AC;
+ reason = Write ();
+ break;
+
+ case 013: /* DAP */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ MB = (AC & DAMASK) | (MB & ~DAMASK);
+ reason = Write ();
+ break;
+
+ case 014: /* DIP */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ MB = (AC & ~DAMASK) | (MB & DAMASK);
+ reason = Write ();
+ break;
+
+ case 015: /* DIO */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+ MB = IO;
+ reason = Write ();
+ break;
+
+ case 016: /* DZM */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+ MB = 0;
+ reason = Write ();
+@@ -755,9 +755,9 @@ while (reason == 0) {
+
+ case 017: /* TAD */
+ if (cpu_unit.flags & UNIT_1D) { /* PDP-1D? */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = AC + MB + ((PF & PF_L)? 1: 0); /* AC + opnd + L */
+ if (AC > DMASK) /* carry? set L */
+@@ -769,9 +769,9 @@ while (reason == 0) {
+ break;
+
+ case 020: /* ADD */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ t = AC;
+ AC = AC + MB;
+@@ -784,9 +784,9 @@ while (reason == 0) {
+ break;
+
+ case 021: /* SUB */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ t = AC ^ DMASK; /* complement AC */
+ AC = t + MB; /* -AC + MB */
+@@ -798,9 +798,9 @@ while (reason == 0) {
+ break;
+
+ case 022: /* IDX */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = MB + 1;
+ if (AC >= DMASK)
+@@ -810,9 +810,9 @@ while (reason == 0) {
+ break;
+
+ case 023: /* ISP */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ AC = MB + 1;
+ if (AC >= DMASK)
+@@ -824,18 +824,18 @@ while (reason == 0) {
+ break;
+
+ case 024: /* SAD */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ if (AC != MB)
+ PC = INCR_ADDR (PC);
+ break;
+
+ case 025: /* SAS */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ if (AC == MB)
+ PC = INCR_ADDR (PC);
+@@ -863,7 +863,7 @@ while (reason == 0) {
+ hst[hst_p].ea = PC;
+ }
+ else { /* normal JMP */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+ PCQ_ENTRY;
+ PC = MA;
+@@ -871,7 +871,7 @@ while (reason == 0) {
+ break;
+
+ case 031: /* JSP */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+ AC = EPC_WORD;
+ PCQ_ENTRY;
+@@ -889,9 +889,9 @@ while (reason == 0) {
+ */
+
+ case 026: /* MUL */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ if (cpu_unit.flags & UNIT_MDV) { /* hardware? */
+ sign = AC ^ MB; /* result sign */
+@@ -919,9 +919,9 @@ while (reason == 0) {
+ break;
+
+ case 027: /* DIV */
+- if (reason = Ea (IR)) /* MA <- eff addr */
++ if ((reason = Ea (IR))) /* MA <- eff addr */
+ break;
+- if (reason = Read ()) /* MB <- data */
++ if ((reason = Read ())) /* MB <- data */
+ break;
+ if (cpu_unit.flags & UNIT_MDV) { /* hardware */
+ sign = AC ^ MB; /* result sign */
+@@ -1362,13 +1362,13 @@ t_stat r;
+ MA = (PC & EPCMASK) | (IR & DAMASK); /* direct address */
+ if (IR & IA) { /* indirect addr? */
+ if (extm) { /* extend? */
+- if (r = Read ()) /* read; err? */
++ if ((r = Read ())) /* read; err? */
+ return r;
+ MA = MB & AMASK; /* one level */
+ }
+ else { /* multi-level */
+ for (i = 0; i < ind_max; i++) { /* count indirects */
+- if (r = Read ()) /* get ind word */
++ if ((r = Read ())) /* get ind word */
+ return r;
+ MA = (PC & EPCMASK) | (MB & DAMASK);
+ if ((MB & IA) == 0)
+@@ -1392,12 +1392,12 @@ t_stat r;
+
+ MA = (PC & EPCMASK) | (IR & DAMASK); /* direct address */
+ if (extm) { /* extend? */
+- if (r = Read ()) /* read; err? */
++ if ((r = Read ())) /* read; err? */
+ return r;
+ }
+ else { /* multi-level */
+ for (i = 0; i < ind_max; i++) { /* count indirects */
+- if (r = Read ()) /* get ind word */
++ if ((r = Read ())) /* get ind word */
+ return r;
+ if ((MB & IA) == 0)
+ break;