MIKBUGは、6800用のモニタとしてMotorolaからROMに書き込んだ形で提供されました。
8080やZ80に関しては、チップメーカーが提供し広く使用された標準的なモニタがないようですが、Motorolaは6800の後継チップに関しても、MIKBUGと同様に以下のようなモニタを提供し続けているのが対照的です。
- 6803/6801
- LILbug
- 6809
- ASSIST09
- 68GC11
- BUFFALO
他に適当な選択肢がなかったということもあるの窯しれませんが、MIKBUGは6800を搭載した初期の多くのシステムの基本ソフトウェア/パーツとして採用されました。このため、多くのアプリケーションが、MIKBUGがシステムに組み込まれていることを前提として作成され、アドレスマッピングや入出力ルーチンの呼び出しについて共通の特性を持つこととなりました。この結果、6800用のアプリケーションの多くは、MIKBUGあるいは、それと互換性のあるモニタを搭載したシステムであれば、変更なしか、軽微な変更で動くことが多いです。
MIKBUGの情報は、様々なサイトで公開されていますが、以下の一つのページを紹介します。
上記のページには、MIKBUG(が搭載されたROM)をし予するためのシステム構成や使用法、ソースコードなどが記載された技術資料と、MIKBUGのソースコードへのリンクが掲載されています。
MIKBUG使用時のシステム設定
MIKBUGの動作確認を行う場合には、6800-COREの電源が接続されていない(USBでPCに接続しない)状態で、表\ref{tab:demo-mikbug}のジャンパ設定を行ってください。
ROM0,ROM1によるモニタ選択と、SEL2, SEL3によるアドレスマップの設定の組み合わせが合致していないと、6800-CORE は起動しませんのでご注意ください。
SEL0, SEL1は目的・用途に応じて設定を変更してかまいません。
ただし、ボーレートを変更する場合には、TERATERMの設定も併せて変更するようにしてください。
ジャンパブロック | ジャンパ | 設定 | 機能 | 選択 |
JP1 | ROM0 | ショート | モニタ選択 | MIKBUG |
JP1 | ROM1 | ショート | 同上 | 同上 |
JP2 | SEL0 | ショート | CPUクロック | 2MHz |
JP2 | SEL1 | オープン | ボーレート | 9,600 |
JP2 | SEL2 | ショート | アドレスマップ | ROMモード |
JP2 | SEL3 | – | 同上 |
6800-CORE をUSBでPCに接続し、前節に示した手順でTeraTermの起動を行います。
MIKBUGの起動
次に、6800-COREのリセットボタンを押すと「MIKBUGの起動」のような起動メッセージ(オリジナルのMIKBUGでは起動メッセージは出力されません。)が出力されます。
MIKBUGではプロンプトが * (アスタリスク)で表示されるので、その状態で1文字でコマンドを指定します。
数値の入力時には省略はせずに、アドレスは4桁、データは2桁の16進数を入力しなければなりません。
以下のコマンドが使用できます。
- L
- Sレコードで記述されたプログラムをRAMに読み込みます。
- Lコマンドを入力するとMIKBUGは待機状態になるので、端末エミュレータ側で、PCに保存されているSレコードファイルを送り込みます。
- G
- $A048にあらかじめ書き込まれたアドレスからプログラムを実行します。
- $A048への書き込みはMコマンドで行います。
- M
- メモリ内容の表示と書き換えを行います。
- コマンド文字の後に、4桁の16進数アドレスを入力します。アドレスとデータが表示されます。
- エンターキーを押すと、次のデータの表示に移ります。
- スペースの入力後に2桁の16進数を入力すると、その値がRAMに書き込まれます。
- 一方、スペースの入力後にエンターキーを押すとMコマンドは終了します。
- P
- あらかじめ$A002に書かれた開始アドレスから、$A004に書かれた終了アドレスまでのメモリ内容を端末にSレコードで表示します。
- $A002,$A004への書き込みはMコマンドで行います。
- R
- レジスタの内容が表示されます。
- Gコマンドでプログラムが実行される際のレジスタの初期値となります。
- H
- MIKBUGで使用できるコマンドの簡単なヘルプを表示(オリジナルのMIKBUGにはこの機能はありません。)します。
大文字のHを入力すると、エンターキーを押さなくても「HELPとレジスタ表示」に示すようにすぐさまMIKBUGで使用できるコマンドの一覧が表示されます。
次に、Rコマンドを入力すると、モニタに管理されているレジスタの内容一覧が「HELPとレジスタ表示」に示すようにすぐさま出力されます。
プログラムの読み込みと実行
Lコマンドを入力して、SレコードファイルをRAMに読み込めるようにします。
ここでは、BASICインタプリタを例に説明します。
Lを押すとマイクロコンピュータは待機状態になるので、TeraTermの[File\verb+->+Send File…]を選択します。
ファイルダイアログが開くので、XUM-MICROBASIC13A.SRECを選択します。
XUM-MICROBASIC13A.Sには、プログラムの開始アドレスをモニタに設定する機能が組み込まれているので、Mコマンドを使用してBASICの開始アドレスをモニタに設定する必要はありません。
単純にGを入力します。
BASICが起動され、READYとプロンプトの\#が表示されます。
これで、Lコマンドによるプログラムの読み込みと、Gコマンドによる実行の動作確認ができました。