https://www.wlenerz.com/qlib4qx0/Qlib4Qx0.zip

I have tested some permanent patched programs and they also run on QPC2.
You mean the one 3 posts up?Derek_Stewart wrote: Wed Feb 05, 2025 9:07 pm Hi,
There seems to be a possibke solution from Wolfgang Lenerz on the QL-USERS mailing list, witha patched ROM and patched Qliberator program.
Theoretically, this can be integrated. At the moment, Wolfgang inserts a piece of code at the end of the program (qpatch_bas), there is no other option with a finished program.Derek_Stewart wrote: Wed Feb 05, 2025 11:00 pmIs it possible to alter the Qliberator compiler to produce the code the patch does?
Well, ideal would be a solution that identifies the problem areas in QLiberated code and only patches those instead of slowing down all of the program - But what Wolfgang has done is still a great improvement and maybe "just good enough".RalfR wrote: Thu Feb 06, 2025 10:09 amTheoretically, this can be integrated. At the moment, Wolfgang inserts a piece of code at the end of the program (qpatch_bas), there is no other option with a finished program.Derek_Stewart wrote: Wed Feb 05, 2025 11:00 pmIs it possible to alter the Qliberator compiler to produce the code the patch does?
At the beginning of the program, he makes a JMP or BRA at the end of the program (depending on the length of the program) and then back again. The program treated in this way is given a permanent identifier that is queried by the modified scheduler in SMSQ/E v3.42 in order to switch off the copyback cache for just this program. The programs treated in this way also run on standard QDOS and/or QPC2. The treatment can also be carried out with any normal machine code JOB and should also work with C or Turbo programs.
This could also be done during the compilation process and JMP or BRA could be dispensed with if the code snippet was integrated directly (there is no source at the moment).
The QEX/QEXEC/QEXEC_W/QEW (qexec_bin) that Wolfgang also made do not change the program code, but add the code when the program starts.
Personally, I prefer permanent treatment of a existing program, then it runs everywhere without problems.
A lot of programs, whether compiled or not, come with various extraneous files: sound files, config files, palettes, etc. Nothing scary there. The only extra in this case would be an ad hoc toolkit or two.
No sarkiness here. I meant what I wrote. It would be dead easy to write a code obfuscator: go through the tokenised S*BASIC program, pick out all unique non-mc names and then replace them with a letter + a sequential number, followed by the relevant suffix (%, $, or none, as appropriate).pjw wrote: Fri Jan 10, 2025 10:51 pm If anyone feels a need to obfuscate their code (for shame or to protect IP) then Im sure there are plenty here whod love the challenge of writing a code obfuscator!
Peter wrote: Sat Jan 11, 2025 12:58 amYou know there are almost no developers left. You also know that just obfuscating a pile of individual BASIC files will not be an acceptable alternative to those who now use QLiberator. So why that ironic remark? I was seriously looking for a way not to cripple a 68060 system to half speed, searching for an acceptable alternative to QLib under SMSQ/E (if it can not be fixed which is likely).