tomas-nestorovic / RIDE

Windows tool for low-level access to any floppy disks, and comfortable high-level access to some legacy filesystems (ZX Spectrum, MS-DOS, etc.).
https://nestorovic.hyperlink.cz/ride/html/index.html
56 stars 0 forks source link

Spectrum: Redesigning the inheritance chain #42

Closed tomas-nestorovic closed 3 years ago

tomas-nestorovic commented 4 years ago

Currently, the Spectrum tape class (in CSpectrumDos::CTape) is derived from CDos, thus not easily leveraging assets that CSpectrumDos offers to disk systems - actually, the disk system must manually forward all requests that a tape may want, which is inefficient and error-prone. Apart of that, a Spectrum tape's CSpectrumDos::CTape::GetFileExportNameAndExt method doesn't well encode unprintable characters and doesn't preserve Spectrum keywords - such functionality is provided by CSpectrumDos class, not by CDos.

It's thus suggested that functionalities common for all Spectrum-based media be extracted to an intermediate class called CSpectrumBase, from which both CSpectrumDos and CSpectrumDos::CTape are derived. The same idea is valid for CSpectrumDos::CSpectrumFileManagerView - an intermediate CSpectrumBase::CSpectrumBaseFileManagerView should be introduced, stripped off of disk-specific functionalities.

tomas-nestorovic commented 3 years ago

Without nine months of no fix, this issue can be safely closed.