1

Arduinoだけでも、プリンタポートのチェックは可能なのですが、Arduinoの電源供給がUSBであることもあり、どのみちUSBで接続するなら、モニタ用のPC側で、状況を確認する方法もあります。Arduinoのプログラム開発環境にはシリアルモニタが付属しています。シリアルモニタを起動すると、STROBEがONになるのを待ち受ける画面が表示されます。98ノート側で、作成したPRNCHK.BATをDOS環境(又はDOS窓)で保存したフォルダにカレントディレクトリを移動してから実行します。(PRNCHK リターン)起動すると0-7、S、B、Qのキー入力待ちが表示されます。入力するキーでの動作は以下のとおりです。・0:bit 0をHighにする(0b00000001をプリンタポートに出力する)・1:bit 1をHighにする(0b00000010をプリンタポートに出力する)・2:bit 2をHighにする(0b00000100をプリンタポートに出力する)・3:bit 3をHighにする(0b00001000をプリンタポートに出力する)・4:bit 4をHighにする(0b00010000をプリンタポートに出力する)・5:bit 5をHighにする(0b00100000をプリンタポートに出力する)・6:bit 6をHighにする(0b01000000をプリンタポートに出力する)・7:bit 7をHighにする(0b10000000をプリンタポートに出力する)・S:STROBE信号のON/OFFをトグルする・B:BUSY信号の状態をモニタする・Q:スクリプトを抜けてDOSプロンプトに戻るここでは0(bit 0)を選択して、0b00000001をプリンタポートのData bitに送信します。Arduinoでプリンタラインの状況がモニタされ、モニタ用PCに結果を表示します。この例では、モニタ用PCにbit0のラインがHIGHになり、0b00000001を受信したことが示されています。途中、98ノートとArduino間のネゴシエーションのためのSTROBE信号やBUSY信号に変化についてもモニタ用PCに表示されます。98側のスクリプトが正常に終了して、次の入力の待ち受けになった場合は、98ノートのプリンタポートのSTROBEとBUSYが正常であることが判ります。98ノート側の画面で、Waiting.....と表示される様な場合は、STROBEまたはBUSYが故障していることになります。DATAラインは8本あるので、bit 0からbit 7まで順にこの作業を繰り返します。これらが、正常動作した場合は、98ノートの単方向データ通信に問題はなく、正常であるという結論になります。98ノートのプリンタポートチェッカー の記事は、以上です。
2022.05.06
閲覧総数 418
2

