Scor­pio News

  

January–March 1987 – Volume 1. Issue 1.

Page 59 of 63

Additionally, I ran Microsoft BASIC86 and Digital Research Personal BASIC (both interpreted rather than compiled), on a GM888 8/16 bit 8088 co-processor in a MultiBoard system with the Gemini version of CP/M 86. The clock frequency is 8MHz, but according to their catalogue Gemini reckon that with the interaction with the 4MHz 80-BUS it is more like 6MHz overall; however, the accuracy and timing of both were somewhat poor!

Time (secs.)Value
BASIC861302179.85
Personal BASIC1861080.76

I understand that this version of BASIC86 (5.21) is the genuine, non-patched article but the version number is exactly the same as my version of MBASIC (Z80). Its precision would have been improved by using double precision for variable A, but the time penalty would be quite severe. The DRI BASIC is an interesting version capable of running MBASIC programs which, in spite of its poor precision in this application (6 figure accuracy) and its slowness, is a delight to use.

Incidentally, I was surprised to see that Parkinson appeared not to have tried COMPAS with the HSA-88B since I would have expected some improvement in execution time.

Factors affecting Benchmark timings

Several factors will ultimately affect the timing (and accuracy) of a Benchmark test:

Hardware

System configuration and architecture will have important effects on disk i/o, memory and screen access timings. Unless a test is specifically designed to test these, their usage should be as low as possible.

System clock frequency

The importance of this is self-evident. A test which is run at 4 MHz should normally complete in a shorter time then one run at 2 MHz unless the language implementation is less than optimal (as, for example, the patching of the 8080-based Microsoft language is to run on the Z80 processor).

Software

The use of a compiled Language rather than one which is interpreted will always speed things up and the accuracy will not be affected. The main problem as far as both accuracy and speed are concerned lies in the efficiency of the algorithms which are used by the particular version of BASIC or whatever language, and the extent to which rounding errors may affect the results of calculations.

Om micros, most BASICS work (in single precision) to an accuracy of 8 digits but the BBC version uses 9 digits and CBASIC, 14. Rounding errors will be marginally less in 9 digit than 8 digit and much less in 14 digit, although the speed penalty may well be too great. Some versions of Pascal and both versions of Fortran lack a TAN function; this has to be supplied as (SIN/​COS), either as a user-supplied function included at compile-time, or possibly as an additional line of code such as TAN=SIN(A)/COS(A) (which will slow things down rather less). My Fortran tests used the latter approach.

The Z80 version of BBC BASIC appears to be a lot faster and only marginally less accurate than the 6502 version. It is available for 80-BUS machines and it would certainly seem to be a good buy both in terms of price and facilities

Page 59 of 63