diff options
Diffstat (limited to 'src/mess/machine/dec_lk201.c')
-rw-r--r-- | src/mess/machine/dec_lk201.c | 93 |
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" |