機械語モニタ

概要

PC-6001mkII/6601には、機械語プログラムをデバッグするのに便利な機械語モニタが準備されています。 このモニタの特長は、RS-232Cの入出力コマンドを独自でもっていることです。 他のパーソナルコンビュータPC-8801などで開発した機械語プログラムをカセットテープに出力してから PC-6601に入力するというようなことをしなくてもRS-232Cを利用して直接入力できるようになります。

扱える数値は16進数です。キー入力はすべて16進数で入力します。画面表示、プリンタ出力も16進数で表示、出力されます。 なお、カセットテープおよびRS-232Cの入出力はインテルHEXコードで行なわれます。

メモリだけでなく、CPUのレジスタの内容の表示、変更もできます。

グラフィックス画面のデバックのため、画面表示をせずにプリンタ出力だけでモニタを使用することができます。

モニタの起動

BASICのモードをN60m/N66-BASICモードにしてMONコマンドを実行するとモニタを起動できます。


mon
とすると、画面に

READY
と表示されて、モニタのコマンド入力待ちになります。

BASICのテキストエリアやワークエリアに機械語プログラムやデータを書き込むと、N60m/N66-BASIC モードに戻った時に、正しく動作しなくなる可能性があります。使用する領域は、 メモリマップを参照して、MONコマンドを実行する前にCLEAR文で 領域を確保してから利用してください。 たとえば、ミニフロッピィディスクユニットを接続していない場合に


clear,&he000
を実行すると、E000HからF8D6Hまでの領域が確保できます。

コマンドの説明

Bコマンド(リターン)

Bコマンドは、モニタからN66-BASICへ戻ります。


B-(続けてRETURNを入力)

Bコマンドには、次のようなオプション機能があります。

[Rオプション]
BASICプログラム作成後、誤ってNEWコマンドを実行した時に、BASICプログラムを復元します。
[Gオプション]
モニタからBASICプログラムを実行します。

Rオプションを利用する場合には、モニタを起動して


B-R
を実行します。ただし、メモリの状態によっては、BASICプログラムが復元できない場合もありま す。Gオプションは、次のような書式になっています。

BG [a1 [,a2]] (a,a2は実行停止番地)

BASICプログラムを実行するだけの場合には、


B-G[RETURN]
と実行します。もし、BASICプロクラム中から機械語プログラムを実行している時に機械語プログ ラムの実行を停止したい場合には、実行停止番地を指定します。

B-G-E001[RETURN]
B-G-E001,-E101[RETURN]
実行停止番地は2カ所まで指定できます。ただし、BASICプログラム実行中に、実行停止番地の内 容を変更すると無効になります。

Cコマンド(プリンタ・スイッチ)

Cコマンドは、モニタ使用中の出力をプリンタに切り換えるために使用します。モニタ起動時の 出力は画面表示だけですが、


C
を実行すると、画面表示とプリンタ出力を同時に行ないます。もう一度、

C
を実行すると、プリンタ出力だけになります。さらに、もう一度、実行すると画面表示だけに戻ります。

画面表示のみ(プリンタスイッチ0) → 画面表示とプリンタ出力(プリンタスイッチ1) → プリンタ出力のみ(プリンタスイッチ2) → 画面表示のみ(プリンタスイッチ0)...

たとえば、グラフィック画面のデバックを行なう時に出力をプリンタだけにしておくと、 グラフイック画面を壊さずにデバックできます。

Dコマンド(ダンプ・メモリ)

Dコマンドは、指定された範囲のメモリの内容を出カします。書式は次のとおりです。


Da1,a2 (a1は開始番地、a2は終了番地)

たとえば、C000HからC010Hまでのメモリの内容を出力したい時には


DC000,C010[RETURN]
と実行します。

C000: 0F 0F 0F 0F 0F 0F 0F 0F
C008: 0F 0F 0F 0F 0F 0F 0F 0F
C010: 0F

画面に多量のデータが表示される時には、ESCキーで一時停止させることができます。表示を再 開したい時には、もう一度、ESCキーを押します。また、表示を一時停止させた後にF1キーを 押すと1バイトずつ表示することができます。なお、途中で表示を終える時には、ESCキーを2回 押すとコマンド入力待ち状態になります。

Eコマンド(エコー・スイッチ)

Eコマンドは、カセットテープおよびRS-232Cに入出力を行なう時に、その内容の画面表示を 同時に行なうために使用します。モニタ起動時には、L、P、R、およびWコマンド実行にともな う入出力データの内容を画面表示しませんが、


E
を実行すると、入出力データの内容を同時に画面表示します。もう一度、実行すると、画面表示を しなくなります。

画面表示なし(エコースイッチOFF) → 画面表示あり(エコースイッチON) → 画面表示なし(エコースイッチOFF)...

なお、Eコマンド実行前に、Cコマンドを実行した場合には、画面表示だけではなくプリンタ出 力もできますが、プリンタ出力には時聞がかかりますので、L、P、R、およびWコマンドが正し く実行できない場合もあります。エコー・スイッチをONにする場合には、プリンタ・スイッチを0 (画面表示のみ)にしてください。

Fコマンド(フィル・メモリ)

Fコマンドは、指定された範囲のメモリの内容を、指定された値に置き換えます。書式は次のとおりです。


Fa1,a2,d (a1は開始番地、a2は終了番地、dは置き換える値)

たとえば、D000HからD00FHまでのメモリの内容をDDHにする時は


FD000,D00F,DD
と実行します。

Gコマンド

