saves variables I added recently & expanded vic20 user port so that devices can be shared between vic20/c64/c128 (nw)

This commit is contained in:
smf- 2014-01-03 02:35:49 +00:00
parent 846afdc0d9
commit c1a652b17c
3 changed files with 28 additions and 15 deletions

View File

@ -33,14 +33,6 @@
//**************************************************************************
// CONSTANTS
//**************************************************************************
#define VIC20_USER_PORT_TAG "user"
//**************************************************************************
// INTERFACE CONFIGURATION MACROS
//**************************************************************************
@ -67,6 +59,9 @@
#define MCFG_VIC20_USER_PORT_8_HANDLER(_devcb) \
devcb = &vic20_user_port_device::set_8_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIC20_USER_PORT_9_HANDLER(_devcb) \
devcb = &vic20_user_port_device::set_9_handler(*device, DEVCB2_##_devcb);
#define MCFG_VIC20_USER_PORT_B_HANDLER(_devcb) \
devcb = &vic20_user_port_device::set_b_handler(*device, DEVCB2_##_devcb);
@ -119,6 +114,7 @@ public:
template<class _Object> static devcb2_base &set_6_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_6_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_7_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_7_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_8_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_8_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_9_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_9_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_b_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_b_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_c_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_c_handler.set_callback(object); }
template<class _Object> static devcb2_base &set_d_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_d_handler.set_callback(object); }
@ -131,7 +127,12 @@ public:
template<class _Object> static devcb2_base &set_m_handler(device_t &device, _Object object) { return downcast<vic20_user_port_device &>(device).m_m_handler.set_callback(object); }
// computer interface
DECLARE_WRITE_LINE_MEMBER( write_3 );
DECLARE_WRITE_LINE_MEMBER( write_4 );
DECLARE_WRITE_LINE_MEMBER( write_5 );
DECLARE_WRITE_LINE_MEMBER( write_6 );
DECLARE_WRITE_LINE_MEMBER( write_7 );
DECLARE_WRITE_LINE_MEMBER( write_8 );
DECLARE_WRITE_LINE_MEMBER( write_9 );
DECLARE_WRITE_LINE_MEMBER( write_b );
DECLARE_WRITE_LINE_MEMBER( write_c );
@ -151,6 +152,7 @@ public:
devcb2_write_line m_6_handler;
devcb2_write_line m_7_handler;
devcb2_write_line m_8_handler;
devcb2_write_line m_9_handler;
devcb2_write_line m_b_handler;
devcb2_write_line m_c_handler;
devcb2_write_line m_d_handler;
@ -180,7 +182,12 @@ public:
device_vic20_user_port_interface(const machine_config &mconfig, device_t &device);
virtual ~device_vic20_user_port_interface();
DECLARE_WRITE_LINE_MEMBER( write_3 ) {}
DECLARE_WRITE_LINE_MEMBER( write_4 ) {}
DECLARE_WRITE_LINE_MEMBER( write_5 ) {}
DECLARE_WRITE_LINE_MEMBER( write_6 ) {}
DECLARE_WRITE_LINE_MEMBER( write_7 ) {}
DECLARE_WRITE_LINE_MEMBER( write_8 ) {}
DECLARE_WRITE_LINE_MEMBER( write_9 ) {}
DECLARE_WRITE_LINE_MEMBER( write_b ) {}
DECLARE_WRITE_LINE_MEMBER( write_c ) {}

View File

@ -591,6 +591,12 @@ void vic20_state::machine_start()
// state saving
save_item(NAME(m_key_col));
save_item(NAME(m_light_pen));
save_item(NAME(m_user_joy0));
save_item(NAME(m_user_joy1));
save_item(NAME(m_user_joy2));
save_item(NAME(m_user_light_pen));
save_item(NAME(m_user_cassette_switch));
}

View File

@ -27,6 +27,7 @@
#define IEC_TAG "iec"
#define SCREEN_TAG "screen"
#define CONTROL1_TAG "joy1"
#define VIC20_USER_PORT_TAG "user"
class vic20_state : public driver_device
{
@ -117,6 +118,12 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER( cbm_vc20 );
// keyboard state
int m_key_col;
int m_light_pen;
int m_user_joy0;
int m_user_joy1;
int m_user_joy2;
int m_user_light_pen;
int m_user_cassette_switch;
enum
{
@ -151,13 +158,6 @@ public:
IO2 = 6,
IO3 = 7
};
int m_light_pen;
int m_user_joy0;
int m_user_joy1;
int m_user_joy2;
int m_user_light_pen;
int m_user_cassette_switch;
};
#endif