Previous 199869 Revisions Next

r20318 Friday 18th January, 2013 at 16:00:01 UTC by Angelo Salese
DMAC hooked
[src/mame/drivers]coolridr.c

trunk/src/mame/drivers/coolridr.c
r20317r20318
1111    - video emulation is pratically non-existant;
1212    - SCSP;
1313    - Many SH-1 ports needs investigations;
14    - i8237 purpose is unknown, might even not be at the right place ...
1415    - IRQ generation
1516    - Understand & remove the hacks at the bottom;
1617    - IC1/IC10 are currently unused, might contain sprite data / music data for the SCSP / chars for the
r20317r20318
9091      JP*     - 3x 2-pin jumpers. JP1 shorted, other jumpers open
9192      MB84256 - Fujitsu MB84256 32k x8 SRAM (NDIP28)
9293      MB89374 - Fujitsu MB89374 Data Link Controller (SDIP42)
93      MB89237A- Fujitsu MB89237A 8-Bit Proprietary Microcontroller (?) (DIP40)
94      MB89237A- Fujitsu MB89237A 8-Bit Proprietary DMAC (?) (DIP40)
9495      SN75179 - Texas Instruments SN75179 Differential Driver and Receiver Pair (DIP8)
9596
9697
r20317r20318
250251#include "cpu/sh2/sh2.h"
251252#include "cpu/m68000/m68000.h"
252253#include "sound/scsp.h"
254#include "machine/am9517a.h"
253255
254256
255257class coolridr_state : public driver_device
r20317r20318
269271      m_maincpu(*this, "maincpu"),
270272      m_subcpu(*this,"sub"),
271273      m_soundcpu(*this,"soundcpu"),
274      m_dmac(*this, "i8237"),
272275      m_h1_vram(*this, "h1_vram"),
273276      m_h1_charram(*this, "h1_charram"),
274277      m_framebuffer_vram(*this, "fb_vram"),
275278      m_txt_vram(*this, "txt_vram"),
276279      m_sysh1_txt_blit(*this, "sysh1_txt_blit"),
277280      m_sysh1_workram_h(*this, "sysh1_workrah"),
278      m_h1_unk(*this, "h1_unk"){ }
281      m_h1_unk(*this, "h1_unk")
282      { }
279283
280284   // Blitter state
281285   UINT16 m_textBytesToWrite;
r20317r20318
291295   required_device<cpu_device> m_maincpu;
292296   required_device<cpu_device> m_subcpu;
293297   required_device<cpu_device> m_soundcpu;
298   required_device<am9517a_device> m_dmac;
294299
295300   required_shared_ptr<UINT32> m_h1_vram;
296301   required_shared_ptr<UINT32> m_h1_charram;
r20317r20318
401406/* unknown purpose */
402407READ32_MEMBER(coolridr_state::sysh1_unk_r)
403408{
404   switch(offset)
405   {
406      case 0x08/4:
407      {
408         m_vblank^=1;
409
410         return (m_h1_unk[offset] & 0xfdffffff) | (m_vblank<<25);
411      }
412      case 0x14/4:
413         return m_h1_unk[offset];
414      //case 0x20/4:
415   }
416
417   return 0xffffffff;//m_h1_unk[offset];
409   return m_h1_unk[offset];
418410}
419411
420412WRITE32_MEMBER(coolridr_state::sysh1_unk_w)
r20317r20318
726718   AM_RANGE(0x03208900, 0x03208903) AM_RAM /*???*/
727719   AM_RANGE(0x03300400, 0x03300403) AM_RAM /*irq enable?*/
728720
729   AM_RANGE(0x04000000, 0x0400003f) AM_READWRITE(sysh1_unk_r,sysh1_unk_w) AM_SHARE("h1_unk")
730   AM_RANGE(0x04200000, 0x0420003f) AM_RAM /*???*/
721   AM_RANGE(0x04000000, 0x0400001f) AM_DEVREADWRITE8("i8237", am9517a_device, read, write, 0xffffffff)
722   AM_RANGE(0x04000020, 0x0400003f) AM_READWRITE(sysh1_unk_r,sysh1_unk_w) AM_SHARE("h1_unk")
723   AM_RANGE(0x04200000, 0x0420003f) AM_RAM /* hi-word for DMA? */
731724
732725   AM_RANGE(0x05000000, 0x05000fff) AM_RAM
733726   AM_RANGE(0x05200000, 0x052001ff) AM_RAM
734727   AM_RANGE(0x05300000, 0x0530ffff) AM_RAM AM_SHARE("share3") /*Communication area RAM*/
735728   AM_RANGE(0x05ff0000, 0x05ffffff) AM_RAM /*???*/
736   AM_RANGE(0x06000000, 0x06000fff) AM_RAM //UART TX/RX ports
729   AM_RANGE(0x06000000, 0x06000fff) AM_RAM //?
737730   AM_RANGE(0x06100000, 0x06100003) AM_READ_PORT("IN0") AM_WRITENOP
738731   AM_RANGE(0x06100004, 0x06100007) AM_READ_PORT("IN1")
739732   AM_RANGE(0x06100008, 0x0610000b) AM_READ_PORT("IN5")
r20317r20318
11611154   machine().device("soundcpu")->execute().set_input_line(INPUT_LINE_HALT, ASSERT_LINE);
11621155}
11631156
1157
1158static I8237_INTERFACE( dmac_intf )
1159{
1160   DEVCB_NULL, //DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_dma_hrq_changed),
1161   DEVCB_NULL, //DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_tc_w),
1162   DEVCB_NULL, //DEVCB_DRIVER_MEMBER(coolridr_state, coolridr_dma_read_byte),
1163   DEVCB_NULL,//DEVCB_DRIVER_MEMBER(coolridr_state, coolridr_dma_write_byte),
1164   { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL },
1165   { DEVCB_NULL, DEVCB_NULL, DEVCB_NULL, DEVCB_NULL },
1166   { DEVCB_NULL /*DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_dack0_w)*/,
1167     DEVCB_NULL/*DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_dack1_w)*/,
1168     DEVCB_NULL/*DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_dack2_w)*/,
1169     DEVCB_NULL/*DEVCB_DRIVER_LINE_MEMBER(coolridr_state, coolridr_dack3_w)*/ }
1170};
1171
1172#define MAIN_CLOCK XTAL_28_63636MHz
1173
11641174static MACHINE_CONFIG_START( coolridr, coolridr_state )
1165   MCFG_CPU_ADD("maincpu", SH2, 28000000)  // 28 mhz
1175   MCFG_CPU_ADD("maincpu", SH2, MAIN_CLOCK)  // 28 mhz
11661176   MCFG_CPU_PROGRAM_MAP(system_h1_map)
11671177   MCFG_CPU_VBLANK_INT_DRIVER("screen", coolridr_state, system_h1)
11681178
r20317r20318
11731183   MCFG_CPU_PROGRAM_MAP(coolridr_submap)
11741184   MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", coolridr_state, system_h1_sub, "screen", 0, 1)
11751185
1186   MCFG_I8237_ADD("i8237", MAIN_CLOCK, dmac_intf)
1187
11761188   MCFG_GFXDECODE(coolridr)
11771189
11781190   MCFG_SCREEN_ADD("screen", RASTER)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team