Mercurial > repos > blastem
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; |