------------------------------------------------------------------------ ポケット・リンク・システム デバイスドライバ PLINK.SYS Ver. 1.02 (c)1990,93 N.Kon ------------------------------------------------------------------------  ポケット・リンク・システム デバイスドライバは、PC-E500 シリーズの ポケコンを用いてポケット・リンク・システムを使用する際に必要となるポ ケコン側のデバイスドライバです。 ■パッケージの内容  このパッケージに含まれているものは以下のとおりです。   ・PLINK.DOC … いまご覧になっているもの ・PLINK … デバイスドライバをインストールするプログラム ・PLINK.S … PLINK のソースプログラム(XASM で再アセンブル可 能) ・PLINK.BAS … PLINK をメモリに書き込む BASIC プログラム  またそれぞれの検査用数値は    ファイル名 | CRC32 | バイト数    -----------+--------+-------    PLINK |0fd3c209| 2002    PLINK.S |84f48817| 20595    PLINK.BAS |3c4a322a| 4578 です。 ■使用に当たっての準備(インストール方法)  このデバイスドライバは機械語で書かれていますが、メモリ・スロット "S1:","S2:","S3:" のいずれかに常駐して機能する構造になっていますので、 特に BASIC プログラムであるとかマシン語エリアであるとかは必要としま せん。しかし、常駐させるときには常駐のための機械語プログラムを動作さ せる関係上、マシン語エリアが必要となります。このプログラムの実行には $BF000〜がマシン語エリアとなっている必要があるので、   POKE &BFE03,&1A,&FD,&B,0,&C,0 CALL &FFFD8 などの操作によってマシン語エリアを確保しておきます。  "PLINK.BAS" は、デバイスドライバを常駐させるための機械語プログラム を、BASIC のコメントや POKE,CALL 命令を使用して記述したものです。RUN することによって、デバイスドライバを常駐するための機械語プログラムが メモリ上に書き込まれ、自動的に実行されます。従って、マシン語エリアを 確保した後は PLINK.BAS を何らかの方法によってポケコンに転送し、RUN するだけです。  実行した結果、正常に常駐できた場合には "done" という表示がでます。 同時に "S1:" に "PLINK.SYS" というファイルがライトプロテクト属性 ("P") を伴って作成されているはずです。この "PLINK.SYS" というファイ ルがデバイスドライバですので、以後はこのファイルをいじらないように注 意してください。  正常に常駐することができなかった場合にはエラーメッセージが出るので、 それにしたがって環境の改善を行なってください。エラーメッセージとその 意味は次のとおりです。   ・Not enough memory … 常駐しようとしたメモリスロットの空き                 容量が十分ではない   ・PLINK already exist … 既に "PLINK.SYS" が存在している   ・fatal error … メモリスロットの構造が異常である(ALL                 RESET する以外に回避策がない)  以上で、デバイスドライバの準備は終了です。一度常駐してしまえばイン ストール用の BASIC プログラムもマシン語エリアも必要ありません。あと は、パソコン側のプログラムならびにシリアル入出力の準備を必要に応じて 行なってください。  シリアル入出力はポケコン側から送信したデータをパソコン側で受信する ことができ、またパソコン側から送信したデータをポケコン側で受信できる ようになっていなくてはなりません。また、通信条件としてはビット長を8 ビットとし、また8ビットで構成されるすべてのデータが加工されることな しに通過できなくてはなりません(ビット長が8ビットでなかったり、X制 御が有効になっている場合は上記の条件が満足されない場合があります)。 推奨する通信条件は以下のとおりです。   ●通信速度 = 9600bps 以上   ●パリティー = なし   ●ビット長 = 8ビット   ●ストップビット = 1ビット   ●X制御 = 無効 ■使い方  ポケット・リンク・システムは "L:" という仮想ドライブを提供するため の環境ですから、使い方というものは特に存在しません。普段、"E:" や "F:" といった RAMFILE に対して COPY や SAVE,LOAD しているのと全く同 じように "L:" も操作することができます。試しに、   COPY "S1:TEXT.BAS" TO "L:"   FILES "L:" としてみてください。"S1:TEXT.BAS" と同じものが "L:" にも見えるはずで す。 ■ポケット・リンク・システムの終了方法  ポケコン側デバイスドライバは特に”終了”という概念はないので、使わ ないときはそのままにしておいても何も害はありません。一方、パソコンは サーバープログラムが実行中は他に何も作業ができないので、パソコンで作 業を行ないたい場合はサーバープログラムを終了させなくてはなりません。 この操作はポケコン側で   INIT "L:D" とすることで実行できます。 ■異常が発生したとき  普通の使い方をしている状態で異常が発生することは、まずありえないの ですが、何らかの事故によって通信がうまくいかなくなることも考えられま す。このようなときにはポケコン側で   INIT "L:I" としてみてください。ポケコンから 0x00 が 130 バイト送信され、同時に デバイスドライバ内部が初期化されます。この操作の後にサーバー側が正常 に反応するようであれば、ブロック・デバイス・チェック・ツールなどを用 いて "L:" の内容が不当に破壊されていないかどうかを確認したのちに使用 を再開すると良いでしょう。INIT "L:I" としてもサーバー側が反応しない のであれば、サーバー側のプログラムを RESET などによって強制的に停止 させ、ポケコン側では   INIT "L:" としてサーバー側が停止したことを "L:" に教えます。このような場合にそ れまで扱っていた仮想ドライブ "L:" の内容がどうなるかは、サーバープロ グラムに依ります。一見、正常なように見える場合もありますが、管理デー タが破壊されている場合もあるのでブロック・デバイス・チェック・ツール などを用いて "L:" の内容が不当に破壊されていないかどうかを確認したの ちに使用を再開すると良いでしょう。  ポケコン側デバイスドライバは暴走または ALL RESET 等の事態が発生し ない限り有効なはずです。 ■使用上の注意 ●サーバープログラムを停止させる場合には、必ず INIT "L:D" またはこれ と同等な操作によって行なってください。サーバープログラムを単体で終 了させると、次回にサーバープログラムを再起動した際にポケコン側とパ ソコン側のデータ内容に不一致が生じて、"L:" のデータを不当に破壊す ることがあります。 ●デバイスドライバより前に存在するファイルを消去するなど、デバイスド ライバの存在するアドレスが変化してしまうような操作は絶対に行なわな いでください。行なった場合は確実に暴走します。また、"L:" を操作し て "Bad drive name" というメッセージが出ないような状態で PLINK.SYS を消去することも絶対にいけません。 ■プログラムについて  デバイスドライバ PLINK.SYS は、標準ブロックデバイスに必要とされる すべてのコマンドに対して正しい値を返しているわけではありません。メデ ィア・チェック(コマンド番号 0x10)は常に「エラー無し」を返しており、 ベリファイ関係のコマンドは転送作業を行なうだけであり、ベリファイは行 なわずに「エラー無し」を返しています。  更に、ポケット・リンク・システムの構造上、セクタのアドレスを求める コマンド(コマンド番号 0x17)は正しい値を返すことができないので、指 定されたセクタをバッファに読み込み、そのバッファのアドレスを返してい ます。従ってここで得られるはずの (di) の値は全く無意味なものです。  また、コマンド番号 0x12-0x15 の処理を終了した後の論理レジスタ並び にXレジスタの値は全く無意味なものです。FCS(File Control System) を 通して使用している場合には問題ありませんが、直接デバイスを操作するよ うな場合には注意してください。 ■履歴 Ver. 1.00 (90/05/18) … ・初版公開 Ver. 1.01 (93/01/16) … ・コマンド番号 17h の処理を改良し、無駄なセ クタ読み出しを行なわないようにした ・CALLF,RETF を必要最低限に削減し、CALL,RET に置き換えた ・ソースプログラム作成時のアドレス補正処理 を自動化した ・インストールプログラムを大幅に改良した ・インストール用の BASIC プログラムを改良し た Ver. 1.02 (93/04/17) … ・コマンド番号 12h-15h と 17h を混在させて 使用した場合にデータの不一致が生じるバグ を取り除いた ■参考にしたもの ・加古 英児,「KNJSCRN」,フリーソフトウェア ・近 成人, 「ポケット・リンク・システム」, ポケコン・ジャーナル 1990 年 6 月号 ■著作権等について  このプログラムの著作権は近 成人が所有します。アーカイブ内容を改変 しない限りアーカイブの再配布は自由です。譲渡もこれに準じます。 ■おわりに  良い感想、悪い感想、改良点、なんでも結構ですのでご意見をお寄せくだ さい。電子メールは以下のものが利用可能です。    ・ポケット通信 … ID = 1481 (N.Kon) [TEL: 03-3299-8661]    ・JUNET     … kon@cs.titech.ac.jp    ・Amateur Radio … JK1OSG @ JI1ABQ  JUNET については、現在のところはアカウントが残っていますが、いつな くなるかはわかりません。また、近いうちに NIFTY-serv にもアカウントを 作る予定です。 Apr. 17th, 1993 近 成人