summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2012-05-30 02:21:29 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2012-05-30 02:21:29 +0000
commitb8ce6d6c635ff93a406c6fe10f04e026bdf259b5 (patch)
treef6984fa53c020c3bea36e1808ef94a293f6620bd /src/lib
parentc4c3a6d57e0e73af5c6fecc228cc64cdfe041b74 (diff)
flopimg: support MFM formats where sector numbering starts at 0 [R. Belmont]
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/formats/esq16_dsk.c7
-rw-r--r--src/lib/formats/flopimg.c6
-rw-r--r--src/lib/formats/flopimg.h1
3 files changed, 7 insertions, 7 deletions
diff --git a/src/lib/formats/esq16_dsk.c b/src/lib/formats/esq16_dsk.c
index 36da569795a..516c0d25b08 100644
--- a/src/lib/formats/esq16_dsk.c
+++ b/src/lib/formats/esq16_dsk.c
@@ -25,7 +25,7 @@ const floppy_image_format_t::desc_e esqimg_format::esq_10_desc[] = {
{ MFM, 0xfe, 1 },
{ TRACK_ID },
{ HEAD_ID },
- { SECTOR_ID },
+ { SECTOR_ID_ZEROBASED },
{ SIZE_ID },
{ CRC_END, 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)
{
- printf("Identified Ensoniq .img\n");
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;
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];
desc_s sectors[11];
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);
- printf("esqimg_format::OK\n");
-
return true;
}
diff --git a/src/lib/formats/flopimg.c b/src/lib/formats/flopimg.c
index c416d2c4ca0..988b0a97137 100644
--- a/src/lib/formats/flopimg.c
+++ b/src/lib/formats/flopimg.c
@@ -1362,10 +1362,14 @@ void floppy_image_format_t::generate_track(const desc_e *desc, int track, int he
raw_w(buffer, offset, 8, gcr6fw_tb[(track & 0x40 ? 1 : 0) | (head ? 0x20 : 0)]);
break;
- case SECTOR_ID:
+ case SECTOR_ID:
mfm_w(buffer, offset, 8, sect[sector_idx].sector_id);
break;
+ case SECTOR_ID_ZEROBASED:
+ mfm_w(buffer, offset, 8, sect[sector_idx].sector_id-1);
+ break;
+
case SECTOR_ID_GCR6:
raw_w(buffer, offset, 8, gcr6fw_tb[sect[sector_idx].sector_id]);
break;
diff --git a/src/lib/formats/flopimg.h b/src/lib/formats/flopimg.h
index 3539d52cd89..302475f2c6e 100644
--- a/src/lib/formats/flopimg.h
+++ b/src/lib/formats/flopimg.h
@@ -311,6 +311,7 @@ protected:
HEAD_ID, //!< Head id byte, mfm-encoded
TRACK_HEAD_ID_GCR6, //!< Track id 7th bit + head, gc6-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
SIZE_ID, //!< Sector size code on one byte [log2(size/128)], mfm-encoded
SECTOR_INFO_GCR6, //!< Sector info byte, gcr6-encoded