NWG/RFC# 734 MRC 07-OCT-77 08:46 41953
SUPDUP Display Protocol Page 1
Network Working Group Mark Crispin
Request for Comments 734 SU-AI
NIC 41953 7 October 1977
SUPDUP Protocol
INTRODUCTION
This document describes the SUPDUP protocol, a highly efficient display
telnet protocol. It originally started as a private protocol between the
ITS systems at MIT to allow a user at any one of these systems to use one
of the others as a display. At the current writing, SUPDUP user programs
also exist for Data Disc and Datamedia displays at SU-AI and for
Datamedias at SRI-KL. The author is not aware of any SUPDUP servers other
than at the four MIT ITS sites.
The advantage of the SUPDUP protocol over an individual terminal's
protocol is that SUPDUP defines a "virtual" or "software" display terminal
that implements relevant cursor motion operations. The protocol is not
built on any particular display terminal but rather on the set of
functions common to all display terminals; hence it is completely device-
independent. In addition, the protocol also provides for terminals which
cannot handle certain operations, such as line or character insert/delete.
In fact, it is more than this. It provides for terminals which are
missing any set of features, all the way down to model 33 Teletypes.
The advantage over the TELNET protocol is that SUPDUP takes advantage of
the full capabilities of display terminals, although it also has the
ability to run printing terminals.
It is to be noted that SUPDUP operates independently from TELNET; it is
not an option to the TELNET protocol. In addition, certain assumptions
are made about the server and the user programs and their capabilities.
Specifically, it is assumed that the operating system on a server host
provides all the display-oriented features of ITS. However, a server may
elect not to do certain display operations available in SUPDUP; the SUPDUP
protocol is far-reaching enough so that the protocol allows terminals to
be handled as well as that host can handle terminals in general. Of
course, if a host does not support display terminals in any special way,
there is no point in bothering to implement a SUPDUP server since TELNET
will work just as well.
A more complete description of the display facilities of SUPDUP and ITS
can be found by FTP'ing the online file .INFO.;ITS TTY from ARPAnet host
MIT-AI (host 206 octal, 134. decimal). For more information, the mailing
address for SUPDUP is "(BUG SUPDUP) at MIT-AI". If your mail system won't
allow you to use parentheses, use Bug-SUPDUP@MIT-AI.
NWG/RFC# 734 MRC 07-OCT-77 08:46 41953
SUPDUP Display Protocol Page 2
BACKGROUND
The SUPDUP protocol originated as the internal protocol used between parts
of ITS, and between ITS and "intelligent" terminals. Over the network, a
user host acts like an intelligent terminal programmed for ITS.
The way terminal output works in ITS is as follows: The user program
tells the system to do various operations, such as printing characters,
clearing the screen, moving the cursor, etc. These operations are formed
into 8-bit characters (using the %TD codes described below) and stored
into a buffer. At interrupt level, as the terminal demands output,
characters are removed from the buffer and translated into terminal
dependent codes. At this time padding and cursor motion optimization are
also done.
In some cases, the interrupt side does not run on the same machine as the
user program. SUPDUP terminals have their "interrupt side" running in the
user host. When SUPDUP is run between two ITS's, the SUPDUP user and
server programs and the network simply move characters from the buffer in
the server machine to the buffer in the user machine. The interrupt side
then runs on the user machine just as if the characters had been generated
locally.
Due to the highly interactive characteristics of both the SUPDUP protocol
and the ITS system, all transactions are strictly character at a time and
all echoing is remote. In addition, all padding and cursor control
optimization must be done by the user.
Because this is also the internals of ITS, the right to change it any time
if necessary to provide new features is reserved by MIT. In particular,
the initial negotiation is probably going to be changed to transmit
additional variables, and additional %TD codes may be added at any time.
User programs should ignore those they don't know about.
The following conventions are used in this document: function keys (ie,
keys which represent a "function" rather than a "graphic character") are
in upper case in square brackets. Prefix keys (ie, keys which generate no
character but rather are held down while typing another character to
modify that character) are in upper case in angle brackets. Hence
"[LINE FEED]" refers to the character generated when both
the CONTROL and META keys are held down while a LINE FEED is typed. Case
should be noted; A refers to a different character from
a. Finally, all numbers which do not explicitly specify a base
(ie, octal or decimal) should be read as octal unless the number is
immediately followed by a period, in which case it is decimal.
NWG/RFC# 734 MRC 07-OCT-77 08:46 41953
SUPDUP Display Protocol Page 3
=1= |