AM9511.BASの中を見る。
Am9511エミュレータに添付されているMBASIC用のサンプルコードAM9511.BASは、非常によくできています。これだけ見れば、Am9511に計算させることが簡単にできるようになります。
まず、最初に初期化。
Am9511のステータスコマンドポート番号とデータポート番号を明記して、計算に使う
変数Xを0("!"があるので単精度)で初期化します。
次に、ステータスコマンドポートに0H、NOPを送ります。GOSUB 1370はAm9511のBUSY解除待ちルーチンです。BUSY解除後に、Am9511の状態を表示します。
次にステータスコマンドポートに、1AHを送ります。これはπをスタックにプッシュする命令です。GOSUB 1370でBUSY解除待ちして、解除後、状態を表示します。
次のGOSUB 1660は、Am9511のデータスタックからデータを取り出し、MBASICのfloat形式に変換して、xにその結果を入れるルーチンです。
結果のXを表示します。もちろんXは3.14159になります。
一度、Xの値をYに退避して、GOSUB 1430に飛びます。これは、MBASICのFLOAT表現された値Xを、Am9511の浮動小数点数内部表現に変換して、Am9511のデータスタックに積むルーチンです。そして、先ほど説明したGOSUB 1660ルーチンを読んで、スタックから取り出して、表現をMBASICのFLOATに変換して、Xに入れて表示します。
YはAm9511のPUPI命令(πをスタックに積む命令)の結果、Xはその結果をスタックに積んで、そのデータを取り出した結果なので、当然、同じ値になります。
以上です。Am9511を操作するのに必要な、初期化、BUSY解除待ち、MBASICのFLOAT表現からAm9511表現への変換、その逆変換がそろっています。
簡潔かつ必要十分なコードです。これを使って、色々と計算してみます。