1
0
mirror of https://github.com/simh/simh.git synced 2026-01-31 05:43:06 +00:00

VAX780: Add an additional Massbus to support RPB

This commit is contained in:
Peter Allan
2023-05-22 10:37:26 -10:00
committed by Mark Pizzolato
parent bdb021e6ac
commit ef0f49204e
6 changed files with 1519 additions and 6 deletions

View File

@@ -98,12 +98,13 @@
#define NEXUS_NUM 16 /* number of nexus */
#define MCTL_NUM 2 /* number of mem ctrl */
#define MBA_NUM 2 /* number of MBA's */
#define MBA_NUM 3 /* number of MBA's */
#define TR_MCTL0 1 /* nexus assignments */
#define TR_MCTL1 2
#define TR_UBA 3
#define TR_MBA0 8
#define TR_MBA1 9
#define TR_MBA2 10
#define NEXUS_HLVL (IPL_HMAX - IPL_HMIN + 1)
#define SCB_NEXUS 0x100 /* nexus intr base */
#define SBI_FAULTS 0xFC000000 /* SBI fault flags */
@@ -118,6 +119,7 @@
#define IPL_UBA (0x15 - IPL_HMIN)
#define IPL_MBA0 (0x15 - IPL_HMIN)
#define IPL_MBA1 (0x15 - IPL_HMIN)
#define IPL_MBA2 (0x15 - IPL_HMIN)
/* Nexus interrupt macros */

View File

@@ -114,6 +114,7 @@ static t_stat (*nexusW[NEXUS_NUM])(int32 dat, int32 ad, int32 md);
static struct boot_dev boot_tab[] = {
{ "RP", BOOT_MB, 0 },
{ "RPB", BOOT_MB, 0 },
{ "HK", BOOT_HK, 0 },
{ "RL", BOOT_RL, 0 },
{ "RQ", BOOT_UDA, 1 << 24 },

View File

@@ -55,6 +55,7 @@ extern DEVICE rl_dev;
extern DEVICE hk_dev;
extern DEVICE rk_dev;
extern DEVICE rp_dev;
extern DEVICE rpb_dev;
extern DEVICE ry_dev;
extern DEVICE ts_dev;
extern DEVICE tq_dev;
@@ -76,6 +77,7 @@ DEVICE *sim_devices[] = {
&uba_dev,
&mba_dev[0],
&mba_dev[1],
&mba_dev[2],
&clk_dev,
&tmr_dev,
&tti_dev,
@@ -88,6 +90,7 @@ DEVICE *sim_devices[] = {
&cr_dev,
&lpt_dev,
&rp_dev,
&rpb_dev,
&rl_dev,
&hk_dev,
&rk_dev,

View File

@@ -23,7 +23,7 @@
used in advertising or otherwise to promote the sale, use or other dealings
in this Software without prior written authorization from Robert M Supnik.
mba0, mba1 RH780 Massbus adapter
mba0, mba1, mba2 RH780 Massbus adapter
28-May-08 RMS Inlined physical memory routines
*/
@@ -324,6 +324,29 @@ REG mba1_reg[] = {
{ NULL }
};
DIB mba2_dib = { TR_MBA2, 0, &mba_rdreg, &mba_wrreg, 0, NVCL (MBA2) };
UNIT mba2_unit = { UDATA (NULL, 0, 0) };
MTAB mba2_mod[] = {
{ MTAB_XTD|MTAB_VDV, TR_MBA2, "NEXUS", NULL,
NULL, &show_nexus, NULL, "Display nexus" },
{ 0 }
};
REG mba2_reg[] = {
{ HRDATAD (CNFR, mba_cnf[2], 32, "config register") },
{ HRDATAD (CR, mba_cr[2], 4, "control register") },
{ HRDATAD (SR, mba_sr[2], 32, "status register") },
{ HRDATAD (VA, mba_va[2], 17, "virtual address register") },
{ HRDATAD (BC, mba_bc[2], 16, "byte count register") },
{ HRDATAD (DR, mba_dr[2], 32, "diag register") },
{ HRDATAD (SMR, mba_dr[2], 32, "sel map register") },
{ BRDATAD (MAP, mba_map[2], 16, 32, MBA_NMAPR, "map registers") },
{ FLDATAD (NEXINT, nexus_req[IPL_MBA2], TR_MBA2, "nexus interrupt request") },
{ NULL }
};
DEBTAB mba_deb[] = {
{ "REGREAD", MBA_DEB_RRD },
{ "REGWRITE", MBA_DEB_RWR },
@@ -353,6 +376,15 @@ DEVICE mba_dev[] = {
&mba1_dib, DEV_NEXUS | DEV_DEBUG, 0,
mba_deb, NULL, NULL, &mba_help, NULL, NULL,
&mba_description
},
{
"MBA2", &mba2_unit, mba2_reg, mba2_mod,
1, 0, 0, 0, 0, 0,
NULL, NULL, &mba_reset,
NULL, NULL, NULL,
&mba2_dib, DEV_NEXUS | DEV_DEBUG, 0,
mba_deb, NULL, NULL, &mba_help, NULL, NULL,
&mba_description
}
};