Hi Wolfgang, > I may have found a solution that allows newly patched Qliberated > programs to run on a Qx0 machine that is using Copyback mode and running > a new version of SMSQE.
Many thanks. I actually find your idea quite ingenious! It seems not very likely that the root cause can ever be fixed. So your workaround is far better than running the whole machine at roughly half speed, just because the copyback cache can not be used. I can not see any negative side effects. The patch does not cause any problems on the non-Q40/Q60 platforms, so it offers a convenient way to finally make QLiberated programs 68040/60 compatible. > NB: I am sure that Qlib programs normally do NOT modify their own code > whilst running ("normally" means that they do not contain some new > external non-Qlib keyword that would so that). Does your statement include the creation of new executable code? That would have the same effect - I also see it in the overall category of self-modifying code. Other than self-modifying code, the cause might come from QLiberator abusing the top three address bits, relying on the hardware *not* to treat them as different addresses. A terribly dirty method. So that QLiberated executables can work, the hardware must read or write the same data for the up to eight different addresses represented by variations of A31, A30, A29. The external DRAM of a Q40/Q60 will partially do that, because of incomplete address decoding (luck that I didn't have enough PLD pins). But the caches don't. They will use different entries for different addresses, as they should. All the best Peter _______________________________________________ QL-Users Mailing List