diff --git a/PDP10/pdp10_defs.h b/PDP10/pdp10_defs.h index 8cbe1e7f..943a5847 100644 --- a/PDP10/pdp10_defs.h +++ b/PDP10/pdp10_defs.h @@ -634,7 +634,7 @@ typedef struct pdp_dib DIB; /* I/O page layout */ -#define IOPAGEBASE 0760000 /* I/O page base */ +#define IOPAGEBASE (IO_UBA3) /* I/O page base */ #define IOBA_UBMAP 0763000 #define IOBA_UBMAP1 (IO_UBA1 + IOBA_UBMAP) /* Unibus 1 map */ diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c index 238f3ded..ebd0de85 100644 --- a/PDP10/pdp10_ksio.c +++ b/PDP10/pdp10_ksio.c @@ -97,7 +97,7 @@ int32 ubcs[UBANUM] = { 0 }; /* status registers */ int32 ubmap[UBANUM][UMAP_MEMSIZE] = { 0 }; /* Unibus maps */ int32 int_req = 0; /* interrupt requests */ -int32 autcon_enb; /* auto configure enabled */ +int32 autcon_enb = 1; /* auto configure enabled */ /* Map IO controller numbers to Unibus adapters: -1 = non-existent */ @@ -723,12 +723,15 @@ dptr = find_dev_from_unit (uptr); if (dptr == NULL) return SCPE_IERR; dibp = (DIB *) dptr->ctxt; -if ((dibp == NULL) || (dibp->ba <= IOPAGEBASE)) +if (dibp == NULL) + return SCPE_IERR; +if (((dibp->ba>>IO_V_UBA) != 1) && + ((dibp->ba>>IO_V_UBA) != 3)) return SCPE_IERR; fprintf (st, "address=%07o", dibp->ba); if (dibp->lnt > 1) fprintf (st, "-%07o", dibp->ba + dibp->lnt - 1); -if (dibp->ba < IOPAGEBASE + AUTO_CSRBASE + AUTO_CSRMAX) +if ((dibp->ba & ((1 << IO_V_UBA) - 1)) < AUTO_CSRBASE + AUTO_CSRMAX) fprintf (st, "*"); return SCPE_OK; } diff --git a/doc/pdp10_doc.doc b/doc/pdp10_doc.doc index 930f7458..f85e6dc9 100644 Binary files a/doc/pdp10_doc.doc and b/doc/pdp10_doc.doc differ diff --git a/doc/vax780_doc.doc b/doc/vax780_doc.doc index e5e0753b..874e1f19 100644 Binary files a/doc/vax780_doc.doc and b/doc/vax780_doc.doc differ diff --git a/doc/vax_doc.doc b/doc/vax_doc.doc index f64f3688..c0af4138 100644 Binary files a/doc/vax_doc.doc and b/doc/vax_doc.doc differ