diff --git a/src/raspberrypi/devices/cfilesystem.h b/src/raspberrypi/devices/cfilesystem.h index 42cfa146..bf9665d2 100644 --- a/src/raspberrypi/devices/cfilesystem.h +++ b/src/raspberrypi/devices/cfilesystem.h @@ -31,7 +31,7 @@ #define FS_CANTACCESS 0xFFFFFFFB ///< ディレクトリやボリュームラベルはアクセス不可 #define FS_NOTOPENED 0xFFFFFFFA ///< 指定したハンドルはオープンされていない #define FS_INVALIDMEM 0xFFFFFFF9 ///< メモリ管理領域が破壊された -#define FS_OUTOFMEM 0xFFFFFFF8 ///< 実行に必要なメモリがない +#define FS_OUTOFMEM 0xFFFFFFF8 ///< 実行に必要なメモリがない #define FS_INVALIDPTR 0xFFFFFFF7 ///< 無効なメモリ管理ポインタを指定した #define FS_INVALIDENV 0xFFFFFFF6 ///< 不正な環境を指定した #define FS_ILLEGALFMT 0xFFFFFFF5 ///< 実行ファイルのフォーマットが異常 @@ -41,22 +41,22 @@ #define FS_INVALIDDRV 0xFFFFFFF1 ///< ドライブ指定に誤りがある #define FS_DELCURDIR 0xFFFFFFF0 ///< カレントディレクトリは削除できない #define FS_NOTIOCTRL 0xFFFFFFEF ///< IOCTRLできないデバイス -#define FS_LASTFILE 0xFFFFFFEE ///< これ以上ファイルが見つからない +#define FS_LASTFILE 0xFFFFFFEE ///< これ以上ファイルが見つからない #define FS_CANTWRITE 0xFFFFFFED ///< 指定のファイルは書き込みできない #define FS_DIRALREADY 0xFFFFFFEC ///< 指定のディレクトリは既に登録されている #define FS_CANTDELETE 0xFFFFFFEB ///< ファイルがあるので削除できない #define FS_CANTRENAME 0xFFFFFFEA ///< ファイルがあるのでリネームできない -#define FS_DISKFULL 0xFFFFFFE9 ///< ディスクが一杯でファイルが作れない -#define FS_DIRFULL 0xFFFFFFE8 ///< ディレクトリが一杯でファイルが作れない -#define FS_CANTSEEK 0xFFFFFFE7 ///< 指定の位置にはシークできない +#define FS_DISKFULL 0xFFFFFFE9 ///< ディスクが一杯でファイルが作れない +#define FS_DIRFULL 0xFFFFFFE8 ///< ディレクトリが一杯でファイルが作れない +#define FS_CANTSEEK 0xFFFFFFE7 ///< 指定の位置にはシークできない #define FS_SUPERVISOR 0xFFFFFFE6 ///< スーパーバイザ状態でスーパバイザ指定した #define FS_THREADNAME 0xFFFFFFE5 ///< 同じスレッド名が存在する -#define FS_BUFWRITE 0xFFFFFFE4 ///< プロセス間通信のバッファが書込み禁止 +#define FS_BUFWRITE 0xFFFFFFE4 ///< プロセス間通信のバッファが書込み禁止 #define FS_BACKGROUND 0xFFFFFFE3 ///< バックグラウンドプロセスを起動できない #define FS_OUTOFLOCK 0xFFFFFFE0 ///< ロック領域が足りない -#define FS_LOCKED 0xFFFFFFDF ///< ロックされていてアクセスできない +#define FS_LOCKED 0xFFFFFFDF ///< ロックされていてアクセスできない #define FS_DRIVEOPENED 0xFFFFFFDE ///< 指定のドライブはハンドラがオープンされている -#define FS_LINKOVER 0xFFFFFFDD ///< シンボリックリンクネストが16回を超えた +#define FS_LINKOVER 0xFFFFFFDD ///< シンボリックリンクネストが16回を超えた #define FS_FILEEXIST 0xFFFFFFB0 ///< ファイルが存在する #define FS_FATAL_MEDIAOFFLINE 0xFFFFFFA3 ///< メディアが入っていない @@ -64,7 +64,7 @@ #define FS_FATAL_INVALIDCOMMAND 0xFFFFFFA1 ///< 不正なコマンド番号 #define FS_FATAL_INVALIDUNIT 0xFFFFFFA0 ///< 不正なユニット番号 -#define HUMAN68K_PATH_MAX 96 ///< Human68kのパス最大長 +#define HUMAN68K_PATH_MAX 96 ///< Human68kのパス最大長 //=========================================================================== // @@ -80,62 +80,62 @@ namespace Human68k { AT_VOLUME = 0x08, ///< ボリュームラベル属性 AT_DIRECTORY = 0x10, ///< ディレクトリ属性 AT_ARCHIVE = 0x20, ///< アーカイブ属性 - AT_ALL = 0xFF, ///< 全ての属性ビットが1 + AT_ALL = 0xFF, ///< 全ての属性ビットが1 }; /// ファイルオープンモード enum open_t { - OP_READ = 0, ///< 読み込み - OP_WRITE = 1, ///< 書き込み - OP_FULL = 2, ///< 読み書き - OP_MASK = 0x0F, ///< 判定用マスク + OP_READ = 0, ///< 読み込み + OP_WRITE = 1, ///< 書き込み + OP_FULL = 2, ///< 読み書き + OP_MASK = 0x0F, ///< 判定用マスク OP_SHARE_NONE = 0x10, ///< 共有禁止 OP_SHARE_READ = 0x20, ///< 読み込み共有 OP_SHARE_WRITE = 0x30, ///< 書き込み共有 OP_SHARE_FULL = 0x40, ///< 読み書き共有 OP_SHARE_MASK = 0x70, ///< 共有判定用マスク - OP_SPECIAL = 0x100, ///< 辞書アクセス + OP_SPECIAL = 0x100, ///< 辞書アクセス }; /// シーク種類 enum seek_t { - SK_BEGIN = 0, ///< ファイル先頭から - SK_CURRENT = 1, ///< 現在位置から - SK_END = 2, ///< ファイル末尾から + SK_BEGIN = 0, ///< ファイル先頭から + SK_CURRENT = 1, ///< 現在位置から + SK_END = 2, ///< ファイル末尾から }; /// メディアバイト enum media_t { - MEDIA_2DD_10 = 0xE0, ///< 2DD/10セクタ - MEDIA_1D_9 = 0xE5, ///< 1D/9セクタ - MEDIA_2D_9 = 0xE6, ///< 2D/9セクタ - MEDIA_1D_8 = 0xE7, ///< 1D/8セクタ - MEDIA_2D_8 = 0xE8, ///< 2D/8セクタ - MEDIA_2HT = 0xEA, ///< 2HT - MEDIA_2HS = 0xEB, ///< 2HS - MEDIA_2HDE = 0xEC, ///< 2DDE - MEDIA_1DD_9 = 0xEE, ///< 1DD/9セクタ - MEDIA_1DD_8 = 0xEF, ///< 1DD/8セクタ - MEDIA_MANUAL = 0xF1, ///< リモートドライブ (手動イジェクト) - MEDIA_REMOVABLE = 0xF2, ///< リモートドライブ (リムーバブル) - MEDIA_REMOTE = 0xF3, ///< リモートドライブ - MEDIA_DAT = 0xF4, ///< SCSI-DAT - MEDIA_CDROM = 0xF5, ///< SCSI-CDROM - MEDIA_MO = 0xF6, ///< SCSI-MO - MEDIA_SCSI_HD = 0xF7, ///< SCSI-HD - MEDIA_SASI_HD = 0xF8, ///< SASI-HD - MEDIA_RAMDISK = 0xF9, ///< RAMディスク - MEDIA_2HQ = 0xFA, ///< 2HQ - MEDIA_2DD_8 = 0xFB, ///< 2DD/8セクタ - MEDIA_2DD_9 = 0xFC, ///< 2DD/9セクタ - MEDIA_2HC = 0xFD, ///< 2HC - MEDIA_2HD = 0xFE, ///< 2HD + MEDIA_2DD_10 = 0xE0, ///< 2DD/10セクタ + MEDIA_1D_9 = 0xE5, ///< 1D/9セクタ + MEDIA_2D_9 = 0xE6, ///< 2D/9セクタ + MEDIA_1D_8 = 0xE7, ///< 1D/8セクタ + MEDIA_2D_8 = 0xE8, ///< 2D/8セクタ + MEDIA_2HT = 0xEA, ///< 2HT + MEDIA_2HS = 0xEB, ///< 2HS + MEDIA_2HDE = 0xEC, ///< 2DDE + MEDIA_1DD_9 = 0xEE, ///< 1DD/9セクタ + MEDIA_1DD_8 = 0xEF, ///< 1DD/8セクタ + MEDIA_MANUAL = 0xF1, ///< リモートドライブ (手動イジェクト) + MEDIA_REMOVABLE = 0xF2, ///< リモートドライブ (リムーバブル) + MEDIA_REMOTE = 0xF3, ///< リモートドライブ + MEDIA_DAT = 0xF4, ///< SCSI-DAT + MEDIA_CDROM = 0xF5, ///< SCSI-CDROM + MEDIA_MO = 0xF6, ///< SCSI-MO + MEDIA_SCSI_HD = 0xF7, ///< SCSI-HD + MEDIA_SASI_HD = 0xF8, ///< SASI-HD + MEDIA_RAMDISK = 0xF9, ///< RAMディスク + MEDIA_2HQ = 0xFA, ///< 2HQ + MEDIA_2DD_8 = 0xFB, ///< 2DD/8セクタ + MEDIA_2DD_9 = 0xFC, ///< 2DD/9セクタ + MEDIA_2HC = 0xFD, ///< 2HC + MEDIA_2HD = 0xFE, ///< 2HD }; /// namests構造体 struct namests_t { BYTE wildcard; ///< ワイルドカード文字数 - BYTE drive; ///< ドライブ番号 + BYTE drive; ///< ドライブ番号 BYTE path[65]; ///< パス(サブディレクトリ+/) BYTE name[8]; ///< ファイル名 (PADDING 0x20) BYTE ext[3]; ///< 拡張子 (PADDING 0x20) @@ -150,37 +150,37 @@ namespace Human68k { /// files構造体 struct files_t { - BYTE fatr; ///< + 0 検索する属性 読込専用 - // BYTE drive; ///< + 1 ドライブ番号 読込専用 - DWORD sector; ///< + 2 ディレクトリのセクタ DOS _FILES先頭アドレスで代用 - // WORD cluster; ///< + 6 ディレクトリのクラスタ 詳細不明 (未使用) - WORD offset; ///< + 8 ディレクトリエントリ 書込専用 - // BYTE name[8]; ///< +10 作業用ファイル名 読込専用 (未使用) - // BYTE ext[3]; ///< +18 作業用拡張子 読込専用 (未使用) - BYTE attr; ///< +21 ファイル属性 書込専用 - WORD time; ///< +22 最終変更時刻 書込専用 - WORD date; ///< +24 最終変更月日 書込専用 - DWORD size; ///< +26 ファイルサイズ 書込専用 + BYTE fatr; ///< + 0 検索する属性 読込専用 + // BYTE drive; ///< + 1 ドライブ番号 読込専用 + DWORD sector; ///< + 2 ディレクトリのセクタ DOS _FILES先頭アドレスで代用 + // WORD cluster; ///< + 6 ディレクトリのクラスタ 詳細不明 (未使用) + WORD offset; ///< + 8 ディレクトリエントリ 書込専用 + // BYTE name[8]; ///< +10 作業用ファイル名 読込専用 (未使用) + // BYTE ext[3]; ///< +18 作業用拡張子 読込専用 (未使用) + BYTE attr; ///< +21 ファイル属性 書込専用 + WORD time; ///< +22 最終変更時刻 書込専用 + WORD date; ///< +24 最終変更月日 書込専用 + DWORD size; ///< +26 ファイルサイズ 書込専用 BYTE full[23]; ///< +30 フルファイル名 書込専用 }; /// FCB構造体 struct fcb_t { - // BYTE pad00[6]; ///< + 0~+ 5 (未使用) + // BYTE pad00[6]; ///< + 0~+ 5 (未使用) DWORD fileptr; ///< + 6~+ 9 ファイルポインタ - // BYTE pad01[4]; ///< +10~+13 (未使用) - WORD mode; ///< +14~+15 オープンモード - // BYTE pad02[16]; ///< +16~+31 (未使用) - // DWORD zero; ///< +32~+35 オープンのとき0が書き込まれている (未使用) - // BYTE name[8]; ///< +36~+43 ファイル名 (PADDING 0x20) (未使用) - // BYTE ext[3]; ///< +44~+46 拡張子 (PADDING 0x20) (未使用) - BYTE attr; ///< +47 ファイル属性 - // BYTE add[10]; ///< +48~+57 ファイル名追加 (PADDING 0x00) (未使用) - WORD time; ///< +58~+59 最終変更時刻 - WORD date; ///< +60~+61 最終変更月日 - // WORD cluster; ///< +62~+63 クラスタ番号 (未使用) - DWORD size; ///< +64~+67 ファイルサイズ - // BYTE pad03[28]; ///< +68~+95 FATキャッシュ (未使用) + // BYTE pad01[4]; ///< +10~+13 (未使用) + WORD mode; ///< +14~+15 オープンモード + // BYTE pad02[16]; ///< +16~+31 (未使用) + // DWORD zero; ///< +32~+35 オープンのとき0が書き込まれている (未使用) + // BYTE name[8]; ///< +36~+43 ファイル名 (PADDING 0x20) (未使用) + // BYTE ext[3]; ///< +44~+46 拡張子 (PADDING 0x20) (未使用) + BYTE attr; ///< +47 ファイル属性 + // BYTE add[10]; ///< +48~+57 ファイル名追加 (PADDING 0x00) (未使用) + WORD time; ///< +58~+59 最終変更時刻 + WORD date; ///< +60~+61 最終変更月日 + // WORD cluster; ///< +62~+63 クラスタ番号 (未使用) + DWORD size; ///< +64~+67 ファイルサイズ + // BYTE pad03[28]; ///< +68~+95 FATキャッシュ (未使用) }; /// capacity構造体 @@ -188,7 +188,7 @@ namespace Human68k { WORD freearea; ///< + 0 使用可能なクラスタ数 WORD clusters; ///< + 2 総クラスタ数 WORD sectors; ///< + 4 クラスタあたりのセクタ数 - WORD bytes; ///< + 6 セクタ当たりのバイト数 + WORD bytes; ///< + 6 セクタ当たりのバイト数 }; /// ctrldrive構造体 @@ -201,7 +201,7 @@ namespace Human68k { struct dpb_t { WORD sector_size; ///< + 0 1セクタ当りのバイト数 BYTE cluster_size; ///< + 2 1クラスタ当りのセクタ数-1 - BYTE shift; ///< + 3 クラスタ→セクタのシフト数 + BYTE shift; ///< + 3 クラスタ→セクタのシフト数 WORD fat_sector; ///< + 4 FATの先頭セクタ番号 BYTE fat_max; ///< + 6 FAT領域の個数 BYTE fat_size; ///< + 7 FATの占めるセクタ数(複写分を除く) @@ -209,28 +209,28 @@ namespace Human68k { WORD data_sector; ///< +10 データ領域の先頭セクタ番号 WORD cluster_max; ///< +12 総クラスタ数+1 WORD root_sector; ///< +14 ルートディレクトリの先頭セクタ番号 - // DWORD driverentry; ///< +16 デバイスドライバへのポインタ (未使用) - BYTE media; ///< +20 メディア識別子 - // BYTE flag; ///< +21 DPB使用フラグ (未使用) + // DWORD driverentry; ///< +16 デバイスドライバへのポインタ (未使用) + BYTE media; ///< +20 メディア識別子 + // BYTE flag; ///< +21 DPB使用フラグ (未使用) }; /// ディレクトリエントリ構造体 struct dirent_t { BYTE name[8]; ///< + 0 ファイル名 (PADDING 0x20) BYTE ext[3]; ///< + 8 拡張子 (PADDING 0x20) - BYTE attr; ///< +11 ファイル属性 + BYTE attr; ///< +11 ファイル属性 BYTE add[10]; ///< +12 ファイル名追加 (PADDING 0x00) - WORD time; ///< +22 最終変更時刻 - WORD date; ///< +24 最終変更月日 + WORD time; ///< +22 最終変更時刻 + WORD date; ///< +24 最終変更月日 WORD cluster; ///< +26 クラスタ番号 - DWORD size; ///< +28 ファイルサイズ + DWORD size; ///< +28 ファイルサイズ }; /// IOCTRLパラメータ共用体 union ioctrl_t { BYTE buffer[8]; ///< バイト単位でのアクセス DWORD param; ///< パラメータ(先頭4バイト) - WORD media; ///< メディアバイト(先頭2バイト) + WORD media; ///< メディアバイト(先頭2バイト) }; /// コマンドライン引数構造体 @@ -328,42 +328,23 @@ 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:短縮 - - // Bit24~30 ファイル重複防止マーク 0:自動 1~127:文字 + 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,66 +458,48 @@ 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); ///< Human68k側のファイル名要素をコピー - const BYTE* m_pszHumanLast; ///< 該当エントリのHuman68k内部名の終端位置 - const BYTE* m_pszHumanExt; ///< 該当エントリのHuman68k内部名の拡張子位置 - BOOL m_bCorrect; ///< 該当エントリのHuman68k内部名が正しければ真 - BYTE m_szHuman[24]; ///< 該当エントリのHuman68k内部名 + const BYTE* m_pszHumanLast; ///< 該当エントリのHuman68k内部名の終端位置 + const BYTE* m_pszHumanExt; ///< 該当エントリのHuman68k内部名の拡張子位置 + BOOL m_bCorrect; ///< 該当エントリのHuman68k内部名が正しければ真 + BYTE m_szHuman[24]; ///< 該当エントリのHuman68k内部名 Human68k::dirent_t m_dirHuman; ///< 該当エントリのHuman68k全情報 TCHAR m_szHost[FILEPATH_MAX]; ///< 該当エントリのホスト側の名称 (可変長) }; @@ -576,80 +531,63 @@ private: class CHostPath: public CRing { /// メモリ管理用 struct ring_t { - CRing r; ///< 円環 - CHostFilename f; ///< 実体 + CRing r; ///< 円環 + CHostFilename f; ///< 実体 }; public: /// 検索用バッファ struct find_t { - DWORD count; ///< 検索実行回数 + 1 (0のときは以下の値は無効) - DWORD id; ///< 次回検索を続行するパスのエントリ識別ID - const ring_t* pos; ///< 次回検索を続行する位置 (識別ID一致時) - Human68k::dirent_t entry; ///< 次回検索を続行するエントリ内容 + DWORD count; ///< 検索実行回数 + 1 (0のときは以下の値は無効) + DWORD id; ///< 次回検索を続行するパスのエントリ識別ID + 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); ///< 文字列比較 (ワイルドカード対応) - CRing m_cRing; ///< CHostFilename連結用 -#ifndef BAREMETAL - time_t m_tBackup; ///< 時刻復元用 -#else - WORD m_tBackupD; ///< 時刻復元用 - WORD m_tBackupT; ///< 時刻復元用 -#endif // BAREMETAL - BOOL m_bRefresh; ///< 更新フラグ - DWORD m_nId; ///< 識別ID (値が変化した場合は更新を意味する) - BYTE m_szHuman[HUMAN68K_PATH_MAX]; ///< 該当エントリのHuman68k内部名 - TCHAR m_szHost[FILEPATH_MAX]; ///< 該当エントリのホスト側の名称 + CRing m_cRing; ///< CHostFilename連結用 + #ifndef BAREMETAL + time_t m_tBackup; ///< 時刻復元用 + #else + WORD m_tBackupD; ///< 時刻復元用 + WORD m_tBackupT; ///< 時刻復元用 + #endif // BAREMETAL + BOOL m_bRefresh; ///< 更新フラグ + DWORD m_nId; ///< 識別ID (値が変化した場合は更新を意味する) + BYTE m_szHuman[HUMAN68K_PATH_MAX]; ///< 該当エントリのHuman68k内部名 + TCHAR m_szHost[FILEPATH_MAX]; ///< 該当エントリのホスト側の名称 - static DWORD g_nId; ///< 識別ID生成用カウンタ + static DWORD g_nId; ///< 識別ID生成用カウンタ }; //=========================================================================== @@ -676,70 +614,48 @@ 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なら未使用 - DWORD m_nHumanWildcard; ///< Human68kのワイルドカード情報 - DWORD m_nHumanAttribute; ///< Human68kの検索属性 - CHostPath::find_t m_findNext; ///< 次回検索位置情報 - Human68k::dirent_t m_dirHuman; ///< 検索結果 Human68kファイル情報 - BYTE m_szHumanFilename[24]; ///< Human68kのファイル名 - BYTE m_szHumanResult[24]; ///< 検索結果 Human68kファイル名 + DWORD m_nHumanWildcard; ///< Human68kのワイルドカード情報 + DWORD m_nHumanAttribute; ///< Human68kの検索属性 + CHostPath::find_t m_findNext; ///< 次回検索位置情報 + Human68k::dirent_t m_dirHuman; ///< 検索結果 Human68kファイル情報 + BYTE m_szHumanFilename[24]; ///< Human68kのファイル名 + BYTE m_szHumanResult[24]; ///< 検索結果 Human68kファイル名 BYTE m_szHumanPath[HUMAN68K_PATH_MAX]; - ///< Human68kのパス名 - TCHAR m_szHostResult[FILEPATH_MAX]; ///< 検索結果 ホスト側のフルパス名 + ///< Human68kのパス名 + TCHAR m_szHostResult[FILEPATH_MAX]; ///< 検索結果 ホスト側のフルパス名 }; //=========================================================================== @@ -751,24 +667,18 @@ 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 { - CRing r; ///< 円環 + CRing r; ///< 円環 CHostFiles f; ///< 実体 }; @@ -783,63 +693,43 @@ 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なら未使用) - BOOL m_bUpdate; ///< 更新フラグ -#ifndef BAREMETAL - FILE* m_pFile; ///< ホスト側のファイルオブジェクト - const char* m_pszMode; ///< ホスト側のファイルオープンモード -#else - FIL m_File; ///< ホスト側のファイルオブジェクト - BYTE m_Mode; ///< ホスト側のファイルオープンモード -#endif // BAREMETAL - bool m_bFlag; ///< ホスト側のファイルオープンフラグ + DWORD m_nKey; ///< Human68kのFCBバッファアドレス (0なら未使用) + BOOL m_bUpdate; ///< 更新フラグ + #ifndef BAREMETAL + FILE* m_pFile; ///< ホスト側のファイルオブジェクト + const char* m_pszMode; ///< ホスト側のファイルオープンモード + #else + FIL m_File; ///< ホスト側のファイルオブジェクト + BYTE m_Mode; ///< ホスト側のファイルオープンモード + #endif // BAREMETAL + bool m_bFlag; ///< ホスト側のファイルオープンフラグ BYTE m_szHumanPath[HUMAN68K_PATH_MAX]; - ///< Human68kのパス名 - TCHAR m_szFilename[FILEPATH_MAX]; ///< ホスト側のファイル名 + ///< Human68kのパス名 + TCHAR m_szFilename[FILEPATH_MAX]; ///< ホスト側のファイル名 }; //=========================================================================== @@ -849,31 +739,25 @@ private: //=========================================================================== class CHostFcbManager { public: -#ifdef _DEBUG + #ifdef _DEBUG // 基本ファンクション - ~CHostFcbManager(); - ///< デストラクタ final -#endif // _DEBUG - void Init(); - ///< 初期化 (ドライバ組込み時) - void Clean(); - ///< 解放 (起動・リセット時) + ~CHostFcbManager(); ///< デストラクタ final + #endif // _DEBUG + 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: /// メモリ管理用 struct ring_t { - CRing r; ///< 円環 - CHostFcb f; ///< 実体 + CRing r; ///< 円環 + CHostFcb f; ///< 実体 }; - CRing m_cRing; ///< CHostFcb連結用 + CRing m_cRing; ///< CHostFcb連結用 }; //=========================================================================== @@ -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: // パス名操作 @@ -951,17 +811,17 @@ private: /// メモリ管理用 struct ring_t { CRing r; ///< 円環 - CHostPath f; ///< 実体 + CHostPath f; ///< 実体 }; - BOOL m_bWriteProtect; ///< 書き込み禁止ならTRUE - BOOL m_bEnable; ///< メディアが利用可能ならTRUE - DWORD m_nRing; ///< パス名保持数 - CRing m_cRing; ///< CHostPath連結用 - Human68k::capacity_t m_capCache; ///< セクタ情報キャッシュ sectors == 0 なら未キャッシュ - BOOL m_bVolumeCache; ///< ボリュームラベル読み込み済みならTRUE - TCHAR m_szVolumeCache[24]; ///< ボリュームラベルキャッシュ - TCHAR m_szBase[FILEPATH_MAX]; ///< ベースパス + BOOL m_bWriteProtect; ///< 書き込み禁止ならTRUE + BOOL m_bEnable; ///< メディアが利用可能ならTRUE + DWORD m_nRing; ///< パス名保持数 + CRing m_cRing; ///< CHostPath連結用 + Human68k::capacity_t m_capCache; ///< セクタ情報キャッシュ sectors == 0 なら未キャッシュ + BOOL m_bVolumeCache; ///< ボリュームラベル読み込み済みならTRUE + TCHAR m_szVolumeCache[24]; ///< ボリュームラベルキャッシュ + TCHAR m_szBase[FILEPATH_MAX]; ///< ベースパス }; //=========================================================================== @@ -972,65 +832,43 @@ 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; ///< キャッシュからクラスタサイズを取得 /// 定数 enum { - DriveMax = 10 ///< ドライブ最大候補数 + DriveMax = 10 ///< ドライブ最大候補数 }; private: - CHostDrv* m_pDrv[DriveMax]; ///< ホスト側ドライブオブジェクト - DWORD m_nTimeout; ///< 最後にタイムアウトチェックを行なった時刻 + CHostDrv* m_pDrv[DriveMax]; ///< ホスト側ドライブオブジェクト + DWORD m_nTimeout; ///< 最後にタイムアウトチェックを行なった時刻 }; //=========================================================================== @@ -1069,116 +907,87 @@ 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 { - DriveMax = CHostEntry::DriveMax ///< ドライブ最大候補数 + DriveMax = CHostEntry::DriveMax ///< ドライブ最大候補数 }; 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; ///< 現在のドライブオブジェクト数 (レジューム毎に変化) + DWORD m_nUnits; ///< 現在のドライブオブジェクト数 (レジューム毎に変化) - DWORD m_nOption; ///< 現在の動作フラグ - DWORD m_nOptionDefault; ///< リセット時の動作フラグ + DWORD m_nOption; ///< 現在の動作フラグ + DWORD m_nOptionDefault; ///< リセット時の動作フラグ - DWORD m_nDrives; ///< ベースパス状態復元用の候補数 (0なら毎回スキャン) + DWORD m_nDrives; ///< ベースパス状態復元用の候補数 (0なら毎回スキャン) - DWORD m_nKernel; ///< カーネルチェック用カウンタ - DWORD m_nKernelSearch; ///< NULデバイスの先頭アドレス + DWORD m_nKernel; ///< カーネルチェック用カウンタ + DWORD m_nKernelSearch; ///< NULデバイスの先頭アドレス - DWORD m_nHostSectorCount; ///< 擬似セクタ番号 + DWORD m_nHostSectorCount; ///< 擬似セクタ番号 - CHostFilesManager m_cFiles; ///< ファイル検索領域 - CHostFcbManager m_cFcb; ///< FCB操作領域 - CHostEntry m_cEntry; ///< ドライブオブジェクトとディレクトリエントリ + CHostFilesManager m_cFiles; ///< ファイル検索領域 + CHostFcbManager m_cFcb; ///< FCB操作領域 + CHostEntry m_cEntry; ///< ドライブオブジェクトとディレクトリエントリ DWORD m_nHostSectorBuffer[XM6_HOST_PSEUDO_CLUSTER_MAX]; ///< 擬似セクタの指すファイル実体 - DWORD m_nFlag[DriveMax]; ///< ベースパス状態復元用の動作フラグ候補 - TCHAR m_szBase[DriveMax][FILEPATH_MAX]; - ///< ベースパス状態復元用の候補 - static DWORD g_nOption; ///< ファイル名変換フラグ + DWORD m_nFlag[DriveMax]; ///< ベースパス状態復元用の動作フラグ候補 + TCHAR m_szBase[DriveMax][FILEPATH_MAX]; ///< ベースパス状態復元用の候補 + static DWORD g_nOption; ///< ファイル名変換フラグ }; #endif // cfilesystem_h diff --git a/src/raspberrypi/devices/ctapdriver.h b/src/raspberrypi/devices/ctapdriver.h index 68dffe66..9122a2d6 100644 --- a/src/raspberrypi/devices/ctapdriver.h +++ b/src/raspberrypi/devices/ctapdriver.h @@ -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 diff --git a/src/raspberrypi/devices/disk.cpp b/src/raspberrypi/devices/disk.cpp index a05f27ac..f608e7e3 100644 --- a/src/raspberrypi/devices/disk.cpp +++ b/src/raspberrypi/devices/disk.cpp @@ -11,7 +11,7 @@ // // Imported sava's Anex86/T98Next image and MO format support patch. // Imported NetBSD support and some optimisation patch by Rin Okuyama. -// Comments translated to english by akuker. +// Comments translated to english by akuker. // // [ Disk ] // @@ -161,11 +161,11 @@ BOOL FASTCALL DiskTrack::Load(const Filepath& path) ASSERT((dt.sectors > 0) && (dt.sectors <= 0x100)); if (dt.buffer == NULL) { -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) posix_memalign((void **)&dt.buffer, 512, ((length + 511) / 512) * 512); -#else + #else dt.buffer = (BYTE *)malloc(length * sizeof(BYTE)); -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL dt.length = length; } @@ -176,11 +176,11 @@ BOOL FASTCALL DiskTrack::Load(const Filepath& path) // Reallocate if the buffer length is different if (dt.length != (DWORD)length) { free(dt.buffer); -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) posix_memalign((void **)&dt.buffer, 512, ((length + 511) / 512) * 512); -#else + #else dt.buffer = (BYTE *)malloc(length * sizeof(BYTE)); -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL dt.length = length; } @@ -205,11 +205,11 @@ BOOL FASTCALL DiskTrack::Load(const Filepath& path) memset(dt.changemap, 0x00, dt.sectors * sizeof(BOOL)); // Read from File -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) if (!fio.OpenDIO(path, Fileio::ReadOnly)) { -#else + #else if (!fio.Open(path, Fileio::ReadOnly)) { -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL return FALSE; } if (dt.raw) { @@ -1653,7 +1653,7 @@ int FASTCALL Disk::AddFormat(BOOL change, BYTE *buf) buf[1] = 0x16; // Show the number of bytes in the physical sector as changeable - // (though it cannot be changed in practice) + // (though it cannot be changed in practice) if (change) { buf[0xc] = 0xff; buf[0xd] = 0xff; @@ -1815,7 +1815,7 @@ int FASTCALL Disk::AddCDDA(BOOL change, BYTE *buf) } // Audio waits for operation completion and allows - // PLAY across multiple tracks + // PLAY across multiple tracks return 16; } diff --git a/src/raspberrypi/devices/disk.h b/src/raspberrypi/devices/disk.h index 725880fb..e2c7ef1d 100644 --- a/src/raspberrypi/devices/disk.h +++ b/src/raspberrypi/devices/disk.h @@ -8,8 +8,8 @@ // XM6i // Copyright (C) 2010-2015 isaki@NetBSD.org // -// Imported sava's Anex86/T98Next image and MO format support patch. -// Comments translated to english by akuker. +// Imported sava's Anex86/T98Next image and MO format support patch. +// Comments translated to english by akuker. // // [ Disk ] // @@ -62,11 +62,11 @@ #ifdef RASCSI -#define BENDER_SIGNATURE "RaSCSI" +#define BENDER_SIGNATURE "RaSCSI" // The following line was to mimic Apple's CDROM ID // #define BENDER_SIGNATURE "SONY " #else -#define BENDER_SIGNATURE "XM6" +#define BENDER_SIGNATURE "XM6" #endif //=========================================================================== @@ -79,49 +79,38 @@ class DiskTrack public: // Internal data definition typedef struct { - int track; // Track Number - int size; // Sector Size(8 or 9) - int sectors; // Number of sectors(<=0x100) - DWORD length; // Data buffer length - BYTE *buffer; // Data buffer - BOOL init; // Is it initilized? - BOOL changed; // Changed flag - DWORD maplen; // Changed map length - BOOL *changemap; // Changed map - BOOL raw; // RAW mode flag - off64_t imgoffset; // Offset to actual data + int track; // Track Number + int size; // Sector Size(8 or 9) + int sectors; // Number of sectors(<=0x100) + DWORD length; // Data buffer length + BYTE *buffer; // Data buffer + BOOL init; // Is it initilized? + BOOL changed; // Changed flag + DWORD maplen; // Changed map length + BOOL *changemap; // Changed map + BOOL raw; // RAW mode flag + off64_t imgoffset; // Offset to actual data } disktrk_t; 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 }; //=========================================================================== @@ -134,61 +123,42 @@ class DiskCache public: // Internal data definition typedef struct { - DiskTrack *disktrk; // Disk Track - DWORD serial; // Serial + DiskTrack *disktrk; // Disk Track + DWORD serial; // Serial } cache_t; // Number of caches enum { - CacheMax = 16 // Number of tracks to cache + CacheMax = 16 // Number of tracks to cache }; 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 }; //=========================================================================== @@ -201,168 +171,104 @@ class Disk public: // Internal data structure typedef struct { - DWORD id; // Media ID - BOOL ready; // Valid Disk - BOOL writep; // Write protected - BOOL readonly; // Read only - BOOL removable; // Removable - BOOL lock; // Locked - BOOL attn; // Attention - BOOL reset; // Reset - int size; // Sector Size - DWORD blocks; // Total number of sectors - DWORD lun; // LUN - DWORD code; // Status code - DiskCache *dcache; // Disk cache - off64_t imgoffset; // Offset to actual data + DWORD id; // Media ID + BOOL ready; // Valid Disk + BOOL writep; // Write protected + BOOL readonly; // Read only + BOOL removable; // Removable + BOOL lock; // Locked + BOOL attn; // Attention + BOOL reset; // Reset + int size; // Sector Size + DWORD blocks; // Total number of sectors + DWORD lun; // LUN + DWORD code; // Status code + DiskCache *dcache; // Disk cache + off64_t imgoffset; // Offset to actual data } disk_t; public: // Basic Functions - 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 -#endif // RASCSI + 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 + #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 }; diff --git a/src/raspberrypi/devices/sasihd.cpp b/src/raspberrypi/devices/sasihd.cpp index ba0a8cb4..e571747c 100644 --- a/src/raspberrypi/devices/sasihd.cpp +++ b/src/raspberrypi/devices/sasihd.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SASI hard disk ] +// [ SASI hard disk ] // //--------------------------------------------------------------------------- #include "sasihd.h" @@ -73,7 +73,7 @@ BOOL FASTCALL SASIHD::Open(const Filepath& path, BOOL /*attn*/) size = fio.GetFileSize(); fio.Close(); -#if defined(USE_MZ1F23_1024_SUPPORT) + #if defined(USE_MZ1F23_1024_SUPPORT) // MZ-2500/MZ-2800用 MZ-1F23(SASI 20M/セクタサイズ1024)専用 // 20M(22437888 BS=1024 C=21912) if (size == 0x1566000) { @@ -84,9 +84,9 @@ BOOL FASTCALL SASIHD::Open(const Filepath& path, BOOL /*attn*/) // Call the base class return Disk::Open(path); } -#endif // USE_MZ1F23_1024_SUPPORT + #endif // USE_MZ1F23_1024_SUPPORT -#if defined(REMOVE_FIXED_SASIHD_SIZE) + #if defined(REMOVE_FIXED_SASIHD_SIZE) // 256バイト単位であること if (size & 0xff) { return FALSE; @@ -101,7 +101,7 @@ BOOL FASTCALL SASIHD::Open(const Filepath& path, BOOL /*attn*/) if (size > 512 * 1024 * 1024) { return FALSE; } -#else + #else // 10MB, 20MB, 40MBのみ switch (size) { // 10MB(10441728 BS=256 C=40788) @@ -120,7 +120,7 @@ BOOL FASTCALL SASIHD::Open(const Filepath& path, BOOL /*attn*/) default: return FALSE; } -#endif // REMOVE_FIXED_SASIHD_SIZE + #endif // REMOVE_FIXED_SASIHD_SIZE // セクタサイズとブロック数 disk.size = 8; diff --git a/src/raspberrypi/devices/sasihd.h b/src/raspberrypi/devices/sasihd.h index eb305d28..a031c7cc 100644 --- a/src/raspberrypi/devices/sasihd.h +++ b/src/raspberrypi/devices/sasihd.h @@ -5,10 +5,10 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // // [ SASI hard disk ] // @@ -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 }; \ No newline at end of file diff --git a/src/raspberrypi/devices/scsi_host_bridge.cpp b/src/raspberrypi/devices/scsi_host_bridge.cpp index 520c5c46..2cdc72fd 100644 --- a/src/raspberrypi/devices/scsi_host_bridge.cpp +++ b/src/raspberrypi/devices/scsi_host_bridge.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Host Bridge for the Sharp X68000 ] +// [ SCSI Host Bridge for the Sharp X68000 ] // // Note: This requires a special driver on the host system and will only // work with the Sharp X68000 operating system. @@ -37,7 +37,7 @@ SCSIBR::SCSIBR() : Disk() // Host Bridge disk.id = MAKEID('S', 'C', 'B', 'R'); -#if defined(RASCSI) && defined(__linux__) && !defined(BAREMETAL) + #if defined(RASCSI) && defined(__linux__) && !defined(BAREMETAL) // TAP Driver Generation tap = new CTapDriver(); m_bTapEnable = tap->Init(); @@ -51,7 +51,7 @@ SCSIBR::SCSIBR() : Disk() // Packet reception flag OFF packet_enable = FALSE; -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL // Create host file system fs = new CFileSys(); @@ -65,13 +65,13 @@ SCSIBR::SCSIBR() : Disk() //--------------------------------------------------------------------------- SCSIBR::~SCSIBR() { -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) // TAP driver release if (tap) { tap->Cleanup(); delete tap; } -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL // Release host file system if (fs) { @@ -136,12 +136,12 @@ int FASTCALL SCSIBR::Inquiry( // Optional function valid flag buf[36] = '0'; -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) // TAP Enable if (m_bTapEnable) { buf[37] = '1'; } -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL // CFileSys Enable buf[38] = '1'; @@ -182,27 +182,27 @@ int FASTCALL SCSIBR::GetMessage10(const DWORD *cdb, BYTE *buf) { int type; int phase; -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) int func; int total_len; int i; -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL ASSERT(this); // Type type = cdb[2]; -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) // Function number func = cdb[3]; -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL // Phase phase = cdb[9]; switch (type) { -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) case 1: // Ethernet // Do not process if TAP is invalid if (!m_bTapEnable) { @@ -251,7 +251,7 @@ int FASTCALL SCSIBR::GetMessage10(const DWORD *cdb, BYTE *buf) return total_len; } break; -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL case 2: // Host Drive switch (phase) { @@ -305,7 +305,7 @@ BOOL FASTCALL SCSIBR::SendMessage10(const DWORD *cdb, BYTE *buf) len |= cdb[8]; switch (type) { -#if defined(RASCSI) && !defined(BAREMETAL) + #if defined(RASCSI) && !defined(BAREMETAL) case 1: // Ethernet // Do not process if TAP is invalid if (!m_bTapEnable) { @@ -322,7 +322,7 @@ BOOL FASTCALL SCSIBR::SendMessage10(const DWORD *cdb, BYTE *buf) return TRUE; } break; -#endif // RASCSI && !BAREMETAL + #endif // RASCSI && !BAREMETAL case 2: // Host drive switch (phase) { @@ -1462,30 +1462,30 @@ void FASTCALL SCSIBR::WriteFs(int func, BYTE *buf) func &= 0x1f; switch (func) { case 0x00: return FS_InitDevice(buf); // $40 - start device - case 0x01: return FS_CheckDir(buf); // $41 - directory check - case 0x02: return FS_MakeDir(buf); // $42 - create directory + case 0x01: return FS_CheckDir(buf); // $41 - directory check + case 0x02: return FS_MakeDir(buf); // $42 - create directory case 0x03: return FS_RemoveDir(buf); // $43 - remove directory - case 0x04: return FS_Rename(buf); // $44 - change file name - case 0x05: return FS_Delete(buf); // $45 - delete file + case 0x04: return FS_Rename(buf); // $44 - change file name + case 0x05: return FS_Delete(buf); // $45 - delete file case 0x06: return FS_Attribute(buf); // $46 - Get/set file attribute - case 0x07: return FS_Files(buf); // $47 - file search - case 0x08: return FS_NFiles(buf); // $48 - next file search - case 0x09: return FS_Create(buf); // $49 - create file - case 0x0A: return FS_Open(buf); // $4A - File open - case 0x0B: return FS_Close(buf); // $4B - File close - case 0x0C: return FS_Read(buf); // $4C - read file - case 0x0D: return FS_Write(buf); // $4D - write file - case 0x0E: return FS_Seek(buf); // $4E - File seek + case 0x07: return FS_Files(buf); // $47 - file search + case 0x08: return FS_NFiles(buf); // $48 - next file search + case 0x09: return FS_Create(buf); // $49 - create file + case 0x0A: return FS_Open(buf); // $4A - File open + case 0x0B: return FS_Close(buf); // $4B - File close + case 0x0C: return FS_Read(buf); // $4C - read file + case 0x0D: return FS_Write(buf); // $4D - write file + case 0x0E: return FS_Seek(buf); // $4E - File seek case 0x0F: return FS_TimeStamp(buf); // $4F - Get/set file modification time case 0x10: return FS_GetCapacity(buf); // $50 - get capacity case 0x11: return FS_CtrlDrive(buf); // $51 - Drive control/state check - case 0x12: return FS_GetDPB(buf); // $52 - Get DPB - case 0x13: return FS_DiskRead(buf); // $53 - read sector + case 0x12: return FS_GetDPB(buf); // $52 - Get DPB + case 0x13: return FS_DiskRead(buf); // $53 - read sector case 0x14: return FS_DiskWrite(buf); // $54 - write sector - case 0x15: return FS_Ioctrl(buf); // $55 - IOCTRL - case 0x16: return FS_Flush(buf); // $56 - flush + case 0x15: return FS_Ioctrl(buf); // $55 - IOCTRL + case 0x16: return FS_Flush(buf); // $56 - flush case 0x17: return FS_CheckMedia(buf); // $57 - check media exchange - case 0x18: return FS_Lock(buf); // $58 - exclusive control + case 0x18: return FS_Lock(buf); // $58 - exclusive control } } diff --git a/src/raspberrypi/devices/scsi_host_bridge.h b/src/raspberrypi/devices/scsi_host_bridge.h index e79e933f..a5ef6871 100644 --- a/src/raspberrypi/devices/scsi_host_bridge.h +++ b/src/raspberrypi/devices/scsi_host_bridge.h @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Host Bridge for the Sharp X68000 ] +// [ SCSI Host Bridge for the Sharp X68000 ] // // Note: This requires a special driver on the host system and will only // work with the Sharp X68000 operating system. @@ -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 + #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 - 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 + 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) - 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 + 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 + 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 }; diff --git a/src/raspberrypi/devices/scsicd.cpp b/src/raspberrypi/devices/scsicd.cpp index d898f04c..8e91c1c4 100644 --- a/src/raspberrypi/devices/scsicd.cpp +++ b/src/raspberrypi/devices/scsicd.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Hard Disk for Apple Macintosh ] +// [ SCSI Hard Disk for Apple Macintosh ] // //--------------------------------------------------------------------------- diff --git a/src/raspberrypi/devices/scsicd.h b/src/raspberrypi/devices/scsicd.h index ca4b9070..ab703aab 100644 --- a/src/raspberrypi/devices/scsicd.h +++ b/src/raspberrypi/devices/scsicd.h @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Hard Disk for Apple Macintosh ] +// [ SCSI Hard Disk for Apple Macintosh ] // //--------------------------------------------------------------------------- #pragma once @@ -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 -#if 0 - BOOL Init(); - // Initialization - BOOL FASTCALL Load(const Filepath& path); - // Load - BOOL FASTCALL Save(const Filepath& path); - // Save + CDDABuf(); // Constructor + virtual ~CDDABuf(); // Destructor + #if 0 + 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 }; @@ -145,86 +107,56 @@ class SCSICD : public Disk public: // Number of tracks enum { - TrackMax = 96 // Maximum number of tracks + TrackMax = 96 // Maximum number of tracks }; public: // Basic Functions - 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 -#endif // RASCSI + 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 + #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 -#endif + #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 + #endif }; diff --git a/src/raspberrypi/devices/scsihd.cpp b/src/raspberrypi/devices/scsihd.cpp index ed4c32b1..67e8bf68 100644 --- a/src/raspberrypi/devices/scsihd.cpp +++ b/src/raspberrypi/devices/scsihd.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI hard disk ] +// [ SCSI hard disk ] // //--------------------------------------------------------------------------- #include "scsihd.h" diff --git a/src/raspberrypi/devices/scsihd.h b/src/raspberrypi/devices/scsihd.h index 2f08bdfe..95f5a009 100644 --- a/src/raspberrypi/devices/scsihd.h +++ b/src/raspberrypi/devices/scsihd.h @@ -5,10 +5,10 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // // [ SCSI hard disk ] // @@ -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 }; \ No newline at end of file diff --git a/src/raspberrypi/devices/scsihd_apple.cpp b/src/raspberrypi/devices/scsihd_apple.cpp index c244d3ea..9636a987 100644 --- a/src/raspberrypi/devices/scsihd_apple.cpp +++ b/src/raspberrypi/devices/scsihd_apple.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Hard Disk for Apple Macintosh ] +// [ SCSI Hard Disk for Apple Macintosh ] // //--------------------------------------------------------------------------- diff --git a/src/raspberrypi/devices/scsihd_apple.h b/src/raspberrypi/devices/scsihd_apple.h index a78d16c1..12db7613 100644 --- a/src/raspberrypi/devices/scsihd_apple.h +++ b/src/raspberrypi/devices/scsihd_apple.h @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Hard Disk for Apple Macintosh ] +// [ SCSI Hard Disk for Apple Macintosh ] // //--------------------------------------------------------------------------- #pragma once @@ -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 }; \ No newline at end of file diff --git a/src/raspberrypi/devices/scsihd_nec.cpp b/src/raspberrypi/devices/scsihd_nec.cpp index d8a0a7e4..856e646e 100644 --- a/src/raspberrypi/devices/scsihd_nec.cpp +++ b/src/raspberrypi/devices/scsihd_nec.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI NEC "Genuine" Hard Disk] +// [ SCSI NEC "Genuine" Hard Disk] // //--------------------------------------------------------------------------- diff --git a/src/raspberrypi/devices/scsihd_nec.h b/src/raspberrypi/devices/scsihd_nec.h index 270bf6bc..01518957 100644 --- a/src/raspberrypi/devices/scsihd_nec.h +++ b/src/raspberrypi/devices/scsihd_nec.h @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI NEC "Genuine" Hard Disk] +// [ SCSI NEC "Genuine" Hard Disk] // //--------------------------------------------------------------------------- #pragma once @@ -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 }; \ No newline at end of file diff --git a/src/raspberrypi/devices/scsimo.cpp b/src/raspberrypi/devices/scsimo.cpp index 64d363cc..c6849d65 100644 --- a/src/raspberrypi/devices/scsimo.cpp +++ b/src/raspberrypi/devices/scsimo.cpp @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Magneto-Optical Disk] +// [ SCSI Magneto-Optical Disk] // //--------------------------------------------------------------------------- diff --git a/src/raspberrypi/devices/scsimo.h b/src/raspberrypi/devices/scsimo.h index f8aa2990..fdf8629a 100644 --- a/src/raspberrypi/devices/scsimo.h +++ b/src/raspberrypi/devices/scsimo.h @@ -5,12 +5,12 @@ // // Copyright (C) 2001-2006 PI.(ytanaka@ipc-tokai.or.jp) // Copyright (C) 2014-2020 GIMONS -// Copyright (C) akuker +// Copyright (C) akuker // -// Licensed under the BSD 3-Clause License. -// See LICENSE file in the project root folder. +// Licensed under the BSD 3-Clause License. +// See LICENSE file in the project root folder. // -// [ SCSI Magneto-Optical Disk] +// [ SCSI Magneto-Optical Disk] // //--------------------------------------------------------------------------- #pragma once @@ -28,22 +28,16 @@ class SCSIMO : public Disk { public: // Basic Functions - SCSIMO(); - // Constructor - BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); - // Open -#ifndef RASCSI - BOOL FASTCALL Load(Fileio *fio, int ver); - // Load -#endif // RASCSI + SCSIMO(); // Constructor + BOOL FASTCALL Open(const Filepath& path, BOOL attn = TRUE); // Open + #ifndef RASCSI + 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 }; \ No newline at end of file