98ノートのプリンタポートチェッカーを作った背景です。98ノートは、1990年代に国民機としてたいへん普及したNEC製のノートPCで、その仕様は、海外製のPCと互換性がなく、Windows95発売までは、国内のPC市場は鎖国状況にあり、NECの98シリーズの1人勝ちの時代がありました。最近になって、当時使用していたPC-9801NX/Cを押し入れ深くから、引っ張り出して電源を入れてみましたが、30年前の製品であり、さすがに起動しませんでした、電源を入れっぱなしにしてしばらく放置すると起動することもあったのですが、電解コンデンサの液漏れによる故障の症状の様です。ネットで色々物色していると、壊れた98ノートであっても、いまだにオークションでさかんに取引されていて、メンテナンス済の完動品であれば、かなり高額で取引されていること知りました。ネット情報では、電解コンデンサの全交換というのが、キーワードの様でしたので、私もオークションでの高額売却を夢見て、メンテナンスにチャレンジし成功しました。メンテナンス後の98ノートの外部マウスポート、10Keyポート、110pin拡張ポート、PCカード、モデムスロット、外部ディスプレイアダプタ接続用コネクタなどのI/Oの動作確認は、何らかの周辺機器を取り付けて調べることができましたが、プリンタポートだけは、動作確認環境がなく、チェックすることが出来ませんでした。9821シリーズや、DOS/V互換機のプリンタポートであれば、インターリンクケーブルでつないで、パラレル双方向データ通信によるファイル送信などにより、プリンタポート(パラレルポート)の動作確認ができるものの、9801ノートシリーズは、単方向通信しかできず、同様の確認方法がとれません。単方向通信しかできない98ノートのプリンタポートは、下の写真にあるアンフェノールセントロニクスハーフピッチ20PinのコネクタがPC-9801N、PC-9801NS、PC-9801NV、PC-9801NC、PC-9801NS/E、PC-9801NS/T、PC-9801NL、PC-9801NS/L、PC-9801NA/C、PC-9801NS/R、PC-9801NX/C、PC-9801NL/Rで使用されています。なお、PC-9801NS/Aでは、アンフェノールセントロニクスハーフピッチ36Pinが使用されていますが、双方向通信に対応しているか否かは未確認です。(それ以前の9801シリーズではアンフェノールセントロニクスフルピッチ14Pinもあるそうです)プリンタポートの動作確認方法として、実際にプリンタを繋げてみることも考えられますので、当時のプリンタをオークションで入手も検討しました。ところが、30年前の正常動作するプリンタの入手は困難で、プリンタリボンなどのサプライン品の供給もされておらず、98ノートのプリンタポートの動作確認のためにオークションで当時のプリンタを入手する気にはなれませんでした。そこで、メンテナンスの終わった98ノートを『プリンタポート動作環境なしのため未チェック』と注意書きを書いて、オークションに強行出品したのですが、かなり高額な取引となりました。ところが、直ぐに落札者の方から連絡が来ました。落札者の方に状況を聞くと、プリンタポートに異常があるとのことでした。プリンタを繋いでるのではなく、工場の保守用の機器をプリンタポートに繋いでいて、当時の98用のソフトウェアしか使えず、非常に困られているとのことでした。改めて、98ノートの産業用の需要が、今だにあることに気づかされました。さて、送り返されてきた98ノートPCですが、どうやってプリンタポートの動作チェックをすれば良いか色々と検討してみました。単方向通信の仕様(アンフェノールセントロニクスハーフピッチ20pin)なので、動作するプリンタがなければ、チェックする手段としてのハードルは高いと言えます。そこで、家に転がっていた、Arduino Nanoの互換品(AVR マイコン)を利用して、プリンタポートチェッカー (PC-9801単方向 20pinタイプ)を作成してみました。その2のブログから、作成記事を書きます。
2022.05.05
閲覧総数 546
3

プリンタポートチェッカーの操作の説明をします。単方向通信のみサポートしている9801シリーズのプリンタポートが正常に動作するかの確認は、PC側から周辺機器側に送られる・DATAの8本のライン・STROBEの1本のライン周辺機器側からPC側に送られる・BUSYの1本のラインの合計10本のライン全てが、操作したとおりにHIGHまたは、LOWに移行するかを見ることです。まずは、簡単な方法である、Arduino nanoに結線したLEDを確認する方法です。とは言っても、Arduino nanoの電源供給は、USBポートなので、どのみちPCに接続して作業する場合は、その9を見てください。こちらは、LEDなどの機能を示しています。但しこれは、作成者の配線や部品配置によって異なってきます。私が作成したもののLED配置は写真のとおりです。BUSY信号のみArduinoのオンボードのLEDを使用していて、合計10個のLEDでプリンタのラインの状態を確認することができます。98ノート側で、作成したPRNCHK.BATをDOS環境(又はDOS窓)で保存したフォルダにカレントディレクトリを移動してから実行します。(PRNCHK リターン)起動すると0-7、S、B、Qのキー入力が表示されます。入力するキーでの動作は以下のとおりです。・0:bit 0をHighにする(0b00000001をプリンタポートに出力する)・1:bit 1をHighにする(0b00000010をプリンタポートに出力する)・2:bit 2をHighにする(0b00000100をプリンタポートに出力する)・3:bit 3をHighにする(0b00001000をプリンタポートに出力する)・4:bit 4をHighにする(0b00010000をプリンタポートに出力する)・5:bit 5をHighにする(0b00100000をプリンタポートに出力する)・6:bit 6をHighにする(0b01000000をプリンタポートに出力する)・7:bit 7をHighにする(0b10000000をプリンタポートに出力する)・S:STROBE信号のON/OFFをトグルする・B:BUSY信号の状態をモニタする・Q:スクリプトを抜けてDOSプロンプトに戻るまずは、プリンタポートのデータラインのbit 0をHighにしてみます。0を選択すると、Arduino側のbit 0に相当するLEDが点灯すれば、データラインのbit 0が正常動作していることを確認できます。もしLEDに変化が見られなければ、98ノートのプリンタポートのbit 0が故障していることになります。途中、98ノートとArduino間のネゴシエーションのため、STROBE信号やBUSY信号に変化します。正常に終了して、次の入力の待ち受けになった場合は、98ノートのプリンタポートのSTROBEとBUSYが正常であることが判ります。98の画面で、Waiting.....と表示される様な場合は、STROBEまたはBUSYが故障していることになります。DATAラインは8本あるので、bit 0からbit 7まで順にこの作業を繰り返します。これらが、正常動作した場合は、98ノートの単方向データ通信に問題はなく、正常であるという結論になります。その9では、Arduinoのシリアルモニタを使用する方法を示します。
2022.05.06
閲覧総数 228
4

