Keyboards of the past

Before settling with the PC, I have seen and used a couple of other computers. Their keyboards are worth looking at.


Sinclair ZX Spectrum

ZX Spectrum (hereafter just “Spectrum”) was a machine based on the 8-bit Z80 processor. I will describe the base 1982 model, because that’s what I had.

Spectrum came with 16K ROM and 48K RAM, in a single 16-bit address space. The low 16K were ROM which contained the whole OS and a built-in BASIC interpreter. In the I/O department, Spectrum was designed to connect to a TV yielding a 256×172 screen (32×24 text with 8×8 character cells) and to an audio cassette recorder used as external storage.

Spectrum’s keyboard had just 40 keys (in total). Its characteristic feature was an elaborate system of input modes and modifiers. Combined, they allowed each key to have up to 8 functions.

Spectrum assigned a character code not only to characters, but also to each BASIC keyword. This greatly simplified the parser and made for compact program representation. The keyboard allowed entering every such keyword and also a number of control characters.

BLUE
EDIT

1 !
DEF FN
RED
CAPS LOCK

2 @
FN
MAGENTA
TRUE VIDEO

3 #
LINE
GREEN
INV.VIDEO

4 $
OPEN #
CYAN


5 %
CLOSE #
YELLOW


6 &
MOVE
WHITE


7 '
ERASE


 
8 (
POINT

GRAPHICS

9 )
CAT
BLACK
DELETE

0 _
FORMAT
SIN
Q <=
PLOT
ASN
COS
W >=
DRAW
ACS
TAN
E <>
REM
ATN
INT
R <
RUN
VERIFY
RND
T >
RANDOMIZE
MERGE
STR$
Y AND
RETURN
[
CHR$
U OR
IF
]
CODE
I AT
INPUT
IN
PEEK
O ;
POKE
OUT
TAB
P "
PRINT
©
READ
A STOP
NEW
~
RESTORE
S NOT
SAVE
|
DATA
D STEP
DIM
\
SGN
F TO
FOR
{
ABS
G THEN
GOTO
}
SQR
H
GO SUB
CIRCLE
VAL
J -
LOAD
VAL$
LEN
K +
LIST
SCREEN$
USR
L =
LET
ATTR
ENTER
CAPS SHIFT LN
Z :
COPY
BEEP
EXP
X £
CLEAR
INK
LPRINT
C ?
CONTINUE
PAPER
LLIST
V /
CLS
FLASH
BIN
B *
BORDER
BRIGHT
INKEY$
N ,
NEXT
OVER
PI
M .
PAUSE
INVERSE
SYMBOL SHIFT BREAK
SPACE

(Spectrum was a British machine, so it had the £ pound sign character in the basic ASCII table, on the place of `. The up arrow was used as the exponentiation operator and occupied the place of ^. The © copyright sign was the glyph for the 0x7F code.)

How did it work?

First, there was the normal input mode. The cursor in that mode looked as a flashing letter L. (In Spectrum parlance, “flashing” meant alternating between normal and reversed display at a rate of about 1Hz.) In this mode, each key produced its primary character (shown in big font above).

You could also hold Caps Shift and press a letter key, and it then produced a capital letter.

If you pressed Caps Shift with a digit, it produced a control character shown in the second line. Most of these were editing functions.

Or you could hold Symbol Shift and press a key, then it produced the symbol that is shown to the right of the primary character, in red.

Pressing Caps Shift+2 took you to the Caps Lock mode (and back), which was signified with a flashing C and worked the same as L but produced capital letters no matter if you held Caps Shift or not.

Then there was the Graphics mode (G cursor). You got into and out of it by pressing Caps Shift+9. In this mode, keys 18 with or without Symbol Shift produced pseudographical blocks, and letters A through U yielded special characters whose bitmaps you could easily customize. Some games used them for sprites.

Next was the Keyword mode (K). It activated itself automagically when you were at a position where only a keyword made sense — at the start of a line, or immediately after : or THEN. (Spectrum BASIC had no ELSE.) In this mode, each letter key produced the keyword shown below the letter, in black. (Digit keys and Symbol Shift worked normally in this mode; Caps Shift was ignored for letters and editing functions worked normally.)

Pressing Caps Shift+Symbol Shift took you to and from the Extended mode (E). Then keys produced the character shown at the top of the key, in green. With any shift, they yielded the character at the bottom, in red. The color names on the digit keys denote control characters — you could change the foreground or background color of the following text, much like ANSI ESC sequences in today’s UNIX terminal emulators. Which color got changed depended on whether you held Caps Shift.

In modern terms, you could say Caps Shift was like Shift when used with letters and Ctrl, Cmd or Fn with digits; Symbol Shift was like modern AltGr or Option.

What if we modeled a keyboard layout after Spectrum?

  • Take the Spectrum keyboard
  • Remove BASIC keywords
  • Remove editing functions (Caps Shift+digits)
  • Leave small letters, capital letters, digits and single-character symbols
  • Move symbols from the extended mode into Symbol Shift layer
  • Change to ^ and £ to `
1 ! 2 @ 3 # 4 $ 5 % 6 & 7 ' 8 ( 9 ) 0 _
Q W E R < T > Y [ U ] I © O ; P "
A ~ S | D \ F { G } H ^ J - K + L =  
  Z : X ` C ? V / B * N , M .    

With 26 letter keys, 10 digit keys and 2 modifiers, this can theoretically represent 36 × 3 = 108 characters = 94 printable ASCII (not including space) + 14. Enough for German and French.

Key formula: 10 + 10 + 9 + 7.

Electronica MS 0511 aka UKNC

This was a Soviet clone of the PDP-11, used primarily in education. A typical computer class had a single teacher machine and around 10 to 15 student machines. The teacher machine had a floppy disk drive or two, and served as the network controlling host. Student machines only communicated with the server over network.

The keyboard of a UKNC was laid out after the standard Russian layout, JCUKEN, with Latin letters following the phonetic principle:

  +
;
!
1
"
2
#
3
¤
4
  %
5
&
6
'
7
(
8
)
9

0
=
-
?
/
  J
Й
C
Ц
U
У
K
К
E
Е
  N
Н
G
Г
{
[ Ш
}
] Щ
Z
З
H
Х
_
Ъ
*
:
  F
Ф
Y
Ы
W
В
A
А
P
П
  R
Р
O
О
L
Л
D
Д
V
Ж
|
\ Э
>
.
 
  Q
Я
~
^ Ч
S
С
M
М
I
И
  T
Т
X
Ь
B
Б
`
@ Ю
<
,
     

The keyboard had two Shift keys (Space row, on the sides); one Ctrl key (home row, left hand, outer column); and in the bottom row on the left of Q were two keys labeled Alph and Graph. Alph normally served as a modifier to enter a single letter from the other alphabet; Graph was a modifier for box drawing characters (not shown on the schematic above). There was also a single Lock key between left Shift and the space bar; pressing it while holding any modifier locked that particular modifier. (It was fun locking Ctrl on someone’s terminal and watching him or her being unable to enter anything.)

Key formula: 13 + 13 + 12 + 10.

With 48 keys, the space bar and three modifiers (not counting Ctrl), this was enough to represent the whole low ASCII table, the 32 Russian letters (without yo), and around 32 pseudographic characters.

A wonderful feature was that the UKNC keyboard had dedicated keys for essential punctuation characters (., ,, ; and :); punctuation stayed on its place when you switched layouts.

Written on September 26, 2014