QLiberator decompiler

Anything QL Software or Programming Related.
Martin_Head
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: QLiberator decompiler

Post by Martin_Head »

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 92 times


User avatar
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Post by RalfR »

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.


4E75 7000
EmmBee
Trump Card
Posts: 240
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Post by EmmBee »

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
Aurora
Posts: 847
Joined: Tue Dec 17, 2013 1:17 pm

Re: QLiberator decompiler

Post by Martin_Head »

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
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Post by RalfR »

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?


4E75 7000
EmmBee
Trump Card
Posts: 240
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Post by EmmBee »

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
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Post by RalfR »

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...???


4E75 7000
EmmBee
Trump Card
Posts: 240
Joined: Fri Jan 13, 2012 5:29 pm
Location: Kent

Re: QLiberator decompiler

Post by EmmBee »

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
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Post by RalfR »

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


4E75 7000
User avatar
RalfR
Aurora
Posts: 870
Joined: Fri Jun 15, 2018 8:58 pm

Re: QLiberator decompiler

Post by RalfR »

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.


4E75 7000
Post Reply