diff options
author | 2015-09-13 08:41:44 +0200 | |
---|---|---|
committer | 2015-09-13 08:41:44 +0200 | |
commit | f88cefad27a1737c76e09d99c9fb43e173506081 (patch) | |
tree | 2d8167d03579c46e226471747eb4407bd00ed6fa /src/emu/machine/t10spc.c | |
parent | e92ac9e0fa8e99869894bea00589bbb526be30aa (diff) |
Move all devices into separate part of src tree (nw)
Diffstat (limited to 'src/emu/machine/t10spc.c')
-rw-r--r-- | src/emu/machine/t10spc.c | 150 |
1 files changed, 0 insertions, 150 deletions
diff --git a/src/emu/machine/t10spc.c b/src/emu/machine/t10spc.c deleted file mode 100644 index 80b279efb44..00000000000 --- a/src/emu/machine/t10spc.c +++ /dev/null @@ -1,150 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:smf -#include "t10spc.h" - -void t10spc::t10_start(device_t &device) -{ - device.save_item(NAME(command)); - device.save_item(NAME(commandLength)); - device.save_item(NAME(m_transfer_length)); - device.save_item(NAME(m_phase)); - device.save_item(NAME(m_sense_key)); - device.save_item(NAME(m_sense_asc)); - device.save_item(NAME(m_sense_ascq)); - device.save_item(NAME(m_sense_information)); -} - -void t10spc::t10_reset() -{ - m_phase = SCSI_PHASE_BUS_FREE; - m_status_code = SCSI_STATUS_CODE_GOOD; - m_sense_key = 0; - m_sense_asc = 0; - m_sense_ascq = 0; - m_sense_information = 0; -} - -void t10spc::set_sense(sense_key_t key, sense_asc_ascq_t asc_ascq) -{ - m_sense_key = key; - m_sense_asc = (asc_ascq >> 8) & 0xff; - m_sense_ascq = asc_ascq & 0xff; - m_sense_information = 0; -} - -void t10spc::ExecCommand() -{ - switch( command[ 0 ] ) - { - case T10SPC_CMD_TEST_UNIT_READY: - m_phase = SCSI_PHASE_STATUS; - m_status_code = SCSI_STATUS_CODE_GOOD; - m_transfer_length = 0; - break; - - case T10SPC_CMD_RECALIBRATE: - m_phase = SCSI_PHASE_STATUS; - m_status_code = SCSI_STATUS_CODE_GOOD; - m_transfer_length = 0; - break; - - case T10SPC_CMD_REQUEST_SENSE: - m_phase = SCSI_PHASE_DATAIN; - m_status_code = SCSI_STATUS_CODE_GOOD; - if (command[4] == 0) - { - m_transfer_length = 4; - } - else if (command[4] > 18) - { - m_transfer_length = 18; - } - else - { - m_transfer_length = command[ 4 ]; - } - break; - - case T10SPC_CMD_SEND_DIAGNOSTIC: - m_phase = SCSI_PHASE_DATAOUT; - m_status_code = SCSI_STATUS_CODE_GOOD; - m_transfer_length = SCSILengthFromUINT16(&command[3]); - break; - - default: - logerror( "SCSIDEV unknown command %02x\n", command[ 0 ] ); - m_status_code = SCSI_STATUS_CODE_GOOD; - m_transfer_length = 0; - break; - } -} - -void t10spc::ReadData( UINT8 *data, int dataLength ) -{ - switch( command[ 0 ] ) - { - case T10SPC_CMD_REQUEST_SENSE: - if (command[4] == 0) - { - data[0] = m_sense_asc & 0x7f; - data[1] = (m_sense_information >> 16) & 0x1f; - data[2] = (m_sense_information >> 8) & 0xff; - data[3] = (m_sense_information >> 0) & 0xff; - } - else - { - data[0] = 0x70; - data[1] = 0; - data[2] = m_sense_key & 0xf; - data[3] = (m_sense_information >> 24) & 0xff; - data[4] = (m_sense_information >> 16) & 0xff; - data[5] = (m_sense_information >> 8) & 0xff; - data[6] = (m_sense_information >> 0) & 0xff; - data[7] = 10; - data[8] = 0; - data[9] = 0; - data[10] = 0; - data[11] = 0; - data[12] = m_sense_asc; - data[13] = m_sense_ascq; - data[14] = 0; - data[15] = 0; - data[16] = 0; - data[17] = 0; - } - - set_sense(SCSI_SENSE_KEY_NO_SENSE, SCSI_SENSE_ASC_ASCQ_NO_SENSE); - break; - - default: - logerror( "SCSIDEV unknown read %02x\n", command[ 0 ] ); - break; - } -} - -void t10spc::WriteData( UINT8 *data, int dataLength ) -{ - switch( command[ 0 ] ) - { - case T10SPC_CMD_SEND_DIAGNOSTIC: - break; - - default: - logerror( "SCSIDEV unknown write %02x\n", command[ 0 ] ); - break; - } -} - -void t10spc::SetCommand( UINT8 *_command, int _commandLength ) -{ - if( _commandLength > sizeof( command ) ) - { - /// TODO: output an error. - return; - } - - memcpy( command, _command, _commandLength ); - commandLength = _commandLength; - - m_phase = SCSI_PHASE_COMMAND; -} |