#define EQ(A,B) !strcmp((A),(B))
#define MEMSIZE 0x10000
-//#define DODUMP 1
+#define DODUMP 1
typedef struct
{
/*Public symbols defined in this module*/
recsize=2;
for(k=0; k<numsym; k++)/*Compute the record length*/
- if ( (symbol[k].FileNameNumber==j) &&
+ if ( (symbol[k].FileNameNumber==j) && (symbol[k].Address!=-1) &&
(symbol[k].Procedure==-1) &&
(symbol[k].Static==-1) ) recsize+=((strlen(symbol[k].name)+1)+5);
OutputByte(0x01); /*DEF TYPE: Public symbols*/
for(k=0; k<numsym; k++)
{
- if ( (symbol[k].FileNameNumber==j) &&
+ if ( (symbol[k].FileNameNumber==j) && (symbol[k].Address!=-1) &&
(symbol[k].Procedure==-1) &&
(symbol[k].Static==-1) )
{
/*Local symbols defined in this module*/
recsize=2;
for(k=0; k<numsym; k++)/*Compute the record length*/
- if ( (symbol[k].FileNameNumber==j) &&
+ if ( (symbol[k].FileNameNumber==j) && (symbol[k].Address!=-1) &&
(symbol[k].Procedure==-1) &&
(symbol[k].Static==j) ) recsize+=((strlen(symbol[k].name)+1)+5);
OutputByte(0x00); /*DEF TYPE: Local symbols*/
for(k=0; k<numsym; k++)
{
- if ( (symbol[k].FileNameNumber==j) &&
+ if ( (symbol[k].FileNameNumber==j) && (symbol[k].Address!=-1) &&
(symbol[k].Procedure==-1) &&
(symbol[k].Static==j) )
{
}
}
+ /*Make sure each procedure has an end*/
+ for(k=0; k<(numproc-1); k++)
+ {
+ if (procedure[k].EndAdd==-1) procedure[k].EndAdd=procedure[k+1].BeginAdd-1;
+ }
/*Asign each line number to a procedure*/
for(j=0; j<numlinenum; j++)
{