summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/machine/dec_lk201.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mess/machine/dec_lk201.c')
-rw-r--r--src/mess/machine/dec_lk201.c93
1 files changed, 92 insertions, 1 deletions
diff --git a/src/mess/machine/dec_lk201.c b/src/mess/machine/dec_lk201.c
index e14b8119252..7a6cd3e75ab 100644
--- a/src/mess/machine/dec_lk201.c
+++ b/src/mess/machine/dec_lk201.c
@@ -2,9 +2,100 @@
DEC LK-201 keyboard
Emulation by R. Belmont
- This is currently the 6805 version; there's also an 8048 version.
+ This is the later "cost-reduced" 6805 version; there's also an 8048 version.
*/
+/* LK201-AA keyboard matrix (8048 version)
+ Source: VCB02 Technical Reference.
+
+ KBD controller scan matrix (PORT 1): 8 x BCD IN => 18 DECIMAL OUT
+
+ Keyboard itself:
+ 18 x IN (KEYBOARD DRIVE) KBD 17... KBD 0 =>
+ 8 OUT (keyboard data @ D7..D0)
+
+ to => PORT 0 @ KBD controller.
+
+________|D7 |D6 |D5 |D4 |D3 |D2 |D1 |D0
+..KBD17:|[R] |F19 |[R] |F20|PF4|N--- N,| Enter
+........| | | | | | NOTE1)
+........| |G22 | |G23|E23|D23|C23| A23
+........| | | | | | <- - - - - - ? ?
+--------|----|----|----|---|---|---|---|---
+..KBD16:|F18 |PF3 |[R] |N9 |V |N6 |N3 |N
+........|G21 |E22 | |D22|B17|C22|B22|A22
+--------|----|----|----|---|---|---|---|---
+..KBD15:|F17 |PF2 |[R] |N8 |N5 |-> | N2|N0
+........| | | | | | | |NOTE 2)
+........|G20 |E21 | |D21|C21|B18|B21|
+--------|----|----|----|---|---|---|---|---
+ KBD14:|PF1 |Next|Remove ^|N7 |N4 |N1 |N0
+........| |Scrn| | || | | |
+........|E20 |D18 |E18 |C17|D20|C20|B20|A20
+--------|----|----|----|---|---|---|---|---
+..KBD13:|Ins.|--- |D0 Prev| { |" |[R]|[R]
+........|Here|- | Scrn. [ |' | |
+........|E17 |E11 |G16 |D17 D11|C11| |
+--------|----|----|----|---|---|---|---|---
+..KBD12:|Find|+ |Help|Se-| } Re- |<- |
+........| |= | |lect ] turn| |
+........|E16 |E12 |G15 |D16 D12|C13| |
+--------|----|----|----|---|---|---|---|---
+..KBD11:Addtnl <X||[R] |) |P NOTE|: |?
+.......Options Del| |0 | | 3)|; |/
+........|G14 | E13|....|E10|D10|...|C10|B10
+--------|----|----|----|---|---|---|---|---
+..KBD10:|[R] |F12 |[R] |F13| ( |O |L |.
+........|....|(BS)| |(LF) 9 | | |
+........|....|G12 |....|G13|E09|D09|C09|B09
+--------|----|----|----|---|---|---|---|---
+..KBD_9:|[R] |F11 |[R] |[R]|* |I |K | ,
+........|....|ESC | | |8 | | | ,
+........|....|G11 |....|...|E08|D08|C08|B08
+--------|----|----|----|---|---|---|---|---
+..KBD_8:|[R] |Main|[R] Exit|& |U |J |M
+........| |Scrn| | |7 | | |
+........| |G08 | |G09|E07|D07|C07|B07
+--------|----|----|----|---|---|---|---|---
+..KBD_7:|[R] Cancel[R] Resu ^ |Y |H |N
+........| | | me |6 | | |
+........|....|G07 |G06|E06|D06|C06|B06
+--------|----|----|----|---|---|---|---|---
+..KBD_6:|[R] |[R] |[R] Inter % |T |G |B
+........|....|....|....rupt| 5 | | |
+........|....|....|....|G05|E05|D05|C05|B05
+--------|----|----|----|---|---|---|---|---
+..KBD_5: F4 Break [R]|$ |R |F |V |Space
+........|.........|....|4 | | | |
+........ G02 G03 |....|E04 D04 C04 B04 A01-A09
+--------|----|----|----|---|---|---|---|---
+..KBD_4: [R] |Prt.|[R] |Set|# |E |D |C
+........|....|Scrn|....|-Up|3 | | |
+........|....|G00 |....|G01 E03 D03 C03 B03
+--------|----|----|----|---|---|---|---|---
+..KBD_3: Hold|@ |[R] |Tab|W |S |X |>
+........|Scrn|2 |....| | | | |<
+........|G99 |E02 |....|D00|D02|C02|B02|B00
+--------|----|----|----|---|---|---|---|---
+..KBD_2: [R] |[R] |[R] |~ |! |Q |A |Z
+........|..............| |1
+........|..............|E00 E01 D01 C01 B01
+--------|----|----|----|---|---|---|---|---
+..KBD_1: Ctrl|Lock|Comp|[R]
+........|C99 |C00 |A99 |
+--------|----|----|----|---|---|---|---|---
+..KBD_0: Shift
+........|B99,B11
+
+---
+ [R] = Reserved
+ NOTE 1) N0--N9, N---, N and N. refer to numeric keypad
+ NOTE 2) N0 can be divided into 2 keys.
+ Normally only the N0 keyswitch is implemented as a double-sized key.
+ NOTE 3) Return key occupies 2 positions that are
+ decoded as the Return (C13) key.
+ */
+
#include "emu.h"
#include "dec_lk201.h"
#include "cpu/m6805/m6805.h"