diff --git a/PDP11/pdp11_cpu.c b/PDP11/pdp11_cpu.c index 58148352..d5ec359e 100644 --- a/PDP11/pdp11_cpu.c +++ b/PDP11/pdp11_cpu.c @@ -1,6 +1,6 @@ /* pdp11_cpu.c: PDP-11 CPU simulator - Copyright (c) 1993-2013, Robert M Supnik + Copyright (c) 1993-2015, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -25,6 +25,8 @@ cpu PDP-11 CPU + 30-Dec-15 RMS Added NOBEVENT option for 11/03, 11/23 + 29-Dec-15 RMS Call build_dib_tab during reset (Mark Pizzolato) 05-Dec-13 RMS Fixed bug in CSM (John Dundas) 23-Oct-13 RMS Fixed PS behavior on initialization and boot 10-Apr-13 RMS MMR1 does not track PC changes (Johnny Billquist) @@ -588,6 +590,8 @@ MTAB cpu_mod[] = { { MTAB_XTD|MTAB_VDV, OPT_CIS, NULL, "NOCIS", &cpu_clr_opt }, { MTAB_XTD|MTAB_VDV, OPT_MMU, NULL, "MMU", &cpu_set_opt }, { MTAB_XTD|MTAB_VDV, OPT_MMU, NULL, "NOMMU", &cpu_clr_opt }, + { MTAB_XTD|MTAB_VDV, OPT_BVT, NULL, "BEVENT", &cpu_set_opt, NULL, NULL, "Enable BEVENT line (11/03, 11/23 only)" }, + { MTAB_XTD|MTAB_VDV, OPT_BVT, NULL, "NOBEVENT", &cpu_clr_opt, NULL, NULL, "Disable BEVENT line (11/03, 11/23 only)" }, { MTAB_XTD|MTAB_VDV, 0, "IDLE", "IDLE", &sim_set_idle, &sim_show_idle }, { MTAB_XTD|MTAB_VDV, 0, NULL, "NOIDLE", &sim_clr_idle, NULL }, { UNIT_MSIZE, 16384, NULL, "16K", &cpu_set_size}, @@ -3044,7 +3048,7 @@ if (pcq_r) else return SCPE_IERR; set_r_display (0, MD_KER); -return build_dib_tab (); /* build, chk dib_tab */ +return build_dib_tab (); /* build, chk dib_tab */ } static const char *cpu_next_caveats = diff --git a/PDP11/pdp11_cpumod.c b/PDP11/pdp11_cpumod.c index 80263765..79d7d160 100644 --- a/PDP11/pdp11_cpumod.c +++ b/PDP11/pdp11_cpumod.c @@ -247,7 +247,8 @@ CNFTAB cnf_tab[] = { static const char *opt_name[] = { "Unibus", "Qbus", "EIS", "NOEIS", "FIS", "NOFIS", "FPP", "NOFPP", "CIS", "NOCIS", "MMU", "NOMMU", - "RH11", "RH70", "PARITY", "NOPARITY", "Unibus map", "No map", NULL + "RH11", "RH70", "PARITY", "NOPARITY", "Unibus map", "No map", + "BEVENT enabled", "BEVENT disabled", NULL }; static const char *jcsr_val[4] = { diff --git a/PDP11/pdp11_cpumod.h b/PDP11/pdp11_cpumod.h index 99d5f51a..9ec38fef 100644 --- a/PDP11/pdp11_cpumod.h +++ b/PDP11/pdp11_cpumod.h @@ -1,6 +1,6 @@ /* pdp11_cpumod.h: PDP-11 CPU model definitions - Copyright (c) 2004-2008, Robert M Supnik + Copyright (c) 2004-2015, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -23,6 +23,7 @@ used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from Robert M Supnik. + 30-Dec-15 RMS Added 11/03, 11/23 BEVENT disable 22-Apr-08 RMS Added 11/70 MBRK register 30-Aug-05 RMS Added additional 11/60 registers */ @@ -30,8 +31,8 @@ #ifndef PDP11_CPUMOD_H_ #define PDP11_CPUMOD_H_ 0 -#define SOP_1103 (BUS_Q) -#define OPT_1103 (OPT_EIS|OPT_FIS) +#define SOP_1103 (BUS_Q|OPT_BVT) +#define OPT_1103 (OPT_EIS|OPT_FIS|OPT_BVT) #define PSW_1103 0000377 #define SOP_1104 (BUS_U) @@ -46,8 +47,8 @@ #define OPT_1120 0 #define PSW_1120 0000377 -#define SOP_1123 (BUS_Q|OPT_EIS|OPT_FPP|OPT_MMU) -#define OPT_1123 (OPT_FPP|OPT_CIS) +#define SOP_1123 (BUS_Q|OPT_EIS|OPT_FPP|OPT_MMU|OPT_BVT) +#define OPT_1123 (OPT_FPP|OPT_CIS|OPT_BVT) #define PSW_F 0170777 #define PAR_F 0177777 #define PDR_F 0077516 diff --git a/PDP11/pdp11_defs.h b/PDP11/pdp11_defs.h index d19f4ac5..fca5fa4d 100644 --- a/PDP11/pdp11_defs.h +++ b/PDP11/pdp11_defs.h @@ -1,6 +1,6 @@ /* pdp11_defs.h: PDP-11 simulator definitions - Copyright (c) 1993-2011, Robert M Supnik + Copyright (c) 1993-2015, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ The author gratefully acknowledges the help of Max Burnet, Megan Gentry, and John Wilson in resolving questions about the PDP-11 + 30-Dec-15 RMS Added NOBVT option 23-Oct-13 RMS Added cpu_set_boot prototype 02-Sep-13 RMS Added third Massbus adapter and RS drive 11-Dec-11 RMS Fixed priority of PIRQ vs IO; added INT_INTERNALn @@ -174,6 +175,7 @@ #define OPT_RH11 (1u << 6) /* RH11 */ #define OPT_PAR (1u << 7) /* parity */ #define OPT_UBM (1u << 8) /* UBM */ +#define OPT_BVT (1u << 9) /* BEVENT */ #define CPUT(x) ((cpu_type & (x)) != 0) #define CPUO(x) ((cpu_opt & (x)) != 0) diff --git a/PDP11/pdp11_stddev.c b/PDP11/pdp11_stddev.c index cc53b86d..d7ede448 100644 --- a/PDP11/pdp11_stddev.c +++ b/PDP11/pdp11_stddev.c @@ -1,6 +1,6 @@ /* pdp11_stddev.c: PDP-11 standard I/O devices simulator - Copyright (c) 1993-2012, Robert M Supnik + Copyright (c) 1993-2015, Robert M Supnik Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), @@ -26,6 +26,7 @@ tti,tto DL11 terminal input/output clk KW11L (and other) line frequency clock + 30-Dec-15 RMS Added NOBEVENT support 18-Apr-12 RMS Modified to use clock coscheduling 20-May-08 RMS Standardized clock delay at 1mips 18-Jun-07 RMS Added UNIT_IDLE flag to console input, clock @@ -473,7 +474,10 @@ t_stat clk_reset (DEVICE *dptr) sim_register_clock_unit (&clk_unit); /* declare clock unit */ if (CPUT (HAS_LTCR)) /* reg there? */ clk_fie = clk_fnxm = 0; -else clk_fie = clk_fnxm = 1; /* no, BEVENT */ +else { + clk_fnxm = 1; /* no LTCR, set nxm */ + clk_fie = CPUO (OPT_BVT); /* ie = 1 unless no BEVENT */ + } clk_tps = clk_default; /* set default tps */ clk_csr = CSR_DONE; /* set done */ CLR_INT (CLK);