mirror of
https://github.com/markdavidlong/AppleSAWS.git
synced 2024-12-21 22:29:30 +00:00
Improved disassembler labelling
This commit is contained in:
parent
c8b62f883a
commit
f5d4d99a94
@ -21,6 +21,19 @@ int AssemblerSymbols::locationOfSymbolAtAddress(quint16 address)
|
||||
return -1;
|
||||
}
|
||||
|
||||
QString AssemblerSymbols::getSymbolAtAddress(quint16 address)
|
||||
{
|
||||
int loc = locationOfSymbolAtAddress(address);
|
||||
if (loc < 0)
|
||||
{
|
||||
return "";
|
||||
}
|
||||
else
|
||||
{
|
||||
return m_assemblerSymbols.at(loc).name;
|
||||
}
|
||||
}
|
||||
|
||||
bool AssemblerSymbols::hasAssemSymbolAtAddress(quint16 address)
|
||||
{
|
||||
// Assume list m_assemblerSymbols is sorted by address (it should be)
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include <QDataStream>
|
||||
|
||||
typedef enum {
|
||||
SizeUnknown = 0,
|
||||
// SizeUnknown = 0,
|
||||
SizeByte = 1,
|
||||
SizeWord = 2
|
||||
} SymbolSize;
|
||||
@ -39,6 +39,7 @@ public:
|
||||
void doTestData();
|
||||
|
||||
int locationOfSymbolAtAddress(quint16 address);
|
||||
QString getSymbolAtAddress(quint16 address);
|
||||
signals:
|
||||
void symbolAdded(AssemblerSymbol &AssemblerSymbol, int location);
|
||||
void symbolAddedAt(int location);
|
||||
|
@ -202,7 +202,7 @@ void DisassemblerViewer::disassemble(QList<quint16> entryPoints) {
|
||||
newline = QString("%1: .Byte $%2 ; %3").arg(uint16ToHex(idx))
|
||||
.arg(uint8ToHex(m_mem.at(idx)))
|
||||
.arg(m_bfm->assemblerSymbols()->at(loc).name);;
|
||||
}
|
||||
} else
|
||||
if (m_bfm->assemblerSymbols()->at(loc).symbolsize == SizeWord)
|
||||
{
|
||||
newline = QString("%1: .Word $%2 ; %3").arg(uint16ToHex(idx))
|
||||
@ -231,7 +231,8 @@ void DisassemblerViewer::disassemble(QList<quint16> entryPoints) {
|
||||
formattedLines.append(newline);
|
||||
}
|
||||
}
|
||||
qSort(formattedLines);
|
||||
//qSort(formattedLines);
|
||||
formattedLines.sort();
|
||||
|
||||
m_disassemblyStrings = formattedLines;
|
||||
}
|
||||
@ -240,6 +241,14 @@ void DisassemblerViewer::disassemble(QList<quint16> entryPoints) {
|
||||
|
||||
QString DisassemblerViewer::getPotentialLabel(quint16 address)
|
||||
{
|
||||
if (m_bfm)
|
||||
{
|
||||
if (m_bfm->assemblerSymbols()->hasAssemSymbolAtAddress(address))
|
||||
{
|
||||
return m_bfm->assemblerSymbols()->getSymbolAtAddress(address);
|
||||
}
|
||||
}
|
||||
|
||||
if (address == 0x24) { return "MON.CURSORHORIZ"; }
|
||||
if (address == 0x28) { return "MON.BASL"; }
|
||||
if (address == 0x29) { return "MON.BASH"; }
|
||||
|
Loading…
Reference in New Issue
Block a user