Fix CPC_check_AMSDOS() for digits coded as 0x10 - 0x19

This commit is contained in:
Thomas Bernard 2019-11-23 18:51:27 +01:00
parent 69ad90c026
commit 9b5de95481
No known key found for this signature in database
GPG Key ID: 0FF11B67A5C0863C

View File

@ -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*/