−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
各種ファイルフォーマット
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
参考文献
	ＰＩＣ　Ｏｈ！Ｘ　１９９０／２　ｐ７５〜８０
	ＺＩＭ	Ｚ'ｓＳＴＡＦＦ　Ｖ３.０ リファレンスマニュアル
		Ｚ'ｓＳＴＡＦＦ　Ｖ２.０ ＺＩＭローダーソース（ＣＭＰＲＢＦＲ.Ｓ）
	ＰＩＸ	Ｏｈ！Ｘ　１９９０／６　ｐ６８〜７３
	ＣＵＴ	Ｏｈ！Ｘ　１９９１／７　ｐ７７〜７９
monotoneＣＵＴ	独自解析
	ＴＴＬ	ＸＣプログラマーズマニュアル
	ＩＰＸ　ＨＡＬ−ＦＩＮＥ　ＳＣＡＮＥＲマニュアル
	Ｉ＿Ｇ　独自解析
	べた	Ｘ−ＢＡＳＩＣマニュアル

この資料は、上記参考文献（プログラム）を元に、独自に解析した結果を加えたものである。
この資料を元に各自が作ったプログラムが起こしたいかなる結果に対しても、私および、
参考文献作成各社は一切責任を負わない。（特に圧縮ＺＩＭに関しては詳しい資料が無いので
いまだ不明部分も多くある。）

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＰＩＣ
	ＰＩＣは基本的には境界とその中の塗り潰しで画像を圧縮再現する。
	境界は画像縦方向連鎖で、塗り潰しは横方向ラスター単位で行なう。

ヘッダー：
	先頭から３文字に大文字で"PIC"と書かれている（＋０〜＋２）
	0x1aが出て来るまでをコメントとする（＋３〜）
	0x00が出て来るまでリザーブ領域
	画像モード：１６ビット：0x0000は５１２＊５１２：３２７６８色モード
				それ以外はpicload()ではサポートされない
	その色に必要なプレーン数：１６ビット：上記の場合１５
	画像Ｘ幅：１６ビット：全画面の時は５１２
			      全画面以上の時はエラー
	画像Ｙ幅：１６ビット：全画面の時は５１２
			      全画面以上の全画面までにする。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＺＩＭ
	ＺＩＭはＺ'ｓＳＴＡＦＦ−ＰＲＯ／ＸＶＩ６８Ｋの標準のグラフィックファイル形式で、
	ＰＲＯでは３２７６８色が、ＸＶＩでは６５５３６色中の１６色を同時に表示できる。
	イメージデータはライン毎にプレーン別になっており、それぞれ水平型データになって
	いる。（１バイト８ドット）
	ライン毎に全プレーンをまとめた圧縮があるが、この方法については詳しく判らない。
	ＸＶＩのフォーマットはＶ０.５のものを元にしている。ただ、Ｖ０.５のヘッダーには
	いくつかの間違いがある（と思う）。
	ＰＣ９８／ＦＭ−Ｒ５０＆Ｐａｎａｃｏｍ　Ｍ５００のＺ'ｓＳＴＡＦＦ−ＫＩＤ（ＦＰ）
	のデータに関しては少ないイメージデータを元に解析した結果なので、完全にあってい
	る保証は無い。ＦＭ−Ｒ７０／Ｐａｎａｃｏｍ　Ｍ７００用Ｚ'ｓＳＴＡＦＦおよび、
	ＦＭ−ＴＯＷＮＳ用のＺ'ｓＳＴＡＦＦ−ＰＲＯ　ＴＯＷＮＳに関する情報は持ち合わせ
	ていないのでここでは扱わない。

ヘッダー：
	ヘッダーサイズはパレット情報の有無などによってサイズが変わる。
	なお、数字を格納する部分は全て８６形式（Ｌ／Ｈの順）である。
	文字列は半角ＡＳＣＩＩコードまたは全角シフトＪＩＳコードを使い、終わりは００で
	示す。

ｵﾌｾｯﾄ	サイズ	名称			内容
０	１６	マッチストリング	"FORMAT-A"
					Ｚ'ｓＳＴＡＦＦのグラフィックデータである印。
					この文字列でファイルを識別する。
					空きエリアは００で埋める。

１６	２	ファイル種類		ファイル種類をで格納する。
					ＺＩＭファイルはイメージファイルなので０。

１８	２	ファイル番号		現在は未使用なので０。

