#include "exprdefs.h"
#include "print.h"
#include "shift.h"
+#include "segdefs.h"
#include "strbuf.h"
#include "tgttrans.h"
#include "version.h"
LIError (LineInfos,
"Too many segment references in argument to .BANK");
} else {
+ Segment* S;
+
FreeExpr (Expr->Left);
Expr->Op = EXPR_BANK;
Expr->Left = 0;
Expr->V.SecNum = ED.SecRef[0].Ref;
+
+ /* Mark the segment */
+ S = CollAt (&SegmentList, Expr->V.SecNum);
+ S->Flags |= SEG_FLAG_BANKREF;
}
/* Cleanup */
#include "alignment.h"
#include "coll.h"
#include "mmodel.h"
+#include "segdefs.h"
#include "segnames.h"
#include "xmalloc.h"
S->Last = 0;
S->FragCount = 0;
S->Num = CollCount (&SegmentList);
+ S->Flags = SEG_FLAG_NONE;
S->Align = 1;
S->RelocMode = 1;
S->PC = 0;
} else {
/* Finalize the expression */
- F->V.Expr = FinalizeExpr (F->V.Expr, &F->LI);
+ F->V.Expr = FinalizeExpr (F->V.Expr, &F->LI);
/* Simplify the expression */
/* ### F->V.Expr = SimplifyExpr (F->V.Expr, &ED); */
/* */
/* */
/* */
-/* (C) 1998-2011, Ullrich von Bassewitz */
+/* (C) 1998-2012, Ullrich von Bassewitz */
/* Roemerstrasse 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
Fragment* Last; /* Pointer to last fragment */
unsigned long FragCount; /* Number of fragments */
unsigned Num; /* Segment number */
+ unsigned Flags; /* Segment flags */
unsigned long Align; /* Segment alignment */
int RelocMode; /* Relocatable mode if OrgPerSeg */
unsigned long PC; /* PC if in relocatable mode */
--- /dev/null
+/*****************************************************************************/
+/* */
+/* segdefs.h */
+/* */
+/* Constants and flags for segments */
+/* */
+/* */
+/* */
+/* (C) 2012, Ullrich von Bassewitz */
+/* Roemerstrasse 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
+/* */
+/* */
+/* This software is provided 'as-is', without any expressed or implied */
+/* warranty. In no event will the authors be held liable for any damages */
+/* arising from the use of this software. */
+/* */
+/* Permission is granted to anyone to use this software for any purpose, */
+/* including commercial applications, and to alter it and redistribute it */
+/* freely, subject to the following restrictions: */
+/* */
+/* 1. The origin of this software must not be misrepresented; you must not */
+/* claim that you wrote the original software. If you use this software */
+/* in a product, an acknowledgment in the product documentation would be */
+/* appreciated but is not required. */
+/* 2. Altered source versions must be plainly marked as such, and must not */
+/* be misrepresented as being the original software. */
+/* 3. This notice may not be removed or altered from any source */
+/* distribution. */
+/* */
+/*****************************************************************************/
+
+
+
+#ifndef SEGDEFS_H
+#define SEGDEFS_H
+
+
+
+/*****************************************************************************/
+/* Data */
+/*****************************************************************************/
+
+
+
+/* Segment flags */
+#define SEG_FLAG_NONE 0x00
+#define SEG_FLAG_BANKREF 0x01 /* Segment is referenced by .BANK */
+
+
+
+/* End of segdefs.h */
+
+#endif
+
+
+