#include #include #include #include #include #include /* for glibc */ #include "univiflib.h" int main(int argc,char **argv) { int bsn=-1,i,j,debug=0; int base; debug=0; char *filename="-",*endptr; int mode=0; int size=0; // オプションチェック if((argc>1)&&(strncmp(argv[1],"-d",2)==0)) { debug=1; uiflib_debug=1; argc--; argv++; } if(argc>1) { if(strcmp(argv[1],"read")==0) mode=0; else if(strcmp(argv[1],"write")==0) mode=1; else argc=0; } if(argc<3) { fprintf(stderr,"\nuif_ramrw (src/dest filename)\n\n"); } if(argc>3) { bsn=strtol(argv[2],&endptr,16); if(bsn>15) bsn-=6; /* 10進二桁 と 16進一桁の共通か */ if((bsn<0) || (bsn>15)) { fprintf(stderr,"Illegal BSN: %d\n",bsn); return 3; } size=atoi(argv[3]); } if(argc>4) { filename=argv[4]; } fprintf(stderr,"Loading configuration for RAM module access\n"); if(ConfigureUNIVIF(bsn,"uif_ramrw.ttf")) { DumpDeviceList(); return 1; } // ====================================================================== base=GetUNIVIFBaseAddress(bsn); if(mode) { // write fprintf(stderr,"Loading '%s' into RAM module\n",filename); FILE *fp; if(strcmp(filename,"-")==0) fp=stdin; else { fp=fopen(filename,"r"); if(fp==NULL) { fprintf(stderr,"cannot open file '%s'\n",filename); return 4; } } for(i=0;i