[an error occurred while processing this directive]
|
Area : „R„‡„u„}„Date : Sat May 29, 21:14
From : Valery Grazdankin 2:5058/41
To : Nikolai Chernomorov
Subj : bidipro
„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ„Ÿ* „„„p„{„w„u „„€„ƒ„|„p„~„€ „r VG.ARCHIVE
„Pp„y„r„u„„ Nikolai!28 „M„p„z 99 10:50, Nikolai Chernomorov -> Eduard Panchenko:
NC> „B „{„p„‰„u„ƒ„„„r„u „y„t„u„y - „„€„|„u„x„~„€ „q„„|„€ „q„ „ƒ„t„u„|„p„„„Ž „{„€„~„r„up„„„€p HEX -> BIN „y
NC> „€„qp„p„„„~„€.„Dy„}„p„, „ƒ„€„q„up„u„Š„Ž, „y„|„y „„€„p„€„ƒ„y „{„€„s„€. „T „}„u„~„‘ „ƒ„€„qp„p„~ „„€„t DOS,WIN32,OS2,Linux
„y„ƒ„‡„€„t„~„y„{ „r„u„t„Ž „|y„‰„Š„u „q„y„~„pp„~„y„{„€„r?
========================================================================
/*
„Pp„u„€„qp„p„x„€„r„p„~„y„u „†„p„z„|„p „†„€p„}„p„„„p HEX „r „t„r„€„y„‰„~„„z „†„p„z„| „€„qp„p„x„p „p„€„Š„y„r„{„y „P„H„T
„u„ƒ„|„y „r„„‡„€„t„~„€„z „†„p„z„| „~„u „ƒy„‹„u„ƒ„„„ry„u„„ -- „€„~ „ƒ„€„x„t„p„u„„„ƒ„‘,
„u„ƒ„|„y „ƒy„‹„u„ƒ„„„ry„u„„ - „€„~ „{„€pp„u„{„„„ypy„u„„„ƒ„‘ „„€ „ƒ„€„€„„„r„u„„„ƒ„„„ry„„‹„y„} „p„tp„u„ƒ„p„} „r
„ƒ„€„€„„„r„u„„„ƒ„„„r„y„y
„ƒ „ƒ„€„t„up„w„y„}„„} „r„‡„€„t„~„€„s„€ „†„p„z„|„p(c) V.Grazdankin, 1999
*/#ifndef OS
# define OS "DOS"
#endif#include
#include
#include
#include
#define EXIT_FAIL 255char
IName[256], /* „I„}„‘ „r„‡„€„t„~„€„s„€ „†„p„z„|„p */
OName[256]; /* „I„}„‘ „r„„‡„€„t„~„€„s„€ „†„p„z„|„p */
long Addr=0;/*
* „Q„p„x„q„€p „pp„sy„}„u„~„„„€„r „{„€„}„p„~„t„~„€„z „ƒ„„p„€„{„y
*/
void ParseArgs(int argc, char * argv[]){
int i=0;while (i
if (argv[i][0]=='-' || argv[i][0]=='/'){
switch (tolower(argv[i][1])){
case '?':printf("Parameters:\n"
"-? Help screen\n"
"-i input .HEX file\n"
"-o output patched .BIN ROM dump\n"
"-a begin address of ROM (0x???? - hex value)\n"
);
exit(EXIT_FAIL);
break;
case 'i':i++;
if (istrcpy(IName, argv[i]);
}
break;
case 'o':i++;
if (istrcpy(OName, argv[i]);
}
break;
case 'a':i++;
if (isscanf(argv[i],"%i",&Addr);
}
break;
default: printf("Unknown option: '%s'\n", argv[i]);
exit(EXIT_FAIL);
}
}
i++;
}
return;
}
/*
* „C„|„p„r„~„p„‘ „‰„p„ƒ„„„Ž
*/
int main (int argc, char *argv[])
{
long i, i1;
long b;
FILE *fi, *fo;
char s[256];
long cnt,adr,tr;printf("hex2rom v.1.0 for "OS", compiled "__DATE__", "__TIME__"\n"
"dump .Hex file to binary ROM image or \n"
"update ROM image by .Hex dump (if -o file exist)\n"
"(c) V.Grazdankin, Orenburg, Russia, 1999\n");
if (argc<=1) {
printf("use -? for help\n");
} else {
ParseArgs(argc, argv);
fi=fopen(IName,"r");
if (fi!=NULL){
fo=fopen(OName,"r+b");
if (fo==NULL) {fo=fopen(OName,"w+b");}
if (fo!=NULL){
while (!feof(fi)){
fscanf(fi,":%02lX%04lX%02lX%s\n",&cnt,&adr,&tr,s);
if (tr==0){
if (adrprintf("!error offset %04X\n",adr);
} else {
i1=fseek(fo, (adr-Addr), SEEK_SET);
for (i=1;i<=cnt;i++){
b=0;
sscanf(s,"%02lX%s",&b,s);
i1=fwrite(&b, 1, 1, fo);
/* printf("%i ",i1);*/
}
}
}
}
fclose(fo);
printf("OK\n");
} else printf("!error open %s\n",OName);
fclose(fi);
} else printf("!error open %s\n",IName);
}
return 0;
}
========================================================================NC> „H„p „ƒ„y„} „p„€„‹„p„„ƒ„Ž. „X„up„~„€„}„€p„€„r „y„{„€„|„p„z.
„R y„r„p„w„u„~„y„u„}, _„t„€„qp„„z_VAG_.--- GoldED/2 3.0.1
* Origin: White Hole (2:5058/41)
E-mail: info@telesys.ru