SuperCharge Decompiler

Anything QL Software or Programming Related.
Martin_Head
Gold Card
Posts: 291
Joined: Tue Dec 17, 2013 1:17 pm

Re: SuperCharge Decompiler

Postby Martin_Head » Wed Apr 25, 2018 2:11 pm

Here is an update of the SuperCharge decompiler as it stands at the moment.

In addition to improvements to the decompiler, I have added a system to to identify most of the library routines during the ProcessDump_bas program. This cuts out most of the tedious and error prone manual identification process. And it fills in the '_codes' file for you.

I have also included a user manual, which I hope makes some sense.
Attachments
DisChargeDocs.zip
(256.04 KiB) Downloaded 12 times
DisCharge.zip
(98.5 KiB) Downloaded 12 times


RWAP
RWAP Master
Posts: 2444
Joined: Sun Nov 28, 2010 4:51 pm
Location: Stone, United Kingdom
Contact:

Re: SuperCharge Decompiler

Postby RWAP » Wed Apr 25, 2018 9:14 pm

It looks as though now might be the time for Martyn to approach Simon Goodwin - he probably still has the original Supercharge sources, and would be interested in this project no doubt. It would also be nice if someone asked him about releasing Supercharge as public domain, in line with Turbo (which he released as public domain some time ago).


Martin_Head
Gold Card
Posts: 291
Joined: Tue Dec 17, 2013 1:17 pm

Re: SuperCharge Decompiler

Postby Martin_Head » Sat May 12, 2018 10:33 am

If anyone is trying to use the decompiler, I have noticed a problem with it identifying the string = and <> routines.

The checksum system I introduced combines the number of bytes in the routine, and a total of those bytes added together.

By sod's law both routines have the same checksum! They both have the same number of bytes, and only differ by 2 bytes, and the two differences cancel each other out in the checksum.

The routines are almost exactly the same, You can differentiate between them by looking near the end of the routines for an instruction ‘movea.w $000000E6,a2’. just before it is a ‘moveq #$.. ,d0’ instruction.
‘moveq #$02,d0’ is an equals, and ‘moveq #$03,d0’ is a not equals.


stephen_usher
ROM Dongle
Posts: 26
Joined: Tue Mar 11, 2014 8:00 pm

Re: SuperCharge Decompiler

Postby stephen_usher » Sat May 12, 2018 11:41 am

Martin_Head wrote:By sod's law both routines have the same checksum! They both have the same number of bytes, and only differ by 2 bytes, and the two differences cancel each other out in the checksum.


Use a cryptographic hash instead, such as md5sum or even 3des?


Martin_Head
Gold Card
Posts: 291
Joined: Tue Dec 17, 2013 1:17 pm

Re: SuperCharge Decompiler

Postby Martin_Head » Sat May 19, 2018 4:06 pm

Another update.

Amongst improvements are that END FOR's now get the variable name added, and END DEFines get the procedure/function names added.
Attachments
DisChargeDocs.zip
(218.51 KiB) Downloaded 4 times
DisCharge.zip
(99.36 KiB) Downloaded 4 times



Return to “Software & Programming”

Who is online

Users browsing this forum: No registered users and 2 guests