diff --git a/VAX/vax780_defs.h b/VAX/vax780_defs.h
index 9e170172..f47b8656 100644
--- a/VAX/vax780_defs.h
+++ b/VAX/vax780_defs.h
@@ -313,6 +313,8 @@ typedef struct {
#define IOLN_PTR 004
#define IOBA_PTP (IOPAGEBASE + 017554) /* PC11 punch */
#define IOLN_PTP 004
+#define IOBA_DMC (IOPAGEBASE + 0760060)
+#define IOLN_DMC 010
/* Interrupt assignments; within each level, priority is right to left */
@@ -325,6 +327,8 @@ typedef struct {
#define INT_V_TS 6
#define INT_V_RY 7
#define INT_V_XU 8
+#define INT_V_DMCRX 9
+#define INT_V_DMCTX 10
#define INT_V_LPT 0 /* BR4 */
#define INT_V_PTR 1
@@ -348,6 +352,8 @@ typedef struct {
#define INT_PTR (1u << INT_V_PTR)
#define INT_PTP (1u << INT_V_PTP)
#define INT_CR (1u << INT_V_CR)
+#define INT_DMCRX (1u << INT_V_DMCRX)
+#define INT_DMCTX (1u << INT_V_DMCTX)
#define IPL_DZRX (0x15 - IPL_HMIN)
#define IPL_DZTX (0x15 - IPL_HMIN)
@@ -364,6 +370,8 @@ typedef struct {
#define IPL_CR (0x14 - IPL_HMIN)
#define IPL_VHRX (0x14 - IPL_HMIN)
#define IPL_VHTX (0x14 - IPL_HMIN)
+#define IPL_DMCRX (0x15 - IPL_HMIN)
+#define IPL_DMCTX (0x15 - IPL_HMIN)
/* Device vectors */
@@ -386,6 +394,8 @@ typedef struct {
#define VEC_DZTX 0304
#define VEC_VHRX 0310
#define VEC_VHTX 0314
+#define VEC_DMCRX 0310
+#define VEC_DMCTX 0314
/* Interrupt macros */
diff --git a/VAX/vax780_syslist.c b/VAX/vax780_syslist.c
index 9025f616..8d179231 100644
--- a/VAX/vax780_syslist.c
+++ b/VAX/vax780_syslist.c
@@ -54,6 +54,8 @@ extern DEVICE tu_dev;
extern DEVICE dz_dev;
extern DEVICE vh_dev;
extern DEVICE xu_dev, xub_dev;
+extern DEVICE dmc_dev[];
+extern DEVICE dmp_dev[];
extern int32 sim_switches;
extern UNIT cpu_unit;
@@ -91,6 +93,11 @@ DEVICE *sim_devices[] = {
&tq_dev,
&xu_dev,
&xub_dev,
+ &dmc_dev[0],
+ &dmc_dev[1],
+ &dmc_dev[2],
+ &dmc_dev[3],
+ &dmp_dev[0],
NULL
};
diff --git a/Visual Studio Projects/VAX780.vcproj b/Visual Studio Projects/VAX780.vcproj
index d688ef3f..0c83a493 100644
--- a/Visual Studio Projects/VAX780.vcproj
+++ b/Visual Studio Projects/VAX780.vcproj
@@ -205,6 +205,10 @@
RelativePath="..\PDP11\pdp11_cr.c"
>
+
+
@@ -387,6 +391,10 @@
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc"
>
+
+
diff --git a/makefile b/makefile
index d9a23ac5..562961ed 100644
--- a/makefile
+++ b/makefile
@@ -480,7 +480,7 @@ VAX780 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
${PDP11D}/pdp11_xu.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_cr.c \
${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c ${PDP11D}/pdp11_hk.c \
- ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_io_lib.c
+ ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c \${PDP11D}/pdp11_io_lib.c
VAX780_OPT = -DVM_VAX -DVAX_780 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}