mirror of
https://github.com/simh/simh.git
synced 2026-03-04 10:34:40 +00:00
KDP infrastructure
Add # units/devices to show iospace. For the devices that use units to represent multiple CSR allocations, that helps make sense of the table. Correct the KDP and DMC autoconfigure table for the 11/VAX. Correct the DMC device entries in pdp11_sys to match Mark's versions.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user