PC-9801単方向通信のラインとArduino Nanoによる制御についてです。単方向通信のプリンタポートの通信は、各ラインに1bitが割り当てられ、8ラインを使用して、8bitを同時に送信します。これ以外にSTROBEに1ライン、唯一プリンタ側から送られるBUSYに1ライン、グランドに1ライン、合計で11ラインが使用されます。このあたりは、先人の方々が色々調査され情報を公開されています。これらの11ラインをArduino NanoのInput、Output、GNDに接続して、制御を行います。なお、GND以外は、10kオームの保護抵抗を入れています。9801とプリンタ間の通信手順についても、先人の方が調査され公開されています。通信手順に応じて、Arduino NanoにBUSY信号の制御を行うプログラミングや、プリンタポートそれぞれのラインの状態をArduino Nanoから、Serial.printで、シリアルモニタ(Arduinoのプログラミングツール付属の簡易ターミナルソフトウェア)に出力するプログラミングを行いました。また、Arduino側には、プッシュボタンを取り付けていますが、これは、BUSY信号のオン/オフのトグル用で、プリンターの動作を手動でエミュレートします。 なお、モニタ用のPCやシリアルモニタがなくとも、各ラインのチェックが行える様に9個のLEDを取り付けました。(追加で、1個はArduino内蔵LEDを使用します)Arduino Nano周辺の配線図は、以下を確認ください。アンフェノールセントロニクスハーフピッチ20Pinプリンタコネクタ側のPin番号は、以下の写真のとおりとなります。なお、98ノート側のPin番号は、この写真の鏡面像に相当するPin番号の配置となります。9801シリーズに20Pinのプリンタポートが登場するよりも以前には、14Pinのアンフェノールセントロニクスフルピッチのプリンタポートがありましたが、Pin番号を読み替えて配線すると、今回作成したプリンタポートチェッカーは、そのまま利用することができます。Pin番号読み替えの為の情報は、先人のブログで紹介されていますので、ここでは述べません。9821シリーズで採用された36Pinのアンフェノールセントロニクスハーフピッチのプリンタポートについては、双方向通信が可能なため、今回の様なプリンタポートチェッカーに頼らずとも、2台のPC間をパラレルクロスリンクケーブルでつなぎ、RDiskなのどDOSアプリで動作確認が可能です。また、双方向通信が可能な9821シリーズでは、プリンタのI/Oアドレスが異なっていて、この後で紹介する9801ノート側のチェッカースクリプトはそのままでは動作しません。今回作成したチェッカーは、あくまでも単方向通信しかサポートされていない9801シリーズでの使用を前提にいています。その3では、プログラム(スケッチ)を紹介します。
2022.05.06
閲覧総数 595
5

