405
405
*************************************/
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
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")
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")
453
453
*************************************/
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
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")
492
492
*************************************/
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
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")
531
531
*************************************/
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")
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)
551
551
*************************************/
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")
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)
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
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 */
581
581
// /SRES -> RESET
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")
662
662
/* $000 - 08F TMS32010 Internal Data RAM in Data Address Space */
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
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));
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));
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));
4194
/* set up msp speedup handlers */
4195
state->m_msp->memory().space(AS_PROGRAM)->install_legacy_read_handler(0x80020, 0x8002f, FUNC(stmsp_speedup_r));
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));