comparison dis.c @ 1892:1afd6e85ec26

Properly mask addresses to 24-bit in disassembler
author Michael Pavone <pavone@retrodev.com>
date Thu, 05 Dec 2019 09:32:52 -0800
parents 137dbd05ceab
children 460e14497120
comparison
equal deleted inserted replaced
1891:179a2ac29f27 1892:1afd6e85ec26
290 while(def) { 290 while(def) {
291 do { 291 do {
292 encoded = NULL; 292 encoded = NULL;
293 address = def->address; 293 address = def->address;
294 if (!is_visited(address)) { 294 if (!is_visited(address)) {
295 encoded = filebuf + (address - address_off)/2; 295 encoded = filebuf + ((address & 0xFFFFFF) - address_off)/2;
296 } 296 }
297 tmpd = def; 297 tmpd = def;
298 def = def->next; 298 def = def->next;
299 free(tmpd); 299 free(tmpd);
300 } while(def && encoded == NULL); 300 } while(def && encoded == NULL);
301 if (!encoded) { 301 if (!encoded) {
302 break; 302 break;
303 } 303 }
304 for(;;) { 304 for(;;) {
305 if (address > address_end || address < address_off) { 305 if ((address & 0xFFFFFF) > address_end || address < address_off) {
306 break; 306 break;
307 } 307 }
308 visit(address); 308 visit(address);
309 next = m68k_decode(encoded, &instbuf, address); 309 next = m68k_decode(encoded, &instbuf, address);
310 address += (next-encoded)*2; 310 address += (next-encoded)*2;