SSブログ

デバッグ用ユーティリティ [雑記]

5インチフロッピーを整理してたら DUAD-88 のソースファイルが入ったのフロッピーが見つかったのですが、当時作っていたユーティリティのソースの最新版だけが行方不明でした。
満杯になったから別のディスクにセーブしたんだろうか…。

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
nice!(0)  コメント(6)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 6

本名荒井

MSX版があったらぜひ使いたい! TRON/TROFFコマンドには自分も泣かされてます。
「PCレジスタを表示するように、現在注目している行番号を隅っこに表示してくれるだけでいいのに!」と、何度思ったことか知れません。
by 本名荒井 (2010-05-19 21:15) 

Thunderbolt

本名荒井さん、コメントありがとうございます。

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) 

Thunderbolt

あやちだいちさん、コメントありがとうございます。

グラボの交換作業、お疲れ様でした。

Google Groupの方は、有志の情報交換の場として作ったのでコンテンツは何もありませんが、協力していただける方が増えるなら一般公開してもいいかなと考えてます。

「CMS」って「Content Management System」のことですよね^^
どうも CMS って玉石混交の感じがして、何を使えば良いのか分からない状態です。
あやちだいちさんの方がお詳しい様なので、その時が来たらお任せしちゃいますね^^;

いつかは…
いつかは…

by Thunderbolt (2010-05-26 20:40) 

apaslothy

TRONと比べるとずいぶん使い勝手が良さそうな命令ですね。
自分がBASICをメインに使っていた頃にこんなツールがあったら,さぞかし便利だっただろうと思います。
これなら「雑誌に投稿を」という声が上がるのも納得なのですが,ワープロが普及していなかった当時は原稿を書いたりするのも大仕事でしたから「面倒くさいなぁ」という気持ちもよく分かります。
こんな理由で未公開となっているツールって,世の中に結構たくさんあったりするのかもしれないですね。
by apaslothy (2010-06-01 02:56) 

Thunderbolt

apaslothyさん、コメントありがとうございます。

他のソースの日付を見てみると '82 年辺りなので、これを作ってた頃は '83 年頃でしょうか。
'83 年だと PC-9801 上で動作する「松」が発売されていて KCB でも使っていたので、原稿用紙に書くほど手間は掛からなかったと思います。
やはり、稚拙な文章力が公になることが恥ずかしかったんでしょうかね(笑) 未だに向上してません... OTL

>こんな理由で未公開となっているツールって,世の中に結構たくさんあったりするのかもしれないですね。
「こんな理由で未公開になっているツール」のサルベージ&救済活動が忙しい今日この頃です。(自分だけですが…)

いやぁ、ASCII に投稿しておけばよかったと今更ながら後悔してます。
そうすれば、雑誌デビューできてたかもしれないのになぁ…(笑)

by Thunderbolt (2010-06-01 14:14) 

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。