２０	２	マシン番号		機種を示す
					０＝ＰＣ９８
					１＝Ｘ６８０００
					２＝ＰＣ８８ＶＡ
					３＝ＦＭ−Ｒ５０／Ｐａｎａｃｏｍ Ｍ５００
					   （以下Ｒ５０と記述）

２２	１６	マシン名		機種名を入れる
					Ｘ６８０００	"X68K"
					ＰＣ９８	"PC9801"
					Ｒ５０		"FMR50/M500"
					空きエリアは００で埋める。

３８	４	アプリケーション番号	ＰＲＯ			１
					ＸＶＩ／ＰＣ９８	３
					Ｒ５０			４

４２	３２	ファイル名（通称）	現在はともにＯＳ上でのファイル名が拡張子(.ZIM)
７４	１６	ファイル名（ＯＳ上）	込みで入っている。
					空きエリアは００で埋める。

９０	１６	パスワード		現在は未使用で００で埋められている。

１０６	３２	アプリケーション名	ＰＲＯ		"Z'sSTAFF PRO68K"
		（通称）		ＸＶＩ		"Z'sSTAFF XVI68K"
					ＰＣ９８	"Z'sSTAFF KID98"
					Ｒ５０		"Z'sSTAFF KIDFP"
					空きエリアは００で埋める。
					Ｚ'ｓＳＴＡＦＦではこのアプリケーション名（通称）も
					認識しており、これが自分のものとは違うファイルは
					外部ファイルと見なす。

１３８	１６	アプリケーション名	ＰＲＯ		"STAFF68K"
		（ＯＳ上）		ＸＶＩ(V0.5)	"STAFF68K"<-これはおかしいと思う
					ＰＣ９８	"KID98"
					Ｒ５０		"KIDFP"
					空きエリアは００で埋める。
					ここはチェックされていないのでプログラムによって
					書き換えても支障ない。
					ＸＺＩＭ（zimhead()）はＸＶＩのところを"STAFFXVI"
					にしている。

１５４	３２	作成日時		テキスト形式で入れられている。
					空きエリアは００で埋める。
					ＰＲＯ／ＸＶＩ	"1992/06/12 金 12:28:37"
					Ｒ５０		"Fri Jun 12 12:28:00 1992"
					ＰＣ９８では００で埋められているようである。

１８６	６４	編集者名		ＰＲＯ／ＸＶＩ	"X68KUSER"
					ＰＣ９８	"KID98USER"
					Ｒ５０		"KIDFPUSER"
					空きエリアは００で埋める。
					ここもチェックされていないのでプログラムによって
					書き換えても支障ない。（ＸＺＩＭは書き換えている。）

２５０	２５６	コメント		現在は未使用で００で埋められている。

