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に収録されているらしい。 もしかしたら、こちらには中間言語のもっと詳しくてわかりやすい説明が 載っているかもしれません。ないかもしれませんが。
関連記事一覧ツリー (▼ を押すとツリー全体を一括表示します)
返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)
- 以下のフォームから自分の投稿記事を修正・削除することができます -