Old computer benchmarks

Modern PCs have different configurations. They
may have different CPUs, RAM modules, video cards and their memory. The
overall efficiency of these machines is measured with benchmarks.
This text will show results of benchmarking 8-bit microcomputers.
The benchmark is in fact not a benchmark of the computer itself, but
benchmark of BASIC interpreter as well as the hardware on which it runs.
Most 8-bit microcomputers have some implementation of BASIC interpreter,
so measuring execution of consistent BASIC code will become a nice
comparative value for evaluating computer's speed.
This test is no way complete. There may be situations in which poor
implementation of BASIC in fast machine will be slower than good
implementation on a slower computer. For video benchmark in CP/M
machines, it is needed to consider terminal characteristics too.

What was tested?
There were 2 tests performed, in each test time needed to completely
execute the program was measured:
1. Computation (floating-point) test - obtained by time of execution of following
code:

10 S=0
20 FOR N=1 TO 100
30 A=N
40 FOR I=1 TO 10
50 A=SQR(A)
60 NEXT I
70 FOR I=1 TO 10
80 A=A*A
90 NEXT I
100 S=S+A
110 NEXT N
120 PRINT ABS(1010-S/5)
130 END

The code has been taken from
Mr Umpirowicz site, so results may be
compared with his. Small differences may emerge from different versions of
chipsets, memory timings or refreshing configuration.

2. Display test - Putting 400 lines: 200 of 16 characters interlaced it by lines with number of current iteration. This way VRAM speed is benchmarked
as well as lines scrolling capability. Sample code is:

10 FOR I=1 TO 200
20 PRINT "ABCDEFGHIJKLMNOP"
30 PRINT I
40 NEXT I

The biggest problem here is simplifying the code to the level that
normalized commands are used. Elimination of scrolling may be done by
re-positioning the cursor, but not in all BASIC implementations it is
done the same way. In some, POKE is needed, other have special command
for it, while other ones need to print specific character. All of these
commands have different timing and computational yield. So here is a
trade-off: Include in measurement scrolling time or include diversity of
different code execution.

I decided to assume the following conditions:
1. Tests are performed on built-in BASIC interpreter, or interpreter
bundled with computer. That's why machines such as Robotron 1715 are not
included in test.
2. If it's impossible to avoid "Key-to-scroll" phenomena, key is just
held until the end of display tests.
3. Display tests was made using default (after power on) graphics mode.

Results
Assume that there may be 0.5s measurement error.
The smaller the bar is, the lower the time is and the computer is
faster. The results of tests are shown in the diagrams below:

And display test:

We can see some interesting things from these diagrams:
- Computational benchmark results are usually consistent with
Mr Umpirowicz
results.
- Ronex TPC-8300 calculator is computationally faster than ZX81 in slow
mode...
- Robotron KC85/3 and /4 are slow in displaying text. Maybe because they
have no text mode and they have to draw characters on screen?
- Differences in display speeds of Acorn computers may be caused by
different default display modes.
- In display benchmark Ronex TPC looks relatively fast, but its LCD is
only 2x24 characters and when it's changing it's hard do see anything.
- The 4MHz Z80-based TA Alphatronic is >6 times slower than 4MHz
Z80-based SBC computer, mostly because Alphatronic's CPU has display and
keyboard scanning tasks to do continuously, while in SBC it's terminal's
job. Also implementation of floating point operators may significantly
differ.

Let's look at Spectrums and their clones:

Here we can see some interesting facts too:
- Soviet Spectrum-like, not fully compatible clone made on TTL chips seems
to be a bit faster than original
- Didaktik M, which is based on T34VG1 logic circuit seems to display a
bit faster than Didaktik Gama with ULA
- Both computationally and in display tests there is not difference in
performance if we use "S.P.M. Spektrum" Zx Spectrum emulator on a
Unipolbrit 2086 computer.