２５２	２	リザーブ１長		次に続くリザーブ領域１のサイズをワード単位で
					表わす。０ならリザーブ領域１無し。
	？？	リザーブ領域１		リザーブ長＊２バイトの領域がとられる。
					現在はリザーブ領域１なし。
	
	２	画像種類識別番号	ＰＲＯ／ＸＶＩ
						１＝５１２＊５１２
						２＝５１２＊１０２４
						３＝矩形ライブラリ
						４＝任意形状ライブラリ
					横が５１２でないときは必ずライブラリになる。
					ライブラリでは５１２ラインを越える大きさのものは
					扱えない。（５１２ライン以内だけが有効になる。）
					ただし、Ｖ０.５のＸＶＩでは任意形状ライブラリ出力
					は使えない。
					９８／Ｒ５０では、
						１＝４００ライン
						２＝９００ライン
					になる。
	
	２	矩形フラグ		画像が矩形であるかどうかのフラグ
					０	矩形でない
					０以外	矩形である
					矩形の場合、画像のｗｘ，ｘは全て同じで、
					ｙは１ずつ増える。
	
	２	画像領域始点ｘ座標ｓｘ	 (sx,sy)+-------+
	２	画像領域始点ｙ座標ｓｙ		|	|
	２	画像領域終点ｘ座標ｅｘ		|	|
	２	画像領域終点ｙ座標ｅｙ		+-------+(ex,ey)
					矩形でない場合はその図形に外接する矩形の
					始点、終点座標になる。
					全画面の場合、次のようになる。
					ＰＲＯ			0,0,511,511
					ＸＶＩ(V0.5)		0,0,511,511
					ＰＣ９８／Ｒ５０	0,0,639,399
					ＸＶＩ(V0.5)では終点ｘ座標が間違っている。
					（767になるのが正しい）
					Ｚ'ｓＳＴＡＦＦでの実際の表示においてはこの座標は
					参照されないようである。というのも、各ラインの
					イメージデータにも表示座標が入っているためで、表示
					の際にはこちらを参照しているようである。
					ＺＰＤＩＳＰ（zimdisp()）もそうしている。
	
	２	縦方向倍率		０	ｙ１倍
					１	ｙ２倍
					Ｘ６８０００では常に０。ＰＣ９８／Ｒ５０は不明。
	
	２	拡張プレーン数		ＰＲＯ			  ０：５：５：５：１
	２	緑プレーン数		ＸＶＩ／ＰＣ９８／Ｒ５０　１：１：１：１：０
	２	赤プレーン数		これから見て、ＸＶＩなどではマスクが使えない
	２	青プレーン数		ことが判る
	２	マスクプレーン数	
	
	２	圧縮フラグ		０	非圧縮
					０以外	圧縮方法
						現在は１のみ
	
	２	パレットフラグ		パレットデータがあるかどうかのフラグ
					０なら無しで次のパレットデータは無い。
					１なら有りで次ぎに６４バイトのパレットデータが続く。
	６４	パレットデータ		青、赤、緑、空きの４バイト単位で１６色：０〜１５
					：０〜７は低輝度色、８〜１５は高輝度色：の順でその
					パレット値が格納される（４＊１６＝６４）。
					パレットの数値は８倍されたものが格納されている。
					だから、パレット設定の手順は、palからにパレットデータ
					が格納されているとして、次のようになる。
					
					for (x=0;x<16;x++) {
						y=x*2;
						if (x>=8) y=(x-8)*2+1;
						GPALET(y,rgb(*(pal+1)/8,*(pal+2)/8,*pal/8));
						pal+=4;
					}
	
	２	リザーブ２長		次に続くリザーブ領域２のサイズをワード単位で表わす。
					０ならリザーブ領域２無し。
	？？	リザーブ領域２		リザーブ長＊２バイトの領域がとられる。
					現在はリザーブ領域２なし。


非圧縮ラインイメージデータ：
	プレーン数が異なるため、ＰＲＯとそれ以外では格納数、順が変わるが、基本的には同じ
	構造をとる。
	ラインイメージデータは必要ライン数分存在する。（圧縮、非圧縮とも。ということは
	圧縮には縦方向の圧縮は全くないということである。これはライブラリ出力時のことを
	考慮している。）
	
	ＰＲＯ
	２		このラインのドット数（wx：１〜５１２）
	２		表示開始ｘ座標（０〜５１１：ただし、x+wx<=512のこと）
	２		表示開始ｙ座標（０〜１０２３）
	
	最初の２バイト（wx）が０になったら終了する。この時も、ライン最初の６バイトを
	全て０にして書き込んでおいた方がよい。（もちろんイメージデータ部分はいらない。）
	
	(wx+7)/8*5	緑プレーンイメージデータ
	(wx+7)/8*5	赤プレーンイメージデータ
	(wx+7)/8*5	青プレーンイメージデータ
	(wx+7)/8	マスクプレーンデータ
	
	イメージデータ、マスクデータは１バイト８ドットで、第７ビットが左、第０ビットが
	右に対応する。ラインドット数が８の倍数でない時は第７ビットからつめていき、
	残りの部分は不定となる。（０にしておく方がよい。）
	緑（Ｇ０〜４）、赤（Ｒ０〜４）、青（Ｂ０〜４）のプレーンは５枚ずつあるが、先の
	もの程垂直データの上のビットになる。これを図にすると次のようになる。
	
	水平プレーンデータ１ビット
	Ｇ４
	Ｇ３
	Ｇ２
	Ｇ１
	Ｇ０
	Ｒ４
	Ｒ３			垂直ドットデータ（１ワード）
	Ｒ２	    →		bit15             10              5              0  bit
	Ｒ１			   G4 G3 G2 G1 G0 R4 R3 R2 R1 R0 B4 B3 B2 B1 B0 ﾏｽｸ
	Ｒ０
	Ｂ４
	Ｂ３
	Ｂ２
	Ｂ１
	Ｂ０
	マスク


	ＸＶＩ
	２		このラインのドット数（wx：１〜７６８）
	２		表示開始ｘ座標（０〜７６７：ただし、x+wx<=768のこと）
	２		表示開始ｙ座標（０〜１０２３）
	(wx+7)/8	緑プレーンイメージデータ
	(wx+7)/8	赤プレーンイメージデータ
	(wx+7)/8	青プレーンイメージデータ
	(wx+7)/8	輝度プレーンイメージデータ
	
	イメージデータは１バイト８ドットで、第７ビットが左、第０ビットが右に対応する。
	ラインドット数が８の倍数でない時は第７ビットからつめていき、残りの部分は不定と
	なる。（０にしておく方がよい。）
	緑（Ｇ）、赤（Ｒ）、青（Ｂ）、輝度（Ｉ）の各プレーンは垂直データに直すと次の
	ようになる。
	
	水平プレーンデータ１ビット
	Ｇ
	Ｒ			垂直ドットデータ（１ワード）
	Ｂ	    →		bit15                                  3 2 1 0  bit
	Ｉ			   00 00 00 00 00 00 00 00 00 00 00 00 G R B I
	後述のＰＩＸとは違うので注意。

	ＰＣ９８／Ｒ５０：
	基本的にはＸＶＩと同じである。幅と座標のとりうる範囲、プレーン展開方法が違う。
	２		このラインのドット数（wx：１〜６４０）
	２		表示開始ｘ座標（０〜６３９：ただし、x+wx<=640のこと）
	２		表示開始ｙ座標（０〜８９９）
	
	水平プレーンデータ１ビット
	Ｇ
	Ｒ			垂直ドットデータ（１ワード）
	Ｂ	    →		bit15                                  3 2 1 0  bit
	Ｉ			   00 00 00 00 00 00 00 00 00 00 00 00 R B I G


