diff options
-rw-r--r-- | src/mame/drivers/igs009.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/igs017.c | 116 | ||||
-rw-r--r-- | src/mame/drivers/imolagp.c | 18 | ||||
-rw-r--r-- | src/mame/drivers/iqblock.c | 21 | ||||
-rw-r--r-- | src/mame/drivers/kingdrby.c | 87 | ||||
-rw-r--r-- | src/mame/drivers/kungfur.c | 45 | ||||
-rw-r--r-- | src/mame/drivers/lordgun.c | 86 | ||||
-rw-r--r-- | src/mame/drivers/lucky74.c | 89 | ||||
-rw-r--r-- | src/mame/drivers/merit.c | 111 | ||||
-rw-r--r-- | src/mame/drivers/meritm.c | 41 | ||||
-rw-r--r-- | src/mame/drivers/pcxt.c | 44 | ||||
-rw-r--r-- | src/mame/drivers/pipeline.c | 66 | ||||
-rw-r--r-- | src/mame/drivers/rgum.c | 21 | ||||
-rw-r--r-- | src/mame/drivers/sfkick.c | 22 | ||||
-rw-r--r-- | src/mame/drivers/skylncr.c | 44 | ||||
-rw-r--r-- | src/mame/drivers/slotcarn.c | 66 | ||||
-rw-r--r-- | src/mame/drivers/sms.c | 47 | ||||
-rw-r--r-- | src/mame/drivers/statriv2.c | 30 | ||||
-rw-r--r-- | src/mame/drivers/subsino.c | 2 | ||||
-rw-r--r-- | src/mame/drivers/taxidriv.c | 109 | ||||
-rw-r--r-- | src/mame/drivers/tcl.c | 40 | ||||
-rw-r--r-- | src/mame/drivers/tx1.c | 39 | ||||
-rw-r--r-- | src/mame/drivers/vroulet.c | 45 |
23 files changed, 595 insertions, 596 deletions
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index ddc635520a3..c3d29c78140 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -17,7 +17,7 @@ NVRAM : Battery for main RAM #include "emu.h" #include "cpu/z180/z180.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/2413intf.h" #include "sound/okim6295.h" #include "machine/nvram.h" diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 498d2e307f9..4c4f1ce0cd8 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -44,7 +44,7 @@ Notes: #include "emu.h" #include "cpu/m68000/m68000.h" #include "cpu/z180/z180.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/2413intf.h" #include "sound/okim6295.h" @@ -1302,7 +1302,7 @@ static ADDRESS_MAP_START( iqblocka_io, AS_IO, 8, igs017_state ) // AM_RANGE(0x200a, 0x200a) AM_WRITENOP - AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD_LEGACY("ppi8255", ppi8255_r) + AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read) AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w ) AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w ) @@ -1424,7 +1424,7 @@ static ADDRESS_MAP_START( mgcs, AS_PROGRAM, 16, igs017_state ) AM_RANGE( 0x49c002, 0x49c003 ) AM_READ(mgcs_magic_r ) AM_RANGE( 0xa02000, 0xa02fff ) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram") AM_RANGE( 0xa03000, 0xa037ff ) AM_RAM_WRITE(mgcs_paletteram_w ) AM_SHARE("paletteram") - AM_RANGE( 0xa04020, 0xa04027 ) AM_DEVREAD8_LEGACY("ppi8255", ppi8255_r, 0x00ff ) + AM_RANGE( 0xa04020, 0xa04027 ) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff) AM_RANGE( 0xa04024, 0xa04025 ) AM_WRITE(video_disable_lsb_w ) AM_RANGE( 0xa04028, 0xa04029 ) AM_WRITE(irq2_enable_w ) AM_RANGE( 0xa0402a, 0xa0402b ) AM_WRITE(irq1_enable_w ) @@ -1521,7 +1521,7 @@ static ADDRESS_MAP_START( sdmg2, AS_PROGRAM, 16, igs017_state ) AM_RANGE(0x1f0000, 0x1fffff) AM_RAM AM_RANGE(0x202000, 0x202fff) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram") AM_RANGE(0x203000, 0x2037ff) AM_RAM_WRITE(sdmg2_paletteram_w ) AM_SHARE("paletteram") - AM_RANGE(0x204020, 0x204027) AM_DEVREAD8_LEGACY("ppi8255", ppi8255_r, 0x00ff ) + AM_RANGE(0x204020, 0x204027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff) AM_RANGE(0x204024, 0x204025) AM_WRITE(video_disable_lsb_w ) AM_RANGE(0x204028, 0x204029) AM_WRITE(irq2_enable_w ) AM_RANGE(0x20402a, 0x20402b) AM_WRITE(irq1_enable_w ) @@ -1643,7 +1643,7 @@ static ADDRESS_MAP_START( mgdha_map, AS_PROGRAM, 16, igs017_state ) AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE(spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram") AM_RANGE(0xa03000, 0xa037ff) AM_RAM_WRITE(sdmg2_paletteram_w ) AM_SHARE("paletteram") // AM_RANGE(0xa04014, 0xa04015) // written with FF at boot - AM_RANGE(0xa04020, 0xa04027) AM_DEVREAD8_LEGACY("ppi8255", ppi8255_r, 0x00ff ) + AM_RANGE(0xa04020, 0xa04027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff) AM_RANGE(0xa04024, 0xa04025) AM_WRITE(video_disable_lsb_w ) AM_RANGE(0xa04028, 0xa04029) AM_WRITE(irq2_enable_w ) AM_RANGE(0xa0402a, 0xa0402b) AM_WRITE(irq1_enable_w ) @@ -1735,7 +1735,7 @@ static ADDRESS_MAP_START( tjsb_io, AS_IO, 8, igs017_state ) // AM_RANGE(0x200a, 0x200a) AM_WRITENOP - AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD_LEGACY("ppi8255", ppi8255_r) + AM_RANGE( 0x2010, 0x2013 ) AM_DEVREAD("ppi8255", i8255_device, read) AM_RANGE( 0x2012, 0x2012 ) AM_WRITE(video_disable_w ) AM_RANGE( 0x2014, 0x2014 ) AM_WRITE(nmi_enable_w ) @@ -1819,7 +1819,7 @@ static ADDRESS_MAP_START( lhzb2, AS_PROGRAM, 16, igs017_state ) AM_RANGE(0x910002, 0x910003) AM_READ( lhzb2_magic_r ) AM_RANGE(0xb02000, 0xb02fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram") AM_RANGE(0xb03000, 0xb037ff) AM_RAM_WRITE( lhzb2a_paletteram_w ) AM_SHARE("paletteram") - AM_RANGE(0xb04020, 0xb04027) AM_DEVREAD8_LEGACY( "ppi8255", ppi8255_r, 0x00ff ) + AM_RANGE(0xb04020, 0xb04027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff) AM_RANGE(0xb04024, 0xb04025) AM_WRITE( video_disable_lsb_w ) AM_RANGE(0xb04028, 0xb04029) AM_WRITE( irq2_enable_w ) AM_RANGE(0xb0402a, 0xb0402b) AM_WRITE( irq1_enable_w ) @@ -2032,7 +2032,7 @@ static ADDRESS_MAP_START( slqz2, AS_PROGRAM, 16, igs017_state ) AM_RANGE(0x602002, 0x602003) AM_READ( slqz2_magic_r ) AM_RANGE(0x902000, 0x902fff) AM_READWRITE( spriteram_lsb_r, spriteram_lsb_w ) AM_SHARE("spriteram") AM_RANGE(0x903000, 0x9037ff) AM_RAM_WRITE( slqz2_paletteram_w ) AM_SHARE("paletteram") - AM_RANGE(0x904020, 0x904027) AM_DEVREAD8_LEGACY( "ppi8255", ppi8255_r, 0x00ff ) + AM_RANGE(0x904020, 0x904027) AM_DEVREAD8("ppi8255", i8255_device, read, 0x00ff) AM_RANGE(0x904024, 0x904025) AM_WRITE( video_disable_lsb_w ) AM_RANGE(0x904028, 0x904029) AM_WRITE( irq2_enable_w ) AM_RANGE(0x90402a, 0x90402b) AM_WRITE( irq1_enable_w ) @@ -3018,17 +3018,17 @@ static TIMER_DEVICE_CALLBACK( irqblocka_interrupt ) // Dips are read through the 8255 -static const ppi8255_interface iqblocka_ppi8255_intf = -{ - DEVCB_INPUT_PORT("DSW1"), // Port A read - DEVCB_INPUT_PORT("DSW2"), // Port B read - DEVCB_INPUT_PORT("DSW3"), // Port C read - - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write +static I8255A_INTERFACE( iqblocka_ppi8255_intf ) +{ + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("DSW2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("DSW3"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; + static MACHINE_RESET( iqblocka ) { igs017_state *state = machine.driver_data<igs017_state>(); @@ -3043,7 +3043,7 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state ) MCFG_CPU_IO_MAP(iqblocka_io) MCFG_TIMER_ADD_SCANLINE("scantimer", irqblocka_interrupt, "screen", 0, 1) - MCFG_PPI8255_ADD( "ppi8255", iqblocka_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf ) MCFG_MACHINE_RESET(iqblocka) @@ -3096,15 +3096,14 @@ static MACHINE_RESET( mgcs ) memset(state->m_igs_magic, 0, sizeof(state->m_igs_magic)); } -static const ppi8255_interface mgcs_ppi8255_intf = +static I8255A_INTERFACE( mgcs_ppi8255_intf ) { - DEVCB_INPUT_PORT("COINS"), // Port A read - DEVCB_HANDLER(mgcs_keys_r), // Port B read - DEVCB_NULL, // Port C read (see code at 1C83A) - - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write + DEVCB_INPUT_PORT("COINS"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_HANDLER(mgcs_keys_r), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ }; static MACHINE_CONFIG_START( mgcs, igs017_state ) @@ -3114,7 +3113,7 @@ static MACHINE_CONFIG_START( mgcs, igs017_state ) MCFG_MACHINE_RESET(mgcs) - MCFG_PPI8255_ADD( "ppi8255", mgcs_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", mgcs_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3139,16 +3138,14 @@ MACHINE_CONFIG_END // lhzb2 - -static const ppi8255_interface lhzb2_ppi8255_intf = -{ - DEVCB_INPUT_PORT("COINS"), // Port A read - DEVCB_INPUT_PORT("DSW1"), // Port B read - DEVCB_INPUT_PORT("DSW2"), // Port C read - - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write +static I8255A_INTERFACE( lhzb2_ppi8255_intf ) +{ + DEVCB_INPUT_PORT("COINS"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("DSW1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("DSW2"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; static MACHINE_CONFIG_START( lhzb2, igs017_state ) @@ -3158,7 +3155,7 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state ) MCFG_MACHINE_RESET(mgcs) - MCFG_PPI8255_ADD( "ppi8255", lhzb2_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", lhzb2_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3198,7 +3195,7 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state ) MCFG_MACHINE_RESET(lhzb2a) -// MCFG_PPI8255_ADD( "ppi8255", sdmg2_ppi8255_intf ) +// MCFG_I8255A_ADD( "ppi8255", sdmg2_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3231,7 +3228,7 @@ static MACHINE_CONFIG_START( slqz2, igs017_state ) MCFG_MACHINE_RESET(mgcs) - MCFG_PPI8255_ADD( "ppi8255", lhzb2_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", lhzb2_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3256,16 +3253,14 @@ MACHINE_CONFIG_END // sdmg2 - -static const ppi8255_interface sdmg2_ppi8255_intf = -{ - DEVCB_INPUT_PORT("DSW1"), // Port A read - DEVCB_INPUT_PORT("DSW2"), // Port B read - DEVCB_NULL, // Port C read - - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write +static I8255A_INTERFACE( sdmg2_ppi8255_intf ) +{ + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("DSW2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ }; static MACHINE_CONFIG_START( sdmg2, igs017_state ) @@ -3275,7 +3270,7 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state ) MCFG_MACHINE_RESET(mgcs) - MCFG_PPI8255_ADD( "ppi8255", sdmg2_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", sdmg2_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3312,15 +3307,14 @@ static TIMER_DEVICE_CALLBACK( mgdh_interrupt ) device_set_input_line(state->m_maincpu, 3, HOLD_LINE); // lev 3 instead of 2 } -static const ppi8255_interface mgdh_ppi8255_intf = +static I8255A_INTERFACE( mgdh_ppi8255_intf ) { - DEVCB_INPUT_PORT("DSW1"), // Port A read - DEVCB_NULL, // Port B read - DEVCB_NULL, // Port C read - - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ }; static MACHINE_CONFIG_START( mgdha, igs017_state ) @@ -3330,7 +3324,7 @@ static MACHINE_CONFIG_START( mgdha, igs017_state ) MCFG_MACHINE_RESET(mgcs) - MCFG_PPI8255_ADD( "ppi8255", mgdh_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", mgdh_ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) @@ -3361,7 +3355,7 @@ static MACHINE_CONFIG_START( tjsb, igs017_state ) MCFG_CPU_IO_MAP(tjsb_io) MCFG_TIMER_ADD_SCANLINE("scantimer", irqblocka_interrupt, "screen", 0, 1) - MCFG_PPI8255_ADD( "ppi8255", iqblocka_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", iqblocka_ppi8255_intf ) MCFG_MACHINE_RESET(iqblocka) diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c index 0ce9f43786b..06e538df846 100644 --- a/src/mame/drivers/imolagp.c +++ b/src/mame/drivers/imolagp.c @@ -75,7 +75,7 @@ Known issues: #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" @@ -503,14 +503,14 @@ static INTERRUPT_GEN( vblank_irq ) } /* master_interrupt */ -static const ppi8255_interface ppi8255_intf = +static I8255A_INTERFACE( ppi8255_intf ) { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL, /* Port C write */ }; @@ -569,7 +569,7 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state ) MCFG_MACHINE_START(imolagp) MCFG_MACHINE_RESET(imolagp) - MCFG_PPI8255_ADD( "ppi8255", ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c index 1c00afaa917..3918d684c93 100644 --- a/src/mame/drivers/iqblock.c +++ b/src/mame/drivers/iqblock.c @@ -52,7 +52,7 @@ Grndtour: #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/z180/z180.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "includes/iqblock.h" #include "sound/2413intf.h" @@ -113,14 +113,14 @@ static WRITE8_DEVICE_HANDLER( port_C_w ) /* bit 7 could be a second coin counter, but coin 2 doesn't seem to work... */ } -static const ppi8255_interface ppi8255_intf = +static I8255A_INTERFACE( ppi8255_intf ) { - DEVCB_INPUT_PORT("P1"), /* Port A read */ - DEVCB_INPUT_PORT("P2"), /* Port B read */ - DEVCB_INPUT_PORT("EXTRA"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(port_C_w) /* Port C write */ + DEVCB_INPUT_PORT("P1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("P2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("EXTRA"), /* Port C read */ + DEVCB_HANDLER(port_C_w) /* Port C write */ }; @@ -136,8 +136,7 @@ static ADDRESS_MAP_START( main_portmap, AS_IO, 8, iqblock_state ) AM_RANGE(0x6000, 0x603f) AM_WRITE(iqblock_fgscroll_w) AM_RANGE(0x6800, 0x69ff) AM_WRITE(iqblock_fgvideoram_w) /* initialized up to 6fff... bug or larger tilemap? */ AM_RANGE(0x7000, 0x7fff) AM_WRITE(iqblock_bgvideoram_w) - AM_RANGE(0x5080, 0x5083) AM_DEVWRITE_LEGACY("ppi8255", ppi8255_w) - AM_RANGE(0x5080, 0x5083) AM_DEVREAD_LEGACY("ppi8255", ppi8255_r) + AM_RANGE(0x5080, 0x5083) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x5090, 0x5090) AM_READ_PORT("SW0") AM_RANGE(0x50a0, 0x50a0) AM_READ_PORT("SW1") AM_RANGE(0x50b0, 0x50b1) AM_DEVWRITE_LEGACY("ymsnd", ym2413_w) // UM3567_data_port_0_w @@ -279,7 +278,7 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state ) MCFG_CPU_IO_MAP(main_portmap) MCFG_TIMER_ADD_SCANLINE("scantimer", iqblock_irq, "screen", 0, 1) - MCFG_PPI8255_ADD( "ppi8255", ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c index aef06cf7dde..c8abb773930 100644 --- a/src/mame/drivers/kingdrby.c +++ b/src/mame/drivers/kingdrby.c @@ -66,7 +66,7 @@ sg1_b.e1 4096 0x92ef3c13 D2732D #include "emu.h" #include "cpu/z80/z80.h" #include "video/mc6845.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" #include "sound/okim6295.h" #include "sound/2203intf.h" @@ -402,8 +402,8 @@ static ADDRESS_MAP_START( slave_map, AS_PROGRAM, 8, kingdrby_state ) AM_RANGE(0x0000, 0x2fff) AM_ROM AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom, tested for the post check AM_RANGE(0x4000, 0x43ff) AM_RAM AM_SHARE("nvram") //backup ram - AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */ - AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */ + AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* I/O Ports */ + AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* I/O Ports */ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x7400, 0x74ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x7600, 0x7600) AM_DEVWRITE("crtc", mc6845_device, address_w) @@ -422,8 +422,8 @@ static ADDRESS_MAP_START( slave_1986_map, AS_PROGRAM, 8, kingdrby_state ) AM_RANGE(0x0000, 0x2fff) AM_ROM AM_RANGE(0x3000, 0x3fff) AM_ROM //sound rom tested for the post check AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("nvram") //backup ram - AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* I/O Ports */ -// AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* I/O Ports */ + AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* I/O Ports */ +// AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* I/O Ports */ AM_RANGE(0x7000, 0x73ff) AM_RAM AM_SHARE("share1") AM_RANGE(0x7400, 0x74ff) AM_RAM AM_SHARE("spriteram") AM_RANGE(0x7600, 0x7600) AM_DEVWRITE("crtc", mc6845_device, address_w) @@ -473,27 +473,26 @@ ADDRESS_MAP_END * *************************************/ -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { /* A & B as input, C (all) as output */ - { - DEVCB_HANDLER(hopper_io_r), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(hopper_io_w) /* Port C write */ - }, + DEVCB_HANDLER(hopper_io_r), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(hopper_io_w) /* Port C write */ +}; +static I8255A_INTERFACE( ppi8255_1_intf ) +{ /* B & C (lower) as input, A & C (upper) as output */ - { - DEVCB_NULL, /* Port A read */ - DEVCB_HANDLER(key_matrix_r),/* Port B read */ - DEVCB_HANDLER(input_mux_r), /* Port C read */ - DEVCB_HANDLER(sound_cmd_w), /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(outport2_w) /* Port C write */ - } + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(sound_cmd_w), /* Port A write */ + DEVCB_HANDLER(key_matrix_r), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_HANDLER(input_mux_r), /* Port C read */ + DEVCB_HANDLER(outport2_w) /* Port C write */ }; static WRITE8_DEVICE_HANDLER( outportb_w ) @@ -502,29 +501,29 @@ static WRITE8_DEVICE_HANDLER( outportb_w ) } -static const ppi8255_interface ppi8255_1986_intf[2] = +static I8255A_INTERFACE( ppi8255_1986_0_intf ) { /* C as input, (all) as output */ - { - DEVCB_NULL, /* Port A read */ - DEVCB_INPUT_PORT("IN0"), /* Port B read */ - DEVCB_INPUT_PORT("IN1"), /* Port C read */ - DEVCB_HANDLER(sound_cmd_w), /* Port A write */ - DEVCB_HANDLER(outportb_w), /* Port B write */ - DEVCB_NULL /* Port C write */ - }, + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(sound_cmd_w), /* Port A write */ + DEVCB_INPUT_PORT("IN0"), /* Port B read */ + DEVCB_HANDLER(outportb_w), /* Port B write */ + DEVCB_INPUT_PORT("IN1"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; +static I8255A_INTERFACE( ppi8255_1986_1_intf ) +{ /* actually unused */ - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - } + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL, /* Port C write */ }; + /************************************* * * Input Port Definitions @@ -1030,8 +1029,8 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state ) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_GFXDECODE(kingdrby) MCFG_PALETTE_LENGTH(0x200) @@ -1062,8 +1061,10 @@ static MACHINE_CONFIG_DERIVED( kingdrbb, kingdrby ) MCFG_PALETTE_INIT(kingdrbb) - MCFG_PPI8255_RECONFIG( "ppi8255_0", ppi8255_1986_intf[0] ) - MCFG_PPI8255_RECONFIG( "ppi8255_1", ppi8255_1986_intf[1] ) + MCFG_DEVICE_REMOVE("ppi8255_0") + MCFG_DEVICE_REMOVE("ppi8255_1") + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_1986_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1986_1_intf ) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cowrace, kingdrbb ) diff --git a/src/mame/drivers/kungfur.c b/src/mame/drivers/kungfur.c index a12a7971dfe..90d2705c3d4 100644 --- a/src/mame/drivers/kungfur.c +++ b/src/mame/drivers/kungfur.c @@ -57,7 +57,7 @@ mae(forward), migi(right), ushiro(back), hidari(left) #include "emu.h" #include "cpu/m6809/m6809.h" #include "sound/msm5205.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "kungfur.lh" @@ -215,8 +215,8 @@ static ADDRESS_MAP_START( kungfur_map, AS_PROGRAM, 8, kungfur_state ) AM_RANGE(0x0000, 0x07ff) AM_RAM AM_RANGE(0x4000, 0x4000) AM_DEVWRITE_LEGACY("adpcm1", kungfur_adpcm1_w) AM_RANGE(0x4004, 0x4004) AM_DEVWRITE_LEGACY("adpcm2", kungfur_adpcm2_w) - AM_RANGE(0x4008, 0x400b) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0x400c, 0x400f) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0x4008, 0x400b) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0x400c, 0x400f) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xc000, 0xffff) AM_ROM ADDRESS_MAP_END @@ -259,28 +259,29 @@ INPUT_PORTS_END ***************************************************************************/ -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { // $4008 - always $83 (PPI mode 0, ports B & lower C as input) - { - DEVCB_NULL, - DEVCB_INPUT_PORT("IN0"), - DEVCB_INPUT_PORT("IN1"), - DEVCB_HANDLER(kungfur_output_w), - DEVCB_NULL, - DEVCB_HANDLER(kungfur_control_w) - }, + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(kungfur_output_w), /* Port A write */ + DEVCB_INPUT_PORT("IN0"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN1"), /* Port C read */ + DEVCB_HANDLER(kungfur_control_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ // $400c - always $80 (PPI mode 0, all ports as output) - { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_HANDLER(kungfur_latch1_w), - DEVCB_HANDLER(kungfur_latch2_w), - DEVCB_HANDLER(kungfur_latch3_w) - } + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(kungfur_latch1_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(kungfur_latch2_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(kungfur_latch3_w) /* Port C write */ }; + static const msm5205_interface msm5205_config_1 = { kfr_adpcm1_int, @@ -318,8 +319,8 @@ static MACHINE_CONFIG_START( kungfur, kungfur_state ) MCFG_CPU_PROGRAM_MAP(kungfur_map) MCFG_CPU_PERIODIC_INT(kungfur_irq, 975) // close approximation - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_MACHINE_START(kungfur) MCFG_MACHINE_RESET(kungfur) diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c index 8395e4d97d5..289c4b366ed 100644 --- a/src/mame/drivers/lordgun.c +++ b/src/mame/drivers/lordgun.c @@ -41,7 +41,7 @@ Notes: #include "emu.h" #include "cpu/m68000/m68000.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/eeprom.h" #include "sound/3812intf.h" #include "sound/okim6295.h" @@ -288,8 +288,8 @@ static ADDRESS_MAP_START( lordgun_map, AS_PROGRAM, 16, lordgun_state ) AM_RANGE(0x503c00, 0x503c01) AM_READ(lordgun_gun_0_y_r) AM_RANGE(0x503e00, 0x503e01) AM_READ(lordgun_gun_1_y_r) AM_RANGE(0x504000, 0x504001) AM_WRITE(lordgun_soundlatch_w) - AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w, 0x00ff) - AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w, 0x00ff) + AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8("ppi8255_0", i8255_device, read, write, 0x00ff) + AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8("ppi8255_1", i8255_device, read, write, 0x00ff) AM_RANGE(0x50a900, 0x50a9ff) AM_RAM // protection ADDRESS_MAP_END @@ -316,8 +316,8 @@ static ADDRESS_MAP_START( aliencha_map, AS_PROGRAM, 16, lordgun_state ) AM_RANGE(0x502e00, 0x502e01) AM_WRITEONLY AM_SHARE("scroll_y.3") AM_RANGE(0x503000, 0x503001) AM_WRITE(lordgun_priority_w) AM_RANGE(0x504000, 0x504001) AM_WRITE(lordgun_soundlatch_w) - AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w, 0x00ff) - AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w, 0x00ff) + AM_RANGE(0x506000, 0x506007) AM_DEVREADWRITE8("ppi8255_0", i8255_device, read, write, 0x00ff) + AM_RANGE(0x508000, 0x508007) AM_DEVREADWRITE8("ppi8255_1", i8255_device, read, write, 0x00ff) AM_RANGE(0x50b900, 0x50b9ff) AM_RAM // protection ADDRESS_MAP_END @@ -606,47 +606,47 @@ INPUT_PORTS_END ***************************************************************************/ -static const ppi8255_interface lordgun_ppi8255_intf[2] = +static I8255A_INTERFACE( lordgun_ppi8255_0_intf ) { - { - DEVCB_INPUT_PORT("DIP"), // Port A read - DEVCB_NULL, // Port B read - DEVCB_INPUT_PORT("SERVICE"), // Port C read - DEVCB_HANDLER(fake_w), // Port A write - DEVCB_HANDLER(lordgun_eeprom_w),// Port B write - DEVCB_HANDLER(fake2_w) // Port C write - }, - { - DEVCB_INPUT_PORT("START1"), // Port A read - DEVCB_INPUT_PORT("START2"), // Port B read - DEVCB_INPUT_PORT("COIN"), // Port C read - DEVCB_HANDLER(fake_w), // Port A write - DEVCB_HANDLER(fake_w), // Port B write - DEVCB_HANDLER(fake_w) // Port C write - } + DEVCB_INPUT_PORT("DIP"), /* Port A read */ + DEVCB_HANDLER(fake_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(lordgun_eeprom_w), /* Port B write */ + DEVCB_INPUT_PORT("SERVICE"), /* Port C read */ + DEVCB_HANDLER(fake2_w) /* Port C write */ }; +static I8255A_INTERFACE( lordgun_ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("START1"), /* Port A read */ + DEVCB_HANDLER(fake_w), /* Port A write */ + DEVCB_INPUT_PORT("START2"), /* Port B read */ + DEVCB_HANDLER(fake_w), /* Port B write */ + DEVCB_INPUT_PORT("COIN"), /* Port C read */ + DEVCB_HANDLER(fake_w) /* Port C write */ +}; -static const ppi8255_interface aliencha_ppi8255_intf[2] = +static I8255A_INTERFACE( aliencha_ppi8255_0_intf ) { - { - DEVCB_HANDLER(aliencha_dip_r), // Port A read - DEVCB_NULL, // Port B read - DEVCB_INPUT_PORT("SERVICE"), // Port C read - DEVCB_HANDLER(fake2_w), // Port A write - DEVCB_HANDLER(aliencha_eeprom_w), // Port B write - DEVCB_HANDLER(aliencha_dip_w) // Port C write - }, - { - DEVCB_INPUT_PORT("P1"), // Port A read - DEVCB_INPUT_PORT("P2"), // Port B read - DEVCB_INPUT_PORT("COIN"), // Port C read - DEVCB_HANDLER(fake_w), // Port A write - DEVCB_HANDLER(fake_w), // Port B write - DEVCB_HANDLER(fake_w) // Port C write - } + DEVCB_HANDLER(aliencha_dip_r), /* Port A read */ + DEVCB_HANDLER(fake2_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(aliencha_eeprom_w), /* Port B write */ + DEVCB_INPUT_PORT("SERVICE"), /* Port C read */ + DEVCB_HANDLER(aliencha_dip_w) /* Port C write */ +}; + +static I8255A_INTERFACE( aliencha_ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("P1"), /* Port A read */ + DEVCB_HANDLER(fake_w), /* Port A write */ + DEVCB_INPUT_PORT("P2"), /* Port B read */ + DEVCB_HANDLER(fake_w), /* Port B write */ + DEVCB_INPUT_PORT("COIN"), /* Port C read */ + DEVCB_HANDLER(fake_w) /* Port C write */ }; + static void soundirq(device_t *device, int state) { cputag_set_input_line(device->machine(), "soundcpu", INPUT_LINE_IRQ0, state); @@ -666,8 +666,8 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state ) MCFG_CPU_PROGRAM_MAP(lordgun_soundmem_map) MCFG_CPU_IO_MAP(lordgun_soundio_map) - MCFG_PPI8255_ADD( "ppi8255_0", lordgun_ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", lordgun_ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", lordgun_ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", lordgun_ppi8255_1_intf ) MCFG_EEPROM_93C46_ADD("eeprom") @@ -709,8 +709,8 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state ) MCFG_CPU_PROGRAM_MAP(lordgun_soundmem_map) MCFG_CPU_IO_MAP(aliencha_soundio_map) - MCFG_PPI8255_ADD( "ppi8255_0", aliencha_ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", aliencha_ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", aliencha_ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", aliencha_ppi8255_1_intf ) MCFG_EEPROM_93C46_ADD("eeprom") diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c index a01160a575e..562546514b2 100644 --- a/src/mame/drivers/lucky74.c +++ b/src/mame/drivers/lucky74.c @@ -671,7 +671,7 @@ #include "sound/ay8910.h" #include "sound/sn76496.h" #include "sound/msm5205.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/nvram.h" #include "lucky74.lh" #include "includes/lucky74.h" @@ -809,11 +809,11 @@ static ADDRESS_MAP_START( lucky74_map, AS_PROGRAM, 8, lucky74_state ) AM_RANGE(0xd800, 0xdfff) AM_RAM_WRITE(lucky74_fg_colorram_w) AM_SHARE("fg_colorram") /* VRAM1-2 */ AM_RANGE(0xe000, 0xe7ff) AM_RAM_WRITE(lucky74_bg_videoram_w) AM_SHARE("bg_videoram") /* VRAM2-1 */ AM_RANGE(0xe800, 0xefff) AM_RAM_WRITE(lucky74_bg_colorram_w) AM_SHARE("bg_colorram") /* VRAM2-2 */ - AM_RANGE(0xf000, 0xf003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports 0 & 1 */ - AM_RANGE(0xf080, 0xf083) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* DSW 1, 2 & 3 */ - AM_RANGE(0xf0c0, 0xf0c3) AM_DEVREADWRITE_LEGACY("ppi8255_3", ppi8255_r, ppi8255_w) /* DSW 4 */ + AM_RANGE(0xf000, 0xf003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports 0 & 1 */ + AM_RANGE(0xf080, 0xf083) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* DSW 1, 2 & 3 */ + AM_RANGE(0xf0c0, 0xf0c3) AM_DEVREADWRITE("ppi8255_3", i8255_device, read, write) /* DSW 4 */ AM_RANGE(0xf100, 0xf100) AM_DEVWRITE_LEGACY("sn1", sn76496_w) /* SN76489 #1 */ - AM_RANGE(0xf200, 0xf203) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* Input Ports 2 & 4 */ + AM_RANGE(0xf200, 0xf203) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports 2 & 4 */ AM_RANGE(0xf300, 0xf300) AM_DEVWRITE_LEGACY("sn2", sn76496_w) /* SN76489 #2 */ AM_RANGE(0xf400, 0xf400) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) /* YM2149 control */ AM_RANGE(0xf500, 0xf500) AM_DEVWRITE_LEGACY("sn3", sn76496_w) /* SN76489 #3 */ @@ -1162,40 +1162,45 @@ static void lucky74_adpcm_int(device_t *device) Since MAME doesn't support it yet, I replaced both 82C255 with 4x 8255... */ -static const ppi8255_interface ppi8255_intf[4] = + +static I8255A_INTERFACE( ppi8255_0_intf ) { - { /* A & B set as input */ - DEVCB_INPUT_PORT("IN0"), /* Port A read, IN0 */ - DEVCB_INPUT_PORT("IN1"), /* Port B read, IN1 */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C writes: 0x00 after reset, 0xff during game, and 0xfd when tap F2 for percentage and run count */ - }, - { /* A & C set as input */ - DEVCB_INPUT_PORT("IN2"), /* Port A read, IN2 */ - DEVCB_NULL, /* Port B read */ - DEVCB_INPUT_PORT("IN4"), /* Port C read, IN4 */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { /* A, B & C set as input */ - DEVCB_INPUT_PORT("DSW1"), /* Port A read, DSW1 */ - DEVCB_INPUT_PORT("DSW2"), /* Port B read, DSW2 */ - DEVCB_INPUT_PORT("DSW3"), /* Port C read, DSW3 */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { /* A set as input */ - DEVCB_INPUT_PORT("DSW4"), /* Port A read, DSW4 */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_HANDLER(lamps_a_w), /* Port B write, LAMPSA */ - DEVCB_HANDLER(lamps_b_w) /* Port C write, LAMPSB */ - } + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write: 0x00 after reset, 0xff during game, and 0xfd when tap F2 for percentage and run count */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("IN2"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN4"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_2_intf ) +{ + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("DSW2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("DSW3"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_3_intf ) +{ + DEVCB_INPUT_PORT("DSW4"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(lamps_a_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(lamps_b_w) /* Port C write */ }; @@ -1237,10 +1242,10 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state ) MCFG_SOUND_START(lucky74) /* 2x 82c255 (4x 8255) */ - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - MCFG_PPI8255_ADD( "ppi8255_2", ppi8255_intf[2] ) - MCFG_PPI8255_ADD( "ppi8255_3", ppi8255_intf[3] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) + MCFG_I8255A_ADD( "ppi8255_2", ppi8255_2_intf ) + MCFG_I8255A_ADD( "ppi8255_3", ppi8255_3_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index 415e765d096..1f0214f37b5 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -40,7 +40,7 @@ Notes: it's important that "user1" is 0xa0000 bytes with empty space filled #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" #include "video/mc6845.h" #include "machine/nvram.h" @@ -357,8 +357,8 @@ CUSTOM_INPUT_MEMBER(merit_state::rndbit_r) static ADDRESS_MAP_START( pitboss_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x5fff) AM_ROM AM_RANGE(0x6000, 0x67ff) AM_RAM - AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -373,8 +373,8 @@ static ADDRESS_MAP_START( casino5_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x6000, 0x6fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x7000, 0x7000) AM_WRITE(casino5_bank_w) AM_RANGE(0x7001, 0x7fff) AM_RAM - AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc000, 0xc003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -385,8 +385,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( bigappg_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -397,8 +397,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( dodge_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -417,8 +417,8 @@ static ADDRESS_MAP_START( trvwhiz_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x5400, 0x54ff) AM_WRITE(low_offset_w) AM_RANGE(0x5800, 0x58ff) AM_WRITE(med_offset_w) AM_RANGE(0x6000, 0x67ff) AM_RAM - AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xa000, 0xa003) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc000, 0xc003) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_MIRROR(0x05f0) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_MIRROR(0x05f0) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -435,8 +435,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( phrcraze_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xa000, 0xbfff) AM_RAM - AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) - AM_RANGE(0xc00c, 0xc00f) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) + AM_RANGE(0xc00c, 0xc00f) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w) AM_RANGE(0xd600, 0xd6ff) AM_WRITE(low_offset_w) AM_RANGE(0xda00, 0xdaff) AM_WRITE(med_offset_w) @@ -456,8 +456,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( tictac_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_RAM - AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w) AM_RANGE(0xd600, 0xd6ff) AM_WRITE(low_offset_w) AM_RANGE(0xda00, 0xdaff) AM_WRITE(med_offset_w) @@ -477,8 +477,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( trvwhziv_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xa000, 0xbfff) AM_RAM - AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w) AM_RANGE(0xd600, 0xd6ff) AM_WRITE(low_offset_w) AM_RANGE(0xda00, 0xdaff) AM_WRITE(med_offset_w) @@ -493,8 +493,8 @@ static ADDRESS_MAP_START( dtrvwz5_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_RAM AM_SHARE("nvram") AM_RANGE(0xb000, 0xb0ff) AM_ROM /* protection? code jumps here */ - AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_MIRROR(0x1df0) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xce00, 0xceff) AM_READWRITE(questions_r, high_offset_w) AM_RANGE(0xd600, 0xd6ff) AM_WRITE(low_offset_w) AM_RANGE(0xda00, 0xdaff) AM_WRITE(med_offset_w) @@ -509,8 +509,8 @@ static ADDRESS_MAP_START( couple_map, AS_PROGRAM, 8, merit_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0x8000, 0x9fff) AM_ROMBANK("bank1") AM_RANGE(0xa000, 0xbfff) AM_RAM AM_SHARE("backup_ram") - AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xc004, 0xc007) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xc008, 0xc00b) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_DEVWRITE("crtc", mc6845_device, address_w) AM_RANGE(0xe001, 0xe001) AM_DEVWRITE("crtc", mc6845_device, register_w) AM_RANGE(0xe800, 0xefff) AM_RAM AM_SHARE("raattr") @@ -1158,46 +1158,37 @@ static INPUT_PORTS_START( couplep ) INPUT_PORTS_END -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { - DEVCB_INPUT_PORT("DSW"), /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_HANDLER(led1_w), /* Port B write */ - DEVCB_HANDLER(misc_w) /* Port C write */ - } + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; -static const ppi8255_interface ppi8255_couple_intf[2] = +static I8255A_INTERFACE( ppi8255_1_intf ) { - { - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { - DEVCB_INPUT_PORT("DSW"), /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_HANDLER(led1_w), /* Port B write */ - DEVCB_HANDLER(misc_couple_w) /* Port C write */ - } + DEVCB_INPUT_PORT("DSW"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(led1_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(misc_w) /* Port C write */ }; +static I8255A_INTERFACE( couple_ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("DSW"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(led1_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(misc_couple_w)/* Port C write */ +}; + + static const ay8910_interface merit_ay8912_interface = { AY8910_LEGACY_OUTPUT, @@ -1226,8 +1217,8 @@ static MACHINE_CONFIG_START( pitboss, merit_state ) MCFG_CPU_PROGRAM_MAP(pitboss_map) MCFG_CPU_IO_MAP(trvwhiz_io_map) - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_MACHINE_START(merit) /* video hardware */ @@ -1315,10 +1306,8 @@ static MACHINE_CONFIG_DERIVED( couple, pitboss ) MCFG_CPU_PROGRAM_MAP(couple_map) MCFG_CPU_IO_MAP(tictac_io_map) - MCFG_DEVICE_MODIFY("ppi8255_0") - MCFG_DEVICE_CONFIG( ppi8255_couple_intf[0]) - MCFG_DEVICE_MODIFY("ppi8255_1") - MCFG_DEVICE_CONFIG( ppi8255_couple_intf[1]) + MCFG_DEVICE_REMOVE("ppi8255_1") + MCFG_I8255A_ADD( "ppi8255_1", couple_ppi8255_1_intf ) MACHINE_CONFIG_END diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c index c908d94d5ad..75cc7c109d2 100644 --- a/src/mame/drivers/meritm.c +++ b/src/mame/drivers/meritm.c @@ -104,7 +104,7 @@ Not all regional versions are available for each Megatouch series #include "cpu/z80/z80daisy.h" #include "sound/ay8910.h" #include "video/v9938.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/z80pio.h" #include "machine/pc16552d.h" #include "machine/microtch.h" @@ -591,7 +591,7 @@ static ADDRESS_MAP_START( meritm_crt250_io_map, AS_IO, 8, meritm_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write) AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write) - AM_RANGE(0x30, 0x33) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x80, 0x80) AM_DEVREAD_LEGACY("aysnd", ay8910_r) @@ -603,7 +603,7 @@ static ADDRESS_MAP_START( meritm_crt250_crt258_io_map, AS_IO, 8, meritm_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write) AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write) - AM_RANGE(0x30, 0x33) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x60, 0x67) AM_READWRITE_LEGACY(pc16552d_0_r,pc16552d_0_w) @@ -624,7 +624,7 @@ static ADDRESS_MAP_START( meritm_io_map, AS_IO, 8, meritm_state ) AM_RANGE(0x01, 0x01) AM_WRITE(watchdog_reset_w) AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("v9938_0", v9938_device, read, write) AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("v9938_1", v9938_device, read, write) - AM_RANGE(0x30, 0x33) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE(0x30, 0x33) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x40, 0x43) AM_DEVREADWRITE_LEGACY("z80pio_0", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x50, 0x53) AM_DEVREADWRITE_LEGACY("z80pio_1", z80pio_cd_ba_r, z80pio_cd_ba_w) AM_RANGE(0x60, 0x67) AM_READWRITE_LEGACY(pc16552d_0_r,pc16552d_0_w) @@ -772,24 +772,24 @@ static WRITE8_DEVICE_HANDLER(meritm_crt250_port_b_w) output_set_value("P1 CANCEL LAMP", !BIT(data,6)); } -static const ppi8255_interface crt260_ppi8255_intf = +static I8255A_INTERFACE( crt260_ppi8255_intf ) { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(meritm_8255_port_c_r), /* Port C read */ - DEVCB_NULL, /* Port A write (used) */ - DEVCB_NULL, /* Port B write (used LMP x DRIVE) */ - DEVCB_NULL /* Port C write */ + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_HANDLER(meritm_8255_port_c_r),/* Port C read */ + DEVCB_NULL /* Port C write */ }; -static const ppi8255_interface crt250_ppi8255_intf = +static I8255A_INTERFACE( crt250_ppi8255_intf ) { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(meritm_8255_port_c_r), /* Port C read */ - DEVCB_NULL, /* Port A write (used) */ - DEVCB_HANDLER(meritm_crt250_port_b_w), /* Port B write (used LMP x DRIVE) */ - DEVCB_NULL /* Port C write */ + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(meritm_crt250_port_b_w),/* Port B write (used LMP x DRIVE) */ + DEVCB_HANDLER(meritm_8255_port_c_r),/* Port C read */ + DEVCB_NULL /* Port C write */ }; /************************************* @@ -1062,7 +1062,7 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state ) MCFG_MACHINE_START(meritm_crt250) - MCFG_PPI8255_ADD( "ppi8255", crt250_ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", crt250_ppi8255_intf ) MCFG_Z80PIO_ADD( "z80pio_0", SYSTEM_CLK/6, meritm_audio_pio_intf ) MCFG_Z80PIO_ADD( "z80pio_1", SYSTEM_CLK/6, meritm_io_pio_intf ) @@ -1119,7 +1119,8 @@ static MACHINE_CONFIG_DERIVED( meritm_crt260, meritm_crt250 ) MCFG_CPU_PROGRAM_MAP(meritm_map) MCFG_CPU_IO_MAP(meritm_io_map) - MCFG_PPI8255_RECONFIG( "ppi8255", crt260_ppi8255_intf ) + MCFG_DEVICE_REMOVE("ppi8255") + MCFG_I8255A_ADD( "ppi8255", crt260_ppi8255_intf ) MCFG_WATCHDOG_TIME_INIT(attotime::from_msec(1200)) // DS1232, TD connected to VCC MCFG_MACHINE_START(meritm_crt260) diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c index 80669c8be39..1254b756c83 100644 --- a/src/mame/drivers/pcxt.c +++ b/src/mame/drivers/pcxt.c @@ -57,7 +57,7 @@ the main program is 9th October 1990. #include "emu.h" #include "cpu/i86/i86.h" #include "machine/pit8253.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/8237dma.h" #include "machine/pic8259.h" #include "machine/mc146818.h" @@ -340,27 +340,27 @@ static WRITE8_DEVICE_HANDLER( sys_reset_w ) cputag_set_input_line(device->machine(), "maincpu", INPUT_LINE_RESET, PULSE_LINE); } +static I8255A_INTERFACE( ppi8255_0_intf ) +{ + DEVCB_HANDLER(port_a_r), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_HANDLER(port_b_r), /* Port B read */ + DEVCB_HANDLER(port_b_w), /* Port B write */ + DEVCB_HANDLER(port_c_r), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; -static const ppi8255_interface filetto_ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_1_intf ) { - { - DEVCB_HANDLER(port_a_r), /* Port A read */ - DEVCB_HANDLER(port_b_r), /* Port B read */ - DEVCB_HANDLER(port_c_r), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_HANDLER(port_b_w), /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(wss_1_w), /* Port A write */ - DEVCB_HANDLER(wss_2_w), /* Port B write */ - DEVCB_HANDLER(sys_reset_w) /* Port C write */ - } + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(wss_1_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(wss_2_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(sys_reset_w) /* Port C write */ }; + /*Floppy Disk Controller 765 device*/ /*Currently we only emulate it at a point that the BIOS will pass the checks*/ @@ -547,8 +547,8 @@ static ADDRESS_MAP_START( pcxt_io_common, AS_IO, 8, pcxt_state ) AM_RANGE(0x0000, 0x000f) AM_DEVREADWRITE_LEGACY("dma8237_1", i8237_r, i8237_w ) //8237 DMA Controller AM_RANGE(0x0020, 0x002f) AM_DEVREADWRITE_LEGACY("pic8259_1", pic8259_r, pic8259_w ) //8259 Interrupt control AM_RANGE(0x0040, 0x0043) AM_DEVREADWRITE_LEGACY("pit8253", pit8253_r, pit8253_w) //8253 PIT - AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) //PPI 8255 - AM_RANGE(0x0064, 0x0066) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) //PPI 8255 + AM_RANGE(0x0060, 0x0063) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) //PPI 8255 + AM_RANGE(0x0064, 0x0066) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) //PPI 8255 AM_RANGE(0x0070, 0x007f) AM_DEVREADWRITE("rtc", mc146818_device, read, write) AM_RANGE(0x0080, 0x0087) AM_READWRITE(dma_page_select_r,dma_page_select_w) AM_RANGE(0x00a0, 0x00af) AM_DEVREADWRITE_LEGACY("pic8259_2", pic8259_r, pic8259_w ) @@ -727,8 +727,8 @@ static MACHINE_CONFIG_START( filetto, pcxt_state ) MCFG_PIT8253_ADD( "pit8253", pc_pit8253_config ) - MCFG_PPI8255_ADD( "ppi8255_0", filetto_ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", filetto_ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_I8237_ADD( "dma8237_1", XTAL_14_31818MHz/3, dma8237_1_config ) diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c index e35f64602cb..9a671db5359 100644 --- a/src/mame/drivers/pipeline.c +++ b/src/mame/drivers/pipeline.c @@ -67,7 +67,7 @@ Stephh's notes (based on the games Z80 code and some tests) : #include "cpu/z80/z80.h" #include "machine/z80ctc.h" #include "sound/2203intf.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "cpu/z80/z80daisy.h" #include "cpu/m6805/m6805.h" @@ -193,8 +193,8 @@ static ADDRESS_MAP_START( cpu0_mem, AS_PROGRAM, 8, pipeline_state ) AM_RANGE(0x8000, 0x87ff) AM_RAM AM_RANGE(0x8800, 0x97ff) AM_RAM_WRITE(vram1_w) AM_SHARE("vram1") AM_RANGE(0x9800, 0xa7ff) AM_RAM_WRITE(vram2_w) AM_SHARE("vram2") - AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xb810, 0xb813) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xb810, 0xb813) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xb830, 0xb830) AM_NOP AM_RANGE(0xb840, 0xb840) AM_NOP ADDRESS_MAP_END @@ -202,7 +202,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( cpu1_mem, AS_PROGRAM, 8, pipeline_state ) AM_RANGE(0x0000, 0x7fff) AM_ROM AM_RANGE(0xc000, 0xc7ff) AM_RAM - AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) + AM_RANGE(0xe000, 0xe003) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) ADDRESS_MAP_END static ADDRESS_MAP_START( sound_port, AS_IO, 8, pipeline_state ) @@ -326,32 +326,34 @@ static const z80_daisy_config daisy_chain_sound[] = { NULL } }; -static const ppi8255_interface ppi8255_intf[3] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { - DEVCB_INPUT_PORT("P1"), /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ /* related to sound/music : check code at 0x1c0a */ - DEVCB_HANDLER(vidctrl_w) /* Port C write */ - }, - { - DEVCB_INPUT_PORT("DSW1"), /* Port A read */ - DEVCB_INPUT_PORT("DSW2"), /* Port B read */ - DEVCB_HANDLER(protection_r), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(protection_w) /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - } + DEVCB_INPUT_PORT("P1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ // related to sound/music : check code at 0x1c0a + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(vidctrl_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("DSW2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_HANDLER(protection_r), /* Port C read */ + DEVCB_HANDLER(protection_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_2_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ }; static const ym2203_interface ym2203_config = @@ -400,9 +402,9 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state ) MCFG_Z80CTC_ADD( "ctc", 7372800/2 /* same as "audiocpu" */, ctc_intf ) - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - MCFG_PPI8255_ADD( "ppi8255_2", ppi8255_intf[2] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) + MCFG_I8255A_ADD( "ppi8255_2", ppi8255_2_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c index 3023a2d01f8..a41236e4585 100644 --- a/src/mame/drivers/rgum.c +++ b/src/mame/drivers/rgum.c @@ -15,7 +15,7 @@ The ppi at 3000-3003 seems to be a dual port communication thing with the z80. #include "cpu/z80/z80.h" #include "cpu/m6502/m6502.h" #include "video/mc6845.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" @@ -73,7 +73,7 @@ static ADDRESS_MAP_START( rgum_map, AS_PROGRAM, 8, rgum_state ) AM_RANGE(0x2801, 0x2801) AM_READNOP //read but value discarded? AM_RANGE(0x2803, 0x2803) AM_READNOP - AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0x3000, 0x3003) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vram") AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("cram") @@ -242,16 +242,17 @@ static const mc6845_interface mc6845_intf = NULL /* update address callback */ }; -static const ppi8255_interface ppi8255_intf = +static I8255A_INTERFACE( ppi8255_intf ) { - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; + static const ay8910_interface ay8910_config = { AY8910_LEGACY_OUTPUT, @@ -278,7 +279,7 @@ static MACHINE_CONFIG_START( rgum, rgum_state ) MCFG_MC6845_ADD("crtc", MC6845, 24000000/16, mc6845_intf) /* unknown clock & type, hand tuned to get ~50 fps (?) */ - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) MCFG_GFXDECODE(rgum) MCFG_PALETTE_LENGTH(0x100) diff --git a/src/mame/drivers/sfkick.c b/src/mame/drivers/sfkick.c index e919a7d93e5..8991fad78a8 100644 --- a/src/mame/drivers/sfkick.c +++ b/src/mame/drivers/sfkick.c @@ -54,7 +54,7 @@ YM2203C #include "emu.h" #include "cpu/z80/z80.h" #include "video/v9938.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/2203intf.h" @@ -334,7 +334,7 @@ static ADDRESS_MAP_START( sfkick_io_map, AS_IO, 8, sfkick_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE( 0xa0, 0xa7) AM_WRITE(soundlatch_byte_w ) AM_RANGE( 0x98, 0x9b) AM_DEVREADWRITE( "v9938", v9938_device, read, write) - AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE( 0xa8, 0xab) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE( 0xb4, 0xb5) AM_RAM /* loopback ? req by sfkicka (MSX Bios leftover)*/ ADDRESS_MAP_END @@ -355,17 +355,17 @@ static WRITE8_DEVICE_HANDLER ( ppi_port_c_w ) state->m_input_mux=data; } -static const ppi8255_interface ppi8255_intf = +static I8255A_INTERFACE( ppi8255_intf ) { - DEVCB_NULL, - DEVCB_HANDLER(ppi_port_b_r), - DEVCB_NULL, - DEVCB_HANDLER(ppi_port_a_w), - DEVCB_NULL, - DEVCB_HANDLER(ppi_port_c_w) - + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(ppi_port_a_w), /* Port A write */ + DEVCB_HANDLER(ppi_port_b_r), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(ppi_port_c_w) /* Port C write */ }; + static INPUT_PORTS_START( sfkick ) PORT_START("IN0") PORT_BIT( 0x3f, IP_ACTIVE_LOW, IPT_UNUSED ) /* unused ? */ @@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( sfkick, sfkick_state ) MCFG_PALETTE_LENGTH(512) - MCFG_PPI8255_ADD( "ppi8255", ppi8255_intf ) + MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) MCFG_MACHINE_RESET(sfkick) diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c index 8f577b93394..8c4d0037f07 100644 --- a/src/mame/drivers/skylncr.c +++ b/src/mame/drivers/skylncr.c @@ -35,7 +35,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/nvram.h" @@ -420,8 +420,8 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( io_map_skylncr, AS_IO, 8, skylncr_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x00, 0x03) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */ - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* Input Ports */ + AM_RANGE(0x00, 0x03) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */ + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */ AM_RANGE(0x20, 0x20) AM_WRITE(skylncr_coin_w ) @@ -657,24 +657,24 @@ INPUT_PORTS_END * PPI 8255 (x2) Interface * **************************************/ -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { /* A, B & C set as input */ - DEVCB_INPUT_PORT("IN1"), /* Port A read */ - DEVCB_INPUT_PORT("IN2"), /* Port B read */ - DEVCB_INPUT_PORT("DSW1"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { /* A, B & C set as input */ - DEVCB_INPUT_PORT("DSW2"), /* Port A read */ - DEVCB_INPUT_PORT("IN3"), /* Port B read */ - DEVCB_INPUT_PORT("IN4"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - } + DEVCB_INPUT_PORT("IN1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN2"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("DSW1"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("DSW2"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN3"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN4"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; @@ -716,8 +716,8 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* 1x M5M82C255, or 2x PPI8255 */ - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c index 0d7f77195e1..6b759312707 100644 --- a/src/mame/drivers/slotcarn.c +++ b/src/mame/drivers/slotcarn.c @@ -17,7 +17,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "video/mc6845.h" #define MASTER_CLOCK (XTAL_10MHz) @@ -192,9 +192,9 @@ static ADDRESS_MAP_START( slotcarn_map, AS_PROGRAM, 8, slotcarn_state ) AM_RANGE(0xb000, 0xb000) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_w) AM_RANGE(0xb100, 0xb100) AM_DEVREADWRITE_LEGACY("aysnd", ay8910_r, ay8910_data_w) - AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) /* Input Ports */ - AM_RANGE(0xba00, 0xba03) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) /* Input Ports */ - AM_RANGE(0xbc00, 0xbc03) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* Input/Output Ports */ + AM_RANGE(0xb800, 0xb803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) /* Input Ports */ + AM_RANGE(0xba00, 0xba03) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) /* Input Ports */ + AM_RANGE(0xbc00, 0xbc03) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* Input/Output Ports */ AM_RANGE(0xc000, 0xc000) AM_READ_PORT("DSW3") AM_RANGE(0xc400, 0xc400) AM_READ_PORT("DSW4") @@ -550,32 +550,34 @@ static MACHINE_START(merit) * PPI 8255 (x3) Interfaces * ***************************************/ -static const ppi8255_interface scarn_ppi8255_intf[3] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { /* A, B & C set as input */ - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { /* A set as input */ - DEVCB_INPUT_PORT("DSW1"), /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { /* A & B set as input */ - DEVCB_INPUT_PORT("IN3"), /* Port A read */ - DEVCB_INPUT_PORT("IN4"), /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - } + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("DSW1"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_2_intf ) +{ + DEVCB_INPUT_PORT("IN3"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN4"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL /* Port C write */ }; @@ -606,9 +608,9 @@ static MACHINE_CONFIG_START( slotcarn, slotcarn_state ) MCFG_CPU_IO_MAP(spielbud_io_map) /* 3x 8255 */ - MCFG_PPI8255_ADD( "ppi8255_0", scarn_ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", scarn_ppi8255_intf[1] ) - MCFG_PPI8255_ADD( "ppi8255_2", scarn_ppi8255_intf[2] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) + MCFG_I8255A_ADD( "ppi8255_2", ppi8255_2_intf ) MCFG_MACHINE_START(merit) diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c index 7312bf54a24..cab5c3b3a85 100644 --- a/src/mame/drivers/sms.c +++ b/src/mame/drivers/sms.c @@ -216,7 +216,7 @@ U145 1Brown PAL14H4CN #include "cpu/i86/i86.h" #include "cpu/z80/z80.h" #include "sound/ay8910.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/nvram.h" @@ -408,26 +408,27 @@ static WRITE8_DEVICE_HANDLER(ppi0_b_w) coin_lockout_w(device->machine(), 1, BIT(data,4)); } -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(ppi0_c_r), /* Port C read */ - DEVCB_HANDLER(ppi0_a_w), /* Port A write */ - DEVCB_HANDLER(ppi0_b_w), /* Port B write */ - DEVCB_NULL /* Port C write */ - }, - { - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_NULL /* Port C write */ - } + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(ppi0_a_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(ppi0_b_w), /* Port B write */ + DEVCB_HANDLER(ppi0_c_r), /* Port C read */ + DEVCB_NULL /* Port C write */ }; +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_NULL /* Port C write */ +}; + + /************************************* * * Video @@ -497,7 +498,7 @@ static PALETTE_INIT( sms ) static ADDRESS_MAP_START( sms_map, AS_PROGRAM, 8, smsmfg_state ) AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram") - AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0x00800, 0x00803) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x01000, 0x01007) AM_WRITE(video_w) AM_RANGE(0x01800, 0x01803) AM_READWRITE(link_r, link_w) AM_RANGE(0x04000, 0x07fff) AM_ROMBANK("bank1") @@ -509,7 +510,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sureshot_map, AS_PROGRAM, 8, smsmfg_state ) AM_RANGE(0x00000, 0x007ff) AM_RAM AM_SHARE("nvram") AM_RANGE(0x02000, 0x02007) AM_WRITE(video_w) - AM_RANGE(0x03000, 0x03003) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) + AM_RANGE(0x03000, 0x03003) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) AM_RANGE(0x03800, 0x03803) AM_READWRITE(link_r, link_w) AM_RANGE(0x08000, 0x0ffff) AM_ROM AM_RANGE(0xf8000, 0xfffff) AM_ROM // mirror for vectors @@ -518,7 +519,7 @@ ADDRESS_MAP_END static ADDRESS_MAP_START( sub_map, AS_PROGRAM, 8, smsmfg_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x2000, 0x27ff) AM_RAM - AM_RANGE(0x3100, 0x3103) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0x3100, 0x3103) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0x3381, 0x3382) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w) AM_RANGE(0x3400, 0x3400) AM_READ(z80_8088_r) AM_RANGE(0x3500, 0x3501) AM_READWRITE(p03_r, p03_w) @@ -564,8 +565,8 @@ static MACHINE_CONFIG_START( sms, smsmfg_state ) MCFG_MACHINE_START(sms) MCFG_MACHINE_RESET(sms) - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) MCFG_NVRAM_ADD_0FILL("nvram") diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c index 635124a1767..c73ced440da 100644 --- a/src/mame/drivers/statriv2.c +++ b/src/mame/drivers/statriv2.c @@ -71,7 +71,7 @@ quaquiz2 - no inputs, needs NVRAM #include "emu.h" #include "cpu/i8085/i8085.h" #include "sound/ay8910.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "video/tms9927.h" #include "machine/nvram.h" @@ -270,22 +270,20 @@ static WRITE8_DEVICE_HANDLER( ppi_portc_hi_w ) * *************************************/ -static const ppi8255_interface ppi8255_intf = +static I8255A_INTERFACE( ppi8255_intf ) { -/* PPI 8255 group A & B set to Mode 0. - Port A, B and lower 4 bits of C set as Input. - High 4 bits of C set as Output -*/ - DEVCB_INPUT_PORT("IN0"), /* Port A read */ - DEVCB_INPUT_PORT("IN1"), /* Port B read */ - DEVCB_INPUT_PORT("IN2"), /* Port C read (Lower Nibble as Input) */ - DEVCB_NULL, /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(ppi_portc_hi_w) /* Port C write (High nibble as Output) */ + /* PPI 8255 group A & B set to Mode 0. + Port A, B and lower 4 bits of C set as Input. + High 4 bits of C set as Output */ + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_HANDLER(ppi_portc_hi_w) /* Port C write */ }; - /************************************* * * Address maps @@ -300,7 +298,7 @@ static ADDRESS_MAP_START( statriv2_map, AS_PROGRAM, 8, statriv2_state ) ADDRESS_MAP_END static ADDRESS_MAP_START( statriv2_io_map, AS_IO, 8, statriv2_state ) - AM_RANGE(0x20, 0x23) AM_DEVREADWRITE_LEGACY("ppi", ppi8255_r, ppi8255_w) + AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x28, 0x2b) AM_READ(question_data_r) AM_WRITEONLY AM_SHARE("question_offset") AM_RANGE(0xb0, 0xb1) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w) AM_RANGE(0xb1, 0xb1) AM_DEVREAD_LEGACY("aysnd", ay8910_r) @@ -310,7 +308,7 @@ ADDRESS_MAP_END #ifdef UNUSED_CODE static ADDRESS_MAP_START( statusbj_io, AS_IO, 8, statriv2_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) - AM_RANGE(0x20, 0x23) AM_DEVREADWRITE_LEGACY("ppi", ppi8255_r, ppi8255_w) + AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0xb0, 0xb1) AM_DEVWRITE_LEGACY("aysnd", ay8910_address_data_w) AM_RANGE(0xb1, 0xb1) AM_DEVREAD_LEGACY("aysnd", ay8910_r) AM_RANGE(0xc0, 0xcf) AM_DEVREADWRITE_LEGACY("tms", tms9927_r, tms9927_w) @@ -602,7 +600,7 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state ) MCFG_NVRAM_ADD_0FILL("nvram") /* 1x 8255 */ - MCFG_PPI8255_ADD("ppi", ppi8255_intf) + MCFG_I8255A_ADD( "ppi8255", ppi8255_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c index 95ee82ee7fc..1422d6dc9d8 100644 --- a/src/mame/drivers/subsino.c +++ b/src/mame/drivers/subsino.c @@ -212,7 +212,7 @@ #include "emu.h" #include "cpu/z180/z180.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "machine/subsino.h" #include "sound/okim6295.h" #include "sound/2413intf.h" diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c index 3561e719b27..a23c56f59d3 100644 --- a/src/mame/drivers/taxidriv.c +++ b/src/mame/drivers/taxidriv.c @@ -11,7 +11,7 @@ OTHER: 5 * M5L8255AP #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "includes/taxidriv.h" #include "sound/ay8910.h" @@ -105,49 +105,54 @@ static WRITE8_DEVICE_HANDLER( p8910_0b_w ) state->m_s4 = data & 1; } +static I8255A_INTERFACE( ppi8255_0_intf ) +{ + DEVCB_HANDLER(p0a_r), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(p0b_w), /* Port B write */ + DEVCB_HANDLER(p0c_r), /* Port C read */ + DEVCB_HANDLER(p0c_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(p1a_w), /* Port A write */ + DEVCB_HANDLER(p1b_r), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_HANDLER(p1c_r), /* Port C read */ + DEVCB_HANDLER(p1c_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_2_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(p2a_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(p2b_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(p2c_w) /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_3_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(p3a_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(p3b_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(p3c_w) /* Port C write */ +}; -static const ppi8255_interface ppi8255_intf[5] = +static I8255A_INTERFACE( ppi8255_4_intf ) { - { - DEVCB_HANDLER(p0a_r), /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_HANDLER(p0c_r), /* Port C read */ - DEVCB_NULL, /* Port A write */ - DEVCB_HANDLER(p0b_w), /* Port B write */ - DEVCB_HANDLER(p0c_w) /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_HANDLER(p1b_r), /* Port B read */ - DEVCB_HANDLER(p1c_r), /* Port C read */ - DEVCB_HANDLER(p1a_w), /* Port A write */ - DEVCB_NULL, /* Port B write */ - DEVCB_HANDLER(p1c_w) /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(p2a_w), /* Port A write */ - DEVCB_HANDLER(p2b_w), /* Port B write */ - DEVCB_HANDLER(p2c_w) /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(p3a_w), /* Port A write */ - DEVCB_HANDLER(p3b_w), /* Port B write */ - DEVCB_HANDLER(p3c_w) /* Port C write */ - }, - { - DEVCB_NULL, /* Port A read */ - DEVCB_NULL, /* Port B read */ - DEVCB_NULL, /* Port C read */ - DEVCB_HANDLER(p4a_w), /* Port A write */ - DEVCB_HANDLER(p4b_w), /* Port B write */ - DEVCB_HANDLER(p4c_w) /* Port C write */ - } + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(p4a_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(p4b_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(p4c_w) /* Port C write */ }; @@ -166,10 +171,10 @@ static ADDRESS_MAP_START( main_map, AS_PROGRAM, 8, taxidriv_state ) AM_RANGE(0xe400, 0xebff) AM_WRITEONLY AM_SHARE("vram2") /* bg1 tilemap */ AM_RANGE(0xec00, 0xefff) AM_WRITEONLY AM_SHARE("vram0") /* fg tilemap */ AM_RANGE(0xf000, 0xf3ff) AM_WRITEONLY AM_SHARE("vram3") /* bg2 tilemap */ - AM_RANGE(0xf400, 0xf403) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0xf480, 0xf483) AM_DEVREADWRITE_LEGACY("ppi8255_2", ppi8255_r, ppi8255_w) /* "sprite1" placement */ - AM_RANGE(0xf500, 0xf503) AM_DEVREADWRITE_LEGACY("ppi8255_3", ppi8255_r, ppi8255_w) /* "sprite2" placement */ - AM_RANGE(0xf580, 0xf583) AM_DEVREADWRITE_LEGACY("ppi8255_4", ppi8255_r, ppi8255_w) /* "sprite3" placement */ + AM_RANGE(0xf400, 0xf403) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0xf480, 0xf483) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write) /* "sprite1" placement */ + AM_RANGE(0xf500, 0xf503) AM_DEVREADWRITE("ppi8255_3", i8255_device, read, write) /* "sprite2" placement */ + AM_RANGE(0xf580, 0xf583) AM_DEVREADWRITE("ppi8255_4", i8255_device, read, write) /* "sprite3" placement */ //AM_RANGE(0xf780, 0xf781) AM_WRITEONLY /* more scroll registers? */ AM_RANGE(0xf782, 0xf787) AM_WRITEONLY AM_SHARE("scroll") /* bg scroll (three copies always identical) */ AM_RANGE(0xf800, 0xffff) AM_RAM @@ -179,7 +184,7 @@ static ADDRESS_MAP_START( cpu2_map, AS_PROGRAM, 8, taxidriv_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x6000, 0x67ff) AM_RAM AM_RANGE(0x8000, 0x87ff) AM_RAM - AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0xa000, 0xa003) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) AM_RANGE(0xe000, 0xe000) AM_READ_PORT("DSW0") AM_RANGE(0xe001, 0xe001) AM_READ_PORT("DSW1") AM_RANGE(0xe002, 0xe002) AM_READ_PORT("DSW2") @@ -389,11 +394,11 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state ) MCFG_QUANTUM_TIME(attotime::from_hz(6000)) /* 100 CPU slices per frame - an high value to ensure proper */ /* synchronization of the CPUs */ - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) - MCFG_PPI8255_ADD( "ppi8255_2", ppi8255_intf[2] ) - MCFG_PPI8255_ADD( "ppi8255_3", ppi8255_intf[3] ) - MCFG_PPI8255_ADD( "ppi8255_4", ppi8255_intf[4] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) + MCFG_I8255A_ADD( "ppi8255_2", ppi8255_2_intf ) + MCFG_I8255A_ADD( "ppi8255_3", ppi8255_3_intf ) + MCFG_I8255A_ADD( "ppi8255_4", ppi8255_4_intf ) /* video hardware */ MCFG_SCREEN_ADD("screen", RASTER) diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c index 4bc5dc9efa7..67695a09d8a 100644 --- a/src/mame/drivers/tcl.c +++ b/src/mame/drivers/tcl.c @@ -42,7 +42,7 @@ Notes: #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" @@ -100,24 +100,24 @@ static GFXDECODE_START( tcl ) GFXDECODE_ENTRY( "gfx2", 0, charlayout2, 0, 16 ) /* wrong */ GFXDECODE_END -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL - }, - { - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL, - DEVCB_NULL - } + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL, /* Port C write */ +}; + +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_NULL, /* Port C write */ }; @@ -140,8 +140,8 @@ static MACHINE_CONFIG_START( tcl, tcl_state ) MCFG_VIDEO_START(tcl) - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index e0be5af9c9d..b277964078b 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -41,7 +41,7 @@ #include "emu.h" #include "cpu/z80/z80.h" #include "cpu/i86/i86.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" #include "rendlay.h" #include "includes/tx1.h" @@ -467,25 +467,24 @@ READ8_MEMBER(tx1_state::bbjr_analog_r) *************************************/ /* Buggy Boy uses an 8255 PPI instead of YM2149 ports for inputs! */ -static const ppi8255_interface buggyboy_ppi8255_intf = +static I8255A_INTERFACE( buggyboy_ppi8255_intf ) { - DEVCB_INPUT_PORT("PPI_PORTA"), - DEVCB_NULL, - DEVCB_INPUT_PORT("PPI_PORTC"), - DEVCB_NULL, - DEVCB_HANDLER(bb_coin_cnt_w), - DEVCB_NULL, + DEVCB_INPUT_PORT("PPI_PORTA"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(bb_coin_cnt_w), /* Port B write */ + DEVCB_INPUT_PORT("PPI_PORTC"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; - -static const ppi8255_interface tx1_ppi8255_intf = +static I8255A_INTERFACE( tx1_ppi8255_intf ) { - DEVCB_HANDLER(tx1_ppi_porta_r), - DEVCB_HANDLER(tx1_ppi_portb_r), - DEVCB_INPUT_PORT("PPI_PORTC"), - DEVCB_NULL, - DEVCB_NULL, - DEVCB_HANDLER(tx1_coin_cnt_w) + DEVCB_HANDLER(tx1_ppi_porta_r), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_HANDLER(tx1_ppi_portb_r), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("PPI_PORTC"), /* Port C read */ + DEVCB_HANDLER(tx1_coin_cnt_w) /* Port C write */ }; @@ -530,7 +529,7 @@ static ADDRESS_MAP_START( tx1_sound_prg, AS_PROGRAM, 8, tx1_state ) AM_RANGE(0x0000, 0x1fff) AM_ROM AM_RANGE(0x3000, 0x37ff) AM_RAM AM_MIRROR(0x800) AM_SHARE("z80_ram") AM_RANGE(0x4000, 0x4000) AM_WRITE(z80_intreq_w) - AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE(0x5000, 0x5003) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x6000, 0x6003) AM_DEVREADWRITE_LEGACY("tx1", tx1_pit8253_r, tx1_pit8253_w) AM_RANGE(0x7000, 0x7fff) AM_WRITE(tx1_ppi_latch_w) AM_RANGE(0xb000, 0xbfff) AM_READWRITE(ts_r, ts_w) @@ -597,7 +596,7 @@ static ADDRESS_MAP_START( buggyboy_sound_prg, AS_PROGRAM, 8, tx1_state ) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("z80_ram") AM_RANGE(0x6000, 0x6001) AM_READ(bb_analog_r) - AM_RANGE(0x6800, 0x6803) AM_DEVREADWRITE_LEGACY("ppi8255", ppi8255_r, ppi8255_w) + AM_RANGE(0x6800, 0x6803) AM_DEVREADWRITE("ppi8255", i8255_device, read, write) AM_RANGE(0x7000, 0x7003) AM_DEVREADWRITE_LEGACY("buggyboy", tx1_pit8253_r, tx1_pit8253_w) AM_RANGE(0x7800, 0x7800) AM_WRITE(z80_intreq_w) AM_RANGE(0xc000, 0xc7ff) AM_READWRITE(ts_r, ts_w) @@ -706,7 +705,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MCFG_MACHINE_RESET(tx1) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_PPI8255_ADD("ppi8255", tx1_ppi8255_intf) + MCFG_I8255A_ADD("ppi8255", tx1_ppi8255_intf) MCFG_PALETTE_LENGTH(256) MCFG_PALETTE_INIT(tx1) @@ -758,7 +757,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MCFG_MACHINE_RESET(buggyboy) MCFG_NVRAM_ADD_0FILL("nvram") - MCFG_PPI8255_ADD("ppi8255", buggyboy_ppi8255_intf) + MCFG_I8255A_ADD("ppi8255", buggyboy_ppi8255_intf) MCFG_DEFAULT_LAYOUT(layout_triphsxs) diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c index 901d9eed61d..0dc3d1f8531 100644 --- a/src/mame/drivers/vroulet.c +++ b/src/mame/drivers/vroulet.c @@ -36,7 +36,7 @@ Tomasz Slanina 20050225 #include "emu.h" #include "cpu/z80/z80.h" -#include "machine/8255ppi.h" +#include "machine/i8255.h" #include "sound/ay8910.h" #include "machine/nvram.h" @@ -138,8 +138,8 @@ static ADDRESS_MAP_START( vroulet_io_map, AS_IO, 8, vroulet_state ) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_DEVREAD_LEGACY("aysnd", ay8910_r) AM_RANGE(0x00, 0x01) AM_DEVWRITE_LEGACY("aysnd", ay8910_data_address_w) - AM_RANGE(0x10, 0x13) AM_DEVREADWRITE_LEGACY("ppi8255_0", ppi8255_r, ppi8255_w) - AM_RANGE(0x80, 0x83) AM_DEVREADWRITE_LEGACY("ppi8255_1", ppi8255_r, ppi8255_w) + AM_RANGE(0x10, 0x13) AM_DEVREADWRITE("ppi8255_0", i8255_device, read, write) + AM_RANGE(0x80, 0x83) AM_DEVREADWRITE("ppi8255_1", i8255_device, read, write) ADDRESS_MAP_END /* Input Ports */ @@ -257,26 +257,27 @@ static WRITE8_DEVICE_HANDLER( ppi8255_a_w ){}// watchdog ? static WRITE8_DEVICE_HANDLER( ppi8255_b_w ){}// lamps ? static WRITE8_DEVICE_HANDLER( ppi8255_c_w ){} -static const ppi8255_interface ppi8255_intf[2] = +static I8255A_INTERFACE( ppi8255_0_intf ) { - { - DEVCB_INPUT_PORT("IN0"), // Port A read - DEVCB_INPUT_PORT("IN1"), // Port B read - DEVCB_INPUT_PORT("IN2"), // Port C read - DEVCB_NULL, // Port A write - DEVCB_NULL, // Port B write - DEVCB_NULL // Port C write - }, - { - DEVCB_NULL, // Port A read - DEVCB_NULL, // Port B read - DEVCB_NULL, // Port C read - DEVCB_HANDLER(ppi8255_a_w), // Port A write - DEVCB_HANDLER(ppi8255_b_w), // Port B write - DEVCB_HANDLER(ppi8255_c_w) // Port C write - } + DEVCB_INPUT_PORT("IN0"), /* Port A read */ + DEVCB_NULL, /* Port A write */ + DEVCB_INPUT_PORT("IN1"), /* Port B read */ + DEVCB_NULL, /* Port B write */ + DEVCB_INPUT_PORT("IN2"), /* Port C read */ + DEVCB_NULL /* Port C write */ }; +static I8255A_INTERFACE( ppi8255_1_intf ) +{ + DEVCB_NULL, /* Port A read */ + DEVCB_HANDLER(ppi8255_a_w), /* Port A write */ + DEVCB_NULL, /* Port B read */ + DEVCB_HANDLER(ppi8255_b_w), /* Port B write */ + DEVCB_NULL, /* Port C read */ + DEVCB_HANDLER(ppi8255_c_w) /* Port C write */ +}; + + /* Machine Driver */ static MACHINE_CONFIG_START( vroulet, vroulet_state ) @@ -288,8 +289,8 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state ) MCFG_NVRAM_ADD_1FILL("nvram") - MCFG_PPI8255_ADD( "ppi8255_0", ppi8255_intf[0] ) - MCFG_PPI8255_ADD( "ppi8255_1", ppi8255_intf[1] ) + MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf ) + MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf ) // video hardware |