mirror of
https://github.com/akuker/RASCSI.git
synced 2024-06-26 07:29:31 +00:00
59 lines
1.2 KiB
C++
59 lines
1.2 KiB
C++
//---------------------------------------------------------------------------
|
||
//
|
||
// X68000 EMULATOR "XM6"
|
||
//
|
||
// Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp)
|
||
// Copyright (C) 2014-2018 GIMONS
|
||
//
|
||
// [ SCSI共通 ]
|
||
//
|
||
//---------------------------------------------------------------------------
|
||
|
||
#include "os.h"
|
||
#include "xm6.h"
|
||
#include "scsi.h"
|
||
|
||
//---------------------------------------------------------------------------
|
||
//
|
||
// フェーズ取得
|
||
//
|
||
//---------------------------------------------------------------------------
|
||
BUS::phase_t FASTCALL BUS::GetPhase()
|
||
{
|
||
DWORD mci;
|
||
|
||
ASSERT(this);
|
||
|
||
// セレクションフェーズ
|
||
if (GetSEL()) {
|
||
return selection;
|
||
}
|
||
|
||
// バスフリーフェーズ
|
||
if (!GetBSY()) {
|
||
return busfree;
|
||
}
|
||
|
||
// バスの信号線からターゲットのフェーズを取得
|
||
mci = GetMSG() ? 0x04 : 0x00;
|
||
mci |= GetCD() ? 0x02 : 0x00;
|
||
mci |= GetIO() ? 0x01 : 0x00;
|
||
return GetPhase(mci);
|
||
}
|
||
|
||
//---------------------------------------------------------------------------
|
||
//
|
||
// フェーズテーブル
|
||
//
|
||
//---------------------------------------------------------------------------
|
||
const BUS::phase_t BUS::phase_table[8] = {
|
||
dataout,
|
||
datain,
|
||
command,
|
||
status,
|
||
reserved,
|
||
reserved,
|
||
msgout,
|
||
msgin
|
||
};
|