Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 2528

development tools • Re: py8dis - a programmable static tracing 6502 disassembler in Python

$
0
0
I'm helping BigEd with a disassembly of the Digiac-MAC-III ROM.

We're struggling to find a way to handler this case....

The code has a table of pointers to error strings:

Code:

.lee69    equw &effa, &ee9f, &eeb1, &eec0, &eed8, &eeed, &ef03, &effa, &ef14, &effa    equw &ef20, &ef41, &ef56, &effa, &effa, &effa, &effa, &effa, &effa, &effa    equw &ef6e, &ef81, &ef8e, &ef9c, &efad, &efc7, &efe3 
This is followed by the strings themselves:

Code:

       equs "  Unknown command"    equb &0d    equs "  Syntax error"    equb &0d    equs "  Unknown register name"    equb &0d    equs "  Value out of range"    equb &0d    equs "  Device name unknown"    equb &0d    equs "  Invalid number"    equb &0d    equs "  Missing ", '"'    equb &0d    equs "  No more breakpoints can be set"    equb &0d    equs "  No breakpoints set"    equb &0d    equs "  Memory limit exceeded"    equb &0d    equs "  Device not ready"    equb &0d    equs "  Read error"    equb &0d    equs "  Write error"    equb &0d    equs "  Checksum error"    equb &0d    equs "  Unknown 'S' record type"    equb &0d    equs "  Escape character detected"    equb &0d    equs "  Invalid I/O function"    equb &0d, &0d
I'd like to end up with the table filled with automatically generated labels (string_error_0, string_error_1, etc). I was expecting to have to write some python to iterate over the table, but I can't even find a way to do this manually.

Specifically, if I define a label:

Code:

label(0xee9f, "string_error_0)
How can I get this label to be used in the pointer table?

It seems this works automatically for jump tables (using wordentry() but not for data tables defined with word())

I feel I must be missing something obvious here....

Dave

Statistics: Posted by hoglet — Sun Feb 18, 2024 10:48 am



Viewing all articles
Browse latest Browse all 2528

Trending Articles