From 15da29e4fa35e8f54b46f7d6c3a938bd6d0826e9 Mon Sep 17 00:00:00 2001 From: sorgelig Date: Wed, 16 Jun 2021 23:05:45 +0800 Subject: [PATCH] C64: enable G64 write. --- support/c64/c64.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/support/c64/c64.cpp b/support/c64/c64.cpp index 0e2313c..61e3c4c 100644 --- a/support/c64/c64.cpp +++ b/support/c64/c64.cpp @@ -433,7 +433,7 @@ void c64_readGCR(int idx, uint8_t track) FileSeek(gcr_info[idx].f, gcr_info[idx].trk_map[track], SEEK_SET); FileReadAdv(gcr_info[idx].f, gcr_buf, 8192); gcr_info[idx].trk_sz = (gcr_buf[1] << 8) | gcr_buf[0]; - dbgprintf("Track %d%s: size %d\n", track >> 1, (track & 1) ? ".5" : "", gcr_info[idx].trk_sz); + dbgprintf("Track %d%s: size %d\n", (track >> 1) + 1, (track & 1) ? ".5" : "", gcr_info[idx].trk_sz); gcr_info[idx].trk_sz += 2; } } @@ -544,7 +544,12 @@ void c64_writeGCR(int idx, uint8_t track) if (gcr_info[idx].type == 2) { - printf("Write to G64 is not supported.\n"); + if (gcr_info[idx].trk_map[track]) + { + FileSeek(gcr_info[idx].f, gcr_info[idx].trk_map[track]+2, SEEK_SET); + FileWriteAdv(gcr_info[idx].f, gcr_buf + 2, gcr_info[idx].trk_sz - 2); + dbgprintf("Write Track %d%s: size %d\n", (track >> 1) + 1, (track & 1) ? ".5" : "", gcr_info[idx].trk_sz - 2); + } return; }