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);
|
||||
exp -= 30;
|
||||
while (exp > 0)
|
||||
fac *= 2;
|
||||
fac *= 2, exp--;
|
||||
}
|
||||
else if (exp > 0)
|
||||
fac *= (float) (1 << exp);
|
||||
|
@ -1758,7 +1758,7 @@ static void trace_instruction (void)
|
|||
fac /= (float) (1 << 30);
|
||||
exp += 30;
|
||||
while (exp < 0)
|
||||
fac /= 2;
|
||||
fac /= 2, exp++;
|
||||
}
|
||||
else if (exp < 0)
|
||||
fac /= (float) (1 << -exp);
|
||||
|
|
|
@ -962,7 +962,7 @@ switch (fnc) { /* case on function */
|
|||
MAPM (ba10 - i, mpa10, UMAP_RRV);
|
||||
}
|
||||
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];
|
||||
val = val | (v[0] << 4) | (v[1] << 12) | (v[2] << 20) | (v[3] << 28);
|
||||
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;
|
||||
break;
|
||||
}
|
||||
prv = tpkt;
|
||||
}
|
||||
}
|
||||
if (tpkt) { /* found target? */
|
||||
|
|
|
@ -933,6 +933,7 @@ if ((uptr = tq_getucb (lu))) { /* get unit */
|
|||
tq_pkt[prv].link = tq_pkt[tpkt].link; /* unlink */
|
||||
break;
|
||||
}
|
||||
prv = tpkt;
|
||||
}
|
||||
}
|
||||
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;
|
||||
}
|
||||
|
||||
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";
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue