WSIRIS(1C) — Silicon Graphics
NAME
wsiris − emulate an IRIS terminal on an IRIS workstation
SYNOPSIS
wsiris [ options ] [ hostname ]
DESCRIPTION
wsiris allows a workstation to emulate an IRIS terminal communicating with the remote host hostname. A series 1000 workstation will emulate a series 1000 terminal; a series 2000 workstation will emulate a series 2000 terminal; and a series 3000 workstation will emulate a series 3000 terminal. Communications to the remote system can be via a full- or half-duplex serial line, using an IEEE 488 bus, or via Ethernet using XNS or TCP/IP procotols. The special hostnames ‘serial’ and ‘ieee488’ are used to select the the serial line or the IEEE 488 bus, respectively. When the remote machine does not allow logins over the IEEE 488 bus, when an IEEE 488 device is being used on the IRIS and when hostname is ‘serial’, the login is done over a serial line and the IEEE 488 bus is used for graphics only. If no hostname argument is given, wsiris prompts for one. The contents of a file .wsirisrc in your home directory, if there is one, are used as additional arguments. They are parsed before those arguments specified on the command line.
The options are:
−d n Debugging option. Multiple −d options can be given. The legal values for n are:
1 Generate a logfile of the communication between the workstation and the host. The log is written to LOGFILE.0 in the current directory. What the logfile contains is described below.
2 Have the receive process (see below) not catch SIGBUS or SIGSEGV signals (see signal(2)), but allow it to core dump.
3 The next argument is used for the name of the logfile created by the −d 1 option in place of LOGFILE.0.
4 To be implemented in the future.
5 The transmit process (see below) will be killed when any of the four routines which initialize the graphics are called: ginit, gbegin, getport, and winopen. This is useful when debugging the transmit process.
−e c Set the escape character from the default ‘~’ to c. Lines beginning with the escape character are given special treatment (see below). If c is none, there will be no escape character.
−f Don’t read ~/.wsirisrc for additional arguments.
−h Use half-duplex serial communications. The default is full-duplex.
−i When using Ethernet communications, an XNS connection to hostname is attempted first. If that fails, a connection using TCP/IP is then attempted. Giving the −i option causes an TCP/IP connection to be tried first.
−l line Use device line for the serial connection. Line must begin with either ‘/dev/’ or ‘tty’. The default line is /dev/ttyd2 (port 3).
−p Print textport output even when the textport has been turned off. By default, after the receipt of a tpoff command from the remote system, all textport output is thrown away until a tpon is received. (See the IRIS User’s Guide for information on tpoff and tpon.) The −p option inhibits this, and characters written to the textport will appear when it is turned on again.
−s speed Use speed baud for serial communications. See stty(1) for the allowed values. The default on series 1000 and 3000 workstations is 9600 baud. The default on series 2000 workstations is read from the configuration switches. See the IRIS Workstation Guide, Series 2000 , for the meanings of the configuration switch settings.
−x Enable local XON/XOFF flow control. Normally when read from the standard input the characters XON (CTRL/Q) and XOFF (CTRL/S) are sent to the remote system. Specifying this option causes them to be used locally to stop and restart the display of text. When using serial communications, this option also enables the use of these characters by the serial driver of the IRIS for automatic flow control of data being received from the host. This automatic flow control is normally disabled as it will not work correctly if there are two independent sources of these characters.
−y If using serial communications, interpret XON and XOFF characters from the remote host as output flow control commands. By default, they are treated are ordinary data. This flag must NOT be given if eight-bit (fast mode) communications are to be used.
−z n Special instructions. Multiple −z options can be given. The legal values for n are:
1 Interpret ginit commands as gbegin’s. (See the IRIS User’s Guide for information on ginit and gbegin.) This instruction is ignored on series 1000 workstations.
2 Execute a ginit immediately upon startup. This is useful when wsiris has had to be restarted and the remote program is still sending graphics commands.
3 When attempting a connection using Ethernet communications, only try one network protocol instead of both. TCP/IP is tried if the −i flag is given, and XNS if it isn’t.
4 Emulate a Tektronics 4010 (series 2000 and 3000 workstations only).
After making the remote connection, wsiris runs as two processes: receive and transmit. The transmit process reads data from the standard input and, except for lines beginning with the escape character, passes them to the remote system. The receive process accepts data from the remote system, interpreting graphics commands and passing textport characters to the standard output. Sometimes more than two processes are run. In half-duplex mode, the receive process accepts its input from a pipe which is written to by the transmit process and by a third process which does the reading of data from the remote system. When using the IEEE 488 bus and a serial line together, the receive process also reads from a pipe, but there are two processes which write to it: one reads the serial line and the other reads the IEEE 488 device. Closing the remote connection, e.g. by logging out, will cause all wsiris processes to exit.
When the escape character ‘~’ appears at the beginning of a line (i.e., the previous character was a RETURN or a NEWLINE), the transmit process makes the following interpretations:
~~ Send a single ‘~’.
~. Force wsiris to exit. Ethernet connections are closed, but serial connections may remain open.
~! Escape to an interactive shell on the local system. The value of the environment variable SHELL determines which shell is executed. If wsiris finds the environment variable CMDNAME is set, this local shell will have it set to:
wsiris:hostname
This is useful for altering shell prompts so that you are aware that you are in a sub-shell. Exiting the shell returns you to the remote host, or to the IRIS, if the connection has been closed.
~DEL Reboot the IRIS using /etc/reboot. You are asked for a confirmation. This command will only succeed for the super-user.
~BREAK If using serial communications, send a break character.
~%Dn Toggle the value of the −d n option. Logging can be interactively turned on and off with ~%D1. When logging is turned on in this way, the current logfile is appended to. If n is 3, the new logfile name consists of all characters following the 3 until terminated by a RETURN. If logging is enabled, the current logfile is closed and the newly named one opened. Subsequent log output is appended to it. Specifying a null filename causes the name of the current logfile is displayed. ~%D2 is ignored.
~%Mn Set the monitor type to n. The meanings of n are:
030 Hz
160 Hz
2NSTC
350 Hz
9PAL
This is ignored on series 1000 workstations.
~%P Toggle the value of the −p option.
~%R Reset the display by forcing a ginit and a tpon to be executed. This will load the default color map and turn on the textport which should make something visible. If the window manager mex(1G) is running, the color map will be further restored by executing any ‘mapcolor’ commands found its configuration file, ~/.mexrc.
~%Sspeed Change the serial communications baud rate to speed. The same values are accepted as with the −s option. The speed value input is terminated with a RETURN.
~%T Textport toggle. Turn on the textport if it is off, and off if it is on. When turned off, the textport does not automatically disappear. Hence, if it appears that the remote system is not echoing input and it should be (especially after interrupting a graphics program), the textport may in fact be off. Use this command to turn it back on.
~%U Unlock the keyboard. Whenever the IRIS is accepting graphics commands, the receive process locks the keyboard, and input from it is thrown away. Use this command to force characters through to the remote system, such as the interrupt character to kill the remote program. The keyboard will be locked again at the next switch back into graphics mode.
~%X Toggle the value of the −x option.
~%Zn Toggle the value of the −z n option. Presently, the only valid value for n is 1.
The escape character can be changed from ‘~’ with the −e option. If −e none is given, there is no escape character and none of the above interpretations occur. In this case, note that there is no way to force wsiris to exit.
IRIS terminals suffer from the problem of having textport output interfere with graphics. If something is printed within a graphics program, either the textport pops up and destroys the image, or the textport and the graphics viewport must be carefully arranged so that there is no interference. This problem is eliminated when using wsiris under the window manager. All graphics are sent to a separate window distinct from the textport. Without the window manager, this problem can still be eliminated by invoking wsiris from an ASCII terminal connected to one of the other serial ports instead of from the console. When this is done, the ASCII terminal is used for textport input and output, and the graphics appear unchanged on the console. Note that the Graphics Library keyboard device will still be the console keyboard.
If the remote program queues the keyboard, all keystrokes will normally end up in the event queue. To divert them to wsiris, in order to, for example, give it one of the ‘~’ commands described above, hold the SETUP key down while typing. The events from individually queued keyboard keys are also not placed in the queue while SETUP is down.
Graphics commands and data are interpreted and written to the logfiles created by the −d 1 option and the ~%D1 command as a command name and a series of arguments. The arguments are shown as type=value, where type is a single character representing the type of argument:
a,A array
b,B byte (8 bits)
ccharacter string
f,F float (32 bits)
l,L long (32 bits)
s,S short (16 bits)
ological (8 bits)
Ological (32 bits)
If the character is capitalized, then the the argument was sent by the IRIS, otherwise it was sent by the remote system. The value of array types is always ‘array’.
FILES
~/.wsirisrcfile containing default arguments
~/.mexrcwindow manager configuration file
/etc/hostsTCP/IP host table
/etc/reboot program used to reboot (~DEL command)
/dev/ttyd?serial devices
/dev/ib[12]IEEE 488 devices
SEE ALSO
kill(1), mex(1G), ps(1), reset(1), stty(1), signal(2).
IRIS User’s Guide
IRIS Workstation Guide
IRIS Owner’s Guide
BUGS
wsiris is only as robust as any other workstation graphics program. In particular, if the remote program tells it to execute a graphics command without having first sent it a ginit, the receive process will core dump. Normally, this causes the transmit process to be killed, but in some cases it may still be active, happily accepting keyboard input which should be going to the shell. Should this happen, execute ps(1) on another terminal to find its process number and kill(1) it. If half-duplex serial communications were being used, there will be two processes to kill. You may also have to use reset to put the terminal back into a sensible state (for directions, see reset(1)).
When using serial communications, characters may be dropped if there is any activity, e.g. typing a command or listing a file, on another textport or terminal. There is no way to recover from this other than to restart the remote program.
It is not possible to login to the remote machine using only IEEE 488. The serial line must be used as well − use ‘serial’ for hostname. Revision 1.2 86/03/24 15:17:10 lori herb’s change
Revision 1.1 86/03/05 09:29:20 lori v2.0 UPM for 2.4/3.4 release
Version 2.4 — May 08, 1986