Z80

RUN命令を実装

2012年7月26日

KM-BASICで、複数行からなるプログラムが実行できるようになった。

2012-07-26-run.png

「RUN」命令部分のコードは簡単に書いたのだが、行をまたいでのプロセス移動の実装に少し時間がかかった。始め、「FOR」命令を使用した時の挙動が思うようにいかず、ここの部分のデバッグにはMZxx_internetという、ステップ実行ができるMZのエミュレーターを使わせていただいた。

あとは、しらみつぶしに実装してくだけ。ステートメントは、

・IF
・GOSUB
・RETURN
・DIM
・REM
・POKE
・CALL
・EXEC

といったところ。関数は

・NOT
・STRNCMP
・ABS
・ASC
・LEN
・SGN
・RND
・PEEK

あたり。現在9kbぐらいの大きさになっているが、最終的には12kbぐらいになるかもしれない。機能の割には大きいプログラムになってしまったが、Cで書いているので仕方がない。今時、この規模のプログラムをアセンブラーで書く気にはなれないし。

ところで、3万回ループをFOR分で実行してみると、凡そ6秒かかる。MZ-80K用の普通のBASICインタープリターのおよそ3-4倍の速度。まずまずか。

コメント

コメントはありません

コメント送信