From 4bebff766ad4a9404135edbb89b22a6e6242b4c0 Mon Sep 17 00:00:00 2001 From: Ivan Vangelista Date: Sun, 1 Jun 2014 07:44:04 +0000 Subject: [PATCH] p2000t.c now uses ioport_array (nw) --- src/mess/drivers/p2000t.c | 20 ++++++++++---------- src/mess/includes/p2000t.h | 13 +++++++------ src/mess/machine/p2000t.c | 17 ++++++----------- 3 files changed, 23 insertions(+), 27 deletions(-) diff --git a/src/mess/drivers/p2000t.c b/src/mess/drivers/p2000t.c index cab5c61b6aa..92631f3240d 100644 --- a/src/mess/drivers/p2000t.c +++ b/src/mess/drivers/p2000t.c @@ -100,7 +100,7 @@ Small note about natural keyboard support: currently, */ static INPUT_PORTS_START (p2000t) - PORT_START("KEY0") + PORT_START("KEY.0") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_LEFT) PORT_CHAR(UCHAR_MAMEKEY(LEFT)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6) PORT_CHAR('6') PORT_CHAR('&') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_UP) PORT_CHAR(UCHAR_MAMEKEY(UP)) @@ -110,7 +110,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_7) PORT_CHAR('7') PORT_CHAR('\'') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_4) PORT_CHAR('4') PORT_CHAR('$') - PORT_START("KEY1") + PORT_START("KEY.1") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TAB) PORT_CHAR('\t') PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_H) PORT_CHAR('h') PORT_CHAR('H') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Z) PORT_CHAR('z') PORT_CHAR('Z') @@ -120,7 +120,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_J) PORT_CHAR('j') PORT_CHAR('J') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_F) PORT_CHAR('f') PORT_CHAR('F') - PORT_START("KEY2") + PORT_START("KEY.2") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad ,") PORT_CODE(KEYCODE_ENTER_PAD) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_SPACE) PORT_CHAR(' ') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Keypad 00") PORT_CODE(KEYCODE_DEL_PAD) @@ -130,7 +130,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_COMMA) PORT_CHAR(',') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_RIGHT) PORT_CHAR(UCHAR_MAMEKEY(RIGHT)) - PORT_START("KEY3") + PORT_START("KEY.3") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift Lock") PORT_CODE(KEYCODE_CAPSLOCK) PORT_CHAR(UCHAR_MAMEKEY(CAPSLOCK)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_N) PORT_CHAR('n') PORT_CHAR('N') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_TILDE) PORT_CHAR('<') PORT_CHAR('>') @@ -140,7 +140,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_M) PORT_CHAR('m') PORT_CHAR('M') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_V) PORT_CHAR('v') PORT_CHAR('V') - PORT_START("KEY4") + PORT_START("KEY.4") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Code") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(F1)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_Y) PORT_CHAR('y') PORT_CHAR('Y') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_A) PORT_CHAR('a') PORT_CHAR('A') @@ -150,7 +150,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_U) PORT_CHAR('u') PORT_CHAR('U') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_R) PORT_CHAR('r') PORT_CHAR('R') - PORT_START("KEY5") + PORT_START("KEY.5") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Clrln") PORT_CODE(KEYCODE_END) PORT_CHAR(UCHAR_MAMEKEY(F2)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9) PORT_CHAR('9') PORT_CHAR(')') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_ASTERISK) PORT_CHAR(UCHAR_MAMEKEY(PLUS_PAD)) PORT_CHAR(UCHAR_MAMEKEY(ASTERISK)) @@ -160,7 +160,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_1) PORT_CHAR('1') PORT_CHAR('!') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_MINUS) PORT_CHAR(0xFF0D) - PORT_START("KEY6") + PORT_START("KEY.6") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_9_PAD) PORT_CHAR(UCHAR_MAMEKEY(9_PAD)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_O) PORT_CHAR('o') PORT_CHAR('O') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8_PAD) PORT_CHAR(UCHAR_MAMEKEY(8_PAD)) @@ -170,7 +170,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_8) PORT_CHAR('8') PORT_CHAR('(') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("@ \xE2\x86\x91") PORT_CODE(KEYCODE_OPENBRACE) PORT_CHAR('@') - PORT_START("KEY7") + PORT_START("KEY.7") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_3_PAD) PORT_CHAR(UCHAR_MAMEKEY(3_PAD)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_STOP) PORT_CHAR('.') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2_PAD) PORT_CHAR(UCHAR_MAMEKEY(2_PAD)) @@ -180,7 +180,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_K) PORT_CHAR('k') PORT_CHAR('K') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_2) PORT_CHAR('2') PORT_CHAR('"') - PORT_START("KEY8") + PORT_START("KEY.8") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_6_PAD) PORT_CHAR(UCHAR_MAMEKEY(6_PAD)) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_L) PORT_CHAR('l') PORT_CHAR('L') PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_5_PAD) PORT_CHAR(UCHAR_MAMEKEY(5_PAD)) @@ -190,7 +190,7 @@ static INPUT_PORTS_START (p2000t) PORT_BIT (0x40, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_I) PORT_CHAR('i') PORT_CHAR('I') PORT_BIT (0x80, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_CODE(KEYCODE_QUOTE) PORT_CHAR(':') PORT_CHAR('*') - PORT_START("KEY9") + PORT_START("KEY.9") PORT_BIT (0x01, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("Shift (Left)") PORT_CODE(KEYCODE_LSHIFT) PORT_CHAR(UCHAR_SHIFT_1) PORT_BIT (0x02, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N/C") PORT_BIT (0x04, IP_ACTIVE_LOW, IPT_KEYBOARD) PORT_NAME("N/C") diff --git a/src/mess/includes/p2000t.h b/src/mess/includes/p2000t.h index 66146426f9e..eb6eb42273f 100644 --- a/src/mess/includes/p2000t.h +++ b/src/mess/includes/p2000t.h @@ -20,13 +20,17 @@ public: : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), m_speaker(*this, "speaker"), - m_videoram(*this, "videoram"), m_gfxdecode(*this, "gfxdecode"), - m_palette(*this, "palette") - { } + m_palette(*this, "palette"), + m_videoram(*this, "videoram"), + m_keyboard(*this, "KEY") { } required_device m_maincpu; required_device m_speaker; + optional_device m_gfxdecode; + optional_device m_palette; + required_shared_ptr m_videoram; + required_ioport_array<10> m_keyboard; DECLARE_READ8_MEMBER(p2000t_port_000f_r); DECLARE_READ8_MEMBER(p2000t_port_202f_r); DECLARE_WRITE8_MEMBER(p2000t_port_101f_w); @@ -37,7 +41,6 @@ public: DECLARE_WRITE8_MEMBER(p2000t_port_8c90_w); DECLARE_WRITE8_MEMBER(p2000t_port_9494_w); DECLARE_READ8_MEMBER(videoram_r); - required_shared_ptr m_videoram; UINT8 m_port_101f; UINT8 m_port_202f; UINT8 m_port_303f; @@ -47,8 +50,6 @@ public: DECLARE_PALETTE_INIT(p2000m); UINT32 screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(p2000_interrupt); - optional_device m_gfxdecode; - optional_device m_palette; }; #endif /* P2000T_H_ */ diff --git a/src/mess/machine/p2000t.c b/src/mess/machine/p2000t.c index f6bec3fc744..d8d230a2350 100644 --- a/src/mess/machine/p2000t.c +++ b/src/mess/machine/p2000t.c @@ -41,24 +41,19 @@ */ READ8_MEMBER( p2000t_state::p2000t_port_000f_r ) { - static const char *const keynames[] = { - "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", - "KEY5", "KEY6", "KEY7", "KEY8", "KEY9" - }; - if (m_port_101f & P2000M_101F_KEYINT) { return ( - ioport("KEY0")->read() & ioport("KEY1")->read() & - ioport("KEY2")->read() & ioport("KEY3")->read() & - ioport("KEY4")->read() & ioport("KEY5")->read() & - ioport("KEY6")->read() & ioport("KEY7")->read() & - ioport("KEY8")->read() & ioport("KEY9")->read()); + m_keyboard[0]->read() & m_keyboard[1]->read() & + m_keyboard[2]->read() & m_keyboard[3]->read() & + m_keyboard[4]->read() & m_keyboard[5]->read() & + m_keyboard[6]->read() & m_keyboard[7]->read() & + m_keyboard[8]->read() & m_keyboard[9]->read()); } else if (offset < 10) { - return (ioport(keynames[offset])->read()); + return m_keyboard[offset]->read(); } else return 0xff;