(MESS) mekd2.c: after several investigations, I came to

the conclusion that .d2 files are some sort of RAM snapshot
and not a cart format, so converted the driver to use quikload. 
anyway, I had not actual file to test, so if you have any please
contact us to the MESS boards. nw.
This commit is contained in:
Fabio Priuli 2014-09-24 19:54:32 +00:00
parent 1807dbc77e
commit 31c7b61cf5

View File

@ -78,8 +78,8 @@ TODO
#include "machine/6850acia.h" #include "machine/6850acia.h"
#include "machine/clock.h" #include "machine/clock.h"
#include "imagedev/cassette.h" #include "imagedev/cassette.h"
#include "imagedev/snapquik.h"
#include "sound/wave.h" #include "sound/wave.h"
#include "imagedev/cartslot.h"
#include "mekd2.lh" #include "mekd2.lh"
#define XTAL_MEKD2 1228800 #define XTAL_MEKD2 1228800
@ -106,7 +106,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(mekd2_nmi_w); DECLARE_WRITE_LINE_MEMBER(mekd2_nmi_w);
DECLARE_WRITE8_MEMBER(mekd2_digit_w); DECLARE_WRITE8_MEMBER(mekd2_digit_w);
DECLARE_WRITE8_MEMBER(mekd2_segment_w); DECLARE_WRITE8_MEMBER(mekd2_segment_w);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER(mekd2_cart); DECLARE_QUICKLOAD_LOAD_MEMBER(mekd2_quik);
DECLARE_WRITE_LINE_MEMBER(cass_w); DECLARE_WRITE_LINE_MEMBER(cass_w);
TIMER_DEVICE_CALLBACK_MEMBER(mekd2_c); TIMER_DEVICE_CALLBACK_MEMBER(mekd2_c);
TIMER_DEVICE_CALLBACK_MEMBER(mekd2_p); TIMER_DEVICE_CALLBACK_MEMBER(mekd2_p);
@ -301,7 +301,7 @@ WRITE_LINE_MEMBER( mekd2_state::cass_w )
m_cass_state = state; m_cass_state = state;
} }
DEVICE_IMAGE_LOAD_MEMBER( mekd2_state,mekd2_cart ) QUICKLOAD_LOAD_MEMBER( mekd2_state, mekd2_quik )
{ {
static const char magic[] = "MEK6800D2"; static const char magic[] = "MEK6800D2";
char buff[9]; char buff[9];
@ -311,7 +311,7 @@ DEVICE_IMAGE_LOAD_MEMBER( mekd2_state,mekd2_cart )
image.fread(buff, sizeof (buff)); image.fread(buff, sizeof (buff));
if (memcmp(buff, magic, sizeof (buff))) if (memcmp(buff, magic, sizeof (buff)))
{ {
logerror( "mekd2_rom_load: magic '%s' not found\n", magic); logerror("mekd2 rom load: magic '%s' not found\n", magic);
return IMAGE_INIT_FAIL; return IMAGE_INIT_FAIL;
} }
image.fread(&addr, 2); image.fread(&addr, 2);
@ -319,7 +319,7 @@ DEVICE_IMAGE_LOAD_MEMBER( mekd2_state,mekd2_cart )
image.fread(&size, 2); image.fread(&size, 2);
size = LITTLE_ENDIANIZE_INT16(size); size = LITTLE_ENDIANIZE_INT16(size);
image.fread(&ident, 1); image.fread(&ident, 1);
logerror("mekd2_rom_load: $%04X $%04X $%02X\n", addr, size, ident); logerror("mekd2 rom load: $%04X $%04X $%02X\n", addr, size, ident);
while (size-- > 0) while (size-- > 0)
image.fread(&RAM[addr++], 1); image.fread(&RAM[addr++], 1);
@ -376,12 +376,6 @@ static MACHINE_CONFIG_START( mekd2, mekd2_state )
MCFG_CASSETTE_ADD("cassette") MCFG_CASSETTE_ADD("cassette")
/* Cartslot ?? does not come with one.. */
MCFG_CARTSLOT_ADD("cart")
MCFG_CARTSLOT_EXTENSION_LIST("d2")
MCFG_CARTSLOT_NOT_MANDATORY
MCFG_CARTSLOT_LOAD(mekd2_state,mekd2_cart)
/* Devices */ /* Devices */
MCFG_DEVICE_ADD("pia_s", PIA6821, 0) MCFG_DEVICE_ADD("pia_s", PIA6821, 0)
MCFG_PIA_READPA_HANDLER(READ8(mekd2_state, mekd2_key_r)) MCFG_PIA_READPA_HANDLER(READ8(mekd2_state, mekd2_key_r))
@ -407,6 +401,8 @@ static MACHINE_CONFIG_START( mekd2, mekd2_state )
MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_c", mekd2_state, mekd2_c, attotime::from_hz(4800)) MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_c", mekd2_state, mekd2_c, attotime::from_hz(4800))
MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_p", mekd2_state, mekd2_p, attotime::from_hz(40000)) MCFG_TIMER_DRIVER_ADD_PERIODIC("mekd2_p", mekd2_state, mekd2_p, attotime::from_hz(40000))
MCFG_QUICKLOAD_ADD("quickload", mekd2_state, mekd2_quik, "d2", 1)
MACHINE_CONFIG_END MACHINE_CONFIG_END
/*********************************************************** /***********************************************************