summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers/coleco.c
diff options
context:
space:
mode:
author Michaël Banaan Ananas <happppp@users.noreply.github.com>2014-01-20 10:54:25 +0000
committer Michaël Banaan Ananas <happppp@users.noreply.github.com>2014-01-20 10:54:25 +0000
commitfa502fcfbd7beb17157908f698b4de609bff0f6d (patch)
tree180eeff896286af99430010da8cbd22b27ad17b9 /src/mess/drivers/coleco.c
parenta8f50d7c66710ab2d6bbbd79926cfbdd0948bbcb (diff)
was going to do some coleco stuff, but changed my mind
Diffstat (limited to 'src/mess/drivers/coleco.c')
-rw-r--r--src/mess/drivers/coleco.c47
1 files changed, 26 insertions, 21 deletions
diff --git a/src/mess/drivers/coleco.c b/src/mess/drivers/coleco.c
index f6f69ea7eff..b3f62adeca9 100644
--- a/src/mess/drivers/coleco.c
+++ b/src/mess/drivers/coleco.c
@@ -2,7 +2,7 @@
coleco.c
- Driver file to handle emulation of the Colecovision.
+ Driver file to handle emulation of the ColecoVision.
Marat Fayzullin (ColEm source)
Marcel de Kogel (AdamEm source)
@@ -63,6 +63,7 @@
#include "includes/coleco.h"
+
/* Read/Write Handlers */
READ8_MEMBER( coleco_state::paddle_1_r )
@@ -85,11 +86,12 @@ WRITE8_MEMBER( coleco_state::paddle_on_w )
m_joy_mode = 1;
}
+
/* Memory Maps */
static ADDRESS_MAP_START( coleco_map, AS_PROGRAM, 8, coleco_state )
AM_RANGE(0x0000, 0x1fff) AM_ROM
- AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
+ AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00) AM_SHARE("ram")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -106,7 +108,7 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( czz50_map, AS_PROGRAM, 8, coleco_state )
AM_RANGE(0x0000, 0x3fff) AM_ROM
- AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00)
+ AM_RANGE(0x6000, 0x63ff) AM_RAM AM_MIRROR(0x1c00) AM_SHARE("ram")
AM_RANGE(0x8000, 0xffff) AM_ROM
ADDRESS_MAP_END
@@ -121,6 +123,7 @@ static ADDRESS_MAP_START( czz50_io_map, AS_IO, 8, coleco_state )
AM_RANGE(0xe2, 0xe2) AM_MIRROR(0x1d) AM_READ(paddle_2_r)
ADDRESS_MAP_END
+
/* Input Ports */
static INPUT_PORTS_START( czz50 )
@@ -163,6 +166,7 @@ static INPUT_PORTS_START( czz50 )
PORT_BIT( 0xb0, IP_ACTIVE_LOW, IPT_UNKNOWN )
INPUT_PORTS_END
+
/* Interrupts */
WRITE_LINE_MEMBER(coleco_state::coleco_vdp_interrupt)
@@ -229,6 +233,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(coleco_state::paddle_update_callback)
}
}
+
/* Machine Initialization */
static TMS9928A_INTERFACE(coleco_tms9928a_interface)
@@ -250,6 +255,8 @@ static const sn76496_config psg_intf =
void coleco_state::machine_start()
{
+ memset(m_ram, 0xff, m_ram.bytes()); // initialize RAM
+
// init paddles
for (int port = 0; port < 2; port++)
{
@@ -273,10 +280,6 @@ void coleco_state::machine_start()
void coleco_state::machine_reset()
{
m_last_nmi_state = 0;
-
- m_maincpu->set_input_line_vector(INPUT_LINE_IRQ0, 0xff);
-
- memset(&memregion(Z80_TAG)->base()[0x6000], 0xff, 0x400); // initialize RAM
}
//static int coleco_cart_verify(const UINT8 *cartdata, size_t size)
@@ -294,7 +297,7 @@ void coleco_state::machine_reset()
DEVICE_IMAGE_LOAD_MEMBER( coleco_state,czz50_cart )
{
- UINT8 *ptr = memregion(Z80_TAG)->base() + 0x8000;
+ UINT8 *ptr = memregion("maincpu")->base() + 0x8000;
UINT32 size;
if (image.software_entry() == NULL)
@@ -311,11 +314,12 @@ DEVICE_IMAGE_LOAD_MEMBER( coleco_state,czz50_cart )
}
}
+
/* Machine Drivers */
static MACHINE_CONFIG_START( coleco, coleco_state )
// basic machine hardware
- MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_7_15909MHz/2) // 3.579545 MHz
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // 3.579545 MHz
MCFG_CPU_PROGRAM_MAP(coleco_map)
MCFG_CPU_IO_MAP(coleco_io_map)
@@ -344,7 +348,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_START( czz50, coleco_state )
// basic machine hardware
- MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_7_15909MHz/2) // ???
+ MCFG_CPU_ADD("maincpu", Z80, XTAL_7_15909MHz/2) // ???
MCFG_CPU_PROGRAM_MAP(czz50_map)
MCFG_CPU_IO_MAP(czz50_io_map)
@@ -381,29 +385,30 @@ static MACHINE_CONFIG_DERIVED( dina, czz50 )
MCFG_SCREEN_UPDATE_DEVICE( "tms9928a", tms9928a_device, screen_update )
MACHINE_CONFIG_END
+
/* ROMs */
ROM_START (coleco)
- ROM_REGION( 0x10000, Z80_TAG, 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "coleco.rom", 0x0000, 0x2000, CRC(3aa93ef3) SHA1(45bedc4cbdeac66c7df59e9e599195c778d86a92) )
ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
ROM_END
ROM_START (colecoa)
// differences to 0x3aa93ef3 modified characters, added a pad 2 related fix
- ROM_REGION( 0x10000, Z80_TAG, 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "colecoa.rom", 0x0000, 0x2000, CRC(39bb16fc) SHA1(99ba9be24ada3e86e5c17aeecb7a2d68c5edfe59) )
ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
ROM_END
ROM_START (colecob)
- ROM_REGION( 0x10000, Z80_TAG, 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "svi603.rom", 0x0000, 0x2000, CRC(19e91b82) SHA1(8a30abe5ffef810b0f99b86db38b1b3c9d259b78) )
ROM_CART_LOAD("cart", 0x8000, 0x8000, ROM_NOMIRROR | ROM_OPTIONAL)
ROM_END
ROM_START( czz50 )
- ROM_REGION( 0x10000, Z80_TAG, 0 )
+ ROM_REGION( 0x10000, "maincpu", 0 )
ROM_LOAD( "czz50.rom", 0x0000, 0x2000, CRC(4999abc6) SHA1(96aecec3712c94517103d894405bc98a7dafa440) )
ROM_CONTINUE( 0x8000, 0x2000 )
ROM_END
@@ -414,10 +419,10 @@ ROM_END
/* System Drivers */
-// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
-CONS( 1982, coleco, 0, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision", 0 )
-CONS( 1982, colecoa, coleco, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision (Thick Characters)", 0 )
-CONS( 1983, colecob, coleco, 0, coleco, coleco, driver_device, 0, "Spectravideo", "SVI-603 Coleco Game Adapter", 0 )
-CONS( 1986, czz50, 0, coleco, czz50, czz50, driver_device, 0, "Bit Corporation", "Chuang Zao Zhe 50", 0 )
-CONS( 1988, dina, czz50, 0, dina, czz50, driver_device, 0, "Telegames", "Dina", 0 )
-CONS( 1988, prsarcde, czz50, 0, czz50, czz50, driver_device, 0, "Telegames", "Personal Arcade", 0 )
+// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
+CONS( 1982, coleco, 0, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision", 0 )
+CONS( 1982, colecoa, coleco, 0, coleco, coleco, driver_device, 0, "Coleco", "ColecoVision (Thick Characters)", 0 )
+CONS( 1983, colecob, coleco, 0, coleco, coleco, driver_device, 0, "Spectravideo", "SVI-603 Coleco Game Adapter", 0 )
+CONS( 1986, czz50, 0, coleco, czz50, czz50, driver_device, 0, "Bit Corporation", "Chuang Zao Zhe 50", 0 )
+CONS( 1988, dina, czz50, 0, dina, czz50, driver_device, 0, "Telegames", "Dina", 0 )
+CONS( 1988, prsarcde, czz50, 0, czz50, czz50, driver_device, 0, "Telegames", "Personal Arcade", 0 )