int main(int argc, char *argv[])
{
FILE *map, *bin;
- int argp = 1;
- if (argc != 4 && argc != 5) {
- fprintf(stderr, "%s: [PROGLOAD address] <binary> <map> <output>\n", argv[0]);
+ if (argc != 5) {
+ fprintf(stderr, "%s: <PROGLOAD address> <binary> <map> <output>\n", argv[0]);
exit(1);
}
- if (argc == 5 && sscanf(argv[argp++], "%x", &progload) != 1)
+ if (sscanf(argv[1], "%x", &progload) != 1)
{
- fprintf(stderr, "%s: PROGLOAD parse error: %s\n", argv[0], argv[argp - 1]);
+ fprintf(stderr, "%s: PROGLOAD parse error: %s\n", argv[0], argv[1]);
exit(1);
}
- bin = fopen(argv[argp++], "r");
+ bin = fopen(argv[2], "r");
if (bin == NULL) {
- perror(argv[argp - 1]);
+ perror(argv[2]);
exit(1);
}
if (fread(buf, 1, 65536, bin) == 0) {
- fprintf(stderr, "%s: read error on %s\n", argv[0], argv[argp - 1]);
+ fprintf(stderr, "%s: read error on %s\n", argv[0], argv[2]);
exit(1);
}
fclose(bin);
- map = fopen(argv[argp++], "r");
+ map = fopen(argv[3], "r");
if (map == NULL) {
- perror(argv[argp - 1]);
+ perror(argv[3]);
exit(1);
}
ProcessMap(map);
fclose(map);
- bin = fopen(argv[argp], "w");
+ bin = fopen(argv[4], "w");
if (bin == NULL) {
- perror(argv[argp]);
+ perror(argv[4]);
exit(1);
}
memcpy(buf + s__INITIALIZED, buf + s__INITIALIZER, l__INITIALIZER);
/* Write out everything that is data, omit everything that will
be zapped */
if (fwrite(buf + progload, s__DATA - progload, 1, bin) != 1) {
- perror(argv[argp - 1]);
+ perror(argv[4]);
exit(1);
}
fclose(bin);
- printf("%s: %d bytes from %d\n", argv[argp], s__DATA - progload, progload);
+ printf("%s: %d bytes from %d\n", argv[4], s__DATA - progload, progload);
exit(0);
}