~ubuntu-branches/debian/sid/mame/sid

« back to all changes in this revision

Viewing changes to src/mame/drivers/harddriv.c

  • Committer: Package Import Robot
  • Author(s): Jordi Mallach, Emmanuel Kasper, Jordi Mallach
  • Date: 2012-06-05 20:02:23 UTC
  • mfrom: (0.3.1) (0.1.4)
  • Revision ID: package-import@ubuntu.com-20120605200223-gnlpogjrg6oqe9md
Tags: 0.146-1
[ Emmanuel Kasper ]
* New upstream release
* Drop patch to fix man pages section and patches to link with flac 
  and jpeg system lib: all this has been pushed upstream by Cesare Falco
* Add DM-Upload-Allowed: yes field.

[ Jordi Mallach ]
* Create a "gnu" TARGETOS stanza that defines NO_AFFINITY_NP.
* Stop setting TARGETOS to "unix" in d/rules. It should be autodetected,
  and set to the appropriate value.
* mame_manpage_section.patch: Change mame's manpage section to 6 (games),
  in the TH declaration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
404
404
 *
405
405
 *************************************/
406
406
 
407
 
static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16 )
 
407
static ADDRESS_MAP_START( driver_68k_map, AS_PROGRAM, 16, harddriv_state )
408
408
        ADDRESS_MAP_UNMAP_HIGH
409
409
        AM_RANGE(0x000000, 0x0fffff) AM_ROM
410
 
        AM_RANGE(0x600000, 0x603fff) AM_READ(hd68k_port0_r)
411
 
        AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w)
 
410
        AM_RANGE(0x600000, 0x603fff) AM_READ_LEGACY(hd68k_port0_r)
 
411
        AM_RANGE(0x604000, 0x607fff) AM_WRITE_LEGACY(hd68k_nwr_w)
412
412
        AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
413
 
        AM_RANGE(0x60c000, 0x60ffff) AM_WRITE(hd68k_irq_ack_w)
414
 
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
415
 
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
416
 
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
417
 
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
418
 
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
419
 
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w)
420
 
        AM_RANGE(0xff0000, 0xff001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w)
421
 
        AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
 
413
        AM_RANGE(0x60c000, 0x60ffff) AM_WRITE_LEGACY(hd68k_irq_ack_w)
 
414
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE_LEGACY(hd68k_wr0_write)
 
415
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE_LEGACY(hd68k_wr1_write)
 
416
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE_LEGACY(hd68k_adc8_r, hd68k_wr2_write)
 
417
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
 
418
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
 
419
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
 
420
        AM_RANGE(0xff0000, 0xff001f) AM_READWRITE_LEGACY(hd68k_duart_r, hd68k_duart_w)
 
421
        AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
422
422
        AM_RANGE(0xff8000, 0xffffff) AM_RAM
423
423
ADDRESS_MAP_END
424
424
 
425
425
 
426
 
static ADDRESS_MAP_START( driver_gsp_map, AS_PROGRAM, 16 )
 
426
static ADDRESS_MAP_START( driver_gsp_map, AS_PROGRAM, 16, harddriv_state )
427
427
        ADDRESS_MAP_UNMAP_HIGH
428
428
        AM_RANGE(0x00000000, 0x0000200f) AM_NOP                                 /* hit during self-test */
429
 
        AM_RANGE(0x02000000, 0x0207ffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_1bpp_w)
430
 
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
431
 
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_lo)
432
 
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_hi)
433
 
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_lo)
434
 
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_hi)
435
 
        AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_BASE_SIZE_MEMBER(harddriv_state, m_gsp_vram, m_gsp_vram_size)
 
429
        AM_RANGE(0x02000000, 0x0207ffff) AM_READWRITE_LEGACY(hdgsp_vram_2bpp_r, hdgsp_vram_1bpp_w)
 
430
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, hdgsp_io_w)
 
