From f499244d53ccb07ddf500c1393ae90ea9ad2e201 Mon Sep 17 00:00:00 2001 From: "R. Belmont" Date: Mon, 25 Nov 2013 03:46:58 +0000 Subject: (MESS) DEC Rainbow updates: [Bavarese] - rainbow.c: wired watchdog (MHFLU) and W18 (DSR). Dangerous W90 (PSU jumper) on PCB documented. Pallette handling changed, moved screen blank routine to vtvideo.c - dec_lk201.c: keyboard matrix from LK-201-AA (VCB02) (original 8051 version) - Vtvideo.c: monochrome palette with 4 intensities (instead of 3). Ironed out attribute bugs (-> truth table from VT100). Double-width, double-height corrected --- src/mess/machine/dec_lk201.c | 93 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 92 insertions(+), 1 deletion(-) (limited to 'src/mess/machine/dec_lk201.c') 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 +........|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" -- cgit v1.2.3