記事閲覧

− 野ざらし言 −

5766 Re^14: N88-BASICの中間語

としき 2025/04/09(Wed) 01:29 [5761]へのコメント
http://toshiki.la.coocan.jp/
konnoさんが誠実な人であるのは間違いがないところでしょう。
ですが、この発言に関しては、ちょっと混乱を招くというか、資料的価値に
欠けるというか。

> NP2でN88BASIC を使って RENUM や中間語に変換してみました。

これ、変換に使ったツールの記述はありますが、変換後をどうやって表示している
のかがよくわからない。文字化けっぽい表記になっている、というのもあって。

ということで引っ張り出してきたのが、ASCIIの出版した「PC-Techkonw 8800」
という本。ISBN4-87148-292-8。archive.orgにあるかなぁ。
対象がPC-8801なので、PC-9801とは異なっているかもしれませんが、中間言語の
一覧が掲載されていたりします。これによると、例えば

FOR    82H
NEXT   83H
GOTO   89H
GOSUB  8DH
IF     8BH
PRINT  91H

などとなっているそうです。
また、プログラムの格納状況の具体例も載っています。
サンプルのプログラムは以下。

> 100 FOR I=0 TO 20 STEP .5
> 110  PRINT I,SQR(I)
> 120 NEXT I

これの中間言語での格納状況が以下。

> 8000 00 18 00 64 00 82 20 49 F1 11 20 DC 20 0F 14 20
> 8010 DF 20 1D 00 00 00 80 00 27 00 6E 00 20 91 20 49
> 8020 2C FF 87 28 49 29 00 2F 00 78 00 83 20 49 00 00
> 8030 00

転記に当たって間違いがあるかもしれません。
例えば、最初の「64 00」が行番号の100を表し、その次の82HはFORの中間言語。
行番号200は「6E 00」だけど、そこには字下げがあるから空白文字の20Hが
入っていて、その次にPRINTを表す91Hがある。
みたいな感じになっています。

この本には、ROM内のルーチンのどのアドレスに何をするコードがあるか、と
いう表も載っていて、それによると、RENUMを行うルーチンは75DDH〜7673Hに
あるとか。なんと、150バイト。もちろん、どこかよそのサブルーチンを呼んで
いるのかもしれませんが、でもRENUMでも使うような汎用性のあるルーチンて
ちょっと思いつかないので、これで全部のような気もする。
また、バッファとかワークエリアの一覧の表の掲載もあるけど、見た範囲では、
RENUM用のバッファって見つからない。やはり、あんまりその手のバッファを
使わないアルゴリズムであろうことが予想される。

ちなみに、PC-98用のTechknowを謳っている書籍はBNN社から発刊されている
と聞いています。さらにいうと、archive.orgに収録されているらしい。
もしかしたら、こちらには中間言語のもっと詳しくてわかりやすい説明が
載っているかもしれません。ないかもしれませんが。
 

関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)

- 5731.N88-BASICのRENUMのようなマクロ - としき 25/03/29-14:22

返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

おなまえ :
Eメール :
タイトル :
メッセージ: 通常モード(推奨)  整形モード(非推奨)  preモード(空白再現)
※ プログラムコード等を含まない場合は,できるだけ通常モードをご利用ください。

参照先 :
暗証キー: (英数字で8文字以内) プレビューなし


- 以下のフォームから自分の投稿記事を修正・削除することができます -

処理 記事No. 暗証キー