…なんてタイトルを付けると本物らしくなるが、ちょっと自分でもなにをやっているのかわからなくなってきたので、図にしてみる。一太郎ちゃん、花子ちゃん、出番だよ。
(でも図が下手なので、かえってわからなくなるかも知れない。ぐぅ…。)
えーと、ホスト側のインタプリタ言語であるGAME-78Kで配列アクセス命令を実行すると、シリアル線(RS-232C)を通してターゲット側にコマンドが送られる。ターゲット側はそのコマンドを解釈して(これが「コマンドインタプリタ」と呼んでいるもの)実行する…のだ。のだな? まちがいないな? ほんっっっっとだな?
たとえば配列の読み出し命令 A:0) を実行したとする。変数Aに $FF0Dが入っていた場合、シリアル線には 'R', 'F', 'F', '0', 'D' が送信される。データはデバッグしやすいようにバイナリではなくアスキー形式になっている。
コマンドインタプリタは最初の'R'を見てメモリ読み出し命令だと解釈し、続く4バイトをアドレスに変換する。そのアドレスからターゲット側のメモリ1バイト読み出すと、おなじくアスキー形式に変換してホストに送信する。
ホストはそれをバイナリに変換して式の結果とするわけだ。
配列の書き込み命令についてはアドレスに続いてデータも送られ、ターゲット側で処理される。この場合はターゲットからホストへのデータ送信はない。
ちょっと不満なのはターゲット側の処理が、たとえばアドレスが来るシーンでは4バイトのデータを期待して待ち続けることだ。別に困りはしないがなんかこう、美しくない。ためしにステートマシンを構成してみたら論理的にはすっきりしたが、少し行数が多すぎて面白くない。検討の余地あり。
書き上げた爽快感とともに、ちょっとの疲労感。これがまたいい。
関連リンク: http://www.dreambrain.jp/game/game-78k-document.html
(でも図が下手なので、かえってわからなくなるかも知れない。ぐぅ…。)
えーと、ホスト側のインタプリタ言語であるGAME-78Kで配列アクセス命令を実行すると、シリアル線(RS-232C)を通してターゲット側にコマンドが送られる。ターゲット側はそのコマンドを解釈して(これが「コマンドインタプリタ」と呼んでいるもの)実行する…のだ。のだな? まちがいないな? ほんっっっっとだな?
たとえば配列の読み出し命令 A:0) を実行したとする。変数Aに $FF0Dが入っていた場合、シリアル線には 'R', 'F', 'F', '0', 'D' が送信される。データはデバッグしやすいようにバイナリではなくアスキー形式になっている。
コマンドインタプリタは最初の'R'を見てメモリ読み出し命令だと解釈し、続く4バイトをアドレスに変換する。そのアドレスからターゲット側のメモリ1バイト読み出すと、おなじくアスキー形式に変換してホストに送信する。
ホストはそれをバイナリに変換して式の結果とするわけだ。
配列の書き込み命令についてはアドレスに続いてデータも送られ、ターゲット側で処理される。この場合はターゲットからホストへのデータ送信はない。
ちょっと不満なのはターゲット側の処理が、たとえばアドレスが来るシーンでは4バイトのデータを期待して待ち続けることだ。別に困りはしないがなんかこう、美しくない。ためしにステートマシンを構成してみたら論理的にはすっきりしたが、少し行数が多すぎて面白くない。検討の余地あり。
書き上げた爽快感とともに、ちょっとの疲労感。これがまたいい。
関連リンク: http://www.dreambrain.jp/game/game-78k-document.html
※コメント投稿者のブログIDはブログ作成者のみに通知されます