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}