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

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

[第253回]


●LLISTもLPRINTもだめ?

昔のBASICでは大抵は、プリンタにプログラムリストを出力するためのコマンドとしてLLISTが、そして文字や数値などを画面に表示する代わりにプリンタに出力するための命令としてLPRINTが用意されていました。
中日電工のZB3BASICも以前は同様の機能をサポートしていたのですが、このところ書いておりますように、MSDOSでは制御できないWindows専用プリンタが一般的になってしまいましたので、ND80ZV(ND80Z3.5)に搭載しておりますZB3BASICでは、プリンタ出力機能はありません。

ま。しかし。
MBASICは昔のBASICですし、なんといってもその後のBASICのもとになったくらい有名なBASICですから多分LLISTもLPRINTもあるにちがいない。
そのように考えましたので、特にマニュアルなどを調べてみることもせず、いきなり簡単なテストプログラムを入力してしまいました。

B>mbasic
BASIC-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
25400 Bytes free
Ok
auto
10 for a=0 to 5
20 lprint a,
30 next a
40 ^C
Ok

で。
まずは
LLIST[Enter]
と入力してみたのですが。
あれ?
反応がありません?
プリンタは黙ったまま。
むむっ。
おかしい…?

ならば、
RUN[Enter]
でどうだっ。
やっぱり反応がありません。
でも特にエラーになるのでもなく、なにごともなかったかのように

が表示されます。
(2012.11.22追記 ごめんなさい。ここ間違っていました。MBASICでは>は表示されません)

むむっ。
おかしい。おかしいっ!
LLISTとRUNを繰り返し入力していましたら、やっとプリンタがパリパリパリ…と動きました。
しかし。
それは全く期待はずれの、意味不明の文字列でありました。
こんな調子です。


ケーブルを確認してみたり、プリンタの電源をON、OFFしてみても、何回試してみても結果は変わりません。
しかし。
[第249回]で紹介いたしました、ファンクションコール05のテストプログラム、それをやりますとちゃんと普通にプリントアウトしてくれます。
ということは…。

さては、MBASICのプリンタ制御になにか問題が…。
ひょっとしたら何か特定のプリンタを対象にした特別のコードなどをやりとりしているのかも…。

そこではじめてMBASICのMANUALを調べてみました。
MBASIC(BASIC−80)のMANUALのダウンロードにつきましては[第191回]に書いております。
で。
そのMANUALを読んでみましたら、LLISTとLPRINTのNOTE:のところにあやしげな記述がありました。
下はLLISTのページです。

LLIST and LPRINT are not included in all implementations of BASIC−80.
ですと?
implementationsというのは実装などと訳されたりします。
つうことは、実装されているとは限らない?
ううう。
ほんとかあ?

あ。
しかし。
それにしては、なんとなく何かを出力しようとしていることは事実のようであります。
うむむ。
おそらく実装されていることは間違いないらしい…。
ただ、それがどういうわけか、まともなコードを吐き出してくれないらしい、というところに問題があるようだが…。

秋の日はまことに短こうございます。
あれこれ考えているだけで、あっという間に一日が過ぎてしまいます。
むむ。
なんとかしなければ。
考えていても、らちがあきませぬ。
とにかくMBASIC様がいったいどういうコードを吐き出しているのか、それがわかれば何か手がかりがつかめるかも。
まずはそれを確かめてみることにしました。

本日は時間がなくなってしまいました。
この続きは次回にすることにいたします。

ワンボードマイコンでCP/Mを![第253回]
2012.11.21upload
2012.11.22追記

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