shithub: rgbds

Download patch

ref: 0e0876b17f9c40c5a5e18dd4b536911451d5cfc1
parent: b28eea24fcab53f6d8b4d45392e50d3e05e7b69d
author: ISSOtm <[email protected]>
date: Fri Oct 7 12:04:02 EDT 2022

Print addr ranges for empty blocks as well

Mirrors what sections do, for clarity & consistency

--- a/src/link/output.c
+++ b/src/link/output.c
@@ -404,6 +404,16 @@
 
 }
 
+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
  * @param bankSections The bank's sections
@@ -432,13 +442,8 @@
 		used += sect->size;
 		assert(sect->offset == 0);
 
-		if (prevEndAddr < sect->org) {
-			uint16_t empty = sect->org - prevEndAddr;
+		writeEmptySpace(prevEndAddr, sect->org);
 
-			fprintf(mapFile, "\tEMPTY: $%04" PRIx16 " byte%s\n", empty,
-				empty == 1 ? "" : "s");
-		}
-
 		prevEndAddr = sect->org + sect->size;
 
 		if (sect->size != 0)
@@ -474,19 +479,14 @@
 
 	uint16_t bankEndAddr = sectionTypeInfo[type].startAddr + sectionTypeInfo[type].size;
 
-	if (prevEndAddr < bankEndAddr) {
-		uint16_t empty = bankEndAddr - prevEndAddr;
+	writeEmptySpace(prevEndAddr, bankEndAddr);
 
-		fprintf(mapFile, "\tEMPTY: $%04" PRIx16 " byte%s\n", empty,
-			empty == 1 ? "" : "s");
-	}
-
 	if (used == 0) {
 		fputs("  EMPTY\n\n", mapFile);
 	} else {
 		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");
 	}