#include <fmgraph.h>
#include <stdlib.h>
#include <stdio.h>

#define zen 2
#define han 1

char kinga[]={
/* 以下がfontdata.exeで作成した｢謹賀｣の24ドット毛筆体のデータです。*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x70,0x07,0x8E,0x70,0x07,0xC7,0x7C,0x01,0xF7,0xFE,0x0F,0xFE,0x60,0x7E,0x06,0x70,0x21,0xA3,0xFC,0x0F,0xDF,0xBC,0x00,0x0F,0xF8,0x03,0xCF,0x80,0x0F,0x81,0xF8,0x01,0xDF,0xE0,0x1F,0xC3,0xF0,0x0F,0xCF,0xF0,0x07,0xCF,0x80,0x07,0x03,0xFE,0x07,0x7F,0xFE,0x03,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x01,0xE0,0x00,0x01,0xC8,0x30,0x00,0xEF,0xF8,0x01,0xFE,0x3C,0x1F,0xB7,0xF8,0x1F,0xF7,0xF0,0x03,0x66,0x00,0x07,0xFF,0xC0,0x06,0xF1,0xC0,0x0C,0x5D,0xC0,0x0C,0x79,0xC0,0x18,0x79,0xC0,0x30,0x71,0xC0,0x20,0xEF,0xC0,0x00,0xFC,0xC0,0x00,0x72,0x80,0x00,0x71,0xF0,0x00,0xE0,0xF0,0x03,0xC0,0x78,0x07,0x00,0x38,0x00,0x00,0x18,0x00,0x00,0x00
/* fontdata.exeで作成したデータでは、最後に｢;｣が付いているので除去すること。*/
};

char shinnen[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x00,0x00,0xF0,0xF0,0x00,0xF8,0xF0,0x03,0xF9,0xC0,0x00,0x39,0x00,0x03,0x38,0x0E,0x03,0x34,0x7E,0x01,0x7F,0xC0,0x03,0xE3,0x60,0x1E,0xFF,0x60,0x31,0xF3,0x60,0x07,0xE6,0x60,0x0C,0x7E,0x60,0x06,0x7C,0x60,0x06,0x6C,0x60,0x06,0xEC,0x60,0x02,0xE0,0x60,0x00,0x60,0x60,0x00,0x00,0x60,0x00,0x00,0x60,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0xF0,0x00,0x00,0xE1,0xE0,0x01,0xEF,0xE0,0x03,0xFF,0x80,0x02,0x7C,0x00,0x00,0x0D,0xE0,0x00,0x1F,0xE0,0x01,0xFF,0x80,0x00,0x0C,0x00,0x03,0x8D,0xFC,0x01,0xFF,0xFE,0x03,0xFC,0x06,0x3F,0xCC,0x00,0x18,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x0C,0x00,0x00,0x00,0x00
};

