by Darius Kazemi, August 4 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.

Putting two keyboards in one

RFC-216 (PDF) is titled “Telnet Access to UCSB's On-Line System”. It's authored by Jim White of UCSB and dated September 8th, 1971.

The technical content

UCSB has implemented a Telnet server, as reported for the first time in the RFC-214 survey. This may not seem like an enormous feat, but the Culler-Fried On-Line System (OLS) is basically Mathematica or MATLAB but developed in the late 1960s. Its highly graphical nature means that figuring out a useful subset of text-only functionality is a pretty hefty design problem.

Curvilinear graphical output is thrown out, but Greek characters are simply relayed as lowercase a through z, so the letter a is the ASCII stand-in for α, b for β, and so on. The mapping isn't one-to-one, but the document provides a table with the exact mappings, and most are pretty intuitive.

The standard OLS keyboard is... anything but standard. It is literally a two-tiered keyboard!

a double keyboard with lots of non-standard symbols on it

Glenn Culler sitting at an OLS terminal, looking at a very small screen and using a dual keyboard.

As you might expect, the bulk of this document explains how they translate from this monster keyboard to a standard 7-bit ASCII teletype system. It's handled using an escape character (a semicolon) followed by a mnemonic code. All told it's pretty similar to putting α in your HTML to represent “α”.

The NETOLS system comes with a HELP function that will print out all the mnemonics for you. You can also change the escape character by issuing a PREFIX command! I imagine this would be really helpful for keyboards where you'd like to remap the escape character to something that is ergonomically located since you're going to be typing it a lot.


Besides the character conversion tables, the document contains a few pages of examples of what it's like to interact with the system, which is always appreciated. Especially when entry of simple equations is as complicated as it is on NETOLS. For example, to enter the equation

xk+1 =(xk+N/xk)/2

you have to enter the following program:

   ;1_;REPT_(;LOAD_N ;/_X;+_X ;/_2
           ;STORE_X ; DISP_%/_X ;+_X ;/_2

Though honestly? It's not that much more complex than the <sub> tags I had to type into HTML to get it rendering! While there are all sorts of relatively-convenient ways to render mathematical notation on the internet today, I personally don't think we've come very far. You still need to learn specialty software to do it (and that might be okay, since mathematics is a specialty discipline).

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 ActivityPub, including a Node.js reference implementation, an RSS-to-ActivityPub converter, and a fork of Mastodon, called Hometown. You can support my work via my Patreon.