QLiberator decompiler

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

Re: QLiberator decompiler

Postby Martin_Head » Tue Jan 14, 2020 11:49 am

Yesterday I thought I would try to recompile DiskMate 5 with my re-compiled QLiberator, to see how well it handles it.

But first I thought I would try to fix a couple of problems with the original DiskMate 5 when run in SMSQ/E.

I changed references to 'FEX' that causes QLiberator to complain when you run the program to 'FI2_CALL'. So it now expects FileInfo2 V3.50. And I updated the end date it checks, so that it no longer asks for the date, when the date is correct.
I have set the end date to the middle of January 2029. I tried to set it to 2040. But I found that the DATE function in SMSQ/E, returns negative numbers when you pass the middle of January 2029. Which confused DiskMate 5

I have also changed the Version number of DiskMate 5 from "V5.10" to "V5.11 1201" to distinguish it from the original.

I have attached a Zip file (zipped under QDOS to keep the headers) which contains two copies of this recompiled DiskMate 5. The A version was compiled with the original QLIB, and the B version was compiled with my recompiled QLIB

Doing a byte by byte comparison of the two shows only one byte difference (the job name), So It looks like my decompile is pretty good. (I don't know if Ralf's tests have been successful using the recompiled version)
Could someone familiar with DiskMate 5 give my versions a try to see if it looks like my decompile of DISKMATE 5 is good.
Attachments
dm511.zip
(103.72 KiB) Downloaded 14 times


User avatar
Ralf R.
Gold Card
Posts: 252
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Postby Ralf R. » Tue Jan 14, 2020 5:26 pm

Sorry for the delay. I have successfully compiled QLiberator under QPC. SBasic loading time 1s, then compiled as _sav with the original QLiberator 3.35 in 2s. Runs without problems. Great work!

Unfortunately, the place, where I thought the window move takes place, is the right one, but simply the change of 512 and 256 to SCR_XLIM/YLIM does not make it. There seem to be calculations in other Proc/Fn. I have to investigate...

Even interesting: Though I use an XLIM of 640, QLiberator tries to put itself in the middle of the screen, with success. But that's the limit for the internal calculation.


EmmBee
Over Heated PSU
Posts: 148
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Postby EmmBee » Wed Jan 15, 2020 10:17 am

Martin_Head wrote:I have attached a Zip file (zipped under QDOS to keep the headers) which contains two copies of this recompiled DiskMate 5. The A version was compiled with the original QLIB, and the B version was compiled with my recompiled QLIB

I note that both versions are claiming they were compiled with the original QLIB 3.36
Can you change the version number of the new recompiled QLiberator to distinguish it from the original, please?


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

Re: QLiberator decompiler

Postby Martin_Head » Wed Jan 15, 2020 10:57 am

EmmBee wrote:
Martin_Head wrote:I have attached a Zip file (zipped under QDOS to keep the headers) which contains two copies of this recompiled DiskMate 5. The A version was compiled with the original QLIB, and the B version was compiled with my recompiled QLIB

I note that both versions are claiming they were compiled with the original QLIB 3.36
Can you change the version number of the new recompiled QLiberator to distinguish it from the original, please?
At the moment my primary goal is to get (as near as I can) an accurate copy of V3.36. So I don't want to start changing things in the program. In my recompiled QLiberators I do change the job name so they are distinguishable from the original.

Also without looking to see. I don't know if the 3.36 at the end of the initialization machine code that gets put in the final compiled program, comes from the QLIB program, or one of the extensions.


User avatar
Ralf R.
Gold Card
Posts: 252
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Postby Ralf R. » Wed Jan 15, 2020 1:14 pm

Hmm, I have found keywords in DM511's nametable, which are not linked in, e.g. UPPER$, LOWER$, SORT, TREE, WDDIR. Is there a missing extension file in the _obj?


EmmBee
Over Heated PSU
Posts: 148
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Postby EmmBee » Wed Jan 15, 2020 3:36 pm

Ralf R. wrote:Hmm, I have found keywords in DM511's nametable, which are not linked in, e.g. UPPER$, LOWER$, SORT, TREE, WDDIR. Is there a missing extension file in the _obj?

There is an Extensions_Cde that is LRESPR'd in the BOOT file. That's easy to miss out if your using QPC2, as the PE is automatically included.


User avatar
Ralf R.
Gold Card
Posts: 252
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Postby Ralf R. » Wed Jan 15, 2020 3:39 pm

EmmBee wrote:
Ralf R. wrote:Hmm, I have found keywords in DM511's nametable, which are not linked in, e.g. UPPER$, LOWER$, SORT, TREE, WDDIR. Is there a missing extension file in the _obj?

There is an Extensions_Cde that is LRESPR'd in the BOOT file. That's easy to miss out if your using QPC2, as the PE is automatically included.

Oh, not included in the _obj...???


EmmBee
Over Heated PSU
Posts: 148
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Postby EmmBee » Wed Jan 15, 2020 3:54 pm

Ralf R. wrote:
EmmBee wrote:
Ralf R. wrote:Hmm, I have found keywords in DM511's nametable, which are not linked in, e.g. UPPER$, LOWER$, SORT, TREE, WDDIR. Is there a missing extension file in the _obj?

There is an Extensions_Cde that is LRESPR'd in the BOOT file. That's easy to miss out if your using QPC2, as the PE is automatically included.

Oh, not included in the _obj...???

No, apparently not.


User avatar
Ralf R.
Gold Card
Posts: 252
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Postby Ralf R. » Wed Jan 15, 2020 5:28 pm

QLiberator self compiling under QPC also takes 2 seconds. Just by the way ;)


User avatar
Ralf R.
Gold Card
Posts: 252
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Postby Ralf R. » Wed Jan 15, 2020 5:32 pm

Martin_Head wrote:I don't know if the 3.36 at the end of the initialization machine code that gets put in the final compiled program, comes from the QLIB program, or one of the extensions.

The version number comes from the compiler itself. The first _obj I made, was with the original QLiberator v3.35, then there is "3.35" in the compiled code, if compiled with v3.36, then there is "3.36" in the compiled code.



Who is online

Users browsing this forum: No registered users and 3 guests