trunk/src/mame/drivers/capbowl.c
| r26279 | r26280 | |
| 216 | 216 | |
| 217 | 217 | /************************************* |
| 218 | 218 | * |
| 219 | | * NVRAM |
| 220 | | * |
| 221 | | *************************************/ |
| 222 | | |
| 223 | | void capbowl_state::init_nvram(nvram_device &nvram, void *base, size_t size) |
| 224 | | { |
| 225 | | /* invalidate nvram to make the game initialize it. |
| 226 | | A 0xff fill will cause the game to malfunction, so we use a |
| 227 | | 0x01 fill which seems OK */ |
| 228 | | memset(base, 0x01, size); |
| 229 | | } |
| 230 | | |
| 231 | | |
| 232 | | |
| 233 | | /************************************* |
| 234 | | * |
| 235 | 219 | * Main CPU memory handlers |
| 236 | 220 | * |
| 237 | 221 | *************************************/ |
| r26279 | r26280 | |
| 243 | 227 | AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram") |
| 244 | 228 | AM_RANGE(0x5800, 0x5fff) AM_READWRITE(capbowl_tms34061_r, capbowl_tms34061_w) |
| 245 | 229 | AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w) |
| 246 | | AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */ |
| 230 | AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) AM_READNOP /* + watchdog */ |
| 247 | 231 | AM_RANGE(0x7000, 0x7000) AM_READ(track_0_r) /* + other inputs */ |
| 248 | 232 | AM_RANGE(0x7800, 0x7800) AM_READ(track_1_r) /* + other inputs */ |
| 249 | 233 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| r26279 | r26280 | |
| 256 | 240 | AM_RANGE(0x5000, 0x57ff) AM_RAM AM_SHARE("nvram") |
| 257 | 241 | AM_RANGE(0x5800, 0x5fff) AM_READWRITE(capbowl_tms34061_r, capbowl_tms34061_w) |
| 258 | 242 | AM_RANGE(0x6000, 0x6000) AM_WRITE(capbowl_sndcmd_w) |
| 259 | | AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) /* + watchdog */ |
| 243 | AM_RANGE(0x6800, 0x6800) AM_WRITE(track_reset_w) AM_READNOP /* + watchdog */ |
| 260 | 244 | AM_RANGE(0x7000, 0x7000) AM_READ(track_0_r) /* + other inputs */ |
| 261 | 245 | AM_RANGE(0x7800, 0x7800) AM_READ(track_1_r) /* + other inputs */ |
| 262 | 246 | AM_RANGE(0x8000, 0xffff) AM_ROM |
| r26279 | r26280 | |
| 384 | 368 | MCFG_CPU_ADD("maincpu", M6809E, MASTER_CLOCK) |
| 385 | 369 | MCFG_CPU_PROGRAM_MAP(capbowl_map) |
| 386 | 370 | MCFG_CPU_VBLANK_INT_DRIVER("screen", capbowl_state, capbowl_interrupt) |
| 371 | MCFG_WATCHDOG_VBLANK_INIT(8) // Unverified |
| 387 | 372 | |
| 388 | 373 | MCFG_CPU_ADD("audiocpu", M6809E, MASTER_CLOCK) |
| 389 | 374 | MCFG_CPU_PROGRAM_MAP(sound_map) |
| 390 | 375 | |
| 391 | | MCFG_NVRAM_ADD_CUSTOM_DRIVER("nvram", capbowl_state, init_nvram) |
| 376 | MCFG_NVRAM_ADD_RANDOM_FILL("nvram") |
| 392 | 377 | |
| 393 | 378 | MCFG_TICKET_DISPENSER_ADD("ticket", attotime::from_msec(100), TICKET_MOTOR_ACTIVE_HIGH, TICKET_STATUS_ACTIVE_LOW) |
| 394 | 379 | |