更新日: 2011 年 11 月 15 日
PIC 拡張ヘッダ
メモ
結城見さん のページから転載。
picheader.txt
(A)PICが持っていないセーブ時の座標などの情報を、コメントの領域を利用して
埋め込もうというアイデアです。埋め込みに使っているのがコメント領域なので普
通のAPICローダーでも正常にロードできます。
PIC/MM/ ファイルの先頭がこれで始まらなかったらこの規格外
と、いうわけで通常の(A)PICファイルとしてロード
この後は順不同で、以下のフラグがあります。フラグの切れ目は/であり、途中
に余計なスペースをはさんではいけません。また大文字のみです。
XY00000000/ 左上の座標。 無い時は(0, 0)
MK/ 縦横2倍拡大 無い時は拡大の必要無し
MY/ 縦2倍拡大 無い時は拡大の必要無し
MHY/ 縦方向補正拡大(512/424倍) 無い時は補正の必要無し
MS?/ 表示スクリ−ンモ−ド ?...5,6,7,8,A,B,C 無い時はSC8
XS?/ 画面モード。?...Nは512x512モード。Sは768x512モード。
無い時は512x512。 ただしAPIC16色の時には強制的に768x512
XF?/ 解像度。?...Hは31kHz。Lで15kHz。無い時は31kHz
AU名前/ 著者名(GORRY.さんのAPICGに付いている)
: ヘッダの終わり。あとは自由にコメントを書いていい
これ以外の文字列は将来への拡張用ということで、次の/,あるいは0x1aまで無視する
フラグの詳細
・XY????????/ セーブされた矩形の左上の座標。
ちなみに大きさについてはPICフォーマット内部で規定されている
MSXでセーブ時に使われるフラグ
・MK/ 縦横を単純に2倍に拡大する
・MY/ 縦を単純に2倍に拡大する
・MHY/ X68000で表示するときには縦方向を512/424倍に拡大する
・MS?/ スクリーンモード7は512*256,最大16色。8は256*256,最大256色
X68000でセーブ時に使われるフラグ
・XS?/ 768x512モードというのは画面が768x512モードで、
そこに512x512以内の絵を表示することです。
(つまり横が2/3に潰れて、ドット縦横比がほぼ正方形になる)
・XF?/ 普通は31kHzで使っています。15kHzにするとやや縦が伸びます。
・他 元々のapicフォーマットで画面モード(65536, 32768, 256, 16色)が決ります
ドット比 31kHzで 横 / 縦 = 1.44
15kHzで 横 / 縦 = 1.28
(768x512モード 31kHzで 横 / 縦 = 0.96) いずれも定規で測った推定値
例
PIC/MM/XY00120035/:<1a><00> (12, 35)からセーブしたもの
PIC/MM/MK/:あればコメント<1a><00> 縦横2倍拡大
PIC/MM/MY/XY00320015/MK/:<1a><00> 縦横2倍拡大、縦補正。位置は(32,15)
PIC/MM/XSS/:コメント<1a><00> 正方形モード
PIC/MM/AU結城 見:<1a><00> 著者名は「結城 見」
前世の遺物
PIC/mfged5/????????<1a><00>
これは PIC/MM/XY????????/:<1a><00> と同じことです。mfged.x V4.5fと、V5.0
のプロトタイプで使用しているので、mfged.xは宿命としてサポートしますが、他
では気が向かなければサポートする必要はないと思います。
MSX:MERONさん(NAT23181)と、X68000:結城 見(NAT21946)とで考えました。
今のところこの2人の作ったプログラムと、あとzedやepicなどで画面モードと位置
(要はX68000用のフラグ)を読んでロードしてくれるようになりました。
ほんとうは、元祖PICでこうした情報を埋め込むように拡張されるのが良いので、
もしPICが作者の柳沢さんによって拡張されたら、
このヘッダは、はかなくも消える運命にあります。
GORRY.さんのAPICGで「AU」追加になりました。私も対応することにしました。
(mmapicの方はもう手を加えることはないので、mfgedの方で)
このドキュメント、転載自由です。