MSXBASICでは各命令を中間コードとして変換されています。
実行後にBEEPをC0hと変換しなくてもいいように
中間コードはBEEPという文字がコードのC0hに変換されて
あらかじめBASICインタプリタでテキスト入力の時に前処理をしています。
このように命令をコードに変換する文字を予約語と呼んでいますが、
BASICを拡張する場合にC0hではどの予約語の命令を使っているかわかりません。
そこで、メモリの情報を知るために予約語を辞書のようなツールを作る必要があります。
では試しに予約語を含んだ命令を増設してみましょう。
既にダウンロードしたプログラムにBAS-COM2.BASがあります。(お!)
このプログラムは実行中の行番号のアドレスを取得(F6B7h,2バイト)の
BASICのワークエリアを参考にしています。
これを実行してSPACEを10回押すと#DEBUGという文字が出てきます。
Enter(RETURN)キーでSyntax errorという通常のエラーになります。
プログラムに戻りList 118を変えます。
118 #DEBUG
を
118 #BEEP
に変えて実行してみましょう。
ここでC0が表示されればよいですね。
#タ(C0)となりましたね。これが中間コードです。
118 #BEEP12
プチコン風にやってみました。C0の後に0Fh、12は0Chになります。
書いた文字がコードに数字が16進数に変換されるのは、すごく便利ですね。
MSXBASICは次世代のBASICを想定していたような感じがしますね。
後はIF A=&H0C THEN~というふうに組んでいけば機能できます。
昔、テープロードに失敗して不明な文字が出たりしたことがありませんか?
その正体は中間コードから変換された命令でした。
こんなことも★
プチコンでプログラムを入力してみました。
本当に数行でプリセットされたキャラが表示して動かすことができます。
そして何と「カタカナ」が50音配列でよいですね。
漢字は自作で文字セットを作っていくようで日本語変換はできないようです。
ペンタッチに違和感があるので、いろいろとサンプルプログラムをやってみます。
気になる解像度はDSソフト256×192でDSとほぼ同じです。
ということはMSXと同じということですね。MSXにしても違和感がありません。
文字色が256色というところも、何でだろうと疑問に思います。
このようなロースペックでは開発しがいもない気がするのですがね。
残念なことに3DSの800×240にはできないですね。
なお、プチコンはDSメモリに作成するもので、セキュリティ上
ネットからプログラムをダウンロードしたりすることはできないようです。
全てプログラムをペンで入力していきます。あしからず。
※コメント投稿者のブログIDはブログ作成者のみに通知されます