[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 3257] Re: BMPV05 Release
I.Tak.さん、どうもらっきょです。
いつもご指摘どうもありがとうございます。
> bmpv06にint3がしこんであります。
エラー場所の特定用が残っていました。すいません(汗)
> 実はつい最近bmpv05を真面目に読んでみました。アラインの計算に面倒なことを
> していたので、定石をお教えしましょう。
> eax += 7;
> eax &= ~7;
> 数字には(1<<n)-1を使ってください。これで2のべき乗の繰り上げができます。
レジスタがたらい回しになっていたので、一つでも減ると助かりそうです(笑)
さっそく使わせてもらいます。
> それから、変換後のデータはchar単位になっているようですね。
> これはあまりよくありません。データはグラフィック
> ボックスに限らず32bit単位で配置するべきです。つまり、
> 0102030405060*0*
> 0102030405060*0*
> と展開する方が良いのです。ツメモノも一緒に展開してしまいましょう。
これなのですが、私の技術では「123456**」から展開するのは、難しそうです。
って、今思いついたのですが、もしかして読みとったものをどれかのレジスタに
どんどん詰め込んで、いっぺんにグラフィックボックスに書き出すということで
しょうか??
16色BMPのロードなら出来そうですが、2色はレジスタがあっぷあっぷだったよう
な...(^^;;
とりあえず考えてみます。
(あとそれに、32ビットレジスタ(EAX等)の上位部への詰め込み方が分からないし
,,,(ぉぃ
> あと、グラフィックボックスって初期化しないオープンのオプションが
> ありませんか? そういうのがあれば、データを展開してからフラッシュする
> 手間が省けます。データ展開、ボックスオープンという操作で全て済みます。
あるのでしょうか??、川合さ〜ん(^^;;
と思ったのですが、たまには自分でも調べましょうということで、pioneer0.ask
を呼んでみました。
どうやら
/* optのbit12が1なら、バッファの初期化はしない */
これっぽいです。
> あと忘れた事を一つ。
> TEST(cl,0xff);
> ↓
> TEST(cl,cl); または
> cl &= cl; または
> cl |= cl;
> 一バイト縮みます(^^;;;
やっぱりアセンブリは奥が深いなぁ(^^;;
ここはすぐ直しておきます。
いろいろご指摘ありがとうございました。
とりあえず、バグもあるのでいつ直せるかは分かりませんが、暇見て直しておき
ます。
それでは〜
>>>>>>>>>>>>>>>>>>>>>>>
連絡、報告、苦情の宛先:
http://homepage2.nifty.com/rakkyo-taro/
又はrakkyo-taro !Atmark! nifty.comのらっきょまで