mirror of
https://github.com/holub/mame
synced 2025-05-07 14:54:35 +03:00
(MESS) Uses the IO line from the SASI bus to determine the direction of the SASI data port. This seems the most likely way the hardware works. [smf]
This commit is contained in:
parent
95dcf93a69
commit
c683bc7181
@ -345,6 +345,28 @@ WRITE8_MEMBER( v1050_state::dvint_clr_w )
|
|||||||
m_subcpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
m_subcpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
WRITE8_MEMBER( v1050_state::sasi_data_w )
|
||||||
|
{
|
||||||
|
data_out = data;
|
||||||
|
|
||||||
|
if( m_sasibus->scsi_io_r() != 0 )
|
||||||
|
{
|
||||||
|
m_sasibus->scsi_data_w( data );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
WRITE_LINE_MEMBER( v1050_state::sasi_io_w )
|
||||||
|
{
|
||||||
|
if( state != 0 )
|
||||||
|
{
|
||||||
|
m_sasibus->scsi_data_w( data_out );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
m_sasibus->scsi_data_w( 0xff );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
READ8_MEMBER( v1050_state::sasi_status_r )
|
READ8_MEMBER( v1050_state::sasi_status_r )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
@ -447,7 +469,7 @@ static ADDRESS_MAP_START( v1050_io, AS_IO, 8, v1050_state )
|
|||||||
AM_RANGE(0xb0, 0xb0) AM_READWRITE(dint_clr_r, dint_clr_w)
|
AM_RANGE(0xb0, 0xb0) AM_READWRITE(dint_clr_r, dint_clr_w)
|
||||||
AM_RANGE(0xc0, 0xc0) AM_WRITE(v1050_i8214_w)
|
AM_RANGE(0xc0, 0xc0) AM_WRITE(v1050_i8214_w)
|
||||||
AM_RANGE(0xd0, 0xd0) AM_WRITE(bank_w)
|
AM_RANGE(0xd0, 0xd0) AM_WRITE(bank_w)
|
||||||
AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE(SASIBUS_TAG ":host", scsicb_device, scsi_data_r, scsi_data_w)
|
AM_RANGE(0xe0, 0xe0) AM_WRITE(sasi_data_w) AM_DEVREAD(SASIBUS_TAG ":host", scsicb_device, scsi_data_r)
|
||||||
AM_RANGE(0xe1, 0xe1) AM_READWRITE(sasi_status_r, sasi_ctrl_w)
|
AM_RANGE(0xe1, 0xe1) AM_READWRITE(sasi_status_r, sasi_ctrl_w)
|
||||||
ADDRESS_MAP_END
|
ADDRESS_MAP_END
|
||||||
|
|
||||||
@ -989,7 +1011,7 @@ static const SCSICB_interface sasi_intf =
|
|||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL,
|
DEVCB_DRIVER_LINE_MEMBER(v1050_state, sasi_io_w),
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
DEVCB_NULL,
|
DEVCB_NULL,
|
||||||
|
@ -128,6 +128,8 @@ public:
|
|||||||
DECLARE_READ8_MEMBER( videoram_r );
|
DECLARE_READ8_MEMBER( videoram_r );
|
||||||
DECLARE_WRITE8_MEMBER( videoram_w );
|
DECLARE_WRITE8_MEMBER( videoram_w );
|
||||||
DECLARE_WRITE_LINE_MEMBER( crtc_vs_w );
|
DECLARE_WRITE_LINE_MEMBER( crtc_vs_w );
|
||||||
|
DECLARE_WRITE8_MEMBER(sasi_data_w);
|
||||||
|
DECLARE_WRITE_LINE_MEMBER(sasi_io_w);
|
||||||
DECLARE_READ8_MEMBER( sasi_status_r );
|
DECLARE_READ8_MEMBER( sasi_status_r );
|
||||||
DECLARE_WRITE8_MEMBER( sasi_ctrl_w );
|
DECLARE_WRITE8_MEMBER( sasi_ctrl_w );
|
||||||
|
|
||||||
@ -157,6 +159,10 @@ public:
|
|||||||
required_shared_ptr<UINT8> m_video_ram; // video RAM
|
required_shared_ptr<UINT8> m_video_ram; // video RAM
|
||||||
UINT8 *m_attr_ram; // attribute RAM
|
UINT8 *m_attr_ram; // attribute RAM
|
||||||
UINT8 m_attr; // attribute latch
|
UINT8 m_attr; // attribute latch
|
||||||
|
|
||||||
|
// sasi state
|
||||||
|
UINT8 data_out;
|
||||||
|
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(v1050_keyboard_tick);
|
TIMER_DEVICE_CALLBACK_MEMBER(v1050_keyboard_tick);
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(sasi_ack_tick);
|
TIMER_DEVICE_CALLBACK_MEMBER(sasi_ack_tick);
|
||||||
TIMER_DEVICE_CALLBACK_MEMBER(sasi_rst_tick);
|
TIMER_DEVICE_CALLBACK_MEMBER(sasi_rst_tick);
|
||||||
|
Loading…
Reference in New Issue
Block a user