[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00858] Re: カラーでの縦画面表示について
- Subject: [WitchTech 00858] Re: カラーでの縦画面表示について
- From: "Kentarou Hayashi" <grove@mbd.sphere.ne.jp>
- Date: Mon, 3 Sep 2001 20:27:31 +0900
Rinjianです。
> わんだらぁです。
> WitchではAUTO変数の配列の初期化は、正しく行えなかった
> と思うので(例のDS!=SSです)
> > unsigned long linedata[] = {
> > 0,0,0,0,0,0,0,0,
> > };
> ここが拙いと思います。
> staticにすれば一応解決しますが、今度はColorFontCnvRightAngle
> 呼び出しのたびに初期化されないので、配列linedataの初期化を
> 関数の先頭で、forループで明示的に行うようにしてみたら
> どうでしょうか?
ご指摘ありがとうございます。
早速修正したところうまくいきました。
関連する過去のメールを(WitchTech367-379)読み直しました。
これまで、たまたまそれなりに動いていたせいか、
DS!=SSを意識していませんでした。
> あと、横<->縦変換するループも、16色パックドカラーモード用
> ですよね?正しく変換されてないように思えますけど、どうでしょう
> か?
パックトではなく、従来の拡張としての16色カラーモード用なので
これで良いんです。
と言いたいところですが、確かに正しく変換できていませんでした。
これでは右に90度ではなく、左に90度回転されます。
というわけで、結局下記のように落ち着きました。
void ColorFontCnvRightAngle3(unsigned long *p)
{
int line,row;
unsigned long *lwp;
unsigned long tmp,longdata,mask;
unsigned long linedata[8];
for(line=0; line<8; line++){
linedata[line] = 0;
}
lwp = p;
for(line=0; line<8; line++){
mask = 0x80808080;
longdata = *lwp;
for(row=0; row<8; row++){
tmp = (longdata&mask)>>(7-row);
tmp = tmp<<line;
linedata[row] |= tmp;
mask = mask>>1;
}
lwp++;
}
lwp = p;
for(line=0; line<8; line++){
*lwp = linedata[line];
lwp++;
}
}
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
Rinjian
E-mail: rinjian@hotmail.com
:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:-:
ML Archives