431
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE_LEGACY(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_SHARE("gsp_control_lo")
 
432
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE_LEGACY(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_SHARE("gsp_control_hi")
 
433
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE_LEGACY(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_SHARE("gsp_palram_lo")
 
434
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE_LEGACY(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_SHARE("gsp_palram_hi")
 
435
        AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_SHARE("gsp_vram")
436
436
ADDRESS_MAP_END
437
437
 
438
438
 
439
 
static ADDRESS_MAP_START( driver_msp_map, AS_PROGRAM, 16 )
 
439
static ADDRESS_MAP_START( driver_msp_map, AS_PROGRAM, 16, harddriv_state )
440
440
        ADDRESS_MAP_UNMAP_HIGH
441
 
        AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE("share1") AM_BASE_MEMBER(harddriv_state, m_msp_ram)
442
 
        AM_RANGE(0x00700000, 0x007fffff) AM_RAM AM_SHARE("share1")
443
 
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, tms34010_io_register_w)
444
 
        AM_RANGE(0xfff00000, 0xffffffff) AM_RAM AM_SHARE("share1")
 
441
        AM_RANGE(0x00000000, 0x000fffff) AM_RAM AM_SHARE("msp_ram")
 
442
        AM_RANGE(0x00700000, 0x007fffff) AM_RAM AM_SHARE("msp_ram")
 
443
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, tms34010_io_register_w)
 
444
        AM_RANGE(0xfff00000, 0xffffffff) AM_RAM AM_SHARE("msp_ram")
445
445
ADDRESS_MAP_END
446
446
 
447
447
 
452
452
 *
453
453
 *************************************/
454
454
 
455
 
static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16 )
 
455
static ADDRESS_MAP_START( multisync_68k_map, AS_PROGRAM, 16, harddriv_state )
456
456
        ADDRESS_MAP_UNMAP_HIGH
457
457
        AM_RANGE(0x000000, 0x0fffff) AM_ROM
458
 
        AM_RANGE(0x600000, 0x603fff) AM_READWRITE(atarigen_sound_upper_r, atarigen_sound_upper_w)
459
 
        AM_RANGE(0x604000, 0x607fff) AM_READWRITE(hd68k_sound_reset_r, hd68k_nwr_w)
 
458
        AM_RANGE(0x600000, 0x603fff) AM_READWRITE_LEGACY(atarigen_sound_upper_r, atarigen_sound_upper_w)
 
459
        AM_RANGE(0x604000, 0x607fff) AM_READWRITE_LEGACY(hd68k_sound_reset_r, hd68k_nwr_w)
460
460
        AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
461
 
        AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
462
 
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
463
 
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
464
 
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
465
 
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
466
 
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
467
 
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w)
468
 
        AM_RANGE(0xff0000, 0xff001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w)
469
 
        AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
 
461
        AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE_LEGACY(hd68k_port0_r, hd68k_irq_ack_w)
 
462
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE_LEGACY(hd68k_wr0_write)
 
463
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE_LEGACY(hd68k_wr1_write)
 
464
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE_LEGACY(hd68k_adc8_r, hd68k_wr2_write)
 
465
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
 
466
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
 
467
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
 
468
        AM_RANGE(0xff0000, 0xff001f) AM_READWRITE_LEGACY(hd68k_duart_r, hd68k_duart_w)
 
469
        AM_RANGE(0xff4000, 0xff4fff) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
470
470
        AM_RANGE(0xff8000, 0xffffff) AM_RAM
471
471
ADDRESS_MAP_END
472
472
 
473
473
 
474
 
static ADDRESS_MAP_START( multisync_gsp_map, AS_PROGRAM, 16 )
 
474
static ADDRESS_MAP_START( multisync_gsp_map, AS_PROGRAM, 16, harddriv_state )
475
475
        ADDRESS_MAP_UNMAP_HIGH
476
476
        AM_RANGE(0x00000000, 0x0000200f) AM_NOP                                 /* hit during self-test */
477
 
        AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
478
 
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
479
 
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_lo)
480
 
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_hi)
481
 
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_lo)
482
 
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_hi)
483
 
        AM_RANGE(0xff800000, 0xffbfffff) AM_MIRROR(0x0400000) AM_RAM AM_BASE_SIZE_MEMBER(harddriv_state, m_gsp_vram, m_gsp_vram_size)
 
