(MESS) softbox: Promoted driver to working. [Curt Coder, Mike Naberezny]

(MESS) Fixed IEEE-488 bus reset on Commodore drives. [Curt Coder]
This commit is contained in:
Curt Coder 2013-05-29 07:05:38 +00:00
parent 608196c112
commit 8f7c19fe24
10 changed files with 39 additions and 25 deletions

View File

@ -104,22 +104,22 @@ static const i8251_interface usart_intf =
// I8255A_INTERFACE( ppi0_intf ) // I8255A_INTERFACE( ppi0_intf )
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( softbox_state::pia0_pa_r ) READ8_MEMBER( softbox_state::ppi0_pa_r )
{ {
return m_ieee->dio_r() ^ 0xff; return m_ieee->dio_r() ^ 0xff;
} }
WRITE8_MEMBER( softbox_state::pia0_pb_w ) WRITE8_MEMBER( softbox_state::ppi0_pb_w )
{ {
m_ieee->dio_w(data ^ 0xff); m_ieee->dio_w(data ^ 0xff);
} }
static I8255A_INTERFACE( ppi0_intf ) static I8255A_INTERFACE( ppi0_intf )
{ {
DEVCB_DRIVER_MEMBER(softbox_state, pia0_pa_r), DEVCB_DRIVER_MEMBER(softbox_state, ppi0_pa_r),
DEVCB_NULL, // Port A write DEVCB_NULL, // Port A write
DEVCB_NULL, // Port B read DEVCB_NULL, // Port B read
DEVCB_DRIVER_MEMBER(softbox_state, pia0_pb_w), DEVCB_DRIVER_MEMBER(softbox_state, ppi0_pb_w),
DEVCB_INPUT_PORT("SW1"), // Port C read DEVCB_INPUT_PORT("SW1"), // Port C read
DEVCB_NULL // Port C write DEVCB_NULL // Port C write
}; };
@ -129,7 +129,7 @@ static I8255A_INTERFACE( ppi0_intf )
// I8255A_INTERFACE( ppi1_intf ) // I8255A_INTERFACE( ppi1_intf )
//------------------------------------------------- //-------------------------------------------------
READ8_MEMBER( softbox_state::pia1_pa_r ) READ8_MEMBER( softbox_state::ppi1_pa_r )
{ {
/* /*
@ -160,7 +160,7 @@ READ8_MEMBER( softbox_state::pia1_pa_r )
return data; return data;
} }
WRITE8_MEMBER( softbox_state::pia1_pb_w ) WRITE8_MEMBER( softbox_state::ppi1_pb_w )
{ {
/* /*
@ -187,7 +187,7 @@ WRITE8_MEMBER( softbox_state::pia1_pb_w )
m_ieee->ifc_w(!BIT(data, 7)); m_ieee->ifc_w(!BIT(data, 7));
} }
READ8_MEMBER( softbox_state::pia1_pc_r ) READ8_MEMBER( softbox_state::ppi1_pc_r )
{ {
/* /*
@ -207,7 +207,7 @@ READ8_MEMBER( softbox_state::pia1_pc_r )
return 0; return 0;
} }
WRITE8_MEMBER( softbox_state::pia1_pc_w ) WRITE8_MEMBER( softbox_state::ppi1_pc_w )
{ {
/* /*
@ -231,12 +231,12 @@ WRITE8_MEMBER( softbox_state::pia1_pc_w )
static I8255A_INTERFACE( ppi1_intf ) static I8255A_INTERFACE( ppi1_intf )
{ {
DEVCB_DRIVER_MEMBER(softbox_state, pia1_pa_r), DEVCB_DRIVER_MEMBER(softbox_state, ppi1_pa_r),
DEVCB_NULL, // Port A write DEVCB_NULL, // Port A write
DEVCB_NULL, // Port B read DEVCB_NULL, // Port B read
DEVCB_DRIVER_MEMBER(softbox_state, pia1_pb_w), DEVCB_DRIVER_MEMBER(softbox_state, ppi1_pb_w),
DEVCB_DRIVER_MEMBER(softbox_state, pia1_pc_r), DEVCB_DRIVER_MEMBER(softbox_state, ppi1_pc_r),
DEVCB_DRIVER_MEMBER(softbox_state, pia1_pc_w) DEVCB_DRIVER_MEMBER(softbox_state, ppi1_pc_w)
}; };
@ -338,4 +338,4 @@ ROM_END
//************************************************************************** //**************************************************************************
// YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS // YEAR NAME PARENT COMPAT MACHINE INPUT INIT COMPANY FULLNAME FLAGS
COMP( 1981, softbox, 0, 0, softbox, softbox, driver_device, 0, "Small Systems Engineering", "SoftBox", GAME_NOT_WORKING | GAME_NO_SOUND_HW ) COMP( 1981, softbox, 0, 0, softbox, softbox, driver_device, 0, "Small Systems Engineering", "SoftBox", GAME_NO_SOUND_HW )

View File

@ -36,15 +36,17 @@ public:
required_device<ieee488_device> m_ieee; required_device<ieee488_device> m_ieee;
DECLARE_WRITE8_MEMBER( dbrg_w ); DECLARE_WRITE8_MEMBER( dbrg_w );
DECLARE_READ8_MEMBER( pia0_pa_r );
DECLARE_WRITE8_MEMBER( pia0_pb_w ); DECLARE_READ8_MEMBER( ppi0_pa_r );
DECLARE_READ8_MEMBER( pia1_pa_r ); DECLARE_WRITE8_MEMBER( ppi0_pb_w );
DECLARE_WRITE8_MEMBER( pia1_pb_w );
DECLARE_READ8_MEMBER( pia1_pc_r ); DECLARE_READ8_MEMBER( ppi1_pa_r );
DECLARE_WRITE8_MEMBER( pia1_pc_w ); DECLARE_WRITE8_MEMBER( ppi1_pb_w );
DECLARE_READ8_MEMBER( ppi1_pc_r );
DECLARE_WRITE8_MEMBER( ppi1_pc_w );
DECLARE_WRITE_LINE_MEMBER( fr_w ); DECLARE_WRITE_LINE_MEMBER( fr_w );
DECLARE_WRITE_LINE_MEMBER( ft_w ); DECLARE_WRITE_LINE_MEMBER( ft_w );
DECLARE_WRITE8_MEMBER( dummy_w );
enum enum
{ {

View File

@ -481,8 +481,10 @@ void c2031_device::ieee488_atn(int state)
void c2031_device::ieee488_ifc(int state) void c2031_device::ieee488_ifc(int state)
{ {
if (!state) if (!m_ifc && state)
{ {
device_reset(); device_reset();
} }
m_ifc = state;
} }

View File

@ -74,6 +74,7 @@ protected:
int m_nrfd_out; // not ready for data int m_nrfd_out; // not ready for data
int m_ndac_out; // not data accepted int m_ndac_out; // not data accepted
int m_atna; // attention acknowledge int m_atna; // attention acknowledge
int m_ifc;
// interrupts // interrupts
int m_via0_irq; // VIA #0 interrupt request int m_via0_irq; // VIA #0 interrupt request

View File

@ -1306,7 +1306,7 @@ inline void c2040_device::update_gcr_data()
//------------------------------------------------- //-------------------------------------------------
// update_ieee_signals - // read_current_track -
//------------------------------------------------- //-------------------------------------------------
inline void c2040_device::read_current_track(int unit) inline void c2040_device::read_current_track(int unit)
@ -1703,10 +1703,12 @@ void c2040_device::ieee488_atn(int state)
void c2040_device::ieee488_ifc(int state) void c2040_device::ieee488_ifc(int state)
{ {
if (!state) if (!m_ifc && state)
{ {
device_reset(); device_reset();
} }
m_ifc = state;
} }

View File

@ -125,6 +125,7 @@ protected:
int m_rfdo; // not ready for data output int m_rfdo; // not ready for data output
int m_daco; // not data accepted output int m_daco; // not data accepted output
int m_atna; // attention acknowledge int m_atna; // attention acknowledge
int m_ifc;
// track // track
int m_ds; // density select int m_ds; // density select

View File

@ -465,10 +465,12 @@ void c8280_device::ieee488_atn(int state)
void c8280_device::ieee488_ifc(int state) void c8280_device::ieee488_ifc(int state)
{ {
if (!state) if (!m_ifc && state)
{ {
device_reset(); device_reset();
} }
m_ifc = state;
} }
READ8_MEMBER( c8280_device::fk5_r ) READ8_MEMBER( c8280_device::fk5_r )

View File

@ -75,6 +75,7 @@ private:
int m_rfdo; // not ready for data output int m_rfdo; // not ready for data output
int m_daco; // not data accepted output int m_daco; // not data accepted output
int m_atna; // attention acknowledge int m_atna; // attention acknowledge
int m_ifc;
UINT8 m_fk5; UINT8 m_fk5;
}; };

View File

@ -569,8 +569,10 @@ void base_d9060_device::ieee488_atn(int state)
void base_d9060_device::ieee488_ifc(int state) void base_d9060_device::ieee488_ifc(int state)
{ {
if (!state) if (!m_ifc && state)
{ {
device_reset(); device_reset();
} }
m_ifc = state;
} }

View File

@ -95,6 +95,7 @@ private:
int m_rfdo; // not ready for data output int m_rfdo; // not ready for data output
int m_daco; // not data accepted output int m_daco; // not data accepted output
int m_atna; // attention acknowledge int m_atna; // attention acknowledge
int m_ifc;
// SASI bus // SASI bus
int m_enable; int m_enable;