Print addr ranges for empty blocks as well

Mirrors what sections do, for clarity & consistency
This commit is contained in:
ISSOtm
2022-10-07 16:04:02 +02:00
parent b28eea24fc
commit 0e0876b17f

View File

@@ -404,6 +404,16 @@ static void writeSymBank(struct SortedSections const *bankSections,
} }
static void writeEmptySpace(uint16_t begin, uint16_t end)
{
if (begin < end) {
uint16_t len = end - begin;
fprintf(mapFile, "\tEMPTY: $%04x-$%04x ($%04" PRIx16 " byte%s)\n",
begin, end - 1, len, len == 1 ? "" : "s");
}
}
/* /*
* Write a bank's contents to the map file * Write a bank's contents to the map file
* @param bankSections The bank's sections * @param bankSections The bank's sections
@@ -432,12 +442,7 @@ static uint16_t writeMapBank(struct SortedSections const *sectList,
used += sect->size; used += sect->size;
assert(sect->offset == 0); assert(sect->offset == 0);
if (prevEndAddr < sect->org) { writeEmptySpace(prevEndAddr, sect->org);
uint16_t empty = sect->org - prevEndAddr;
fprintf(mapFile, "\tEMPTY: $%04" PRIx16 " byte%s\n", empty,
empty == 1 ? "" : "s");
}
prevEndAddr = sect->org + sect->size; prevEndAddr = sect->org + sect->size;
@@ -474,19 +479,14 @@ static uint16_t writeMapBank(struct SortedSections const *sectList,
uint16_t bankEndAddr = sectionTypeInfo[type].startAddr + sectionTypeInfo[type].size; uint16_t bankEndAddr = sectionTypeInfo[type].startAddr + sectionTypeInfo[type].size;
if (prevEndAddr < bankEndAddr) { writeEmptySpace(prevEndAddr, bankEndAddr);
uint16_t empty = bankEndAddr - prevEndAddr;
fprintf(mapFile, "\tEMPTY: $%04" PRIx16 " byte%s\n", empty,
empty == 1 ? "" : "s");
}
if (used == 0) { if (used == 0) {
fputs(" EMPTY\n\n", mapFile); fputs(" EMPTY\n\n", mapFile);
} else { } else {
uint16_t slack = sectionTypeInfo[type].size - used; uint16_t slack = sectionTypeInfo[type].size - used;
fprintf(mapFile, "\tSLACK: $%04" PRIx16 " byte%s\n\n", slack, fprintf(mapFile, "\tTOTAL EMPTY: $%04" PRIx16 " byte%s\n\n", slack,
slack == 1 ? "" : "s"); slack == 1 ? "" : "s");
} }