Basically, this is an idea I have been floating around in my head for a while. A user through a GUI will be able to organize all the labels, equates, references, strings, data groups, data types, etc., used in a project into informational lists and when the time comes to disassemble, will be able to use the CDL file obtained from FCEUXD to do a disassembly, while entering all the labels and equates at proper places, entering the proper references, grouping together data in a manner defined by the user, etc.
It will work in a linear fashion, where the program will start at the beginning of the PRG, and will move along by PRG address, with the sorted by PRG address of insertion of lists of references, labels, etc., and doing the text file output line by line, moving from address to address.
I implemented this in a couple of C programs using a data storage type of INF0 called INF0EDIT (which edits the informational files to be used in the disassembly) and CDLDIS2 (named after CDLDIS from http://sm2.beneficii.net/ ). Unfortunately, I had to use different types with each type of data and there was no good way of organizing it, so I used a whole bunch of macros to come up with stock functions for each type and I had to treat each kind separately. I came up with a rudimentary way of of sorting, for example, 2 labels being put at the same address, but I'm not satisfied with that, especially with making the ordering at the same address user friendly in INF0EDIT.
Also, INF0EDIT was used with the command-line. You could construct an entire informational file with it, but it was better to create a tab-delimited text file with something like Excel to input it and create the informational file which would then be used with the disassembly.
I'm considering starting from scratch in C++, using templates and function overloading to dealing with the basic types; using inheritence to create a base type with features every type shares and derive the types from it; and using the STL to organize the informational lists.
What are some tips for implementing this? Also, what kind of STL list should I use to organize the informational lists? I'm leaning toward map, but I'm wondering what others think.
It will work in a linear fashion, where the program will start at the beginning of the PRG, and will move along by PRG address, with the sorted by PRG address of insertion of lists of references, labels, etc., and doing the text file output line by line, moving from address to address.
I implemented this in a couple of C programs using a data storage type of INF0 called INF0EDIT (which edits the informational files to be used in the disassembly) and CDLDIS2 (named after CDLDIS from http://sm2.beneficii.net/ ). Unfortunately, I had to use different types with each type of data and there was no good way of organizing it, so I used a whole bunch of macros to come up with stock functions for each type and I had to treat each kind separately. I came up with a rudimentary way of of sorting, for example, 2 labels being put at the same address, but I'm not satisfied with that, especially with making the ordering at the same address user friendly in INF0EDIT.
Also, INF0EDIT was used with the command-line. You could construct an entire informational file with it, but it was better to create a tab-delimited text file with something like Excel to input it and create the informational file which would then be used with the disassembly.
I'm considering starting from scratch in C++, using templates and function overloading to dealing with the basic types; using inheritence to create a base type with features every type shares and derive the types from it; and using the STL to organize the informational lists.
What are some tips for implementing this? Also, what kind of STL list should I use to organize the informational lists? I'm leaning toward map, but I'm wondering what others think.