477
        AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE_LEGACY(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
 
478
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, hdgsp_io_w)
 
479
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE_LEGACY(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_SHARE("gsp_control_lo")
 
480
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE_LEGACY(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_SHARE("gsp_control_hi")
 
481
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE_LEGACY(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_SHARE("gsp_palram_lo")
 
482
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE_LEGACY(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_SHARE("gsp_palram_hi")
 
483
        AM_RANGE(0xff800000, 0xffbfffff) AM_MIRROR(0x0400000) AM_RAM AM_SHARE("gsp_vram")
484
484
ADDRESS_MAP_END
485
485
 
486
486
 
491
491
 *
492
492
 *************************************/
493
493
 
494
 
static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16 )
 
494
static ADDRESS_MAP_START( multisync2_68k_map, AS_PROGRAM, 16, harddriv_state )
495
495
        ADDRESS_MAP_UNMAP_HIGH
496
496
        AM_RANGE(0x000000, 0x1fffff) AM_ROM
497
 
        AM_RANGE(0x604000, 0x607fff) AM_WRITE(hd68k_nwr_w)
 
497
        AM_RANGE(0x604000, 0x607fff) AM_WRITE_LEGACY(hd68k_nwr_w)
498
498
        AM_RANGE(0x608000, 0x60bfff) AM_WRITE(watchdog_reset16_w)
499
 
        AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE(hd68k_port0_r, hd68k_irq_ack_w)
500
 
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE(hd68k_wr0_write)
501
 
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE(hd68k_wr1_write)
502
 
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE(hd68k_adc8_r, hd68k_wr2_write)
503
 
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE(hd68k_adc12_r, hd68k_adc_control_w)
504
 
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE(hd68k_gsp_io_r, hd68k_gsp_io_w)
505
 
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE(hd68k_msp_io_r, hd68k_msp_io_w)
506
 
        AM_RANGE(0xfc0000, 0xfc001f) AM_READWRITE(hd68k_duart_r, hd68k_duart_w)
507
 
        AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
 
499
        AM_RANGE(0x60c000, 0x60ffff) AM_READWRITE_LEGACY(hd68k_port0_r, hd68k_irq_ack_w)
 
500
        AM_RANGE(0xa00000, 0xa7ffff) AM_WRITE_LEGACY(hd68k_wr0_write)
 
501
        AM_RANGE(0xa80000, 0xafffff) AM_READ_PORT("a80000") AM_WRITE_LEGACY(hd68k_wr1_write)
 
502
        AM_RANGE(0xb00000, 0xb7ffff) AM_READWRITE_LEGACY(hd68k_adc8_r, hd68k_wr2_write)
 
503
        AM_RANGE(0xb80000, 0xbfffff) AM_READWRITE_LEGACY(hd68k_adc12_r, hd68k_adc_control_w)
 
504
        AM_RANGE(0xc00000, 0xc03fff) AM_READWRITE_LEGACY(hd68k_gsp_io_r, hd68k_gsp_io_w)
 
505
        AM_RANGE(0xc04000, 0xc07fff) AM_READWRITE_LEGACY(hd68k_msp_io_r, hd68k_msp_io_w)
 
506
        AM_RANGE(0xfc0000, 0xfc001f) AM_READWRITE_LEGACY(hd68k_duart_r, hd68k_duart_w)
 
507
        AM_RANGE(0xfd0000, 0xfd0fff) AM_MIRROR(0x004000) AM_READWRITE_LEGACY(hd68k_zram_r, hd68k_zram_w) AM_SHARE("eeprom")
508
508
        AM_RANGE(0xff0000, 0xffffff) AM_RAM
509
509
ADDRESS_MAP_END
510
510
 
511
511
 
512
512
/* GSP is identical to original multisync */
513
 
static ADDRESS_MAP_START( multisync2_gsp_map, AS_PROGRAM, 16 )
 
513
static ADDRESS_MAP_START( multisync2_gsp_map, AS_PROGRAM, 16, harddriv_state )
514
514
        ADDRESS_MAP_UNMAP_HIGH
515
515
        AM_RANGE(0x00000000, 0x0000200f) AM_NOP                                 /* hit during self-test */
516
 
        AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
517
 
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE(tms34010_io_register_r, hdgsp_io_w)
518
 
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_lo)
519
 
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_control_hi)
520
 
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_lo)
521
 
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_BASE_MEMBER(harddriv_state, m_gsp_paletteram_hi)
522
 
        AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_BASE_SIZE_MEMBER(harddriv_state, m_gsp_vram, m_gsp_vram_size)
 
