Space Cadet Keyboard
The Space Cadet Keyboard was made by John L. Kulp.
it was designed around 1978, and making began in 1979, and arrived at MIT lap in 1980 January.
[see Keyboard Design for the LISP Machine]
There is a file dated 1978 with notes about the new Space Cadet Keyboard. It's signed “JLK”. https://raw.githubusercontent.com/mietek/mit-cadr-system-software/master/src/lmdoc/kbdpro.3
The CADR initially used the Knight keyboard.
It seems design and manufacturing progressed during 1979. There is an email from January 1980 that the “new keyboards” arrived to the lab. https://ml.cddddr.org/bug-lispm/msg00859.html
The CADR, LMI, and LM-2 all used the same Space Cadet Keyboard although they looked different.
[ 2019-02-28 email from Lars Brinkhoff. • http://lars.nocrew.org/ • https://github.com/larsbrinkhoff]
The lisp machine that used space-cadet keyboard includes the following, though the keyboard may look different:
- LMI's lisp machine LMI-CADR.
- Symbolics's lisp machine LM-2.
LMI Lambda keyboard
The Space Cadet Keyboard is also made by Lisp Machine Inc, for their LMI-CADR machine, year 1983.
Note the LMI logo. It's lisp cons cell, which is the building block of lisp's list.
See also: Guy Steele Says: Don't Iterate, Recurse, and Get rid of cons!
Meta Hyper Super Modifiers
The modifiers are:
- SHIFT → For UPPERCASE letters
- GREEK/FRONT → insert Greek character, printed in front of the keycaps.
- TOP → insert APL characters, printed on upper top of the keycaps. [see Unicode APL Symbols]
- META → modifier, used heavily in emacs.
- HYPER → modifier, can be used in emacs.
- SUPER → modifier, can be used in emacs.
The extra modifiers allows more key combination possibilities. However, extra modifiers create much less possibilities than key sequences. [see How Many Keyboard Shortcuts Are There]
See also: A Curious Look at Emacs's One Thousand Keybindings
Mode Lock not used.
Alt Mode → same as pressing Escape or Ctrl+[. It prints ◊ on SAIL displays [see SAIL Keyboard] or $ on ASCII displays. [from devon 2019-04-04]
Network → Lisp machine manual says: “this key is used to get the attention of a running Supdup or Telnet. As such it functions as a command prefix. This replaces BREAK on the old keyboards. See chapter 8, page 35.”
System → Lisp machine manual says: “This key is a prefix for a family of commands, generally used to select a window of a specified type, such as Lisp Listerner or Editor. These commands can be given from the old keyboards by typing TOP/ESC instead of SYSTEM. For a detailed description see section 2.3.7, page 14.”
I II III IV → Roman numerals, for selecting a menu item.
Rub Out → Lisp machine manual says: “Usually erases the last character typed. It is not the same as DELETE.”
STATUS → Lisp machine manual says: “Not currently used.”
DELETE → Lisp machine manual says: “This key is for some as yet unspecified form of deletion. In SUPDUP it substitutes for the VT key of the old keyboards.”
LINE → Lisp machine manual says: “The function of this key varies considerably. User interface is used as as command by the editor, and sends a "line feed" character in Supdup and Telnet.”
END → Lisp machine manual says: “Marks the end of input to many programs. Input of a single-line nature may be ended with RETURN. But END will terminate multiple-line input where RETURN is useful for separating lines. The END key does not apply when typing in Lisp expressions, which are self-delimiting. The old keyboards have no end key: TOP/RETURN may be used as a subsitutute.”
Help → Not used much. Lisp machine manual says: “usually gets you some on-line documentation or programmed assistance. on the old keyboards, HELP does not exist as a separate key, but it can be typed as TOP/H. See SYSTEM HELP, TERMINAL HELP.”
REPEAT → repeat the previous key.
Top Row Keys
MACRO TERMINAL QUOTE OVER STRIKE CLEAR INPUT CLEAR SCREEN HOLD OUTPUT STOP OUTPUT ABORT BREAK RESUME CALL
MACRO → Lisp machine manual says: “Introduces a keyboard-macro command in programs, such as the editor, that have keyboard macros. The MACRO key is only defined while running such programs. The BACK NEXT key may be used for this function on the old keyboards.”
TERMINAL → Used as a prefix key followed by another key. The purpose is similar to modern control sequence in terminal. Lisp machine manual says: “This key is a prefix for a family of commands relating to the display, which you may type at any time, no matter what propram you are running. These are documented below. Most of these commands can be given from the old keyboards by using the ESC key.”
QUOTE → tell the system to insert the next key pressed, not interpret as command. In
GNU Emacs, it's called
quoted-insert with key Ctrl+q.
Lisp machine manual says: “Not currently used.”
OVER STRIKE → Lisp machine manual says: “Moves the cursor back so that you can superpose two characters, should you really want to. The key called BS will do the same thing on the old keyboards.”
CLEAR INPUT → Lisp machine manual says: “Usually flushes the input expression you are typing. This command can be given on the old keyboards by typing CLEAR.”
CLEAR SCREEN → Lisp machine manual says: “Usually erases and refreshes the selected window. On the old keyboards, which have no CLEAR SCREEN key, the FORM key can be used for this. In the editor (in searches and after CTRL/Q) this key inserts a page separator character, which displays as "page" in a box.
HOLD OUTPUT → Lisp machine manual says: “Not used currently.”
STOP OUTPUT → Lisp machine manual says: “Not used currently.”
ABORT → Lisp machine manual says: “By convention when this is read by a program it aborts what it is doing and returns to its "command loop". Lisp listerners, for example, respond to ABORT by throwing back to the read-eval-print loop (top-level or break) and typing a star. Note that ABORT takes effect when it is read, not when it is typed; it will not stop a running program.”
BREAK → Lisp machine manual says: Usually forces the process you are typing at into a break read-eval-print loop, so that you can see what it's doing, or stop it temporarily. The effect occurs when the character is read, not immediately. Type RESUME to continue the interrupted computation (this applies to the three modified forms of the BREAK key as well.)
RESUME → Lisp machine manual says: Continues from the break function and the error handler. in Supdup this sends a backspace character, which is used for the resume-like command by ITS DDT.
CALL → Lisp machine manual says: Immediately stops the process you are typing at, and selects an idle lisp-listener (creating one if there aren't any). This is the key to use to get to “command level” without destroying the computation in the progress. When the window called out-of is selected again, its process will be allowed to run once more.
[see How to Create APL or Math Symbols Keyboard Layout]
Thumb Up Key
👍 👎 👈 👉 → Not documented in manual. Not used by default.
Photos of the Space Cadet Keyboard by webwit At http://deskthority.net/viewtopic.php?p=23509. Used with permission. You can see more photos about key caps and electronics there.
Lisp Machine Manual
Keyboard Design for the LISP Machine
2019-11-17 Thanks to Stephen Kitt, devon, Lars Brinkhoff, 2016-05-13, at [https://retrocomputing.stackexchange.com/questions/495/what-do-the-keys-on-this-symbolics-space-cadet-keyboard-do/496#496]
For lots more photos of the space cadet keyboard, see: Jesse Vincent's photo album flickr
2016-06-17 Thanks to Jon Snader http://irreal.org/ for tip.
Lisp Machine keyboards
Hacker Lore Keyboards
If you have a question, put $5 at patreon and message me.