−<□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□>−


			「白窓君」プロジェクト


		   「白窓君」デバイスドライバ

				JLCDDRV.x


				ver 1.01

			Copyright 1997 TNB製作所




−<□■□ はじめに □■□>−


 これは、ジョイポートに接続する液晶 LCD 「白窓君」(電子出版)用のドライ

バです。ですので、「白窓君」がなければ意味の無いソフトです。




−<□■□ 登録 □■□>−


	使用法:JLCDDRV.x [PORT] [switch]

		/K[n] ・・・・・ 機能のシフトキー設定。(def.16 = [XF5])
				[XF1]=1 : [XF1]=2 : [XF3]=4 : [XF4]=8
				[XF5]=16 : [SHIFT]=32 : [CTRL]=64
				[OPT1]=128 : [OPT2]=256

		/J ・・・・・・・・ 日本語表示にします。(def.)
		/E ・・・・・・・・ 英語表示にします。

		/N ・・・・・・・・ KEY割り込みは使いません。(def.)
		/M ・・・・・・・・ KEY割り込みを使う。

		/W[n] ・・・・・ WAITを調整します。(def.150)

		/ON ・・・・・・・ 「白窓君」を使用します。
		/OF ・・・・・・・ 停止します。

		/R ・・・・・・・・ 常駐解除します。


	[PORT] は使用したい JOYSTICK PORT を指定します。デフォルト
	では 2 を使用します。

	/K は JLCDDRV でしようするシフトキーを指定します。デフォル
	トは [XF5] です。ですので、時計、ストップウォッチ切り換え
	する時は [XF5] 押しながら [UNDO] を押す、ということになり
	ます。

	/J /E は白窓エラーの時に出るメッセージの言葉を選択します。
	それ以外には影響しません。デフォルトは日本語(カタガナ)で
	す。

	/M /N は MFP 割り込みでキーチェックを行うかの選択です。/M 
	の場合、割り込みでチェックするのでストップウォッチ等は X68k 
	がなにをしていても押したタイミングでコントロールすることが
	出来ます。/N の場合、キー入力チェックをしている時、キーチ
	ェックを行うのでキー入力の無いソフトを動かしているとキーチ
	ェックがなかなか行われない可能性もあります。基本的に /N で
	いいと思います。

	/ON /OF は LCD の動作モードを設定します。/OF で機能停止し
	ます。/ON で再開します。また、/ON では JOY PORT の設定、及
	び「白窓君」の初期化をしますので、「白窓君」を抜き差しした
	場合など、画面が乱れた場合にも使用して下さい。シフトキー
	+ [BS] による操作は、/ON /OF を繰り返しているのと同じです。
	常駐時は設定出来ません。


	 CONFIG.SYS の DEVICE= でも登録出来ます。コマンドライン

	から登録した場合、メインスレッド以外の白窓は「白窓君」に

	表示しません。




−<□■□ 操作 □■□>−


 JLCDDRV.x は登録しただけでも、「白帯」と日付時計として動いていますが、

ストップウォッチも付いています。その操作も含め一覧しておきます。シフトキー

は /K で設定するキーでデフォルトでは [XF5] です。


	シフトキー+[UNDO]
		モード選択。トルグになります。
			・時計
			・ストップウォッチ

	シフトキー+[ROLLUP]
		ストップウォッチモードのみ有効です。スタート、停止、再ス
		タートボタンです。

	シフトキー+[ROLLDOWN]
		ストップウォッチモードで停止時、時間を初期化します。
		それ以外は反応無しです。

	シフトキー+[BS]
		表示のオン/オフを行います。また、「白窓君」の初期化も行
		います。オフになった時は JOYPORT を解放するので問題のあ
		るソフト(後述)の場合、止める様にして下さい。スイッチ
		/ON /OF と同じ機能です。オフにしていてもストップウォッチ
		は動いています。




−<□■□ IOCS □■□>−


 JLCDDRV.x は単体でも白窓、時計と動きますが、サービスコールを使うことで、

ユーザーが(比較的)自由に使うことが出来ます。

 コールに付いては別ファイル、「JLCDCALL.mac」に記述されています。ここで

は簡単な流れを書いておきます。

 「白窓君」用のソフトには2つ考えられます。

 一つは、「白窓君」をそのソフトが占領してしまうものです(占領型ソフト)。

デフォルトの時計のようなものです。

 もう一つは一時的にメッセージを表示させるソフトです(メッセージ型ソフト)。

メッセージを表示させておく時間を指定出来きます。あるいは一部を借りて表示

