diff options
Diffstat (limited to 'src/mame/drivers/bwidow.c')
-rw-r--r-- | src/mame/drivers/bwidow.c | 50 |
1 files changed, 49 insertions, 1 deletions
diff --git a/src/mame/drivers/bwidow.c b/src/mame/drivers/bwidow.c index 7134c904810..1e7df6b634b 100644 --- a/src/mame/drivers/bwidow.c +++ b/src/mame/drivers/bwidow.c @@ -310,6 +310,10 @@ CUSTOM_INPUT_MEMBER(bwidow_state::clock_r) return (m_maincpu->total_cycles() & 0x100) ? 1 : 0; } +READ8_MEMBER(bwidow_state::bwidowp_in_r) +{ + return (ioport("IN4")->read() & 0x0f) | ((ioport("IN3")->read() & 0x0f) << 4); +} /************************************* * @@ -386,6 +390,25 @@ static ADDRESS_MAP_START( bwidow_map, AS_PROGRAM, 8, bwidow_state ) AM_RANGE(0x9000, 0xffff) AM_ROM ADDRESS_MAP_END +static ADDRESS_MAP_START( bwidowp_map, AS_PROGRAM, 8, bwidow_state ) + AM_RANGE(0x0000, 0x07ff) AM_RAM + AM_RANGE(0x0800, 0x080f) AM_DEVREADWRITE("pokey1", pokey_device, read, write) + AM_RANGE(0x0810, 0x081f) AM_DEVREADWRITE("pokey2", pokey_device, read, write) + AM_RANGE(0x1000, 0x1000) AM_READ(bwidowp_in_r) + AM_RANGE(0x1800, 0x1800) AM_READ_PORT("IN0") + AM_RANGE(0x2000, 0x2000) AM_DEVWRITE("avg", avg_device, go_w) + AM_RANGE(0x2800, 0x2800) AM_DEVWRITE("avg", avg_device, reset_w) + AM_RANGE(0x3000, 0x3000) AM_WRITE(watchdog_reset_w) + AM_RANGE(0x3800, 0x3800) AM_WRITE(bwidow_misc_w) /* coin counters, leds */ + AM_RANGE(0x4000, 0x47ff) AM_RAM AM_SHARE("vectorram") AM_REGION("maincpu", 0x4000) + AM_RANGE(0x4800, 0x6fff) AM_ROM + AM_RANGE(0x6000, 0x6000) AM_WRITE(irq_ack_w) /* interrupt acknowledge */ + AM_RANGE(0x8000, 0x803f) AM_DEVWRITE("earom", atari_vg_earom_device, write) + AM_RANGE(0x8800, 0x8800) AM_DEVWRITE("earom", atari_vg_earom_device, ctrl_w) + AM_RANGE(0x9000, 0x9000) AM_DEVREAD("earom", atari_vg_earom_device, read) + AM_RANGE(0x9800, 0x9800) AM_WRITENOP /* ? written once at startup */ + AM_RANGE(0xa000, 0xffff) AM_ROM +ADDRESS_MAP_END static ADDRESS_MAP_START( spacduel_map, AS_PROGRAM, 8, bwidow_state ) AM_RANGE(0x0000, 0x03ff) AM_RAM @@ -493,7 +516,6 @@ static INPUT_PORTS_START( bwidow ) PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_UNUSED ) INPUT_PORTS_END - static INPUT_PORTS_START( gravitar ) PORT_START("IN0") PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_COIN2 ) // To fit "Coin B" Dip Switch @@ -729,6 +751,12 @@ static MACHINE_CONFIG_START( bwidow, bwidow_state ) MACHINE_CONFIG_END +static MACHINE_CONFIG_DERIVED( bwidowp, bwidow ) + MCFG_CPU_MODIFY("maincpu") + MCFG_CPU_PROGRAM_MAP(bwidowp_map) + +MACHINE_CONFIG_END + static MACHINE_CONFIG_DERIVED( gravitar, bwidow ) /* basic machine hardware */ @@ -794,6 +822,25 @@ ROM_START( bwidow ) ROM_LOAD( "136002-125.n4", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) ROM_END +ROM_START( bwidowp ) + ROM_REGION( 0x10000, "maincpu", 0 ) + /* Vector ROM */ + ROM_LOAD( "vg4800", 0x4800, 0x0800, CRC(12c0e382) SHA1(b0a899d013ad00ff5f861da9897780c5f0c5d221) ) + ROM_LOAD( "vg5000", 0x5000, 0x1000, CRC(7009106a) SHA1(d41d147eccb2bb4e0a3e9bb184c2bfd09c80b92f) ) + ROM_RELOAD( 0x6000, 0x1000 ) + /* Program ROM */ + ROM_LOAD( "a000", 0xa000, 0x1000, CRC(ebe0ace2) SHA1(fa919797c243d06761e3fa04b548679b310f0542) ) + ROM_LOAD( "b000", 0xb000, 0x1000, CRC(b14f33e2) SHA1(f8b2c6cc6907b379786e246ccd559316d3edffb3) ) + ROM_LOAD( "c000", 0xc000, 0x1000, CRC(79b8af00) SHA1(53e31962d2124bfe06afc6374d5fb2d87bf9e952) ) + ROM_LOAD( "d000", 0xd000, 0x1000, CRC(10ac77c3) SHA1(f7b832974c224341f67fc4c3d151d8978774b462) ) + ROM_LOAD( "e000", 0xe000, 0x1000, CRC(dfdda385) SHA1(ac77411722842033027b1717ac1b494507153e55) ) + ROM_RELOAD( 0xf000, 0x1000 ) /* for reset/interrupt vectors */ + + /* AVG PROM */ + ROM_REGION( 0x100, "user1", 0 ) + ROM_LOAD( "avgsmr", 0x0000, 0x0100, CRC(5903af03) SHA1(24bc0366f394ad0ec486919212e38be0f08d0239) ) +ROM_END + ROM_START( gravitar ) ROM_REGION( 0x10000, "maincpu", 0 ) /* Vector ROM */ @@ -1009,6 +1056,7 @@ GAME( 1980, spacduel, 0, spacduel, spacduel, driver_device, 0, ROT0, "Ata GAME( 1980, spacduel1,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (version 1)", GAME_SUPPORTS_SAVE ) GAME( 1980, spacduel0,spacduel, spacduel, spacduel, driver_device, 0, ROT0, "Atari", "Space Duel (prototype)", GAME_SUPPORTS_SAVE ) GAME( 1982, bwidow, 0, bwidow, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow", GAME_SUPPORTS_SAVE ) +GAME( 1982, bwidowp, bwidow, bwidowp, bwidow, driver_device, 0, ROT0, "Atari", "Black Widow (prototype)", GAME_NOT_WORKING ) GAME( 1982, gravitar, 0, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 3)", GAME_SUPPORTS_SAVE ) GAME( 1982, gravitar2,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 2)", GAME_SUPPORTS_SAVE ) GAME( 1982, gravitar1,gravitar, gravitar, gravitar, driver_device, 0, ROT0, "Atari", "Gravitar (version 1)", GAME_SUPPORTS_SAVE ) |