diff --git a/src/emu/imagedev/snapquik.h b/src/emu/imagedev/snapquik.h index 0f6df79e037..adde197320b 100644 --- a/src/emu/imagedev/snapquik.h +++ b/src/emu/imagedev/snapquik.h @@ -9,7 +9,7 @@ #ifndef __SNAPQUIK_H__ #define __SNAPQUIK_H__ -typedef int (*snapquick_load_func)(device_image_interface &image, const char *file_type, int file_size); +typedef delegate snapquick_load_delegate; // ======================> snapshot_image_device class snapshot_image_device : public device_t, @@ -36,14 +36,14 @@ public: virtual const option_guide *create_option_guide() const { return NULL; } void timer_callback(); - void set_handler(snapquick_load_func load, const char *ext, seconds_t sec) { m_load = load; m_file_extensions = ext; m_delay_seconds = sec; }; + void set_handler(snapquick_load_delegate load, const char *ext, seconds_t sec) { m_load = load; m_file_extensions = ext; m_delay_seconds = sec; }; void set_interface(const char *_interface) { m_interface = _interface; } protected: // device-level overrides virtual void device_config_complete(); virtual void device_start(); - snapquick_load_func m_load; /* loading function */ + snapquick_load_delegate m_load; /* loading function */ const char * m_file_extensions; /* file extensions */ const char * m_interface; seconds_t m_delay_seconds; /* loading delay (seconds) */ @@ -71,23 +71,28 @@ extern const device_type QUICKLOAD; /*************************************************************************** DEVICE CONFIGURATION MACROS ***************************************************************************/ -#define SNAPSHOT_LOAD_NAME(name) snapshot_load_##name -#define SNAPSHOT_LOAD(name) int SNAPSHOT_LOAD_NAME(name)(device_image_interface &image, const char *file_type, int snapshot_size) +#define SNAPSHOT_LOAD_MEMBER_NAME(_name) snapshot_load_##_name +#define SNAPSHOT_LOAD_NAME(_class,_name) _class::SNAPSHOT_LOAD_MEMBER_NAME(_name) +#define DECLARE_SNAPSHOT_LOAD_MEMBER(_name) int SNAPSHOT_LOAD_MEMBER_NAME(_name)(device_image_interface &image, const char *file_type, int snapshot_size) +#define SNAPSHOT_LOAD_MEMBER(_class,_name) int SNAPSHOT_LOAD_NAME(_class,_name)(device_image_interface &image, const char *file_type, int snapshot_size) +#define SNAPSHOT_LOAD_DELEGATE(_class,_name) snapquick_load_delegate(&SNAPSHOT_LOAD_NAME(_class,_name),#_class "::snapshot_load_" #_name, downcast<_class *>(device->owner())) -#define QUICKLOAD_LOAD_NAME(name) quickload_load_##name -#define QUICKLOAD_LOAD(name) int QUICKLOAD_LOAD_NAME(name)(device_image_interface &image, const char *file_type, int quickload_size) +#define QUICKLOAD_LOAD_MEMBER_NAME(_name) quickload_load##_name +#define QUICKLOAD_LOAD_NAME(_class,_name) _class::QUICKLOAD_LOAD_MEMBER_NAME(_name) +#define DECLARE_QUICKLOAD_LOAD_MEMBER(_name) int QUICKLOAD_LOAD_MEMBER_NAME(_name)(device_image_interface &image, const char *file_type, int quickload_size) +#define QUICKLOAD_LOAD_MEMBER(_class,_name) int QUICKLOAD_LOAD_NAME(_class,_name)(device_image_interface &image, const char *file_type, int quickload_size) +#define QUICKLOAD_LOAD_DELEGATE(_class,_name) snapquick_load_delegate(&QUICKLOAD_LOAD_NAME(_class,_name),#_class "::quickload_load_" #_name, downcast<_class *>(device->owner())) - -#define MCFG_SNAPSHOT_ADD(_tag, _load, _file_extensions, _delay) \ +#define MCFG_SNAPSHOT_ADD(_tag, _class, _load, _file_extensions, _delay) \ MCFG_DEVICE_ADD(_tag, SNAPSHOT, 0) \ - static_cast(device)->set_handler(SNAPSHOT_LOAD_NAME(_load), _file_extensions, _delay); + static_cast(device)->set_handler(SNAPSHOT_LOAD_DELEGATE(_class,_load), _file_extensions, _delay); #define MCFG_SNAPSHOT_INTERFACE(_interface) \ static_cast(device)->set_interface(_interface); -#define MCFG_QUICKLOAD_ADD(_tag, _load, _file_extensions, _delay) \ +#define MCFG_QUICKLOAD_ADD(_tag, _class, _load, _file_extensions, _delay) \ MCFG_DEVICE_ADD(_tag, QUICKLOAD, 0) \ - static_cast(device)->set_handler(QUICKLOAD_LOAD_NAME(_load), _file_extensions, _delay); + static_cast(device)->set_handler(QUICKLOAD_LOAD_DELEGATE(_class,_load), _file_extensions, _delay); #define MCFG_QUICKLOAD_INTERFACE(_interface) \ static_cast(device)->set_interface(_interface); diff --git a/src/mame/drivers/jaguar.c b/src/mame/drivers/jaguar.c index 4c97ab7587b..64197034daf 100644 --- a/src/mame/drivers/jaguar.c +++ b/src/mame/drivers/jaguar.c @@ -347,8 +347,6 @@ Notes: #define R3000_CLOCK XTAL_40MHz #define M68K_CLOCK XTAL_50MHz -static QUICKLOAD_LOAD( jaguar ); - /************************************* * @@ -1615,7 +1613,7 @@ static MACHINE_CONFIG_START( jaguar, jaguar_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "rspeaker", 1.0) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", jaguar, "abs,bin,cof,jag,prg", 2) + MCFG_QUICKLOAD_ADD("quickload", jaguar_state, jaguar, "abs,bin,cof,jag,prg", 2) /* cartridge */ MCFG_CARTSLOT_ADD("cart") @@ -1673,9 +1671,9 @@ DRIVER_INIT_MEMBER(jaguar_state,jaguar) } } -QUICKLOAD_LOAD( jaguar ) +QUICKLOAD_LOAD_MEMBER( jaguar_state, jaguar ) { - return image.device().machine().driver_data()->quickload(image, file_type, quickload_size); + return quickload(image, file_type, quickload_size); } int jaguar_state::quickload(device_image_interface &image, const char *file_type, int quickload_size) diff --git a/src/mame/includes/jaguar.h b/src/mame/includes/jaguar.h index 88f5af67bfb..78240e9bd0d 100644 --- a/src/mame/includes/jaguar.h +++ b/src/mame/includes/jaguar.h @@ -8,6 +8,7 @@ #include "machine/nvram.h" #include "sound/dac.h" #include "machine/eeprom.h" +#include "imagedev/snapquik.h" #ifndef ENABLE_SPEEDUP_HACKS #define ENABLE_SPEEDUP_HACKS 1 @@ -218,6 +219,7 @@ public: int cart_load(device_image_interface &image); IRQ_CALLBACK_MEMBER(jaguar_irq_callback); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( jaguar_cart ); + DECLARE_QUICKLOAD_LOAD_MEMBER( jaguar ); protected: // timer IDs enum diff --git a/src/mess/drivers/ace.c b/src/mess/drivers/ace.c index e592c652622..5e94fc6f7e6 100644 --- a/src/mess/drivers/ace.c +++ b/src/mess/drivers/ace.c @@ -68,10 +68,10 @@ Ports: Snapshot Handling ******************************************************************************/ -SNAPSHOT_LOAD( ace ) +SNAPSHOT_LOAD_MEMBER( ace_state, ace ) { - cpu_device *cpu = image.device().machine().firstcpu; - UINT8 *RAM = image.device().machine().root_device().memregion(cpu->tag())->base(); + cpu_device *cpu = m_maincpu; + UINT8 *RAM = memregion(cpu->tag())->base(); address_space &space = cpu->space(AS_PROGRAM); unsigned char ace_repeat, ace_byte, loop; int done=0, ace_index=0x2000; @@ -765,7 +765,7 @@ static MACHINE_CONFIG_START( ace, ace_state ) // devices MCFG_CASSETTE_ADD("cassette", ace_cassette_interface) - MCFG_SNAPSHOT_ADD("snapshot", ace, "ace", 1) + MCFG_SNAPSHOT_ADD("snapshot", ace_state, ace, "ace", 1) MCFG_I8255A_ADD(I8255_TAG, ppi_intf) MCFG_Z80PIO_ADD(Z80PIO_TAG, XTAL_6_5MHz/2, pio_intf) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) diff --git a/src/mess/drivers/altair.c b/src/mess/drivers/altair.c index f781e7a30fc..6fbc4ff5402 100644 --- a/src/mess/drivers/altair.c +++ b/src/mess/drivers/altair.c @@ -28,9 +28,8 @@ public: altair_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_terminal(*this, TERMINAL_TAG) - , - m_ram(*this, "ram"){ } + m_terminal(*this, TERMINAL_TAG), + m_ram(*this, "ram"){ } required_device m_maincpu; required_device m_terminal; @@ -42,6 +41,7 @@ public: UINT8 m_term_data; required_shared_ptr m_ram; virtual void machine_reset(); + DECLARE_QUICKLOAD_LOAD_MEMBER(altair); }; @@ -87,7 +87,7 @@ static INPUT_PORTS_START( altair ) INPUT_PORTS_END -QUICKLOAD_LOAD(altair) +QUICKLOAD_LOAD_MEMBER( altair_state,altair) { altair_state *state = image.device().machine().driver_data(); int quick_length; @@ -132,7 +132,7 @@ static MACHINE_CONFIG_START( altair, altair_state ) MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", altair, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", altair_state, altair, "bin", 0) MACHINE_CONFIG_END /* ROM definition */ diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c index eb5b8360209..5656e141a9f 100644 --- a/src/mess/drivers/amstrad.c +++ b/src/mess/drivers/amstrad.c @@ -872,7 +872,7 @@ static MACHINE_CONFIG_START( amstrad_nofdc, amstrad_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", amstrad, "sna", 0) + MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0) MCFG_CASSETTE_ADD( "cassette", amstrad_cassette_interface ) MCFG_SOFTWARE_LIST_ADD("cass_list","cpc_cass") @@ -946,7 +946,7 @@ static MACHINE_CONFIG_START( cpcplus, amstrad_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", amstrad, "sna", 0) + MCFG_SNAPSHOT_ADD("snapshot", amstrad_state, amstrad, "sna", 0) MCFG_CASSETTE_ADD( "cassette", amstrad_cassette_interface ) diff --git a/src/mess/drivers/apple1.c b/src/mess/drivers/apple1.c index c097a1eed1f..01bfb7f69d3 100644 --- a/src/mess/drivers/apple1.c +++ b/src/mess/drivers/apple1.c @@ -308,7 +308,7 @@ static MACHINE_CONFIG_START( apple1, apple1_state ) MCFG_PIA6821_ADD( "pia", apple1_pia0 ) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", apple1, "snp", 0) + MCFG_SNAPSHOT_ADD("snapshot", apple1_state, apple1, "snp", 0) MCFG_CASSETTE_ADD("cassette", apple1_cassette_interface) MCFG_SOFTWARE_LIST_ADD("cass_list","apple1") diff --git a/src/mess/drivers/atom.c b/src/mess/drivers/atom.c index d9f847a8561..ca18f1b923e 100644 --- a/src/mess/drivers/atom.c +++ b/src/mess/drivers/atom.c @@ -128,18 +128,18 @@ Hardware: PPIA 8255 image_fread_memory - read image to memory -------------------------------------------------*/ -static void image_fread_memory(device_image_interface &image, UINT16 addr, UINT32 count) +void atom_state::image_fread_memory(device_image_interface &image, UINT16 addr, UINT32 count) { - void *ptr = image.device().machine().firstcpu->space(AS_PROGRAM).get_write_ptr(addr); + void *ptr = m_maincpu->space(AS_PROGRAM).get_write_ptr(addr); image.fread( ptr, count); } /*------------------------------------------------- - QUICKLOAD_LOAD( atom_atm ) + QUICKLOAD_LOAD_MEMBER( atom_state, atom_atm ) -------------------------------------------------*/ -QUICKLOAD_LOAD( atom_atm ) +QUICKLOAD_LOAD_MEMBER( atom_state, atom_atm ) { /* @@ -174,7 +174,7 @@ QUICKLOAD_LOAD( atom_atm ) image_fread_memory(image, start_address, size); - image.device().machine().firstcpu->set_pc(run_address); + m_maincpu->set_pc(run_address); return IMAGE_INIT_PASS; } @@ -877,7 +877,7 @@ static MACHINE_CONFIG_START( atom, atom_state ) MCFG_LEGACY_FLOPPY_2_DRIVES_ADD(atom_floppy_interface) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, atom_centronics_config) MCFG_CASSETTE_ADD("cassette", atom_cassette_interface) - MCFG_QUICKLOAD_ADD("quickload", atom_atm, "atm", 0) + MCFG_QUICKLOAD_ADD("quickload", atom_state, atom_atm, "atm", 0) /* cartridge */ MCFG_ATOM_CARTSLOT_ADD("cart") diff --git a/src/mess/drivers/avigo.c b/src/mess/drivers/avigo.c index e04f9e92edd..fbf297670a9 100644 --- a/src/mess/drivers/avigo.c +++ b/src/mess/drivers/avigo.c @@ -823,7 +823,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(avigo_state::avigo_1hz_timer) refresh_ints(); } -static QUICKLOAD_LOAD(avigo) +QUICKLOAD_LOAD_MEMBER( avigo_state,avigo) { avigo_state *state = image.device().machine().driver_data(); address_space& flash1 = state->m_flashes[1]->space(0); @@ -932,7 +932,7 @@ static MACHINE_CONFIG_START( avigo, avigo_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("1hz_timer", avigo_state, avigo_1hz_timer, attotime::from_hz(1)) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", avigo, "app", 0) + MCFG_QUICKLOAD_ADD("quickload", avigo_state, avigo, "app", 0) MACHINE_CONFIG_END diff --git a/src/mess/drivers/binbug.c b/src/mess/drivers/binbug.c index 7196d767cc0..2e40a6d7a60 100644 --- a/src/mess/drivers/binbug.c +++ b/src/mess/drivers/binbug.c @@ -79,6 +79,7 @@ public: required_shared_ptr m_p_videoram; required_shared_ptr m_p_attribram; required_device m_maincpu; + DECLARE_QUICKLOAD_LOAD_MEMBER( binbug ); }; WRITE8_MEMBER( binbug_state::binbug_ctrl_w ) @@ -217,7 +218,7 @@ static GFXDECODE_START( dg640 ) GFXDECODE_ENTRY( "chargen", 0x0000, dg640_charlayout, 0, 1 ) GFXDECODE_END -QUICKLOAD_LOAD( binbug ) +QUICKLOAD_LOAD_MEMBER( binbug_state, binbug ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; @@ -314,7 +315,7 @@ static MACHINE_CONFIG_START( binbug, binbug_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", binbug, "pgm", 1) + MCFG_QUICKLOAD_ADD("quickload", binbug_state, binbug, "pgm", 1) MACHINE_CONFIG_END diff --git a/src/mess/drivers/c128.c b/src/mess/drivers/c128.c index 34822a06e21..80bedb649fc 100644 --- a/src/mess/drivers/c128.c +++ b/src/mess/drivers/c128.c @@ -27,7 +27,7 @@ -static QUICKLOAD_LOAD( cbm_c64 ) +QUICKLOAD_LOAD_MEMBER( c128_state, cbm_c64 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_quick_sethiaddress); } @@ -1454,7 +1454,7 @@ static MACHINE_CONFIG_START( ntsc, c128_state ) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, c64_user_port_cards, NULL, NULL, DEVWRITELINE(DEVICE_SELF, c128_state, exp_reset_w)) MCFG_C64_USER_PORT_CIA1_CALLBACKS(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w)) MCFG_C64_USER_PORT_CIA2_CALLBACKS(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c128_state, cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") @@ -1577,7 +1577,7 @@ static MACHINE_CONFIG_START( pal, c128_state ) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, c64_user_port_cards, NULL, NULL, DEVWRITELINE(DEVICE_SELF, c128_state, exp_reset_w)) MCFG_C64_USER_PORT_CIA1_CALLBACKS(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w)) MCFG_C64_USER_PORT_CIA2_CALLBACKS(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c128_state, cbm_c64, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") diff --git a/src/mess/drivers/c64.c b/src/mess/drivers/c64.c index 19680f25b35..0692d72328b 100644 --- a/src/mess/drivers/c64.c +++ b/src/mess/drivers/c64.c @@ -28,7 +28,7 @@ #define VA13 BIT(va, 13) #define VA12 BIT(va, 12) -static QUICKLOAD_LOAD( cbm_c64 ) +QUICKLOAD_LOAD_MEMBER( c64_state, cbm_c64 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_quick_sethiaddress); } @@ -1090,7 +1090,7 @@ static MACHINE_CONFIG_START( ntsc, c64_state ) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, c64_user_port_cards, NULL, NULL, DEVWRITELINE(DEVICE_SELF, c64_state, exp_reset_w)) MCFG_C64_USER_PORT_CIA1_CALLBACKS(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w)) MCFG_C64_USER_PORT_CIA2_CALLBACKS(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") @@ -1203,7 +1203,7 @@ static MACHINE_CONFIG_START( pal, c64_state ) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, c64_user_port_cards, NULL, NULL, DEVWRITELINE(DEVICE_SELF, c64_state, exp_reset_w)) MCFG_C64_USER_PORT_CIA1_CALLBACKS(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w)) MCFG_C64_USER_PORT_CIA2_CALLBACKS(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") @@ -1294,7 +1294,7 @@ static MACHINE_CONFIG_START( pal_gs, c64gs_state ) MCFG_C64_USER_PORT_ADD(C64_USER_PORT_TAG, c64_user_port_cards, NULL, NULL, DEVWRITELINE(DEVICE_SELF, c64_state, exp_reset_w)) MCFG_C64_USER_PORT_CIA1_CALLBACKS(DEVWRITELINE(MOS6526_1_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_1_TAG, mos6526_device, sp_w)) MCFG_C64_USER_PORT_CIA2_CALLBACKS(DEVWRITELINE(MOS6526_2_TAG, mos6526_device, cnt_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, sp_w), DEVWRITELINE(MOS6526_2_TAG, mos6526_device, flag_w)) - MCFG_QUICKLOAD_ADD("quickload", cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c64_state, cbm_c64, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list_vic10", "vic10") diff --git a/src/mess/drivers/c65.c b/src/mess/drivers/c65.c index a94fb3662fc..fa16680d63e 100644 --- a/src/mess/drivers/c65.c +++ b/src/mess/drivers/c65.c @@ -70,7 +70,7 @@ static void cbm_c65_quick_sethiaddress( running_machine &machine, UINT16 hiaddre space.write_byte(0x83, hiaddress >> 8); } -static QUICKLOAD_LOAD( cbm_c65 ) +QUICKLOAD_LOAD_MEMBER( c65_state, cbm_c65 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_c65_quick_sethiaddress); } @@ -435,7 +435,7 @@ static MACHINE_CONFIG_START( c65, c65_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "lspeaker", 0.50) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", cbm_c65, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", c65_state, cbm_c65, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) /* cia */ MCFG_LEGACY_MOS6526R1_ADD("cia_0", 3500000, 60, c65_cia0) diff --git a/src/mess/drivers/cbm2.c b/src/mess/drivers/cbm2.c index cc95d7c300b..9acd5c1f9d7 100644 --- a/src/mess/drivers/cbm2.c +++ b/src/mess/drivers/cbm2.c @@ -37,12 +37,12 @@ static void cbmb_quick_sethiaddress(running_machine &machine, UINT16 hiaddress) space.write_byte(0xf0047, hiaddress >> 8); } -static QUICKLOAD_LOAD( cbmb ) +QUICKLOAD_LOAD_MEMBER( cbm2_state, cbmb ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0x10000, cbmb_quick_sethiaddress); } -static QUICKLOAD_LOAD( p500 ) +QUICKLOAD_LOAD_MEMBER( p500_state, p500 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbmb_quick_sethiaddress); } @@ -2211,7 +2211,7 @@ static MACHINE_CONFIG_START( p500_ntsc, p500_state ) MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, VIC6567_CLOCK, cbm2_expansion_cards, NULL, NULL) MCFG_CBM2_USER_PORT_ADD(CBM2_USER_PORT_TAG, p500_user_intf, cbm2_user_port_cards, NULL, NULL) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", p500, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", p500_state, p500, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // internal ram MCFG_FRAGMENT_ADD(128k) @@ -2268,7 +2268,7 @@ static MACHINE_CONFIG_START( p500_pal, p500_state ) MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, VIC6569_CLOCK, cbm2_expansion_cards, NULL, NULL) MCFG_CBM2_USER_PORT_ADD(CBM2_USER_PORT_TAG, p500_user_intf, cbm2_user_port_cards, NULL, NULL) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", p500, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", p500_state, p500, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // internal ram MCFG_FRAGMENT_ADD(128k) @@ -2331,7 +2331,7 @@ static MACHINE_CONFIG_START( cbm2lp_ntsc, cbm2_state ) MCFG_CBM2_EXPANSION_SLOT_ADD(CBM2_EXPANSION_SLOT_TAG, XTAL_18MHz/9, cbm2_expansion_cards, NULL, NULL) MCFG_CBM2_USER_PORT_ADD(CBM2_USER_PORT_TAG, user_intf, cbm2_user_port_cards, NULL, NULL) MCFG_RS232_PORT_ADD(RS232_TAG, rs232_intf, default_rs232_devices, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbmb, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", cbm2_state, cbmb, "p00,prg,t64", CBM_QUICKLOAD_DELAY_SECONDS) // software list MCFG_SOFTWARE_LIST_ADD("cart_list", "cbm2_cart") diff --git a/src/mess/drivers/cd2650.c b/src/mess/drivers/cd2650.c index 98d438dafb2..98141166b0d 100644 --- a/src/mess/drivers/cd2650.c +++ b/src/mess/drivers/cd2650.c @@ -44,6 +44,7 @@ public: DECLARE_WRITE8_MEMBER(kbd_put); DECLARE_READ8_MEMBER(cass_r); DECLARE_WRITE8_MEMBER(cass_w); + DECLARE_QUICKLOAD_LOAD_MEMBER( cd2650 ); const UINT8 *m_p_chargen; UINT8 m_term_data; virtual void machine_reset(); @@ -164,7 +165,7 @@ static ASCII_KEYBOARD_INTERFACE( keyboard_intf ) DEVCB_DRIVER_MEMBER(cd2650_state, kbd_put) }; -QUICKLOAD_LOAD( cd2650 ) +QUICKLOAD_LOAD_MEMBER( cd2650_state, cd2650 ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; @@ -267,7 +268,7 @@ static MACHINE_CONFIG_START( cd2650, cd2650_state ) MCFG_ASCII_KEYBOARD_ADD(KEYBOARD_TAG, keyboard_intf) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", cd2650, "pgm", 1) + MCFG_QUICKLOAD_ADD("quickload", cd2650_state, cd2650, "pgm", 1) /* cassette */ MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) diff --git a/src/mess/drivers/cgenie.c b/src/mess/drivers/cgenie.c index 76c012bdf6b..477fba30215 100644 --- a/src/mess/drivers/cgenie.c +++ b/src/mess/drivers/cgenie.c @@ -707,7 +707,7 @@ DEVICE_IMAGE_LOAD( cgenie_floppy ) spt = pd_list[i].SPT / heads; dir_sector = pd_list[i].DDSL * pd_list[i].GATM * pd_list[i].GPL + pd_list[i].SPT; dir_length = pd_list[i].DDGA * pd_list[i].GPL; - memcpy(image.device().machine().root_device().memregion("maincpu")->base() + 0x5A71 + floppy_get_drive(image) * sizeof(PDRIVE), &pd_list[i], sizeof(PDRIVE)); + memcpy(memregion("maincpu")->base() + 0x5A71 + floppy_get_drive(image) * sizeof(PDRIVE), &pd_list[i], sizeof(PDRIVE)); break; } } diff --git a/src/mess/drivers/comx35.c b/src/mess/drivers/comx35.c index 1d993dcf91e..d8874d5de17 100644 --- a/src/mess/drivers/comx35.c +++ b/src/mess/drivers/comx35.c @@ -45,12 +45,12 @@ static void image_fread_memory(device_image_interface &image, UINT16 addr, UINT3 } /*------------------------------------------------- - QUICKLOAD_LOAD( comx35_comx ) + QUICKLOAD_LOAD_MEMBER( comx35_state, comx35_comx ) -------------------------------------------------*/ -QUICKLOAD_LOAD( comx35_comx ) +QUICKLOAD_LOAD_MEMBER( comx35_state, comx35_comx ) { - address_space &program = image.device().machine().firstcpu->space(AS_PROGRAM); + address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 header[16] = {0}; int size = image.length(); @@ -691,7 +691,7 @@ static MACHINE_CONFIG_START( pal, comx35_state ) // peripheral hardware MCFG_CDP1871_ADD(CDP1871_TAG, kbc_intf, CDP1869_CPU_CLK_PAL / 8) - MCFG_QUICKLOAD_ADD("quickload", comx35_comx, "comx", 0) + MCFG_QUICKLOAD_ADD("quickload", comx35_state, comx35_comx, "comx", 0) MCFG_CASSETTE_ADD("cassette", cassette_intf) // expansion bus @@ -722,7 +722,7 @@ static MACHINE_CONFIG_START( ntsc, comx35_state ) // peripheral hardware MCFG_CDP1871_ADD(CDP1871_TAG, kbc_intf, CDP1869_CPU_CLK_NTSC / 8) - MCFG_QUICKLOAD_ADD("quickload", comx35_comx, "comx", 0) + MCFG_QUICKLOAD_ADD("quickload", comx35_state, comx35_comx, "comx", 0) MCFG_CASSETTE_ADD("cassette", cassette_intf) // expansion bus diff --git a/src/mess/drivers/cosmicos.c b/src/mess/drivers/cosmicos.c index f34eb436dd4..57c12222717 100644 --- a/src/mess/drivers/cosmicos.c +++ b/src/mess/drivers/cosmicos.c @@ -531,7 +531,7 @@ void cosmicos_state::machine_reset() /* Quickload */ -static QUICKLOAD_LOAD( cosmicos ) +QUICKLOAD_LOAD_MEMBER( cosmicos_state, cosmicos ) { cosmicos_state *state = image.device().machine().driver_data(); UINT8 *ptr = state->m_rom->base(); @@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( cosmicos, cosmicos_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) /* devices */ - MCFG_QUICKLOAD_ADD("quickload", cosmicos, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", cosmicos_state, cosmicos, "bin", 0) MCFG_CASSETTE_ADD("cassette", cosmicos_cassette_interface) /* internal ram */ diff --git a/src/mess/drivers/cybiko.c b/src/mess/drivers/cybiko.c index ebcd100f5a0..f313b3a7da7 100644 --- a/src/mess/drivers/cybiko.c +++ b/src/mess/drivers/cybiko.c @@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( cybikov1, cybiko_state ) MCFG_RAM_EXTRA_OPTIONS("1M") /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", cybiko, "bin,nv", 0) + MCFG_QUICKLOAD_ADD("quickload", cybiko_state, cybiko, "bin,nv", 0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( cybikov2, cybikov1) @@ -364,7 +364,7 @@ static MACHINE_CONFIG_DERIVED( cybikoxt, cybikov1) /* quickload */ MCFG_DEVICE_REMOVE("quickload") - MCFG_QUICKLOAD_ADD("quickload", cybikoxt, "bin,nv", 0) + MCFG_QUICKLOAD_ADD("quickload", cybiko_state, cybikoxt, "bin,nv", 0) MACHINE_CONFIG_END diff --git a/src/mess/drivers/d6800.c b/src/mess/drivers/d6800.c index 285eebefebf..0b4826d62b1 100644 --- a/src/mess/drivers/d6800.c +++ b/src/mess/drivers/d6800.c @@ -77,6 +77,7 @@ public: DECLARE_WRITE_LINE_MEMBER( d6800_screen_w ); UINT32 screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); TIMER_DEVICE_CALLBACK_MEMBER(d6800_p); + DECLARE_QUICKLOAD_LOAD_MEMBER( d6800 ); protected: required_device m_maincpu; required_device m_cass; @@ -333,7 +334,7 @@ static const cassette_interface d6800_cassette_interface = NULL }; -static QUICKLOAD_LOAD( d6800 ) +QUICKLOAD_LOAD_MEMBER( d6800_state, d6800 ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; @@ -401,7 +402,7 @@ static MACHINE_CONFIG_START( d6800, d6800_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("d6800_p", d6800_state, d6800_p, attotime::from_hz(40000)) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", d6800, "ch8", 1) + MCFG_QUICKLOAD_ADD("quickload", d6800_state, d6800, "ch8", 1) MACHINE_CONFIG_END /* ROMs */ diff --git a/src/mess/drivers/elf.c b/src/mess/drivers/elf.c index 71dbb322d05..1f9a1e16c58 100644 --- a/src/mess/drivers/elf.c +++ b/src/mess/drivers/elf.c @@ -277,7 +277,7 @@ static DM9368_INTERFACE( led_l_intf ) DEVCB_NULL }; -static QUICKLOAD_LOAD( elf ) +QUICKLOAD_LOAD_MEMBER( elf2_state, elf ) { elf2_state *state = image.device().machine().driver_data(); @@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( elf2, elf2_state ) /* devices */ MCFG_CASSETTE_ADD("cassette", elf_cassette_interface) - MCFG_QUICKLOAD_ADD("quickload", elf, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", elf2_state, elf, "bin", 0) /* internal ram */ MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/galaxy.c b/src/mess/drivers/galaxy.c index 51307d941d6..1c275ca4d21 100644 --- a/src/mess/drivers/galaxy.c +++ b/src/mess/drivers/galaxy.c @@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state ) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", galaxy, "gal", 0) + MCFG_SNAPSHOT_ADD("snapshot", galaxy_state, galaxy, "gal", 0) MCFG_SPEAKER_STANDARD_MONO("mono") MCFG_SOUND_WAVE_ADD(WAVE_TAG, "cassette") @@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( galaxyp, galaxy_state ) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", galaxy, "gal", 0) + MCFG_SNAPSHOT_ADD("snapshot", galaxy_state, galaxy, "gal", 0) /* sound hardware */ MCFG_SPEAKER_STANDARD_MONO("mono") diff --git a/src/mess/drivers/gizmondo.c b/src/mess/drivers/gizmondo.c index 69a9422f3ef..610d7ef7804 100644 --- a/src/mess/drivers/gizmondo.c +++ b/src/mess/drivers/gizmondo.c @@ -129,7 +129,7 @@ INPUT_CHANGED_MEMBER(gizmondo_state::port_changed) } #if 0 -static QUICKLOAD_LOAD( gizmondo ) +QUICKLOAD_LOAD_MEMBER( gizmondo_state, gizmondo ) { return gizmondo_quickload( image, file_type, quickload_size, 0x3000E000); // eboot //return gizmondo_quickload( image, file_type, quickload_size, 0x30400000); // wince @@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( gizmondo, gizmondo_state ) MCFG_DISKONCHIP_G3_ADD("diskonchip", 64) #if 0 - MCFG_QUICKLOAD_ADD("quickload", wince, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", gizmondo_state, wince, "bin", 0) #endif MACHINE_CONFIG_END diff --git a/src/mess/drivers/homelab.c b/src/mess/drivers/homelab.c index f2229760fb1..0cffb0586d3 100644 --- a/src/mess/drivers/homelab.c +++ b/src/mess/drivers/homelab.c @@ -74,6 +74,7 @@ public: UINT32 screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); UINT32 screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(homelab_frame); + DECLARE_QUICKLOAD_LOAD_MEMBER(homelab); }; INTERRUPT_GEN_MEMBER(homelab_state::homelab_frame) @@ -641,7 +642,7 @@ GFXDECODE_END static const mea8000_interface brailab4_speech_intf = { "speech", DEVCB_NULL }; -static QUICKLOAD_LOAD(homelab) +QUICKLOAD_LOAD_MEMBER( homelab_state,homelab) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i=0; @@ -760,7 +761,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) - MCFG_QUICKLOAD_ADD("quickload", homelab, "htp", 2) + MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MACHINE_CONFIG_END static MACHINE_CONFIG_START( homelab3, homelab_state ) @@ -790,7 +791,7 @@ static MACHINE_CONFIG_START( homelab3, homelab_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) - MCFG_QUICKLOAD_ADD("quickload", homelab, "htp", 2) + MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 2) MACHINE_CONFIG_END static MACHINE_CONFIG_START( brailab4, homelab_state ) @@ -823,7 +824,7 @@ static MACHINE_CONFIG_START( brailab4, homelab_state ) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) MCFG_MEA8000_ADD("mea8000", brailab4_speech_intf) - MCFG_QUICKLOAD_ADD("quickload", homelab, "htp", 18) + MCFG_QUICKLOAD_ADD("quickload", homelab_state, homelab, "htp", 18) MACHINE_CONFIG_END DRIVER_INIT_MEMBER(homelab_state,brailab4) diff --git a/src/mess/drivers/instruct.c b/src/mess/drivers/instruct.c index fe00f887276..22214616d31 100644 --- a/src/mess/drivers/instruct.c +++ b/src/mess/drivers/instruct.c @@ -70,6 +70,7 @@ public: DECLARE_WRITE8_MEMBER(portf8_w); DECLARE_WRITE8_MEMBER(portf9_w); DECLARE_WRITE8_MEMBER(portfa_w); + DECLARE_QUICKLOAD_LOAD_MEMBER( instruct ); virtual void machine_reset(); UINT8 m_digit; bool m_valid_digit; @@ -216,7 +217,7 @@ void instruct_state::machine_reset() memcpy(m_p_ram, ROM+0x1800, 0x0200); } -QUICKLOAD_LOAD( instruct ) +QUICKLOAD_LOAD_MEMBER( instruct_state, instruct ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; @@ -296,7 +297,7 @@ static MACHINE_CONFIG_START( instruct, instruct_state ) MCFG_DEFAULT_LAYOUT(layout_instruct) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", instruct, "pgm", 1) + MCFG_QUICKLOAD_ADD("quickload", instruct_state, instruct, "pgm", 1) /* cassette */ MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) diff --git a/src/mess/drivers/jr100.c b/src/mess/drivers/jr100.c index 51d920267c5..40742e31eca 100644 --- a/src/mess/drivers/jr100.c +++ b/src/mess/drivers/jr100.c @@ -64,6 +64,8 @@ public: DECLARE_WRITE8_MEMBER(jr100_via_write_b); DECLARE_WRITE_LINE_MEMBER(jr100_via_write_cb2); UINT32 readByLittleEndian(UINT8 *buf,int pos); + DECLARE_QUICKLOAD_LOAD_MEMBER(jr100); + protected: required_device m_via; @@ -336,7 +338,7 @@ UINT32 jr100_state::readByLittleEndian(UINT8 *buf,int pos) return buf[pos] + (buf[pos+1] << 8) + (buf[pos+2] << 16) + (buf[pos+3] << 24); } -static QUICKLOAD_LOAD(jr100) +QUICKLOAD_LOAD_MEMBER( jr100_state,jr100) { jr100_state *state = image.device().machine().driver_data(); int quick_length; @@ -420,7 +422,7 @@ static MACHINE_CONFIG_START( jr100, jr100_state ) MCFG_TIMER_DRIVER_ADD_PERIODIC("sound_tick", jr100_state, sound_tick, attotime::from_hz(XTAL_14_31818MHz / 16)) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", jr100, "prg", 2) + MCFG_QUICKLOAD_ADD("quickload", jr100_state, jr100, "prg", 2) MACHINE_CONFIG_END diff --git a/src/mess/drivers/kaypro.c b/src/mess/drivers/kaypro.c index 5711f7ddcb0..e81cecf1f89 100644 --- a/src/mess/drivers/kaypro.c +++ b/src/mess/drivers/kaypro.c @@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00) /* devices */ - MCFG_QUICKLOAD_ADD("quickload", kayproii, "com,cpm", 3) + MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kayproii, "com,cpm", 3) MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kayproii_brg_intf) // WD1943, SMC8116 @@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state ) /* devices */ MCFG_MC6845_ADD("crtc", MC6845, 2000000, kaypro2x_crtc) /* comes out of ULA - needs to be measured */ - MCFG_QUICKLOAD_ADD("quickload", kaypro2x, "com,cpm", 3) + MCFG_QUICKLOAD_ADD("quickload", kaypro_state, kaypro2x, "com,cpm", 3) MCFG_FD1793_ADD("wd1793", kaypro_wd1793_interface ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) MCFG_COM8116_ADD("brg", XTAL_5_0688MHz, kaypro2x_brg_intf) // WD1943, SMC8116 diff --git a/src/mess/drivers/kc.c b/src/mess/drivers/kc.c index 47d896b0f15..a2c10891a92 100644 --- a/src/mess/drivers/kc.c +++ b/src/mess/drivers/kc.c @@ -155,7 +155,7 @@ static MACHINE_CONFIG_START( kc85_3, kc_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* devices */ - MCFG_QUICKLOAD_ADD("quickload", kc, "kcc", 2) + MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2) MCFG_CASSETTE_ADD( "cassette", kc_cassette_interface ) @@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( kc85_4, kc85_4_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* devices */ - MCFG_QUICKLOAD_ADD("quickload", kc, "kcc", 2) + MCFG_QUICKLOAD_ADD("quickload", kc_state, kc, "kcc", 2) MCFG_CASSETTE_ADD( "cassette", kc_cassette_interface ) diff --git a/src/mess/drivers/lviv.c b/src/mess/drivers/lviv.c index 6038e43e94c..db170dcccee 100644 --- a/src/mess/drivers/lviv.c +++ b/src/mess/drivers/lviv.c @@ -458,7 +458,7 @@ static MACHINE_CONFIG_START( lviv, lviv_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", lviv, "sav", 0) + MCFG_SNAPSHOT_ADD("snapshot", lviv_state, lviv, "sav", 0) MCFG_CASSETTE_ADD( "cassette", lviv_cassette_interface ) MCFG_SOFTWARE_LIST_ADD("cass_list","lviv") diff --git a/src/mess/drivers/lynx.c b/src/mess/drivers/lynx.c index 3e86b94f974..204ec5b443c 100644 --- a/src/mess/drivers/lynx.c +++ b/src/mess/drivers/lynx.c @@ -13,8 +13,6 @@ #include "imagedev/snapquik.h" #include "lynx.lh" -static QUICKLOAD_LOAD( lynx ); - static ADDRESS_MAP_START( lynx_mem , AS_PROGRAM, 8, lynx_state ) AM_RANGE(0x0000, 0xfbff) AM_RAM AM_SHARE("mem_0000") AM_RANGE(0xfc00, 0xfcff) AM_RAM AM_SHARE("mem_fc00") @@ -89,7 +87,7 @@ static MACHINE_CONFIG_START( lynx, lynx_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* devices */ - MCFG_QUICKLOAD_ADD("quickload", lynx, "o", 0) + MCFG_QUICKLOAD_ADD("quickload", lynx_state, lynx, "o", 0) MCFG_FRAGMENT_ADD(lynx_cartslot) MACHINE_CONFIG_END @@ -135,7 +133,7 @@ ROM_START(lynx2) ROM_END -static QUICKLOAD_LOAD( lynx ) +QUICKLOAD_LOAD_MEMBER( lynx_state, lynx ) { lynx_state *state = image.device().machine().driver_data(); address_space &space = state->m_maincpu->space(AS_PROGRAM); diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c index f6dd2e431d4..27bd149844f 100644 --- a/src/mess/drivers/mbee.c +++ b/src/mess/drivers/mbee.c @@ -708,8 +708,8 @@ static MACHINE_CONFIG_START( mbee, mbee_state ) /* devices */ MCFG_MC6845_ADD("crtc", SY6545_1, XTAL_12MHz / 8, mbee_crtc) - MCFG_QUICKLOAD_ADD("quickload", mbee, "mwb,com", 2) - MCFG_QUICKLOAD_ADD("quickload2", mbee_z80bin, "bin", 2) + MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com", 2) + MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) MACHINE_CONFIG_END @@ -749,8 +749,8 @@ static MACHINE_CONFIG_START( mbeeic, mbee_state ) /* devices */ MCFG_MC6845_ADD("crtc", SY6545_1, XTAL_13_5MHz / 8, mbeeic_crtc) - MCFG_QUICKLOAD_ADD("quickload", mbee, "mwb,com", 2) - MCFG_QUICKLOAD_ADD("quickload2", mbee_z80bin, "bin", 2) + MCFG_QUICKLOAD_ADD("quickload", mbee_state, mbee, "mwb,com", 2) + MCFG_QUICKLOAD_ADD("quickload2", mbee_state, mbee_z80bin, "bin", 2) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) MACHINE_CONFIG_END diff --git a/src/mess/drivers/microtan.c b/src/mess/drivers/microtan.c index a0561696bcb..4bbaaa77a15 100644 --- a/src/mess/drivers/microtan.c +++ b/src/mess/drivers/microtan.c @@ -248,8 +248,8 @@ static MACHINE_CONFIG_START( microtan, microtan_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* snapshot/quickload */ - MCFG_SNAPSHOT_ADD("snapshot", microtan, "m65", 0.5) - MCFG_QUICKLOAD_ADD("quickload", microtan, "hex", 0.5) + MCFG_SNAPSHOT_ADD("snapshot", microtan_state, microtan, "m65", 0.5) + MCFG_QUICKLOAD_ADD("quickload", microtan_state, microtan, "hex", 0.5) /* cassette */ MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) diff --git a/src/mess/drivers/mtx.c b/src/mess/drivers/mtx.c index 420c7292d2a..b36089c9516 100644 --- a/src/mess/drivers/mtx.c +++ b/src/mess/drivers/mtx.c @@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( mtx512, mtx_state ) MCFG_Z80CTC_ADD(Z80CTC_TAG, XTAL_4MHz, ctc_intf ) MCFG_TIMER_DRIVER_ADD_PERIODIC("z80ctc_timer", mtx_state, ctc_tick, attotime::from_hz(XTAL_4MHz/13)) MCFG_CENTRONICS_PRINTER_ADD(CENTRONICS_TAG, standard_centronics) - MCFG_SNAPSHOT_ADD("snapshot", mtx, "mtb", 0.5) + MCFG_SNAPSHOT_ADD("snapshot", mtx_state, mtx, "mtb", 0.5) MCFG_CASSETTE_ADD("cassette", mtx_cassette_interface) MCFG_TIMER_DRIVER_ADD_PERIODIC("cassette_timer", mtx_state, cassette_tick, attotime::from_hz(44100)) diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c index a3361c577b6..ea2032bf129 100644 --- a/src/mess/drivers/nascom1.c +++ b/src/mess/drivers/nascom1.c @@ -299,7 +299,7 @@ static MACHINE_CONFIG_START( nascom1, nascom1_state ) MCFG_Z80PIO_ADD( "z80pio", XTAL_16MHz/8, nascom1_z80pio_intf ) /* devices */ - MCFG_SNAPSHOT_ADD("snapshot", nascom1, "nas", 0.5) + MCFG_SNAPSHOT_ADD("snapshot", nascom1_state, nascom1, "nas", 0.5) MCFG_CASSETTE_ADD( "cassette", default_cassette_interface ) diff --git a/src/mess/drivers/pet.c b/src/mess/drivers/pet.c index bcc8142f298..84220e1fbce 100644 --- a/src/mess/drivers/pet.c +++ b/src/mess/drivers/pet.c @@ -163,7 +163,7 @@ static void cbm_pet_quick_sethiaddress( running_machine &machine, UINT16 hiaddre space.write_byte(0x2b, hiaddress >> 8); } -static QUICKLOAD_LOAD( cbm_pet ) +QUICKLOAD_LOAD_MEMBER( pet_state, cbm_pet ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_pet_quick_sethiaddress); } @@ -1463,7 +1463,7 @@ static MACHINE_CONFIG_START( pet, pet_state ) MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_8MHz/8, pet_expansion_cards, NULL, NULL) MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", pet_state, cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // software lists MCFG_SOFTWARE_LIST_ADD("cass_list", "pet_cass") @@ -1742,7 +1742,7 @@ static MACHINE_CONFIG_START( pet80, pet80_state ) MCFG_PET_EXPANSION_SLOT_ADD(PET_EXPANSION_SLOT_TAG, XTAL_16MHz/16, pet_expansion_cards, NULL, NULL) MCFG_PET_EXPANSION_SLOT_DMA_CALLBACKS(READ8(pet_state, read), WRITE8(pet_state, write)) MCFG_PET_USER_PORT_ADD(PET_USER_PORT_TAG, user_intf, pet_user_port_cards, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", pet_state, cbm_pet, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // software lists MCFG_SOFTWARE_LIST_ADD("cass_list", "pet_cass") diff --git a/src/mess/drivers/pipbug.c b/src/mess/drivers/pipbug.c index b86654291fc..226178082ed 100644 --- a/src/mess/drivers/pipbug.c +++ b/src/mess/drivers/pipbug.c @@ -54,6 +54,7 @@ public: DECLARE_WRITE8_MEMBER(pipbug_serial_w); required_device m_terminal; required_device m_maincpu; + DECLARE_QUICKLOAD_LOAD_MEMBER( pipbug ); }; WRITE8_MEMBER( pipbug_state::pipbug_ctrl_w ) @@ -92,7 +93,7 @@ static const serial_terminal_interface terminal_intf = DEVCB_NULL }; -QUICKLOAD_LOAD( pipbug ) +QUICKLOAD_LOAD_MEMBER( pipbug_state, pipbug ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; @@ -172,7 +173,7 @@ static MACHINE_CONFIG_START( pipbug, pipbug_state ) MCFG_SERIAL_TERMINAL_ADD(TERMINAL_TAG, terminal_intf, 110) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", pipbug, "pgm", 1) + MCFG_QUICKLOAD_ADD("quickload", pipbug_state, pipbug, "pgm", 1) MACHINE_CONFIG_END diff --git a/src/mess/drivers/plus4.c b/src/mess/drivers/plus4.c index ec397d13a25..3990665d0b3 100644 --- a/src/mess/drivers/plus4.c +++ b/src/mess/drivers/plus4.c @@ -33,7 +33,7 @@ -static QUICKLOAD_LOAD( cbm_c16 ) +QUICKLOAD_LOAD_MEMBER( plus4_state, cbm_c16 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_quick_sethiaddress); } @@ -744,7 +744,7 @@ static MACHINE_CONFIG_START( ntsc, plus4_state ) MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_14_31818MHz/16, plus4_expansion_cards, "c1551", NULL, DEVWRITELINE(DEVICE_SELF, plus4_state, exp_irq_w)) MCFG_PLUS4_EXPANSION_SLOT_DMA_CALLBACKS(DEVREAD8(DEVICE_SELF, plus4_state, read), DEVWRITE8(DEVICE_SELF, plus4_state, write), INPUTLINE(MOS7501_TAG, INPUT_LINE_HALT)) MCFG_PLUS4_USER_PORT_ADD(PLUS4_USER_PORT_TAG, plus4_user_port_cards, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", plus4_state, cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // internal ram MCFG_RAM_ADD(RAM_TAG) @@ -790,7 +790,7 @@ static MACHINE_CONFIG_START( pal, plus4_state ) MCFG_PLUS4_EXPANSION_SLOT_ADD(PLUS4_EXPANSION_SLOT_TAG, XTAL_17_73447MHz/20, plus4_expansion_cards, "c1551", NULL, DEVWRITELINE(DEVICE_SELF, plus4_state, exp_irq_w)) MCFG_PLUS4_EXPANSION_SLOT_DMA_CALLBACKS(DEVREAD8(DEVICE_SELF, plus4_state, read), DEVWRITE8(DEVICE_SELF, plus4_state, write), INPUTLINE(MOS7501_TAG, INPUT_LINE_HALT)) MCFG_PLUS4_USER_PORT_ADD(PLUS4_USER_PORT_TAG, plus4_user_port_cards, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", plus4_state, cbm_c16, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // internal ram MCFG_RAM_ADD(RAM_TAG) diff --git a/src/mess/drivers/poly88.c b/src/mess/drivers/poly88.c index ad014fa7c6e..137159f62bd 100644 --- a/src/mess/drivers/poly88.c +++ b/src/mess/drivers/poly88.c @@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( poly88, poly88_state ) MCFG_SERIAL_SOURCE_ADD("sercas") /* snapshot */ - MCFG_SNAPSHOT_ADD("snapshot", poly88, "img", 0) + MCFG_SNAPSHOT_ADD("snapshot", poly88_state, poly88, "img", 0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( poly8813, poly88 ) diff --git a/src/mess/drivers/primo.c b/src/mess/drivers/primo.c index afc6a3f2f13..b5d0c0b9bef 100644 --- a/src/mess/drivers/primo.c +++ b/src/mess/drivers/primo.c @@ -275,8 +275,8 @@ static MACHINE_CONFIG_START( primoa32, primo_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* snapshot/quickload */ - MCFG_SNAPSHOT_ADD("snapshot", primo, "pss", 0) - MCFG_QUICKLOAD_ADD("quickload", primo, "pp", 0) + MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss", 0) + MCFG_QUICKLOAD_ADD("quickload", primo_state, primo, "pp", 0) MCFG_CASSETTE_ADD( "cassette", primo_cassette_interface ) diff --git a/src/mess/drivers/psx.c b/src/mess/drivers/psx.c index f3b6dcf4b24..957998b8222 100644 --- a/src/mess/drivers/psx.c +++ b/src/mess/drivers/psx.c @@ -50,6 +50,7 @@ public: int load_psf( cpu_device *cpu, unsigned char *p_n_file, int n_len ); void cd_dma_read( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size ); void cd_dma_write( UINT32 *p_n_psxram, UINT32 n_address, INT32 n_size ); + DECLARE_QUICKLOAD_LOAD_MEMBER( psx_exe_load ); required_device m_maincpu; }; @@ -448,7 +449,7 @@ DIRECT_UPDATE_MEMBER(psx1_state::psx_setopbase) return address; } -static QUICKLOAD_LOAD( psx_exe_load ) +QUICKLOAD_LOAD_MEMBER( psx1_state, psx_exe_load ) { psx1_state *state = image.device().machine().driver_data(); address_space &space = state->m_maincpu->space( AS_PROGRAM ); @@ -517,7 +518,7 @@ static MACHINE_CONFIG_START( psxntsc, psx1_state ) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 ) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", psx_exe_load, "cpe,exe,psf,psx", 0) + MCFG_QUICKLOAD_ADD("quickload", psx1_state, psx_exe_load, "cpe,exe,psf,psx", 0) MCFG_SOFTWARE_LIST_ADD("cd_list","psx") @@ -551,7 +552,7 @@ static MACHINE_CONFIG_START( psxpal, psx1_state ) MCFG_SOUND_ROUTE( 1, "rspeaker", 1.00 ) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", psx_exe_load, "cpe,exe,psf,psx", 0) + MCFG_QUICKLOAD_ADD("quickload", psx1_state, psx_exe_load, "cpe,exe,psf,psx", 0) MCFG_SOFTWARE_LIST_ADD("cd_list","psx") diff --git a/src/mess/drivers/rex6000.c b/src/mess/drivers/rex6000.c index ca80675a11a..dfd40299054 100644 --- a/src/mess/drivers/rex6000.c +++ b/src/mess/drivers/rex6000.c @@ -119,6 +119,7 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(irq_timer1); TIMER_DEVICE_CALLBACK_MEMBER(irq_timer2); TIMER_DEVICE_CALLBACK_MEMBER(sec_timer); + DECLARE_QUICKLOAD_LOAD_MEMBER(rex6000); }; @@ -561,7 +562,7 @@ void rex6000_state::palette_init() palette_set_color(machine(), 1, MAKE_RGB(92, 83, 88)); } -static QUICKLOAD_LOAD(rex6000) +QUICKLOAD_LOAD_MEMBER( rex6000_state,rex6000) { static const char magic[] = "ApplicationName:Addin"; running_machine &machine = image.device().machine(); @@ -662,7 +663,7 @@ static MACHINE_CONFIG_START( rex6000, rex6000_state ) MCFG_GFXDECODE(rex6000) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", rex6000, "rex,ds2", 0) + MCFG_QUICKLOAD_ADD("quickload", rex6000_state, rex6000, "rex,ds2", 0) MCFG_RP5C01_ADD(TC8521_TAG, XTAL_32_768kHz, rtc_intf) diff --git a/src/mess/drivers/sorcerer.c b/src/mess/drivers/sorcerer.c index c4a322897a9..f6e517e76b3 100644 --- a/src/mess/drivers/sorcerer.c +++ b/src/mess/drivers/sorcerer.c @@ -451,8 +451,8 @@ static MACHINE_CONFIG_START( sorcerer, sorcerer_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* quickload */ - MCFG_SNAPSHOT_ADD("snapshot", sorcerer, "snp", 2) - MCFG_QUICKLOAD_ADD("quickload", sorcerer, "bin", 3) + MCFG_SNAPSHOT_ADD("snapshot", sorcerer_state, sorcerer, "snp", 2) + MCFG_QUICKLOAD_ADD("quickload", sorcerer_state, sorcerer, "bin", 3) MCFG_CASSETTE_ADD( "cassette", sorcerer_cassette_interface ) MCFG_CASSETTE_ADD( "cassette2", sorcerer_cassette_interface ) diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c index 7e8e49dbe54..cd0f87dd9e8 100644 --- a/src/mess/drivers/spectrum.c +++ b/src/mess/drivers/spectrum.c @@ -717,8 +717,8 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* devices */ - MCFG_SNAPSHOT_ADD("snapshot", spectrum, "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx", 0) - MCFG_QUICKLOAD_ADD("quickload", spectrum, "raw,scr", 2) // The delay prevents the screen from being cleared by the RAM test at boot + MCFG_SNAPSHOT_ADD("snapshot", spectrum_state, spectrum, "ach,frz,plusd,prg,sem,sit,sna,snp,snx,sp,z80,zx", 0) + MCFG_QUICKLOAD_ADD("quickload", spectrum_state, spectrum, "raw,scr", 2) // The delay prevents the screen from being cleared by the RAM test at boot MCFG_CASSETTE_ADD( "cassette", spectrum_cassette_interface ) MCFG_SOFTWARE_LIST_ADD("cass_list","spectrum_cass") diff --git a/src/mess/drivers/super80.c b/src/mess/drivers/super80.c index e59dbbb0651..80094164f10 100644 --- a/src/mess/drivers/super80.c +++ b/src/mess/drivers/super80.c @@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( super80, super80_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", super80, "bin", 3) + MCFG_QUICKLOAD_ADD("quickload", super80_state, super80, "bin", 3) /* cassette */ MCFG_CASSETTE_ADD( "cassette", super80_cassette_interface ) @@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( super80v, super80_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", super80, "bin", 3) + MCFG_QUICKLOAD_ADD("quickload", super80_state, super80, "bin", 3) /* cassette */ MCFG_CASSETTE_ADD( "cassette", super80_cassette_interface ) diff --git a/src/mess/drivers/svmu.c b/src/mess/drivers/svmu.c index 94914339ace..e206bfa2854 100644 --- a/src/mess/drivers/svmu.c +++ b/src/mess/drivers/svmu.c @@ -43,6 +43,7 @@ public: DECLARE_READ8_MEMBER(p1_r); DECLARE_WRITE8_MEMBER(p1_w); DECLARE_READ8_MEMBER(p7_r); + DECLARE_QUICKLOAD_LOAD_MEMBER( svmu ); private: UINT8 * m_bios; @@ -191,7 +192,7 @@ inline void vmufat_write_word(UINT8* flash, UINT8 block, offs_t offset, UINT16 d flash[(block * 512) + offset + 1] = (data>>8) & 0xff; } -static QUICKLOAD_LOAD( svmu ) +QUICKLOAD_LOAD_MEMBER( svmu_state, svmu ) { running_machine &machine = image.device().machine(); svmu_state *state = machine.driver_data(); @@ -322,7 +323,7 @@ static MACHINE_CONFIG_START( svmu, svmu_state ) /* devices */ MCFG_ATMEL_29C010_ADD("flash") - MCFG_QUICKLOAD_ADD("quickload", svmu, "vms,bin", 0) + MCFG_QUICKLOAD_ADD("quickload", svmu_state, svmu, "vms,bin", 0) MCFG_QUICKLOAD_INTERFACE("svmu_quik") /* Software lists */ diff --git a/src/mess/drivers/ti85.c b/src/mess/drivers/ti85.c index 6e274d44684..cb2f705153b 100644 --- a/src/mess/drivers/ti85.c +++ b/src/mess/drivers/ti85.c @@ -529,7 +529,7 @@ MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( ti85d, ti85 ) - MCFG_SNAPSHOT_ADD("snapshot", ti8x, "sav", 0) + MCFG_SNAPSHOT_ADD("snapshot", ti85_state, ti8x, "sav", 0) //MCFG_TI85SERIAL_ADD( "tiserial" ) MACHINE_CONFIG_END @@ -594,7 +594,7 @@ static MACHINE_CONFIG_DERIVED( ti86, ti85 ) MCFG_DEVICE_REMOVE("nvram") MCFG_NVRAM_HANDLER( ti86 ) - MCFG_SNAPSHOT_ADD("snapshot", ti8x, "sav", 0) + MCFG_SNAPSHOT_ADD("snapshot", ti85_state, ti8x, "sav", 0) //MCFG_TI86SERIAL_ADD( "tiserial" ) MACHINE_CONFIG_END diff --git a/src/mess/drivers/tmc1800.c b/src/mess/drivers/tmc1800.c index 13c0131413f..75afc90f656 100644 --- a/src/mess/drivers/tmc1800.c +++ b/src/mess/drivers/tmc1800.c @@ -766,7 +766,7 @@ static const cassette_interface tmc1800_cassette_interface = NULL }; -static QUICKLOAD_LOAD( tmc1800 ) +QUICKLOAD_LOAD_MEMBER( tmc1800_state, tmc1800 ) { tmc1800_state *state = image.device().machine().driver_data(); UINT8 *ptr = state->m_rom->base(); @@ -799,7 +799,7 @@ static MACHINE_CONFIG_START( tmc1800, tmc1800_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // devices - MCFG_QUICKLOAD_ADD("quickload", tmc1800, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", tmc1800_state, tmc1800, "bin", 0) MCFG_CASSETTE_ADD( "cassette", tmc1800_cassette_interface ) // internal ram @@ -825,7 +825,7 @@ static MACHINE_CONFIG_START( osc1000b, osc1000b_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.25) // devices - MCFG_QUICKLOAD_ADD("quickload", tmc1800, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", tmc1800_state, tmc1800, "bin", 0) MCFG_CASSETTE_ADD( "cassette", tmc1800_cassette_interface ) // internal ram @@ -845,7 +845,7 @@ static MACHINE_CONFIG_START( tmc2000, tmc2000_state ) MCFG_FRAGMENT_ADD(tmc2000_video) // devices - MCFG_QUICKLOAD_ADD("quickload", tmc1800, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", tmc1800_state, tmc1800, "bin", 0) MCFG_CASSETTE_ADD( "cassette", tmc1800_cassette_interface ) // internal ram @@ -865,7 +865,7 @@ static MACHINE_CONFIG_START( nano, nano_state ) MCFG_FRAGMENT_ADD(nano_video) // devices - MCFG_QUICKLOAD_ADD("quickload", tmc1800, "bin", 0) + MCFG_QUICKLOAD_ADD("quickload", tmc1800_state, tmc1800, "bin", 0) MCFG_CASSETTE_ADD( "cassette", tmc1800_cassette_interface ) // internal ram diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c index 266e4654f02..4859d4db050 100644 --- a/src/mess/drivers/trs80.c +++ b/src/mess/drivers/trs80.c @@ -614,7 +614,7 @@ static MACHINE_CONFIG_DERIVED( model1, trs80 ) // model I, level II /* devices */ MCFG_CASSETTE_MODIFY( "cassette", trs80l2_cassette_interface ) - MCFG_QUICKLOAD_ADD("quickload", trs80_cmd, "cmd", 0.5) + MCFG_QUICKLOAD_ADD("quickload", trs80_state, trs80_cmd, "cmd", 0.5) MCFG_FD1793_ADD("wd179x", trs80_wd17xx_interface ) // should be FD1771 or FD1791 but inverted data lines are too tricky to fix now MCFG_LEGACY_FLOPPY_4_DRIVES_ADD(trs80_floppy_interface) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) diff --git a/src/mess/drivers/tvc.c b/src/mess/drivers/tvc.c index 7864731ee8a..fcf04c054f5 100644 --- a/src/mess/drivers/tvc.c +++ b/src/mess/drivers/tvc.c @@ -613,7 +613,7 @@ WRITE_LINE_MEMBER(tvc_state::tvc_centronics_ack) m_centronics_ff = 1; } -static QUICKLOAD_LOAD(tvc64) +QUICKLOAD_LOAD_MEMBER( tvc_state,tvc64) { running_machine &machine = image.device().machine(); UINT8 first_byte; @@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( tvc, tvc_state ) MCFG_CASSETTE_ADD( "cassette", tvc_cassette_interface ) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", tvc64, "cas", 6) + MCFG_QUICKLOAD_ADD("quickload", tvc_state, tvc64, "cas", 6) /* Software lists */ MCFG_SOFTWARE_LIST_ADD("cart_list", "tvc_cart") diff --git a/src/mess/drivers/vc4000.c b/src/mess/drivers/vc4000.c index 493495187d1..a7f776bae68 100644 --- a/src/mess/drivers/vc4000.c +++ b/src/mess/drivers/vc4000.c @@ -106,8 +106,6 @@ to work on the vc4000 as well. Procedure: #include "includes/vc4000.h" -static QUICKLOAD_LOAD( vc4000 ); - READ8_MEMBER( vc4000_state::vc4000_key_r ) { UINT8 data=0; @@ -408,7 +406,7 @@ static MACHINE_CONFIG_START( vc4000, vc4000_state ) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.50) /* quickload */ - MCFG_QUICKLOAD_ADD("quickload", vc4000, "pgm,tvc", 0) + MCFG_QUICKLOAD_ADD("quickload", vc4000_state, vc4000, "pgm,tvc", 0) /* cartridge */ MCFG_CARTSLOT_ADD("cart") @@ -526,7 +524,7 @@ ROM_START( elektor ) ROM_LOAD( "elektor.rom", 0x0000, 0x0800, CRC(e6ef1ee1) SHA1(6823b5a22582344016415f2a37f9f3a2dc75d2a7)) ROM_END -QUICKLOAD_LOAD(vc4000) +QUICKLOAD_LOAD_MEMBER( vc4000_state,vc4000) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); int i; diff --git a/src/mess/drivers/vic20.c b/src/mess/drivers/vic20.c index 10517a72835..4269b003604 100644 --- a/src/mess/drivers/vic20.c +++ b/src/mess/drivers/vic20.c @@ -11,7 +11,7 @@ -static QUICKLOAD_LOAD( cbm_vc20 ) +QUICKLOAD_LOAD_MEMBER( vic20_state, cbm_vc20 ) { return general_cbm_loadsnap(image, file_type, quickload_size, 0, cbm_quick_sethiaddress); } @@ -672,7 +672,7 @@ static MACHINE_CONFIG_START( vic20, vic20_state ) MCFG_CBM_IEC_ADD("c1541") MCFG_CBM_IEC_BUS_SRQ_CALLBACK(DEVWRITELINE(M6522_2_TAG, via6522_device, write_cb1)) MCFG_VIC20_USER_PORT_ADD(VIC20_USER_PORT_TAG, user_intf, vic20_user_port_cards, NULL, NULL) - MCFG_QUICKLOAD_ADD("quickload", cbm_vc20, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) + MCFG_QUICKLOAD_ADD("quickload", vic20_state, cbm_vc20, "p00,prg", CBM_QUICKLOAD_DELAY_SECONDS) // software lists MCFG_SOFTWARE_LIST_ADD("cart_list", "vic1001_cart") diff --git a/src/mess/drivers/vip.c b/src/mess/drivers/vip.c index bb0acefd16c..48e4c4769be 100644 --- a/src/mess/drivers/vip.c +++ b/src/mess/drivers/vip.c @@ -712,10 +712,10 @@ void vip_state::machine_reset() //------------------------------------------------- -// QUICKLOAD_LOAD( vip ) +// QUICKLOAD_LOAD_MEMBER( vip_state, vip ) //------------------------------------------------- -static QUICKLOAD_LOAD( vip ) +QUICKLOAD_LOAD_MEMBER( vip_state, vip ) { vip_state *state = image.device().machine().driver_data(); UINT8 *ram = state->m_ram->pointer(); @@ -787,7 +787,7 @@ static MACHINE_CONFIG_START( vip, vip_state ) MCFG_VIP_EXPANSION_SLOT_ADD(VIP_EXPANSION_SLOT_TAG, XTAL_3_52128MHz/2, expansion_intf, vip_expansion_cards, NULL, NULL) // devices - MCFG_QUICKLOAD_ADD("quickload", vip, "bin,c8,c8x", 0) + MCFG_QUICKLOAD_ADD("quickload", vip_state, vip, "bin,c8,c8x", 0) MCFG_CASSETTE_ADD("cassette", vip_cassette_interface) // software lists diff --git a/src/mess/drivers/vtech1.c b/src/mess/drivers/vtech1.c index b8624e69471..dd0c869c8e5 100644 --- a/src/mess/drivers/vtech1.c +++ b/src/mess/drivers/vtech1.c @@ -200,6 +200,7 @@ public: DECLARE_READ8_MEMBER(vtech1_printer_r); DECLARE_WRITE8_MEMBER(vtech1_strobe_w); DECLARE_READ8_MEMBER(vtech1_mc6847_videoram_r); + DECLARE_SNAPSHOT_LOAD_MEMBER( vtech1 ); void vtech1_get_track(); void vtech1_put_track(); required_device m_maincpu; @@ -210,7 +211,7 @@ public: SNAPSHOT LOADING ***************************************************************************/ -static SNAPSHOT_LOAD( vtech1 ) +SNAPSHOT_LOAD_MEMBER( vtech1_state, vtech1 ) { vtech1_state *vtech1 = image.device().machine().driver_data(); address_space &space = vtech1->m_maincpu->space(AS_PROGRAM); @@ -985,7 +986,7 @@ static MACHINE_CONFIG_START( laser110, vtech1_state ) MCFG_CENTRONICS_PRINTER_ADD("centronics", standard_centronics) /* snapshot/quickload */ - MCFG_SNAPSHOT_ADD("snapshot", vtech1, "vz", 1.5) + MCFG_SNAPSHOT_ADD("snapshot", vtech1_state, vtech1, "vz", 1.5) MCFG_CASSETTE_ADD( "cassette", laser_cassette_interface ) diff --git a/src/mess/drivers/z1013.c b/src/mess/drivers/z1013.c index dc1dc11a217..a5e1f5ebf3e 100644 --- a/src/mess/drivers/z1013.c +++ b/src/mess/drivers/z1013.c @@ -77,6 +77,7 @@ public: virtual void machine_reset(); virtual void video_start(); UINT32 screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + DECLARE_SNAPSHOT_LOAD_MEMBER( z1013 ); }; @@ -317,7 +318,7 @@ const z80pio_interface z1013k7659_z80pio_intf = DEVCB_NULL }; -SNAPSHOT_LOAD( z1013 ) +SNAPSHOT_LOAD_MEMBER( z1013_state, z1013 ) { /* header layout 0000,0001 - load address @@ -417,7 +418,7 @@ static MACHINE_CONFIG_START( z1013, z1013_state ) /* Devices */ MCFG_Z80PIO_ADD( "z80pio", XTAL_1MHz, z1013_z80pio_intf ) MCFG_CASSETTE_ADD( "cassette", z1013_cassette_interface ) - MCFG_SNAPSHOT_ADD("snapshot", z1013, "z80", 0) + MCFG_SNAPSHOT_ADD("snapshot", z1013_state, z1013, "z80", 0) MACHINE_CONFIG_END static MACHINE_CONFIG_DERIVED( z1013k76, z1013 ) diff --git a/src/mess/includes/ace.h b/src/mess/includes/ace.h index 03cf2de6935..55c30db153d 100644 --- a/src/mess/includes/ace.h +++ b/src/mess/includes/ace.h @@ -70,6 +70,7 @@ public: DECLARE_WRITE8_MEMBER(pio_bc_w); DECLARE_READ8_MEMBER(sby_r); DECLARE_WRITE8_MEMBER(ald_w); + DECLARE_SNAPSHOT_LOAD_MEMBER( ace ); }; #endif /* ACE_H_ */ diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h index 8e75aa36252..99233903264 100644 --- a/src/mess/includes/amstrad.h +++ b/src/mess/includes/amstrad.h @@ -230,6 +230,7 @@ public: void amstrad_handle_snapshot(unsigned char *pSnapshot); void amstrad_rethinkMemory(); + DECLARE_SNAPSHOT_LOAD_MEMBER( amstrad ); protected: required_memory_region m_region_maincpu; @@ -300,7 +301,6 @@ WRITE_LINE_DEVICE_HANDLER( cpc_nmi_w ); WRITE_LINE_DEVICE_HANDLER( cpc_romdis ); WRITE_LINE_DEVICE_HANDLER( cpc_romen ); -SNAPSHOT_LOAD( amstrad ); extern const mc6845_interface amstrad_mc6845_intf; extern const mc6845_interface amstrad_plus_mc6845_intf; diff --git a/src/mess/includes/apple1.h b/src/mess/includes/apple1.h index 0f9b050d0c1..1b69c40104f 100644 --- a/src/mess/includes/apple1.h +++ b/src/mess/includes/apple1.h @@ -79,13 +79,13 @@ public: void cassette_toggle_output(); terminal_t *terminal_create(int gfx, int blank_char, int char_bits,int (*getcursorcode)(int original_code),int num_cols, int num_rows); attotime apple1_vh_dsp_time_to_ready(); + DECLARE_SNAPSHOT_LOAD_MEMBER( apple1 ); }; /*----------- defined in machine/apple1.c -----------*/ extern const pia6821_interface apple1_pia0; -SNAPSHOT_LOAD( apple1 ); /*----------- defined in drivers/apple1.c -----------*/ diff --git a/src/mess/includes/atom.h b/src/mess/includes/atom.h index 7fa552f334e..e9fba6dfa7f 100644 --- a/src/mess/includes/atom.h +++ b/src/mess/includes/atom.h @@ -117,6 +117,8 @@ public: TIMER_DEVICE_CALLBACK_MEMBER(cassette_output_tick); DECLARE_DEVICE_IMAGE_LOAD_MEMBER( atom_cart ); + DECLARE_QUICKLOAD_LOAD_MEMBER(atom_atm); + void image_fread_memory(device_image_interface &image, UINT16 addr, UINT32 count); }; class atomeb_state : public atom_state diff --git a/src/mess/includes/avigo.h b/src/mess/includes/avigo.h index a7a34d06ed1..1f2e41f368e 100644 --- a/src/mess/includes/avigo.h +++ b/src/mess/includes/avigo.h @@ -107,5 +107,7 @@ public: virtual void palette_init(); TIMER_DEVICE_CALLBACK_MEMBER(avigo_scan_timer); TIMER_DEVICE_CALLBACK_MEMBER(avigo_1hz_timer); + + DECLARE_QUICKLOAD_LOAD_MEMBER( avigo); }; #endif /* AVIGO_H_ */ diff --git a/src/mess/includes/c128.h b/src/mess/includes/c128.h index d4d84e1d494..9b9dd03fc51 100644 --- a/src/mess/includes/c128.h +++ b/src/mess/includes/c128.h @@ -193,7 +193,8 @@ public: DECLARE_INPUT_CHANGED_MEMBER( restore ); DECLARE_INPUT_CHANGED_MEMBER( caps_lock ); - + + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_c64 ); // memory state int m_z80en; int m_loram; diff --git a/src/mess/includes/c64.h b/src/mess/includes/c64.h index 4faaedada50..042bb1a980e 100644 --- a/src/mess/includes/c64.h +++ b/src/mess/includes/c64.h @@ -137,6 +137,8 @@ public: DECLARE_WRITE_LINE_MEMBER( exp_dma_w ); DECLARE_WRITE_LINE_MEMBER( exp_reset_w ); + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_c64 ); + // memory state int m_loram; int m_hiram; diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h index f1318c5b23d..e068b846734 100644 --- a/src/mess/includes/c65.h +++ b/src/mess/includes/c65.h @@ -10,6 +10,7 @@ #include "machine/6526cia.h" #include "machine/cbmiec.h" #include "imagedev/cartslot.h" +#include "imagedev/snapquik.h" #define C64_MAX_ROMBANK 64 // .crt files contain multiple 'CHIPs', i.e. rom banks (of variable size) with headers. Known carts have at most 64 'CHIPs'. @@ -158,6 +159,8 @@ public: DECLARE_WRITE8_MEMBER( c65_write_io_dc00 ); DECLARE_READ8_MEMBER( c65_read_io ); DECLARE_READ8_MEMBER( c65_read_io_dc00 ); + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_c65 ); + int c64_paddle_read( device_t *device, address_space &space, int which ); void c65_nmi( ); void c65_irq( int level ); diff --git a/src/mess/includes/cbm2.h b/src/mess/includes/cbm2.h index 0145fc7d801..9bcd842afc4 100644 --- a/src/mess/includes/cbm2.h +++ b/src/mess/includes/cbm2.h @@ -215,6 +215,7 @@ public: IRQ_CALLBACK_MEMBER( pic_irq_callback ); + DECLARE_QUICKLOAD_LOAD_MEMBER( cbmb ); // memory state int m_dramon; int m_busen1; @@ -312,6 +313,7 @@ public: DECLARE_WRITE_LINE_MEMBER( user_irq_w ); + DECLARE_QUICKLOAD_LOAD_MEMBER( p500 ); // video state int m_statvid; int m_vicdotsel; diff --git a/src/mess/includes/comx35.h b/src/mess/includes/comx35.h index 3a590400b39..c83ee50d6f5 100644 --- a/src/mess/includes/comx35.h +++ b/src/mess/includes/comx35.h @@ -91,6 +91,7 @@ public: DECLARE_WRITE_LINE_MEMBER( int_w ); DECLARE_WRITE_LINE_MEMBER( prd_w ); DECLARE_INPUT_CHANGED_MEMBER( trigger_reset ); + DECLARE_QUICKLOAD_LOAD_MEMBER( comx35_comx ); // processor state int m_clear; // CPU mode diff --git a/src/mess/includes/cosmicos.h b/src/mess/includes/cosmicos.h index 93bfc4e669f..5ec6b9892ee 100644 --- a/src/mess/includes/cosmicos.h +++ b/src/mess/includes/cosmicos.h @@ -109,6 +109,8 @@ public: DECLARE_INPUT_CHANGED_MEMBER( memory_disable ); DECLARE_DIRECT_UPDATE_MEMBER(cosmicos_direct_update_handler); + DECLARE_QUICKLOAD_LOAD_MEMBER( cosmicos ); + void set_cdp1802_mode(int mode); void clear_input_data(); void set_ram_mode(); diff --git a/src/mess/includes/cybiko.h b/src/mess/includes/cybiko.h index 0aaeb8eb68e..c5a7e6dede1 100644 --- a/src/mess/includes/cybiko.h +++ b/src/mess/includes/cybiko.h @@ -90,10 +90,10 @@ public: virtual void machine_reset(); virtual void palette_init(); void machine_stop_cybiko(); + DECLARE_QUICKLOAD_LOAD_MEMBER( cybiko ); + DECLARE_QUICKLOAD_LOAD_MEMBER( cybikoxt ); }; NVRAM_HANDLER( cybikoxt ); -QUICKLOAD_LOAD( cybiko ); -QUICKLOAD_LOAD( cybikoxt ); #endif /* CYBIKO_H_ */ diff --git a/src/mess/includes/elf.h b/src/mess/includes/elf.h index f4700d996e9..70a391333c6 100644 --- a/src/mess/includes/elf.h +++ b/src/mess/includes/elf.h @@ -59,6 +59,7 @@ public: DECLARE_WRITE_LINE_MEMBER( da_w ); DECLARE_INPUT_CHANGED_MEMBER( input_w ); + DECLARE_QUICKLOAD_LOAD_MEMBER( elf ); // display state UINT8 m_data; }; diff --git a/src/mess/includes/galaxy.h b/src/mess/includes/galaxy.h index 31e73e4d09a..ac5480cab83 100644 --- a/src/mess/includes/galaxy.h +++ b/src/mess/includes/galaxy.h @@ -44,6 +44,7 @@ public: void galaxy_set_timer(); void galaxy_setup_snapshot (const UINT8 * data, UINT32 size); required_device m_maincpu; + DECLARE_SNAPSHOT_LOAD_MEMBER( galaxy ); protected: required_device m_cassette; required_device m_ram; @@ -52,7 +53,4 @@ protected: }; -/*----------- defined in machine/galaxy.c -----------*/ -SNAPSHOT_LOAD( galaxy ); - #endif /* GALAXY_H_ */ diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h index 47e68dd9c0b..d594148e5ae 100644 --- a/src/mess/includes/kaypro.h +++ b/src/mess/includes/kaypro.h @@ -83,6 +83,8 @@ public: DECLARE_WRITE_LINE_MEMBER(kaypro_interrupt); DECLARE_READ8_MEMBER(kaypro_sio_r); DECLARE_WRITE8_MEMBER(kaypro_sio_w); + DECLARE_QUICKLOAD_LOAD_MEMBER(kayproii ); + DECLARE_QUICKLOAD_LOAD_MEMBER(kaypro2x ); }; @@ -103,10 +105,6 @@ extern const z80pio_interface kaypro4_pio_s_intf; extern const z80sio_interface kaypro_sio_intf; extern const wd17xx_interface kaypro_wd1793_interface; - -QUICKLOAD_LOAD( kayproii ); -QUICKLOAD_LOAD( kaypro2x ); - /*----------- defined in video/kaypro.c -----------*/ MC6845_UPDATE_ROW( kaypro2x_update_row ); diff --git a/src/mess/includes/kc.h b/src/mess/includes/kc.h index 7907d63bd89..7b4ce9eb3d5 100644 --- a/src/mess/includes/kc.h +++ b/src/mess/includes/kc.h @@ -149,6 +149,8 @@ public: TIMER_CALLBACK_MEMBER(kc_cassette_oneshot_timer); TIMER_CALLBACK_MEMBER(kc_cassette_timer_callback); TIMER_DEVICE_CALLBACK_MEMBER(kc_scanline); + + DECLARE_QUICKLOAD_LOAD_MEMBER( kc ); }; @@ -182,9 +184,4 @@ public: UINT8 * m_display_video_ram; }; - -/*----------- defined in machine/kc.c -----------*/ - -QUICKLOAD_LOAD( kc ); - #endif /* KC_H_ */ diff --git a/src/mess/includes/lviv.h b/src/mess/includes/lviv.h index 0f5a31d7d80..0686d421a1a 100644 --- a/src/mess/includes/lviv.h +++ b/src/mess/includes/lviv.h @@ -53,6 +53,7 @@ public: void lviv_setup_snapshot (UINT8 * data); void dump_registers(); int lviv_verify_snapshot (UINT8 * data, UINT32 size); + DECLARE_SNAPSHOT_LOAD_MEMBER( lviv ); }; @@ -62,8 +63,6 @@ extern const i8255_interface lviv_ppi8255_interface_0; extern const i8255_interface lviv_ppi8255_interface_1; -SNAPSHOT_LOAD( lviv ); - /*----------- defined in video/lviv.c -----------*/ extern const unsigned char lviv_palette[8*3]; diff --git a/src/mess/includes/lynx.h b/src/mess/includes/lynx.h index 47f7233c1b5..8372a15a9bb 100644 --- a/src/mess/includes/lynx.h +++ b/src/mess/includes/lynx.h @@ -8,7 +8,7 @@ #define LYNX_H_ #include "imagedev/cartslot.h" - +#include "imagedev/snapquik.h" #define LYNX_CART 0 #define LYNX_QUICKLOAD 1 @@ -163,6 +163,7 @@ public: UINT32 lynx_time_factor(int val); void lynx_uart_reset(); int lynx_verify_cart (char *header, int kind); + DECLARE_QUICKLOAD_LOAD_MEMBER( lynx ); }; diff --git a/src/mess/includes/mbee.h b/src/mess/includes/mbee.h index 904771a5174..1f2e0f58974 100644 --- a/src/mess/includes/mbee.h +++ b/src/mess/includes/mbee.h @@ -173,6 +173,8 @@ public: TIMER_CALLBACK_MEMBER(mbee256_kbd); TIMER_CALLBACK_MEMBER(mbee_rtc_irq); TIMER_CALLBACK_MEMBER(mbee_reset); + DECLARE_QUICKLOAD_LOAD_MEMBER( mbee ); + DECLARE_QUICKLOAD_LOAD_MEMBER( mbee_z80bin ); protected: required_memory_bank m_boot; @@ -214,9 +216,6 @@ protected: extern const wd17xx_interface mbee_wd17xx_interface; extern const z80pio_interface mbee_z80pio_intf; -QUICKLOAD_LOAD( mbee ); -QUICKLOAD_LOAD( mbee_z80bin ); - /*----------- defined in video/mbee.c -----------*/ MC6845_UPDATE_ROW( mbee_update_row ); diff --git a/src/mess/includes/microtan.h b/src/mess/includes/microtan.h index d5ebd15da90..a78dcaf0f1b 100644 --- a/src/mess/includes/microtan.h +++ b/src/mess/includes/microtan.h @@ -89,6 +89,8 @@ public: int parse_zillion_hex(UINT8 *snapshot_buff, char *src); void microtan_set_cpu_regs(const UINT8 *snapshot_buff, int base); void microtan_snapshot_copy(UINT8 *snapshot_buff, int snapshot_size); + DECLARE_SNAPSHOT_LOAD_MEMBER( microtan ); + DECLARE_QUICKLOAD_LOAD_MEMBER( microtan ); }; @@ -96,7 +98,4 @@ public: extern const via6522_interface microtan_via6522_0; extern const via6522_interface microtan_via6522_1; - -SNAPSHOT_LOAD( microtan ); -QUICKLOAD_LOAD( microtan ); #endif /* MICROTAN_H_ */ diff --git a/src/mess/includes/mtx.h b/src/mess/includes/mtx.h index 486171837bf..43b25fd1576 100644 --- a/src/mess/includes/mtx.h +++ b/src/mess/includes/mtx.h @@ -77,10 +77,7 @@ public: DECLARE_WRITE8_MEMBER(mtx_cst_w); DECLARE_READ8_MEMBER(mtx_prt_r); void bankswitch(UINT8 data); + DECLARE_SNAPSHOT_LOAD_MEMBER( mtx ); }; -/*----------- defined in machine/mtx.c -----------*/ - -SNAPSHOT_LOAD( mtx ); - #endif /* __MTX_H__ */ diff --git a/src/mess/includes/nascom1.h b/src/mess/includes/nascom1.h index bd836c72ff9..1134f1698b4 100644 --- a/src/mess/includes/nascom1.h +++ b/src/mess/includes/nascom1.h @@ -61,12 +61,11 @@ public: DECLARE_DEVICE_IMAGE_UNLOAD_MEMBER( nascom1_cassette ); required_device m_maincpu; required_device m_cassette; + DECLARE_SNAPSHOT_LOAD_MEMBER( nascom1 ); }; /*----------- defined in machine/nascom1.c -----------*/ extern const wd17xx_interface nascom2_wd17xx_interface; - -SNAPSHOT_LOAD( nascom1 ); #endif /* NASCOM1_H_ */ diff --git a/src/mess/includes/pet.h b/src/mess/includes/pet.h index 25262879949..97f268f0c39 100644 --- a/src/mess/includes/pet.h +++ b/src/mess/includes/pet.h @@ -128,7 +128,9 @@ public: DECLARE_WRITE_LINE_MEMBER( pia2_irqb_w ); TIMER_DEVICE_CALLBACK_MEMBER( sync_tick ); - + + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_pet ); + enum { SEL0 = 0, diff --git a/src/mess/includes/plus4.h b/src/mess/includes/plus4.h index 7486d0fd21d..92618223736 100644 --- a/src/mess/includes/plus4.h +++ b/src/mess/includes/plus4.h @@ -120,6 +120,8 @@ public: DECLARE_WRITE_LINE_MEMBER( acia_irq_w ); DECLARE_WRITE_LINE_MEMBER( exp_irq_w ); + + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_c16 ); enum { diff --git a/src/mess/includes/poly88.h b/src/mess/includes/poly88.h index 0685f301925..0c36d90cfdc 100644 --- a/src/mess/includes/poly88.h +++ b/src/mess/includes/poly88.h @@ -54,7 +54,7 @@ public: TIMER_CALLBACK_MEMBER(setup_machine_state); DECLARE_WRITE_LINE_MEMBER(poly88_usart_rxready); IRQ_CALLBACK_MEMBER(poly88_irq_callback); - + DECLARE_SNAPSHOT_LOAD_MEMBER( poly88 ); protected: required_device m_maincpu; required_device m_uart; @@ -75,6 +75,5 @@ protected: /*----------- defined in machine/poly88.c -----------*/ extern const i8251_interface poly88_usart_interface; -extern SNAPSHOT_LOAD( poly88 ); #endif /* POLY88_H_ */ diff --git a/src/mess/includes/primo.h b/src/mess/includes/primo.h index 9eeb01a0a16..7f0e7c39dce 100644 --- a/src/mess/includes/primo.h +++ b/src/mess/includes/primo.h @@ -48,13 +48,9 @@ public: void primo_common_machine_init (); void primo_setup_pss (UINT8* snapshot_data, UINT32 snapshot_size); void primo_setup_pp (UINT8* quickload_data, UINT32 quickload_size); + DECLARE_SNAPSHOT_LOAD_MEMBER( primo ); + DECLARE_QUICKLOAD_LOAD_MEMBER( primo ); }; -/*----------- defined in machine/primo.c -----------*/ - -extern SNAPSHOT_LOAD( primo ); -extern QUICKLOAD_LOAD( primo ); - - #endif /* PRIMO_H_ */ diff --git a/src/mess/includes/sorcerer.h b/src/mess/includes/sorcerer.h index d51a544267f..f01ce54b356 100644 --- a/src/mess/includes/sorcerer.h +++ b/src/mess/includes/sorcerer.h @@ -89,11 +89,8 @@ public: TIMER_CALLBACK_MEMBER(sorcerer_serial_tc); TIMER_CALLBACK_MEMBER(sorcerer_cassette_tc); TIMER_CALLBACK_MEMBER(sorcerer_reset); + DECLARE_SNAPSHOT_LOAD_MEMBER( sorcerer ); + DECLARE_QUICKLOAD_LOAD_MEMBER( sorcerer); }; - -/*----------- defined in machine/sorcerer.c -----------*/ -SNAPSHOT_LOAD( sorcerer ); -QUICKLOAD_LOAD(sorcerer); - #endif /* SORCERER_H_ */ diff --git a/src/mess/includes/spectrum.h b/src/mess/includes/spectrum.h index 856a1b59c06..6e7ecb94074 100644 --- a/src/mess/includes/spectrum.h +++ b/src/mess/includes/spectrum.h @@ -180,6 +180,10 @@ public: void spectrum_plus3_update_memory(); void ts2068_update_memory(); + DECLARE_SNAPSHOT_LOAD_MEMBER( spectrum ); + DECLARE_QUICKLOAD_LOAD_MEMBER( spectrum ); + + protected: required_device m_maincpu; required_device m_cassette; diff --git a/src/mess/includes/super80.h b/src/mess/includes/super80.h index 8e4035bd239..0d11d2df066 100644 --- a/src/mess/includes/super80.h +++ b/src/mess/includes/super80.h @@ -114,6 +114,7 @@ public: void palette_set_colors_rgb(const UINT8 *colors); void super80_cassette_motor( UINT8 data ); void driver_init_common( ); + DECLARE_QUICKLOAD_LOAD_MEMBER( super80 ); }; @@ -123,4 +124,3 @@ MC6845_UPDATE_ROW( super80v_update_row ); /*----------- defined in machine/super80.c -----------*/ extern const z80pio_interface super80_pio_intf; -QUICKLOAD_LOAD( super80 ); diff --git a/src/mess/includes/ti85.h b/src/mess/includes/ti85.h index 1eaa364bdfe..0f89eb982ee 100644 --- a/src/mess/includes/ti85.h +++ b/src/mess/includes/ti85.h @@ -109,6 +109,7 @@ public: void ti8x_snapshot_setup_registers (UINT8 * data); void ti85_setup_snapshot (UINT8 * data); void ti86_setup_snapshot (UINT8 * data); + DECLARE_SNAPSHOT_LOAD_MEMBER( ti8x ); }; @@ -116,7 +117,5 @@ public: NVRAM_HANDLER( ti83p ); NVRAM_HANDLER( ti86 ); -SNAPSHOT_LOAD( ti8x ); - #endif /* TI85_H_ */ diff --git a/src/mess/includes/tmc1800.h b/src/mess/includes/tmc1800.h index 9061321c2cf..4a5495bdaf5 100644 --- a/src/mess/includes/tmc1800.h +++ b/src/mess/includes/tmc1800.h @@ -55,6 +55,8 @@ public: int m_keylatch; /* key latch */ DECLARE_DRIVER_INIT(tmc1800); TIMER_CALLBACK_MEMBER(setup_beep); + + DECLARE_QUICKLOAD_LOAD_MEMBER( tmc1800 ); }; class osc1000b_state : public driver_device diff --git a/src/mess/includes/trs80.h b/src/mess/includes/trs80.h index 0b56f459de4..f53f6fd7f3b 100644 --- a/src/mess/includes/trs80.h +++ b/src/mess/includes/trs80.h @@ -152,6 +152,7 @@ public: INTERRUPT_GEN_MEMBER(trs80_fdc_interrupt); TIMER_CALLBACK_MEMBER(cassette_data_callback); DECLARE_WRITE_LINE_MEMBER(trs80_fdc_intrq_w); + DECLARE_QUICKLOAD_LOAD_MEMBER( trs80_cmd ); protected: required_memory_region m_region_maincpu; @@ -191,6 +192,4 @@ protected: extern const wd17xx_interface trs80_wd17xx_interface; -QUICKLOAD_LOAD( trs80_cmd ); - #endif /* TRS80_H_ */ diff --git a/src/mess/includes/tvc.h b/src/mess/includes/tvc.h index f9a67594b2d..67ff580b283 100644 --- a/src/mess/includes/tvc.h +++ b/src/mess/includes/tvc.h @@ -116,6 +116,8 @@ public: DECLARE_READ8_MEMBER(tvc_expansion_r); DECLARE_READ8_MEMBER(tvc_exp_id_r); DECLARE_WRITE8_MEMBER(tvc_expint_ack_w); + + DECLARE_QUICKLOAD_LOAD_MEMBER( tvc64); tvcexp_slot_device * m_expansions[4]; UINT8 m_video_mode; diff --git a/src/mess/includes/vc4000.h b/src/mess/includes/vc4000.h index 110d030990f..40163a5f60d 100644 --- a/src/mess/includes/vc4000.h +++ b/src/mess/includes/vc4000.h @@ -115,6 +115,7 @@ public: UINT32 screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); INTERRUPT_GEN_MEMBER(vc4000_video_line); DECLARE_DEVICE_IMAGE_LOAD_MEMBER(vc4000_cart); + DECLARE_QUICKLOAD_LOAD_MEMBER(vc4000); protected: required_device m_maincpu; diff --git a/src/mess/includes/vic20.h b/src/mess/includes/vic20.h index a99500e1d91..d682218fa19 100644 --- a/src/mess/includes/vic20.h +++ b/src/mess/includes/vic20.h @@ -108,6 +108,7 @@ public: DECLARE_WRITE_LINE_MEMBER( exp_reset_w ); + DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_vc20 ); // keyboard state int m_key_col; diff --git a/src/mess/includes/vip.h b/src/mess/includes/vip.h index ea8798dad5e..fbf83db2f9e 100644 --- a/src/mess/includes/vip.h +++ b/src/mess/includes/vip.h @@ -99,6 +99,7 @@ public: DECLARE_INPUT_CHANGED_MEMBER( reset_w ); DECLARE_INPUT_CHANGED_MEMBER( beeper_w ); + DECLARE_QUICKLOAD_LOAD_MEMBER( vip ); // memory state int m_8000; diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c index 917c1f87796..450fea311e4 100644 --- a/src/mess/machine/amstrad.c +++ b/src/mess/machine/amstrad.c @@ -3093,7 +3093,7 @@ MACHINE_RESET_MEMBER(amstrad_state,aleste) /* load snapshot */ -SNAPSHOT_LOAD(amstrad) +SNAPSHOT_LOAD_MEMBER( amstrad_state,amstrad) { UINT8 *snapshot; diff --git a/src/mess/machine/apple1.c b/src/mess/machine/apple1.c index df529d34b7c..a6ce16d2ba2 100644 --- a/src/mess/machine/apple1.c +++ b/src/mess/machine/apple1.c @@ -203,7 +203,7 @@ int apple1_state::apple1_verify_header (UINT8 *data) ** The image can be of arbitrary length, but it must fit in available ** memory. *****************************************************************************/ -SNAPSHOT_LOAD(apple1) +SNAPSHOT_LOAD_MEMBER( apple1_state,apple1) { apple1_state *state = image.device().machine().driver_data(); UINT64 filesize, datasize; diff --git a/src/mess/machine/cybiko.c b/src/mess/machine/cybiko.c index badf03d29ec..63de668dc3e 100644 --- a/src/mess/machine/cybiko.c +++ b/src/mess/machine/cybiko.c @@ -34,7 +34,7 @@ DRIVER_INIT_MEMBER(cybiko_state,cybikoxt) m_maincpu->space(AS_PROGRAM).install_ram(0x400000, 0x400000 + m_ram->size() - 1, 0, 0x200000 - m_ram->size(), m_ram->pointer()); } -QUICKLOAD_LOAD( cybiko ) +QUICKLOAD_LOAD_MEMBER( cybiko_state, cybiko ) { running_machine &machine = image.device().machine(); cybiko_state *state = machine.driver_data(); @@ -44,7 +44,7 @@ QUICKLOAD_LOAD( cybiko ) return IMAGE_INIT_PASS; } -QUICKLOAD_LOAD( cybikoxt ) +QUICKLOAD_LOAD_MEMBER( cybiko_state, cybikoxt ) { running_machine &machine = image.device().machine(); cybiko_state *state = machine.driver_data(); diff --git a/src/mess/machine/galaxy.c b/src/mess/machine/galaxy.c index a4fc34546c9..20ec09434ba 100644 --- a/src/mess/machine/galaxy.c +++ b/src/mess/machine/galaxy.c @@ -121,7 +121,7 @@ void galaxy_state::galaxy_setup_snapshot (const UINT8 * data, UINT32 size) m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); } -SNAPSHOT_LOAD( galaxy ) +SNAPSHOT_LOAD_MEMBER( galaxy_state, galaxy ) { UINT8* snapshot_data; diff --git a/src/mess/machine/kaypro.c b/src/mess/machine/kaypro.c index 3b729ed402a..989757eef69 100644 --- a/src/mess/machine/kaypro.c +++ b/src/mess/machine/kaypro.c @@ -343,7 +343,7 @@ MACHINE_RESET_MEMBER(kaypro_state,kaypro2x) ************************************************************/ -QUICKLOAD_LOAD( kayproii ) +QUICKLOAD_LOAD_MEMBER( kaypro_state, kayproii ) { kaypro_state *state = image.device().machine().driver_data(); address_space &space = state->m_maincpu->space(AS_PROGRAM); @@ -366,7 +366,7 @@ QUICKLOAD_LOAD( kayproii ) return IMAGE_INIT_PASS; } -QUICKLOAD_LOAD( kaypro2x ) +QUICKLOAD_LOAD_MEMBER( kaypro_state, kaypro2x ) { kaypro_state *state = image.device().machine().driver_data(); address_space &space = state->m_maincpu->space(AS_PROGRAM); diff --git a/src/mess/machine/kc.c b/src/mess/machine/kc.c index 3fb642e2f73..b9dc221a0a2 100644 --- a/src/mess/machine/kc.c +++ b/src/mess/machine/kc.c @@ -24,7 +24,7 @@ struct kcc_header /* now type name that has appeared! */ /* load snapshot */ -QUICKLOAD_LOAD(kc) +QUICKLOAD_LOAD_MEMBER( kc_state,kc) { kc_state *state = image.device().machine().driver_data(); UINT8 *data; diff --git a/src/mess/machine/lviv.c b/src/mess/machine/lviv.c index a23d3f23c69..af3575d556f 100644 --- a/src/mess/machine/lviv.c +++ b/src/mess/machine/lviv.c @@ -328,7 +328,7 @@ int lviv_state::lviv_verify_snapshot (UINT8 * data, UINT32 size) return IMAGE_VERIFY_PASS; } -SNAPSHOT_LOAD( lviv ) +SNAPSHOT_LOAD_MEMBER( lviv_state, lviv ) { UINT8 *lviv_snapshot_data; lviv_state *state = image.device().machine().driver_data(); diff --git a/src/mess/machine/mbee.c b/src/mess/machine/mbee.c index e94dfbcd9f5..ff05ea4bc4f 100644 --- a/src/mess/machine/mbee.c +++ b/src/mess/machine/mbee.c @@ -750,7 +750,7 @@ DRIVER_INIT_MEMBER(mbee_state,mbeett) ************************************************************/ -QUICKLOAD_LOAD( mbee ) +QUICKLOAD_LOAD_MEMBER( mbee_state, mbee ) { mbee_state *state = image.device().machine().driver_data(); address_space &space = state->m_maincpu->space(AS_PROGRAM); @@ -817,10 +817,10 @@ QUICKLOAD_LOAD( mbee ) /*------------------------------------------------- - QUICKLOAD_LOAD( mbee_z80bin ) + QUICKLOAD_LOAD_MEMBER( mbee_state, mbee_z80bin ) -------------------------------------------------*/ -QUICKLOAD_LOAD( mbee_z80bin ) +QUICKLOAD_LOAD_MEMBER( mbee_state, mbee_z80bin ) { mbee_state *state = image.device().machine().driver_data(); UINT16 execute_address, start_addr, end_addr; diff --git a/src/mess/machine/microtan.c b/src/mess/machine/microtan.c index dc653c148ef..ab750c407ff 100644 --- a/src/mess/machine/microtan.c +++ b/src/mess/machine/microtan.c @@ -871,7 +871,7 @@ void microtan_state::microtan_snapshot_copy(UINT8 *snapshot_buff, int snapshot_s } } -SNAPSHOT_LOAD( microtan ) +SNAPSHOT_LOAD_MEMBER( microtan_state, microtan ) { microtan_state *state = image.device().machine().driver_data(); UINT8 *snapshot_buff; @@ -887,7 +887,7 @@ SNAPSHOT_LOAD( microtan ) return IMAGE_INIT_PASS; } -QUICKLOAD_LOAD( microtan ) +QUICKLOAD_LOAD_MEMBER( microtan_state, microtan ) { microtan_state *state = image.device().machine().driver_data(); int snapshot_size; diff --git a/src/mess/machine/mtx.c b/src/mess/machine/mtx.c index 0485d7506de..04e8cf8abab 100644 --- a/src/mess/machine/mtx.c +++ b/src/mess/machine/mtx.c @@ -323,7 +323,7 @@ WRITE8_MEMBER(mtx_state::hrx_attr_w) SNAPSHOT ***************************************************************************/ -SNAPSHOT_LOAD( mtx ) +SNAPSHOT_LOAD_MEMBER( mtx_state, mtx ) { address_space &program = image.device().machine().device(Z80_TAG)->memory().space(AS_PROGRAM); diff --git a/src/mess/machine/nascom1.c b/src/mess/machine/nascom1.c index d13d64088d5..f6b0b42b88b 100644 --- a/src/mess/machine/nascom1.c +++ b/src/mess/machine/nascom1.c @@ -206,7 +206,7 @@ DEVICE_IMAGE_UNLOAD_MEMBER( nascom1_state,nascom1_cassette ) * *************************************/ -SNAPSHOT_LOAD( nascom1 ) +SNAPSHOT_LOAD_MEMBER( nascom1_state, nascom1 ) { UINT8 line[35]; diff --git a/src/mess/machine/poly88.c b/src/mess/machine/poly88.c index ea7de3da342..40bea79a1f9 100644 --- a/src/mess/machine/poly88.c +++ b/src/mess/machine/poly88.c @@ -252,7 +252,7 @@ WRITE8_MEMBER(poly88_state::poly88_intr_w) m_maincpu->set_input_line(0, CLEAR_LINE); } -SNAPSHOT_LOAD( poly88 ) +SNAPSHOT_LOAD_MEMBER( poly88_state, poly88 ) { address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); UINT8* data= auto_alloc_array(image.device().machine(), UINT8, snapshot_size); diff --git a/src/mess/machine/primo.c b/src/mess/machine/primo.c index b3c9eaf25ef..38df4c04620 100644 --- a/src/mess/machine/primo.c +++ b/src/mess/machine/primo.c @@ -297,7 +297,7 @@ void primo_state::primo_setup_pss (UINT8* snapshot_data, UINT32 snapshot_size) m_maincpu->space(AS_PROGRAM).write_byte( i+0x4000, snapshot_data[i+38]); } -SNAPSHOT_LOAD( primo ) +SNAPSHOT_LOAD_MEMBER( primo_state, primo ) { UINT8 *snapshot_data; primo_state *state = image.device().machine().driver_data(); @@ -349,7 +349,7 @@ void primo_state::primo_setup_pp (UINT8* quickload_data, UINT32 quickload_size) logerror ("Quickload .pp l: %04x r: %04x s: %04x\n", load_addr, start_addr, quickload_size-4); } -QUICKLOAD_LOAD( primo ) +QUICKLOAD_LOAD_MEMBER( primo_state, primo ) { UINT8 *quickload_data; primo_state *state = image.device().machine().driver_data(); diff --git a/src/mess/machine/sorcerer.c b/src/mess/machine/sorcerer.c index 60e1ab6a767..9651d09a70b 100644 --- a/src/mess/machine/sorcerer.c +++ b/src/mess/machine/sorcerer.c @@ -288,10 +288,10 @@ READ8_MEMBER(sorcerer_state::sorcerer_ff_r) Snapshot Handling ******************************************************************************/ -SNAPSHOT_LOAD(sorcerer) +SNAPSHOT_LOAD_MEMBER( sorcerer_state,sorcerer) { device_t *cpu = image.device().machine().device("maincpu"); - UINT8 *RAM = image.device().machine().root_device().memregion(cpu->tag())->base(); + UINT8 *RAM = memregion(cpu->tag())->base(); address_space &space = cpu->memory().space(AS_PROGRAM); UINT8 header[28]; unsigned char s_byte; @@ -410,10 +410,10 @@ void sorcerer_state::machine_reset() /*------------------------------------------------- - QUICKLOAD_LOAD( sorcerer ) + QUICKLOAD_LOAD_MEMBER( sorcerer_state, sorcerer ) -------------------------------------------------*/ -QUICKLOAD_LOAD( sorcerer ) +QUICKLOAD_LOAD_MEMBER( sorcerer_state, sorcerer ) { UINT16 execute_address, start_address, end_address; int autorun; @@ -425,7 +425,7 @@ QUICKLOAD_LOAD( sorcerer ) if (execute_address != 0xffff) { /* check to see if autorun is on (I hate how this works) */ - autorun = image.device().machine().root_device().ioport("CONFIG")->read_safe(0xFF) & 1; + autorun = ioport("CONFIG")->read_safe(0xFF) & 1; address_space &space = image.device().machine().device("maincpu")->memory().space(AS_PROGRAM); diff --git a/src/mess/machine/spec_snqk.c b/src/mess/machine/spec_snqk.c index 88f514d0b65..3a5aa8ceb7f 100644 --- a/src/mess/machine/spec_snqk.c +++ b/src/mess/machine/spec_snqk.c @@ -110,7 +110,7 @@ static void spectrum_page_basicrom(running_machine &machine) } -SNAPSHOT_LOAD(spectrum) +SNAPSHOT_LOAD_MEMBER( spectrum_state,spectrum) { UINT8 *snapshot_data = NULL; @@ -2451,7 +2451,7 @@ void spectrum_setup_z80(running_machine &machine, UINT8 *snapdata, UINT32 snapsi } } -QUICKLOAD_LOAD(spectrum) +QUICKLOAD_LOAD_MEMBER( spectrum_state,spectrum) { UINT8 *quickload_data = NULL; diff --git a/src/mess/machine/spec_snqk.h b/src/mess/machine/spec_snqk.h index 7a0c156c788..d16e20a392a 100644 --- a/src/mess/machine/spec_snqk.h +++ b/src/mess/machine/spec_snqk.h @@ -177,7 +177,4 @@ enum SPECTRUM_Z80_SNAPSHOT_TYPE { #define RAW_HDR 9 #define RAW_SIZE (RAW_HDR + 3*SPECTRUM_BANK) -SNAPSHOT_LOAD( spectrum ); -QUICKLOAD_LOAD( spectrum ); - #endif /* __SPEC_SNQK_H__ */ diff --git a/src/mess/machine/super80.c b/src/mess/machine/super80.c index dae9af12f21..813398ebd88 100644 --- a/src/mess/machine/super80.c +++ b/src/mess/machine/super80.c @@ -228,10 +228,10 @@ DRIVER_INIT_MEMBER(super80_state,super80v) } /*------------------------------------------------- - QUICKLOAD_LOAD( super80 ) + QUICKLOAD_LOAD_MEMBER( super80_state, super80 ) -------------------------------------------------*/ -QUICKLOAD_LOAD( super80 ) +QUICKLOAD_LOAD_MEMBER( super80_state, super80 ) { UINT16 exec_addr, start_addr, end_addr; int autorun; @@ -244,7 +244,7 @@ QUICKLOAD_LOAD( super80 ) if (exec_addr != 0xffff) { /* check to see if autorun is on (I hate how this works) */ - autorun = image.device().machine().root_device().ioport("CONFIG")->read_safe(0xFF) & 1; + autorun = ioport("CONFIG")->read_safe(0xFF) & 1; if (autorun) image.device().machine().device("maincpu")->state().set_pc(exec_addr); diff --git a/src/mess/machine/ti85.c b/src/mess/machine/ti85.c index 0c16679e0f3..128d3a7858a 100644 --- a/src/mess/machine/ti85.c +++ b/src/mess/machine/ti85.c @@ -676,7 +676,7 @@ void ti85_state::ti86_setup_snapshot (UINT8 * data) m_interrupt_speed = 0x03; } -SNAPSHOT_LOAD( ti8x ) +SNAPSHOT_LOAD_MEMBER( ti85_state, ti8x ) { int expected_snapshot_size = 0; UINT8 *ti8x_snapshot_data; diff --git a/src/mess/machine/trs80.c b/src/mess/machine/trs80.c index 623a79a88ec..c94d12ad327 100644 --- a/src/mess/machine/trs80.c +++ b/src/mess/machine/trs80.c @@ -935,9 +935,9 @@ MACHINE_RESET_MEMBER(trs80_state,lnw80) IMPLEMENTATION ***************************************************************************/ -QUICKLOAD_LOAD( trs80_cmd ) +QUICKLOAD_LOAD_MEMBER( trs80_state, trs80_cmd ) { - address_space &program = image.device().machine().firstcpu->space(AS_PROGRAM); + address_space &program = m_maincpu->space(AS_PROGRAM); UINT8 type, length; UINT8 data[0x100]; @@ -969,7 +969,7 @@ QUICKLOAD_LOAD( trs80_cmd ) image.fread( &addr, 2); UINT16 address = (addr[1] << 8) | addr[0]; if (LOG) logerror("/CMD transfer address %04x\n", address); - image.device().machine().firstcpu->set_state_int(Z80_PC, address); + m_maincpu->set_state_int(Z80_PC, address); } break;