COMPILATION: HINTS AND TIPS

This Chapter explains -and solves- some problems that might arise with compilation.

Introduction and legal stuff

Programs produced for ProWesS with the ProWesS SBasic interface can easily be compiled with QLiberator. Do not try to compile them with Turbo, it won't work! In principle, anything that works under the interpreter should work once compiled.

You may not link in the SBasic interface into the compiled code using the $$asmb directive. This is due to technical reasons, and also because it wouldn't make sense: If your compiled program needs these keywords, this means that it (only) works in ProWesS. Thus, all users of your programs must have ProWesS. And if they have ProWesS, they have this interface anyway.

This is also why you can load the ProWesS SBasic Interface into normal SuperBasic, so that one can run compiled programs. As was mentioned in the introduction, you must not try to run uncompiled programs on machines which are not running SMSQ(/E). Again, there are technical reasons for this (for the non-technical user, skip the next paragraph):

As you may know, SuperBasic is special in that it, and its data area, may zip around memory according to how the TPA expands and contracts. This is why A6 must always be kept constant when using Superbasic extensions, the operating system can change that at any time. The problem here is that ProWesS modifies and uses A6 for itself. One could of course make sure that, when coming back from ProWesS, one finds the correct value of A6 and sets it to that before going back to the interpreter - but what happens if the operating system changes A6 whilst that is being used by ProWesS? ProWesS wouldn't know of this, of course - instant crash when it tries to use a (now changed) A6!

Also, and since the Interface must be initialised ina special way which won't be possible from within QLiberator, the upshot is that permission is explicitly denied to include the ProWesS SBasic Interface in your own compiled programs with the $$asmb directive, or in any other way. Again, as mentioned above, this is no problem since all who have ProWesS also have this interface!

Some things to watch out for


PROGS, Professional & Graphical Software
last edited 1996 May 30 (wl)