標準TTLだけ(!)でCPUをつくろう!(組立てキットです!)
(ホントは74HC、CMOSなんだけど…)
[第562回]

●Z80BASICの起動と終了のシーケンス

[第557回]でND80ZVをUSBで接続して、DOSプロンプトのリモートプログラムで遠隔操作するときの、起動(接続)と終了(切断)のシーケンスといいますか手続きの実際について説明をいたしました。
Z80BASICプログラムの本体は、ND80ZVのROMに書き込まれていて、そのプログラムはZ80CPUによって実行されるのですが、キーボードからの入力と、画面への表示は、USBで接続したWindowsパソコンのキーボードから入力し、そしてWindowsパソコンのディスプレイに出力します。
その動作はリモートプログラムと基本的には同じ仕組みです。

もともとZ80BASICは当社のZBK開発システムのために開発したBASICをND80ZV用にアレンジし直したもので、リモート接続の仕組みもUSB(こちらは仮想的なRS232C)を使って行っています。
ですからもともとはND80ZVのリモートプログラムとは全く別の機能だったものなのですが、せっかく作り上げたND80ZVのリモートプログラムとは別にZ80BASICも別の手続きで起動する、というのも面倒な気がしますから、いっそのこと、というわけで、リモートプログラムとZ80BASICを合体させてしまいました。

ND80ZVをUSB接続してZ80BASICを起動するときのシーケンスは次のようになります。

まずは、最初にリモートプログラムを起動してND80ZVと接続します。
次にリモートプログラム上のコマンドでZ80BASICを起動します。
Z80BASICからリモートプログラムに戻ることもできます。
リモートプログラムから再びZ80BASICに行くこともできます。
Z80BASICを終了するときは、見かけ上は終了コマンドでそのまま終了しますが、実際には、まずリモートプログラムに戻って、そこで終了手続きが行われて終了します。

以上の流れを実際の画面で見ていただきましょう。

Z80BASICを起動するときも、まず最初はリモートプログラムを起動します。
この手続きは[第557回]での説明と全く同じです。

現在はまだデバッグ中ですからzb2p_sampleという名前のプログラムになっています。
このプログラムはBorland C++で書いてあります。
[第557回]で説明いたしました手続きに従って、最初にUSBでWindowsパソコンとND80ZVを接続してからND80ZVの電源をONにします。
それからDOS側のプログラム(zb2p_sample.exe)を起動すると、
ND80ZVに接続しました
と表示されますから、そうしたらND80ZVのキーボードから[*(I/O)][8 VF]と続けて入力します。
すると、上の画面のように、
0001 0000 −
と表示されて入力待ちになります。

[第557回]ではこのあと、ND80ZVのキーボードを使わずに、Windowsパソコンのキーボードから[READ+]や[ADRSSET]やデータなどの入力を行う例を説明していますが、ここではZ80BASICを起動するために、Windowsパソコンのフルキーボードの[z]キーを押します。

実際の画面では z を入力すると、画面がクリアされてZ80BASICが起動するのですが、ここでは説明のために、 z を入力したあとそこで停止するようにプログラムを書き換えて実行しています。

上の画面では説明のためのサンプルプログラムで実行したために z を入力したあとそこで停止していますが、実際のプログラムでは、 z と入力するだけで、ただちにZ80BASICが起動して、下の画面になります。

これ以後は、WindowsパソコンのキーボードからBASICの命令やコマンドを入力してプログラムを作成したり実行したりすることができるようになります。
キー入力は画面上で編集可能なスクリーンエディタやページモードを使って効率良く行うことができます。

●autoコマンド

BASICのプログラムは行番号をつけて入力します。
最初にプログラムを作成するときは、あとから行の間に追加がしやすいように、行番号を10番おきにつけていきます(そうしなければいけないわけではありません)。
autoコマンドは行番号を入力する部分を自動で行ってくれます。

aouo[Enter]と入力すると、上の画面のように、
10
と表示されて、そこでキー入力待ちになります。

行番号の後ろに命令文を書きます。

ここでは、for abc=0 to 10 と入力しています。
そのあと[Enter]キーの入力で、行番号を含めた行全体の入力が確定し、その次の行番号20が表示されます。

続けてプログラムを入力していきます。

行番号10の行と同じ要領で、続いてプログラムの入力を行います。
途中で間違ったときは[Enter]を押す前ならば、[←][→][BackSpace]を使って訂正ができます。
ただautoコマンドの実行中は、行カウンタが働いていて自動で行の入力をコントロールしていますから、[↑]や[↓]で別の行に移動してはいけません。
別の行の誤りに気が付いて訂正したいときは、一度autoモードを終了してください。

autoモードを終了するときは、[Ctrl]キーを押しながら[B]キーを押します。
上の画面は行番号50が表示されたところで、[Ctrl][B]を押して、autoモードを終了したところです。

listコマンドで入力作成したプログラムを確認してみます。

入力した通りのプログラムが表示されました。

runコマンドで実行してみます。

FOR〜NEXT文はFOR文とNEXT文ではさまれた間の命令文をFOR文で指定した変数の値を初期値から終了値までstepで指定する値だけ増やしながら繰り返し実行します。
stepを省略したときは、増分は1になります。

●/remoteコマンド

上の画面では、最後に/remoteと入力しています。
/remote[Enter]と入力すると、Z80BASICを終了して、最初のリモート入力プログラムに戻ります。

/remote[Enter]と入力してリモート入力プログラムに戻りました。

ここからは[第557回]で説明しましたリモートキー入力の状態になります。

リモートキー入力操作をしてみます。

フルキーボードの右のテンキー部分の[+]キーを入力しています。
[+]キーを押すとND80ZVのキーボードから[READ INC]キーを押したのと同じ結果が得られます。

このあともう少し操作の説明があるのですが、本日もタイムアウトになってしまいました。
この続きは次回にいたします。
2010.7.24upload

前へ
次へ
ホームページトップへ戻る