Previous 199869 Revisions Next

r26021 Wednesday 6th November, 2013 at 17:12:07 UTC by Osso
harddriv: moved common_inits in the driver state. (nw)
[src/mame/audio]harddriv.c
[src/mame/drivers]harddriv.c
[src/mame/includes]harddriv.h

trunk/src/mame/drivers/harddriv.c
r26020r26021
40304030 *************************************/
40314031
40324032/* COMMON INIT: initialize the original "driver" main board */
4033static void init_driver(running_machine &machine)
4033void harddriv_state::init_driver()
40344034{
4035   harddriv_state *state = machine.driver_data<harddriv_state>();
4036
40374035   /* note that we're not multisync */
4038   state->m_gsp_multisync = FALSE;
4036   m_gsp_multisync = FALSE;
40394037}
40404038
40414039
40424040/* COMMON INIT: initialize the later "multisync" main board */
4043static void init_multisync(running_machine &machine, int compact_inputs)
4041void harddriv_state::init_multisync(int compact_inputs)
40444042{
4045   harddriv_state *state = machine.driver_data<harddriv_state>();
4046
40474043   /* note that we're multisync */
4048   state->m_gsp_multisync = TRUE;
4044   m_gsp_multisync = TRUE;
40494045
40504046   // if we have a JSA board, install the read/write handlers
4051   if (state->m_jsa != NULL)
4052      state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(FUNC(atari_jsa_base_device::main_response_r),state->m_jsa.target()), write8_delegate(FUNC(atari_jsa_base_device::main_command_w),state->m_jsa.target()), 0xff00);
4047   if (m_jsa != NULL)
4048      m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x600000, 0x603fff, read8_delegate(FUNC(atari_jsa_base_device::main_response_r),m_jsa.target()), write8_delegate(FUNC(atari_jsa_base_device::main_command_w),m_jsa.target()), 0xff00);
40534049
40544050   /* install handlers for the compact driving games' inputs */
40554051   if (compact_inputs)
40564052   {
4057      state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(FUNC(harddriv_state::hdc68k_wheel_r), state));
4058      state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(FUNC(harddriv_state::hdc68k_wheel_edge_reset_w), state));
4059      state->m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hdc68k_port1_r), state));
4053      m_maincpu->space(AS_PROGRAM).install_read_handler(0x400000, 0x400001, read16_delegate(FUNC(harddriv_state::hdc68k_wheel_r), this));
4054      m_maincpu->space(AS_PROGRAM).install_write_handler(0x408000, 0x408001, write16_delegate(FUNC(harddriv_state::hdc68k_wheel_edge_reset_w), this));
4055      m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hdc68k_port1_r), this));
40604056   }
40614057}
40624058
40634059
40644060/* COMMON INIT: initialize the ADSP/ADSP2 board */
4065static void init_adsp(running_machine &machine)
4061void harddriv_state::init_adsp()
40664062{
4067   harddriv_state *state = machine.driver_data<harddriv_state>();
4068
40694063   /* install ADSP program RAM */
4070   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_program_r), state), write16_delegate(FUNC(harddriv_state::hd68k_adsp_program_w), state));
4064   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_program_w), this));
40714065
40724066   /* install ADSP data RAM */
4073   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), state), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), state));
4067   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
40744068
40754069   /* install ADSP serial buffer RAM */
4076   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_r), state), write16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_w), state));
4070   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x810000, 0x813fff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_buffer_w), this));
40774071
40784072   /* install ADSP control locations */
4079   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_control_w), state));
4080   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), state));
4081   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_state_r), state));
4073   m_maincpu->space(AS_PROGRAM).install_write_handler(0x818000, 0x81801f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_control_w), this));
4074   m_maincpu->space(AS_PROGRAM).install_write_handler(0x818060, 0x81807f, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
4075   m_maincpu->space(AS_PROGRAM).install_read_handler(0x838000, 0x83ffff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_state_r), this));
40824076}
40834077
40844078
40854079/* COMMON INIT: initialize the DS3 board */
4086static void init_ds3(running_machine &machine)
4080void harddriv_state::init_ds3()
40874081{
4088   harddriv_state *state = machine.driver_data<harddriv_state>();
4089
40904082   /* install ADSP program RAM */
4091   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_program_r), state), write16_delegate(FUNC(harddriv_state::hd68k_ds3_program_w), state));
4083   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0x807fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_program_r), this), write16_delegate(FUNC(harddriv_state::hd68k_ds3_program_w), this));
40924084
40934085   /* install ADSP data RAM */
4094   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), state), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), state));
4095   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(FUNC(harddriv_state::hdds3_special_r), state), write16_delegate(FUNC(harddriv_state::hdds3_special_w), state));
4086   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x808000, 0x80bfff, read16_delegate(FUNC(harddriv_state::hd68k_adsp_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_adsp_data_w), this));
4087   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x80c000, 0x80dfff, read16_delegate(FUNC(harddriv_state::hdds3_special_r), this), write16_delegate(FUNC(harddriv_state::hdds3_special_w), this));
40964088
40974089   /* install ADSP control locations */
4098   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_r), state));
4099   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_girq_state_r), state));
4100   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_w), state));
4101   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), state));
4090   m_maincpu->space(AS_PROGRAM).install_read_handler(0x820000, 0x8207ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_r), this));
4091   m_maincpu->space(AS_PROGRAM).install_read_handler(0x820800, 0x820fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_girq_state_r), this));
4092   m_maincpu->space(AS_PROGRAM).install_write_handler(0x820000, 0x8207ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_gdata_w), this));
4093   m_maincpu->space(AS_PROGRAM).install_write_handler(0x821000, 0x8217ff, write16_delegate(FUNC(harddriv_state::hd68k_adsp_irq_clear_w), this));
41024094
4103   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_r), state));
4104   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_state_r), state));
4105   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_w), state));
4106   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_clear_w), state));
4107   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_control_w), state));
4095   m_maincpu->space(AS_PROGRAM).install_read_handler(0x822000, 0x8227ff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_r), this));
4096   m_maincpu->space(AS_PROGRAM).install_read_handler(0x822800, 0x822fff, read16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_state_r), this));
4097   m_maincpu->space(AS_PROGRAM).install_write_handler(0x822000, 0x8227ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sdata_w), this));
4098   m_maincpu->space(AS_PROGRAM).install_write_handler(0x823000, 0x8237ff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_sirq_clear_w), this));
4099   m_maincpu->space(AS_PROGRAM).install_write_handler(0x823800, 0x823fff, write16_delegate(FUNC(harddriv_state::hd68k_ds3_control_w), this));
41084100
41094101   /* predetermine memory regions */
4110   state->m_ds3_sdata_memory = (UINT16 *)state->memregion("ds3sdsp_data")->base();
4111   state->m_ds3_sdata_memory_size = state->memregion("ds3sdsp_data")->bytes() / 2;
4102   m_ds3_sdata_memory = (UINT16 *)memregion("ds3sdsp_data")->base();
4103   m_ds3_sdata_memory_size = memregion("ds3sdsp_data")->bytes() / 2;
41124104
41134105/*
41144106
r26020r26021
41804172
41814173
41824174/* COMMON INIT: initialize the DSK add-on board */
4183static void init_dsk(running_machine &machine)
4175void harddriv_state::init_dsk()
41844176{
4185   harddriv_state *state = machine.driver_data<harddriv_state>();
4186   UINT8 *usr3 = state->memregion("user3")->base();
4177   UINT8 *usr3 = memregion("user3")->base();
41874178
41884179   /* install ASIC61 */
4189   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), state), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), state));
4180   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x85c000, 0x85c7ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
41904181
41914182   /* install control registers */
4192   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), state));
4183   m_maincpu->space(AS_PROGRAM).install_write_handler(0x85c800, 0x85c81f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
41934184
41944185   /* install extra RAM */
4195   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), state), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), state));
4196   state->m_dsk_ram = (UINT16 *)(usr3 + 0x40000);
4186   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x900000, 0x90ffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
4187   m_dsk_ram = (UINT16 *)(usr3 + 0x40000);
41974188
41984189   /* install extra ZRAM */
4199   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_zram_r), state), write16_delegate(FUNC(harddriv_state::hd68k_dsk_zram_w), state));
4200   state->m_dsk_zram = (UINT16 *)(usr3 + 0x50000);
4190   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x910000, 0x910fff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_zram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_zram_w), this));
4191   m_dsk_zram = (UINT16 *)(usr3 + 0x50000);
42014192
42024193   /* install ASIC65 */
4203   state->m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x914000, 0x917fff, FUNC(asic65_data_w));
4204   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x914000, 0x917fff, FUNC(asic65_r));
4205   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x918000, 0x91bfff, FUNC(asic65_io_r));
4194   m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x914000, 0x917fff, FUNC(asic65_data_w));
4195   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x914000, 0x917fff, FUNC(asic65_r));
4196   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x918000, 0x91bfff, FUNC(asic65_io_r));
42064197
42074198   /* install extra ROM */
4208   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_small_rom_r), state));
4209   state->m_dsk_rom = (UINT16 *)(usr3 + 0x00000);
4199   m_maincpu->space(AS_PROGRAM).install_read_handler(0x940000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_small_rom_r), this));
4200   m_dsk_rom = (UINT16 *)(usr3 + 0x00000);
42104201
42114202   /* set up the ASIC65 */
4212   asic65_config(machine, ASIC65_STANDARD);
4203   asic65_config(machine(), ASIC65_STANDARD);
42134204}
42144205
42154206
42164207/* COMMON INIT: initialize the DSK II add-on board */
4217static void init_dsk2(running_machine &machine)
4208void harddriv_state::init_dsk2()
42184209{
4219   harddriv_state *state = machine.driver_data<harddriv_state>();
4220   UINT8 *usr3 = state->memregion("user3")->base();
4210   UINT8 *usr3 = memregion("user3")->base();
42214211
42224212   /* install ASIC65 */
4223   state->m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x824000, 0x824003, FUNC(asic65_data_w));
4224   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x824000, 0x824003, FUNC(asic65_r));
4225   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x825000, 0x825001, FUNC(asic65_io_r));
4213   m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x824000, 0x824003, FUNC(asic65_data_w));
4214   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x824000, 0x824003, FUNC(asic65_r));
4215   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x825000, 0x825001, FUNC(asic65_io_r));
42264216
42274217   /* install ASIC61 */
4228   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), state), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), state));
4218   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x827000, 0x8277ff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_dsp32_w), this));
42294219
42304220   /* install control registers */
4231   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), state));
4221   m_maincpu->space(AS_PROGRAM).install_write_handler(0x827800, 0x82781f, write16_delegate(FUNC(harddriv_state::hd68k_dsk_control_w), this));
42324222
42334223   /* install extra RAM */
4234   state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), state), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), state));
4235   state->m_dsk_ram = (UINT16 *)(usr3 + 0x100000);
4224   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x880000, 0x8bffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_r), this), write16_delegate(FUNC(harddriv_state::hd68k_dsk_ram_w), this));
4225   m_dsk_ram = (UINT16 *)(usr3 + 0x100000);
42364226
42374227   /* install extra ROM */
4238   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_rom_r), state));
4239   state->m_dsk_rom = (UINT16 *)(usr3 + 0x000000);
4228   m_maincpu->space(AS_PROGRAM).install_read_handler(0x900000, 0x9fffff, read16_delegate(FUNC(harddriv_state::hd68k_dsk_rom_r), this));
4229   m_dsk_rom = (UINT16 *)(usr3 + 0x000000);
42404230
42414231   /* set up the ASIC65 */
4242   asic65_config(machine, ASIC65_STANDARD);
4232   asic65_config(machine(), ASIC65_STANDARD);
42434233}
42444234
42454235
42464236/* COMMON INIT: initialize the DSPCOM add-on board */
4247static void init_dspcom(running_machine &machine)
4237void harddriv_state::init_dspcom()
42484238{
4249   harddriv_state *state = machine.driver_data<harddriv_state>();
4239    /* install ASIC65 */
4240   m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x900000, 0x900003, FUNC(asic65_data_w));
4241   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x900000, 0x900003, FUNC(asic65_r));
4242   m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x901000, 0x910001, FUNC(asic65_io_r));
42504243
4251   /* install ASIC65 */
4252   state->m_maincpu->space(AS_PROGRAM).install_legacy_write_handler(0x900000, 0x900003, FUNC(asic65_data_w));
4253   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x900000, 0x900003, FUNC(asic65_r));
4254   state->m_maincpu->space(AS_PROGRAM).install_legacy_read_handler(0x901000, 0x910001, FUNC(asic65_io_r));
4255
42564244   /* set up the ASIC65 */
4257   asic65_config(machine, ASIC65_STEELTAL);
4245   asic65_config(machine(), ASIC65_STEELTAL);
42584246
42594247   /* install DSPCOM control */
4260   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(FUNC(harddriv_state::hddspcom_control_w), state));
4248   m_maincpu->space(AS_PROGRAM).install_write_handler(0x904000, 0x90401f, write16_delegate(FUNC(harddriv_state::hddspcom_control_w), this));
42614249}
42624250
42634251
42644252/* COMMON INIT: initialize the original "driver" sound board */
4265static void init_driver_sound(running_machine &machine)
4253void harddriv_state::init_driver_sound()
42664254{
4267   harddriv_state *state = machine.driver_data<harddriv_state>();
4255   hdsnd_init();
42684256
4269   hdsnd_init(machine);
4270
42714257   /* install sound handlers */
4272   state->m_maincpu->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));
4273   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_state::hd68k_snd_status_r),state));
4274   state->m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_state::hd68k_snd_reset_w),state));
4258   m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x840000, 0x840001, read16_delegate(FUNC(harddriv_state::hd68k_snd_data_r), this), write16_delegate(FUNC(harddriv_state::hd68k_snd_data_w), this));
4259   m_maincpu->space(AS_PROGRAM).install_read_handler(0x844000, 0x844001, read16_delegate(FUNC(harddriv_state::hd68k_snd_status_r), this));
4260   m_maincpu->space(AS_PROGRAM).install_write_handler(0x84c000, 0x84c001, write16_delegate(FUNC(harddriv_state::hd68k_snd_reset_w), this));
42754261}
42764262
42774263
r26020r26021
42864272DRIVER_INIT_MEMBER(harddriv_state,harddriv)
42874273{
42884274   /* initialize the boards */
4289   init_driver(machine());
4290   init_adsp(machine());
4291   init_driver_sound(machine());
4275   init_driver();
4276   init_adsp();
4277   init_driver_sound();
42924278
42934279   /* set up gsp speedup handler */
42944280   m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
r26020r26021
43094295DRIVER_INIT_MEMBER(harddriv_state,harddrivc)
43104296{
43114297   /* initialize the boards */
4312   init_multisync(machine(), 1);
4313   init_adsp(machine());
4314   init_driver_sound(machine());
4298   init_multisync(1);
4299   init_adsp();
4300   init_driver_sound();
43154301
43164302   /* set up gsp speedup handler */
43174303   m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
r26020r26021
43324318DRIVER_INIT_MEMBER(harddriv_state,stunrun)
43334319{
43344320   /* initialize the boards */
4335   init_multisync(machine(), 0);
4336   init_adsp(machine());
4321   init_multisync(0);
4322   init_adsp();
43374323
43384324   /* set up gsp speedup handler */
43394325   m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff9fc00, 0xfff9fc0f, write16_delegate(FUNC(harddriv_state::hdgsp_speedup1_w), this));
r26020r26021
43494335DRIVER_INIT_MEMBER(harddriv_state,racedriv)
43504336{
43514337   /* initialize the boards */
4352   init_driver(machine());
4353   init_adsp(machine());
4354   init_dsk(machine());
4355   init_driver_sound(machine());
4338   init_driver();
4339   init_adsp();
4340   init_dsk();
4341   init_driver_sound();
43564342
43574343   /* set up the slapstic */
43584344   slapstic_init(machine(), 117);
r26020r26021
43674353}
43684354
43694355
4370static void racedrivc_init_common(running_machine &machine, offs_t gsp_protection)
4356void harddriv_state::racedrivc_init_common(offs_t gsp_protection)
43714357{
4372   harddriv_state *state = machine.driver_data<harddriv_state>();
4373
43744358   /* initialize the boards */
4375   init_multisync(machine, 1);
4376   init_adsp(machine);
4377   init_dsk(machine);
4378   init_driver_sound(machine);
4359   init_multisync(1);
4360   init_adsp();
4361   init_dsk();
4362   init_driver_sound();
43794363
43804364   /* set up the slapstic */
4381   slapstic_init(machine, 117);
4382   state->m_m68k_slapstic_base = state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), state), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), state));
4365   slapstic_init(machine(), 117);
4366   m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::rd68k_slapstic_r), this), write16_delegate(FUNC(harddriv_state::rd68k_slapstic_w), this));
43834367
43844368   /* synchronization */
4385   state->m_rddsp32_sync[0] = state->m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), state));
4386   state->m_rddsp32_sync[1] = state->m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), state));
4369   m_rddsp32_sync[0] = m_dsp32->space(AS_PROGRAM).install_write_handler(0x613c00, 0x613c03, write32_delegate(FUNC(harddriv_state::rddsp32_sync0_w), this));
4370   m_rddsp32_sync[1] = m_dsp32->space(AS_PROGRAM).install_write_handler(0x613e00, 0x613e03, write32_delegate(FUNC(harddriv_state::rddsp32_sync1_w), this));
43874371
43884372   /* set up protection hacks */
4389   state->m_gsp_protection = state->m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), state));
4373   m_gsp_protection = m_gsp->space(AS_PROGRAM).install_write_handler(gsp_protection, gsp_protection + 0x0f, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
43904374
43914375   /* set up gsp speedup handler */
4392   state->m_gsp_speedup_addr[0] = state->m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), state));
4393   state->m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), state));
4394   state->m_gsp_speedup_pc = 0xfff43a00;
4376   m_gsp_speedup_addr[0] = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff76f60, 0xfff76f6f, write16_delegate(FUNC(harddriv_state::rdgsp_speedup1_w), this));
4377   m_gsp->space(AS_PROGRAM).install_read_handler(0xfff76f60, 0xfff76f6f, read16_delegate(FUNC(harddriv_state::rdgsp_speedup1_r), this));
4378   m_gsp_speedup_pc = 0xfff43a00;
43954379
43964380   /* set up adsp speedup handlers */
4397   state->m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), state));
4381   m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
43984382}
43994383
4400DRIVER_INIT_MEMBER(harddriv_state,racedrivc) { racedrivc_init_common(machine(), 0xfff95cd0); }
4401DRIVER_INIT_MEMBER(harddriv_state,racedrivc1) { racedrivc_init_common(machine(), 0xfff7ecd0); }
4384DRIVER_INIT_MEMBER(harddriv_state,racedrivc) { racedrivc_init_common(0xfff95cd0); }
4385DRIVER_INIT_MEMBER(harddriv_state,racedrivc1) { racedrivc_init_common(0xfff7ecd0); }
44024386
44034387DRIVER_INIT_MEMBER(harddriv_state,racedrivb1)
44044388{
r26020r26021
44234407}
44244408
44254409
4426static void steeltal_init_common(running_machine &machine, offs_t ds3_transfer_pc, int proto_sloop)
4410void harddriv_state::steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloop)
44274411{
4428   harddriv_state *state = machine.driver_data<harddriv_state>();
4429
44304412   /* initialize the boards */
4431   init_multisync(machine, 0);
4432   init_ds3(machine);
4433   init_dspcom(machine);
4413   init_multisync(0);
4414   init_ds3();
4415   init_dspcom();
44344416
4435   state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r),state));
4417   m_maincpu->space(AS_PROGRAM).install_read_handler(0x908000, 0x908001, read16_delegate(FUNC(harddriv_state::steeltal_dummy_r), this));
44364418
44374419   /* set up the SLOOP */
44384420   if (!proto_sloop)
44394421   {
4440      state->m_m68k_slapstic_base = state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_r), state),  write16_delegate(FUNC(harddriv_state::st68k_sloop_w), state));
4441      state->m_m68k_sloop_alt_base = state->m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_alt_r), state));
4422      m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_r), this),  write16_delegate(FUNC(harddriv_state::st68k_sloop_w), this));
4423      m_m68k_sloop_alt_base = m_maincpu->space(AS_PROGRAM).install_read_handler(0x4e000, 0x4ffff, read16_delegate(FUNC(harddriv_state::st68k_sloop_alt_r), this));
44424424   }
44434425   else
4444      state->m_m68k_slapstic_base = state->m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_protosloop_r), state), write16_delegate(FUNC(harddriv_state::st68k_protosloop_w), state));
4426      m_m68k_slapstic_base = m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xe0000, 0xfffff, read16_delegate(FUNC(harddriv_state::st68k_protosloop_r), this), write16_delegate(FUNC(harddriv_state::st68k_protosloop_w), this));
44454427
44464428   /* set up protection hacks */
4447   state->m_gsp_protection = state->m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), state));
4429   m_gsp_protection = m_gsp->space(AS_PROGRAM).install_write_handler(0xfff965d0, 0xfff965df, write16_delegate(FUNC(harddriv_state::hdgsp_protection_w), this));
44484430
44494431   /* set up adsp speedup handlers */
4450   state->m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), state));
4451   state->m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), state));
4452   state->m_ds3_speedup_addr = &state->m_adsp_data_memory[0x1f99];
4453   state->m_ds3_speedup_pc = 0xff;
4454   state->m_ds3_transfer_pc = ds3_transfer_pc;
4432   m_adsp->space(AS_DATA).install_read_handler(0x1fff, 0x1fff, read16_delegate(FUNC(harddriv_state::hdadsp_speedup_r), this));
4433   m_adsp->space(AS_DATA).install_read_handler(0x1f99, 0x1f99, read16_delegate(FUNC(harddriv_state::hdds3_speedup_r), this));
4434   m_ds3_speedup_addr = &m_adsp_data_memory[0x1f99];
4435   m_ds3_speedup_pc = 0xff;
4436   m_ds3_transfer_pc = ds3_transfer_pc;
44554437}
44564438
44574439
44584440DRIVER_INIT_MEMBER(harddriv_state,steeltal)
44594441{
4460   steeltal_init_common(machine(), 0x4fc18, 0);
4442   steeltal_init_common(0x4fc18, 0);
44614443}
44624444
44634445DRIVER_INIT_MEMBER(harddriv_state,steeltal1)
44644446{
4465   steeltal_init_common(machine(), 0x4f9c6, 0);
4447   steeltal_init_common(0x4f9c6, 0);
44664448}
44674449
44684450DRIVER_INIT_MEMBER(harddriv_state,steeltalp)
44694451{
4470   steeltal_init_common(machine(), 0x52290, 1);
4452   steeltal_init_common(0x52290, 1);
44714453}
44724454
44734455
44744456DRIVER_INIT_MEMBER(harddriv_state,strtdriv)
44754457{
44764458   /* initialize the boards */
4477   init_multisync(machine(), 1);
4478   init_ds3(machine());
4479   init_dsk(machine());
4459   init_multisync(1);
4460   init_ds3();
4461   init_dsk();
44804462
44814463   /* set up the slapstic */
44824464   slapstic_init(machine(), 117);
r26020r26021
45034485DRIVER_INIT_MEMBER(harddriv_state,hdrivair)
45044486{
45054487   /* initialize the boards */
4506   init_multisync(machine(), 1);
4507   init_ds3(machine());
4508   init_dsk2(machine());
4488   init_multisync(1);
4489   init_ds3();
4490   init_dsk2();
45094491
45104492   m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
45114493
r26020r26021
45284510DRIVER_INIT_MEMBER(harddriv_state,hdrivairp)
45294511{
45304512   /* initialize the boards */
4531   init_multisync(machine(), 1);
4532   init_ds3(machine());
4533   init_dsk2(machine());
4513   init_multisync(1);
4514   init_ds3();
4515   init_dsk2();
45344516
45354517   m_maincpu->space(AS_PROGRAM).install_read_handler(0xa80000, 0xafffff, read16_delegate(FUNC(harddriv_state::hda68k_port1_r), this));
45364518
trunk/src/mame/audio/harddriv.c
r26020r26021
2323 *
2424 *************************************/
2525
26void hdsnd_init(running_machine &machine)
26void harddriv_state::hdsnd_init()
2727{
28   harddriv_state *state = machine.driver_data<harddriv_state>();
29   state->m_rombase = (UINT8 *)state->memregion("serialroms")->base();
30   state->m_romsize = state->memregion("serialroms")->bytes();
28   m_rombase = (UINT8 *)memregion("serialroms")->base();
29   m_romsize = memregion("serialroms")->bytes();
3130}
3231
3332
trunk/src/mame/includes/harddriv.h
r26020r26021
250250   DECLARE_READ16_MEMBER(hdsnddsp_rom_r);
251251   DECLARE_READ16_MEMBER(hdsnddsp_comram_r);
252252   DECLARE_READ16_MEMBER(hdsnddsp_compare_r);
253   void init_driver();
254   void init_multisync(int compact_inputs);
255   void init_adsp();
256   void init_ds3();
257   void init_dsk();
258   void init_dsk2();
259   void init_dspcom();
260   void init_driver_sound();
261   void racedrivc_init_common(offs_t gsp_protection);
262   void steeltal_init_common(offs_t ds3_transfer_pc, int proto_sloop);
253263   DECLARE_DRIVER_INIT(strtdriv);
254264   DECLARE_DRIVER_INIT(harddrivc);
255265   DECLARE_DRIVER_INIT(hdrivairp);
r26020r26021
274284   required_device<duartn68681_device> m_duart;
275285   DECLARE_WRITE_LINE_MEMBER(harddriv_duart_irq_handler);
276286   
287   /*----------- defined in audio/harddriv.c -----------*/
288
289   void hdsnd_init();
290   
277291   /*----------- defined in machine/harddriv.c -----------*/
278292
279293   /* Driver/Multisync board */
r26020r26021
437451/* DSK board */
438452void hddsk_update_pif(dsp32c_device &device, UINT32 pins);
439453
440/*----------- defined in audio/harddriv.c -----------*/
441454
442void hdsnd_init(running_machine &machine);
443
444455/*----------- defined in video/harddriv.c -----------*/
445456
446457void hdgsp_write_to_shiftreg(address_space &space, UINT32 address, UINT16 *shiftreg);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team