by Darius Kazemi, April 20 2019

In 2019 I'm reading one RFC a day in chronological order starting from the very first one. More on this project here. There is a table of contents for all my RFC posts.

I have no characters yet I must type

RFC-110 is titled “Conventions for Using an IBM 2741 Terminal as a User Console for Access to Network Server Hosts”. It's dated March 25th, 1971, and authored by Joel M. Winett of Lincoln Laboratory, who also authored the previous RFC in the series.

The technical content

This RFC talks about what to do when the Venn diagram of “characters you can type on your terminal” and “characters that the remote server understands” don't overlap fully. Specifically, as you might guess from the title, when you're on an IBM 2741 terminal. This doesn't mean the characters have different codes between two systems; it means that there are symbols that are on one that don't exist on the other. It's kind of like when you have emoji on your phone that your friend doesn't: how in the world are the two computers supposed to handle that situation?

Basically there is one symbol on a 2741 terminal that doesn't have representation in basic ASCII: the cent cymbol, ¢. (I can type this in ASCII now because ASCII supports more symbols today than it did in 1971; at the time it was only 128 character codes; the cent symbol is decimal 162, so it came about in a later revision of ASCII.) There are also 4 control codes that don't exist in ASCII.

On the other hand there are 7 ASCII characters that have no representation on the keyboard of a 2741: {, }, [, ], ^, \,`. Plus 31 ASCII control codes with no corresponding keys!

This RFC proposes several possible “escape characters” (meaning “when you see this character it means that whatever comes next has an unusual meaning in this context”), and then lays out a possible translation table between the 43 characters and codes that don't exist in one of either ASCII or the 2741.

Cleverly, the author suggests that you should use a non-ASCII character like “NOT” (¬) as an escape when talking to an ASCII system, since that's going to be interpreted as a junk character anyway. So if you want to convey {, which does not exist on a 2741 terminal, you would type ¬(, and to convey ^ you would type ¬". So the receiving computer would get ¬ and say, “oh I know the next character is a special thing, oh I see it's ( so they must mean {.”


This RFC begins:

   TO: NIC
   FROM: Joel M. Winnet (LL)
   SUBJECT: Conventions for Using an IBM 2741 Terminal as a User Console for Access to Network Server Hosts

The unusual formatting leads me to believe that this was perhaps not intended as an RFC but was assigned an RFC number by the NIC unilaterally, after determining it was important enough to get that designation.

Further reading

If you want to know more about the IBM 2741, its Wikipedia page is pretty informative.

How to follow this blog

You can subscribe to this blog's RSS feed or if you're on a federated ActivityPub social network like Mastodon or Pleroma you can search for the user “@365-rfcs@write.as” and follow it there.

About me

I'm Darius Kazemi. I'm an independent technologist and artist. I do a lot of work on the decentralized web with both ActivityPub and the Dat Project. You can support my work via my Patreon.