デバッグ用ユーティリティ [雑記]
5インチフロッピーを整理してたら DUAD-88 のソースファイルが入ったのフロッピーが見つかったのですが、当時作っていたユーティリティのソースの最新版だけが行方不明でした。
満杯になったから別のディスクにセーブしたんだろうか…。
TRON コマンドのあまりの無能さに「もう少しまともなモノが欲しい」と思って作っていたデバッグユーティリティなのですが…。
仕様は、
…と、これだけです(笑)
どういう具合に使用するかと言えば、プログラム内のデバグしたい部分の最初に 'CMD ON' を、終端に 'CMD OFF' を書いておくだけです。
まぁ、コマンドリファレンスだけだと分かりにくいので、プログラムでの使用例を載せておきます。
これを実行すると、
(テキトーだな^^;)
という具合に、出力されます。
また、別の使い方としては、
これを実行すると、
という具合に、どこで変数の内容が変更されているかが分かりやすくなります。
昔、これを作っていた時、KCB メンバーの S 氏に見せたら、「これ、おもしろいから ASCII に投稿したら…」と言われたのですが、「使い方説明の原稿を書くのが面倒くさいなぁ」と、ボツにしたんだよなぁ。
今だったら、丸1日あれば完成しちゃうんだけどな。
PC-8801 用なのですが、誰か使います?(笑)
満杯になったから別のディスクにセーブしたんだろうか…。
TRON コマンドのあまりの無能さに「もう少しまともなモノが欲しい」と思って作っていたデバッグユーティリティなのですが…。
仕様は、
書式:ON CMD GOSUB …
機能:コマンド毎の割り込みルーチンの開始行を定義する
機能:コマンド毎の割り込みルーチンの開始行を定義する
書式:CMD ON / OFF / STOP
機能:コマンド毎の割り込みの許可/禁止/停止を設定する
機能:コマンド毎の割り込みの許可/禁止/停止を設定する
…と、これだけです(笑)
どういう具合に使用するかと言えば、プログラム内のデバグしたい部分の最初に 'CMD ON' を、終端に 'CMD OFF' を書いておくだけです。
まぁ、コマンドリファレンスだけだと分かりにくいので、プログラムでの使用例を載せておきます。
' ' ON CMD GOSUB sample #1 ' DEFINT A-Z ON CMD GOSUB *TRAP | MAX=1000 DIM A(MAX) | なんたら かんたら | ' Bubble sort *BUBLESORT FOR I=1 TO MAX-1 FOR J=2 TO 1000 - I + 1 IF A[J] < A [J - 1] THEN CMD ON:SWAP A[J], A[J - 1]:CMD OFF NEXT NEXT RETURN | *TRAP PRINT USING "Swap ####:##### <-> ####:#####"; J-1, A[J-1], J, A[J] RETURN | END:RUN
これを実行すると、
Swap 916:15628 <-> 115:12832 Swap 629:29847 <-> 590:28359 Swap 182:21759 <-> 308:13172
(テキトーだな^^;)
という具合に、出力されます。
また、別の使い方としては、
' ' ON CMD GOSUB sample #2 ' DEFINT A-Z DEF FNLN=PEEK(&HE656)*256+PEEK(&HE656) ' 実行中の行番号 ON CMD GOSUB *TRAP | CMD ON | なんたら かんたら | CMD OFF | *TRAP PRINT USING "#####:X=###, Y=###";FNLN, X, Y RETURN | END:RUN
これを実行すると、
10000:X=240, Y=100 10000:X=240, Y=100 10000:X=240, Y=100 10010:X=240, Y=100 10010:X=240, Y=200 10020:X=240, Y=200 10020:X=240, Y=200 10030:X=240, Y=200 10040:X=240, Y=200
という具合に、どこで変数の内容が変更されているかが分かりやすくなります。
☆
昔、これを作っていた時、KCB メンバーの S 氏に見せたら、「これ、おもしろいから ASCII に投稿したら…」と言われたのですが、「使い方説明の原稿を書くのが面倒くさいなぁ」と、ボツにしたんだよなぁ。
今だったら、丸1日あれば完成しちゃうんだけどな。
PC-8801 用なのですが、誰か使います?(笑)
タグ:PC-8801
MSX版があったらぜひ使いたい! TRON/TROFFコマンドには自分も泣かされてます。
「PCレジスタを表示するように、現在注目している行番号を隅っこに表示してくれるだけでいいのに!」と、何度思ったことか知れません。
by 本名荒井 (2010-05-19 21:15)
本名荒井さん、コメントありがとうございます。
PC-8801 版は N88-BASIC 特有の 'ON … GOSUB ~' の登録テーブルを拡張する形で実装してあるので、他の BASIC に移植するのは難しいですね。
>現在注目している行番号を隅っこに表示してくれるだけでいいのに
その機能なら MSX に限らず Microsoft 系の BASIC には簡単に実装できそうです。
あんまり軽々しく言ってしまうと要望が殺到しそうですけど、MSX 関係の資料が手元に無いもので… OTL
資料があればトライしてみますよ^^
by Thunderbolt (2010-05-19 22:54)
いつもお世話になっております!
遅くなりましたがGoogle Groupの承認ありがとうございました。数日前愛機のグラフィックボードが破損してしまって...数日メールチェック程度しかできなくなってしまい、やっと部品が届き今日直りました...汗
趣旨はまったく同じ考えでした、笑
今ならCMSをカスタマイズして使うと登録も楽になりいいのかもです。あとネットショップオーナーっていうソフトもその名の通りネットショップ構築ソフトなんですが、かなりのカスタマイズができるので有効です。
歴史的価値のあるゲームを世に残せると思うんで積極的な雄志の方々を増やしていつかはやりたいですね。
by あやちだいち (2010-05-25 21:21)
あやちだいちさん、コメントありがとうございます。
グラボの交換作業、お疲れ様でした。
Google Groupの方は、有志の情報交換の場として作ったのでコンテンツは何もありませんが、協力していただける方が増えるなら一般公開してもいいかなと考えてます。
「CMS」って「Content Management System」のことですよね^^
どうも CMS って玉石混交の感じがして、何を使えば良いのか分からない状態です。
あやちだいちさんの方がお詳しい様なので、その時が来たらお任せしちゃいますね^^;
いつかは…
いつかは…
by Thunderbolt (2010-05-26 20:40)
TRONと比べるとずいぶん使い勝手が良さそうな命令ですね。
自分がBASICをメインに使っていた頃にこんなツールがあったら,さぞかし便利だっただろうと思います。
これなら「雑誌に投稿を」という声が上がるのも納得なのですが,ワープロが普及していなかった当時は原稿を書いたりするのも大仕事でしたから「面倒くさいなぁ」という気持ちもよく分かります。
こんな理由で未公開となっているツールって,世の中に結構たくさんあったりするのかもしれないですね。
by apaslothy (2010-06-01 02:56)
apaslothyさん、コメントありがとうございます。
他のソースの日付を見てみると '82 年辺りなので、これを作ってた頃は '83 年頃でしょうか。
'83 年だと PC-9801 上で動作する「松」が発売されていて KCB でも使っていたので、原稿用紙に書くほど手間は掛からなかったと思います。
やはり、稚拙な文章力が公になることが恥ずかしかったんでしょうかね(笑) 未だに向上してません... OTL
>こんな理由で未公開となっているツールって,世の中に結構たくさんあったりするのかもしれないですね。
「こんな理由で未公開になっているツール」のサルベージ&救済活動が忙しい今日この頃です。(自分だけですが…)
いやぁ、ASCII に投稿しておけばよかったと今更ながら後悔してます。
そうすれば、雑誌デビューできてたかもしれないのになぁ…(笑)
by Thunderbolt (2010-06-01 14:14)