Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ wsiris(1C) — GL2 W2.5r1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(1)

mex(1G)

ps(1)

reboot(1M)

reset(1)

stty(1)

signal(2)

WSIRIS(1C)  —  Silicon Graphics

NAME

wsiris − remote login with graphics

SYNOPSIS

wsiris [ options ] [ hostname ]

DESCRIPTION

wsiris connects your window to a login listener on the remote host named hostname. It recognizes the escape sequences generated by the Remote Graphics Library allowing a remote program to create local graphics.

Communications to the remote system can be over 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.  If IEEE 488 devices exist on the IRIS and hostname is serial, the login is done over a serial line and the IEEE 488 bus is used only for the graphics.  If no hostname argument is given, wsiris prompts for one. 

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 receive 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.  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. 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). 

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. 

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 reboot(1M). 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. 

When the window manager is not used, textport output can 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.  The interfence can also 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.  (This problem does not exist when using wsiris under the window manager.  All graphics are sent to a separate window distinct from the textport.) 

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
LOGFILE.0default logfile name
/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), reboot(1M), 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 graphics initialization command (ginit, begin, getport, or winopen), 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) in another window 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 window 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 window 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.

Version 2.5r1  —  October 29, 1986

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026