. TEM - Terminal EMulator program --- - -------- -------- ------- T. R. Wyant 16-May-1984 Rev: 18-Mar-1987 TEM - Terminal EMulator program Page 2 Overview Task TEM provides terminal emulation over a full duplex TT: line. Input to the remote system can come either from the initiating terminal or a file. Output from the remote system is displayed on the initiating terminal, and can be optionally logged in a file. System-wide, unit-specific startup and shut- down command files can be executed, if present. The user can also select from the following features: * Local Echo * Parity generation and checking. * Automatic linefeed on carriage return * Translation of inbound control characters to ASCII abbre- viations * Passthru of control/s, control/q, control/o and control/x to the remote system * User selectable attention and end-of-file characters. * Redefinition of any desired character to any other. * Specifiable delay and prompt character for file transfer. A fully functional TEM is distributed as TEM.TSK. This TEM requires at least RSX-11M+ V2.0, or RSX-11M V4.0 with the full-duplex TT: driver, get/set multiple characteristics, and unsolicited input AST's. It will also work under RSX-11S V4.x as long as file I/O or command passing are not used. You can also run it under VAX-11 RSX, as long as you don't need the /SPEED or /REMOTE switches. There is a reduced-functionality version for RSX-11M+ V1.0 and RSX-11M V3.2 (with full-duplex TT:, etcetera) distributed as TEM32.TSK. This version must still be built under at least M+ V2.0 or M V4.0. TEM can be initiated from a terminal on the TT:, HT:, or VT: driver, though there are restrictions on its use from a virtual terminal. It can communicate with any device on the TT:, HT:, or NL: driver. Support for the NL: driver was used for development and debugging, but was left in for use in demo/practice sessions. It is recommended (though not required) that TEM be used only to drive lines that run at 1200 baud or less, and that TEM be initiated from a terminal that is at least as fast as the line to be driven. The buffers are large (512 bytes as distri- buted), but could be overrun with a determined effort. If you must drive a fast line from a slow terminal, see the "Advanced Features" section for some tips. TEM has been used to communicate with (at least) the fo- lowing systems: RSX-11M+ Univac 1100 TP monitor RSTS/E X.25 networks VMS Apple DOS TOPS-20 P/OS Theoretically, any system that supports two stop bits, and ei- ther a 7-bit character set plus parity is accessable through TEM. TEM - Terminal EMulator program Page 3 Overview NOTICE - There was an incompatibility with earlier ver- sions of TEM introduced at version 84.221. The /PAUSE switch can no longer be abbreviated to two characters, because of the conflict with /PARITY. The new switch /DELAY serves the same purpose. The /PAUSE switch should be considered a "declining feature", and will be eliminated at some future time. TEM - Terminal EMulator program Page 4 Short Course. You can normally invoke TEM just by typing its name: >TEM TEM will issue a prompt, TEM> to indicate its presence at your terminal, and its readiness to accept a command. You can also exit from TEM any time it dis- plays the "TEM>" prompt by entering a control/z. In response to the first "TEM>" prompt, you should enter the name of the device you wish to communicate with (eg: TT7:) in the usual RSX format. Under VMS, device names in the VMS format are also legal (eg: TXA2:) provided your system manager has set the named device up for use by a compatability-mode im- age. Depending on your installation and the device you specify, TEM may automatically issue some setup commands to the remote device. Then, it will issue the message TEM - Ready for terminal input. At this point, your terminal is connected to the remote device. Anything you type will be sent to the remote device, and any- thing the remote device sends will be displayed on your termi- nal. If you need to get back to the "TEM>" prompt (which you must do to exit), type a control/c. If you wish to switch to a different remote device at this point, you may do so by enter- ing its name as before. If you wish to continue with the same remote device, you do not need to name it again in your com- mand. TEM offers a variety of command switches to configure it to your application. These are specified by appending them to the device name (if any) in response to the "TEM>" prompt. De- tails on these switches and their effects are given below. For a "plain vanilla" terminal emulation, the following switches will probably be most useful: /ATTENTION:character If you need to send a control/c to the remote system, you can use this switch to select another character to use to get the "TEM>" prompt. See the end of this sec- tion for how to specify a character to TEM. /LOG:filename This lets you log all data sent from the remote system in the file you name. Basicly, anything you see on your screen will be logged. This mechanism can be used to receive ASCII files from the remote system. Formatted-screen ("forms") work may not reproduce ex- actly if you copy the file to your terminal. To stop logging, use "/NOLOG". /SEND:filename This lets you send the named file to the remote system. By default, TEM will wait until 15 "ticks" after the last linefeed before sending the next record in the file. This has so far been satisfactory for regular TEM - Terminal EMulator program Page 5 Short Course. file transfer. If you have trouble, or if you are try- ing to submit commands to the remote system using the /SEND feature, you can modify this behaviour using the /DELAY or /PROMPT switches; you may also need the /EOF switch to specify what TEM is to do at the end of your /SEND file. Note that the use of the /SEND switch does NOT deter- mine what happens to your file once it arrives on the remote system. It is up to you to create an environ- ment where your data will be correctly interpreted. For example: if you wish to create a file on the re- mote system that corresponds to the file you are send- ing, you must issue a command to the remote system like COPY TI: MYFILE before you issue the /SEND switch to TEM. /STOP This switch suspends TEM, allowing you to issue CLI commands to your local system. You can then restart TEM, and pick up where you left off. / This is the "null" switch. You must (unfortunately) specify this in response to the "TEM>" prompt if you wish to resume what you were doing without making any other changes. More information on all these switches can be found in the "Switches" section. To specify a character parameter (say, for the /ATTENTION switch), there are several options available, to suit indivi- dual preferences, and to circumvent limitations in DEC's stan- dard command line handler (which is insensitive to case, among other things): * For all PRINTING characters except lowercase, numbers, ":", "/", "^", "'", and "%", you can just specify the character itself; eg, /ATTENTION:* to use an asterisk. * For lowercase letters, precede the letter with a percent sign; eg, /ATTENTION:%Z to use a lower-case "Z". Note that /ATTENTION:z won't work, as TEM converts all commands to uppercase be- fore interpreting them. * For numerals, and the special characters ":", "/", "^", "'", """, "*", and "%", preceede the character with an apostrophe ("'"); eg, /ATTENTION:'% to use a percent sign. TEM - Terminal EMulator program Page 6 Short Course. * For control characters, precede the "letter" with a caret ("^", up arrow, or shift/6); eg, /ATTENTION:^G to use a control/g (bell). See the end of the "Switches" section for a fuller discussion of how to specify characters to TEM. TEM - Terminal EMulator program Page 7 TEM commands. TEM is invoked in the normal ways (see below). In a "plain vanilla" run, the user specifies the device/unit of the line connected to the remote system, and TEM goes into "termi- nal input" mode. At this point, anything the user types will be sent to the remote system, and anything the remote system sends back will be displayed on the user's terminal. The user can get the TEM prompt again by typing the "attention" char- acter, which is initially "control/c", but which can be changed using the "/ATTENTION" switch. From here, the user can change his setup, switch lines, send a file (using the "/SEND:" switch), or exit by typing "control/z". It was anticipated that a major use for TEM would be re- mote ASCII file transfer. The input file may have any carriage control attribute available on the PDP-11, though COBOL car- riage control has not been tested. The implied carriage con- trol will be generated for each record transmitted. The input file may contain control characters, but no guarantees are made as to how the remote system interprets them. A programmed de- lay after each record is available to avoid loading the remote system too heavily. While data from an input file is being sent, all keyboard input except the attention character is ig- nored. Typing the attention character will cause the send operation to be aborted, and return you to the TEM prompt. Data from the remote system can be captured in a log file, with either "List" or "No" implied carriage control. If no im- plied carriage control is selected, all data sent is put in the log file, with a record break after each carriage return. If "List" carriage control is selected, TEM produces output re- cords designed to make the file resemble the actual received data as closely as possible. The algorithm seems fairly solid, but weird combinations may produce weird results. In particu- lar, if any number of linefeeds are followed immediately by a formfeed, the linefeeds will not make it to the output file. TEM can be installed and/or invoked by all the "standard" methods: If not installed, >RUN TEM TEM>command TEM>command TEM>^Z If installed as ...TEM, >TEM command or >TEM TEM>command TEM>command TEM>^Z In any case, a valid command takes one of two forms: TEM> or TEM>@filename TEM - Terminal EMulator program Page 8 TEM commands. In the first case, "" represents any device name (including logical assignments) that conforms to the usual RSX format. If running under VMS, device names in VMS format (eg: TXA3:) are also allowed, though logical assignments that do not conform to the expected device name format will not be ac- cepted. represents one or more function switches. Both "" and "" are normally optional; however, TEM will require a device name if it does not have one from a previous command line. If a device name is specified and the /HOLD switch is not in effect, TEM will execute the shutdown command file (if any) for the old device, hang up the old device, attach to the new device, and execute its startup command file (if any). If your command line contains both a device name and switches, TEM will parse your switches, but only the /HOLD switch takes effect immediately. The rest of your command line will be executed after the shutdown and startup command files. Any switches appearing in these files will remain in effect unless overridden in your command line. In the case of the "@filename" command, the file is as- sumed to contain valid TEM commands. These command files may be nested up to three deep. Startup and shutdown command files do not count against your total. The default filespec elements are: Device SY: UIC Current Default File Name no default File Type .CMD File Version Highest Note that if TEM is invoked as >TEM command TEM will prompt you after executing the command on the MCR com- mand line, unless the /EXIT switch has been asserted. This is in contrast to the normal action (eg, PIP), which is to exit as soon as the command is completed. See the /EXIT switch for more details. TEM - Terminal EMulator program Page 9 Switches. The command line switches may be negated by preceding ei- ther "-" or "NO". All switch settings and parameters "latch" to the last specified value except as noted. Switch names may be abbreviated to two characters. Note that some of the switches imply others. This is a convenience, since certain features are normally selected together. For instance, "/TER- MINAL" implies "/ECHO" (among others). Implied switches can be overridden by explicit switches on the same or subsequent com- mand lines. For instance, in "/NOECHO/TERMINAL" the explicit "/NOECHO" overrides the "/ECHO" implied by "/TERMINAL". The order of switches in a command line does not affect its mean- ing. The following switches are supported: /ASSIGN:char:char Specifies that the right-hand character is to be tran- slated into the left-hand character before being transmitted to the remote terminal. Inbound characters are not affected. Note that you can have more than one /ASSIGN in effect at a time, though you can only specify one /ASSIGN switch on any given command line; for instance, a series of commands like "/ASSIGN:'A:%A" could translate all lowercase input to uppercase before transmittal to the remote system. If the switch is ne- gated, the assignment table is cleared, and characters are not translated. The negated version of the switch takes no parameters. The initial setting is /NOASSIGN /ATTENTION:char Specifies the character to type to get a TEM prompt. If you are transmitting from a file, typing this char- acter will cause the file to be closed. This switch can not be negated. The initial setting is /ATTENTION:^C (control/C) /CARRIER[:comparison string][:nnnt] Enables the reassertion of the desired terminal charac- teristics while the remote terminal line is set /RE- MOTE. This action is required because the TT: driver clears several characteristics that TEM needs when it detects carrier on a /REMOTE line. The input stream is scanned for a match with the comparison string. When a match is found, the terminal characteristics are reset after the delay specified in "nnnt". See the end of the "Switches" section for the general syntax for a comparison string; see the write up on the /DELAY switch (below) for the syntax for "nnnt". For this switch, the maximum length of the comparison string is 20 characters. A delay of 0T will cause the reset to occur immediately. Negating the switch, specifying a null match string, or setting /NOREMOTE will disable the function. The parameters can be specified in ei- ther order. Omitted parameters default to the last va- lue specified. The initial setting is TEM - Terminal EMulator program Page 10 Switches. /CARRIER:*"PASSWORD":0T (ie - case-insensitive match on "PASSWORD", and reas- sert the desired characteristics immediately). /CHECKPARITY[:char] Enables or disables parity checking on inbound char- acters. Also specifies the character to insert in place of any inbound characters with bad parity. If no character is specified, the last explicitly-given bad parity character is used. The initial setting is /NOCHECKPARITY:^Z (control/Z) /COMMAND Determines what to do after executing a command. If set, TEM will prompt for another command. If reset, TEM will enter terminal input mode after executing a command. The initial setting is /NOCOMMAND /DELAY[:nnnt] Specifies the time to pause between records sent from a file. The "nnn" is a positive decimal number less than 32768, and the "t" is the letter "T" (for ticks), "S" (for seconds), "M" (for minutes), or "H" (for hours). You may not specify a time greater than 24 hours. If the switch is negated, no pause is done. If the /PROMPT switch is negated, the pause is from when the record is sent. If the /PROMPT switch is asserted, the pause is from receipt of the prompt character; if another prompt character arrives before the pause timer elapses, it is restarted. The initial setting is /DELAY:15T /ECHO Local echo. If set, all characters typed on the user's terminal or sent from a file will be echoed on the user's terminal (and logged in the log file if one is open). The echoed character is subject to the action of both the /ASSIGN keyword (on output) and the /TRAN- SLATE keyword (on input), just as a character echoed remotely would be. The initial setting is /NOECHO /EOF[:char] Specifies the character to transmit upon encountering end of file on an input file. Negating the switch causes no EOF character to be sent. Asserting it with no parameter causes the most recently specified EOF character to be sent, even if specified as /-EOF:char. The initial setting is /EOF:^Z (control/Z). /EXIT Causes TEM to exit on the next "command level end of file". A "command level end of file" occurs: TEM - Terminal EMulator program Page 11 Switches. If you invoked TEM as "TEM @file", when TEM en- counters a syntax error, or the end of the top level command file; If you invoked TEM as "TEM command", as soon as the command is complete (normally, this happens when you type the attention character); If you invoked TEM as "RUN TEM" or "TEM", when you enter a control/z in response to the TEM prompt. If this switch is negated when TEM encounters a command level end of file, TEM will implicitly assert it, and prompt you for a command. The initial setting is /EXIT if you invoked TEM by "RUN TEM" or by "TEM", or /NOEXIT if you invoked TEM by "TEM @file" or "TEM command". /HOLD Prevents the line from being hung up on line change or exit. The initial setting is /NOHOLD /LIST Specifies that the log file, when and if opened, should have "List" carriage control. TEM will then analyze the input stream and attempt to duplicate the effect of the real form control characters received by position- ing the record breaks appropriately. Perverse combina- tions of form control characters may yield perverse results. In particular, combinations like will foul things up. It is recommended that /NONULL be used if /LIST is asserted. If this switch is negated, the log file is opened with no implied carriage control, and all characters are written to it with a record break after each . The initial setting is /LIST /LOG[:file] Specifies that the characters coming over the communi- cation line should be logged to a file. If no file name is given (or if the switch is on due to being specified in a previous command line), the last log file will be opened, and the new data appended to it. In this case, the current setting of the /LIST switch will be ignored; carriage control processing will be according to the /LIST switch setting when the file was created. A file name can be specified with the /-LOG version of the switch, but it does no good to do so. The default file name elements are SY:TEM.LOG TEM - Terminal EMulator program Page 12 Switches. The file version number is interpreted as being in de- cimal if running under RSX-11M+ V3.0 and up, or VAX-11 RSX. Otherwise, the version number is octal. The ini- tial setting is /NOLOG /MAXBUFFER[:n] Specifies the maximum number of characters to accumu- late before writing to the log file. Note that in the case of a log file opened /LIST, the actual maximum re- cord size will be smaller (by 2, normally) because of the implied carriage control. The parameter is posi- tive decimal number. If you specify a number outside the range 16 < n < (512 unless someone has modified the source to allow a larger record) the near- est in-range number will be taken, and you get no er- ror. If the switch is negated, no parameter is allowed, and is used. If you assert the switch but give no parameter, your terminal buffer size is used. The initial setting is /NOMAXBUFFER /MONITOR Specifies that all inbound control characters except , , , and be replaced with their ASCII names, enclosed in angle brackets. /MONITOR implies /NOLIST/NULLS, and /NOMONITOR implies /LIST/NONULLS. The initial setting is /NOMONITOR /NULLS Specifies that inbound ASCII null characters are to be sent to the local terminal, and to the log file if any. If negated, any nulls received from the remote terminal will be ignored. The initial setting is /NONULLS /OVERRIDE Specifies that the given terminal should be attached even if it is logged on. The normal behaviour is to refuse to run against a logged-on terminal. Also, it allows the /PERMANENT switch to function in situations where it is normally no-opped. Under RSX-11M+ and RSX-11M, the default is /NOOVERRIDE Under RSX-11S and VMS, this switch is ignored. The lo- gon bit is not supported under either system, and VMS attaches the terminal to the process that logged it on so that TEM can't get it anyway. /PAUSE[:nnnt] A synonym for the /DELAY switch. The /PAUSE switch was renamed because its two-character abbreviation con- flicts with the /PARITY switch. For backwards compati- bility, /PAUSE has been temporarily retained, but "/PAU" is the minimum abbreviation. The /PAUSE switch TEM - Terminal EMulator program Page 13 Switches. will be eliminated in a future release of TEM. /PARITY:spec Specifies how TEM shall generate parity for the remote system. The local system is "hard wired" at "space" parity. The options for the parity specification are: SPACE MARK EVEN ODD The parity specification can be abbreviated to one character. The initial setting is /PARITY:SPACE /PERMANENT Specifies that any remote line characteristics given on the same line with the /PERMANENT switch are to be re- tained (or restored) when TEM exits. Currently, only /SPEED and /REMOTE are so affected. This switch is ig- nored unless you are running under RSX-11S, or unless you used the /OVERRIDE switch when you initialized with the remote device. /PROMPT[:char] Specifies whether TEM should wait for a prompt char- acter from the remote system before transmitting the next record in a file, and if so what the character is. If asserted without specifying a prompt character, the last prompt character specified is used. If the /DELAY switch is negated, the next record is transmitted on receipt of the prompt character. If the /DELAY switch is asserted, the next record is transmitted imme- diately. The initial setting is /PROMPT:LF /QUIET Causes output to the local terminal to be disabled while sending a file to the remote terminal. Has the same general effect as control/o, but without the driver overhead. Output to a log file (if one is open) is not affected by this switch. Likewise, it has no effect when input comes directly from the user's term- nial. THIS SWITCH DOES NOT LATCH. The initial setting is /NOQUIET /REMOTE[:spd][:DIALOUT] Specifies whether the driver should generate and moni- tor modem control signals, and if so what the answer speed should be, and whether the line should be confi- gured for dialout. The speed, if given, is any decimal number valid in the >SET /REMOTE MCR command. In addition, speeds that are a multiple of 100 baud can be abbreviated by dropping the last two zeroes. The external settings available on a DH are TEM - Terminal EMulator program Page 14 Switches. not supported. Also, you can't set a DZ /REMOTE:0, and of course you can't use this switch at all on a DL or DJ. /REMOTE[:n] implies /SPEED[:n[:n]], but /NOREMOTE does not imply any switches at all. If you assert the switch but don't specify a speed, the answer speed of the line is not altered. The DIALOUT option, if used, configures the line for dialout. If not specified, /REMOTE configures the line for dialin only (which may work with your modem for dialout anyway). You can specify DIALOUT and speed in either order, and can abbreviate DIALOUT to two char- acters. If you are using the RSX-11M V3.2 version of TEM, or if you negate the switch, you may not specify answer speed or dialout. If you are running the "standard" TEM under RSX-11M V4.0 or RSX-11M+ V2.0, the DIALOUT option will cause an error. This is okay, as it is not needed under these releases. If you are running under VMS, this switch is a no-op, as VAX-11 RSX does not support the required terminal characteristics. The initial setting duplicates whatever the line setup was when you invoked TEM. Note: If /REMOTE is asserted, the TT: driver will re- set several terminal characteristics that are critical to the operation of TEM whenever it detects carrier. To counteract this, TEM scans for the string "Pass- word", and reasserts the desired characteristics when this string is seen. The string comparison is not sen- sitive to case. /RPA Specifies that ALL control characters (including con- trol/q, control/s, control/o, and control/x) typed on the local terminal are passed to the remote line. If not asserted, these characters will be intercepted and interpreted by the TT: driver for the local terminal. The initial setting is /RPA /SEND[:file] Sends the specified file down the line, a record at a time. Leading and trailing form control characters are added to each record based on the implied form control of the file (None, List, Fortran, or Cobol). If the /TERMINAL switch is negated, implying a link to another computer, TEM sends one less leading linefeed for each record than is implied by the file attributes. If specified without a file name, the last file sent is retransmitted. Be warned, though, that the identity of the "last file" is lost if a startup or shutdown com- mand file is executed. The default file name elements TEM - Terminal EMulator program Page 15 Switches. are SY:TEM.INP The file version number is interpreted as being in de- cimal if running under RSX-11M+ V3.0 and up, or VAX-11 RSX. Otherwise, the version number is octal. If /-SEND is specified, the file name is ignored and input comes directly from the user's terminal. The initial setting is /NOSEND /SPEED[:spc[:spc]] Sets line speed. The first parameter is the receive speed, and the second is the transmit speed. Legal speed parameters are the same as for /REMOTE. This switch cannot be negated. If both parameters are de- faulted, the original line speeds are used. If only the transmit speed (second parameter) is defaulted, both the receiver and transmitter are set to the speed specified. The initial setting is /SPEED This switch is a no-op under VAX-11 RSX, which does not support the required terminal characteristics. /STOP Causes TEM to return the local terminal to its initial setup, detach it, and stop itself. A message gives in- structions on how to restart, using the MCR UNSTOP or DCL START command. While TEM is stopped, you have ac- cess to your system. When TEM is restarted, you resume communication with the remote system (or with TEM, as the case may be). If parent-offspring support is not available, TEM will suspend itself, instead of stopping itself. This switch cannot be negated. Under VAX-11 RSX, this switch causes the process TEM is running in to be stopped. Because of the way VMS works, this leaves you pretty much in limbo, though you can SPAWN a subprocess to do your work. /TERMINAL Tells TEM you are communicating with a terminal rather than a CPU. If negated: TEM sends one less linefeed at the beginning of each record of a "SEND" file than is implied by its carriage control attribute. The following switches are implied: /NOECHO/EOF/DELAY/PROMPT/RPA If asserted: TEM appends a to every entered from the terminal. TEM sends a to the remote terminal before prompting for input from the local terminal. The following switches are implied: /ECHO/NOEOF/NOPAUSE/NOPROMPT/NORPA TEM - Terminal EMulator program Page 16 Switches. The initial setting is /NOTERMINAL /THROTTLE[:nnnt] Specifies that TEM should wait the specified amount of time before passing characters from the local to the remote line, or vice versa. "nnnt" is any valid time specification. The purpose of this switch is to de- crease system load by allowing larger I/O packets. It is recommended that the time parameter not be set larger than (512 bytes) * (11 bits/byte) / (remote line speed) or buffer overrun may occur. The time parameter is illegal if the switch is negated, and optional if it is asserted. It defaults to wha- tever time was given the last time the switch was as- serted, or "10T" if none. The initial setting is /NOTHROTTLE /TRANSLATE:char:char Specifies that the left-hand character is to be tran- slated into the right-hand character upon being re- ceived from the remote terminal. Outbound characters are not affected. Note that you can have more than one /TRANSLATE in effect at a time, though you can only specify one /TRANSLATE switch on any given command line; for instance, a series of commands like "/TRANSLATE:%A:'A" could translate all lowercase input to uppercase upon receipt from the remote system. Note that translation takes place BEFORE testing for the prompt character when transmitting a file. If the switch is negated, the translation table is cleared, and characters are not translated. The negated version of the switch takes no parameters. The initial setting is /NOTRANSLATE /TURNAROUND Specifies that characters received on the remote line are to be echoed back to it. These characters are echoed unmodified. The initial setting is /NOTURNAROUND / Null switch. Since the command line interpreter re- gards an empty line as a comment, you can use this switch to go back into communications mode without any other changes. This switch can be negated, though I have no idea why you would want to. For all switches that specify characters (ie: /ATTENTION, /EOF, or /PROMPT) the character can be specified in any of the following ways: (Low byte used) TEM - Terminal EMulator program Page 17 Switches. . (Low byte used) ' (ASCII value) ^ ((ASCII value)&37) % ((ASCII value)!140) NU or NUL or NULL 0 SOH 1 (^A) STX 2 (^B) ETX 3 (^C) EOT 4 (^D) ENQ 5 (^E) ACK 6 (^F) BEL 7 (^G) BS 10 (^H) HT 11 (^I) LF 12 (^J) VT 13 (^K) FF 14 (^L) CR 15 (^M) SO 16 (^N) SI 17 (^O) DLE 20 (^P) DC1 21 (^Q) DC2 22 (^R) DC3 23 (^S) DC4 24 (^T) NAK 25 (^U) SYN 26 (^V) ETB 27 (^W) CAN 30 (^X) EM 31 (^Y) SUB 32 (^Z) ESC 33 FS 34 GS 35 RS 36 US 37 SPACE (abbr to 2 char) 40 DEL 177 (ASCII value) In general, "'" means "take the ASCII value as is", "^" means "convert to control character", "%" means "convert to lower case". An "unspecial character" is any printable character ex- cept "0" thru "9", "a" thru "z", "'", "^", "%", ":", "/", "*", and """. The keywords may not be abbreviated unless the above table says so. For instance: /AT:^@ ! Attention character is null /EO:^Z ! EOF character is control/Z /AT:* ! Attention character is "*". /AT:'% ! Attention char is "%". /AT:%A ! Attention char is "a". /AT:SP ! Attention char is " ". /AS:^Q:~ ! Send XON on input of tilde. /TR:EOT:CR ! Translate to . TEM - Terminal EMulator program Page 18 Switches. For all switches that take a comparison string as an op- tion, the comparison string is specified in quotes (not apos- trophes), with an optional leading asterisk to denote a comparison that is insensitive to case. If the first non-blank character inside the quotes is alphanumeric, the entire quoted string is taken as the comparison string. If the first non-blank character inside the quotes is not alphanumeric, the stuff inside the quotes can be any combination of single-character specifications (see above) enclosed in angle brackets, or literal strings enclosed in just about any other character. For example: Comparison String Specification Resulting Comparison String ------------------------------- --------------------------- "ETAOIN" "ETAOIN" " SHRDLU " " SHRDLU " "<'L%E%E>/VI/" "LeeVI" " \ABLE\ <%W><%A><%S>/ I/" "ABLE was I" "" " " "" syntax error "<61 61>" "11" "<6161>" "q" TEM - Terminal EMulator program Page 19 TEM Error and Information Messages. Following is a list of some of the error and information messages that TEM generates, along with explanation and correc- tive action where appropriate. TEM - Attach terminal error on ddn:. $DSW = xxxx (decimal). TEM has failed to gain control of the specified terminal. The value returned is a directive error code, as docu- mented in the RSX Mini-Reference or other appropriate sys- tem manual. The most likely cause is an internal error in TEM. TEM - Attach terminal error on ddn:. I/O Status = xxxx (deci- mal). TEM has failed to gain control of the specified terminal. The value returned is an I/O error code, as documented in the RSX Mini-Reference or other appropriate system manual. The most likely cause is that someone else is using the specified terminal. TEM - Communicating with ddn: This is an informational message, telling you that TEM has successfully initiated with the remote terminal. TEM - Detach terminal error on ddn:. $DSW = xxxx (decimal). TEM has failed to release control of the specified termi- nal. The value returned is a directive error code, as do- cumented in the RSX Mini-Reference or other appropriate system manual. The most likely cause is an internal error in TEM. TEM - Detach terminal error on ddn:. I/O Status = xxxx (deci- mal). TEM has failed to release control of the specified termi- nal. The value returned is an I/O error code, as docu- mented in the RSX Mini-Reference or other appropriate system manual. The most likely cause is an internal error in TEM. TEM - Device ddn: is logged on. TEM will not communicate with a logged-on terminal. Wait for the user to log off, and try again. If you are on a non multiuser "M" system (or if you really DO want to grab someone's terminal while they're using it), try again us- ing the /OVERRIDE switch. TEM - Terminal EMulator program Page 20 TEM Error and Information Messages. TEM - Device ddn: is not a terminal. You are trying to communicate with a device which TEM does not support. The most likely cause is a typo. Check and re-enter the command. If the problem persists, see your system manager. TEM - Failed to assign LUN to device. $DSW = xxx (decimal). TEM could not find the remote device. The value returned is a directive error code, as documented in the RSX Mini-Reference or other appropriate system manual. The most likely cause is a typo. Under VAX-11 RSX, it could also be because you (or your system manager) have not created a $$nnn: assignment pointing to the remote device. Check and re-enter the command. If the problem persists, see your system manager. TEM - Get characteristics error on ddn:. $DSW = xxxx (deci- mal). TEM has failed to read the old setup of the specified ter- minal. The value returned is a directive error code, as documented in the RSX Mini-Reference or other appropriate system manual. The most likely cause is an internal error in TEM. TEM - Get characteristics error on ddn:. I/O Status = xxxx (decimal). TEM has failed to read the old setup of the specified ter- minal. The value returned is an I/O error code, as docu- mented in the RSX Mini-Reference or other appropriate system manual. The problem could be caused by unexpected I/O on the line, by an internal error in TEM, or by run- ning TEM on a system that does not have the required level of full-duplex TT: driver support. TEM - Ready for terminal input. This is an informational message. TEM has entered termi- nal mode; all characters entered from your terminal will be sent to the remote system. TEM - Run complete on ddn:. This is an informational message. TEM has relinquished control of the given device. TEM - Set characteristics error on ddn:. $DSW = xxxx TEM - Terminal EMulator program Page 21 TEM Error and Information Messages. (decimal). TEM has failed to set up the specified terminal as needed. The value returned is a directive error code, as docu- mented in the RSX Mini-Reference or other appropriate sys- tem manual. The most likely cause is an internal error in TEM. TEM - Set characteristics error on ddn:. I/O Status = xxxx (decimal). TEM has failed to set up the specified terminal as needed. The value returned is an I/O error code, as documented in the RSX Mini-Reference or other appropriate system manual. The problem could be caused by unexpected I/O on the line, by an internal error in TEM, or by running TEM on a system that does not have the required level of full-duplex TT: driver support. Use of the DIALOUT option under RSX-11M V4.0 or RSX-11M+ V2.0 will produce this error. TEM - Stopped. To restart, type MCR>xxxxxx This is an informational message. TEM has relinquished control of your local terminal. To get back into TEM, enter the specified MCR command. The equivalent DCL com- mand will also be displayed, if appropriate. TEM - Syntax error. Device spec not allowed "xxxx". The startup or shutdown command file has attempted to change the device TEM is communicating with. The unwanted device spec is in quotes. TEM - Syntax error. Duplicate switch "xxxx". You have specified the same switch twice (or more) on a single command line. This error can also result from specifying a switch and its negation on the same command line, or a switch and a synonym for it on the same command line. The second occurrance of the switch appears in quotes. TEM - Syntax error. Illegal device name "xxxx". The device name that appears in quotes has bad syntax. The required format is two alphabetic characters followed (optionally) by an octal number less than 400 (octal), followed by a colon (':'). TEM - Syntax error. Illegal file name "xxxx". TEM - Terminal EMulator program Page 22 TEM Error and Information Messages. The file name that appears in quotes has bad syntax. TEM - Syntax error. Illegal switch "xxxx". The switch that appears in quotes does not exist, or has been specified incorrectly. TEM - Syntax error. Illegal time spec "xxxx". The time spec that appears in quotes is illegal. The un- its may be invalid (must be 'T', 'S', 'M', or 'H'), you may have specified more than 32767 of them, or you may have specified a period of more than 24 hours. TEM - Syntax error. Illegally negated switch "xxxx". You may not negate the switch that appears in quotes. TEM - Syntax error. Number out of range "xxxx". The number that appears in quotes is out of range. TEM - Syntax error. Invalid attention character "xxxx". You are running TEM after having SET HOST (or RMT) into another system, and have specified a null as the attention character. The DECnet remote terminal facility ignores nulls. TEM - This task will not run under this operating system. TEM is only supported under RSX-11M, RSX-11M+, and RSX-11S. If you are in fact running under one of these, you have found a bug in TEM. If you are not, move to the appropriate system. TEM - Warning - Failed to open log file. $DSW = xxx (decimal). The session log file could not be opened. The value re- turned is a directive error code, as documented in the RSX Mini-Reference or other appropriate system manual. Check and re-specify the log file. If the problem persists, see your system manager. TEM - Warning - Failed to open log file. I/O Status = xxx (de- cimal). The session log file could not be opened. The value TEM - Terminal EMulator program Page 23 TEM Error and Information Messages. returned is a I/O error code, as documented in the RSX Mini-Reference or other appropriate system manual. Check and re-specify the log file. If the problem persists, see your system manager. TEM - Warning - ddnn: doesn't have software speed control. You have attempted to change baud rate or enable or dis- able carrier monitoring in an environment where this is not supported. This error occurs if you attempt to use the /REMOTE or /SPEED switches under VAX-11 RSX, or on a DL-11 or DJ-11. The switches that caused this error are ignored. TEM - Terminal EMulator program Page 24 Advanced Features - Making do without flow control TEM does not have any flow control capability, which makes it awkward to (say) drive a 4800 baud line from a 1200 baud terminal, or to use TEM when connected to your host via a pack- etized net. This kind of thing can be made to work (at least most of the time), provided you heed the following guidelines: * Try not to receive too much data at once, so the inbound ring buffer has time to empty. * When sending files, use the /QUIET switch. * If the remote system and your terminal support XON/XOFF flow control, don't negate the /RPA switch (the de- fault is /RPA). * Try to get the remote system to pad (more) nulls into its transmissions, and don't assert the /NULLS switch (the default is /NONULLS). This won't help if the problem is that there is a packetized net involved. * Rebuild TEM with bigger ring buffers - especially the inbound ring buffer. See "Installation Notes" below for how. TEM - Terminal EMulator program Page 25 Advanced Features - Batch mode operation. TEM can be initiated by the batch processor, or otherwise run on a virtual terminal. Generally, it works the same way as it does on a TT: terminal. However, the VT: driver does not support the "Attach for Unsolicited Input" function. In order to make input from the virtual terminal work more like it does on a real terminal, TEM issues an implicit /SEND:TI: under the following circumstances: * /NOCOMMAND is in effect * /SEND does not appear on the command line. There are, however, still several differences between in- put from a virtual terminal and input from a real terminal: * There is no way to feed the attention character to TEM. * TEM will prompt for a command after sending a file, rather than going into terminal input mode. This is true even if the /COMMAND switch is negated. * If the /QUIET switch is asserted, no input from the re- mote terminal will be written to the local (virtual) terminal under any circumstances. The /QUIET switch stil does not latch. There may be other differences, but these are the ones that come to mind. Since TEM is essentially unattended, you should make sure there is nothing that will cause it to stall, such as not re- ceiving an expected prompt character. You should consider specifying /NOPROMPT for such things as sending a series of carriage returns to an autobaud algorithm, where no prompt character can be returned. TEM - Terminal EMulator program Page 26 Advanced Features - Startup and Shutdown Command Files TEM has the optional capability to execute a startup com- mand file when it first attaches the remote terminal, and a shutdown command file just before it detaches the remote termi- nal. This feature is selected when TEM is assembled, by defin- ing symbol "LINSET". The startup command file is named LB:[1,5]ddnINI.TEM and the shutdown command file is named LB:[1,5]ddnKIL.TEM where "ddn" represents the name and unit number of the remote terminal. The unit number is specified with no leading zeroes, but an explicit "0" is required for unit 0 (eg: TT0INI.TEM, not TTINI.TEM). Neither file is required. The constant part of the file name is located at "SETDV:", if you need/wish to modify it. Because any switches on the user's command are assumed to refer to the new device, execution of the command line that triggered the startup/shutdown process is deferred until after the shutdown and startup command files have executed. There is one exception to this: the /HOLD switch is executed imme- diately. This lets the user enable or supress the execution of any startup or shutdown files implied by the command. There are two differences between the way a startup or shutdown command file is executed and the way a normal command file is executed. First, it is illegal to specify a device name in a startup or shutdown command file; an attempt to do so will result in a syntax error. Second, it is impossible to do keyboard input in a startup or shutdown command file. The current setting of the /COMMAND switch is ignored, and the file is processed as though it were asserted. Once the command file has completed, TEM begins paying attention to the /COMMAND switch again. The code that impliments the startup and shutdown command files is based on knowlege of the data structures used by the GCML$ package, which is documented in the I/O operations man- ual. These data structures are internal to GCML$, undocu- mented, and presumably subject to change without notice. On the other hand, GCML$ seems to be a fairly "stable" product, so this feature may continue to work indefinitely. Probably the thing most likely to change is the size or layout of a pushdown list entry. The default TEM installation enables this feature. For VAX-11 RSX, see the section on installation under VAX-11 RSX. TEM - Terminal EMulator program Page 27 Advanced Features - Extended Get Command Line Support Starting with RSX-11M V4.0 and M+ V2.0, an Extended Get Command Line package (EGCML) has been available. The only known documentation is in the SYSLIB help file, and it is woe- fully insufficient. This package was designed for the indirect command file processor, and any features not actually used by the "@" processor are likely not to work. Use of this package is selected at assembly time by defin- ing symbol "EXGTCM". Using this package allows you to specify the following switches on a command file: /LB Specifies that the command file is a universal library. An optional parameter specifies the name of the module to execute; if omitted, module ".MAIN." is executed. Any file with records of 512. bytes or larger is as- sumed to be a library, and module ".MAIN." is executed. The command "@/LB:module" is a special case. If issued from a library module, the specified module in the same library is executed; if not, "module.cmd" is executed. /DE Causes the command file to be deleted after execution. Unlike the corresponding "@" processor switch, this one seems to work. I have no idea what happens if you com- bine /LB and /DE on the same line. /ER The apparent intent of this switch is to prevent an er- ror from being returned if the specified file cannot be opened. Neither asserting or negating it seems to have any effect. Although the EGCML package has a way to force a call to a nested command file (the original reason for using this pack- age), it doesn't like it if the file cannot be opened. There- fore, startup and shutdown command files are implimented "by hand", just as in the GCML$ version. The difference is that EGCML is obviously not a stable product, and the pushdown stack is more complex. Because of this, and because of the greater size of the EGCML module(s), the default TEM installation uses GCML$ instead. TEM - Terminal EMulator program Page 28 Advanced Features - Accounting Support Since you might wish to use TEM to communicate over a long distance phone line, TEM has the capability to log the start and end time of all operations to an accounting file. Unfortu- nately, TEM has no way of knowing if a long distance call was in fact made; but at least the accounting log will tell you when one COULD have been made, and from where. Accounting log capability is built into TEM when it is as- sembled, by defining symbol "ACCNTG". The default installation is with "ACCNTG" defined. The account file resides on the same disk and UIC as the remote line startup and shutdown command files, but the file name is TEMACT.TEM. If you wish to modify this file name, you will find it in the code at "ACTFN:". You must create the ac- counting log yourself; if TEM cannot open an existing account- ing log file, operations will not be logged. It is suggested that you create the file with EDT, and provide a suitable head- ing for it. Whenever TEM initializes with or disconnects from a device, it will attempt to open the account log file, and ap- pend a record showing the date, time, local terminal name, re- mote terminal name, and type of transaction. If the file is already accessed for write, TEM will retry the open up to 5 times at 3 second intervals before failing. Any other open er- ror causes immediate failure. If TEM cannot update the ac- counting log file, NO ERROR MESSAGE is given to the user. The intent in general is that the casual TEM user be oblivious to the account log. TEM - Terminal EMulator program Page 29 Advanced Features - Named Directories, Logical Names, Decimal The distributed task image TEM.TSK has support for named direc- tories, logical names, and decimal version numbers. If you re- build TEM, you may or may not get these, as described below. * Named directory support is there, if you build TEM against a SYSLIB that supports it, and execute it on a system that supports it. TEM accepts anything inside square brackets as a directory spec, and lets FILES-11 worry about whether it's valid or not. There is one restriction: if the FEAT$ directive is not available, TEM will take your default directory to be the same as your UIC, no matter what it was when you invoked TEM. * What kind of logical name support you get depends on what value of RSXVER you assemble with. If you use no pre- fix file, you get RSXVER = 40. If you relink using TEM.CMD, you will get a prefix file with RSXVER appro- priate to your system. The cases are: 1. RSXVER = 32. This is the reduced-functionality TEM for RSX-11M V3.2 and RSX-11M+ V1.0. You get no logical name support whatever. 2. RSXVER = 40. This is for RSX-11M V4.0 and up, and RSX-11M+ V2.0 and 2.1. These systems do not support logical names. However, subset TLON$S func- tionality is included, so you can build TEM under these systems, transport it to VAX-11 RSX, and have it work. Because TLON$S is hard-coded, I can't guarantee that this will work forever, but it ought to be fairly stable. 3. RSXVER = 50. This is for RSX-11M V5.0 (if ever), RSX-11M+ V3.0, and VAX-11 RSX. Logical names are sup- ported. Note that at the moment, the only thing logical name support buys you is more complete functionality under VAX-11 RSX. TEM won't (yet) parse * Decimal version numbers will parse if your system has the FEAT$ directive and decimal version support - otherwise not. If TEM decides not to parse decimal version numbers, you can force it to by following the version number with a decimal point. This is probably not sup- ported by FILES-11, but it works with M+ V2.1. SYS$SYSREDUNDANT_COMM_DEVICE: (eg) as the name of a remote line. TEM - Terminal EMulator program Page 30 Advanced Operations - Aborting TEM Since TEM needs to modify the setup of the remote termi- nal, it is privileged (/PR:0). Since some of these modifica- tions are nasty (ie: NOECHO, RPA), TEM specifies an abort notification AST to allow it to put the remote line back the way it was originally. The astute RSX jockey will note that this combination effectively makes it impossible to abort TEM if the mainline is hung up. There SHOULD be no way for this to happen, but since TEM is not necessarily bug free, here is a way to handle it: * From another terminal, issue the MCR ATL command. The first number after the task name is the address of TEM's Task Control Block (TCB). Make note of it. * The "Privileged" bit (T3.PRV = 10000) is in the third status word of the TCB (T.ST3 at offset 36 from the start of the TCB). Open this word. If "xxxxx" is the TCB address noted above, you would use an MCR command like >OPE xxxxx+36/KNLD on an RSX-11M+ with kernel data space. Clear the "privileged" bit. * If you don't know what terminals TEM was running on, run the RMD task header display on it to find out. Make note, as you may have to restore setups after you fi- nally get rid of TEM. * Abort your copy of TEM, twice. Since your TEM is now an unprivileged task, the second abort will cause it to abort for real. * Check terminal setups on both the "local" and "remote" line, and replace any that are not as they should be. TEM sets the remote line /NOWRAP /FDX /FORMFEED /HFIL:0 /HHT /NOECHO /TYPEAHEAD /SLAVE /LOWER /NOVFILL /NOABAUD /RPA and possibly /[NO]REMOTE and /SPEED if the corresponding TEM switches have been used. TEM sets the local line /NOWRAP, and possibly /[NO]RPA, depending on whether you have used the /RPA switch, and on what it was doing when you killed it. * If any shutdown commands are required to the remote ter- minal, get back into TEM (carefully) and issue them. The usual warnings for any procedure using OPEn apply: the offsets are specific to RSX-11M+ V2.0; they are not guaranteed to be right (typos, you know); and your system is not guar- anteed to be running after you do all this. TEM - Terminal EMulator program Page 31 Installation notes. The default version of TEM occupies about 16K. This as- sumes you have not mapped it to any resident libraries. The major installation options have been covered above. There are some other customizations you can do. Some of these have been automated, and you can get them just by rebuilding TEM using TEM.CMD. * You should be able to taskbuild with the /ID and /MU switches if you so desire. I would not anticipate any need for the /ID switch, but /MU may be useful if you have a lot of users. I have not tried either, but TEM was coded with this in mind. * There is some trace logic built into TEM; you enable it by defining symbol "TRACE". * The size of the file buffers is determined by symbol "BUFSIZ". You can change it if you wish. The task will grow or shrink by (2 bytes)*(the size of your change). You should not make BUFSIZ greater than OUR- SIZ. * The size of the inbound ring buffer is determined by sym- bol "INRSIZ". You can change this if you wish. The task will grow or shrink accordingly. It can be help- ful to increase this when running full-screen applica- tions (eg: EDT, RMD), if your terminal is connected to the system TEM is executing on via a packetized net- work. * The size of the outbound ring buffer is determined by symbol "OURSIZ". You can change this if you wish. The task will grow or shrink accordingly, but it should not be made less than BUFSIZ. * There is a built-in timeout on synchronous I/O of 10 seconds. The magnitude and units are defined by sym- bols "SYNTOM" and "SYNTOU". Before making this timeout terribly long, you should consider that this timeout is what bails you out if another task has attached your remote terminal. * The initial settings (asserted or negated) of all switches defined under "SWASS:" can be changed by changing the definition of symbol SWINIT as shown in the table below: To assert Set bit ------------ ------- /DELAY SWPAU /ECHO SWECH /LOG SWLOG /NULLS SWNUL /EOF SWEOF /LIST SWLIS /TERMINAL SWDTE TEM - Terminal EMulator program Page 32 Installation notes. /HOLD SWHLD /MONITOR SWMON /RPA SWRPA /COMMAND SWCMD /PROMPT SWPMP Note that if you assert /LOG in this manner, you may have to modify the code to get the log file opened properly. The initial switch parameter values can be changed by modifying as follows: To change Modify --------------------- ------- /DELAY magnitude RCDLAY: /DELAY units RCDUNT: Attention character ATNBYT: End-of-file character EOFBYT: Prompt character PMPBYT: /ASSIGN setting ASGTBL: /TRANSLATE setting TRNTBL: /MAXBUFFER setting Code in ENTRY: /LOG default filespec LOGFNB: /SEND default filespc SNDFNB: * The initial /PARITY setting can be changed by initializ- ing PARSPC: to the appropriate offset in PARTBL: (found by subtracting the address of the entry for your desired parity from the address of the PARTBL: label), and by initializing ASGTBL: to the appropriate parity. The latter will probably require a semi-sophisticated macro, which I didn't feel like writing. * The initial /CHECKPARITY substitution character can be changed by initializing BADPAC: to the desired char- acter. Be sure the high bit is off. If you want to initialize with parity checking turned on, you must set the high bit in BADPAC:, and initialize all entries in BADPAC: that represent invalid parity (under whatever your default parity is) to the desired character. The latter seems to call for another sophisticated macro. * Desired setups for the new terminal are at "TERNMC:". Any "static" setups for the remote terminal can be changed by modifying here. Any setups involving actual device control should appear below "TERNDL:" so they can be no-opped for controllers without device control (eg: DL-11, DJ-11). Setups involving only software settings in the TT: driver should appear above "TERNDL:". If you add a setup to the list, it would be polite to add it to the list of saved original settings at "TEROMC:". "TERODL:" performs the same function in this table as "TERNDL:" does in table "TERNMC:". "Switchable" settings cannot be modified this way. The initial settings for /REMOTE and /SPEED are determined in subsoutine "TERSET:". TEM - Terminal EMulator program Page 33 Installation notes. * Similarly, the desired setups for the local terminal are at "TELNMC:". The originals are at "TELOMC:". No device control is performed on the local terminal; TEM assumes that speed (and so on) are already pretty much where you want them. That about covers the easy modifications. TEM could in principle be converted to 8 bit operation, but there is no cen- tral place to do this. You would have to double the size of the assign table, and change all the bit masks. You might also want to add an "8BIT" switch. TEM - Terminal EMulator program Page 34 Installation under VAX-11 RSX I have limited experience with TEM under VAX-11 RSX. There are, however, a couple things that look obvious: 1. You must have VAX-11 RSX installed on your system. The AME probably won't cut it. 2. If you want to use startup/shutdown command files or accounting, you will have to create a directory to hold the files: $ CREATE/DIRECTORY SYS$SYSROOT:[001005] will do it for the default TEM. 3. You will need to $ ASSIGN/SYSTEM/EXECUTIVEMODE device: $$nnn: for each terminal that you want to run TEM against. This assign should go in SYS$MANAGER:VAX11RSX$DEVICE_NAMES.COM Note that the TEM users can use the physical device name - they do not have to use the $$nnn: assignment. Also, you don't need to do this for the null device. You are referred to the VAX-11 RSX manual for more on device name mapping. 4. The terminals you intend to use for remote lines must be $ SET TERMINAL xxx:/TYPEAHEAD/SPEED=nnnn/PERMANENT as VAX-11 RSX does not seem to support having TEM do this on its own (at least under some versions). Also, you need to set them to the modem control you want, as TEM can't handle this either. 5. Automatic startup and shutdown command files are named after the VMS physical device being used. For exam- ple, if you are running on TXA1, the files are SYS$SYSROOT:[005001]TXA1INI.TEM and SYS$SYSROOT:[005001]TXA1KIL.TEM respectively. Note that if you contrive to run TEM against a device whose physical name does not tran- slate into a legal RSX filespec (eg: one of those "$n$" things), you can't have a startup or shutdown command file for this device. 6. TEM cannot support subdirectories because VAX-11 RSX doesn't. At least that's what the book says. If your current default directory is a subdirectory, it seems to work OK. 7. If you want nonprivileged people to be able to execute TEM, you need to install it with SYSPRV and TMPMBX. You may also want to install it with an elevated priority. 8. It may be advantageous to rebuild TEM with a larger inbound ring. An inbound ring of 2048 bytes allowed TEM to run acceptably on a moderately loaded 11/780 at TEM - Terminal EMulator program Page 35 Installation under VAX-11 RSX priority 4. 9. When I went to rebuild TEM under VMS, I had trouble with MAC and TKB not finding the device WK0:. This turned out to be that SYS$MANAGER:VAX11RSX$DEVICE_NAMES.COM needed to define a $$n name pointing to SYS$SCRATCH. 10. You can set up TEM as a "foreign" command by defining a global symbol that refers to it. For example, if you have put TEM.TSK in SYS$SYSTEM, $ TEM :== $SYS$SYSTEM:TEM.TSK 11. If you invoke TEM as a foreign command, any apos- trophes required by the TEM syntax need to be doubled so VMS doesn't take them as orders to perform symbol substitution. This does not apply once you're inside TEM. For example, $ TEM TXA1:/ATTENTION:''~ is required from DCL, but TEM>TXA1:/ATTENTION:'~ is OK from inside TEM. 12. TEM requires all parts of all filenames to be valid RSX-11 filespecs. That is, the following are FORBIDDEN: 1. VMS-style device names 2. Directory names longer than 9 characters or con- taining "$" or "_" 3. Directory numbers (UIC format) with group or member numbers in decimal, or greater than 377 oc- tal. 4. File names longer than 9 characters or containing "$" or "_" 5. File types longer than 3 characters or containing "$" or "_" 6. Version numbers larger than 77777 octal (32767. decimal). TEM - Terminal EMulator program Page 36 Revision history Following is a revision history of TEM, going back to the Spring 1983 DECUS version (84.131, dated 10-May-1984). Version Date Revision(s) 84.169 17-Jun-1984 Patch /NOREMOTE Add single-argument /SPEED 84.173 21-Jun-1984 /SPEED and /REMOTE illegal on DL11 and DJ11 84.177 25-Jun-1984 Cancel control/s on remote line 84.194 12-Jul-1984 Make /SPEED and /REMOTE no-ops on DL-11 and DJ11, with warning 84.213 31-Jul-1984 Add /TRANSLATE 84.221 08-Aug-1984 Beef up attention and abort code 84.223 10-Aug-1984 Add /PARITY Add /DELAY as synonym for /PAUSE /PA NOW MEANS /PARITY, NOT /PAUSE 84.240 27-Aug-1984 Don't apply parity to translation tbl 84.241 28-Aug-1984 Default to /NOMAXBUFFER 84.244 31-Aug-1984 Add /CHECKPARITY 84.269 25-Sep-1984 Default to /RPA /TERMINAL now implies /NORPA /NOTERMINAL now implies /RPA 84.270 26-Sep-1984 Add /STOP 84.272 28-Sep-1984 Correct the /NULL code 84.292 18-Oct-1984 Add /EXIT 84.296 22-Oct-1984 Beef up attention character code 85.008 08-Jan-1985 Attempt to conditionalize for RSX-11M V3.2. This is the January 1985 DECUS library version, and the Spring 1985 DECUS version. 85.143 23-May-1985 Add /OVERRIDE, /THROTTLE 85.227 15-Aug-1985 Add the :DIALOUT option to /REMOTE. Thanks to Ed Cetron for the idea. Also optimize switch presence code. 85.255 12-Sep-1985 Do /REMOTE in 2 QIOS instead of one, to TEM - Terminal EMulator program Page 37 Revision history try to get settings that SET /REMOTE changes. 85.269 26-Sep-1985 Check for the string "Password" (case in- sensitive) when set /REMOTE, and reassert terminal setups (since TT: driver resets on carrier sense and doesn't tell any- one). Also bypass logged-in terminal check for RSX-11S. 85.323 19-Nov-1985 Make TEM serially reusable, so that it can be used under RSX-11S without re- loading. Add the /PERMANENT switch, to make per- manent changes in the remote terminal database. 85.325 21-Nov-1985 Add /CARRIER switch, to control the re- assertion of remote terminal character- istics after acquisition of carrier. 86.014 14-Jan-1986 Remove device name dependance; rely on device characteristics instead. Modify terminal setups to work under VMS. 86.015 15-Jan-1986 Parse VMS-style device names. 86.055 24-Feb-1986 Fix problem with attention character af- ter /SEND. 86.056 25-Feb-1986 Extend setup and takedown command file support to be useful under VMS. Also, put system-wide files on LB:, not LB1:, and parse decimal version numbers. 86.062 03-Mar-1986 Disable privilege around file opens, so unprivileged user can't use TEM to snoop. 86.093 03-Apr-1986 Allow file buffers and rings to be sized independantly. This is the Spring 1986 DECUS version. 86.233 21-Aug-1986 Default the input ring buffer size to 2048. bytes. Also, allow /PERMANENT if the connection was made using the /OVERRIDE switch. 87.058 27-Feb-1987 Use GIN$ to get user name from accounting and add to TEMACT.LOG transactions. 87.071 12-Mar-1987 Add /TURNAROUND switch. Conditionalize the "explicit default directory" code in 86.056, which is only needed due to a bug in a par- ticular release of VAX-11 RSX. TEM - Terminal EMulator program Page 38 Revision history 87.077 18-Mar-1987 Fix bug that broke batch support. This bug was probably introduced in version 86.014.