/* 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