圧縮ラインイメージデータ：
	圧縮ラインイメージデータは非圧縮ラインデータの最初の２＊３バイト（wx,x,y）を除く
	部分を圧縮してある。圧縮は横１ライン分を全プレーンまとめて行なわれているが、
	縦方向の圧縮は全く無い。
	圧縮後のイメージデータのサイズは奇数バイトであることもある。この場合、奇数アド
	レスからアクセスすることになるので、６８０００ではバイト境界からのワードアクセ
	スが起こるので、問題ないよう注意する必要がある。
	
	２＊３	ライン長さ、表示Ｘ座標、座標
	２	以下に続く圧縮データのバイト数。この２バイトは含まない。
	以降	圧縮データ（全プレーン）
		５重に算術演算＋フラグ化によって圧縮してある。
		その詳しい方法については不明。
		（ＣＵＴの圧縮に似ていると思う。但し０と１のフラグが逆。）

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＰＩＸ
	ＰＩＸはＳＸ−ＷＩＮＤＯＷのキャンバスで利用されるグラフィックファイル形式で、
	６５５３６色中の１６色を同時に表示できる。
	イメージデータはプレーン別になっており、それぞれ水平型データになっている。
	（１バイト８ドット）
	なお、データに圧縮は無い。

データマップ
	+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+00	;T ;X ;1 ;6  ﾌｧｲﾙｻｲｽﾞ-8 00 00 00 00 [ wx] [ wy]
+10	[ パレット（２バイト１単位）
+20						      ]
+30	イメージデータ
	青プレーン
	赤プレーン
	緑プレーン
	輝度プレーン（緑第２プレーン）


ヘッダー：＄００〜＄２Ｆ＝４８バイト
	００〜０３：
		先頭の４バイトは"TX16"
		この文字列でファイルを識別する。
	
	０４〜０７：
		６８ｉｎｔ形式（Ｈ：Ｈ／Ｌ，Ｌ：Ｈ／Ｌの順）でヘッダーも含めた
		ファイルサイズ−８を入れる
	
	０８〜０Ｂ：
		００ ００ ００ ００
		未使用
	
	０Ｃ〜０Ｄ：
		画像横方向ドット数（ｗｘ）
		６８ｓｈｏｒｔ形式（Ｈ／Ｌの順）で１２８〜６４０。
	
	０Ｅ〜０Ｆ：
		画像縦方向ライン数（ｗｙ）
		６８ｓｈｏｒｔ形式で６４〜４８０。
	
	画像幅の制限はキャンバスの制限による。
	
	１０〜２Ｆ：
		パレット
		２バイトを６８ｓｈｏｒｔ形式で先頭から１６色：０〜１５の順に
		６５５３６色パレットを割り当てる。


