[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 3066] Re: bmpv04.
こんにちは、川合です。
rakkyo さんは 2002/01/28 02:50:06 の「[OSASK 3062] Re: bmpv04.」
で書きました:
>なんとかエラーを発見することが出来ました。
>ありがとうございました。 >川合さん
どういたしまして。問題個所が分かって良かったです。
>> これはですね、カラーコード0〜15以外の色を指定しているためです。
>どうも
>AL >>= 4;
>というコードが
>SAR AL, 4
>というコードになるため
>BなどがALに入ってくると
>上位4ビットが、1になってしまうからのようです。
なるほど、なるほど。
それは、ASKAがALをsignedとして扱ったためです(ASKAでは明記され
ていないとコンパイラが勝手に決めていいことになっています)。これ
はunsignedなんだぞ!って教えてあげれば回避できます。ということで
、簡単な回避策を3つほど。
1.SHL(AL, 4);にする。ASKAらしくなく、可読性は落ちるが、まあ、
最小の手間で目的を達成できる。
2.(unsigned char) AL >>= 4;にする。ASKAらしく、可読性はまあま
あだが、やたらに長い。
3.unsigned char data == AL;などとやっておいて、data >>= 4;にす
る。これはうまく使えばもっとも読みやすく、ASKAらしい。が、使
いこなすためにはちょっとしたセンスが必要という難点もある。
>BMPVはもうすこしいじってから出します。
楽しみに待ちます。
それでは。
--
川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/