Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-------------------------------------------------------------------------*/
Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-------------------------------------------------------------------------*/
char * UsageTypeName[]={"CODE", "XDATA", "DATA", "IDATA", "BIT", "NUMBER"};
int AddNumber;
unsigned char * ihxBuff=NULL;
char * UsageTypeName[]={"CODE", "XDATA", "DATA", "IDATA", "BIT", "NUMBER"};
int AddNumber;
unsigned char * ihxBuff=NULL;
strcpy(DumpFileName, infn[0].PathName);
strcat(DumpFileName, ".d51");
strcpy(DumpFileName, infn[0].PathName);
strcat(DumpFileName, ".d51");
fprintf(DumpFile, "%s, %s, %s, 0x%04x, %s\n",
symbol[j].name,
infn[symbol[j].FileNameNumber].PathName,
(symbol[j].Procedure>=0)?procedure[symbol[j].Procedure].name:"GLOBAL",
symbol[j].Address,
fprintf(DumpFile, "%s, %s, %s, 0x%04x, %s\n",
symbol[j].name,
infn[symbol[j].FileNameNumber].PathName,
(symbol[j].Procedure>=0)?procedure[symbol[j].Procedure].name:"GLOBAL",
symbol[j].Address,
recsize=procedure[k].EndAdd-procedure[k].BeginAdd+1+4;
OutputWord(recsize);/*Record Length*/
OutputByte(0x00);/*SEG ID*/
recsize=procedure[k].EndAdd-procedure[k].BeginAdd+1+4;
OutputWord(recsize);/*Record Length*/
OutputByte(0x00);/*SEG ID*/
- i=HexBegin;
- k=procedure[0].BeginAdd;
+ if(j==-1)
+ {
+ i=HexBegin;
+ k=procedure[0].BeginAdd;
+ }
+ else if(j==(numproc-1))
+ {
+ i=procedure[j].EndAdd+1;
+ k=HexSize;
+ }
+ else
+ {
+ i=procedure[j].EndAdd+1;
+ k=procedure[j+1].BeginAdd;
+ }
/* Example:
"S:G$actual$0$0({7}ST__00010000:S),E,0,0"
"S:Lmain$j$1$1({2}SI:S),E,0,0"
/* Example:
"S:G$actual$0$0({7}ST__00010000:S),E,0,0"
"S:Lmain$j$1$1({2}SI:S),E,0,0"
+ "S:G$DS1306_Reset_SPI$0$0({2}DF,SV:S),C,0,0"
+ "S:G$main$0$0({2}DF,SV:S),C,0,0"
/*This function name is also a global symbol*/
for(j=0; j<numsym; j++)/*A global symbol may have been already defined*/
{
/*This function name is also a global symbol*/
for(j=0; j<numsym; j++)/*A global symbol may have been already defined*/
{
symbol[numsym].UsageType=0x00;/*A procedure name symbol*/
symbol[numsym].Procedure=-1; /*Global symbol*/
symbol[numsym].Address=-1;/*Collected later*/
symbol[numsym].UsageType=0x00;/*A procedure name symbol*/
symbol[numsym].Procedure=-1; /*Global symbol*/
symbol[numsym].Address=-1;/*Collected later*/
case 'G': /*Example L:G$P0$0$0:80*/
sscanf(buff, "%[^$] %c %[^$] %c %[^:] %c %x",
scope, &c, name, &c, level, &c, &Address);
case 'G': /*Example L:G$P0$0$0:80*/
sscanf(buff, "%[^$] %c %[^$] %c %[^:] %c %x",
scope, &c, name, &c, level, &c, &Address);
- /*If the symbol is the name of a procedure, the address is also
- the begining of such procedure*/
- if(symbol[j].UsageType==0x00)
+ }
+
+ /*If the symbol is the name of a procedure, the address is also
+ the begining of such procedure*/
+ if((symbol[j].UsageType&0x0f)==0x00)
+ {
+ for(k=0; k<numproc; k++)
- if(EQ(symbol[j].name, procedure[k].name))
- {
- if(procedure[k].BeginAdd==-1)
- procedure[k].BeginAdd=Address;
- break;
- }
+ if(procedure[k].BeginAdd==-1)
+ procedure[k].BeginAdd=Address;
+ break;