changed vlm5030_device pin read/write functions to READ/WRITE_LINE

This commit is contained in:
Michaël Banaan Ananas 2014-08-05 21:36:20 +00:00
parent efc5a33c15
commit 8747f3a9ab
4 changed files with 86 additions and 294 deletions

View File

@ -392,7 +392,7 @@ void vlm5030_device::set_rom(void *speech_rom)
} }
/* get BSY pin level */ /* get BSY pin level */
int vlm5030_device::bsy() READ_LINE_MEMBER( vlm5030_device::bsy )
{ {
update(); update();
return m_pin_BSY; return m_pin_BSY;
@ -405,11 +405,11 @@ WRITE8_MEMBER( vlm5030_device::data_w )
} }
/* set RST pin level : reset / set table address A8-A15 */ /* set RST pin level : reset / set table address A8-A15 */
void vlm5030_device::rst ( int pin ) WRITE_LINE_MEMBER( vlm5030_device::rst )
{ {
if( m_pin_RST ) if( m_pin_RST )
{ {
if( !pin ) if( !state )
{ /* H -> L : latch parameters */ { /* H -> L : latch parameters */
m_pin_RST = 0; m_pin_RST = 0;
setup_parameter( m_latch_data); setup_parameter( m_latch_data);
@ -417,7 +417,7 @@ void vlm5030_device::rst ( int pin )
} }
else else
{ {
if( pin ) if( state )
{ /* L -> H : reset chip */ { /* L -> H : reset chip */
m_pin_RST = 1; m_pin_RST = 1;
if( m_pin_BSY ) if( m_pin_BSY )
@ -429,22 +429,21 @@ void vlm5030_device::rst ( int pin )
} }
/* set VCU pin level : ?? unknown */ /* set VCU pin level : ?? unknown */
void vlm5030_device::vcu(int pin) WRITE_LINE_MEMBER( vlm5030_device::vcu )
{ {
/* direct mode / indirect mode */ /* direct mode / indirect mode */
m_pin_VCU = pin; m_pin_VCU = state;
return;
} }
/* set ST pin level : set table address A0-A7 / start speech */ /* set ST pin level : set table address A0-A7 / start speech */
void vlm5030_device::st( int pin ) WRITE_LINE_MEMBER( vlm5030_device::st )
{ {
int table; int table;
if( m_pin_ST != pin ) if( m_pin_ST != state )
{ {
/* pin level is change */ /* pin level is change */
if( !pin ) if( !state )
{ /* H -> L */ { /* H -> L */
m_pin_ST = 0; m_pin_ST = 0;

View File

@ -14,19 +14,19 @@
void set_rom(void *speech_rom); void set_rom(void *speech_rom);
/* get BSY pin level */ /* get BSY pin level */
int bsy(); DECLARE_READ_LINE_MEMBER( bsy );
/* latch contoll data */ /* latch contoll data */
DECLARE_WRITE8_MEMBER( data_w ); DECLARE_WRITE8_MEMBER( data_w );
/* set RST pin level : reset / set table address A8-A15 */ /* set RST pin level : reset / set table address A8-A15 */
void rst (int pin ); DECLARE_WRITE_LINE_MEMBER( rst );
/* set VCU pin level : ?? unknown */ /* set VCU pin level : ?? unknown */
void vcu( int pin ); DECLARE_WRITE_LINE_MEMBER( vcu );
/* set ST pin level : set table address A0-A7 / start speech */ /* set ST pin level : set table address A0-A7 / start speech */
void st( int pin ); DECLARE_WRITE_LINE_MEMBER( st );
protected: protected:
// device-level overrides // device-level overrides

View File

@ -271,12 +271,6 @@ ADDRESS_MAP_END
***************************************************************************/ ***************************************************************************/
CUSTOM_INPUT_MEMBER(punchout_state::punchout_vlm5030_busy_r)
{
/* bit 4 of DSW1 is vlm busy pin level */
return (m_vlm->bsy()) ? 0x00 : 0x01;
}
static INPUT_PORTS_START( punchout ) static INPUT_PORTS_START( punchout )
PORT_START("IN0") PORT_START("IN0")
PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 ) PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_BUTTON1 )
@ -336,7 +330,7 @@ static INPUT_PORTS_START( punchout )
PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ) ) PORT_DIPSETTING( 0x0a, DEF_STR( 1C_5C ) )
PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) ) PORT_DIPSETTING( 0x07, DEF_STR( 1C_6C ) )
PORT_DIPSETTING( 0x0f, DEF_STR( Free_Play ) ) PORT_DIPSETTING( 0x0f, DEF_STR( Free_Play ) )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, punchout_state,punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("vlm", vlm5030_device, bsy) /* VLM5030 busy signal */
PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED ) PORT_BIT( 0x20, IP_ACTIVE_HIGH, IPT_UNUSED )
PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "R18:!1" ) /* Not documented, R18 resistor */ PORT_DIPUNUSED_DIPLOC( 0x40, 0x00, "R18:!1" ) /* Not documented, R18 resistor */
PORT_DIPNAME( 0x80, 0x00, "Copyright" ) PORT_DIPLOCATION("R19:!1") /* Not documented, R19 resistor */ PORT_DIPNAME( 0x80, 0x00, "Copyright" ) PORT_DIPLOCATION("R19:!1") /* Not documented, R19 resistor */
@ -397,281 +391,79 @@ static INPUT_PORTS_START( armwrest )
Table 1 (for 2 Coin Slots): Table 1 (for 2 Coin Slots):
DSW1 DSW2 DSW1 DSW2 DSW1 DSW2 DSW1 DSW2 DSW1 DSW2
bit 3210 5432 L R C bit 3210 5432 L R C 3210 5432 L R C 3210 5432 L R C 3210 5432 L R C
0000 0000 1 1 1 0000 0000 1 1 1 0001 0000 1 2 1 0010 0000 1 3 1 0011 0000 1 4 1
0000 0001 8 1 1 0000 0001 8 1 1 0001 0001 1 8 1 0010 0001 9 1 1 0011 0001 1 9 1
0000 0010 2 1 1 0000 0010 2 1 1 0001 0010 2 2 1 0010 0010 2 3 1 0011 0010 2 4 1
0000 0011 8 3 3 0000 0011 8 3 3 0001 0011 3 8 3 0010 0011 3 4 4 0011 0011 4 3 4
0000 0100 3 1 2 0000 0100 3 1 2 0001 0100 3 2 1 0010 0100 3 3 1 0011 0100 3 4 1
0000 0101 3 12 4 0000 0101 3 12 4 0001 0101 12 3 4 0010 0101 4 4 1 0011 0101 4 4 1
0000 0110 1 2 2 0000 0110 1 2 2 0001 0110 1 4 2 0010 0110 1 6 2 0011 0110 1 8 2
0000 0111 3 24 2 0000 0111 3 24 2 0001 0111 24 3 2 0010 0111 3 1 2 0011 0111 1 3 2
0000 1000 1 3 3 0000 1000 1 3 3 0001 1000 1 6 3 0010 1000 1 9 3 0011 1000 1 12 3
0000 1001 4 1 3 0000 1001 4 1 3 0001 1001 1 4 3 0010 1001 10 1 3 0011 1001 1 10 3
0000 1010 1 4 4 0000 1010 1 4 4 0001 1010 1 8 4 0010 1010 1 12 4 0011 1010 1 16 4
0000 1011 3 3 4 0000 1011 3 3 4 0001 1011 3 3 4 0010 1011 1 1 6 0011 1011 1 1 6
0000 1100 1 5 5 0000 1100 1 5 5 0001 1100 1 10 5 0010 1100 1 15 5 0011 1100 1 20 5
0000 1101 1 1 1 0000 1101 1 1 1 0001 1101 1 1 2 0010 1101 2 2 1 0011 1101 1 1 4
0000 1110 2 3 3 0000 1110 2 3 3 0001 1110 2 6 3 0010 1110 2 9 3 0011 1110 2 12 3
0000 1111 5 5 3 0000 1111 5 5 3 0001 1111 5 5 4 0010 1111 2 2 5 0011 1111 8 8 1
0001 0000 1 2 1 0100 0000 1 5 1 0101 0000 1 6 1 0110 0000 2 1 2 0111 0000 3 1 3
0001 0001 1 8 1 0100 0001 10 1 1 0101 0001 1 10 1 0110 0001 12 1 1 0111 0001 1 12 1
0001 0010 2 2 1 0100 0010 2 5 1 0101 0010 2 6 1 0110 0010 4 1 2 0111 0010 6 1 3
0001 0011 3 8 3 0100 0011 2 5 5 0101 0011 5 2 5 0110 0011 10 2 1 0111 0011 2 10 1
0001 0100 3 2 1 0100 0100 3 5 1 0101 0100 3 6 1 0110 0100 6 1 2 0111 0100 9 1 3
0001 0101 12 3 4 0100 0101 4 4 1 0101 0101 4 5 1 0110 0101 3 8 2 0111 0101 8 3 2
0001 0110 1 4 2 0100 0110 1 10 2 0101 0110 1 12 2 0110 0110 1 1 2 0111 0110 3 2 6
0001 0111 24 3 2 0100 0111 10 1 2 0101 0111 1 10 2 0110 0111 3 2 4 0111 0111 2 3 4
0001 1000 1 6 3 0100 1000 1 15 3 0101 1000 1 18 3 0110 1000 2 3 6 0111 1000 1 1 3
0001 1001 1 4 3 0100 1001 20 1 3 0101 1001 1 20 3 0110 1001 9 4 12 0111 1001 4 9 12
0001 1010 1 8 4 0100 1010 1 20 4 0101 1010 1 24 4 0110 1010 1 2 4 0111 1010 3 4 12
0001 1011 3 3 4 0100 1011 16 1 2 0101 1011 20 20 0* 0110 1011 1 1 1 0111 1011 1 1 1
0001 1100 1 10 5 0100 1100 1 25 5 0101 1100 1 30 5 0110 1100 2 5 10 0111 1100 3 5 15
0001 1101 1 1 2 0100 1101 1 1 5 0101 1101 3 3 3 0110 1101 4 4 1 0111 1101 6 6 1
0001 1110 2 6 3 0100 1110 2 15 3 0101 1110 2 18 1 0110 1110 4 3 6 0111 1110 2 2 3
0001 1111 5 5 4 0100 1111 8 8 3 0101 1111 9 9 1 0110 1111 9 9 2 0111 1111 10 10 1
0010 0000 1 3 1 DSW1 DSW2 DSW1 DSW2 DSW1 DSW2 DSW1 DSW2
0010 0001 9 1 1 bit 3210 5432 L R C 3210 5432 L R C 3210 5432 L R C 3210 5432 L R C
0010 0010 2 3 1
0010 0011 3 4 4
0010 0100 3 3 1
0010 0101 4 4 1
0010 0110 1 6 2
0010 0111 3 1 2
0010 1000 1 9 3
0010 1001 10 1 3
0010 1010 1 12 4
0010 1011 1 1 6
0010 1100 1 15 5
0010 1101 2 2 1
0010 1110 2 9 3
0010 1111 2 2 5
0011 0000 1 4 1 1000 0000 4 1 4 1001 0000 5 1 5 1010 0000 3 2 3 1011 0000 3 5 3
0011 0001 1 9 1 1000 0001 3 2 2 1001 0001 2 3 2 1010 0001 5 2 2 1011 0001 2 5 2
0011 0010 2 4 1 1000 0010 8 1 4 1001 0010 10 1 5 1010 0010 6 2 3 1011 0010 6 5 3
0011 0011 4 3 4 1000 0011 12 2 1 1001 0011 2 12 1 1010 0011 3 4 2 1011 0011 4 3 2
0011 0100 3 4 1 1000 0100 12 1 4 1001 0100 15 1 5 1010 0100 9 2 3 1011 0100 9 5 3
0011 0101 4 4 1 1000 0101 5 5 1 1001 0101 5 5 1 1010 0101 6 6 1 1011 0101 6 6 1
0011 0110 1 8 2 1000 0110 2 1 4 1001 0110 5 2 10 1010 0110 3 4 6 1011 0110 3 10 6
0011 0111 1 3 2 1000 0111 3 3 2 1001 0111 3 3 2 1010 0111 4 9 6 1011 0111 9 4 6
0011 1000 1 12 3 1000 1000 4 3 12 1001 1000 5 3 15 1010 1000 1 2 3 1011 1000 1 5 3
0011 1001 1 10 3 1000 1001 4 2 3 1001 1001 2 4 3 1010 1001 10 2 3 1011 1001 2 10 3
0011 1010 1 16 4 1000 1010 1 1 4 1001 1010 5 4 20 1010 1010 3 8 12 1011 1010 3 20 12
0011 1011 1 1 6 1000 1011 1 1 1 1001 1011 1 1 1 1010 1011 1 1 1 1011 1011 1 1 1
0011 1100 1 20 5 1000 1100 4 5 20 1001 1100 1 1 5 1010 1100 2 10 15 1011 1100 3 25 15
0011 1101 1 1 4 1000 1101 1 1 6 1001 1101 2 2 3 1010 1101 5 5 1 1011 1101 3 3 2
0011 1110 2 12 3 1000 1110 8 3 12 1001 1110 10 3 15 1010 1110 2 2 3 1011 1110 2 5 3
0011 1111 8 8 1 1000 1111 10 10 3 1001 1111 11 11 1 1010 1111 11 11 3 1011 1111 12 12 1
0100 0000 1 5 1
0100 0001 10 1 1
0100 0010 2 5 1
0100 0011 2 5 5
0100 0100 3 5 1
0100 0101 4 4 1
0100 0110 1 10 2
0100 0111 10 1 2
0100 1000 1 15 3
0100 1001 20 1 3
0100 1010 1 20 4
0100 1011 16 1 2
0100 1100 1 25 5
0100 1101 1 1 5
0100 1110 2 15 3
0100 1111 8 8 3
0101 0000 1 6 1
0101 0001 1 10 1
0101 0010 2 6 1
0101 0011 5 2 5
0101 0100 3 6 1
0101 0101 4 5 1
0101 0110 1 12 2
0101 0111 1 10 2
0101 1000 1 18 3
0101 1001 1 20 3
0101 1010 1 24 4
0101 1011 20 20 0 Not a "Freeplay": you MUST insert a coin!
0101 1100 1 30 5
0101 1101 3 3 3
0101 1110 2 18 1
0101 1111 9 9 1
0110 0000 2 1 2
0110 0001 12 1 1
0110 0010 4 1 2
0110 0011 10 2 1
0110 0100 6 1 2
0110 0101 3 8 2
0110 0110 1 1 2
0110 0111 3 2 4
0110 1000 2 3 6
0110 1001 9 4 12
0110 1010 1 2 4
0110 1011 1 1 1
0110 1100 2 5 10
0110 1101 4 4 1
0110 1110 4 3 6
0110 1111 9 9 2
0111 0000 3 1 3
0111 0001 1 12 1
0111 0010 6 1 3
0111 0011 2 10 1
0111 0100 9 1 3
0111 0101 8 3 2
0111 0110 3 2 6
0111 0111 2 3 4
0111 1000 1 1 3
0111 1001 4 9 12
0111 1010 3 4 12
0111 1011 1 1 1
0111 1100 3 5 15
0111 1101 6 6 1
0111 1110 2 2 3
0111 1111 10 10 1
1000 0000 4 1 4
1000 0001 3 2 2
1000 0010 8 1 4
1000 0011 12 2 1
1000 0100 12 1 4
1000 0101 5 5 1
1000 0110 2 1 4
1000 0111 3 3 2
1000 1000 4 3 12
1000 1001 4 2 3
1000 1010 1 1 4
1000 1011 1 1 1
1000 1100 4 5 20
1000 1101 1 1 6
1000 1110 8 3 12
1000 1111 10 10 3
1001 0000 5 1 5
1001 0001 2 3 2
1001 0010 10 1 5
1001 0011 2 12 1
1001 0100 15 1 5
1001 0101 5 5 1
1001 0110 5 2 10
1001 0111 3 3 2
1001 1000 5 3 15
1001 1001 2 4 3
1001 1010 5 4 20
1001 1011 1 1 1
1001 1100 1 1 5
1001 1101 2 2 3
1001 1110 10 3 15
1001 1111 11 11 1
1010 0000 3 2 3
1010 0001 5 2 2
1010 0010 6 2 3
1010 0011 3 4 2
1010 0100 9 2 3
1010 0101 6 6 1
1010 0110 3 4 6
1010 0111 4 9 6
1010 1000 1 2 3
1010 1001 10 2 3
1010 1010 3 8 12
1010 1011 1 1 1
1010 1100 2 10 15
1010 1101 5 5 1
1010 1110 2 2 3
1010 1111 11 11 3
1011 0000 3 5 3
1011 0001 2 5 2
1011 0010 6 5 3
1011 0011 4 3 2
1011 0100 9 5 3
1011 0101 6 6 1
1011 0110 3 10 6
1011 0111 9 4 6
1011 1000 1 5 3
1011 1001 2 10 3
1011 1010 3 20 12
1011 1011 1 1 1
1011 1100 3 25 15
1011 1101 3 3 2
1011 1110 2 5 3
1011 1111 12 12 1
1100 0000 4 5 4
1100 0001 9 2 2
1100 0010 8 5 4
1100 0011 3 8 4
1100 0100 12 5 4
1100 0101 3 12 2
1100 0110 2 5 4
1100 0111 8 9 6
1100 1000 4 15 12
1100 1001 11 2 3
1100 1010 1 5 4
1100 1011 1 1 1
1100 1100 4 25 20
1100 1101 1 1 3
1100 1110 8 15 12
1100 1111 20 20 3
1101 0000 4 1 1
1101 0001 2 9 2
1101 0010 4 2 1
1101 0011 8 3 4
1101 0100 4 3 1
1101 0101 12 3 2
1101 0110 8 1 2
1101 0111 9 8 6
1101 1000 12 1 3
1101 1001 2 11 3
1101 1010 12 2 3
1101 1011 1 1 1
1101 1100 20 1 5
1101 1101 5 5 2
1101 1110 18 2 3
1101 1111 3 3 4
1110 0000 5 5 1
1110 0001 4 4 3
1110 0010 5 2 1
1110 0011 11 2 1
1110 0100 5 3 1
1110 0101 3 24 4
1110 0110 10 1 2
1110 0111 1 6 4
1110 1000 15 1 3
1110 1001 9 8 12
1110 1010 20 1 4
1110 1011 1 1 1
1110 1100 25 1 5
1110 1101 4 4 3
1110 1110 20 4 4
1110 1111 20 20 0 Not a "Freeplay": you MUST insert a coin!
1111 0000 6 1 1
1111 0001 3 4 3
1111 0010 6 2 1
1111 0011 2 11 1
1111 0100 6 3 1
1111 0101 24 3 1
1111 0110 12 1 2
1111 0111 6 1 4
1111 1000 18 1 3
1111 1001 8 9 12
1111 1010 24 1 4
1111 1011 1 1 1
1111 1100 15 2 3
1111 1101 3 3 4
1111 1110 "Freeplay"
1111 1111 "Freeplay"
1100 0000 4 5 4 1101 0000 4 1 1 1110 0000 5 5 1 1111 0000 6 1 1
1100 0001 9 2 2 1101 0001 2 9 2 1110 0001 4 4 3 1111 0001 3 4 3
1100 0010 8 5 4 1101 0010 4 2 1 1110 0010 5 2 1 1111 0010 6 2 1
1100 0011 3 8 4 1101 0011 8 3 4 1110 0011 11 2 1 1111 0011 2 11 1
1100 0100 12 5 4 1101 0100 4 3 1 1110 0100 5 3 1 1111 0100 6 3 1
1100 0101 3 12 2 1101 0101 12 3 2 1110 0101 3 24 4 1111 0101 24 3 1
1100 0110 2 5 4 1101 0110 8 1 2 1110 0110 10 1 2 1111 0110 12 1 2
1100 0111 8 9 6 1101 0111 9 8 6 1110 0111 1 6 4 1111 0111 6 1 4
1100 1000 4 15 12 1101 1000 12 1 3 1110 1000 15 1 3 1111 1000 18 1 3
1100 1001 11 2 3 1101 1001 2 11 3 1110 1001 9 8 12 1111 1001 8 9 12
1100 1010 1 5 4 1101 1010 12 2 3 1110 1010 20 1 4 1111 1010 24 1 4
1100 1011 1 1 1 1101 1011 1 1 1 1110 1011 1 1 1 1111 1011 1 1 1
1100 1100 4 25 20 1101 1100 20 1 5 1110 1100 25 1 5 1111 1100 15 2 3
1100 1101 1 1 3 1101 1101 5 5 2 1110 1101 4 4 3 1111 1101 3 3 4
1100 1110 8 15 12 1101 1110 18 2 3 1110 1110 20 4 4 1111 1110 "Freeplay"
1100 1111 20 20 3 1101 1111 3 3 4 1110 1111 20 20 0* 1111 1111 "Freeplay"
Table 2 (for 1 Coin Slot): Table 2 (for 1 Coin Slot):
@ -721,10 +513,12 @@ bit 3210 5432 L R C
1101 1xxx 3 3 4 1101 1xxx 3 3 4
1110 0xxx 4 4 3 1110 0xxx 4 4 3
1110 1xxx 20 20 0 Not a "Freeplay": you MUST insert a coin! 1110 1xxx 20 20 0*
1111 xxxx "Freeplay" 1111 xxxx "Freeplay"
0*: Not a "Freeplay": you MUST insert a coin!
*/ */
PORT_MODIFY("DSW2") PORT_MODIFY("DSW2")
@ -767,7 +561,7 @@ bit 3210 5432 L R C
PORT_DIPSETTING( 0x0d, "1101" ) PORT_DIPSETTING( 0x0d, "1101" )
PORT_DIPSETTING( 0x0e, "1110" ) PORT_DIPSETTING( 0x0e, "1110" )
PORT_DIPSETTING( 0x0f, "1111" ) PORT_DIPSETTING( 0x0f, "1111" )
PORT_BIT( 0x10, IP_ACTIVE_HIGH, IPT_SPECIAL ) PORT_CUSTOM_MEMBER(DEVICE_SELF, punchout_state,punchout_vlm5030_busy_r, NULL) /* VLM5030 busy signal */ PORT_BIT( 0x10, IP_ACTIVE_LOW, IPT_SPECIAL ) PORT_READ_LINE_DEVICE_MEMBER("vlm", vlm5030_device, bsy) /* VLM5030 busy signal */
PORT_DIPNAME( 0x40, 0x00, "Coin Slots" ) PORT_DIPLOCATION("R18:!1") /* R18 resistor */ PORT_DIPNAME( 0x40, 0x00, "Coin Slots" ) PORT_DIPLOCATION("R18:!1") /* R18 resistor */
PORT_DIPSETTING( 0x40, "1" ) PORT_DIPSETTING( 0x40, "1" )
PORT_DIPSETTING( 0x00, "2" ) PORT_DIPSETTING( 0x00, "2" )

View File

@ -64,7 +64,6 @@ public:
DECLARE_WRITE8_MEMBER(armwrest_fg_videoram_w); DECLARE_WRITE8_MEMBER(armwrest_fg_videoram_w);
DECLARE_WRITE8_MEMBER(punchout_spr1_videoram_w); DECLARE_WRITE8_MEMBER(punchout_spr1_videoram_w);
DECLARE_WRITE8_MEMBER(punchout_spr2_videoram_w); DECLARE_WRITE8_MEMBER(punchout_spr2_videoram_w);
DECLARE_CUSTOM_INPUT_MEMBER(punchout_vlm5030_busy_r);
DECLARE_WRITE8_MEMBER(punchout_speech_reset_w); DECLARE_WRITE8_MEMBER(punchout_speech_reset_w);
DECLARE_WRITE8_MEMBER(punchout_speech_st_w); DECLARE_WRITE8_MEMBER(punchout_speech_st_w);
DECLARE_WRITE8_MEMBER(punchout_speech_vcu_w); DECLARE_WRITE8_MEMBER(punchout_speech_vcu_w);