X-Git-Url: https://git.gag.com/?a=blobdiff_plain;ds=sidebyside;f=as%2Fmcs51%2Flkrloc.c;h=52654d59f407b6ef69a5ebc444f0c96beda4a14f;hb=24db07e65dc37c465c586f173fcf7d591d5bd7bc;hp=7a9dbcfb9dc05c6c2f3a4edaa8e150aa2377f6fa;hpb=7b297ab72b9a2ddf181139a3cd2fb0027b59cf2b;p=fw%2Fsdcc diff --git a/as/mcs51/lkrloc.c b/as/mcs51/lkrloc.c index 7a9dbcfb..52654d59 100644 --- a/as/mcs51/lkrloc.c +++ b/as/mcs51/lkrloc.c @@ -16,9 +16,6 @@ #include #include -//#if !defined(_MSC_VER) -//#include -//#endif #include "aslink.h" /*)Module lkrloc.c @@ -54,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 @@ -531,7 +533,13 @@ 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) {