Previous 199869 Revisions Next

r30782 Monday 2nd June, 2014 at 19:31:13 UTC by hap
added irq ack
[src/mame/drivers]mole.c

trunk/src/mame/drivers/mole.c
r30781r30782
5959   mole_state(const machine_config &mconfig, device_type type, const char *tag)
6060      : driver_device(mconfig, type, tag),
6161      m_maincpu(*this, "maincpu"),
62      m_gfxdecode(*this, "gfxdecode") { }
62      m_gfxdecode(*this, "gfxdecode")
63   { }
6364
65   required_device<cpu_device> m_maincpu;
66   required_device<gfxdecode_device> m_gfxdecode;
67
6468   /* video-related */
65   tilemap_t    *m_bg_tilemap;
66   int          m_tile_bank;
69   tilemap_t *m_bg_tilemap;
70   int m_tile_bank;
6771
6872   /* memory */
69   UINT16       m_tileram[0x400];
73   UINT16 m_tileram[0x400];
74
7075   DECLARE_WRITE8_MEMBER(mole_tileram_w);
7176   DECLARE_WRITE8_MEMBER(mole_tilebank_w);
77   DECLARE_WRITE8_MEMBER(mole_irqack_w);
7278   DECLARE_WRITE8_MEMBER(mole_flipscreen_w);
7379   DECLARE_READ8_MEMBER(mole_protection_r);
7480   TILE_GET_INFO_MEMBER(get_bg_tile_info);
r30781r30782
7783   virtual void video_start();
7884   DECLARE_PALETTE_INIT(mole);
7985   UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
80   required_device<cpu_device> m_maincpu;
81   required_device<gfxdecode_device> m_gfxdecode;
8286};
8387
8488
r30781r30782
9094
9195PALETTE_INIT_MEMBER(mole_state, mole)
9296{
93   int i;
94
95   for (i = 0; i < 8; i++)
97   for (int i = 0; i < 8; i++)
9698      palette.set_pen_color(i, pal1bit(i >> 0), pal1bit(i >> 2), pal1bit(i >> 1));
9799}
98100
r30781r30782
122124   m_tile_bank = data;
123125}
124126
127WRITE8_MEMBER(mole_state::mole_irqack_w)
128{
129   m_maincpu->set_input_line(0, CLEAR_LINE);
130}
131
125132WRITE8_MEMBER(mole_state::mole_flipscreen_w)
126133{
127134   flip_screen_set(data & 0x01);
r30781r30782
208215   AM_RANGE(0x8c40, 0x8c40) AM_WRITENOP // ???
209216   AM_RANGE(0x8c80, 0x8c80) AM_WRITENOP // ???
210217   AM_RANGE(0x8c81, 0x8c81) AM_WRITENOP // ???
211   AM_RANGE(0x8d00, 0x8d00) AM_READ_PORT("DSW") AM_WRITE(watchdog_reset_w)
218   AM_RANGE(0x8d00, 0x8d00) AM_READ_PORT("DSW") AM_WRITE(mole_irqack_w)
212219   AM_RANGE(0x8d40, 0x8d40) AM_READ_PORT("IN0")
213220   AM_RANGE(0x8d80, 0x8d80) AM_READ_PORT("IN1")
214221   AM_RANGE(0x8dc0, 0x8dc0) AM_READ_PORT("IN2") AM_WRITE(mole_flipscreen_w)
r30781r30782
319326   /* basic machine hardware */
320327   MCFG_CPU_ADD("maincpu", M6502, 4000000) // ???
321328   MCFG_CPU_PROGRAM_MAP(mole_map)
322   MCFG_CPU_VBLANK_INT_DRIVER("screen", mole_state, irq0_line_hold)
329   MCFG_CPU_VBLANK_INT_DRIVER("screen", mole_state, irq0_line_assert)
323330
324
325331   /* video hardware */
326332   MCFG_SCREEN_ADD("screen", RASTER)
327333   MCFG_SCREEN_REFRESH_RATE(60)
328   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
334   MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
329335   MCFG_SCREEN_SIZE(40*8, 25*8)
330336   MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1)
331337   MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team