させることも出来ます(占領ソフトとの兼ね合いで消されることもありますが)。


 占領型のソフトの場合

	・JLCDDRV があるかチェック。
		_JLCD_VER を使用して JLCDDRV があるか、チェックします。
	・既に占領しているソフトはないかチェックします。
			moveq	#-1,d2
			JLCD	_JLCD_INIT
		もし、他で使っていたら占領できせん。
	・占領します。
			moveq	#1,d2
			JLCD	_JLCD_INIT

	・いろいろ表示します。占領ソフトの場合 _JLCD_PRINT を使用します。
	 メッセージ型ソフトが動いて画面を破壊する(書き替える)可能性も
	 ありますので、定期的に
			moveq	#0,d2
			JLCD	_JLCD_INST
	 とし、画面が破壊されていないかチェックし破壊されていたら全文字
	 表示し直して下さい。
	 また、メッセージ型ソフトのメッセージが書かれている間は _JLCD_PRINT
	 で表示出来ません(エラー -1 がきます)。もし、必ず表示しないと
	 行けないものであれば、空ループし再度コールして下さい。

	・終了時は
			moveq	#0,d2			* 占領
			JLCD	_JLCD_INIT
	 と時計に直して下さい。


		同梱のサンプル、JLCDCDC.x のソースも参考にして下さい。


 メッセージ型のソフトの場合

	・JLCDDRV があるかチェック。
		_JLCD_VER を使用して JLCDDRV があるか、チェックします。

	・表示したいメッセージを時間を決めて書きます。
			move.l	#$80000000,d2			* CLR & (0,0) から
			move.l	#300,d3				* 3秒間!
			lea.l	mes,a1
			JLCD	_JLCD_PRINT2
	 これだけです。


		同梱のサンプル、JLCDV.x のソースも参考にして下さい。


	 また、表示時間を指定しない(0 を指定)方法もあります。時計の場
	合、2行目の左の方が開いているので、ここに1文字ばかりを表示させ
	ることが出来ます。表示時間を指定しないと、破壊したとされないので
	基本的に占領ソフトは書き直ししませんので、も残ることになります。


		同梱のサンプル、JLCDCON1.x のソースも参考にして下さい。




−<□■□ 同梱サンプル □■□>−


 サンプルとして3つ同梱しておきます。

	JLCDV.x			簡易メッセージ表示
	JLCDCON1.x		CRT 表示文字モニタ
	JLCDCDC.x		CDC LED 表示


	-< JLCDV.x >-

	 これは、「白窓君」にメッセージを表示させるソフトです。2行 16文字
	を単純に表示します。CONFIG.SYSの DEVICE でも使用可能ですが、空白文
	字(char code $20)が複数列べても1つになってしまうことに注意して
	下さい。
	 JLCDV.x はメッセージ型のソフトで 3秒間メッセージを表示し元に戻す
	ソフトです。 3秒というのは固定です。アセンブルし直せば変更出来ます。
	なお、CONFIG.SYS 登録中は JLCDDRV.x が連続的に機能しないので 3秒で
	LCD 表示が戻らないことがあります。

	 僕の環境では CONFIG.SYS で
		DEVICE = \SYS\JLCDDRV.x 2 -E
			:
		DEVICE = \SYS\JLCDV.x 「CONFIG」トウロクチュウ ・・・・・・ SCSI-IOCS
			:
		DEVICE = \SYS\JLCDV.x 「CONFIG」トウロクチュウ ・・・・・・・・・・ Codiy
			:
	となってます。


	-< JLCDCON1.x >-

	 これは、ディスプレイに表示される文字、一文字だけを「白窓君」に表
	示させるソフトです。DOS _PUTCHAR _PRINT _FPUTC _FPUTS を使われる文
	字列に限ります。
	 これはディスプレイを消していても、例えば圧縮作業が動いているかな
	ど見るために作ってみましたが、余り使えません ^^; 。

	 JLCDCON1.x はメッセージ型のソフトで、表示時間を指定しない(0 を
	指定)サンプルになっています。


	-< JLCDCDC.x >-

	 これは、TNB製作所の CDC.x の LED を「白窓君」にも表示させようと
	いうものです。本ソフトを常駐する前に JLCDDRV.x と CDC.x を登録する
	必要があります。
	 残念ながらタイトル名などの表示は出来ません。
	 JLCDCDC.x は占領型のソフトです。




