============================================================================== Java2(GUI)版 デバッグツールの使い方 Monitor ・メモリ種別ごとの内容の確認・編集 ・CPU毎のレジスタの確認・編集 Tracer ・ブレイクポイントの設定 ・ステップ動作の設定 ============================================================================== ■Monitor □画面の構成 -------------------------------------------------------------------------- ・メモリエディタ ├メモリ種別のプルダウンリスト / バンク設定スピナ / Backupボタン └バイナリエディタ ・検索・置換フォーム ├検索データ入力テキストボックス / 前方検索ボタン / 後方検索ボタン └置換データ入力テキストボックス / 前方置換ボタン / 後方置換ボタン ・CPUモニタ □メモリエディタ -------------------------------------------------------------------------- メモリ種別のプルダウンリスト, バンク設定スピナ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・バイナリエディタにロードするメモリ種別を選択します 必要に応じてバンクの情報を追加します バイナリエディタ, Backupボタン - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ・初めてメモリの内容がロードされたとき, または [Backup] コマンドによって その時点の値がメモリ種別毎にバックアップされます その後のエディタでの編集やCPUの動作等でバックアップ値から変化した部分は 背景色が変わります ポインタを当てるとバックアップされた値を確認できます [Restore] コマンドでバックアップされた値に戻すことができます ・バイナリエディタには下記ファイルをドロップできます 対象範囲外のデータは無視します コンソールにロード結果が表示されるので確認してください ・ASM : アセンブルソース アセンブル結果をメモリイメージとして上書きします 開発終盤の調整局面を想定しているので logは吐きません ・BIN : PC-8X01 の「BIN形式」 ヘッダ(アドレスの情報)が必要です ベタなバイナリファイルは使用できません ・HEX : Intel HEX ・MOT : モトローラの Sフォーマット ・キーボードによる操作方法 (一般的な操作は割愛しました) ・[space], [Shift]+[space] 動作 : nibbleカーソルの移動 +[Shift] で前方移動になります ・[Del], [BS] (+[Shift]) 動作 : 初期値に戻す ([Restore]コマンド) 範囲選択されていなかった場合はカーソル位置を更新します 次へ : [Del], [Shift]+[BS] 前へ : [BS], [Shift]+[Del] ・[F3], [Shift]+[F3] 動作 : 簡易検索 フォーカスの当たっている範囲と同じ値を探します +[Shift] で前方検索になります ・[Alt]+[0],[1], ...,[F] 動作 : 0x0000,0x1000, ...,0xF000 へのジャンプ ・[Ctrl]+[V] 等 動作 : ペースト 16進ダンプ⇔ASCIIダンプ相互のコピペには対応していません 他のバイナリエディタとのやり取りは想定していません HEXエリアでは無効な文字に出会った時点でペーストを中止します ただし、(全角)スペース, タブ, カンマ, 改行 は無視して続行します 誤爆時の被害を最小限に留めたいので「無効な文字はすべて無視」しません 改行コードはクリップボード格納時に改変されることがあるようです 改行込みの文字列をペーストした際は意図した内容か確認してください ・[Ctrl]+[C] 等 動作 : クリップコピー ペースト用のイメージ(文字列)をクリップボードに送ります 16進ダンプ⇔ASCIIダンプ相互のコピペには対応していません 他のバイナリエディタとのやり取りは想定していません ・拡張コピー 外部へデータを持ち出す手段として「拡張コピー」を用意しました コンテキストメニューから実行してください ・アセンブルソース (逆アセンブラ) アセンブルソースの形でクリップボードにコピーします 選択範囲末尾が命令の途中だった場合は範囲を超えて逆アセンブルします ・アセンブラの DBフォーマット アセンブルソースとしてそのまま使える「DB + データ列」でコピーします ・BASICの DATA文 N BASIC の DATA文の形でクリップボードにコピーします 行番号は 1000〜 の固定ですので必要に応じて変更してください メモリエディタから BASIC のスクリーンエディタにコピペできるのですが そういう使い方をしようと思って作ったのではありません ・HEX : Intel HEX ・MOT : モトローラの Sフォーマット このふたつは 7bit ASCII なので、テキストファイルとして扱えます 改行コードについては調整が必要となる場合(機種)があるかもしれません 直接ファイルとして出力する機能を作る予定はありません ・注意 ・バックアップはメモリ種別毎に管理しています 物理メモリ毎ではありませんので、ページによって Restore する値が異なる 場合があります ・Current Map は、そのときに割り当てられていた物理メモリを繋げたものです ミラーや PC-8801 の TEXT WINDOW などのアドレス修飾の影響を受けます ・物理メモリの ReadOnly 属性は無視して編集が可能です ・表示系のメモリの内容を書き換えても表示は更新されません ・メモリ未実装エリアの内容は 0xFF になっています 現状では編集結果が反映されますが「実装状態」の扱いにはなりません 「ゴースト」を再現している機種では、エディタ上の内容は CPUから見えません データを編集しても「実装状態」の扱いにならない為、ゴーストしか見えません 起動後に何かをロードして使いたい場合は(何でも良いので) cfg でファイルを 与えて起動してください ・I/Oがマッピングされている場所は *最後に読み書きされた値* が入っています 編集結果は反映されません ※I/O領域の「未アクセス」表現については検討中 ・CPU が直接参照できないメモリや 80系の I/Oポートには対応していません 技術的な問題ではありません □検索・置換フォーム -------------------------------------------------------------------------- ・検索,置換する値を下記フォーマットで入力します asm:〜 一行アセンブラを通します 例:ASM:ds $00,16 asc:〜 文字列による指定 例:Asc:PC-8001 上記以外は 16進数とみなします 式を使いたい場合はアセンブラを通してください ・検索データ入力欄にフォーカスがある状態で [Enter] を押すと後方検索します +[Enter] で前方検索になります ・置換データ入力欄にフォーカスがある状態で [Enter] を押すと後方置換します +[Enter] で前方置換になります ・注意 ・アセンブラは機種毎に「標準」として設定されたものが使われます ・8080/8085 では asz:〜 も使えます (Zilog表記) 上記以外では asm/asz どちらを指定しても同じアセンブラが使われます □CPUモニタ -------------------------------------------------------------------------- HALTするとステータス欄の背景が赤くなります CPUによらず HALT時の PCの値は HALT の位置になっています PC欄の値を +1 すれば HALTから脱出できます ステータス欄をダブルクリックしても同様です アセンブルソースに HALT を入れてブレイクポイント代わりに使えます ============================================================================== ■Tracer デバッグ実行に関する設定は dbgファイルで行います ・ブレイクポイントの設定 / 解除(保留) ・ブレイク時の動作の定義, ブレイクポイントとの関連付け 特定のブレイクポイントでワークのダンプを表示するなどの設定が可能です dbg ファイルを差し替える場合はテキストエディタ部分にドロップしてください 本体のメニューからファイルダイアログで選択することもできます dbgファイルの詳細は ../debug/sample.dbg にコメントとして記述してあります ステップ実行に関する操作はこのウィンドウを開かなくても可能です cmd ファイルにキー(コンビネーション)を登録して使ってください Debug:n CPU#n のデバッグモード ON/OFF Debug.step=0 ステップ実行 (最小ステップを実行してブレイクする) Debug.step=1 ステップ実行 (ブロック実行 -> debugger.txt 参照) Debug.step=2 ステップ実行 (ブロック実行 -> debugger.txt 参照) Debug.step=3 ステップ実行 (ブロック実行 -> debugger.txt 参照) □画面の構成 -------------------------------------------------------------------------- ・トレーサ設定フォーム ├dbgファイル適用チェックボックス / Updateボタン └簡易テキストエディタ ・デバッグ実行フォーム ├CPU #1 : デバッグモード切り替えSW / ステップボタン(0 〜 3) └CPU #2 : デバッグモード切り替えSW / ステップボタン(0 〜 3) □トレーサ設定フォーム -------------------------------------------------------------------------- ・dbgファイルにコメントを残しながら解析などを行うことができます dbgファイルを編集しただけではデバッガに反映されません 右上の [Update] ボタンを押してください ([Ctrl]+[S] でも可) ・左上の dbgファイル適用チェックボックスで dbgファイルを無効にできます 無効⇒有効に変更した際には自動で Update が掛かります ・行ヘッダのクリックで、ブレイクポイント等の ON/OFF をトグルできます □デバッグ実行フォーム -------------------------------------------------------------------------- ・CPU毎にデバッグモードの ON/OFF を設定できます ・STEP/SKIP実行のボタンです ==============================================================================