Previous 199869 Revisions Next

r32815 Sunday 19th October, 2014 at 08:14:45 UTC by Alex Jackson
amiga: use memarray for chip RAM and regular array for custom registers (instead of shared_ptr for both) [Alex Jackson]
[src/emu/machine]akiko.c amigafdc.c
[src/emu/sound]amiga.c
[src/mame/drivers]alg.c arcadia.c cubo.c mquake.c upscope.c
[src/mame/includes]amiga.h
[src/mame/machine]amiga.c
[src/mame/video]amiga.c amigaaga.c
[src/mess/drivers]amiga.c

trunk/src/mame/machine/amiga.c
r32814r32815
134134
135135/*************************************
136136 *
137 *  Chipmem 16/32 bit access
138 *
139 *************************************/
140
141static UINT16 amiga_chip_ram16_r(amiga_state *state, offs_t offset)
142{
143   // logerror("chip ram read %08x\n", offset);
144   return (offset < state->m_chip_ram.bytes()) ? state->m_chip_ram[offset/2] : 0xffff;
145}
146
147static UINT16 amiga_chip_ram32_r(amiga_state *state, offs_t offset)
148{
149   if (offset < state->m_chip_ram.bytes())
150   {
151      UINT32 *amiga_chip_ram32 = reinterpret_cast<UINT32 *>(state->m_chip_ram.target());
152      UINT32  dat = amiga_chip_ram32[offset / 4];
153
154      if ( offset & 2 )
155         return (dat & 0xffff);
156
157      return (dat >> 16);
158   }
159
160   return 0xffff;
161}
162
163static void amiga_chip_ram16_w(amiga_state *state, offs_t offset, UINT16 data)
164{
165   if (offset < state->m_chip_ram.bytes())
166      state->m_chip_ram[offset/2] = data;
167}
168
169static void amiga_chip_ram32_w(amiga_state *state, offs_t offset, UINT16 data)
170{
171   if (offset < state->m_chip_ram.bytes())
172   {
173      UINT32 *amiga_chip_ram32 = reinterpret_cast<UINT32 *>(state->m_chip_ram.target());
174      UINT32  dat = amiga_chip_ram32[offset / 4];
175
176      if ( offset & 2 )
177      {
178         dat &= 0xffff0000;
179         dat |= data;
180      }
181      else
182      {
183         dat &= 0x0000ffff;
184         dat |= ((UINT32)data) << 16;
185      }
186
187      amiga_chip_ram32[offset / 4] = dat;
188   }
189}
190
191
192void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data)
193{
194   UINT16 dat;
195
196   dat = (*state->m_chip_ram_r)(state, offset);
197   if (offset & 0x01)
198   {
199      dat &= 0xff00;
200      dat |= data;
201   }
202   else
203   {
204      dat &= 0x00ff;
205      dat |= ((UINT16)data) << 8;
206   }
207   (*state->m_chip_ram_w)(state, offset, dat);
208}
209
210
211
212/*************************************
213 *
214137 *  Machine reset
215138 *
216139 *************************************/
r32814r32815
220143   // add callback for RESET instruction
221144   m_maincpu->set_reset_callback(write_line_delegate(FUNC(amiga_state::m68k_reset), this));
222145
223   switch (m_maincpu->space(AS_PROGRAM).data_width())
224   {
225   case 16:
226      m_chip_ram_r = amiga_chip_ram16_r;
227      m_chip_ram_w = amiga_chip_ram16_w;
228      break;
229   case 32:
230      m_chip_ram_r = amiga_chip_ram32_r;
231      m_chip_ram_w = amiga_chip_ram32_w;
232      break;
233   default:
234      fatalerror("Invalid data bus width\n");
235   }
146   // set up chip RAM access
147   memory_share *share = memshare("chip_ram");
148   if (share == NULL)
149      fatalerror("Unable to find Amiga chip RAM\n");
150   m_chip_ram.set(*share, 2);
151   m_chip_ram_mask = (m_chip_ram.bytes() - 1) & ~1;
236152
237   m_chip_ram_mask = m_chip_ram.mask() & ~1;
238   m_chip_ram_mirror = ~m_chip_ram.mask() & 0x1fffff;
239
240   // setup the timers
153   // set up the timers
241154   m_irq_timer = timer_alloc(TIMER_AMIGA_IRQ);
242155   m_blitter_timer = timer_alloc(TIMER_AMIGA_BLITTER);
243156   m_serial_timer = timer_alloc(TIMER_SERIAL);
r32814r32815
536449         if (CUSTOM_REG(REG_BLTCON0) & 0x0800)
537450         {
538451            //CUSTOM_REG(REG_BLTADAT) = state->m_maincpu->space(AS_PROGRAM).read_word(CUSTOM_REG_LONG(REG_BLTAPTH));
539            CUSTOM_REG(REG_BLTADAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTAPTH));
452            CUSTOM_REG(REG_BLTADAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTAPTH));
540453            CUSTOM_REG_LONG(REG_BLTAPTH) += 2;
541454         }
542455
543456         /* fetch data for B */
544457         if (CUSTOM_REG(REG_BLTCON0) & 0x0400)
545458         {
546            CUSTOM_REG(REG_BLTBDAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTBPTH));
459            CUSTOM_REG(REG_BLTBDAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTBPTH));
547460            CUSTOM_REG_LONG(REG_BLTBPTH) += 2;
548461         }
549462
550463         /* fetch data for C */
551464         if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
552465         {
553            CUSTOM_REG(REG_BLTCDAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTCPTH));
466            CUSTOM_REG(REG_BLTCDAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
554467            CUSTOM_REG_LONG(REG_BLTCPTH) += 2;
555468         }
556469
r32814r32815
606519         /* write to the destination */
607520         if (CUSTOM_REG(REG_BLTCON0) & 0x0100)
608521         {
609            (*state->m_chip_ram_w)(state, CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
522            state->chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
610523            CUSTOM_REG_LONG(REG_BLTDPTH) += 2;
611524         }
612525      }
r32814r32815
661574         /* fetch data for A */
662575         if (CUSTOM_REG(REG_BLTCON0) & 0x0800)
663576         {
664            CUSTOM_REG(REG_BLTADAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTAPTH));
577            CUSTOM_REG(REG_BLTADAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTAPTH));
665578            CUSTOM_REG_LONG(REG_BLTAPTH) -= 2;
666579         }
667580
668581         /* fetch data for B */
669582         if (CUSTOM_REG(REG_BLTCON0) & 0x0400)
670583         {
671            CUSTOM_REG(REG_BLTBDAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTBPTH));
584            CUSTOM_REG(REG_BLTBDAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTBPTH));
672585            CUSTOM_REG_LONG(REG_BLTBPTH) -= 2;
673586         }
674587
675588         /* fetch data for C */
676589         if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
677590         {
678            CUSTOM_REG(REG_BLTCDAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTCPTH));
591            CUSTOM_REG(REG_BLTCDAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
679592            CUSTOM_REG_LONG(REG_BLTCPTH) -= 2;
680593         }
681594
r32814r32815
748661         /* write to the destination */
749662         if (CUSTOM_REG(REG_BLTCON0) & 0x0100)
750663         {
751            (*state->m_chip_ram_w)(state, CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
664            state->chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
752665            CUSTOM_REG_LONG(REG_BLTDPTH) -= 2;
753666         }
754667      }
r32814r32815
840753
841754      /* fetch data for C */
842755      if (CUSTOM_REG(REG_BLTCON0) & 0x0200)
843         CUSTOM_REG(REG_BLTCDAT) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BLTCPTH));
756         CUSTOM_REG(REG_BLTCDAT) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BLTCPTH));
844757
845758      /* rotate the A data according to the shift */
846759      tempa = CUSTOM_REG(REG_BLTADAT) >> (CUSTOM_REG(REG_BLTCON0) >> 12);
r32814r32815
891804      blitsum |= tempd;
892805
893806      /* write to the destination */
894      (*state->m_chip_ram_w)(state, CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
807      state->chip_ram_w(CUSTOM_REG_LONG(REG_BLTDPTH), tempd);
895808
896809      /* always increment along the major axis */
897810      if (CUSTOM_REG(REG_BLTCON1) & 0x0010)
trunk/src/mame/includes/amiga.h
r32814r32815
326326public:
327327   amiga_state(const machine_config &mconfig, device_type type, const char *tag) :
328328   driver_device(mconfig, type, tag),
329   m_chip_ram(*this, "chip_ram", 0),
330   m_custom_regs(*this, "custom_regs", 0),
331329   m_agnus_id(AGNUS_NTSC),
332330   m_denise_id(DENISE),
333331   m_maincpu(*this, "maincpu"),
r32814r32815
353351   m_p2_mouse_x(*this, "p2_mouse_x"),
354352   m_p2_mouse_y(*this, "p2_mouse_y"),
355353   m_chip_ram_mask(0),
356   m_chip_ram_mirror(0),
357354   m_cia_0_irq(0),
358355   m_cia_1_irq(0),
359356   m_pot0x(0), m_pot1x(0), m_pot0y(0), m_pot1y(0),
r32814r32815
373370   m_rx_previous(1)
374371   { }
375372
373   /* chip RAM access */
374   UINT16 chip_ram_r(offs_t byteoffs)
375   {
376      return EXPECTED(byteoffs < m_chip_ram.bytes()) ? m_chip_ram.read(byteoffs >> 1) : 0xffff;
377   }
378   void chip_ram_w(offs_t byteoffs, UINT16 data)
379   {
380      if (EXPECTED(byteoffs < m_chip_ram.bytes()))
381         m_chip_ram.write(byteoffs >> 1, data);
382   }
376383
377   UINT16 (*m_chip_ram_r)(amiga_state *state, offs_t offset);
378   void (*m_chip_ram_w)(amiga_state *state, offs_t offset, UINT16 data);
379
380
381384   /* sprite states */
382385   UINT8 m_sprite_comparitor_enable_mask;
383386   UINT8 m_sprite_dma_reload_mask;
r32814r32815
486489      HBLANK = 186
487490   };
488491
489   required_shared_ptr<UINT16> m_chip_ram;
490   required_shared_ptr<UINT16> m_custom_regs;
491
492492   emu_timer *m_blitter_timer;
493493
494494   UINT16 m_agnus_id;
495495   UINT16 m_denise_id;
496496
497   UINT16 m_custom_regs[256];
498
497499   void custom_chip_w(UINT16 offset, UINT16 data, UINT16 mem_mask = 0xffff)
498500   {
499501      custom_chip_w(m_maincpu->space(AS_PROGRAM), offset, data, mem_mask);
r32814r32815
577579   optional_ioport m_p2_mouse_x;
578580   optional_ioport m_p2_mouse_y;
579581
582   memory_array m_chip_ram;
580583   UINT32 m_chip_ram_mask;
581   UINT32 m_chip_ram_mirror;
582584
583585   int m_cia_0_irq;
584586   int m_cia_1_irq;
r32814r32815
663665
664666extern const char *const amiga_custom_names[0x100];
665667
666void amiga_chip_ram_w8(amiga_state *state, offs_t offset, UINT8 data);
667668
668
669669/*----------- defined in video/amiga.c -----------*/
670670
671671extern const UINT16 amiga_expand_byte[256];
trunk/src/mame/video/amiga.c
r32814r32815
240240   }
241241
242242   /* fetch the first data word */
243   word0 = (*state->m_chip_ram_r)(state, state->m_copper_pc);
243   word0 = state->chip_ram_r(state->m_copper_pc);
244244   state->m_copper_pc += 2;
245245   xpos += COPPER_CYCLES_TO_PIXELS(1);
246246
247247   /* fetch the second data word */
248   word1 = (*state->m_chip_ram_r)(state, state->m_copper_pc);
248   word1 = state->chip_ram_r(state->m_copper_pc);
249249   state->m_copper_pc += 2;
250250   xpos += COPPER_CYCLES_TO_PIXELS(1);
251251
r32814r32815
381381
382382INLINE void fetch_sprite_data(amiga_state *state, int scanline, int sprite)
383383{
384   CUSTOM_REG(REG_SPR0DATA + 4 * sprite) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
385   CUSTOM_REG(REG_SPR0DATB + 4 * sprite) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
384   CUSTOM_REG(REG_SPR0DATA + 4 * sprite) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
385   CUSTOM_REG(REG_SPR0DATB + 4 * sprite) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
386386   CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
387387   if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X\n", scanline, sprite, CUSTOM_REG(REG_SPR0DATA + 4 * sprite), CUSTOM_REG(REG_SPR0DATB + 4 * sprite));
388388}
r32814r32815
411411         state->m_sprite_dma_reload_mask &= ~bitmask;
412412
413413         /* fetch data into the control words */
414         CUSTOM_REG(REG_SPR0POS + 4 * num) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
415         CUSTOM_REG(REG_SPR0CTL + 4 * num) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
414         CUSTOM_REG(REG_SPR0POS + 4 * num) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
415         CUSTOM_REG(REG_SPR0CTL + 4 * num) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
416416         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4;
417417         if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: pos=%04X ctl=%04X\n", scanline, num, CUSTOM_REG(REG_SPR0POS + 4 * num), CUSTOM_REG(REG_SPR0CTL + 4 * num));
418418      }
r32814r32815
586586
587587INLINE void fetch_bitplane_data(amiga_state *state, int plane)
588588{
589   CUSTOM_REG(REG_BPL1DAT + plane) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
589   CUSTOM_REG(REG_BPL1DAT + plane) = state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
590590   CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
591591}
592592
trunk/src/mame/video/amigaaga.c
r32814r32815
9292   switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03)
9393   {
9494      case 0:
95         state->m_aga_sprdata[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
96         state->m_aga_sprdatb[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
95         state->m_aga_sprdata[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
96         state->m_aga_sprdatb[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
9797         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
9898         state->m_aga_sprite_fetched_words = 1;
9999         if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X\n", scanline, sprite, state->m_aga_sprdata[sprite][0], state->m_aga_sprdatb[sprite][0]);
100100         break;
101101      case 1:
102102      case 2:
103         state->m_aga_sprdata[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
104         state->m_aga_sprdata[sprite][1] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
103         state->m_aga_sprdata[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
104         state->m_aga_sprdata[sprite][1] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
105105         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
106         state->m_aga_sprdatb[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
107         state->m_aga_sprdatb[sprite][1] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
106         state->m_aga_sprdatb[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
107         state->m_aga_sprdatb[sprite][1] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
108108         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
109109         state->m_aga_sprite_fetched_words = 2;
110110         if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X %04X-%04X\n", scanline, sprite, state->m_aga_sprdata[sprite][0], state->m_aga_sprdatb[sprite][0], state->m_aga_sprdata[sprite][1], state->m_aga_sprdatb[sprite][1] );
111111         break;
112112      case 3:
113         state->m_aga_sprdata[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
114         state->m_aga_sprdata[sprite][1] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
113         state->m_aga_sprdata[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
114         state->m_aga_sprdata[sprite][1] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
115115         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
116         state->m_aga_sprdata[sprite][2] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
117         state->m_aga_sprdata[sprite][3] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
116         state->m_aga_sprdata[sprite][2] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
117         state->m_aga_sprdata[sprite][3] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
118118         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
119         state->m_aga_sprdatb[sprite][0] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
120         state->m_aga_sprdatb[sprite][1] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
119         state->m_aga_sprdatb[sprite][0] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
120         state->m_aga_sprdatb[sprite][1] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
121121         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
122         state->m_aga_sprdatb[sprite][2] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
123         state->m_aga_sprdatb[sprite][3] = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
122         state->m_aga_sprdatb[sprite][2] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 0);
123         state->m_aga_sprdatb[sprite][3] = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) + 2);
124124         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * sprite) += 4;
125125         state->m_aga_sprite_fetched_words = 4;
126126         if (LOG_SPRITE_DMA) logerror("%3d:sprite %d fetch: data=%04X-%04X %04X-%04X %04X-%04X %04X-%04X\n",
r32814r32815
158158         state->m_sprite_dma_reload_mask &= ~bitmask;
159159
160160         /* fetch data into the control words */
161         CUSTOM_REG(REG_SPR0POS + 4 * num) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
162         CUSTOM_REG(REG_SPR0CTL + 4 * num) = (*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
161         CUSTOM_REG(REG_SPR0POS + 4 * num) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 0);
162         CUSTOM_REG(REG_SPR0CTL + 4 * num) = state->chip_ram_r(CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) + 2);
163163         CUSTOM_REG_LONG(REG_SPR0PTH + 2 * num) += 4;
164164         /* fetch additional words */
165165         switch((CUSTOM_REG(REG_FMODE) >> 2) & 0x03)
r32814r32815
376376   switch (CUSTOM_REG(REG_FMODE) & 0x03)
377377   {
378378      case 0:
379         aga_bpldat[plane] = (UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
379         aga_bpldat[plane] = (UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
380380         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
381381         break;
382382      case 1:
383383      case 2:
384         aga_bpldat[plane] = (UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 16;
384         aga_bpldat[plane] = (UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 16;
385385         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
386         aga_bpldat[plane] |= ((UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)));
386         aga_bpldat[plane] |= ((UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)));
387387         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
388388         break;
389389      case 3:
390         aga_bpldat[plane] = (UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 48;
390         aga_bpldat[plane] = (UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2)) << 48;
391391         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
392         aga_bpldat[plane] |= ((UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 32;
392         aga_bpldat[plane] |= ((UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 32;
393393         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
394         aga_bpldat[plane] |= ((UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 16;
394         aga_bpldat[plane] |= ((UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2))) << 16;
395395         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
396         aga_bpldat[plane] |= (UINT64)(*state->m_chip_ram_r)(state, CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
396         aga_bpldat[plane] |= (UINT64)state->chip_ram_r(CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2));
397397         CUSTOM_REG_LONG(REG_BPL1PTH + plane * 2) += 2;
398398         break;
399399   }
trunk/src/mame/drivers/cubo.c
r32814r32815
360360
361361   typedef void (cubo_state::*input_hack_func)();
362362   input_hack_func m_input_hack;
363
363   void chip_ram_w8_hack(offs_t byteoffs, UINT8 data);
364364   void cndypuzl_input_hack();
365365   void haremchl_input_hack();
366366   void lsrquiz_input_hack();
r32814r32815
415415   AM_RANGE(0x800010, 0x800013) AM_READ_PORT("DIPSW2")
416416   AM_RANGE(0xb80000, 0xb8003f) AM_DEVREADWRITE("akiko", akiko_device, read, write)
417417   AM_RANGE(0xbf0000, 0xbfffff) AM_READWRITE16(cia_r, gayle_cia_w, 0xffffffff)
418   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs")
418   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff)
419419   AM_RANGE(0xe00000, 0xe7ffff) AM_ROM AM_REGION("kickstart", 0x80000)
420420   AM_RANGE(0xa00000, 0xf7ffff) AM_NOP
421421   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
r32814r32815
11701170 *
11711171 *************************************/
11721172
1173void cubo_state::chip_ram_w8_hack(offs_t byteoffs, UINT8 data)
1174{
1175   UINT16 word = chip_ram_r(byteoffs);
1176
1177   if (byteoffs & 1)
1178      word = (word & 0xff00) | data;
1179   else
1180      word = (word & 0x00ff) | (((UINT16)data) << 8);
1181
1182   chip_ram_w(byteoffs, word);
1183}
1184
11731185void cubo_state::cndypuzl_input_hack()
11741186{
11751187   if (m_maincpu->pc < m_chip_ram.bytes())
11761188   {
11771189      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1178      (*m_chip_ram_w)(this, r_A5 - 0x7ebe, 0x0000);
1190      chip_ram_w(r_A5 - 0x7ebe, 0x0000);
11791191   }
11801192}
11811193
r32814r32815
11901202   if (m_maincpu->pc < m_chip_ram.bytes())
11911203   {
11921204      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1193      UINT32 r_A2 = ((*m_chip_ram_r)(this, r_A5 - 0x7f00 + 0) << 16) | ((*m_chip_ram_r)(this, r_A5 - 0x7f00 + 2));
1194      amiga_chip_ram_w8(this, r_A2 + 0x1f, 0x00);
1205      UINT32 r_A2 = (chip_ram_r(r_A5 - 0x7f00 + 0) << 16) | (chip_ram_r(r_A5 - 0x7f00 + 2));
1206      chip_ram_w8_hack(r_A2 + 0x1f, 0x00);
11951207   }
11961208}
11971209
r32814r32815
12061218   if (m_maincpu->pc < m_chip_ram.bytes())
12071219   {
12081220      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1209      UINT32 r_A2 = ((*m_chip_ram_r)(this, r_A5 - 0x7fe0 + 0) << 16) | ((*m_chip_ram_r)(this, r_A5 - 0x7fe0 + 2));
1210      amiga_chip_ram_w8(this, r_A2 + 0x13, 0x00);
1221      UINT32 r_A2 = (chip_ram_r(r_A5 - 0x7fe0 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fe0 + 2));
1222      chip_ram_w8_hack(r_A2 + 0x13, 0x00);
12111223   }
12121224}
12131225
r32814r32815
12231235   if (m_maincpu->pc < m_chip_ram.bytes())
12241236   {
12251237      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1226      UINT32 r_A2 = ((*m_chip_ram_r)(this, r_A5 - 0x7fdc + 0) << 16) | ((*m_chip_ram_r)(this, r_A5 - 0x7fdc + 2));
1227      amiga_chip_ram_w8(this, r_A2 + 0x17, 0x00);
1238      UINT32 r_A2 = (chip_ram_r(r_A5 - 0x7fdc + 0) << 16) | (chip_ram_r(r_A5 - 0x7fdc + 2));
1239      chip_ram_w8_hack(r_A2 + 0x17, 0x00);
12281240   }
12291241}
12301242
r32814r32815
12391251   if (m_maincpu->pc < m_chip_ram.bytes())
12401252   {
12411253      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1242      UINT32 r_A2 = ((*m_chip_ram_r)(this, r_A5 - 0x7fa2 + 0) << 16) | ((*m_chip_ram_r)(this, r_A5 - 0x7fa2 + 2));
1243      amiga_chip_ram_w8(this, r_A2 + 0x24, 0x00);
1254      UINT32 r_A2 = (chip_ram_r(r_A5 - 0x7fa2 + 0) << 16) | (chip_ram_r(r_A5 - 0x7fa2 + 2));
1255      chip_ram_w8_hack(r_A2 + 0x24, 0x00);
12441256   }
12451257}
12461258
r32814r32815
12551267   if (m_maincpu->pc < m_chip_ram.bytes())
12561268   {
12571269      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1258      (*m_chip_ram_w)(this, r_A5 - 0x7ed8, 0x0000);
1270      chip_ram_w(r_A5 - 0x7ed8, 0x0000);
12591271   }
12601272}
12611273
r32814r32815
12701282   if (m_maincpu->pc < m_chip_ram.bytes())
12711283   {
12721284      UINT32 r_A5 = m_maincpu->state_int(M68K_A5);
1273      amiga_chip_ram_w8(this, r_A5 - 0x7eca, 0x00);
1285      chip_ram_w8_hack(r_A5 - 0x7eca, 0x00);
12741286   }
12751287}
12761288
trunk/src/mame/drivers/upscope.c
r32814r32815
216216   AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
217217   AM_RANGE(0xd80000, 0xddffff) AM_NOP
218218   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
219   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
219   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
220220   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
221221   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
222222   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
trunk/src/mame/drivers/mquake.c
r32814r32815
126126   AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
127127   AM_RANGE(0xd80000, 0xddffff) AM_NOP
128128   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
129   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
129   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
130130   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
131131   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
132132   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
trunk/src/mame/drivers/arcadia.c
r32814r32815
194194   AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
195195   AM_RANGE(0xd80000, 0xddffff) AM_NOP
196196   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
197   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
197   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
198198   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
199199   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
200200   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
trunk/src/mame/drivers/alg.c
r32814r32815
168168   AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
169169   AM_RANGE(0xd80000, 0xddffff) AM_NOP
170170   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
171   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
171   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
172172   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
173173   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
174174   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
trunk/src/emu/machine/amigafdc.c
r32814r32815
7474void amiga_fdc::dma_write(UINT16 value)
7575{
7676   amiga_state *state = machine().driver_data<amiga_state>();
77   (*state->m_chip_ram_w)(state, dskpt, value);
77   state->chip_ram_w(dskpt, value);
7878
7979   dskpt += 2;
8080   dsklen--;
r32814r32815
8888UINT16 amiga_fdc::dma_read()
8989{
9090   amiga_state *state = machine().driver_data<amiga_state>();
91   UINT16 res = (*state->m_chip_ram_r)(state, dskpt);
91   UINT16 res = state->chip_ram_r(dskpt);
9292
9393   dskpt += 2;
9494   dsklen--;
trunk/src/emu/machine/akiko.c
r32814r32815
510510         data <<= 8;
511511         data |= buf[i+1];
512512
513         (*amiga->m_chip_ram_w)( amiga, m_cdrom_address[0] + (index*4096) + i, data );
513         amiga->chip_ram_w(m_cdrom_address[0] + (index*4096) + i, data );
514514      }
515515
516516      m_cdrom_readmask |= ( 1 << index );
trunk/src/emu/sound/amiga.c
r32814r32815
212212               chan->curlocation++;
213213            if (chan->dma_enabled && !(chan->curlocation & 1))
214214            {
215               CUSTOM_REG(REG_AUD0DAT + channum * 8) = (*state->m_chip_ram_r)(state, chan->curlocation);
215               CUSTOM_REG(REG_AUD0DAT + channum * 8) = state->chip_ram_r(chan->curlocation);
216216               if (chan->curlength != 0)
217217                  chan->curlength--;
218218
trunk/src/mess/drivers/amiga.c
r32814r32815
952952   ADDRESS_MAP_UNMAP_HIGH
953953   AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap16)
954954   AM_RANGE(0xa00000, 0xbfffff) AM_READWRITE(cia_r, cia_w)
955   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
955   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
956956   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
957957   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
958958   AM_RANGE(0xf80000, 0xfbffff) AM_DEVICE("bootrom", address_map_bank_device, amap16)
r32814r32815
10051005   AM_RANGE(0xdc0000, 0xdc7fff) AM_READWRITE(clock_r, clock_w)
10061006   AM_RANGE(0xd80000, 0xddffff) AM_NOP
10071007   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
1008   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
1008   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
10091009   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
10101010   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
10111011   AM_RANGE(0xf00000, 0xf7ffff) AM_NOP // cartridge space
r32814r32815
10201020   AM_RANGE(0xc00000, 0xd7ffff) AM_READWRITE(custom_chip_r, custom_chip_w)
10211021   AM_RANGE(0xd80000, 0xddffff) AM_NOP
10221022   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
1023   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
1023   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
10241024   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
10251025   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
10261026   AM_RANGE(0xf00000, 0xf7ffff) AM_NOP // cartridge space
r32814r32815
10381038   AM_RANGE(0xdc8000, 0xdc87ff) AM_MIRROR(0x7800) AM_RAM AM_SHARE("sram")
10391039   AM_RANGE(0xdd0000, 0xddffff) AM_NOP
10401040   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
1041   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
1041   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
10421042   AM_RANGE(0xe00000, 0xe3ffff) AM_MIRROR(0x40000) AM_RAM AM_SHARE("memcard")
10431043   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
10441044   AM_RANGE(0xf00000, 0xf3ffff) AM_MIRROR(0x40000) AM_ROM AM_REGION("cdrom", 0)
r32814r32815
10581058   AM_RANGE(0x00dc0000, 0x00dcffff) AM_DEVREADWRITE8("rtc", rp5c01_device, read, write, 0x000000ff)
10591059   AM_RANGE(0x00dd0000, 0x00ddffff) AM_READWRITE(scsi_r, scsi_w)
10601060   AM_RANGE(0x00de0000, 0x00deffff) AM_READWRITE(motherboard_r, motherboard_w)
1061   AM_RANGE(0x00df0000, 0x00dfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs")
1061   AM_RANGE(0x00df0000, 0x00dfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff)
10621062   AM_RANGE(0x00e80000, 0x00efffff) AM_NOP // autoconfig space (installed by devices)
10631063   AM_RANGE(0x00f00000, 0x00f7ffff) AM_NOP // cartridge space
10641064   AM_RANGE(0x00f80000, 0x00ffffff) AM_ROM AM_REGION("kickstart", 0)
r32814r32815
10761076   AM_RANGE(0xdc0000, 0xdc7fff) AM_READWRITE(clock_r, clock_w)
10771077   AM_RANGE(0xd80000, 0xddffff) AM_NOP
10781078   AM_RANGE(0xde0000, 0xdeffff) AM_READWRITE(custom_chip_r, custom_chip_w)
1079   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
1079   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
10801080   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
10811081   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
10821082   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)
r32814r32815
10991099   AM_RANGE(0xdc0000, 0xdcffff) AM_NOP // rtc
11001100   AM_RANGE(0xdd0000, 0xddffff) AM_NOP // reserved (dma controller)
11011101   AM_RANGE(0xde0000, 0xdeffff) AM_DEVREADWRITE("gayle", gayle_device, gayle_id_r, gayle_id_w)
1102   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w) AM_SHARE("custom_regs")
1102   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE(custom_chip_r, custom_chip_w)
11031103   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror_r)
11041104   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
11051105   AM_RANGE(0xf00000, 0xf7ffff) AM_NOP // cartridge space
r32814r32815
11231123   AM_RANGE(0xdc0000, 0xdcffff) AM_NOP // rtc
11241124   AM_RANGE(0xdd0000, 0xddffff) AM_NOP // reserved (dma controller)
11251125   AM_RANGE(0xde0000, 0xdeffff) AM_DEVREADWRITE16("gayle", gayle_device, gayle_id_r, gayle_id_w, 0xffffffff)
1126   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs")
1126   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff)
11271127   AM_RANGE(0xe00000, 0xe7ffff) AM_WRITENOP AM_READ(rom_mirror32_r)
11281128   AM_RANGE(0xe80000, 0xefffff) AM_NOP // autoconfig space (installed by devices)
11291129   AM_RANGE(0xf00000, 0xf7ffff) AM_NOP // cartridge space
r32814r32815
11461146   AM_RANGE(0x00dd1000, 0x00dd3fff) AM_READWRITE16(ide_r, ide_w, 0xffffffff)
11471147   AM_RANGE(0x00dd4000, 0x00ddffff) AM_NOP
11481148   AM_RANGE(0x00de0000, 0x00deffff) AM_READWRITE(motherboard_r, motherboard_w)
1149   AM_RANGE(0x00df0000, 0x00dfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs")
1149   AM_RANGE(0x00df0000, 0x00dfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff)
11501150   AM_RANGE(0x00e00000, 0x00e7ffff) AM_WRITENOP AM_READ(rom_mirror32_r)
11511151   AM_RANGE(0x00e80000, 0x00efffff) AM_NOP // zorro2 autoconfig space (installed by devices)
11521152   AM_RANGE(0x00f00000, 0x00f7ffff) AM_NOP // cartridge space
r32814r32815
11711171   AM_RANGE(0x000000, 0x1fffff) AM_DEVICE("overlay", address_map_bank_device, amap32)
11721172   AM_RANGE(0xb80000, 0xb8003f) AM_DEVREADWRITE("akiko", akiko_device, read, write)
11731173   AM_RANGE(0xbf0000, 0xbfffff) AM_READWRITE16(cia_r, gayle_cia_w, 0xffffffff)
1174   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff) AM_SHARE("custom_regs")
1174   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE16(custom_chip_r, custom_chip_w, 0xffffffff)
11751175   AM_RANGE(0xe00000, 0xe7ffff) AM_ROM AM_REGION("kickstart", 0x80000)
11761176   AM_RANGE(0xa00000, 0xf7ffff) AM_NOP
11771177   AM_RANGE(0xf80000, 0xffffff) AM_ROM AM_REGION("kickstart", 0)

Previous 199869 Revisions Next


© 1997-2024 The MAME Team