From 6ffa4c8a415eec92643eeef4bd2188c38086bc04 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 11 Aug 2018 14:44:15 -0700 Subject: [PATCH] IBM1130, PDP10, PDP11: Replaced assert() with ASSURE() for run time error checks --- Ibm1130/ibm1130_defs.h | 1 - Ibm1130/ibm1130_stddev.c | 2 -- PDP10/pdp10_ksio.c | 59 ++++++++++++++++++++-------------------- PDP10/pdp10_rp.c | 3 +- PDP10/pdp10_tu.c | 3 +- PDP11/pdp11_cr.c | 13 ++++----- PDP11/pdp11_dmc.c | 3 +- PDP11/pdp11_kmc.c | 35 ++++++++++++------------ PDP11/pdp11_xq.c | 1 - 9 files changed, 55 insertions(+), 65 deletions(-) diff --git a/Ibm1130/ibm1130_defs.h b/Ibm1130/ibm1130_defs.h index ff4ebf52..5a620dd7 100644 --- a/Ibm1130/ibm1130_defs.h +++ b/Ibm1130/ibm1130_defs.h @@ -16,7 +16,6 @@ #include "sim_console.h" /* more SIMH defns (include path should include .., or make a copy) */ #include -#include #include #if defined(VMS) diff --git a/Ibm1130/ibm1130_stddev.c b/Ibm1130/ibm1130_stddev.c index 33e8b697..32cb9255 100644 --- a/Ibm1130/ibm1130_stddev.c +++ b/Ibm1130/ibm1130_stddev.c @@ -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) diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c index eda05fba..f5a7c74d 100644 --- a/PDP10/pdp10_ksio.c +++ b/PDP10/pdp10_ksio.c @@ -73,7 +73,6 @@ #include "pdp10_defs.h" #include -#include #include #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); diff --git a/PDP10/pdp10_rp.c b/PDP10/pdp10_rp.c index 160efd5f..b8f9bca3 100644 --- a/PDP10/pdp10_rp.c +++ b/PDP10/pdp10_rp.c @@ -71,7 +71,6 @@ #include "pdp10_defs.h" #include -#include #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); diff --git a/PDP10/pdp10_tu.c b/PDP10/pdp10_tu.c index 95818c03..22c1569a 100644 --- a/PDP10/pdp10_tu.c +++ b/PDP10/pdp10_tu.c @@ -96,7 +96,6 @@ #include "pdp10_defs.h" #include "sim_tape.h" -#include #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; diff --git a/PDP11/pdp11_cr.c b/PDP11/pdp11_cr.c index e3982e1c..e9f433eb 100644 --- a/PDP11/pdp11_cr.c +++ b/PDP11/pdp11_cr.c @@ -290,7 +290,6 @@ #define DFLT_AIECO (0) #endif -#include #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"); diff --git a/PDP11/pdp11_dmc.c b/PDP11/pdp11_dmc.c index b4ed8797..0c2b9453 100644 --- a/PDP11/pdp11_dmc.c +++ b/PDP11/pdp11_dmc.c @@ -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 #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; diff --git a/PDP11/pdp11_kmc.c b/PDP11/pdp11_kmc.c index c46adf31..693e8c1e 100644 --- a/PDP11/pdp11_kmc.c +++ b/PDP11/pdp11_kmc.c @@ -47,7 +47,6 @@ #define KMC_RDX 8 -#include #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) { diff --git a/PDP11/pdp11_xq.c b/PDP11/pdp11_xq.c index defb84eb..e02cd444 100644 --- a/PDP11/pdp11_xq.c +++ b/PDP11/pdp11_xq.c @@ -247,7 +247,6 @@ ------------------------------------------------------------------------------ */ -#include #include "pdp11_xq.h" #include "pdp11_xq_bootrom.h"