暇にまかせてネットから拾ったモーションデータや、デアゴHPでの皆さんの投稿データを元に、マップ切替タイプのリモコンテンプレートを作成されてるそうです。プログラムを追加するたびに、チェックも兼ねて、roboBASICで、コンパイルしていたそうです。ある時、エラーも出ず、一見、正常にコンパイルされているんですが、オブジェクトファイルが変になってしまったそうです。ところが、RZ1Basicを使うと、正常にコンパイルされ、オブジェクトファイルは問題なく生成されたそうです。●検証yukiさんから添付して頂いた問題ありのコードと、問題なしのコードを、私もRZ1BasicとroboBASICを使ってコンパイルしてみました。roboBASICで問題なしのコードをコンパイル:RZ1Basic=roboBASIC=roboBASICで問題ありのコードをコンパイル:RZ1Basic=roboBASIC=これを見る限り、RZ1BasicもroboBASICも、問題ありも、問題なしも、コンパイル結果は同じバイト数ですし、確かにエラーも出ず、roboBASICに問題があるようには感じませんでした。なんと、オブジェクトファイルが変になっているじゃあ〜りませんかROBOBASICのプログラムは、MR-C3024の外付けEEPROMに転送されます。そのメモリーの容量は64KBです。なんで、私は64KBまでプログラムが扱えると思っていました。(32768/1024=32KB)があります。オブジェクトファイルが問題なく作られているのは、32767以下で、それ以上の場合、オブジェクトファイルに問題が生じていることがわかりましたので、この時点で、roboBASICを使った場合、32KB以上のプログラムを作ることができないのかと思いました。32KBを越えるプログラムも書けないですし、オブジェクトファイルまでチェックしていないので、32KB以上でオブジェクトファイルに問題が生じることなんて、簡単には気が付きませんよね。なるプログラムを、RZ1Basicで転送し、起動を調べてみた結果、32KBを越えるプログラムでも動かすことができることが確認されました。roboBASICは32KB以上のプログラムを扱える?roboBASICでは、32KBを越えるとオブジェクトファイルが壊れてしまいますが、RZ1Basicと同じ様に、最終的に合計43905バイトになるプログラムを転送してみました。AB"となっており、ちゃんと43905バイト転送されているようです(RZ1Basicのコマンドテスト機能を使用)。下の図から、その転送されたコードが、正しいことが確認できます(RZ1Basicのオブジェクトコード表示機能)。実際に、正常にロボットを起動させることも確認できました。●まとめ以上の結果から、roboBASICでは、オブジェクトコードが32KB以上になるプログラムにおいて、オブジェクトファイルが破損する。オブジェクトファイルが破損していても、転送されるオブジェクトコードには問題はなく、ロボットを正常に起動させることができる。オブジェクトコードには問題はないことから、オブジェクトコードをファイルとして保存する際に破損する。Q-boの本体ロボゼロロボゼロのバックナンバーを一覧にしたページへロボゼロのコントロールボード(HSWB-4F)@niftyが提供する無料ブログはココログ!RSSを表示する。