2022-01-07 12:17:44 -06:00
|
|
|
//---------------------------------------------------------------------------
|
|
|
|
//
|
2022-08-25 18:01:39 -07:00
|
|
|
// SCSI Target Emulator RaSCSI Reloaded
|
|
|
|
// for Raspberry Pi
|
2022-01-07 12:17:44 -06:00
|
|
|
//
|
|
|
|
// Copyright (C) 2020-2021 akuker
|
|
|
|
//
|
|
|
|
// [ SCSI Bus Monitor ]
|
|
|
|
//
|
|
|
|
//---------------------------------------------------------------------------
|
2022-11-02 07:36:25 +01:00
|
|
|
|
2022-01-07 12:17:44 -06:00
|
|
|
#include "scsi.h"
|
|
|
|
#include "data_sample.h"
|
|
|
|
|
|
|
|
const char *GetPhaseStr(const data_capture *sample)
|
|
|
|
{
|
|
|
|
return BUS::GetPhaseStrRaw(GetPhase(sample));
|
|
|
|
}
|
|
|
|
|
|
|
|
BUS::phase_t GetPhase(const data_capture *sample)
|
|
|
|
{
|
|
|
|
// Selection Phase
|
|
|
|
if (GetSel(sample))
|
|
|
|
{
|
2022-09-21 08:27:51 +02:00
|
|
|
return BUS::phase_t::selection;
|
2022-01-07 12:17:44 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
// Bus busy phase
|
|
|
|
if (!GetBsy(sample))
|
|
|
|
{
|
2022-09-21 08:27:51 +02:00
|
|
|
return BUS::phase_t::busfree;
|
2022-01-07 12:17:44 -06:00
|
|
|
}
|
|
|
|
|
|
|
|
// Get target phase from bus signal line
|
2022-10-08 19:26:04 +02:00
|
|
|
uint32_t mci = GetMsg(sample) ? 0x04 : 0x00;
|
2022-01-07 12:17:44 -06:00
|
|
|
mci |= GetCd(sample) ? 0x02 : 0x00;
|
|
|
|
mci |= GetIo(sample) ? 0x01 : 0x00;
|
|
|
|
return BUS::GetPhase(mci);
|
|
|
|
}
|