2: 2004-05-06 (木) 00:54:11 [6] | 現: 2024-01-08 (月) 12:58:55 ゲスト [7] | ||
---|---|---|---|
Line 6: | Line 6: | ||
*** ダウンロード | *** ダウンロード | ||
-osa_dir3以降にバンドルされますが、osa_dir3が出るまで待つ必要はないので、待てない人はこちらからどうぞ。 | -osa_dir3以降にバンドルされますが、osa_dir3が出るまで待つ必要はないので、待てない人はこちらからどうぞ。 | ||
- | --http://k.hideyosi.com/test061.lzh (19.2KB) | + | --[[test063>OSASK:6938]] (38.8KB) |
+ | --http://k.hideyosi.com/test062.lzh (26.3KB) ← 没 | ||
+ | --http://k.hideyosi.com/test061.lzh (19.2KB) ← 没 | ||
* 関数一覧 | * 関数一覧 | ||
Line 13: | Line 15: | ||
--だからこれ一つでlib_initもlib_opensignalboxも不要。 | --だからこれ一つでlib_initもlib_opensignalboxも不要。 | ||
--これはmallocしないので、malloc領域の計算で数えなくてよい。 | --これはmallocしないので、malloc領域の計算で数えなくてよい。 | ||
- | --lib_getsig系を使うにはこの関数でシグナルボックスを初期化するか、もしくは特定の書式でシグナルボックス構造体を構成する必要がある。 | + | --lib_getsig系を使うにはこの関数でシグナルボックスを初期化するか、もしくは特定の書式でシグナルボックス構造体を構成する必要がある(下記の「lib_initsignalbox0_256の中身」の記述を参考)。 |
--従来どおりユーザが自作したgetsignal等を使うのなら、この関数を使う必要もシグナルボックス構造体を作る必要もない。 | --従来どおりユーザが自作したgetsignal等を使うのなら、この関数を使う必要もシグナルボックス構造体を作る必要もない。 | ||
--シグナルボックスのサイズに応じて関数名にバリエーションがある。どれか一つを選ぶ(将来的には1k版と16k版も作る予定)。 | --シグナルボックスのサイズに応じて関数名にバリエーションがある。どれか一つを選ぶ(将来的には1k版と16k版も作る予定)。 | ||
Line 44: | Line 46: | ||
/* "movec2.c" */ | /* "movec2.c" */ | ||
/* stack:4k malloc:2k */ | /* stack:4k malloc:2k */ | ||
+ | |||
#include <guigui00.h> | #include <guigui00.h> | ||
#define AUTO_MALLOC 0 | #define AUTO_MALLOC 0 | ||
+ | |||
/* シグナルボックス関係 */ | /* シグナルボックス関係 */ | ||
#define REWIND_CODE 1 | #define REWIND_CODE 1 | ||
#define initsignalbox() lib_initsignalbox0_256(REWIND_CODE) | #define initsignalbox() lib_initsignalbox0_256(REWIND_CODE) | ||
#define getsignalw() lib_getsig0w(lib_sigbox_256) | #define getsignalw() lib_getsig0w(lib_sigbox_256) | ||
+ | |||
void OsaskMain() | void OsaskMain() | ||
{ | { | ||
Line 58: | Line 60: | ||
struct LIB_TEXTBOX *wintitle, *textbox; | struct LIB_TEXTBOX *wintitle, *textbox; | ||
int x, y, c; | int x, y, c; | ||
+ | |||
/* ライブラリ初期化&シグナルボックス初期化 */ | /* ライブラリ初期化&シグナルボックス初期化 */ | ||
initsignalbox(); | initsignalbox(); | ||
+ | |||
/* ウィンドウオープン */ | /* ウィンドウオープン */ | ||
window = lib_openwindow(AUTO_MALLOC, 0x0200, 20 * 8, 8 * 16); | window = lib_openwindow(AUTO_MALLOC, 0x0200, 20 * 8, 8 * 16); | ||
Line 67: | Line 69: | ||
textbox = lib_opentextbox(0x0001, AUTO_MALLOC, 0, 20, 8, 0, 0, window, 0x00c0, 0); | textbox = lib_opentextbox(0x0001, AUTO_MALLOC, 0, 20, 8, 0, 0, window, 0x00c0, 0); | ||
lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, "movec2"); | lib_putstring_ASCII(0x0000, 0, 0, wintitle, 0, 0, "movec2"); | ||
+ | |||
/* シグナル定義 */ | /* シグナル定義 */ | ||
lib_definesignal1p0(3, 0x0100, 0x00ac, window, 4); /* カーソルキー(計4つ) */ | lib_definesignal1p0(3, 0x0100, 0x00ac, window, 4); /* カーソルキー(計4つ) */ | ||
lib_definesignal1p0(0, 0x0100, ' ', window, 8); /* スペースバー */ | lib_definesignal1p0(0, 0x0100, ' ', window, 8); /* スペースバー */ | ||
lib_definesignal0p0(0, 0, 0, 0); | lib_definesignal0p0(0, 0, 0, 0); | ||
+ | |||
/* まず表示 */ | /* まず表示 */ | ||
x = 9; y = 3; c = 11; | x = 9; y = 3; c = 11; | ||
lib_putstring_ASCII(0x0000, x, y, textbox, c, 0, "O"); | lib_putstring_ASCII(0x0000, x, y, textbox, c, 0, "O"); | ||
+ | |||
/* メインループ */ | /* メインループ */ | ||
for (;;) { | for (;;) { | ||
Line 115: | Line 117: | ||
#define getsignalw() lib_getsig0w(lib_sigbox_4k) | #define getsignalw() lib_getsig0w(lib_sigbox_4k) | ||
#define sig_ptr lib_sigptr_4k | #define sig_ptr lib_sigptr_4k | ||
- | -として、sig_ptrを使えるようにしてください。これがあればgetparamを作るのは簡単です。以下に例を示します。 | + | -として、sig_ptrを使えるようにしてください(256でも64kでも同様にできます)。これがあればgetparamを作るのは簡単です。以下に例を示します。 |
int getparam() | int getparam() | ||
{ | { | ||
Line 145: | Line 147: | ||
lib_opensignalbox_nm(256, sigstr.box, 0, rewind); | lib_opensignalbox_nm(256, sigstr.box, 0, rewind); | ||
} | } | ||
+ | |||
/* sigstr.ptrがlib_sigptr_256, sigstr.boxがlib_sigbox_256 */ | /* sigstr.ptrがlib_sigptr_256, sigstr.boxがlib_sigbox_256 */ | ||
Line 155: | Line 157: | ||
-ちなみに従来のgetsignalwの直接記述よりも常に優れているというわけではなく、状況によっては、ソースサイズは小さくなるけど実行ファイルはでかくなる、こともあるそうです。われながらイマイチですね。512キャンペーンに使えるかどうかは、試してみないと分からないようです。とりあえず初心者向けではあるかな。 -- [[K]] SIZE(10){2004-05-06 (木) 00:11:28} | -ちなみに従来のgetsignalwの直接記述よりも常に優れているというわけではなく、状況によっては、ソースサイズは小さくなるけど実行ファイルはでかくなる、こともあるそうです。われながらイマイチですね。512キャンペーンに使えるかどうかは、試してみないと分からないようです。とりあえず初心者向けではあるかな。 -- [[K]] SIZE(10){2004-05-06 (木) 00:11:28} | ||
-getsignalがあるならばput(send?)signalとかありそうだなどと言ってみるテスト。・・・自分自身に送るってのあるけど、これは別アプリには届かないのかな? -- [[名無しさん]] SIZE(10){2004-05-06 (木) 00:54:10} | -getsignalがあるならばput(send?)signalとかありそうだなどと言ってみるテスト。・・・自分自身に送るってのあるけど、これは別アプリには届かないのかな? -- [[名無しさん]] SIZE(10){2004-05-06 (木) 00:54:10} | ||
+ | -微妙にページ違いな気がするので[[impressions]]に移動してもいいでしょうか? -- [[K]] SIZE(10){2004-05-06 (木) 03:58:51} | ||
+ | -test062版なら実行ファイルもそれほどは大きくならないはずです。もしかしたら同じか小さくなるかも?(そうであってほしいなあ)。 -- [[K]] SIZE(10){2004-05-06 (木) 04:32:55} | ||
+ | -test063+go_0023の最強の組み合わせでもサイズが大きくなっちゃう場合があるそうです。ということでlib_getsigが常に良いとは限らないようです。 -- [[K]] SIZE(10){2004-05-07 (金) 14:25:17} | ||
#comment | #comment |
(This host) = http://osask.net