516
        AM_RANGE(0x02000000, 0x020fffff) AM_READWRITE_LEGACY(hdgsp_vram_2bpp_r, hdgsp_vram_2bpp_w)
 
517
        AM_RANGE(0xc0000000, 0xc00001ff) AM_READWRITE_LEGACY(tms34010_io_register_r, hdgsp_io_w)
 
518
        AM_RANGE(0xf4000000, 0xf40000ff) AM_READWRITE_LEGACY(hdgsp_control_lo_r, hdgsp_control_lo_w) AM_SHARE("gsp_control_lo")
 
519
        AM_RANGE(0xf4800000, 0xf48000ff) AM_READWRITE_LEGACY(hdgsp_control_hi_r, hdgsp_control_hi_w) AM_SHARE("gsp_control_hi")
 
520
        AM_RANGE(0xf5000000, 0xf5000fff) AM_READWRITE_LEGACY(hdgsp_paletteram_lo_r, hdgsp_paletteram_lo_w) AM_SHARE("gsp_palram_lo")
 
521
        AM_RANGE(0xf5800000, 0xf5800fff) AM_READWRITE_LEGACY(hdgsp_paletteram_hi_r, hdgsp_paletteram_hi_w) AM_SHARE("gsp_palram_hi")
 
522
        AM_RANGE(0xff800000, 0xffffffff) AM_RAM AM_SHARE("gsp_vram")
523
523
ADDRESS_MAP_END
524
524
 
525
525
 
530
530
 *
531
531
 *************************************/
532
532
 
533
 
static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32 )
 
533
static ADDRESS_MAP_START( adsp_program_map, AS_PROGRAM, 32, harddriv_state )
534
534
        ADDRESS_MAP_UNMAP_HIGH
535
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_pgm_memory)
 
535
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("adsp_pgm_memory")
536
536
ADDRESS_MAP_END
537
537
 
538
538
 
539
 
static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16 )
 
539
static ADDRESS_MAP_START( adsp_data_map, AS_DATA, 16, harddriv_state )
540
540
        ADDRESS_MAP_UNMAP_HIGH
541
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_data_memory)
542
 
        AM_RANGE(0x2000, 0x2fff) AM_READWRITE(hdadsp_special_r, hdadsp_special_w)
 
541
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("adsp_data")
 
542
        AM_RANGE(0x2000, 0x2fff) AM_READWRITE_LEGACY(hdadsp_special_r, hdadsp_special_w)
543
543
ADDRESS_MAP_END
544
544
 
545
545
 
550
550
 *
551
551
 *************************************/
552
552
 
553
 
static ADDRESS_MAP_START( ds3_program_map, AS_PROGRAM, 32 )
 
553
static ADDRESS_MAP_START( ds3_program_map, AS_PROGRAM, 32, harddriv_state )
554
554
        ADDRESS_MAP_UNMAP_HIGH
555
 
        AM_RANGE(0x0000, 0x3fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_pgm_memory)
 
555
        AM_RANGE(0x0000, 0x3fff) AM_RAM AM_SHARE("adsp_pgm_memory")
556
556
ADDRESS_MAP_END
557
557
 
558
558
 
559
 
static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16 )
 
559
static ADDRESS_MAP_START( ds3_data_map, AS_DATA, 16, harddriv_state )
560
560
        ADDRESS_MAP_UNMAP_HIGH
561
 
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_adsp_data_memory)
 
561
        AM_RANGE(0x0000, 0x1fff) AM_RAM AM_SHARE("adsp_data")
562
562
        AM_RANGE(0x3800, 0x3bff) AM_RAM                                         /* internal RAM */
