From e6bfc360626977bb5e23771ac998062f0d700fe0 Mon Sep 17 00:00:00 2001 From: Sergey Svishchev Date: Thu, 24 Sep 2015 23:10:11 +0300 Subject: [PATCH] dvk_ksm: update memory map, rom checksums. --- src/mame/drivers/dvk_ksm.c | 14 +++++++------- src/mame/machine/ms7004.c | 15 +++++++-------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/mame/drivers/dvk_ksm.c b/src/mame/drivers/dvk_ksm.c index 36eaaa241fc..dc04a4a4703 100644 --- a/src/mame/drivers/dvk_ksm.c +++ b/src/mame/drivers/dvk_ksm.c @@ -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) diff --git a/src/mame/machine/ms7004.c b/src/mame/machine/ms7004.c index bacd74a303a..f0f9d2ad10d 100644 --- a/src/mame/machine/ms7004.c +++ b/src/mame/machine/ms7004.c @@ -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)); } }