diff --git a/PDP10/pdp10_defs.h b/PDP10/pdp10_defs.h index fb0e03ed..2fd8e414 100644 --- a/PDP10/pdp10_defs.h +++ b/PDP10/pdp10_defs.h @@ -613,6 +613,7 @@ struct pdp_dib { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routines */ + uint32 ulnt; /* IO length per unit */ }; typedef struct pdp_dib DIB; diff --git a/PDP10/pdp10_ksio.c b/PDP10/pdp10_ksio.c index 019aa99d..554d1aab 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,8 @@ 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", (dib_tab[i]->ulnt? dib_tab[i]->lnt/dib_tab[i]->ulnt: + (dptr? dptr->numunits: 1)), dptr? sim_dname (dptr): "CPU"); } return SCPE_OK; } diff --git a/PDP10/pdp10_rp.c b/PDP10/pdp10_rp.c index e65bd9a3..c307a6c2 100644 --- a/PDP10/pdp10_rp.c +++ b/PDP10/pdp10_rp.c @@ -387,7 +387,7 @@ t_stat rp_set_size (UNIT *uptr, int32 val, char *cptr, void *desc); DIB rp_dib = { IOBA_RP, IOLN_RP, &rp_rd, &rp_wr, - 1, IVCL (RP), VEC_RP, { &rp_inta } + 1, IVCL (RP), VEC_RP, { &rp_inta }, IOLN_RP }; UNIT rp_unit[] = { diff --git a/PDP10/pdp10_tu.c b/PDP10/pdp10_tu.c index eb0cd890..f37c3ca8 100644 --- a/PDP10/pdp10_tu.c +++ b/PDP10/pdp10_tu.c @@ -359,7 +359,7 @@ t_stat tu_map_err (UNIT *uptr, t_stat st, t_bool qdt); DIB tu_dib = { IOBA_TU, IOLN_TU, &tu_rd, &tu_wr, - 1, IVCL (TU), VEC_TU, { &tu_inta } + 1, IVCL (TU), VEC_TU, { &tu_inta }, IOLN_TU, }; UNIT tu_unit[] = { diff --git a/PDP11/pdp11_dc.c b/PDP11/pdp11_dc.c index e6b180fd..3e13b342 100644 --- a/PDP11/pdp11_dc.c +++ b/PDP11/pdp11_dc.c @@ -154,7 +154,7 @@ char *dcx_description (DEVICE *dptr); DIB dci_dib = { IOBA_AUTO, IOLN_DC * DCX_LINES, &dcx_rd, &dcx_wr, - 2, IVCL (DCI), VEC_AUTO, { &dci_iack, &dco_iack } + 2, IVCL (DCI), VEC_AUTO, { &dci_iack, &dco_iack }, IOLN_DC, }; UNIT dci_unit = { UDATA (&dci_svc, 0, 0), KBD_POLL_WAIT }; diff --git a/PDP11/pdp11_defs.h b/PDP11/pdp11_defs.h index 8b0fdea5..43eb6ee8 100644 --- a/PDP11/pdp11_defs.h +++ b/PDP11/pdp11_defs.h @@ -511,6 +511,7 @@ struct pdp_dib { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routines */ + uint32 ulnt; /* IO length per-unit */ }; typedef struct pdp_dib DIB; diff --git a/PDP11/pdp11_dl.c b/PDP11/pdp11_dl.c index 41c90775..f13a0813 100644 --- a/PDP11/pdp11_dl.c +++ b/PDP11/pdp11_dl.c @@ -118,7 +118,7 @@ void dlx_reset_ln (int32 ln); DIB dli_dib = { IOBA_AUTO, IOLN_DL * DLX_LINES, &dlx_rd, &dlx_wr, - 2, IVCL (DLI), VEC_AUTO, { &dli_iack, &dlo_iack } + 2, IVCL (DLI), VEC_AUTO, { &dli_iack, &dlo_iack }, IOLN_DL, }; UNIT dli_unit = { UDATA (&dli_svc, 0, 0), KBD_POLL_WAIT }; @@ -160,7 +160,7 @@ DEVICE dli_dev = { 1, 10, 31, 1, 8, 8, NULL, NULL, &dlx_reset, NULL, &dlx_attach, &dlx_detach, - &dli_dib, DEV_UBUS | DEV_QBUS | DEV_DISABLE | DEV_DIS | DEV_MUX + &dli_dib, DEV_UBUS | DEV_QBUS | DEV_DISABLE | DEV_DIS }; /* DLO data structures @@ -219,7 +219,7 @@ DEVICE dlo_dev = { DLX_LINES, 10, 31, 1, 8, 8, NULL, NULL, &dlx_reset, NULL, NULL, NULL, - NULL, DEV_UBUS | DEV_QBUS | DEV_DISABLE | DEV_DIS + NULL, DEV_UBUS | DEV_QBUS | DEV_DISABLE | DEV_DIS | DEV_MUX }; /* Terminal input routines */ diff --git a/PDP11/pdp11_dz.c b/PDP11/pdp11_dz.c index c1aeeb3f..a23e8a05 100644 --- a/PDP11/pdp11_dz.c +++ b/PDP11/pdp11_dz.c @@ -293,7 +293,8 @@ char *dz_description (DEVICE *dptr); DIB dz_dib = { IOBA_AUTO, IOLN_DZ * DZ_MUXES, &dz_rd, &dz_wr, - 2, IVCL (DZRX), VEC_AUTO, { &dz_rxinta, &dz_txinta } + 2, IVCL (DZRX), VEC_AUTO, { &dz_rxinta, &dz_txinta }, + IOLN_DZ, }; UNIT dz_unit = { UDATA (&dz_svc, UNIT_IDLE|UNIT_ATTABLE|DZ_8B_DFLT, 0) }; diff --git a/PDP11/pdp11_hk.c b/PDP11/pdp11_hk.c index e997e86b..433d476f 100644 --- a/PDP11/pdp11_hk.c +++ b/PDP11/pdp11_hk.c @@ -581,7 +581,7 @@ char *hk_description (DEVICE *dptr); DIB hk_dib = { IOBA_AUTO, IOLN_HK, &hk_rd, &hk_wr, - 1, IVCL (HK), VEC_AUTO, { NULL } + 1, IVCL (HK), VEC_AUTO, { NULL }, IOLN_HK, }; UNIT hk_unit[] = { diff --git a/PDP11/pdp11_io_lib.c b/PDP11/pdp11_io_lib.c index 2f3ca19d..da6f638e 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,10 @@ 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 = (dibp->ulnt? dibp->lnt/dibp->ulnt: + (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 +338,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 +359,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 +367,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 +408,9 @@ 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, (dibp->ulnt? dibp->lnt/dibp->ulnt: + (dptr? dptr->numunits: 1)), + dptr? sim_dname (dptr): "CPU"); } /* end if */ } /* end for i */ return SCPE_OK; diff --git a/PDP11/pdp11_kg.c b/PDP11/pdp11_kg.c index 121b766f..0a16800e 100644 --- a/PDP11/pdp11_kg.c +++ b/PDP11/pdp11_kg.c @@ -201,7 +201,7 @@ static DIB kg_dib = { (IOLN_KG + 2) * KG_UNITS, &kg_rd, &kg_wr, - 0, 0, 0, { NULL } + 0, 0, 0, { NULL }, IOLN_KG+2 }; static UNIT kg_unit[] = { diff --git a/PDP11/pdp11_rc.c b/PDP11/pdp11_rc.c index c1103334..ce6df647 100644 --- a/PDP11/pdp11_rc.c +++ b/PDP11/pdp11_rc.c @@ -187,7 +187,7 @@ static DIB rc_dib = { IOLN_RC, &rc_rd, &rc_wr, - 1, IVCL (RC), VEC_AUTO, { NULL } + 1, IVCL (RC), VEC_AUTO, { NULL }, IOLN_RC, }; static UNIT rc_unit = { diff --git a/PDP11/pdp11_rf.c b/PDP11/pdp11_rf.c index e11c7195..1e75a9c6 100644 --- a/PDP11/pdp11_rf.c +++ b/PDP11/pdp11_rf.c @@ -145,7 +145,7 @@ uint32 update_rfcs (uint32 newcs, uint32 newdae); DIB rf_dib = { IOBA_AUTO, IOLN_RF, &rf_rd, &rf_wr, - 1, IVCL (RF), VEC_AUTO, {NULL} + 1, IVCL (RF), VEC_AUTO, {NULL}, IOLN_RF, }; diff --git a/PDP11/pdp11_rh.c b/PDP11/pdp11_rh.c index fc268f17..2141392e 100644 --- a/PDP11/pdp11_rh.c +++ b/PDP11/pdp11_rh.c @@ -207,7 +207,7 @@ static int32 mba_mapofs[(MBA_OFSMASK + 1) >> 1] = { DIB mba0_dib = { IOBA_AUTO, IOLN_RP, &mba_rd, &mba_wr, - 1, IVCL (RP), VEC_AUTO, { &mba0_inta } + 1, IVCL (RP), VEC_AUTO, { &mba0_inta }, IOLN_RP, }; UNIT mba0_unit = { UDATA (NULL, 0, 0) }; diff --git a/PDP11/pdp11_rk.c b/PDP11/pdp11_rk.c index 4c71319a..ebc1a378 100644 --- a/PDP11/pdp11_rk.c +++ b/PDP11/pdp11_rk.c @@ -216,7 +216,7 @@ t_stat rk_boot (int32 unitno, DEVICE *dptr); DIB rk_dib = { IOBA_AUTO, IOLN_RK, &rk_rd, &rk_wr, - 1, IVCL (RK), VEC_AUTO, { &rk_inta } + 1, IVCL (RK), VEC_AUTO, { &rk_inta }, IOLN_RK, }; UNIT rk_unit[] = { diff --git a/PDP11/pdp11_rl.c b/PDP11/pdp11_rl.c index 99bcd817..625a51ca 100644 --- a/PDP11/pdp11_rl.c +++ b/PDP11/pdp11_rl.c @@ -275,7 +275,7 @@ char *rl_description (DEVICE *dptr); static DIB rl_dib = { IOBA_AUTO, IOLN_RL, &rl_rd, &rl_wr, - 1, IVCL (RL), VEC_AUTO, { NULL } }; + 1, IVCL (RL), VEC_AUTO, { NULL }, IOLN_RL }; static UNIT rl_unit[] = { { UDATA (&rl_svc, UNIT_FIX+UNIT_ATTABLE+UNIT_DISABLE+ diff --git a/PDP11/pdp11_rq.c b/PDP11/pdp11_rq.c index e00ce750..04bfc00f 100644 --- a/PDP11/pdp11_rq.c +++ b/PDP11/pdp11_rq.c @@ -857,7 +857,7 @@ MSC rq_ctx = { 0 }; DIB rq_dib = { IOBA_AUTO, IOLN_RQ, &rq_rd, &rq_wr, - 1, IVCL (RQ), 0, { &rq_inta } + 1, IVCL (RQ), 0, { &rq_inta }, IOLN_RQ }; UNIT rq_unit[] = { diff --git a/PDP11/pdp11_rx.c b/PDP11/pdp11_rx.c index ef8ba659..ab6fbb56 100644 --- a/PDP11/pdp11_rx.c +++ b/PDP11/pdp11_rx.c @@ -144,7 +144,7 @@ void rx_done (int32 esr_flags, int32 new_ecode); DIB rx_dib = { IOBA_AUTO, IOLN_RX, &rx_rd, &rx_wr, - 1, IVCL (RX), VEC_AUTO, { NULL } + 1, IVCL (RX), VEC_AUTO, { NULL }, IOLN_RX, }; UNIT rx_unit[] = { diff --git a/PDP11/pdp11_ry.c b/PDP11/pdp11_ry.c index b7f065c8..ec7f303c 100644 --- a/PDP11/pdp11_ry.c +++ b/PDP11/pdp11_ry.c @@ -180,7 +180,7 @@ char *ry_description (DEVICE *dptr); DIB ry_dib = { IOBA_AUTO, IOLN_RY, &ry_rd, &ry_wr, - 1, IVCL (RY), VEC_AUTO, { NULL } + 1, IVCL (RY), VEC_AUTO, { NULL }, IOLN_RY, }; UNIT ry_unit[] = { diff --git a/PDP11/pdp11_ta.c b/PDP11/pdp11_ta.c index 012a98c4..a9c2c438 100644 --- a/PDP11/pdp11_ta.c +++ b/PDP11/pdp11_ta.c @@ -150,7 +150,7 @@ uint32 ta_crc (uint8 *buf, uint32 cnt); DIB ta_dib = { IOBA_AUTO, IOLN_TA, &ta_rd, &ta_wr, - 1, IVCL (TA), VEC_AUTO, { NULL } + 1, IVCL (TA), VEC_AUTO, { NULL }, IOLN_TA }; UNIT ta_unit[] = { diff --git a/PDP11/pdp11_tc.c b/PDP11/pdp11_tc.c index d3b09511..4ac9d998 100644 --- a/PDP11/pdp11_tc.c +++ b/PDP11/pdp11_tc.c @@ -319,7 +319,7 @@ int32 dt_gethdr (UNIT *uptr, int32 blk, int32 relpos); DIB dt_dib = { IOBA_AUTO, IOLN_TC, &dt_rd, &dt_wr, - 1, IVCL (DTA), VEC_AUTO, { NULL } + 1, IVCL (DTA), VEC_AUTO, { NULL }, IOLN_TC, }; UNIT dt_unit[] = { diff --git a/PDP11/pdp11_tm.c b/PDP11/pdp11_tm.c index d6d15b0d..1bccae54 100644 --- a/PDP11/pdp11_tm.c +++ b/PDP11/pdp11_tm.c @@ -191,7 +191,7 @@ t_stat tm_vlock (UNIT *uptr, int32 val, char *cptr, void *desc); DIB tm_dib = { IOBA_AUTO, IOLN_TM, &tm_rd, &tm_wr, - 1, IVCL (TM), VEC_AUTO, { NULL } + 1, IVCL (TM), VEC_AUTO, { NULL }, IOLN_TM, }; UNIT tm_unit[] = { diff --git a/PDP11/pdp11_tq.c b/PDP11/pdp11_tq.c index 04c25eee..e0f30d9f 100644 --- a/PDP11/pdp11_tq.c +++ b/PDP11/pdp11_tq.c @@ -417,7 +417,7 @@ UNIT *tq_getucb (uint32 lu); DIB tq_dib = { IOBA_AUTO, IOLN_TQ, &tq_rd, &tq_wr, - 1, IVCL (TQ), 0, { &tq_inta } + 1, IVCL (TQ), 0, { &tq_inta }, IOLN_TQ, }; UNIT tq_unit[] = { diff --git a/PDP11/pdp11_ts.c b/PDP11/pdp11_ts.c index f531f6ef..3fd3f716 100644 --- a/PDP11/pdp11_ts.c +++ b/PDP11/pdp11_ts.c @@ -311,7 +311,7 @@ char *ts_description (DEVICE *dptr); DIB ts_dib = { IOBA_AUTO, IOLN_TS, &ts_rd, &ts_wr, - 1, IVCL (TS), VEC_AUTO, { NULL } + 1, IVCL (TS), VEC_AUTO, { NULL }, IOLN_TS }; UNIT ts_unit = { UDATA (&ts_svc, UNIT_ATTABLE + UNIT_ROABLE + UNIT_DISABLE, 0) }; diff --git a/PDP11/pdp11_vh.c b/PDP11/pdp11_vh.c index 2bde9bbe..b3324c8c 100644 --- a/PDP11/pdp11_vh.c +++ b/PDP11/pdp11_vh.c @@ -361,7 +361,8 @@ static DIB vh_dib = { 2, /* # of vectors */ IVCL (VHRX), VEC_FLOAT, - { &vh_rxinta, &vh_txinta } /* int. ack. routines */ + { &vh_rxinta, &vh_txinta }, /* int. ack. routines */ + IOLN_VH, /* IO space per device */ }; static UNIT vh_unit[VH_MUXES] = { diff --git a/PDP11/pdp11_xq.c b/PDP11/pdp11_xq.c index 36f83f6d..c51502e3 100644 --- a/PDP11/pdp11_xq.c +++ b/PDP11/pdp11_xq.c @@ -326,7 +326,7 @@ struct xq_device xqb = { #define IOLN_XQ 020 DIB xqa_dib = { IOBA_AUTO, IOLN_XQ, &xq_rd, &xq_wr, - 1, IVCL (XQ), 0, { &xq_int } }; + 1, IVCL (XQ), 0, { &xq_int }, IOLN_XQ }; UNIT xqa_unit[] = { { UDATA (&xq_svc, UNIT_IDLE|UNIT_ATTABLE|UNIT_DISABLE, 2047) }, /* receive timer */ diff --git a/PDP11/pdp11_xu.c b/PDP11/pdp11_xu.c index f29cc82f..76fb3f1e 100644 --- a/PDP11/pdp11_xu.c +++ b/PDP11/pdp11_xu.c @@ -134,7 +134,7 @@ char *xu_description (DEVICE *dptr); #define IOLN_XU 010 DIB xua_dib = { IOBA_AUTO, IOLN_XU, &xu_rd, &xu_wr, -1, IVCL (XU), VEC_AUTO, {&xu_int} }; +1, IVCL (XU), VEC_AUTO, {&xu_int}, IOLN_XU }; UNIT xua_unit[] = { { UDATA (&xu_svc, UNIT_IDLE|UNIT_ATTABLE|UNIT_DISABLE, 0) }, /* receive timer */ @@ -234,7 +234,7 @@ DEVICE xu_dev = { #define IOLN_XU 010 DIB xub_dib = { IOBA_AUTO, IOLN_XU, &xu_rd, &xu_wr, - 1, IVCL (XU), 0, { &xu_int } }; + 1, IVCL (XU), 0, { &xu_int }, IOLN_XU }; UNIT xub_unit[] = { { UDATA (&xu_svc, UNIT_IDLE|UNIT_ATTABLE|UNIT_DISABLE, 0) } /* receive timer */ diff --git a/VAX/vax610_defs.h b/VAX/vax610_defs.h index 1dbd6f67..1c1654f5 100644 --- a/VAX/vax610_defs.h +++ b/VAX/vax610_defs.h @@ -196,6 +196,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */ diff --git a/VAX/vax630_defs.h b/VAX/vax630_defs.h index 30214c6a..71226846 100644 --- a/VAX/vax630_defs.h +++ b/VAX/vax630_defs.h @@ -243,6 +243,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */ diff --git a/VAX/vax730_defs.h b/VAX/vax730_defs.h index 9db8abff..728eff0e 100644 --- a/VAX/vax730_defs.h +++ b/VAX/vax730_defs.h @@ -237,6 +237,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Unibus I/O page layout - see pdp11_io_lib.c for address layout details */ diff --git a/VAX/vax750_defs.h b/VAX/vax750_defs.h index 7342482d..efcc96a4 100644 --- a/VAX/vax750_defs.h +++ b/VAX/vax750_defs.h @@ -274,6 +274,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Unibus I/O page layout - see pdp11_io_lib.c for address layout details diff --git a/VAX/vax780_defs.h b/VAX/vax780_defs.h index a9a6153a..a16901ab 100644 --- a/VAX/vax780_defs.h +++ b/VAX/vax780_defs.h @@ -286,6 +286,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Unibus I/O page layout - see pdp11_io_lib.c for address layout details diff --git a/VAX/vax860_defs.h b/VAX/vax860_defs.h index 2d8b9fbb..af78c992 100644 --- a/VAX/vax860_defs.h +++ b/VAX/vax860_defs.h @@ -321,6 +321,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Unibus I/O page layout - XUB,RQB,RQC,RQD float based on number of DZ's diff --git a/VAX/vaxmod_defs.h b/VAX/vaxmod_defs.h index 9ab73332..cd53dff7 100644 --- a/VAX/vaxmod_defs.h +++ b/VAX/vaxmod_defs.h @@ -284,6 +284,7 @@ typedef struct { int32 vloc; /* locator */ int32 vec; /* value */ int32 (*ack[VEC_DEVMAX])(void); /* ack routine */ + uint32 ulnt; /* IO length per unit */ } DIB; /* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */