From c1a652b17cb6489bd8a0ace11fa1b29e9920d7ab Mon Sep 17 00:00:00 2001 From: smf- Date: Fri, 3 Jan 2014 02:35:49 +0000 Subject: [PATCH] saves variables I added recently & expanded vic20 user port so that devices can be shared between vic20/c64/c128 (nw) --- src/emu/bus/vic20/user.h | 23 +++++++++++++++-------- src/mess/drivers/vic20.c | 6 ++++++ src/mess/includes/vic20.h | 14 +++++++------- 3 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/emu/bus/vic20/user.h b/src/emu/bus/vic20/user.h index 073b88bd74d..5164e174124 100644 --- a/src/emu/bus/vic20/user.h +++ b/src/emu/bus/vic20/user.h @@ -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 static devcb2_base &set_6_handler(device_t &device, _Object object) { return downcast(device).m_6_handler.set_callback(object); } template static devcb2_base &set_7_handler(device_t &device, _Object object) { return downcast(device).m_7_handler.set_callback(object); } template static devcb2_base &set_8_handler(device_t &device, _Object object) { return downcast(device).m_8_handler.set_callback(object); } + template static devcb2_base &set_9_handler(device_t &device, _Object object) { return downcast(device).m_9_handler.set_callback(object); } template static devcb2_base &set_b_handler(device_t &device, _Object object) { return downcast(device).m_b_handler.set_callback(object); } template static devcb2_base &set_c_handler(device_t &device, _Object object) { return downcast(device).m_c_handler.set_callback(object); } template static devcb2_base &set_d_handler(device_t &device, _Object object) { return downcast(device).m_d_handler.set_callback(object); } @@ -131,7 +127,12 @@ public: template static devcb2_base &set_m_handler(device_t &device, _Object object) { return downcast(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 ) {} diff --git a/src/mess/drivers/vic20.c b/src/mess/drivers/vic20.c index 96024fecd8e..b436c499277 100644 --- a/src/mess/drivers/vic20.c +++ b/src/mess/drivers/vic20.c @@ -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)); } diff --git a/src/mess/includes/vic20.h b/src/mess/includes/vic20.h index 21f730c7fd4..8aa36eae648 100644 --- a/src/mess/includes/vic20.h +++ b/src/mess/includes/vic20.h @@ -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