


                              ＢＬＢ  Ｒoutines

                   − SubRoutine Libraries For F-BASIC386 −




┌─────────────────────────────────────┐
│      第一章        ＢＬＢルーチンについて                                │
└─────────────────────────────────────┘

　●概要

	ＢＬＢルーチンとは、ＢＡＳＩＣ用のサブルーチン集です。
	ツール系のプログラムを開発する場合に多用する処理や、プログラミングに手間が
	かかる処理をサブルーチン形式で提供します。
	自作のプログラムに追加することで、簡単に利用することができます。
	各プログラムのファイルの拡張子は.BLBで統一してあります。
	Ｆ−ＢＡＳＩＣ３８６Ｖ２．１Ｌ１０以上で利用可能です。

　●ＢＬＢルーチン利用時の注意点

	ＢＬＢルーチンはＢＡＳＩＣのサブルーチンなので、各ルーチン利用時に
	以下の様な不安があります。

		・行番号衝突の可能性がある。
		・ラベル二重定義の可能性がある。
		・変数の衝突の可能性がある。

	これらの問題の解決のため、現時点では、以下の様な規則に基づいて各ルーチンは
	作成されています。

		・行番号は60000以上を使う。
		・ラベルは *BLB_ で始める。
				厳密には、*BLB_サブルーチン名_内部処理ルーチン名 とします。
					(例) *BLB_MENUBAR_ERASE
		・変数名は BLB_ で始める。
				但し、A$,B$,A%,B%,C%,D%,I%,J%については例外的に使用を認める。

	変数使用については、ＢＬＢファイルというのは元々大規模サブルーチン・プログ
	ラムのため、上記の様な雑用変数を壊しても、それに伴う影響が殆ど無いこと、
	及びＢＬＢルーチン自体が無意味に長く難解になるのを防ぐ目的で例外を認めて
	います。中身を壊す可能性の無い変数や、ＢＬＢルーチン外部との連絡用の変数に
	ついては以上のような気配りはしていません。
	尚、BLB_で始まる変数の値を無闇に変更するとバグの原因となる場合があります。

　●画面表示について

	画面表示に関するルーチンは、特に記述がない場合１６色モード専用です。
	他の画面モードでの動作は保証しません。
	詳しくは各ルーチンの説明を読んでください。

	パレットについてはＴＯＷＮＳ　ＭＥＮＵと同じになっているものとして
	画面描画を行っています。ＢＬＢルーチン利用時には注意してください。
	使用するパレット番号は 1,6,7,8,9,15です。
	以下に、一例を挙げておきます。（青系統パレット）

			PALETTE  1,[112, 32,176]
			PALETTE  6,[192,192,192]
			PALETTE  7,[112,112,112]
			PALETTE  8,[ 32, 32, 32]
			PALETTE  9,[176,128,224]
			PALETTE 15,[255,255,255]

┌─────────────────────────────────────┐
│      第二章        ＢＬＢルーチン一覧                                    │
└─────────────────────────────────────┘

　●以下に、現在存在するＢＬＢルーチンの一覧を挙げておきます。

	No									( ファイル名 )(    行番号    )
	１．ファイルセレクター				(FILESEL .BLB)(60000 〜 60356)
	２．マウスカーソル形状設定ルーチン	(MOUSEPAT.BLB)(60400 〜 60416)
	３．画像情報取得ルーチン			(IMAGEINF.BLB)(60600 〜 60644)
	４．Ｗｉｎｄｏｗライブラリ			(WINDOW  .BLB)(60800 〜 60999)
	５．ダイアログルーチン				(DIALOG  .BLB)(61000 〜 61148)
	６．文字列入力ルーチン				(INPUT   .BLB)(61200 〜 61260)
	７．ボタン処理ルーチン				(BUTTON  .BLB)(61400 〜 61448)
	８．ＭＥＮＵＢＡＲルーチン			(MENUBAR .BLB)(61600 〜 61742)
	９．項目選択ルーチン				(SELECTOR.BLB)(61800 〜 61933)



┌─────────────────────────────────────┐
│      第三章        各ルーチンの呼出方法                                  │
└─────────────────────────────────────┘

　●説明の見方

	各ルーチンの説明は、次の様な構成になっています。
