###############
# USBプリンタ #
###############

USBプリンタを作りました。Windowsで印刷したテキストを、P/ECEの画面に表示します。
Windowsからは、P/ECEがUSB印刷サポートとして認識され、「Generic / Text Only」プリンタに見えます。

================
インストール方法
================

「usbprint.pex」をP/ECEに転送してください。

======
使い方
======

1. USBケーブルで、P/ECEをPCに接続してください。
2. P/ECEのメニュー画面で、「USBプリンタ」を実行してください。
3. Windowsが、「USB印刷サポート」「Generic / Text Only」を認識します。
   初回は、デバイスが認識されるまでに、数分間かかります。二回目以降は、すぐに認識します。
   コントロールパネルの「デバイスとプリンター」に、「Generic / Text Only」のアイコンが出たら、認識完了です。
4. 「Generic / Text Only」を右クリックして、「プリンターのプロパティ」⇒「テストページの印刷」を実行してください。
   P/ECEの画面にテストページが表示されたら、正常です。
   なお、「テストページの印刷」の他に、メモ帳(NOTEPAD.EXE)でも印刷できます。
   秀丸エディタでは印刷できませんでした。文字をグラフィックとして印刷するプログラムでは印刷できないみたいです。
5. P/ECEの方向ボタン,又は,A,Bボタンを押すと、ページをスクロール，拡大縮小できます。
6. P/ECEのSELECTボタンを押すと終了します。

========
あとがき
========

今回は、USBプリンタの中でも一番簡単な、「コンパチブルモード(片方向通信)」で「Generic / Text Only」にしました。
「Generic / Text Only」では、全角文字が印刷できません。全角文字の部分は、「.」になります。
「Generic / Text Only」でも、半角カナ文字は印刷できるので、工夫すればそれなりの表現は可能です。

全角文字を表示するには、「ESC/P」等の制御コードに対応するか、又は、「Windows Printing System」等のグラフィック印刷に対応する必要が有ります。
僕にはまだそれらの知識が無いですし、P/ECEにはちょっと荷が重そうなので、対応しない事にしました。

今回のプログラム作成の、参考にさせて頂いた資料は、以下の通りです。

・「USB.org」(http://www.usb.org/)の『Printer Class』(http://www.usb.org/developers/docs/devclass_docs/usbprint11a021811.pdf)の資料
　本家、USBインプリメンテーションフォーラムの、USBプリンタクラス仕様書です。
　USBプリンタクラス自体は結構単純で、仕様書も薄いです。

・「なひたふ新聞」(http://www.nahitech.com/nahitafu/)さんの『IEEE1284をFPGAで実現しよう』(http://www.nahitech.com/nahitafu/fpgavhdl/ieee1284_2/ieee1284_2.html)の記事
　USBプリンタクラスの説明を、日本語で読めるページです。
　特に、「デバイスIDについて」の説明が参考になります。

・「Microchip」(http://www.microchip.com/)の『USB Printer Class(Client, not Host)』(http://www.microchip.com/forums/m491016.aspx)の投稿
　自作したUSBプリンタデバイスを、Windowsの標準プリンタドライバに対応させる方法が書いてあります。
　僕も「互換性の無いデバイス」の警告が出て困っていたのですが、この投稿を読んで解決しました。

==================
Sun May 24 2015
Naoyuki Sawa
nsawa@piece-me.org
==================
