Menu

Tree [r13] /
 History

HTTPS access


File Date Author Commit
 GFA.LST 2023-03-20 buzzphp [r3]
 GFA2.BAS 2023-03-20 buzzphp [r7]
 GFA3.BAS 2023-03-20 buzzphp [r8]
 GFA3.PRG 2023-03-20 buzzphp [r8]
 HISOFT.BAS 2023-03-20 buzzphp [r1]
 HISOFT.PRG 2023-03-20 buzzphp [r2]
 HISPEED.PAS 2023-03-20 buzzphp [r11]
 HISPEED.PRG 2023-03-20 buzzphp [r11]
 HSBASIC.PRG 2023-03-20 buzzphp [r12]
 OMIKRON.BAS 2023-03-20 buzzphp [r2]
 OMIKRON.LST 2023-03-20 buzzphp [r2]
 OMIKRON.PRG 2023-03-20 buzzphp [r2]
 README 2023-03-20 buzzphp [r13]
 STOS.BAS 2023-03-20 buzzphp [r1]
 STOS.LST 2023-03-20 buzzphp [r4]
 STOS.PRG 2023-03-20 buzzphp [r5]

Read Me

Benchmarking Atari ST BASIC's
-----------------------------

The BASIC's tested are Hisoft BASIC, STOS, Omikron & GFA

I wanted to know which BASIC would be best for coding simple
block based games. The benchmark test is:

1) Define an array of 40x25 integers
2) Fill the array with random colours (0-15)
3) Draw the array via the builtin rectfill procedures using color from map
4) Each block is to be 7x7 in size and spaced 8x8 pixels so
   a screen of 320x200 pixels is covered in coloured blocks
5) Repeat 10 times

The test is designed to see how suitable each BASIC would be
for programs like Snake, Tetri$, Breakout, Pong, Game of Life, etc.

The same method can also be used for board games like Chess, Checkers,
and RPG games. In which case, rectangle fill's can be replaced with
image blitting.

Obviously, for each game type, you could optimize by using a "draw as you go"
method, or record "dirty cells/cols/rows" to prevent overdraw.

All the BASIC's tested support integrating machine code and each supply
a variety of extra graphics functions for various purposes.

I hope you find the test interesting. I coded these because I spent a few months
coding in Hisoft BASIC, only to end up with less than Stella results.

The test is not designed to compare BASIC to C, Pascal, etc. BASIC has
some very attractive attributes if you want to work on a 520ST/Floppy system.

BENCHMARK RESULTS
-----------------

All* Tests were made under TOS 2.06 without any ACC's or screen accelerators.
Machine was a 520ST/E, except for Hisoft BASIC which required a 1024ST

* Omikron BASIC 2.2 failed to run on TOS 2.06, therefore the interpreter test was
done under 1.0. The resulting compiled version runs on TOS 2.06

OMIKRON BASIC 2.2
Interpreted: 48 Secs (TOS1.0) / Compiled: 41 Secs (TOS1.0) / Compiled: 28 Secs (TOS 2.06)

OMIKRON BASIC 3.01
Interpreted: 24 Secs / Compiled: 17 Secs

GFA BASIC 2.0
Interpreted: 44 Secs / Compiled: NA

GFA BASIC 3.6
Interpreted: 39 Secs / Compiled: 26 Secs

STOS 2.6
Interpreted: 278 Secs / Compiled: About the same. PRG Crashed

Hisoft BASIC 2.10
Interpreted: NA / Compiled: 44 Secs

CONCLUSION
----------

The clear winner is Omikron BASIC 3.01, which recorded an interpreted speed
faster than GFA 3.6's compiled speed.

While GFA speed improved from 2.x to 3.x, the improvement only barely beats
Omikron BASIC 2.2 from 1986

I was expecting good things from Hisoft BASIC, but its speed is a clear 3rd place.
Hisoft BASIC was woefully slow to compile and requires more RAM and screen space
to accommodate its GEM interface. That said, Hisoft BASIC is the most advanced BASIC
on the Atari ST and provides a fantastic experience when run in an emulator.

STOS.... Well, what can I say? 278 seconds is a rotten result. I was able to compile
the program, but the speed wasn't that much better. The PRG crashed during testing,
and I'm not overly interested to find out why.

That said, STOS has been shown to work well, if you stick to using its builtin sprite engine.

FINAL WORD
----------

Personally I love all this old software. While it's great to work with more modern software,
the question is then, where do you stop? Do you limit yourself to 1992 versions, 1995? 2000?

So, I'll be using Omikron BASIC. They all have faults, and really, 30+ years on, does it matter?

Cheers


Source and some PRG's are available here:

https://sourceforge.net/p/atari-st-basic-benchmarks/code/HEAD/tree/