Previous 199869 Revisions Next

r36328 Monday 9th March, 2015 at 00:05:41 UTC by David Haywood
it now attempts to do a whole bunch of 0x20 sized transfers from RAM (0xcfe8 - 0xd007) to DMA port 3 shortly after startup... (nw)
[src/emu/cpu/nec]v53.c v53.h
[src/emu/machine]am9517a.c
[src/mame/audio]hng64.c

trunk/src/emu/cpu/nec/v53.c
r244839r244840
402402   }
403403}
404404
405WRITE_LINE_MEMBER(v53_base_device::hack_trampoline_w)
406{
407   if (!(m_SCTL & 0x02))
408   {
409      m_dma_71071mode->hack_w(state);
410   }
411   else
412   {
413      printf("v53: hack_trampoline_w not in 71071mode\n");
414   }
415}
405416
406
407417/* General stuff */
408418
409419static ADDRESS_MAP_START( v53_internal_port_map, AS_IO, 16, v53_base_device )
r244839r244840
441451//   AM_RANGE(0xfffe, 0xffff) // (reserved     ,  0xff00) // 0xffff
442452ADDRESS_MAP_END
443453
454WRITE_LINE_MEMBER(v53_base_device::dma_hrq_changed)
455{
456   // pass this back to the driver? / expose externally?
457   m_dma_71071mode->hack_w(state);
458}
459
460WRITE8_MEMBER(v53_base_device::dma_io_3_w)
461{
462   logerror("dma_io_3_w %02x\n", data);
463}
464
465READ8_MEMBER(v53_base_device::dma_memin_r)
466{
467   UINT8 ret = rand();
468   logerror("dma_memin_r offset %08x %02x\n", offset, ret);
469   return ret;
470}
471
472
444473static MACHINE_CONFIG_FRAGMENT( v53 )
445474   MCFG_DEVICE_ADD("pit", PIT8254, 0) // functionality identical to uPD71054
446475   MCFG_PIT8253_CLK0(16000000/2/8)
447476   //MCFG_PIT8253_OUT0_HANDLER(WRITELINE(v53_base_device, pit_out0))
448477
449478   MCFG_DEVICE_ADD("upd71071dma", UPD71071_V53, 4000000)
479   MCFG_I8237_OUT_HREQ_CB(WRITELINE(v53_base_device, dma_hrq_changed))
480   MCFG_I8237_OUT_IOW_3_CB(WRITE8(v53_base_device, dma_io_3_w))
481   MCFG_I8237_IN_MEMR_CB(READ8(v53_base_device, dma_memin_r))
482   
483   
450484
451
452485MACHINE_CONFIG_END
453486
454487machine_config_constructor v53_base_device::device_mconfig_additions() const
trunk/src/emu/cpu/nec/v53.h
r244839r244840
8686   DECLARE_WRITE_LINE_MEMBER(dreq1_trampoline_w);
8787   DECLARE_WRITE_LINE_MEMBER(dreq2_trampoline_w);
8888   DECLARE_WRITE_LINE_MEMBER(dreq3_trampoline_w);
89   DECLARE_WRITE_LINE_MEMBER(hack_trampoline_w);
8990
91   DECLARE_WRITE_LINE_MEMBER(dma_hrq_changed);
92   DECLARE_WRITE8_MEMBER(dma_io_3_w);
93   DECLARE_READ8_MEMBER(dma_memin_r);
9094
9195protected:
9296   // device-level overrides
trunk/src/emu/machine/am9517a.c
r244839r244840
12721272
12731273
12741274   }
1275   trigger(1);
12751276
12761277}
No newline at end of file
trunk/src/mame/audio/hng64.c
r244839r244840
149149
150150WRITE16_MEMBER(hng64_state::hng64_sound_port_0008_w)
151151{
152   printf("hng64_sound_port_0008_w %04x %04x\n", data, mem_mask);
152//   printf("hng64_sound_port_0008_w %04x %04x\n", data, mem_mask);
153153   // seems to one or more of the DMARQ on the V53, writes here when it expects DMA channel 3 to transfer ~0x20 bytes just after startup
154
155
154156   m_audiocpu->dreq3_trampoline_w(data&1);
157//   m_audiocpu->hack_trampoline_w(1);
158
155159}
156160
157161static ADDRESS_MAP_START( hng_sound_io, AS_IO, 16, hng64_state )


Previous 199869 Revisions Next


© 1997-2024 The MAME Team