From eaae19463c875f104280cfdfb984997e63f3db22 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Sat, 1 Feb 2014 07:04:44 -0800 Subject: [PATCH] SCP: Initial merge of old style single line help with hierarchical help --- VAX/vax610_sysdev.c | 2 +- VAX/vax630_sysdev.c | 2 +- VAX/vax730_sys.c | 2 +- VAX/vax750_cmi.c | 2 +- VAX/vax780_sbi.c | 2 +- VAX/vax860_abus.c | 2 +- VAX/vax_sysdev.c | 2 +- scp.c | 1305 ++++++++++++++++++++++++++++++++----------- scp.h | 14 +- sim_defs.h | 3 +- 10 files changed, 983 insertions(+), 353 deletions(-) diff --git a/VAX/vax610_sysdev.c b/VAX/vax610_sysdev.c index 46164a58..2036f366 100644 --- a/VAX/vax610_sysdev.c +++ b/VAX/vax610_sysdev.c @@ -124,7 +124,7 @@ DEVICE sysd_dev = { CTAB vax610_cmd[] = { { "BOOT", &vax610_boot, RU_BOOT, "bo{ot} {/R5:flg} boot device\n" - " type HELP CPU to see bootable devices\n", &run_cmd_message }, + " type HELP CPU to see bootable devices\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/VAX/vax630_sysdev.c b/VAX/vax630_sysdev.c index 9088e559..bf285abe 100644 --- a/VAX/vax630_sysdev.c +++ b/VAX/vax630_sysdev.c @@ -61,7 +61,7 @@ int32 sys_model = 0; /* MicroVAX or VAXstatio CTAB vax630_cmd[] = { { "BOOT", &vax630_boot, RU_BOOT, - "bo{ot} boot simulator\n", &run_cmd_message }, + "bo{ot} boot simulator\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/VAX/vax730_sys.c b/VAX/vax730_sys.c index f1891b31..6454c477 100644 --- a/VAX/vax730_sys.c +++ b/VAX/vax730_sys.c @@ -141,7 +141,7 @@ DEVICE sysb_dev = { CTAB vax730_cmd[] = { { "BOOT", &vax730_boot, RU_BOOT, "bo{ot} {/R5:flg} boot device\n" - " type HELP CPU to see bootable devices\n", &run_cmd_message }, + " type HELP CPU to see bootable devices\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/VAX/vax750_cmi.c b/VAX/vax750_cmi.c index 3051a2af..91e460bd 100644 --- a/VAX/vax750_cmi.c +++ b/VAX/vax750_cmi.c @@ -168,7 +168,7 @@ DEVICE cmi_dev = { CTAB vax750_cmd[] = { { "BOOT", &vax750_boot, RU_BOOT, "bo{ot} {/R5:flg} boot device\n" - " type HELP CPU to see bootable devices\n", &run_cmd_message }, + " type HELP CPU to see bootable devices\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/VAX/vax780_sbi.c b/VAX/vax780_sbi.c index 1f86f824..ac554d5b 100644 --- a/VAX/vax780_sbi.c +++ b/VAX/vax780_sbi.c @@ -206,7 +206,7 @@ DEVICE sbi_dev = { CTAB vax780_cmd[] = { { "BOOT", &vax780_boot, RU_BOOT, "bo{ot} {/R5:flg} boot device\n" - " type HELP CPU to see bootable devices\n", &run_cmd_message }, + " type HELP CPU to see bootable devices\n", NULL, &run_cmd_message }, { "FLOAD", &vax780_fload, 0, "fl{oad} {} load file from console floppy\n" }, { NULL } diff --git a/VAX/vax860_abus.c b/VAX/vax860_abus.c index 0f55fbf4..1f720ef0 100644 --- a/VAX/vax860_abus.c +++ b/VAX/vax860_abus.c @@ -303,7 +303,7 @@ return SCPE_OK; CTAB vax860_cmd[] = { { "BOOT", &vax860_boot, RU_BOOT, "bo{ot} {/R5:flg} boot device\n" - " type HELP CPU to see bootable devices\n", &run_cmd_message }, + " type HELP CPU to see bootable devices\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/VAX/vax_sysdev.c b/VAX/vax_sysdev.c index fc685aa0..0894bedb 100644 --- a/VAX/vax_sysdev.c +++ b/VAX/vax_sysdev.c @@ -72,7 +72,7 @@ int32 sys_model = 0; CTAB vax_cmd[] = { { "BOOT", &vax_boot, RU_BOOT, - "bo{ot} boot simulator\n", &run_cmd_message }, + "bo{ot} boot simulator\n", NULL, &run_cmd_message }, { NULL } }; diff --git a/scp.c b/scp.c index e6857b04..5c1f2327 100644 --- a/scp.c +++ b/scp.c @@ -397,7 +397,7 @@ BRKTAB *sim_brk_new (t_addr loc); SCHTAB *get_search (char *cptr, int32 radix, SCHTAB *schptr); int32 test_search (t_value val, SCHTAB *schptr); -static char *get_glyph_gen (char *iptr, char *optr, char mchar, t_bool uc, t_bool quote); +static const char *get_glyph_gen (const char *iptr, char *optr, char mchar, t_bool uc, t_bool quote); int32 get_switches (char *cptr); char *get_sim_sw (char *cptr); t_stat get_aval (t_addr addr, DEVICE *dptr, UNIT *uptr); @@ -441,10 +441,12 @@ t_stat set_verify (int32 flag, char *cptr); t_stat set_message (int32 flag, char *cptr); t_stat set_quiet (int32 flag, char *cptr); t_stat set_asynch (int32 flag, char *cptr); +t_stat sim_show_asynch (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr); t_stat do_cmd_label (int32 flag, char *cptr, char *label); void int_handler (int signal); t_stat set_prompt (int32 flag, char *cptr); - +t_stat sim_set_asynch (int32 flag, char *cptr); +t_stat sim_set_environment (int32 flag, char *cptr); /* Global data */ DEVICE *sim_dflt_dev = NULL; @@ -598,201 +600,835 @@ const t_value width_mask[] = { 0, #endif }; +static const char simh_help[] = + /***************** 80 character line width template *************************/ + "1Commands\n" +#define HLP_RESET "*Commands Resetting Devices" + /***************** 80 character line width template *************************/ + "2Resetting Devices\n" + " The RESET command (abbreviation RE) resets a device or the entire simulator\n" + " to a predefined condition. If switch -p is specified, the device is reset\n" + " to its power-up state:\n\n" + "++RESET reset all devices\n" + "++RESET -p powerup all devices\n" + "++RESET ALL reset all devices\n" + "++RESET reset specified device\n\n" + " Typically, RESET stops any in-progress I/O operation, clears any interrupt\n" + " request, and returns the device to a quiescent state. It does not clear\n" + " main memory or affect I/O connections.\n" +#define HLP_EXAMINE "*Commands Examining_and_Changing_State" +#define HLP_IEXAMINE "*Commands Examining_and_Changing_State" +#define HLP_DEPOSIT "*Commands Examining_and_Changing_State" +#define HLP_IDEPOSIT "*Commands Examining_and_Changing_State" + /***************** 80 character line width template *************************/ + "2Examining and Changing State\n" + " There are four commands to examine and change state:\n\n" + "++EXAMINE (abbreviated E) examines state\n" + "++DEPOSIT (abbreviated D) changes state\n" + "++IEXAMINE (interactive examine, abbreviated IE) examines state and allows\n" + "++++the user to interactively change it\n" + "++IDEPOSIT (interactive deposit, abbreviated ID) allows the user to\n" + "++++interactively change state\n\n" + " All four commands take the form\n\n" + "++command {modifiers} \n\n" + " Deposit must also include a deposit value at the end of the command.\n\n" + " There are four kinds of modifiers: switches, device/unit name, search\n" + " specifier, and for EXAMINE, output file. Switches have been described\n" + " previously. A device/unit name identifies the device and unit whose\n" + " address space is to be examined or modified. If no device is specified,\n" + " the CPU (main memory)is selected; if a device but no unit is specified,\n" + " unit 0 of the device is selected.\n\n" + " The search specifier provides criteria for testing addresses or registers\n" + " to see if they should be processed. A specifier consists of a logical\n" + " operator, a relational operator, or both, optionally separated by spaces.\n\n" + "++{ } \n\n" + /***************** 80 character line width template *************************/ + " where the logical operator is & (and), | (or), or ^ (exclusive or), and the\n" + " relational operator is = or == (equal), ! or != (not equal), >= (greater\n" + " than or equal), > (greater than), <= (less than or equal), or < (less than).\n" + " If a logical operator is specified without a relational operator, it is\n" + " ignored. If a relational operator is specified without a logical operator,\n" + " no logical operation is performed. All comparisons are unsigned.\n\n" + " The output file modifier redirects command output to a file instead of the\n" + " console. An output file modifier consists of @ followed by a valid file\n" + " name.\n\n" + " Modifiers may be specified in any order. If multiple modifiers of the\n" + " same type are specified, later modifiers override earlier modifiers. Note\n" + " that if the device/unit name comes after the search specifier, the search\n" + " values will interpreted in the radix of the CPU, rather than of the\n" + " device/unit.\n\n" + " The \"object list\" consists of one or more of the following, separated by\n" + " commas:\n\n" + /***************** 80 character line width template *************************/ + "++register the specified register\n" + "++register[sub1-sub2] the specified register array locations,\n" + "++ starting at location sub1 up to and\n" + "++ including location sub2\n" + "++register[sub1/length] the specified register array locations,\n" + "++ starting at location sub1 up to but\n" + "++ not including sub1+length\n" + "++register[ALL] all locations in the specified register\n" + "++ array\n" + "++register1-register2 all the registers starting at register1\n" + "++ up to and including register2\n" + "++address the specified location\n" + "++address1-address2 all locations starting at address1 up to\n" + "++ and including address2\n" + "++address/length all location starting at address up to\n" + "++ but not including address+length\n" + "++STATE all registers in the device\n" + "++ALL all locations in the unit\n" + "3Switches\n" + " Switches can be used to control the format of display information:\n\n" + /***************** 80 character line width template *************************/ + "++-a display as ASCII\n" + "++-c display as character string\n" + "++-m display as instruction mnemonics\n" + "++-o display as octal\n" + "++-d display as decimal\n" + "++-h display as hexadecimal\n\n" + " The simulators typically accept symbolic input (see documentation with each\n" + " simulator).\n\n" + "3Examples\n" + " Examples:\n\n" + "++ex 1000-1100 examine 1000 to 1100\n" + "++de PC 1040 set PC to 1040\n" + "++ie 40-50 interactively examine 40:50\n" + "++ie >1000 40-50 interactively examine the subset\n" + "++ of locations 40:50 that are >1000\n" + "++ex rx0 50060 examine 50060, RX unit 0\n" + "++ex rx sbuf[3-6] examine SBUF[3] to SBUF[6] in RX\n" + "++de all 0 set main memory to 0\n" + "++de &77>0 0 set all addresses whose low order\n" + "++ bits are non-zero to 0\n" + "++ex -m @memdump.txt 0-7777 dump memory to file\n\n" + " Note: to terminate an interactive command, simply type a bad value\n" + " (eg, XYZ) when input is requested.\n" +#define HLP_EVALUATE "*Commands Evaluating_Instructions" + /***************** 80 character line width template *************************/ + "2Evaluating Instructions\n" + " The EVAL command evaluates a symbolic expression and returns the equivalent\n" + " numeric value. This is useful for obtaining numeric arguments for a search\n" + " command:\n\n" + "++EVAL \n" + /***************** 80 character line width template *************************/ + "2Loading and Saving Programs\n" +#define HLP_LOAD "*Commands Loading_and_Saving_Programs LOAD" + "3LOAD\n" + " The LOAD command (abbreviation LO) loads a file in binary loader format:\n\n" + "++LOAD {implementation options}\n\n" + " The types of formats supported are implementation specific. Options (such\n" + " as load within range) are also implementation specific.\n\n" +#define HLP_DUMP "*Commands Loading_and_Saving_Programs DUMP" + "3DUMP\n" + " The DUMP command (abbreviation DU) dumps memory in binary loader format:\n\n" + "++DUMP {implementation options}\n\n" + " The types of formats supported are implementation specific. Options (such\n" + " as dump within range) are also implementation specific.\n" + /***************** 80 character line width template *************************/ + "2Saving and Restoring State\n" +#define HLP_SAVE "*Commands Saving_and_Restoring_State SAVE" + "3SAVE\n" + " The SAVE command (abbreviation SA) save the complete state of the simulator\n" + " to a file. This includes the contents of main memory and all registers,\n" + " and the I/O connections of devices:\n\n" + "++SAVE \n\n" +#define HLP_RESTORE "*Commands Saving_and_Restoring_State RESTORE" + "3RESTORE\n" + " The RESTORE command (abbreviation REST, alternately GET) restores a\n" + " previously saved simulator state:\n\n" + "++RESTORE \n" + "3Notes:\n" + " 1) SAVE file format compresses zeroes to minimize file size.\n" + " 2) The simulator can't restore active incoming telnet sessions to\n" + " multiplexer devices, but the listening ports will be restored across a\n" + " save/restore.\n" + /***************** 80 character line width template *************************/ + "2Running A Simulated Program\n" +#define HLP_RUN "*Commands Running_A_Simulated_Program RUN" + "3RUN\n" + " The RUN command (abbreviated RU) resets all devices, deposits its argument\n" + " (if given) in the PC, and starts execution. If no argument is given,\n" + " execution starts at the current PC.\n" +#define HLP_GO "*Commands Running_A_Simulated_Program GO" + "3GO\n" + " The GO command does not reset devices, deposits its argument (if given)\n" + " in the PC, and starts execution. If no argument is given, execution\n" + " starts at the current PC.\n" +#define HLP_CONTINUE "*Commands Running_A_Simulated_Program CONTINUE" + "3CONTINUE\n" + " The CONT command (abbreviated CO) does not reset devices and resumes\n" + " execution at the current PC.\n" +#define HLP_STEP "*Commands Running_A_Simulated_Program STEP" + "3STEP\n" + " The STEP command (abbreviated S) resumes execution at the current PC for\n" + " the number of instructions given by its argument. If no argument is\n" + " supplied, one instruction is executed.\n" +#define HLP_BOOT "*Commands Running_A_Simulated_Program BOOT" + "3BOOT\n" + " The BOOT command (abbreviated BO) resets all devices and bootstraps the\n" + " device and unit given by its argument. If no unit is supplied, unit 0 is\n" + " bootstrapped. The specified unit must be attached.\n" + /***************** 80 character line width template *************************/ + "2Stopping The Simulator\n" + " Programs run until the simulator detects an error or stop condition, or\n" + " until the user forces a stop condition.\n" + "3Simulator Detected Stop Conditions\n" + " These simulator-detected conditions stop simulation:\n\n" + "++- HALT instruction. If a HALT instruction is decoded, simulation stops.\n" + "++- Breakpoint. The simulator may support breakpoints (see below).\n" + "++- I/O error. If an I/O error occurs during simulation of an I/O\n" + "+++operation, and the device stop-on-I/O-error flag is set, simulation\n" + "+++usually stops.\n\n" + "++- Processor condition. Certain processor conditions can stop\n" + "+++simulation; these are described with the individual simulators.\n" + "3User Specified Stop Conditions\n" + " Typing the interrupt character stops simulation. The interrupt character\n" + " is defined by the WRU (where are you) console option and is initially set\n" + " to 005 (^E).\n\n" + /***************** 80 character line width template *************************/ +#define HLP_BREAK "*Commands Stopping_The_Simulator User_Specified_Stop_Conditions BREAK" +#define HLP_NOBREAK "*Commands Stopping_The_Simulator User_Specified_Stop_Conditions BREAK" + "4Breakpoints\n" + " A simulator may offer breakpoint capability. A simulator may define\n" + " breakpoints of different types, identified by letter (for example, E for\n" + " execution, R for read, W for write, etc). At the moment, most simulators\n" + " support only E (execution) breakpoints.\n\n" + " Associated with a breakpoint are a count and, optionally, one or more\n" + " actions. Each time the breakpoint is taken, the associated count is\n" + " decremented. If the count is less than or equal to 0, the breakpoint\n" + " occurs; otherwise, it is deferred. When the breakpoint occurs, the\n" + " optional actions are automatically executed.\n\n" + " A breakpoint is set by the BREAK command:\n" + "++BREAK {-types} {{[count]},{addr range...}}{;action;action...}\n\n" + " If no type is specified, the simulator-specific default breakpoint type\n" + " (usually E for execution) is used. If no address range is specified, the\n" + " current PC is used. As with EXAMINE and DEPOSIT, an address range may be a\n" + " single address, a range of addresses low-high, or a relative range of\n" + " address/length.\n" + /***************** 80 character line width template *************************/ + "5Examples:\n" + "++BREAK set E break at current PC\n" + "++BREAK -e 200 set E break at 200\n" + "++BREAK 2000/2[2] set E breaks at 2000,2001 with count = 2\n" + "++BREAK 100;EX AC;D MQ 0 set E break at 100 with actions EX AC and\n" + "++ D MQ 0\n" + "++BREAK 100; delete action on break at 100\n\n" + " Currently set breakpoints can be displayed with the SHOW BREAK command:\n\n" + "++SHOW {-types} BREAK {ALL|{,...}}\n\n" + " Locations with breakpoints of the specified type are displayed.\n\n" + " Finally, breakpoints can be cleared by the NOBREAK command.\n" + /***************** 80 character line width template *************************/ + "2Connecting and Disconnecting Devices\n" + " Except for main memory and network devices, units are simulated as\n" + " unstructured binary disk files in the host file system. Before using a\n" + " simulated unit, the user must specify the file to be accessed by that unit.\n" +#define HLP_ATTACH "*Commands Connecting_and_Disconnecting_Devices ATTACH" + "3ATTACH\n" + " The ATTACH (abbreviation AT) command associates a unit and a file:\n" + "++ATTACH \n\n" + "4Switches\n" + "5-n\n" + " If the -n switch is specified when an attach is executed, a new file is\n" + " created, and an appropriate message is printed.\n" + "5-e\n" + " If the file does not exist, and the -e switch was not specified, a new\n" + " file is created, and an appropriate message is printed. If the -e switch\n" + " was specified, a new file is not created, and an error message is printed.\n" + "5-r\n" + " If the -r switch is specified, or the file is write protected, ATTACH tries\n" + " to open the file read only. If the file does not exist, or the unit does\n" + " not support read only operation, an error occurs. Input-only devices, such\n" + " as paper-tape readers, and devices with write lock switches, such as disks\n" + " and tapes, support read only operation; other devices do not. If a file is\n" + " attached read only, its contents can be examined but not modified.\n" + "5-f\n" + " For simulated magnetic tapes, the ATTACH command can specify the format of\n" + " the attached tape image file:\n\n" + "++ATTACH -f \n\n" + " The currently supported tape image file formats are:\n\n" + "++SIMH SIMH simulator format\n" + "++E11 E11 simulator format\n" + "++TPC TPC format\n" + "++P7B Pierce simulator 7-track format\n\n" + /***************** 80 character line width template *************************/ + " For some simulated disk devices, the ATTACH command can specify the format\n" + " of the attached disk image file:\n\n" + "++ATTACH -f \n\n" + " The currently supported disk image file formats are:\n\n" + "++SIMH SIMH simulator format\n" + "++VHD Virtual Disk format\n" + "++RAW platform specific access to physical disk or\n" + "++ CDROM drives\n" + " The disk format can also be set with the SET command prior to ATTACH:\n\n" + "++SET FORMAT=\n" + "++ATT \n\n" + /***************** 80 character line width template *************************/ + " The format of an attached tape or disk file can be displayed with the SHOW\n" + " command:\n" + "++SHOW FORMAT\n" + " For Telnet-based terminal emulation devices, the ATTACH command associates\n" + " the master unit with a TCP/IP listening port:\n\n" + "++ATTACH \n\n" + " The port is a decimal number between 1 and 65535 that is not already used\n" + " other TCP/IP applications.\n" + " For Ethernet emulators, the ATTACH command associates the simulated Ethernet\n" + " with a physical Ethernet device:\n\n" + "++ATTACH \n" + /***************** 80 character line width template *************************/ +#define HLP_DETACH "*Commands Connecting_and_Disconnecting_Devices DETACH" + "3DETACH\n" + " The DETACH (abbreviation DET) command breaks the association between a unit\n" + " and a file, port, or network device:\n\n" + "++DETACH ALL detach all units\n" + "++DETACH detach specified unit\n" + " The EXIT command performs an automatic DETACH ALL.\n" + "2Controlling Simulator Operating Environment\n" + "3Working Directory\n" +#define HLP_CD "*Commands Controlling_Simulator_Operating_Environment Working_Directory CD" + "4CD\n" + " Set the current working directory:\n" + "++CD path\n" + "4SET_DEFAULT\n" + " Set the current working directory:\n" + "++SET DEFAULT path\n" +#define HLP_PWD "*Commands Controlling_Simulator_Operating_Environment Working_Directory PWD" + "4PWD\n" + "++PWD\n" + " Display the current working directory:\n" + "2Listing Files\n" +#define HLP_DIR "*Commands Listing_Files DIR" + "3DIR\n" + "++DIR {path} list directory files\n" +#define HLP_LS "*Commands Listing_Files LS" + "3LS\n" + "++LS {path} list directory files\n" +#define HLP_SET "*Commands SET" + "2SET\n" + /***************** 80 character line width template *************************/ +#define HLP_SET_CONSOLE "*Commands SET CONSOLE" + "3Console\n" + "+set console arg{,arg...} set console options\n" + "+set console WRU specify console drop to simh character\n" + "+set console BRK specify console Break character\n" + "+set console DEL specify console delete character\n" + "+set console PCHAR specify console printable characters\n" + "+set console TELNET=port specify console telnet port\n" + "+set console TELNET=LOG=log_file\n" + "++++++++ specify console telnet logging to the\n" + "++++++++ specified destination {LOG,STDOUT,STDERR,\n" + "++++++++ DEBUG or filename)\n" + "+set console TELNET=NOLOG disables console telnet logging\n" + "+set console TELNET=BUFFERED[=bufsize]\n" + "++++++++ specify console telnet buffering\n" + "+set console TELNET=NOBUFFERED\n" + "++++++++ disables console telnet buffering\n" + "+set console TELNET=UNBUFFERED\n" + "++++++++ disables console telnet buffering\n" + "+set console NOTELNET disable console telnet\n" + "+set console SERIAL=serialport[;config]\n" + "++++++++ specify console serial port and optionally\n" + "++++++++ the port config (i.e. ;9600-8n1)\n" + "+set console NOSERIAL disable console serial session\n" + "+set console LOG=log_file enable console logging to the\n" + "++++++++ specified destination {STDOUT,STDERR,DEBUG\n" + "++++++++ or filename)\n" + "+set console NOLOG disable console logging\n" + /***************** 80 character line width template *************************/ +#define HLP_SET_REMOTE "*Commands SET REMOTE" + "3Remote\n" + "+set remote TELNET=port specify remote console telnet port\n" + "+set remote NOTELNET disables remote console\n" + "+set remote CONNECTIONS=n specify number of concurrent remote\n" + "++++++++ console sessions\n" + "+set remote TIMEOUT=n specify number of seconds without input\n" + "++++++++ before automatic continue\n" +#define HLP_SET_DEFAULT "*Commands SET Working_Directory" + "3Working Directory\n" + "+set default set the current directory\n" + "+cd set the current directory\n" +#define HLP_SET_LOG "*Commands SET Log" + "3Log\n" + "+set log log_file specify the log destination\n" + "++++++++ (STDOUT,DEBUG or filename)\n" + "+set nolog disables any currently active logging\n" +#define HLP_SET_DEBUG "*Commands SET Debug" + "3Debug\n" + "+set debug debug_file specify the debug destination\n" + "++++++++ (STDOUT,STDERR,LOG or filename)\n" + "+set nodebug disables any currently active debug output\n" +#define HLP_SET_BREAK "*Commands SET Breakpoints" + "3Breakpoints\n" + "+set break set breakpoints\n" + "+set nobreak clear breakpoints\n" + /***************** 80 character line width template *************************/ +#define HLP_SET_THROTTLE "*Commands SET Throttle" + "3Throttle\n" + "+set throttle {x{M|K|%%}}|{x/t}\n" + "++++++++ set simulation rate\n" + "+set nothrottle set simulation rate to maximum\n" +#define HLP_SET_ASYNCH "*Commands SET Asynch" + "3Asynch\n" + "+set asynch enable asynchronous I/O\n" + "+set noasynch disable asynchronous I/O\n" +#define HLP_SET_ENVIRON "*Commands SET Asynch" + "3Environment\n" + "+set environment name=val set environment variable\n" + "+set environment name clear environment variable\n" +#define HLP_SET_ON "*Commands SET Command_Status_Trap_Dispatching" + "3Command Status Trap Dispatching\n" + "+set on enables error checking after command\n" + "++++++++ execution\n" + "+set noon disables error checking after command\n" + "++++++++ execution\n" + "+set on inherit enables inheritance of ON state and\n" + "++++++++ actions into do command files\n" + "+set on noinherit disables inheritance of ON state and\n" + "++++++++ actions into do command files\n" +#define HLP_SET_VERIFY "*Commands SET Command_Execution_Display" +#define HLP_SET_VERIFY "*Commands SET Command_Execution_Display" + "3Command Execution Display\n" + "+set verify re-enables display of command file\n" + "++++++++ processed commands\n" + "+set verbose re-enables display of command file\n" + "++++++++ processed commands\n" + "+set noverify disables display of command file processed\n" + "++++++++ commands\n" + "+set noverbose disables display of command file processed\n" + "++++++++ commands\n" +#define HLP_SET_MESSAGE "*Commands SET Command_Error_Status_Display" + "3Command Error Status Display\n" + "+set message re-enables display of command file error\n" + "++++++++ messages\n" + "+set nomessage disables display of command file error\n" + "++++++++ messages\n" +#define HLP_SET_QUIET "*Commands SET Command_Output_Display" + "3Command Output Display\n" + "+set quiet disables suppression of some output and\n" + "++++++++ messages\n" + "+set noquiet re-enables suppression of some output and\n" + "++++++++ messages\n" +#define HLP_SET_PROMPT "*Commands SET Command_Prompt" + "3Command Prompt\n" + "+set prompt \"string\" sets an alternate simulator prompt string\n" + "3Device and Unit\n" + "+set OCT|DEC|HEX set device display radix\n" + "+set ENABLED enable device\n" + "+set DISABLED disable device\n" + "+set DEBUG{=arg} set device debug flags\n" + "+set NODEBUG={arg} clear device debug flags\n" + "+set arg{,arg...} set device parameters (see show modifiers)\n" + "+set ENABLED enable unit\n" + "+set DISABLED disable unit\n" + "+set arg{,arg...} set unit parameters (see show modifiers)\n" + "+help set displays the device specific set commands\n" + "++++++++ available\n" + /***************** 80 character line width template *************************/ +#define HLP_SHOW "*Commands SHOW" + "2SHOW\n" + "+sh{ow} br{eak} show breakpoints\n" + "+sh{ow} con{figuration} show configuration\n" + "+sh{ow} cons{ole} {arg} show console options\n" + "+sh{ow} dev{ices} show devices\n" + "+sh{ow} fea{tures} show system devices with descriptions\n" + "+sh{ow} m{odifiers} show modifiers for all devices\n" + "+sh{ow} s{how} show SHOW commands for all devices\n" + "+sh{ow} n{ames} show logical names\n" + "+sh{ow} q{ueue} show event queue\n" + "+sh{ow} ti{me} show simulated time\n" + "+sh{ow} th{rottle} show simulation rate\n" + "+sh{ow} a{synch} show asynchronouse I/O state\n" + "+sh{ow} ve{rsion} show simulator version\n" + "+sh{ow} def{ault} show current directory\n" + "+sh{ow} re{mote} show remote console configuration\n" + "+sh{ow} RADIX show device display radix\n" + "+sh{ow} DEBUG show device debug flags\n" + "+sh{ow} MODIFIERS show device modifiers\n" + "+sh{ow} NAMES show device logical name\n" + "+sh{ow} SHOW show device SHOW commands\n" + "+sh{ow} {arg,...} show device parameters\n" + "+sh{ow} {arg,...} show unit parameters\n" + "+sh{ow} ethernet show ethernet devices\n" + "+sh{ow} serial show serial devices\n" + "+sh{ow} multiplexer show open multiplexer devices\n" + "+sh{ow} clocks show calibrated timers\n" + "+sh{ow} on show on condition actions\n" + "+h{elp} show displays the device specific show commands\n" + "++++++++ available\n" +#define HLP_SHOW_CONFIG "*Commands SHOW" +#define HLP_SHOW_DEVICES "*Commands SHOW" +#define HLP_SHOW_FEATURES "*Commands SHOW" +#define HLP_SHOW_QUEUE "*Commands SHOW" +#define HLP_SHOW_TIME "*Commands SHOW" +#define HLP_SHOW_MODIFIERS "*Commands SHOW" +#define HLP_SHOW_NAMES "*Commands SHOW" +#define HLP_SHOW_SHOW "*Commands SHOW" +#define HLP_SHOW_VERSION "*Commands SHOW" +#define HLP_SHOW_DEFAULT "*Commands SHOW" +#define HLP_SHOW_CONSOLE "*Commands SHOW" +#define HLP_SHOW_REMOTE "*Commands SHOW" +#define HLP_SHOW_BREAK "*Commands SHOW" +#define HLP_SHOW_LOG "*Commands SHOW" +#define HLP_SHOW_DEBUG "*Commands SHOW" +#define HLP_SHOW_THROTTLE "*Commands SHOW" +#define HLP_SHOW_ASYNCH "*Commands SHOW" +#define HLP_SHOW_ETHERNET "*Commands SHOW" +#define HLP_SHOW_SERIAL "*Commands SHOW" +#define HLP_SHOW_MULTIPLEXER "*Commands SHOW" +#define HLP_SHOW_CLOCKS "*Commands SHOW" +#define HLP_SHOW_ON "*Commands SHOW" +#define HLP_HELP "*Commands HELP" + /***************** 80 character line width template *************************/ + "2HELP\n" + "+h{elp} type this message\n" + "+h{elp} type help for command\n" + "+h{elp} type help for device\n" + "+h{elp} registers type help for device register variables\n" + "+h{elp} attach type help for device specific ATTACH command\n" + "+h{elp} set type help for device specific SET commands\n" + "+h{elp} show type help for device specific SHOW commands\n" + "+h{elp} type help for device specific command\n" + /***************** 80 character line width template *************************/ + "2Altering The Simulated Configuration\n" + " In most simulators, the SET DISABLED command removes the\n" + " specified device from the configuration. A DISABLED device is invisible\n" + " to running programs. The device can still be RESET, but it cannot be\n" + " ATTAChed, DETACHed, or BOOTed. SET ENABLED restores a disabled\n" + " device to a configuration.\n\n" + " Most multi-unit devices allow units to be enabled or disabled:\n\n" + "++SET ENABLED\n" + "++SET DISABLED\n\n" + " When a unit is disabled, it will not be displayed by SHOW DEVICE.\n\n" +#define HLP_ASSIGN "*Commands Logical_Names" +#define HLP_DEASSIGN "*Commands Logical_Names" + "2Logical Names\n" + " The standard device names can be supplemented with logical names. Logical\n" + " names must be unique within a simulator (that is, they cannot be the same\n" + " as an existing device name). To assign a logical name to a device:\n\n" + "++ASSIGN assign log-name to device\n\n" + " To remove a logical name:\n\n" + "++DEASSIGN remove logical name\n\n" + " To show the current logical name assignment:\n\n" + "++SHOW NAMES show logical name, if any\n\n" + " To show all logical names:\n\n" + "++SHOW NAMES\n\n" + /***************** 80 character line width template *************************/ +#define HLP_DO "*Commands Executing_Command_Files" + "2Executing Command Files\n" + " The simulator can execute command files with the DO command:\n\n" + "++DO {arguments...} execute commands in file\n\n" + " The DO command allows command files to contain substitutable arguments.\n" + " The string %%n, where n is between 1 and 9, is replaced with argument n\n" + " from the DO command line. The string %%0 is replaced with .\n" + " The sequences \\%% and \\\\ are replaced with the literal characters %% and \\,\n" + " respectively. Arguments with spaces can be enclosed in matching single\n" + " or double quotation marks.\n\n" + " DO commands may be nested up to ten invocations deep.\n\n" + "3Switches\n" + " If the switch -v is specified, the commands in the file are echoed before\n" + " they are executed.\n\n" + " If the switch -e is specified, command processing (including nested command\n" + " invocations) will be aborted if a command error is encountered.\n" + " (Simulation stop never abort processing; use ASSERT to catch unexpected\n" + " stops.) Without the switch, all errors except ASSERT failures will be\n" + " ignored, and command processing will continue.\n\n" + " If the switch -o is specified, the on conditions and actions from the\n" + " calling command file will be inherited in the command file being invoked.\n" + " If the switch -q is specified, the quiet mode will be explicitly enabled\n" + " for the called command file, otherwise quiet mode is inherited from the\n" + " calling context.\n" + /***************** 80 character line width template *************************/ +#define HLP_GOTO "*Commands Executing_Command_Files GOTO" + "3GOTO\n" + " Commands in a command file execute in sequence until either an error\n" + " trap occurs (when a command completes with an error status), or when an\n" + " explict request is made to start command execution elsewhere with the\n" + " GOTO command:\n\n" + "++GOTO