mirror of
https://github.com/holub/mame
synced 2025-05-22 13:48:55 +03:00
flopimg: support MFM formats where sector numbering starts at 0 [R. Belmont]
This commit is contained in:
parent
c4c3a6d57e
commit
b8ce6d6c63
@ -25,7 +25,7 @@ const floppy_image_format_t::desc_e esqimg_format::esq_10_desc[] = {
|
|||||||
{ MFM, 0xfe, 1 },
|
{ MFM, 0xfe, 1 },
|
||||||
{ TRACK_ID },
|
{ TRACK_ID },
|
||||||
{ HEAD_ID },
|
{ HEAD_ID },
|
||||||
{ SECTOR_ID },
|
{ SECTOR_ID_ZEROBASED },
|
||||||
{ SIZE_ID },
|
{ SIZE_ID },
|
||||||
{ CRC_END, 1 },
|
{ CRC_END, 1 },
|
||||||
{ CRC, 1 },
|
{ CRC, 1 },
|
||||||
@ -77,7 +77,6 @@ void esqimg_format::find_size(io_generic *io, int &track_count, int &head_count,
|
|||||||
|
|
||||||
if (size == 512*track_count*head_count*sector_count)
|
if (size == 512*track_count*head_count*sector_count)
|
||||||
{
|
{
|
||||||
printf("Identified Ensoniq .img\n");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,8 +98,6 @@ bool esqimg_format::load(io_generic *io, UINT32 form_factor, floppy_image *image
|
|||||||
int track_count, head_count, sector_count;
|
int track_count, head_count, sector_count;
|
||||||
find_size(io, track_count, head_count, sector_count);
|
find_size(io, track_count, head_count, sector_count);
|
||||||
|
|
||||||
printf("esqimg_format::load (trks %d heads %d sectors %d)\n", track_count, head_count, sector_count);
|
|
||||||
|
|
||||||
UINT8 sectdata[11*512];
|
UINT8 sectdata[11*512];
|
||||||
desc_s sectors[11];
|
desc_s sectors[11];
|
||||||
for(int i=0; i<sector_count; i++) {
|
for(int i=0; i<sector_count; i++) {
|
||||||
@ -119,8 +116,6 @@ bool esqimg_format::load(io_generic *io, UINT32 form_factor, floppy_image *image
|
|||||||
|
|
||||||
image->set_variant(floppy_image::DSDD);
|
image->set_variant(floppy_image::DSDD);
|
||||||
|
|
||||||
printf("esqimg_format::OK\n");
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1366,6 +1366,10 @@ void floppy_image_format_t::generate_track(const desc_e *desc, int track, int he
|
|||||||
mfm_w(buffer, offset, 8, sect[sector_idx].sector_id);
|
mfm_w(buffer, offset, 8, sect[sector_idx].sector_id);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case SECTOR_ID_ZEROBASED:
|
||||||
|
mfm_w(buffer, offset, 8, sect[sector_idx].sector_id-1);
|
||||||
|
break;
|
||||||
|
|
||||||
case SECTOR_ID_GCR6:
|
case SECTOR_ID_GCR6:
|
||||||
raw_w(buffer, offset, 8, gcr6fw_tb[sect[sector_idx].sector_id]);
|
raw_w(buffer, offset, 8, gcr6fw_tb[sect[sector_idx].sector_id]);
|
||||||
break;
|
break;
|
||||||
|
@ -311,6 +311,7 @@ protected:
|
|||||||
HEAD_ID, //!< Head id byte, mfm-encoded
|
HEAD_ID, //!< Head id byte, mfm-encoded
|
||||||
TRACK_HEAD_ID_GCR6, //!< Track id 7th bit + head, gc6-encoded
|
TRACK_HEAD_ID_GCR6, //!< Track id 7th bit + head, gc6-encoded
|
||||||
SECTOR_ID, //!< Sector id byte, mfm-encoded
|
SECTOR_ID, //!< Sector id byte, mfm-encoded
|
||||||
|
SECTOR_ID_ZEROBASED, //!< Sector id byte, mfm-encoded, first sector is 0, not 1
|
||||||
SECTOR_ID_GCR6, //!< Sector id byte, gcr6-encoded
|
SECTOR_ID_GCR6, //!< Sector id byte, gcr6-encoded
|
||||||
SIZE_ID, //!< Sector size code on one byte [log2(size/128)], mfm-encoded
|
SIZE_ID, //!< Sector size code on one byte [log2(size/128)], mfm-encoded
|
||||||
SECTOR_INFO_GCR6, //!< Sector info byte, gcr6-encoded
|
SECTOR_INFO_GCR6, //!< Sector info byte, gcr6-encoded
|
||||||
|
Loading…
Reference in New Issue
Block a user