/* pset.h coded by さ〜 2000/09/10: 第1版 2000/09/12: FAST_PSETオプション追加 FAST_PSETでなくてもアドレス計算部が15->8に。 FAST_PSETでは15->5に。おお! */ #ifndef PSET_HEADER #define PSET_HEADER #define PSET_TEST /* #define OLD_PSET_CODE アドレス計算をまじめに計算する第1版を復活。 でも、現行のコードを削除する必要アリ(笑) #define FAST_PSET 3クロック速いが、サイズが126x2byteだけ大きくなる #define PSET_TEST テストするときは、適当なバッファを用意し、 ESレジスタに適切な値をセットしておいた上で、 PSET_TESTをdefineする。 --- test sample --- unsigned char org[144*224/8*2 +16]; セグメントアライン用 データセグメントに取られる、はず { unsigned char far *vram; unsigned short seg, off; vram = (unsigned char far *)org; seg = FP_SEG(vram); off = FP_OFF(vram); seg += (off >> 4) +1; vram = MK_FP(seg, 0); _asm_es("push es\nmov es, ax", seg); ↑ これでESにバッファの先頭をアラインしたアドレスが入る pset(x, y, c); // そして、うりゃっと。 _asm_es_pop("pop es\n"); 忘れずに。 } --- end of sample --- */ /* インラインアセンブラを使うため */ void _asm_pset(char *); void pset(int x, int y, int c); #endif /* 使用上の注意: ・このプログラムは さ〜 が作りました。 著作権は さ〜 にあります、か? ・コードは自由に使用できます。 コードの一部または全部を他のライブラリ等プログラムに 自由に組み込むことができます。また、その際に連絡する 必要はありません。 また、使用したことを明記する必要もありません。明記して いただければ、それはそれは嬉しいですが。 ・このコードを使用してシェアウェア等の有料のソフトウェアを 開発した場合、その製品をくれると嬉しいです(笑) (義務ではありません) ・このコードによる損害等の責任は負いません。 自己の責任のもと、ご利用ください。 ・このコードの詳細な説明は http://webs.to/D5./ にあります。興味のある方はご参照ください。 ・このコードについての意見・質問・苦情・感想は mailto:asurada@sugo.vip.co.jp さ〜 まで。 ・このコードをホームページ上で掲載または紹介していただける場合は 連絡をいただけると嬉しいです。事前の許可は全く必要ありません。 ・このコードを作成する際には、 石田さんのページ http://homepage1.nifty.com/open-prog/ mapiさんのページ http://ww1.tiki.ne.jp/~mapi/ を参考にさせていただきました。勝手ながらここにリンクを 掲載し、この場をかりてお礼申し上げます。 */