Previous 199869 Revisions Next

r18580 Wednesday 17th October, 2012 at 19:47:35 UTC by Aaron Giles
More atarigen modernization.
[src/mame/drivers]arcadecl.c atarig1.c atarig42.c atarigt.c atarigx2.c atarisy1.c atarisy2.c badlands.c batman.c blstroid.c cyberbal.c eprom.c foodf.c gauntlet.c harddriv.c klax.c offtwall.c rampart.c relief.c shuuz.c skullxbo.c thunderj.c toobin.c vindictr.c xybots.c
[src/mame/includes]gauntlet.h
[src/mame/machine]atarigen.c atarigen.h harddriv.c
[src/mame/video]atarig1.c atarig42.c atarigt.c atarigx2.c batman.c skullxbo.c

trunk/src/mame/drivers/batman.c
r18579r18580
127127   ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
128128   AM_RANGE(0x000000, 0x0bffff) AM_ROM
129129   AM_RANGE(0x100000, 0x10ffff) AM_MIRROR(0x010000) AM_RAM
130   AM_RANGE(0x120000, 0x120fff) AM_MIRROR(0x01f000) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
130   AM_RANGE(0x120000, 0x120fff) AM_MIRROR(0x01f000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
131131   AM_RANGE(0x260000, 0x260001) AM_MIRROR(0x11ff8c) AM_READ_PORT("260000")
132132   AM_RANGE(0x260002, 0x260003) AM_MIRROR(0x11ff8c) AM_READ_PORT("260002")
133133   AM_RANGE(0x260010, 0x260011) AM_MIRROR(0x11ff8e) AM_READ(special_port2_r)
134134   AM_RANGE(0x260030, 0x260031) AM_MIRROR(0x11ff8e) AM_READ8(sound_r, 0x00ff)
135135   AM_RANGE(0x260040, 0x260041) AM_MIRROR(0x11ff8e) AM_WRITE8(sound_w, 0x00ff)
136136   AM_RANGE(0x260050, 0x260051) AM_MIRROR(0x11ff8e) AM_WRITE(latch_w)
137   AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
137   AM_RANGE(0x260060, 0x260061) AM_MIRROR(0x11ff8e) AM_WRITE(eeprom_enable_w)
138138   AM_RANGE(0x2a0000, 0x2a0001) AM_MIRROR(0x11fffe) AM_WRITE(watchdog_reset16_w)
139   AM_RANGE(0x3e0000, 0x3e0fff) AM_MIRROR(0x100000) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
139   AM_RANGE(0x3e0000, 0x3e0fff) AM_MIRROR(0x100000) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
140140   AM_RANGE(0x3effc0, 0x3effff) AM_MIRROR(0x100000) AM_READWRITE(batman_atarivc_r, batman_atarivc_w) AM_SHARE("atarivc_data")
141   AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x100000) AM_WRITE_LEGACY(atarigen_playfield2_latched_msb_w) AM_SHARE("playfield2")
142   AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x100000) AM_WRITE_LEGACY(atarigen_playfield_latched_lsb_w) AM_SHARE("playfield")
143   AM_RANGE(0x3f4000, 0x3f5fff) AM_MIRROR(0x100000) AM_WRITE_LEGACY(atarigen_playfield_dual_upper_w) AM_SHARE("playfield_up")
141   AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x100000) AM_WRITE(playfield2_latched_msb_w) AM_SHARE("playfield2")
142   AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x100000) AM_WRITE(playfield_latched_lsb_w) AM_SHARE("playfield")
143   AM_RANGE(0x3f4000, 0x3f5fff) AM_MIRROR(0x100000) AM_WRITE(playfield_dual_upper_w) AM_SHARE("playfield_up")
144144   AM_RANGE(0x3f6000, 0x3f7fff) AM_MIRROR(0x100000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
145   AM_RANGE(0x3f8000, 0x3f8eff) AM_MIRROR(0x100000) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
145   AM_RANGE(0x3f8000, 0x3f8eff) AM_MIRROR(0x100000) AM_WRITE(alpha_w) AM_SHARE("alpha")
146146   AM_RANGE(0x3f8f00, 0x3f8f7f) AM_MIRROR(0x100000) AM_SHARE("atarivc_eof")
147147   AM_RANGE(0x3f8f80, 0x3f8fff) AM_MIRROR(0x100000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
148148   AM_RANGE(0x3f0000, 0x3fffff) AM_MIRROR(0x100000) AM_RAM
trunk/src/mame/drivers/gauntlet.c
r18579r18580
300300
301301   /* MBUS */
302302   AM_RANGE(0x800000, 0x801fff) AM_MIRROR(0x2fc000) AM_RAM
303   AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
303   AM_RANGE(0x802000, 0x802fff) AM_MIRROR(0x2fc000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
304304   AM_RANGE(0x803000, 0x803001) AM_MIRROR(0x2fcef0) AM_READ_PORT("803000")
305305   AM_RANGE(0x803002, 0x803003) AM_MIRROR(0x2fcef0) AM_READ_PORT("803002")
306306   AM_RANGE(0x803004, 0x803005) AM_MIRROR(0x2fcef0) AM_READ_PORT("803004")
r18579r18580
309309   AM_RANGE(0x80300e, 0x80300f) AM_MIRROR(0x2fcef0) AM_READ8(sound_r, 0x00ff)
310310   AM_RANGE(0x803100, 0x803101) AM_MIRROR(0x2fce8e) AM_WRITE(watchdog_reset16_w)
311311   AM_RANGE(0x803120, 0x803121) AM_MIRROR(0x2fce8e) AM_WRITE(sound_reset_w)
312   AM_RANGE(0x803140, 0x803141) AM_MIRROR(0x2fce8e) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
313   AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
312   AM_RANGE(0x803140, 0x803141) AM_MIRROR(0x2fce8e) AM_WRITE(video_int_ack_w)
313   AM_RANGE(0x803150, 0x803151) AM_MIRROR(0x2fce8e) AM_WRITE(eeprom_enable_w)
314314   AM_RANGE(0x803170, 0x803171) AM_MIRROR(0x2fce8e) AM_WRITE8(sound_w, 0x00ff)
315315
316316   /* VBUS */
317   AM_RANGE(0x900000, 0x901fff) AM_MIRROR(0x2c8000) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
317   AM_RANGE(0x900000, 0x901fff) AM_MIRROR(0x2c8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
318318   AM_RANGE(0x902000, 0x903fff) AM_MIRROR(0x2c8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
319319   AM_RANGE(0x904000, 0x904fff) AM_MIRROR(0x2c8000) AM_RAM
320320   AM_RANGE(0x905f6e, 0x905f6f) AM_MIRROR(0x2c8000) AM_RAM_WRITE_LEGACY(gauntlet_yscroll_w) AM_SHARE("yscroll")
321   AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
321   AM_RANGE(0x905000, 0x905f7f) AM_MIRROR(0x2c8000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
322322   AM_RANGE(0x905f80, 0x905fff) AM_MIRROR(0x2c8000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
323323   AM_RANGE(0x910000, 0x9107ff) AM_MIRROR(0x2cf800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
324324   AM_RANGE(0x930000, 0x930001) AM_MIRROR(0x2cfffe) AM_WRITE_LEGACY(gauntlet_xscroll_w) AM_SHARE("xscroll")
r18579r18580
508508   /* basic machine hardware */
509509   MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2)
510510   MCFG_CPU_PROGRAM_MAP(main_map)
511   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
511   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
512512
513513   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
514514   MCFG_CPU_PROGRAM_MAP(sound_map)
r18579r18580
16101610 *
16111611 *************************************/
16121612
1613static void gauntlet_common_init(running_machine &machine, int slapstic, int vindctr2)
1613//-------------------------------------------------
1614//  swap_memory: Inverts the bits in a region.
1615//-------------------------------------------------
1616
1617void gauntlet_state::swap_memory(void *ptr1, void *ptr2, int bytes)
16141618{
1615   gauntlet_state *state = machine.driver_data<gauntlet_state>();
1616   UINT8 *rom = state->memregion("maincpu")->base();
1617   state->m_eeprom_default = NULL;
1618   state->slapstic_configure(*machine.device<cpu_device>("maincpu"), 0x038000, 0, slapstic);
1619   UINT8 *p1 = (UINT8 *)ptr1;
1620   UINT8 *p2 = (UINT8 *)ptr2;
1621   while (bytes--)
1622   {
1623      int temp = *p1;
1624      *p1++ = *p2;
1625      *p2++ = temp;
1626   }
1627}
16191628
1629void gauntlet_state::common_init(int slapstic, int vindctr2)
1630{
1631   UINT8 *rom = memregion("maincpu")->base();
1632   m_eeprom_default = NULL;
1633   slapstic_configure(*subdevice<cpu_device>("maincpu"), 0x038000, 0, slapstic);
1634
16201635   /* swap the top and bottom halves of the main CPU ROM images */
1621   atarigen_swap_mem(rom + 0x000000, rom + 0x008000, 0x8000);
1622   atarigen_swap_mem(rom + 0x040000, rom + 0x048000, 0x8000);
1623   atarigen_swap_mem(rom + 0x050000, rom + 0x058000, 0x8000);
1624   atarigen_swap_mem(rom + 0x060000, rom + 0x068000, 0x8000);
1625   atarigen_swap_mem(rom + 0x070000, rom + 0x078000, 0x8000);
1636   swap_memory(rom + 0x000000, rom + 0x008000, 0x8000);
1637   swap_memory(rom + 0x040000, rom + 0x048000, 0x8000);
1638   swap_memory(rom + 0x050000, rom + 0x058000, 0x8000);
1639   swap_memory(rom + 0x060000, rom + 0x068000, 0x8000);
1640   swap_memory(rom + 0x070000, rom + 0x078000, 0x8000);
16261641
16271642   /* indicate whether or not we are vindicators 2 */
1628   state->m_vindctr2_screen_refresh = vindctr2;
1643   m_vindctr2_screen_refresh = vindctr2;
16291644}
16301645
16311646
16321647DRIVER_INIT_MEMBER(gauntlet_state,gauntlet)
16331648{
1634   gauntlet_common_init(machine(), 104, 0);
1649   common_init(104, 0);
16351650}
16361651
16371652
16381653DRIVER_INIT_MEMBER(gauntlet_state,gaunt2p)
16391654{
1640   gauntlet_common_init(machine(), 107, 0);
1655   common_init(107, 0);
16411656}
16421657
16431658
16441659DRIVER_INIT_MEMBER(gauntlet_state,gauntlet2)
16451660{
1646   gauntlet_common_init(machine(), 106, 0);
1661   common_init(106, 0);
16471662}
16481663
16491664
r18579r18580
16531668   UINT8 *data = auto_alloc_array(machine(), UINT8, 0x8000);
16541669   int i;
16551670
1656   gauntlet_common_init(machine(), 118, 1);
1671   common_init(118, 1);
16571672
16581673   /* highly strange -- the address bits on the chip at 2J (and only that
16591674       chip) are scrambled -- this is verified on the schematics! */
trunk/src/mame/drivers/relief.c
r18579r18580
8787{
8888   int result = ioport("260010")->read();
8989   if (m_cpu_to_sound_ready) result ^= 0x0020;
90   if (!(result & 0x0080) || atarigen_get_hblank(*machine().primary_screen)) result ^= 0x0001;
90   if (!(result & 0x0080) || get_hblank(*machine().primary_screen)) result ^= 0x0001;
9191   return result;
9292}
9393
r18579r18580
141141   AM_RANGE(0x140010, 0x140011) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
142142   AM_RANGE(0x140020, 0x140021) AM_WRITE(audio_volume_w)
143143   AM_RANGE(0x140030, 0x140031) AM_WRITE(audio_control_w)
144   AM_RANGE(0x180000, 0x180fff) AM_READWRITE_LEGACY(atarigen_eeprom_upper_r, atarigen_eeprom_w) AM_SHARE("eeprom")
145   AM_RANGE(0x1c0030, 0x1c0031) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
144   AM_RANGE(0x180000, 0x180fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
145   AM_RANGE(0x1c0030, 0x1c0031) AM_WRITE(eeprom_enable_w)
146146   AM_RANGE(0x260000, 0x260001) AM_READ_PORT("260000")
147147   AM_RANGE(0x260002, 0x260003) AM_READ_PORT("260002")
148148   AM_RANGE(0x260010, 0x260011) AM_READ(special_port2_r)
149149   AM_RANGE(0x260012, 0x260013) AM_READ_PORT("260012")
150150   AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(watchdog_reset16_w)
151   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
151   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
152152   AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE(relief_atarivc_r, relief_atarivc_w) AM_SHARE("atarivc_data")
153   AM_RANGE(0x3f0000, 0x3f1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield2_latched_msb_w) AM_SHARE("playfield2")
154   AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_latched_lsb_w) AM_SHARE("playfield")
155   AM_RANGE(0x3f4000, 0x3f5fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_dual_upper_w) AM_SHARE("playfield_up")
153   AM_RANGE(0x3f0000, 0x3f1fff) AM_RAM_WRITE(playfield2_latched_msb_w) AM_SHARE("playfield2")
154   AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM_WRITE(playfield_latched_lsb_w) AM_SHARE("playfield")
155   AM_RANGE(0x3f4000, 0x3f5fff) AM_RAM_WRITE(playfield_dual_upper_w) AM_SHARE("playfield_up")
156156   AM_RANGE(0x3f6000, 0x3f67ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
157157   AM_RANGE(0x3f6800, 0x3f8eff) AM_RAM
158158   AM_RANGE(0x3f8f00, 0x3f8f7f) AM_RAM AM_SHARE("atarivc_eof")
trunk/src/mame/drivers/atarisy2.c
r18579r18580
255255
256256INTERRUPT_GEN_MEMBER(atarisy2_state::vblank_int)
257257{
258
259258   /* clock the VBLANK through */
260259   if (m_interrupt_enable & 8)
261      atarigen_video_int_gen(&device);
260      video_int_gen(device);
262261}
263262
264263
r18579r18580
794793   AM_RANGE(0x1580, 0x1581) AM_MIRROR(0x001e) AM_WRITE(int0_ack_w)
795794   AM_RANGE(0x15a0, 0x15a1) AM_MIRROR(0x001e) AM_WRITE(int1_ack_w)
796795   AM_RANGE(0x15c0, 0x15c1) AM_MIRROR(0x001e) AM_WRITE(scanline_int_ack_w)
797   AM_RANGE(0x15e0, 0x15e1) AM_MIRROR(0x001e) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
796   AM_RANGE(0x15e0, 0x15e1) AM_MIRROR(0x001e) AM_WRITE(video_int_ack_w)
798797   AM_RANGE(0x1600, 0x1601) AM_MIRROR(0x007e) AM_WRITE(int_enable_w)
799798   AM_RANGE(0x1680, 0x1681) AM_MIRROR(0x007e) AM_WRITE8(sound_w, 0x00ff)
800799   AM_RANGE(0x1700, 0x1701) AM_MIRROR(0x007e) AM_WRITE_LEGACY(atarisy2_xscroll_w) AM_SHARE("xscroll")
trunk/src/mame/drivers/eprom.c
r18579r18580
146146
147147static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, eprom_state )
148148   AM_RANGE(0x000000, 0x09ffff) AM_ROM
149   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
149   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
150150   AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
151151   AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
152   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
152   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
153153   AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
154154   AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
155155   AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
156156   AM_RANGE(0x260030, 0x260031) AM_READ8(sound_r, 0x00ff)
157157   AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
158   AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
158   AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
159159   AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
160160   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
161161   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
162162   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
163   AM_RANGE(0x3f0000, 0x3f1fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
163   AM_RANGE(0x3f0000, 0x3f1fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
164164   AM_RANGE(0x3f2000, 0x3f3fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
165   AM_RANGE(0x3f4000, 0x3f4f7f) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
165   AM_RANGE(0x3f4000, 0x3f4f7f) AM_WRITE(alpha_w) AM_SHARE("alpha")
166166   AM_RANGE(0x3f4f80, 0x3f4fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
167   AM_RANGE(0x3f8000, 0x3f9fff) AM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
167   AM_RANGE(0x3f8000, 0x3f9fff) AM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
168168   AM_RANGE(0x3f0000, 0x3f9fff) AM_RAM
169169ADDRESS_MAP_END
170170
171171
172172static ADDRESS_MAP_START( guts_map, AS_PROGRAM, 16, eprom_state )
173173   AM_RANGE(0x000000, 0x09ffff) AM_ROM
174   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
174   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
175175   AM_RANGE(0x16cc00, 0x16cc01) AM_RAM AM_SHARE("sync_data")
176176   AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
177   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
177   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
178178   AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
179179   AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
180180   AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
181181   AM_RANGE(0x260030, 0x260031) AM_READ8(sound_r, 0x00ff)
182182   AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
183   AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
183   AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
184184//  AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
185185   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
186186   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
187187   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM AM_SHARE("paletteram")
188   AM_RANGE(0xff0000, 0xff1fff) AM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
189   AM_RANGE(0xff8000, 0xff9fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
188   AM_RANGE(0xff0000, 0xff1fff) AM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
189   AM_RANGE(0xff8000, 0xff9fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
190190   AM_RANGE(0xffa000, 0xffbfff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
191   AM_RANGE(0xffc000, 0xffcf7f) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
191   AM_RANGE(0xffc000, 0xffcf7f) AM_WRITE(alpha_w) AM_SHARE("alpha")
192192   AM_RANGE(0xffcf80, 0xffcfff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
193193   AM_RANGE(0xff0000, 0xff1fff) AM_RAM
194194   AM_RANGE(0xff8000, 0xffffff) AM_RAM
r18579r18580
210210   AM_RANGE(0x260010, 0x26001f) AM_READ(special_port1_r)
211211   AM_RANGE(0x260020, 0x26002f) AM_READ(adc_r)
212212   AM_RANGE(0x260030, 0x260031) AM_READ8(sound_r, 0x00ff)
213   AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
213   AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
214214   AM_RANGE(0x360010, 0x360011) AM_WRITE(eprom_latch_w)
215215   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
216216   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
r18579r18580
396396   /* basic machine hardware */
397397   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
398398   MCFG_CPU_PROGRAM_MAP(main_map)
399   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
399   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
400400
401401   MCFG_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
402402   MCFG_CPU_PROGRAM_MAP(extra_map)
r18579r18580
429429   /* basic machine hardware */
430430   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
431431   MCFG_CPU_PROGRAM_MAP(main_map)
432   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
432   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
433433
434434   MCFG_QUANTUM_TIME(attotime::from_hz(600))
435435
r18579r18580
459459   /* basic machine hardware */
460460   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
461461   MCFG_CPU_PROGRAM_MAP(guts_map)
462   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
462   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
463463
464464   MCFG_QUANTUM_TIME(attotime::from_hz(600))
465465
trunk/src/mame/drivers/cyberbal.c
r18579r18580
137137
138138static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, cyberbal_state )
139139   AM_RANGE(0x000000, 0x03ffff) AM_ROM
140   AM_RANGE(0xfc0000, 0xfc0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
140   AM_RANGE(0xfc0000, 0xfc0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
141141   AM_RANGE(0xfc8000, 0xfcffff) AM_READ8(sound_r, 0xff00)
142   AM_RANGE(0xfd0000, 0xfd1fff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
142   AM_RANGE(0xfd0000, 0xfd1fff) AM_WRITE(eeprom_enable_w)
143143   AM_RANGE(0xfd2000, 0xfd3fff) AM_WRITE(sound_reset_w)
144144   AM_RANGE(0xfd4000, 0xfd5fff) AM_WRITE(watchdog_reset16_w)
145145   AM_RANGE(0xfd6000, 0xfd7fff) AM_WRITE(p2_reset_w)
r18579r18580
148148   AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
149149   AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_1_w) AM_SHARE("paletteram_1")
150150   AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_0_w) AM_SHARE("paletteram_0")
151   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield2_w)   AM_SHARE("playfield2")
152   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE_LEGACY(atarigen_alpha2_w)       AM_SHARE("alpha2")
151   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield2_w)   AM_SHARE("playfield2")
152   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha2_w)       AM_SHARE("alpha2")
153153   AM_RANGE(0xff3000, 0xff37ff) AM_READWRITE_LEGACY(atarimo_1_spriteram_r, atarimo_1_spriteram_w)
154154   AM_RANGE(0xff3800, 0xff3fff) AM_RAM                                           AM_SHARE("share6")
155   AM_RANGE(0xff4000, 0xff5fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w)    AM_SHARE("playfield")
156   AM_RANGE(0xff6000, 0xff6fff) AM_RAM_WRITE_LEGACY(atarigen_alpha_w)        AM_SHARE("alpha")
155   AM_RANGE(0xff4000, 0xff5fff) AM_RAM_WRITE(playfield_w)    AM_SHARE("playfield")
156   AM_RANGE(0xff6000, 0xff6fff) AM_RAM_WRITE(alpha_w)        AM_SHARE("alpha")
157157   AM_RANGE(0xff7000, 0xff77ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
158158   AM_RANGE(0xff7800, 0xff9fff) AM_RAM                                           AM_SHARE("share10")
159159   AM_RANGE(0xffa000, 0xffbfff) AM_READONLY AM_WRITENOP               AM_SHARE("share11")
r18579r18580
170170
171171static ADDRESS_MAP_START( extra_map, AS_PROGRAM, 16, cyberbal_state )
172172   AM_RANGE(0x000000, 0x03ffff) AM_ROM
173   AM_RANGE(0xfc0000, 0xfdffff) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
173   AM_RANGE(0xfc0000, 0xfdffff) AM_WRITE(video_int_ack_w)
174174   AM_RANGE(0xfe0000, 0xfe0fff) AM_READ(special_port0_r)
175175   AM_RANGE(0xfe1000, 0xfe1fff) AM_READ_PORT("IN1")
176176   AM_RANGE(0xfe8000, 0xfe8fff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_1_w) AM_SHARE("paletteram_1")
177177   AM_RANGE(0xfec000, 0xfecfff) AM_RAM_WRITE_LEGACY(cyberbal_paletteram_0_w) AM_SHARE("paletteram_0")
178   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield2_w)   AM_SHARE("playfield2")
179   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE_LEGACY(atarigen_alpha2_w)       AM_SHARE("alpha2")
178   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield2_w)   AM_SHARE("playfield2")
179   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha2_w)       AM_SHARE("alpha2")
180180   AM_RANGE(0xff3000, 0xff37ff) AM_READWRITE_LEGACY(atarimo_1_spriteram_r, atarimo_1_spriteram_w)
181181   AM_RANGE(0xff3800, 0xff3fff) AM_RAM                                           AM_SHARE("share6")
182   AM_RANGE(0xff4000, 0xff5fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w)    AM_SHARE("playfield")
183   AM_RANGE(0xff6000, 0xff6fff) AM_RAM_WRITE_LEGACY(atarigen_alpha_w)        AM_SHARE("alpha")
182   AM_RANGE(0xff4000, 0xff5fff) AM_RAM_WRITE(playfield_w)    AM_SHARE("playfield")
183   AM_RANGE(0xff6000, 0xff6fff) AM_RAM_WRITE(alpha_w)        AM_SHARE("alpha")
184184   AM_RANGE(0xff7000, 0xff77ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
185185   AM_RANGE(0xff7800, 0xff9fff) AM_RAM                                           AM_SHARE("share10")
186186   AM_RANGE(0xffa000, 0xffbfff) AM_RAM                                           AM_SHARE("share11")
r18579r18580
241241   AM_RANGE(0xfc2000, 0xfc2003) AM_READ_PORT("IN1")
242242   AM_RANGE(0xfc4000, 0xfc4003) AM_READ(special_port2_r)
243243   AM_RANGE(0xfc6000, 0xfc6003) AM_READ8(sound_r, 0xff00)
244   AM_RANGE(0xfc8000, 0xfc8fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
245   AM_RANGE(0xfca000, 0xfcafff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
246   AM_RANGE(0xfd0000, 0xfd0003) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
244   AM_RANGE(0xfc8000, 0xfc8fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
245   AM_RANGE(0xfca000, 0xfcafff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
246   AM_RANGE(0xfd0000, 0xfd0003) AM_WRITE(eeprom_enable_w)
247247   AM_RANGE(0xfd2000, 0xfd2003) AM_WRITE(sound_reset_w)
248248   AM_RANGE(0xfd4000, 0xfd4003) AM_WRITE(watchdog_reset16_w)
249   AM_RANGE(0xfd6000, 0xfd6003) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
249   AM_RANGE(0xfd6000, 0xfd6003) AM_WRITE(video_int_ack_w)
250250   AM_RANGE(0xfd8000, 0xfd8003) AM_WRITE8(sound_w, 0xff00)
251251   AM_RANGE(0xfe0000, 0xfe0003) AM_READ(sound_state_r)
252   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
253   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
252   AM_RANGE(0xff0000, 0xff1fff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
253   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
254254   AM_RANGE(0xff3000, 0xff37ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
255255   AM_RANGE(0xff3800, 0xffffff) AM_RAM
256256ADDRESS_MAP_END
r18579r18580
416416
417417   MCFG_CPU_ADD("extra", M68000, ATARI_CLOCK_14MHz/2)
418418   MCFG_CPU_PROGRAM_MAP(extra_map)
419   MCFG_CPU_VBLANK_INT("lscreen", atarigen_video_int_gen)   /* or is it "right?" */
419   MCFG_DEVICE_VBLANK_INT_DRIVER("lscreen", atarigen_state, video_int_gen)   /* or is it "right?" */
420420
421421   MCFG_CPU_ADD("dac", M68000, ATARI_CLOCK_14MHz/2)
422422   MCFG_CPU_PROGRAM_MAP(sound_68k_map)
r18579r18580
468468   /* basic machine hardware */
469469   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
470470   MCFG_CPU_PROGRAM_MAP(cyberbal2p_map)
471   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
471   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
472472
473473   MCFG_MACHINE_START_OVERRIDE(cyberbal_state,cyberbal)
474474   MCFG_MACHINE_RESET_OVERRIDE(cyberbal_state,cyberbal2p)
trunk/src/mame/drivers/badlands.c
r18579r18580
235235         m_pedal_value[i]++;
236236   }
237237
238   atarigen_video_int_gen(&device);
238   video_int_gen(device);
239239}
240240
241241
r18579r18580
371371static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, badlands_state )
372372   AM_RANGE(0x000000, 0x03ffff) AM_ROM
373373   AM_RANGE(0xfc0000, 0xfc1fff) AM_READ(sound_busy_r) AM_WRITE(sound_reset_w)
374   AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
374   AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
375375   AM_RANGE(0xfe0000, 0xfe1fff) AM_WRITE(watchdog_reset16_w)
376   AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
376   AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE(video_int_ack_w)
377377   AM_RANGE(0xfe4000, 0xfe5fff) AM_READ_PORT("FE4000")
378378   AM_RANGE(0xfe6000, 0xfe6001) AM_READ_PORT("FE6000")
379379   AM_RANGE(0xfe6002, 0xfe6003) AM_READ_PORT("FE6002")
r18579r18580
382382   AM_RANGE(0xfe8000, 0xfe9fff) AM_WRITE8(sound_w, 0xff00)
383383   AM_RANGE(0xfea000, 0xfebfff) AM_READ8(sound_r, 0xff00)
384384   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE_LEGACY(badlands_pf_bank_w)
385   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
386   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE_LEGACY(atarigen_expanded_666_paletteram_w) AM_SHARE("paletteram")
387   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
385   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
386   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
387   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
388388   AM_RANGE(0xfff000, 0xfff1ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_expanded_w)
389389   AM_RANGE(0xfff200, 0xffffff) AM_RAM
390390ADDRESS_MAP_END
r18579r18580
637637   AM_RANGE(0xfe4006, 0xfe4007) AM_READ(badlandsb_unk_r )
638638
639639
640   AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
640   AM_RANGE(0xfd0000, 0xfd1fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
641641   //AM_RANGE(0xfe0000, 0xfe1fff) AM_WRITE(watchdog_reset16_w)
642   AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
642   AM_RANGE(0xfe2000, 0xfe3fff) AM_WRITE(video_int_ack_w)
643643
644644   AM_RANGE(0xfec000, 0xfedfff) AM_WRITE_LEGACY(badlands_pf_bank_w)
645   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
646   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE_LEGACY(atarigen_expanded_666_paletteram_w) AM_SHARE("paletteram")
647   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
645   AM_RANGE(0xfee000, 0xfeffff) AM_WRITE(eeprom_enable_w)
646   AM_RANGE(0xffc000, 0xffc3ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
647   AM_RANGE(0xffe000, 0xffefff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
648648   AM_RANGE(0xfff000, 0xfff1ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_expanded_w)
649649   AM_RANGE(0xfff200, 0xffffff) AM_RAM
650650ADDRESS_MAP_END
trunk/src/mame/drivers/offtwall.c
r18579r18580
264264static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, offtwall_state )
265265   AM_RANGE(0x000000, 0x037fff) AM_ROM
266266   AM_RANGE(0x038000, 0x03ffff) AM_READ(bankrom_r) AM_REGION("maincpu", 0x38000) AM_SHARE("bankrom_base")
267   AM_RANGE(0x120000, 0x120fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
267   AM_RANGE(0x120000, 0x120fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
268268   AM_RANGE(0x260000, 0x260001) AM_READ_PORT("260000")
269269   AM_RANGE(0x260002, 0x260003) AM_READ_PORT("260002")
270270   AM_RANGE(0x260010, 0x260011) AM_READ(special_port3_r)
r18579r18580
275275   AM_RANGE(0x260030, 0x260031) AM_READ8(sound_r, 0x00ff)
276276   AM_RANGE(0x260040, 0x260041) AM_WRITE8(sound_w, 0x00ff)
277277   AM_RANGE(0x260050, 0x260051) AM_WRITE(io_latch_w)
278   AM_RANGE(0x260060, 0x260061) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
278   AM_RANGE(0x260060, 0x260061) AM_WRITE(eeprom_enable_w)
279279   AM_RANGE(0x2a0000, 0x2a0001) AM_WRITE(watchdog_reset16_w)
280   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
280   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
281281   AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE(offtwall_atarivc_r, offtwall_atarivc_w) AM_SHARE("atarivc_data")
282   AM_RANGE(0x3f4000, 0x3f5eff) AM_RAM_WRITE_LEGACY(atarigen_playfield_latched_msb_w) AM_SHARE("playfield")
282   AM_RANGE(0x3f4000, 0x3f5eff) AM_RAM_WRITE(playfield_latched_msb_w) AM_SHARE("playfield")
283283   AM_RANGE(0x3f5f00, 0x3f5f7f) AM_RAM AM_SHARE("atarivc_eof")
284284   AM_RANGE(0x3f5f80, 0x3f5fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
285   AM_RANGE(0x3f6000, 0x3f7fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
285   AM_RANGE(0x3f6000, 0x3f7fff) AM_RAM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
286286   AM_RANGE(0x3f8000, 0x3fcfff) AM_RAM
287287   AM_RANGE(0x3fd000, 0x3fd7ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
288288   AM_RANGE(0x3fd800, 0x3fffff) AM_RAM
trunk/src/mame/drivers/klax.c
r18579r18580
4848WRITE16_MEMBER(klax_state::interrupt_ack_w)
4949{
5050   scanline_int_ack_w(space, offset, data, mem_mask);
51   atarigen_video_int_ack_w(space, offset, data, mem_mask);
51   video_int_ack_w(space, offset, data, mem_mask);
5252}
5353
5454
r18579r18580
7575
7676static ADDRESS_MAP_START( klax_map, AS_PROGRAM, 16, klax_state )
7777   AM_RANGE(0x000000, 0x03ffff) AM_ROM
78   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r,atarigen_eeprom_w) AM_SHARE("eeprom")
79   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
78   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
79   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
8080   AM_RANGE(0x260000, 0x260001) AM_READ_PORT("P1") AM_WRITE_LEGACY(klax_latch_w)
8181   AM_RANGE(0x260002, 0x260003) AM_READ_PORT("P2")
8282   AM_RANGE(0x270000, 0x270001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
8383   AM_RANGE(0x2e0000, 0x2e0001) AM_WRITE(watchdog_reset16_w)
8484   AM_RANGE(0x360000, 0x360001) AM_WRITE(interrupt_ack_w)
85   AM_RANGE(0x3e0000, 0x3e07ff) AM_RAM_WRITE_LEGACY(atarigen_expanded_666_paletteram_w) AM_SHARE("paletteram")
86   AM_RANGE(0x3f0000, 0x3f0f7f) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
85   AM_RANGE(0x3e0000, 0x3e07ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
86   AM_RANGE(0x3f0000, 0x3f0f7f) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
8787   AM_RANGE(0x3f0f80, 0x3f0fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
88   AM_RANGE(0x3f1000, 0x3f1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
88   AM_RANGE(0x3f1000, 0x3f1fff) AM_RAM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
8989   AM_RANGE(0x3f2000, 0x3f27ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
9090   AM_RANGE(0x3f2800, 0x3f3fff) AM_RAM
9191ADDRESS_MAP_END
r18579r18580
160160   /* basic machine hardware */
161161   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
162162   MCFG_CPU_PROGRAM_MAP(klax_map)
163   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
163   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
164164
165165   MCFG_MACHINE_RESET_OVERRIDE(klax_state,klax)
166166   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/shuuz.c
r18579r18580
113113{
114114   int result = ioport("SYSTEM")->read();
115115
116   if ((result & 0x0800) && atarigen_get_hblank(*machine().primary_screen))
116   if ((result & 0x0800) && get_hblank(*machine().primary_screen))
117117      result &= ~0x0800;
118118
119119   return result;
r18579r18580
129129
130130static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, shuuz_state )
131131   AM_RANGE(0x000000, 0x03ffff) AM_ROM
132   AM_RANGE(0x100000, 0x100fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
133   AM_RANGE(0x101000, 0x101fff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
132   AM_RANGE(0x100000, 0x100fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
133   AM_RANGE(0x101000, 0x101fff) AM_WRITE(eeprom_enable_w)
134134   AM_RANGE(0x102000, 0x102001) AM_WRITE(watchdog_reset16_w)
135135   AM_RANGE(0x103000, 0x103003) AM_READ(leta_r)
136136   AM_RANGE(0x105000, 0x105001) AM_READWRITE(special_port0_r, latch_w)
137137   AM_RANGE(0x105002, 0x105003) AM_READ_PORT("BUTTONS")
138138   AM_RANGE(0x106000, 0x106001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0x00ff)
139139   AM_RANGE(0x107000, 0x107007) AM_NOP
140   AM_RANGE(0x3e0000, 0x3e087f) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
140   AM_RANGE(0x3e0000, 0x3e087f) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
141141   AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE(shuuz_atarivc_r, shuuz_atarivc_w) AM_SHARE("atarivc_data")
142   AM_RANGE(0x3f4000, 0x3f5eff) AM_RAM_WRITE_LEGACY(atarigen_playfield_latched_msb_w) AM_SHARE("playfield")
142   AM_RANGE(0x3f4000, 0x3f5eff) AM_RAM_WRITE(playfield_latched_msb_w) AM_SHARE("playfield")
143143   AM_RANGE(0x3f5f00, 0x3f5f7f) AM_RAM AM_SHARE("atarivc_eof")
144144   AM_RANGE(0x3f5f80, 0x3f5fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
145   AM_RANGE(0x3f6000, 0x3f7fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
145   AM_RANGE(0x3f6000, 0x3f7fff) AM_RAM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
146146   AM_RANGE(0x3f8000, 0x3fcfff) AM_RAM
147147   AM_RANGE(0x3fd000, 0x3fd3ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
148148   AM_RANGE(0x3fd400, 0x3fffff) AM_RAM
trunk/src/mame/drivers/xybots.c
r18579r18580
7676   AM_RANGE(0x000000, 0x007fff) AM_MIRROR(0x7c0000) AM_ROM
7777   AM_RANGE(0x008000, 0x00ffff) AM_MIRROR(0x7c0000) AM_ROM   /* slapstic maps here */
7878   AM_RANGE(0x010000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM
79   AM_RANGE(0xff8000, 0xff8fff) AM_MIRROR(0x7f8000) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
79   AM_RANGE(0xff8000, 0xff8fff) AM_MIRROR(0x7f8000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
8080   AM_RANGE(0xff9000, 0xffadff) AM_MIRROR(0x7f8000) AM_RAM
8181   AM_RANGE(0xffae00, 0xffafff) AM_MIRROR(0x7f8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
82   AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
82   AM_RANGE(0xffb000, 0xffbfff) AM_MIRROR(0x7f8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
8383   AM_RANGE(0xffc000, 0xffc7ff) AM_MIRROR(0x7f8800) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
84   AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
84   AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
8585   AM_RANGE(0xffe000, 0xffe0ff) AM_MIRROR(0x7f8000) AM_READ8(sound_r, 0x00ff)
8686   AM_RANGE(0xffe100, 0xffe1ff) AM_MIRROR(0x7f8000) AM_READ_PORT("FFE100")
8787   AM_RANGE(0xffe200, 0xffe2ff) AM_MIRROR(0x7f8000) AM_READ(special_port1_r)
88   AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
88   AM_RANGE(0xffe800, 0xffe8ff) AM_MIRROR(0x7f8000) AM_WRITE(eeprom_enable_w)
8989   AM_RANGE(0xffe900, 0xffe9ff) AM_MIRROR(0x7f8000) AM_WRITE8(sound_w, 0x00ff)
9090   AM_RANGE(0xffea00, 0xffeaff) AM_MIRROR(0x7f8000) AM_WRITE(watchdog_reset16_w)
91   AM_RANGE(0xffeb00, 0xffebff) AM_MIRROR(0x7f8000) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
91   AM_RANGE(0xffeb00, 0xffebff) AM_MIRROR(0x7f8000) AM_WRITE(video_int_ack_w)
9292   AM_RANGE(0xffee00, 0xffeeff) AM_MIRROR(0x7f8000) AM_WRITE(sound_reset_w)
9393ADDRESS_MAP_END
9494
r18579r18580
185185   /* basic machine hardware */
186186   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
187187   MCFG_CPU_PROGRAM_MAP(main_map)
188   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
188   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
189189
190190   MCFG_MACHINE_RESET_OVERRIDE(xybots_state,xybots)
191191   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/toobin.c
r18579r18580
8181READ16_MEMBER(toobin_state::special_port1_r)
8282{
8383   int result = ioport("FF9000")->read();
84   if (atarigen_get_hblank(*machine().primary_screen)) result ^= 0x8000;
84   if (get_hblank(*machine().primary_screen)) result ^= 0x8000;
8585   if (m_cpu_to_sound_ready) result ^= 0x2000;
8686   return result;
8787}
r18579r18580
9898static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, toobin_state )
9999   ADDRESS_MAP_GLOBAL_MASK(0xc7ffff)
100100   AM_RANGE(0x000000, 0x07ffff) AM_ROM
101   AM_RANGE(0xc00000, 0xc07fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_large_w) AM_SHARE("playfield")
102   AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
101   AM_RANGE(0xc00000, 0xc07fff) AM_RAM_WRITE(playfield_large_w) AM_SHARE("playfield")
102   AM_RANGE(0xc08000, 0xc097ff) AM_MIRROR(0x046000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
103103   AM_RANGE(0xc09800, 0xc09fff) AM_MIRROR(0x046000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
104104   AM_RANGE(0xc10000, 0xc107ff) AM_MIRROR(0x047800) AM_RAM_WRITE_LEGACY(toobin_paletteram_w) AM_SHARE("paletteram")
105105   AM_RANGE(0xff6000, 0xff6001) AM_READNOP      /* who knows? read at controls time */
r18579r18580
110110   AM_RANGE(0xff8380, 0xff8381) AM_MIRROR(0x45003e) AM_READWRITE_LEGACY(atarimo_0_slipram_r, toobin_slip_w)
111111   AM_RANGE(0xff83c0, 0xff83c1) AM_MIRROR(0x45003e) AM_WRITE(scanline_int_ack_w)
112112   AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x4500fe) AM_WRITE(sound_reset_w)
113   AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
113   AM_RANGE(0xff8500, 0xff8501) AM_MIRROR(0x4500fe) AM_WRITE(eeprom_enable_w)
114114   AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x4500fe) AM_WRITE_LEGACY(toobin_xscroll_w) AM_SHARE("xscroll")
115115   AM_RANGE(0xff8700, 0xff8701) AM_MIRROR(0x4500fe) AM_WRITE_LEGACY(toobin_yscroll_w) AM_SHARE("yscroll")
116116   AM_RANGE(0xff8800, 0xff8801) AM_MIRROR(0x4507fe) AM_READ_PORT("FF8800")
117117   AM_RANGE(0xff9000, 0xff9001) AM_MIRROR(0x4507fe) AM_READ(special_port1_r)
118118   AM_RANGE(0xff9800, 0xff9801) AM_MIRROR(0x4507fe) AM_READ8(sound_r, 0x00ff)
119   AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
119   AM_RANGE(0xffa000, 0xffafff) AM_MIRROR(0x451000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
120120   AM_RANGE(0xffc000, 0xffffff) AM_MIRROR(0x450000) AM_RAM
121121ADDRESS_MAP_END
122122
trunk/src/mame/drivers/atarigt.c
r18579r18580
7171
7272static void cage_irq_callback(running_machine &machine, int reason)
7373{
74   atarigen_state *atarigen = machine.driver_data<atarigen_state>();
7475   address_space &space = machine.device("maincpu")->memory().space(AS_PROGRAM);
7576
7677   if (reason)
77      atarigen_sound_int_gen(machine.device("maincpu"));
78      atarigen->sound_int_gen(*machine.device("maincpu"));
7879   else
79      atarigen_sound_int_ack_w(space,0,0,0xffff);
80      atarigen->sound_int_ack_w(space,0,0);
8081}
8182
8283
r18579r18580
593594   AM_RANGE(0xc00000, 0xc00003) AM_READWRITE(sound_data_r, sound_data_w)
594595   AM_RANGE(0xd00014, 0xd00017) AM_READ(analog_port0_r)
595596   AM_RANGE(0xd0001c, 0xd0001f) AM_READ(analog_port1_r)
596   AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE_LEGACY(atarigen_eeprom_upper32_r, atarigen_eeprom32_w) AM_SHARE("eeprom")
597   AM_RANGE(0xd40000, 0xd4ffff) AM_WRITE_LEGACY(atarigen_eeprom_enable32_w)
598   AM_RANGE(0xd72000, 0xd75fff) AM_WRITE_LEGACY(atarigen_playfield32_w) AM_SHARE("playfield32")
599   AM_RANGE(0xd76000, 0xd76fff) AM_WRITE_LEGACY(atarigen_alpha32_w) AM_SHARE("alpha32")
597   AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(eeprom_upper32_r, eeprom32_w) AM_SHARE("eeprom")
598   AM_RANGE(0xd40000, 0xd4ffff) AM_WRITE16(eeprom_enable_w, 0xffffffff)
599   AM_RANGE(0xd72000, 0xd75fff) AM_WRITE(playfield32_w) AM_SHARE("playfield32")
600   AM_RANGE(0xd76000, 0xd76fff) AM_WRITE(alpha32_w) AM_SHARE("alpha32")
600601   AM_RANGE(0xd78000, 0xd78fff) AM_DEVREADWRITE_LEGACY("rle", atarirle_spriteram32_r, atarirle_spriteram32_w)
601602   AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
602603   AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
r18579r18580
604605   AM_RANGE(0xe04000, 0xe04003) AM_WRITE(led_w)
605606   AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
606607   AM_RANGE(0xe0a000, 0xe0a003) AM_WRITE16(scanline_int_ack_w, 0xffffffff)
607   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE_LEGACY(atarigen_video_int_ack32_w)
608   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE16(video_int_ack_w, 0xffffffff)
608609   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITENOP//watchdog_reset_w },
609610   AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2")
610611   AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r)
r18579r18580
801802   /* basic machine hardware */
802803   MCFG_CPU_ADD("maincpu", M68EC020, ATARI_CLOCK_50MHz/2)
803804   MCFG_CPU_PROGRAM_MAP(main_map)
804   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
805   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
805806   MCFG_CPU_PERIODIC_INT_DRIVER(atarigen_state, scanline_int_gen, 250)
806807
807808   MCFG_MACHINE_RESET_OVERRIDE(atarigt_state,atarigt)
r18579r18580
12471248   if (pc == 0x25834 || pc == 0x25860)
12481249      logerror("%06X:PFW@%06X = %08X & %08X (src=%06X)\n", space.device().safe_pc(), 0xd72000 + offset*4, data, mem_mask, (UINT32)space.device().state().state_int(M68K_A3) - 2);
12491250
1250   atarigen_playfield32_w(space, offset, data, mem_mask);
1251   playfield32_w(space, offset, data, mem_mask);
12511252}
12521253
12531254DRIVER_INIT_MEMBER(atarigt_state,tmek)
trunk/src/mame/drivers/arcadecl.c
r18579r18580
145145static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, arcadecl_state )
146146   AM_RANGE(0x000000, 0x0fffff) AM_ROM
147147   AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_SHARE("bitmap")
148   AM_RANGE(0x3c0000, 0x3c07ff) AM_RAM_WRITE_LEGACY(atarigen_expanded_666_paletteram_w) AM_SHARE("paletteram")
148   AM_RANGE(0x3c0000, 0x3c07ff) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
149149   AM_RANGE(0x3e0000, 0x3e07ff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
150150   AM_RANGE(0x3e0800, 0x3effbf) AM_RAM
151151   AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
r18579r18580
158158   AM_RANGE(0x640024, 0x640025) AM_READ_PORT("TRACKX1")
159159   AM_RANGE(0x640026, 0x640027) AM_READ_PORT("TRACKY1")
160160   AM_RANGE(0x640040, 0x64004f) AM_WRITE(latch_w)
161   AM_RANGE(0x640060, 0x64006f) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
162   AM_RANGE(0x641000, 0x641fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
161   AM_RANGE(0x640060, 0x64006f) AM_WRITE(eeprom_enable_w)
162   AM_RANGE(0x641000, 0x641fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
163163   AM_RANGE(0x642000, 0x642001) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
164164   AM_RANGE(0x646000, 0x646fff) AM_WRITE(scanline_int_ack_w)
165165   AM_RANGE(0x647000, 0x647fff) AM_WRITE(watchdog_reset16_w)
r18579r18580
319319   /* basic machine hardware */
320320   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK)
321321   MCFG_CPU_PROGRAM_MAP(main_map)
322   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
322   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
323323
324324   MCFG_MACHINE_RESET_OVERRIDE(arcadecl_state,arcadecl)
325325   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/rampart.c
r18579r18580
128128   AM_RANGE(0x140000, 0x147fff) AM_MIRROR(0x438000) AM_ROM /* slapstic goes here */
129129   AM_RANGE(0x200000, 0x21ffff) AM_RAM AM_SHARE("bitmap")
130130   AM_RANGE(0x220000, 0x3bffff) AM_WRITENOP   /* the code blasts right through this when initializing */
131   AM_RANGE(0x3c0000, 0x3c07ff) AM_MIRROR(0x019800) AM_RAM_WRITE_LEGACY(atarigen_expanded_666_paletteram_w) AM_SHARE("paletteram")
131   AM_RANGE(0x3c0000, 0x3c07ff) AM_MIRROR(0x019800) AM_RAM_WRITE(expanded_paletteram_666_w) AM_SHARE("paletteram")
132132   AM_RANGE(0x3e0000, 0x3e07ff) AM_MIRROR(0x010000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
133133   AM_RANGE(0x3e0800, 0x3e3f3f) AM_MIRROR(0x010000) AM_RAM
134134   AM_RANGE(0x3e3f40, 0x3e3f7f) AM_MIRROR(0x010000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
135135   AM_RANGE(0x3e3f80, 0x3effff) AM_MIRROR(0x010000) AM_RAM
136136   AM_RANGE(0x460000, 0x460001) AM_MIRROR(0x019ffe) AM_DEVREADWRITE8("oki", okim6295_device, read, write, 0xff00)
137137   AM_RANGE(0x480000, 0x480003) AM_MIRROR(0x019ffc) AM_DEVWRITE8_LEGACY("ymsnd", ym2413_w, 0xff00)
138   AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
139   AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
138   AM_RANGE(0x500000, 0x500fff) AM_MIRROR(0x019000) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
139   AM_RANGE(0x5a6000, 0x5a6001) AM_MIRROR(0x019ffe) AM_WRITE(eeprom_enable_w)
140140   AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffe) AM_WRITE(latch_w)
141141   AM_RANGE(0x640000, 0x640001) AM_MIRROR(0x019ffc) AM_READ_PORT("IN0")
142142   AM_RANGE(0x640002, 0x640003) AM_MIRROR(0x019ffc) AM_READ_PORT("IN1")
r18579r18580
336336   /* basic machine hardware */
337337   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2)
338338   MCFG_CPU_PROGRAM_MAP(main_map)
339   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
339   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
340340
341341   MCFG_MACHINE_RESET_OVERRIDE(rampart_state,rampart)
342342   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/skullxbo.c
r18579r18580
8888{
8989   int temp = ioport("FF5802")->read();
9090   if (m_cpu_to_sound_ready) temp ^= 0x0040;
91   if (atarigen_get_hblank(*machine().primary_screen)) temp ^= 0x0010;
91   if (get_hblank(*machine().primary_screen)) temp ^= 0x0010;
9292   return temp;
9393}
9494
r18579r18580
117117   AM_RANGE(0x000000, 0x07ffff) AM_ROM
118118   AM_RANGE(0xff0000, 0xff07ff) AM_WRITE_LEGACY(skullxbo_mobmsb_w)
119119   AM_RANGE(0xff0800, 0xff0bff) AM_WRITE(skullxbo_halt_until_hblank_0_w)
120   AM_RANGE(0xff0c00, 0xff0fff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
121   AM_RANGE(0xff1000, 0xff13ff) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
120   AM_RANGE(0xff0c00, 0xff0fff) AM_WRITE(eeprom_enable_w)
121   AM_RANGE(0xff1000, 0xff13ff) AM_WRITE(video_int_ack_w)
122122   AM_RANGE(0xff1400, 0xff17ff) AM_WRITE8(sound_w, 0x00ff)
123123   AM_RANGE(0xff1800, 0xff1bff) AM_WRITE(sound_reset_w)
124124   AM_RANGE(0xff1c00, 0xff1c7f) AM_WRITE_LEGACY(skullxbo_playfieldlatch_w)
r18579r18580
129129   AM_RANGE(0xff1e80, 0xff1eff) AM_WRITE_LEGACY(skullxbo_xscroll_w)
130130   AM_RANGE(0xff1f00, 0xff1f7f) AM_WRITE(scanline_int_ack_w)
131131   AM_RANGE(0xff1f80, 0xff1fff) AM_WRITE(watchdog_reset16_w)
132   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
132   AM_RANGE(0xff2000, 0xff2fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
133133   AM_RANGE(0xff4000, 0xff47ff) AM_WRITE_LEGACY(skullxbo_yscroll_w) AM_SHARE("yscroll")
134134   AM_RANGE(0xff4800, 0xff4fff) AM_WRITE(skullxbo_mobwr_w)
135   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE_LEGACY(atarigen_eeprom_w) AM_SHARE("eeprom")
135   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(eeprom_w) AM_SHARE("eeprom")
136136   AM_RANGE(0xff5000, 0xff5001) AM_READ8(sound_r, 0x00ff)
137137   AM_RANGE(0xff5800, 0xff5801) AM_READ_PORT("FF5800")
138138   AM_RANGE(0xff5802, 0xff5803) AM_READ(special_port1_r)
139   AM_RANGE(0xff6000, 0xff6fff) AM_READ_LEGACY(atarigen_eeprom_r)
140   AM_RANGE(0xff8000, 0xff9fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_latched_lsb_w) AM_SHARE("playfield")
141   AM_RANGE(0xffa000, 0xffbfff) AM_RAM_WRITE_LEGACY(atarigen_playfield_upper_w) AM_SHARE("playfield_up")
142   AM_RANGE(0xffc000, 0xffcf7f) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
139   AM_RANGE(0xff6000, 0xff6fff) AM_READ(eeprom_r)
140   AM_RANGE(0xff8000, 0xff9fff) AM_RAM_WRITE(playfield_latched_lsb_w) AM_SHARE("playfield")
141   AM_RANGE(0xffa000, 0xffbfff) AM_RAM_WRITE(playfield_upper_w) AM_SHARE("playfield_up")
142   AM_RANGE(0xffc000, 0xffcf7f) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
143143   AM_RANGE(0xffcf80, 0xffcfff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
144144   AM_RANGE(0xffd000, 0xffdfff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
145145   AM_RANGE(0xffe000, 0xffffff) AM_RAM
r18579r18580
247247   /* basic machine hardware */
248248   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
249249   MCFG_CPU_PROGRAM_MAP(main_map)
250   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
250   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
251251
252252   MCFG_MACHINE_RESET_OVERRIDE(skullxbo_state,skullxbo)
253253   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/atarisy1.c
r18579r18580
468468   AM_RANGE(0x840000, 0x840001) AM_WRITE_LEGACY(atarisy1_priority_w)
469469   AM_RANGE(0x860000, 0x860001) AM_WRITE_LEGACY(atarisy1_bankselect_w) AM_SHARE("bankselect")
470470   AM_RANGE(0x880000, 0x880001) AM_WRITE(watchdog_reset16_w)
471   AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
472   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
471   AM_RANGE(0x8a0000, 0x8a0001) AM_WRITE(video_int_ack_w)
472   AM_RANGE(0x8c0000, 0x8c0001) AM_WRITE(eeprom_enable_w)
473473   AM_RANGE(0x900000, 0x9fffff) AM_RAM
474   AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
474   AM_RANGE(0xa00000, 0xa01fff) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
475475   AM_RANGE(0xa02000, 0xa02fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarisy1_spriteram_w)
476   AM_RANGE(0xa03000, 0xa03fff) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
476   AM_RANGE(0xa03000, 0xa03fff) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
477477   AM_RANGE(0xb00000, 0xb007ff) AM_RAM_WRITE(paletteram_IIIIRRRRGGGGBBBB_word_w) AM_SHARE("paletteram")
478   AM_RANGE(0xf00000, 0xf00fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
478   AM_RANGE(0xf00000, 0xf00fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
479479   AM_RANGE(0xf20000, 0xf20007) AM_READ(trakball_r)
480480   AM_RANGE(0xf40000, 0xf4001f) AM_READWRITE(joystick_r, joystick_w)
481481   AM_RANGE(0xf60000, 0xf60003) AM_READ(port4_r)
r18579r18580
742742   /* basic machine hardware */
743743   MCFG_CPU_ADD("maincpu", M68010, ATARI_CLOCK_14MHz/2)
744744   MCFG_CPU_PROGRAM_MAP(main_map)
745   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
745   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
746746
747747   MCFG_CPU_ADD("audiocpu", M6502, ATARI_CLOCK_14MHz/8)
748748   MCFG_CPU_PROGRAM_MAP(sound_map)
trunk/src/mame/drivers/atarig42.c
r18579r18580
343343   AM_RANGE(0xe00030, 0xe00031) AM_READ8(sound_r, 0x00ff)
344344   AM_RANGE(0xe00040, 0xe00041) AM_WRITE8(sound_w, 0x00ff)
345345   AM_RANGE(0xe00050, 0xe00051) AM_WRITE(io_latch_w)
346   AM_RANGE(0xe00060, 0xe00061) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
347   AM_RANGE(0xe03000, 0xe03001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
346   AM_RANGE(0xe00060, 0xe00061) AM_WRITE(eeprom_enable_w)
347   AM_RANGE(0xe03000, 0xe03001) AM_WRITE(video_int_ack_w)
348348   AM_RANGE(0xe03800, 0xe03801) AM_WRITE(watchdog_reset16_w)
349349   AM_RANGE(0xe80000, 0xe80fff) AM_RAM
350350   AM_RANGE(0xf40000, 0xf40001) AM_READ_LEGACY(asic65_io_r)
351351   AM_RANGE(0xf60000, 0xf60001) AM_READ_LEGACY(asic65_r)
352352   AM_RANGE(0xf80000, 0xf80003) AM_WRITE_LEGACY(asic65_data_w)
353   AM_RANGE(0xfa0000, 0xfa0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
354   AM_RANGE(0xfc0000, 0xfc0fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
353   AM_RANGE(0xfa0000, 0xfa0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
354   AM_RANGE(0xfc0000, 0xfc0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
355355   AM_RANGE(0xff0000, 0xff0fff) AM_DEVREADWRITE_LEGACY("rle", atarirle_spriteram_r, atarirle_spriteram_w)
356   AM_RANGE(0xff2000, 0xff5fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
357   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
356   AM_RANGE(0xff2000, 0xff5fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
357   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(alpha_w) AM_SHARE("alpha")
358358   AM_RANGE(0xff7000, 0xff7001) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
359359   AM_RANGE(0xff0000, 0xffffff) AM_RAM
360360ADDRESS_MAP_END
r18579r18580
548548   /* basic machine hardware */
549549   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz)
550550   MCFG_CPU_PROGRAM_MAP(main_map)
551   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
551   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
552552
553553   /* ASIC65 */
554554   MCFG_FRAGMENT_ADD(asic65)
trunk/src/mame/drivers/vindictr.c
r18579r18580
7474   ADDRESS_MAP_UNMAP_HIGH
7575   ADDRESS_MAP_GLOBAL_MASK(0x3fffff)
7676   AM_RANGE(0x000000, 0x05ffff) AM_ROM
77   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
78   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
77   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
78   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
7979   AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
8080   AM_RANGE(0x260010, 0x26001f) AM_READ(port1_r)
8181   AM_RANGE(0x260020, 0x26002f) AM_READ_PORT("260020")
r18579r18580
8686   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
8787   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
8888   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE_LEGACY(vindictr_paletteram_w) AM_SHARE("paletteram")
89   AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x8000) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
89   AM_RANGE(0x3f0000, 0x3f1fff) AM_MIRROR(0x8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
9090   AM_RANGE(0x3f2000, 0x3f3fff) AM_MIRROR(0x8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
91   AM_RANGE(0x3f4000, 0x3f4f7f) AM_MIRROR(0x8000) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
91   AM_RANGE(0x3f4000, 0x3f4f7f) AM_MIRROR(0x8000) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
9292   AM_RANGE(0x3f4f80, 0x3f4fff) AM_MIRROR(0x8000) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
9393   AM_RANGE(0x3f5000, 0x3f7fff) AM_MIRROR(0x8000) AM_RAM
9494ADDRESS_MAP_END
trunk/src/mame/drivers/blstroid.c
r18579r18580
6767   int temp = ioport(iptnames[offset & 1])->read();
6868
6969   if (m_cpu_to_sound_ready) temp ^= 0x0040;
70   if (atarigen_get_hblank(*machine().primary_screen)) temp ^= 0x0010;
70   if (get_hblank(*machine().primary_screen)) temp ^= 0x0010;
7171   return temp;
7272}
7373
r18579r18580
8585   AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0x7c0000) AM_ROM
8686   AM_RANGE(0xff8000, 0xff8001) AM_MIRROR(0x7f81fe) AM_WRITE(watchdog_reset16_w)
8787   AM_RANGE(0xff8200, 0xff8201) AM_MIRROR(0x7f81fe) AM_WRITE(scanline_int_ack_w)
88   AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x7f81fe) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
89   AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
88   AM_RANGE(0xff8400, 0xff8401) AM_MIRROR(0x7f81fe) AM_WRITE(video_int_ack_w)
89   AM_RANGE(0xff8600, 0xff8601) AM_MIRROR(0x7f81fe) AM_WRITE(eeprom_enable_w)
9090   AM_RANGE(0xff8800, 0xff89ff) AM_MIRROR(0x7f8000) AM_WRITEONLY AM_SHARE("priorityram")
9191   AM_RANGE(0xff8a00, 0xff8a01) AM_MIRROR(0x7f81fe) AM_WRITE8(sound_w, 0x00ff)
9292   AM_RANGE(0xff8c00, 0xff8c01) AM_MIRROR(0x7f81fe) AM_WRITE(sound_reset_w)
r18579r18580
9696   AM_RANGE(0xff9804, 0xff9805) AM_MIRROR(0x7f83f8) AM_READ_PORT("DIAL1")
9797   AM_RANGE(0xff9c00, 0xff9c03) AM_MIRROR(0x7f83fc) AM_READ(inputs_r)
9898   AM_RANGE(0xffa000, 0xffa3ff) AM_MIRROR(0x7f8c00) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_word_w) AM_SHARE("paletteram")
99   AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
100   AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
99   AM_RANGE(0xffb000, 0xffb3ff) AM_MIRROR(0x7f8c00) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
100   AM_RANGE(0xffc000, 0xffcfff) AM_MIRROR(0x7f8000) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
101101   AM_RANGE(0xffd000, 0xffdfff) AM_MIRROR(0x7f8000) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
102102   AM_RANGE(0xffe000, 0xffffff) AM_MIRROR(0x7f8000) AM_RAM
103103ADDRESS_MAP_END
r18579r18580
195195   /* basic machine hardware */
196196   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz/2)
197197   MCFG_CPU_PROGRAM_MAP(main_map)
198   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
198   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
199199
200200   MCFG_MACHINE_RESET_OVERRIDE(blstroid_state,blstroid)
201201   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/harddriv.c
r18579r18580
13251325   /* basic machine hardware */
13261326   MCFG_CPU_ADD("maincpu", M68010, HARDDRIV_MASTER_CLOCK/4)
13271327   MCFG_CPU_PROGRAM_MAP(driver_68k_map)
1328   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
1328   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
13291329   MCFG_CPU_PERIODIC_INT_DRIVER(harddriv_state, hd68k_irq_gen,  (double)HARDDRIV_MASTER_CLOCK/16/16/16/16/2)
13301330
13311331   MCFG_CPU_ADD("gsp", TMS34010, HARDDRIV_GSP_CLOCK)
trunk/src/mame/drivers/thunderj.c
r18579r18580
145145
146146static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, thunderj_state )
147147   AM_RANGE(0x000000, 0x09ffff) AM_ROM
148   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
148   AM_RANGE(0x0e0000, 0x0e0fff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
149149   AM_RANGE(0x160000, 0x16ffff) AM_RAM AM_SHARE("share1")
150   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
150   AM_RANGE(0x1f0000, 0x1fffff) AM_WRITE(eeprom_enable_w)
151151   AM_RANGE(0x260000, 0x26000f) AM_READ_PORT("260000")
152152   AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
153153   AM_RANGE(0x260012, 0x260013) AM_READ(special_port2_r)
r18579r18580
156156   AM_RANGE(0x360010, 0x360011) AM_WRITE(latch_w)
157157   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
158158   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
159   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
159   AM_RANGE(0x3e0000, 0x3e0fff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
160160   AM_RANGE(0x3effc0, 0x3effff) AM_READWRITE(thunderj_atarivc_r, thunderj_atarivc_w) AM_SHARE("atarivc_data")
161   AM_RANGE(0x3f0000, 0x3f1fff) AM_RAM_WRITE_LEGACY(atarigen_playfield2_latched_msb_w) AM_SHARE("playfield2")
162   AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_latched_lsb_w) AM_SHARE("playfield")
163   AM_RANGE(0x3f4000, 0x3f5fff) AM_RAM_WRITE_LEGACY(atarigen_playfield_dual_upper_w) AM_SHARE("playfield_up")
161   AM_RANGE(0x3f0000, 0x3f1fff) AM_RAM_WRITE(playfield2_latched_msb_w) AM_SHARE("playfield2")
162   AM_RANGE(0x3f2000, 0x3f3fff) AM_RAM_WRITE(playfield_latched_lsb_w) AM_SHARE("playfield")
163   AM_RANGE(0x3f4000, 0x3f5fff) AM_RAM_WRITE(playfield_dual_upper_w) AM_SHARE("playfield_up")
164164   AM_RANGE(0x3f6000, 0x3f7fff) AM_READWRITE_LEGACY(atarimo_0_spriteram_r, atarimo_0_spriteram_w)
165   AM_RANGE(0x3f8000, 0x3f8eff) AM_RAM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
165   AM_RANGE(0x3f8000, 0x3f8eff) AM_RAM_WRITE(alpha_w) AM_SHARE("alpha")
166166   AM_RANGE(0x3f8f00, 0x3f8f7f) AM_RAM AM_SHARE("atarivc_eof")
167167   AM_RANGE(0x3f8f80, 0x3f8fff) AM_READWRITE_LEGACY(atarimo_0_slipram_r, atarimo_0_slipram_w)
168168   AM_RANGE(0x3f9000, 0x3fffff) AM_RAM
r18579r18580
184184   AM_RANGE(0x260010, 0x260011) AM_READ_PORT("260010")
185185   AM_RANGE(0x260012, 0x260013) AM_READ(special_port2_r)
186186   AM_RANGE(0x260030, 0x260031) AM_READ8(sound_r, 0x00ff)
187   AM_RANGE(0x360000, 0x360001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
187   AM_RANGE(0x360000, 0x360001) AM_WRITE(video_int_ack_w)
188188   AM_RANGE(0x360010, 0x360011) AM_WRITE(latch_w)
189189   AM_RANGE(0x360020, 0x360021) AM_WRITE(sound_reset_w)
190190   AM_RANGE(0x360030, 0x360031) AM_WRITE8(sound_w, 0x00ff)
trunk/src/mame/drivers/atarigx2.c
r18579r18580
11401140   AM_RANGE(0xc80000, 0xc80fff) AM_RAM
11411141   AM_RANGE(0xca0000, 0xca0fff) AM_READWRITE(atarigx2_protection_r, atarigx2_protection_w) AM_SHARE("protection_base")
11421142   AM_RANGE(0xd00000, 0xd1ffff) AM_READ(a2d_data_r)
1143   AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE_LEGACY(atarigen_eeprom_upper32_r, atarigen_eeprom32_w) AM_SHARE("eeprom")
1144   AM_RANGE(0xd40000, 0xd40fff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram32_w) AM_SHARE("paletteram")
1145   AM_RANGE(0xd72000, 0xd75fff) AM_WRITE_LEGACY(atarigen_playfield32_w) AM_SHARE("playfield32")
1146   AM_RANGE(0xd76000, 0xd76fff) AM_WRITE_LEGACY(atarigen_alpha32_w) AM_SHARE("alpha32")
1143   AM_RANGE(0xd20000, 0xd20fff) AM_READWRITE(eeprom_upper32_r, eeprom32_w) AM_SHARE("eeprom")
1144   AM_RANGE(0xd40000, 0xd40fff) AM_RAM_WRITE(paletteram32_666_w) AM_SHARE("paletteram")
1145   AM_RANGE(0xd72000, 0xd75fff) AM_WRITE(playfield32_w) AM_SHARE("playfield32")
1146   AM_RANGE(0xd76000, 0xd76fff) AM_WRITE(alpha32_w) AM_SHARE("alpha32")
11471147   AM_RANGE(0xd78000, 0xd78fff) AM_DEVREADWRITE_LEGACY("rle", atarirle_spriteram32_r, atarirle_spriteram32_w)
11481148   AM_RANGE(0xd7a200, 0xd7a203) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
11491149   AM_RANGE(0xd70000, 0xd7ffff) AM_RAM
1150   AM_RANGE(0xd80000, 0xd9ffff) AM_WRITE_LEGACY(atarigen_eeprom_enable32_w)
1150   AM_RANGE(0xd80000, 0xd9ffff) AM_WRITE16(eeprom_enable_w, 0xffffffff)
11511151   AM_RANGE(0xe06000, 0xe06003) AM_WRITE8(sound_w, 0xff000000)
11521152   AM_RANGE(0xe08000, 0xe08003) AM_WRITE(latch_w)
1153   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE_LEGACY(atarigen_video_int_ack32_w)
1153   AM_RANGE(0xe0c000, 0xe0c003) AM_WRITE16(video_int_ack_w, 0xffffffff)
11541154   AM_RANGE(0xe0e000, 0xe0e003) AM_WRITENOP//watchdog_reset_w },
11551155   AM_RANGE(0xe80000, 0xe80003) AM_READ_PORT("P1_P2")
11561156   AM_RANGE(0xe82000, 0xe82003) AM_READ(special_port2_r)
r18579r18580
14221422   /* basic machine hardware */
14231423   MCFG_CPU_ADD("maincpu", M68EC020, ATARI_CLOCK_14MHz)
14241424   MCFG_CPU_PROGRAM_MAP(main_map)
1425   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
1425   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
14261426
14271427   MCFG_MACHINE_RESET_OVERRIDE(atarigx2_state,atarigx2)
14281428   MCFG_NVRAM_ADD_1FILL("eeprom")
trunk/src/mame/drivers/foodf.c
r18579r18580
164164   if (!(data & 0x04))
165165      scanline_int_ack_w(space,0,0);
166166   if (!(data & 0x08))
167      atarigen_video_int_ack_w(space,0,0,0xffff);
167      video_int_ack_w(space,0,0);
168168
169169   output_set_led_value(0, (data >> 4) & 1);
170170   output_set_led_value(1, (data >> 5) & 1);
r18579r18580
209209   AM_RANGE(0x014000, 0x014fff) AM_MIRROR(0x3e3000) AM_RAM
210210   AM_RANGE(0x018000, 0x018fff) AM_MIRROR(0x3e3000) AM_RAM
211211   AM_RANGE(0x01c000, 0x01c0ff) AM_MIRROR(0x3e3f00) AM_RAM AM_SHARE("spriteram")
212   AM_RANGE(0x800000, 0x8007ff) AM_MIRROR(0x03f800) AM_RAM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
212   AM_RANGE(0x800000, 0x8007ff) AM_MIRROR(0x03f800) AM_RAM_WRITE(playfield_w) AM_SHARE("playfield")
213213   AM_RANGE(0x900000, 0x9001ff) AM_MIRROR(0x03fe00) AM_DEVREADWRITE8("nvram", x2212_device, read, write, 0x00ff)
214214   AM_RANGE(0x940000, 0x940007) AM_MIRROR(0x023ff8) AM_READ(analog_r)
215215   AM_RANGE(0x944000, 0x944007) AM_MIRROR(0x023ff8) AM_WRITE(analog_w)
r18579r18580
352352   /* basic machine hardware */
353353   MCFG_CPU_ADD("maincpu", M68000, MASTER_CLOCK/2)
354354   MCFG_CPU_PROGRAM_MAP(main_map)
355   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
355   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
356356
357357   MCFG_MACHINE_START_OVERRIDE(foodf_state,foodf)
358358   MCFG_MACHINE_RESET_OVERRIDE(foodf_state,foodf)
trunk/src/mame/drivers/atarig1.c
r18579r18580
204204   AM_RANGE(0x040000, 0x077fff) AM_ROM
205205   AM_RANGE(0x078000, 0x07ffff) AM_ROM   /* hydra slapstic goes here */
206206   AM_RANGE(0xf80000, 0xf80001) AM_WRITE(watchdog_reset16_w)
207   AM_RANGE(0xf88000, 0xf8ffff) AM_WRITE_LEGACY(atarigen_eeprom_enable_w)
207   AM_RANGE(0xf88000, 0xf8ffff) AM_WRITE(eeprom_enable_w)
208208   AM_RANGE(0xf90000, 0xf90001) AM_WRITE8(sound_w, 0xff00)
209209   AM_RANGE(0xf98000, 0xf98001) AM_WRITE(sound_reset_w)
210210   AM_RANGE(0xfa0000, 0xfa0001) AM_WRITE(mo_control_w)
211   AM_RANGE(0xfb0000, 0xfb0001) AM_WRITE_LEGACY(atarigen_video_int_ack_w)
211   AM_RANGE(0xfb0000, 0xfb0001) AM_WRITE(video_int_ack_w)
212212   AM_RANGE(0xfc0000, 0xfc0001) AM_READ(special_port0_r)
213213   AM_RANGE(0xfc8000, 0xfc8007) AM_READWRITE(a2d_data_r, a2d_select_w)
214214   AM_RANGE(0xfd0000, 0xfd0001) AM_READ8(sound_r, 0xff00)
215   AM_RANGE(0xfd8000, 0xfdffff) AM_READWRITE_LEGACY(atarigen_eeprom_r, atarigen_eeprom_w) AM_SHARE("eeprom")
215   AM_RANGE(0xfd8000, 0xfdffff) AM_READWRITE(eeprom_r, eeprom_w) AM_SHARE("eeprom")
216216/*  AM_RANGE(0xfe0000, 0xfe7fff) AM_READ_LEGACY(from_r)*/
217   AM_RANGE(0xfe8000, 0xfe89ff) AM_RAM_WRITE_LEGACY(atarigen_666_paletteram_w) AM_SHARE("paletteram")
217   AM_RANGE(0xfe8000, 0xfe89ff) AM_RAM_WRITE(paletteram_666_w) AM_SHARE("paletteram")
218218   AM_RANGE(0xff0000, 0xff0fff) AM_DEVREADWRITE_LEGACY("rle", atarirle_spriteram_r, atarirle_spriteram_w)
219219   AM_RANGE(0xff2000, 0xff2001) AM_WRITE(mo_command_w) AM_SHARE("mo_command")
220   AM_RANGE(0xff4000, 0xff5fff) AM_WRITE_LEGACY(atarigen_playfield_w) AM_SHARE("playfield")
221   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE_LEGACY(atarigen_alpha_w) AM_SHARE("alpha")
220   AM_RANGE(0xff4000, 0xff5fff) AM_WRITE(playfield_w) AM_SHARE("playfield")
221   AM_RANGE(0xff6000, 0xff6fff) AM_WRITE(alpha_w) AM_SHARE("alpha")
222222   AM_RANGE(0xff0000, 0xffffff) AM_RAM
223223ADDRESS_MAP_END
224224
r18579r18580
445445   /* basic machine hardware */
446446   MCFG_CPU_ADD("maincpu", M68000, ATARI_CLOCK_14MHz)
447447   MCFG_CPU_PROGRAM_MAP(main_map)
448   MCFG_CPU_VBLANK_INT("screen", atarigen_video_int_gen)
448   MCFG_DEVICE_VBLANK_INT_DRIVER("screen", atarigen_state, video_int_gen)
449449
450450   MCFG_MACHINE_START_OVERRIDE(atarig1_state,atarig1)
451451   MCFG_MACHINE_RESET_OVERRIDE(atarig1_state,atarig1)
trunk/src/mame/machine/harddriv.c
r18579r18580
221221            .....
222222        0x8000 = SW1 #1
223223    */
224   harddriv_state *state = space.machine().driver_data<harddriv_state>();
224225   int temp = (space.machine().root_device().ioport("SW1")->read() << 8) | space.machine().root_device().ioport("IN0")->read();
225   if (atarigen_get_hblank(*space.machine().primary_screen)) temp ^= 0x0002;
226   if (state->get_hblank(*space.machine().primary_screen)) temp ^= 0x0002;
226227   temp ^= 0x0018;      /* both EOCs always high for now */
227228   return temp;
228229}
trunk/src/mame/machine/atarigen.c
r18579r18580
323323
324324
325325//-------------------------------------------------
326//  atarigen_sound_int_gen: Standard interrupt routine which
326//  sound_int_gen: Standard interrupt routine which
327327//  sets the sound interrupt state.
328328//-------------------------------------------------
329329
330INTERRUPT_GEN( atarigen_sound_int_gen )
330INTERRUPT_GEN_MEMBER(atarigen_state::sound_int_gen)
331331{
332   atarigen_state *state = device->machine().driver_data<atarigen_state>();
333   state->m_sound_int_state = 1;
334   state->update_interrupts();
332   m_sound_int_state = 1;
333   update_interrupts();
335334}
336335
337336
338337//-------------------------------------------------
339//  atarigen_sound_int_ack_w: Resets the state of the sound
338//  sound_int_ack_w: Resets the state of the sound
340339//  interrupt.
341340//-------------------------------------------------
342341
343WRITE16_HANDLER( atarigen_sound_int_ack_w )
342WRITE16_MEMBER(atarigen_state::sound_int_ack_w)
344343{
345   atarigen_state *state = space.machine().driver_data<atarigen_state>();
346   state->m_sound_int_state = 0;
347   state->update_interrupts();
344   m_sound_int_state = 0;
345   update_interrupts();
348346}
349347
350WRITE32_HANDLER( atarigen_sound_int_ack32_w )
351{
352   atarigen_state *state = space.machine().driver_data<atarigen_state>();
353   state->m_sound_int_state = 0;
354   state->update_interrupts();
355}
356348
357
358349//-------------------------------------------------
359//  atarigen_video_int_gen: Standard interrupt routine which
350//  video_int_gen: Standard interrupt routine which
360351//  sets the video interrupt state.
361352//-------------------------------------------------
362353
363INTERRUPT_GEN( atarigen_video_int_gen )
354INTERRUPT_GEN_MEMBER(atarigen_state::video_int_gen)
364355{
365   atarigen_state *state = device->machine().driver_data<atarigen_state>();
366   state->m_video_int_state = 1;
367   state->update_interrupts();
356   m_video_int_state = 1;
357   update_interrupts();
368358}
369359
370360
371361//-------------------------------------------------
372//  atarigen_video_int_ack_w: Resets the state of the video
362//  video_int_ack_w: Resets the state of the video
373363//  interrupt.
374364//-------------------------------------------------
375365
376WRITE16_HANDLER( atarigen_video_int_ack_w )
366WRITE16_MEMBER(atarigen_state::video_int_ack_w)
377367{
378   atarigen_state *state = space.machine().driver_data<atarigen_state>();
379   state->m_video_int_state = 0;
380   state->update_interrupts();
368   m_video_int_state = 0;
369   update_interrupts();
381370}
382371
383WRITE32_HANDLER( atarigen_video_int_ack32_w )
384{
385   atarigen_state *state = space.machine().driver_data<atarigen_state>();
386   state->m_video_int_state = 0;
387   state->update_interrupts();
388}
389372
390373
391
392374/***************************************************************************
393375    EEPROM HANDLING
394376***************************************************************************/
395377
396378//-------------------------------------------------
397//  atarigen_eeprom_enable_w: Any write to this handler will
379//  eeprom_enable_w: Any write to this handler will
398380//  allow one byte to be written to the EEPROM data area the
399381//  next time.
400382//-------------------------------------------------
401383
402WRITE16_HANDLER( atarigen_eeprom_enable_w )
384WRITE16_MEMBER(atarigen_state::eeprom_enable_w)
403385{
404   atarigen_state *state = space.machine().driver_data<atarigen_state>();
405   state->m_eeprom_unlocked = true;
386   m_eeprom_unlocked = true;
406387}
407388
408WRITE32_HANDLER( atarigen_eeprom_enable32_w )
409{
410   atarigen_state *state = space.machine().driver_data<atarigen_state>();
411   state->m_eeprom_unlocked = true;
412}
413389
414
415390//-------------------------------------------------
416//  atarigen_eeprom_w: Writes a "word" to the EEPROM, which is
391//  eeprom_w: Writes a "word" to the EEPROM, which is
417392//  almost always accessed via the low byte of the word only.
418393//  If the EEPROM hasn't been unlocked, the write attempt is
419394//  ignored.
420395//-------------------------------------------------
421396
422WRITE16_HANDLER( atarigen_eeprom_w )
397WRITE16_MEMBER(atarigen_state::eeprom_w)
423398{
424   atarigen_state *state = space.machine().driver_data<atarigen_state>();
425
426   if (!state->m_eeprom_unlocked)
399   if (!m_eeprom_unlocked)
427400      return;
428401
429   COMBINE_DATA(&state->m_eeprom[offset]);
430   state->m_eeprom_unlocked = false;
402   COMBINE_DATA(&m_eeprom[offset]);
403   m_eeprom_unlocked = false;
431404}
432405
433WRITE32_HANDLER( atarigen_eeprom32_w )
406WRITE32_MEMBER(atarigen_state::eeprom32_w)
434407{
435   atarigen_state *state = space.machine().driver_data<atarigen_state>();
436
437   if (!state->m_eeprom_unlocked)
408   if (!m_eeprom_unlocked)
438409      return;
439410
440   COMBINE_DATA(&state->m_eeprom[offset * 2 + 1]);
411   COMBINE_DATA(&m_eeprom[offset * 2 + 1]);
441412   data >>= 16;
442413   mem_mask >>= 16;
443   COMBINE_DATA(&state->m_eeprom[offset * 2]);
444   state->m_eeprom_unlocked = false;
414   COMBINE_DATA(&m_eeprom[offset * 2]);
415   m_eeprom_unlocked = false;
445416}
446417
447418
448419//-------------------------------------------------
449//  atarigen_eeprom_r: Reads a "word" from the EEPROM, which is
420//  eeprom_r: Reads a "word" from the EEPROM, which is
450421//  almost always accessed via the low byte of the word only.
451422//-------------------------------------------------
452423
453READ16_HANDLER( atarigen_eeprom_r )
424READ16_MEMBER(atarigen_state::eeprom_r)
454425{
455   atarigen_state *state = space.machine().driver_data<atarigen_state>();
456   return state->m_eeprom[offset] | 0xff00;
426   return m_eeprom[offset] | 0xff00;
457427}
458428
459READ16_HANDLER( atarigen_eeprom_upper_r )
429READ32_MEMBER(atarigen_state::eeprom_upper32_r)
460430{
461   atarigen_state *state = space.machine().driver_data<atarigen_state>();
462   return state->m_eeprom[offset] | 0x00ff;
431   return (m_eeprom[offset * 2] << 16) | m_eeprom[offset * 2 + 1] | 0x00ff00ff;
463432}
464433
465READ32_HANDLER( atarigen_eeprom_upper32_r )
466{
467   atarigen_state *state = space.machine().driver_data<atarigen_state>();
468   return (state->m_eeprom[offset * 2] << 16) | state->m_eeprom[offset * 2 + 1] | 0x00ff00ff;
469}
470434
471435
472
473436/***************************************************************************
474437    SLAPSTIC HANDLING
475438***************************************************************************/
r18579r18580
691654READ8_MEMBER(atarigen_state::sound_r)
692655{
693656   m_sound_to_cpu_ready = 0;
694   atarigen_sound_int_ack_w(space, 0, 0, 0xffff);
657   sound_int_ack_w(space, 0, 0);
695658   return m_sound_to_cpu;
696659}
697660
r18579r18580
753716
754717   // reset the sound write state
755718   m_sound_to_cpu_ready = 0;
756   atarigen_sound_int_ack_w(m_sound_cpu->space(AS_PROGRAM), 0, 0, 0xffff);
719   sound_int_ack_w(m_sound_cpu->space(AS_PROGRAM), 0, 0);
757720
758721   // allocate a high frequency timer until a response is generated
759722   // the main CPU is *very* sensistive to the timing of the response
r18579r18580
797760   // set up the states and signal the sound interrupt to the main CPU
798761   m_sound_to_cpu = data;
799762   m_sound_to_cpu_ready = 1;
800   atarigen_sound_int_gen(machine().device("maincpu"));
763   sound_int_gen(*machine().device("maincpu"));
801764}
802765
803766
r18579r18580
943906//  atarivc_reset: Initializes the video controller.
944907//-------------------------------------------------
945908
946void atarivc_reset(screen_device &screen, UINT16 *eof_data, int playfields)
909void atarigen_state::atarivc_reset(screen_device &screen, UINT16 *eof_data, int playfields)
947910{
948   atarigen_state *state = screen.machine().driver_data<atarigen_state>();
949
950911   // this allows us to manually reset eof_data to NULL if it's not used
951   state->m_atarivc_eof_data.set_target(eof_data, 0x100);
952   state->m_atarivc_playfields = playfields;
912   m_atarivc_eof_data.set_target(eof_data, 0x100);
913   m_atarivc_playfields = playfields;
953914
954915   // clear the RAM we use
955   memset(state->m_atarivc_data, 0, 0x40);
956   memset(&state->m_atarivc_state, 0, sizeof(state->m_atarivc_state));
916   memset(m_atarivc_data, 0, 0x40);
917   memset(&m_atarivc_state, 0, sizeof(m_atarivc_state));
957918
958919   // reset the latches
959   state->m_atarivc_state.latch1 = state->m_atarivc_state.latch2 = -1;
960   state->m_actual_vc_latch0 = state->m_actual_vc_latch1 = -1;
920   m_atarivc_state.latch1 = m_atarivc_state.latch2 = -1;
921   m_actual_vc_latch0 = m_actual_vc_latch1 = -1;
961922
962923   // start a timer to go off a little before scanline 0
963   if (state->m_atarivc_eof_data)
924   if (m_atarivc_eof_data != NULL)
964925      get_screen_timer(screen)->atarivc_eof_update_timer->adjust(screen.time_until_pos(0));
965926}
966927
r18579r18580
969930//  atarivc_w: Handles an I/O write to the video controller.
970931//-------------------------------------------------
971932
972void atarivc_w(screen_device &screen, offs_t offset, UINT16 data, UINT16 mem_mask)
933void atarigen_state::atarivc_w(screen_device &screen, offs_t offset, UINT16 data, UINT16 mem_mask)
973934{
974   atarigen_state *state = screen.machine().driver_data<atarigen_state>();
975   int oldword = state->m_atarivc_data[offset];
935   int oldword = m_atarivc_data[offset];
976936   int newword = oldword;
977937
978938   COMBINE_DATA(&newword);
r18579r18580
986946//  write.
987947//-------------------------------------------------
988948
989static void atarivc_common_w(screen_device &screen, offs_t offset, UINT16 newword)
949void atarigen_state::atarivc_common_w(screen_device &screen, offs_t offset, UINT16 newword)
990950{
991   atarigen_state *state = screen.machine().driver_data<atarigen_state>();
992   int oldword = state->m_atarivc_data[offset];
993   state->m_atarivc_data[offset] = newword;
951   int oldword = m_atarivc_data[offset];
952   m_atarivc_data[offset] = newword;
994953
995954   // switch off the offset
996955   switch (offset)
r18579r18580
1005964      // set the scanline interrupt here
1006965      case 0x03:
1007966         if (oldword != newword)
1008            state->scanline_int_set(screen, newword & 0x1ff);
967            scanline_int_set(screen, newword & 0x1ff);
1009968         break;
1010969
1011970      // latch enable
1012971      case 0x0a:
1013972
1014973         // reset the latches when disabled
1015         atarigen_set_playfield_latch(state, (newword & 0x0080) ? state->m_actual_vc_latch0 : -1);
1016         atarigen_set_playfield2_latch(state, (newword & 0x0080) ? state->m_actual_vc_latch1 : -1);
974         set_playfield_latch((newword & 0x0080) ? m_actual_vc_latch0 : -1);
975         set_playfield2_latch((newword & 0x0080) ? m_actual_vc_latch1 : -1);
1017976
1018977         // check for rowscroll enable
1019         state->m_atarivc_state.rowscroll_enable = (newword & 0x2000) >> 13;
978         m_atarivc_state.rowscroll_enable = (newword & 0x2000) >> 13;
1020979
1021980         // check for palette banking
1022         if (state->m_atarivc_state.palette_bank != (((newword & 0x0400) >> 10) ^ 1))
981         if (m_atarivc_state.palette_bank != (((newword & 0x0400) >> 10) ^ 1))
1023982         {
1024983            screen.update_partial(screen.vpos());
1025            state->m_atarivc_state.palette_bank = ((newword & 0x0400) >> 10) ^ 1;
984            m_atarivc_state.palette_bank = ((newword & 0x0400) >> 10) ^ 1;
1026985         }
1027986         break;
1028987
r18579r18580
1033992         switch (newword & 15)
1034993         {
1035994            case 9:
1036               state->m_atarivc_state.mo_xscroll = (newword >> 7) & 0x1ff;
995               m_atarivc_state.mo_xscroll = (newword >> 7) & 0x1ff;
1037996               break;
1038997
1039998            case 10:
1040               state->m_atarivc_state.pf1_xscroll_raw = (newword >> 7) & 0x1ff;
1041               atarivc_update_pf_xscrolls(state);
999               m_atarivc_state.pf1_xscroll_raw = (newword >> 7) & 0x1ff;
1000               atarivc_update_pf_xscrolls();
10421001               break;
10431002
10441003            case 11:
1045               state->m_atarivc_state.pf0_xscroll_raw = (newword >> 7) & 0x1ff;
1046               atarivc_update_pf_xscrolls(state);
1004               m_atarivc_state.pf0_xscroll_raw = (newword >> 7) & 0x1ff;
1005               atarivc_update_pf_xscrolls();
10471006               break;
10481007
10491008            case 13:
1050               state->m_atarivc_state.mo_yscroll = (newword >> 7) & 0x1ff;
1009               m_atarivc_state.mo_yscroll = (newword >> 7) & 0x1ff;
10511010               break;
10521011
10531012            case 14:
1054               state->m_atarivc_state.pf1_yscroll = (newword >> 7) & 0x1ff;
1013               m_atarivc_state.pf1_yscroll = (newword >> 7) & 0x1ff;
10551014               break;
10561015
10571016            case 15:
1058               state->m_atarivc_state.pf0_yscroll = (newword >> 7) & 0x1ff;
1017               m_atarivc_state.pf0_yscroll = (newword >> 7) & 0x1ff;
10591018               break;
10601019         }
10611020         break;
10621021
10631022      // latch 1 value
10641023      case 0x1c:
1065         state->m_actual_vc_latch0 = -1;
1066         state->m_actual_vc_latch1 = newword;
1067         atarigen_set_playfield_latch(state, (state->m_atarivc_data[0x0a] & 0x80) ? state->m_actual_vc_latch0 : -1);
1068         atarigen_set_playfield2_latch(state, (state->m_atarivc_data[0x0a] & 0x80) ? state->m_actual_vc_latch1 : -1);
1024         m_actual_vc_latch0 = -1;
1025         m_actual_vc_latch1 = newword;
1026         set_playfield_latch((m_atarivc_data[0x0a] & 0x80) ? m_actual_vc_latch0 : -1);
1027         set_playfield2_latch((m_atarivc_data[0x0a] & 0x80) ? m_actual_vc_latch1 : -1);
10691028         break;
10701029
10711030      // latch 2 value
10721031      case 0x1d:
1073         state->m_actual_vc_latch0 = newword;
1074         state->m_actual_vc_latch1 = -1;
1075         atarigen_set_playfield_latch(state, (state->m_atarivc_data[0x0a] & 0x80) ? state->m_actual_vc_latch0 : -1);
1076         atarigen_set_playfield2_latch(state, (state->m_atarivc_data[0x0a] & 0x80) ? state->m_actual_vc_latch1 : -1);
1032         m_actual_vc_latch0 = newword;
1033         m_actual_vc_latch1 = -1;
1034         set_playfield_latch((m_atarivc_data[0x0a] & 0x80) ? m_actual_vc_latch0 : -1);
1035         set_playfield2_latch((m_atarivc_data[0x0a] & 0x80) ? m_actual_vc_latch1 : -1);
10771036         break;
10781037
10791038      // scanline IRQ ack here
10801039      case 0x1e:
10811040         // hack: this should be a device
1082         state->scanline_int_ack_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff);
1041         scanline_int_ack_w(screen.machine().device("maincpu")->memory().space(AS_PROGRAM), 0, 0, 0xffff);
10831042         break;
10841043
10851044      // log anything else
r18579r18580
10961055//  atarivc_r: Handles an I/O read from the video controller.
10971056//-------------------------------------------------
10981057
1099UINT16 atarivc_r(screen_device &screen, offs_t offset)
1058UINT16 atarigen_state::atarivc_r(screen_device &screen, offs_t offset)
11001059{
1101   atarigen_state *state = screen.machine().driver_data<atarigen_state>();
1102
11031060   logerror("vc_r(%02X)\n", offset);
11041061
11051062   // a read from offset 0 returns the current scanline
r18579r18580
11161073      return result;
11171074   }
11181075   else
1119      return state->m_atarivc_data[offset];
1076      return m_atarivc_data[offset];
11201077}
11211078
11221079
r18579r18580
11261083***************************************************************************/
11271084
11281085//-------------------------------------------------
1129//  atarigen_alpha_w: Generic write handler for alpha RAM.
1086//  alpha_w: Generic write handler for alpha RAM.
11301087//-------------------------------------------------
11311088
1132WRITE16_HANDLER( atarigen_alpha_w )
1089WRITE16_MEMBER(atarigen_state::alpha_w)
11331090{
1134   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1135   COMBINE_DATA(&state->m_alpha[offset]);
1136   state->m_alpha_tilemap->mark_tile_dirty(offset);
1091   COMBINE_DATA(&m_alpha[offset]);
1092   m_alpha_tilemap->mark_tile_dirty(offset);
11371093}
11381094
1139WRITE32_HANDLER( atarigen_alpha32_w )
1095WRITE32_MEMBER(atarigen_state::alpha32_w)
11401096{
1141   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1142   COMBINE_DATA(&state->m_alpha32[offset]);
1097   COMBINE_DATA(&m_alpha32[offset]);
11431098   if (ACCESSING_BITS_16_31)
1144      state->m_alpha_tilemap->mark_tile_dirty(offset * 2);
1099      m_alpha_tilemap->mark_tile_dirty(offset * 2);
11451100   if (ACCESSING_BITS_0_15)
1146      state->m_alpha_tilemap->mark_tile_dirty(offset * 2 + 1);
1101      m_alpha_tilemap->mark_tile_dirty(offset * 2 + 1);
11471102}
11481103
1149WRITE16_HANDLER( atarigen_alpha2_w )
1104WRITE16_MEMBER(atarigen_state::alpha2_w)
11501105{
1151   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1152   COMBINE_DATA(&state->m_alpha2[offset]);
1153   state->m_alpha2_tilemap->mark_tile_dirty(offset);
1106   COMBINE_DATA(&m_alpha2[offset]);
1107   m_alpha2_tilemap->mark_tile_dirty(offset);
11541108}
11551109
11561110
11571111
11581112//-------------------------------------------------
1159//  atarigen_set_playfield_latch: Sets the latch for the latched
1113//  set_playfield_latch: Sets the latch for the latched
11601114//  playfield handlers below.
11611115//-------------------------------------------------
11621116
1163void atarigen_set_playfield_latch(atarigen_state *state, int data)
1117void atarigen_state::set_playfield_latch(int data)
11641118{
1165   state->m_playfield_latch = data;
1119   m_playfield_latch = data;
11661120}
11671121
1168void atarigen_set_playfield2_latch(atarigen_state *state, int data)
1122void atarigen_state::set_playfield2_latch(int data)
11691123{
1170   state->m_playfield2_latch = data;
1124   m_playfield2_latch = data;
11711125}
11721126
11731127
11741128
11751129//-------------------------------------------------
1176//  atarigen_playfield_w: Generic write handler for PF RAM.
1130//  playfield_w: Generic write handler for PF RAM.
11771131//-------------------------------------------------
11781132
1179WRITE16_HANDLER( atarigen_playfield_w )
1133WRITE16_MEMBER(atarigen_state::playfield_w)
11801134{
1181   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1182   COMBINE_DATA(&state->m_playfield[offset]);
1183   state->m_playfield_tilemap->mark_tile_dirty(offset);
1135   COMBINE_DATA(&m_playfield[offset]);
1136   m_playfield_tilemap->mark_tile_dirty(offset);
11841137}
11851138
1186WRITE32_HANDLER( atarigen_playfield32_w )
1139WRITE32_MEMBER(atarigen_state::playfield32_w)
11871140{
1188   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1189   COMBINE_DATA(&state->m_playfield32[offset]);
1141   COMBINE_DATA(&m_playfield32[offset]);
11901142   if (ACCESSING_BITS_16_31)
1191      state->m_playfield_tilemap->mark_tile_dirty(offset * 2);
1143      m_playfield_tilemap->mark_tile_dirty(offset * 2);
11921144   if (ACCESSING_BITS_0_15)
1193      state->m_playfield_tilemap->mark_tile_dirty(offset * 2 + 1);
1145      m_playfield_tilemap->mark_tile_dirty(offset * 2 + 1);
11941146}
11951147
1196WRITE16_HANDLER( atarigen_playfield2_w )
1148WRITE16_MEMBER(atarigen_state::playfield2_w)
11971149{
1198   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1199   COMBINE_DATA(&state->m_playfield2[offset]);
1200   state->m_playfield2_tilemap->mark_tile_dirty(offset);
1150   COMBINE_DATA(&m_playfield2[offset]);
1151   m_playfield2_tilemap->mark_tile_dirty(offset);
12011152}
12021153
12031154
12041155
12051156//-------------------------------------------------
1206//  atarigen_playfield_large_w: Generic write handler for
1157//  playfield_large_w: Generic write handler for
12071158//  large (2-word) playfield RAM.
12081159//-------------------------------------------------
12091160
1210WRITE16_HANDLER( atarigen_playfield_large_w )
1161WRITE16_MEMBER(atarigen_state::playfield_large_w)
12111162{
12121163   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12131164   COMBINE_DATA(&state->m_playfield[offset]);
r18579r18580
12171168
12181169
12191170//-------------------------------------------------
1220//  atarigen_playfield_upper_w: Generic write handler for
1171//  playfield_upper_w: Generic write handler for
12211172//  upper word of split playfield RAM.
12221173//-------------------------------------------------
12231174
1224WRITE16_HANDLER( atarigen_playfield_upper_w )
1175WRITE16_MEMBER(atarigen_state::playfield_upper_w)
12251176{
12261177   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12271178   COMBINE_DATA(&state->m_playfield_upper[offset]);
r18579r18580
12311182
12321183
12331184//-------------------------------------------------
1234//  atarigen_playfield_dual_upper_w: Generic write handler for
1185//  playfield_dual_upper_w: Generic write handler for
12351186//  upper word of split dual playfield RAM.
12361187//-------------------------------------------------
12371188
1238WRITE16_HANDLER( atarigen_playfield_dual_upper_w )
1189WRITE16_MEMBER(atarigen_state::playfield_dual_upper_w)
12391190{
12401191   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12411192   COMBINE_DATA(&state->m_playfield_upper[offset]);
r18579r18580
12461197
12471198
12481199//-------------------------------------------------
1249//  atarigen_playfield_latched_lsb_w: Generic write handler for
1200//  playfield_latched_lsb_w: Generic write handler for
12501201//  lower word of playfield RAM with a latch in the LSB of the
12511202//  upper word.
12521203//-------------------------------------------------
12531204
1254WRITE16_HANDLER( atarigen_playfield_latched_lsb_w )
1205WRITE16_MEMBER(atarigen_state::playfield_latched_lsb_w)
12551206{
12561207   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12571208
r18579r18580
12651216
12661217
12671218//-------------------------------------------------
1268//  atarigen_playfield_latched_lsb_w: Generic write handler for
1219//  playfield_latched_msb_w: Generic write handler for
12691220//  lower word of playfield RAM with a latch in the MSB of the
12701221//  upper word.
12711222//-------------------------------------------------
12721223
1273WRITE16_HANDLER( atarigen_playfield_latched_msb_w )
1224WRITE16_MEMBER(atarigen_state::playfield_latched_msb_w)
12741225{
12751226   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12761227
r18579r18580
12841235
12851236
12861237//-------------------------------------------------
1287//  atarigen_playfield_latched_lsb_w: Generic write handler for
1238//  playfield2_latched_msb_w: Generic write handler for
12881239//  lower word of second playfield RAM with a latch in the MSB
12891240//  of the upper word.
12901241//-------------------------------------------------
12911242
1292WRITE16_HANDLER( atarigen_playfield2_latched_msb_w )
1243WRITE16_MEMBER(atarigen_state::playfield2_latched_msb_w)
12931244{
12941245   atarigen_state *state = space.machine().driver_data<atarigen_state>();
12951246
r18579r18580
13081259***************************************************************************/
13091260
13101261//-------------------------------------------------
1311//  atarigen_get_hblank: Returns a guesstimate about the current
1312//  HBLANK state, based on the assumption that HBLANK represents
1313//  10% of the scanline period.
1314//-------------------------------------------------
1315
1316int atarigen_get_hblank(screen_device &screen)
1317{
1318   return (screen.hpos() > (screen.width() * 9 / 10));
1319}
1320
1321
1322//-------------------------------------------------
13231262//  halt_until_hblank_0: Halts CPU 0 until the
13241263//  next HBLANK.
13251264//-------------------------------------------------
r18579r18580
13421281
13431282
13441283//-------------------------------------------------
1345//  atarigen_666_paletteram_w: 6-6-6 RGB palette RAM handler.
1284//  paletteram_666_w: 6-6-6 RGB palette RAM handler.
13461285//-------------------------------------------------
13471286
1348WRITE16_HANDLER( atarigen_666_paletteram_w )
1287WRITE16_MEMBER(atarigen_state::paletteram_666_w)
13491288{
1350   atarigen_state *state = space.machine().driver_data<atarigen_state>();
13511289   int newword, r, g, b;
13521290
1353   COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
1354   newword = state->m_generic_paletteram_16[offset];
1291   COMBINE_DATA(&m_generic_paletteram_16[offset]);
1292   newword = m_generic_paletteram_16[offset];
13551293
13561294   r = ((newword >> 9) & 0x3e) | ((newword >> 15) & 1);
13571295   g = ((newword >> 4) & 0x3e) | ((newword >> 15) & 1);
r18579r18580
13621300
13631301
13641302//-------------------------------------------------
1365//  atarigen_expanded_666_paletteram_w: 6-6-6 RGB expanded
1303//  expanded_paletteram_666_w: 6-6-6 RGB expanded
13661304//  palette RAM handler.
13671305//-------------------------------------------------
13681306
1369WRITE16_HANDLER( atarigen_expanded_666_paletteram_w )
1307WRITE16_MEMBER(atarigen_state::expanded_paletteram_666_w)
13701308{
1371   atarigen_state *state = space.machine().driver_data<atarigen_state>();
1372   COMBINE_DATA(&state->m_generic_paletteram_16[offset]);
1309   COMBINE_DATA(&m_generic_paletteram_16[offset]);
13731310
13741311   if (ACCESSING_BITS_8_15)
13751312   {
13761313      int palentry = offset / 2;
1377      int newword = (state->m_generic_paletteram_16[palentry * 2] & 0xff00) | (state->m_generic_paletteram_16[palentry * 2 + 1] >> 8);
1314      int newword = (m_generic_paletteram_16[palentry * 2] & 0xff00) | (m_generic_paletteram_16[palentry * 2 + 1] >> 8);
13781315
13791316      int r, g, b;
13801317
r18579r18580
13881325
13891326
13901327//-------------------------------------------------
1391//  atarigen_666_paletteram32_w: 6-6-6 RGB palette RAM handler.
1328//  paletteram32_666_w: 6-6-6 RGB palette RAM handler.
13921329//-------------------------------------------------
13931330
1394WRITE32_HANDLER( atarigen_666_paletteram32_w )
1331WRITE32_MEMBER(atarigen_state::paletteram32_666_w )
13951332{
1396   atarigen_state *state = space.machine().driver_data<atarigen_state>();
13971333   int newword, r, g, b;
13981334
1399   COMBINE_DATA(&state->m_generic_paletteram_32[offset]);
1335   COMBINE_DATA(&m_generic_paletteram_32[offset]);
14001336
14011337   if (ACCESSING_BITS_16_31)
14021338   {
1403      newword = state->m_generic_paletteram_32[offset] >> 16;
1339      newword = m_generic_paletteram_32[offset] >> 16;
14041340
14051341      r = ((newword >> 9) & 0x3e) | ((newword >> 15) & 1);
14061342      g = ((newword >> 4) & 0x3e) | ((newword >> 15) & 1);
r18579r18580
14111347
14121348   if (ACCESSING_BITS_0_15)
14131349   {
1414      newword = state->m_generic_paletteram_32[offset] & 0xffff;
1350      newword = m_generic_paletteram_32[offset] & 0xffff;
14151351
14161352      r = ((newword >> 9) & 0x3e) | ((newword >> 15) & 1);
14171353      g = ((newword >> 4) & 0x3e) | ((newword >> 15) & 1);
r18579r18580
14281364***************************************************************************/
14291365
14301366//-------------------------------------------------
1431//  atarigen_swap_mem: Inverts the bits in a region.
1432//-------------------------------------------------
1433
1434void atarigen_swap_mem(void *ptr1, void *ptr2, int bytes)
1435{
1436   UINT8 *p1 = (UINT8 *)ptr1;
1437   UINT8 *p2 = (UINT8 *)ptr2;
1438   while (bytes--)
1439   {
1440      int temp = *p1;
1441      *p1++ = *p2;
1442      *p2++ = temp;
1443   }
1444}
1445
1446
1447//-------------------------------------------------
1448//  atarigen_blend_gfx: Takes two GFXElements and blends their
1367//  blend_gfx: Takes two GFXElements and blends their
14491368//  data together to form one. Then frees the second.
14501369//-------------------------------------------------
14511370
1452void atarigen_blend_gfx(running_machine &machine, int gfx0, int gfx1, int mask0, int mask1)
1371void atarigen_state::blend_gfx(int gfx0, int gfx1, int mask0, int mask1)
14531372{
1454   gfx_element *gx0 = machine.gfx[gfx0];
1455   gfx_element *gx1 = machine.gfx[gfx1];
1373   gfx_element *gx0 = machine().gfx[gfx0];
1374   gfx_element *gx1 = machine().gfx[gfx1];
14561375   UINT8 *srcdata, *dest;
14571376   int c, x, y;
14581377
14591378   // allocate memory for the assembled data
1460   srcdata = auto_alloc_array(machine, UINT8, gx0->elements() * gx0->width() * gx0->height());
1379   srcdata = auto_alloc_array(machine(), UINT8, gx0->elements() * gx0->width() * gx0->height());
14611380
14621381   // loop over elements
14631382   dest = srcdata;
r18579r18580
14851404   gx0->set_granularity(granularity);
14861405
14871406   // free the second graphics element
1488   machine.gfx[gfx1] = NULL;
1489   auto_free(machine, gx1);
1407   machine().gfx[gfx1] = NULL;
1408   auto_free(machine(), gx1);
14901409}
14911410
14921411
trunk/src/mame/machine/atarigen.h
r18579r18580
106106   void scanline_int_set(screen_device &screen, int scanline);
107107   INTERRUPT_GEN_MEMBER(scanline_int_gen);
108108   DECLARE_WRITE16_MEMBER(scanline_int_ack_w);
109   INTERRUPT_GEN_MEMBER(sound_int_gen);
110   DECLARE_WRITE16_MEMBER(sound_int_ack_w);
111   INTERRUPT_GEN_MEMBER(video_int_gen);
112   DECLARE_WRITE16_MEMBER(video_int_ack_w);
113   
114   // EEPROM helpers
115   WRITE16_MEMBER(eeprom_enable_w);
116   WRITE16_MEMBER(eeprom_w);
117   WRITE32_MEMBER(eeprom32_w);
118   READ16_MEMBER(eeprom_r);
119   READ32_MEMBER(eeprom_upper32_r);
109120
110121   // slapstic helpers
111122   void slapstic_configure(cpu_device &device, offs_t base, offs_t mirror, int chipnum);
r18579r18580
145156
146157   // video controller
147158   void atarivc_eof_update(emu_timer &timer, screen_device &screen);
159   void atarivc_reset(screen_device &screen, UINT16 *eof_data, int playfields);
160   void atarivc_w(screen_device &screen, offs_t offset, UINT16 data, UINT16 mem_mask);
161   UINT16 atarivc_r(screen_device &screen, offs_t offset);
162   inline void atarivc_update_pf_xscrolls()
163   {
164      m_atarivc_state.pf0_xscroll = m_atarivc_state.pf0_xscroll_raw + ((m_atarivc_state.pf1_xscroll_raw) & 7);
165      m_atarivc_state.pf1_xscroll = m_atarivc_state.pf1_xscroll_raw + 4;
166   }
167   void atarivc_common_w(screen_device &screen, offs_t offset, UINT16 newword);
148168
169   // playfield/alpha tilemap helpers
170   DECLARE_WRITE16_MEMBER( alpha_w );
171   DECLARE_WRITE32_MEMBER( alpha32_w );
172   DECLARE_WRITE16_MEMBER( alpha2_w );
173   void set_playfield_latch(int data);
174   void set_playfield2_latch(int data);
175   DECLARE_WRITE16_MEMBER( playfield_w );
176   DECLARE_WRITE32_MEMBER( playfield32_w );
177   DECLARE_WRITE16_MEMBER( playfield_large_w );
178   DECLARE_WRITE16_MEMBER( playfield_upper_w );
179   DECLARE_WRITE16_MEMBER( playfield_dual_upper_w );
180   DECLARE_WRITE16_MEMBER( playfield_latched_lsb_w );
181   DECLARE_WRITE16_MEMBER( playfield_latched_msb_w );
182   DECLARE_WRITE16_MEMBER( playfield2_w );
183   DECLARE_WRITE16_MEMBER( playfield2_latched_msb_w );
184
149185   // video helpers
186   int get_hblank(screen_device &screen) const { return (screen.hpos() > (screen.width() * 9 / 10)); }
150187   void halt_until_hblank_0(device_t &device, screen_device &screen);
188   DECLARE_WRITE16_HANDLER( paletteram_666_w );
189   DECLARE_WRITE16_HANDLER( expanded_paletteram_666_w );
190   DECLARE_WRITE32_HANDLER( paletteram32_666_w );
151191
192   // misc helpers
193   void blend_gfx(int gfx0, int gfx1, int mask0, int mask1);
194
152195   // vector and early raster EAROM interface
153196   DECLARE_READ8_MEMBER( earom_r );
154197   DECLARE_WRITE8_MEMBER( earom_w );
r18579r18580
236279
237280
238281/***************************************************************************
239    FUNCTION PROTOTYPES
240***************************************************************************/
241
242/*---------------------------------------------------------------
243    INTERRUPT HANDLING
244---------------------------------------------------------------*/
245
246INTERRUPT_GEN( atarigen_sound_int_gen );
247DECLARE_WRITE16_HANDLER( atarigen_sound_int_ack_w );
248DECLARE_WRITE32_HANDLER( atarigen_sound_int_ack32_w );
249
250INTERRUPT_GEN( atarigen_video_int_gen );
251DECLARE_WRITE16_HANDLER( atarigen_video_int_ack_w );
252DECLARE_WRITE32_HANDLER( atarigen_video_int_ack32_w );
253
254
255/*---------------------------------------------------------------
256    EEPROM HANDLING
257---------------------------------------------------------------*/
258
259DECLARE_WRITE16_HANDLER( atarigen_eeprom_enable_w );
260DECLARE_WRITE16_HANDLER( atarigen_eeprom_w );
261DECLARE_READ16_HANDLER( atarigen_eeprom_r );
262DECLARE_READ16_HANDLER( atarigen_eeprom_upper_r );
263
264DECLARE_WRITE32_HANDLER( atarigen_eeprom_enable32_w );
265DECLARE_WRITE32_HANDLER( atarigen_eeprom32_w );
266DECLARE_READ32_HANDLER( atarigen_eeprom_upper32_r );
267
268
269/*---------------------------------------------------------------
270    VIDEO CONTROLLER
271---------------------------------------------------------------*/
272
273void atarivc_reset(screen_device &screen, UINT16 *eof_data, int playfields);
274
275void atarivc_w(screen_device &screen, offs_t offset, UINT16 data, UINT16 mem_mask);
276UINT16 atarivc_r(screen_device &screen, offs_t offset);
277
278INLINE void atarivc_update_pf_xscrolls(atarigen_state *state)
279{
280   state->m_atarivc_state.pf0_xscroll = state->m_atarivc_state.pf0_xscroll_raw + ((state->m_atarivc_state.pf1_xscroll_raw) & 7);
281   state->m_atarivc_state.pf1_xscroll = state->m_atarivc_state.pf1_xscroll_raw + 4;
282}
283
284
285/*---------------------------------------------------------------
286    PLAYFIELD/ALPHA MAP HELPERS
287---------------------------------------------------------------*/
288
289DECLARE_WRITE16_HANDLER( atarigen_alpha_w );
290DECLARE_WRITE32_HANDLER( atarigen_alpha32_w );
291DECLARE_WRITE16_HANDLER( atarigen_alpha2_w );
292void atarigen_set_playfield_latch(atarigen_state *state, int data);
293void atarigen_set_playfield2_latch(atarigen_state *state, int data);
294DECLARE_WRITE16_HANDLER( atarigen_playfield_w );
295DECLARE_WRITE32_HANDLER( atarigen_playfield32_w );
296DECLARE_WRITE16_HANDLER( atarigen_playfield_large_w );
297DECLARE_WRITE16_HANDLER( atarigen_playfield_upper_w );
298DECLARE_WRITE16_HANDLER( atarigen_playfield_dual_upper_w );
299DECLARE_WRITE16_HANDLER( atarigen_playfield_latched_lsb_w );
300DECLARE_WRITE16_HANDLER( atarigen_playfield_latched_msb_w );
301DECLARE_WRITE16_HANDLER( atarigen_playfield2_w );
302DECLARE_WRITE16_HANDLER( atarigen_playfield2_latched_msb_w );
303
304
305/*---------------------------------------------------------------
306    VIDEO HELPERS
307---------------------------------------------------------------*/
308
309int atarigen_get_hblank(screen_device &screen);
310DECLARE_WRITE16_HANDLER( atarigen_666_paletteram_w );
311DECLARE_WRITE16_HANDLER( atarigen_expanded_666_paletteram_w );
312DECLARE_WRITE32_HANDLER( atarigen_666_paletteram32_w );
313
314
315/*---------------------------------------------------------------
316    MISC HELPERS
317---------------------------------------------------------------*/
318
319void atarigen_swap_mem(void *ptr1, void *ptr2, int bytes);
320void atarigen_blend_gfx(running_machine &machine, int gfx0, int gfx1, int mask0, int mask1);
321
322
323
324/***************************************************************************
325282    GENERAL ATARI NOTES
326283**************************************************************************##
327284
trunk/src/mame/video/atarigt.c
r18579r18580
8080   int i, width, height;
8181
8282   /* blend the playfields and free the temporary one */
83   atarigen_blend_gfx(machine(), 0, 2, 0x0f, 0x30);
83   blend_gfx(0, 2, 0x0f, 0x30);
8484
8585   /* initialize the playfield */
8686   m_playfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(atarigt_state::get_playfield_tile_info),this), tilemap_mapper_delegate(FUNC(atarigt_state::atarigt_playfield_scan),this),  8,8, 128,64);
trunk/src/mame/video/skullxbo.c
r18579r18580
176176WRITE16_HANDLER( skullxbo_playfieldlatch_w )
177177{
178178   skullxbo_state *state = space.machine().driver_data<skullxbo_state>();
179   atarigen_set_playfield_latch(state, data);
179   state->set_playfield_latch(data);
180180}
181181
182182
trunk/src/mame/video/atarig42.c
r18579r18580
6767
6868VIDEO_START_MEMBER(atarig42_state,atarig42)
6969{
70
7170   /* blend the playfields and free the temporary one */
72   atarigen_blend_gfx(machine(), 0, 2, 0x0f, 0x30);
71   blend_gfx(0, 2, 0x0f, 0x30);
7372
7473   /* initialize the playfield */
7574   m_playfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(atarig42_state::get_playfield_tile_info),this), tilemap_mapper_delegate(FUNC(atarig42_state::atarig42_playfield_scan),this),  8,8, 128,64);
trunk/src/mame/video/batman.c
r18579r18580
142142                  if (scanline > 0)
143143                     screen.update_partial(scanline - 1);
144144                  m_atarivc_state.pf1_xscroll_raw = (data >> 7) & 0x1ff;
145                  atarivc_update_pf_xscrolls(this);
145                  atarivc_update_pf_xscrolls();
146146                  m_playfield_tilemap->set_scrollx(0, m_atarivc_state.pf0_xscroll);
147147                  m_playfield2_tilemap->set_scrollx(0, m_atarivc_state.pf1_xscroll);
148148                  break;
r18579r18580
151151                  if (scanline > 0)
152152                     screen.update_partial(scanline - 1);
153153                  m_atarivc_state.pf0_xscroll_raw = (data >> 7) & 0x1ff;
154                  atarivc_update_pf_xscrolls(this);
154                  atarivc_update_pf_xscrolls();
155155                  m_playfield_tilemap->set_scrollx(0, m_atarivc_state.pf0_xscroll);
156156                  break;
157157
trunk/src/mame/video/atarig1.c
r18579r18580
4444
4545VIDEO_START_MEMBER(atarig1_state,atarig1)
4646{
47
4847   /* blend the playfields and free the temporary one */
49   atarigen_blend_gfx(machine(), 0, 2, 0x0f, 0x10);
48   blend_gfx(0, 2, 0x0f, 0x10);
5049
5150   /* initialize the playfield */
5251   m_playfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(atarig1_state::get_playfield_tile_info),this), TILEMAP_SCAN_ROWS,  8,8, 64,64);
trunk/src/mame/video/atarigx2.c
r18579r18580
6767
6868VIDEO_START_MEMBER(atarigx2_state,atarigx2)
6969{
70
7170   /* blend the playfields and free the temporary one */
72   atarigen_blend_gfx(machine(), 0, 2, 0x0f, 0x30);
71   blend_gfx(0, 2, 0x0f, 0x30);
7372
7473   /* initialize the playfield */
7574   m_playfield_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(atarigx2_state::get_playfield_tile_info),this), tilemap_mapper_delegate(FUNC(atarigx2_state::atarigx2_playfield_scan),this),  8,8, 128,64);
trunk/src/mame/includes/gauntlet.h
r18579r18580
2323   DECLARE_READ8_MEMBER(switch_6502_r);
2424   DECLARE_WRITE8_MEMBER(sound_ctl_w);
2525   DECLARE_WRITE8_MEMBER(mixer_w);
26   void swap_memory(void *ptr1, void *ptr2, int bytes);
27   void common_init(int slapstic, int vindctr2);
2628   DECLARE_DRIVER_INIT(gauntlet2);
2729   DECLARE_DRIVER_INIT(gaunt2p);
2830   DECLARE_DRIVER_INIT(gauntlet);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team