#include <stdio.h>
#include <stdlib.h>
#include <dir.h>
#include <fnt.h>
#include "value.h"
#include "mem.h"
#include "print.h"

#define	ON		1
#define	OFF		0

#define NOERR	0
#define ERR		1

/* KS_X?_Y?   ?=( Normal, Double, Half ) */
#define KS_XN_YN	0x11
#define KS_XD_YN	0x21
#define KS_XN_YD	0x12
#define KS_XD_YD	0x22
#define KS_XH_YN	0x01
#define KS_XN_YH	0x10
#define KS_XH_YH	0x00
#define KS_XD_YH	0x20
#define KS_XH_YD	0x02

#define BL_UPPER	0
#define BL_BOTTOM	1
#define BL_CENTER	2

/* subobj.c */
void	incNest( int );
int		setInit( char *cnfname );
void	convert24to48( char *gj24, char *gj48 );
void	num2str( int *st, int number, int length );
int		getOneSegment( const char *, char * );
int		xfgets( char *, FILE * );
int		addstrings( const char *, char * );
int		cmpstrings( const char *, const char * );
int		printStrings( int, char * );
int		getCommand( int * );
int		printReady( int );
int		end_();

/* command.c */
void	setAsciiMode();
void	setKanjiMode();
int		flushBuffer();
void	printPage();
void	setKanjiSize( int c );/* c : KS_X?_Y? */
void	setLeftmargin( int lm );
void	lineInit();
void	setFontType( int type );/* type : (0-4) */
void	setPrintDirection( int dir );
void	setNetStart();
void	setNetEnd();
void	printNet();
void	setHorizonPos( int x );
void	setLineConnect( int p );/* p : ON,OFF */
void	setBaseLine( int p );/* p : BL_? ?=( UPPER, BOTTOM, CENTER ) */
void	setUnderline( int p );/* p : ON,OFF */
void	setKanjiPitch( int p );
void	setReturnPitch( int p );

char	*hss2,*scsjis,*scsank,
		*gothic,*mintyo,*kuon,*kuoff,*awn,*awd,*auon,*auoff,*linon,*linoff,
		*proon,*prooff,*pagep,*lmrg,*settab,
		*hbtab,*htabcl,*timage,*netst,*mov_h,*vws,*hws,*defgj,
		*ksize,*init,*sbase,*knjp,*retp;

char	*errmes[];
char	pool[];
char	netdata[6][48];

FILE	*mint_fp,*goth_fp,*mouh_fp,*maru_fp,*kyou_fp;/* FONT用FILE構造体 */
int		lineflg;	/* 改行フラグ */
int		x_pos,y_pos;/* 現在の座標 */
int		endflg;		/* 終了フラグ */
int		pageflg;	/* 改ページフラグ */
int		page;		/* 印字中のページ */
int		pitch;		/* 基本文字送りピッチ */
int		cr_p;		/* 改行ピッチ */
int		tabsize;	/* タブサイズ */
int		jiscode;	/* JISコード */
int		usrjis;		/* 外字用JISコード */
int		mode;		/* プリンタの印字モード */
int		net_flg;	/* 網掛けフラグ */
int		net_sort;	/* 網掛けの種類 */
int		net_sp;		/* 網掛けの開始位置 */
int		net_length;	/* 網掛けの長さ */
int		leftmargin;	/* レフトマージン */
int		jisflg;		/* JISコード指定コマンドフラグ */
int		pitchmask;	/* 文字送りピッチの倍率 */
int		colrev_flg;	/* 反転表示フラグ */
int		lpp;		/* 1ページの行数 */
int		lnum;		/* 現在の行数 */
int		mint_flg;	/* 明朝体フォントフラグ */
int		goth_flg;	/* ゴシック体フォントフラグ */
int		mouh_flg;	/* 毛筆体フォントフラグ */
int		maru_flg;	/* 丸文字フォントフラグ */
int		kyou_flg;	/* 教科書体フォントフラグ */
int		writepage;	/* ページ印字フラグ */
char	*bufp;		/* 出力データポインタ */
char	outbuf[1024*16];/*出力データスタック領域*/
char	*file,*file_;/* 入力データポインタ */
int		nest[16];	/* ネスト情報1 */
int		np;			/* ネストレベル */
int		info[16][2];/* ネスト情報2 */
int		control;	/* 制御行フラグ */
int		betaflg;	/* ベタ出力フラグ */
