Previous 199869 Revisions Next

r32246 Sunday 21st September, 2014 at 07:45:10 UTC by Fabio Priuli
converted coleco carts to use Curt's slot device (+ changed the
tag to avoid clash between the media switch and the slot device). nw.
[src/emu/bus/coleco]exp.h
[src/mess/drivers]coleco.c
[src/mess/includes]coleco.h

trunk/src/emu/bus/coleco/exp.h
r32245r32246
4141//  CONSTANTS
4242//**************************************************************************
4343
44#define COLECOVISION_CARTRIDGE_SLOT_TAG      "cart"
44#define COLECOVISION_CARTRIDGE_SLOT_TAG      "cartslot"
4545
4646
4747
trunk/src/mess/includes/coleco.h
r32245r32246
99#include "sound/sn76496.h"
1010#include "video/tms9928a.h"
1111#include "machine/coleco.h"
12#include "imagedev/cartslot.h"
12#include "bus/coleco/exp.h"
1313
1414class coleco_state : public driver_device
1515{
r32245r32246
1717   coleco_state(const machine_config &mconfig, device_type type, const char *tag)
1818      : driver_device(mconfig, type, tag),
1919         m_maincpu(*this, "maincpu"),
20         m_cart(*this, COLECOVISION_CARTRIDGE_SLOT_TAG),
2021         m_ram(*this, "ram")
2122   { }
2223
2324   required_device<cpu_device> m_maincpu;
25   required_device<colecovision_cartridge_slot_device> m_cart;
2426   required_shared_ptr<UINT8> m_ram;
2527
2628   virtual void machine_start();
2729   virtual void machine_reset();
2830
31   DECLARE_READ8_MEMBER( cart_r );
2932   DECLARE_READ8_MEMBER( paddle_1_r );
3033   DECLARE_READ8_MEMBER( paddle_2_r );
3134   DECLARE_WRITE8_MEMBER( paddle_off_w );
trunk/src/mess/drivers/coleco.c
r32245r32246
222222   }
223223}
224224
225READ8_MEMBER( coleco_state::cart_r )
226{
227   return m_cart->bd_r(space, offset & 0x7fff, 0, 0, 0, 0, 0);
228}
229
225230void coleco_state::machine_start()
226231{
227232   memset(m_ram, 0xff, m_ram.bytes()); // initialize RAM
r32245r32246
238243      m_joy_analog_state[port] = 0;
239244   }
240245
246   if (m_cart->exists())
247      m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8_delegate(FUNC(coleco_state::cart_r),this));
248
241249   save_item(NAME(m_joy_mode));
242250   save_item(NAME(m_last_nmi_state));
243251   save_item(NAME(m_joy_irq_state));
r32245r32246
264272//  return retval;
265273//}
266274
267DEVICE_IMAGE_LOAD_MEMBER( coleco_state,czz50_cart )
268{
269   UINT8 *ptr = memregion("maincpu")->base() + 0x8000;
270   UINT32 size;
271275
272   if (image.software_entry() == NULL)
273   {
274      size = image.length();
275      if (image.fread(ptr, size) != size)
276         return IMAGE_INIT_FAIL;
277      return IMAGE_INIT_PASS;
278   }
279   else
280   {
281      memcpy(ptr, image.get_software_region("rom"), image.get_software_region_length("rom"));
282      return IMAGE_INIT_PASS;
283   }
284}
285
286
287276/* Machine Drivers */
288277
289278static MACHINE_CONFIG_START( coleco, coleco_state )
r32245r32246
306295   MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
307296
308297   /* cartridge */
309   MCFG_CARTSLOT_ADD("cart")
310   MCFG_CARTSLOT_EXTENSION_LIST("rom,col,bin")
311   MCFG_CARTSLOT_NOT_MANDATORY
312   MCFG_CARTSLOT_INTERFACE("coleco_cart")
298   MCFG_COLECOVISION_CARTRIDGE_SLOT_ADD(COLECOVISION_CARTRIDGE_SLOT_TAG, colecovision_cartridges, NULL)
313299
314300   /* software lists */
315301   MCFG_SOFTWARE_LIST_ADD("cart_list","coleco")
r32245r32246
335321   /* basic machine hardware */
336322   MCFG_CPU_MODIFY("maincpu") // note: cpu speed unverified, assume it's the same as ColecoVision
337323   MCFG_CPU_PROGRAM_MAP(czz50_map)
338
339   /* cartridge */
340   MCFG_CARTSLOT_MODIFY("cart")
341   MCFG_CARTSLOT_LOAD(coleco_state, czz50_cart)
342324MACHINE_CONFIG_END
343325
344326static MACHINE_CONFIG_DERIVED( dina, czz50 )
r32245r32246
364346   ROM_SYSTEM_BIOS( 1, "thick", "Thick characters" )
365347   // differences to 0x3aa93ef3 modified characters, added a pad 2 related fix
366348   ROMX_LOAD( "colecoa.rom", 0x0000, 0x2000, CRC(39bb16fc) SHA1(99ba9be24ada3e86e5c17aeecb7a2d68c5edfe59), ROM_BIOS(2) )
367   ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
368349ROM_END
369350
370351/*  PAL Colecovision BIOS
r32245r32246
384365ROM_START (colecop)
385366   ROM_REGION( 0x10000, "maincpu", 0 )
386367   ROM_LOAD( "r72114a_8317.u2", 0x0000, 0x2000, CRC(d393c0cc) SHA1(160077afb139943725c634d6539898db59f33657) )
387   ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
388368ROM_END
389369
390370ROM_START (svi603)
391371   ROM_REGION( 0x10000, "maincpu", 0 )
392372   ROM_LOAD( "svi603.rom", 0x0000, 0x2000, CRC(19e91b82) SHA1(8a30abe5ffef810b0f99b86db38b1b3c9d259b78) )
393   ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
394373ROM_END
395374
396375ROM_START( czz50 )

Previous 199869 Revisions Next


© 1997-2024 The MAME Team