src/mess/formats/d64_dsk.c
| r7250 | r7251 | |
| 17 | 17 | */ |
| 18 | 18 | |
| 19 | 19 | #include "emu.h" |
| 20 | #include "g64_dsk.h" |
| 20 | 21 | #include "formats/flopimg.h" |
| 21 | 22 | #include "formats/d64_dsk.h" |
| 22 | 23 | #include "devices/flopdrv.h" |
| r7250 | r7251 | |
| 369 | 370 | d64_track_data = (UINT8 *)alloca(d64_track_size); |
| 370 | 371 | |
| 371 | 372 | /* 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; |
| 373 | 374 | gcr_track_data = (UINT8 *)alloca(gcr_track_size); |
| 374 | 375 | |
| 375 | 376 | if (buflen < gcr_track_size) fatalerror("D64 track buffer too small: %u!\n", (UINT32)buflen); |
| r7250 | r7251 | |
| 466 | 467 | } |
| 467 | 468 | |
| 468 | 469 | /* 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); |
| 470 | 471 | } |
| 471 | 472 | else /* half tracks */ |
| 472 | 473 | { |
src/mess/formats/g64_dsk.c
| r7250 | r7251 | |
| 16 | 16 | */ |
| 17 | 17 | |
| 18 | 18 | #include "emu.h" |
| 19 | #include "g64_dsk.h" |
| 19 | 20 | #include "formats/flopimg.h" |
| 20 | 21 | #include "devices/flopdrv.h" |
| 21 | 22 | |
| r7250 | r7251 | |
| 121 | 122 | |
| 122 | 123 | if (track_offset) |
| 123 | 124 | { |
| 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); |
| 125 | 126 | |
| 126 | 127 | /* 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); |
| 128 | 129 | } |
| 129 | 130 | else |
| 130 | 131 | { |