by Darius Kazemi, August 4 2019
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
β, 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!
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
you have to enter the following program:
;LIST_)TYPE_%ENTER_N ;1_;REAL_;LOAD_;ENTER_;STORE_N ;TYPE_% ENTER_FIRST_GUESS ;1_;LOAD_;ENTER_;STORE_X ;TYPE_%#_OF_INTERATIONS? ;0_;LOAD_;ENTER_;STORE_N ;1_;REPT_(;LOAD_N ;/_X;+_X ;/_2 ;STORE_X ; DISP_%/_X ;+_X ;/_2 ;LIST_;STORE_;USER_;1_;SQRT_
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
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.