Merge pull request #365 from shattered/_10e0327

dvk_ksm: update memory map, rom checksums. [shattered]
This commit is contained in:
Miodrag Milanović 2015-10-06 08:07:55 +02:00
commit 36be97de8e
2 changed files with 14 additions and 15 deletions

View File

@ -34,11 +34,12 @@
switching between them via SI/SO. N2 charset has uppercase Cyrillic
chars in place of lowercase Latin ones.
F1 toggles Hold Screen mode.
ESC toggles Cyrillic/Latin mode (depends in the host's terminal driver)
F1 toggles Hold Screen mode (also depends in the host's terminal driver)
F9 resets terminal (clears memory).
F20 toggles on/off-line mode.
Terminfo description would be something like
Terminfo description:
ksm|DVK KSM,
am, bw, dch1=\EP, ich1=\EQ,
@ -46,9 +47,8 @@ ksm|DVK KSM,
use=vt52,
To do:
- make Caps Lock work
- verify if pixel stretching is done by hw
- verify details of hw revisions
- verify details of hw revisions (memory map, DIP presence...)
- baud rate selection (missing feature in bitbanger)
****************************************************************************/
@ -140,7 +140,7 @@ protected:
static ADDRESS_MAP_START( ksm_mem, AS_PROGRAM, 8, ksm_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE (0x0000, 0x0fff) AM_ROM
AM_RANGE (0x2000, 0x21ff) AM_RAM
AM_RANGE (0x2000, 0x20ff) AM_RAM AM_MIRROR(0x0700)
AM_RANGE (0xc000, 0xffff) AM_RAM AM_SHARE("videoram")
ADDRESS_MAP_END
@ -408,11 +408,11 @@ ROM_START( dvk_ksm01 )
ROM_LOAD( "ksm_05_rom1_d33.bin", 0x0800, 0x0800, CRC(5b29bcd2) SHA1(1f4f82c2f88f1e8615ec02076559dc606497e654))
ROM_REGION(0x0800, "chargen", ROMREGION_ERASE00)
ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(98853aa7) SHA1(09b8e1b5b10a00c0b0ae7e36ad1328113d31230a))
ROM_LOAD("ksm_03_cg_d31.bin", 0x0000, 0x0800, CRC(6a8477e2) SHA1(c7871a96f135db05c3c8d718fbdf1728e22e72b7))
ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS */
COMP( 1986, dvk_ksm, 0, 0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM", 0)
COMP( 198?, dvk_ksm01,dvk_ksm,0, ksm, ksm, driver_device, 0, "USSR", "DVK KSM-01", 0)
COMP( 198?, dvk_ksm01,dvk_ksm,0, ksm, 0, driver_device, 0, "USSR", "DVK KSM-01", 0)

View File

@ -1,11 +1,10 @@
// license:BSD-3-Clause
// copyright-holders:Sergey Svishchev
/*
Electronika MS 7004 keyboard (DEC LK-201 workalike with extra keys
Elektronika MS 7004 keyboard (DEC LK-201 workalike with extra keys
for Cyrillic characters).
To do:
- debug keymap
- receive data from host (not used by KSM but used by other boards)
- connect LEDs and speaker
*/
@ -163,13 +162,13 @@ nothing sends '@' or '`'
2/@ sends 2/"
6/^ sends 6/&
7/& sends 7/'
8/ * sends 8/(
8 * sends 8/(
9/( sends 9/)
0/) sends 0/0
-/_ sends _/_
+/= sends -/=
;/: sends ;/+
'/" sends :/ *
'/" sends : *
F10 sends ^C
F11 sends ESC
@ -183,7 +182,7 @@ INPUT_PORTS_START( ms7004 )
PORT_BIT( 0x08, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME(";") PORT_CODE(KEYCODE_COLON) // '+'
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Tab") PORT_CODE(KEYCODE_TAB)
PORT_BIT( 0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Ctrl") PORT_CODE(KEYCODE_LCONTROL)
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Caps Lock") PORT_CODE(KEYCODE_CAPSLOCK) // what
PORT_BIT( 0x40, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK)
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_KEYBOARD ) PORT_NAME("LShift") PORT_CODE(KEYCODE_LSHIFT)
PORT_START("KBD13") // vertical row 2
@ -357,7 +356,6 @@ ioport_constructor ms7004_device::device_input_ports() const
ms7004_device::ms7004_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
: device_t(mconfig, MS7004, "MS7004 keyboard", tag, owner, clock, "ms7004", __FILE__),
// device_serial_interface(mconfig, *this),
m_maincpu(*this, MS7004_CPU_TAG),
m_speaker(*this, MS7004_SPK_TAG),
m_i8243(*this, "i8243"),
@ -418,7 +416,7 @@ WRITE8_MEMBER( ms7004_device::p1_w )
6
7 Serial TX
*/
DBG_LOG(1,0,( "%s: p1_w %02x = send %d\n", tag(), data, BIT(data, 7)));
DBG_LOG(2,0,( "%s: p1_w %02x = send %d\n", tag(), data, BIT(data, 7)));
m_p1 = data;
m_tx_handler(BIT(data, 7));
@ -481,7 +479,8 @@ WRITE8_MEMBER( ms7004_device::i8243_port_w )
case 0x38: sense = m_kbd15->read(); break;
}
m_keylatch = BIT(sense, (m_p1 & 7));
DBG_LOG(2,0,( "%s: row %d col %02x t1 %d\n",
if (m_keylatch)
DBG_LOG(1,0,( "%s: row %d col %02x t1 %d\n",
tag(), (m_p1 & 7), (offset << 4 | data), m_keylatch));
}
}