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 

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. 

QL-Users Mailing List

Reply via email to