diff --git a/PDP11/pdp11_dmc.c b/PDP11/pdp11_dmc.c index ccbe3419..ae74ad53 100644 --- a/PDP11/pdp11_dmc.c +++ b/PDP11/pdp11_dmc.c @@ -821,81 +821,82 @@ t_stat dmc_setlinemode (UNIT* uptr, int32 val, char* cptr, void* desc) t_stat dmc_help (FILE *st, DEVICE *dptr, UNIT *uptr, int32 flag, char *cptr) { - fprintf(st, "The DMC11 is a synchronous serial point-to-point communications device."); - fprintf(st, "A real DMC11 transports data using DDCMP, the emulated device makes a"); - fprintf(st, "TCP/IP connection to another emulated device and sends length-prefixed"); - fprintf(st, "messages across the connection, each message representing a single buffer"); - fprintf(st, "passed to the DMC11. The DMC11 can be used for point-to-point DDCMP"); - fprintf(st, "connections carrying DECnet and other types of networking, e.g. from ULTRIX or DSM.\n"); + fprintf(st, "The DMC11 is a synchronous serial point-to-point communications device.\n"); + fprintf(st, "A real DMC11 transports data using DDCMP, the emulated device makes a\n"); + fprintf(st, "TCP/IP connection to another emulated device and sends length-prefixed\n"); + fprintf(st, "messages across the connection, each message representing a single buffer\n"); + fprintf(st, "passed to the DMC11. The DMC11 can be used for point-to-point DDCMP\n"); + fprintf(st, "connections carrying DECnet and other types of networking, e.g. from ULTRIX\n"); + fprintf(st, "or DSM.\n\n"); + fprintf(st, "The line mode of the two ends of the link must be set. One end must always\n"); + fprintf(st, "be primary and one end always secondary, setting both to primary or both\n"); + fprintf(st, "to secondary will not work. If there are firewall problems at one side,\n"); + fprintf(st, "set that side to be primary as the primary always initiates the TCP/IP\n"); + fprintf(st, "connection.\n"); fprintf(st, "\n"); - fprintf(st, "The line mode of the two ends of the link must be set. One end must always"); - fprintf(st, "be primary and one end always secondary, setting both to primary or both"); - fprintf(st, "to secondary will not work. If there are firewall problems at one side, set"); - fprintf(st, "that side to be primary as the primary always initiates the TCP/IP connection.\n"); + fprintf(st, " sim> SET DMC0 LINEMODE= {PRIMARY|SECONDARY}\n"); fprintf(st, "\n"); - fprintf(st, "SET DMC0 LINEMODE= {PRIMARY|SECONDARY}\n"); + fprintf(st, "To set the host and port to which data is to be transmitted use the\n"); + fprintf(st, "following command (required for PRIMARY and SECONDARY, secondary will check\n"); + fprintf(st, "it is receiving from the configured primary):\n"); fprintf(st, "\n"); - fprintf(st, "To set the host and port to which data is to be transmitted use the following"); - fprintf(st, "command (required for PRIMARY and SECONDARY, secondary will check it is"); - fprintf(st, "receiving from the configured primary):\n"); + fprintf(st, " sim> SET DMC0 PEER=host:port\n"); fprintf(st, "\n"); - fprintf(st, "SET DMC0 PEER=host:port\n"); + fprintf(st, "The device must be attached to a receive port, use the ATTACH command\n"); + fprintf(st, "specifying the receive port number, even if the line mode is primary.\n"); fprintf(st, "\n"); - fprintf(st, "The device must be attached to a receive port, use the ATTACH command specifying"); - fprintf(st, "the receive port number, even if the line mode is primary.\n"); + fprintf(st, "The minimum interval between attempts to connect to the other side is set\n"); + fprintf(st, "using the following command:\n"); fprintf(st, "\n"); - fprintf(st, "The minimum interval between attempts to connect to the other side is set using"); - fprintf(st, "the following command:\n"); - fprintf(st, "\n"); - fprintf(st, "SET DMC0 CONNECTPOLL=n\n"); + fprintf(st, " sim> SET DMC0 CONNECTPOLL=n\n"); fprintf(st, "\n"); fprintf(st, "Where n is the number of seconds. The default is 30 seconds.\n"); fprintf(st, "\n"); - fprintf(st, "If you want to experience the actual data rates of the physical hardware you can"); - fprintf(st, "set the bit rate of the simulated line can be set using the following command:\n"); + fprintf(st, "If you want to experience the actual data rates of the physical hardware you\n"); + fprintf(st, "can set the bit rate of the simulated line can be set using the following\n"); + fprintf(st, "command:\n\n"); + fprintf(st, " sim> SET DMC0 SPEED=n\n"); fprintf(st, "\n"); - fprintf(st, "SET DMC0 SPEED=n\n"); - fprintf(st, "\n"); - fprintf(st, "Where n is the number of data bits per second that the simulated line runs at."); - fprintf(st, "In practice this is implemented as a delay in reading the bytes from the socket."); - fprintf(st, "Use a value of zero to run at full speed with no artificial throttling.\n"); + fprintf(st, "Where n is the number of data bits per second that the simulated line runs\n"); + fprintf(st, "at. In practice this is implemented as a delay in reading the bytes from\n"); + fprintf(st, "the socket. Use a value of zero to run at full speed with no artificial\n"); + fprintf(st, "throttling.\n"); fprintf(st, "\n"); fprintf(st, "To configure two simulators to talk to each other use the following example:\n"); fprintf(st, "\n"); fprintf(st, "Machine 1\n"); - fprintf(st, "SET DMC0 ENABLE\n"); - fprintf(st, "SET DMC0 PRIMARY\n"); - fprintf(st, "SET DMC0 PEER=LOCALHOST:2222\n"); - fprintf(st, "ATTACH DMC0 1111\n"); + fprintf(st, " sim> SET DMC0 ENABLE\n"); + fprintf(st, " sim> SET DMC0 PRIMARY\n"); + fprintf(st, " sim> SET DMC0 PEER=LOCALHOST:2222\n"); + fprintf(st, " sim> ATTACH DMC0 1111\n"); fprintf(st, "\n"); fprintf(st, "Machine 2\n"); - fprintf(st, "SET DMC0 ENABLE\n"); - fprintf(st, "SET DMC0 SECONDARY\n"); - fprintf(st, "SET DMC0 PEER= LOCALHOST:1111\n"); - fprintf(st, "ATTACH DMC0 2222\n"); + fprintf(st, " sim> SET DMC0 ENABLE\n"); + fprintf(st, " sim> SET DMC0 SECONDARY\n"); + fprintf(st, " sim> SET DMC0 PEER= LOCALHOST:1111\n"); + fprintf(st, " sim> ATTACH DMC0 2222\n"); fprintf(st, "\n"); fprintf(st, "Debugging\n"); fprintf(st, "=========\n"); fprintf(st, "The simulator has a number of debug options, these are:\n"); - fprintf(st, " REG. Shows whenever a CSR is read or written and the current value.\n"); - fprintf(st, " INFO. Shows higher-level tracing only.\n"); - fprintf(st, " WARN. Shows any warnings.\n"); - fprintf(st, " TRACE. Shows more detailed trace information.\n"); - fprintf(st, " DATA. Shows the actual data sent and received.\n"); - fprintf(st, " DATASUM. Brief summary of each received and transmitted buffer. Ignored if DATA is set.\n"); - fprintf(st, " SOCKET. Shows socket opens and closes.\n"); - fprintf(st, " CONNECT. Shows sockets actually connecting.\n"); + fprintf(st, " REG Shows whenever a CSR is read or written and the current value.\n"); + fprintf(st, " INFO Shows higher-level tracing only.\n"); + fprintf(st, " WARN Shows any warnings.\n"); + fprintf(st, " TRACE Shows more detailed trace information.\n"); + fprintf(st, " DATA Shows the actual data sent and received.\n"); + fprintf(st, " DATASUM Brief summary of each received and transmitted buffer.\n"); + fprintf(st, " Ignored if DATA is set.\n"); + fprintf(st, " SOCKET Shows socket opens and closes.\n"); + fprintf(st, " CONNECT Shows sockets actually connecting.\n"); fprintf(st, "\n"); fprintf(st, "To get a full trace use\n"); fprintf(st, "\n"); - fprintf(st, "SET DMC0 DEBUG\n"); + fprintf(st, " sim> SET DMC0 DEBUG\n"); fprintf(st, "\n"); fprintf(st, "However it is recommended to use the following when sending traces:\n"); fprintf(st, "\n"); - fprintf(st, "SET DMC0 DEBUG=REG;INFO;WARN\n"); + fprintf(st, " sim> SET DMC0 DEBUG=REG;INFO;WARN\n"); fprintf(st, "\n"); - fprintf(st, "\n"); - return SCPE_OK; }