Beebug
1st October 1983
Categories: Review: Software
Author: Sheridan Williams
Publisher: Interface
Machine: BBC Model B
Published in Beebug Volume 2 Number 5
The Rushton Compiler
Product: Instant BBC Machine Code
By: Jeremy Ruston
Supplier: Interface, 44-46 Earls Court Rd, London, W8 6EJ
Price: £34.95 inc VAT
This review is based on tests of the compiler carried out at Beebug, but also includes the comments sent in by several members who have purchased the compiler. In particular I would like to thank Philip Morris, Koenraad Rutgers and Trevor Baker.
This compiler is written in Basic, and is unusual, compared with others that I have used, in that it only supports a limited subset of BBC Basic.
The instructions supported are: LET CLS CLG COLOUR MODE DRAW MOVE END GCOL GOTO GOSUB IF...THEN...[ELSE] OFF PLOT PRINT REM RETURN SOUND VDU FOR. ..NEXT REPEAT...UNTIL INPUT *FX CALL.
The functions supported are: ADVAL INKEY RND TAB(X,Y) .
Operators are: + * - AND, OR, # (meaning not equal to), and the square brackets. Variables allowed are A%-Z% (or A-Z) and only integer arithmetic is supported. You should also be aware that some of the instructions are used in slightly different ways to normal.
Ruston also says that programs should be written with the compiler in mind, rather than developing them in ordinary BBC Basic and then converting them for compilation afterwards. This is sound advice in this case, but only because of the limitations of the compiler. It is true that most Basic compilers require a few changes to be made to the program that runs in interpreted mode, but using this compiler, programs require a major rewrite. This could probably be tolerated in a compiler costing less than £18.
Ruston's compiler, although missing many of BBC Basic's standard features, has a feature called "Sprites": to quote from the book: "These new statements only work in MODE 4.... Sprites are objects defined on an 8x8 grid - exactly like the user-defined graphics you are used to. The difference being that sprites can be moved around the screen without disturbing what is on the screen already." This could be useful in a games context.
The compiler uses large amounts of memory, (which is understandable) and makes compiling programs in memory impossible for all but the shortest. In reality compilation must be done from disc/cassette. The compiler is a "three pass" compiler, and requires the file to be read three times, on disc this is no problem, but from cassette it requires rewinding the cassette three times.
The manual is cheaply produced using print from a matrix printer, it is accurate and fairly easy to follow. There is also a listing of the compiler; using this it is possible to reduce the length of the compiler (by removing redundant lines, REMs, and unnecessary spaces). This makes it possible to compile far larger programs in memory.
Conclusion
The compiler works well and produces quite fast running object code, which typically runs between 5 and 8 times faster. On the whole it is a rather expensive piece of software, the price means that it is for specialists only; and my impression is that it is far too expensive for the limited subset of BBC Basic that it supports.
We should also point out that Interface require royalties on any program developed using this compiler.[This sounds rather like a piano maker wanting a royalty on every piece of music composed on his pianos! - Ed]