2018年9月6日木曜日

SBC6800+SBC-IO用のMONITOR ROMを試してみる

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コマンドコンパチブル

  • Motorola MONITOR共通のサブルーチン(ROM)
    • 1文字入力 $E1AC  INEEE
    • 1文字出力   $E1D1  OUTEEE
    • START        $E0D0
    • CONTRL       $E0E3
  • カンザスシティ標準の入出力ルーチン(ROM)
   SBC-IOのACIA(MC6850)での入出力。入出力時にSBC-IOのLEDが点滅
    •    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が書き込まれています。
  • ❸ ブレークポイントは次のように、連続して同じアドレスに設定すると、元のインストラクションが失われ、プログラム内容は失われてしまいます。
   B 1377
   G
   B 1377
     次の場合にはプログラム内容が失われることはありません。
   B 0100
   B 1377
   B carriage return

  • ❹ ブレークポイントルーチンはRAM $A014-$A016の3バイトを使用しています。

以上










0 件のコメント:

コメントを投稿

SBC6800+SBC-IOのサンプルプログラム(3)TEK4010 Emulation

SBC6800のVRAM出力をTEK4010 Emulationでシミュレーションする 【当Blogのプログラムファイル置き棚のリンク先】 1. 当Blogの環境と条件  ★PC:    ・  TeraTerm   Setup     - Terminal ...

これまでによく読まれた記事