Change struct FloppyDrive, FloppyDisk into classes

This commit is contained in:
tomcw 2019-04-16 20:19:35 +01:00
parent c6a11d3824
commit 65a87c8e11
3 changed files with 31 additions and 33 deletions

View File

@ -41,25 +41,16 @@ const bool IMAGE_FORCE_WRITE_PROTECTED = true;
const bool IMAGE_DONT_CREATE = false; const bool IMAGE_DONT_CREATE = false;
const bool IMAGE_CREATE = true; const bool IMAGE_CREATE = true;
struct FloppyDisk class FloppyDisk
{ {
TCHAR m_imagename[ MAX_DISK_IMAGE_NAME + 1 ]; // <FILENAME> (ie. no extension) public:
TCHAR m_fullname [ MAX_DISK_FULL_NAME + 1 ]; // <FILENAME.EXT> or <FILENAME.zip> : This is persisted to the snapshot file
std::string m_strFilenameInZip; // "" or <FILENAME.EXT>
ImageInfo* m_imagehandle; // Init'd by InsertDisk() -> ImageOpen()
bool m_bWriteProtected;
//
int m_byte;
int m_nibbles; // Init'd by ReadTrack() -> ImageReadTrack()
LPBYTE m_trackimage;
bool m_trackimagedata;
bool m_trackimagedirty;
FloppyDisk() FloppyDisk()
{ {
clear(); clear();
} }
~FloppyDisk(){}
void clear() void clear()
{ {
ZeroMemory(m_imagename, sizeof(m_imagename)); ZeroMemory(m_imagename, sizeof(m_imagename));
@ -74,21 +65,30 @@ struct FloppyDisk
m_trackimagedata = false; m_trackimagedata = false;
m_trackimagedirty = false; m_trackimagedirty = false;
} }
public:
TCHAR m_imagename[ MAX_DISK_IMAGE_NAME + 1 ]; // <FILENAME> (ie. no extension)
TCHAR m_fullname [ MAX_DISK_FULL_NAME + 1 ]; // <FILENAME.EXT> or <FILENAME.zip> : This is persisted to the snapshot file
std::string m_strFilenameInZip; // "" or <FILENAME.EXT>
ImageInfo* m_imagehandle; // Init'd by InsertDisk() -> ImageOpen()
bool m_bWriteProtected;
int m_byte;
int m_nibbles; // Init'd by ReadTrack() -> ImageReadTrack()
LPBYTE m_trackimage;
bool m_trackimagedata;
bool m_trackimagedirty;
}; };
struct FloppyDrive class FloppyDrive
{ {
int m_phase; public:
int m_track;
DWORD m_spinning;
DWORD m_writelight;
FloppyDisk m_disk;
FloppyDrive() FloppyDrive()
{ {
clear(); clear();
} }
~FloppyDrive(){}
void clear() void clear()
{ {
m_phase = 0; m_phase = 0;
@ -97,13 +97,20 @@ struct FloppyDrive
m_writelight = 0; m_writelight = 0;
m_disk.clear(); m_disk.clear();
} }
public:
int m_phase;
int m_track;
DWORD m_spinning;
DWORD m_writelight;
FloppyDisk m_disk;
}; };
class Disk2InterfaceCard class Disk2InterfaceCard
{ {
public: public:
Disk2InterfaceCard(void); Disk2InterfaceCard(void);
virtual ~Disk2InterfaceCard(void){}; virtual ~Disk2InterfaceCard(void){}
void Initialize(LPBYTE pCxRomPeripheral, UINT uSlot); void Initialize(LPBYTE pCxRomPeripheral, UINT uSlot);
void Destroy(void); // no, doesn't "destroy" the disk image. DiskIIManagerShutdown() void Destroy(void); // no, doesn't "destroy" the disk image. DiskIIManagerShutdown()

View File

@ -35,15 +35,15 @@ public:
void Reset(void); void Reset(void);
void DriveNotWritingTrack(void); void DriveNotWritingTrack(void);
void DriveSwitchedToReadMode(struct FloppyDisk* const pFloppy); void DriveSwitchedToReadMode(class FloppyDisk* const pFloppy);
void DriveSwitchedToWriteMode(UINT uTrackIndex); void DriveSwitchedToWriteMode(UINT uTrackIndex);
void DecodeLatchNibbleRead(BYTE floppylatch); void DecodeLatchNibbleRead(BYTE floppylatch);
void DecodeLatchNibbleWrite(BYTE floppylatch, UINT uSpinNibbleCount, const struct FloppyDisk* const pFloppy, bool bIsSyncFF); void DecodeLatchNibbleWrite(BYTE floppylatch, UINT uSpinNibbleCount, const class FloppyDisk* const pFloppy, bool bIsSyncFF);
void SaveSnapshot(class YamlSaveHelper& yamlSaveHelper); void SaveSnapshot(class YamlSaveHelper& yamlSaveHelper);
void LoadSnapshot(class YamlLoadHelper& yamlLoadHelper); void LoadSnapshot(class YamlLoadHelper& yamlLoadHelper);
private: private:
void UpdateOnWriteLatch(UINT uSpinNibbleCount, const struct FloppyDisk* const pFloppy); void UpdateOnWriteLatch(UINT uSpinNibbleCount, const class FloppyDisk* const pFloppy);
void DecodeLatchNibble(BYTE floppylatch, bool bIsWrite, bool bIsSyncFF); void DecodeLatchNibble(BYTE floppylatch, bool bIsWrite, bool bIsSyncFF);
BYTE m_VolTrkSecChk[4]; BYTE m_VolTrkSecChk[4];

View File

@ -1692,15 +1692,6 @@ void MemInitializeIO(void)
ConfigureSAM(pCxRomPeripheral, 5); // $C500 : Z80 card ConfigureSAM(pCxRomPeripheral, 5); // $C500 : Z80 card
} }
#if 0 // debug test
if (g_Slot5 == CT_Empty)
{
Disk2InterfaceCard* pDiskIISlot5 = new Disk2InterfaceCard;
pDiskIISlot5->Initialize(pCxRomPeripheral, 5);
pDiskIISlot5->InsertDisk(0, "C:\\Work\\Personal\\Images\\lady tut PRODOS (san inc pack).dsk", false, false);
}
#endif
sg_Disk2Card.Initialize(pCxRomPeripheral, 6); // $C600 : Disk][ card sg_Disk2Card.Initialize(pCxRomPeripheral, 6); // $C600 : Disk][ card
HD_Load_Rom(pCxRomPeripheral, 7); // $C700 : HDD f/w HD_Load_Rom(pCxRomPeripheral, 7); // $C700 : HDD f/w