イメージデータ：＄３０〜
	青、赤、緑、輝度プレーンの順にプレーン別に格納される。
	各プレーンのサイズは同じで、その大きさは、
		（（ｗｘ＋１５）／１６）＊２＊ｗｙバイト
	になる。ファイルサイズももちろんこれで計算されている。すなわち、横のドット数が
	１６の倍数でない時でも１６の倍数ドット＝ワード単位にして格納される。使っていない
	ドットの部分は０になる。
	１ビット１ドットで最上位ビットが左、最下位ビットが右に対応する。
	なお、ヘッダー中に記述されているファイルサイズから計算されるサイズと、実際の
	ファイルサイズが異なっている時、ＳＸ−ＷＩＮＤＯＷのキャンバスはファイルエラー
	とするようになっている。ＺＰＤＩＳＰも同様である。
	
	緑（Ｇ）、赤（Ｒ）、青（Ｂ）、輝度（Ｉ）の各プレーンは垂直データに直すと次のよう
	になる。
	
	水平プレーンデータ１ビット
	Ｇ
	Ｒ			垂直ドットデータ（１ワード）
	Ｂ	    →		bit15                                  3 2 1 0  bit
	Ｉ			   00 00 00 00 00 00 00 00 00 00 00 00 I G R B

	ＺＩＭとは違うので注意。（Iは本来は輝度とは違うから。）

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＣＵＴ
	ＣＵＴはＤＳＨＥＬＬ２やＣＵＴＴＹＰＥで表示できる白黒のビットイメージデータである。
	テキスト画面に表示するために１バイト８ドットの水平型データになっている。
	イメージデータは縦横方向に圧縮されている。

データマップ
	+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+00	;C ;U ;T ;_ ;V ;1 ;. ;0 [ 画像幅とコメント
+10	（テキスト形式）
+20                                          ] 0D 0A 1A
+30	[ wx] [ wy] イメージデータ

ヘッダー：＄００〜＄３３＝５２バイト
	００〜２Ｆ：
		先頭の８バイトは"CUT_V1.0"で、ＺＰＤＩＳＰはこの文字列でファイルを識別する。
		その後に"(%03d,%03d)"でｘドット数、ｙドット数がテキスト形式で格納される。
		（(%d,%d)でも構わない。）
		さらにこれに続いて、作者のコメントが〜２Ｃまで入る。それに満たない時は
		0x20のスペースで埋める。
		最後の３バイトは0x0d,0x0a,0x1aである。これはＣＵＴファイルをｔｙｐｅ
		しても支障がないようにするためである。

	３０，３１：
		ｘドット数（ｗｘ：１〜７６８／５１２）
	３２，３３：
		ｙライン数（ｗｙ：１〜５１２）
		６８ｓｈｏｒｔ形式でそれぞれ格納される。
		但し、ｘドット数、ｙライン数共に１画面内に収まる範囲にすること。
		（補足：ＣＵＴファイルも最大で６４０＊４８０であるということを聞いたことも
		あるのだが、真偽が不明なので、ここでは全画面可能としている。ＺＰＤＩＳＰは
		全画面対応である。）


