added a command line option -q for quiet mode (suppresses messages except errors) (lmod)

This commit is contained in:
Anthony Bentley
2009-11-08 20:28:24 -07:00
parent b7ca2e2b87
commit db0667e54e

View File

@@ -19,6 +19,7 @@
#define OPTF_VALIDATE 0x04L #define OPTF_VALIDATE 0x04L
#define OPTF_TITLE 0x08L #define OPTF_TITLE 0x08L
#define OPTF_TRUNCATE 0x10L #define OPTF_TRUNCATE 0x10L
#define OPTF_QUIET 0x20L
unsigned long ulOptions; unsigned long ulOptions;
@@ -54,6 +55,7 @@ void PrintUsage(void)
printf("\t-r\t\ttRuncate image to valid size\n\t\t\tTruncates to 32/64/128/256/512kB as appropriate\n"); printf("\t-r\t\ttRuncate image to valid size\n\t\t\tTruncates to 32/64/128/256/512kB as appropriate\n");
printf("\t-t<name>\tChange cartridge title field (16 characters)\n"); printf("\t-t<name>\tChange cartridge title field (16 characters)\n");
printf("\t-v\t\tValidate header\n\t\t\tCorrects - Nintendo Character Area (0x0104)\n\t\t\t\t - ROM type (0x0147)\n\t\t\t\t - ROM size (0x0148)\n\t\t\t\t - Checksums (0x014D-0x014F)\n"); printf("\t-v\t\tValidate header\n\t\t\tCorrects - Nintendo Character Area (0x0104)\n\t\t\t\t - ROM type (0x0147)\n\t\t\t\t - ROM size (0x0148)\n\t\t\t\t - Checksums (0x014D-0x014F)\n");
printf("\t-q\t\tExecute quietly (suppress all text except errors)\n");
exit(0); exit(0);
} }
@@ -153,6 +155,9 @@ int main(int argc, char *argv[])
strncpy(cartname, argv[argn - 1] + 2, 16); strncpy(cartname, argv[argn - 1] + 2, 16);
ulOptions |= OPTF_TITLE; ulOptions |= OPTF_TITLE;
break; break;
case 'q':
ulOptions|=OPTF_QUIET;
break;
} }
} }
@@ -170,7 +175,7 @@ int main(int argc, char *argv[])
* *
*/ */
if (ulOptions & OPTF_DEBUG) { if ((ulOptions & OPTF_DEBUG) && !(ulOptions & OPTF_QUIET)) {
printf("-d (Debug) option enabled...\n"); printf("-d (Debug) option enabled...\n");
} }
@@ -188,7 +193,9 @@ int main(int argc, char *argv[])
while (size > padto) while (size > padto)
padto *= 2; padto *= 2;
printf("Padding to %ldkB:\n", padto / 1024); if(!(ulOptions & OPTF_QUIET)) {
printf("Padding to %ldkB:\n", padto / 1024);
}
/* /*
if( padto<=0x80000L ) if( padto<=0x80000L )
@@ -206,9 +213,14 @@ int main(int argc, char *argv[])
} }
fflush(f); fflush(f);
printf("\tAdded %ld bytes\n", bytesadded); if(!(ulOptions & OPTF_QUIET)) {
} else printf("\tAdded %ld bytes\n", bytesadded);
printf("\tNo padding needed\n"); }
} else {
if(!(ulOptions & OPTF_QUIET)) {
printf("\tNo padding needed\n");
}
}
/* /*
} }
else else
@@ -231,7 +243,9 @@ int main(int argc, char *argv[])
while (size < padto) while (size < padto)
padto /= 2; padto /= 2;
printf("Truncating to %ldkB:\n", padto / 1024); if(!(ulOptions & OPTF_QUIET)) {
printf("Truncating to %ldkB:\n", padto / 1024);
}
mkstemp(tempfile); mkstemp(tempfile);
@@ -256,14 +270,18 @@ int main(int argc, char *argv[])
*/ */
if (ulOptions & OPTF_TITLE) { if (ulOptions & OPTF_TITLE) {
printf("Setting cartridge title:\n"); if(!(ulOptions & OPTF_QUIET)) {
printf("Setting cartridge title:\n");
}
if ((ulOptions & OPTF_DEBUG) == 0) { if ((ulOptions & OPTF_DEBUG) == 0) {
fflush(f); fflush(f);
fseek(f, 0x0134L, SEEK_SET); fseek(f, 0x0134L, SEEK_SET);
fwrite(cartname, 16, 1, f); fwrite(cartname, 16, 1, f);
fflush(f); fflush(f);
} }
printf("\tTitle set to %s\n", cartname); if(!(ulOptions & OPTF_QUIET)) {
printf("\tTitle set to %s\n", cartname);
}
} }
/* /*
@@ -280,7 +298,9 @@ int main(int argc, char *argv[])
0; 0;
int ch; int ch;
printf("Validating header:\n"); if(!(ulOptions & OPTF_VALIDATE)) {
printf("Validating header:\n");
}
fflush(stdout); fflush(stdout);
/* Nintendo Character Area */ /* Nintendo Character Area */
@@ -307,12 +327,14 @@ int main(int argc, char *argv[])
fflush(f); fflush(f);
if (byteschanged) if(!(ulOptions & OPTF_QUIET)) {
printf if (byteschanged)
("\tChanged %ld bytes in the Nintendo Character Area\n", printf
byteschanged); ("\tChanged %ld bytes in the Nintendo Character Area\n",
else byteschanged);
printf("\tNintendo Character Area is OK\n"); else
printf("\tNintendo Character Area is OK\n");
}
/* ROM size */ /* ROM size */
@@ -331,13 +353,17 @@ int main(int argc, char *argv[])
fputc(calcromsize, f); fputc(calcromsize, f);
fflush(f); fflush(f);
} }
printf("\tChanged ROM size byte from 0x%02lX (%ldkB) to 0x%02lX (%ldkB)\n", if(!(ulOptions & OPTF_QUIET)) {
cartromsize, printf("\tChanged ROM size byte from 0x%02lX (%ldkB) to 0x%02lX (%ldkB)\n",
(0x8000L << cartromsize) / 1024, cartromsize,
calcromsize, (0x8000L << cartromsize) / 1024,
(0x8000L << calcromsize) / 1024); calcromsize,
(0x8000L << calcromsize) / 1024);
}
} else } else
printf("\tROM size byte is OK\n"); if(!(ulOptions & OPTF_QUIET)) {
printf("\tROM size byte is OK\n");
}
/* Cartridge type */ /* Cartridge type */
@@ -355,13 +381,19 @@ int main(int argc, char *argv[])
fputc(0x01, f); fputc(0x01, f);
fflush(f); fflush(f);
} }
printf if(!(ulOptions & OPTF_QUIET)) {
("\tCartridge type byte changed to 0x01\n"); printf
("\tCartridge type byte changed to 0x01\n");
}
} else } else
printf("\tCartridge type byte is OK\n"); if(!(ulOptions & OPTF_QUIET)) {
printf("\tCartridge type byte is OK\n");
}
} else { } else {
/* carttype byte can be anything? */ /* carttype byte can be anything? */
printf("\tCartridge type byte is OK\n"); if(!(ulOptions & OPTF_QUIET)) {
printf("\tCartridge type byte is OK\n");
}
} }
/* Checksum */ /* Checksum */
@@ -400,11 +432,16 @@ int main(int argc, char *argv[])
fputc(calcchecksum & 0xFF, f); fputc(calcchecksum & 0xFF, f);
} }
fflush(f); fflush(f);
printf if(!(ulOptions & OPTF_QUIET)) {
("\tChecksum changed from 0x%04lX to 0x%04lX\n", printf
(long)cartchecksum, (long)calcchecksum); ("\tChecksum changed from 0x%04lX to 0x%04lX\n",
} else (long)cartchecksum, (long)calcchecksum);
printf("\tChecksum is OK\n"); }
} else {
if(!(ulOptions & OPTF_QUIET)) {
printf("\tChecksum is OK\n");
}
}
if (cartcompchecksum != calccompchecksum) { if (cartcompchecksum != calccompchecksum) {
fflush(f); fflush(f);
@@ -412,12 +449,17 @@ int main(int argc, char *argv[])
if ((ulOptions & OPTF_DEBUG) == 0) if ((ulOptions & OPTF_DEBUG) == 0)
fputc(calccompchecksum, f); fputc(calccompchecksum, f);
fflush(f); fflush(f);
printf if(!(ulOptions & OPTF_QUIET)) {
("\tCompChecksum changed from 0x%02lX to 0x%02lX\n", printf
(long)cartcompchecksum, ("\tCompChecksum changed from 0x%02lX to 0x%02lX\n",
(long)calccompchecksum); (long)cartcompchecksum,
} else (long)calccompchecksum);
printf("\tCompChecksum is OK\n"); }
} else {
if(!(ulOptions & OPTF_QUIET)) {
printf("\tCompChecksum is OK\n");
}
}
} }