diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c index 019aa99d..a61b3a7a 100644 --- a/PDP10/pdp10_ksio.c +++ b/PDP10/pdp10_ksio.c @@ -1129,8 +1129,8 @@ while (done == 0) { /* sort ascending */ } } } /* end while */ -fprintf (st, " Address Vector BR Device\n" - "----------------- -------- -- ------\n"); +fprintf (st, " Address Vector BR # Device\n" + "----------------- -------- -- -- ------\n"); for (i = 0; dib_tab[i] != NULL; i++) { /* print table */ for (j = 0, dptr = NULL; sim_devices[j] != NULL; j++) { if (((DIB*) sim_devices[j]->ctxt) == dib_tab[i]) { @@ -1156,7 +1156,7 @@ for (i = 0; dib_tab[i] != NULL; i++) { /* print table */ (dib_tab[i]->vloc<=19)? 5: 4); else fprintf (st, " "); - fprintf (st, " %s\n", dptr? sim_dname (dptr): "CPU"); + fprintf (st, " %2u %s\n", (dptr? dptr->numunits: 1), dptr? sim_dname (dptr): "CPU"); } return SCPE_OK; } diff --git a/PDP11/pdp11_io_lib.c b/PDP11/pdp11_io_lib.c index 2f3ca19d..b9395ca2 100644 --- a/PDP11/pdp11_io_lib.c +++ b/PDP11/pdp11_io_lib.c @@ -298,7 +298,7 @@ t_stat show_iospace (FILE *st, UNIT *uptr, int32 val, void *desc) uint32 i, j; DEVICE *dptr; DIB *dibp; -uint32 maxaddr, maxname; +uint32 maxaddr, maxname, maxdev; int32 maxvec, vecwid; char valbuf[40]; @@ -308,6 +308,7 @@ if (build_dib_tab ()) /* build IO page */ maxaddr = 0; maxvec = 0; maxname = 0; +maxdev = 1; for (i = 0, dibp = NULL; i < (IOPAGESIZE >> 1); i++) { /* loop thru entries */ size_t l; @@ -326,6 +327,9 @@ for (i = 0, dibp = NULL; i < (IOPAGESIZE >> 1); i++) { /* loop thru entries */ l = strlen (dptr? sim_dname (dptr): "CPU"); if (l>maxname) maxname = (int32)l; + j = (dptr? dptr->numunits: 1); + if (j > maxdev) + maxdev = j; } /* end if */ } /* end for i */ maxaddr = fprint_val (NULL, (t_value) dibp->ba, DEV_RDX, 32, PV_LEFT); @@ -333,6 +337,8 @@ sprintf (valbuf, "%03o", maxvec); vecwid = maxvec = (int32) strlen (valbuf); if (vecwid < 3) vecwid = 3; +sprintf (valbuf, "%u", maxdev); +maxdev = (uint32)strlen (valbuf); j = strlen ("Address"); i = (maxaddr*2)+3+1; @@ -352,7 +358,7 @@ else maxvec = i+j; fprintf (st, " %*.*sVector%*.*s", i/2, i/2, " ", (i/2)+i%2, (i/2)+i%2, " "); -fprintf (st, " BR Device\n"); +fprintf (st, " BR %*.*s# Device\n", (maxdev -1), (maxdev-1)); for (i = 0; i < maxaddr; i++) fputc ('-', st); fprintf (st, " "); @@ -360,6 +366,10 @@ for (i = 0; i < (uint32)maxvec; i++) fputc ('-', st); fprintf (st, " -- "); +for (i=0; i < maxdev; i++) { + fputc ('-', st); +} +fputc (' ', st); i = strlen ("Device"); if (maxname < i) @@ -397,7 +407,7 @@ for (i = 0, dibp = NULL; i < (IOPAGESIZE >> 1); i++) { /* loop thru entries */ fprintf (st, " %2u", dibp->vloc/32); else fprintf (st, " "); - fprintf (st, " %s\n", dptr? sim_dname (dptr): "CPU"); + fprintf (st, " %*u %s\n", maxdev, (dptr? dptr->numunits: 1), dptr? sim_dname (dptr): "CPU"); } /* end if */ } /* end for i */ return SCPE_OK; @@ -526,10 +536,10 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */ { { NULL }, 1, 3, 0, 8, {015000, 015040, 015100, 015140, }}, /* DV11 */ { { NULL }, 1, 2, 8, 8 }, /* LK11A */ - { { "DMC0", "DMC1", "DMC2", "DMC3" }, + { { "DMC" }, 1, 2, 8, 8 }, /* DMC11 */ { { "DZ" }, 1, 2, 8, 8 }, /* DZ11 */ - { { "KMC" }, 1, 2, 8, 8 }, /* KMC11 */ + { { "KDP" }, 1, 2, 8, 8 }, /* KMC11 */ { { NULL }, 1, 2, 8, 8 }, /* LPP11 */ { { NULL }, 1, 2, 8, 8 }, /* VMV21 */ { { NULL }, 1, 2, 16, 8 }, /* VMV31 */ diff --git a/PDP11/pdp11_sys.c b/PDP11/pdp11_sys.c index 44dc1da3..6d3ae09a 100644 --- a/PDP11/pdp11_sys.c +++ b/PDP11/pdp11_sys.c @@ -102,7 +102,7 @@ extern DEVICE xq_dev, xqb_dev; extern DEVICE xu_dev, xub_dev; extern DEVICE ke_dev; extern DEVICE kg_dev; -extern DEVICE dmc_dev[]; +extern DEVICE dmc_dev; extern DEVICE dup_dev; extern DEVICE dpv_dev; extern DEVICE kmc_dev; @@ -170,10 +170,7 @@ DEVICE *sim_devices[] = { &xub_dev, &ke_dev, &kg_dev, - &dmc_dev[0], - &dmc_dev[1], - &dmc_dev[2], - &dmc_dev[3], + &dmc_dev, &dup_dev, &dpv_dev, &kmc_dev,