diff options
author | Miodrag Milanovic <mmicko@gmail.com> | 2012-08-17 08:15:05 +0000 |
---|---|---|
committer | Miodrag Milanovic <mmicko@gmail.com> | 2012-08-17 08:15:05 +0000 |
commit | a703b654abaa3fd00db18dee1647854ac9c6116f (patch) | |
tree | dff9c0793aab8a18614a9095a43eddc44d096bcd /src/lib | |
parent | f6a1a68c50816ea5ad8b70c4018f1b707875080c (diff) |
Sync with MESS (nw)
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/formats/d64_dsk.c | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/lib/formats/d64_dsk.c b/src/lib/formats/d64_dsk.c index fd8ac5122bb..b631f9490e6 100644 --- a/src/lib/formats/d64_dsk.c +++ b/src/lib/formats/d64_dsk.c @@ -533,11 +533,15 @@ static floperr_t d64_read_track(floppy_image_legacy *floppy, int head, int track UINT8 speed_byte = (speed << 6) | (speed << 4) | (speed << 2) | speed; memset(((UINT8*)buffer) + gcr_track_size, speed_byte, G64_SPEED_BLOCK_SIZE); + + LOG_FORMATS("D64 track %.1f length %u\n", get_dos_track(track), gcr_track_size); } else /* half tracks */ { /* set track length to 0 */ memset(buffer, 0, buflen); + + LOG_FORMATS("D64 track %.1f length %u\n", get_dos_track(track), 0); } return FLOPPY_ERROR_SUCCESS; @@ -751,13 +755,15 @@ FLOPPY_CONSTRUCT( d64_dsk_construct ) { tag->track_offset[head][track] = track_offset; tag->error_offset[head][track] = errors_size; + tag->speed_zone[track] = DOS25_SPEED_ZONE[track]; track_offset += DOS25_SECTORS_PER_TRACK[track] * SECTOR_SIZE; /* also store an error entry for each sector */ errors_size += DOS25_SECTORS_PER_TRACK[track]; - LOG_FORMATS("D64 head %u track %u data offset: %04x\n", head, track + 1, tag->track_offset[head][track]); - if (has_errors) LOG_FORMATS("D64 head %u track %u error offset: %04x\n", head, track + 1, tag->error_offset[head][track]); + LOG_FORMATS("D64 head %u track %u offset %05x", head, track + 1, tag->track_offset[head][track]); + if (has_errors) LOG_FORMATS(" errors %05x", tag->error_offset[head][track]); + LOG_FORMATS(" speed %u\n", tag->speed_zone[track]); } } else @@ -772,6 +778,7 @@ FLOPPY_CONSTRUCT( d64_dsk_construct ) /* full track */ tag->track_offset[head][track] = track_offset; tag->error_offset[head][track] = errors_size; + tag->speed_zone[track] = DOS1_SPEED_ZONE[track / 2]; if (dos == DOS1) { @@ -786,30 +793,14 @@ FLOPPY_CONSTRUCT( d64_dsk_construct ) errors_size += DOS2_SECTORS_PER_TRACK[track / 2]; } - LOG_FORMATS("D64 head %u track %.1f data offset: %04x\n", head, get_dos_track(track), tag->track_offset[head][track]); - if (has_errors) LOG_FORMATS("D64 head %u track %.1f error offset: %04x\n", head, get_dos_track(track), tag->error_offset[head][track]); + LOG_FORMATS("D64 head %u track %.1f offset %05x", head, get_dos_track(track), tag->track_offset[head][track]); + if (has_errors) LOG_FORMATS(" errors %05x", tag->error_offset[head][track]); + LOG_FORMATS(" speed %u\n", tag->speed_zone[track]); } } } } - /* determine speed zones */ - for (track = 0; track < tag->tracks; track++) - { - if (dos == DOS25) - { - tag->speed_zone[track] = DOS25_SPEED_ZONE[track]; - - LOG_FORMATS("D64 track %u speed zone: %u\n", track + 1, tag->speed_zone[track]); - } - else - { - tag->speed_zone[track] = DOS1_SPEED_ZONE[track / 2]; - - LOG_FORMATS("D64 track %.1f speed zone: %u\n", get_dos_track(track), tag->speed_zone[track]); - } - } - /* read format ID from directory */ /* id1, id2 are the same for extended d64 (i.e. with error tables), for d67 and for d71 |