Fix html and pdf exports
[fw/sdcc] / as / mcs51 / lkmem.c
index 661f611167ea5a74fb994b272c606923d1f53b02..6a2d8770c5563cea8cd604be87a9583eb3329ed4 100644 (file)
 #include <string.h>
 #include <stdlib.h>
 #include "aslink.h"
+#include "strcmpi.h"
 
 int summary(struct area * areap) 
 {
-       #define EQ(A,B) !strcmpi((A),(B))
+       #define EQ(A,B) !as_strcmpi((A),(B))
        #define MIN_STACK 16
        #define REPORT_ERROR(A, H) \
        {\
@@ -313,7 +314,7 @@ int summary(struct area * areap)
        else
                sprintf(end,  "0x%04lx", XRam.Size+XRam.Start-1);
        sprintf(size, "%5lu", XRam.Size);
-       sprintf(max, "%5lu", XRam.Max);
+       sprintf(max, "%5lu", xram_size<0?XRam.Max:xram_size);
        fprintf(of, format, XRam.Name, start, end, size, max);
 
        /*Report Rom/Flash totals:*/
@@ -323,7 +324,7 @@ int summary(struct area * areap)
        else
                sprintf(end,  "0x%04lx", Rom.Size+Rom.Start-1);
        sprintf(size, "%5lu", Rom.Size);
-       sprintf(max, "%5lu", Rom.Max);
+       sprintf(max, "%5lu", code_size<0?Rom.Max:code_size);
        fprintf(of, format, Rom.Name, start, end, size, max);
 
        /*Report any excess:*/
@@ -332,12 +333,14 @@ int summary(struct area * areap)
                sprintf(buff, "Insufficient INDIRECT RAM memory.\n");
                REPORT_ERROR(buff, 1);
        }
-       if((XRam.Start+XRam.Size)>XRam.Max)
+       if( ((XRam.Start+XRam.Size)>XRam.Max) ||
+               (((int)XRam.Size>xram_size)&&(xram_size>=0)) )
        {
                sprintf(buff, "Insufficient EXTERNAL RAM memory.\n");
                REPORT_ERROR(buff, 1);
        }
-       if((Rom.Start+Rom.Size)>Rom.Max)
+       if( ((Rom.Start+Rom.Size)>Rom.Max) ||
+               (((int)Rom.Size>code_size)&&(code_size>=0)) )
        {
                sprintf(buff, "Insufficient ROM/EPROM/FLASH memory.\n");
                REPORT_ERROR(buff, 1);