The recent thread about EhBASIC made me re-visit it and port the latest "P5C" version to my Ruby board. I'm not sure it will be of interest to anyone - mostly because it would only run on a Ruby board but if anyone wants the source with my changes them please let me know.
However I did use it to re-visit some old things - mostly benchmarking. I was curious to see if the "C" changes (for the 65C02) were actually improving it in terms of speed - and sadly, no. At least not for the Mandelbrot - and that's possibly not surprising as 99% of the code is doing floating point calculations and I didn't see much change from the original MS Basic to EhBASIC - however we know from the 65C02 version of BBC Basic that not only can we go much faster, we can go much faster and add an extra byte of precision too...
So room for improvement - but like most of these projects - does anyone have the time or inclination to do it?
The results:
EhBASIC: 79 seconds
CBM2 BASIC: 82.5 seconds
BBC Basic 4: 48.2 seconds.
(And just for "LoL"s, I wrote the same program in BCPL and it runs in 26 seconds)
Anyway, I put a little video together:
https://youtu.be/bwUecbPB7TICode:
............,,,,,,,,,,,,,,'''''''''''''''''''''''''',,,,,,,,,,,,,
...........,,,,,,,,,,,''''''''''''''''''''''''''''''''',,,,,,,,,,
..........,,,,,,,,,'''''''''''''''''''''''~~~~===~~~~''''',,,,,,,
.........,,,,,,,,'''''''''''''''''''''~~~~~~=+[&+==~~~~~''''',,,,
........,,,,,,,'''''''''''''''''''''~~~~~~~==+: ;+++~~~~~~''''',,
.......,,,,,,'''''''''''''''''''''~~~~~~~~===+:[ / [+~~~~~~''''''
......,,,,,,''''''''''''''''''''~~~~~~~~~===+:;/?o[:+==~~~~~'''''
......,,,,''''''''''''''''''''~~~~~~~~~====+:O/x <;:+==~~~~~~'''
.....,,,,''''''''''''''''''''~~~~~~~~~===++:# X/+====~~~~'''
.....,,,'''''''''''''''''''~~~~~~~~~==++++:;/X [:++====~~~''
....,,,'''''''''''''''''''~~~~~~~~==+++:::;[/ X/;:+++++==~~'
....,,''''''''''''''''''~~~~~~~===+[<&x[[? <&x o&//<;:::[[=~~
...,,'''''''''''''''''~~~~~~=====+:; &O /[</&/:=~
...,'''''''''''''''''~~~========++:;< x :=~
..,,'''''''''''''''~~=========+++:;/<O ;+==
..,'''''''''''''~~~=========++++:< ## X<;:+=
..''''''''''~~~~==:/++++++++::::;/x [;:=
.,''''''~~~~~~===+:X[;:;; ;;::;;[ o/=
.,''''~~~~~~~===++;<xXo<<X &<[[[/ X:+
.'''~~~~~~~=====+::[& <<& /:=
.'~~~~~~~~=====+::;/? oO :=
.'~~~~~~~====++/;[/o [+=
.~~~~~~=++++::;/???X #:+=
.==++:/::+:;;[[o :+==
&[:+==
.==++:/::+:;;[[o :+==
.~~~~~~=++++::;/???X #:+=
.'~~~~~~~====++/;[/o [+=
.'~~~~~~~~=====+::;/? oO :=
.'''~~~~~~~=====+::[& <<& /:=
.,''''~~~~~~~===++;<xXo<<X &<[[[/ X:+
.,''''''~~~~~~===+:X[;:;; ;;::;;[ o/=
..''''''''''~~~~==:/++++++++::::;/x [;:=
..,'''''''''''''~~~=========++++:< ## X<;:+=
..,,'''''''''''''''~~=========+++:;/<O ;+==
...,'''''''''''''''''~~~========++:;< x :=~
...,,'''''''''''''''''~~~~~~=====+:; &O /[</&/:=~
....,,''''''''''''''''''~~~~~~~===+[<&x[[? <&x o&//<;:::[[=~~
....,,,'''''''''''''''''''~~~~~~~~==+++:::;[/ X/;:+++++==~~'
.....,,,'''''''''''''''''''~~~~~~~~~==++++:;/X [:++====~~~''
.....,,,,''''''''''''''''''''~~~~~~~~~===++:# X/+====~~~~'''
......,,,,''''''''''''''''''''~~~~~~~~~====+:O/x <;:+==~~~~~~'''
......,,,,,,''''''''''''''''''''~~~~~~~~~===+:;/?o[:+==~~~~~'''''
.......,,,,,,'''''''''''''''''''''~~~~~~~~===+:[ / [+~~~~~~''''''
........,,,,,,,'''''''''''''''''''''~~~~~~~==+: ;+++~~~~~~''''',,
.........,,,,,,,,'''''''''''''''''''''~~~~~~=+[&+==~~~~~''''',,,,
..........,,,,,,,,,'''''''''''''''''''''''~~~~===~~~~''''',,,,,,,
...........,,,,,,,,,,,''''''''''''''''''''''''''''''''',,,,,,,,,,
............,,,,,,,,,,,,,,'''''''''''''''''''''''''',,,,,,,,,,,,,
Cheers,
-Gordon