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

[OSASK 2982] from OSASK BOARD



このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい。


http://www.imasy.or.jp/~mone/osask/index.cgi?REFER=3c48f676_4bdf

From: 川合秀実
Message-ID: 3c48f676_4bdf
Date: 2002/01/19 13:30
Subject: Re: OSASKアプリ作りました。

[OSASK 2970]へのレスです。

>最近始めたC言語の勉強も兼ねてOSASKアプリを作ってみました。
>1ヶ月分のカレンダーを表示するプログラム "calm1" です。

 早速試してみました。操作は簡単ですし、表示もきれいです。実用性もあるで
しょう。僕はとても気に入りました。推奨を出してバンドルしたいくらいです。

 プログラムもきれいで、あまり指摘できる部分がありません。

 しいて挙げるなら、148〜149行は不要な処理だということくらいです。

 それともしプログラムをコンパクトにしたいのなら、setdec3では100の位をま
じめに計算する必要はないので、そこをスペース固定にすると効果があるかもし
れません(あともうちょっとで2.0KBを切れるという微妙なサイズなので・・・
笑)。

 プログラムは比較的汎用的に書かれているので、たとえば2ヶ月分をまとめて
表示するようなカレンダーに改造することはとても簡単そうです。さすがです。
今のところ、改造の必要はありませんが。

 うーんそうですねえ、後は1ヶ月ずつだけではなく1年ずつ動かす操作があった
ら便利かなとは思いました。それがあれば、年月を直接指定する方法がなくても
不便はないかもしれません。

 以下はreadme.txtへのお返事です。

> ・stackとmallocの値はどうやって求めればよいのか

 stackの値は、「4K+ローカル変数に必要なバイト数」で求めます。ざっと見た
ところ大きな配列はありませんのでローカル変数は100バイト程度でしょう。そ
れなら「stack:4k」と指定してください。これより大きくとってもいいですが。

 mallocはちょっと面倒です。mallocを伴うものを書き出すと、

>lib_init(AUTO_MALLOC);
>lib_openwindow(AUTO_MALLOC, 0x0200, 27 * 8, 9 * 16);
>lib_opentextbox(0x1000, AUTO_MALLOC,  0,  5, 1, 0, 0, window, 0x00c0, 0);
>lib_opentextbox(0x0001, AUTO_MALLOC, 15, 27, 9, 0, 0, window, 0x00c0, 0);
>lib_opensignalbox(256, AUTO_MALLOC, 0, REWIND_CODE);

以上の5つです。「AUTO_MALLOC」と書いてあるものが該当すると思えば話は簡単
でしょう。

 それで、

・lib_init()は256バイト
・lib_openwindow()は128バイト
・lib_opentextbox()は、(64 + x_size * y_size * 8)バイト
・lib_opensignalbox()は最初の引数がバイト数

ということになっているので、256+128+(64+5*8)+(64+27*9*8)+256を計算して、
2752が算出されます。また、malloc()一回につき16バイトくらいの余裕が欲しい
ので、16*5をさらに加えて、2832バイトです。・・・ですからまあ、malloc:3k
を指定すると良いでしょう。もちろん、これより大きくてもかまいませんが。

> ・プログラム名,関数名,変数名の上手な(普通用いられる)付け方
> ・どの程度の機能なら関数にできる(するもの)なのか
> ・ソースの書き方(とりあえず“introa05”に含まれているもののまねをした)

 この辺は各自の流儀が合って、気に入ったスタイルを真似すればいいと思いま
す。とりあえず、現状は特に問題ないように思います。

>今後は年月を指定できるようにするとか,起動したときに現在の年月を表示するようにし
>たいと思っています(できるのかどうかも分からないのですが)。

 実は現在の年月を取得するためのAPIがまだ決まっていないので、後者の改良
は今すぐにはできません。すみません。でも、こういうのを観てしまうと、早く
サポートしてあげたくなりますが。

 もしこのcalm1を改良したり、もしくは新しいアプリケーションを作ったりな
さったら、今後も是非ご連絡ください。とても期待しています。