trunk/src/mame/drivers/atari_s2.c
| r18441 | r18442 | |
| 1 | | /*********************************************************************************** |
| 1 | /**************************************************************************************** |
| 2 | 2 | |
| 3 | 3 | Pinball |
| 4 | | Atari Generation/System 2 |
| 4 | Atari Generation/System 2 and 3 |
| 5 | 5 | |
| 6 | | Manuals and PinMAME used as references (couldn't find full schematics). |
| 6 | System 2 : Manuals and PinMAME used as references (couldn't find full schematics). |
| 7 | System 3 : PinMAME used as reference (couldn't find anything else). |
| 7 | 8 | |
| 9 | The only difference seems to be an extra bank of inputs (or something) at 2008-200B. |
| 8 | 10 | |
| 9 | | ************************************************************************************/ |
| 10 | 11 | |
| 12 | *****************************************************************************************/ |
| 13 | |
| 11 | 14 | #include "machine/genpin.h" |
| 12 | 15 | #include "cpu/m6800/m6800.h" |
| 13 | 16 | #include "machine/nvram.h" |
| r18441 | r18442 | |
| 67 | 70 | AM_RANGE(0x2800, 0x3fff) AM_ROM |
| 68 | 71 | ADDRESS_MAP_END |
| 69 | 72 | |
| 73 | static ADDRESS_MAP_START( atari_s3_map, AS_PROGRAM, 8, atari_s2_state ) |
| 74 | ADDRESS_MAP_GLOBAL_MASK(0x3fff) |
| 75 | AM_RANGE(0x0000, 0x00ff) AM_MIRROR(0x0700) AM_RAM |
| 76 | AM_RANGE(0x0800, 0x08ff) AM_MIRROR(0x0700) AM_RAM AM_SHARE("nvram") // battery backed |
| 77 | AM_RANGE(0x1000, 0x1007) AM_MIRROR(0x07F8) AM_READ(switch_r) |
| 78 | AM_RANGE(0x1800, 0x1800) AM_MIRROR(0x071F) AM_WRITE(sound0_w) |
| 79 | AM_RANGE(0x1820, 0x1820) AM_MIRROR(0x071F) AM_WRITE(sound1_w) |
| 80 | AM_RANGE(0x1840, 0x1847) AM_MIRROR(0x0718) AM_WRITE(display_w) |
| 81 | AM_RANGE(0x1860, 0x1867) AM_MIRROR(0x0718) AM_WRITE(lamp_w) |
| 82 | AM_RANGE(0x1880, 0x1880) AM_MIRROR(0x071F) AM_WRITE(sol0_w) |
| 83 | AM_RANGE(0x18a0, 0x18a7) AM_MIRROR(0x0718) AM_WRITE(sol1_w) |
| 84 | AM_RANGE(0x18c0, 0x18c0) AM_MIRROR(0x071F) AM_WRITE(watchdog_reset_w) |
| 85 | AM_RANGE(0x18e0, 0x18e0) AM_MIRROR(0x071F) AM_WRITE(intack_w) |
| 86 | AM_RANGE(0x2000, 0x2000) AM_MIRROR(0x07F4) AM_READ_PORT("DSW0") |
| 87 | AM_RANGE(0x2001, 0x2001) AM_MIRROR(0x07F4) AM_READ_PORT("DSW1") |
| 88 | AM_RANGE(0x2002, 0x2002) AM_MIRROR(0x07F4) AM_READ_PORT("DSW2") |
| 89 | AM_RANGE(0x2003, 0x2003) AM_MIRROR(0x07F4) AM_READ_PORT("DSW3") |
| 90 | AM_RANGE(0x2008, 0x2008) AM_MIRROR(0x07F4) AM_READ_PORT("DSW4") |
| 91 | AM_RANGE(0x2009, 0x2009) AM_MIRROR(0x07F4) AM_READ_PORT("DSW5") |
| 92 | AM_RANGE(0x200a, 0x200a) AM_MIRROR(0x07F4) AM_READ_PORT("DSW6") |
| 93 | AM_RANGE(0x200b, 0x200b) AM_MIRROR(0x07F4) AM_READ_PORT("DSW7") |
| 94 | AM_RANGE(0x2800, 0x3fff) AM_ROM |
| 95 | ADDRESS_MAP_END |
| 96 | |
| 70 | 97 | static INPUT_PORTS_START( atari_s2 ) |
| 71 | 98 | // dipswitches still to be described |
| 72 | 99 | PORT_START("DSW0") |
| r18441 | r18442 | |
| 81 | 108 | PORT_START("DSW3") |
| 82 | 109 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 83 | 110 | |
| 111 | PORT_START("DSW4") |
| 112 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 113 | |
| 114 | PORT_START("DSW5") |
| 115 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 116 | |
| 117 | PORT_START("DSW6") |
| 118 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 119 | |
| 120 | PORT_START("DSW7") |
| 121 | PORT_BIT( 0xff, IP_ACTIVE_LOW, IPT_UNUSED ) |
| 122 | |
| 84 | 123 | PORT_START("X0") // 1000 |
| 85 | 124 | PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Test") PORT_CODE(KEYCODE_0) |
| 86 | 125 | PORT_BIT( 0x02, IP_ACTIVE_LOW, IPT_OTHER ) PORT_NAME("Outhole") PORT_CODE(KEYCODE_X) |
| r18441 | r18442 | |
| 205 | 244 | MCFG_DEFAULT_LAYOUT(layout_atari_s2) |
| 206 | 245 | MACHINE_CONFIG_END |
| 207 | 246 | |
| 247 | static MACHINE_CONFIG_DERIVED( atari_s3, atari_s2 ) |
| 248 | MCFG_CPU_MODIFY("maincpu") |
| 249 | MCFG_CPU_PROGRAM_MAP(atari_s3_map) |
| 250 | MACHINE_CONFIG_END |
| 251 | |
| 252 | |
| 208 | 253 | /*------------------------------------------------------------------- |
| 209 | 254 | / Superman (03/1979) |
| 210 | 255 | /-------------------------------------------------------------------*/ |
| r18441 | r18442 | |
| 231 | 276 | ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b)) |
| 232 | 277 | ROM_END |
| 233 | 278 | |
| 279 | /*------------------------------------------------------------------- |
| 280 | / Road Runner (??/1979) |
| 281 | /-------------------------------------------------------------------*/ |
| 282 | ROM_START(roadrunr) |
| 283 | ROM_REGION(0x10000, "maincpu", 0) |
| 284 | ROM_LOAD("0000.716", 0x2800, 0x0800, CRC(62f5f394) SHA1(ff91066d43d788119e3337788abd86e5c0bf2d92)) |
| 285 | ROM_LOAD("3000.716", 0x3000, 0x0800, CRC(2fc01359) SHA1(d3df20c764bb68a5316367bb18d34a03293e7fa6)) |
| 286 | ROM_LOAD("3800.716", 0x3800, 0x0800, CRC(77262408) SHA1(3045a732c39c96002f495f64ed752279f7d43ee7)) |
| 287 | ROM_REGION(0x1000, "sound1", 0) |
| 288 | ROM_LOAD("82s130.bin", 0x0000, 0x0200, CRC(da1f77b4) SHA1(b21fdc1c6f196c320ec5404013d672c35f95890b)) |
| 289 | ROM_END |
| 234 | 290 | |
| 235 | | GAME( 1979, supermap, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Superman (Pinball)", GAME_IS_SKELETON_MECHANICAL) |
| 236 | | GAME( 1979, hercules, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Hercules", GAME_IS_SKELETON_MECHANICAL) |
| 291 | |
| 292 | GAME( 1979, supermap, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Superman (Pinball)", GAME_MECHANICAL | GAME_NO_SOUND) |
| 293 | GAME( 1979, hercules, 0, atari_s2, atari_s2, driver_device, 0, ROT0, "Atari", "Hercules", GAME_MECHANICAL | GAME_NO_SOUND) |
| 294 | GAME( 1979, roadrunr, 0, atari_s3, atari_s2, driver_device, 0, ROT0, "Atari", "Road Runner", GAME_MECHANICAL | GAME_NO_SOUND) |