summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
author Wilbert Pol <wilbertpol@users.noreply.github.com>2015-08-14 21:58:24 +0200
committer Wilbert Pol <wilbertpol@users.noreply.github.com>2015-08-18 20:12:52 +0200
commit29a361e74c8c383ecfb79f713fa306a245289930 (patch)
treefce85f44f743f5392891e972ea388663eed29a54 /src
parent6ab52f243f2e8ecf02dcf0b4a50d5b7f477da601 (diff)
splus.c: reduce tagmap lookups (nw)
Diffstat (limited to 'src')
-rw-r--r--src/mame/drivers/splus.c28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/mame/drivers/splus.c b/src/mame/drivers/splus.c
index e6855f81c6f..7075b8c3372 100644
--- a/src/mame/drivers/splus.c
+++ b/src/mame/drivers/splus.c
@@ -40,6 +40,10 @@ public:
m_program_ram(*this, "program_ram"),
m_reel_ram(*this, "reel_ram"),
m_io_port(*this, "io_port"),
+ m_i10(*this, "I10"),
+ m_i20(*this, "I20"),
+ m_i30(*this, "I30"),
+ m_sensor(*this, "SENSOR"),
m_maincpu(*this, "maincpu"),
m_i2cmem(*this, "i2cmem")
{
@@ -71,6 +75,10 @@ public:
// IO Ports
required_shared_ptr<UINT8> m_io_port;
+ required_ioport m_i10;
+ required_ioport m_i20;
+ required_ioport m_i30;
+ required_ioport m_sensor;
// EEPROM States
int m_sda_dir;
@@ -389,7 +397,7 @@ READ8_MEMBER(splus_state::splus_serial_r)
break;
case 0x01: // Bank 10
// Test for Coin-In
- if ((ioport("SENSOR")->read_safe(0x00) & 0x01) == 0x01 && m_coin_state == 0) {
+ if ((m_sensor->read() & 0x01) == 0x01 && m_coin_state == 0) {
m_coin_state = 1; // Start Coin Cycle
m_last_cycles = m_maincpu->total_cycles();
#if DEBUG_OUTPUT
@@ -432,7 +440,7 @@ READ8_MEMBER(splus_state::splus_serial_r)
}
// Determine Door Optics
- if ((ioport("I10")->read_safe(0x08) & 0x08) == 0x08)
+ if ((m_i10->read() & 0x08) == 0x08)
door_optics = 0x08;
else
door_optics = (((m_bank20 >> 4) & 1) << 3); // Use Door Optics Transmitter
@@ -477,22 +485,22 @@ READ8_MEMBER(splus_state::splus_serial_r)
val = val | door_optics; // Door Optics Receiver
val = val | coin_out; // Hopper Coin OutR
val = val | 0x00; // Hopper Full
- val = val | (ioport("I10")->read_safe(0x40) & 0x40); // Handle/Spin Button
- val = val | (ioport("I10")->read_safe(0x80) & 0x80); // Jackpot Reset Key
+ val = val | (m_i10->read() & 0x40); // Handle/Spin Button
+ val = val | (m_i10->read() & 0x80); // Jackpot Reset Key
break;
case 0x02: // Bank 20
- val = val | (ioport("I20")->read_safe(0x01) & 0x01); // Bet One Credit
- val = val | (ioport("I20")->read_safe(0x02) & 0x02); // Play Max Credits
- val = val | (ioport("I20")->read_safe(0x04) & 0x04); // Cash Out
- val = val | (ioport("I20")->read_safe(0x08) & 0x08); // Change Request
+ val = val | (m_i20->read() & 0x01); // Bet One Credit
+ val = val | (m_i20->read() & 0x02); // Play Max Credits
+ val = val | (m_i20->read() & 0x04); // Cash Out
+ val = val | (m_i20->read() & 0x08); // Change Request
val = val | 0x00; // Reel Mechanism
- val = val | (ioport("I20")->read_safe(0x20) & 0x20); // Self Test Button
+ val = val | (m_i20->read() & 0x20); // Self Test Button
val = val | 0x40; // Card Cage
val = val | 0x80; // Bill Acceptor
break;
case 0x04: // Bank 30
// Reserved
- val = val | (ioport("I30")->read_safe(0x02) & 0x02); // Drop Door
+ val = val | (m_i30->read() & 0x02); // Drop Door
// Jackpot to Credit Key
// Reserved
// Reserved