41
Development & Programming / Re: Debugging ATI drivers for Mac Mini
« Last post by joevt on May 01, 2024, 09:57:34 PM »What disassembler did you use? IDA? Which version?
The assembly listings show the imported libraries and functions as expected:
VideoServicesLib, NameRegistryLib, PCILib, DriverServicesLib
No unsupported libraries appear to be included. version f100 adds AbsoluteDeltaToDuration but that's not a problem since CIncludes shows that API as going back to Mac OS 8.6.
I don't see a device description, just "TheDriverDescription" as expected. The only difference in TheDriverDescription is the version number changed from 63 to 100.
Comparing the assembly listings would require renaming all the unnamed labels since they have different offsets or positions between version f63 and f100. In MPW you could create scripted menu items with command key short cuts to do the renaming of each label for you. It would work like this: select the label on the left and the label on the right. Choose a new common name for the labels. Have it verify that the new name is unused in both files, then have it rename all occurrences in the old version and the new version and re-compare. I did that with Open Firmware drivers. Open Firmware is different since the labels are order based (1,2,3,4...), rather than offset based, so that when renaming a label in Open Firmware, you could have it automatically rename all labels after that by incrementing there order number that is included in the label name thus greatly reducing the number of renames required.
Is there a modern utility to do a similar compare/rename? Does IDA have a compare binaries option? Can you change the assembly format to use order based names instead of offset based names? I suppose one could easily create a script to rename offset based labels as order based labels.
The assembly listings show the imported libraries and functions as expected:
VideoServicesLib, NameRegistryLib, PCILib, DriverServicesLib
No unsupported libraries appear to be included. version f100 adds AbsoluteDeltaToDuration but that's not a problem since CIncludes shows that API as going back to Mac OS 8.6.
I don't see a device description, just "TheDriverDescription" as expected. The only difference in TheDriverDescription is the version number changed from 63 to 100.
Comparing the assembly listings would require renaming all the unnamed labels since they have different offsets or positions between version f63 and f100. In MPW you could create scripted menu items with command key short cuts to do the renaming of each label for you. It would work like this: select the label on the left and the label on the right. Choose a new common name for the labels. Have it verify that the new name is unused in both files, then have it rename all occurrences in the old version and the new version and re-compare. I did that with Open Firmware drivers. Open Firmware is different since the labels are order based (1,2,3,4...), rather than offset based, so that when renaming a label in Open Firmware, you could have it automatically rename all labels after that by incrementing there order number that is included in the label name thus greatly reducing the number of renames required.
Is there a modern utility to do a similar compare/rename? Does IDA have a compare binaries option? Can you change the assembly format to use order based names instead of offset based names? I suppose one could easily create a script to rename offset based labels as order based labels.