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

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

[第242回]


●ファンクションコール05(プリンタ出力)

このところいろいろ多忙でしたので、ホームページの更新ができませんでした。
CP/M互換DOSは最後のツメといいますか、途中やり残したところを整理して最終的なまとめに入っています。
もうあと一息というところです。
今まではとにかく動作させることを優先してきましたので、エラーメッセージは全て「err」で片付けてきました。
目下のところ、そのerrを整理してエラーコードを割り付ける作業中です。
そのほかちょいと気になるところもあって、それについても最後の追及を行っています。

さて。
ずっと記事を書いてきたなかで、触れていなかったことがあります。
それはプリンタ出力についてです。
CP/Mではファンクションコール05(リスト出力)がプリンタ出力になっています。
それについては実はCP/M互換DOSでは作業をしておりません。
[第196回]を見ていただきますと、そこだけが未作業になっています。

これについてはずっと考えてきました。
なんとかいい方法があれば、と思ってきたのですが。
最終的にCP/M互換DOSでは、この機能は使わないことにしました。

CP/Mのファンクションコール05で通常使われていたプリンタは昔のタイプライタ形式のプリンタで、一文字ずつ印字するものだったと思います。
そして一行印字するごとに紙送りが行われました。

現在のWindowsパソコン用のプリンタに対しても同じような制御ができないものか、あれこれさぐってきましたが。
どうやらそれは無理なようです。
WindowsAPIを使えばプリンタに文字や絵を出力することは可能なのですが、一行ごとに紙送りしながら印字する、という芸当はできないようです。
ページ全部の文字を出力して、最後に実際の印字命令を送ることで、ページ全体を同時にプリントすることになってしまいます。

つまり、ファンクションコール05を実行しても、現在のWindows用プリンタでは、すぐには応答してくれないことになります。
結局出力ファイルを閉じなければプリンタへの出力が開始されない、ということになりそうです。
それでは本来のファンクションコール05とは全く異なった動作になってしまいます。

ということで、あれこれ迷った挙句なのですが、最終的にファンクションコール05については作業しない、ということに落ち着いてしまいました。
ですから直接ソフトウェアでプリンタ出力はできませんが、シーケンシャルライトを使って、テキストファイルに文字を出力することはできますから、ファイルクローズ後にメモ帳などでそのファイルを開いて、そこで必要ならばプリンタに出力する、ということで対応できると思います。

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

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