Mercurial > repos > blastem
comparison dis.c @ 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 | 80dde7fb445b |
children | bf1bb893f104 |
comparison
equal
deleted
inserted
replaced
2272:777900eb8e15 | 2273:ff726f53d75a |
---|---|
40 } rom_def; | 40 } rom_def; |
41 | 41 |
42 uint16_t fetch(uint32_t address, void *data) | 42 uint16_t fetch(uint32_t address, void *data) |
43 { | 43 { |
44 rom_def *rom = data; | 44 rom_def *rom = data; |
45 address &= 0xFFFFFF; | |
45 if (address >= rom->address_off && address < rom->address_end) { | 46 if (address >= rom->address_off && address < rom->address_end) { |
46 return rom->buffer[((address & 0xFFFFFF) - rom->address_off) >> 1]; | 47 return rom->buffer[(address - rom->address_off) >> 1]; |
47 } | 48 } |
48 return 0; | 49 return 0; |
49 } | 50 } |
50 | 51 |
51 void print_label_def(char *key, tern_val val, uint8_t valtype, void *data) | 52 void print_label_def(char *key, tern_val val, uint8_t valtype, void *data) |