[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のらっきょまで