[今更誰得] PB-1000の印刷環境を作る #カシオ #ポケコン

久々に記事を書くと思ったらこんなネタで本当にすいません。

ということで、カシオのポケコンPB-1000の話です。
 
中の人的にはカシオのPB-410でポケコンのキャリアをスタートしたので、PB-1000はある意味憧れのポケコンで、性能だったらFX-890Pとか、シャープ系であればPC-G850VSとか、あるわけですが、やっぱりこの機種が好きなんですよねぇ。

で、苦労して奇跡的に治ったMD-100も手元にあって、RS-232Cの通信、FDDへの記録は試せたのですが、プリンタ環境を試したことがないなーと思い立ちまして。

もちろん、カシオ純正ということであれば、FP-100であったり、FP-40であったりとあるわけですが、FP-100はレア中のレアで入手はほぼ不可能(今年eBayに一瞬あったのですが価格的に厳しく見送り)で、FP-40のほうは中の人も持ってますし魔改造もしたのですが、FP-40をPB-1000(FA-7/MD-100)と繋ぐには、FP-40にSB-43というセントロニクスインターフェースボックスが必要なんですね・・・。

FP-40はいろいろなポケコンにつなげるように、と接続インターフェース部分を着脱式にしているなかなか珍しい機種で、中の人もどうにかこうにかSB-42(PB-100シリーズ用)とSB-44(FX-860/870/890シリーズ用)のインターフェースボックスは入手できたのですが、SB-43もこれまためったにオークションに出ることがないので、なかなか厳しく、他の手段を検討することにしました。

①セントロニクス接続のPC用プリンタを繋ぐ


現在、プリンタのインターフェースというとほぼUSBオンリーですが、前世紀(20世紀)にはセントロニクス接続というインターフェースがデファクトスタンダードだったのですね。パソコンでいえばPC-98が全盛の時代(20世紀末になるとAT互換機に駆逐されましたが)です。


2021年現在、新品かつ安価でセントロニクス接続なプリンタはありません。もしかしたら新品は存在するかもしれませんが、超ニッチニーズの高価なものか、コレクター向けのデッドストックくらいしかおそらくないんじゃないかと思います。

で、中の人もオークションでセントロニクス接続の熱転写プリンタを入手いたしました。PC-98用のプリンタですが、こちらはPB-1000から問題なく印刷することが出来ました。



②RS-232C接続のレシートプリンタを繋ぐ


上の熱転写プリンタをオークションで物色していたときに、関連検索でたくさん出てきたのが「レシートプリンタ」といわれるプリンタです。名前の通り、お店のレジのレシートなどを印刷するのに使われることが多いようです。あとは、銀行窓口などで順番待ちするときの整理番号を発行するプリンタなんかとしても使われているのでしょうかね。

実は、一般のPCプリンタと比べると、レシートプリンタは接続手段が多様で、
・USB
・LAN
・パラレル(セントロニクス)
・シリアル(RS-232C)
・Bluetooth
といったものに対応しています。もちろん、機種ごとに対応する方式が異なりますが、ポケコンと繋ぐとなると、USB、LAN、Bluetoothは直接接続の手段がありません。残るはパラレルとシリアルですが、オークションで見ている限りではパラレル接続可能なレシートプリンタはほとんど見当たらず、シリアル接続可能な機種であれば、そこそこの数が出回っているようです。

ということで、中の人も1台入手してみました。

富士通アイソテック社のFP-1100という機種です。はい、この記事を読んでくださっている奇特な皆様ならもうおわかりですね?

FP-1100ってカシオのパソコンやんけ!w




これもまあ何かの縁というかなんというか。

さて、このFP-1100ですが、ESC/POSといういわゆるレシートプリンタのようなPOSプリンタで標準となっているプロトコルに対応しています。

ESC/POSの仕様は仕様策定しているエプソンがWebで公開しているので簡単に調べることが可能です。

エプソンのコマンドリファレンス
https://reference.epson-biz.com/modules/ref_escpos_ja/index.php?content_id=2

とはいえ、おそらくはポケコンからの出力のような単純なテキスト印刷であれば、ESC/POSの命令セットを使う必要もないのかもしれませんが、カタカナを正しく印刷しようとすると、ESC/POSでの設定が必要になります。

と、書くとスゴく簡単な話のようですが、中の人はちゃんと印刷できるようになるまで数日かかりました。結果としては、プリンタ本体の設定が何が正解なのかがわからず試行錯誤した感じです。実際、現在の状態でどの設定が正常動作に効き目があったのかも正直よくわかっていません。

ご参考までに、中の人のFP-1100の設定情報はこちらになります。


中の人の勝手な推測ですが、おそらくは、メモリスイッチ2の「エラー復帰」を「自動」にしていたのが効いたような気がします。「エラー復帰」は名前だけ見ると想像しにくいのですが、マニュアルによれば「電源ON時およびエラー復帰時の動作」を示していて、「自動」にすると「自動復帰してデータ受信可能状態となります。」、「コマンド」にすると「リセットコマンドを受信するまで他の受信データを受け捨てにします。」となっています。

中の人は最初いくらRS-232Cから送信してもうんともすんとも言わず、悩んでいたのですが、中の人のFP-1100はここが「コマンド」になっていたので、電源をONにしてもリセットコマンドを送らないとデータが受信できなかったんだろうなと・・・リセットコマンドってどうやって送るかも知らないですしw

はい、ということで、もう今更誰得中の今更誰得ですが、どうやって印刷するかですね。
 
残念ながら、パラレルポートからの接続ではないので、LLISTとか、LPRINTとかで印刷するということはできないんですが、基本、プログラムでシリアルポートに文字列を送り込むだけですので、それほど難しいものではありません。

10010 ' FP-1100 PRINT TEST
10100 PRINT "RECIPT PRINTER FP-1100 TEST"
10200 OPEN "COM0:5,N,8,1,N,N,N,B,N" AS #1
10300 'ESC t : CHR CODE TABLE
10400 PRINT #1,ESC$;"t";CHR$(1);
10500 INPUT "MESSAGE:",M$
10600 IF M$="" THEN CLOSE #1:END
10700 PRINT #1,M$
10800 GOTO 10500
		

※印刷イメージの表示には、PBロッキーさん(https://blog.pb-100.ga/)作の"hamura.css"(https://github.com/PB-100/hamura.css)を利用させていただいています。


簡単に言えば、普通にRS-232Cで転送するのと同じ感じでOPEN文で接続(行10200)し、出力したい内容をPRINT#文で送信(行10700)、と、まあこれだけです。

行10400でやっているのがESC/POSコマンドの出力でしで、キャラクターコードテーブルをカタカナ(CHR$(1)=1がカタカナを示しています)に設定しています。これでカタカナも化けずに出力されるようになります。


ちなみに上でLLISTは出来ないと書いたのですが、通常のLLISTは出来ないのですが、要するにプログラムリストをRS-232Cで送ればよい(カタカナを使うときだけ事前にESC t 1を送信するプログラムを実行しておく)だけなので、PB-1000のMENUでリスト印刷したいファイルを選んで、[save]→[RS232C]→(ボーレート等の設定を確認)→[EXE] で簡単に印字できてしまいます。ほぼセントロニクスプリンタに出力するのと手間的には同じくらいですねw

中の人はこのFP-1100は1000円未満(送料除く)で入手したのですが、得られた成果からすれば、とても安い買い物だったな~と内心得した気分ですw




コメント