イメージデータ：＄３４〜
	１ライン毎に次の構造を持つ。
		このラインのデータバイト数
		ライン圧縮フラグ
		００以外のラインイメージデータ

	最初の１バイトがこのラインのデータ数を示す。
	ここが＄０１の場合は、１つ上のラインと全く同じラインとなる。
	（次に来るべきライン圧縮フラグとイメージデータは無いからこうなる。）
	これはラインの縦圧縮となる。

	ライン圧縮フラグと００以外のラインイメージデータは次のようにして作られる。
	
	データを８ドットごとにまとめ、それが$00かどうかをフラグで示す。
	この圧縮フラグは１ビット＝１ドットで対応し、bit7が左〜bit0が右に対応する。
	「例」
		パターン	$00 FF 55 00 40 00 00 01
		フラグ		%0  1  1  0  1  0  0  1	  = $69

	横のドット数が８の倍数dotに満たない場合は足りない部分のdot=0とみなしてバイト単位で
	格納する。従って、
		圧縮前のラインのデータ数	（ｗｘ＋７）／８バイト
		圧縮フラグのサイズ		（（（ｗｘ＋７）／８）＋７）／８バイト
	になる。１つ上のラインと同じデータであるかどうかはこの段階で比較する。
	
	ラインデータは１つ上のラインとＸＯＲされる（最初のラインは除く）。
	このxorラインデータの内$00以外のものを出力する。これが横圧縮になる。

	「例１：最初のライン」
	横ドット数	３４（これは全ラインで共通）
	ドット		00000000 11111111 01010101 00000000 01
	元データ	$00      $FF      $55      $00      $40		←5ﾊﾞｲﾄ
	出力対象		 ~~~	  ~~~		    ~~~		←3ﾊﾞｲﾄ
			最後のドットは８ドットに満たないので後ろ６ドットを０と見なす
	圧縮フラグ	%0	 1	  1	   0	    1 000 = $68	←1ﾊﾞｲﾄ
			（下位３ビットは使われていない）
			最初のラインだから上のラインとのＸＯＲはない

	出力結果	05 68 FF 55 40
			|~ |~ ~~~~~~~~$00以外のイメージデータ３バイト
			|  |圧縮フラグ１バイト
			このラインのサイズ（この１バイトも含む）

	「例２：その次のライン」
	横ドット数	３４（これは全ラインで共通）
	ドット		00000000 11111111 10101010 00000001 01
	元データ	$00      $FF      $AA      $01	    $40		←5ﾊﾞｲﾄ
	上のﾗｲﾝとのXOR	$00	 $00	  $FF      $01      $00
	出力対象		 	  ~~~	   ~~~			←2ﾊﾞｲﾄ
	圧縮フラグ	%0	 0	  1	   1	    0 000 =$30	←1ﾊﾞｲﾄ

	出力結果	04 30 FF 01
			|~ |~ ~~~~~$00以外のイメージデータ２バイト
			|  |圧縮フラグ１バイト
			このラインのサイズ（この１バイトも含む）


	「例３：そのまた次のラインが上のラインと全く同じ時」
	横ドット数	３４（これは全ラインで共通）
	ドット		00000000 11111111 10101010 00000001 01
	元データ	$00      $FF      $AA      $01	    $40		←5ﾊﾞｲﾄ
	上のﾗｲﾝとのXOR	$00	 $00	  $00      $00      $00
	出力対象		 	  	   			←なし
	圧縮フラグ	%0	 0	  0	   0	    0 000 =$00	←出力しない

	出力結果	01
			~~このラインのサイズ（この１バイトも含む）
			このラインは１つ上のラインと全く同じなので、フラグだけになる。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
monotoneＣＵＴ
	古いmonotone.xの作るcutデータである。上記cutとの互換性は全くない。
	データは無圧縮でそのまま記録されている。

データマップ
	+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+00	02 00 00 [wx ] [wy ] 00 00 00

ヘッダー：＄００〜＄０９＝１０バイト
	00,01	識別子
		02,00で固定。
		CutDisp2()はこの値でmonotone-cutであるかどうかを判定する。

	03,04	xドットサイズ
		現在は$02,$a8=680で固定

	05,06	yドットサイズ
		現在は$01,$e0=480で固定

イメージデータ：＄１０〜
	データは無圧縮で１バイト＝８ドットである。
	現在は横６８０ドット＝８５バイト固定である。
	データは白黒が反転しているので、全ビット反転してから表示する。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＴＴＬ（ビットイメージタイトル）
	ビットイメージタイトルはＨｕｍａｎ６８ＫやＳＸ−ＷＩＮＤＯＷの立ち上がり時に
	表示される白黒のビットイメージデータである。
	テキスト画面に表示するために１バイト８ドットの水平型データになっている。
	データは圧縮されていない。

データマップ
	+0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F
+00	00 00 *1 *2  Pal1  Pal2 [ 立ち上げるSHELL名	
+10							
+20							
+30                                       ] [ x ] [ y ]
+40	[ wx] [ wy]

