summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/midwayic.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/midwayic.cpp')
-rw-r--r--src/mame/machine/midwayic.cpp56
1 files changed, 12 insertions, 44 deletions
diff --git a/src/mame/machine/midwayic.cpp b/src/mame/machine/midwayic.cpp
index 02b727b7acb..1744942fd77 100644
--- a/src/mame/machine/midwayic.cpp
+++ b/src/mame/machine/midwayic.cpp
@@ -28,33 +28,6 @@
/*************************************
*
- * Serial number input kludge
- *
- *************************************/
-
-static INPUT_PORTS_START( pic_serial_adjust )
- PORT_START("SERIAL_DIGIT")
- PORT_DIPNAME( 0x0f, 0x06, "Serial Low Digit")
- PORT_DIPSETTING( 0x00, "0")
- PORT_DIPSETTING( 0x01, "1")
- PORT_DIPSETTING( 0x02, "2")
- PORT_DIPSETTING( 0x03, "3")
- PORT_DIPSETTING( 0x04, "4")
- PORT_DIPSETTING( 0x05, "5")
- PORT_DIPSETTING( 0x06, "6")
- PORT_DIPSETTING( 0x07, "7")
- PORT_DIPSETTING( 0x08, "8")
- PORT_DIPSETTING( 0x09, "9")
- PORT_BIT( 0xf0, 0x00, IPT_UNUSED )
-INPUT_PORTS_END
-
-ioport_constructor midway_serial_pic_device::device_input_ports() const
-{
- return INPUT_PORTS_NAME(pic_serial_adjust);
-}
-
-/*************************************
- *
* Serial number encoding
*
*************************************/
@@ -65,9 +38,8 @@ void midway_serial_pic_device::generate_serial_data(int upper)
uint32_t serial_number, temp;
uint8_t serial_digit[9];
- serial_number = 123450;
+ serial_number = 123456;
serial_number += upper * 1000000;
- serial_number += m_io_serial_digit->read() & 0x0f;
serial_digit[0] = (serial_number / 100000000) % 10;
serial_digit[1] = (serial_number / 10000000) % 10;
@@ -147,7 +119,6 @@ midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig
midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
- m_io_serial_digit(*this, "SERIAL_DIGIT"),
m_upper(0),
m_buff(0),
m_idx(0),
@@ -165,13 +136,10 @@ midway_serial_pic_device::midway_serial_pic_device(const machine_config &mconfig
void midway_serial_pic_device::device_start()
{
serial_register_state();
-}
-
-void midway_serial_pic_device::device_reset()
-{
generate_serial_data(m_upper);
}
+
WRITE_LINE_MEMBER(midway_serial_pic_device::reset_w)
{
if (state)
@@ -183,13 +151,13 @@ WRITE_LINE_MEMBER(midway_serial_pic_device::reset_w)
}
-u8 midway_serial_pic_device::status_r()
+READ8_MEMBER(midway_serial_pic_device::status_r)
{
return m_status;
}
-u8 midway_serial_pic_device::read()
+READ8_MEMBER(midway_serial_pic_device::read)
{
logerror("%s:security R = %04X\n", machine().describe_context(), m_buff);
m_status = 1;
@@ -197,7 +165,7 @@ u8 midway_serial_pic_device::read()
}
-void midway_serial_pic_device::write(u8 data)
+WRITE8_MEMBER(midway_serial_pic_device::write)
{
logerror("%s:security W = %04X\n", machine().describe_context(), data);
@@ -386,7 +354,7 @@ void midway_serial_pic2_device::set_default_nvram(const uint8_t *nvram)
}
-u8 midway_serial_pic2_device::status_r()
+READ8_MEMBER(midway_serial_pic2_device::status_r)
{
uint8_t result = 0;
@@ -405,7 +373,7 @@ u8 midway_serial_pic2_device::status_r()
}
-u8 midway_serial_pic2_device::read()
+READ8_MEMBER(midway_serial_pic2_device::read)
{
uint8_t result = 0;
@@ -425,7 +393,7 @@ u8 midway_serial_pic2_device::read()
}
-void midway_serial_pic2_device::write(u8 data)
+WRITE8_MEMBER(midway_serial_pic2_device::write)
{
static FILE *nvramlog;
if (LOG_NVRAM && !nvramlog)
@@ -1060,7 +1028,7 @@ READ32_MEMBER( midway_ioasic_device::read )
break;
case IOASIC_PICIN:
- result = midway_serial_pic2_device::read() | (midway_serial_pic2_device::status_r() << 8);
+ result = midway_serial_pic2_device::read(space,0) | (midway_serial_pic2_device::status_r(space,0) << 8);
break;
default:
@@ -1193,11 +1161,11 @@ WRITE32_MEMBER( midway_ioasic_device::write )
case IOASIC_PICOUT:
if (m_shuffle_type == MIDWAY_IOASIC_VAPORTRX)
- midway_serial_pic2_device::write(newreg ^ 0x0a);
+ midway_serial_pic2_device::write(space, 0, newreg ^ 0x0a);
else if (m_shuffle_type == MIDWAY_IOASIC_SFRUSHRK)
- midway_serial_pic2_device::write(newreg ^ 0x05);
+ midway_serial_pic2_device::write(space, 0, newreg ^ 0x05);
else
- midway_serial_pic2_device::write(newreg);
+ midway_serial_pic2_device::write(space, 0, newreg);
break;
case IOASIC_PICIN: