mirror of
https://github.com/akuker/RASCSI.git
synced 2024-11-29 16:49:55 +00:00
FIxing code and comment alignment
going through the various files and putting comments on one line for easier reading.
This commit is contained in:
parent
338e42060a
commit
6d79023a5c
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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;
|
||||
|
@ -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
|
||||
};
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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 ]
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
@ -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
|
||||
};
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
};
|
@ -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 ]
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
@ -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
|
||||
};
|
@ -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]
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
@ -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
|
||||
};
|
@ -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]
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
|
@ -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
|
||||
};
|
Loading…
Reference in New Issue
Block a user