mirror of https://github.com/stella-emu/stella.git
fixed multi segment cart disassembly
This commit is contained in:
parent
e9efdbc3a1
commit
3370ca4afc
|
@ -254,6 +254,10 @@ bool CartDebug::disassembleAddr(uInt16 address, bool force)
|
||||||
if(segCount > 1)
|
if(segCount > 1)
|
||||||
{
|
{
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
// myDisassembly.list must be cleared before calling disassemble(),
|
||||||
|
// else the lineOfs in fillDisassemblyList will be too large
|
||||||
|
myDisassembly.list.clear();
|
||||||
|
myAddrToLineList.clear();
|
||||||
|
|
||||||
myDisassembly.fieldwidth = 24;
|
myDisassembly.fieldwidth = 24;
|
||||||
for(int seg = 0; seg < segCount; ++seg)
|
for(int seg = 0; seg < segCount; ++seg)
|
||||||
|
@ -266,18 +270,9 @@ bool CartDebug::disassembleAddr(uInt16 address, bool force)
|
||||||
info.offset = cart.bankOrigin(bank) | cart.bankSize() * seg;
|
info.offset = cart.bankOrigin(bank) | cart.bankSize() * seg;
|
||||||
const uInt16 segAddress = bank == addrBank ? address : info.offset;
|
const uInt16 segAddress = bank == addrBank ? address : info.offset;
|
||||||
// Disassemble segment
|
// Disassemble segment
|
||||||
const bool newChanged = disassemble(bank, segAddress, disassembly, addrToLineList, force);
|
changed |= disassemble(bank, segAddress, disassembly, addrToLineList, force);
|
||||||
|
|
||||||
if(!changed && newChanged)
|
// Add extra empty line between segments
|
||||||
{
|
|
||||||
// Clear lists at first change
|
|
||||||
// Note: This is currently either true for all or no segments
|
|
||||||
changed = true;
|
|
||||||
myDisassembly.list.clear();
|
|
||||||
myAddrToLineList.clear();
|
|
||||||
|
|
||||||
}
|
|
||||||
// Add extra empty line between segments
|
|
||||||
if(seg < segCount - 1)
|
if(seg < segCount - 1)
|
||||||
{
|
{
|
||||||
CartDebug::DisassemblyTag tag;
|
CartDebug::DisassemblyTag tag;
|
||||||
|
|
Loading…
Reference in New Issue