diff --git a/PDP11/pdp11_defs.h b/PDP11/pdp11_defs.h
index bf79a4f7..bfa0e01b 100644
--- a/PDP11/pdp11_defs.h
+++ b/PDP11/pdp11_defs.h
@@ -518,6 +518,8 @@ typedef struct pdp_dib DIB;
/* I/O page layout - XUB, RQB,RQC,RQD float based on number of DZ's */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_XUB (IOPAGEBASE + 000330 + (020 * (DZ_MUXES / 2)))
@@ -528,8 +530,6 @@ typedef struct pdp_dib DIB;
#define IOLN_RQC 004
#define IOBA_RQD (IOPAGEBASE + IOBA_RQC + IOLN_RQC)
#define IOLN_RQD 004
-#define IOBA_VH (IOPAGEBASE + 000440) /* DHQ11 */
-#define IOLN_VH 020
#define IOBA_UBM (IOPAGEBASE + 010200) /* Unibus map */
#define IOLN_UBM (UBM_LNT_LW * sizeof (int32))
#define IOBA_KG (IOPAGEBASE + 010700) /* KG11-A */
@@ -780,6 +780,8 @@ typedef struct pdp_dib DIB;
/* Device vectors */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_Q 0000 /* vector base */
#define VEC_PIRQ 0240
#define VEC_TTI 0060
@@ -813,8 +815,6 @@ typedef struct pdp_dib DIB;
#define VEC_DCO 0304
#define VEC_DZRX 0300
#define VEC_DZTX 0304
-#define VEC_VHRX 0310
-#define VEC_VHTX 0314
/* Interrupt macros */
diff --git a/PDP11/pdp11_vh.c b/PDP11/pdp11_vh.c
index 23722268..c193cbe0 100644
--- a/PDP11/pdp11_vh.c
+++ b/PDP11/pdp11_vh.c
@@ -341,15 +341,16 @@ static t_stat vh_set_nolog (UNIT *uptr, int32 val, char *cptr, void *desc);
static t_stat vh_show_log (FILE *st, UNIT *uptr, int32 val, void *desc);
/* SIMH I/O Structures */
+#define IOLN_VH 020
static DIB vh_dib = {
- IOBA_VH,
+ IOBA_FLOAT,
IOLN_VH * VH_MUXES,
&vh_rd, /* read */
&vh_wr, /* write */
2, /* # of vectors */
IVCL (VHRX),
- VEC_VHRX,
+ VEC_FLOAT,
{ &vh_rxinta, &vh_txinta } /* int. ack. routines */
};
diff --git a/VAX/vax610_defs.h b/VAX/vax610_defs.h
index 01609c81..d90b9f83 100644
--- a/VAX/vax610_defs.h
+++ b/VAX/vax610_defs.h
@@ -190,6 +190,8 @@ typedef struct {
/* I/O page layout - RQB,RQC,RQD float based on number of DZ's */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_RQB (IOPAGEBASE + 000334 + (020 * (DZ_MUXES / 2)))
@@ -198,8 +200,6 @@ typedef struct {
#define IOLN_RQC 004
#define IOBA_RQD (IOPAGEBASE + IOBA_RQC + IOLN_RQC)
#define IOLN_RQD 004
-#define IOBA_VH (IOPAGEBASE + 000440) /* DHQ11 */
-#define IOLN_VH 020
#define IOBA_MEM (IOPAGEBASE + 012100) /* MSV11-P */
#define IOLN_MEM 040
#define IOBA_RQ (IOPAGEBASE + 012150) /* RQDX3 */
@@ -331,6 +331,8 @@ typedef struct {
/* Device vectors */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 1 /* Qbus system */
#define VEC_Q 0x200 /* Qbus vector offset */
#define VEC_PTR (VEC_Q + 0070)
diff --git a/VAX/vax630_defs.h b/VAX/vax630_defs.h
index 1c150f2b..9e91fa1a 100644
--- a/VAX/vax630_defs.h
+++ b/VAX/vax630_defs.h
@@ -235,6 +235,8 @@ typedef struct {
/* I/O page layout - RQB,RQC,RQD float based on number of DZ's */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_RQB (IOPAGEBASE + 000334 + (020 * (DZ_MUXES / 2)))
@@ -243,8 +245,6 @@ typedef struct {
#define IOLN_RQC 004
#define IOBA_RQD (IOPAGEBASE + IOBA_RQC + IOLN_RQC)
#define IOLN_RQD 004
-#define IOBA_VH (IOPAGEBASE + 000440) /* DHQ11 */
-#define IOLN_VH 020
#define IOBA_RQ (IOPAGEBASE + 012150) /* RQDX3 */
#define IOLN_RQ 004
#define IOBA_TS (IOPAGEBASE + 012520) /* TS11 */
@@ -318,6 +318,8 @@ typedef struct {
#define INT_V_QDSS 19 /* QDSS */
#define INT_V_CR 20
#define INT_V_QVSS 21 /* QVSS */
+#define INT_V_DMCRX 22
+#define INT_V_DMCTX 23
#define INT_CLK (1u << INT_V_CLK)
#define INT_RQ (1u << INT_V_RQ)
@@ -342,6 +344,8 @@ typedef struct {
#define INT_QDSS (1u << INT_V_QDSS)
#define INT_CR (1u << INT_V_CR)
#define INT_QVSS (1u << INT_V_QVSS)
+#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)
@@ -366,6 +370,8 @@ typedef struct {
#define IPL_QDSS (0x14 - IPL_HMIN)
#define IPL_CR (0x14 - IPL_HMIN)
#define IPL_QVSS (0x14 - IPL_HMIN)
+#define IPL_DMCRX (0x15 - IPL_HMIN)
+#define IPL_DMCTX (0x15 - IPL_HMIN)
#define IPL_HMAX 0x17 /* highest hwre level */
#define IPL_HMIN 0x14 /* lowest hwre level */
@@ -374,6 +380,8 @@ typedef struct {
/* Device vectors */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 1 /* Qbus system */
#define VEC_Q 0x200 /* Qbus vector offset */
#define VEC_PTR (VEC_Q + 0070)
diff --git a/VAX/vax730_defs.h b/VAX/vax730_defs.h
index cfcb327d..46905c0d 100644
--- a/VAX/vax730_defs.h
+++ b/VAX/vax730_defs.h
@@ -234,6 +234,8 @@ typedef struct {
/* Unibus I/O page layout - XUB,RQB,RQC,RQD float based on number of DZ's */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_XUB (IOPAGEBASE + 000330 + (020 * (DZ_MUXES / 2)))
@@ -289,11 +291,15 @@ typedef struct {
#define INT_V_TS 7
#define INT_V_RY 8
#define INT_V_XU 9
+#define INT_V_DMCRX 10
+#define INT_V_DMCTX 11
#define INT_V_LPT 0 /* BR4 */
#define INT_V_PTR 1
#define INT_V_PTP 2
#define INT_V_CR 3
+#define INT_V_VHRX 4
+#define INT_V_VHTX 5
#define INT_DZRX (1u << INT_V_DZRX)
#define INT_DZTX (1u << INT_V_DZTX)
@@ -306,9 +312,13 @@ typedef struct {
#define INT_XU (1u << INT_V_XU)
#define INT_RB (1u << INT_V_RB)
#define INT_LPT (1u << INT_V_LPT)
+#define INT_VHRX (1u << INT_V_VHRX)
+#define INT_VHTX (1u << INT_V_VHTX)
#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)
@@ -324,9 +334,15 @@ typedef struct {
#define IPL_PTR (0x14 - IPL_HMIN)
#define IPL_PTP (0x14 - IPL_HMIN)
#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 */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 0
#define VEC_Q 0x200
#define VEC_PTR (VEC_Q + 0070)
diff --git a/VAX/vax730_syslist.c b/VAX/vax730_syslist.c
index f0ce5b84..e33ce16a 100644
--- a/VAX/vax730_syslist.c
+++ b/VAX/vax730_syslist.c
@@ -50,7 +50,9 @@ extern DEVICE ry_dev;
extern DEVICE ts_dev;
extern DEVICE tq_dev;
extern DEVICE dz_dev;
+extern DEVICE vh_dev;
extern DEVICE xu_dev, xub_dev;
+extern DEVICE dmc_dev[];
extern int32 sim_switches;
extern UNIT cpu_unit;
@@ -68,6 +70,7 @@ DEVICE *sim_devices[] = {
&tto_dev,
&td_dev,
&dz_dev,
+ &vh_dev,
&cr_dev,
&lpt_dev,
&rl_dev,
@@ -82,6 +85,10 @@ DEVICE *sim_devices[] = {
&tq_dev,
&xu_dev,
&xub_dev,
+ &dmc_dev[0],
+ &dmc_dev[1],
+ &dmc_dev[2],
+ &dmc_dev[3],
NULL
};
diff --git a/VAX/vax750_defs.h b/VAX/vax750_defs.h
index 0ba24e7c..b186b78b 100644
--- a/VAX/vax750_defs.h
+++ b/VAX/vax750_defs.h
@@ -270,6 +270,8 @@ typedef struct {
/* Unibus I/O page layout - XUB,RQB,RQC,RQD float based on number of DZ's
Massbus devices (RP, TU) do not appear in the Unibus IO page */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_XUB (IOPAGEBASE + 000330 + (020 * (DZ_MUXES / 2)))
@@ -322,11 +324,15 @@ 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
#define INT_V_PTP 2
#define INT_V_CR 3
+#define INT_V_VHRX 4
+#define INT_V_VHTX 5
#define INT_DZRX (1u << INT_V_DZRX)
#define INT_DZTX (1u << INT_V_DZTX)
@@ -338,9 +344,13 @@ typedef struct {
#define INT_RY (1u << INT_V_RY)
#define INT_XU (1u << INT_V_XU)
#define INT_LPT (1u << INT_V_LPT)
+#define INT_VHRX (1u << INT_V_VHRX)
+#define INT_VHTX (1u << INT_V_VHTX)
#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)
@@ -355,9 +365,15 @@ typedef struct {
#define IPL_PTR (0x14 - IPL_HMIN)
#define IPL_PTP (0x14 - IPL_HMIN)
#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 */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 0
#define VEC_Q 0x200
#define VEC_PTR (VEC_Q + 0070)
diff --git a/VAX/vax750_syslist.c b/VAX/vax750_syslist.c
index b339104b..3d895757 100644
--- a/VAX/vax750_syslist.c
+++ b/VAX/vax750_syslist.c
@@ -52,7 +52,9 @@ extern DEVICE ts_dev;
extern DEVICE tq_dev;
extern DEVICE tu_dev;
extern DEVICE dz_dev;
+extern DEVICE vh_dev;
extern DEVICE xu_dev, xub_dev;
+extern DEVICE dmc_dev[];
extern int32 sim_switches;
extern UNIT cpu_unit;
@@ -72,6 +74,7 @@ DEVICE *sim_devices[] = {
&tto_dev,
&td_dev,
&dz_dev,
+ &vh_dev,
&cr_dev,
&lpt_dev,
&rp_dev,
@@ -87,6 +90,10 @@ DEVICE *sim_devices[] = {
&tq_dev,
&xu_dev,
&xub_dev,
+ &dmc_dev[0],
+ &dmc_dev[1],
+ &dmc_dev[2],
+ &dmc_dev[3],
NULL
};
diff --git a/VAX/vax780_defs.h b/VAX/vax780_defs.h
index 48563b72..8305a58c 100644
--- a/VAX/vax780_defs.h
+++ b/VAX/vax780_defs.h
@@ -277,6 +277,8 @@ typedef struct {
/* Unibus I/O page layout - XUB,RQB,RQC,RQD float based on number of DZ's
Massbus devices (RP, TU) do not appear in the Unibus IO page */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_XUB (IOPAGEBASE + 000330 + (020 * (DZ_MUXES / 2)))
@@ -287,8 +289,6 @@ typedef struct {
#define IOLN_RQC 004
#define IOBA_RQD (IOPAGEBASE + IOBA_RQC + IOLN_RQC)
#define IOLN_RQD 004
-#define IOBA_VH (IOPAGEBASE + 000440) /* DHU11 */
-#define IOLN_VH 020
#define IOBA_RQ (IOPAGEBASE + 012150) /* UDA50 */
#define IOLN_RQ 004
#define IOBA_TS (IOPAGEBASE + 012520) /* TS11 */
@@ -319,8 +319,6 @@ typedef struct {
#define IOLN_PTR 004
#define IOBA_PTP (IOPAGEBASE + 017554) /* PC11 punch */
#define IOLN_PTP 004
-#define IOBA_DMC (IOPAGEBASE + 0760060) /* DMC11 */
-#define IOLN_DMC 010
/* Interrupt assignments; within each level, priority is right to left */
@@ -381,6 +379,8 @@ typedef struct {
/* Device vectors */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 0
#define VEC_Q 0000
#define VEC_PTR 0070
@@ -398,10 +398,6 @@ typedef struct {
#define VEC_RY 0264
#define VEC_DZRX 0300
#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/vaxmod_defs.h b/VAX/vaxmod_defs.h
index 8527f1b0..3e56d146 100644
--- a/VAX/vaxmod_defs.h
+++ b/VAX/vaxmod_defs.h
@@ -285,6 +285,8 @@ typedef struct {
/* I/O page layout - RQB,RQC,RQD float based on number of DZ's */
+#define IOBA_FLOAT (0) /* Assigned by Auto Configure */
+
#define IOBA_DZ (IOPAGEBASE + 000100) /* DZ11 */
#define IOLN_DZ 010
#define IOBA_RQB (IOPAGEBASE + 000334 + (020 * (DZ_MUXES / 2)))
@@ -293,8 +295,6 @@ typedef struct {
#define IOLN_RQC 004
#define IOBA_RQD (IOPAGEBASE + IOBA_RQC + IOLN_RQC)
#define IOLN_RQD 004
-#define IOBA_VH (IOPAGEBASE + 000440) /* DHQ11 */
-#define IOLN_VH 020
#define IOBA_RQ (IOPAGEBASE + 012150) /* RQDX3 */
#define IOLN_RQ 004
#define IOBA_TS (IOPAGEBASE + 012520) /* TS11 */
@@ -427,6 +427,8 @@ typedef struct {
/* Device vectors */
+#define VEC_FLOAT (0) /* Assigned by Auto Configure */
+
#define VEC_QBUS 1 /* Qbus system */
#define VEC_Q 0x200 /* Qbus vector offset */
#define VEC_PTR (VEC_Q + 0070)
diff --git a/Visual Studio Projects/PDP10.vcproj b/Visual Studio Projects/PDP10.vcproj
index 766ca9e9..0b0e6fdd 100644
--- a/Visual Studio Projects/PDP10.vcproj
+++ b/Visual Studio Projects/PDP10.vcproj
@@ -247,10 +247,6 @@
RelativePath="..\PDP11\pdp11_ry.c"
>
-
-
diff --git a/Visual Studio Projects/VAX620.vcproj b/Visual Studio Projects/VAX620.vcproj
index 9f690213..7e30e928 100644
--- a/Visual Studio Projects/VAX620.vcproj
+++ b/Visual Studio Projects/VAX620.vcproj
@@ -207,6 +207,10 @@
RelativePath="..\PDP11\pdp11_cr.c"
>
+
+
@@ -369,6 +373,10 @@
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc"
>
+
+
diff --git a/Visual Studio Projects/VAX630.vcproj b/Visual Studio Projects/VAX630.vcproj
index 2eb6b7eb..259d5230 100644
--- a/Visual Studio Projects/VAX630.vcproj
+++ b/Visual Studio Projects/VAX630.vcproj
@@ -207,6 +207,10 @@
RelativePath="..\PDP11\pdp11_cr.c"
>
+
+
@@ -369,6 +373,10 @@
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc"
>
+
+
diff --git a/Visual Studio Projects/VAX730.vcproj b/Visual Studio Projects/VAX730.vcproj
index 446cafcd..201977df 100644
--- a/Visual Studio Projects/VAX730.vcproj
+++ b/Visual Studio Projects/VAX730.vcproj
@@ -202,6 +202,10 @@
RelativePath="..\PDP11\pdp11_cr.c"
>
+
+
@@ -238,6 +242,10 @@
RelativePath="..\PDP11\pdp11_ts.c"
>
+
+
@@ -371,6 +379,10 @@
RelativePath="..\dec_dz.h"
>
+
+
diff --git a/Visual Studio Projects/VAX750.vcproj b/Visual Studio Projects/VAX750.vcproj
index f64d767e..982d4998 100644
--- a/Visual Studio Projects/VAX750.vcproj
+++ b/Visual Studio Projects/VAX750.vcproj
@@ -202,6 +202,10 @@
RelativePath="..\PDP11\pdp11_cr.c"
>
+
+
@@ -246,6 +250,10 @@
RelativePath="..\PDP11\pdp11_tu.c"
>
+
+
@@ -379,6 +387,10 @@
RelativePath="..\dec_dz.h"
>
+
+
diff --git a/descrip.mms b/descrip.mms
index 2ac2de0a..e86bcd7e 100644
--- a/descrip.mms
+++ b/descrip.mms
@@ -43,6 +43,8 @@
# SWTP6800MP-A2 Just Build The SWTP6800MP-A2.
# VAX Just Build The DEC VAX.
# VAX610 Just Build The DEC VAX610 (MicroVAX I).
+# VAX620 Just Build The DEC VAX610 (rtVAX 1000).
+# VAX630 Just Build The DEC VAX610 (MicroVAX II).
# VAX730 Just Build The DEC VAX730.
# VAX750 Just Build The DEC VAX750.
# VAX780 Just Build The DEC VAX780.
@@ -661,6 +663,62 @@ VAX610_OPTIONS = /INCL=($(SIMH_DIR),$(VAX610_DIR),$(PDP11_DIR)$(PCAP_INC))\
VAX610_SIMH_LIB = $(SIMH_LIB)
.ENDIF
+# Digital Equipment VAX630 (MicroVAX II) Simulator Definitions.
+#
+VAX630_DIR = SYS$DISK:[.VAX]
+VAX630_LIB1 = $(LIB_DIR)VAX630L1-$(ARCH).OLB
+VAX630_SOURCE1 = $(VAX630_DIR)VAX_CPU.C,$(VAX630_DIR)VAX_CPU1.C,\
+ $(VAX630_DIR)VAX_FPA.C,$(VAX630_DIR)VAX_CIS.C,\
+ $(VAX630_DIR)VAX_OCTA.C,$(VAX630_DIR)VAX_CMODE.C,\
+ $(VAX630_DIR)VAX_MMU.C,$(VAX630_DIR)VAX_SYS.C,\
+ $(VAX630_DIR)VAX_SYSCM.C,$(VAX630_DIR)VAX630_STDDEV.C,\
+ $(VAX630_DIR)VAX630_MEM.C,$(VAX630_DIR)VAX630_SYSDEV.C,\
+ $(VAX630_DIR)VAX630_IO.C,$(VAX630_DIR)VAX630_SYSLIST.C
+VAX630_LIB2 = $(LIB_DIR)VAX630L2-$(ARCH).OLB
+VAX630_SOURCE2 = $(PDP11_DIR)PDP11_IO_LIB.C,\
+ $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.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
+.IFDEF ALPHA_OR_IA64
+VAX630_OPTIONS = /INCL=($(SIMH_DIR),$(VAX630_DIR),$(PDP11_DIR)$(PCAP_INC))\
+ /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_630=1")
+VAX630_SIMH_LIB = $(SIMH_LIB64)
+.ELSE
+VAX630_OPTIONS = /INCL=($(SIMH_DIR),$(VAX630_DIR),$(PDP11_DIR)$(PCAP_INC))\
+ /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_630=1")
+VAX630_SIMH_LIB = $(SIMH_LIB)
+.ENDIF
+
+# Digital Equipment VAX620 (rtVAX 1000) Simulator Definitions.
+#
+VAX620_DIR = SYS$DISK:[.VAX]
+VAX620_LIB1 = $(LIB_DIR)VAX620L1-$(ARCH).OLB
+VAX620_SOURCE1 = $(VAX620_DIR)VAX_CPU.C,$(VAX620_DIR)VAX_CPU1.C,\
+ $(VAX620_DIR)VAX_FPA.C,$(VAX620_DIR)VAX_CIS.C,\
+ $(VAX620_DIR)VAX_OCTA.C,$(VAX620_DIR)VAX_CMODE.C,\
+ $(VAX620_DIR)VAX_MMU.C,$(VAX620_DIR)VAX_SYS.C,\
+ $(VAX620_DIR)VAX_SYSCM.C,$(VAX620_DIR)VAX620_STDDEV.C,\
+ $(VAX620_DIR)VAX620_MEM.C,$(VAX620_DIR)VAX620_SYSDEV.C,\
+ $(VAX620_DIR)VAX620_IO.C,$(VAX620_DIR)VAX620_SYSLIST.C
+VAX620_LIB2 = $(LIB_DIR)VAX620L2-$(ARCH).OLB
+VAX620_SOURCE2 = $(PDP11_DIR)PDP11_IO_LIB.C,\
+ $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.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
+.IFDEF ALPHA_OR_IA64
+VAX620_OPTIONS = /INCL=($(SIMH_DIR),$(VAX620_DIR),$(PDP11_DIR)$(PCAP_INC))\
+ /DEF=($(CC_DEFS),"VM_VAX=1","USE_ADDR64=1","USE_INT64=1"$(PCAP_DEFS),"VAX_620=1")
+VAX620_SIMH_LIB = $(SIMH_LIB64)
+.ELSE
+VAX620_OPTIONS = /INCL=($(SIMH_DIR),$(VAX620_DIR),$(PDP11_DIR)$(PCAP_INC))\
+ /DEF=($(CC_DEFS),"VM_VAX=1"$(PCAP_DEFS),"VAX_620=1")
+VAX620_SIMH_LIB = $(SIMH_LIB)
+.ENDIF
+
# Digital Equipment VAX730 Simulator Definitions.
#
VAX730_DIR = SYS$DISK:[.VAX]
@@ -679,6 +737,7 @@ VAX730_SOURCE2 = $(PDP11_DIR)PDP11_RL.C,$(PDP11_DIR)PDP11_RQ.C,\
$(PDP11_DIR)PDP11_LP.C,$(PDP11_DIR)PDP11_TQ.C,\
$(PDP11_DIR)PDP11_XU.C,$(PDP11_DIR)PDP11_RY.C,\
$(PDP11_DIR)PDP11_CR.C,$(PDP11_DIR)PDP11_HK.C,\
+ $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
$(PDP11_DIR)PDP11_IO_LIB.C
.IFDEF ALPHA_OR_IA64
VAX730_OPTIONS = /INCL=($(SIMH_DIR),$(VAX730_DIR),$(PDP11_DIR)$(PCAP_INC))\
@@ -709,6 +768,7 @@ VAX750_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_HK.C,\
$(PDP11_DIR)PDP11_RP.C,$(PDP11_DIR)PDP11_TU.C,\
+ $(PDP11_DIR)PDP11_VH.C,$(PDP11_DIR)PDP11_DMC.C,\
$(PDP11_DIR)PDP11_IO_LIB.C
.IFDEF ALPHA_OR_IA64
VAX750_OPTIONS = /INCL=($(SIMH_DIR),$(VAX750_DIR),$(PDP11_DIR)$(PCAP_INC))\
@@ -768,7 +828,7 @@ I7094_OPTIONS = /INCL=($(SIMH_DIR),$(I7094_DIR))/DEF=($(CC_DEFS))
.IFDEF ALPHA_OR_IA64
ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \
ID32 NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP10 PDP11 PDP15 S3 \
- VAX VAX610 VAX730 VAX750 VAX780 \
+ VAX VAX610 VAX620 VAX630 VAX730 VAX750 VAX780 \
SDS I7094 SWTP6800MP-A SWTP6800MP-A2
$! No further actions necessary
.ELSE
@@ -777,7 +837,8 @@ ALL : ALTAIR ALTAIRZ80 ECLIPSE GRI LGP H316 HP2100 I1401 I1620 IBM1130 ID16 \
#
ALL : ALTAIR ALTAIRZ80 GRI H316 HP2100 I1401 I1620 IBM1130 ID16 ID32 \
NOVA PDP1 PDP4 PDP7 PDP8 PDP9 PDP11 PDP15 S3 \
- VAX VAX510 VAX730 VAX750 VAX780 SDS SWTP6800MP-A SWTP6800MP-A2
+ VAX VAX510 VAX620 VAX630 VAX730 VAX750 VAX780 SDS \
+ SWTP6800MP-A SWTP6800MP-A2
$! No further actions necessary
.ENDIF
@@ -1217,6 +1278,52 @@ $(VAX610_LIB2) : $(VAX610_SOURCE2)
$ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ
$ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+$(VAX630_LIB1) : $(VAX630_SOURCE1)
+ $!
+ $! Building The $(VAX630_LIB1) Library.
+ $!
+ $ RUN/NODEBUG $(BIN_DIR)BuildROMs-$(ARCH).EXE
+ $ $(CC)$(VAX630_OPTIONS)/OBJ=$(VAX630_DIR) -
+ /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST)
+ $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN -
+ LIBRARY/CREATE $(MMS$TARGET)
+ $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
+$(VAX620_LIB2) : $(VAX620_SOURCE2)
+ $!
+ $! Building The $(VAX620_LIB2) Library.
+ $!
+ $ $(CC)$(VAX620_OPTIONS)/OBJ=$(VAX620_DIR) -
+ /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST)
+ $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN -
+ LIBRARY/CREATE $(MMS$TARGET)
+ $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
+$(VAX620_LIB1) : $(VAX620_SOURCE1)
+ $!
+ $! Building The $(VAX620_LIB1) Library.
+ $!
+ $ RUN/NODEBUG $(BIN_DIR)BuildROMs-$(ARCH).EXE
+ $ $(CC)$(VAX620_OPTIONS)/OBJ=$(VAX620_DIR) -
+ /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST)
+ $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN -
+ LIBRARY/CREATE $(MMS$TARGET)
+ $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
+$(VAX620_LIB2) : $(VAX620_SOURCE2)
+ $!
+ $! Building The $(VAX620_LIB2) Library.
+ $!
+ $ $(CC)$(VAX620_OPTIONS)/OBJ=$(VAX620_DIR) -
+ /OBJ=$(BLD_DIR) $(MMS$CHANGED_LIST)
+ $ IF (F$SEARCH("$(MMS$TARGET)").EQS."") THEN -
+ LIBRARY/CREATE $(MMS$TARGET)
+ $ LIBRARY/REPLACE $(MMS$TARGET) $(BLD_DIR)*.OBJ
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
$(VAX730_LIB1) : $(VAX730_SOURCE1)
$!
$! Building The $(VAX730_LIB1) Library.
@@ -1681,6 +1788,36 @@ $(BIN_DIR)VAX610-$(ARCH).EXE : $(SIMH_MAIN) $(VAX610_SIMH_LIB) $(PCAP_LIBD) $(VA
$(VAX610_SIMH_LIB)/LIBRARY$(PCAP_LIBR)
$ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+VAX630 : $(BIN_DIR)VAX630-$(ARCH).EXE
+ $! VAX630 done
+
+$(BIN_DIR)VAX630-$(ARCH).EXE : $(SIMH_MAIN) $(VAX630_SIMH_LIB) $(PCAP_LIBD) $(VAX630_LIB1) $(VAX630_LIB2) $(PCAP_EXECLET)
+ $!
+ $! Building The $(BIN_DIR)VAX630-$(ARCH).EXE Simulator.
+ $!
+ $ $(CC)$(VAX630_OPTIONS)/OBJ=$(BLD_DIR) SCP.C
+ $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)-
+ /EXE=$(BIN_DIR)VAX630-$(ARCH).EXE -
+ $(BLD_DIR)SCP.OBJ,-
+ $(VAX630_LIB1)/LIBRARY,$(VAX630_LIB2)/LIBRARY,-
+ $(VAX630_SIMH_LIB)/LIBRARY$(PCAP_LIBR)
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
+VAX620 : $(BIN_DIR)VAX620-$(ARCH).EXE
+ $! VAX620 done
+
+$(BIN_DIR)VAX620-$(ARCH).EXE : $(SIMH_MAIN) $(VAX620_SIMH_LIB) $(PCAP_LIBD) $(VAX620_LIB1) $(VAX620_LIB2) $(PCAP_EXECLET)
+ $!
+ $! Building The $(BIN_DIR)VAX620-$(ARCH).EXE Simulator.
+ $!
+ $ $(CC)$(VAX620_OPTIONS)/OBJ=$(BLD_DIR) SCP.C
+ $ LINK $(LINK_DEBUG)$(LINK_SECTION_BINDING)-
+ /EXE=$(BIN_DIR)VAX620-$(ARCH).EXE -
+ $(BLD_DIR)SCP.OBJ,-
+ $(VAX620_LIB1)/LIBRARY,$(VAX620_LIB2)/LIBRARY,-
+ $(VAX620_SIMH_LIB)/LIBRARY$(PCAP_LIBR)
+ $ DELETE/NOLOG/NOCONFIRM $(BLD_DIR)*.OBJ;*
+
VAX730 : $(BIN_DIR)VAX730-$(ARCH).EXE
$! VAX730 done
diff --git a/makefile b/makefile
index 5bd7a2e9..3bfcf389 100644
--- a/makefile
+++ b/makefile
@@ -514,7 +514,7 @@ VAX630 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.c \
${PDP11D}/pdp11_dz.c ${PDP11D}/pdp11_lp.c ${PDP11D}/pdp11_tq.c \
${PDP11D}/pdp11_xq.c ${PDP11D}/pdp11_ry.c ${PDP11D}/pdp11_vh.c \
- ${PDP11D}/pdp11_cr.c ${PDP11D}/pdp11_io_lib.c
+ ${PDP11D}/pdp11_cr.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_io_lib.c
VAX620_OPT = -DVM_VAX -DVAX_620 -DUSE_INT64 -DUSE_ADDR64 -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT}
VAX630_OPT = -DVM_VAX -DVAX_630 -DUSE_INT64 -DUSE_ADDR64 -I ${VAXD} -I ${PDP11D} ${NETWORK_OPT}
@@ -527,7 +527,8 @@ VAX730 = ${VAXD}/vax_cpu.c ${VAXD}/vax_cpu1.c ${VAXD}/vax_fpa.c \
${PDP11D}/pdp11_rl.c ${PDP11D}/pdp11_rq.c ${PDP11D}/pdp11_ts.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_hk.c ${PDP11D}/pdp11_io_lib.c
+ ${PDP11D}/pdp11_hk.c ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c \
+ ${PDP11D}/pdp11_io_lib.c
VAX730_OPT = -DVM_VAX -DVAX_730 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
@@ -541,7 +542,7 @@ VAX750 = ${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_hk.c ${PDP11D}/pdp11_rp.c ${PDP11D}/pdp11_tu.c \
- ${PDP11D}/pdp11_io_lib.c
+ ${PDP11D}/pdp11_vh.c ${PDP11D}/pdp11_dmc.c ${PDP11D}/pdp11_io_lib.c
VAX750_OPT = -DVM_VAX -DVAX_750 -DUSE_INT64 -DUSE_ADDR64 -I VAX -I ${PDP11D} ${NETWORK_OPT}
@@ -555,7 +556,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_dmc.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}