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

[OSASK 2132] マニュアルの改善の要望



光成です。
何もしていないのに文句をいうのは何ですが、今回初めて
OSASKプログラミングをしてみて思ったことを書きます。

1. APIに関するドキュメントが分散されすぎていて非常に読みにくいです。
更新差分、追加項目だけを増やしていった方がサイズは小さいかもしれませんが
途中から参加するにはかなりの障害となる気がします。
APIの説明は全てmanual.txtなど1つのファイルにまとめるべきではないでしょうか。
とりあえず、そのファイルだけ見れば今どんなAPIが使えるのかが分かるほうが
こまごまといくつもファイルをダウンロードして探す手間よりもはるかによいと
思います。

その場合のAPIの説明も文章的なものよりは簡潔に説明したほうがよいです。
「この関数はサンプルでは使われていません」とか「この関数の仕様はうっとうしい
でしょう」などのコメントは不要だと思います。

例えば

---------------------------------------------------------------------
/*
 *	ウィンドウにテキストボックスを貼る
 */
struct LIB_TEXTBOX *lib_opentextbox(
	int opt,						/* 0x1000 or 0 */
	int textbox,					/* always 0 */
	int backcolor,					/* always 0 */
	int x_size,						/* テキストボックスの横の大きさ(キャラクタ単位) */
	int y_size,						/* テキストボックスの縦の大きさ(キャラクタ単位) */
    int x_pos,						/* テキストボックスの左上のx座標(ドット単位) */
    int y_pos,						/* テキストボックスの左上のy座標(ドット単位) */
    struct LIB_WINDOW * window,		/* 親ウィンドウのID */
    int charset,					/* always 0x0C */
    int init_char					/* always 0 */
);

返り値 ウィンドウボックスのID
説明
	返り値はテキストボックスに文字を書くときに必要
	キャラクタの大きさは横8ドット 縦16ドット
○opt = 0x1000 のとき
	ウインドウタイトルを貼る
	・引数の制限
		x_size <= (親ウィンドウのx_size / 8 - 10)
		y_size = 1
		x_pos = 0
		y_pos = 0
○opt = 0 のとき
	一般のテキストボックスを貼る
	・引数の制限
		x_posは8の倍数であること(将来この制限は取り除かれる予定)
		テキストボックスが親のウィンドウの大きさを超えないこと
---------------------------------------------------------------------

こんな感じの説明をAPIのアルファベット順に追加していくということです。
また細かいことですが、lib_openwindowとlib_opentextboxとでは同じ名前の
引数 x_size, y_size を持ちながらも片方はドット単位、片方はキャラクタ単位と
異なります。これは混乱のもとになるので x_size, x_dot, x_char など
変えたほうが良いのではないでしょうか。
#例えば今VGA周りのAPIを作っていらっしゃるようなのでそれらの間で同じ
#名前の引数は同じ意味をもたせるようにするとか。

2. 開発環境の標準的ディレクトリ構成を決める。
例えば
OSASK_DEV=c:\prog\osask
としたとき
%OSASK_DEV%\include		;*.h, *.rulなど
%OSASK_DEV%\lib			;*.libなど
%OSASK_DEV%\bin			;lcc.exeなど
などの構成を決めるということです。
サンプルはすべて同一ディレクトリにいれるようになっていますが、
guigui00.hという非常に大事なものがあちこちのディレクトリにあるのは
よくないと思います。どこかひとつに位置をきめておけばそこのファイルだけ
最新版に更新することが出来ます。
そのためにはbim2bin0やobj2bim0にpath指定オプションがあったらよいと思います。
#もし既にあるのでしたらごめんなさい。ドキュメントを見た限りでは分かりませんでした。

とりあえずそんなところが開発しにくいなと思いました。
長文失礼です。