.png)
Every key on the Einstein sits at one crossing point of an 8 x 8 electrical grid: eight rows your program selects one at a time, and eight columns it reads back as one byte per row. S25 covers how to do the reading; this appendix is the map it reads from.
Keys with two legends are shown unshifted first: 2 " is the 2 key, which shifts to ".
| Row | bit 7 | bit 6 | bit 5 | bit 4 | bit 3 | bit 2 | bit 1 | bit 0 | select |
|---|---|---|---|---|---|---|---|---|---|
| 0 | ESC | SPACE | ENTER | CAPS | F7 | F0 | - | BREAK | 254 |
| 1 | 0 @ | ½ ‖ | DOWN | - £ | LEFT | P | O | I | 253 |
| 2 | F5 | 9 ) | TAB | RIGHT | : * | ; + | L | K | 251 |
| 3 | F4 | UP | = - | DELETE | 8 ( | / ? | . > | , < | 247 |
| 4 | F3 | 1 ! | 2 " | 3 # | 4 $ | 5 % | 6 & | 7 ' | 239 |
| 5 | F2 | Q | W | E | R | T | Y | U | 223 |
| 6 | F1 | A | S | D | F | G | H | J | 191 |
| 7 | F6 | Z | X | C | V | B | N | M | 127 |
Row 0 bit 1 is empty - no key lives there.
W is row 5, bit 5. So:
LD A,14 ; the row-select register
OUT (2),A
LD A,223 ; row 5's select byte
OUT (3),A
LD A,15 ; the column register
OUT (2),A
IN A,(2)
BIT 5,A ; W's bit
JR Z,pressed ; zero means held
The letter rows repay a look: row 5 is the keyboard's QWERTY row, bit 6 to bit 0 reading Q W E R T Y U left to right, and rows 6 and 7 are the rows beneath it. The grid is the physical keyboard, wired.
The table uses MAME's names for the keys, and five of them need translating. The Einstein has two grey cursor keys at the right-hand end of the QWERTY row: the horizontal one, which MAME calls TAB (row 2, bit 5), and the vertical one, which MAME calls DOWN (row 1, bit 5). Each moves one way on its own and the other way with SHIFT. The keys MAME calls LEFT (row 1), RIGHT (row 2) and UP (row 3) are the [, ] and ^ character keys, whose keycaps carry ← → ↑ because the Einstein draws those characters as arrows. In MAME the three sit on your Left, Right and Up arrows, and the cursor keys on Tab and the Down arrow.
All five are ordinary matrix keys, so a game can use them exactly like letters, and a two-player game can put one player on WASD and the other on the three arrow-marked keys and the vertical cursor key, with nothing but different rows in the scan.
The keycaps and the two cursor keys are as Tatung's manual draws them, and MAME's Einstein agrees. The matrix positions were checked in MAME, not on a real Einstein: if yours reads differently, let us know and this page will be corrected.
SHIFT, CTRL and GRPH are not in the matrix. They are wired separately, and this table cannot see them - prefer ordinary keys for game controls.
Other references print this table with its columns numbered the opposite way - column 0 on the left meaning bit 7. If a map you find seems to contradict this one, read its column n as bit 7 - n and the two will agree. When in doubt, trust the bit your own scan shows you: hold the key and look.
This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.