Whenever I try to run any new SBASIC code, there is this overlapping problem of some variable names used are possibly already installed as resident procedures. The code then either does not work as intended, or can stop with an error message. In these circumstances, I usually have to go through the code and rename the variables.
Compiling into machine code can solve the above mentioned problem. I first of all compiled using Turbo. There was one REFERENCE statement that had to be inserted for the procedure Rotation, which passes back the values x and y to the caller, FreeRotate, which by the way is not even called. There was just one expression at line 1230 that had to be re-written, to avoid Turbo using integer arithmetic and stopping with an overflow error. The resulting task seems to work as well as the SBASIC version. Next I tried Q-Liberator, which compiled the code easily enough. The resulting object file fails to display the x and y coordinates at the bottom of the screen. Both Turbo and Q-Liberator issued a Warning at line 23030 of .. END IF without an IF. A few weeks back I made mention about a new proposed update to the Turbo parser, which I have almost finished tweaking. I tried this new version on the code, and this did not warn of the above condition. It did however, give information messages about how variables are being used - being the difference between Interpreted code and Turbo code. It transpires that if one wants the SBASIC code to match exactly what the Turbo version does, then a great deal of changes will need to be made. I only have one criticism of the program so far. When the program ends it does a NEW. I may have made some changes or added some REMarks, and before closing down I would SAVE the code. But after a NEW, all the code has gone! The existing file is replaced with a blank one. Michael _______________________________________________ QL-Users Mailing List