Previous 15994 Revisions Next

r14942 Monday 16th April, 2012 at 13:00:12 UTC by Miodrag Milanović
Sync with MAME r15999 (no whatsnew)
[src/mame/drivers]alg.c arcadia.c cd32.c chinagat.c galaga.c mquake.c namcos11.c pipedrm.c upscope.c
[src/mame/includes]amiga.h ddragon.h fromance.h galaga.h
[src/mame/machine]amiga.c
[src/mame/video]fromance.c
[src/mess/drivers]ami1200.c amiga.c
[src/mess/machine]amigacrt.c

src/mame/machine/amiga.c
r14941r14942
155155static UINT16 amiga_chip_ram16_r(amiga_state *state, offs_t offset)
156156{
157157   offset &= state->m_intf->chip_ram_mask;
158   return (offset < state->m_chip_ram_size) ? state->m_chip_ram[offset/2] : 0xffff;
158   return (offset < state->m_chip_ram.bytes()) ? state->m_chip_ram[offset/2] : 0xffff;
159159}
160160
161161static UINT16 amiga_chip_ram32_r(amiga_state *state, offs_t offset)
162162{
163163   offset &= state->m_intf->chip_ram_mask;
164164
165   if (offset < state->m_chip_ram_size)
165   if (offset < state->m_chip_ram.bytes())
166166   {
167      UINT32 *amiga_chip_ram32 = (UINT32 *)state->m_chip_ram;
167      UINT32 *amiga_chip_ram32 = reinterpret_cast<UINT32 *>(state->m_chip_ram.target());
168168      UINT32   dat = amiga_chip_ram32[offset / 4];
169169
170170      if ( offset & 2 )
r14941r14942
180180{
181181   offset &= state->m_intf->chip_ram_mask;
182182
183   if (offset < state->m_chip_ram_size)
183   if (offset < state->m_chip_ram.bytes())
184184      state->m_chip_ram[offset/2] = data;
185185}
186186
r14941r14942
188188{
189189   offset &= state->m_intf->chip_ram_mask;
190190
191   if (offset < state->m_chip_ram_size)
191   if (offset < state->m_chip_ram.bytes())
192192   {
193      UINT32 *amiga_chip_ram32 = (UINT32 *)state->m_chip_ram;
193      UINT32 *amiga_chip_ram32 = reinterpret_cast<UINT32 *>(state->m_chip_ram.target());
194194      UINT32   dat = amiga_chip_ram32[offset / 4];
195195
196196      if ( offset & 2 )
src/mame/includes/amiga.h
r14941r14942
374374public:
375375   amiga_state(const machine_config &mconfig, device_type type, const char *tag)
376376      : driver_device(mconfig, type, tag),
377        m_custom_regs(*this, "custom_regs") { }
377        m_chip_ram(*this, "chip_ram", 0),
378        m_custom_regs(*this, "custom_regs", 0) { }
378379
379   UINT16 *m_chip_ram;
380   size_t m_chip_ram_size;
380   required_shared_ptr<UINT16> m_chip_ram;
381381   UINT16 (*m_chip_ram_r)(amiga_state *state, offs_t offset);
382382   void (*m_chip_ram_w)(amiga_state *state, offs_t offset, UINT16 data);
383383   required_shared_ptr<UINT16> m_custom_regs;
src/mame/includes/galaga.h
r14941r14942
99      m_galaga_ram1(*this, "galaga_ram1"),
1010      m_galaga_ram2(*this, "galaga_ram2"),
1111      m_galaga_ram3(*this, "galaga_ram3"),
12      m_galaga_starcontrol(*this, "galaga_starcontrol")
12      m_galaga_starcontrol(*this, "starcontrol")
1313      { }
1414
1515   /* memory pointers */
r14941r14942
5353      m_xevious_sr1(*this, "xevious_sr1"),
5454      m_xevious_sr2(*this, "xevious_sr2"),
5555      m_xevious_sr3(*this, "xevious_sr3"),
56      m_xevious_fg_colorram(*this, "xevious_fg_colorram"),
57      m_xevious_bg_colorram(*this, "xevious_bg_colorram"),
58      m_xevious_fg_videoram(*this, "xevious_fg_videoram"),
59      m_xevious_bg_videoram(*this, "xevious_bg_videoram") { }
56      m_xevious_fg_colorram(*this, "fg_colorram"),
57      m_xevious_bg_colorram(*this, "bg_colorram"),
58      m_xevious_fg_videoram(*this, "fg_videoram"),
59      m_xevious_bg_videoram(*this, "bg_videoram") { }
6060
6161   required_shared_ptr<UINT8> m_xevious_sr1;
6262   required_shared_ptr<UINT8> m_xevious_sr2;
r14941r14942
7676   bosco_state(const machine_config &mconfig, device_type type, const char *tag)
7777      : galaga_state(mconfig, type, tag),
7878        m_bosco_radarattr(*this, "bosco_radarattr"),
79        m_bosco_starcontrol(*this, "bosco_starcontrol"),
79        m_bosco_starcontrol(*this, "starcontrol"),
8080        m_bosco_starblink(*this, "bosco_starblink") { }
8181
8282   required_shared_ptr<UINT8> m_bosco_radarattr;
src/mame/includes/fromance.h
r14941r14942
1111{
1212public:
1313   fromance_state(const machine_config &mconfig, device_type type, const char *tag)
14      : driver_device(mconfig, type, tag) { }
14      : driver_device(mconfig, type, tag),
15        m_videoram(*this, "videoram"),
16        m_spriteram(*this, "spriteram") { }
1517
1618   /* memory pointers (used by pipedrm) */
17   UINT8 *  m_videoram;
18   UINT8 *  m_spriteram;
19   optional_shared_ptr<UINT8> m_videoram;
20   optional_shared_ptr<UINT8> m_spriteram;
1921//  UINT8 *  m_paletteram;    // currently this uses generic palette handling
20   size_t   m_videoram_size;
21   size_t   m_spriteram_size;
2222
2323   /* video-related */
2424   tilemap_t  *m_bg_tilemap;
src/mame/includes/ddragon.h
r14941r14942
2828   optional_shared_ptr<UINT8> m_darktowr_mcu_ports;
2929//  UINT8 *        m_paletteram;  // currently this uses generic palette handling
3030//  UINT8 *        m_paletteram_2;    // currently this uses generic palette handling
31   size_t         m_spriteram_size;   // FIXME: this appears in chinagat.c, but is it really used?
3231
3332   /* video-related */
3433   tilemap_t        *m_fg_tilemap;
src/mame/video/fromance.c
r14941r14942
304304   int offs;
305305
306306   /* draw the sprites */
307   for (offs = 0; offs < state->m_spriteram_size; offs += 8)
307   for (offs = 0; offs < state->m_spriteram.bytes(); offs += 8)
308308   {
309309      int data2 = spriteram[offs + 4] | (spriteram[offs + 5] << 8);
310310      int priority = (data2 >> 4) & 1;
src/mame/drivers/pipedrm.c
r14941r14942
269269   AM_RANGE(0x8000, 0x9fff) AM_RAM
270270   AM_RANGE(0xa000, 0xbfff) AM_ROMBANK("bank1")
271271   AM_RANGE(0xc000, 0xcfff) AM_RAM_WRITE(paletteram_xRRRRRGGGGGBBBBB_byte_le_w) AM_SHARE("paletteram")
272   AM_RANGE(0xd000, 0xffff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w) AM_BASE_SIZE(m_videoram, m_videoram_size)
272   AM_RANGE(0xd000, 0xffff) AM_READWRITE(fromance_videoram_r, fromance_videoram_w) AM_SHARE("videoram")
273273ADDRESS_MAP_END
274274
275275
r14941r14942
879879   fromance_state *state = machine.driver_data<fromance_state>();
880880
881881   /* sprite RAM lives at the end of palette RAM */
882   state->m_spriteram = &state->m_generic_paletteram_8[0xc00];
883   state->m_spriteram_size = 0x400;
882   state->m_spriteram.set_target(&state->m_generic_paletteram_8[0xc00], 0x400);
884883   machine.device("maincpu")->memory().space(AS_PROGRAM)->install_ram(0xcc00, 0xcfff, state->m_spriteram);
885884}
886885
src/mame/drivers/chinagat.c
r14941r14942
311311   AM_RANGE(0x2800, 0x2fff) AM_RAM_WRITE(ddragon_bgvideoram_w) AM_SHARE("bgvideoram")
312312   AM_RANGE(0x3000, 0x317f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_lo_w) AM_SHARE("paletteram")
313313   AM_RANGE(0x3400, 0x357f) AM_WRITE(paletteram_xxxxBBBBGGGGRRRR_byte_split_hi_w) AM_SHARE("paletteram2")
314   AM_RANGE(0x3800, 0x397f) AM_WRITE_BANK("bank3") AM_BASE_SIZE(m_spriteram, m_spriteram_size)
314   AM_RANGE(0x3800, 0x397f) AM_WRITE_BANK("bank3") AM_SHARE("spriteram")
315315   AM_RANGE(0x3e00, 0x3e04) AM_WRITE_LEGACY(chinagat_interrupt_w)
316316   AM_RANGE(0x3e06, 0x3e06) AM_WRITEONLY AM_SHARE("scrolly_lo")
317317   AM_RANGE(0x3e07, 0x3e07) AM_WRITEONLY AM_SHARE("scrollx_lo")
src/mame/drivers/arcadia.c
r14941r14942
195195
196196static ADDRESS_MAP_START( amiga_map, AS_PROGRAM, 16, arcadia_amiga_state )
197197   ADDRESS_MAP_UNMAP_HIGH
198   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
198   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
199199   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
200200   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
201201   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
src/mame/drivers/cd32.c
r14941r14942
12381238{
12391239   cd32_state *state = machine.driver_data<cd32_state>();
12401240
1241   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1241   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
12421242   {
12431243      //(*state->m_chip_ram_w)(0x051c02, 0x0000);
12441244
r14941r14942
12581258{
12591259   cd32_state *state = machine.driver_data<cd32_state>();
12601260
1261   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1261   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
12621262   {
12631263      //amiga_chip_ram_w8(state, 0x002907, 0x00);
12641264
r14941r14942
12791279{
12801280   cd32_state *state = machine.driver_data<cd32_state>();
12811281
1282   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1282   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
12831283   {
12841284      //amiga_chip_ram_w8(state, 0x001e1b, 0x00);
12851285
r14941r14942
13011301{
13021302   cd32_state *state = machine.driver_data<cd32_state>();
13031303
1304   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1304   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
13051305   {
13061306      //amiga_chip_ram_w8(state, 0x046107, 0x00);
13071307
r14941r14942
13221322{
13231323   cd32_state *state = machine.driver_data<cd32_state>();
13241324
1325   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1325   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
13261326   {
13271327      //amiga_chip_ram_w8(state, 0x00281c, 0x00);
13281328
r14941r14942
13431343{
13441344   cd32_state *state = machine.driver_data<cd32_state>();
13451345
1346   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1346   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
13471347   {
13481348      //(*state->m_chip_ram_w)(0x04bfa0, 0x0000);
13491349
r14941r14942
13631363{
13641364   cd32_state *state = machine.driver_data<cd32_state>();
13651365
1366   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram_size)
1366   if (cpu_get_pc(machine.device("maincpu")) < state->m_chip_ram.bytes())
13671367   {
13681368      //amiga_chip_ram_w8(state, 0x044f7e, 0x00);
13691369
src/mame/drivers/namcos11.c
r14941r14942
285285   namcos11_state(const machine_config &mconfig, device_type type, const char *tag)
286286      : psx_state(mconfig, type, tag),
287287      m_sharedram(*this,"sharedram"),
288      m_keycus(*this,"keycus"),
288289      m_maincpu(*this,"maincpu"),
289290      m_mcu(*this,"c76")
290291      { }
291292
292293   required_shared_ptr<UINT32> m_sharedram;
293   UINT32 *m_keycus;
294   required_shared_ptr<UINT32> m_keycus;
294295   size_t m_keycus_size;
295296   UINT8 m_su_83;
296297
r14941r14942
714715static ADDRESS_MAP_START( namcos11_map, AS_PROGRAM, 32, namcos11_state )
715716   AM_RANGE(0x00000000, 0x003fffff) AM_RAM   AM_SHARE("share1") /* ram */
716717   AM_RANGE(0x1fa04000, 0x1fa0ffff) AM_RAM AM_SHARE("sharedram") /* shared ram with C76 */
717   AM_RANGE(0x1fa20000, 0x1fa2ffff) AM_WRITE(keycus_w) AM_BASE_SIZE(m_keycus, m_keycus_size) /* keycus */
718   AM_RANGE(0x1fa20000, 0x1fa2ffff) AM_WRITE(keycus_w) AM_SHARE("keycus") /* keycus */
718719   AM_RANGE(0x1fa30000, 0x1fa30fff) AM_DEVREADWRITE8_LEGACY("at28c16", at28c16_r, at28c16_w, 0x00ff00ff) /* eeprom */
719720   AM_RANGE(0x1fb00000, 0x1fb00003) AM_WRITENOP /* ?? */
720721   AM_RANGE(0x1fbf6000, 0x1fbf6003) AM_WRITENOP /* ?? */
src/mame/drivers/alg.c
r14941r14942
280280
281281static ADDRESS_MAP_START( main_map_r1, AS_PROGRAM, 16, alg_state )
282282   ADDRESS_MAP_UNMAP_HIGH
283   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
283   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
284284   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
285285   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
286286   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
r14941r14942
293293
294294static ADDRESS_MAP_START( main_map_r2, AS_PROGRAM, 16, alg_state )
295295   ADDRESS_MAP_UNMAP_HIGH
296   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
296   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
297297   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
298298   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
299299   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
r14941r14942
306306
307307static ADDRESS_MAP_START( main_map_picmatic, AS_PROGRAM, 16, alg_state )
308308   ADDRESS_MAP_UNMAP_HIGH
309   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
309   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
310310   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
311311   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) AM_SHARE("custom_regs")
312312   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
src/mame/drivers/galaga.c
r14941r14942
932932   AM_RANGE(0x9800, 0x980f) AM_WRITEONLY AM_SHARE("bosco_radarattr")
933933   AM_RANGE(0x9810, 0x9810) AM_WRITE_LEGACY(bosco_scrollx_w)
934934   AM_RANGE(0x9820, 0x9820) AM_WRITE_LEGACY(bosco_scrolly_w)
935   AM_RANGE(0x9830, 0x9830) AM_WRITEONLY AM_SHARE("bosco_starcontrol")
935   AM_RANGE(0x9830, 0x9830) AM_WRITEONLY AM_SHARE("starcontrol")
936936   AM_RANGE(0x9840, 0x9840) AM_WRITE_LEGACY(bosco_starclr_w)
937937   AM_RANGE(0x9870, 0x9870) AM_WRITE(bosco_flip_screen_w)
938938   AM_RANGE(0x9874, 0x9875) AM_WRITEONLY AM_SHARE("bosco_starblink")
r14941r14942
951951   AM_RANGE(0x8800, 0x8bff) AM_RAM AM_SHARE("galaga_ram1")
952952   AM_RANGE(0x9000, 0x93ff) AM_RAM AM_SHARE("galaga_ram2")
953953   AM_RANGE(0x9800, 0x9bff) AM_RAM AM_SHARE("galaga_ram3")
954   AM_RANGE(0xa000, 0xa005) AM_WRITEONLY AM_SHARE("galaga_starcontrol")
954   AM_RANGE(0xa000, 0xa005) AM_WRITEONLY AM_SHARE("starcontrol")
955955   AM_RANGE(0xa007, 0xa007) AM_WRITE(galaga_flip_screen_w)
956956ADDRESS_MAP_END
957957
r14941r14942
968968   AM_RANGE(0x8000, 0x87ff) AM_RAM AM_SHARE("xevious_sr1")   /* work RAM + sprite registers */
969969   AM_RANGE(0x9000, 0x97ff) AM_RAM AM_SHARE("xevious_sr2")   /* work RAM + sprite registers */
970970   AM_RANGE(0xa000, 0xa7ff) AM_RAM AM_SHARE("xevious_sr3")   /* work RAM + sprite registers */
971   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE_LEGACY(xevious_fg_colorram_w) AM_SHARE("xevious_fg_colorram")
972   AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE_LEGACY(xevious_bg_colorram_w) AM_SHARE("xevious_bg_colorram")
973   AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(xevious_fg_videoram_w) AM_SHARE("xevious_fg_videoram")
974   AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(xevious_bg_videoram_w) AM_SHARE("xevious_bg_videoram")
971   AM_RANGE(0xb000, 0xb7ff) AM_RAM_WRITE_LEGACY(xevious_fg_colorram_w) AM_SHARE("fg_colorram")
972   AM_RANGE(0xb800, 0xbfff) AM_RAM_WRITE_LEGACY(xevious_bg_colorram_w) AM_SHARE("bg_colorram")
973   AM_RANGE(0xc000, 0xc7ff) AM_RAM_WRITE_LEGACY(xevious_fg_videoram_w) AM_SHARE("fg_videoram")
974   AM_RANGE(0xc800, 0xcfff) AM_RAM_WRITE_LEGACY(xevious_bg_videoram_w) AM_SHARE("bg_videoram")
975975   AM_RANGE(0xd000, 0xd07f) AM_WRITE_LEGACY(xevious_vh_latch_w)
976976   AM_RANGE(0xf000, 0xffff) AM_READWRITE_LEGACY(xevious_bb_r, xevious_bs_w)
977977ADDRESS_MAP_END
src/mame/drivers/upscope.c
r14941r14942
243243
244244static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, upscope_state )
245245   ADDRESS_MAP_UNMAP_HIGH
246   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
246   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
247247   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
248248   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w)  AM_SHARE("custom_regs")
249249   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
src/mame/drivers/mquake.c
r14941r14942
133133
134134static ADDRESS_MAP_START( main_map, AS_PROGRAM, 16, amiga_state )
135135   ADDRESS_MAP_UNMAP_HIGH
136   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
136   AM_RANGE(0x000000, 0x07ffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
137137   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
138138   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w)  AM_SHARE("custom_regs")
139139   AM_RANGE(0xe80000, 0xe8ffff) AM_READWRITE_LEGACY(amiga_autoconfig_r, amiga_autoconfig_w)
src/mess/machine/amigacrt.c
r14941r14942
230230
231231      if ( offset == 0x03 ) /* disable cart oberlay on chip mem */
232232      {
233         UINT32 mirror_mask = state->m_chip_ram_size;
233         UINT32 mirror_mask = state->m_chip_ram.bytes();
234234
235235         memory_set_bank(space->machine(), "bank1", 0);
236236
r14941r14942
240240         }
241241
242242         /* overlay disabled, map RAM on 0x000000 */
243         space->install_write_bank(0x000000, state->m_chip_ram_size - 1, 0, mirror_mask, "bank1");
243         space->install_write_bank(0x000000, state->m_chip_ram.bytes() - 1, 0, mirror_mask, "bank1");
244244      }
245245   }
246246
r14941r14942
282282      memory_set_bank(machine, "bank1", 2);
283283
284284      /* writes go to chipram */
285      machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x000000, state->m_chip_ram_size - 1, FUNC(amiga_ar23_chipmem_w));
285      machine.device("maincpu")->memory().space(AS_PROGRAM)->install_legacy_write_handler(0x000000, state->m_chip_ram.bytes() - 1, FUNC(amiga_ar23_chipmem_w));
286286
287287      /* trigger NMI irq */
288288      cputag_set_input_line(machine, "maincpu", 7, PULSE_LINE);
src/mess/drivers/amiga.c
r14941r14942
9494
9595static ADDRESS_MAP_START(amiga_mem, AS_PROGRAM, 16, amiga_state )
9696   ADDRESS_MAP_UNMAP_HIGH
97   AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x80000) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
97   AM_RANGE(0x000000, 0x07ffff) AM_MIRROR(0x80000) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
9898   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
9999   AM_RANGE(0xc00000, 0xc7ffff) AM_RAM /* slow-mem */
100100   AM_RANGE(0xc80000, 0xcfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w)   /* see Note 1 above */
r14941r14942
148148 */
149149
150150static ADDRESS_MAP_START(cdtv_mem, AS_PROGRAM, 16, amiga_state )
151   AM_RANGE(0x000000, 0x0fffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
151   AM_RANGE(0x000000, 0x0fffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
152152   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
153153   AM_RANGE(0xdc0000, 0xdc003f) AM_READWRITE_LEGACY(amiga_clock_r, amiga_clock_w)
154154   AM_RANGE(0xdc8000, 0xdc87ff) AM_RAM AM_SHARE("nvram")
r14941r14942
176176ADDRESS_MAP_END
177177
178178static ADDRESS_MAP_START(a1000_mem, AS_PROGRAM, 16, amiga_state )
179   AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0xc0000) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
179   AM_RANGE(0x000000, 0x03ffff) AM_MIRROR(0xc0000) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
180180   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE_LEGACY(amiga_cia_r, amiga_cia_w)
181181   AM_RANGE(0xc00000, 0xc3ffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) /* See Note 1 above */
182182   AM_RANGE(0xdf0000, 0xdfffff) AM_READWRITE_LEGACY(amiga_custom_r, amiga_custom_w) AM_BASE(m_custom_regs)   /* Custom Chips */
r14941r14942
540540
541541   /* swap the write handlers between ROM and bank 1 based on the bit */
542542   if ((data & 1) == 0) {
543      UINT32 mirror_mask = state->m_chip_ram_size;
543      UINT32 mirror_mask = state->m_chip_ram.bytes();
544544
545545      while( (mirror_mask<<1) < 0x100000 ) {
546546         mirror_mask |= ( mirror_mask << 1 );
547547      }
548548
549549      /* overlay disabled, map RAM on 0x000000 */
550      device->machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0x000000, state->m_chip_ram_size - 1, 0, mirror_mask, "bank1");
550      device->machine().device("maincpu")->memory().space(AS_PROGRAM)->install_write_bank(0x000000, state->m_chip_ram.bytes() - 1, 0, mirror_mask, "bank1");
551551
552552      /* if there is a cart region, check for cart overlay */
553553      if (device->machine().region("user2")->base() != NULL)
r14941r14942
555555   }
556556   else
557557      /* overlay enabled, map Amiga system ROM on 0x000000 */
558      device->machine().device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x000000, state->m_chip_ram_size - 1);
558      device->machine().device("maincpu")->memory().space(AS_PROGRAM)->unmap_write(0x000000, state->m_chip_ram.bytes() - 1);
559559
560560   set_led_status( device->machine(), 0, ( data & 2 ) ? 0 : 1 ); /* bit 2 = Power Led on Amiga */
561561   output_set_value("power_led", ( data & 2 ) ? 0 : 1);
src/mess/drivers/ami1200.c
r14941r14942
121121
122122static ADDRESS_MAP_START( a1200_map, AS_PROGRAM, 32, ami1200_state )
123123   ADDRESS_MAP_UNMAP_HIGH
124   AM_RANGE(0x000000, 0x1fffff) AM_RAMBANK("bank1") AM_BASE_SIZE(m_chip_ram, m_chip_ram_size)
124   AM_RANGE(0x000000, 0x1fffff) AM_RAMBANK("bank1") AM_SHARE("chip_ram")
125125   AM_RANGE(0xbfa000, 0xbfa003) AM_WRITE_LEGACY(aga_overlay_w)
126126   AM_RANGE(0xbfd000, 0xbfefff) AM_READWRITE16_LEGACY(amiga_cia_r, amiga_cia_w, 0xffffffff)
127127   AM_RANGE(0xc00000, 0xdfffff) AM_READWRITE16_LEGACY(amiga_custom_r, amiga_custom_w, 0xffffffff) AM_BASE(m_custom_regs)

Previous 15994 Revisions Next


© 1998-2018 The MESS Team