/*
	rom emurator
		T.Tsuda. , DSA	October 16,1996
*/

#ifdef	MAIN
#define	EXTERN
#else
#define	EXTERN	extern
#endif


/*	My character	*/
#define	MYNAME	"romem"
#define	MAJOR	"1"
#define	MINOR	"0"
#define	TITLE	"EP-ROM 1M(128K byte) , 4M(512K byte) type emurator for PC/AT"
#define	AUTHOR	"T.Tsuda & A.O. ,DSA"
#define	DATE	"June 24,1997"

#define	ENVNAME	"ROMEMOPT"

#ifdef	MAIN
char	*usage[] = {
	"Usage: prompt>set ROMEMOPT=command [command] [...]",
	"       prompt>romem command [command] [...]",
	"Command  Arguments       Description",
	"------------------------------------------------------------------------------",
	"   l     {1|2|3}         Set lpt port number. default is 1",
	"   f     {m|i|b}         File format. m:motorora-s,i:intel-hex,b:binary",
	"                          default is motorora-s.",
	"   e                     Set down load address Even.",
	"   o                     Set down load address Odd.",
	"   b                     Set down load address Both even and odd.",
	"   r     file_name       Read from file `file_name'. file name `-' is stdin",
	"   w     file_name       Write to file `file_name'.  file name `-' is stdout",
	"   c     src dist size   Copy memory block.",
	"   m     start size data Fill memory block.",
	"   a     end_address     Emuration RAM end address. default is 1ffff (128Kbyte)",
	"   d                     Down load data to emuration RAM. and",
	"                          emuration RAM direction to AT port. (reset terget)",
	"   p     {a|t}           Emuration RAM direction.",
	"                          a:direction to AT port. (reset terget)",
	"                          t:direction to terget port. (run terget)",
	"   h                     This help",
	"   ?                     This help",
	"   -                     Read command from stdin.",
	NULL
};
#endif


	/* file format */
#define	MOTORORA	0
#define	INTEL		1
#define	BINARY		2

	/* address step */
#define	ADDRBOTH	0
#define	ADDREVEN	1
#define	ADDRODD	2

/*	externals	*/
#ifdef	MAIN
int	dbcsmode;	/* dbcs mode (japanise mode) */
#endif
int	usestdin = 0;	/* stdin used flag */
int	usestdout = 0;	/* stdout used flag */
int	printhelp = 0x01;	/* print help flag */

int	format = MOTORORA;			/* file format */
unsigned long	ramendaddr = 0x1ffff;	/* emuration ram end address */
int	addrstep = ADDRBOTH;		/* address step */


#ifdef	MAIN
#define	WORDSIZE	1024
#endif

/*	function of prottypes	*/

void	main(int argc,char *argv[]);
int	execute(char *argument);
char	*getword(char *word,char **string);
int	readfile(char *name);
int	writefile(char *name);
void	download(void);
void	errmes(int err,char *str);


#undef	EXTERN
