r7251 Wednesday 3rd February, 2010 at 15:21:16 UTC by Curt Coder
[D64] Fixed GCR encoded track size.
[src/mess/formats]d64_dsk.c g64_dsk.c

src/mess/formats/d64_dsk.c
r7250r7251
1717*/
1818
1919#include "emu.h"
20#include "g64_dsk.h"
2021#include "formats/flopimg.h"
2122#include "formats/d64_dsk.h"
2223#include "devices/flopdrv.h"
r7250r7251
369370      d64_track_data = (UINT8 *)alloca(d64_track_size);
370371
371372      /* allocate temporary GCR track data buffer */
372      gcr_track_size = 2 + (sectors_per_track * SECTOR_SIZE_GCR);
373      gcr_track_size = sectors_per_track * SECTOR_SIZE_GCR;
373374      gcr_track_data = (UINT8 *)alloca(gcr_track_size);
374375     
375376      if (buflen < gcr_track_size) fatalerror("D64 track buffer too small: %u!\n", (UINT32)buflen);
r7250r7251
466467      }
467468
468469      /* copy GCR track data to buffer */
469      memcpy(buffer, gcr_track_data, gcr_track_size);
470      memcpy(buffer, gcr_track_data, gcr_track_size + G64_DATA_START);
470471   }
471472   else   /* half tracks */
472473   {
src/mess/formats/g64_dsk.c
r7250r7251
1616*/
1717
1818#include "emu.h"
19#include "g64_dsk.h"
1920#include "formats/flopimg.h"
2021#include "devices/flopdrv.h"
2122
r7250r7251
121122
122123   if (track_offset)
123124   {
124      if (buflen < (tag->track_size + 2)) fatalerror("G64 track buffer too small: %u!\n", (UINT32)buflen);
125      if (buflen < (tag->track_size + G64_DATA_START)) fatalerror("G64 track buffer too small: %u!\n", (UINT32)buflen);
125126
126127      /* read track */
127      floppy_image_read(floppy, buffer, track_offset, tag->track_size + 2);
128      floppy_image_read(floppy, buffer, track_offset, tag->track_size + G64_DATA_START);
128129   }
129130   else
130131   {

Previous 509077 RevisionsNext 50


© 1998-2010 The MESS Team