┌─────────────────────────────────────┐
│ (例)                                                                     │
│	０．ＢＬＢ管理ルーチン　Version 1.00	← ｴﾝﾄﾘｰNo.,名前,版数           │
│                                                                          │
│		ラベル	*BLB_MANEGEMENT				← 呼出時のラベル               │
│                                                                          │
│		機能	BLBﾙｰﾁﾝ用に環境を設定します	← 機能の簡単な説明             │
│                                                                          │
│		入力		SCN%	･･･ 画面モード	← 呼出時に設定する変数と説明   │
│                                                                          │
│		出力		なし					← 処理終了後に返ってくる変数   │
│                                                                          │
│		変数		A%,B%					← ルーチン内で使用する変数     │
│												(中身が壊れる変数)          │
│                                                                          │
│		注意	・12ドットフォント使用		← 注意事項                     │
└─────────────────────────────────────┘

		※　変数名で型宣言文字が無い場合、数値変数ならば型に依存しません。

　●各ルーチンの説明

	１．ファイルセレクター Version 2.11

		ラベル	*BLB_FILESEL

		機能	ファイル名選択ダイアログを開き、ファイルの選択を行う。
				・[実行]の左クリック、実行/リターンキー押下、ファイル名の
				　ダブルクリックのいずれかで選択されます。
				・[取消]またはクローズボタン左クリックするか、
				　ESC/取消キー押下のいずれかでキャンセルされます。

		入力	TITLE$		･･･ ダイアログのタイトル(半角で39文字まで)

				WILD$		･･･ ファイルの拡張子を指定
								英大文字3文字で指定する (例) "TXT"
								複数の拡張子を指定する時は繋げて指定する
									(例) CとBASとASM→ "C  BASASM"
								全ての拡張子指定は "???" または "*" を使用

				KEY_IN		･･･ 入力フィールドの有無(0:なし 1:あり)
								KEY_IN=1のときキーボードからの入力もできる

				FILE$		･･･ 入力フィールドに最初に表示されるファイル名
								KEY_IN=1を指定したときのみ参照される

				BLB_RESO_X	･･･ 画面解像度(横ドット数)

				BLB_RESO_Y	･･･ 画面解像度(縦ドット数)

		出力	FILE$		･･･ 選択されたファイルのファイル名
								KEY_IN=1を入力したときは
								入力フィールドで指定されたファイル名が入る

				PATH$		･･･ 選択されたファイルのパス名
								KEY_IN=1を入力したときは
								カレントディレクトリ名を返す

								なお、選択を取り消された場合、
								FILE$,PATH$は空文字列となります

		変数	A$,A%,B%,C%,I%
				BLB_DX%,BLB_DY%,BLB_MX%,BLB_MY%,BLB_FILE&(),BLB_FILE$()
				BLB_F$(),BLB_DRV%,BLB_FSEL%,BLB_ICN&(),BLB_BARY%,BLB_BARL%
				BLB_F$,BLB_CS%

		注意	・画面表示に12ドットフォントを使用します。
				・DIM BLB_MEM%(78000以上)を予め実行しておいて下さい。
				・マウスカーソル形状設定ルーチンが必要です。
				・１６色中解像度画面専用です。(256色では色がおかしくなります)
						(MOUSE 4,･･･ 部分を手直しすることで高解像度に対応)
				・エラートラップは解除されます
				・ＩＣメモリカード・デバイスドライバによる拡張ドライブ等には
				  対応していません。
				・BASICを run386 -maxreal 65535 fb386 -c で起動した場合にも
				  対応しています。(でもディスクまわりが難解になっただけで無意
				　味だったことに気がつきました(SHELL でﾃﾞｨｽｸﾄﾞﾗｲﾌﾞの取得が
				  できない！)。次バージョンからは普通に作ります。)


	２．マウスカーソル形状設定ルーチン Version 1.60

		ラベル	*BLB_MOUSEPAT

		機能	システムＲＯＭからアイコンパターンを読み込み、
				マウスカーソルの形状を変更します。
				ＴＯＷＮＳ　ＭＥＮＵと同じ形のマウスカーソルが表示できます。

		入力	MOUSEPAT	･･･ パターン番号
								i) 0≦MOUSEPAT≦8 の場合
								   MOUSEPAT=0 : 矢印
											1 : 時計
											2 : 鉛筆
											3 : 手
											4 : 毛抜き
											5 : スポイト
											6 : 指
											7 : 筆
											8 : カッター

								ii) -128≦MOUSEPAT≦-1の場合
								   MOUSEPATの絶対値がＲＯＭアイコン番号となる。
								   絵柄についてはGEARﾃﾞｨｸｼｮﾅﾘを参照して下さい。
								   読み取り位置の補正は行われません。

		出力	なし

		変数	I%,BLB_MOUSEPAT%

		注意	・本ルーチン内でマウス機能は初期化されます(初回のみ)。
				・２画面モードで使用する場合、以下の様な変更作業が必要です。
						MOUSE 0 → MOUSE 0,0 または MOUSE 0,1

				・MOUSEPAT.BLB は２画面モードでの使用は推奨できません。
				　               なるべく１画面モードで使用して下さい。
				・MOUSEP16.BLB は中解像度16色1/2画面用です。
				   カレントディレクトリに MOUSEPAT.DAT が必要です。
				   高解像度での使用はできません(BASICのバグ？)


	３．画像情報取得ルーチン Version 1.15

	  ３-1．ＴＩＦＦ画像情報取得ルーチン Version 1.20

		ラベル	*BLB_INF_TIFF

		機能	TIFF形式の画像ファイルの情報を得る。

		入力	FILE$		･･･ 対象のファイル名((パス名+)ファイル名)

				A			･･･ 本ルーチン内で使用可能なファイル番号(1〜16)

		出力	TIFF_INF%(0)･･･ 画像の横幅
								指定されたファイルがTIFF形式でない時は-1が入る

				TIFF_INF%(1)･･･ 画像の高さ

				TIFF_INF%(2)･･･ 色数	(1: 2色 　4: 16色   8: 256色)
										(15: 32768色  24: 16777216色)

				TIFF_INF%(3)･･･ 圧縮情報(1:非圧縮   5:ＬＺＷ圧縮)

				TIFF_INF%(4)･･･ パレット(0:無し 1:有り)

		変数	A$,B%,C%,D%,I%


	  ３-2．ＪＰＥＧ情報取得ルーチン  version 1.10

		ラベル	*BLB_INF_JPEG

		機能	JPEG形式の画像ファイルの情報を得る。

		入力	FILE$		... 対象となるファイル((パス名+)ファイル名)

		出力	JPEG_INF%(0)... 画像の横幅

				JPEG_INF%(1)... 画像の高さ

				JPEG_INF%(2)... サンプリング比(1,2,4のいずれか)

				JPEG_COM$   ... コメント

		変数	A$,A%,I%,BLB_FILE&(),BLB_JPEG%(),BLB_F$()


	４．Ｗｉｎｄｏｗライブラリ Version 1.30

		機能	マルチウィンドウシステムを提供します。
				BLB No.8のMENUBARルーチンを同時に利用できます。

		変数	各ルーチンで使用される変数の一覧を挙げておきます。
				プログラマーは絶対にこの変数に手を出さないで下さい。
					BLB_WIN$
					BLB_WIN_EXIST$
					BLB_WIN%(a,b)
					BLB_WINTITLE$(a)
					BLB_WINPTN%()
					BLB_WINMEM&

		注意	・本ライブラリには細かなサブルーチンが3つありますが、
				　普通に使用する分なら下の３つで事足ります。
					４-1．	*BLB_WIN_INIT	(初期化)
					４-3．	*BLB_WIN_OPEN	( 開く )
					４-8．	*BLB_WIN_WORK	(諸処理)
				　他のルーチンは *BLB_WIN_WORK 内から自動的に呼び出されます。

				・画面表示に12ドットフォントを使用します。
				・マウスカーソル形状設定ルーチンが必要です。

	　４-1．環境初期化ルーチン

		ラベル	*BLB_WIN_INIT

		機能	ウィンドウ管理のために変数･画面を初期化します。

		入力	BLB_RESO_X	･･･ 画面の解像度(横ドット数)

				BLB_RESO_Y	･･･ 画面の解像度(縦ドット数)

				BLB_WIN_MAX	･･･ 扱うウィンドウの最大枚数(255未満)
									0を入力すると使えるメモリの量に応じて
									自動的に設定されます。(時々計算を誤るが…)

		出力	なし

		変数	I%

		注意	使えるメモリの量が少ない場合、エラーとなります。
				ウィンドウ一枚当たり、中解像度で 約150KBytes
									  高解像度で 約400KBytes
											のメモリが必要です。


	　４-2．ウィンドウの存在を調べるルーチン

		ラベル	*BLB_WIN_POS

		機能	指定した位置に存在するウィンドウを調べます

		入力	X,Y			･･･ 調べる位置の(X,Y)座標

		出力	W			･･･ ウィンドウ番号
									指定した位置にウィンドウが存在しない場合は
									-1を返す。

				X,Y			･･･ 指定位置のウィンドウ内の相対座標
									（左上を(X,Y)=(0,0)とする）

				W()			･･･ ウィンドウに関する情報
								(ウィンドウの登録時と同一のもの)

		変数	A%,I%

		注意	他のルーチンでウィンドウ番号を使用するときは
				このルーチンで出力されるウィンドウ番号を使用してください。


	　４-3．ウィンドウを開くルーチン

		ラベル	*BLB_WIN_OPEN

		機能	ウィンドウを一つ開きます。

		入力	W(0),W(1)	･･･ 開くウィンドウの左上の(X,Y)座標

				W(2),W(3)	･･･ ウィンドウの幅/高さ		 (タイトルバー等含む)

				W(4),W(5)	･･･ ウィンドウの最小の幅･高さ (タイトルバー等含む)
								32×32以上

				W(6),W(7)	･･･ ウィンドウの最大の幅･高さ (タイトルバー等含む)
								BLB_RESO_X × BLB_RESO_Y 以下

				W(8)		･･･ ウィンドウ属性
									bit 0 ･･･ 移動		( 0:可 1:不可 )
									bit 1 ･･･ クローズ	( 0:可 1:不可 )
									bit 2 ･･･ 大きさ変更( 0:可 1:不可 )

				W(9)		･･･ 任意の2バイト整数(-32768〜32767)
								各アプリでウィンドウの種類･用途を判別するため

				W$			･･･ ウィンドウのタイトル

		出力	W			･･･ ウィンドウ番号(W<0のとき失敗)

		変数	I%

		注意	入力された変数の値は一々チェックしていないので注意して下さい。


	　４-4．ウィンドウを閉じるルーチン

		ラベル	*BLB_WIN_CLOSE

		機能	アクティブウィンドウ(一番上のウィンドウ)を閉じます。

		入力	なし

		出力	なし

		変数	I%,W()


	　４-5．ウィンドウ移動ルーチン

		ラベル	*BLB_WIN_MOVE

		機能	アクティブウィンドウを移動します

		入力	X,Y			･･･ 移動先の位置の(X,Y)座標
								ウィンドウの左上をこの位置まで移動します。

		出力	なし

		変数	I%,W()

		注意	ウィンドウを画面外に配置することもできます。


	　４-6．ウィンドウの大きさ変更ルーチン

		ラベル	*BLB_WIN_SIZE

		機能	アクティブウィンドウの大きさを変更します。

		入力	X,Y			･･･ ウィンドウの横幅･高さ

		出力	なし

		変数	I%,W()

		注意	入力された変数の値は一々チェックしていないので注意して下さい。


	　４-7．アクティブウィンドウ変更ルーチン

		ラベル	*BLB_WIN_CHANGE

		機能	アクティブウィンドウを変更します。

		入力	W			･･･ 一番上にするウィンドウのウィンドウ番号

		出力	なし

		変数	I%,W()


	　４-8．ウィンドウに関する処理一般

		ラベル	*BLB_WIN_WORK

		機能	クローズボタン･ウィンドウの移動･大きさ変更
				ウィンドウの切替えといった処理を行う。

		入力	なし

		出力	なし

		変数	W,W(),X,Y,A%,B%,C%,D%,I%

		注意	ウィンドウの右端･下端の影の部分をクリックすることで
				ウィンドウの大きさ変更は行えます。

				このルーチンで用意する機能は基本的な物だけなので、
				ウィンドウ内に置いた部品等がクリックされた時などのために、
				その処理ルーチンを *BLB_WIN_USER 以下に記述してください。
				また、 *BLB_WIN_USERDRAW 以下にウィンドウ内の描画ルーチンを
				記述してください。
				ウィンドウに関する情報は W() にあります。


	５．ダイアログルーチン	version 1.4

		ラベル	*BLB_DIALOG

		機能	ダイアログウィンドゥを開く
				キーボードの実行／リターン／取消／ESCキーに対応
				ウィンドゥには以下の三種類があります。
					・確認ボタンを表示する
					・実行／取消ボタンを表示する
					・何か入力があると自動的に閉じる

		入力	X, Y		... ダイアログの左上の(X,Y)座標

				WX,WY		... ダイアログの幅、高さ

				A			... ダイアログの種類
									0 : 確認ボタン付ダイアログ
									1 : 実行/取消ボタン付ダイアログ
									2 : 自動クローズ式ダイアログ

		出力	A			... 1:実行  0:取消  が選択された
								この値は実行/取消ボタン付ﾀﾞｲｱﾛｸﾞの場合のみ有効

		変数	A%,B%,I%,BLB_DX%,BLB_DY%,BLB_MX%,BLB_MY%,BLB_T%

		注意	・画面表示に12ドットフォントを使用します。
				・DIM BLB_MEM%(78000以上)を予め実行しておいて下さい。
				・マウスカーソル形状設定ルーチンが必要です。

	拡張性について
		このルーチンはプログラマが機能を拡張する事ができます。
			(拡張しないとダイアログには何も付加機能は付いていません)
		普通は、*BLB_DIALOG_USERDRAW以下に描画ルーチンを書いて下さい。
		さらに、機能を拡張してダイアログ内にボタン等を置いた場合、
		その処理ルーチンを*BLB_DIALOG_USERPROGRAM以下に記述して下さい。
		その場合、処理終了後 A=1 を実行しておいて下さい。
		マウスの押下位置はMOUSE(4,0)等を使って調べて下さい。


	６．文字列入力ルーチン  version 1.2

		機能	文字入力ダイアログを開きます。

		ラベル	*BLB_INPUT

		入力	LENGTH		... 入力する文字列の最大の長さ(バイト)(max 59)

				MOJI$		... 編集する文字列(ヌルでも良い)

		出力	MOJI$		... 入力された文字列

		変数	A,B,C,D,F,I,X,Y,W(),A$,W$,CURSOR,MPOS
				BLB_INPUT%(),BLB_INPBAK%()

		注意	このルーチンは、かなり昔に制作されたまま改良がなされていない
				ため、変数の使い方やプログラムの組みかた等がグチャグチャです。
				また、ルーチン内部でフォントが変更されます。
				あまり実用的でもないので、はっきり言って使わない方が無難です。


	７．ボタン処理ルーチン　version 1.0

		機能	ボタン処理をします。ただし、非常に貧弱です。

		データ形式  BTN%(a,b,c)
					   a	...ウインドウ識別番号
							   一つのウィンドウ内にあるボタンに同一の値を与える
								ようにしてください。ウィンドウを使わない時は
								好きなようにしてください。
					   b	...ボタン番号(特に意味無し)
					   c=0	... ボタン左上絶対X座標
					   c=1	... ボタン左上絶対Y座標
					   c=2	... ボタンのX方向の長さ
					   c=3	... ボタンのY方向の長さ
					   c=4	... 同じ大きさのﾎﾞﾀﾝがいくつ並んでいるか
								 16進数でmn,m=x方向､n=y方向の数(共に0以外)
								 (例)横に2個､縦に5個並べる→ &H25
					   c=5	... X方向のボタン間隔
					   c=6	... Y方向のボタン間隔
					   c=7	... ボタンの形
						(0=四角 1=角なし四角 2...二重四角 3...角なし二重四角)
						(4など・・・枠を描画しない)

				BTN$(a,b,c)	...ボタンの中に書く文字(12ドットフォント)
					  c=n-1	... BTN%(a,b,4)の場合のn項目目の文字

  1. ボタン描画ルーチン

		ラベル	*BLB_BUTTON_DRAW

		入力	A			...ウインドウ識別番号
				B			...ボタン番号

		変数	I%,X%,Y%

  2. ボタンを押したか調べるルーチン

		ラベル	*BLB_BUTTON_PRESS

		入力	A			...BTN%(a,b,c)のa

				B			...BTN%(a,b,c)の bのMAX

		出力	A=-1,B<0	...押してない
				 a≠-1		... A ... 並んでいるボタンのいくつ目か
								B ... BTN%(a,b,c)の b

		変数	CC%,DD%,EE%,FF%,I%,J%,X%,Y%

		注意	このルーチンも、かなり昔に制作されたまま改良がなされていない
				ため、変数の使い方やプログラムの組みかた等がグチャグチャです。
				言って使わない方が無難でしょう。


	８．ＭＥＮＵＢＡＲルーチン Version 1.62

		機能	ＴＯＷＮＳ　ＭＥＮＵと同等のメニューバー処理を提供します。
				メニューの深さは８段階まで対応しています。

	データ形式
		MENUBAR$(n)		･･･ 表示する文字

		MENUBAR%(n,0)	･･･ この項目は	 1 : 選択可
										 0 : 選択不可
										-1 : メニューバーボタン		のデータ

		MENUBAR%(n,1)	･･･ 下に従えるサブメニューの先頭番号

		MENUBAR%(n,2)	･･･ 下に従えるサブメニューの項目数
									0ならばサブメニューは無し

		MENUBAR%(n,3)	･･･ 下に従えるサブメニューの横幅

		MENUBAR%(n,4) 	･･･ ボタンの横幅
							(MENUBAR%(n,0)=-1のときのみ参照される)

		MENUBAR%(n,5) 	･･･ ボタンの色(ﾊﾟﾚｯﾄ番号)
							(MENUBAR%(n,0)=-1のときのみ参照される)

	８-1．メニューバー描画ルーチン

		ラベル	*BLB_MENUBAR_DRAW

		機能	メニューバー／EXITボタンの描画を行う。

		入力	BLB_MENUBAR%	･･･ メニューボタンの個数(1,2,3･･･)

				BLB_MENUEXIT%	･･･ EXITボタンの有無(0:なし 1:あり)

				BLB_RESO_X		･･･ 画面の解像度(横ドット数)

		出力	なし

		変数	A%,B%,C%,I%,J%,A$,BLB_MENUBAR_XLONG%

		注意	・最左のバーに表示する文字が空の時はFMTOWNSのロゴが表示される。
				・表示する文字列を空にしておくと横線(───)が表示される。


	８-2．メニューバー押下判定ルーチン

		ラベル	*BLB_MENUBAR

		機能	メニューバーが押されたか判定し、その場合、
				メニューバーの諸処理を行う。

		入力	BLB_MENUBAR%	･･･ メニューボタンの個数(1,2,3･･･)

				BLB_MENUEXIT%	･･･ EXITボタンの有無(0:なし 1:あり)

				BLB_RESO_X		･･･ 画面の解像度(横ドット数)

		出力	MB(0)		･･･ 選択されたメニューボタンの位置(左から数えて)
				MB(n)		･･･ 選択されたn階層目の項目番号   (上から数えて)
				 (n=1,2･･･)	･･･ 負の数の場合はその階層は選択されていない

				EXIT		･･･ 1ならばEXITボタンが押された

		変数	A%,B%,C%,I%,A$,BLB_MX%,BLB_MY%,BLB_MENUBAR_XLONG%

		注意	・画面表示に12ドットフォントを使用します。
				・DIM BLB_MEM%(78000以上)を予め実行しておいて下さい。
				・本ルーチン全体を通じて、BLB_MENUBAR%の値は変更されない。


	９．項目選択ルーチン  version 1.12

		ラベル	*BLB_SELECTOR

		機能	幾つかの項目から一つを選ばせるダイアログを開く
				キーボードの実行／取消／ESC／リターンキーに対応

		入力	LENGTH		･･･ 表示する文字列の長さ

				SEL			･･･ 表示する項目数

				SEL$()		･･･ 表示する文字列(項目数用意する事)

				TITLE$		･･･ ダイアログのタイトル

				BLB_RESO_X	･･･ 画面解像度(横ドット数)

				BLB_RESO_Y	･･･ 画面解像度(縦ドット数)

		出力	SEL			･･･ 選択された項目番号(0,1,2,･･･)
								選択されなかった時は負数が返ってくる

		変数	A%,B%,C%,D%,I%,J%
				BLB_H%,BLB_MX%,BLB_MY%,BLB_M%,BLB_DX%,BLB_DY%,BLB_W%,BLB_T%

		注意	・画面表示に12ドットフォントを使用します。
				・DIM BLB_MEM%(78000以上)を予め実行しておいて下さい。
				・マウスカーソル形状設定ルーチンが必要です。
