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 1
–8
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.