天体用PCなら、処理能力の高い最新型のモバイルPCを購入すればいいじゃないかと思われる方も多いでしょうが、動かないソフトがあったりします。シェアウェアのK3CCDToolsは現在でも64bit VISTAに入れて画像処理に利用していますが、長時間露光改造WebCamの制御の機能は古いPCでしか動作しません。すでに、2000年に製造中止となっているのですが、カシオ計算機のカシオペアFIVA(MPC-103)なる今となっては非力な300MHzのモバイルPCがあり、WebCam改造で天体写真を撮り始めたころにはこのPCをよく利用していました。ですが、画面が映らなくなったり、HDDに不良セクタができたり、またカメラもミラーレス購入後は、ほとんど利用しなくなってしまいました。故障してもHDDはそのままで、ヤフオクにFIVAの出品があると部品どりを目的に落札して修理し、今でも動作しています。このWin98SEのPCには、シェアウェアのK3CCDToolsを当時導入しているのですが、K3CCDToolsのシェアウェアのロック解除パスワードが個別認識でありOSを再インストールした場合、パスワードが無効になってしまうのです。最新型のモバイルPCに乗り換えられない訳は、長時間露光改造WebCamをK3CCDToolsで制御する必要があるためです。KameさんがQCamを今でも使用されているのを見て、火がついてしまいました。少しでも性能アップしておきたいので今回は、改造を試みました。このPC(MPC-103)は、最大64MBまでのPC100メモリまでがサポートされていてそれ以上の大きさのメモリはバイオスが認識できません。またHDDも32GB以上の大きさはバイオスが認識できません。そこでまずは、HDDのSSD化です。32GB未満のSSDとなると16GBとなってしまいますので、現在積んでいる30GBのHDDよりも容量が小さくなってしまいます。そこでネットで色々調べて、バイオスが認識する限界近くの30GBのSSDを物色しIDE接続の方法を調べたところ、この組み合わせで実現できることがわかりました。30GBのSSDとしては、mSATAと呼ばれるずいぶん小さな規格のものがあり、これをIDEに変換するアダプタがあるのです。インテル SSDMCEAC030B301玄人志向変換基盤 [mSATA SSD ⇒ 2.5型IDE SSD] KRHK-MSATA/I9続いてメモリなのですがこれもバイオス上では64MBを超えるメモリは認識されません。FIVAの改造を紹介している諸先輩方が最大512MBまで認識できるバイオスのパッチを公開して下さっています。同じPC-133の512MBのメモリでも動作するメモリは限られ、私も数種類試しましたがバッファロー純正のVN133-512MYのみでした。また中古品もよく出回っています。バッファローPC/133 512MB(VN133-512MY)また、メモリの62pinと68pinをジャンパするCKE改造のためはんだ作業を要します。これらの改造により、SSD30GB、メモリ512MBのWin98SE機となり蘇りました。 ハイバーネート・レジュームとも動作します。 ついでに、今でもWin98をサポートしてくれているSUPER STAR IVを導入しました。かろうじてXpも動くのでデュアルブートにしています。Xpなら動くステラナビゲーター9もなんとか動きます(さすがにサクサク感はありません)。データの受け渡しはPCMCIAカードスロットのアダプタを用意しました。リチウムイオンバッテリーもセルのみ交換してくれるサービスがあったので、新品に交換し、4時間以上持つ様になりました。注意しなければならないのは、Win98SEやXpはすでにサポートが終了し、セキュリティー上の問題が生じるリスクがあります。無線による望遠鏡制御もしたいので、無線LANには繋げてもWANからは遮断しての使用に限定したいと思います。それでも危険なのかな?とりあえず、これでWebCam撮影を再開できそうです。
2014.05.06
閲覧総数 773