mirror of
https://github.com/holub/mame
synced 2025-10-05 08:41:31 +03:00
upd7810.c: Modernized cpu core. [Wilbert Pol]
This commit is contained in:
parent
48bce760ee
commit
9694b53c0a
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -262,12 +262,6 @@ INTERRUPT_GEN_MEMBER(fitfight_state::snd_irq)
|
||||
device.execute().set_input_line(UPD7810_INTF2, HOLD_LINE);
|
||||
}
|
||||
|
||||
static const UPD7810_CONFIG sound_cpu_config =
|
||||
{
|
||||
TYPE_7810,
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
// #define PRIORITY_EASINESS_TO_PLAY
|
||||
|
||||
@ -736,7 +730,6 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", fitfight_state, irq2_line_hold)
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, 12000000)
|
||||
MCFG_CPU_CONFIG(sound_cpu_config)
|
||||
MCFG_CPU_PROGRAM_MAP(snd_mem)
|
||||
MCFG_CPU_IO_MAP(snd_io)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", fitfight_state, snd_irq)
|
||||
|
@ -1271,13 +1271,6 @@ static const ay8910_interface ay8910_config =
|
||||
};
|
||||
|
||||
|
||||
static const UPD7810_CONFIG upd_config =
|
||||
{
|
||||
TYPE_7810,
|
||||
NULL /* io_callback */
|
||||
};
|
||||
|
||||
|
||||
static MACHINE_CONFIG_START( reikaids, homedata_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -1286,7 +1279,6 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", homedata_state, homedata_irq) /* also triggered by the blitter */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7807, 8000000) /* ??? MHz (max speed for the 7807 is 12MHz) */
|
||||
MCFG_CPU_CONFIG(upd_config)
|
||||
MCFG_CPU_PROGRAM_MAP(reikaids_upd7807_map)
|
||||
MCFG_CPU_IO_MAP(reikaids_upd7807_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", homedata_state, upd7807_irq)
|
||||
@ -1336,7 +1328,6 @@ static MACHINE_CONFIG_START( pteacher, homedata_state )
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", homedata_state, homedata_irq) /* also triggered by the blitter */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7807, 9000000) /* 9MHz ? */
|
||||
MCFG_CPU_CONFIG(upd_config)
|
||||
MCFG_CPU_PROGRAM_MAP(pteacher_upd7807_map)
|
||||
MCFG_CPU_IO_MAP(pteacher_upd7807_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", homedata_state, upd7807_irq)
|
||||
|
@ -265,24 +265,15 @@ WRITE_LINE_MEMBER(metro_state::ymf278b_interrupt)
|
||||
|
||||
***************************************************************************/
|
||||
|
||||
static int metro_io_callback( device_t *device, int ioline, int state )
|
||||
READ_LINE_MEMBER(metro_state::metro_rxd_r)
|
||||
{
|
||||
metro_state *driver_state = device->machine().driver_data<metro_state>();
|
||||
address_space &space = driver_state->m_maincpu->space(AS_PROGRAM);
|
||||
UINT8 data = 0;
|
||||
address_space &space = m_maincpu->space(AS_PROGRAM);
|
||||
UINT8 data = soundlatch_byte_r(space, 0);
|
||||
|
||||
switch (ioline)
|
||||
{
|
||||
case UPD7810_RXD: /* read the RxD line */
|
||||
data = driver_state->soundlatch_byte_r(space, 0);
|
||||
state = data & 1;
|
||||
driver_state->soundlatch_byte_w(space, 0, data >> 1);
|
||||
break;
|
||||
default:
|
||||
logerror("upd7810 ioline %d not handled\n", ioline);
|
||||
}
|
||||
soundlatch_byte_w(space, 0, data >> 1);
|
||||
|
||||
return data & 1;
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
WRITE16_MEMBER(metro_state::metro_soundlatch_w)
|
||||
@ -3559,12 +3550,6 @@ MACHINE_RESET_MEMBER(metro_state,metro)
|
||||
}
|
||||
|
||||
|
||||
static const UPD7810_CONFIG metro_cpu_config =
|
||||
{
|
||||
TYPE_7810,
|
||||
metro_io_callback
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( balcube, metro_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
@ -3738,7 +3723,7 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_12MHz)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(daitorid_sound_io_map)
|
||||
|
||||
@ -3780,7 +3765,7 @@ static MACHINE_CONFIG_START( dharma, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -3821,7 +3806,7 @@ static MACHINE_CONFIG_START( karatour, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -3862,7 +3847,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -3903,7 +3888,7 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -3943,7 +3928,7 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -4125,7 +4110,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -4166,7 +4151,7 @@ static MACHINE_CONFIG_START( poitto, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -4207,7 +4192,7 @@ static MACHINE_CONFIG_START( pururun, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2) /* Not confiremd */
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(daitorid_sound_io_map)
|
||||
|
||||
@ -4249,7 +4234,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
@ -4290,7 +4275,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
|
||||
MCFG_CPU_PERIODIC_INT_DRIVER(metro_state, metro_periodic_interrupt, 8*60) // ?
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", UPD7810, XTAL_24MHz/2)
|
||||
MCFG_CPU_CONFIG(metro_cpu_config)
|
||||
MCFG_UPD7810_RXD(READLINE(metro_state,metro_rxd_r))
|
||||
MCFG_CPU_PROGRAM_MAP(metro_sound_map)
|
||||
MCFG_CPU_IO_MAP(metro_sound_io_map)
|
||||
|
||||
|
@ -205,6 +205,7 @@ public:
|
||||
int sx, int sy, int wx, int wy, int big, UINT16 *tilemapram, int layer );
|
||||
DECLARE_WRITE_LINE_MEMBER(blzntrnd_irqhandler);
|
||||
DECLARE_WRITE_LINE_MEMBER(ymf278b_interrupt);
|
||||
DECLARE_READ_LINE_MEMBER(metro_rxd_r);
|
||||
|
||||
protected:
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
|
@ -430,19 +430,6 @@ INPUT_PORTS_END
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
CPU config
|
||||
******************************************************************************/
|
||||
|
||||
|
||||
static const UPD7810_CONFIG ex800_cpu_config =
|
||||
{
|
||||
TYPE_7810,
|
||||
0
|
||||
};
|
||||
|
||||
|
||||
|
||||
/******************************************************************************
|
||||
Machine Drivers
|
||||
******************************************************************************/
|
||||
@ -451,7 +438,6 @@ static const UPD7810_CONFIG ex800_cpu_config =
|
||||
static MACHINE_CONFIG_START( ex800, ex800_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", UPD7810, 12000000) /* 12 MHz? */
|
||||
MCFG_CPU_CONFIG(ex800_cpu_config)
|
||||
MCFG_CPU_PROGRAM_MAP(ex800_mem)
|
||||
MCFG_CPU_IO_MAP(ex800_io)
|
||||
|
||||
|
@ -316,7 +316,6 @@ static GFXDECODE_START( fp1100 )
|
||||
//GFXDECODE_ENTRY( "chargen", 0x0000, fp1100_chars_8x8, 0, 1 )
|
||||
GFXDECODE_END
|
||||
|
||||
static const UPD7810_CONFIG fp1100_slave_cpu_config = { TYPE_7801, NULL };
|
||||
//static const upd1771_interface scv_upd1771c_config = { DEVCB_LINE( scv_upd1771_ack_w ) };
|
||||
|
||||
|
||||
@ -353,7 +352,6 @@ static MACHINE_CONFIG_START( fp1100, fp1100_state )
|
||||
MCFG_CPU_ADD( "sub", UPD7801, MAIN_CLOCK/2 )
|
||||
MCFG_CPU_PROGRAM_MAP( fp1100_slave_map )
|
||||
MCFG_CPU_IO_MAP( fp1100_slave_io )
|
||||
MCFG_CPU_CONFIG( fp1100_slave_cpu_config )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
|
@ -42,9 +42,6 @@ static INPUT_PORTS_START( gamepock )
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
static const UPD7810_CONFIG gamepock_cpu_config = { TYPE_78C06, gamepock_io_callback };
|
||||
|
||||
|
||||
DEVICE_IMAGE_LOAD_MEMBER(gamepock_state,gamepock_cart) {
|
||||
UINT8 *cart = memregion("user1" )->base();
|
||||
|
||||
@ -69,7 +66,7 @@ static MACHINE_CONFIG_START( gamepock, gamepock_state )
|
||||
MCFG_CPU_ADD("maincpu", UPD78C06, XTAL_6MHz) /* uPD78C06AG */
|
||||
MCFG_CPU_PROGRAM_MAP( gamepock_mem)
|
||||
MCFG_CPU_IO_MAP( gamepock_io)
|
||||
MCFG_CPU_CONFIG( gamepock_cpu_config )
|
||||
MCFG_UPD7810_TO(WRITELINE(gamepock_state,gamepock_to_w))
|
||||
|
||||
MCFG_SCREEN_ADD("screen", LCD)
|
||||
MCFG_SCREEN_REFRESH_RATE( 60 )
|
||||
|
@ -244,12 +244,6 @@ INPUT_PORTS_END
|
||||
MACHINE DRIVERS
|
||||
***************************************************************************/
|
||||
|
||||
static const UPD7810_CONFIG lx800_cpu_config =
|
||||
{
|
||||
TYPE_7810,
|
||||
0
|
||||
};
|
||||
|
||||
static const e05a03_interface lx800_e05a03_intf =
|
||||
{
|
||||
DEVCB_DRIVER_MEMBER(lx800_state, lx800_centronics_data_r),
|
||||
@ -262,7 +256,6 @@ static const e05a03_interface lx800_e05a03_intf =
|
||||
static MACHINE_CONFIG_START( lx800, lx800_state )
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("maincpu", UPD7810, XTAL_14_7456MHz)
|
||||
MCFG_CPU_CONFIG(lx800_cpu_config)
|
||||
MCFG_CPU_PROGRAM_MAP(lx800_mem)
|
||||
MCFG_CPU_IO_MAP(lx800_io)
|
||||
|
||||
|
@ -815,7 +815,6 @@ static GFXDECODE_START( scv )
|
||||
GFXDECODE_END
|
||||
|
||||
|
||||
static const UPD7810_CONFIG scv_cpu_config = { TYPE_7801, NULL };
|
||||
static const upd1771_interface scv_upd1771c_config = { DEVCB_DRIVER_LINE_MEMBER( scv_state, scv_upd1771_ack_w ) };
|
||||
|
||||
|
||||
@ -824,7 +823,6 @@ static MACHINE_CONFIG_START( scv, scv_state )
|
||||
MCFG_CPU_ADD( "maincpu", UPD7801, XTAL_4MHz )
|
||||
MCFG_CPU_PROGRAM_MAP( scv_mem )
|
||||
MCFG_CPU_IO_MAP( scv_io )
|
||||
MCFG_CPU_CONFIG( scv_cpu_config )
|
||||
|
||||
|
||||
/* Video chip is EPOCH TV-1 */
|
||||
|
@ -36,11 +36,8 @@ public:
|
||||
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(gamepock_cart);
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
DECLARE_WRITE_LINE_MEMBER(gamepock_to_w);
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*----------- defined in machine/gamepock.c -----------*/
|
||||
|
||||
int gamepock_io_callback( device_t *device, int ioline, int state );
|
||||
|
||||
#endif
|
||||
|
@ -212,12 +212,7 @@ UINT32 gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_ind1
|
||||
}
|
||||
|
||||
/* This is called whenever the T0 pin switches state */
|
||||
int gamepock_io_callback( device_t *device, int ioline, int state )
|
||||
WRITE_LINE_MEMBER(gamepock_state::gamepock_to_w)
|
||||
{
|
||||
gamepock_state *driver_state = device->machine().driver_data<gamepock_state>();
|
||||
if ( ioline == UPD7810_TO )
|
||||
{
|
||||
driver_state->m_speaker->level_w(state & 1);
|
||||
}
|
||||
return 0;
|
||||
m_speaker->level_w(state & 1);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user