changeset 2273:ff726f53d75a

Fix diassembly involving absolute addresses with high bits set
author Michael Pavone <pavone@retrodev.com>
date Thu, 29 Dec 2022 19:52:40 -0800
parents 777900eb8e15
children bf1bb893f104
files dis.c
diffstat 1 files changed, 2 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/dis.c	Thu Dec 29 15:47:54 2022 -0800
+++ b/dis.c	Thu Dec 29 19:52:40 2022 -0800
@@ -42,8 +42,9 @@
 uint16_t fetch(uint32_t address, void *data)
 {
 	rom_def *rom = data;
+	address &= 0xFFFFFF;
 	if (address >= rom->address_off && address < rom->address_end) {
-		return rom->buffer[((address & 0xFFFFFF) - rom->address_off) >> 1];
+		return rom->buffer[(address - rom->address_off) >> 1];
 	}
 	return 0;
 }