X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fmcs51%2Flkrloc.c;h=baa056496fe455baa649ef505d3340fa5d790c1e;hb=a64a385b6e32a2a0c35a215a530ca012f967c37b;hp=fecf9f8f6b143e1277b7358496df72330a3111c3;hpb=0678d63e45c69dfe0da26fc39942936578724432;p=fw%2Fsdcc diff --git a/as/mcs51/lkrloc.c b/as/mcs51/lkrloc.c index fecf9f8f..baa05649 100644 --- a/as/mcs51/lkrloc.c +++ b/as/mcs51/lkrloc.c @@ -51,6 +51,11 @@ */ int lastExtendedAddress=-1; +/* Static variable which holds the index of last processed area. + * Useful only for iHex mode. + */ +static int lastAreaIndex = -1; + /*)Function VOID reloc(c) * * char c process code @@ -528,17 +533,21 @@ relr() * This is another reason why we can't have areas greater * than 64K yet, even in flat24 mode. */ - extendedAddress += ((a[aindex]->a_size) >> 16 & 0xffff); + // extendedAddress += ((a[aindex]->a_size) >> 16 & 0xffff); + // commented out by jr + + if (lastAreaIndex != aindex) { + lastAreaIndex = aindex; + newArea(); + } if (extendedAddress != lastExtendedAddress) { -#if 1 // jwk - if (lastExtendedAddress!=-1) { - printf("output extended linear address record 0x%x 0x%x\n", - extendedAddress, lastExtendedAddress); - } -#endif + if (lastExtendedAddress!=-1) { + printf("output extended linear address record 0x%x 0x%x\n", + extendedAddress, lastExtendedAddress); + } if (rflag) {