abc80x: Detect interlaced disk images. [Curt Coder]

This commit is contained in:
Curt Coder 2023-03-26 13:01:50 +03:00
parent 7bd1a8f785
commit 8216df5c66
2 changed files with 16 additions and 0 deletions

View File

@ -9,6 +9,7 @@
*********************************************************************/
#include "formats/abc800i_dsk.h"
#include "ioprocs.h"
abc800i_format::abc800i_format() : wd177x_format(formats)
{
@ -83,6 +84,19 @@ const abc800i_format::format abc800i_format::formats[] = {
const abc800i_format FLOPPY_ABC800I_FORMAT;
int abc800i_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const
{
uint8_t h[1];
size_t actual;
io.read_at(0x810, h, 1, actual);
// start of directory
if (h[0] == 0x03)
return FIFID_SIGN;
return 0;
}
void abc800i_format::build_sector_description(const format &f, uint8_t *sectdata, desc_s *sectors, int track, int head) const
{
if(f.sector_base_id == -1) {

View File

@ -23,6 +23,8 @@ public:
virtual const char *description() const override;
virtual const char *extensions() const override;
virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override;
protected:
virtual void build_sector_description(const format &d, uint8_t *sectdata, desc_s *sectors, int track, int head) const override;