2020/10/22
アスキー形式のF-BASICコードを中間言語に変換するユーティリティー
<概要>現在使用しているPC上で保管している「アスキー形式のF-BASICコード」を
最終的にFM-7上の「F-BASIC中間言語」にします。尚、自分の作成ではなく、
拙作のFT245RL対応ソフトを作成してくれた「odaman68000」さま作成の
アセンブラ形式ユーティリティーの紹介・使用記になります。
https://github.com/odaman68000/FM7_FT245RL_TOOLS/releases
<ユーティリティーの使い方>
FM-7とFM-77はMMU等の拡張メモリを搭載してない時に同等なPCとします。
1)PC上で保管している「アスキー形式のF-BASICコード」をアセンブラソースに
インクルードする。アスキー形式のF-BASICであれば下のように埋め込むだけです。
;サンプルBASICテキスト
ascii includebin "PROMWR1015.asc" (アスキー形式のF-BASIC)
今回はOld68funさま製作のEP-ROMライター用のBASICコードをお借りします。
https://flexonsbd.blogspot.com/2020/10/f-basicp-rom-writer.html
2)上記のアセンブラソースを御使用しているPCで端末から(クロス)アセンブルします。
するとアスキー形式のF-BASICコードが埋め込まれたバイナリコードが生成されます。
3)上記のバイナリコードをFT245RL等を使い、FM-7に転送する。
FM-7上のメモリ量、メモリマップ等を勘案の上、FM-7に転送して下さい。
どの程度のメモリ量まで対応可能か判りませんので、小容量からお願いします。
4)バイナリコードをFM-7に転送後はFM-7のマシン語として実行する。
具体的には$5000以降に転送した時は「EXEC &H5000 <リターン>」です。
この操作後、エラー(Syntax Error)が出ますが、中間言語になってます。
5)「LIST」コマンドでF-BASICコードの「LIST」が出力します。
使いこまれたユーティリティーではないので不具合が生じても被害の出ない
環境・状況から使い始めることをお願いします。Old68funさま作成の
コードであれば「DUMP」から使用感を確かめて頂ければと考えます。
<注意>
下のようなことが「odaman68000」さまより報告されてます。
・ごく稀に文字化けの様な形で変なリストになる事がある(原因, タイミング不明)
・めちゃくちゃなBASICリストだとどうなるか、まだ試していない
<具体的に操作してみた時の状況報告>
1)アセンブラコードの「asc2bas1012.6809」とF-BASICコードの
「PROMWR1015.asc」は下の「onedrive」から入手して下さい。
https://onedrive.live.com/?authkey=%21Aln7kHlkHDL28EE&id=6357DCB7DCA88133%21108&cid=6357DCB7DCA88133
アセンブラの実行形式と同一のフォルダに置いてください。
2)使ったアセンブラは「asm6809」ですが、アセンブラは用意して下さい。
https://www.6809.org.uk/asm6809/doc/asm6809.shtml
尚、他のアセンブラでは確かめてません。
3)ターミナル(端末)から下のようにコマンドを打ちしました。
$ ./asm6809 ./asc2bas1012.6809 -o ./test20201022
4)「test20201022」がバイナリコードとして生成されますのでFM-7に
転送して下さい。<ユーティリティーの使い方>も参照して頂きたいですが
$5000から転送した時のバイナリ(データ)の終端アドレスは$68CEです。
この場合は「EXEC &H5000 <リターン>」です。
5)尚、32KB近く使うF-BASICコードであれば、分割してアセンブルして
FM-7に転送した後にマージする必要があるのでFM-7側に補助記憶装置が
必要になると思います。
最後に「odaman68000」さまと「Old68fun」さまに改めて感謝します。
それではまた。