diff --git a/VAX/vax_syslist.c b/VAX/vax_syslist.c index 054c5e43..1e278ca6 100644 --- a/VAX/vax_syslist.c +++ b/VAX/vax_syslist.c @@ -51,6 +51,8 @@ extern DEVICE dz_dev; extern DEVICE csi_dev, cso_dev; extern DEVICE xq_dev, xqb_dev; extern DEVICE vh_dev; +extern DEVICE dmc_dev[]; +extern DEVICE dmp_dev[]; extern int32 sim_switches; extern void WriteB (uint32 pa, int32 val); @@ -83,6 +85,11 @@ DEVICE *sim_devices[] = { &tq_dev, &xq_dev, &xqb_dev, + &dmc_dev[0], + &dmc_dev[1], + &dmc_dev[2], + &dmc_dev[3], + &dmp_dev[0], NULL }; diff --git a/VAX/vaxmod_defs.h b/VAX/vaxmod_defs.h index 2f235481..5b0cf736 100644 --- a/VAX/vaxmod_defs.h +++ b/VAX/vaxmod_defs.h @@ -318,6 +318,8 @@ typedef struct { #define IOLN_PTR 004 #define IOBA_PTP (IOPAGEBASE + 017554) /* PC11 punch */ #define IOLN_PTP 004 +#define IOBA_DMC (IOPAGEBASE + 017060) /* DMC11 */ +#define IOLN_DMC 010 /* The KA65x maintains 4 separate hardware IPL levels, IPL 17 to IPL 14; however, DEC Qbus controllers all interrupt on IPL 14 @@ -356,6 +358,8 @@ typedef struct { #define INT_V_VHTX 18 #define INT_V_QDSS 19 /* QDSS */ #define INT_V_CR 20 +#define INT_V_DMCRX 21 /* DMC11 */ +#define INT_V_DMCTX 22 #define INT_CLK (1u << INT_V_CLK) #define INT_RQ (1u << INT_V_RQ) @@ -379,6 +383,8 @@ typedef struct { #define INT_VHTX (1u << INT_V_VHTX) #define INT_QDSS (1u << INT_V_QDSS) #define INT_CR (1u << INT_V_CR) +#define INT_DMCRX (1u << INT_V_DMCRX) +#define INT_DMCTX (1u << INT_V_DMCTX) #define IPL_CLK (0x16 - IPL_HMIN) /* relative IPL */ #define IPL_RQ (0x14 - IPL_HMIN) @@ -402,6 +408,8 @@ typedef struct { #define IPL_VHTX (0x14 - IPL_HMIN) #define IPL_QDSS (0x14 - IPL_HMIN) #define IPL_CR (0x14 - IPL_HMIN) +#define IPL_DMCRX (0x14 - IPL_HMIN) +#define IPL_DMCTX (0x14 - IPL_HMIN) #define IPL_HMAX 0x17 /* highest hwre level */ #define IPL_HMIN 0x14 /* lowest hwre level */ @@ -428,6 +436,8 @@ typedef struct { #define VEC_DZTX (VEC_Q + 0304) #define VEC_VHRX (VEC_Q + 0310) #define VEC_VHTX (VEC_Q + 0314) +#define VEC_DMCRX (VEC_Q + 0310) +#define VEC_DMCTX (VEC_Q + 0314) /* Interrupt macros */ diff --git a/Visual Studio Projects/VAX.vcproj b/Visual Studio Projects/VAX.vcproj index 71ea3fd3..acd574fa 100644 --- a/Visual Studio Projects/VAX.vcproj +++ b/Visual Studio Projects/VAX.vcproj @@ -207,6 +207,10 @@ RelativePath="..\PDP11\pdp11_cr.c" > + + @@ -365,6 +369,10 @@ Name="Header Files" Filter="h;hpp;hxx;hm;inl;inc" > + + diff --git a/descrip.mms b/descrip.mms index 5063d27e..ca932e0b 100644 --- a/descrip.mms +++ b/descrip.mms @@ -616,7 +616,8 @@ VAX_SOURCE2 = $(PDP11_DIR)PDP11_IO_LIB.C,\ $(PDP11_DIR)PDP11_TS.C,$(PDP11_DIR)PDP11_DZ.C,\ $(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\ $(PDP11_DIR)PDP11_XQ.C,$(PDP11_DIR)PDP11_CR.C,\ - $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C + $(PDP11_DIR)PDP11_RY.C,$(PDP11_DIR)PDP11_VH.C,\ + $(PDP11_DIR)PDP11_DMC.C .IFDEF ALPHA_OR_IA64 VAX_OPTIONS = /INCL=($(SIMH_DIR),$(VAX_DIR),$(PDP11_DIR)$(PCAP_INC))\ /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS)) @@ -646,7 +647,8 @@ VAX780_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\ $(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\ $(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_RP.C,\ $(PDP11_DIR)PDP11_TU.C,$(PDP11_DIR)PDP11_HK.C,\ - $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_IO_LIB.C + $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\ + $(PDP11_DIR)PDP11_IO_LIB.C .IFDEF ALPHA_OR_IA64 VAX780_OPTIONS = /INCL=($(SIMH_DIR),$(VAX780_DIR),$(PDP11_DIR)$(PCAP_INC))\ /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_780=1")