summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2018-09-19 18:37:25 +0200
committer hap <happppp@users.noreply.github.com>2018-09-19 18:37:25 +0200
commit2657aa3539c7a54b6450d278e2b00f6136511e6c (patch)
tree3ec84d53399965719f7e8a781af6abfdb8f1b5aa /src
parent701471600388c41746a70f1a39c30eb2fd373339 (diff)
vtech2: added reset key at left alt, moved graph key from left alt to right alt(original physical location is between Enter and rightshift) (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/vtech2.cpp25
-rw-r--r--src/mame/includes/vtech2.h2
2 files changed, 19 insertions, 8 deletions
diff --git a/src/mame/drivers/vtech2.cpp b/src/mame/drivers/vtech2.cpp
index a64f3a922ba..a581ffa0f0a 100644
--- a/src/mame/drivers/vtech2.cpp
+++ b/src/mame/drivers/vtech2.cpp
@@ -95,11 +95,7 @@ void vtech2_state::vtech2_io(address_map &map)
map(0x45, 0x45).w(FUNC(vtech2_state::laser_two_color_w));
}
-/* 2008-05 FP:
-Small note about natural keyboard: currently,
-- "Graph" is mapped to 'F11'
-- "Del Line" is mapped to 'F12'
-*/
+
static INPUT_PORTS_START( laser500 )
PORT_START("ROW0") /* KEY ROW 0 */
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
@@ -173,7 +169,7 @@ static INPUT_PORTS_START( laser500 )
PORT_START("ROW7") /* KEY ROW 7 */
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
- PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Graph") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(F11))
+ PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Graph") PORT_CODE(KEYCODE_RALT) PORT_CHAR(UCHAR_MAMEKEY(RALT))
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH) PORT_CHAR('`') PORT_CHAR('~')
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SLASH) PORT_CHAR('/') PORT_CHAR('?')
@@ -204,7 +200,7 @@ static INPUT_PORTS_START( laser500 )
PORT_START("ROWC") /* KEY ROW C */
PORT_BIT(0x80, IP_ACTIVE_LOW, IPT_UNUSED)
PORT_BIT(0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Cap Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK))
- PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del Line") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(F12))
+ PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del Line") PORT_CODE(KEYCODE_PGUP) PORT_CHAR(UCHAR_MAMEKEY(PGUP))
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_HOME) PORT_CHAR(UCHAR_MAMEKEY(HOME))
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP))
PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT))
@@ -217,11 +213,21 @@ static INPUT_PORTS_START( laser500 )
PORT_BIT(0x20, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_BACKSLASH2) PORT_CHAR('\\') PORT_CHAR('|')
PORT_BIT(0x10, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_CLOSEBRACE) PORT_CHAR(']') PORT_CHAR('}')
PORT_BIT(0x08, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('[') PORT_CHAR('{')
- PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Mu \xC2\xA3") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(0xA3)
+ PORT_BIT(0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("\xCE\xBC \xC2\xA3") PORT_CODE(KEYCODE_TILDE) PORT_CHAR(0xa3)
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Del") PORT_CODE(KEYCODE_DEL) PORT_CHAR(UCHAR_MAMEKEY(DEL))
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Ins") PORT_CODE(KEYCODE_INSERT) PORT_CHAR(UCHAR_MAMEKEY(INSERT))
+
+ PORT_START("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Reset") PORT_CODE(KEYCODE_LALT) PORT_CHAR(UCHAR_MAMEKEY(LALT)) PORT_CHANGED_MEMBER(DEVICE_SELF, vtech2_state, reset_button, nullptr)
INPUT_PORTS_END
+INPUT_CHANGED_MEMBER(vtech2_state::reset_button)
+{
+ // RESET button is directly wired to Z80 RESET pin, BIOS will detect it (doesn't reset the computer)
+ m_maincpu->set_input_line(INPUT_LINE_RESET, newval ? ASSERT_LINE : CLEAR_LINE);
+}
+
+
/* 2008-05 FP: I wasn't able to find a good picture of the laser 350 to verify the mapping of the emulated keyboard.
However, old-computers.com describes it as a laser 500/700 in a laser 300/310 case. The missing inputs seem to
confirm this. */
@@ -252,6 +258,9 @@ static INPUT_PORTS_START( laser350 )
PORT_MODIFY("ROWD") /* KEY ROW D */
PORT_BIT(0xff, IP_ACTIVE_LOW, IPT_UNUSED) /* not on the Laser350 */
+ PORT_MODIFY("RESET")
+ PORT_BIT(0x01, IP_ACTIVE_HIGH, IPT_UNUSED) /* not on the Laser350 */
+
/* 2008-05 FP: This input_port seems never to be read. Is it a leftover of the old cassette code? */
PORT_START("TAPE") /* Tape control */
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Tape Start") PORT_CODE(KEYCODE_SLASH_PAD)
diff --git a/src/mame/includes/vtech2.h b/src/mame/includes/vtech2.h
index 218afa9f9cd..f5af8d7ed45 100644
--- a/src/mame/includes/vtech2.h
+++ b/src/mame/includes/vtech2.h
@@ -37,6 +37,8 @@ public:
void init_laser();
+ DECLARE_INPUT_CHANGED_MEMBER(reset_button);
+
private:
DECLARE_WRITE8_MEMBER(laser_bank_select_w);
DECLARE_WRITE8_MEMBER(laser_fdc_w);