/* MS-DOS, UNIX OS ¶¦Íѥƥ­¥¹¥È²èÌÌÀ©¸æ´Ø¿ô½¸ £²¹ÖºÂÇÛÉÛÈÇ(Ver.1.8) Programmed by ¬Ð¬¤¬Ð¬´ ¬¦¡¡¬À¬¼ ¬¸¬¤¬¼ Kenzi NOIKE */ #include #include #include #include "disp_ctr.h" #ifndef UNIX #include #endif #define SCR_END 1024 #define BLACK 30 /* ¹õ 30 */ #define BLUE 34 /* ÀÄ 34 */ #define RED 31 /* ÀÖ 31 */ #define MAGENTA 35 /* »ç 35 */ #define GREEN 32 /* ÎÐ 32 */ #define CYAN 36 /* ¿å¿§ 36 */ #define YELLOW 33 /* ²«¿§ 33 */ #define WHITE 37 /* Çò 37 */ #define SECRET 16 /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ #ifndef UNIX /* ¤³¤³¤Ç MS-DOS ´Ä¶­(MIEL ¤ÇÈ¿±Ç¤µ¤ì¤ë)reverse, blink ¤ÎÃͤòÄêµÁ¤¹¤ë */ #else #endif /* ¥«¡¼¥½¥ëÈóɽ¼¨¥â¡¼¥É */ int cursor_off(void) { return( printf("\%c[>5h", ESC) ); } /* ¥«¡¼¥½¥ëɽ¼¨¥â¡¼¥É */ int cursor_on(void) { return( printf("\%c[>5l", ESC) ); } /* ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼Èóɽ¼¨¥â¡¼¥É */ int fk_off(void) { return( printf("\%c[>1h\n", ESC) ); } /* ¥Õ¥¡¥ó¥¯¥·¥ç¥ó¥­¡¼É½¼¨¥â¡¼¥É */ int fk_on(void) { return( printf("\%c[>1l\n", ESC) ); } /* ¥«¡¼¥½¥ë°ÌÃÖ x, y ¤È¤½¤Îɽ¼¨Â°À­¤ò¥»¡¼¥Ö¤¹¤ë¡£ */ int save_xy_attr(void) { return( printf("\%c[S", ESC) ); } /* save_xy_attr() ¤Ç¥»¡¼¥Ö¤·¤¿ÆâÍƤòÌ᤹¡£Éü¸µ¡£save_xy_attr() ¤¬¼Â¹Ô¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Ï¡¢¥«¡¼¥½¥ë¤Ï¥Û¡¼¥à¤Ë°ÜÆ°¤·¡¢Â°À­¤Ïµ¬ÄêÃͤˤʤ롣 */ int restore(void) { return( printf("\%c[U", ESC) ); } /* Ⱦ³Ñ¥°¥é¥Õ¥£¥Ã¥¯Ê¸»úɽ¼¨¥â¡¼¥É */ int graph_char_on(void) { return( printf("\%c)3", ESC) ); } /* ´Á»ú¥â¡¼¥É¡£µ¬ÄêÃÍ¡£ */ int graph_char_off(void) { return( printf("\%c)0", ESC) ); } /* ¹Ô´Ö¶õ¤­ */ int spacing_on(void) { return( printf("\%c[>3h", ESC) ); } /* ¹Ô´ÖµÍ¤á */ int spacing_off(void) { return( printf("\%c[>3l", ESC) ); } int color(int num) { switch(num){ case 0: return( printf("\%c[%dm", ESC, BLACK) ); /* ¹õ */ case 1: return( printf("\%c[%dm", ESC, BLUE) ); /* ÀÄ 34 */ case 2: return( printf("\%c[%dm", ESC, RED) ); /* ÀÖ 31 */ case 3: return( printf("\%c[%dm", ESC, MAGENTA) ); /* »ç 35 */ case 4: return( printf("\%c[%dm", ESC, GREEN) ); /* ÎÐ 32 */ case 5: return( printf("\%c[%dm", ESC, CYAN) ); /* ¿å¿§ 36 */ case 6: return( printf("\%c[%dm", ESC, YELLOW) ); /* ²«¿§ 33 */ case 7: return( printf("\%c[%dm", ESC, WHITE) ); /* Çò 37 */ case 127:return( printf("\%c[%dm", ESC, SECRET) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( printf("\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } int color_s(int num, char *buf) { #if 0 if((num >= 8) && (num != 127)){ /* 127 ¤Î½èÍý¤Ï¤¢¤È¤Ç¡¢¤Á¤ã¤ó¤È¤¹¤ë¡£*/ char *buf_top; buf_top = buf; sprintf(buf, "%s", "\%c[7m", ESC); buf = buf_top; num -= 8; } #endif switch(num){ case 0: return( sprintf(buf, "\%c[%dm", ESC, BLACK) ); /* ¹õ 30 */ case 1: return( sprintf(buf, "\%c[%dm", ESC, BLUE) ); /* ÀÄ 34 */ case 2: return( sprintf(buf, "\%c[%dm", ESC, RED) ); /* ÀÖ 31 */ case 3: return( sprintf(buf, "\%c[%dm", ESC, MAGENTA) ); /* »ç 35 */ case 4: return( sprintf(buf, "\%c[%dm", ESC, GREEN) ); /* ÎÐ 32 */ case 5: return( sprintf(buf, "\%c[%dm", ESC, CYAN) ); /* ¿å¿§ 36 */ case 6: return( sprintf(buf, "\%c[%dm", ESC, YELLOW) ); /* ²«¿§ 33 */ case 7: return( sprintf(buf, "\%c[%dm", ESC, WHITE) ); /* Çò 37 */ case 127: return( sprintf(buf, "\%c[%dm", ESC, SECRET) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( sprintf(buf, "\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } int reverse(void) { return( printf("\%c[7m", ESC) ); } #ifdef UNIX int r_color(int num) { switch(num){ case 0: return( printf("\%c[40m", ESC) ); /* ¹õ 30 */ case 1: return( printf("\%c[44m", ESC) ); /* ÀÄ 34 */ case 2: return( printf("\%c[41m", ESC) ); /* ÀÖ 31 */ case 3: return( printf("\%c[45m", ESC) ); /* »ç 35 */ case 4: return( printf("\%c[42m", ESC) ); /* ÎÐ 32 */ case 5: return( printf("\%c[46m", ESC) ); /* ¿å¿§ 36 */ case 6: return( printf("\%c[43m", ESC) ); /* ²«¿§ 33 */ case 7: return( printf("\%c[47m", ESC) ); /* Çò 37 */ case 127:return( printf("\%c[7;16m", ESC) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( printf("\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } #else /* for MS-DOS environment(MIEL ¤ÇÈ¿±Ç¤µ¤ì¤ë) */ int r_color(int num) { switch(num){ case 0: return( printf("\%c[7;30m", ESC) ); /* ¹õ 30 */ case 1: return( printf("\%c[7;34m", ESC) ); /* ÀÄ 34 */ case 2: return( printf("\%c[7;31m", ESC) ); /* ÀÖ 31 */ case 3: return( printf("\%c[7;35m", ESC) ); /* »ç 35 */ case 4: return( printf("\%c[7;32m", ESC) ); /* ÎÐ 32 */ case 5: return( printf("\%c[7;36m", ESC) ); /* ¿å¿§ 36 */ case 6: return( printf("\%c[7;33m", ESC) ); /* ²«¿§ 33 */ case 7: return( printf("\%c[7;37m", ESC) ); /* Çò 37 */ case 127:return( printf("\%c[7;16m", ESC) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( printf("\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } #endif int blink(void) { return( printf("\%c[5m", ESC) ); } int b_color(int num) { switch(num){ case 0: return( printf("\%c[5;30m", ESC) ); /* ¹õ 34 */ case 1: return( printf("\%c[5;34m", ESC) ); /* ÀÄ 34 */ case 2: return( printf("\%c[5;31m", ESC) ); /* ÀÖ 31 */ case 3: return( printf("\%c[5;35m", ESC) ); /* »ç 35 */ case 4: return( printf("\%c[5;32m", ESC) ); /* ÎÐ 32 */ case 5: return( printf("\%c[5;36m", ESC) ); /* ¿å¿§ 36 */ case 6: return( printf("\%c[5;33m", ESC) ); /* ²«¿§ 33 */ case 7: return( printf("\%c[5;37m", ESC) ); /* Çò 37 */ case 127:return( printf("\%c[5;16m", ESC) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( printf("\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } int blirev(void) { return( printf("\%c[5;7m", ESC) ); } int br_color(int num) { switch(num){ case 0: return( printf("\%c[5;7;30m", ESC) ); /* ¹õ */ case 1: return( printf("\%c[5;7;34m", ESC) ); /* ÀÄ */ case 2: return( printf("\%c[5;7;31m", ESC) ); /* ÀÖ */ case 3: return( printf("\%c[5;7;35m", ESC) ); /* »ç */ case 4: return( printf("\%c[5;7;32m", ESC) ); /* ÎÐ */ case 5: return( printf("\%c[5;7;36m", ESC) ); /* ¿å¿§*/ case 6: return( printf("\%c[5;7;33m", ESC) ); /* ²«¿§*/ case 7: return( printf("\%c[5;7;37m", ESC) ); /* Çò */ case 127:return( printf("\%c[5;7;16m", ESC) ); /* ¥·¡¼¥¯¥ì¥Ã¥È 8 */ default : return( printf("\%c[m", ESC) ); /* µ¬Äê¤Î°À­¤ËÌ᤹*/ } } int xy(int x, int y) { return( printf("\%c[%d;%dH", ESC, y, x) ); } int c_printf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); color(c); ret = vprintf(format, argptr); va_end(argptr); color(-1); return( ret ); } int rc_printf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); r_color(c); ret = vprintf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int bc_printf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); b_color(c); ret = vprintf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int brc_printf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); br_color(c); ret = vprintf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int x_printf(int x, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); ret = vprintf(format, argptr); va_end(argptr); return( ret ); } int xc_printf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); color(c); ret = vprintf(format, argptr); va_end(argptr); color(-1); return( ret ); } int xrc_printf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); r_color(c); ret = vprintf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int xbc_printf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); b_color(c); ret = vprintf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int xbrc_printf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); br_color(c); ret = vprintf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int y_printf(int y, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); ret = vprintf(format, argptr); va_end(argptr); return( ret ); } int yc_printf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); color(c); ret = vprintf(format, argptr); va_end(argptr); color(-1); return( ret ); } int yrc_printf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); r_color(c); ret = vprintf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int ybc_printf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); b_color(c); ret = vprintf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int ybrc_printf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); br_color(c); ret = vprintf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int xy_printf(int x, int y, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); ret = vprintf(format, argptr); va_end(argptr); return( ret ); } int xyc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); color(c); ret = vprintf(format, argptr); va_end(argptr); color(-1); return( ret ); } int xyrc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); r_color(c); ret = vprintf(format, argptr); va_end(argptr); color(-1); return( ret ); } int xybc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); b_color(c); ret = vprintf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int xybrc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); br_color(c); ret = vprintf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } /* vscanf ´Ø¿ô¤Ï UNIX OS ¾å¤Ë¤Ê¤¤¡ª */ #ifndef UNIX int c_scanf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); color(c); ret = vscanf(format, argptr); va_end(argptr); color(-1); return( ret ); } int rc_scanf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); r_color(c); ret = vscanf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int bc_scanf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); b_color(c); ret = vscanf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int brc_scanf(int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); br_color(c); ret = vscanf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int x_scanf(int x, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); ret = vscanf(format, argptr); va_end(argptr); return( ret ); } int xc_scanf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); color(c); ret = vscanf(format, argptr); va_end(argptr); return( ret ); } int xrc_scanf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); r_color(c); ret = vscanf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int xbc_scanf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); b_color(c); ret = vscanf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int xbrc_scanf(int x, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); left(SCR_END); right(x); br_color(c); ret = vscanf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int y_scanf(int y, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); ret = vscanf(format, argptr); va_end(argptr); return( ret ); } int yc_scanf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); color(c); ret = vscanf(format, argptr); va_end(argptr); color(-1); return( ret ); } int yrc_scanf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); r_color(c); ret = vscanf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int ybc_scanf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); b_color(c); ret = vscanf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int ybrc_scanf(int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); up_no_scroll(SCR_END); down(y); br_color(c); ret = vscanf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } int xy_scanf(int x, int y, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); ret = vscanf(format, argptr); va_end(argptr); return( ret ); } int xyc_scanf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); color(c); ret = vscanf(format, argptr); va_end(argptr); color(-1); return( ret ); } int xyrc_scanf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); r_color(c); ret = vscanf(format, argptr); va_end(argptr); r_color(-1); return( ret ); } int xybc_scanf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); b_color(c); ret = vscanf(format, argptr); va_end(argptr); b_color(-1); return( ret ); } int xybrc_scanf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); br_color(c); ret = vscanf(format, argptr); va_end(argptr); br_color(-1); return( ret ); } #endif /* ¥«¡¼¥½¥ë°ÌÃÖ¤«¤é±¦Ã¼¤Þ¤Ç¤ò¾Ãµî */ int clr_to_right(void) { return( printf("\%c[0K", ESC) ); } /* ¸½ºß¹Ô¤ÎºÂɸ x ¤«¤é±¦Ã¼¤Þ¤Ç¤ò¾Ãµî */ int x_clr_to_right(int x) { left(SCR_END); right(x); return( clr_to_right() ); } /* ¸½ºß¹Ô¤ÎÁêÂкÂɸ x ¤«¤é±¦Ã¼¤Þ¤Ç¤ò¾Ãµî */ int rel_x_clr_to_right(int x) { rel_x(x); return( clr_to_right() ); } /* ºÂɸ x, y ¤«¤é±¦Ã¼¤Þ¤Ç¤ò¾Ãµî */ int xy_clr_to_right(int x, int y) { xy(x, y); return( clr_to_right() ); } /* ¥«¡¼¥½¥ë°ÌÃÖ¤«¤éº¸Ã¼¤Þ¤Ç¤ò¾Ãµî */ int clr_to_left(void) { return( printf("\%c[1K", ESC) ); } /* ºÂɸ x, y ¤«¤éº¸Ã¼¤Þ¤Ç¤ò¾Ãµî */ int xy_clr_to_left(int x, int y) { xy(x, y); return( clr_to_left() ); } /* ¸½ºß¹Ô¤ÎºÂɸ x ¤«¤éº¸Ã¼¤Þ¤Ç¤ò¾Ãµî */ int x_clr_to_left(int x) { left(SCR_END); right(x); return( clr_to_left() ); } /* ¸½ºß¹Ô¤ÎÁêÂкÂɸ x ¤«¤éº¸Ã¼¤Þ¤Ç¤ò¾Ãµî */ int rel_x_clr_to_left(int x) { rel_x(x); return( clr_to_left() ); } /* ¥«¡¼¥½¥ë°ÌÃ֤ιԤò¾Ãµî */ int clr_line(void) { return( printf("\%c[2K", ESC) ); } /* ºÂɸ y ¤Î¹Ô¤ò¾Ãµî */ int y_clr_line(int y) { int ret; xy(1, y); ret = clr_line(); xy(1, y); return( ret ); } /* ºÂɸ x, y ¤Î¹Ô¤ò¾Ãµî */ int xy_clr_line(int x, int y) { int ret; xy(x, y); ret = clr_line(); xy(x, y); return( ret ); } /* ¥Æ¥­¥¹¥È²èÌ̾õî(ESC * ¤Ï 98 ÆÃÍ­¤é¤·¤¤¤Î¤Ç¡¢¤³¤Á¤é¤Ëľ¤·¤¿) */ int cls(void) { return( printf("\%c[2J", ESC) ); } /* ys ¹Ô¤«¤é ye ¹Ô¤Þ¤Ç¤ò¾Ãµî */ void clr_w_y(int ys, int ye) { int i; for(i = ys; i <= ye; i++){ xy(1, i); clr_line(); } } void clr_w_x(int xs, int xe) { char spc[SCR_END]; int i; for(i = 0; i <= (xe - xs); i++){ spc[i] = ' '; } spc[i] = '\0'; for(i = 1; i < SCR_END; i++){ xy_puts(xs, i, spc); } /* window(xs, 1, xe, 25); clrscr(); window(1, 1, 80, 25); */ } void clr_w_xy(int left, int top, int right, int bottom) { char spc[SCR_END]; int i; for(i = 0; i <= (right - left); i++){ spc[i] = ' '; } spc[i] = '\0'; for(i = top; i <= bottom; i++){ xy_puts(left, i, spc); } /* window(left, top, right, bottom); clrscr(); window(1, 1, 80, 25); */ } /* ¥¨¥¹¥±¡¼¥×ʸ»úÎó¤ò´Þ¤ó¤À¥Õ¥¡¥¤¥ë¤òºî¤ë¤È¤­¤Ê¤É¤Ë¤É¤¦¤¾ */ /* fp = stdout -> ɸ½à½ÐÎÏ */ /* fp = strprn -> ¥×¥ê¥ó¥¿ */ /* fp = (nul ¥Õ¥¡¥¤¥ë¤Ø¤Î¥Ý¥¤¥ó¥¿) -> Èóɽ¼¨¥â¡¼¥É */ /* ¤È¤¤¤¦¶ñ¹ç¤Ë¡¢½ÐÎÏÀè¤ò´Êñ¤ËÀÚ¤êÂؤ¨¤¿¤¤¤È¤­¤Ê¤É¤Ë¤â¤É¤¦¤¾ */ int c_fprintf(int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); color(-1); return( ret ); } int rc_fprintf(int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); r_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); r_color(-1); return( ret ); } int bc_fprintf(int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); b_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); b_color(-1); return( ret ); } int brc_fprintf(int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); br_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); br_color(-1); return( ret ); } int xy_fprintf(int x, int y, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); ret = vfprintf(fp, format, argptr); va_end(argptr); return( ret ); } int xyc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); color(-1); return( ret ); } int xyrc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); r_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); r_color(-1); return( ret ); } int xybc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); b_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); b_color(-1); return( ret ); } int xybrc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); br_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); br_color(-1); return( ret ); } int c_sprintf(int c, char *buf, char *format, ...) { int ret; va_list argptr; char tmpbuf[128]; va_start(argptr, format); color_s(c, tmpbuf); ret = vsprintf(buf, format, argptr); va_end(argptr); strcat(buf, tmpbuf); color_s(-1, tmpbuf); strcat(buf, tmpbuf); return( ret ); } /* ¥«¡¼¥½¥ë¤Î¤¢¤ë¹Ô¤«¤é²¼¤ò l ¹Ôºï½ü¤·¡¢°Ê¹ß¤Î¹Ô¤ò¾å¤ËµÍ¤á¤ë¡£ ¥«¡¼¥½¥ë°ÌÃ֤ϵͤá¤é¤ì¤¿¹Ô¤Îº¸Ã¼¤Ë¤Ê¤ë¡£ ºÇ½ª¹Ô¤òĶ¤¨¤Æ¤Îºï½ü¤Ï¹Ô¤ï¤Ê¤¤¡£ l = 0 ¤Ï l = 1 ¤ÈƱÍͤ˽èÍý¤µ¤ì¤ë¡£ */ int del_line(int l) { return( printf("\%c[%dM", ESC, l) ); } int xy_del_line(int x, int y, int l) { xy(x, y); return( del_line(l) ); } /* ¥«¡¼¥½¥ë¤Î¹Ô°Ê¹ß¤ò l ¹Ô²¼¤Ë°ÜÆ°¤·¡¢¶õÇò¤Î l ¹Ô¤òÁÞÆþ¤¹¤ë¡£ ¥«¡¼¥½¥ë¤ÏÀèƬ¤ÎÁÞÆþ¹Ô¤Îº¸Ã¼¤Ë°ÜÆ°¤¹¤ë¡£ ÁÞÆþ¹Ô¤¬ºÇ½ª¹Ô¤òĶ¤¨¤¿¤ê¡¢°ÜÆ°¤¹¤ë¹Ô¤¬ºÇ½ª¹Ô¤òĶ¤¨¤¿¾ì¹ç¤Ï¡¢ ¤½¤ÎĶ¤¨¤¿¹Ô¤Ï¼º¤ï¤ì¤ë¡£l = 0 -> l = 1¡£ */ int ins_line(int l) { return( printf("\%c[%dL", ESC, l) ); } int xy_ins_line(int x, int y, int l) { xy(x, y); return( ins_line(l) ); } /* ¥«¡¼¥½¥ë¤ò y ¹Ô¾å¤Ë°ÜÆ°¤¹¤ë¡£ ºÇ¾å¹Ô¤è¤ê¾å¤ò»ØÄꤷ¤Æ¤â¡¢¥¹¥¯¥í¡¼¥ë¤·¤Ê¤¤¡£ y = 0 -> y = 1 */ int up_no_scroll(int y) { return( printf("\%c[%dA", ESC, y) ); } /* ¥«¡¼¥½¥ë¤ò y ¹Ô²¼¤Ë°ÜÆ°¤¹¤ë¡£ ºÇ²¼¹Ô¤è¤ê²¼¤ò»ØÄꤷ¤Æ¤â¡¢¥¹¥¯¥í¡¼¥ë¤·¤Ê¤¤¡£ y = 0 -> y = 1 */ int down_no_scroll(int y) { return( printf("\%c[%dB", ESC, y) ); } /* x ·å±¦¤Ø°ÜÆ°¤¹¤ë¡£±¦Ã¼¤Ç¤È¤Þ¤ë¡£x = 0 -> x = 1 */ int right(int x) { return( printf("\%c[%dC", ESC, x) ); } /* x ·åº¸¤Ø°ÜÆ°¤¹¤ë¡£º¸Ã¼¤Ç¤È¤Þ¤ë¡£x = 0 -> x = 1 */ int left(int x) { return( printf("\%c[%dD", ESC, x) ); } /* ±¦²¼¤Þ¤Ç¤ò¾Ãµî¡£¥«¡¼¥½¥ë°ÌÃ֤Ϥ½¤Î¤Þ¤Þ¡£ */ int clr_to_right_bottom(void) { return( printf("\%c[0J", ESC) ); } int xy_clr_to_right_bottom(int x, int y) { xy(x, y); return( clr_to_right_bottom() ); } /* ¥«¡¼¥½¥ë°ÌÃÖ¤«¤éº¸¾å¤Þ¤Ç¤ò¾Ãµî¡£¥«¡¼¥½¥ë°ÌÃ֤Ϥ½¤Î¤Þ¤Þ¡£ */ int clr_to_left_top(void) { return( printf("\%c[1J", ESC) ); } /* ¥«¡¼¥½¥ë¤ò 1 ¹Ô²¼¤Ë°ÜÆ°¡£ºÇ½ª¹Ô¤Ë¤¢¤ë¤È¤­¤Ï 1 ¹Ô¥¹¥¯¥í¡¼¥ë¥¢¥Ã¥×¤¹¤ë¡£ ¤³¤ì¤òÍøÍѤ·¤ÆµÕ¥¹¥¯¥í¡¼¥ë¤¬¤Ç¤­¤ë¡£*/ int one_down(void) { return( printf("\%cD", ESC) ); } /* ¥«¡¼¥½¥ë¤ò 1 ¹Ô²¼¤Îº¸Ã¼¤Ë°ÜÆ°¤¹¤ë¡£¥«¡¼¥½¥ë¤¬ºÇ²¼¹Ô¤Ë¤¢¤ë¤È¤­¤Ï¡¢ ¥¹¥¯¥í¡¼¥ë¥¢¥Ã¥×¤¹¤ë¡£ */ int one_down_left_end(void) { return( printf("\%cE", ESC) ); } /* ¥«¡¼¥½¥ë¤ò 1 ¹Ô¾å¤Ë°ÜÆ°¤¹¤ë¡£ ¥«¡¼¥½¥ë¤¬ÀèƬ¹Ô¤Ë¤¢¤ë¤È¤­¤Ï 1 ¹Ô¥¹¥¯¥í¡¼¥ë¥À¥¦¥ó¤¹¤ë¡£ */ int one_up(void) { return( printf("\%cM", ESC) ); } int up(int y) { int i, ret = 0; for(i = 0; i < y; i++){ one_up(); ret++; } return ret; } int down(int y) { int i, ret = 0; for(i = 0; i < y; i++){ one_down(); ret++; } return ret; } int rel_xy(int x, int y) { int i, ret = 0; for(i = 0; i < y; i++){ one_down(); ret++; } for(i = 0; i > y; i--){ one_up(); ret++; } if(x > 0){ right(x); ret++; } else{ left(0 - x); ret++; } return ret; } int rel_x(int x) { int ret = 0; if(x > 0){ right(x); ret++; } else{ left(0 - x); ret++; } return ret; } int rel_xy_printf(int x, int y, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); ret = vprintf(format, argptr); va_end(argptr); return( ret ); } int rel_xyc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); color(c); ret = vprintf(format, argptr); va_end(argptr); color( -1 ); return( ret ); } int rel_xyrc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); r_color(c); ret = vprintf(format, argptr); va_end(argptr); r_color( -1 ); return( ret ); } int rel_xybc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); b_color(c); ret = vprintf(format, argptr); va_end(argptr); b_color( -1 ); return( ret ); } int rel_xybrc_printf(int x, int y, int c, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); br_color(c); ret = vprintf(format, argptr); va_end(argptr); br_color( -1 ); return( ret ); } int rel_xy_fprintf(int x, int y, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); ret = vfprintf(fp, format, argptr); va_end(argptr); return( ret ); } int rel_xyc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); color( -1 ); return( ret ); } int rel_xyrc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); rel_xy(x, y); r_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); r_color(-1); return( ret ); } int rel_xybc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); b_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); b_color(-1); return( ret ); } int rel_xybrc_fprintf(int x, int y, int c, FILE *fp, char *format, ...) { int ret; va_list argptr; va_start(argptr, format); xy(x, y); br_color(c); ret = vfprintf(fp, format, argptr); va_end(argptr); br_color(-1); return( ret ); } /* ʸ»úÎ󡢿ôÃͤʤɤò¥»¥ó¥¿¥ê¥ó¥°¤·¤Æɽ¼¨¤¹¤ë¡£ »ÈÍѤËÅö¤¿¤Ã¤Æ¤Ï¡¢CENTERIN.DOC ¤ò»²¾È¤Î¤³¤È¡£ */ int centering_cprintf(int dc, int c, char *format, ...) { char buf[512]; int x, y; int keta; int ret; va_list argptr; va_start(argptr, format); vsprintf(buf, format, argptr); color(dc); right(32767); cursor_report(&keta, &y); x = (keta - strlen(buf)) / 2; left(32767); color(c); ret = rel_xy_printf(x, 0, buf); va_end(argptr); color(-1); return ret; } /* ʸ»úÎ󡢿ôÃͤʤɤò¥»¥ó¥¿¥ê¥ó¥°¤·¤Æɽ¼¨¤¹¤ë¡£ »ÈÍѤËÅö¤¿¤Ã¤Æ¤Ï¡¢CENTERIN.DOC ¤ò»²¾È¤Î¤³¤È¡£ */ int centering_cfprintf(int dc, int c, FILE *fp, char *format, ...) { char buf[512]; int x, y; int keta; int ret; va_list argptr; va_start(argptr, format); vsprintf(buf, format, argptr); color(dc); right(32767); cursor_report(&keta, &y); x = (keta - strlen(buf)) / 2; left(32767); color(c); ret = rel_xy_fprintf(x, 0, fp, buf); va_end(argptr); color(-1); return ret; } /* ¥«¡¼¥½¥ë°ÌÃÖ¤ò¡¢Ä¾¸å¤Î¥³¥ó¥½¡¼¥ëÆþÎϸƤӽФ·¤ÇÃΤ餻¤ë¡£ ¤½¤Î·Á¼°¤Ï ESC [pl;pcR ¤Ç¤¢¤ë¡£pl = line, pc = colomn¡£ */ int cursor_report(int *x, int *y) { char buf[10]; printf("%c[6n", ESC); gets(buf); sscanf(buf, "%d;%dR", y, x); return 0; } int c_puts(int c, char *str) { color(c); return puts(str); } int bc_puts(int c, char *str) { b_color(c); return puts(str); } int rc_puts(int c, char *str) { r_color(c); return puts(str); } int brc_puts(int c, char *str) { br_color(c); return puts(str); } int x_puts(int x, char *str) { left(SCR_END); right(x); return puts(str); } int y_puts(int y, char *str) { up_no_scroll(SCR_END); down(y); return puts(str); } int xc_puts(int x, int c, char *str) { left(SCR_END); right(x); color(c); return puts(str); } int yc_puts(int y, int c, char *str) { up_no_scroll(SCR_END); down(y); color(c); return puts(str); } int xy_puts(int x, int y, char *str) { xy(x, y); return puts(str); }