SBC-IO用のROM化MONITOR
🔁SBC6800とSBC-IO Rev.2基板、SBC-BUS基板が必要🔁
★ SBC6800の参照先【電脳伝説さんのHP 】★ SBC-IO開発者の参照先【レトロな雰囲気さん】
★ SBC-IO基板の製作について【当Blogの参照先】
★ MONITOR【プログラムファイル置き棚のリンク先】
置き棚にSBC-IO専用フォルダーを設置
- ROM版 mixdbugv5.zip RAM版 swtbugv5.zip swtbugv5.S
- RAM版は動作確認用に作成したもので、システムRAMは$1F00に設定されている。
1. MONITORのメモリ割当
* ユーザRAM領域 $0000 - SBC6800
* IO領域 $8000 - SBC6800 SBC-IO
* システムRAM領域 $A000 - $A100 SBC-IO
* MONITOR領域 $E000 - $FFFF SBC6800
* ユーザ領域 $0000 - $7FFF SBC6800
* ユーザ領域 $A100 - $DFFF SBC-IO
2. 特徴
*ブレークポイントの設定
*メモリ書き換えで後戻り可
*メモリ上のデータ検索
*コマンド一覧表示
*SWTBUGコマンドコンパチブル
*SWTBUGコマンドコンパチブル
- Motorola MONITOR共通のサブルーチン(ROM)
- 1文字入力 $E1AC INEEE
- 1文字出力 $E1D1 OUTEEE
- START $E0D0
- CONTRL $E0E3
- カンザスシティ標準の入出力ルーチン(ROM)
- PUNCH $E600
- アドレス開始番地を $A002 、終了番地を $A004 に設定して
- J E600 と入力
- LOAD $E680
- J E680 と入力
3. MONITORコマンド
> CコマンドはSWTPCの端末CT-1024のカーソル制御で、$10(CLEAR),$07(BEL)が出力されます。
> Gコマンドは$A048、$A049に書き込まれた番地からプログラムを起動します。 (注)SBC6800のMIKBUGでは$1F48、$1F49になっています。
4. ブレークポイントの使い方
開発者のHP「SWTBUG USERS GUIDE」より
→ http://www.swtpc.com/mholley/swtbug/SWTBUG_Users_Guide.pdf
- $A048 と $A049 にデバッグするプログラムの開始番地を設定します。
- コマンド「B」を一時停止させたいアドレスに設定します。この時、このアドレスにはSWI($3F)が書き込まれます。
- 「G」コマンドでプログラムをSTARTさせるとプレークポーントのアドレスで停止し、レジスタ内容を表示します。
- 次のブレークポイントを設定します。この時、最初のブレークポイントアドレスに書き込まれた$3Fはもとのインストラクションコードに戻されます。
- 「G」コマンドで最初のブレークポイントアドレスからプログラムが実行されます。この過程で$A048,$A049は再実行アドレスが書き込まれているので「M」コマンドで書き換えてはいけません。
- ❶ SWIVアドレスはブレークポイントで使用されていますので、デバッグするプログラム内で使用していると正常な動作は保証されません。
- 同様にプログラム内でスタックポインタを書き換えていると正常な動作は保証されません。
- ❷ ブレークポイントが設定されていない時はSWIVアドレス、$A012 に$E125、設定されている時は$E124が書き込まれています。
- ❸ ブレークポイントは次のように、連続して同じアドレスに設定すると、元のインストラクションが失われ、プログラム内容は失われてしまいます。
G
B 1377
次の場合にはプログラム内容が失われることはありません。
B 0100
B 1377
B carriage return
- ❹ ブレークポイントルーチンはRAM $A014-$A016の3バイトを使用しています。
以上