void	MOS_wait(void)
{
    int     sw,x,y;

    do {
	MOS_rdpos(&sw,&x,&y);
    } while ( sw == 0 );
}
void	IMG_put(FILE *fp,int x1,int y1,int x2,int y2)
{
    int     i,n;
    struct {
	char	*addr;
	short	seg;
	short	x1,y1,x2,y2;
	short	cnt;
	int	col[16];
	char	img[512];
    } para;

    para.addr = para.img;
    para.seg = getds();
    para.x1 = x1;
    para.y1 = y1;
    para.x2 = x2;
    para.y2 = y2;
    para.cnt = 1;
    para.col[0] = 8;
    EGB_getBlockColor(work,(char *)&para);

    n = (x2 - x1 + 8) / 8 * (y2 - y1 + 1);
    for ( i = 0 ; i < n ; i++ ) {
	if ( (i % 8) == 0 )
	   fprintf(fp,"\n");
	fprintf(fp,"0x%02x,",para.img[i]);
    }
    fprintf(fp,"\n");
}
void	ICON_disp(FILE *fp,int x,int y,int drv)
{
    char    tmp[4];

    x--,y--;
    tmp[0] = 'A' + drv;
    tmp[1] = '\0';
    DSP_rbox(x,y,x+33,y+33,8,15,M_PSET);
    if ( drv_tbl[drv] <= IS_CDR )
	DSP_putptn(ICON_ptn[drv_tbl[drv]],x+1,y+1,x+32,y+32,8,15,M_PSET);
    DSP_rbox(x+2,y+2,x+15,y+14,8,15,M_PSET);
    DSP_box(x+4,y+4,x+13,y+12,8,M_PSET);
    wrtstr(tmp,0,x+5,y+5,15,8,8);
    IMG_put(fp,x+2,y+2,x+15,y+14);
}
void	ICON_test(void)
{
    FILE   *fp;
    int    i,n;

    fp = fopen("digit.c","w");
    for ( n = i = 0 ; i < 17 ; i++ ) {
	ICON_disp(fp,(n%20)*32,(n/20)*32,i);
	n++;
    }
    fclose(fp);
}
