From: kmh Date: Thu, 1 Feb 2001 11:29:42 +0000 (+0000) Subject: Added pack-flag -p X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=083a8e29afe97fefad2e79ecc358680ef922c85d;p=fw%2Fsdcc Added pack-flag -p git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@553 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/support/makebin/makebin.c b/support/makebin/makebin.c index f650b3d2..c44c6c07 100644 --- a/support/makebin/makebin.c +++ b/support/makebin/makebin.c @@ -25,20 +25,25 @@ int getbyte(char **p) int main(int argc, char **argv) { int opt; - int size = 32768; + int size = 32768, pack = 0, real_size = 0; BYTE *rom; char line[256]; char *p; - while ((opt = getopt(argc, argv, "s:h"))!=-1) { + while ((opt = getopt(argc, argv, "ps:h"))!=-1) { switch (opt) { case 's': size = atoi(optarg); break; case 'h': printf("makebin: convert a Intel IHX file to binary.\n" - "Usage: %s [-s romsize] [-h]\n", argv[0]); + "Usage: %s [-p] [-s romsize] [-h]\n", argv[0]); return 0; + case 'p': + pack = 1; + break; + default: + return 1; } } rom = malloc(size); @@ -64,7 +69,15 @@ int main(int argc, char **argv) if (addr < size) rom[addr++] = getbyte(&p); } + + if (addr > real_size) + real_size = addr; } - fwrite(rom, 1, size, stdout); + + if (pack) + fwrite(rom, 1, real_size, stdout); + else + fwrite(rom, 1, size, stdout); + return 0; }