ReC98/libs/piloadc/piloadc.doc

160 lines
8.0 KiB
Plaintext
Raw Normal View History

===============================================================================
Pi Loader組込み用解説書 1993.10.4 電脳科学研究所/BERO
===============================================================================
これはPi形式の画像を自作ソフトで表示するためのライブラリです。
Pi0.22から、2画面以上の画像を表示できるようにメインメモリに展開バッファを取る
ようになり、省メモリの利点が失われてしまい、組み込み利用に向かなくなったので、
余計な部分を無くして組み込み用にライブラリ化しました。
Pi0.21以前のpiloadと比較すると
・部分ロードのバグが取れた
・透明色ロードが可能になった
・スモールモデル以外でも使えるようになった
・バッファの指定がセグメントでなくポインタで行えるようになった
同梱ファイル
piloadc.doc このドキュメント
piloadc.asm ロード部ソース ( C / Pascal 共通 )
piloadc.obj ロード部オブジェクト
pild.pas TurboPascal使用例
pild.c TurboC/MS-C/QuickC使用例
C,Pascalから呼び出せるモジュールが一つになっています。
C,Pascalから同じ様に呼び出すことができます。
piloadc.obj
-------------------------------------------------------------------------------
small/tinyモデル
int PiLoad(char *name,char *buff,int Size,int X,int Y,int tone,int option)
compact モデル
int PiLoadC(char *name,char *buff,int Size,int X,int Y,int tone,int option)
large/hugeモデル
int PiLoadL(char *name,char *buff,int Size,int X,int Y,int tone,int option)
PASCAL
functuon PiLoad( name:string; var buff; Size,X,Y,tone,option:integer):integer;
引数
name ファイル名
buff バッファのポインタ
Size バッファのサイズ
X 表示アドレスのX座標(-1で位置情報を利用)
Y 表示アドレスのY座標(-1で位置情報を利用)
tone トーン(1~100%)
option オプション(下記のビットで指定)
(lsb)0 .. パレット設定 する/しない = 1/0
1 .. 常駐パレット設定 する/しない = 1/0(*)
2 .. コメント表示 する/しない = 1/0
3 .. 画面設定 する/しない = 1/0
(VRAMのON,400/200line設定)
4 .. ノート用パレット する/しない = 1/0
5 .. スクロールロード する/しない = 1/0(*)
6 .. 透明色利用 する/しない = 1/0
7 .. 裏画面ロード する/しない = 1/0(*)
815 .. 透明色指定(015)
(*)はpiloadにはありますがpiloadcでは無意味です。
戻り値
0 正常終了
-8 バッファが足りない
-31 Piではない
-32 サポートされていない
他 エラー(MSDOSのDOSコールエラー参照)
・バッファは約8Kバイト以上必要です。
・バッファのオフセット100hから48バイトがパレット、130hから8バイトが座標、
 標、横幅、縦幅になります。
・画像の横幅が1280を越える場合は正常に表示出来ません。
 ソースの line = 1280 を変更することで対応できます。
・bit6が0の場合、データで透明色が指定されていればそれが使用されます。
 明示的に透明色を指定する場合はbit6を1にして、上位ビットで透明色のパレット
 番号を指定して下さい。データの透明色を透明にせずに表示する場合は、bit6を1に
 して、上位ビットにffhを指定して下さい。
・縦400を越える画像は裏画面に表示されます。スクロール等は自前でして下さい。
void ToneSet( int tone) small/tiny/compactモデル
void ToneSetL( int tone) large/hugeモデル
procedure ToneSet(tone:integer) pascal
引数 tone トーン(1~100%)
直前にロードした画像のトーンを変更します。
画像のフェードイン・フェードアウト等に使います。
-------------------------------------------------------------------------------
Cでの使い方
(1)ソース中で関数のプロトタイプ宣言をする
int PiLoad(char *name,char *buff,int Size,int X,int Y,int tone,int option);
(2)piloadc.objをリンクする
MS-C A>CL <組み込みたいファイル.c> piload.obj
TurboC A>TCC <組み込みたいファイル.c> piload.obj
-------------------------------------------------------------------------------
TurboPascalでの使い方
(1)ソース中で関数の外部定義とpiloadc.objのリンク指定をする
functuon PiLoad( name:string; var buff; Size,X,Y,tone,option:integer):integer;
external;
{$l piloadc}
-------------------------------------------------------------------------------
Piフォーマットは柳沢明氏が考案されたものです。
転載および使用に関しては、X68版Pi.rに準じます。
(Pi.rのDOCより)
・著作権は放棄しませんが、以下の範囲での使用が可能です。
・転載・使用に関しましては私の承認無しに自由に転載・使用して構いません。
・組み込みに当たりソースの変更などなさってもかまいません。
・営利目的で使用しても構いません(私の承認なしでも結構です)
ただし、その事をどこかに1言書いて下さい(簡単には見れない所でも可)
・商業誌の広告でPiの紹介をするのであれば事前に連絡を下さい。
  (いきなり広告に登場するとびっくりします) そして掲載の場合は必ず入手手段
  を広告掲載者側で用意し、その方法を同じ広告中に明記して下さい(~~で入手で
  きるとか、××に載っているとかは駄目です)
・ディスクマガジンおよび商業誌への掲載は可です。
・使用に関して生じた損害は、その原因が当方にありましても保証しかねますので
 ご了承下さい。
・当然Piで圧縮したデータに関しましては当方では如何なる権利も主張しません、
また表示されるデータに対して如何なる責任も有りません。
このソースはTurboAssembler2.0で書かれています。
ローカルラベル等TASM特有の機能を多用してるので他のアセンブラでは不幸かも。
同人等で組込む場合、見本をいただけると嬉しいですが、義務ではありません。
わざわざ送ってくれた人ありがとうございます。嬉しかったす。
でも集のローダにわざわざpild.cに毛の生えたようなのを作るくらいなら素直に
pi.exeを使って下さい。なんかウィルスが混入したのもあったらしいし。
・・
 タケルとかパソコンショップとか書籍添付とか、即売会以外で販売する場合は事前に
相談して下さい。べつにいくらかよこせとかいう訳じゃなくて、素人がそういうのに手
を出すと、相場を知らないので甘くみられてショップが不当に儲けたりすることが往々
にしてあるので(某*ッセ3Oとか)、アドバイスします。
ソフト作成に便利なツール
CG集作成キットCGL
 98/68/TOWNS3機種で動作するマウス対応のメニュー形式のCGローダ。
電脳インストーラDINST
 リセットして起動するだけで自動的にMS-DOSをインストールする賢いIPL。
電脳インストーラDINST2
 ではHuman68kが、ではMS-DOSインストーラが起動するもっと賢い
等もよろしく。質問・要望等は以下まで。
 電脳科学研究所/BERO
791-02 温泉郡重信町志津川393-2-203 石尾孝弘
同人NET(東京BBS)03-3857-7822 BERO
CAT-NET CAT23959
NiftyServe JBC01267
PC-VAN EHM44445