Addition of DUP11 simulation to all Unibus simulators (PDP11, PDP10, and all Unibus VAXen)
This commit is contained in:
parent
f30d43209e
commit
89bd58a6fa
21 changed files with 1215 additions and 3 deletions
|
@ -619,6 +619,7 @@ typedef struct pdp_dib DIB;
|
||||||
|
|
||||||
#define DZ_MUXES 4 /* max # of muxes */
|
#define DZ_MUXES 4 /* max # of muxes */
|
||||||
#define DZ_LINES 8 /* lines per mux */
|
#define DZ_LINES 8 /* lines per mux */
|
||||||
|
#define DUP_LINES 4 /* max # of DUP11's */
|
||||||
#define DIB_MAX 100 /* max DIBs */
|
#define DIB_MAX 100 /* max DIBs */
|
||||||
|
|
||||||
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
||||||
|
@ -706,6 +707,9 @@ typedef struct pdp_dib DIB;
|
||||||
#define INT_V_PTP 25
|
#define INT_V_PTP 25
|
||||||
#define INT_V_LP20 26 /* LPT20 */
|
#define INT_V_LP20 26 /* LPT20 */
|
||||||
#define INT_V_CR 27 /* CD20 (CD11) */
|
#define INT_V_CR 27 /* CD20 (CD11) */
|
||||||
|
#define INT_V_CR 27 /* CD20 (CD11) */
|
||||||
|
#define INT_V_DUPRX 28 /* DUP11 */
|
||||||
|
#define INT_V_DUPTX 29
|
||||||
|
|
||||||
#define INT_RP (1u << INT_V_RP)
|
#define INT_RP (1u << INT_V_RP)
|
||||||
#define INT_TU (1u << INT_V_TU)
|
#define INT_TU (1u << INT_V_TU)
|
||||||
|
@ -719,6 +723,8 @@ typedef struct pdp_dib DIB;
|
||||||
#define INT_PTP (1u << INT_V_PTP)
|
#define INT_PTP (1u << INT_V_PTP)
|
||||||
#define INT_LP20 (1u << INT_V_LP20)
|
#define INT_LP20 (1u << INT_V_LP20)
|
||||||
#define INT_CR (1u << INT_V_CR)
|
#define INT_CR (1u << INT_V_CR)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
|
|
||||||
#define IPL_RP 6 /* int levels */
|
#define IPL_RP 6 /* int levels */
|
||||||
#define IPL_TU 6
|
#define IPL_TU 6
|
||||||
|
@ -728,6 +734,8 @@ typedef struct pdp_dib DIB;
|
||||||
#define IPL_DZRX 5
|
#define IPL_DZRX 5
|
||||||
#define IPL_DZTX 5
|
#define IPL_DZTX 5
|
||||||
#define IPL_RY 5
|
#define IPL_RY 5
|
||||||
|
#define IPL_DUPRX 5
|
||||||
|
#define IPL_DUPTX 5
|
||||||
#define IPL_PTR 4
|
#define IPL_PTR 4
|
||||||
#define IPL_PTP 4
|
#define IPL_PTP 4
|
||||||
#define IPL_LP20 4
|
#define IPL_LP20 4
|
||||||
|
|
|
@ -961,6 +961,8 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */
|
||||||
{0017550}, {0070} }, /* PC11 reader - fx CSR, fx VEC */
|
{0017550}, {0070} }, /* PC11 reader - fx CSR, fx VEC */
|
||||||
{ { "PTP" }, 1, 1, 0, 0,
|
{ { "PTP" }, 1, 1, 0, 0,
|
||||||
{0017554}, {0074} }, /* PC11 punch - fx CSR, fx VEC */
|
{0017554}, {0074} }, /* PC11 punch - fx CSR, fx VEC */
|
||||||
|
{ { "DUP" }, 1, 2, 0, 0,
|
||||||
|
{0000100}, {0300} }, /* DUP11 sync lines - fx CSR, fx VEC */
|
||||||
#else
|
#else
|
||||||
{ { "QBA" }, 1, 0, 0, 0,
|
{ { "QBA" }, 1, 0, 0, 0,
|
||||||
{017500} }, /* doorbell - fx CSR, no VEC */
|
{017500} }, /* doorbell - fx CSR, no VEC */
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern DEVICE dz_dev;
|
||||||
extern DEVICE ry_dev;
|
extern DEVICE ry_dev;
|
||||||
extern DEVICE cr_dev;
|
extern DEVICE cr_dev;
|
||||||
extern DEVICE lp20_dev;
|
extern DEVICE lp20_dev;
|
||||||
|
extern DEVICE dup_dev;
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern REG cpu_reg[];
|
extern REG cpu_reg[];
|
||||||
extern d10 *M;
|
extern d10 *M;
|
||||||
|
@ -90,6 +91,7 @@ DEVICE *sim_devices[] = {
|
||||||
&rp_dev,
|
&rp_dev,
|
||||||
&tu_dev,
|
&tu_dev,
|
||||||
&dz_dev,
|
&dz_dev,
|
||||||
|
&dup_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -482,6 +482,7 @@ typedef struct {
|
||||||
#define VH_MUXES 4 /* max # of VH muxes */
|
#define VH_MUXES 4 /* max # of VH muxes */
|
||||||
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
||||||
#define DCX_LINES 16 /* max # of DC11's */
|
#define DCX_LINES 16 /* max # of DC11's */
|
||||||
|
#define DUP_LINES 8 /* max # of DUP11/DPV11's */
|
||||||
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
||||||
#define AUTO_LNT 34 /* autoconfig ranks */
|
#define AUTO_LNT 34 /* autoconfig ranks */
|
||||||
#define DIB_MAX 100 /* max DIBs */
|
#define DIB_MAX 100 /* max DIBs */
|
||||||
|
@ -599,6 +600,8 @@ typedef struct pdp_dib DIB;
|
||||||
#define INT_V_RC 17
|
#define INT_V_RC 17
|
||||||
#define INT_V_DMCRX 18
|
#define INT_V_DMCRX 18
|
||||||
#define INT_V_DMCTX 19
|
#define INT_V_DMCTX 19
|
||||||
|
#define INT_V_DUPRX 20
|
||||||
|
#define INT_V_DUPTX 21
|
||||||
|
|
||||||
#define INT_V_PIR4 0 /* BR4 */
|
#define INT_V_PIR4 0 /* BR4 */
|
||||||
#define INT_V_TTI 1
|
#define INT_V_TTI 1
|
||||||
|
@ -644,6 +647,8 @@ typedef struct pdp_dib DIB;
|
||||||
#define INT_RC (1u << INT_V_RC)
|
#define INT_RC (1u << INT_V_RC)
|
||||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
#define INT_PIR4 (1u << INT_V_PIR4)
|
#define INT_PIR4 (1u << INT_V_PIR4)
|
||||||
#define INT_TTI (1u << INT_V_TTI)
|
#define INT_TTI (1u << INT_V_TTI)
|
||||||
#define INT_TTO (1u << INT_V_TTO)
|
#define INT_TTO (1u << INT_V_TTO)
|
||||||
|
@ -692,6 +697,8 @@ typedef struct pdp_dib DIB;
|
||||||
#define IPL_RC 5
|
#define IPL_RC 5
|
||||||
#define IPL_DMCRX 5
|
#define IPL_DMCRX 5
|
||||||
#define IPL_DMCTX 5
|
#define IPL_DMCTX 5
|
||||||
|
#define IPL_DUPRX 5
|
||||||
|
#define IPL_DUPTX 5
|
||||||
#define IPL_PTR 4
|
#define IPL_PTR 4
|
||||||
#define IPL_PTP 4
|
#define IPL_PTP 4
|
||||||
#define IPL_TTI 4
|
#define IPL_TTI 4
|
||||||
|
|
1129
PDP11/pdp11_dup.c
Normal file
1129
PDP11/pdp11_dup.c
Normal file
File diff suppressed because it is too large
Load diff
|
@ -440,14 +440,14 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */
|
||||||
{ { NULL }, 1, 2, 0, 8,
|
{ { NULL }, 1, 2, 0, 8,
|
||||||
{012400} }, /* KW11W */
|
{012400} }, /* KW11W */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* DU11 */
|
{ { NULL }, 1, 2, 8, 8 }, /* DU11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* DUP11 */
|
{ { "DUP" }, 1, 2, 8, 8 }, /* DUP11 */
|
||||||
{ { NULL }, 1, 3, 0, 8,
|
{ { NULL }, 1, 3, 0, 8,
|
||||||
{015000, 015040, 015100, 015140, }}, /* DV11 */
|
{015000, 015040, 015100, 015140, }}, /* DV11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* LK11A */
|
{ { NULL }, 1, 2, 8, 8 }, /* LK11A */
|
||||||
{ { "DMC0", "DMC1", "DMC2", "DMC3" },
|
{ { "DMC0", "DMC1", "DMC2", "DMC3" },
|
||||||
1, 2, 8, 8 }, /* DMC11 */
|
1, 2, 8, 8 }, /* DMC11 */
|
||||||
{ { "DZ" }, 1, 2, 8, 8 }, /* DZ11 */
|
{ { "DZ" }, 1, 2, 8, 8 }, /* DZ11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* KMC11 */
|
{ { "KMC" }, 1, 2, 8, 8 }, /* KMC11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* LPP11 */
|
{ { NULL }, 1, 2, 8, 8 }, /* LPP11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* VMV21 */
|
{ { NULL }, 1, 2, 8, 8 }, /* VMV21 */
|
||||||
{ { NULL }, 1, 2, 16, 8 }, /* VMV31 */
|
{ { NULL }, 1, 2, 16, 8 }, /* VMV31 */
|
||||||
|
@ -468,7 +468,7 @@ AUTO_CON auto_tab[] = {/*c #v am vm fxa fxv */
|
||||||
{ { NULL }, 1, 1, 8, 4,
|
{ { NULL }, 1, 1, 8, 4,
|
||||||
{012410, 012410}, {0124} }, /* DR11B - fx CSRs,vec */
|
{012410, 012410}, {0124} }, /* DR11B - fx CSRs,vec */
|
||||||
{ { "DMP" }, 1, 2, 8, 8 }, /* DMP11 */
|
{ { "DMP" }, 1, 2, 8, 8 }, /* DMP11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* DPV11 */
|
{ { "DPV" }, 1, 2, 8, 8 }, /* DPV11 */
|
||||||
{ { NULL }, 1, 2, 8, 8 }, /* ISB11 */
|
{ { NULL }, 1, 2, 8, 8 }, /* ISB11 */
|
||||||
{ { NULL }, 1, 2, 16, 8 }, /* DMV11 */
|
{ { NULL }, 1, 2, 16, 8 }, /* DMV11 */
|
||||||
{ { "XU", "XUB" }, 1, 1, 8, 4,
|
{ { "XU", "XUB" }, 1, 1, 8, 4,
|
||||||
|
|
|
@ -103,6 +103,8 @@ extern DEVICE xu_dev, xub_dev;
|
||||||
extern DEVICE ke_dev;
|
extern DEVICE ke_dev;
|
||||||
extern DEVICE kg_dev;
|
extern DEVICE kg_dev;
|
||||||
extern DEVICE dmc_dev[];
|
extern DEVICE dmc_dev[];
|
||||||
|
extern DEVICE dup_dev;
|
||||||
|
extern DEVICE dpv_dev;
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern REG cpu_reg[];
|
extern REG cpu_reg[];
|
||||||
extern uint16 *M;
|
extern uint16 *M;
|
||||||
|
@ -171,6 +173,8 @@ DEVICE *sim_devices[] = {
|
||||||
&dmc_dev[1],
|
&dmc_dev[1],
|
||||||
&dmc_dev[2],
|
&dmc_dev[2],
|
||||||
&dmc_dev[3],
|
&dmc_dev[3],
|
||||||
|
&dup_dev,
|
||||||
|
&dpv_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -205,6 +205,7 @@ extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc);
|
||||||
#define VH_MUXES 4 /* max # of DHQ muxes */
|
#define VH_MUXES 4 /* max # of DHQ muxes */
|
||||||
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
||||||
#define DCX_LINES 16 /* max # of DC11's */
|
#define DCX_LINES 16 /* max # of DC11's */
|
||||||
|
#define DUP_LINES 8 /* max # of DUP11's */
|
||||||
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
||||||
|
|
||||||
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
||||||
|
@ -256,6 +257,8 @@ typedef struct {
|
||||||
#define INT_V_XU 9
|
#define INT_V_XU 9
|
||||||
#define INT_V_DMCRX 10
|
#define INT_V_DMCRX 10
|
||||||
#define INT_V_DMCTX 11
|
#define INT_V_DMCTX 11
|
||||||
|
#define INT_V_DUPRX 12
|
||||||
|
#define INT_V_DUPTX 13
|
||||||
|
|
||||||
#define INT_V_LPT 0 /* BR4 */
|
#define INT_V_LPT 0 /* BR4 */
|
||||||
#define INT_V_PTR 1
|
#define INT_V_PTR 1
|
||||||
|
@ -282,6 +285,8 @@ typedef struct {
|
||||||
#define INT_CR (1u << INT_V_CR)
|
#define INT_CR (1u << INT_V_CR)
|
||||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
|
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
|
@ -301,6 +306,8 @@ typedef struct {
|
||||||
#define IPL_VHTX (0x14 - IPL_HMIN)
|
#define IPL_VHTX (0x14 - IPL_HMIN)
|
||||||
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPRX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPTX (0x15 - IPL_HMIN)
|
||||||
|
|
||||||
/* Device vectors */
|
/* Device vectors */
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ extern DEVICE dz_dev;
|
||||||
extern DEVICE vh_dev;
|
extern DEVICE vh_dev;
|
||||||
extern DEVICE xu_dev, xub_dev;
|
extern DEVICE xu_dev, xub_dev;
|
||||||
extern DEVICE dmc_dev[];
|
extern DEVICE dmc_dev[];
|
||||||
|
extern DEVICE dup_dev;
|
||||||
|
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern void WriteB (uint32 pa, int32 val);
|
extern void WriteB (uint32 pa, int32 val);
|
||||||
|
@ -88,6 +89,7 @@ DEVICE *sim_devices[] = {
|
||||||
&dmc_dev[1],
|
&dmc_dev[1],
|
||||||
&dmc_dev[2],
|
&dmc_dev[2],
|
||||||
&dmc_dev[3],
|
&dmc_dev[3],
|
||||||
|
&dup_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -295,6 +295,8 @@ typedef struct {
|
||||||
#define INT_V_XU 8
|
#define INT_V_XU 8
|
||||||
#define INT_V_DMCRX 9
|
#define INT_V_DMCRX 9
|
||||||
#define INT_V_DMCTX 10
|
#define INT_V_DMCTX 10
|
||||||
|
#define INT_V_DUPRX 11
|
||||||
|
#define INT_V_DUPTX 12
|
||||||
|
|
||||||
#define INT_V_LPT 0 /* BR4 */
|
#define INT_V_LPT 0 /* BR4 */
|
||||||
#define INT_V_PTR 1
|
#define INT_V_PTR 1
|
||||||
|
@ -320,6 +322,8 @@ typedef struct {
|
||||||
#define INT_CR (1u << INT_V_CR)
|
#define INT_CR (1u << INT_V_CR)
|
||||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
|
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
|
@ -338,6 +342,8 @@ typedef struct {
|
||||||
#define IPL_VHTX (0x14 - IPL_HMIN)
|
#define IPL_VHTX (0x14 - IPL_HMIN)
|
||||||
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPRX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPTX (0x15 - IPL_HMIN)
|
||||||
|
|
||||||
/* Device vectors */
|
/* Device vectors */
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern DEVICE dz_dev;
|
||||||
extern DEVICE vh_dev;
|
extern DEVICE vh_dev;
|
||||||
extern DEVICE xu_dev, xub_dev;
|
extern DEVICE xu_dev, xub_dev;
|
||||||
extern DEVICE dmc_dev[];
|
extern DEVICE dmc_dev[];
|
||||||
|
extern DEVICE dup_dev;
|
||||||
|
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern void WriteB (uint32 pa, int32 val);
|
extern void WriteB (uint32 pa, int32 val);
|
||||||
|
@ -93,6 +94,7 @@ DEVICE *sim_devices[] = {
|
||||||
&dmc_dev[1],
|
&dmc_dev[1],
|
||||||
&dmc_dev[2],
|
&dmc_dev[2],
|
||||||
&dmc_dev[3],
|
&dmc_dev[3],
|
||||||
|
&dup_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -247,6 +247,7 @@ extern t_stat cpu_show_memory (FILE* st, UNIT* uptr, int32 val, void* desc);
|
||||||
#define VH_MUXES 4 /* max # of DHU muxes */
|
#define VH_MUXES 4 /* max # of DHU muxes */
|
||||||
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
#define DLX_LINES 16 /* max # of KL11/DL11's */
|
||||||
#define DCX_LINES 16 /* max # of DC11's */
|
#define DCX_LINES 16 /* max # of DC11's */
|
||||||
|
#define DUP_LINES 8 /* max # of DUP11's */
|
||||||
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
#define MT_MAXFR (1 << 16) /* magtape max rec */
|
||||||
|
|
||||||
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
#define DEV_V_UBUS (DEV_V_UF + 0) /* Unibus */
|
||||||
|
@ -306,6 +307,8 @@ typedef struct {
|
||||||
#define INT_V_XU 8
|
#define INT_V_XU 8
|
||||||
#define INT_V_DMCRX 9
|
#define INT_V_DMCRX 9
|
||||||
#define INT_V_DMCTX 10
|
#define INT_V_DMCTX 10
|
||||||
|
#define INT_V_DUPRX 11
|
||||||
|
#define INT_V_DUPTX 12
|
||||||
|
|
||||||
#define INT_V_LPT 0 /* BR4 */
|
#define INT_V_LPT 0 /* BR4 */
|
||||||
#define INT_V_PTR 1
|
#define INT_V_PTR 1
|
||||||
|
@ -331,6 +334,8 @@ typedef struct {
|
||||||
#define INT_CR (1u << INT_V_CR)
|
#define INT_CR (1u << INT_V_CR)
|
||||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
|
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
|
@ -349,6 +354,8 @@ typedef struct {
|
||||||
#define IPL_VHTX (0x14 - IPL_HMIN)
|
#define IPL_VHTX (0x14 - IPL_HMIN)
|
||||||
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPRX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPTX (0x15 - IPL_HMIN)
|
||||||
|
|
||||||
/* Device vectors */
|
/* Device vectors */
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern DEVICE dz_dev;
|
||||||
extern DEVICE vh_dev;
|
extern DEVICE vh_dev;
|
||||||
extern DEVICE xu_dev, xub_dev;
|
extern DEVICE xu_dev, xub_dev;
|
||||||
extern DEVICE dmc_dev[];
|
extern DEVICE dmc_dev[];
|
||||||
|
extern DEVICE dup_dev;
|
||||||
|
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern void WriteB (uint32 pa, int32 val);
|
extern void WriteB (uint32 pa, int32 val);
|
||||||
|
@ -95,6 +96,7 @@ DEVICE *sim_devices[] = {
|
||||||
&dmc_dev[1],
|
&dmc_dev[1],
|
||||||
&dmc_dev[2],
|
&dmc_dev[2],
|
||||||
&dmc_dev[3],
|
&dmc_dev[3],
|
||||||
|
&dup_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -342,6 +342,9 @@ typedef struct {
|
||||||
#define INT_V_XU 8
|
#define INT_V_XU 8
|
||||||
#define INT_V_DMCRX 9
|
#define INT_V_DMCRX 9
|
||||||
#define INT_V_DMCTX 10
|
#define INT_V_DMCTX 10
|
||||||
|
#define INT_V_DUPRX 11
|
||||||
|
#define INT_V_DUPTX 12
|
||||||
|
|
||||||
#define INT_V_LPT 0 /* BR4 */
|
#define INT_V_LPT 0 /* BR4 */
|
||||||
#define INT_V_PTR 1
|
#define INT_V_PTR 1
|
||||||
#define INT_V_PTP 2
|
#define INT_V_PTP 2
|
||||||
|
@ -366,6 +369,9 @@ typedef struct {
|
||||||
#define INT_CR (1u << INT_V_CR)
|
#define INT_CR (1u << INT_V_CR)
|
||||||
#define INT_DMCRX (1u << INT_V_DMCRX)
|
#define INT_DMCRX (1u << INT_V_DMCRX)
|
||||||
#define INT_DMCTX (1u << INT_V_DMCTX)
|
#define INT_DMCTX (1u << INT_V_DMCTX)
|
||||||
|
#define INT_DUPRX (1u << INT_V_DUPRX)
|
||||||
|
#define INT_DUPTX (1u << INT_V_DUPTX)
|
||||||
|
|
||||||
#define IPL_DZRX (0x15 - IPL_HMIN)
|
#define IPL_DZRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DZTX (0x15 - IPL_HMIN)
|
#define IPL_DZTX (0x15 - IPL_HMIN)
|
||||||
#define IPL_HK (0x15 - IPL_HMIN)
|
#define IPL_HK (0x15 - IPL_HMIN)
|
||||||
|
@ -383,6 +389,8 @@ typedef struct {
|
||||||
#define IPL_VHTX (0x14 - IPL_HMIN)
|
#define IPL_VHTX (0x14 - IPL_HMIN)
|
||||||
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
#define IPL_DMCRX (0x15 - IPL_HMIN)
|
||||||
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
#define IPL_DMCTX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPRX (0x15 - IPL_HMIN)
|
||||||
|
#define IPL_DUPTX (0x15 - IPL_HMIN)
|
||||||
|
|
||||||
/* Device vectors */
|
/* Device vectors */
|
||||||
|
|
||||||
|
|
|
@ -55,6 +55,7 @@ extern DEVICE dz_dev;
|
||||||
extern DEVICE vh_dev;
|
extern DEVICE vh_dev;
|
||||||
extern DEVICE xu_dev, xub_dev;
|
extern DEVICE xu_dev, xub_dev;
|
||||||
extern DEVICE dmc_dev[];
|
extern DEVICE dmc_dev[];
|
||||||
|
extern DEVICE dup_dev;
|
||||||
|
|
||||||
extern UNIT cpu_unit;
|
extern UNIT cpu_unit;
|
||||||
extern void WriteB (uint32 pa, int32 val);
|
extern void WriteB (uint32 pa, int32 val);
|
||||||
|
@ -93,6 +94,7 @@ DEVICE *sim_devices[] = {
|
||||||
&dmc_dev[1],
|
&dmc_dev[1],
|
||||||
&dmc_dev[2],
|
&dmc_dev[2],
|
||||||
&dmc_dev[3],
|
&dmc_dev[3],
|
||||||
|
&dup_dev,
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -239,6 +239,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_cr.c"
|
RelativePath="..\PDP11\pdp11_cr.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -219,6 +219,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_dmc.c"
|
RelativePath="..\PDP11\pdp11_dmc.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -206,6 +206,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_dmc.c"
|
RelativePath="..\PDP11\pdp11_dmc.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -206,6 +206,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_dmc.c"
|
RelativePath="..\PDP11\pdp11_dmc.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -209,6 +209,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_dmc.c"
|
RelativePath="..\PDP11\pdp11_dmc.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
|
@ -209,6 +209,10 @@
|
||||||
RelativePath="..\PDP11\pdp11_dmc.c"
|
RelativePath="..\PDP11\pdp11_dmc.c"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\PDP11\pdp11_dup.c"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\PDP11\pdp11_dz.c"
|
RelativePath="..\PDP11\pdp11_dz.c"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Add table
Reference in a new issue