IBM1130, PDP10, PDP11: Replaced assert() with ASSURE() for run time error checks

This commit is contained in:
Mark Pizzolato 2018-08-11 14:44:15 -07:00
parent 1b7d77e03b
commit 6ffa4c8a41
9 changed files with 55 additions and 65 deletions

View file

@ -16,7 +16,6 @@
#include "sim_console.h" /* more SIMH defns (include path should include .., or make a copy) */
#include <setjmp.h>
#include <assert.h>
#include <stdlib.h>
#if defined(VMS)

View file

@ -351,8 +351,6 @@ static t_stat tti_svc (UNIT *uptr)
/* otherwise, so ^E can interrupt the simulator, */
sim_activate(&tti_unit, tti_unit.wait); /* always continue polling keyboard */
assert(sim_clock_queue != QUEUE_LIST_END);
temp = sim_poll_kbd();
if (temp < SCPE_KFLAG)

View file

@ -73,7 +73,6 @@
#include "pdp10_defs.h"
#include <setjmp.h>
#include <assert.h>
#include <ctype.h>
#include "sim_sock.h"
#include "sim_tmxr.h"
@ -664,7 +663,7 @@ if (seg) { /* Unaligned head */
--seg;
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
if (bc == 0) {
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
@ -677,7 +676,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) { /* Body: Whole PDP-10 words, 4 bytes */
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
dpy_ba = ba;
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
@ -706,9 +705,9 @@ if (seg > 0) { /* Body: Whole PDP-10 words, 4 bytes */
} /* Body */
/* Tail: partial -10 word, must be aligned. 1-3 bytes */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc <= 3);
ASSURE (bc <= 3);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
@ -730,7 +729,7 @@ if (bc) {
buf[0] = (uint8) ((m >> V_BYTE0) & M_BYTE);
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
}
@ -777,7 +776,7 @@ cp = ~ba;
seg = (4 - (ba & 3)) & 3;
if (seg) { /* Unaligned head, can only be WORD1 */
assert ((ba & 2) && (seg == 2));
ASSURE ((ba & 2) && (seg == 2));
if (seg > bc)
seg = bc;
cp = UBMPAGE (ba); /* Only one word, can't cross page */
@ -800,7 +799,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -824,9 +823,9 @@ if (seg > 0) {
} /* Body */
/* Tail: partial word, must be aligned, can only be WORD0 */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc == 2);
ASSURE (bc == 2);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
@ -890,7 +889,7 @@ cp = ~ba;
seg = (4 - (ba & 3)) & 3;
if (seg) { /* Unaligned head */
assert ((ba & 2) && (seg == 2));
ASSURE ((ba & 2) && (seg == 2));
if (seg > bc)
seg = bc;
cp = UBMPAGE (ba); /* Only one word, can't cross page */
@ -913,7 +912,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -937,9 +936,9 @@ if (seg > 0) {
} /* Body */
/* Tail: partial word, must be aligned */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc == 2);
ASSURE (bc == 2);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
@ -1006,7 +1005,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -1090,7 +1089,7 @@ if (seg) { /* Unaligned head */
--seg;
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
M[pa10++] = m;
if (bc == 0) {
@ -1103,7 +1102,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -1126,9 +1125,9 @@ if (seg > 0) {
/* Tail: partial word, must be aligned */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc <= 3);
ASSURE (bc <= 3);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
@ -1151,7 +1150,7 @@ if (bc) {
m = (m & M_BYTE0) | (((d10) (buf[0])) << V_BYTE0);
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
}
else {
@ -1167,7 +1166,7 @@ if (bc) {
m = ((d10) (buf[0])) << V_BYTE0;
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
}
M[pa10++] = m;
@ -1215,7 +1214,7 @@ cp = ~ba;
seg = (4 - (ba & 3)) & 3;
if (seg) { /* Unaligned head */
assert ((ba & 2) && (seg == 2));
ASSURE ((ba & 2) && (seg == 2));
if (seg > bc)
seg = bc;
cp = UBMPAGE (ba); /* Only one word, can't cross page */
@ -1240,7 +1239,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -1263,9 +1262,9 @@ if (seg > 0) {
} /* Body */
/* Tail: partial word, must be aligned, can only be WORD0 */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc == 2);
ASSURE (bc == 2);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
@ -1327,7 +1326,7 @@ cp = ~ba;
seg = (4 - (ba & 3)) & 3;
if (seg) { /* Unaligned head */
assert ((ba & 2) && (seg == 2));
ASSURE ((ba & 2) && (seg == 2));
if (seg > bc)
seg = bc;
cp = UBMPAGE (ba); /* Only one word, can't cross page */
@ -1352,7 +1351,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);
@ -1373,9 +1372,9 @@ if (seg > 0) {
} /* Body */
/* Tail: partial word, must be aligned */
assert ((bc >= 0) && ((ba & 3) == 0));
ASSURE ((bc >= 0) && ((ba & 3) == 0));
if (bc) {
assert (bc == 2);
ASSURE (bc == 2);
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
if (np != cp) { /* New (or first) page? */
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
@ -1439,7 +1438,7 @@ ea = ba + bc;
seg = bc - (ea & 3);
if (seg > 0) {
assert (((seg & 3) == 0) && (bc >= seg));
ASSURE (((seg & 3) == 0) && (bc >= seg));
bc -= seg;
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
np = UBMPAGE (ba);

View file

@ -71,7 +71,6 @@
#include "pdp10_defs.h"
#include <math.h>
#include <assert.h>
#define RP_NUMDR 8 /* #drives */
#define RP_NUMWD 128 /* 36b words/sector */
@ -1367,7 +1366,7 @@ if (!(uptr->flags & UNIT_ATT))
M[FE_RHBASE] = fe_bootrh = rp_dib.ba;
M[FE_UNIT] = fe_bootunit = unitno;
assert (sizeof(boot_rom_dec) == sizeof(boot_rom_its));
ASSURE (sizeof(boot_rom_dec) == sizeof(boot_rom_its));
M[FE_KEEPA] = (M[FE_KEEPA] & ~INT64_C(0xFF)) | ((sim_switches & SWMASK ('A'))? 010 : 0);

View file

@ -96,7 +96,6 @@
#include "pdp10_defs.h"
#include "sim_tape.h"
#include <assert.h>
#define TU_NUMFM 1 /* #formatters */
#define TU_NUMDR 8 /* #drives */
@ -1383,7 +1382,7 @@ if (!(uptr->flags & UNIT_ATT))
M[FE_RHBASE] = tu_dib.ba;
M[FE_UNIT] = 0; /* Only one formatter in this implementation */
assert (sizeof(boot_rom_dec) == sizeof(boot_rom_its));
ASSURE (sizeof(boot_rom_dec) == sizeof(boot_rom_its));
M[FE_MTFMT] = (unitno & TC_M_UNIT) | (TC_1600 << TC_V_DEN) | (TC_10C << TC_V_FMT);
tu_unit[unitno].pos = 0;

View file

@ -290,7 +290,6 @@
#define DFLT_AIECO (0)
#endif
#include <assert.h>
#define CR_ER (00404)
#include "pdp11_cr_dat.h"
#define PUNCH_EOD (07417)
@ -703,9 +702,9 @@ static t_bool readCardImage ( UNIT *uptr,
/* Read card image into internal buffer */
assert (colStart < colEnd);
assert (colStart >= 0);
assert (colEnd <= 81);
ASSURE (colStart < colEnd);
ASSURE (colStart >= 0);
ASSURE (colEnd <= 81);
for (col = colStart; col < colEnd; ) {
int16 i;
int c1, c2, c3;
@ -782,9 +781,9 @@ static t_bool readCardASCII ( UNIT *uptr,
int c = 0, col, peek;
FILE *fp = uptr->fileref;
assert (colStart < colEnd);
assert (colStart >= 1);
assert (colEnd <= 80);
ASSURE (colStart < colEnd);
ASSURE (colStart >= 1);
ASSURE (colEnd <= 80);
if (DEBUG_PRS (cr_dev))
fprintf (sim_deb, "readCardASCII\n");

View file

@ -109,7 +109,6 @@ The other test was to configure DECnet on VMS 4.6 and do SET HOST.
#include "pdp11_defs.h"
#endif
#include <assert.h>
#include "sim_tmxr.h"
#include "pdp11_ddcmp.h"
@ -468,7 +467,7 @@ static t_bool insqueue (QH *entry, QH *pred)
{
if ((pred->queue->size > 0) && (pred->queue->count >= pred->queue->size))
return FALSE;
assert (entry->queue == NULL);
ASSURE (entry->queue == NULL);
entry->next = pred->next;
entry->prev = pred;
entry->queue = pred->queue;

View file

@ -47,7 +47,6 @@
#define KMC_RDX 8
#include <assert.h>
#include "pdp11_dup.h"
#include "pdp11_ddcmp.h"
@ -1031,7 +1030,7 @@ static t_stat kmc_txService (UNIT *txup) {
dupstate *d = line2dup[txup->unit_line];
t_bool more;
assert ((k >= 0) && (k < (int32) kmc_dev.numunits) && (d->kmc == k) &&
ASSURE ((k >= 0) && (k < (int32) kmc_dev.numunits) && (d->kmc == k) &&
(d->line == txup->unit_line));
/* Provide the illusion of progress. */
@ -1198,8 +1197,8 @@ static t_stat kmc_txService (UNIT *txup) {
*/
case TXMRDY: /* Data with OS-embedded HCRC */
d->txstate = TXACT;
assert (d->txmsg[d->txslen + 0] != DDCMP_ENQ);
assert (((d->txmlen - d->txslen) > 8) && /* Data, length should match count */
ASSURE (d->txmsg[d->txslen + 0] != DDCMP_ENQ);
ASSURE (((d->txmlen - d->txslen) > 8) && /* Data, length should match count */
(((size_t)(((d->txmsg[d->txslen + 2] & 077) << 8) | d->txmsg[d->txslen + 1])) ==
(d->txmlen - (d->txslen + 8))));
if (!dup_put_msg_bytes (d->dupidx, d->txmsg + d->txslen, d->txmlen - d->txslen, TRUE, TRUE)) {
@ -1212,7 +1211,7 @@ static t_stat kmc_txService (UNIT *txup) {
case TXRDY: /* Control or DATA with KDP-CRCH */
d->txstate = TXACT; /* Note that DUP can complete before returning */
if (d->txmsg[d->txslen + 0] == DDCMP_ENQ) { /* Control message */
assert ((d->txmlen - d->txslen) == 6);
ASSURE ((d->txmlen - d->txslen) == 6);
if (!dup_put_msg_bytes (d->dupidx, d->txmsg, d->txslen + 6, TRUE, TRUE)) {
sim_debug (DF_PKT, &kmc_dev, "KMC%u line %u: DUP%d refused TX packet\n", k, d->line, d->dupidx);
TXDELAY (TXRDY, TXDUP_DELAY);
@ -1221,7 +1220,7 @@ static t_stat kmc_txService (UNIT *txup) {
break;
}
assert (((d->txmlen - d->txslen) > 6) && /* Data, length should match count */
ASSURE (((d->txmlen - d->txslen) > 6) && /* Data, length should match count */
(((size_t)(((d->txmsg[d->txslen + 2] & 077) << 8) | d->txmsg[d->txslen + 1])) ==
(d->txmlen - (d->txslen + 6))));
if (!dup_put_msg_bytes (d->dupidx, d->txmsg, d->txslen + 6, TRUE, TRUE)) {
@ -1250,7 +1249,7 @@ static t_stat kmc_txService (UNIT *txup) {
#undef TXSTOP
if (d->txstate == TXIDLE) {
assert (!d->txavail);
ASSURE (!d->txavail);
if (dup_set_RTS (d->dupidx, FALSE) != SCPE_OK) {
sim_debug (DF_CTO, &kmc_dev, "KMC%u line %u: dup: %d DUP CSR NXM\n",
k, d->line, d->dupidx);
@ -1303,7 +1302,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
t_stat r;
uint16 xrem, seglen;
assert ((k >= 0) && (k < (int32) kmc_dev.numunits) && (d->kmc == k) &&
ASSURE ((k >= 0) && (k < (int32) kmc_dev.numunits) && (d->kmc == k) &&
(d->line == rxup->unit_line));
if (d->rxstate > RXBDL) {
@ -1420,7 +1419,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
if (seglen > d->rx.bd[1]) {
seglen = d->rx.bd[1];
}
assert (seglen > 0);
ASSURE (seglen > 0);
xrem = (uint16)Map_WriteB (d->rx.ba, seglen, d->rxmsg + d->rxused);
if (xrem != 0) {
@ -1458,7 +1457,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
if (d->ctrlFlags & SEL6_CI_ENASS) { /* Note that spec requires first bd >= 6 if SS match enabled */
if (!(d->rxmsg[5] == (d->ctrlFlags & SEL6_CI_SADDR))) { /* Also include SELECT? */
ASSURE ((bdl = (BDL *)remqueue(d->bdqh.prev, &d->bdavail)) != NULL);
assert (bdl->ba == d->rx.bda);
ASSURE (bdl->ba == d->rx.bda);
ASSURE (insqueue (&bdl->hdr, &d->rxqh, &d->rxavail, MAXQUEUE));
d->rxstate = RXIDLE;
break;
@ -1545,7 +1544,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
break;
default:
assert (FALSE);
ASSURE (FALSE);
}
if ((d->rxstate != RXIDLE) || d->rxavail) {
@ -1949,7 +1948,7 @@ void kmc_rxBufferIn(dupstate *d, int32 ba, uint16 sel6v) {
if (d->line == UNASSIGNED_LINE)
return;
assert ((k >= 0) && (((unsigned int)k) < kmc_dev.numunits) && (d->dupidx != -1));
ASSURE ((k >= 0) && (((unsigned int)k) < kmc_dev.numunits) && (d->dupidx != -1));
rxup = &rx_units[d->line][k];
@ -2031,9 +2030,9 @@ static void kdp_receive(int32 dupidx, int count) {
UNIT *rxup;
UNUSED_ARG (count);
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
d = &dupState[dupidx];
assert (dupidx == d->dupidx);
ASSURE (dupidx == d->dupidx);
k = d->kmc;
rxup = &rx_units[d->line][k];
@ -2070,7 +2069,7 @@ void kmc_txBufferIn(dupstate *d, int32 ba, uint16 sel6v) {
if (d->line == UNASSIGNED_LINE)
return;
assert ((k >= 0) && (((unsigned int)k) < kmc_dev.numunits) && (d->dupidx != -1));
ASSURE ((k >= 0) && (((unsigned int)k) < kmc_dev.numunits) && (d->dupidx != -1));
if (!kmc_printBufferIn (k, &kmc_dev, d->line, FALSE, d->txavail, ba, sel6v))
return;
@ -2139,7 +2138,7 @@ static void kmc_txComplete (int32 dupidx, int status) {
UNIT *txup;
int32 k;
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
d = &dupState[dupidx];
k = d->kmc;
@ -2231,7 +2230,7 @@ static t_bool kmc_txAppendBuffer(dupstate *d) {
if (!d->txmsg || (d->txmsize < d->txmlen+d->tx.bd[1])) {
d->txmsize = d->txmlen+d->tx.bd[1];
d->txmsg = (uint8 *)realloc(d->txmsg, d->txmsize);
assert (d->txmsg);
ASSURE (d->txmsg);
}
rem = (uint16)Map_ReadB (d->tx.ba, d->tx.bd[1], d->txmsg+d->txmlen);
d->tx.bd[1] -= rem;
@ -2348,7 +2347,7 @@ static void kmc_ctrlOut (int32 k, uint8 code, uint16 rx, uint8 line, uint32 bda)
static void kmc_modemChange (int32 dupidx) {
dupstate *d;
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
d = &dupState[dupidx];
if (d->dupidx != -1) {

View file

@ -247,7 +247,6 @@
------------------------------------------------------------------------------
*/
#include <assert.h>
#include "pdp11_xq.h"
#include "pdp11_xq_bootrom.h"