−<□■□ インストラクション □■□>−


 JLCD コールの _JLCD_INST で与えられる命令を一覧します。



	%00000001	全画面をクリアします。

	%00000010	表示座標を $00 にし、表示座標も元へ戻します。表示
			内容は変化しません。

	%000001XS	カーソルの進む方向、表示をシフトするかの設定を行い
			ます。
					X=0 ; デクリメント
					X=1 ; インクリメント(def.)
					S=0 ; シフトしません(def.)
					S=1 ; 表示シフトします。
			(注)JLCD CALL の表示ルーチンは「シフト」に対応し
			   ていません。

	%00001DCB	全表示の ON/OFF、カーソルの ON/OFF、カーソル位置の
			文字のブリンク、を設定します。
					D=0 ; 表示を消す
					D=1 ; 表示します(def.)
					C=0 ; カーソルを表示しない(def.)
					C=1 ; カーソルを表示する
					B=0 ; 文字のブリンク無し(def.)
					B=1 ; 文字のブリンクあり

	%0001SM00	表示内容を変えずにカーソル(表示座標)の移動、表示
			のシフトを行います。
					S=0 ; カーソルの移動
					S=1 ; 表示のシフト
					M=0 ; 右シフト/右移動
					M=1 ; 左シフト/左移動


	補足)「シフト」に付いて。LCD 内部は 40文字 x 2行 のメモリがありま
		す。内、普通表示されているのが 16文字 x 2行 です。その表示
		場所を変えるのが「シフト」です。現在 JLCDCALL ではこのシフ
		トを考慮していないので、このシフトを使い表示させるにはコツ
		がいります。16文字以降 の表示は JLCD_PRINT/2 の座標を指定
		して書く用にして下さい。普通に連続して書こうとしても、改行
		してしまいます。




−<□■□ 8255 □■□>−


 「白窓君」は JOY PORT に繋ぎ、JOY PORT からデータを出力して表示させてい

ます。そのため、8255 のモードを普段と変えています。なので、JLCDDRV.x で宣

言した PORT はそのままではジョイスティックを繋いでも反応しません。


 ジョイスティックの状態を得る方法は X68k では2通りあります。一つは IOCS

の _JOYGET を使う方法と、直接 I/O ポートを見に行く方法です。


 普通、IOCS _JOYGET を使っているソフトは JLCDDRV が動いていても問題ありま

せん。ただし、「白窓君」を抜き、ジョイスティックをさしても反応しません。で

すので、ジョイスティック2つ使うソフトを実行する場合、JLCDDRV.x を停止する

といいでしょう。バッチファイルなら

			JLCDDRV.x -OF
			ソフト.x
			JLCDDRV.x -ON

というようにしておけばいいでしょう。この時、「白窓君」は抜きましょう。


 直接 I/O ポートを見にいくソフトの場合、「白窓君」が誤作動する可能性があ

ります。JLCDDRV を停止させていても誤作動することがあります(誤作動といって

も壊れるわけではありません。表示がおかしくなるだけです)。また、「白窓君」

が刺さっていると、ジョイスティックが押されている判定になったりするので、抜

いたほうがいいでしょう。




−<□■□ ハード □■□>−


 「白窓君」でしようしている液晶 LCD は NDM162 というものなのですが、これは

本当は相互通信で例えば、表示している文字の情報を NDM162 から得ることも出来

るのですが、X68k の JOYPORT の仕様で、X68k -> NDM162 という情報伝達しか出

来ません。JOYSTICK PORT 1 専用にしたら可能でしたが・・・。

 ですので、タイミングは Wait で取ってますし、「白窓君」接続チェックもソフ

トでは分かりませんでした。

 また、「白窓君」が刺さっているとソフトによって、ジョイスティックのボタン

が押された判定になってしまう仕様もダイオード等を入れることで解決出来るらし

いのですが、今の「白窓君」ではそうなっていません。




−<□■□ 注意 □■□>−


 TNB製作所は JLCDDRV.x の著作権を保持します。

 TNB製作所は この JLCDDRV.x によるトラブルは一切責任を負わないものとし

ます。個人の責任において使用して下さい。

 バグ、トラブルの御報告はぜひお願いします。出来る限り対処、対応していきま

す。




−<□■□ 使用,参考ツール,参考ドキュメント □■□>−


	*  SUPERED.X ver 1.18  T.Nishikawa氏作
	*  has.x ver 3.08  YuNK氏作
	*  hlk.x ver 3.01  SALT氏作

 白帯のメッセージ(日本語、英語とも)は満開の鎌田氏に用意して頂きました。

ありがとうございました。




−<□■□ 連絡先 □■□>−


 バグ、要望などありましたら、以下までお願いします。


	Twitter; @h_koma2	TNB製作所  所長 たんぼ


(EOF)