IBM1130, PDP10, PDP11: Replaced assert() with ASSURE() for run time error checks
This commit is contained in:
parent
1b7d77e03b
commit
6ffa4c8a41
9 changed files with 55 additions and 65 deletions
|
@ -16,7 +16,6 @@
|
||||||
#include "sim_console.h" /* more SIMH defns (include path should include .., or make a copy) */
|
#include "sim_console.h" /* more SIMH defns (include path should include .., or make a copy) */
|
||||||
|
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <assert.h>
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
#if defined(VMS)
|
#if defined(VMS)
|
||||||
|
|
|
@ -351,8 +351,6 @@ static t_stat tti_svc (UNIT *uptr)
|
||||||
/* otherwise, so ^E can interrupt the simulator, */
|
/* otherwise, so ^E can interrupt the simulator, */
|
||||||
sim_activate(&tti_unit, tti_unit.wait); /* always continue polling keyboard */
|
sim_activate(&tti_unit, tti_unit.wait); /* always continue polling keyboard */
|
||||||
|
|
||||||
assert(sim_clock_queue != QUEUE_LIST_END);
|
|
||||||
|
|
||||||
temp = sim_poll_kbd();
|
temp = sim_poll_kbd();
|
||||||
|
|
||||||
if (temp < SCPE_KFLAG)
|
if (temp < SCPE_KFLAG)
|
||||||
|
|
|
@ -73,7 +73,6 @@
|
||||||
|
|
||||||
#include "pdp10_defs.h"
|
#include "pdp10_defs.h"
|
||||||
#include <setjmp.h>
|
#include <setjmp.h>
|
||||||
#include <assert.h>
|
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include "sim_sock.h"
|
#include "sim_sock.h"
|
||||||
#include "sim_tmxr.h"
|
#include "sim_tmxr.h"
|
||||||
|
@ -664,7 +663,7 @@ if (seg) { /* Unaligned head */
|
||||||
--seg;
|
--seg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
if (bc == 0) {
|
if (bc == 0) {
|
||||||
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -677,7 +676,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) { /* Body: Whole PDP-10 words, 4 bytes */
|
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;
|
dpy_ba = ba;
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
|
@ -706,9 +705,9 @@ if (seg > 0) { /* Body: Whole PDP-10 words, 4 bytes */
|
||||||
} /* Body */
|
} /* Body */
|
||||||
|
|
||||||
/* Tail: partial -10 word, must be aligned. 1-3 bytes */
|
/* Tail: partial -10 word, must be aligned. 1-3 bytes */
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc <= 3);
|
ASSURE (bc <= 3);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -730,7 +729,7 @@ if (bc) {
|
||||||
buf[0] = (uint8) ((m >> V_BYTE0) & M_BYTE);
|
buf[0] = (uint8) ((m >> V_BYTE0) & M_BYTE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -777,7 +776,7 @@ cp = ~ba;
|
||||||
seg = (4 - (ba & 3)) & 3;
|
seg = (4 - (ba & 3)) & 3;
|
||||||
|
|
||||||
if (seg) { /* Unaligned head, can only be WORD1 */
|
if (seg) { /* Unaligned head, can only be WORD1 */
|
||||||
assert ((ba & 2) && (seg == 2));
|
ASSURE ((ba & 2) && (seg == 2));
|
||||||
if (seg > bc)
|
if (seg > bc)
|
||||||
seg = bc;
|
seg = bc;
|
||||||
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
||||||
|
@ -800,7 +799,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -824,9 +823,9 @@ if (seg > 0) {
|
||||||
} /* Body */
|
} /* Body */
|
||||||
|
|
||||||
/* Tail: partial word, must be aligned, can only be WORD0 */
|
/* Tail: partial word, must be aligned, can only be WORD0 */
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc == 2);
|
ASSURE (bc == 2);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -890,7 +889,7 @@ cp = ~ba;
|
||||||
seg = (4 - (ba & 3)) & 3;
|
seg = (4 - (ba & 3)) & 3;
|
||||||
|
|
||||||
if (seg) { /* Unaligned head */
|
if (seg) { /* Unaligned head */
|
||||||
assert ((ba & 2) && (seg == 2));
|
ASSURE ((ba & 2) && (seg == 2));
|
||||||
if (seg > bc)
|
if (seg > bc)
|
||||||
seg = bc;
|
seg = bc;
|
||||||
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
||||||
|
@ -913,7 +912,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -937,9 +936,9 @@ if (seg > 0) {
|
||||||
} /* Body */
|
} /* Body */
|
||||||
|
|
||||||
/* Tail: partial word, must be aligned */
|
/* Tail: partial word, must be aligned */
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc == 2);
|
ASSURE (bc == 2);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_out (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -1006,7 +1005,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -1090,7 +1089,7 @@ if (seg) { /* Unaligned head */
|
||||||
--seg;
|
--seg;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
M[pa10++] = m;
|
M[pa10++] = m;
|
||||||
if (bc == 0) {
|
if (bc == 0) {
|
||||||
|
@ -1103,7 +1102,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -1126,9 +1125,9 @@ if (seg > 0) {
|
||||||
|
|
||||||
/* Tail: partial word, must be aligned */
|
/* Tail: partial word, must be aligned */
|
||||||
|
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc <= 3);
|
ASSURE (bc <= 3);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -1151,7 +1150,7 @@ if (bc) {
|
||||||
m = (m & M_BYTE0) | (((d10) (buf[0])) << V_BYTE0);
|
m = (m & M_BYTE0) | (((d10) (buf[0])) << V_BYTE0);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1167,7 +1166,7 @@ if (bc) {
|
||||||
m = ((d10) (buf[0])) << V_BYTE0;
|
m = ((d10) (buf[0])) << V_BYTE0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
M[pa10++] = m;
|
M[pa10++] = m;
|
||||||
|
@ -1215,7 +1214,7 @@ cp = ~ba;
|
||||||
seg = (4 - (ba & 3)) & 3;
|
seg = (4 - (ba & 3)) & 3;
|
||||||
|
|
||||||
if (seg) { /* Unaligned head */
|
if (seg) { /* Unaligned head */
|
||||||
assert ((ba & 2) && (seg == 2));
|
ASSURE ((ba & 2) && (seg == 2));
|
||||||
if (seg > bc)
|
if (seg > bc)
|
||||||
seg = bc;
|
seg = bc;
|
||||||
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
||||||
|
@ -1240,7 +1239,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -1263,9 +1262,9 @@ if (seg > 0) {
|
||||||
} /* Body */
|
} /* Body */
|
||||||
|
|
||||||
/* Tail: partial word, must be aligned, can only be WORD0 */
|
/* Tail: partial word, must be aligned, can only be WORD0 */
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc == 2);
|
ASSURE (bc == 2);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -1327,7 +1326,7 @@ cp = ~ba;
|
||||||
seg = (4 - (ba & 3)) & 3;
|
seg = (4 - (ba & 3)) & 3;
|
||||||
|
|
||||||
if (seg) { /* Unaligned head */
|
if (seg) { /* Unaligned head */
|
||||||
assert ((ba & 2) && (seg == 2));
|
ASSURE ((ba & 2) && (seg == 2));
|
||||||
if (seg > bc)
|
if (seg > bc)
|
||||||
seg = bc;
|
seg = bc;
|
||||||
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
cp = UBMPAGE (ba); /* Only one word, can't cross page */
|
||||||
|
@ -1352,7 +1351,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
@ -1373,9 +1372,9 @@ if (seg > 0) {
|
||||||
} /* Body */
|
} /* Body */
|
||||||
|
|
||||||
/* Tail: partial word, must be aligned */
|
/* Tail: partial word, must be aligned */
|
||||||
assert ((bc >= 0) && ((ba & 3) == 0));
|
ASSURE ((bc >= 0) && ((ba & 3) == 0));
|
||||||
if (bc) {
|
if (bc) {
|
||||||
assert (bc == 2);
|
ASSURE (bc == 2);
|
||||||
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
np = UBMPAGE (ba); /* Only one word, last possible page crossing */
|
||||||
if (np != cp) { /* New (or first) page? */
|
if (np != cp) { /* New (or first) page? */
|
||||||
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
uba_debug_dma_in (dpy_ba, dpy_pa10, pa10);
|
||||||
|
@ -1439,7 +1438,7 @@ ea = ba + bc;
|
||||||
seg = bc - (ea & 3);
|
seg = bc - (ea & 3);
|
||||||
|
|
||||||
if (seg > 0) {
|
if (seg > 0) {
|
||||||
assert (((seg & 3) == 0) && (bc >= seg));
|
ASSURE (((seg & 3) == 0) && (bc >= seg));
|
||||||
bc -= seg;
|
bc -= seg;
|
||||||
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
for ( ; seg; seg -= 4, ba += 4) { /* aligned longwords */
|
||||||
np = UBMPAGE (ba);
|
np = UBMPAGE (ba);
|
||||||
|
|
|
@ -71,7 +71,6 @@
|
||||||
|
|
||||||
#include "pdp10_defs.h"
|
#include "pdp10_defs.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#define RP_NUMDR 8 /* #drives */
|
#define RP_NUMDR 8 /* #drives */
|
||||||
#define RP_NUMWD 128 /* 36b words/sector */
|
#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_RHBASE] = fe_bootrh = rp_dib.ba;
|
||||||
M[FE_UNIT] = fe_bootunit = unitno;
|
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);
|
M[FE_KEEPA] = (M[FE_KEEPA] & ~INT64_C(0xFF)) | ((sim_switches & SWMASK ('A'))? 010 : 0);
|
||||||
|
|
||||||
|
|
|
@ -96,7 +96,6 @@
|
||||||
|
|
||||||
#include "pdp10_defs.h"
|
#include "pdp10_defs.h"
|
||||||
#include "sim_tape.h"
|
#include "sim_tape.h"
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#define TU_NUMFM 1 /* #formatters */
|
#define TU_NUMFM 1 /* #formatters */
|
||||||
#define TU_NUMDR 8 /* #drives */
|
#define TU_NUMDR 8 /* #drives */
|
||||||
|
@ -1383,7 +1382,7 @@ if (!(uptr->flags & UNIT_ATT))
|
||||||
M[FE_RHBASE] = tu_dib.ba;
|
M[FE_RHBASE] = tu_dib.ba;
|
||||||
M[FE_UNIT] = 0; /* Only one formatter in this implementation */
|
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);
|
M[FE_MTFMT] = (unitno & TC_M_UNIT) | (TC_1600 << TC_V_DEN) | (TC_10C << TC_V_FMT);
|
||||||
tu_unit[unitno].pos = 0;
|
tu_unit[unitno].pos = 0;
|
||||||
|
|
|
@ -290,7 +290,6 @@
|
||||||
#define DFLT_AIECO (0)
|
#define DFLT_AIECO (0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#define CR_ER (00404)
|
#define CR_ER (00404)
|
||||||
#include "pdp11_cr_dat.h"
|
#include "pdp11_cr_dat.h"
|
||||||
#define PUNCH_EOD (07417)
|
#define PUNCH_EOD (07417)
|
||||||
|
@ -703,9 +702,9 @@ static t_bool readCardImage ( UNIT *uptr,
|
||||||
|
|
||||||
/* Read card image into internal buffer */
|
/* Read card image into internal buffer */
|
||||||
|
|
||||||
assert (colStart < colEnd);
|
ASSURE (colStart < colEnd);
|
||||||
assert (colStart >= 0);
|
ASSURE (colStart >= 0);
|
||||||
assert (colEnd <= 81);
|
ASSURE (colEnd <= 81);
|
||||||
for (col = colStart; col < colEnd; ) {
|
for (col = colStart; col < colEnd; ) {
|
||||||
int16 i;
|
int16 i;
|
||||||
int c1, c2, c3;
|
int c1, c2, c3;
|
||||||
|
@ -782,9 +781,9 @@ static t_bool readCardASCII ( UNIT *uptr,
|
||||||
int c = 0, col, peek;
|
int c = 0, col, peek;
|
||||||
FILE *fp = uptr->fileref;
|
FILE *fp = uptr->fileref;
|
||||||
|
|
||||||
assert (colStart < colEnd);
|
ASSURE (colStart < colEnd);
|
||||||
assert (colStart >= 1);
|
ASSURE (colStart >= 1);
|
||||||
assert (colEnd <= 80);
|
ASSURE (colEnd <= 80);
|
||||||
|
|
||||||
if (DEBUG_PRS (cr_dev))
|
if (DEBUG_PRS (cr_dev))
|
||||||
fprintf (sim_deb, "readCardASCII\n");
|
fprintf (sim_deb, "readCardASCII\n");
|
||||||
|
|
|
@ -109,7 +109,6 @@ The other test was to configure DECnet on VMS 4.6 and do SET HOST.
|
||||||
#include "pdp11_defs.h"
|
#include "pdp11_defs.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include "sim_tmxr.h"
|
#include "sim_tmxr.h"
|
||||||
#include "pdp11_ddcmp.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))
|
if ((pred->queue->size > 0) && (pred->queue->count >= pred->queue->size))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
assert (entry->queue == NULL);
|
ASSURE (entry->queue == NULL);
|
||||||
entry->next = pred->next;
|
entry->next = pred->next;
|
||||||
entry->prev = pred;
|
entry->prev = pred;
|
||||||
entry->queue = pred->queue;
|
entry->queue = pred->queue;
|
||||||
|
|
|
@ -47,7 +47,6 @@
|
||||||
|
|
||||||
#define KMC_RDX 8
|
#define KMC_RDX 8
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include "pdp11_dup.h"
|
#include "pdp11_dup.h"
|
||||||
#include "pdp11_ddcmp.h"
|
#include "pdp11_ddcmp.h"
|
||||||
|
|
||||||
|
@ -1031,7 +1030,7 @@ static t_stat kmc_txService (UNIT *txup) {
|
||||||
dupstate *d = line2dup[txup->unit_line];
|
dupstate *d = line2dup[txup->unit_line];
|
||||||
t_bool more;
|
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));
|
(d->line == txup->unit_line));
|
||||||
|
|
||||||
/* Provide the illusion of progress. */
|
/* Provide the illusion of progress. */
|
||||||
|
@ -1198,8 +1197,8 @@ static t_stat kmc_txService (UNIT *txup) {
|
||||||
*/
|
*/
|
||||||
case TXMRDY: /* Data with OS-embedded HCRC */
|
case TXMRDY: /* Data with OS-embedded HCRC */
|
||||||
d->txstate = TXACT;
|
d->txstate = TXACT;
|
||||||
assert (d->txmsg[d->txslen + 0] != DDCMP_ENQ);
|
ASSURE (d->txmsg[d->txslen + 0] != DDCMP_ENQ);
|
||||||
assert (((d->txmlen - d->txslen) > 8) && /* Data, length should match count */
|
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])) ==
|
(((size_t)(((d->txmsg[d->txslen + 2] & 077) << 8) | d->txmsg[d->txslen + 1])) ==
|
||||||
(d->txmlen - (d->txslen + 8))));
|
(d->txmlen - (d->txslen + 8))));
|
||||||
if (!dup_put_msg_bytes (d->dupidx, d->txmsg + d->txslen, d->txmlen - d->txslen, TRUE, TRUE)) {
|
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 */
|
case TXRDY: /* Control or DATA with KDP-CRCH */
|
||||||
d->txstate = TXACT; /* Note that DUP can complete before returning */
|
d->txstate = TXACT; /* Note that DUP can complete before returning */
|
||||||
if (d->txmsg[d->txslen + 0] == DDCMP_ENQ) { /* Control message */
|
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)) {
|
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);
|
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);
|
TXDELAY (TXRDY, TXDUP_DELAY);
|
||||||
|
@ -1221,7 +1220,7 @@ static t_stat kmc_txService (UNIT *txup) {
|
||||||
break;
|
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])) ==
|
(((size_t)(((d->txmsg[d->txslen + 2] & 077) << 8) | d->txmsg[d->txslen + 1])) ==
|
||||||
(d->txmlen - (d->txslen + 6))));
|
(d->txmlen - (d->txslen + 6))));
|
||||||
if (!dup_put_msg_bytes (d->dupidx, d->txmsg, d->txslen + 6, TRUE, TRUE)) {
|
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
|
#undef TXSTOP
|
||||||
|
|
||||||
if (d->txstate == TXIDLE) {
|
if (d->txstate == TXIDLE) {
|
||||||
assert (!d->txavail);
|
ASSURE (!d->txavail);
|
||||||
if (dup_set_RTS (d->dupidx, FALSE) != SCPE_OK) {
|
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",
|
sim_debug (DF_CTO, &kmc_dev, "KMC%u line %u: dup: %d DUP CSR NXM\n",
|
||||||
k, d->line, d->dupidx);
|
k, d->line, d->dupidx);
|
||||||
|
@ -1303,7 +1302,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
|
||||||
t_stat r;
|
t_stat r;
|
||||||
uint16 xrem, seglen;
|
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));
|
(d->line == rxup->unit_line));
|
||||||
|
|
||||||
if (d->rxstate > RXBDL) {
|
if (d->rxstate > RXBDL) {
|
||||||
|
@ -1420,7 +1419,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
|
||||||
if (seglen > d->rx.bd[1]) {
|
if (seglen > d->rx.bd[1]) {
|
||||||
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);
|
xrem = (uint16)Map_WriteB (d->rx.ba, seglen, d->rxmsg + d->rxused);
|
||||||
if (xrem != 0) {
|
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->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? */
|
if (!(d->rxmsg[5] == (d->ctrlFlags & SEL6_CI_SADDR))) { /* Also include SELECT? */
|
||||||
ASSURE ((bdl = (BDL *)remqueue(d->bdqh.prev, &d->bdavail)) != NULL);
|
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));
|
ASSURE (insqueue (&bdl->hdr, &d->rxqh, &d->rxavail, MAXQUEUE));
|
||||||
d->rxstate = RXIDLE;
|
d->rxstate = RXIDLE;
|
||||||
break;
|
break;
|
||||||
|
@ -1545,7 +1544,7 @@ static t_stat kmc_rxService (UNIT *rxup) {
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
assert (FALSE);
|
ASSURE (FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((d->rxstate != RXIDLE) || d->rxavail) {
|
if ((d->rxstate != RXIDLE) || d->rxavail) {
|
||||||
|
@ -1949,7 +1948,7 @@ void kmc_rxBufferIn(dupstate *d, int32 ba, uint16 sel6v) {
|
||||||
if (d->line == UNASSIGNED_LINE)
|
if (d->line == UNASSIGNED_LINE)
|
||||||
return;
|
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];
|
rxup = &rx_units[d->line][k];
|
||||||
|
|
||||||
|
@ -2031,9 +2030,9 @@ static void kdp_receive(int32 dupidx, int count) {
|
||||||
UNIT *rxup;
|
UNIT *rxup;
|
||||||
UNUSED_ARG (count);
|
UNUSED_ARG (count);
|
||||||
|
|
||||||
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
||||||
d = &dupState[dupidx];
|
d = &dupState[dupidx];
|
||||||
assert (dupidx == d->dupidx);
|
ASSURE (dupidx == d->dupidx);
|
||||||
k = d->kmc;
|
k = d->kmc;
|
||||||
rxup = &rx_units[d->line][k];
|
rxup = &rx_units[d->line][k];
|
||||||
|
|
||||||
|
@ -2070,7 +2069,7 @@ void kmc_txBufferIn(dupstate *d, int32 ba, uint16 sel6v) {
|
||||||
if (d->line == UNASSIGNED_LINE)
|
if (d->line == UNASSIGNED_LINE)
|
||||||
return;
|
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))
|
if (!kmc_printBufferIn (k, &kmc_dev, d->line, FALSE, d->txavail, ba, sel6v))
|
||||||
return;
|
return;
|
||||||
|
@ -2139,7 +2138,7 @@ static void kmc_txComplete (int32 dupidx, int status) {
|
||||||
UNIT *txup;
|
UNIT *txup;
|
||||||
int32 k;
|
int32 k;
|
||||||
|
|
||||||
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
||||||
|
|
||||||
d = &dupState[dupidx];
|
d = &dupState[dupidx];
|
||||||
k = d->kmc;
|
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])) {
|
if (!d->txmsg || (d->txmsize < d->txmlen+d->tx.bd[1])) {
|
||||||
d->txmsize = d->txmlen+d->tx.bd[1];
|
d->txmsize = d->txmlen+d->tx.bd[1];
|
||||||
d->txmsg = (uint8 *)realloc(d->txmsg, d->txmsize);
|
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);
|
rem = (uint16)Map_ReadB (d->tx.ba, d->tx.bd[1], d->txmsg+d->txmlen);
|
||||||
d->tx.bd[1] -= rem;
|
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) {
|
static void kmc_modemChange (int32 dupidx) {
|
||||||
dupstate *d;
|
dupstate *d;
|
||||||
|
|
||||||
assert ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
ASSURE ((dupidx >= 0) && (((size_t)dupidx) < DIM(dupState)));
|
||||||
d = &dupState[dupidx];
|
d = &dupState[dupidx];
|
||||||
|
|
||||||
if (d->dupidx != -1) {
|
if (d->dupidx != -1) {
|
||||||
|
|
|
@ -247,7 +247,6 @@
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <assert.h>
|
|
||||||
#include "pdp11_xq.h"
|
#include "pdp11_xq.h"
|
||||||
#include "pdp11_xq_bootrom.h"
|
#include "pdp11_xq_bootrom.h"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue