Some last minute final changes before the 3.3 release.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2188 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2010-11-12 18:54:08 +00:00
parent 96c1f96ed8
commit 595e7dc41f
6 changed files with 19 additions and 21 deletions

View File

@ -1011,7 +1011,7 @@ void CartDebug::addressTypeAsString(ostream& buf, uInt16 addr) const
} }
uInt8 directive = myDisDirectives[addr & 0xFFF] & 0xFC, uInt8 directive = myDisDirectives[addr & 0xFFF] & 0xFC,
debugger = myDebugger.getAddressDisasmType(addr) & 0xFC, debugger = myDebugger.getAccessFlags(addr) & 0xFC,
label = myDisLabels[addr & 0xFFF]; label = myDisLabels[addr & 0xFFF];
string s1 = Debugger::to_bin_8(directive), string s1 = Debugger::to_bin_8(directive),

View File

@ -283,10 +283,10 @@ class Debugger : public DialogContainer
/* These are now exposed so Expressions can use them. */ /* These are now exposed so Expressions can use them. */
int peek(int addr) { return mySystem->peek(addr); } int peek(int addr) { return mySystem->peek(addr); }
int dpeek(int addr) { return mySystem->peek(addr) | (mySystem->peek(addr+1) << 8); } int dpeek(int addr) { return mySystem->peek(addr) | (mySystem->peek(addr+1) << 8); }
inline int getAddressDisasmType(uInt16 addr) inline int getAccessFlags(uInt16 addr)
{ return mySystem->getAddressDisasmType(addr); } { return mySystem->getAccessFlags(addr); }
inline void setAddressDisasmType(uInt16 addr, uInt8 flags) inline void setAccessFlags(uInt16 addr, uInt8 flags)
{ mySystem->setAddressDisasmType(addr, flags); } { mySystem->setAccessFlags(addr, flags); }
void setBreakPoint(int bp, bool set); void setBreakPoint(int bp, bool set);

View File

@ -115,7 +115,7 @@ DiStella::DiStella(const CartDebug& dbg, CartDebug::DisassemblyList& list,
// Therefore, we stop at the first such address encountered // Therefore, we stop at the first such address encountered
for (uInt32 k = myPCBeg; k <= myPCEnd; k++) for (uInt32 k = myPCBeg; k <= myPCEnd; k++)
{ {
if(Debugger::debugger().getAddressDisasmType(k) & if(Debugger::debugger().getAccessFlags(k) &
(CartDebug::DATA|CartDebug::GFX|CartDebug::PGFX)) (CartDebug::DATA|CartDebug::GFX|CartDebug::PGFX))
{ {
myPCEnd = k - 1; myPCEnd = k - 1;
@ -147,7 +147,6 @@ DiStella::DiStella(const CartDebug& dbg, CartDebug::DisassemblyList& list,
uInt16 addr = *it; uInt16 addr = *it;
if(!check_bit(addr-myOffset, CartDebug::CODE)) if(!check_bit(addr-myOffset, CartDebug::CODE))
{ {
//cerr << "(list) marking " << HEX4 << addr << " as CODE\n";
myAddressQueue.push(addr); myAddressQueue.push(addr);
++it; ++it;
break; break;
@ -160,10 +159,9 @@ DiStella::DiStella(const CartDebug& dbg, CartDebug::DisassemblyList& list,
// been referenced as CODE // been referenced as CODE
while(it == addresses.end() && codeAccessPoint <= myAppData.end) while(it == addresses.end() && codeAccessPoint <= myAppData.end)
{ {
if((Debugger::debugger().getAddressDisasmType(codeAccessPoint+myOffset) & CartDebug::CODE) if((Debugger::debugger().getAccessFlags(codeAccessPoint+myOffset) & CartDebug::CODE)
&& !(myLabels[codeAccessPoint & myAppData.end] & CartDebug::CODE)) && !(myLabels[codeAccessPoint & myAppData.end] & CartDebug::CODE))
{ {
//cerr << "(emul) marking " << HEX4 << (codeAccessPoint+myOffset) << " as CODE\n";
myAddressQueue.push(codeAccessPoint+myOffset); myAddressQueue.push(codeAccessPoint+myOffset);
++codeAccessPoint; ++codeAccessPoint;
break; break;
@ -849,7 +847,7 @@ bool DiStella::check_bit(uInt16 address, uInt8 mask) const
uInt8 label = myLabels[address & myAppData.end], uInt8 label = myLabels[address & myAppData.end],
lastbits = label & 0x03, lastbits = label & 0x03,
directive = myDirectives[address & myAppData.end] & 0xFC, directive = myDirectives[address & myAppData.end] & 0xFC,
debugger = Debugger::debugger().getAddressDisasmType(address | myOffset) & 0xFC; debugger = Debugger::debugger().getAccessFlags(address | myOffset) & 0xFC;
// Any address marked by a manual directive always takes priority // Any address marked by a manual directive always takes priority
if(directive) if(directive)
@ -945,7 +943,7 @@ void DiStella::addEntry(CartDebug::DisasmType type)
// but it could also indicate that code will *never* be accessed // but it could also indicate that code will *never* be accessed
// Since it is impossible to tell the difference, marking the address // Since it is impossible to tell the difference, marking the address
// in the disassembly at least tells the user about it // in the disassembly at least tells the user about it
if(!(Debugger::debugger().getAddressDisasmType(tag.address) & CartDebug::CODE) if(!(Debugger::debugger().getAccessFlags(tag.address) & CartDebug::CODE)
&& myAppData.length >= 4096) && myAppData.length >= 4096)
tag.ccount += " *"; tag.ccount += " *";
break; break;

View File

@ -265,7 +265,7 @@ void System::poke(uInt16 addr, uInt8 value)
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
uInt8 System::getAddressDisasmType(uInt16 addr) uInt8 System::getAccessFlags(uInt16 addr)
{ {
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
PageAccess& access = myPageAccessTable[(addr & myAddressMask) >> myPageShift]; PageAccess& access = myPageAccessTable[(addr & myAddressMask) >> myPageShift];
@ -280,7 +280,7 @@ uInt8 System::getAddressDisasmType(uInt16 addr)
} }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void System::setAddressDisasmType(uInt16 addr, uInt8 flags) void System::setAccessFlags(uInt16 addr, uInt8 flags)
{ {
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
PageAccess& access = myPageAccessTable[(addr & myAddressMask) >> myPageShift]; PageAccess& access = myPageAccessTable[(addr & myAddressMask) >> myPageShift];

View File

@ -293,10 +293,10 @@ class System : public Serializable
/** /**
Access and modify the disassembly type flags for the given Access and modify the disassembly type flags for the given
address. Note that while any flag can be used, the disassembly address. Note that while any flag can be used, the disassembly
only really acts on SKIP/CODE/GFX/DATA/ROW. only really acts on SKIP/CODE/GFX/PGFX/DATA/ROW.
*/ */
uInt8 getAddressDisasmType(uInt16 address); uInt8 getAccessFlags(uInt16 address);
void setAddressDisasmType(uInt16 address, uInt8 flags); void setAccessFlags(uInt16 address, uInt8 flags);
public: public:
/** /**

View File

@ -1475,7 +1475,7 @@ bool TIA::poke(uInt16 addr, uInt8 value)
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke(); uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke();
if(dataAddr) if(dataAddr)
mySystem->setAddressDisasmType(dataAddr, CartDebug::PGFX); mySystem->setAccessFlags(dataAddr, CartDebug::PGFX);
#endif #endif
break; break;
} }
@ -1492,7 +1492,7 @@ bool TIA::poke(uInt16 addr, uInt8 value)
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke(); uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke();
if(dataAddr) if(dataAddr)
mySystem->setAddressDisasmType(dataAddr, CartDebug::PGFX); mySystem->setAccessFlags(dataAddr, CartDebug::PGFX);
#endif #endif
break; break;
} }
@ -1509,7 +1509,7 @@ bool TIA::poke(uInt16 addr, uInt8 value)
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke(); uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke();
if(dataAddr) if(dataAddr)
mySystem->setAddressDisasmType(dataAddr, CartDebug::PGFX); mySystem->setAccessFlags(dataAddr, CartDebug::PGFX);
#endif #endif
break; break;
} }
@ -1749,7 +1749,7 @@ bool TIA::poke(uInt16 addr, uInt8 value)
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke(); uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke();
if(dataAddr) if(dataAddr)
mySystem->setAddressDisasmType(dataAddr, CartDebug::GFX); mySystem->setAccessFlags(dataAddr, CartDebug::GFX);
#endif #endif
break; break;
} }
@ -1792,7 +1792,7 @@ bool TIA::poke(uInt16 addr, uInt8 value)
#ifdef DEBUGGER_SUPPORT #ifdef DEBUGGER_SUPPORT
uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke(); uInt16 dataAddr = mySystem->m6502().lastDataAddressForPoke();
if(dataAddr) if(dataAddr)
mySystem->setAddressDisasmType(dataAddr, CartDebug::GFX); mySystem->setAccessFlags(dataAddr, CartDebug::GFX);
#endif #endif
break; break;
} }