--- SDS/sds_cpu.c.orig 2016-12-01 22:43:43 UTC +++ SDS/sds_cpu.c @@ -385,14 +385,14 @@ while (reason == 0) { } if (sim_interval <= 0) { /* event queue? */ - if (reason = sim_process_event ()) /* process */ + if ((reason = sim_process_event ())) /* process */ break; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ } if (chan_req) { /* channel request? */ - if (reason = chan_process ()) /* process */ + if ((reason = chan_process ())) /* process */ break; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -506,7 +506,7 @@ if (inst & I_POP) { } else { /* normal POP */ dat = (OV << 23) | dat; /* ov in <0> */ - if (r = Write (0, dat)) + if ((r = Write (0, dat))) return r; } } @@ -525,49 +525,49 @@ switch (op) { /* Loads and stores */ case LDA: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &A)) /* get operand */ + if ((r = Read (va, &A))) /* get operand */ return r; break; case LDB: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &B)) /* get operand */ + if ((r = Read (va, &B))) /* get operand */ return r; break; case LDX: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &X)) /* get operand */ + if ((r = Read (va, &X))) /* get operand */ return r; break; case STA: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Write (va, A)) /* write operand */ + if ((r = Write (va, A))) /* write operand */ return r; break; case STB: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Write (va, B)) /* write operand */ + if ((r = Write (va, B))) /* write operand */ return r; break; case STX: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Write (va, X)) /* write operand */ + if ((r = Write (va, X))) /* write operand */ return r; break; case EAX: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; if (nml_mode || usr_mode) /* normal or user? */ X = (X & ~VA_MASK) | (va & VA_MASK); /* only 14b */ @@ -575,11 +575,11 @@ switch (op) { break; case XMA: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; - if (r = Write (va, A)) /* write A */ + if ((r = Write (va, A))) /* write A */ return r; A = dat; /* load A */ break; @@ -587,95 +587,95 @@ switch (op) { /* Arithmetic and logical */ case ADD: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; A = Add24 (A, dat, 0); /* add */ break; case ADC: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; OV = 0; /* clear overflow */ A = Add24 (A, dat, X >> 23); /* add with carry */ break; case SUB: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; A = Add24 (A, dat ^ DMASK, 1); /* subtract */ break; case SUC: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; OV = 0; /* clear overflow */ A = Add24 (A, dat ^ DMASK, X >> 23); /* sub with carry */ break; case ADM: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; dat = AddM24 (dat, A); /* mem + A */ - if (r = Write (va, dat)) /* rewrite */ + if ((r = Write (va, dat))) /* rewrite */ return r; break; case MIN: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; dat = AddM24 (dat, 1); /* mem + 1 */ - if (r = Write (va, dat)) /* rewrite */ + if ((r = Write (va, dat))) /* rewrite */ return r; break; case MUL: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; Mul48 (A, dat); /* multiply */ break; case DIV: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; Div48 (A, B, dat); /* divide */ break; case ETR: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; A = A & dat; /* and */ break; case MRG: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; A = A | dat; /* or */ break; case EOR: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; A = A ^ dat; /* xor */ break; @@ -683,75 +683,75 @@ switch (op) { /* Skips */ case SKE: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if (A == dat) /* if A = op, skip */ P = (P + 1) & VA_MASK; break; case SKG: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if (SXT (A) > SXT (dat)) /* if A > op, skip */ P = (P + 1) & VA_MASK; break; case SKM: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if (((A ^ dat) & B) == 0) /* if A = op masked */ P = (P + 1) & VA_MASK; break; case SKA: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if ((A & dat) == 0) /* if !(A & op), skip */ P = (P + 1) & VA_MASK; break; case SKB: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if ((B & dat) == 0) /* if !(B & op), skip */ P = (P + 1) & VA_MASK; break; case SKN: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if (dat & SIGN) /* if op < 0, skip */ P = (P + 1) & VA_MASK; break; case SKR: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; dat = AddM24 (dat, DMASK); /* decr operand */ - if (r = Write (va, dat)) /* rewrite */ + if ((r = Write (va, dat))) /* rewrite */ return r; if (dat & SIGN) /* if op < 0, skip */ P = (P + 1) & VA_MASK; break; case SKD: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; if (SXT_EXP (B) < SXT_EXP (dat)) { /* B < dat? */ X = (dat - B) & DMASK; /* X = dat - B */ @@ -774,29 +774,29 @@ switch (op) { exu_cnt = exu_cnt + 1; /* count chained EXU */ if (exu_cnt > exu_lim) /* too many? */ return STOP_EXULIM; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; inst = dat; goto EXU_LOOP; case BRU: if (nml_mode && (inst & I_IND)) api_dismiss (); /* normal BRU*, dism */ - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; PCQ_ENTRY; P = va & VA_MASK; /* branch */ break; case BRX: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; X = (X + 1) & DMASK; /* incr X */ if (X & I_IND) { /* bit 9 set? */ - if (r = Read (va, &dat)) /* test dest access */ + if ((r = Read (va, &dat))) /* test dest access */ return r; PCQ_ENTRY; P = va & VA_MASK; /* branch */ @@ -804,22 +804,22 @@ switch (op) { break; case BRM: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; dat = (EM3 << 18) | (EM2 << 15) | pc; /* form return word */ if (!nml_mode && !usr_mode) /* monitor mode? */ dat = dat | (mode << 23) | (OV << 21); else dat = dat | (OV << 23); /* normal or user */ - if (r = Write (va, dat)) /* write ret word */ + if ((r = Write (va, dat))) /* write ret word */ return r; PCQ_ENTRY; P = (va + 1) & VA_MASK; /* branch */ break; case BRR: - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; PCQ_ENTRY; P = (dat + 1) & VA_MASK; /* branch */ @@ -837,9 +837,9 @@ switch (op) { case BRI: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; api_dismiss (); /* dismiss hi api */ PCQ_ENTRY; @@ -909,7 +909,7 @@ switch (op) { /* Shifts */ case RSH: - if (r = EaSh (inst, &va)) /* decode eff addr */ + if ((r = EaSh (inst, &va))) /* decode eff addr */ return r; shf_op = I_GETSHFOP (va); /* get eff op */ sc = va & I_SHFMSK; /* get eff count */ @@ -934,7 +934,7 @@ switch (op) { break; case LSH: - if (r = EaSh (inst, &va)) /* decode eff addr */ + if ((r = EaSh (inst, &va))) /* decode eff addr */ return r; shf_op = I_GETSHFOP (va); /* get eff op */ sc = va & I_SHFMSK; /* get eff count */ @@ -989,11 +989,11 @@ switch (op) { case MIW: case MIY: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; - if (r = op_miwy (inst, dat)) /* process inst */ + if ((r = op_miwy (inst, dat))) /* process inst */ return r; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -1002,11 +1002,11 @@ switch (op) { case WIM: case YIM: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = op_wyim (inst, &dat)) /* process inst */ + if ((r = op_wyim (inst, &dat))) /* process inst */ return r; - if (r = Write (va, dat)) + if ((r = Write (va, dat))) return r; /* write result */ int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -1015,7 +1015,7 @@ switch (op) { case EOM: case EOD: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = op_eomd (inst)) /* process inst */ + if ((r = op_eomd (inst))) /* process inst */ return r; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -1025,11 +1025,11 @@ switch (op) { case POT: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = Read (va, &dat)) /* get operand */ + if ((r = Read (va, &dat))) /* get operand */ return r; - if (r = op_pot (dat)) /* process inst */ + if ((r = op_pot (dat))) /* process inst */ return r; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -1038,11 +1038,11 @@ switch (op) { case PIN: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = Ea (inst, &va)) /* decode eff addr */ + if ((r = Ea (inst, &va))) /* decode eff addr */ return r; - if (r = op_pin (&dat)) /* process inst */ + if ((r = op_pin (&dat))) /* process inst */ return r; - if (r = Write (va, dat)) /* write result */ + if ((r = Write (va, dat))) /* write result */ return r; int_reqhi = api_findreq (); /* recalc int req */ chan_req = chan_testact (); /* recalc chan act */ @@ -1051,7 +1051,7 @@ switch (op) { case SKS: if (!nml_mode && usr_mode) /* priv inst */ return MM_PRVINS; - if (r = op_sks (inst, &dat)) /* process inst */ + if ((r = op_sks (inst, &dat))) /* process inst */ return r; if (dat) P = (P + 1) & VA_MASK; @@ -1085,7 +1085,7 @@ for (i = 0; i < ind_lim; i++) { hst[hst_p].ea = *addr; return SCPE_OK; } - if (r = Read (va, &wd)) /* read ind; fails? */ + if ((r = Read (va, &wd))) /* read ind; fails? */ return r; va = (va & VA_USR) | (wd & XVA_MASK); } @@ -1112,7 +1112,7 @@ for (i = 0; i < ind_lim; i++) { } if (wd & I_IDX) va = (va & VA_USR) | ((va + X) & VA_MASK); - if (r = Read (va, &wd)) /* read ind; fails? */ + if ((r = Read (va, &wd))) /* read ind; fails? */ return r; va = (va & VA_USR) | (wd & XVA_MASK); } @@ -1341,7 +1341,7 @@ if (sc >= 24) { A = sgn; } else { - B = ((B >> sc) | (A << (24 - sc)) & DMASK); + B = ((B >> sc) | (A << (24 - sc))) & DMASK; A = ((A >> sc) | (sgn << (24 - sc))) & DMASK; } return; @@ -1569,12 +1569,12 @@ if (op == MIN) else if (op == SKR) /* decr */ val = DMASK; else return STOP_RTCINS; /* can't do it */ -if (r = Ea (inst, &va)) /* decode eff addr */ +if ((r = Ea (inst, &va))) /* decode eff addr */ return r; -if (r = Read (va, &dat)) /* get operand */ +if ((r = Read (va, &dat))) /* get operand */ return r; dat = AddM24 (dat, val); /* mem +/- 1 */ -if (r = Write (va, dat)) /* rewrite */ +if ((r = Write (va, dat))) /* rewrite */ return r; if (dat == 0) /* set clk sync int */ int_req = int_req | INT_RTCS;