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")