[OSASK 5309] ウィンドウタイトルサイズチェック ( Re: OSASK ver.3.0).

小柳です。こんばんは。

OSASK ver.3.0 上で s_world.bin を起動すると
C7:7B1 で INT 0x03 になるため、調べてみると

pioneer.ask の cmd028() // open text box において

/* ウィンドウタイトルサイズチェック */
ECX = cmd[16]; // x_size(キャラクター数)
ECX *= 8;
ECX += 80 + 16;
if (cmd0028_win->x_size < ECX)
   INT(0x03);

に対して、s_world.ask では

/* lib_window */
DD(0x0020); DD(0x1900 /* work_ptr */); DD(0x0200 /* slot */); DD(16 * 8\
 /* x_size */); DD(3 * 16 /* y_size */);

/* lib_wintitle */
DD(0x0028); DD(0x1000 /* opt(window title) */); DD(0x1980 /* work_ptr *\
/); DD(0);
DD(7 /* x_size */); DD(1 /* y_size */); DD(0); DD(0);
DD(0x1900 /* window */); DD(0x00c0 /* charset */); DD(0 /* init_char */\
);

となっており、

(lib_window x_size)16 * 8 < (lib_wintitle x_size)7 * 8 +80 +16

が成立するため、INT(0x03) がかかります。
lib_window の x_size を例えば 16 * 10 にすれば、ここの条件式が成立しない
ため、正常に起動しますが、無意味にウインドウの幅が広くなってしまいます。

チェックの条件式において、+16の部分はウインドウタイトルの左端部分(将来
アイコンが表示される?)の空白なので分かるのですが、+80 は何を意味するの
でしょうか?

I.Tak. さんのコマンドリファレンスを見ても、このオフセットについては
ふれられていませんでした。

それでは。

-- 
小柳 雅明(http://homepage1.nifty.com/dreaming/)
「人の足を止めるのは"絶望"ではなく"諦観"
  人の足を進めるのは"希望"ではなく"意志"」
                  -- ARMS


ML番号でジャンプ
ML単語検索