私 A.Hiramatsu が作った、日立のH8/300H用やSH2用のBASICインタプリタです。現在、H8/3048版(暫定的にH8/3052にも対応)、H8/3664版、SH7050、SH7047版が完成しており、今後他のH8/SHにも対応していこうと考えています。
とくにメモリを外付けしなくても、CPU内蔵のROMとRAMだけで動作可能です。また、CPUの内蔵ROMに置いたBASICテキストをCPUリセット後に実行するようにすることも可能ですので、オールBASICで簡単にワンチップで動くアプリケーションを作成できます。
RAMを外付けした場合、その外付けRAM上にBASICテキストを置くことも可能です。
※H8/3664、SH7046はハード的にメモリの外付けが不可能なのでH8/3664版、SH7046版は外付けRAMには対応していません。
内蔵I/Oのレジスタアドレスを定数としてもっており、さらにビット操作命令も持っているため、H8/SHの内蔵I/Oを気軽にアクセスできます。H8/SHの内蔵I/Oの学習用としても最適です。
たとえば、 1000 WHILE BTST@(&SSR0,7)=0:WEND ' SSR0のビット7(TDRE)が1になるのを待つ 1010 POKE &TDR0,D ' TDR0にデータを書きこむ 1020 BCLR &SSR0,7 ' SSR0のビット7(TDRE)をクリヤ
みたいなわかりやすい記述が可能です。 |
古いタイプのBASIC(N88-BASIC や MSX-BASIC など)と違い、構造化IF構文や WHILE〜WEND、REPEAT〜UNTILなどのループ構文を持っており、わかりやすいプログラムを書くことが可能です。
秋葉原などで出まわっている多くの種類のキャラクタ液晶モジュールに対応しており、簡単に文字や数値を表示できます。よく使われるキャラクタ液晶は、データRAMのアドレスが飛び飛びになっていたりして扱いにくい面もあるのですが、そういった面倒な処理はBASICインタプリタがやってくれますので、ユーザーはLPRINT文で簡単に文字や数値の表示ができます。
SH版は現時点ではまだキャラクタ液晶モジュールには対応していません。近い将来対応の予定です。
BASICインタプリタのソースを添付しています。インタプリタが納得いかない動きをするときはソースを参照すれば原因究明に役立つと思います。ソースを見て、「この辺の処理、なんか間違ってない?」と思ったら遠慮無く私にメール等で文句を言ってください。前向きに対処します。
また、配布条件さえ守っていただければインタプリタをユーザーのほうで改造しても構いません。配布条件について詳しい事はアーカイブ内のドキュメントに書いてあります。
BASICインタプリタをROM(H8/SH内蔵、または外付け)に焼き、H8/SHのシリアルポートとパソコン等のシリアルポートを繋ぎ、パソコンのシリアル通信ソフト(HyperTerm、TeraTermなど)でBASICのプログラムやコマンドを入力して使います。
BASICプログラムのデバッグが終わったら、BASICプログラムをROMに焼けば、以後H8/SHの電源を入れるたびにそのBASICプログラムが自動的に立ち上がります。
以下はH8/3048版の説明書です。3664版、SH版は微妙に内容が異なりますが、大筋は同じです。とりあえず3048版の説明書を読んでいただければ超ミニBASIC for H8/SH の世界の雰囲気を掴んでいただけると思います。