mirror of
https://github.com/open-simh/simh.git
synced 2026-04-29 13:22:34 +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
@@ -1,6 +1,6 @@
|
||||
/* vax_syscm.c: PDP-11 compatibility mode symbolic decode and parse
|
||||
|
||||
Copyright (c) 1993-2005, Robert M Supnik
|
||||
Copyright (c) 1993-2006, 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,7 +23,8 @@
|
||||
used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from Robert M Supnik.
|
||||
|
||||
27-Sep-05 RMS Fixed warnings compiling with 64b addresses
|
||||
12-Nov-06 RMS Fixed operand order in EIS instructions (found by W.F.J. Mueller)
|
||||
27-Sep-05 RMS Fixed warnings compiling with 64b addresses
|
||||
15-Sep-04 RMS Cloned from pdp11_sys.c
|
||||
*/
|
||||
|
||||
@@ -49,6 +50,7 @@ extern UNIT cpu_unit;
|
||||
#define I_V_DOP 9 /* double operand */
|
||||
#define I_V_CCC 10 /* CC clear */
|
||||
#define I_V_CCS 11 /* CC set */
|
||||
#define I_V_SOPR 12 /* operand, reg */
|
||||
#define I_NPN (I_V_NPN << I_V_CL)
|
||||
#define I_REG (I_V_REG << I_V_CL)
|
||||
#define I_SOP (I_V_SOP << I_V_CL)
|
||||
@@ -61,11 +63,13 @@ extern UNIT cpu_unit;
|
||||
#define I_DOP (I_V_DOP << I_V_CL)
|
||||
#define I_CCC (I_V_CCC << I_V_CL)
|
||||
#define I_CCS (I_V_CCS << I_V_CL)
|
||||
#define I_SOPR (I_V_SOPR << I_V_CL)
|
||||
|
||||
static const int32 masks[] = {
|
||||
0177777, 0177770, 0177700, 0177770,
|
||||
0177000, 0177400, 0177700, 0177000,
|
||||
0177400, 0170000, 0177777, 0177777
|
||||
0177400, 0170000, 0177777, 0177777,
|
||||
0177000
|
||||
};
|
||||
|
||||
static const char *opcode[] = {
|
||||
@@ -145,7 +149,7 @@ static const int32 opc_val[] = {
|
||||
0007000+I_SOP, 0007200+I_SOP, 0007300+I_SOP,
|
||||
0010000+I_DOP, 0020000+I_DOP, 0030000+I_DOP, 0040000+I_DOP,
|
||||
0050000+I_DOP, 0060000+I_DOP,
|
||||
0070000+I_RSOP, 0071000+I_RSOP, 0072000+I_RSOP, 0073000+I_RSOP,
|
||||
0070000+I_SOPR, 0071000+I_SOPR, 0072000+I_SOPR, 0073000+I_SOPR,
|
||||
0074000+I_RSOP,
|
||||
0075000+I_REG, 0075010+I_REG, 0075020+I_REG, 0075030+I_REG,
|
||||
0076020+I_REG,
|
||||
@@ -335,6 +339,12 @@ for (i = 0; opc_val[i] >= 0; i++) { /* loop thru ops */
|
||||
wd1 = fprint_spec (of, addr, dstm, val[1]);
|
||||
break;
|
||||
|
||||
case I_V_SOPR: /* sopr */
|
||||
fprintf (of, "%s ", opcode[i]);
|
||||
wd1 = fprint_spec (of, addr, dstm, val[1]);
|
||||
fprintf (of, ",%s", rname[srcr]);
|
||||
break;
|
||||
|
||||
case I_V_DOP: /* dop */
|
||||
fprintf (of, "%s ", opcode[i]);
|
||||
wd1 = fprint_spec (of, addr, srcm, val[1]);
|
||||
@@ -609,6 +619,16 @@ switch (j) { /* case on class */
|
||||
val[0] = val[0] | spec;
|
||||
break;
|
||||
|
||||
case I_V_SOPR: /* dop, reg */
|
||||
cptr = get_glyph (cptr, gbuf, ','); /* get glyph */
|
||||
if ((n1 = get_spec (gbuf, ad32, 0, &spec, &val[1])) > 0)
|
||||
return SCPE_ARG;
|
||||
val[0] = val[0] | spec;
|
||||
cptr = get_glyph (cptr, gbuf, 0); /* get glyph */
|
||||
if ((reg = get_reg (gbuf, 0)) < 0) return SCPE_ARG;
|
||||
val[0] = val[0] | (reg << 6);
|
||||
break;
|
||||
|
||||
case I_V_DOP: /* double op */
|
||||
cptr = get_glyph (cptr, gbuf, ','); /* get glyph */
|
||||
if ((n1 = get_spec (gbuf, ad32, 0, &spec, &val[1])) > 0)
|
||||
|
||||
Reference in New Issue
Block a user