text.c 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. /*****************************************************************************/
  2. /* ここから */
  3. /*****************************************************************************/
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7. #include "wonx/text.h"
  8. #include "WonX.h"
  9. #include "WWText.h"
  10. #include "WWDisplay.h"
  11. #include "WWCursor.h"
  12. #include "etc.h"
  13. /*****************************************************************************/
  14. /* 互換関数の定義 */
  15. /*****************************************************************************/
  16. /*
  17. * Xサーバとの同期の整合性がとれなくなるなどの問題が考えられるので,
  18. * 互換関数の内部は UNIXTimer_Pause(), UNIXTimer_Unpause() でくくり,
  19. * タイマ割り込みを一時停止して処理を行う.また,unpause するまえに,
  20. * かならず sync するようにする.
  21. */
  22. /*
  23. * タイマの一時停止の2重解除の問題が出てくるので,
  24. * 互換関数から互換関数を呼んではいけない.
  25. * (一時停止はネストされるが,いちおう)
  26. * 似たような処理をする関数の場合は,必ず static な別関数に処理をまとめ,
  27. * そっちを呼び出すようにすること.
  28. * 引数の表示の問題もあるしね.
  29. */
  30. static void _text_window_init(int x, int y, int w, int h, unsigned int base)
  31. {
  32. WWDisplay ww_display;
  33. WWText ww_text;
  34. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  35. ww_text = WWDisplay_GetText(ww_display);
  36. WWText_SetTextWindow(ww_text, x, y, w, h, base, ww_display);
  37. WWScreen_SetRollX(WWText_GetScreen(ww_text), 0);
  38. WWScreen_SetRollY(WWText_GetScreen(ww_text), 0);
  39. return;
  40. }
  41. void text_screen_init(void)
  42. {
  43. WWDisplay ww_display;
  44. WWLCDPanel ww_lcd_panel;
  45. if (!WonX_IsCreated()) WonX_Create();
  46. /* タイマを一時停止する */
  47. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  48. printf("call : text_screen_init() : \n");
  49. fflush(stdout);
  50. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  51. ww_lcd_panel = WWDisplay_GetLCDPanel(ww_display);
  52. _text_window_init(0, 0, TEXT_SCREEN_WIDTH, TEXT_SCREEN_HEIGHT, 8);
  53. WonXDisplay_Flush(WonX_GetWonXDisplay());
  54. printf("call : text_screen_init() : return value = none\n"); fflush(stdout);
  55. /* タイマをもとに戻す */
  56. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  57. return;
  58. }
  59. void text_window_init(int x, int y, int w, int h, unsigned int base)
  60. {
  61. WWDisplay ww_display;
  62. if (!WonX_IsCreated()) WonX_Create();
  63. /* タイマを一時停止する */
  64. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  65. printf("call : text_window_init() : x = %d, y = %d, width = %d, height = %d, base = %u\n", x, y, w, h, (int)base);
  66. fflush(stdout);
  67. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  68. _text_window_init(x, y, w, h, base);
  69. WonXDisplay_Flush(WonX_GetWonXDisplay());
  70. printf("call : text_window_init() : return value = none\n"); fflush(stdout);
  71. /* タイマをもとに戻す */
  72. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  73. return;
  74. }
  75. void text_set_mode(int mode)
  76. {
  77. }
  78. int text_get_mode(void)
  79. {
  80. return (0);
  81. }
  82. static void _text_put_char(int x, int y, unsigned int c)
  83. {
  84. WWDisplay ww_display;
  85. WWText ww_text;
  86. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  87. ww_text = WWDisplay_GetText(ww_display);
  88. WWText_PutCharacter(ww_text, x, y, c, ww_display);
  89. return;
  90. }
  91. void text_put_char(int x, int y, unsigned int c)
  92. {
  93. if (!WonX_IsCreated()) WonX_Create();
  94. /* タイマを一時停止する */
  95. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  96. printf("call : text_put_char() : x = %d, y = %d, character = \'", x, y);
  97. wonx_print_character(stdout, c);
  98. printf("\'\n");
  99. fflush(stdout);
  100. _text_put_char(x, y, c);
  101. WonXDisplay_Flush(WonX_GetWonXDisplay());
  102. printf("call : text_put_char() : return value = none\n"); fflush(stdout);
  103. /* タイマをもとに戻す */
  104. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  105. return;
  106. }
  107. static int _text_put_string(int x, int y, char * string)
  108. {
  109. int i, len, ret;
  110. WWDisplay ww_display;
  111. WWText ww_text;
  112. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  113. ww_text = WWDisplay_GetText(ww_display);
  114. len = strlen(string);
  115. ret = 0;
  116. for (i = 0; i < len; i++) {
  117. if (WWText_PutCharacter(ww_text, x + i, y, string[i], ww_display) >= 0)
  118. ret++;
  119. }
  120. return (ret);
  121. }
  122. int text_put_string(int x, int y, char * string)
  123. {
  124. int ret;
  125. char * p;
  126. if (!WonX_IsCreated()) WonX_Create();
  127. /* タイマを一時停止する */
  128. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  129. printf("call : text_put_string() : x = %d, y = %d, string = \"", x, y);
  130. for (p = string; *p != '\0'; p++) wonx_print_character(stdout, *p);
  131. printf("\"\n");
  132. fflush(stdout);
  133. ret = _text_put_string(x, y, string);
  134. WonXDisplay_Flush(WonX_GetWonXDisplay());
  135. printf("call : text_put_string() : return value = %d\n", ret);
  136. fflush(stdout);
  137. /* タイマをもとに戻す */
  138. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  139. return (ret);
  140. }
  141. int text_put_substring(int x, int y, char * s, int length)
  142. {
  143. int i, ret;
  144. WWDisplay ww_display;
  145. WWText ww_text;
  146. if (!WonX_IsCreated()) WonX_Create();
  147. /* タイマを一時停止する */
  148. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  149. printf("call : text_put_substring() : x = %d, y = %d, length = %d, string = \"", x, y, length);
  150. for (i = 0; i < length; i++) wonx_print_character(stdout, s[i]);
  151. printf("\"\n");
  152. fflush(stdout);
  153. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  154. ww_text = WWDisplay_GetText(ww_display);
  155. ret = 0;
  156. for (i = 0; i < length; i++) {
  157. if (WWText_PutCharacter(ww_text, x + i, y, s[i], ww_display) >= 0)
  158. ret++;
  159. }
  160. WonXDisplay_Flush(WonX_GetWonXDisplay());
  161. printf("call : text_put_substring() : return value = %d\n", ret);
  162. fflush(stdout);
  163. /* タイマをもとに戻す */
  164. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  165. return (ret);
  166. }
  167. void text_put_numeric(int x, int y, int length, int format, int number)
  168. {
  169. char buf[20];
  170. char f[20];
  171. if (!WonX_IsCreated()) WonX_Create();
  172. /* タイマを一時停止する */
  173. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  174. printf("call : text_put_numeric() : x = %d, y = %d, length = %d, format = %04x, number = %d\n", x, y, length, format, number);
  175. fflush(stdout);
  176. strcpy(f, "%");
  177. if (format & NUM_PADZERO) strcat(f, "0");
  178. sprintf(f + strlen(f), "%d", length);
  179. if (format & NUM_HEXA) strcat(f, "x");
  180. else if (format & NUM_SIGNED) strcat(f, "d");
  181. else strcat(f, "u");
  182. if (format & NUM_ALIGN_LEFT) { /* 未実装 */ }
  183. sprintf(buf, f, number);
  184. _text_put_string(x, y, buf);
  185. WonXDisplay_Flush(WonX_GetWonXDisplay());
  186. printf("call : text_put_numeric() : return value = none\n");
  187. fflush(stdout);
  188. /* タイマをもとに戻す */
  189. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  190. return;
  191. }
  192. void text_store_numeric(char * buffer, int length, int format, int number)
  193. {
  194. }
  195. void text_fill_char(int x, int y, int length, int c)
  196. {
  197. int i;
  198. if (!WonX_IsCreated()) WonX_Create();
  199. /* タイマを一時停止する */
  200. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  201. printf("call : text_fill_char() : x = %d, y = %d, length = %d, character = %d\n", x, y, length, c);
  202. fflush(stdout);
  203. for (i = 0; i < length; i++) {
  204. _text_put_char(x + i, y, c);
  205. }
  206. WonXDisplay_Flush(WonX_GetWonXDisplay());
  207. printf("call : text_fill_char() : return value = none\n");
  208. fflush(stdout);
  209. /* タイマをもとに戻す */
  210. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  211. return;
  212. }
  213. void text_set_palette(int palette_num)
  214. {
  215. WWDisplay ww_display;
  216. WWText ww_text;
  217. if (!WonX_IsCreated()) WonX_Create();
  218. /* タイマを一時停止する */
  219. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  220. printf("call : text_set_palette() : palette = %d\n", palette_num);
  221. fflush(stdout);
  222. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  223. ww_text = WWDisplay_GetText(ww_display);
  224. WWText_SetPalette(ww_text, WWDisplay_GetPalette(ww_display, palette_num));
  225. WonXDisplay_Flush(WonX_GetWonXDisplay());
  226. printf("call : text_set_palette() : return value = none\n");
  227. fflush(stdout);
  228. /* タイマをもとに戻す */
  229. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  230. return;
  231. }
  232. int text_get_palette(void)
  233. {
  234. WWDisplay ww_display;
  235. WWText ww_text;
  236. int num;
  237. if (!WonX_IsCreated()) WonX_Create();
  238. /* タイマを一時停止する */
  239. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  240. printf("call : text_get_palette() : \n");
  241. fflush(stdout);
  242. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  243. ww_text = WWDisplay_GetText(ww_display);
  244. num = WWPalette_GetNumber(WWText_GetPalette(ww_text));
  245. WonXDisplay_Sync(WonX_GetWonXDisplay());
  246. printf("call : text_get_palette() : return value = %d\n", num);
  247. fflush(stdout);
  248. /* タイマをもとに戻す */
  249. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  250. return (num);
  251. }
  252. void text_set_ank_font(int base, int color, int count, void * font)
  253. {
  254. }
  255. void text_set_sjis_font(void * p)
  256. {
  257. }
  258. void text_get_fontdata(int c, void * buffer)
  259. {
  260. }
  261. void text_set_screen(int screen)
  262. {
  263. WWDisplay ww_display;
  264. WWText ww_text;
  265. if (!WonX_IsCreated()) WonX_Create();
  266. /* タイマを一時停止する */
  267. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  268. printf("call : text_set_screen() : screen = %d\n", screen);
  269. fflush(stdout);
  270. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  271. ww_text = WWDisplay_GetText(ww_display);
  272. WWText_SetScreen(ww_text, WWDisplay_GetScreen(ww_display, screen));
  273. WonXDisplay_Flush(WonX_GetWonXDisplay());
  274. printf("call : text_set_screen() : return value = none\n");
  275. fflush(stdout);
  276. /* タイマをもとに戻す */
  277. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  278. return;
  279. }
  280. int text_get_screen(void)
  281. {
  282. WWDisplay ww_display;
  283. WWText ww_text;
  284. int n;
  285. if (!WonX_IsCreated()) WonX_Create();
  286. /* タイマを一時停止する */
  287. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  288. printf("call : text_get_screen() : \n");
  289. fflush(stdout);
  290. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  291. ww_text = WWDisplay_GetText(ww_display);
  292. n = WWScreen_GetNumber(WWText_GetScreen(ww_text));
  293. WonXDisplay_Flush(WonX_GetWonXDisplay());
  294. printf("call : text_set_screen() : return value = %d\n", n);
  295. fflush(stdout);
  296. /* タイマをもとに戻す */
  297. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  298. return (n);
  299. }
  300. void cursor_display(int flag)
  301. {
  302. WWDisplay ww_display;
  303. WWCursor ww_cursor;
  304. if (!WonX_IsCreated()) WonX_Create();
  305. /* タイマを一時停止する */
  306. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  307. printf("call : cursor_display() : flag = %d\n", flag);
  308. fflush(stdout);
  309. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  310. ww_cursor = WWDisplay_GetCursor(ww_display);
  311. switch (flag) {
  312. case 0: WWCursor_OFF(ww_cursor); break;
  313. case 1: WWCursor_ON( ww_cursor); break;
  314. default:
  315. WonX_Warning("cursor_display", "Cursor flag is 0 or 1.");
  316. WWCursor_ON(ww_cursor); /* 一応 ON にしとく */
  317. }
  318. WonXDisplay_Flush(WonX_GetWonXDisplay());
  319. printf("call : cursor_display() : return value = none\n");
  320. fflush(stdout);
  321. /* タイマをもとに戻す */
  322. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  323. return;
  324. }
  325. int cursor_status(void)
  326. {
  327. WWDisplay ww_display;
  328. WWCursor ww_cursor;
  329. int ret;
  330. if (!WonX_IsCreated()) WonX_Create();
  331. /* タイマを一時停止する */
  332. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  333. printf("call : cursor_status() : \n");
  334. fflush(stdout);
  335. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  336. ww_cursor = WWDisplay_GetCursor(ww_display);
  337. ret = WWCursor_IsON(ww_cursor) ? 1 : 0;
  338. WonXDisplay_Sync(WonX_GetWonXDisplay());
  339. printf("call : cursor_status() : return value = %d\n", ret);
  340. fflush(stdout);
  341. /* タイマをもとに戻す */
  342. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  343. return (ret);
  344. }
  345. void cursor_set_location(int x, int y, int w, int h)
  346. {
  347. WWDisplay ww_display;
  348. WWCursor ww_cursor;
  349. if (!WonX_IsCreated()) WonX_Create();
  350. /* タイマを一時停止する */
  351. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  352. printf("call : cursor_set_location() : x = %d, y = %d, w = %d, h = %d\n",
  353. x, y, w, h);
  354. fflush(stdout);
  355. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  356. ww_cursor = WWDisplay_GetCursor(ww_display);
  357. if (x < 0)
  358. WonX_Warning("cursor_set_location", "Value of x is too small.");
  359. if (x > TEXT_SCREEN_WIDTH - 1)
  360. WonX_Warning("cursor_set_location", "Value of x is too large.");
  361. if (y < 0)
  362. WonX_Warning("cursor_set_location", "Value of y is too small.");
  363. if (y > TEXT_SCREEN_HEIGHT - 1)
  364. WonX_Warning("cursor_set_location", "Value of y is too large.");
  365. if (w <= 0)
  366. WonX_Warning("cursor_set_location", "Value of w is too small.");
  367. if (h <= 0)
  368. WonX_Warning("cursor_set_location", "Value of h is too small.");
  369. WWCursor_SetX(ww_cursor, x);
  370. WWCursor_SetY(ww_cursor, y);
  371. WWCursor_SetWidth( ww_cursor, w);
  372. WWCursor_SetHeight(ww_cursor, h);
  373. WonXDisplay_Flush(WonX_GetWonXDisplay());
  374. printf("call : cursor_set_location() : return value = none\n");
  375. fflush(stdout);
  376. /* タイマをもとに戻す */
  377. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  378. return;
  379. }
  380. unsigned long int cursor_get_location(void)
  381. {
  382. WWDisplay ww_display;
  383. WWCursor ww_cursor;
  384. unsigned long int ret;
  385. if (!WonX_IsCreated()) WonX_Create();
  386. /* タイマを一時停止する */
  387. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  388. printf("call : cursor_get_location() : \n");
  389. fflush(stdout);
  390. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  391. ww_cursor = WWDisplay_GetCursor(ww_display);
  392. ret = 0;
  393. ret |= (((unsigned long int)WWCursor_GetX( ww_cursor) & 0xff) << 0);
  394. ret |= (((unsigned long int)WWCursor_GetY( ww_cursor) & 0xff) << 8);
  395. ret |= (((unsigned long int)WWCursor_GetWidth( ww_cursor) & 0xff) << 16);
  396. ret |= (((unsigned long int)WWCursor_GetHeight(ww_cursor) & 0xff) << 24);
  397. WonXDisplay_Sync(WonX_GetWonXDisplay());
  398. printf("call : cursor_get_location() : return value = 0x%08x\n", (int)ret);
  399. fflush(stdout);
  400. /* タイマをもとに戻す */
  401. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  402. return (ret);
  403. }
  404. void cursor_set_type(int palette_num, int interval)
  405. {
  406. WWDisplay ww_display;
  407. WWCursor ww_cursor;
  408. if (!WonX_IsCreated()) WonX_Create();
  409. /* タイマを一時停止する */
  410. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  411. printf("call : cursor_set_type() : palette = %d, interval = %d\n",
  412. palette_num, interval);
  413. fflush(stdout);
  414. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  415. ww_cursor = WWDisplay_GetCursor(ww_display);
  416. if (palette_num < 0)
  417. WonX_Error("cursor_set_type", "Palette number is too small.");
  418. if (palette_num > 15)
  419. WonX_Error("cursor_set_type", "Palette number is too large.");
  420. if (interval < 0)
  421. WonX_Warning("cursor_set_type", "Value of interval is too small.");
  422. if (interval > 255)
  423. WonX_Warning("cursor_set_type", "Value of interval is too small.");
  424. WWCursor_SetPalette(ww_cursor,
  425. WWDisplay_GetPalette(ww_display, palette_num));
  426. WWCursor_SetInterval(ww_cursor, interval);
  427. WonXDisplay_Flush(WonX_GetWonXDisplay());
  428. printf("call : cursor_set_type() : return value = none\n");
  429. fflush(stdout);
  430. /* タイマをもとに戻す */
  431. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  432. return;
  433. }
  434. unsigned long int cursor_get_type(void)
  435. {
  436. WWDisplay ww_display;
  437. WWCursor ww_cursor;
  438. unsigned long int ret;
  439. if (!WonX_IsCreated()) WonX_Create();
  440. /* タイマを一時停止する */
  441. UNIXTimer_Pause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  442. printf("call : cursor_get_type() : \n");
  443. fflush(stdout);
  444. ww_display = WonXDisplay_GetWWDisplay(WonX_GetWonXDisplay());
  445. ww_cursor = WWDisplay_GetCursor(ww_display);
  446. ret = WWPalette_GetNumber(WWCursor_GetPalette(ww_cursor));
  447. ret |= (((unsigned long int)WWCursor_GetInterval(ww_cursor) & 0xff) << 8);
  448. WonXDisplay_Sync(WonX_GetWonXDisplay());
  449. printf("call : cursor_get_type() : return value = 0x%08x\n", (int)ret);
  450. fflush(stdout);
  451. /* タイマをもとに戻す */
  452. UNIXTimer_Unpause(WonXSystem_GetUNIXTimer(WonX_GetWonXSystem()));
  453. return (ret);
  454. }
  455. int text_printf(int x, int y, const char *format, ...)
  456. {
  457. return (0);
  458. }
  459. /*****************************************************************************/
  460. /* ここまで */
  461. /*****************************************************************************/
  462. /*****************************************************************************/
  463. /* End of File. */
  464. /*****************************************************************************/