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

[OSASK 1639] Re: ponyets2, toledo2.



小柳です。こんばんは。

Hidemi KAWAI wrote:
> 
>   こんばんは、川合です。
> 
>   とりあえず、ponyets2とtoledo2をベータリリースします。

toledo2 の方で試しました。

>   隠しコンソールで、「memory」と入力してみてください。メモリの使
> 用状況が分かります。

アプリを起動すると、16bit memory と 24bit memoryが減少するのですが、
タスクの起動数制限(8個)を外すと、16bit memory がすぐに無くなってしまう
ように見えますが大丈夫なんでしょうか?Windowsのシステムリソース
みたいです。

20bit memory はアプリを起動しても全然変化なしです。

> 
>   また、「mousespeed n」と入力してみてください。nの部分は、0〜4
> くらいの数字(整数)を入れます。0だとマウスは動きません。1がデフ
> ォルトです。

0 でもマウスを動かすと countup4 の数値が減少するので、マウスドライバ
は常に動いているということですね。


>   このバージョンから、アプリケーションからのモジュールアクセスに
> 少しだけ対応しています。詳しいことは、filecp00.lzhをダウンロード
> して、filec001.cのコメントをよく読んでください。また、filec001や
> filec002をビルドするためには、exe2bin1が必要です。これもベータ版
> ダウンロードページにアップロードしてあります。

まず、filec001.c はこのままコンパイルできませんでした。
動作確認をしてから関数の説明をコメントで入れたと思うのですが、
/* */ が二重になっているため、正しく解釈されません。
コメントを #if 0 〜 #endif で括り直すとコンパイルできました。

file001.bin file002.bin とも動作を確認しました。

       /*
        もちろん、マッピングされている部分はメモリと同様に扱える
                だから、いちいちstr2に転送せずに、以下のようにしてもうま
く行く
        */
                lib_putstring_ASCII(0x0000, 0, 0, textbox,  0, 0, (char
*) mapp\
tr);

もうまく行きました。

さて、file001.c と file002.c を見ると、create_module() でモジュールを
作成している場所がどちらも同じディレクトリであることに気がついたので、
file002.c の次の 2か所をコメントアウトしました。

#if 0
        map_module(0x000c /* opt */, 0x0210 /* slot */,
                0x7 /* RW-mode */, 4096 /* map-window size */, (int)
mapptr_w, \
0);
#endif

#if 0
        for (i = 0; i < 14; i++)
                mapptr_w[i] = str[i];
#endif

こうしてビルドしたfile002.bin と元のfile001.bin を使用して文字列の
受け渡しができるかどうかを試してみました。

(1)file002.binを最初に起動します。当然何も書き込んでいないので、
file002.binのウインドウにはゴミが表示されます。
(2)file002.binを終了します。
(3)file001.binを起動します。file001.binのウインドウには
"this is test."が表示されます。
(4)file001.binを終了します。
(5)file002.binを起動します。
file002.binのウインドウには"this is test."が表示されます。
(6)file002.bin をもう 1つ起動します。
file002.binのウインドウにはゴミが表示されます。
(7)以後file002.bin を新規に起動すると全てゴミが表示されます。

また条件を少し変えてみます。

(1)file002.binを最初に起動します。当然何も書き込んでいないので、
file002.binのウインドウにはゴミが表示されます。
(2)file002.binを終了せずにfile001.binを起動します。
file001.binのウインドウには"this is test."が表示されます。
(3)file001.binを終了します。
(4)file002.binを終了します。
(5)file002.binを起動します。
file002.binのウインドウにはゴミが表示されます。
(6)file002.bin をもう 1つ起動します。
file002.binのウインドウには"this is test."が表示されます。
(7)以後file002.bin を新規に起動すると全てゴミが表示されます。

1つのfile001.bin の文字列が渡るのは、起動順序によって決まるただ 1つの
 file002.binのみのようです。
全てのfile002.binに文字列が渡る/全てのfile002.binに文字列が渡らない
のどちらでもないのはなんとなくすっきりしません。

-- 
小柳 雅明(Koyanagi.Masaaki !Atmark! nifty.ne.jp)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS