復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第125回]
●BS(恥ずかしながら前回の訂正)
前回は、「CP/Mには画面制御の機能はありません」と書きました。
「カーソルを前に戻すBSは使えないので、その機能をプログラムで実現します」という内容の記事でした。
「CP/Mには画面制御の機能はありません」ということは、スクリーンエディタのような機能は持っていない、という意味ではその通りです。
CP/M本体はラインエディタさえ持っていません。
しかし、「だからBSコードの機能は働きません」と考えたところは、私の思い込みといいますか、思い違いでした。
いえ。
そこはわかっていたはずでした。
途中までは正しく認識していたはずだったのですけれど、記事を書いていく過程でなにやら話の筋がおかしくなってきてしまって、それに気がつかないまま、結果的に間違ったことを書いてしまいました。
「BSコードがそのままでは使えない」というのはCP/Mのことではなくて、ND80ZVのシステムのほうでありました。
そのことにつきましてはCP/Mを移植した当初に気が付いていたのでありましたが、そのことをすっかり失念しておりました。
なんたって昨晩何を食べたのか、ということすら思い出せないのでありますからねえ。
今朝になりまして、前回の記事を読み直しておりましたら、「BSが使えないなんて、普通に考えたらちょっとおかしいのではあるまいか?」という、当たり前といえばしごく当たり前のことに気が付きました。
むむ。
本当にCP/Mはこんなややこしいことをやっているのか?
ちょいと気になりましたものですから、CP/Mのソースリストを確認してみましたら。
おお。
まともにBSをBIOSのCONOUTに送っているではありませぬか。
そりゃそうですよねえ。
普通に考えたらそうあるべきものでありまして、そうなっていなかったのは、受手側でありますWindows側のプログラムのせいだったのでありました。
ND80ZVをUSB接続するためのWindows側のソフトウェアは、何回もご紹介しておりますように、ログファイルの機能とともに完全なスクリーンエディタの機能も備えております。
だから。
いまさらBSなど不要、と考えて、そのコード(08H)を内部の制御用にリザーブしてしまいました。
CP/Mを移植しました当初、「ここは将来、Windows側のプログラムを変更すべき」と考えて、それはそのままずっとそのつもりだったのでありますが。
まあ。魔が差すといいましょうか。
[第123回]で、BSが働かないことに気が付いた途端に、「Windows側を直さなければならない」ということを忘れてしまいました。
んで。
また、悪いことに、「なんだ、こんなの、バッファを用意すれば簡単にできるじゃないの」と、まあ、悪魔のささやきと申しましょうか、思いつかないでもよいことを思いついてしまったものでありますから、前回書きましたような次第となりました。
むむむ。
せっかく書いたプログラムですけれど。
ここは正攻法ということで。
やっぱりWindows側のプログラムを直すべきでありましょうなあ。
うむ。
実に見事な、無駄作業、でありました。
ワンボードマイコンでCP/Mを![第125回]
2012.5.19upload
前へ
次へ
ホームページトップへ戻る