mirror of
https://github.com/simh/simh.git
synced 2026-01-25 19:56:25 +00:00
Notes For V3.7-0
1. New Features 1.1 3.7-0 1.1.1 SCP - Added SET THROTTLE and SET NOTHROTTLE commands to regulate simulator execution rate and host resource utilization. - Added idle support (based on work by Mark Pizzolato). - Added -e to control error processing in nested DO commands (from Dave Bryan). 1.1.2 HP2100 - Added Double Integer instructions, 1000-F CPU, and Floating Point Processor (from Dave Bryan). - Added 2114 and 2115 CPUs, 12607B and 12578A DMA controllers, and 21xx binary loader protection (from Dave Bryan). 1.1.3 Interdata - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state. 1.1.4 PDP-11 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (WAIT instruction executed). - Added TA11/TU60 cassette support. 1.1.5 PDP-8 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (keyboard poll loop or jump-to-self). - Added TA8E/TU60 cassette support. 1.1.6 PDP-1 - Added support for 16-channel sequence break system. - Added support for PDP-1D extended features and timesharing clock. - Added support for Type 630 data communications subsystem. 1.1.6 PDP-4/7/9/15 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (keyboard poll loop or jump-to-self). 1.1.7 VAX, VAX780 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (more than 200 cycles at IPL's 0, 1, or 3 in kernel mode). 1.1.8 PDP-10 - Added SET IDLE and SET NOIDLE commands to idle the simulator in wait state (operating system dependent). - Added CD20 (CD11) support. 2. Bugs Fixed Please see the revision history on http://simh.trailing-edge.com or in the source module sim_rev.h.
This commit is contained in:
committed by
Mark Pizzolato
parent
15919a2dd7
commit
53d02f7fa7
@@ -25,6 +25,8 @@
|
||||
|
||||
cpu Interdata 16b CPU
|
||||
|
||||
27-Oct-06 RMS Added idle support
|
||||
Removed separate PASLA clock
|
||||
06-Feb-06 RMS Fixed bug in DH (found by Mark Hittinger)
|
||||
22-Sep-05 RMS Fixed declarations (from Sterling Garwood)
|
||||
25-Aug-05 RMS Fixed DH integer overflow cases
|
||||
@@ -219,7 +221,8 @@ uint32 (*dev_tab[DEVNO])(uint32 dev, uint32 op, uint32 datout) = { NULL };
|
||||
extern int32 sim_interval;
|
||||
extern int32 sim_int_char;
|
||||
extern uint32 sim_brk_types, sim_brk_dflt, sim_brk_summ; /* breakpoint info */
|
||||
extern UNIT pic_unit, lfc_unit, pas_unit; /* timers */
|
||||
extern t_bool sim_idle_enab;
|
||||
extern UNIT pic_unit, lfc_unit; /* timers */
|
||||
|
||||
uint32 ReadB (uint32 loc);
|
||||
uint32 ReadH (uint32 loc);
|
||||
@@ -445,7 +448,7 @@ static uint32 s1_rel_const[16] = { /* addr 8000-FFFF */
|
||||
DIB cpu_dib = { d_DS, -1, v_DS, NULL, &display, NULL };
|
||||
|
||||
UNIT cpu_unit = {
|
||||
UDATA (NULL, UNIT_FIX + UNIT_BINK + UNIT_716, MAXMEMSIZE16)
|
||||
UDATA (NULL, UNIT_FIX | UNIT_BINK | UNIT_716, MAXMEMSIZE16)
|
||||
};
|
||||
|
||||
REG cpu_reg[] = {
|
||||
@@ -513,6 +516,13 @@ REG cpu_reg[] = {
|
||||
};
|
||||
|
||||
MTAB cpu_mod[] = {
|
||||
{ UNIT_TYPE, 0, "I3", "I3", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_ID4, "I4", "I4", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_716, "7/16", "716", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_816, "8/16", "816", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_816E, "8/16E", "816E", &cpu_set_model },
|
||||
{ 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, 8192, NULL, "8K", &cpu_set_size },
|
||||
{ UNIT_MSIZE, 16384, NULL, "16K", &cpu_set_size },
|
||||
{ UNIT_MSIZE, 24576, NULL, "24K", &cpu_set_size },
|
||||
@@ -521,11 +531,6 @@ MTAB cpu_mod[] = {
|
||||
{ UNIT_MSIZE, 65536, NULL, "64K", &cpu_set_size },
|
||||
{ UNIT_MSIZE, 131072, NULL, "128K", &cpu_set_size },
|
||||
{ UNIT_MSIZE, 262144, NULL, "256K", &cpu_set_size },
|
||||
{ UNIT_TYPE, 0, "I3", "I3", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_ID4, "I4", "I4", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_716, "7/16", "716", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_816, "8/16", "816", &cpu_set_model },
|
||||
{ UNIT_TYPE, UNIT_816E, "8/16E", "816E", &cpu_set_model },
|
||||
{ MTAB_XTD|MTAB_VDV|MTAB_NMO, 0, NULL, "CONSINT",
|
||||
&cpu_set_consint, NULL, NULL },
|
||||
{ MTAB_XTD|MTAB_VDV|MTAB_NMO|MTAB_SHP, 0, "HISTORY", "HISTORY",
|
||||
@@ -584,7 +589,6 @@ int_eval (); /* eval interrupts */
|
||||
cc = newPSW (PSW & psw_mask); /* split PSW, eval wait */
|
||||
sim_rtcn_init (lfc_unit.wait, TMR_LFC); /* init clock */
|
||||
sim_rtcn_init (pic_unit.wait, TMR_PIC); /* init timer */
|
||||
sim_rtcn_init (pas_unit.wait, TMR_PAS); /* init pas */
|
||||
reason = 0;
|
||||
|
||||
/* Process events */
|
||||
@@ -641,10 +645,9 @@ while (reason == 0) { /* loop until halted */
|
||||
}
|
||||
|
||||
if (PSW & PSW_WAIT) { /* wait state? */
|
||||
t = sim_qcount (); /* events in queue */
|
||||
if ((t == 0) || ((t == 1) && stop_wait)) /* empty, or kbd only? */
|
||||
reason = STOP_WAIT; /* then stop */
|
||||
else sim_interval = 0; /* force check */
|
||||
if (sim_idle_enab) /* idling enabled? */
|
||||
sim_idle (TMR_LFC, TRUE);
|
||||
else sim_interval = sim_interval - 1; /* no, count cycle */
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user