80-Bus News

  

March–April 1983 · Volume 2 · Issue 2

Page 6 of 55

analysed the circuit diagrams and thinks they understand them should (?) be able to pin-point the problem without any more info. than this – please!

Kevin Weatherhead, Sheen, ___ ______ __., Alton, Hants. ____ ___.

Hisoft Pascal

In case Dr Dark hasn’t got round to the review of Hisoft Pascal 4 promised in 80-BUS News, here are the results I obtained running the PCW Benchmark tests on this version of the compiler. Incidentally, because of the speed of the code, most of the loops were set to 30,000 and the resulting time divided by three, in the case of the Magnifier the routine was enclosed in an outer 100-times loop.

Sec.Sec.
Magnifier0.22Forloop2.7
Whileloop4.3Repeatloop3.7
Literalassign3.3Memoryaccess343
Realarithmetic14.0Realalgebra15.0
Vector8.0Equalif6.0
Unequalif5.7Noparameters3.3
Value43.7Reference3.7
Maths6.0

No great accuracy is claimed for these figures, but they show some slight improvement on the NASPAS 3 timings, save for the REAL tests and the MATHS test where the old timings seemed to have been halved. All the tests were run on a Nascom 2 running at 4MHz with no Wait-states. The options to remove overflow checks etc. were used, and the most significant speed improvement came from invoking option C-, which removes the keyboard check at the start of each loop.

Having only had this compiler for about a month, I haven’t yet been able to try out all the features – well actually the time has been spent on converting one or two very lethargic BASIC programs into Pascal and enjoying the substantial increase in speed. During the course of this exercise one or two peculiarities came up which appeared not to be covered in the manual. These were:–

1) CASE Statements. The semi-colon after the last statement in the case-list must be ommitted.

2) Reset & Rewrite. The disk file name can be a variable,​permitting filename entry from the screen, but it must be formatted as stated in the manual.

3) READ. The check on a digit or ‘+’ or ‘−’ during an integer read doesn’t appear to work.

4) FILES. This one had me wondering a bit. During the course of a program a string included a line Feed character (0AH) that shouldn’t have been there. It seems that during a disk read, if the end of the buffer coincides with the middle 0D0AH character-pair, then LF is not skipped, and the next character read picks it up.

I.P. Forbes, Brighton.

Page 6 of 55