[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2466] Re: 改造OSASK修正版.



  こんばんは、川合です。

  えらくGendibal, MonzaSPが遅れています。すみません。デバッグに
苦戦しているんです。でも、峠は越えたと思います。もう少しのところ
まで来ています。


I.Tak. さんは 2001/11/18 21:35:58 の「[OSASK 2465] 改造OSASK 修
正版(Re: Readme.htm)」で書きました:

> とか言ったんですが、よく見たら、そのすぐ上でマウスカーソルの
>x座標を計算してありました。
>あと、ASKAの文法について理解も深まったので、バグと一緒にgotoも
>なくして高級言語的に美しくしたくなりました。
>という訳で修正版です。
>http://home1.catvmics.ne.jp/~msy/tak/osask/ostwkai4.htm
>これで胸を張って組みこんでくださいと言えますY(^^

  おお、確かに、とてもよくなっています。ありがとうございます。

  このまま組み込むという訳ではありませんが、もうほとんどいじると
ころはないですね。

  なお、x2を1024にしたらクリッピングの関係で死ぬかもしれないと恐
れられていますが、僕のいい加減な記憶では、x方向のクリッピングは
ちゃんとやっていたように思います。だから1024でやってみました。と
りあえず、落ちてはいません(でもスクロールしてしまっているので、
本当に画面の反対側にマウスカーソルが表示されていないかどうかは確
認していません)。

  きっとI.Tak.さんはセミハイレゾに挑戦した時にカーソルが欠けなく
て不安に感じたのでしょうが、僕としてはもともとx方向のVRAMサイズ
を1024ドットと想定して、クリッピングルーチンを組んでいたのです。

    } else /* (false) */ if (x > 1024 - 16) {
        work->mx1 = 1024;
        maskflag |= 0x10;
        if (x > 1024 - 12) {
            maskflag |= 0x18;
            if (x > 1024 - 8) {
                maskflag |= 0x1c;
                if (x > 1024 - 4) {
                    maskflag |= 0x1e;
                }
            }
        }
    }

という部分がGAPI_clippingmouse()の中にあると思いますが、この中の
1024の部分を全て640にすれば、640で欠けるようになります(多分)。

  この機能はmonzasp0に搭載される予定です。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/