Gコマンドは、機械語プログラムを実行します。書式は次のとおりです。


G[a][,a1[,a2]]] (aは実行開始番地、a1,a2は実行停止番地)

パラメータの省略と実行の関係は次のようになります。

コマンド処理内容
G現在のプログラム・カウンタから機械語プログラムを実行します。
GD000指定された番地から機械語プログラムを実行します。
GD000,-D100
GD000,-D100,-D200
指定された番地から機械語プログラムを実行し、プログラムカウンタが実行停止番地と等しくなると実行を停止します。
G,-D000
G,-D000,-D100
現在のプログラム・カウンタから機械語プログラムを実行し、プログラム・カウンタが実行停止番地と等しくなると実行を停止します。

なお、現在のプログラム・カウンタはXコマンドを実行すると調べることができます。実行停止番地は、2カ所まで指定できます。

Lコマンド(ロード・データ)

Lコマンドは、RS-232Cからデータを入力します。書式は


La (aはオフセット値)
です。RS-232Cから送られてくるデータを、オフセット値だけ加算した番地からメモリにセットします。

たとえば、送られてくる4000HからのデータをC000Hからメモリにセットしたい時には、


L-8000
と実行します。

Mコマンド(ムーブ・メモリ)

Mコマンドは、指定された範囲のメモリの内容を、指定された他のメモリ領域へ移します。書式は次のようになります。


Ma1,a2,a3 (a1は開始番地、a2は終了番地、a3は新しい開始番地)

たとえば、たとえば、C000HからC0FFHまでのメモリの内容をCI00HからCIFFHまでのメモリ領域へ移したい時には、


MC000,C0FF,C100
を実行します。

Pコマンド(パンチ・データ)

Pコマンドは、指定された範囲のメモリの内容をRS-232Cへ出力します。書式は


Pa1,a2 (a1は開始番地、a2は終了番地)
です。

たとえば、C000HからC0FFHまでのメモリの内容をRS-232Cから送り出す場合には、


PC000,C0FF
と実行します。

Qコマンド(アスキー・ダンプ)

Qコマンドは、指定された範囲のメモリの内容をキャラクタで出力します。書式は次のとおりです。


Qa1,a2 (a1は開始番地、a2は終了番地)

たとえばC000HからC010Hまでのメモリの内容を出力したい時には、


QC000,C010
と実行します。

一時停止及び途中で表示を終える時の操作はDコマンドと同じです。

Rコマンドは、カセットテープからデータを入力します。書式は


Ra (aはオフセット値)
です。カセットテープから読み込むデータを、オフセットの値だけ加算した番地からメモリにセットします。

たとえば、Wコマンドでカセットテープに書き込んたー時と、同じ番地からメモリにセットする場合には、


R-0000
と実行します。

Sコマンド(セット・メモリ)

Sコマンドは、テータをメモリの任意の番地にセットします。書式は次のとおりです。


Sa (aは開始番地)

開始番地から順にSPACEキーが押される毎に現在のメモリ内容を表示します。 メモリの内容が表示された後にデータを入力してSPACEキーを押すと、 メモリの内容が変更できます。SPACEキーだけ押すとメモリの内容は変更されません。 また、Sコマンドの実行を終える場合にはRETURNキーを押します。

たとえば、C000HからSコマンドを実行するには


SC000(続けてSPACEを入力)
と入力します。画面には

SC000 00-
と表示されます。SPACEキーを押すと次の番地のメモリの内容が表示されます。

SC000 00- 00-
C001番地の内容をC9Hにしたい場合には、C9を入力してからSPACEキーを押します。

SC000 00- 00-C9 00-
Sコマンドの実行を終えたい場合には、RETURNキーを押します。画面は次のようになり、 コマンド待ちの状態になります。

SC000 00- 00-C9 00-
READY

Wコマンド(ライト・テープ)

Wコマンドは、指定された範囲のメモリの内容をカセットテープに出力します。書式は、


Wa1,a2 (a1は開始番地、a2は終了番地)
です。

たとえば、C000HからC0FFHまでのメモリの内容をカセットテープに書き込む場合には、


WC000,C0FF
と実行します。

Xコマンド(イグザミン・レジスタ)

Xコマンドは、任意のレジスタの内容を調べたり、変更したりするために使用します。書式は、


X[r] (rはレジスタ名)
です。レジスタ名はA、B、C、D、E、F、H、L、M(H+L)、P(プログラム・カウンタ)、 S(スタックポインタ)で、この順序で出力します。

X
と実行すると、順に、すべてのレジスタの内容を出力します。レジスタ名を指定すると、指定され たレジスタの内容を表示します。そしてSPACEが押される毎に、順に、レジスタの内容を表示します。 レジスタの内容が表示された後に、変更したい値を入力してSPACEキーを押すと、レジスタの 内容が変更できます。SPACEキーだけ押すとレジスタの内容は変更されません。途中で Xコマンドの実行を終える場合にはRETURNキーを押します。

たとえば、D、Eレジスタの内容を調べて変更したい場合には、


XD(続けてSPACEを入力)
と入力します。画面にはDレジスタの内容が、

XD 00-
と表示されます。SPACEキーを押すとDレジスタの内容は変更されずに、次のEレジスタの内容 が表示されます。もし、Eレジスタの内容をC0に変更したい時には、C0を入力してからRETURNキーを押します。

XD 00- 00-C0 01-

終えるために、RETURNキーを押すと、画面は次のようになりコマンド入力待ち状態になります。


XD 00- 00-C0 01-
READY