
         . 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                         TEM - Terminal EMulator program 
                         --- - -------- -------- ------- 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
                                                 T. R. Wyant 
 
                                                 16-May-1984 
 
                                            Rev: 03-Apr-1986 

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 
         image. 
 
              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. 
         Details  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 individu- 
         al preferences, and to circumvent limitations in DEC's standard 
         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 
         delay  after  each record is available to avoid loading the re- 
         mote system too heavily.  While data  from  an  input  file  is 
         being  sent,  all keyboard input except the attention character 
         is ignored.  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><device><switches> 
         or 
             TEM>@filename 

TEM - Terminal EMulator program                                   PAGE 8 
TEM commands. 
 
 
              In the first case, "<device>" 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  accept- 
         ed.  <Switches> represents one or more function switches.  Both 
         "<device>" and "<switches>" 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  dev- 
         ice,  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  com- 
         mand  line will be executed after the shutdown and startup com- 
         mand 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, 
         "/TERMINAL" implies "/ECHO" (among others).   Implied  switches 
         can  be  overridden  by explicit switches on the same or subse- 
         quent command 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 meaning.  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 speci- 
                 fy  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 
                 /REMOTE.  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  charac- 
                 teristics  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 either order.   Omitted  parameters 
                 default  to the last value specified.  The initial set- 

TEM - Terminal EMulator program                                  PAGE 10 
Switches. 
 
 
                 ting is  
                         /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 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: 
 
                     If you invoked TEM as "TEM  @file",  when  TEM  en- 
                         counters  a syntax error, or the end of the top 

TEM - Terminal EMulator program                                  PAGE 11 
Switches. 
 
 
                         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 re- 
                 sults.  In particular, combinations like 
                         <CR><NUL><LF> 
                 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 <CR>.  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 
                 The file version number is interpreted as being in  de- 
                 cimal  if running under RSX-11M+ V3.0 and up, or VAX-11 

TEM - Terminal EMulator program                                  PAGE 12 
Switches. 
 
 
                 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 < <bufsiz>  (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 
                 error.   If  the switch is negated, no parameter is al- 
                 lowed, and <bufsiz> 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 
                 <LF>, <VT>, <FF>, and <CR> 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.   Under 
                 RSX-11M+ and RSX-11M, the default is 
                         /NOOVERRIDE 
                 Under RSX-11S and VMS, this  switch  is  ignored.   The 
                 logon 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 
                 will be eliminated in a future release of TEM. 
 

TEM - Terminal EMulator program                                  PAGE 13 
Switches. 
 
 
             /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 
                 Specified that any remote line  characteristics  speci- 
                 fied on the same line with the /PERMANENT switch are to 
                 be retained (or restored) when TEM  exits.   Currently, 
                 only  /SPEED  and /REMOTE are so affected.  This switch 
                 functions only under RSX-11S, and was invented  chiefly 
                 as a proxy for the SET commands under that system. 
 
             /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 immediate- 
                 ly.  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 config- 
                 ured  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 
                 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 

TEM - Terminal EMulator program                                  PAGE 14 
Switches. 
 
 
                 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 di- 
                 alout  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 
                 reset  several terminal characteristics that are criti- 
                 cal to the operation of TEM whenever  it  detects  car- 
                 rier.   To  counteract  this,  TEM scans for the string 
                 "Password", and reasserts the  desired  characteristics 
                 when this string is seen.  The string comparison is not 
                 sensitive to case. 
 
             /RPA 
                 Specifies  that  ALL  control   characters   (including 
                 control/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 termi- 
                 nal.  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.   
 
                 THIS SWITCH DOES NOT LATCH.   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 command file is executed. 
                 The default file name elements are 
                     SY:TEM.INP 
                 The file version number is interpreted as being in  de- 

TEM - Terminal EMulator program                                  PAGE 15 
Switches. 
 
 
                 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 <LF> to every <CR> entered  from  the 
                       terminal. 
                     TEM sends a <CR><LF> to the remote terminal  before 
                       prompting for input from the local terminal. 
                     The following switches are implied: 
                       /ECHO/NOEOF/NOPAUSE/NOPROMPT/NORPA 
                 The initial setting is 
                         /NOTERMINAL 
 

TEM - Terminal EMulator program                                  PAGE 16 
Switches. 
 
 
             /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 decre- 
                 ase 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 
 
             / 
                 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: 
 
                 <Octal number>          (Low byte used) 
                 <Decimal number>.       (Low byte used) 
                 '<Character>            (ASCII value) 
                 ^<Character>            ((ASCII value)&37) 
                 %<Character>            ((ASCII value)!140) 
                 NU or NUL or NULL       0 
                 SOH                     1 (^A) 
                 STX                     2 (^B) 
                 ETX                     3 (^C) 
                 EOT                     4 (^D) 

TEM - Terminal EMulator program                                  PAGE 17 
Switches. 
 
 
                 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 
                 <Unspecial character>   (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 <EOT> to <CR>. 
 
              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 compar- 
         ison that is insensitive to case.  If the first non-blank char- 
         acter 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 

TEM - Terminal EMulator program                                  PAGE 18 
Switches. 
 
 
         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\ <SP> <%W><%A><%S>/ I/" "ABLE was I" 
         "<SPACE SPACE>"                 "  " 
         "<SPACESPACE>"                  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 document- 
              ed in the RSX Mini-Reference or other  appropriate  system 
              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 sys- 
              tem 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 
              using 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 cre- 
              ated  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 sys- 
              tem 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. 
 
 
         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  (deci- 

TEM - Terminal EMulator program                                  PAGE 21 
TEM Error and Information Messages. 
 
 
              mal). 
 
              TEM has failed to set up the specified terminal as needed. 
              The value returned is a directive error code, as document- 
              ed in the RSX Mini-Reference or other  appropriate  system 
              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 
              units  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  re- 

TEM - Terminal EMulator program                                  PAGE 23 
TEM Error and Information Messages. 
 
 
              turned  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 
         input 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 immediate- 
         ly.   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  manu- 
         al.  These data structures are internal to GCML$, undocumented, 
         and presumably subject to change without notice.  On the  other 
         hand, GCML$ seems to be a fairly "stable" product, so this fea- 
         ture 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 
                 error  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. 
         Therefore,  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 installa- 
         tion 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. 
         Unfortunately,  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  dev- 
         ice, it will attempt to open the account log file, and append a 
         record showing the date, time, local terminal name, remote ter- 
         minal  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 error causes 
         immediate failure.  If TEM cannot  update  the  accounting  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  aga- 
                 inst  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 functi- 
                          onality  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  no- 
         tification  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  hap- 
         pen,  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 sec- 
                 onds.   The  magnitude and units are defined by symbols 
                 "SYNTOM" and "SYNTOU".  Before making this timeout ter- 
                 ribly  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 dev- 
                 ice 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  pri- 
                  ority. 
 
              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 
                      octal. 
 
                  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. 

