ロビプログラムアナライザー
免責事項
本アプリケーションを使用することによって、発生した損失や損害に対して株式会社メディアクラフトは一切責任を負いません。
なおロビで動くプログラムでも本プログラムではコンパイルできない場合がありますのでご了承ください。
ロビプログラムアナライザーはロビ2のプログラムであるSTARTUP.BINを解析するソフトウェアです。
画面左側にSTARTUP.BINの内容をバイナリー形式で表示します。
画面右側にはそれに対応するロビ1プログラムのRM4形式で表示します。
またSTARTUP.BINのバイナリデータを直接変更する機能もあります。
ロビ2のバイナリープログラムについてはこちらの解説ベージを参照してください。
プログラムの読込み
「読込み」ボタンを押してロビ2のブログラムを読込みます。
「開く」ダイアログで解析するSTARTUP.BINを指定して開きます。
STARTUP.BINを読込むと画面左側(ダンプリスト)にバイナリー形式のバイト単位(16進数2桁)で表示されます。
左部分はアドレスが(16進数8桁)で表示されます。
コマンド単位で背景色が色分けされます。
画面右部分(プログラムリスト)は表示中のアドレス部分をRM4形式に変換してリストボックスで表示します。
表示されていない部分は右端と下に表示されるスクロールバーをスライドする事によってリストをスクロールして見る事ができます。
なおバイト数が大きいメモリ転送は転送されるデータ(2バイト)数で表示されます。
表示アドレスの変更
ダンプリストをマウス左ボタンでクリックするとカレント位置を示すカーソル(赤線)の位置が変更されます。
指定する位置はコマンド(背景色単位)の先頭でなくても構いません。
ダンプリストの下にカレントトアドレスとその値がそれぞれ8桁、2桁の16進数で表示されます。
現在位置が変更されると右側のリストのカーソルも連動して変更されますので対応するRM4形式のコマンドを確認する事ができます。
プログラムリストの方をクリックするとカレント位置もそのコマンドの先頭に変更されます。
カーソル位置のコマンドがジャンプ、条件ジャンプまたはサブルーチンコールの時、そのジャンプ先のアドレスがダンプリストに表示中の場合はその位置にジャンプ先カーソル(青線)が表示されます。
この時、「ジャンプ」ボタンを押すとカレント位置はジャンプ先のアドレスに変更されます。
ジャンプ先カーソル(青線)が表示されていない場合でも「ジャンプ」ボタンが押せる場合は、ジャンプするとそのアドレスを先頭にリストが書き換えられます。
なおダンプリストでマウス左ボタンのダブルクリックまたはプログラムリストのダブルクリックはカレント位置をその位置に変更してそのコマンドがこれらのコマンドに該当する場合は「ジャンプ」ボタンを押した時と同じ動作をします。
「移動」ボタンを押すとダンプリストの先頭を表示中のアドレスに切り替えられます。
表示されているアドレスはキーボードの入力や貼り付け操作で変更できますので任意のアドレスのダンプリストに切り替える事ができます。
「検索」ボタンを押すと表示中のアドレスを指定しているジャンプ命令やコール命令の場所に切り替えられます。
命令の前後も参照できるように少し前のアドレスから表示されます。
ジャンプ命令や他コール命令の他、メモリ命令のアドレスや定数のロード命令の値も検索の対象になります。
なお定数を指定する時もアドレス同様、16数で指定してください。
表示されているアドレスはキーボードの入力や貼り付け操作で変更できますので任意のアドレスや定数の検索が行えます。
なお表示中のアドレスは検索ボタンでは書き換えられないので連続して同じ値での検索が行えます。
「前ページ」ボタンを押すとダンプリストが前のページに切り替えられます。
「次ページ」ボタンを押すとダンプリストが次のページに切り替えられます。
「移動」「ジャンプ」「音声認識」で表示アドレスが変更された場合、変更前のカレントアドレスが保存されます。
「戻る」ボタンを押すと保存したアドレスに切り替えて戻る事ができます。
連続して押すと遡って戻る事ができます。
「認識語」ボタンを押すと指定した認識語で実行されるサブルーチンのアドレスに変更されます。
音声認識語から認識語を選択するか音声認識番号を直接キーボドから入力してOKボタンを押してください。
なお「はい」や「いいえ」などの応答の認識語も選択できますがその場合は該当するサブルーチンがないためこの機能は使えません。
また応答以外でも一部の認識語はこの機能が使えない場合があります。
プログラムリストのコピー
「コピー」ボタンを押すと表示中のプログラムリストがクリップボードにコピーされます。
メモ帳等に貼り付けて解析結果を保存する事ができます。
コピー→貼り付け→次ページを繰り返す事によりプログラムの広範囲に渡って保存する事ができます。
「詳細コピー」をチェックしておくとメモリ転送のデータを全てコピーします。
またアドレスをブロック名(上図青線)としてコピーするのでRM4ファイルに変換する時に利用できます。
なおテキスト出力ボタンを押すと一括でRM4プログラム用のテキストファイルに変換する事ができます。
「LED拡張」をチェックしておくとメモリ転送のデータをロビ1用に拡張します。
ロビ1のLEDの制御アドレスはロビ2のポーズ命令で転送されるデータより大きいアドレスのためロビ2のポーズ命令ではロビ1のLEDは制御できません。
そこでこのチェックを付ける事によりロビ2のLED制御部をロビ1のLED制御部(上図赤線)にコピーしてロビ1用のポーズ命令に変換します。
なおプログラムリストをコピーしただけではコピーした範囲外にジャンプしていたりサブルーチンをコールしている場合があります。
その場合はコピーしたプログラムリストをテキストエディタで手直しする必要があります。
「CALL抑制」をチェックしておくとCALL命令をブロックのコメントとしてコピーします。
CALLするサブプログラムがなくてもプログラム動かす事ができます。
ただしサブプログラムの部分が実行されないのでロビ2の動きと異なる場合があります。
「CALL変換」をチェックしておくとCALL命令をcall filename="xxxx.RM4"に変換してコピーします。
この場合は別途サブルーチンのRM4ファイルを用意する必要があります。
本機能ほ使ってでサブプログラムを作成する事ができます。
RBAnalizer.ini(設定ファイル)にフォルダーを指定するとファルダー名が出力されます。
フォルダーを指定する時は最後に\を付けてください。
プログラムリストのテキスト出力
「テキスト出力」ボタンを押すと現在表示中のアドレスからリスト表示部分をテキストファイルにサブプログラムの範囲を自動的に抽出して出力します。
従って開始するアドレスはサブプログラムの先頭(call命令で呼ばれるアドレス)でないといけません。
またあいさつして等の認識語ボタンで移動したサブプログラムはその中からランダムに実行するサブプログラムを呼んでいるので呼ばれているアドレス)でないといけません。
「テキスト出力」ボタンを押すとファイルダイアログが表示されるので出力するテキストファイルを指定してください。
この時ファイルの種類をRM4とTXTが選択できます。
RM4を指定した場合はテキストファイルに出力した後RM4形式のプログラムファイルに変換します。
コピー機能の「詳細コピー」「LED拡張」「CALL変換」のチェックの指定に関わらずこれらはチェックオンの状態で出力されます。
出力するリストにcall命令がある場合は上記のダイアログが表示されます(姿勢制御等のサブルーチンは除く)
はいを答えるとcall命令はコメントに変換されて処理を続けます。
いいえを答えると処理がその部分で終了されます。
実行部分のサブプログラムのアドレスに移動して出力し直してください。
RM4ファイルに出力した場合はテキスト出力に成功すると上記のダイアログが表示されます。
はいを答えるとジャンプアドレスを変換してRM4形式のプログラムに変換します。
このプログラムはそのままロビ1で動かす事ができます。
なお姿勢判定のサブルーチンはコメントに変更されるため充電椅子状態の警告や立ち上がり動作をやらないので注意してください。
プログラムの変更
「更新」ボタンを押すとカレントアドレスの値がボタンの左隣に表示中の値に変更されます。
この表示中の値は現在のカレントアドレスの値が表示されていますかキーボード操作や貼り付け操作で変更する事ができ任意の値に変更できます。
値は2桁の16進数で指定します。
「更新」ボタンを押されるとダンプリストとプログラムリストも変更された値で更新されます。
またカレントアドレスも+1されますので連続したアドレスを更新する場合はそのまま次の値を更新する事ができます。
全ての値を更新したら「書込み」ボタンを押して実際のプログラムファイルを更新します。
読込んだプログラムファイルが変更されますので書込みを行う場合は事前にバックアップファイルを取っておいてください。
なお「更新」ボタンを押しただけではファイルは更新されませんので注意してください。
書込みを忘れて本プログラムを終了しようとした場合は警告ダイアログが表示されますのでその指示に従ってください。
命令の途中のアドレスを変更する場合は次の方法で行ってください。
変更するアドレスの少し前から表示します。
例えば0x294b7の場合は29400と入力して移動ボタンを押してください。
左のダンプリストの0x294b7の位置をクリックするとそのアドレスと値がテキストボックスに表示されます。
また指定したアドレスより後のアドレスから表示される場合は「前ページ」ボタンを押しても前のアドレスから表示する事ができます。
プログラムのダウンロード
本プログラムの最新版は以下のリンクからダウンロードする事ができます。
RBAnalyzer.zip
なおロビのプログラム変更やSDカードの書き換えは、ロビ本体への影響を及ぼす可能性があるのであくまでも自己責任という事でお願いします。
また必ずオリジナルのSDカードのバックアップは取っておいてください。
問題があったらオリジナルのSDカードに戻してください。
目次に戻る