563
 
        AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */
564
 
        AM_RANGE(0x2000, 0x3fff) AM_READWRITE(hdds3_special_r, hdds3_special_w)
 
563
        AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE_LEGACY(hdds3_control_r, hdds3_control_w)  /* adsp control regs */
 
564
        AM_RANGE(0x2000, 0x3fff) AM_READWRITE_LEGACY(hdds3_special_r, hdds3_special_w)
565
565
ADDRESS_MAP_END
566
566
 
567
567
#if 0
568
 
static ADDRESS_MAP_START( ds3snd_program_map, AS_PROGRAM, 32 )
 
568
static ADDRESS_MAP_START( ds3snd_program_map, AS_PROGRAM, 32, harddriv_state )
569
569
        ADDRESS_MAP_UNMAP_HIGH
570
570
        AM_RANGE(0x0000, 0x3fff) AM_RAM
571
571
ADDRESS_MAP_END
572
572
 
573
573
 
574
 
static ADDRESS_MAP_START( ds3snd_data_map, AS_DATA, 16 )
 
574
static ADDRESS_MAP_START( ds3snd_data_map, AS_DATA, 16, harddriv_state )
575
575
        ADDRESS_MAP_UNMAP_HIGH
576
576
        AM_RANGE(0x0000, 0x1fff) AM_RAM
577
577
        AM_RANGE(0x3800, 0x3bff) AM_RAM                                         /* internal RAM */
578
 
        AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE(hdds3_control_r, hdds3_control_w) /* adsp control regs */
 
578
        AM_RANGE(0x3fe0, 0x3fff) AM_READWRITE_LEGACY(hdds3_control_r, hdds3_control_w)  /* adsp control regs */
579
579
//
580
580
//  /SIRQ2 = IRQ2
581
581
//  /SRES -> RESET
608
608
 *
609
609
 *************************************/
610
610
 
611
 
static ADDRESS_MAP_START( dsk_dsp32_map, AS_PROGRAM, 32 )
 
611
static ADDRESS_MAP_START( dsk_dsp32_map, AS_PROGRAM, 32, harddriv_state )
612
612
        ADDRESS_MAP_UNMAP_HIGH
613
613
        AM_RANGE(0x000000, 0x001fff) AM_RAM
614
614
        AM_RANGE(0x600000, 0x63ffff) AM_RAM
623
623
 *
624
624
 *************************************/
625
625
 
626
 
static ADDRESS_MAP_START( dsk2_dsp32_map, AS_PROGRAM, 32 )
 
626
static ADDRESS_MAP_START( dsk2_dsp32_map, AS_PROGRAM, 32, harddriv_state )
627
627
        ADDRESS_MAP_UNMAP_HIGH
628
628
        AM_RANGE(0x000000, 0x001fff) AM_RAM
629
629
        AM_RANGE(0x200000, 0x23ffff) AM_RAM
639
639
 *
640
640
 *************************************/
641
641
 
642
 
static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16 )
 
642
static ADDRESS_MAP_START( driversnd_68k_map, AS_PROGRAM, 16, harddriv_state )
643
643
        ADDRESS_MAP_UNMAP_HIGH
644
644
        AM_RANGE(0x000000, 0x01ffff) AM_ROM
645
645
        AM_RANGE(0xff0000, 0xff0fff) AM_READWRITE(hdsnd68k_data_r, hdsnd68k_data_w)
653
653
ADDRESS_MAP_END
654
654
 
655
655
 
656
 
static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16 )
 
656
static ADDRESS_MAP_START( driversnd_dsp_program_map, AS_PROGRAM, 16, harddriv_state )
657
657
        ADDRESS_MAP_UNMAP_HIGH
658
 
        AM_RANGE(0x000, 0xfff) AM_RAM AM_BASE_MEMBER(harddriv_state, m_sounddsp_ram)
 
658
        AM_RANGE(0x000, 0xfff) AM_RAM AM_SHARE("sounddsp_ram")
659
659
ADDRESS_MAP_END
660
660
 
661
661
 
662
662
        /* $000 - 08F  TMS32010 Internal Data RAM in Data Address Space */
