if (dflag){
//dfp = afile("temp", "cdb", 1);
+ SaveLinkedFilePath(linkp->f_idp); //Must be the first one...
dfp = afile(linkp->f_idp,"cdb",1); //JCF: Nov 30, 2002
if (dfp == NULL)
lkexit(1);
sdp.s_area = NULL;
sdp.s_areax = NULL;
sdp.s_addr = 0;
- // jwk lastExtendedAddress = -1;
break;
case 'M':
iramsav();
return(0);
+ case 'v':
+ case 'V':
+ xramsav();
+ return(0);
+
+ case 'w':
+ case 'W':
+ codesav();
+ return(0);
+
case 'z':
case 'Z':
dflag = 1;
}
if (ap == NULL) {
fprintf(stderr,
- "No definition of area %s\n", id);
+ "ASlink-Warning-No definition of area %s\n", id);
lkerr++;
} else {
ap->a_addr = v;
ap->a_type = 1; /* JLH: value set */
}
} else {
- fprintf(stderr, "No '=' in base expression");
+ fprintf(stderr, "ASlink-Warning-No '=' in base expression");
lkerr++;
}
bsp = bsp->b_base;
iram_size = 128; /* Default is 128 (0x80) bytes */
}
+/*Similar to iramsav but for xram memory*/
+VOID
+xramsav()
+{
+ unget(getnb());
+ if (ip && *ip)
+ xram_size = expr(0); /* evaluate size expression */
+ else
+ xram_size = rflag?0x1000000:0x10000;
+}
+
+/*Similar to iramsav but for code memory*/
+VOID
+codesav()
+{
+ unget(getnb());
+ if (ip && *ip)
+ code_size = expr(0); /* evaluate size expression */
+ else
+ code_size = rflag?0x1000000:0x10000;
+}
+
+
/*)Function VOID iramcheck()
*
* The function iramcheck() is used at the end of linking to check that
" -u Update listing file(s) with link data as file(s)[.RST]",
"Miscellaneous:\n"
" -a [iram-size] Check for internal RAM overflow",
+ " -v [xram-size] Check for external RAM overflow",
+ " -w [code-size] Check for code overflow",
"End:",
" -e or null line terminates input",
0