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:This is followed by the strings themselves: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: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
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
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
Specifically, if I define a label:
Code:
label(0xee9f, "string_error_0)
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