えっくす8RL1 CZ8RL1コントローラー/エミュレーター Version 0.10 Copyright (C) 2001 Tatsuyuki Satoh 目次 1.概要 2.はじめに 3. 使用上の注意 4.動作環境 5.アダプターの制作方法 6.プログラムの実行方法 7.その他 8.変更履歴 9.謝辞 1.概要 X1turbo用のテープデータCZ8RL1を、パラレルポートでPCに接続して、 フルロジックコントロールを行うソフトです。 テープデータの吸い出し/書き出しが出来るので、大事なテープソフトの 保守、メンテナンスが可能です。 吸い出し方向では、無音検出による自動停止、エッジ検出によるジッター 測定/調節など、様々な機能があります。 将来的には、X1のCM端子に接続してCZ8RL1として動作するエミュ レーションとしても動作させる予定です。 意気込みは、めざせテープ吸い出し定番ソフト! 2.はじめに CZ8RL1はフルロジックコントロール可能で、DIN7ピンのコネクターから 制御することが可能です。 ここにはCZ8RL1の制御線4本と、2値化済みの読み込み/書き込み信号があ り、TTLレベルで、プルアップ付きの入力ピン3本、出力ピン3本があれば 完全なコントロールが可能です。 近年のPCの高速化により、ソフトウェアだけで十分な精度を取ることが できます。 3. 使用上の注意 このプログラムはフリーソフトウェアです。 著作権は、作者(佐藤 達之)が保持します。 このプログラムの使用によるいかなる損害に対しても、作者は責任を負いません。 CZ8RL1を壊しても、絶対に責任はとりませんよ〜 転送、配布、公開は基本的にフリーです。 ただし、下記の項目については作者に無断で行うことを禁止します。 1) アーカイブ一部のも、及び改造したものを配布すること。 2) 配布することによってお金を得る。(手数料もダメです!) 3) その他、著作権法にふれる行為。 サポート?URLは、筆記時は下記となっております。 http://members.tripod.co.jp/x1resource/index.htm 4.動作環境 PC : Pentium300MHz以上のDOS/Vパソコン(推奨500MHz以上) 必要メモリ量は、サンプリング周波数/時間、ファイル長に依存します。 デフォールトオプションでの吸出しでは4MB弱が必要 ・ネックはパラレルポートの速度ですので、CPUが500Mhz以上あっても、 あまり精度は変わりません。 ・LPTポート(ISA)のアクセスタイミングを調整出来る機種は、8bitアクセ スウェイトを減らせば精度があがるかもしれまんせん。 OS : MSDOS+DPMI環境か、Windows95/98のDOS窓(Meも可多分) 下記の条件が必要で、NT/2000では絶対に無理です ・DPMIのDOSプロプラムが動くこと。 ・分単位で割り込み禁止状態が続いてもシステム上問題がないこと。 ・また割り込み禁止中にメモリスワップ、バスマスタ動作等でプログ ラムの実行が中断されないこと。 I/F: 標準パラレルポート(EPP/ECP等種類を問わず,LPT1=0x378が望ましい) 同梱の回路図に基づいて制作されたアダプター CMT:もちろんCZ8RL1、あとはアダプターとCZ8RL1を接続するケーブル 5.アダプターの制作方法 同梱の回路図に基づいて制作します。 回路図は「いろいろな目的が」混じっているので、どの部品と配線 が必要かは、制作前によく理解して置いてください。 キーボード受信機が不要なら、空中配線でDSUB25ケース内に納めること も十分に可能です。(がんばればキー受信機有りでもいけます!) 吸い出しのみが目的で、制作が面倒な人は、超簡易版の回路図でも動かす ことが出来ますが、下記の制限があります。 ・カセットの再生/録音が手動操作になる。 ・カセットの停止キーで中断出来ない。 動作中は完全にロック状態なので、これが結構不便です。 ・カセットへの書き出しが出来ない。(痛い!) 6.プログラムの実行方法 x8rl1.exe を実行すると、コマンドとオプションの一覧が出ます。 X8RL1.EXE [command] [-option] [filename/code(hex)] コマンドについて R : テープから吸出して、ファイルに記録します W : ファイルから読み出して、テープに記録します。 C : code(hex)のコマンドをCZ8RL1に送ります。BASICの'CMT=n'相当です。 codeに'80'を指定するとステータスリードします。(CMT関数相当) codeに'81'を指定すると繊細リードします。(CMT()関数相当) E : エミュレーションモードで起動します。(現在未サポート) オプションについて -c[cpu_speed_MHz] CPUの実行速度をMHz単位で直接指定します。少数指定可 デフォールト=自動検出です。 -p[wp][,wd,ww,wc,ws パラレルポートのI/Oアサインの指定です。 ,rp,rd,rb,rs,rr] [wp]のみ指定するとDOS/VのLPTに自動対応します。 '-p278'でDOS/VのLPT2に対応します。 デフォールト='-p378'(LPT1) -n CZ8RL1の制御を行いません(超簡易版に対応) デフォールト=制御有り -s[rate_Hz] 吸出し時のサンプリングレートを設定します。 デフォールト=X1標準の8KHz -t[time_min] 吸出し時の最大時間の指定です。 デフォールト=60分。 -j[hi(%)],[lo(%)] エッジ検出ジッタ−を指定します。 デフォールト=50%/50% です。 -k[sec] 吸出し時の無音検出自動停止時間を設定します。 デフォールト=15秒 -i[sec] お尻のアイドル時間の設定 デフォールト=Rコマンド3秒、Wコマンド15秒 あとは説明しません。下記の下記のサンプルから適当に使ってください。 +------------------------------------------+-------------------------+ | やりたいこと |コマンド | +------------------------------------------+-------------------------+ |テープをイジェクトします。 | x8rl1 C 00 | |テープを再生します | x8rl1 C 02 | +------------------------------------------+-------------------------+ |テープから吸い上げて、[test.tap]のファイル|x8rl1 R test.tap | |に記録します。 | | +------------------------------------------+-------------------------+ |[test.tap]のテープファイルから、テープに |x8rl1 R test.tap | |吐き出します。 | | +------------------------------------------+-------------------------+ |上の動作をパラレルポートをLPT2,超簡易版で |x8rl1 R -p278 -n test.tap| |使う | | +------------------------------------------+-------------------------+ 7.その他 1)'-p'オプションについて パラメーターをフル指定することで、DOS/V規格以外のパラレルポート にも対応できますが、下記の条件があります。 ・I/Oアドレスが16ビットの範囲にあること。 ・バイトアクセス可能なポートであること ・出力ピンが、1つのポートにアサインされていること ・入力ピンが、1つのポートにアサインされていること 各パラメーターの説明 wp : 出力ポートのアドレスを16進数4桁で指定します。 以下を省略することで、DOS/V標準LPTとして設定されます。 wd : 出力ポートのデフォールト値を16進数2桁で指定します。 WRITEDATA/COMMAND/STROBE以外のビット値を設定するとともに、 WRITEDATA/COMMAND/STROBEの各ビットの立てることでそのビット を負極性の出力ポートとして設定できます。 ww : WRITEDATAのビットマスク値を16進数2桁で指定します。 wc : COMMANDのビットマスク値を16進数2桁で指定します。 ws : STROBEのビットマスク値を16進数2桁で指定します。 rp : 入力ポートのアドレスを16進数4桁で指定します。 rd : 入力ポートの負極性ビットマスクを16進数2桁で指定します。 rb : BUSYのビットマスク値を16進数2桁で指定します。 rs : STATUSのビットマスク値を16進数2桁で指定します。 rr : READDATAのビットマスク値を16進数2桁で指定します。 PCIバスの高速パラレルポートなんぞをお持ちかたはお試し有れ。 筆者は知りませんがPC98xxでも可能かも。でもCPUが遅すぎるかも 2)'-j'エッジ検出ジッターオプションの調整方法について 吸出し時でエッジを検出した時に、サンプリングタイミングを 補正する機能です。 デフォールトは50%でビットの中間に補正されます。 通常はデフォールトで大体吸えますが、何度に一度かエラーが発生する ような程度の悪いものは、下記の調整を行うことで、救われるかもしれま せん。 動作に関する詳しい説明はしませんが、下記の手順で調整できます。 ・ファイル指定なしで「調査」を実行します。 コマンド:x8rl1 R ・「推奨ジッター」の値を見ます。 たとえば「推奨ジッター LOW=53.55 HIGH=40.00」と表示される。 両方とも50%に近ければデフォールトで問題ありません。 ・50%から大きくずれているようであれば、その値を'j'オプションで 指定して再度吸出しを実行します。 上記の場合'-j53.55,40.00' ・「推奨ジッター」の表示が50%に近くなっていると思います。 8.変更履歴 2001.10. 4 Ver.0.10 1stリリース 9.謝辞 そのツールの制作とCMT通信プロトコルの解析の為にCZ8RL1を無償で貸し出して いただき、動作チェックまでしていただいたsho_kunさんに感謝!感謝!