663
663
 
664
664
 
665
 
static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16 )
666
 
        AM_RANGE(0, 0) AM_READ(hdsnddsp_rom_r) AM_DEVWRITE("dac", hdsnddsp_dac_w)
 
665
static ADDRESS_MAP_START( driversnd_dsp_io_map, AS_IO, 16, harddriv_state )
 
666
        AM_RANGE(0, 0) AM_READ(hdsnddsp_rom_r) AM_DEVWRITE_LEGACY("dac", hdsnddsp_dac_w)
667
667
        AM_RANGE(1, 1) AM_READ(hdsnddsp_comram_r)
668
668
        AM_RANGE(2, 2) AM_READ(hdsnddsp_compare_r)
669
669
        AM_RANGE(1, 2) AM_WRITENOP
686
686
        PORT_START("IN0")               /* 600000 */
687
687
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )   /* diagnostic switch */
688
688
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
689
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
689
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
690
690
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
691
691
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
692
692
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
742
742
        PORT_START("IN0")               /* 600000 */
743
743
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )   /* diagnostic switch */
744
744
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
745
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
745
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
746
746
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
747
747
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
748
748
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
798
798
        PORT_START("IN0")               /* 60c000 */
799
799
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )   /* diagnostic switch */
800
800
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
801
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
801
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
802
802
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
803
803
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
804
804
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
860
860
        PORT_START("IN0")               /* 60c000 */
861
861
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
862
862
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
863
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
863
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
864
864
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
865
865
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
866
866
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
922
922
        PORT_START("IN0")               /* 60c000 */
923
923
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
924
924
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
925
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
925
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
926
926
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
927
927
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
928
928
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
968
968
        PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)   /* up/down */
969
969
 
970
970
        PORT_START("12BADC2")           /* b80000 - 12 bit ADC 2 */
971
 
        PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Y ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Collective") PORT_REVERSE     /* collective */
 
971
        PORT_BIT( 0xff, 0x80, IPT_AD_STICK_Z ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Collective") PORT_REVERSE     /* collective */
972
972
 
973
973
        PORT_START("12BADC3")           /* b80000 - 12 bit ADC 3 */
974
 
        PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Rudder")      /* rudder */
 
974
        PORT_BIT( 0xff, 0x80, IPT_AD_STICK_X ) PORT_SENSITIVITY(25) PORT_KEYDELTA(10)  PORT_NAME("Rudder") PORT_PLAYER(2)       /* rudder */
975
975
 
976
976
        PORT_INCLUDE( atarijsa_iii )            /* audio board port */
977
977
        /* steeltal has its own coins */
985
985
        PORT_START("IN0")               /* 60c000 */
986
986
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
987
987
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
988
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
988
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
989
989
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
990
990
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
991
991
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
1048
1048
        PORT_START("IN0")               /* 60c000 */
1049
1049
        PORT_BIT( 0x0001, IP_ACTIVE_LOW, IPT_UNUSED )
1050
1050
        PORT_BIT( 0x0002, IP_ACTIVE_LOW, IPT_SPECIAL )  /* HBLANK */
1051
 
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_VBLANK )
 
1051
        PORT_BIT( 0x0004, IP_ACTIVE_LOW, IPT_CUSTOM ) PORT_VBLANK("screen")
