RSX11M/DECNET VIRTUAL TERMINAL SUPPORT Greg Thompson (Informatics/PMI) 4/16/78 Version 1.0 for RSX11M V3.0 and DECNET V1.2 This document describes the virtual terminal support available on RSX11M systems with DECNET which allows a terminal on one DECNET host to logically be connected as a terminal on another DECNET host. Once a connection is established the initiating terminal appears on the remote host just like any other remote terminal and is required to log-in to the remote system using HELLO as usual. The connection is as fully transparent as possible including the support of running RMDEMO or EDT over the virtual terminal connection. The support consists of two tasks and one loadable driver entitled CON, TELNET, and RTDRV. It requires the DECNET software and many functions of the full user-oriented terminal driver. The RTDRV requires loadable device driver support but can be easily changed to be a resident driver if desired. The software, as provided, supports up to eight virtual terminals on each host, although the number of terminals supported is simply an assembly parameter in TELNET and RTDRV and may be modified if desired. Only RTDRV need be built for the particular host and the software does not require a new sysgen as long as the required functions are already available. The CONNECT task is the user side of the virtual terminal software and allows a user to connect to the virtual terminal server software on a remote host. Even though the CON task is a privileged task (so write-break-throughs will work), it is based on APR0 and need not be rebuilt for each system. The connection is initiated by issuing the command "CON " where is a valid DECNET host name for the local host. When the connection is established the virtual terminal driver on the remote host returns a message indicating to which virtual terminal the user is connected. The CON task has two local commands which allow the user to disconnect from the remote host and to temporarily suspend a connection inorder to issue commands to the local host after which he (or she) may reconnect using the RESUME command. Local commands are preceeded by a number sign "#" as the first character of a line. If it is desired to send to the remote host a line with the first character a number sign, two number signs should be used instead. The local commands; #END, #CLOSE, #QUIT or #EXIT close the connection while #SUSPEND or #PAUSE suspend the connection. If a user forgets to issue BYE before disconnecting, a BYE is automatically issued for him. Even though DECNET does not support route through, issuing a CON on the remote host inorder to connect to a host local to it is explicitly allowed. Of course the user must still have an account on the remote hosts inorder to log-in and each remote host must have allowed virtual terminal connections by installing the TELNET task and loading the virtual terminal driver (RT:). Some caution must be observed when using CON from the operators console since CON attaches the terminal (with unsolicited input AST) and any messages intended to the terminal are held up until the connection is ended or suspended. This is particularly a problem on our systems since our HELLO and BYE tasks report the logging in and out of users to the operators console. TELNET (from ARPANET's TELecommunications NETwork protocol) is a non-privileged server task that interfaces between DECNET and the virtual terminal driver. Since it is a non-privileged task it also does not need to be rebuilt for each host. It contains 24 buffers of 142 bytes each (both assembly parameters) which are dynamically allocated to connections as necessary inorder to keep the exchange of messages between CONNECT and RTDRV as rapid as possible. RTDRV is the loadable device driver for the virtual terminal support. It implements additional terminal type devices under the device name "RTx:". where x ranges from 0 to one less the number of virtual terminals supported. It accept all of the functions codes supported by the TT: driver along with IO.CON, IO.XMT, IO.RCV, IO.DIS and IO.CTL which the TELNET task uses to communicate to the driver. To disable virtual terminal connections to a node simply unload the RT: driver on that node. When no user is connected to a given virtual terminal number the DISABLED bit for that terminal is set and is cleared as soon as someone is connected to that virtual terminal. The sizes of the software modules (with current assembly parameters) are 2.5K words for the CONNECT task, 2.9K words for TELNET and .9K words for the virtual terminal driver. The virtual terminal software was written under contract to NASA/Ames Research Center and is therefore in the public domain. The only currently known bug which will be fixed in the ungrade to DECNET V2 is the fact that when a task attaches RTx: the unsolicited input is not tossed away and this can cause problems when used with EDT if you type to fast.