If you want to know why your shell abbreviates
~, it’s because of the label on the
~ key on the ADM-3A. If you want to know why
hjkl are the de facto cursor keys in
vi, look at the symbols above the letters. The ADM-3A was the “dumb terminal” which Bill Joy used to develop
Recently the ADM-3A came up in a twitter discussion about the wretched Apple touch bar when Bret Victor dropped this tweet:
It goes even deeper than that. The designer of vi grew up using keyboard where the "esc" key is to the left of the "Q", like our "tab" key. pic.twitter.com/CYnlm7VRZv
— Bret Victor (@worrydream) August 20, 2017
Which settled the argument until Paul Brousseau asked:
What does the "here is" key do?
— Paul Brousseau (@object88) August 21, 2017
Indeed, what does the
HERE IS1 key do? Its prominent position adjacent to the
RETURN key implies whatever it does, it is important.
Fortunately the answer to Paul’s question was easy to find. The wonderful BitSavers archive has the user manual for the ADM-3A available (cached to avoid unnecessary bandwidth costs to BitSavers). On page 29 we find this diagram
HERE IS, when pressed, transmits a predefined identification message. But what do to the words “message is displayed in half-duplex” mean? The answer to that riddle lies in the ADM-3A’s Answerback facility.
Scanning forward to page 36, section 3.3.6 describes the configuration of the Answerback facility–programming the identification message transmitted when
HERE IS is pressed.
HERE ISkey or receiving an
ENQfrom the host … causes the answerback message to be transmitted to the host and to be displayed if the terminal is in half duplex mode.
This is interesting, the remote side can ask the terminal “who are you?”.
HERE IS key is a vestige of a an older facility called Enquiry. Enquiry allowed one end of the connection to query if the remote side was still connected, and if it was, exactly who was connected.
Answerback is a question and answer sequence where the host computer asks the terminal to identify itself. The VT100 answerback feature provides the terminal with the capability to identify itself by sending a message to the host. The entire answerback sequence takes place automatically without affecting the screen or requiring operator action. The answerback message may also be transmitted by typing CTRL-BREAK.
This description is from the 1978 Digital VT100 user guide. It was certainly a simpler time when the server could ask a terminal to identify itself, and trust the answer.
- I’ve chosen to write the name of the key in all caps as the base model of the ADM-3A was only capable of displaying upper case letters. If you wanted lower case (above 0x5F hex), that was an optional extra.