1052
1052
        PORT_BIT( 0x0008, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 12-bit EOC */
1053
1053
        PORT_BIT( 0x0010, IP_ACTIVE_HIGH, IPT_SPECIAL ) /* 8-bit EOC */
1054
1054
        PORT_SERVICE( 0x0020, IP_ACTIVE_LOW )
3924
3924
static void init_dsk(running_machine &machine)
3925
3925
{
3926
3926
        harddriv_state *state = machine.driver_data<harddriv_state>();
3927
 
        UINT8 *usr3 = machine.region("user3")->base();
 
3927
        UINT8 *usr3 = state->memregion("user3")->base();
3928
3928
 
3929
3929
        /* install ASIC61 */
3930
3930
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x85c000, 0x85c7ff, FUNC(hd68k_dsk_dsp32_r), FUNC(hd68k_dsk_dsp32_w));
3958
3958
static void init_dsk2(running_machine &machine)
3959
3959
{
3960
3960
        harddriv_state *state = machine.driver_data<harddriv_state>();
3961
 
        UINT8 *usr3 = machine.region("user3")->base();
 
3961
        UINT8 *usr3 = state->memregion("user3")->base();
3962
3962
 
3963
3963
        /* install ASIC65 */
3964
3964
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x824000, 0x824003, FUNC(asic65_data_w));
4010
4010
        hdsnd_init(machine);
4011
4011
 
4012
4012
        /* install sound handlers */
4013
 
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0x840000, 0x840001, FUNC(hd68k_snd_data_r), FUNC(hd68k_snd_data_w));
4014
 
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x844000, 0x844001, FUNC(hd68k_snd_status_r));
4015
 
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x84c000, 0x84c001, FUNC(hd68k_snd_reset_w));
 
4013
        state->m_maincpu->memory().space(AS_PROGRAM)->install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_state::hd68k_snd_data_r),state), write16_delegate(FUNC(harddriv_state::hd68k_snd_data_w),state));
 
4014
        state->m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_state::hd68k_snd_status_r),state));
 
4015
        state->m_maincpu->memory().space(AS_PROGRAM)->install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_state::hd68k_snd_reset_w),state));
4016
4016
}
4017
4017
 
4018
4018
 
4152
4152
 
4153
4153
 
4154
4154
 
4155
 
static READ16_HANDLER( steeltal_dummy_r )
 
4155
READ16_MEMBER(harddriv_state::steeltal_dummy_r)
4156
4156
{
4157
4157
        /* this is required so that INT 4 is recongized as a sound INT */
4158
4158
        return ~0;
4169
4169
        init_dspcom(machine);
4170
4170
        atarijsa_init(machine, "IN0", 0x0020);
4171
4171
 
4172
 
        state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x908000, 0x908001, FUNC(steeltal_dummy_r));
 
4172
        state->m_maincpu->memory().space(AS_PROGRAM)->install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r),state));
4173
4173
 
4174
4174
        /* set up the SLOOP */
4175
4175
        if (!proto_sloop)
4180
4180
        else
4181
4181
                state->m_m68k_slapstic_base = state->m_maincpu->memory().space(AS_PROGRAM)->install_legacy_readwrite_handler(0xe0000, 0xfffff, FUNC(st68k_protosloop_r), FUNC(st68k_protosloop_w));
4182
4182
 
4183
 
        /* synchronization */
4184
 
        state->m_stmsp_sync[0] = &state->m_msp_ram[TOWORD(0x80010)];
4185
 
        state->m_msp->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x80010, 0x8007f, FUNC(stmsp_sync0_w));
4186
 
        state->m_stmsp_sync[1] = &state->m_msp_ram[TOWORD(0x99680)];
4187
 
        state->m_msp->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x99680, 0x9968f, FUNC(stmsp_sync1_w));
4188
 
        state->m_stmsp_sync[2] = &state->m_msp_ram[TOWORD(0x99d30)];
4189
 
        state->m_msp->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x99d30, 0x99d4f, FUNC(stmsp_sync2_w));
4190
 
 
4191
4183
        /* set up protection hacks */
4192
4184
        state->m_gsp_protection = state->m_gsp->memory().space(AS_PROGRAM)->install_legacy_write_handler(0xfff965d0, 0xfff965df, FUNC(hdgsp_protection_w));
4193
4185
 
4194
 
        /* set up msp speedup handlers */
4195
 
        state->m_msp->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x80020, 0x8002f, FUNC(stmsp_speedup_r));
4196
 
 
4197
4186
        /* set up adsp speedup handlers */
4198
4187
        state->m_adsp->memory().space(AS_DATA)->install_legacy_read_handler(0x1fff, 0x1fff, FUNC(hdadsp_speedup_r));
4199
4188
        state->m_adsp->memory().space(AS_DATA)->install_legacy_read_handler(0x1f99, 0x1f99, FUNC(hdds3_speedup_r));