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:
20 FOR N=1 TO 100
40 FOR I=1 TO 10
60 NEXT I
70 FOR I=1 TO 10
90 NEXT I
110 NEXT N
120 PRINT ABS(1010-S/5)
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.
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 consistens 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.
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.
Last updated: 2017-04.
2017-04-16: Added Ei PECOM64 computer.