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

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第139回]


●ファンクションコール06(ダイレクトコンソール入出力)

ファンクションコール06のテストは[第79回]で行なっています。
そこで作ったテストプログラムはFNC06T2です。

ファンクションコール06は、ファンクションコール01(コンソール入力)とファンクションコール02(コンソール出力)を合わせた機能のように見えますが、それよりもずっとシンプルです。
ファンクションコール01や02は入出力される値によっていろいろ派生的な処理を行ないますが、ファンクションコール06はただ単純にBIOSの入出力ルーチンを「直接」コールするだけです。
「ダイレクト」という名はそこからきているのだと思います。

FTST06T2.COMを実行しました。
システムコール06が繰り返し実行されてコンソールステータスのチェック結果が表示されます。
コンソール入力がないときは00が表示されます。
なにかキー入力を行なうと、そのキーの16進数コードと、キーの文字が表示されます。


最後に[Ctrl]+[Z]を入力して、プログラムを終了しました。

ファンクションコール06については[第80回][第81回]で、E=FEを指定したときの動作について検証をしています。
本来はE=FEを指定することでコンソールステータスが得られるもののようなのですが、結局のところ、この機能はCP/M2.2ではバグがあるため使えないことが判明しました。
そこでCP/M互換DOSではE=FEは無視することにしました。

●RS232C通信のテスト(ファンクションコール03および04)

RS232C通信のテストは[第78回]で行ないました。
ファンクションコール03は本来は紙テープリーダー入力、ファンクションコール04は紙テープパンチャ出力です。
しかしいまどきそれは余りに時代錯誤に過ぎます。
そこで[第78回]ではファンクションコール03にはRS232C受信、ファンクションコール04にはRS232C送信を割り当てるようにBIOSに追加を行ないました。

ファンクションコール03と04は、BIOSのリーダー入力とパンチャ出力ルーチンにただジャンプしているだけですから、実質的にはBIOSの機能そのままです。
CP/M互換DOSでも同じように、BIOSにジャンプしていますから、今更テストをしなくても、[第78回]で行なったテストと同じになるに決まっています。

ま、そういうことなのですけれど。
一応は、テストをしておくことにいたしましょう。

私としては最も簡単に行なえるテストとして、[第78回]で行なったのと同じように、ND80ZVと当社のZB28K+232CIFボードとを9pinの232Cストレートケーブルで接続して、簡単な文を送受信しました。

ZB28K側はそのときに作った232C送受信プログラムをロードした上でRUNして、受信スタンバイにしておきます。
ND80ZV側はテストプログラムFNC0304T.BINをロードしたのちCP/M互換DOSを起動して、FNC0304T.COMのファイル名でセーブしたあと、実行します。

先にND80ZV側から、
Hello,How are you?
と送信します。
ZB28Kはそれを受信すると
I’m fine,Thank you.
と返信して終わります。

下はそのように実行したときの画面です。
[第78回]のときの画像とそっくりですが、こちらは今回CP/M互換DOSのもとで実行した画像です。
左側がZB28Kで右側がND80ZVです。
よく見ますと右側画面の中ほどに「end of ZBDOS」の文字が表示されているのがわかります。



ワンボードマイコンでCP/Mを![第139回]
2012.6.3upload

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