Fixes to infinite loop issues found by Mikulas Patocka
This commit is contained in:
parent
7b01cd11f2
commit
374b13f946
4 changed files with 7 additions and 5 deletions
|
@ -1750,7 +1750,7 @@ static void trace_instruction (void)
|
||||||
fac *= (float) (1 << 30);
|
fac *= (float) (1 << 30);
|
||||||
exp -= 30;
|
exp -= 30;
|
||||||
while (exp > 0)
|
while (exp > 0)
|
||||||
fac *= 2;
|
fac *= 2, exp--;
|
||||||
}
|
}
|
||||||
else if (exp > 0)
|
else if (exp > 0)
|
||||||
fac *= (float) (1 << exp);
|
fac *= (float) (1 << exp);
|
||||||
|
@ -1758,7 +1758,7 @@ static void trace_instruction (void)
|
||||||
fac /= (float) (1 << 30);
|
fac /= (float) (1 << 30);
|
||||||
exp += 30;
|
exp += 30;
|
||||||
while (exp < 0)
|
while (exp < 0)
|
||||||
fac /= 2;
|
fac /= 2, exp++;
|
||||||
}
|
}
|
||||||
else if (exp < 0)
|
else if (exp < 0)
|
||||||
fac /= (float) (1 << -exp);
|
fac /= (float) (1 << -exp);
|
||||||
|
|
|
@ -962,7 +962,7 @@ switch (fnc) { /* case on function */
|
||||||
MAPM (ba10 - i, mpa10, UMAP_RRV);
|
MAPM (ba10 - i, mpa10, UMAP_RRV);
|
||||||
}
|
}
|
||||||
val = ((fmt == TC_10C)? (((d10) xbuf [--j]) & 017): 0);
|
val = ((fmt == TC_10C)? (((d10) xbuf [--j]) & 017): 0);
|
||||||
for (k = 0; k < 4; i++)
|
for (k = 0; k < 4; k++)
|
||||||
v[k] = xbuf[--j];
|
v[k] = xbuf[--j];
|
||||||
val = val | (v[0] << 4) | (v[1] << 12) | (v[2] << 20) | (v[3] << 28);
|
val = val | (v[0] << 4) | (v[1] << 12) | (v[2] << 20) | (v[3] << 28);
|
||||||
if (fnc == FNC_READR) /* read? store */
|
if (fnc == FNC_READR) /* read? store */
|
||||||
|
|
|
@ -1617,6 +1617,7 @@ if ((uptr = rq_getucb (cp, lu))) { /* get unit */
|
||||||
cp->pak[prv].link = cp->pak[tpkt].link;
|
cp->pak[prv].link = cp->pak[tpkt].link;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
prv = tpkt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tpkt) { /* found target? */
|
if (tpkt) { /* found target? */
|
||||||
|
@ -3122,4 +3123,4 @@ static char buf[80];
|
||||||
|
|
||||||
sprintf (buf, "%s MSCP disk controller", ctlr_tab[rq_ctxmap[dptr->units->cnum]->ctype].name);
|
sprintf (buf, "%s MSCP disk controller", ctlr_tab[rq_ctxmap[dptr->units->cnum]->ctype].name);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
|
@ -933,6 +933,7 @@ if ((uptr = tq_getucb (lu))) { /* get unit */
|
||||||
tq_pkt[prv].link = tq_pkt[tpkt].link; /* unlink */
|
tq_pkt[prv].link = tq_pkt[tpkt].link; /* unlink */
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
prv = tpkt;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (tpkt) { /* found target? */
|
if (tpkt) { /* found target? */
|
||||||
|
@ -2386,7 +2387,7 @@ fprintf (st, "%s (%dMB)", drv_tab[tq_typ].name, (uint32) (drv_tab[tq_typ].cap >>
|
||||||
return SCPE_OK;
|
return SCPE_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
t_stat tq_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
|
static t_stat tq_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
|
||||||
{
|
{
|
||||||
char *devtype = UNIBUS ? "TUK50" : "TQK50";
|
char *devtype = UNIBUS ? "TUK50" : "TQK50";
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue