From 65a87c8e11d63b134e0958a4a5384bc1a646db9f Mon Sep 17 00:00:00 2001 From: tomcw Date: Tue, 16 Apr 2019 20:19:35 +0100 Subject: [PATCH] Change struct FloppyDrive, FloppyDisk into classes --- source/Disk.h | 49 +++++++++++++++++++++++----------------- source/DiskFormatTrack.h | 6 ++--- source/Memory.cpp | 9 -------- 3 files changed, 31 insertions(+), 33 deletions(-) diff --git a/source/Disk.h b/source/Disk.h index 908d0b48..f36c2802 100644 --- a/source/Disk.h +++ b/source/Disk.h @@ -41,25 +41,16 @@ const bool IMAGE_FORCE_WRITE_PROTECTED = true; const bool IMAGE_DONT_CREATE = false; const bool IMAGE_CREATE = true; -struct FloppyDisk +class FloppyDisk { - TCHAR m_imagename[ MAX_DISK_IMAGE_NAME + 1 ]; // (ie. no extension) - TCHAR m_fullname [ MAX_DISK_FULL_NAME + 1 ]; // or : This is persisted to the snapshot file - std::string m_strFilenameInZip; // "" or - 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; - +public: FloppyDisk() { clear(); } + ~FloppyDisk(){} + void clear() { ZeroMemory(m_imagename, sizeof(m_imagename)); @@ -74,21 +65,30 @@ struct FloppyDisk m_trackimagedata = false; m_trackimagedirty = false; } + +public: + TCHAR m_imagename[ MAX_DISK_IMAGE_NAME + 1 ]; // (ie. no extension) + TCHAR m_fullname [ MAX_DISK_FULL_NAME + 1 ]; // or : This is persisted to the snapshot file + std::string m_strFilenameInZip; // "" or + 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; - int m_track; - DWORD m_spinning; - DWORD m_writelight; - FloppyDisk m_disk; - +public: FloppyDrive() { clear(); } + ~FloppyDrive(){} + void clear() { m_phase = 0; @@ -97,13 +97,20 @@ struct FloppyDrive m_writelight = 0; m_disk.clear(); } + +public: + int m_phase; + int m_track; + DWORD m_spinning; + DWORD m_writelight; + FloppyDisk m_disk; }; class Disk2InterfaceCard { public: Disk2InterfaceCard(void); - virtual ~Disk2InterfaceCard(void){}; + virtual ~Disk2InterfaceCard(void){} void Initialize(LPBYTE pCxRomPeripheral, UINT uSlot); void Destroy(void); // no, doesn't "destroy" the disk image. DiskIIManagerShutdown() diff --git a/source/DiskFormatTrack.h b/source/DiskFormatTrack.h index 6ca2c351..b0a9100e 100644 --- a/source/DiskFormatTrack.h +++ b/source/DiskFormatTrack.h @@ -35,15 +35,15 @@ public: void Reset(void); void DriveNotWritingTrack(void); - void DriveSwitchedToReadMode(struct FloppyDisk* const pFloppy); + void DriveSwitchedToReadMode(class FloppyDisk* const pFloppy); void DriveSwitchedToWriteMode(UINT uTrackIndex); 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 LoadSnapshot(class YamlLoadHelper& yamlLoadHelper); 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); BYTE m_VolTrkSecChk[4]; diff --git a/source/Memory.cpp b/source/Memory.cpp index 1da18cd8..2329d886 100644 --- a/source/Memory.cpp +++ b/source/Memory.cpp @@ -1692,15 +1692,6 @@ void MemInitializeIO(void) 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 HD_Load_Rom(pCxRomPeripheral, 7); // $C700 : HDD f/w