mirror of
https://github.com/simh/simh.git
synced 2026-01-26 04:01:38 +00:00
Notes For V3.2-1
RESTRICTION: The PDP-15 FPP is only partially debugged. Do NOT enable this feature for normal operations. 1. New Features in 3.2-1 1.1 SCP and libraries - Added SET CONSOLE subhierarchy. - Added SHOW CONSOLE subhierarchy. - Added limited keyboard mapping capability. 1.2 HP2100 (new features from Dave Bryan) - Added instruction printout to HALT message. - Added M and T internal registers. - Added N, S, and U breakpoints. 1.3 PDP-11 and VAX - Added DHQ11 support (from John Dundas) 2. Bugs Fixed in 3.2-1 2.1 HP2100 (most fixes from Dave Bryan) - SBT increments B after store. - DMS console map must check dms_enb. - SFS x,C and SFC x,C work. - MP violation clears automatically on interrupt. - SFS/SFC 5 is not gated by protection enabled. - DMS enable does not disable mem prot checks. - DMS status inconsistent at simulator halt. - Examine/deposit are checking wrong addresses. - Physical addresses are 20b not 15b. - Revised DMS to use memory rather than internal format. - Revised IBL facility to conform to microcode. - Added DMA EDT I/O pseudo-opcode. - Separated DMA SRQ (service request) from FLG. - Revised peripherals to make SFS x,C and SFC x,C work. - Revised boot ROMs to use IBL facility. - Revised IBL treatment of SR to preserve SR<5:3>. - Fixed LPS, LPT timing. - Fixed DP boot interpretation of SR<0>. - Revised DR boot code to use IBL algorithm. - Fixed TTY input behavior during typeout for RTE-IV. - Suppressed nulls on TTY output for RTE-IV. - Added SFS x,C and SFC x,C to print/parse routines. - Fixed spurious timing error in magtape reads. 2.2 All DEC console devices - Removed SET TTI CTRL-C option. 2.3 PDP-11/VAX peripherals - Fixed bug in TQ reporting write protect status (reported by Lyle Bickley). - Fixed TK70 model number and media ID (found by Robert Schaffrath). - Fixed bug in autoconfigure (found by John Dundas). 2.4 VAX - Fixed bug in DIVBx and DIVWx (reported by Peter Trimmel).
This commit is contained in:
committed by
Mark Pizzolato
parent
26aa6de663
commit
e2ba672610
71
scp.c
71
scp.c
@@ -23,6 +23,7 @@
|
||||
be used in advertising or otherwise to promote the sale, use or other dealings
|
||||
in this Software without prior written authorization from Robert M Supnik.
|
||||
|
||||
28-May-04 RMS Added SET/SHOW CONSOLE
|
||||
14-Feb-04 RMS Updated SAVE/RESTORE (V3.2)
|
||||
RMS Added debug print routines (from Dave Hittner)
|
||||
RMS Added sim_vm_parse_addr and sim_vm_fprint_addr
|
||||
@@ -247,8 +248,6 @@ t_stat spawn_cmd (int32 flag, char *ptr);
|
||||
|
||||
/* Set and show command processors */
|
||||
|
||||
t_stat set_logon (int32 flag, char *cptr);
|
||||
t_stat set_logoff (int32 flag, char *cptr);
|
||||
t_stat set_debon (int32 flag, char *cptr);
|
||||
t_stat set_deboff (int32 flag, char *cptr);
|
||||
t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
@@ -261,7 +260,6 @@ t_stat show_queue (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_time (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_mod_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_log_names (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_dev_radix (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
t_stat show_dev_debug (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr);
|
||||
@@ -305,10 +303,7 @@ void fprint_help (FILE *st);
|
||||
void fprint_stopped (FILE *st, t_stat r);
|
||||
void fprint_capac (FILE *st, DEVICE *dptr, UNIT *uptr);
|
||||
char *read_line (char *ptr, int32 size, FILE *stream);
|
||||
CTAB *find_ctab (CTAB *tab, char *gbuf);
|
||||
C1TAB *find_c1tab (C1TAB *tab, char *gbuf);
|
||||
CTAB *find_cmd (char *gbuf);
|
||||
SHTAB *find_shtab (SHTAB *tab, char *gbuf);
|
||||
DEVICE *find_dev (char *ptr);
|
||||
DEVICE *find_unit (char *ptr, UNIT **uptr);
|
||||
REG *find_reg_glob (char *ptr, char **optr, DEVICE **gdptr);
|
||||
@@ -492,10 +487,7 @@ static CTAB cmd_table[] = {
|
||||
{ "QUIT", &exit_cmd, 0, NULL },
|
||||
{ "BYE", &exit_cmd, 0, NULL },
|
||||
{ "SET", &set_cmd, 0,
|
||||
"set log <file> enable logging to file\n"
|
||||
"set nolog disable logging\n"
|
||||
"set telnet <port> enable Telnet port for console\n"
|
||||
"set notelnet disable Telnet for console\n"
|
||||
"set console arg{,arg...} set console options\n"
|
||||
"set debug <file> enable debug output to file\n"
|
||||
"set nodebug disable debug output\n"
|
||||
"set <dev> OCT|DEC|HEX set device display radix\n"
|
||||
@@ -510,14 +502,13 @@ static CTAB cmd_table[] = {
|
||||
},
|
||||
{ "SHOW", &show_cmd, 0,
|
||||
"sh{ow} br{eak} <list> show breakpoints on address list\n"
|
||||
"sh{ow} c{onfiguration} show configuration\n"
|
||||
"sh{ow} con{figuration} show configuration\n"
|
||||
"sh{ow} cons{ole} {arg} show console options\n"
|
||||
"sh{ow} deb{ug} show debugging output\n"
|
||||
"sh{ow} dev{ices} show devices\n"
|
||||
"sh{ow} l{og} show log\n"
|
||||
"sh{ow} m{odifiers} show modifiers\n"
|
||||
"sh{ow} n{ames} show logical names\n"
|
||||
"sh{ow} q{ueue} show event queue\n"
|
||||
"sh{ow} te{lnet} show console Telnet status\n"
|
||||
"sh{ow} ti{me} show simulated time\n"
|
||||
"sh{ow} ve{rsion} show simulator version\n"
|
||||
"sh{ow} <dev> RADIX show device display radix\n"
|
||||
@@ -634,8 +625,8 @@ while (stat != SCPE_EXIT) { /* in case exit */
|
||||
} /* end while */
|
||||
|
||||
detach_all (0, TRUE); /* close files */
|
||||
set_logoff (0, NULL); /* close log */
|
||||
set_deboff (0, NULL); /* close debug */
|
||||
sim_set_logoff (0, NULL); /* close log */
|
||||
sim_set_notelnet (0, NULL); /* close Telnet */
|
||||
sim_ttclose (); /* close console */
|
||||
return 0;
|
||||
@@ -802,10 +793,11 @@ CTAB *gcmdp;
|
||||
C1TAB *ctbr, *glbr;
|
||||
|
||||
static CTAB set_glob_tab[] = {
|
||||
{ "TELNET", &sim_set_telnet, 0 },
|
||||
{ "NOTELNET", &sim_set_notelnet, 0 },
|
||||
{ "LOG", &set_logon, 0 },
|
||||
{ "NOLOG", &set_logoff, 0 },
|
||||
{ "CONSOLE", &sim_set_console, 0 },
|
||||
{ "TELNET", &sim_set_telnet, 0 }, /* deprecated */
|
||||
{ "NOTELNET", &sim_set_notelnet, 0 }, /* deprecated */
|
||||
{ "LOG", &sim_set_logon, 0 }, /* deprecated */
|
||||
{ "NOLOG", &sim_set_logoff, 0 }, /* deprecated */
|
||||
{ "BREAK", &brk_cmd, SSH_ST },
|
||||
{ "DEBUG", &set_debon, 0 },
|
||||
{ "NODEBUG", &set_deboff, 0 },
|
||||
@@ -905,36 +897,6 @@ for (; tab->name != NULL; tab++) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Log on routine */
|
||||
|
||||
t_stat set_logon (int32 flag, char *cptr)
|
||||
{
|
||||
char gbuf[CBUFSIZE];
|
||||
|
||||
if (*cptr == 0) return SCPE_2FARG; /* need arg */
|
||||
cptr = get_glyph_nc (cptr, gbuf, 0); /* get file name */
|
||||
if (*cptr != 0) return SCPE_2MARG; /* now eol? */
|
||||
set_logoff (0, NULL); /* close cur log */
|
||||
sim_log = sim_fopen (gbuf, "a"); /* open log */
|
||||
if (sim_log == NULL) return SCPE_OPENERR; /* error? */
|
||||
if (!sim_quiet) printf ("Logging to file \"%s\"\n", gbuf);
|
||||
fprintf (sim_log, "Logging to file \"%s\"\n", gbuf); /* start of log */
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
/* Log off routine */
|
||||
|
||||
t_stat set_logoff (int32 flag, char *cptr)
|
||||
{
|
||||
if (cptr && (*cptr != 0)) return SCPE_2MARG; /* now eol? */
|
||||
if (sim_log == NULL) return SCPE_OK; /* no log? */
|
||||
if (!sim_quiet) printf ("Log file closed\n");
|
||||
fprintf (sim_log, "Log file closed\n"); /* close log */
|
||||
fclose (sim_log);
|
||||
sim_log = NULL;
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
/* Set device data radix routine */
|
||||
|
||||
t_stat set_dev_radix (DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
|
||||
@@ -1064,8 +1026,9 @@ static SHTAB show_glob_tab[] = {
|
||||
{ "MODIFIERS", &show_mod_names, 0 },
|
||||
{ "NAMES", &show_log_names, 0 },
|
||||
{ "VERSION", &show_version, 0 },
|
||||
{ "LOG", &show_log, 0 },
|
||||
{ "TELNET", &sim_show_telnet, 0 },
|
||||
{ "CONSOLE", &sim_show_console, 0 },
|
||||
{ "LOG", &sim_show_log, 0 }, /* deprecated */
|
||||
{ "TELNET", &sim_show_telnet, 0 }, /* deprecated */
|
||||
{ "BREAK", &show_break, 0 },
|
||||
{ "DEBUG", &show_debug, 0 },
|
||||
{ NULL, NULL, 0 } };
|
||||
@@ -1283,14 +1246,6 @@ fprintf (st, "Time: %.0f\n", sim_time);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
t_stat show_log (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
|
||||
{
|
||||
if (cptr && (*cptr != 0)) return SCPE_2MARG;
|
||||
if (sim_log) fputs ("Logging enabled\n", st);
|
||||
else fputs ("Logging disabled\n", st);
|
||||
return SCPE_OK;
|
||||
}
|
||||
|
||||
t_stat show_break (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr)
|
||||
{
|
||||
t_stat r;
|
||||
|
||||
Reference in New Issue
Block a user