mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-29 16:49:55 +00:00
FIxing code and comment alignment
going through the various files and putting comments on one line for easier reading.
This commit is contained in:
parent
338e42060a
commit
6d79023a5c
@ -328,41 +328,22 @@ Human68k側のファイル名は、ホスト側のファイルシステムの名
|
||||
内部動作フラグとメディアバイト偽装などを見越した将来の拡張用。
|
||||
*/
|
||||
enum {
|
||||
WINDRV_OPT_REMOVE = 0x00000001,
|
||||
///< Bit 0: ファイル削除処理 0:直接 1:ごみ箱
|
||||
WINDRV_OPT_ALPHABET = 0x00000020,
|
||||
///< Bit 5: ファイル名比較 Alphabet区別 0:なし 1:あり 0:-C 1:+C
|
||||
WINDRV_OPT_COMPARE_LENGTH = 0x00000040,
|
||||
///< Bit 6: ファイル名比較 文字数(未実装) 0:18+3 1:8+3 0:+T 1:-T
|
||||
WINDRV_OPT_CONVERT_LENGTH = 0x00000080,
|
||||
///< Bit 7: ファイル名変換 文字数 0:18+3 1:8+3 0:-A 1:+A
|
||||
|
||||
WINDRV_OPT_CONVERT_SPACE = 0x00000100,
|
||||
///< Bit 8: ファイル名変換 スペース 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_BADCHAR = 0x00000200,
|
||||
///< Bit 9: ファイル名変換 無効な文字 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_HYPHENS = 0x00000400,
|
||||
///< Bit10: ファイル名変換 中間のハイフン 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_HYPHEN = 0x00000800,
|
||||
///< Bit11: ファイル名変換 先頭のハイフン 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_PERIODS = 0x00001000,
|
||||
///< Bit12: ファイル名変換 中間のピリオド 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_PERIOD = 0x00002000,
|
||||
///< Bit13: ファイル名変換 先頭のピリオド 0:なし 1:'_'
|
||||
|
||||
WINDRV_OPT_REDUCED_SPACE = 0x00010000,
|
||||
///< Bit16: ファイル名短縮 スペース 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_BADCHAR = 0x00020000,
|
||||
///< Bit17: ファイル名短縮 無効な文字 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_HYPHENS = 0x00040000,
|
||||
///< Bit18: ファイル名短縮 中間のハイフン 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_HYPHEN = 0x00080000,
|
||||
///< Bit19: ファイル名短縮 先頭のハイフン 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_PERIODS = 0x00100000,
|
||||
///< Bit20: ファイル名短縮 中間のピリオド 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_PERIOD = 0x00200000,
|
||||
///< Bit21: ファイル名短縮 先頭のピリオド 0:なし 1:短縮
|
||||
|
||||
WINDRV_OPT_REMOVE = 0x00000001, ///< Bit 0: ファイル削除処理 0:直接 1:ごみ箱
|
||||
WINDRV_OPT_ALPHABET = 0x00000020, ///< Bit 5: ファイル名比較 Alphabet区別 0:なし 1:あり 0:-C 1:+C
|
||||
WINDRV_OPT_COMPARE_LENGTH = 0x00000040, ///< Bit 6: ファイル名比較 文字数(未実装) 0:18+3 1:8+3 0:+T 1:-T
|
||||
WINDRV_OPT_CONVERT_LENGTH = 0x00000080, ///< Bit 7: ファイル名変換 文字数 0:18+3 1:8+3 0:-A 1:+A
|
||||
WINDRV_OPT_CONVERT_SPACE = 0x00000100, ///< Bit 8: ファイル名変換 スペース 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_BADCHAR = 0x00000200, ///< Bit 9: ファイル名変換 無効な文字 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_HYPHENS = 0x00000400, ///< Bit10: ファイル名変換 中間のハイフン 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_HYPHEN = 0x00000800, ///< Bit11: ファイル名変換 先頭のハイフン 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_PERIODS = 0x00001000, ///< Bit12: ファイル名変換 中間のピリオド 0:なし 1:'_'
|
||||
WINDRV_OPT_CONVERT_PERIOD = 0x00002000, ///< Bit13: ファイル名変換 先頭のピリオド 0:なし 1:'_'
|
||||
WINDRV_OPT_REDUCED_SPACE = 0x00010000, ///< Bit16: ファイル名短縮 スペース 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_BADCHAR = 0x00020000, ///< Bit17: ファイル名短縮 無効な文字 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_HYPHENS = 0x00040000, ///< Bit18: ファイル名短縮 中間のハイフン 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_HYPHEN = 0x00080000, ///< Bit19: ファイル名短縮 先頭のハイフン 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_PERIODS = 0x00100000, ///< Bit20: ファイル名短縮 中間のピリオド 0:なし 1:短縮
|
||||
WINDRV_OPT_REDUCED_PERIOD = 0x00200000, ///< Bit21: ファイル名短縮 先頭のピリオド 0:なし 1:短縮
|
||||
// Bit24~30 ファイル重複防止マーク 0:自動 1~127:文字
|
||||
};
|
||||
|
||||
@ -373,12 +354,9 @@ enum {
|
||||
判定が困難なデバイス(自作USBストレージとか)のための保険用。
|
||||
*/
|
||||
enum {
|
||||
FSFLAG_WRITE_PROTECT = 0x00000001,
|
||||
///< Bit0: 強制書き込み禁止
|
||||
FSFLAG_REMOVABLE = 0x00000002,
|
||||
///< Bit1: 強制リムーバブルメディア
|
||||
FSFLAG_MANUAL = 0x00000004,
|
||||
///< Bit2: 強制手動イジェクト
|
||||
FSFLAG_WRITE_PROTECT = 0x00000001, ///< Bit0: 強制書き込み禁止
|
||||
FSFLAG_REMOVABLE = 0x00000002, ///< Bit1: 強制リムーバブルメディア
|
||||
FSFLAG_MANUAL = 0x00000004, ///< Bit2: 強制手動イジェクト
|
||||
};
|
||||
|
||||
//===========================================================================
|
||||
@ -393,17 +371,12 @@ enum {
|
||||
class CRing {
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CRing() { Init(); }
|
||||
///< デフォルトコンストラクタ
|
||||
~CRing() { Remove(); }
|
||||
///< デストラクタ final
|
||||
void Init() { ASSERT(this); next = prev = this; }
|
||||
///< 初期化
|
||||
CRing() { Init(); } ///< デフォルトコンストラクタ
|
||||
~CRing() { Remove(); } ///< デストラクタ final
|
||||
void Init() { ASSERT(this); next = prev = this; } ///< 初期化
|
||||
|
||||
CRing* Next() const { ASSERT(this); return next; }
|
||||
///< 次の要素を取得
|
||||
CRing* Prev() const { ASSERT(this); return prev; }
|
||||
///< 前の要素を取得
|
||||
CRing* Next() const { ASSERT(this); return next; } ///< 次の要素を取得
|
||||
CRing* Prev() const { ASSERT(this); return prev; } ///< 前の要素を取得
|
||||
|
||||
void Insert(CRing* pRoot)
|
||||
{
|
||||
@ -485,57 +458,39 @@ private:
|
||||
class CHostFilename {
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CHostFilename();
|
||||
///< デフォルトコンストラクタ
|
||||
static size_t Offset() { return offsetof(CHostFilename, m_szHost); }
|
||||
///< オフセット位置取得
|
||||
CHostFilename(); ///< デフォルトコンストラクタ
|
||||
static size_t Offset() { return offsetof(CHostFilename, m_szHost); } ///< オフセット位置取得
|
||||
|
||||
void SetHost(const TCHAR* szHost);
|
||||
///< ホスト側の名称を設定
|
||||
const TCHAR* GetHost() const { ASSERT(this); return m_szHost; }
|
||||
///< ホスト側の名称を取得
|
||||
void ConvertHuman(int nCount = -1);
|
||||
///< Human68k側の名称を変換
|
||||
void CopyHuman(const BYTE* szHuman);
|
||||
///< Human68k側の名称を複製
|
||||
BOOL isReduce() const;
|
||||
///< Human68k側の名称が加工されたか調査
|
||||
BOOL isCorrect() const { ASSERT(this); return m_bCorrect; }
|
||||
///< Human68k側のファイル名規則に合致しているか調査
|
||||
const BYTE* GetHuman() const { ASSERT(this); return m_szHuman; }
|
||||
///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanLast() const { ASSERT(this); return m_pszHumanLast; }
|
||||
///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanExt() const { ASSERT(this); return m_pszHumanExt; }
|
||||
///< Human68kファイル名を取得
|
||||
void SetEntryName();
|
||||
///< Human68kディレクトリエントリを設定
|
||||
void SetHost(const TCHAR* szHost); ///< ホスト側の名称を設定
|
||||
const TCHAR* GetHost() const { ASSERT(this); return m_szHost; } ///< ホスト側の名称を取得
|
||||
void ConvertHuman(int nCount = -1); ///< Human68k側の名称を変換
|
||||
void CopyHuman(const BYTE* szHuman); ///< Human68k側の名称を複製
|
||||
BOOL isReduce() const; ///< Human68k側の名称が加工されたか調査
|
||||
BOOL isCorrect() const { ASSERT(this); return m_bCorrect; } ///< Human68k側のファイル名規則に合致しているか調査
|
||||
const BYTE* GetHuman() const { ASSERT(this); return m_szHuman; } ///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanLast() const
|
||||
{ ASSERT(this); return m_pszHumanLast; } ///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanExt() const { ASSERT(this); return m_pszHumanExt; }///< Human68kファイル名を取得
|
||||
void SetEntryName(); ///< Human68kディレクトリエントリを設定
|
||||
void SetEntryAttribute(BYTE nHumanAttribute)
|
||||
{ ASSERT(this); m_dirHuman.attr = nHumanAttribute; }
|
||||
///< Human68kディレクトリエントリを設定
|
||||
{ ASSERT(this); m_dirHuman.attr = nHumanAttribute; } ///< Human68kディレクトリエントリを設定
|
||||
void SetEntrySize(DWORD nHumanSize)
|
||||
{ ASSERT(this); m_dirHuman.size = nHumanSize; }
|
||||
///< Human68kディレクトリエントリを設定
|
||||
{ ASSERT(this); m_dirHuman.size = nHumanSize; } ///< Human68kディレクトリエントリを設定
|
||||
void SetEntryDate(WORD nHumanDate)
|
||||
{ ASSERT(this); m_dirHuman.date = nHumanDate; }
|
||||
///< Human68kディレクトリエントリを設定
|
||||
{ ASSERT(this); m_dirHuman.date = nHumanDate; } ///< Human68kディレクトリエントリを設定
|
||||
void SetEntryTime(WORD nHumanTime)
|
||||
{ ASSERT(this); m_dirHuman.time = nHumanTime; }
|
||||
///< Human68kディレクトリエントリを設定
|
||||
{ ASSERT(this); m_dirHuman.time = nHumanTime; } ///< Human68kディレクトリエントリを設定
|
||||
void SetEntryCluster(WORD nHumanCluster)
|
||||
{ ASSERT(this); m_dirHuman.cluster = nHumanCluster; }
|
||||
///< Human68kディレクトリエントリを設定
|
||||
const Human68k::dirent_t* GetEntry() const { ASSERT(this); return &m_dirHuman; }
|
||||
///< Human68kディレクトリエントリを取得
|
||||
BOOL CheckAttribute(DWORD nHumanAttribute) const;
|
||||
///< Human68kディレクトリエントリの属性判定
|
||||
{ ASSERT(this); m_dirHuman.cluster = nHumanCluster; } ///< Human68kディレクトリエントリを設定
|
||||
const Human68k::dirent_t* GetEntry() const
|
||||
{ ASSERT(this); return &m_dirHuman; } ///< Human68kディレクトリエントリを取得
|
||||
BOOL CheckAttribute(DWORD nHumanAttribute) const; ///< Human68kディレクトリエントリの属性判定
|
||||
BOOL isSameEntry(const Human68k::dirent_t* pdirHuman) const
|
||||
{ ASSERT(this); ASSERT(pdirHuman); return memcmp(&m_dirHuman, pdirHuman, sizeof(m_dirHuman)) == 0; }
|
||||
///< Human68kディレクトリエントリの一致判定
|
||||
|
||||
// パス名操作
|
||||
static const BYTE* SeparateExt(const BYTE* szHuman);
|
||||
///< Human68kファイル名から拡張子を分離
|
||||
static const BYTE* SeparateExt(const BYTE* szHuman); ///< Human68kファイル名から拡張子を分離
|
||||
|
||||
private:
|
||||
static BYTE* CopyName(BYTE* pWrite, const BYTE* pFirst, const BYTE* pLast);
|
||||
@ -588,52 +543,35 @@ public:
|
||||
const ring_t* pos; ///< 次回検索を続行する位置 (識別ID一致時)
|
||||
Human68k::dirent_t entry; ///< 次回検索を続行するエントリ内容
|
||||
|
||||
void Clear() { count = 0; }
|
||||
///< 初期化
|
||||
void Clear() { count = 0; } ///< 初期化
|
||||
};
|
||||
|
||||
// 基本ファンクション
|
||||
CHostPath();
|
||||
///< デフォルトコンストラクタ
|
||||
~CHostPath();
|
||||
///< デストラクタ final
|
||||
void Clean();
|
||||
///< 再利用のための初期化
|
||||
CHostPath(); ///< デフォルトコンストラクタ
|
||||
~CHostPath(); ///< デストラクタ final
|
||||
void Clean(); ///< 再利用のための初期化
|
||||
|
||||
void SetHuman(const BYTE* szHuman);
|
||||
///< Human68k側の名称を直接指定する
|
||||
void SetHost(const TCHAR* szHost);
|
||||
///< ホスト側の名称を直接指定する
|
||||
BOOL isSameHuman(const BYTE* szHuman) const;
|
||||
///< Human68k側の名称を比較する
|
||||
BOOL isSameChild(const BYTE* szHuman) const;
|
||||
///< Human68k側の名称を比較する
|
||||
const TCHAR* GetHost() const { ASSERT(this); return m_szHost; }
|
||||
///< ホスト側の名称の獲得
|
||||
void SetHuman(const BYTE* szHuman); ///< Human68k側の名称を直接指定する
|
||||
void SetHost(const TCHAR* szHost); ///< ホスト側の名称を直接指定する
|
||||
BOOL isSameHuman(const BYTE* szHuman) const; ///< Human68k側の名称を比較する
|
||||
BOOL isSameChild(const BYTE* szHuman) const; ///< Human68k側の名称を比較する
|
||||
const TCHAR* GetHost() const { ASSERT(this); return m_szHost; } ///< ホスト側の名称の獲得
|
||||
const CHostFilename* FindFilename(const BYTE* szHuman, DWORD nHumanAttribute = Human68k::AT_ALL) const;
|
||||
///< ファイル名を検索
|
||||
const CHostFilename* FindFilenameWildcard(const BYTE* szHuman, DWORD nHumanAttribute, find_t* pFind) const;
|
||||
///< ファイル名を検索 (ワイルドカード対応)
|
||||
BOOL isRefresh();
|
||||
///< ファイル変更が行なわれたか確認
|
||||
void Refresh();
|
||||
///< ファイル再構成
|
||||
void Backup();
|
||||
/// ホスト側のタイムスタンプを保存
|
||||
void Restore() const;
|
||||
/// ホスト側のタイムスタンプを復元
|
||||
void Release();
|
||||
///< 更新
|
||||
BOOL isRefresh(); ///< ファイル変更が行なわれたか確認
|
||||
void Refresh(); ///< ファイル再構成
|
||||
void Backup(); /// ホスト側のタイムスタンプを保存
|
||||
void Restore() const; /// ホスト側のタイムスタンプを復元
|
||||
void Release(); ///< 更新
|
||||
|
||||
// CHostEntryが利用する外部API
|
||||
static void InitId() { g_nId = 0; }
|
||||
///< 識別ID生成用カウンタ初期化
|
||||
static void InitId() { g_nId = 0; } ///< 識別ID生成用カウンタ初期化
|
||||
|
||||
private:
|
||||
static ring_t* Alloc(size_t nLength);
|
||||
///< ファイル名領域確保
|
||||
static void Free(ring_t* pRing);
|
||||
///< ファイル名領域解放
|
||||
static ring_t* Alloc(size_t nLength); ///< ファイル名領域確保
|
||||
static void Free(ring_t* pRing); ///< ファイル名領域解放
|
||||
static int Compare(const BYTE* pFirst, const BYTE* pLast, const BYTE* pBufFirst, const BYTE* pBufLast);
|
||||
///< 文字列比較 (ワイルドカード対応)
|
||||
|
||||
@ -676,58 +614,36 @@ private:
|
||||
class CHostFiles {
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CHostFiles() { SetKey(0); Init(); }
|
||||
///< デフォルトコンストラクタ
|
||||
void Init();
|
||||
///< 初期化
|
||||
CHostFiles() { SetKey(0); Init(); } ///< デフォルトコンストラクタ
|
||||
void Init(); ///< 初期化
|
||||
|
||||
void SetKey(DWORD nKey) { ASSERT(this); m_nKey = nKey; }
|
||||
///< 検索キー設定
|
||||
BOOL isSameKey(DWORD nKey) const { ASSERT(this); return m_nKey == nKey; }
|
||||
///< 検索キー比較
|
||||
void SetPath(const Human68k::namests_t* pNamests);
|
||||
///< パス名・ファイル名を内部で生成
|
||||
BOOL isRootPath() const { return m_szHumanPath[1] == '\0'; }
|
||||
///< ルートディレクトリ判定
|
||||
void SetPathWildcard() { m_nHumanWildcard = 1; }
|
||||
///< ワイルドカードによるファイル検索を有効化
|
||||
void SetPathOnly() { m_nHumanWildcard = 0xFF; }
|
||||
///< パス名のみを有効化
|
||||
BOOL isPathOnly() const { return m_nHumanWildcard == 0xFF; }
|
||||
///< パス名のみ設定か判定
|
||||
void SetKey(DWORD nKey) { ASSERT(this); m_nKey = nKey; } ///< 検索キー設定
|
||||
BOOL isSameKey(DWORD nKey) const { ASSERT(this); return m_nKey == nKey; } ///< 検索キー比較
|
||||
void SetPath(const Human68k::namests_t* pNamests); ///< パス名・ファイル名を内部で生成
|
||||
BOOL isRootPath() const { return m_szHumanPath[1] == '\0'; } ///< ルートディレクトリ判定
|
||||
void SetPathWildcard() { m_nHumanWildcard = 1; } ///< ワイルドカードによるファイル検索を有効化
|
||||
void SetPathOnly() { m_nHumanWildcard = 0xFF; } ///< パス名のみを有効化
|
||||
BOOL isPathOnly() const { return m_nHumanWildcard == 0xFF; } ///< パス名のみ設定か判定
|
||||
void SetAttribute(DWORD nHumanAttribute) { m_nHumanAttribute = nHumanAttribute; }
|
||||
///< 検索属性を設定
|
||||
BOOL Find(DWORD nUnit, class CHostEntry* pEntry);
|
||||
///< Human68k側でファイルを検索しホスト側の情報を生成
|
||||
const CHostFilename* Find(CHostPath* pPath);
|
||||
///< ファイル名検索
|
||||
void SetEntry(const CHostFilename* pFilename);
|
||||
///< Human68k側の検索結果保存
|
||||
void SetResult(const TCHAR* szPath);
|
||||
///< ホスト側の名称を設定
|
||||
void AddResult(const TCHAR* szPath);
|
||||
///< ホスト側の名称にファイル名を追加
|
||||
void AddFilename();
|
||||
///< ホスト側の名称にHuman68kの新規ファイル名を追加
|
||||
BOOL Find(DWORD nUnit, class CHostEntry* pEntry); ///< Human68k側でファイルを検索しホスト側の情報を生成
|
||||
const CHostFilename* Find(CHostPath* pPath); ///< ファイル名検索
|
||||
void SetEntry(const CHostFilename* pFilename); ///< Human68k側の検索結果保存
|
||||
void SetResult(const TCHAR* szPath); ///< ホスト側の名称を設定
|
||||
void AddResult(const TCHAR* szPath); ///< ホスト側の名称にファイル名を追加
|
||||
void AddFilename(); ///< ホスト側の名称にHuman68kの新規ファイル名を追加
|
||||
|
||||
const TCHAR* GetPath() const { ASSERT(this); return m_szHostResult; }
|
||||
///< ホスト側の名称を取得
|
||||
const Human68k::dirent_t* GetEntry() const { ASSERT(this); return &m_dirHuman; }
|
||||
///< Human68kディレクトリエントリを取得
|
||||
DWORD GetAttribute() const { ASSERT(this); return m_dirHuman.attr; }
|
||||
///< Human68k属性を取得
|
||||
WORD GetDate() const { ASSERT(this); return m_dirHuman.date; }
|
||||
///< Human68k日付を取得
|
||||
WORD GetTime() const { ASSERT(this); return m_dirHuman.time; }
|
||||
///< Human68k時刻を取得
|
||||
DWORD GetSize() const { ASSERT(this); return m_dirHuman.size; }
|
||||
///< Human68kファイルサイズを取得
|
||||
const BYTE* GetHumanFilename() const { ASSERT(this); return m_szHumanFilename; }
|
||||
///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanResult() const { ASSERT(this); return m_szHumanResult; }
|
||||
///< Human68kファイル名検索結果を取得
|
||||
const BYTE* GetHumanPath() const { ASSERT(this); return m_szHumanPath; }
|
||||
///< Human68kパス名を取得
|
||||
const TCHAR* GetPath() const { ASSERT(this); return m_szHostResult; } ///< ホスト側の名称を取得
|
||||
|
||||
const Human68k::dirent_t* GetEntry() const { ASSERT(this); return &m_dirHuman; }///< Human68kディレクトリエントリを取得
|
||||
|
||||
DWORD GetAttribute() const { ASSERT(this); return m_dirHuman.attr; } ///< Human68k属性を取得
|
||||
WORD GetDate() const { ASSERT(this); return m_dirHuman.date; } ///< Human68k日付を取得
|
||||
WORD GetTime() const { ASSERT(this); return m_dirHuman.time; } ///< Human68k時刻を取得
|
||||
DWORD GetSize() const { ASSERT(this); return m_dirHuman.size; } ///< Human68kファイルサイズを取得
|
||||
const BYTE* GetHumanFilename() const { ASSERT(this); return m_szHumanFilename; }///< Human68kファイル名を取得
|
||||
const BYTE* GetHumanResult() const { ASSERT(this); return m_szHumanResult; } ///< Human68kファイル名検索結果を取得
|
||||
const BYTE* GetHumanPath() const { ASSERT(this); return m_szHumanPath; } ///< Human68kパス名を取得
|
||||
|
||||
private:
|
||||
DWORD m_nKey; ///< Human68kのFILESバッファアドレス 0なら未使用
|
||||
@ -751,20 +667,14 @@ class CHostFilesManager {
|
||||
public:
|
||||
#ifdef _DEBUG
|
||||
// 基本ファンクション
|
||||
~CHostFilesManager();
|
||||
///< デストラクタ final
|
||||
~CHostFilesManager(); ///< デストラクタ final
|
||||
#endif // _DEBUG
|
||||
void Init();
|
||||
///< 初期化 (ドライバ組込み時)
|
||||
void Clean();
|
||||
///< 解放 (起動・リセット時)
|
||||
void Init(); ///< 初期化 (ドライバ組込み時)
|
||||
void Clean(); ///< 解放 (起動・リセット時)
|
||||
|
||||
CHostFiles* Alloc(DWORD nKey);
|
||||
///< 確保
|
||||
CHostFiles* Search(DWORD nKey);
|
||||
///< 検索
|
||||
void Free(CHostFiles* pFiles);
|
||||
///< 解放
|
||||
CHostFiles* Alloc(DWORD nKey); ///< 確保
|
||||
CHostFiles* Search(DWORD nKey); ///< 検索
|
||||
void Free(CHostFiles* pFiles); ///< 解放
|
||||
private:
|
||||
/// メモリ管理用
|
||||
struct ring_t {
|
||||
@ -783,48 +693,28 @@ private:
|
||||
class CHostFcb {
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CHostFcb() { SetKey(0); Init(); }
|
||||
///< デフォルトコンストラクタ
|
||||
~CHostFcb() { Close(); }
|
||||
///< デストラクタ final
|
||||
void Init();
|
||||
///< 初期化
|
||||
CHostFcb() { SetKey(0); Init(); } ///< デフォルトコンストラクタ
|
||||
~CHostFcb() { Close(); } ///< デストラクタ final
|
||||
void Init(); ///< 初期化
|
||||
|
||||
void SetKey(DWORD nKey) { ASSERT(this); m_nKey = nKey; }
|
||||
///< 検索キー設定
|
||||
BOOL isSameKey(DWORD nKey) const { ASSERT(this); return m_nKey == nKey; }
|
||||
///< 検索キー比較
|
||||
void SetUpdate() { ASSERT(this); m_bUpdate = TRUE; }
|
||||
///< 更新
|
||||
BOOL isUpdate() const { ASSERT(this); return m_bUpdate; }
|
||||
///< 更新状態取得
|
||||
BOOL SetMode(DWORD nHumanMode);
|
||||
///< ファイルオープンモードを設定
|
||||
void SetFilename(const TCHAR* szFilename);
|
||||
///< ファイル名を設定
|
||||
void SetHumanPath(const BYTE* szHumanPath);
|
||||
///< Human68kパス名を設定
|
||||
const BYTE* GetHumanPath() const { ASSERT(this); return m_szHumanPath; }
|
||||
///< Human68kパス名を取得
|
||||
void SetKey(DWORD nKey) { ASSERT(this); m_nKey = nKey; } ///< 検索キー設定
|
||||
BOOL isSameKey(DWORD nKey) const { ASSERT(this); return m_nKey == nKey; } ///< 検索キー比較
|
||||
void SetUpdate() { ASSERT(this); m_bUpdate = TRUE; } ///< 更新
|
||||
BOOL isUpdate() const { ASSERT(this); return m_bUpdate; } ///< 更新状態取得
|
||||
BOOL SetMode(DWORD nHumanMode); ///< ファイルオープンモードを設定
|
||||
void SetFilename(const TCHAR* szFilename); ///< ファイル名を設定
|
||||
void SetHumanPath(const BYTE* szHumanPath); ///< Human68kパス名を設定
|
||||
const BYTE* GetHumanPath() const { ASSERT(this); return m_szHumanPath; } ///< Human68kパス名を取得
|
||||
|
||||
BOOL Create(Human68k::fcb_t* pFcb, DWORD nHumanAttribute, BOOL bForce);
|
||||
///< ファイル作成
|
||||
BOOL Open();
|
||||
///< ファイルオープン
|
||||
BOOL Rewind(DWORD nOffset);
|
||||
///< ファイルシーク
|
||||
DWORD Read(BYTE* pBuffer, DWORD nSize);
|
||||
///< ファイル読み込み
|
||||
DWORD Write(const BYTE* pBuffer, DWORD nSize);
|
||||
///< ファイル書き込み
|
||||
BOOL Truncate();
|
||||
///< ファイル切り詰め
|
||||
DWORD Seek(DWORD nOffset, DWORD nHumanSeek);
|
||||
///< ファイルシーク
|
||||
BOOL TimeStamp(DWORD nHumanTime);
|
||||
///< ファイル時刻設定
|
||||
BOOL Close();
|
||||
///< ファイルクローズ
|
||||
BOOL Create(Human68k::fcb_t* pFcb, DWORD nHumanAttribute, BOOL bForce); ///< ファイル作成
|
||||
BOOL Open(); ///< ファイルオープン
|
||||
BOOL Rewind(DWORD nOffset); ///< ファイルシーク
|
||||
DWORD Read(BYTE* pBuffer, DWORD nSize); ///< ファイル読み込み
|
||||
DWORD Write(const BYTE* pBuffer, DWORD nSize); ///< ファイル書き込み
|
||||
BOOL Truncate(); ///< ファイル切り詰め
|
||||
DWORD Seek(DWORD nOffset, DWORD nHumanSeek); ///< ファイルシーク
|
||||
BOOL TimeStamp(DWORD nHumanTime); ///< ファイル時刻設定
|
||||
BOOL Close(); ///< ファイルクローズ
|
||||
|
||||
private:
|
||||
DWORD m_nKey; ///< Human68kのFCBバッファアドレス (0なら未使用)
|
||||
@ -851,20 +741,14 @@ class CHostFcbManager {
|
||||
public:
|
||||
#ifdef _DEBUG
|
||||
// 基本ファンクション
|
||||
~CHostFcbManager();
|
||||
///< デストラクタ final
|
||||
~CHostFcbManager(); ///< デストラクタ final
|
||||
#endif // _DEBUG
|
||||
void Init();
|
||||
///< 初期化 (ドライバ組込み時)
|
||||
void Clean();
|
||||
///< 解放 (起動・リセット時)
|
||||
void Init(); ///< 初期化 (ドライバ組込み時)
|
||||
void Clean(); ///< 解放 (起動・リセット時)
|
||||
|
||||
CHostFcb* Alloc(DWORD nKey);
|
||||
///< 確保
|
||||
CHostFcb* Search(DWORD nKey);
|
||||
///< 検索
|
||||
void Free(CHostFcb* p);
|
||||
///< 解放
|
||||
CHostFcb* Alloc(DWORD nKey); ///< 確保
|
||||
CHostFcb* Search(DWORD nKey); ///< 検索
|
||||
void Free(CHostFcb* p); ///< 解放
|
||||
|
||||
private:
|
||||
/// メモリ管理用
|
||||
@ -887,57 +771,33 @@ class CHostDrv
|
||||
{
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CHostDrv();
|
||||
///< デフォルトコンストラクタ
|
||||
~CHostDrv();
|
||||
///< デストラクタ final
|
||||
void Init(const TCHAR* szBase, DWORD nFlag);
|
||||
///< 初期化 (デバイス起動とロード)
|
||||
CHostDrv(); ///< デフォルトコンストラクタ
|
||||
~CHostDrv(); ///< デストラクタ final
|
||||
void Init(const TCHAR* szBase, DWORD nFlag); ///< 初期化 (デバイス起動とロード)
|
||||
|
||||
BOOL isWriteProtect() const { ASSERT(this); return m_bWriteProtect; }
|
||||
///< 書き込み禁止か?
|
||||
BOOL isEnable() const { ASSERT(this); return m_bEnable; }
|
||||
///< アクセス可能か?
|
||||
BOOL isMediaOffline();
|
||||
///< メディアチェック
|
||||
BYTE GetMediaByte() const;
|
||||
///< メディアバイトの取得
|
||||
DWORD GetStatus() const;
|
||||
///< ドライブ状態の取得
|
||||
void SetEnable(BOOL bEnable);
|
||||
///< メディア状態設定
|
||||
BOOL CheckMedia();
|
||||
///< メディア交換チェック
|
||||
void Update();
|
||||
///< メディア状態更新
|
||||
void Eject();
|
||||
///< イジェクト
|
||||
void GetVolume(TCHAR* szLabel);
|
||||
///< ボリュームラベルの取得
|
||||
BOOL GetVolumeCache(TCHAR* szLabel) const;
|
||||
///< キャッシュからボリュームラベルを取得
|
||||
DWORD GetCapacity(Human68k::capacity_t* pCapacity);
|
||||
///< 容量の取得
|
||||
BOOL GetCapacityCache(Human68k::capacity_t* pCapacity) const;
|
||||
///< キャッシュから容量を取得
|
||||
BOOL isWriteProtect() const { ASSERT(this); return m_bWriteProtect; } ///< 書き込み禁止か?
|
||||
BOOL isEnable() const { ASSERT(this); return m_bEnable; } ///< アクセス可能か?
|
||||
BOOL isMediaOffline(); ///< メディアチェック
|
||||
BYTE GetMediaByte() const; ///< メディアバイトの取得
|
||||
DWORD GetStatus() const; ///< ドライブ状態の取得
|
||||
void SetEnable(BOOL bEnable); ///< メディア状態設定
|
||||
BOOL CheckMedia(); ///< メディア交換チェック
|
||||
void Update(); ///< メディア状態更新
|
||||
void Eject(); ///< イジェクト
|
||||
void GetVolume(TCHAR* szLabel); ///< ボリュームラベルの取得
|
||||
BOOL GetVolumeCache(TCHAR* szLabel) const; ///< キャッシュからボリュームラベルを取得
|
||||
DWORD GetCapacity(Human68k::capacity_t* pCapacity); ///< 容量の取得
|
||||
BOOL GetCapacityCache(Human68k::capacity_t* pCapacity) const; ///< キャッシュから容量を取得
|
||||
|
||||
// キャッシュ操作
|
||||
void CleanCache();
|
||||
///< 全てのキャッシュを更新する
|
||||
void CleanCache(const BYTE* szHumanPath);
|
||||
///< 指定されたパスのキャッシュを更新する
|
||||
void CleanCacheChild(const BYTE* szHumanPath);
|
||||
///< 指定されたパス以下のキャッシュを全て更新する
|
||||
void DeleteCache(const BYTE* szHumanPath);
|
||||
///< 指定されたパスのキャッシュを削除する
|
||||
CHostPath* FindCache(const BYTE* szHuman);
|
||||
///< 指定されたパスがキャッシュされているか検索する
|
||||
CHostPath* CopyCache(CHostFiles* pFiles);
|
||||
///< キャッシュ情報を元に、ホスト側の名称を獲得する
|
||||
CHostPath* MakeCache(CHostFiles* pFiles);
|
||||
///< ホスト側の名称の構築に必要な情報をすべて取得する
|
||||
BOOL Find(CHostFiles* pFiles);
|
||||
///< ホスト側の名称を検索 (パス名+ファイル名(省略可)+属性)
|
||||
void CleanCache(); ///< 全てのキャッシュを更新する
|
||||
void CleanCache(const BYTE* szHumanPath); ///< 指定されたパスのキャッシュを更新する
|
||||
void CleanCacheChild(const BYTE* szHumanPath); ///< 指定されたパス以下のキャッシュを全て更新する
|
||||
void DeleteCache(const BYTE* szHumanPath); ///< 指定されたパスのキャッシュを削除する
|
||||
CHostPath* FindCache(const BYTE* szHuman); ///< 指定されたパスがキャッシュされているか検索する
|
||||
CHostPath* CopyCache(CHostFiles* pFiles); ///< キャッシュ情報を元に、ホスト側の名称を獲得する
|
||||
CHostPath* MakeCache(CHostFiles* pFiles); ///< ホスト側の名称の構築に必要な情報をすべて取得する
|
||||
BOOL Find(CHostFiles* pFiles); ///< ホスト側の名称を検索 (パス名+ファイル名(省略可)+属性)
|
||||
|
||||
private:
|
||||
// パス名操作
|
||||
@ -972,54 +832,32 @@ private:
|
||||
class CHostEntry {
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CHostEntry();
|
||||
///< デフォルトコンストラクタ
|
||||
~CHostEntry();
|
||||
///< デストラクタ final
|
||||
void Init();
|
||||
///< 初期化 (ドライバ組込み時)
|
||||
void Clean();
|
||||
///< 解放 (起動・リセット時)
|
||||
CHostEntry(); ///< デフォルトコンストラクタ
|
||||
~CHostEntry(); ///< デストラクタ final
|
||||
void Init(); ///< 初期化 (ドライバ組込み時)
|
||||
void Clean(); ///< 解放 (起動・リセット時)
|
||||
|
||||
// キャッシュ操作
|
||||
void CleanCache();
|
||||
///< 全てのキャッシュを更新する
|
||||
void CleanCache(DWORD nUnit);
|
||||
///< 指定されたユニットのキャッシュを更新する
|
||||
void CleanCache(DWORD nUnit, const BYTE* szHumanPath);
|
||||
///< 指定されたパスのキャッシュを更新する
|
||||
void CleanCacheChild(DWORD nUnit, const BYTE* szHumanPath);
|
||||
///< 指定されたパス以下のキャッシュを全て更新する
|
||||
void DeleteCache(DWORD nUnit, const BYTE* szHumanPath);
|
||||
///< 指定されたパスのキャッシュを削除する
|
||||
BOOL Find(DWORD nUnit, CHostFiles* pFiles);
|
||||
///< ホスト側の名称を検索 (パス名+ファイル名(省略可)+属性)
|
||||
void ShellNotify(DWORD nEvent, const TCHAR* szPath);
|
||||
///< ホスト側ファイルシステム状態変化通知
|
||||
void CleanCache(); ///< 全てのキャッシュを更新する
|
||||
void CleanCache(DWORD nUnit); ///< 指定されたユニットのキャッシュを更新する
|
||||
void CleanCache(DWORD nUnit, const BYTE* szHumanPath); ///< 指定されたパスのキャッシュを更新する
|
||||
void CleanCacheChild(DWORD nUnit, const BYTE* szHumanPath); ///< 指定されたパス以下のキャッシュを全て更新する
|
||||
void DeleteCache(DWORD nUnit, const BYTE* szHumanPath); ///< 指定されたパスのキャッシュを削除する
|
||||
BOOL Find(DWORD nUnit, CHostFiles* pFiles); ///< ホスト側の名称を検索 (パス名+ファイル名(省略可)+属性)
|
||||
void ShellNotify(DWORD nEvent, const TCHAR* szPath); ///< ホスト側ファイルシステム状態変化通知
|
||||
|
||||
// ドライブオブジェクト操作
|
||||
void SetDrv(DWORD nUnit, CHostDrv* pDrv);
|
||||
///< ドライブ設定
|
||||
BOOL isWriteProtect(DWORD nUnit) const;
|
||||
///< 書き込み禁止か?
|
||||
BOOL isEnable(DWORD nUnit) const;
|
||||
///< アクセス可能か?
|
||||
BOOL isMediaOffline(DWORD nUnit);
|
||||
///< メディアチェック
|
||||
BYTE GetMediaByte(DWORD nUnit) const;
|
||||
///< メディアバイトの取得
|
||||
DWORD GetStatus(DWORD nUnit) const;
|
||||
///< ドライブ状態の取得
|
||||
BOOL CheckMedia(DWORD nUnit);
|
||||
///< メディア交換チェック
|
||||
void Eject(DWORD nUnit);
|
||||
///< イジェクト
|
||||
void GetVolume(DWORD nUnit, TCHAR* szLabel);
|
||||
///< ボリュームラベルの取得
|
||||
BOOL GetVolumeCache(DWORD nUnit, TCHAR* szLabel) const;
|
||||
///< キャッシュからボリュームラベルを取得
|
||||
DWORD GetCapacity(DWORD nUnit, Human68k::capacity_t* pCapacity);
|
||||
///< 容量の取得
|
||||
void SetDrv(DWORD nUnit, CHostDrv* pDrv); ///< ドライブ設定
|
||||
BOOL isWriteProtect(DWORD nUnit) const; ///< 書き込み禁止か?
|
||||
BOOL isEnable(DWORD nUnit) const; ///< アクセス可能か?
|
||||
BOOL isMediaOffline(DWORD nUnit); ///< メディアチェック
|
||||
BYTE GetMediaByte(DWORD nUnit) const; ///< メディアバイトの取得
|
||||
DWORD GetStatus(DWORD nUnit) const; ///< ドライブ状態の取得
|
||||
BOOL CheckMedia(DWORD nUnit); ///< メディア交換チェック
|
||||
void Eject(DWORD nUnit); ///< イジェクト
|
||||
void GetVolume(DWORD nUnit, TCHAR* szLabel); ///< ボリュームラベルの取得
|
||||
BOOL GetVolumeCache(DWORD nUnit, TCHAR* szLabel) const; ///< キャッシュからボリュームラベルを取得
|
||||
DWORD GetCapacity(DWORD nUnit, Human68k::capacity_t* pCapacity); ///< 容量の取得
|
||||
BOOL GetCapacityCache(DWORD nUnit, Human68k::capacity_t* pCapacity) const;
|
||||
///< キャッシュからクラスタサイズを取得
|
||||
|
||||
@ -1069,80 +907,54 @@ class CFileSys
|
||||
{
|
||||
public:
|
||||
// 基本ファンクション
|
||||
CFileSys();
|
||||
///< デフォルトコンストラクタ
|
||||
virtual ~CFileSys() {};
|
||||
///< デストラクタ
|
||||
CFileSys(); ///< デフォルトコンストラクタ
|
||||
virtual ~CFileSys() {}; ///< デストラクタ
|
||||
|
||||
// 初期化・終了
|
||||
void Reset();
|
||||
///< リセット (全クローズ)
|
||||
void Init();
|
||||
///< 初期化 (デバイス起動とロード)
|
||||
void Reset(); ///< リセット (全クローズ)
|
||||
void Init(); ///< 初期化 (デバイス起動とロード)
|
||||
|
||||
// コマンドハンドラ
|
||||
DWORD InitDevice(const Human68k::argument_t* pArgument);
|
||||
///< $40 - デバイス起動
|
||||
int CheckDir(DWORD nUnit, const Human68k::namests_t* pNamests);
|
||||
///< $41 - ディレクトリチェック
|
||||
int MakeDir(DWORD nUnit, const Human68k::namests_t* pNamests);
|
||||
///< $42 - ディレクトリ作成
|
||||
int RemoveDir(DWORD nUnit, const Human68k::namests_t* pNamests);
|
||||
///< $43 - ディレクトリ削除
|
||||
DWORD InitDevice(const Human68k::argument_t* pArgument); ///< $40 - デバイス起動
|
||||
int CheckDir(DWORD nUnit, const Human68k::namests_t* pNamests); ///< $41 - ディレクトリチェック
|
||||
int MakeDir(DWORD nUnit, const Human68k::namests_t* pNamests); ///< $42 - ディレクトリ作成
|
||||
int RemoveDir(DWORD nUnit, const Human68k::namests_t* pNamests); ///< $43 - ディレクトリ削除
|
||||
int Rename(DWORD nUnit, const Human68k::namests_t* pNamests, const Human68k::namests_t* pNamestsNew);
|
||||
///< $44 - ファイル名変更
|
||||
int Delete(DWORD nUnit, const Human68k::namests_t* pNamests);
|
||||
///< $45 - ファイル削除
|
||||
int Delete(DWORD nUnit, const Human68k::namests_t* pNamests); ///< $45 - ファイル削除
|
||||
int Attribute(DWORD nUnit, const Human68k::namests_t* pNamests, DWORD nHumanAttribute);
|
||||
///< $46 - ファイル属性取得/設定
|
||||
int Files(DWORD nUnit, DWORD nKey, const Human68k::namests_t* pNamests, Human68k::files_t* pFiles);
|
||||
///< $47 - ファイル検索
|
||||
int NFiles(DWORD nUnit, DWORD nKey, Human68k::files_t* pFiles);
|
||||
///< $48 - ファイル次検索
|
||||
int NFiles(DWORD nUnit, DWORD nKey, Human68k::files_t* pFiles); ///< $48 - ファイル次検索
|
||||
int Create(DWORD nUnit, DWORD nKey, const Human68k::namests_t* pNamests, Human68k::fcb_t* pFcb, DWORD nHumanAttribute, BOOL bForce);
|
||||
///< $49 - ファイル作成
|
||||
int Open(DWORD nUnit, DWORD nKey, const Human68k::namests_t* pNamests, Human68k::fcb_t* pFcb);
|
||||
///< $4A - ファイルオープン
|
||||
int Close(DWORD nUnit, DWORD nKey, Human68k::fcb_t* pFcb);
|
||||
///< $4B - ファイルクローズ
|
||||
int Close(DWORD nUnit, DWORD nKey, Human68k::fcb_t* pFcb); ///< $4B - ファイルクローズ
|
||||
int Read(DWORD nKey, Human68k::fcb_t* pFcb, BYTE* pAddress, DWORD nSize);
|
||||
///< $4C - ファイル読み込み
|
||||
int Write(DWORD nKey, Human68k::fcb_t* pFcb, const BYTE* pAddress, DWORD nSize);
|
||||
///< $4D - ファイル書き込み
|
||||
int Seek(DWORD nKey, Human68k::fcb_t* pFcb, DWORD nSeek, int nOffset);
|
||||
///< $4E - ファイルシーク
|
||||
int Seek(DWORD nKey, Human68k::fcb_t* pFcb, DWORD nSeek, int nOffset); ///< $4E - ファイルシーク
|
||||
DWORD TimeStamp(DWORD nUnit, DWORD nKey, Human68k::fcb_t* pFcb, DWORD nHumanTime);
|
||||
///< $4F - ファイル時刻取得/設定
|
||||
int GetCapacity(DWORD nUnit, Human68k::capacity_t* pCapacity);
|
||||
///< $50 - 容量取得
|
||||
int CtrlDrive(DWORD nUnit, Human68k::ctrldrive_t* pCtrlDrive);
|
||||
///< $51 - ドライブ状態検査/制御
|
||||
int GetDPB(DWORD nUnit, Human68k::dpb_t* pDpb);
|
||||
///< $52 - DPB取得
|
||||
int DiskRead(DWORD nUnit, BYTE* pBuffer, DWORD nSector, DWORD nSize);
|
||||
///< $53 - セクタ読み込み
|
||||
int DiskWrite(DWORD nUnit);
|
||||
///< $54 - セクタ書き込み
|
||||
int Ioctrl(DWORD nUnit, DWORD nFunction, Human68k::ioctrl_t* pIoctrl);
|
||||
///< $55 - IOCTRL
|
||||
int Flush(DWORD nUnit);
|
||||
///< $56 - フラッシュ
|
||||
int CheckMedia(DWORD nUnit);
|
||||
///< $57 - メディア交換チェック
|
||||
int Lock(DWORD nUnit);
|
||||
///< $58 - 排他制御
|
||||
int GetCapacity(DWORD nUnit, Human68k::capacity_t* pCapacity); ///< $50 - 容量取得
|
||||
int CtrlDrive(DWORD nUnit, Human68k::ctrldrive_t* pCtrlDrive); ///< $51 - ドライブ状態検査/制御
|
||||
int GetDPB(DWORD nUnit, Human68k::dpb_t* pDpb); ///< $52 - DPB取得
|
||||
int DiskRead(DWORD nUnit, BYTE* pBuffer, DWORD nSector, DWORD nSize); ///< $53 - セクタ読み込み
|
||||
int DiskWrite(DWORD nUnit); ///< $54 - セクタ書き込み
|
||||
int Ioctrl(DWORD nUnit, DWORD nFunction, Human68k::ioctrl_t* pIoctrl); ///< $55 - IOCTRL
|
||||
int Flush(DWORD nUnit); ///< $56 - フラッシュ
|
||||
int CheckMedia(DWORD nUnit); ///< $57 - メディア交換チェック
|
||||
int Lock(DWORD nUnit); ///< $58 - 排他制御
|
||||
|
||||
void SetOption(DWORD nOption);
|
||||
///< オプション設定
|
||||
DWORD GetOption() const { ASSERT(this); return m_nOption; }
|
||||
///< オプション取得
|
||||
DWORD GetDefault() const { ASSERT(this); return m_nOptionDefault; }
|
||||
///< デフォルトオプション取得
|
||||
static DWORD GetFileOption() { return g_nOption; }
|
||||
///< ファイル名変換オプション取得
|
||||
void SetOption(DWORD nOption); ///< オプション設定
|
||||
DWORD GetOption() const { ASSERT(this); return m_nOption; } ///< オプション取得
|
||||
DWORD GetDefault() const { ASSERT(this); return m_nOptionDefault; } ///< デフォルトオプション取得
|
||||
static DWORD GetFileOption() { return g_nOption; } ///< ファイル名変換オプション取得
|
||||
void ShellNotify(DWORD nEvent, const TCHAR* szPath)
|
||||
{ ASSERT(this); m_cEntry.ShellNotify(nEvent, szPath); }
|
||||
///< ホスト側ファイルシステム状態変化通知
|
||||
{ ASSERT(this); m_cEntry.ShellNotify(nEvent, szPath); } ///< ホスト側ファイルシステム状態変化通知
|
||||
|
||||
/// 定数
|
||||
enum {
|
||||
@ -1151,10 +963,8 @@ public:
|
||||
|
||||
private:
|
||||
// 内部補助用
|
||||
void InitOption(const Human68k::argument_t* pArgument);
|
||||
///< オプション初期化
|
||||
BOOL FilesVolume(DWORD nUnit, Human68k::files_t* pFiles);
|
||||
///< ボリュームラベル取得
|
||||
void InitOption(const Human68k::argument_t* pArgument); ///< オプション初期化
|
||||
BOOL FilesVolume(DWORD nUnit, Human68k::files_t* pFiles); ///< ボリュームラベル取得
|
||||
|
||||
DWORD m_nUnits; ///< 現在のドライブオブジェクト数 (レジューム毎に変化)
|
||||
|
||||
@ -1176,8 +986,7 @@ private:
|
||||
///< 擬似セクタの指すファイル実体
|
||||
|
||||
DWORD m_nFlag[DriveMax]; ///< ベースパス状態復元用の動作フラグ候補
|
||||
TCHAR m_szBase[DriveMax][FILEPATH_MAX];
|
||||
///< ベースパス状態復元用の候補
|
||||
TCHAR m_szBase[DriveMax][FILEPATH_MAX]; ///< ベースパス状態復元用の候補
|
||||
static DWORD g_nOption; ///< ファイル名変換フラグ
|
||||
};
|
||||
|
||||
|
@ -28,26 +28,17 @@ class CTapDriver
|
||||
{
|
||||
public:
|
||||
// Basic Functionality
|
||||
CTapDriver();
|
||||
// Constructor
|
||||
BOOL FASTCALL Init();
|
||||
// Initilization
|
||||
void FASTCALL Cleanup();
|
||||
// Cleanup
|
||||
void FASTCALL GetMacAddr(BYTE *mac);
|
||||
// Get Mac Address
|
||||
int FASTCALL Rx(BYTE *buf);
|
||||
// Receive
|
||||
int FASTCALL Tx(BYTE *buf, int len);
|
||||
// Send
|
||||
CTapDriver(); // Constructor
|
||||
BOOL FASTCALL Init(); // Initilization
|
||||
void FASTCALL Cleanup(); // Cleanup
|
||||
void FASTCALL GetMacAddr(BYTE *mac); // Get Mac Address
|
||||
int FASTCALL Rx(BYTE *buf); // Receive
|
||||
int FASTCALL Tx(BYTE *buf, int len); // Send
|
||||
|
||||
private:
|
||||
BYTE m_MacAddr[6];
|
||||
// MAC Address
|
||||
BOOL m_bTxValid;
|
||||
// Send Valid Flag
|
||||
int m_hTAP;
|
||||
// File handle
|
||||
BYTE m_MacAddr[6]; // MAC Address
|
||||
BOOL m_bTxValid; // Send Valid Flag
|
||||
int m_hTAP; // File handle
|
||||
};
|
||||
|
||||
#endif // ctapdriver_h
|
||||
|
@ -94,34 +94,23 @@ public:
|
||||
|
||||
public:
|
||||
// Basic Functions
|
||||
DiskTrack();
|
||||
// Constructor
|
||||
virtual ~DiskTrack();
|
||||
// Destructor
|
||||
void FASTCALL Init(int track, int size, int sectors, BOOL raw = FALSE,
|
||||
off64_t imgoff = 0);
|
||||
// Initialization
|
||||
BOOL FASTCALL Load(const Filepath& path);
|
||||
// Load
|
||||
BOOL FASTCALL Save(const Filepath& path);
|
||||
// Save
|
||||
DiskTrack(); // Constructor
|
||||
virtual ~DiskTrack(); // Destructor
|
||||
void FASTCALL Init(int track, int size, int sectors, BOOL raw = FALSE, off64_t imgoff = 0);// Initialization
|
||||
BOOL FASTCALL Load(const Filepath& path); // Load
|
||||
BOOL FASTCALL Save(const Filepath& path); // Save
|
||||
|
||||
// Read / Write
|
||||
BOOL FASTCALL Read(BYTE *buf, int sec) const;
|
||||
// Sector Read
|
||||
BOOL FASTCALL Write(const BYTE *buf, int sec);
|
||||
// Sector Write
|
||||
BOOL FASTCALL Read(BYTE *buf, int sec) const; // Sector Read
|
||||
BOOL FASTCALL Write(const BYTE *buf, int sec); // Sector Write
|
||||
|
||||
// Other
|
||||
int FASTCALL GetTrack() const { return dt.track; }
|
||||
// Get track
|
||||
BOOL FASTCALL IsChanged() const { return dt.changed; }
|
||||
// Changed flag check
|
||||
int FASTCALL GetTrack() const { return dt.track; } // Get track
|
||||
BOOL FASTCALL IsChanged() const { return dt.changed; } // Changed flag check
|
||||
|
||||
private:
|
||||
// Internal data
|
||||
disktrk_t dt;
|
||||
// Internal data
|
||||
disktrk_t dt; // Internal data
|
||||
};
|
||||
|
||||
//===========================================================================
|
||||
@ -145,50 +134,31 @@ public:
|
||||
|
||||
public:
|
||||
// Basic Functions
|
||||
DiskCache(const Filepath& path, int size, int blocks,
|
||||
off64_t imgoff = 0);
|
||||
// Constructor
|
||||
virtual ~DiskCache();
|
||||
// Destructor
|
||||
void FASTCALL SetRawMode(BOOL raw);
|
||||
// CD-ROM raw mode setting
|
||||
DiskCache(const Filepath& path, int size, int blocks,off64_t imgoff = 0);// Constructor
|
||||
virtual ~DiskCache(); // Destructor
|
||||
void FASTCALL SetRawMode(BOOL raw); // CD-ROM raw mode setting
|
||||
|
||||
// Access
|
||||
BOOL FASTCALL Save();
|
||||
// Save and release all
|
||||
BOOL FASTCALL Read(BYTE *buf, int block);
|
||||
// Sector Read
|
||||
BOOL FASTCALL Write(const BYTE *buf, int block);
|
||||
// Sector Write
|
||||
BOOL FASTCALL GetCache(int index, int& track, DWORD& serial) const;
|
||||
// Get cache information
|
||||
BOOL FASTCALL Save(); // Save and release all
|
||||
BOOL FASTCALL Read(BYTE *buf, int block); // Sector Read
|
||||
BOOL FASTCALL Write(const BYTE *buf, int block); // Sector Write
|
||||
BOOL FASTCALL GetCache(int index, int& track, DWORD& serial) const; // Get cache information
|
||||
|
||||
private:
|
||||
// Internal Management
|
||||
void FASTCALL Clear();
|
||||
// Clear all tracks
|
||||
DiskTrack* FASTCALL Assign(int track);
|
||||
// Load track
|
||||
BOOL FASTCALL Load(int index, int track, DiskTrack *disktrk = NULL);
|
||||
// Load track
|
||||
void FASTCALL Update();
|
||||
// Update serial number
|
||||
void FASTCALL Clear(); // Clear all tracks
|
||||
DiskTrack* FASTCALL Assign(int track); // Load track
|
||||
BOOL FASTCALL Load(int index, int track, DiskTrack *disktrk = NULL); // Load track
|
||||
void FASTCALL Update(); // Update serial number
|
||||
|
||||
// Internal data
|
||||
cache_t cache[CacheMax];
|
||||
// Cache management
|
||||
DWORD serial;
|
||||
// Last serial number
|
||||
Filepath sec_path;
|
||||
// Path
|
||||
int sec_size;
|
||||
// Sector size (8 or 9 or 11)
|
||||
int sec_blocks;
|
||||
// Blocks per sector
|
||||
BOOL cd_raw;
|
||||
// CD-ROM RAW mode
|
||||
off64_t imgoffset;
|
||||
// Offset to actual data
|
||||
cache_t cache[CacheMax]; // Cache management
|
||||
DWORD serial; // Last serial number
|
||||
Filepath sec_path; // Path
|
||||
int sec_size; // Sector size (8 or 9 or 11)
|
||||
int sec_blocks; // Blocks per sector
|
||||
BOOL cd_raw; // CD-ROM RAW mode
|
||||
off64_t imgoffset; // Offset to actual data
|
||||
};
|
||||
|
||||
//===========================================================================
|
||||
@ -219,150 +189,86 @@ public:
|
||||
|
||||
public:
|
||||
// Basic Functions
|
||||
Disk();
|
||||
// Constructor
|
||||
virtual ~Disk();
|
||||
// Destructor
|
||||
virtual void FASTCALL Reset();
|
||||
// Device Reset
|
||||
Disk(); // Constructor
|
||||
virtual ~Disk(); // Destructor
|
||||
virtual void FASTCALL Reset(); // Device Reset
|
||||
#ifndef RASCSI
|
||||
virtual BOOL FASTCALL Save(Fileio *fio, int ver);
|
||||
// Save
|
||||
virtual BOOL FASTCALL Load(Fileio *fio, int ver);
|
||||
// Load
|
||||
virtual BOOL FASTCALL Save(Fileio *fio, int ver); // Save
|
||||
virtual BOOL FASTCALL Load(Fileio *fio, int ver); // Load
|
||||
#endif // RASCSI
|
||||
|
||||
// ID
|
||||
DWORD FASTCALL GetID() const { return disk.id; }
|
||||
// Get media ID
|
||||
BOOL FASTCALL IsNULL() const;
|
||||
// NULL check
|
||||
BOOL FASTCALL IsSASI() const;
|
||||
// SASI Check
|
||||
BOOL FASTCALL IsSCSI() const;
|
||||
// SASI Check
|
||||
DWORD FASTCALL GetID() const { return disk.id; } // Get media ID
|
||||
BOOL FASTCALL IsNULL() const; // NULL check
|
||||
BOOL FASTCALL IsSASI() const; // SASI Check
|
||||
BOOL FASTCALL IsSCSI() const; // SASI Check
|
||||
|
||||
// Media Operations
|
||||
virtual BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
void FASTCALL GetPath(Filepath& path) const;
|
||||
// Get the path
|
||||
void FASTCALL Eject(BOOL force);
|
||||
// Eject
|
||||
BOOL FASTCALL IsReady() const { return disk.ready; }
|
||||
// Ready check
|
||||
void FASTCALL WriteP(BOOL flag);
|
||||
// Set Write Protect flag
|
||||
BOOL FASTCALL IsWriteP() const { return disk.writep; }
|
||||
// Get write protect flag
|
||||
BOOL FASTCALL IsReadOnly() const { return disk.readonly; }
|
||||
// Get read only flag
|
||||
BOOL FASTCALL IsRemovable() const { return disk.removable; }
|
||||
// Get is removable flag
|
||||
BOOL FASTCALL IsLocked() const { return disk.lock; }
|
||||
// Get locked status
|
||||
BOOL FASTCALL IsAttn() const { return disk.attn; }
|
||||
// Get attention flag
|
||||
BOOL FASTCALL Flush();
|
||||
// Flush the cache
|
||||
void FASTCALL GetDisk(disk_t *buffer) const;
|
||||
// Get the internal data struct
|
||||
virtual BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
void FASTCALL GetPath(Filepath& path) const; // Get the path
|
||||
void FASTCALL Eject(BOOL force); // Eject
|
||||
BOOL FASTCALL IsReady() const { return disk.ready; } // Ready check
|
||||
void FASTCALL WriteP(BOOL flag); // Set Write Protect flag
|
||||
BOOL FASTCALL IsWriteP() const { return disk.writep; } // Get write protect flag
|
||||
BOOL FASTCALL IsReadOnly() const { return disk.readonly; } // Get read only flag
|
||||
BOOL FASTCALL IsRemovable() const { return disk.removable; } // Get is removable flag
|
||||
BOOL FASTCALL IsLocked() const { return disk.lock; } // Get locked status
|
||||
BOOL FASTCALL IsAttn() const { return disk.attn; } // Get attention flag
|
||||
BOOL FASTCALL Flush(); // Flush the cache
|
||||
void FASTCALL GetDisk(disk_t *buffer) const; // Get the internal data struct
|
||||
|
||||
// Properties
|
||||
void FASTCALL SetLUN(DWORD lun) { disk.lun = lun; }
|
||||
// LUN set
|
||||
DWORD FASTCALL GetLUN() { return disk.lun; }
|
||||
// LUN get
|
||||
void FASTCALL SetLUN(DWORD lun) { disk.lun = lun; } // LUN set
|
||||
DWORD FASTCALL GetLUN() { return disk.lun; } // LUN get
|
||||
|
||||
// commands
|
||||
virtual int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
virtual int FASTCALL RequestSense(const DWORD *cdb, BYTE *buf);
|
||||
// REQUEST SENSE command
|
||||
int FASTCALL SelectCheck(const DWORD *cdb);
|
||||
// SELECT check
|
||||
int FASTCALL SelectCheck10(const DWORD *cdb);
|
||||
// SELECT(10) check
|
||||
virtual BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length);
|
||||
// MODE SELECT command
|
||||
virtual int FASTCALL ModeSense(const DWORD *cdb, BYTE *buf);
|
||||
// MODE SENSE command
|
||||
virtual int FASTCALL ModeSense10(const DWORD *cdb, BYTE *buf);
|
||||
// MODE SENSE(10) command
|
||||
int FASTCALL ReadDefectData10(const DWORD *cdb, BYTE *buf);
|
||||
// READ DEFECT DATA(10) command
|
||||
virtual BOOL FASTCALL TestUnitReady(const DWORD *cdb);
|
||||
// TEST UNIT READY command
|
||||
BOOL FASTCALL Rezero(const DWORD *cdb);
|
||||
// REZERO command
|
||||
BOOL FASTCALL Format(const DWORD *cdb);
|
||||
// FORMAT UNIT command
|
||||
BOOL FASTCALL Reassign(const DWORD *cdb);
|
||||
// REASSIGN UNIT command
|
||||
virtual int FASTCALL Read(BYTE *buf, DWORD block);
|
||||
// READ command
|
||||
int FASTCALL WriteCheck(DWORD block);
|
||||
// WRITE check
|
||||
BOOL FASTCALL Write(const BYTE *buf, DWORD block);
|
||||
// WRITE command
|
||||
BOOL FASTCALL Seek(const DWORD *cdb);
|
||||
// SEEK command
|
||||
BOOL FASTCALL Assign(const DWORD *cdb);
|
||||
// ASSIGN command
|
||||
BOOL FASTCALL Specify(const DWORD *cdb);
|
||||
// SPECIFY command
|
||||
BOOL FASTCALL StartStop(const DWORD *cdb);
|
||||
// START STOP UNIT command
|
||||
BOOL FASTCALL SendDiag(const DWORD *cdb);
|
||||
// SEND DIAGNOSTIC command
|
||||
BOOL FASTCALL Removal(const DWORD *cdb);
|
||||
// PREVENT/ALLOW MEDIUM REMOVAL command
|
||||
int FASTCALL ReadCapacity(const DWORD *cdb, BYTE *buf);
|
||||
// READ CAPACITY command
|
||||
BOOL FASTCALL Verify(const DWORD *cdb);
|
||||
// VERIFY command
|
||||
virtual int FASTCALL ReadToc(const DWORD *cdb, BYTE *buf);
|
||||
// READ TOC command
|
||||
virtual BOOL FASTCALL PlayAudio(const DWORD *cdb);
|
||||
// PLAY AUDIO command
|
||||
virtual BOOL FASTCALL PlayAudioMSF(const DWORD *cdb);
|
||||
// PLAY AUDIO MSF command
|
||||
virtual BOOL FASTCALL PlayAudioTrack(const DWORD *cdb);
|
||||
// PLAY AUDIO TRACK command
|
||||
void FASTCALL InvalidCmd() { disk.code = DISK_INVALIDCMD; }
|
||||
// Unsupported command
|
||||
virtual int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);// INQUIRY command
|
||||
virtual int FASTCALL RequestSense(const DWORD *cdb, BYTE *buf); // REQUEST SENSE command
|
||||
int FASTCALL SelectCheck(const DWORD *cdb); // SELECT check
|
||||
int FASTCALL SelectCheck10(const DWORD *cdb); // SELECT(10) check
|
||||
virtual BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length);// MODE SELECT command
|
||||
virtual int FASTCALL ModeSense(const DWORD *cdb, BYTE *buf); // MODE SENSE command
|
||||
virtual int FASTCALL ModeSense10(const DWORD *cdb, BYTE *buf); // MODE SENSE(10) command
|
||||
int FASTCALL ReadDefectData10(const DWORD *cdb, BYTE *buf); // READ DEFECT DATA(10) command
|
||||
virtual BOOL FASTCALL TestUnitReady(const DWORD *cdb); // TEST UNIT READY command
|
||||
BOOL FASTCALL Rezero(const DWORD *cdb); // REZERO command
|
||||
BOOL FASTCALL Format(const DWORD *cdb); // FORMAT UNIT command
|
||||
BOOL FASTCALL Reassign(const DWORD *cdb); // REASSIGN UNIT command
|
||||
virtual int FASTCALL Read(BYTE *buf, DWORD block); // READ command
|
||||
int FASTCALL WriteCheck(DWORD block); // WRITE check
|
||||
BOOL FASTCALL Write(const BYTE *buf, DWORD block); // WRITE command
|
||||
BOOL FASTCALL Seek(const DWORD *cdb); // SEEK command
|
||||
BOOL FASTCALL Assign(const DWORD *cdb); // ASSIGN command
|
||||
BOOL FASTCALL Specify(const DWORD *cdb); // SPECIFY command
|
||||
BOOL FASTCALL StartStop(const DWORD *cdb); // START STOP UNIT command
|
||||
BOOL FASTCALL SendDiag(const DWORD *cdb); // SEND DIAGNOSTIC command
|
||||
BOOL FASTCALL Removal(const DWORD *cdb); // PREVENT/ALLOW MEDIUM REMOVAL command
|
||||
int FASTCALL ReadCapacity(const DWORD *cdb, BYTE *buf); // READ CAPACITY command
|
||||
BOOL FASTCALL Verify(const DWORD *cdb); // VERIFY command
|
||||
virtual int FASTCALL ReadToc(const DWORD *cdb, BYTE *buf); // READ TOC command
|
||||
virtual BOOL FASTCALL PlayAudio(const DWORD *cdb); // PLAY AUDIO command
|
||||
virtual BOOL FASTCALL PlayAudioMSF(const DWORD *cdb); // PLAY AUDIO MSF command
|
||||
virtual BOOL FASTCALL PlayAudioTrack(const DWORD *cdb); // PLAY AUDIO TRACK command
|
||||
void FASTCALL InvalidCmd() { disk.code = DISK_INVALIDCMD; } // Unsupported command
|
||||
|
||||
// Other
|
||||
BOOL IsCacheWB() { return cache_wb; }
|
||||
// Get cache writeback mode
|
||||
void SetCacheWB(BOOL enable) { cache_wb = enable; }
|
||||
// Set cache writeback mode
|
||||
BOOL IsCacheWB() { return cache_wb; } // Get cache writeback mode
|
||||
void SetCacheWB(BOOL enable) { cache_wb = enable; } // Set cache writeback mode
|
||||
|
||||
protected:
|
||||
// Internal processing
|
||||
virtual int FASTCALL AddError(BOOL change, BYTE *buf);
|
||||
// Add error
|
||||
virtual int FASTCALL AddFormat(BOOL change, BYTE *buf);
|
||||
// Add format
|
||||
virtual int FASTCALL AddDrive(BOOL change, BYTE *buf);
|
||||
// Add drive
|
||||
int FASTCALL AddOpt(BOOL change, BYTE *buf);
|
||||
// Add optical
|
||||
int FASTCALL AddCache(BOOL change, BYTE *buf);
|
||||
// Add cache
|
||||
int FASTCALL AddCDROM(BOOL change, BYTE *buf);
|
||||
// Add CD-ROM
|
||||
int FASTCALL AddCDDA(BOOL change, BYTE *buf);
|
||||
// Add CD_DA
|
||||
virtual int FASTCALL AddVendor(int page, BOOL change, BYTE *buf);
|
||||
// Add vendor special info
|
||||
BOOL FASTCALL CheckReady();
|
||||
// Check if ready
|
||||
virtual int FASTCALL AddError(BOOL change, BYTE *buf); // Add error
|
||||
virtual int FASTCALL AddFormat(BOOL change, BYTE *buf); // Add format
|
||||
virtual int FASTCALL AddDrive(BOOL change, BYTE *buf); // Add drive
|
||||
int FASTCALL AddOpt(BOOL change, BYTE *buf); // Add optical
|
||||
int FASTCALL AddCache(BOOL change, BYTE *buf); // Add cache
|
||||
int FASTCALL AddCDROM(BOOL change, BYTE *buf); // Add CD-ROM
|
||||
int FASTCALL AddCDDA(BOOL change, BYTE *buf); // Add CD_DA
|
||||
virtual int FASTCALL AddVendor(int page, BOOL change, BYTE *buf); // Add vendor special info
|
||||
BOOL FASTCALL CheckReady(); // Check if ready
|
||||
|
||||
// Internal data
|
||||
disk_t disk;
|
||||
// Internal disk data
|
||||
Filepath diskpath;
|
||||
// File path (for GetPath)
|
||||
BOOL cache_wb;
|
||||
// Cache mode
|
||||
disk_t disk; // Internal disk data
|
||||
Filepath diskpath; // File path (for GetPath)
|
||||
BOOL cache_wb; // Cache mode
|
||||
};
|
||||
|
@ -28,13 +28,10 @@ class SASIHD : public Disk
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SASIHD();
|
||||
// Constructor
|
||||
void FASTCALL Reset();
|
||||
// Reset
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
SASIHD(); // Constructor
|
||||
void FASTCALL Reset(); // Reset
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
|
||||
// commands
|
||||
int FASTCALL RequestSense(const DWORD *cdb, BYTE *buf);
|
||||
// REQUEST SENSE command
|
||||
int FASTCALL RequestSense(const DWORD *cdb, BYTE *buf); // REQUEST SENSE command
|
||||
};
|
@ -34,120 +34,68 @@ class SCSIBR : public Disk
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSIBR();
|
||||
// Constructor
|
||||
virtual ~SCSIBR();
|
||||
// Destructor
|
||||
SCSIBR(); // Constructor
|
||||
virtual ~SCSIBR(); // Destructor
|
||||
|
||||
// commands
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
BOOL FASTCALL TestUnitReady(const DWORD *cdb);
|
||||
// TEST UNIT READY command
|
||||
int FASTCALL GetMessage10(const DWORD *cdb, BYTE *buf);
|
||||
// GET MESSAGE10 command
|
||||
BOOL FASTCALL SendMessage10(const DWORD *cdb, BYTE *buf);
|
||||
// SEND MESSAGE10 command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
BOOL FASTCALL TestUnitReady(const DWORD *cdb); // TEST UNIT READY command
|
||||
int FASTCALL GetMessage10(const DWORD *cdb, BYTE *buf); // GET MESSAGE10 command
|
||||
BOOL FASTCALL SendMessage10(const DWORD *cdb, BYTE *buf); // SEND MESSAGE10 command
|
||||
|
||||
private:
|
||||
#if defined(RASCSI) && !defined(BAREMETAL)
|
||||
int FASTCALL GetMacAddr(BYTE *buf);
|
||||
// Get MAC address
|
||||
void FASTCALL SetMacAddr(BYTE *buf);
|
||||
// Set MAC address
|
||||
void FASTCALL ReceivePacket();
|
||||
// Receive a packet
|
||||
void FASTCALL GetPacketBuf(BYTE *buf);
|
||||
// Get a packet
|
||||
void FASTCALL SendPacket(BYTE *buf, int len);
|
||||
// Send a packet
|
||||
int FASTCALL GetMacAddr(BYTE *buf); // Get MAC address
|
||||
void FASTCALL SetMacAddr(BYTE *buf); // Set MAC address
|
||||
void FASTCALL ReceivePacket(); // Receive a packet
|
||||
void FASTCALL GetPacketBuf(BYTE *buf); // Get a packet
|
||||
void FASTCALL SendPacket(BYTE *buf, int len); // Send a packet
|
||||
|
||||
CTapDriver *tap;
|
||||
// TAP driver
|
||||
BOOL m_bTapEnable;
|
||||
// TAP valid flag
|
||||
BYTE mac_addr[6];
|
||||
// MAC Addres
|
||||
int packet_len;
|
||||
// Receive packet size
|
||||
BYTE packet_buf[0x1000];
|
||||
// Receive packet buffer
|
||||
BOOL packet_enable;
|
||||
// Received packet valid
|
||||
CTapDriver *tap; // TAP driver
|
||||
BOOL m_bTapEnable; // TAP valid flag
|
||||
BYTE mac_addr[6]; // MAC Addres
|
||||
int packet_len; // Receive packet size
|
||||
BYTE packet_buf[0x1000]; // Receive packet buffer
|
||||
BOOL packet_enable; // Received packet valid
|
||||
#endif // RASCSI && !BAREMETAL
|
||||
|
||||
int FASTCALL ReadFsResult(BYTE *buf);
|
||||
// Read filesystem (result code)
|
||||
int FASTCALL ReadFsOut(BYTE *buf);
|
||||
// Read filesystem (return data)
|
||||
int FASTCALL ReadFsOpt(BYTE *buf);
|
||||
// Read file system (optional data)
|
||||
void FASTCALL WriteFs(int func, BYTE *buf);
|
||||
// File system write (execute)
|
||||
void FASTCALL WriteFsOpt(BYTE *buf, int len);
|
||||
// File system write (optional data)
|
||||
// Command handlers
|
||||
void FASTCALL FS_InitDevice(BYTE *buf);
|
||||
// $40 - boot
|
||||
void FASTCALL FS_CheckDir(BYTE *buf);
|
||||
// $41 - directory check
|
||||
void FASTCALL FS_MakeDir(BYTE *buf);
|
||||
// $42 - create directory
|
||||
void FASTCALL FS_RemoveDir(BYTE *buf);
|
||||
// $43 - delete directory
|
||||
void FASTCALL FS_Rename(BYTE *buf);
|
||||
// $44 - change filename
|
||||
void FASTCALL FS_Delete(BYTE *buf);
|
||||
// $45 - delete file
|
||||
void FASTCALL FS_Attribute(BYTE *buf);
|
||||
// $46 - get/set file attributes
|
||||
void FASTCALL FS_Files(BYTE *buf);
|
||||
// $47 - file search
|
||||
void FASTCALL FS_NFiles(BYTE *buf);
|
||||
// $48 - find next file
|
||||
void FASTCALL FS_Create(BYTE *buf);
|
||||
// $49 - create file
|
||||
void FASTCALL FS_Open(BYTE *buf);
|
||||
// $4A - open file
|
||||
void FASTCALL FS_Close(BYTE *buf);
|
||||
// $4B - close file
|
||||
void FASTCALL FS_Read(BYTE *buf);
|
||||
// $4C - read file
|
||||
void FASTCALL FS_Write(BYTE *buf);
|
||||
// $4D - write file
|
||||
void FASTCALL FS_Seek(BYTE *buf);
|
||||
// $4E - seek file
|
||||
void FASTCALL FS_TimeStamp(BYTE *buf);
|
||||
// $4F - get/set file time
|
||||
void FASTCALL FS_GetCapacity(BYTE *buf);
|
||||
// $50 - get capacity
|
||||
void FASTCALL FS_CtrlDrive(BYTE *buf);
|
||||
// $51 - drive status check/control
|
||||
void FASTCALL FS_GetDPB(BYTE *buf);
|
||||
// $52 - get DPB
|
||||
void FASTCALL FS_DiskRead(BYTE *buf);
|
||||
// $53 - read sector
|
||||
void FASTCALL FS_DiskWrite(BYTE *buf);
|
||||
// $54 - write sector
|
||||
void FASTCALL FS_Ioctrl(BYTE *buf);
|
||||
// $55 - IOCTRL
|
||||
void FASTCALL FS_Flush(BYTE *buf);
|
||||
// $56 - flush cache
|
||||
void FASTCALL FS_CheckMedia(BYTE *buf);
|
||||
// $57 - check media
|
||||
void FASTCALL FS_Lock(BYTE *buf);
|
||||
// $58 - get exclusive control
|
||||
int FASTCALL ReadFsResult(BYTE *buf); // Read filesystem (result code)
|
||||
int FASTCALL ReadFsOut(BYTE *buf); // Read filesystem (return data)
|
||||
int FASTCALL ReadFsOpt(BYTE *buf); // Read file system (optional data)
|
||||
void FASTCALL WriteFs(int func, BYTE *buf); // File system write (execute)
|
||||
void FASTCALL WriteFsOpt(BYTE *buf, int len); // File system write (optional data)
|
||||
|
||||
CFileSys *fs;
|
||||
// File system accessor
|
||||
DWORD fsresult;
|
||||
// File system access result code
|
||||
BYTE fsout[0x800];
|
||||
// File system access result buffer
|
||||
DWORD fsoutlen;
|
||||
// File system access result buffer size
|
||||
BYTE fsopt[0x1000000];
|
||||
// File system access buffer
|
||||
DWORD fsoptlen;
|
||||
// File system access buffer size
|
||||
// Command handlers
|
||||
void FASTCALL FS_InitDevice(BYTE *buf); // $40 - boot
|
||||
void FASTCALL FS_CheckDir(BYTE *buf); // $41 - directory check
|
||||
void FASTCALL FS_MakeDir(BYTE *buf); // $42 - create directory
|
||||
void FASTCALL FS_RemoveDir(BYTE *buf); // $43 - delete directory
|
||||
void FASTCALL FS_Rename(BYTE *buf); // $44 - change filename
|
||||
void FASTCALL FS_Delete(BYTE *buf); // $45 - delete file
|
||||
void FASTCALL FS_Attribute(BYTE *buf); // $46 - get/set file attributes
|
||||
void FASTCALL FS_Files(BYTE *buf); // $47 - file search
|
||||
void FASTCALL FS_NFiles(BYTE *buf); // $48 - find next file
|
||||
void FASTCALL FS_Create(BYTE *buf); // $49 - create file
|
||||
void FASTCALL FS_Open(BYTE *buf); // $4A - open file
|
||||
void FASTCALL FS_Close(BYTE *buf); // $4B - close file
|
||||
void FASTCALL FS_Read(BYTE *buf); // $4C - read file
|
||||
void FASTCALL FS_Write(BYTE *buf); // $4D - write file
|
||||
void FASTCALL FS_Seek(BYTE *buf); // $4E - seek file
|
||||
void FASTCALL FS_TimeStamp(BYTE *buf); // $4F - get/set file time
|
||||
void FASTCALL FS_GetCapacity(BYTE *buf); // $50 - get capacity
|
||||
void FASTCALL FS_CtrlDrive(BYTE *buf); // $51 - drive status check/control
|
||||
void FASTCALL FS_GetDPB(BYTE *buf); // $52 - get DPB
|
||||
void FASTCALL FS_DiskRead(BYTE *buf); // $53 - read sector
|
||||
void FASTCALL FS_DiskWrite(BYTE *buf); // $54 - write sector
|
||||
void FASTCALL FS_Ioctrl(BYTE *buf); // $55 - IOCTRL
|
||||
void FASTCALL FS_Flush(BYTE *buf); // $56 - flush cache
|
||||
void FASTCALL FS_CheckMedia(BYTE *buf); // $57 - check media
|
||||
void FASTCALL FS_Lock(BYTE *buf); // $58 - get exclusive control
|
||||
|
||||
CFileSys *fs; // File system accessor
|
||||
DWORD fsresult; // File system access result code
|
||||
BYTE fsout[0x800]; // File system access result buffer
|
||||
DWORD fsoutlen; // File system access result buffer size
|
||||
BYTE fsopt[0x1000000]; // File system access buffer
|
||||
DWORD fsoptlen; // File system access buffer size
|
||||
};
|
||||
|
@ -36,50 +36,30 @@ class CDTrack
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
CDTrack(SCSICD *scsicd);
|
||||
// Constructor
|
||||
virtual ~CDTrack();
|
||||
// Destructor
|
||||
BOOL FASTCALL Init(int track, DWORD first, DWORD last);
|
||||
// Initialization
|
||||
CDTrack(SCSICD *scsicd); // Constructor
|
||||
virtual ~CDTrack(); // Destructor
|
||||
BOOL FASTCALL Init(int track, DWORD first, DWORD last); // Initialization
|
||||
|
||||
// Properties
|
||||
void FASTCALL SetPath(BOOL cdda, const Filepath& path);
|
||||
// Set the path
|
||||
void FASTCALL GetPath(Filepath& path) const;
|
||||
// Get the path
|
||||
void FASTCALL AddIndex(int index, DWORD lba);
|
||||
// Add index
|
||||
DWORD FASTCALL GetFirst() const;
|
||||
// Get the start LBA
|
||||
DWORD FASTCALL GetLast() const;
|
||||
// Get the last LBA
|
||||
DWORD FASTCALL GetBlocks() const;
|
||||
// Get the number of blocks
|
||||
int FASTCALL GetTrackNo() const;
|
||||
// Get the track number
|
||||
BOOL FASTCALL IsValid(DWORD lba) const;
|
||||
// Is this a valid LBA?
|
||||
BOOL FASTCALL IsAudio() const;
|
||||
// Is this an audio track?
|
||||
void FASTCALL SetPath(BOOL cdda, const Filepath& path); // Set the path
|
||||
void FASTCALL GetPath(Filepath& path) const; // Get the path
|
||||
void FASTCALL AddIndex(int index, DWORD lba); // Add index
|
||||
DWORD FASTCALL GetFirst() const; // Get the start LBA
|
||||
DWORD FASTCALL GetLast() const; // Get the last LBA
|
||||
DWORD FASTCALL GetBlocks() const; // Get the number of blocks
|
||||
int FASTCALL GetTrackNo() const; // Get the track number
|
||||
BOOL FASTCALL IsValid(DWORD lba) const; // Is this a valid LBA?
|
||||
BOOL FASTCALL IsAudio() const; // Is this an audio track?
|
||||
|
||||
private:
|
||||
SCSICD *cdrom;
|
||||
// Parent device
|
||||
BOOL valid;
|
||||
// Valid track
|
||||
int track_no;
|
||||
// Track number
|
||||
DWORD first_lba;
|
||||
// First LBA
|
||||
DWORD last_lba;
|
||||
// Last LBA
|
||||
BOOL audio;
|
||||
// Audio track flag
|
||||
BOOL raw;
|
||||
// RAW data flag
|
||||
Filepath imgpath;
|
||||
// Image file path
|
||||
SCSICD *cdrom; // Parent device
|
||||
BOOL valid; // Valid track
|
||||
int track_no; // Track number
|
||||
DWORD first_lba; // First LBA
|
||||
DWORD last_lba; // Last LBA
|
||||
BOOL audio; // Audio track flag
|
||||
BOOL raw; // RAW data flag
|
||||
Filepath imgpath; // Image file path
|
||||
};
|
||||
|
||||
//===========================================================================
|
||||
@ -91,47 +71,29 @@ class CDDABuf
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
CDDABuf();
|
||||
// Constructor
|
||||
virtual ~CDDABuf();
|
||||
// Destructor
|
||||
CDDABuf(); // Constructor
|
||||
virtual ~CDDABuf(); // Destructor
|
||||
#if 0
|
||||
BOOL Init();
|
||||
// Initialization
|
||||
BOOL FASTCALL Load(const Filepath& path);
|
||||
// Load
|
||||
BOOL FASTCALL Save(const Filepath& path);
|
||||
// Save
|
||||
BOOL Init(); // Initialization
|
||||
BOOL FASTCALL Load(const Filepath& path); // Load
|
||||
BOOL FASTCALL Save(const Filepath& path); // Save
|
||||
|
||||
// API
|
||||
void FASTCALL Clear();
|
||||
// Clear the buffer
|
||||
BOOL FASTCALL Open(Filepath& path);
|
||||
// File specification
|
||||
BOOL FASTCALL GetBuf(DWORD *buffer, int frames);
|
||||
// Get the buffer
|
||||
BOOL FASTCALL IsValid();
|
||||
// Check if Valid
|
||||
BOOL FASTCALL ReadReq();
|
||||
// Read Request
|
||||
BOOL FASTCALL IsEnd() const;
|
||||
// Finish check
|
||||
void FASTCALL Clear(); // Clear the buffer
|
||||
BOOL FASTCALL Open(Filepath& path); // File specification
|
||||
BOOL FASTCALL GetBuf(DWORD *buffer, int frames); // Get the buffer
|
||||
BOOL FASTCALL IsValid(); // Check if Valid
|
||||
BOOL FASTCALL ReadReq(); // Read Request
|
||||
BOOL FASTCALL IsEnd() const; // Finish check
|
||||
|
||||
private:
|
||||
Filepath wavepath;
|
||||
// Wave path
|
||||
BOOL valid;
|
||||
// Open result (is it valid?)
|
||||
DWORD *buf;
|
||||
// Data buffer
|
||||
DWORD read;
|
||||
// Read pointer
|
||||
DWORD write;
|
||||
// Write pointer
|
||||
DWORD num;
|
||||
// Valid number of data
|
||||
DWORD rest;
|
||||
// Remaining file size
|
||||
Filepath wavepath; // Wave path
|
||||
BOOL valid; // Open result (is it valid?)
|
||||
DWORD *buf; // Data buffer
|
||||
DWORD read; // Read pointer
|
||||
DWORD write; // Write pointer
|
||||
DWORD num; // Valid number of data
|
||||
DWORD rest; // Remaining file size
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -150,81 +112,51 @@ public:
|
||||
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSICD();
|
||||
// Constructor
|
||||
virtual ~SCSICD();
|
||||
// Destructor
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
SCSICD(); // Constructor
|
||||
virtual ~SCSICD(); // Destructor
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
#ifndef RASCSI
|
||||
BOOL FASTCALL Load(Fileio *fio, int ver);
|
||||
// Load
|
||||
BOOL FASTCALL Load(Fileio *fio, int ver); // Load
|
||||
#endif // RASCSI
|
||||
|
||||
// commands
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
int FASTCALL Read(BYTE *buf, DWORD block);
|
||||
// READ command
|
||||
int FASTCALL ReadToc(const DWORD *cdb, BYTE *buf);
|
||||
// READ TOC command
|
||||
BOOL FASTCALL PlayAudio(const DWORD *cdb);
|
||||
// PLAY AUDIO command
|
||||
BOOL FASTCALL PlayAudioMSF(const DWORD *cdb);
|
||||
// PLAY AUDIO MSF command
|
||||
BOOL FASTCALL PlayAudioTrack(const DWORD *cdb);
|
||||
// PLAY AUDIO TRACK command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
int FASTCALL Read(BYTE *buf, DWORD block); // READ command
|
||||
int FASTCALL ReadToc(const DWORD *cdb, BYTE *buf); // READ TOC command
|
||||
BOOL FASTCALL PlayAudio(const DWORD *cdb); // PLAY AUDIO command
|
||||
BOOL FASTCALL PlayAudioMSF(const DWORD *cdb); // PLAY AUDIO MSF command
|
||||
BOOL FASTCALL PlayAudioTrack(const DWORD *cdb); // PLAY AUDIO TRACK command
|
||||
|
||||
// CD-DA
|
||||
BOOL FASTCALL NextFrame();
|
||||
// Frame notification
|
||||
void FASTCALL GetBuf(DWORD *buffer, int samples, DWORD rate);
|
||||
// Get CD-DA buffer
|
||||
BOOL FASTCALL NextFrame(); // Frame notification
|
||||
void FASTCALL GetBuf(DWORD *buffer, int samples, DWORD rate); // Get CD-DA buffer
|
||||
|
||||
// LBA-MSF変換
|
||||
void FASTCALL LBAtoMSF(DWORD lba, BYTE *msf) const;
|
||||
// LBA→MSF conversion
|
||||
DWORD FASTCALL MSFtoLBA(const BYTE *msf) const;
|
||||
// MSF→LBA conversion
|
||||
void FASTCALL LBAtoMSF(DWORD lba, BYTE *msf) const; // LBA→MSF conversion
|
||||
DWORD FASTCALL MSFtoLBA(const BYTE *msf) const; // MSF→LBA conversion
|
||||
|
||||
private:
|
||||
// Open
|
||||
BOOL FASTCALL OpenCue(const Filepath& path);
|
||||
// Open(CUE)
|
||||
BOOL FASTCALL OpenIso(const Filepath& path);
|
||||
// Open(ISO)
|
||||
BOOL FASTCALL OpenPhysical(const Filepath& path);
|
||||
// Open(Physical)
|
||||
BOOL rawfile;
|
||||
// RAW flag
|
||||
BOOL FASTCALL OpenCue(const Filepath& path); // Open(CUE)
|
||||
BOOL FASTCALL OpenIso(const Filepath& path); // Open(ISO)
|
||||
BOOL FASTCALL OpenPhysical(const Filepath& path); // Open(Physical)
|
||||
BOOL rawfile; // RAW flag
|
||||
|
||||
// Track management
|
||||
void FASTCALL ClearTrack();
|
||||
// Clear the track
|
||||
int FASTCALL SearchTrack(DWORD lba) const;
|
||||
// Track search
|
||||
CDTrack* track[TrackMax];
|
||||
// Track opbject references
|
||||
int tracks;
|
||||
// Effective number of track objects
|
||||
int dataindex;
|
||||
// Current data track
|
||||
int audioindex;
|
||||
// Current audio track
|
||||
void FASTCALL ClearTrack(); // Clear the track
|
||||
int FASTCALL SearchTrack(DWORD lba) const; // Track search
|
||||
CDTrack* track[TrackMax]; // Track opbject references
|
||||
int tracks; // Effective number of track objects
|
||||
int dataindex; // Current data track
|
||||
int audioindex; // Current audio track
|
||||
|
||||
int frame;
|
||||
// Frame number
|
||||
int frame; // Frame number
|
||||
|
||||
#if 0
|
||||
CDDABuf da_buf;
|
||||
// CD-DA buffer
|
||||
int da_num;
|
||||
// Number of CD-DA tracks
|
||||
int da_cur;
|
||||
// CD-DA current track
|
||||
int da_next;
|
||||
// CD-DA next track
|
||||
BOOL da_req;
|
||||
// CD-DA data request
|
||||
CDDABuf da_buf; // CD-DA buffer
|
||||
int da_num; // Number of CD-DA tracks
|
||||
int da_cur; // CD-DA current track
|
||||
int da_next; // CD-DA next track
|
||||
BOOL da_req; // CD-DA data request
|
||||
#endif
|
||||
};
|
||||
|
@ -28,17 +28,11 @@ class SCSIHD : public Disk
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSIHD();
|
||||
// Constructor
|
||||
void FASTCALL Reset();
|
||||
// Reset
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
SCSIHD(); // Constructor
|
||||
void FASTCALL Reset(); // Reset
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
|
||||
// commands
|
||||
int FASTCALL Inquiry(
|
||||
const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length);
|
||||
// MODE SELECT(6) command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length); // MODE SELECT(6) command
|
||||
};
|
@ -26,14 +26,10 @@ class SCSIHD_APPLE : public SCSIHD
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSIHD_APPLE();
|
||||
// Constructor
|
||||
SCSIHD_APPLE(); // Constructor
|
||||
// commands
|
||||
int FASTCALL Inquiry(
|
||||
const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
|
||||
// Internal processing
|
||||
int FASTCALL AddVendor(int page, BOOL change, BYTE *buf);
|
||||
// Add vendor special page
|
||||
int FASTCALL AddVendor(int page, BOOL change, BYTE *buf); // Add vendor special page
|
||||
};
|
@ -26,36 +26,22 @@ class SCSIHD_NEC : public SCSIHD
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSIHD_NEC();
|
||||
// Constructor
|
||||
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
SCSIHD_NEC(); // Constructor
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
|
||||
// commands
|
||||
int FASTCALL Inquiry(
|
||||
const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
|
||||
// Internal processing
|
||||
int FASTCALL AddError(BOOL change, BYTE *buf);
|
||||
// Add error
|
||||
int FASTCALL AddFormat(BOOL change, BYTE *buf);
|
||||
// Add format
|
||||
int FASTCALL AddDrive(BOOL change, BYTE *buf);
|
||||
// Add drive
|
||||
int FASTCALL AddError(BOOL change, BYTE *buf); // Add error
|
||||
int FASTCALL AddFormat(BOOL change, BYTE *buf); // Add format
|
||||
int FASTCALL AddDrive(BOOL change, BYTE *buf); // Add drive
|
||||
|
||||
private:
|
||||
int cylinders;
|
||||
// Number of cylinders
|
||||
int heads;
|
||||
// Number of heads
|
||||
int sectors;
|
||||
// Number of sectors
|
||||
int sectorsize;
|
||||
// Sector size
|
||||
off64_t imgoffset;
|
||||
// Image offset
|
||||
off64_t imgsize;
|
||||
// Image size
|
||||
int cylinders; // Number of cylinders
|
||||
int heads; // Number of heads
|
||||
int sectors; // Number of sectors
|
||||
int sectorsize; // Sector size
|
||||
off64_t imgoffset; // Image offset
|
||||
off64_t imgsize; // Image size
|
||||
};
|
@ -28,22 +28,16 @@ class SCSIMO : public Disk
|
||||
{
|
||||
public:
|
||||
// Basic Functions
|
||||
SCSIMO();
|
||||
// Constructor
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE);
|
||||
// Open
|
||||
SCSIMO(); // Constructor
|
||||
BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open
|
||||
#ifndef RASCSI
|
||||
BOOL FASTCALL Load(Fileio *fio, int ver);
|
||||
// Load
|
||||
BOOL FASTCALL Load(Fileio *fio, int ver); // Load
|
||||
#endif // RASCSI
|
||||
|
||||
// commands
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor);
|
||||
// INQUIRY command
|
||||
BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length);
|
||||
// MODE SELECT(6) command
|
||||
int FASTCALL Inquiry(const DWORD *cdb, BYTE *buf, DWORD major, DWORD minor); // INQUIRY command
|
||||
BOOL FASTCALL ModeSelect(const DWORD *cdb, const BYTE *buf, int length); // MODE SELECT(6) command
|
||||
|
||||
// Internal processing
|
||||
int FASTCALL AddVendor(int page, BOOL change, BYTE *buf);
|
||||
// Add vendor special page
|
||||
int FASTCALL AddVendor(int page, BOOL change, BYTE *buf); // Add vendor special page
|
||||
};
|
Loading…
Reference in New Issue
Block a user