From 9b5de9548153abdcc76a8e17333d9e1cc9371435 Mon Sep 17 00:00:00 2001 From: Thomas Bernard Date: Sat, 23 Nov 2019 18:51:27 +0100 Subject: [PATCH] Fix CPC_check_AMSDOS() for digits coded as 0x10 - 0x19 --- src/oldies.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/oldies.c b/src/oldies.c index 8382e7b1..83b764bf 100644 --- a/src/oldies.c +++ b/src/oldies.c @@ -744,6 +744,8 @@ int CPC_check_AMSDOS(FILE * file, word * loading_address, unsigned long * file_l return 0; for (i = 1; i <= 11; i++) // check filename and extension { + if (data[i] >= 0x10 && data[i] <= 0x19) // sometimes digits are stored as 0x10 to 0x19 + continue; if (data[i] < ' ' || data[i] >= 0x7F) return 0; } @@ -755,6 +757,11 @@ int CPC_check_AMSDOS(FILE * file, word * loading_address, unsigned long * file_l checksum, data[67] | (data[68] << 8)); return 0; } + for (i = 1; i <= 11; i++) // check filename and extension + { + if (data[i] >= 0x10 && data[i] <= 0x19) // sometimes digits are stored as 0x10 to 0x19 + data[i] += 0x20; + } GFX2_Log(GFX2_DEBUG, "AMSDOS : user=%02X %.8s.%.3s %d %u(%u) bytes, load at $%04X exec $%04X checksum $%04X\n", data[0], (char *)(data + 1), (char *)(data + 9), data[18], /* Type*/