SUPDUP extensions: Recent extensions to the SUPDUP Protocol
New features added to the remote terminal display protocol
Crispin, M.R., "Recent extensions to the SUPDUP Protocol", RFC 747, DOI 10.17487/RFC0747, March 1978, <https://www.rfc-editor.org/info/rfc747>.
@misc{rfc747,
series = {Request for Comments},
number = 747,
howpublished = {RFC 747},
publisher = {RFC Editor},
doi = {10.17487/RFC0747},
url = {https://www.rfc-editor.org/info/rfc747},
author = {M.R. Crispin},
title = {{Recent extensions to the SUPDUP Protocol}},
pagetotal = 1,
year = 1978,
month = mar,
} RFC text
NWG/RFC# 747 MRC 21-MAR-78 44015 Recent Extensions to the SUPDUP Protocol Network Working Group Mark Crispin Request for Comments 747 SU-AI NIC 44015 21 March 1978 Updates: RFC 734. See also RFC 746. Recent Extensions to the SUPDUP Protocol Recently, some extensions have been made to the SUPDUP protocol. RFC 746, by Richard Stallman, documented the SUPDUP graphics extension. In addition, a TTYOPT bit has been added and two more variables have been added to the initial negotiation. This RFC describes the changes from RFC 734, but excludes the detailed information in RFC 746. These extensions are upwards and downwards compatable, and are completely optional. For most SUPDUP user and server programs, RFC 734 remains an adequate description of the protocol. However, it is suggested that if the console's line speed is known, the user SUPDUP should be modified to send the new ISPEED and OSPEED variables (sending 0 for SMARTS if the graphics extension is not to be used) so the server can handle buffering for the terminal better. Since these changes are compatable and optional, and since the SUPDUP protocol is being actively worked on at the present time, I have elected to issue this update RFC rather than an updated version of RFC 734. An updated 734 will be issued when the protocol stabilizes again. Three new variables have been added to the initial negotiation. In order, they are SMARTS, ISPEED, and OSPEED. Consequently, the count should now be -10,,0, or, in octal, 777770000000. The SMARTS variable specifies what "smarts" (in general, what graphics capabilities) the terminal has. Like the TTYOPT variable, a bit being true implies that the terminal has this option. RFC 746 describes this variable and the SUPDUP graphics option in complete detail. If the graphics extension is not to be used, SMARTS should be set to 0. The ISPEED and OSPEED variables are respectively the input and output baud rates of the terminal, if known. For example, a 150./1200. baud terminal would have an ISPEED of 150. and an OSPEED of 1200. A speed of zero means the line speed is indeterminate. The %TPPRN TTYOPT bit (value 0,,200) has been added. This bit specifies that the system should swap parenthesis with square brackets on input. This is often desirable for LISP users who are using a terminal which has parenthesis as a shift character but not square brackets. This bit is normally off and servers are not required to implement it. -1-
AI ELI5
On this page
§1SUPDUP Extensions Overview
RFC 747 documents recent extensions to the SUPDUP protocol, a system for displaying a remote computer's screen on a local terminal. These extensions are additions to the original SUPDUP specification, documented separately in RFC 734.
Rather than issue a completely new version of RFC 734, Mark Crispin issued this update to describe the changes. The extensions are designed to be both upward and downward compatible. Most SUPDUP user and server programs can ignore the new features and continue using the original protocol.
SUPDUP is a way to see a distant computer's screen on your terminal. New features were added, but old versions still work because the changes are optional.
§2The New Extensions
Three new variables are added to the initial negotiation between the user (client) and server. The first is SMARTS, which describes the graphics capabilities of the terminal. RFC 746 documents SUPDUP's graphics extension in detail. If graphics are not being used, SMARTS is set to zero.
The second and third variables are ISPEED and OSPEED, which specify the input and output baud rates of the terminal. For example, a terminal that receives at 150 baud and sends at 1200 baud would have ISPEED of 150 and OSPEED of 1200. A speed of zero means the line speed is not known. These baud rates help the server manage buffering for the terminal.
A new bit flag has also been added to the TTYOPT field: %TPPRN, which swaps parenthesis with square brackets on input. This is useful for LISP users whose terminals have parenthesis as a shifted character but no native square brackets. This bit is normally off, and servers are not required to implement it.
Three new pieces of information are added: what the terminal can draw, how fast data flows in and out, and a switch for users who need parenthesis and brackets swapped.
§3Backward Compatibility
These extensions are optional. Older SUPDUP implementations that do not know about the new variables will ignore them without trouble. Similarly, older terminals and implementations that do not support the new TTYOPT bit will simply have it set to zero or ignore it. Since SUPDUP is still being actively worked on, this update approach allows the protocol to evolve without requiring all implementations to update simultaneously.
Old versions of SUPDUP do not understand the new features, but they do not break because the new features are optional.