ヘッダー：＄００〜＄４３＝６８バイト
	００，０１：
		最初の２バイトは００００にしておく。
		これは、テキスト形式タイトルファイルとの区別のためである。
		（実際には最初の１バイトで区別される。）

	０２：	イメージを表示するテキストプレーンを指定する。
		１	プレーン０
		２	プレーン１
		４	プレーン２
		８	プレーン３
		通常は４＝プレーン２を指定する。
		（同時に複数プレーンを指定することも可能と思われる。）

	０３：	塗り潰すテキストプレーンを指定する。
		０	塗り潰すプレーンは無い
		１	プレーン０
		２	プレーン１
		４	プレーン２
		８	プレーン３
		通常は８＝プレーン３を指定する。
		（同時に複数プレーンを指定することも可能と思われる。）

	０４，０５：
		プレーン２のパレット
		６８ｓｈｏｒｔ形式で６５５３６色の中から指定する。
		通常は＄００００。

	０６，０７：
		プレーン３のパレット
		６８ｓｈｏｒｔ形式で６５５３６色の中から指定する。
		通常は＄ｆｆｆｅか＄ｂｅ６ｃ。

	０８〜３Ｂ：
		このタイトル表示後に立ち上げるＳＨＥＬＬ名
		通常は"VS.X"か"SXWIN.X"が入る。最後は００で終わる。
		余った領域は００で埋めておくほうがいい。
		なお、Ｈｕｍａｎ６８Ｋ自体はテキスト画面を消さないので、
		立ち上げるＳＨＥＬＬでタイトル表示に使ったテキストプレーンを
		消すこと。（表示と塗り潰しのプレーン両方とも。）

	３Ｃ，３Ｄ：
		表示するｘ座標（ｘ）
		６８ｓｈｏｒｔ形式で０〜７６７。
		通常は画面中央なので、（７６８−ｗｘ）／２にする。

	３Ｅ，３Ｆ：
		表示するｙ座標（ｙ）
		６８ｓｈｏｒｔ形式で０〜５１１。
		通常は画面中央なので、（５１２−ｗｙ）／２にする。

	４０，４１：
		イメージデータ横ドット数（ｗｘ）
		６８ｓｈｏｒｔ形式で１〜７６８。

	４２，４３：
		イメージデータ縦ライン数（ｗｙ）
		６８ｓｈｏｒｔ形式で１〜５１２。

	ただし、Ｘ６８０００　ＸＶＩ−Ｃｏｍｐａｃｔで液晶で立ち上げることを想定した場合、
	ｘ＝０〜６３９，ｙ＝０〜４７９，ｗｘ＝１〜６４０，ｗｙ＝１〜４８０にしたほうがいい
	と思われる。


イメージデータ：＄４４〜
	データは白黒なので、１ビット１ドットで最上位ビットが左、最下位ビットが右に対応する。
	横のドット数が８の倍数でない時でも８の倍数ドットにして＝バイト単位で格納される。
	使っていないドットの部分は０になる。このため、ラインのデータ数は
		（ｗｘ＋７）／８バイト
	になる。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
べた１６色
	べた１６色のイメージデータはＸ−ＢＡＳＩＣなどで使われる。
	べたにはヘッダーは無く、その識別は拡張子によってなされる。
		２５６＊２５６	ＧＳ０
		５１２＊５１２	ＧＳ３
		７６８＊５１２	ＧＳ４
		切り出し	ＧＳ５
	なお、ＧＳ４／ＧＳ５はＺＰＤＩＳＰで表示するために作った拡張子で、標準ではない。
	べたはパレット情報などは持たないため、別に用意する必要がある。（べたパレット項
	参照のこと）
	サイズも拡張子別に固定である。（全画面のみ。）
	ＧＳ５はサイズ可変の１６色べたファイルで、パレットファイルにサイズ情報を記録している。

イメージデータ：
	イメージデータは垂直型データであるが、１６色は４ビットで表わされるため、
	２ドットを１バイトにまとめる。上位４ビットが左、下位４ビットが右のドットと対応する。
	切り出しでｗｘが奇数の場合、上位４ビットにデータが入り、下位４ビットは０になる。

	画像サイズ
		ＧＳ０	２５６／２＊２５６＝３２７６８
		ＧＳ３	５１２／２＊５１２＝１３１０７２
		ＧＳ４	７６８／２＊５１２＝１９６６０８
		ＧＳ５	（ｗｘ＋１）／２＊ｗｙ

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
べた２５６色
	べた２５６色のイメージデータはＸ−ＢＡＳＩＣなどで使われる。
	べたにはヘッダーは無く、その識別は拡張子によってなされる。
		２５６＊２５６	ＧＭ０
		５１２＊５１２	ＧＭ３
		切り出し	ＧＭ５
	なお、ＧＭ５はＺＰＤＩＳＰで表示するために作った拡張子で、標準ではない。
	べたはパレット情報などは持たないため、別に用意する必要がある。（べたパレット項
	参照のこと）
	サイズも拡張子別に固定である。（全画面のみ。）
	ＧＭ５はサイズ可変の２５６色べたファイルで、パレットファイルにサイズ情報を記録
	している。

