Previous 199869 Revisions Next

r21978 Wednesday 20th March, 2013 at 06:07:22 UTC by Fabio Priuli
(MESS) saturn: added missing mem_mask and removed direct access to the cart device. nw.
[src/mess/drivers]saturn.c
[src/mess/machine]sat_bram.c sat_bram.h sat_slot.c sat_slot.h

trunk/src/mess/drivers/saturn.c
r21977r21978
632632         case 0x22:
633633         case 0x23:
634634         case 0x24:
635            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_bram), m_exp->m_cart));
636            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_bram), m_exp->m_cart));
637            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_bram), m_exp->m_cart));
638            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_bram), m_exp->m_cart));
635            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
636            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
637            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x04000000, 0x047fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_bram), (sat_cart_slot_device*)m_exp));
638            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x04000000, 0x047fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_bram), (sat_cart_slot_device*)m_exp));
639639            break;
640640         case 0x5a:  // Data RAM cart
641641         case 0x5c:
642            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_dram0), m_exp->m_cart));
643            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_dram0), m_exp->m_cart));
644            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_dram1), m_exp->m_cart));
645            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_dram1), m_exp->m_cart));
646            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_dram0), m_exp->m_cart));
647            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_dram0), m_exp->m_cart));
648            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(device_sat_cart_interface::read_ext_dram1), m_exp->m_cart));
649            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(device_sat_cart_interface::write_ext_dram1), m_exp->m_cart));
642            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
643            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
644            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
645            machine().device("maincpu")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
646            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02400000, 0x025fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram0), (sat_cart_slot_device*)m_exp));
647            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02400000, 0x025fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram0), (sat_cart_slot_device*)m_exp));
648            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02600000, 0x027fffff, read32_delegate(FUNC(sat_cart_slot_device::read_ext_dram1), (sat_cart_slot_device*)m_exp));
649            machine().device("slave")->memory().space(AS_PROGRAM).install_write_handler(0x02600000, 0x027fffff, write32_delegate(FUNC(sat_cart_slot_device::write_ext_dram1), (sat_cart_slot_device*)m_exp));
650650            break;
651651         case 0: // ROM cart + mirror
652            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(device_sat_cart_interface::read_rom), m_exp->m_cart));
653            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x24ffffff, read32_delegate(FUNC(device_sat_cart_interface::read_rom), m_exp->m_cart));
654            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(device_sat_cart_interface::read_rom), m_exp->m_cart));
655            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x24ffffff, read32_delegate(FUNC(device_sat_cart_interface::read_rom), m_exp->m_cart));
652            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
653            machine().device("maincpu")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x24ffffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
654            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x02000000, 0x023fffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
655            machine().device("slave")->memory().space(AS_PROGRAM).install_read_handler(0x22000000, 0x24ffffff, read32_delegate(FUNC(sat_cart_slot_device::read_rom), (sat_cart_slot_device*)m_exp));
656656            break;
657657      }
658658   }
trunk/src/mess/machine/sat_slot.c
r21977r21978
208208READ32_MEMBER(sat_cart_slot_device::read_rom)
209209{
210210   if (m_cart)
211      return m_cart->read_rom(space, offset);
211      return m_cart->read_rom(space, offset, mem_mask);
212212   else
213213      return 0xffffffff;
214214}
r21977r21978
216216READ32_MEMBER(sat_cart_slot_device::read_ext_dram0)
217217{
218218   if (m_cart)
219      return m_cart->read_ext_dram0(space, offset);
219      return m_cart->read_ext_dram0(space, offset, mem_mask);
220220   else
221221      return 0xffffffff;
222222}
r21977r21978
224224READ32_MEMBER(sat_cart_slot_device::read_ext_dram1)
225225{
226226   if (m_cart)
227      return m_cart->read_ext_dram1(space, offset);
227      return m_cart->read_ext_dram1(space, offset, mem_mask);
228228   else
229229      return 0xffffffff;
230230}
r21977r21978
232232READ32_MEMBER(sat_cart_slot_device::read_ext_bram)
233233{
234234   if (m_cart)
235      return m_cart->read_ext_bram(space, offset);
235      return m_cart->read_ext_bram(space, offset, mem_mask);
236236   else
237237      return 0xffffffff;
238238}
239239
240#if 0
241READ32_MEMBER(sat_cart_slot_device::read_ext_bram)
242{
243   if (m_cart)
244   {
245      return (m_cart->read_ext_bram(space, offset * 2) << 16)
246               | m_cart->read_ext_bram(space, offset * 2 + 1);
247   }
248   else
249      return 0xffffffff;
250}
251#endif
252
253240/*-------------------------------------------------
254241 write
255242 -------------------------------------------------*/
r21977r21978
257244WRITE32_MEMBER(sat_cart_slot_device::write_ext_dram0)
258245{
259246   if (m_cart)
260      m_cart->write_ext_dram0(space, offset, data);
247      m_cart->write_ext_dram0(space, offset, data, mem_mask);
261248}
262249
263250WRITE32_MEMBER(sat_cart_slot_device::write_ext_dram1)
264251{
265252   if (m_cart)
266      m_cart->write_ext_dram1(space, offset, data);
253      m_cart->write_ext_dram1(space, offset, data, mem_mask);
267254}
268255
269256WRITE32_MEMBER(sat_cart_slot_device::write_ext_bram)
270257{
271258   if (m_cart)
272      m_cart->write_ext_bram(space, offset, data);
259      m_cart->write_ext_bram(space, offset, data, mem_mask);
273260}
274
275#if 0
276WRITE32_MEMBER(sat_cart_slot_device::write_ext_bram)
277{
278   if (m_cart)
279   {
280      if (ACCESSING_BITS_16_23)
281         m_cart->write_ext_bram(space, offset * 2 + 0, (data & 0x00ff0000) >> 16);
282      if (ACCESSING_BITS_0_7)
283         m_cart->write_ext_bram(space, offset * 2 + 1, (data & 0x000000ff) >> 0);
284   }
285}
286#endif
trunk/src/mess/machine/sat_slot.h
r21977r21978
2525   // reading and writing to Extended BRAM chip
2626   virtual DECLARE_READ32_MEMBER(read_ext_bram) { return 0xffffffff; }
2727   virtual DECLARE_WRITE32_MEMBER(write_ext_bram) {}
28#if 0
29   virtual DECLARE_READ8_MEMBER(read_ext_bram) { return 0xff; }
30   virtual DECLARE_WRITE8_MEMBER(write_ext_bram) {}
31#endif
3228
3329   virtual int get_cart_type() { return m_cart_type; };
3430
r21977r21978
4339   UINT32  get_ext_dram1_size() { return m_ext_dram1_size; }
4440   UINT32  get_ext_bram_size() { return m_ext_bram_size; }
4541
46//protected:
42protected:
4743   int m_cart_type;
4844
4945   // internal state
r21977r21978
10298   virtual DECLARE_READ32_MEMBER(read_ext_bram);
10399   virtual DECLARE_WRITE32_MEMBER(write_ext_bram);
104100
105//protected:
101private:
106102   device_sat_cart_interface*       m_cart;
107103};
108104
trunk/src/mess/machine/sat_bram.c
r21977r21978
9898   else
9999      mame_printf_error("Battery RAM write beyond its boundary! offs: %X data: %X\n", offset, data);
100100}
101
102#if 0
103READ8_MEMBER(saturn_bram_device::read_ext_bram)
104{
105   if (offset < m_size)
106      return m_ext_bram[offset];
107   else
108   {
109      mame_printf_error("Battery RAM read beyond its boundary! offs: %X\n", offset);
110      return 0xff;
111   }
112}
113
114WRITE8_MEMBER(saturn_bram_device::write_ext_bram)
115{
116   if (offset < m_size)
117   {
118      m_ext_bram[offset] = data;
119   }
120   else
121      mame_printf_error("Battery RAM write beyond its boundary! offs: %X data: %X\n", offset, data);
122}
123#endif
trunk/src/mess/machine/sat_bram.h
r21977r21978
2727   // reading and writing
2828   virtual DECLARE_READ32_MEMBER(read_ext_bram);
2929   virtual DECLARE_WRITE32_MEMBER(write_ext_bram);
30#if 0
31   virtual DECLARE_READ8_MEMBER(read_ext_bram);
32   virtual DECLARE_WRITE8_MEMBER(write_ext_bram);
33#endif
3430
3531   UINT32 m_size;  // this is the size of Battery RAM in bytes
3632};

Previous 199869 Revisions Next


© 1997-2024 The MAME Team