QLiberator decompiler
-
- Aurora
- Posts: 853
- Joined: Tue Dec 17, 2013 1:17 pm
Re: QLiberator decompiler
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.
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 97 times
Re: QLiberator decompiler
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.
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
Re: QLiberator decompiler
I note that both versions are claiming they were compiled with the original QLIB 3.36Martin_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
Can you change the version number of the new recompiled QLiberator to distinguish it from the original, please?
-
- Aurora
- Posts: 853
- Joined: Tue Dec 17, 2013 1:17 pm
Re: QLiberator decompiler
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.EmmBee wrote:I note that both versions are claiming they were compiled with the original QLIB 3.36Martin_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
Can you change the version number of the new recompiled QLiberator to distinguish it from the original, please?
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.
Re: QLiberator decompiler
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
Re: QLiberator decompiler
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.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?
Re: QLiberator decompiler
Oh, not included in the _obj...???EmmBee wrote: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.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?
4E75 7000
Re: QLiberator decompiler
No, apparently not.Ralf R. wrote:Oh, not included in the _obj...???EmmBee wrote: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.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?
Re: QLiberator decompiler
QLiberator self compiling under QPC also takes 2 seconds. Just by the way
4E75 7000
Re: QLiberator decompiler
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.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.
4E75 7000