[新連載]復活!TINY BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
すべてはここからはじまりました。
中日電工も。
40年前を振り返りつつ新連載です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第87回]
●RND(2)
前回予告しましたように、今回はTINY BASICのRND関数を実際に使って、その実力のほどを確認してみたいと思います。
実はRND関数のテストをする過程で「中日電工版」TINY BASICにバグがみつかりました。
ひょっとすると皆様も当記事を参考にしてさっそく試してみられるかもしれませんので、下にバグ修正後の最新版のリンクを用意しました。
エンドコードの問題を回避するため拡張子はtx2にしてありますが、中身はプレーンテキストですのでこの拡張子のままでもメモ帳やTeraPadなどで開くことができますが、できればダウンロード後に拡張子をtxtに変更してお使いください。
詳しくは[第41回]、[第42回]をご参照ください。
またダウンロード後のアセンブル作業や、ZB3BASICにロードして実行する手順などについては[第33回]を参照願います。
tinybstb.tx2
本来的には上のテキストファイルをND80Z3.5などに附属の8080アセンブラASM80.comにかけてバイナリファイルを作っていただくことが望ましいのですが、「そういう面倒なことはやりたくない」とお思いの方もいらっしゃるかもしれません。
何事もお客様第一のサービスが肝要でありますから、下にアセンブル済みのバイナリファイルのリンクも用意しました。
拡張子をbinにしますと、ひょっとしてウイルスチェックにひっかかってしまうかもしれません。
ですから拡張子をbbbに変えてあります。
ダウンロード後に拡張子をbinに変更してお使いください。
中身はバイナリファイルですから、このままダウンロードしてND80Z3.5などのシステムのあるフォルダにコピーしていただいたあとで、ZB3BASICで/LD TINYBSTB.BBB,8000[Enter]のようにしてロードすることもできます。
tinybstb.bbb
さて。
準備ができたところでいよいよRND関数のテストです。
とりあえず即席で作ったテストプログラムです。
logfile nd80zlog\0909072.txt open ND80ZVに接続しました 0001 0000 - z 1000 00C3 - *** nd80z3 basic **** >/ld tinybstb.bin,8000 loading TINYBSTB.BIN ...1fdf(8159)bytes loaded,from 8000 to 9FDE >jp 8000 TINYBASIC OK )10FOR A=1 TO 10 )20@(A)=0 )30N.A )40FOR B=1 TO 100 )50A=RND(10) )60@(A)=@(A)+1 )70N.B )80FOR A=1 TO 10 )90P.A,@(A) )100N.A ). 10 FOR A=1 TO 10 20 @(A)=0 30 N.A 40 FOR B=1 TO 100 50 A=RND(10) 60 @(A)=@(A)+1 70 N.B 80 FOR A=1 TO 10 90 P.A,@(A) 100 N.A OK |
実行してみました。
)R. 1 8 2 5 3 19 4 9 5 7 6 13 7 10 8 9 9 5 10 15 OK |
100回程度ではちょっとバラつきが大きいようですが、なんとなくそれなりに計算できているように見えます。
1000回にして再実行してみました。
行番号40を変更するため
40 FOR B=1 TO 1000[Enter]
を入力しました。
こういうことが簡単にできるというのがBASICインタプリタの強みです。
)40 FOR B=1 TO 1000 )R. 1 106 2 111 3 84 4 95 5 82 6 124 7 66 8 116 9 85 10 131 OK |
まだばらつきがあるもののかなりよい感じでは?
もう一声ということで10000回にして再実行しました。
)40FOR B=1 TO 10000 )R. 1 957 2 1080 3 927 4 1031 5 875 6 1127 7 746 8 1192 9 881 10 1184 OK |
原始的なインタプリタということもあってさすがに実行時間は遅いです。
10000回の実行では1分ぐらいかかりました。
結果としては、まあこんなもんじゃありませんかねえ。
超簡略な乱数発生プログラムとしてはなかなかによくできていると思います。
簡単なゲームなどに使うのならば、これで十分でありましょう。
復活!TINY BASIC[第87回]
2020.9.11upload
前へ
次へ
ホームページトップへ戻る