イメージデータ：
	イメージデータは垂直型データである。完全に１バイト１ドットとなる。

	画像サイズ
		ＧＭ０	２５６＊２５６＝６５５３６
		ＧＭ３	５１２＊５１２＝２６２１４４
		ＧＭ５	ｗｘ＊ｗｙ

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
べた６５５３６色
	べた６５５３６色のイメージデータはＸ−ＢＡＳＩＣなどで使われる。
	べたにはヘッダーは無く、その識別は拡張子によってなされる。
		２５６＊２５６	ＧＬ０
		５１２＊５１２	ＧＬ３
		切り出し	ＧＬ５
	なお、ＧＬ５はＺＰＤＩＳＰで表示するために作った拡張子で、標準ではない。
	サイズも拡張子別に固定である。（全画面のみ。）
	ＧＭ５はサイズ可変の６５５３６色べたファイルで、パレットファイルにサイズ情報を記録
	している。なお、この時のパレットファイルにはパレット情報は入っていない。

イメージデータ：
	イメージデータは垂直型データである。２バイト１ドットとなる。

	画像サイズ
		ＧＬ０	２５６＊２５６＊２＝１３１０７２
		ＧＬ３	５１２＊５１２＊２＝５２４２８８
		ＧＬ５	ｗｘ＊ｗｙ＊２

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
べたパレット情報
	ＸＺＩＭ／ＸＢＥＴＡで作られたべた１６／２５６／６５５３６色ファイルには、
	同名で拡張子がＰＡＬのパレット情報ファイルが同時に作成される。
	（正確に言えばwrite_pal_beta()関数が作成する。）
	これの構造は次のとおりである。

	１６色用
		色番号０〜１５に対応したパレットの数値が６８ｓｈｏｒｔ形式で
		格納される。サイズは２＊１６＝３２バイト。
	
	２５６色用
		色番号０〜２５５に対応したパレットの数値が６８ｓｈｏｒｔ形式で
		格納される。サイズは２＊２５６＝５１２バイト。

	この各パレットの後４＊５バイトのにサイズ情報が付加される。（６８ｉｎｔ形式）
		ｘ	表示開始ｘ座標
		ｙ	表示開始ｙ座標
			切り出しファイルでない時はｘ，ｙ共に０。
		ｗｘ	表示ｘ幅
		ｗｙ	表示ｙ幅
			切り出しファイルでない時は画面サイズになる。
		CRTMOD	画面モード

	６５５３６色のＧＬ５にはパレット情報は無く、サイズ情報だけが入る。

	ＺＰＤＩＳＰはべたファイル表示時にはこのファイルも参照する。このファイルが
	無い場合、デフォルトのパレットを設定する。
	切り出しファイルでこのファイルが無い時は表示できない。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
ＩＰＸ
	ＩＰＸはＨＡＬ−ＦＩＮＥ　ＳＣＡＮＥＲの作成する拡張Image photo	ファイル形式で、
	１ドット１バイトの白黒２５６階調データである。データはべたデータであり、圧縮はない。
	イメージデータの後ろに明るさなどの情報が入っているが、ここでは述べない。

ヘッダー（０〜３）
	ＩＰＸファイルを識別する識別子はない。
	先頭４バイトはデータの縦横サイズを記録している。

	ｵﾌｾｯﾄ		サイズ		内容
	０		２		画像ｘ幅
	２		２		画像ｙ幅

	サイズは８６形式（Ｌ／Ｈの順）で格納されている。


イメージデータ（４〜）
	イメージデータは、１ドット１バイトで白黒を２５６階調で記録している。
	Ｘ６８のグラフィック画面は輝度を除くと最大で３２階調なので、／８することで表示できる。
	そのデータがｘ＊ｙバイト続く。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
Ｉ＿Ｇ
	Ｉ＿ＧはＤｙｎａＢｏｏｋ用アシストアートのビットイメージデータファイルである。
	このデータは基本的にベタデータであり、圧縮はない。

ヘッダー（$00〜$0f）
	$00,01		識別子
			$FD,$4b	で固定。

	$02〜$07	未使用($20で埋められている）

	$08〜$0b	ｘ幅（ドット数）
	$0c〜$0f	ｙ幅（ライン数）
			１０進４桁の数字がアスキーコードで入っている。
			数値の満たない上位桁には'0'が入る。

イメージデータ（$10〜）
	イメージデータは、８ドット１バイトで白黒データを表す。
	領域右端で１バイトに満たない場合、上位ビットから入り、
	使われないビットは０になったデータが入る。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
