2020/05/06(水)MCS BASIC52でマンデルブロ集合ベンチマーク

BASIC-52が動く環境が出来上がったのでASCIIART(マンデルブロ集合)ベンチマークを走らせて見ました。11.059MHzのSTC89C52にBASIC-52(V1.1)を書き込んで実行すると6分38秒要しました。BASIC-52ではFOR-NEXTループ内からループの外へGOTOするとエラーとなる為プログラムの一部を修正。またダブルスピードモードでは3分20秒で終了。

マンデルブロ実行結果とプログラム

20200506_0.png

10 FOR Y=-12 TO 12

20 FOR X=-39 TO 39

30 CA=X*0.0458

40 CB= Y*0.08333

50 A=CA

60 B=CB

65 I=0

70 DO

80 T=A*A-B*B+CA

90 B=2*A*B+CB

100 A=T

110 IF (A*A+B*B)>4 THEN GOTO 200

120 I=I+1 : WHILE I < 16

130 PRINT " ",

140 GOTO 210

200 IF I>9 THEN I=I+7

205 PRINT CHR(48+I),

210 NEXT X

220 PRINT

230 NEXT Y

追記:

Basic52のマンデルブロ描画プログラムをANSIカラーバージョンで作成した方のサイトを発見