char kin[]={
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x78,0x3C,0x00,0x00,0x3C,0x00,0x7C,0x3E,0x00,0x3F,0xFE,0x00,0x70,0x38,0x00,0x3F,0xFE,0x00,0x70,0x38,0x10,0x00,0x00,0x00,0x70,0x38,0x18,0x00,0x00,0x00,0x70,0x38,0x3C,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x06,0x7F,0xFF,0xFF,0xFE,0x00,0x0F,0x00,0x70,0x38,0x00,0xFF,0xFF,0x80,0x70,0x38,0x00,0xFF,0xFF,0x80,0x70,0x38,0x00,0x00,0x00,0x00,0x70,0x38,0x00,0x00,0x00,0x00,0x60,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x30,0x00,0x00,0x70,0x00,0x1C,0x3F,0xFF,0xFF,0xF8,0x3F,0xFE,0x3F,0xFF,0xFF,0xFC,0x3F,0xFE,0x38,0x07,0x00,0x78,0x00,0x00,0x38,0x07,0x00,0x70,0x00,0x00,0x38,0x07,0x00,0x70,0x00,0x00,0x38,0x07,0x00,0x70,0x00,0x08,0x38,0x07,0x00,0x70,0x00,0x1C,0x38,0x07,0x00,0x70,0x3F,0xFE,0x3F,0xFF,0xFF,0xF0,0x3F,0xFE,0x3F,0xFF,0xFF,0xF0,0x00,0x00,0x38,0x07,0x00,0x60,0x00,0x00,0x30,0x07,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x60,0x00,0x00,0x00,0x07,0x00,0xF0,0x30,0x1C,0x7F,0xFF,0xFF,0xF8,0x3F,0xFE,0x7F,0xFF,0xFF,0xF8,0x3F,0xFF,0x00,0x07,0x00,0x00,0x38,0x1E,0x00,0x07,0x00,0x00,0x38,0x1C,0x00,0x07,0x00,0x00,0x38,0x1C,0x00,0x07,0x00,0xC0,0x38,0x1C,0x00,0x07,0x01,0xE0,0x38,0x1C,0x1F,0xFF,0xFF,0xF0,0x38,0x1C,0x1F,0xFF,0xFF,0xF0,0x38,0x1C,0x00,0x07,0x00,0x00,0x38,0x1C,0x00,0x07,0x00,0x00,0x38,0x1C,0x00,0x07,0x00,0x18,0x3F,0xFC,0x00,0x07,0x00,0x1C,0x3F,0xFC,0x00,0x07,0x00,0x3E,0x38,0x1D,0xFF,0xFF,0xFF,0xFF,0x30,0x01,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

char ga[]={
0x00,0x3C,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x20,0x00,0x40,0x00,0x38,0x08,0x38,0x00,0xF0,0x00,0x38,0x1E,0x3F,0xFF,0xF8,0x7F,0xFF,0xFF,0x3F,0xFF,0xF8,0x7F,0xFF,0xFF,0x38,0x00,0x70,0x00,0x70,0x0E,0x38,0x00,0x70,0x00,0x70,0x0E,0x38,0x00,0x70,0x00,0x70,0x0E,0x38,0x00,0x70,0x00,0xE0,0x0E,0x38,0x00,0x70,0x00,0xE0,0x0E,0x38,0x00,0x70,0x01,0xC0,0x1C,0x38,0x00,0x70,0x01,0xC0,0x1C,0x38,0x00,0x70,0x03,0x80,0x3C,0x3F,0xFF,0xF0,0x03,0x8F,0xF8,0x3F,0xFF,0xF0,0x07,0x03,0xF0,0x38,0x00,0x70,0x0E,0x01,0xC0,0x00,0x00,0x00,0x1C,0x40,0x00,0x00,0x08,0x00,0x38,0x70,0x00,0x00,0x1E,0x00,0xE0,0x7F,0xFF,0xFF,0xFF,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x00,0x00,0x70,0x00,0x00,0x0E,0x00,0x00,0x60,0xC0,0x00,0x0E,0x00,0x00,0x03,0xE0,0x0F,0xF0,0x00,0x00,0x0F,0xF0,0x01,0xFF,0x00,0x00,0x7F,0x80,0x00,0x1F,0xE0,0x03,0xFC,0x00,0x00,0x03,0xF8,0x1F,0x80,0x00,0x00,0x00,0xFC,0xF8,0x00,0x00,0x00,0x00,0x3C
};

char shin[]={
0x00,0x3C,0x00,0x00,0x00,0x30,0x00,0x3E,0x00,0x00,0x00,0xF8,0x00,0x38,0x00,0x00,0x07,0xFC,0x00,0x38,0x00,0x20,0x3F,0xFE,0x00,0x38,0x00,0x39,0xFF,0x00,0x00,0x38,0x0C,0x3F,0xC0,0x00,0x00,0x38,0x1E,0x38,0x00,0x00,0x7F,0xFF,0xFF,0x38,0x00,0x00,0x7F,0xFF,0xFF,0x38,0x00,0x00,0x00,0x00,0xE0,0x38,0x00,0x00,0x0C,0x00,0xF0,0x38,0x00,0x00,0x06,0x00,0xF0,0x38,0x00,0x00,0x07,0x00,0xC0,0x38,0x00,0x00,0x03,0x01,0xC0,0x38,0x00,0x00,0x03,0x81,0x80,0x38,0x00,0x00,0x03,0x81,0x80,0x38,0x00,0x08,0x03,0x83,0x0C,0x38,0x00,0x0C,0x03,0x03,0x1E,0x38,0x00,0x1E,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0xFF,0xFF,0xFF,0x3F,0xFF,0xFF,0x00,0x38,0x00,0x38,0x07,0x00,0x00,0x38,0x00,0x38,0x07,0x00,0x00,0x38,0x00,0x38,0x07,0x00,0x00,0x38,0x00,0x38,0x07,0x00,0x00,0x38,0x18,0x38,0x07,0x00,0x00,0x38,0x3E,0x38,0x07,0x00,0xFF,0xFF,0xFF,0x38,0x07,0x00,0xFF,0xFF,0xFF,0x38,0x07,0x00,0x00,0x38,0x00,0x38,0x07,0x00,0x00,0x78,0x00,0x38,0x07,0x00,0x00,0x7E,0x00,0x30,0x07,0x00,0x00,0xFB,0x80,0x70,0x07,0x00,0x00,0xF9,0xC0,0x70,0x07,0x00,0x01,0xD8,0xE0,0x70,0x07,0x00,0x03,0x98,0xF0,0x60,0x07,0x00,0x03,0x98,0x78,0xE0,0x07,0x00,0x07,0x38,0x38,0xE0,0x07,0x00,0x06,0x38,0x38,0xC0,0x07,0x00,0x0C,0x38,0x19,0xC0,0x07,0x00,0x18,0x38,0x01,0x80,0x07,0x00,0x30,0x38,0x03,0x80,0x07,0x00,0x60,0x38,0x03,0x00,0x07,0x00,0xC0,0x38,0x06,0x00,0x07,0x00,0x80,0x38,0x06,0x00,0x07,0x00,0x00,0x38,0x0C,0x00,0x07,0x00,0x00,0x38,0x18,0x00,0x07,0x00,0x00,0x38,0x30,0x00,0x07,0x00,0x00,0x30,0x00,0x00,0x06,0x00
};

char nen[]={
0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x00,0x00,0x20,0x00,0x38,0x00,0x00,0x00,0x70,0x00,0x78,0x00,0x00,0x00,0xF8,0x00,0x7F,0xFF,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0xE0,0x00,0x70,0x00,0x00,0x01,0xC0,0x00,0x70,0x00,0x00,0x01,0xC0,0x00,0x70,0x00,0x00,0x03,0x80,0x00,0x70,0x00,0x00,0x03,0x00,0x00,0x70,0x00,0x00,0x07,0x00,0x00,0x70,0x00,0x00,0x06,0x00,0x00,0x70,0x00,0x00,0x0C,0x00,0x00,0x70,0x00,0x00,0x0C,0x00,0x00,0x70,0x02,0x00,0x18,0x40,0x00,0x70,0x03,0x00,0x30,0x70,0x00,0x70,0x07,0x80,0x60,0x7F,0xFF,0xFF,0xFF,0xC0,0xC0,0x7F,0xFF,0xFF,0xFF,0xC0,0x80,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x70,0x00,0x70,0x00,0x18,0x00,0x70,0x00,0x70,0x00,0x1C,0x00,0x70,0x00,0x70,0x00,0x3E,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x00
};

void MOJI_write(char *, int, char , char , int , int , int );

void main(void)
{

	GDS_init(NULL);
	GDS_setcompatiblemode(COMPATI_EXTD);

	MOJI_write( kinga	,sizeof(kinga)	,24, zen,13,  80, 50);
	MOJI_write( shinnen	,sizeof(shinnen),24, zen,13, 128, 50);
	MOJI_write( kin		,sizeof(kin)	,48, zen,10, 280, 100);
 	MOJI_write( ga		,sizeof(ga)		,48, zen,10, 280, 148);
 	MOJI_write( shin	,sizeof(shin)	,48, zen,10, 280, 196);
 	MOJI_write( nen		,sizeof(nen)	,48, zen,10, 280, 244);

}

void MOJI_write
(char *buff, int len, char dot, char zenhan, int col, int sx, int sy)
{
	int	i,ndata,nbyte,k;
	
	switch(dot){
		case 16:	if(zenhan==1) nbyte= 16; 
					else nbyte=32;  
					break;
		case 24:	if(zenhan==1) nbyte= 36; 
					else nbyte=72;  
					break;
		case 32:	if(zenhan==1) nbyte= 64; 
					else nbyte=128; 
					break;
		case 48:	if(zenhan==1) nbyte= 144;
					else nbyte=288;
					break;
	}

	ndata= len /nbyte;
	k=dot*zenhan/2;
	for(i=0; i<ndata; i++){
		GDS_colorput( buff+i*nbyte,0,sx,sy,sx+k-1,sy+dot-1,col,DRAW_PSET);
		sx += k;
	}
}
