]> git.sur5r.net Git - cc65/blobdiff - src/ca65/objcode.h
Finished implemenation of commands to delete macros. Added the new commands to
[cc65] / src / ca65 / objcode.h
index 96fa50100c024df7eda8c28856d92864ccba0db2..317fe295b74ab61b45989dfcdde6c66336f760b6 100644 (file)
@@ -6,9 +6,9 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 1998-2001 Ullrich von Bassewitz                                       */
-/*               Wacholderweg 14                                             */
-/*               D-70597 Stuttgart                                           */
+/* (C) 1998-2008 Ullrich von Bassewitz                                       */
+/*               Roemerstrasse 52                                            */
+/*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
 /*                                                                           */
 /*                                                                           */
 
 
 
-/* common */
-#include "segdefs.h"
-
 /* ca65 */
 #include "expr.h"
-
-
-
-/*****************************************************************************/
-/*                                  Data                                    */
-/*****************************************************************************/
-
-
-
-/* Are we in absolute mode or in relocatable mode? */
-extern int     RelocMode;
-
-/* Definitions for predefined segments */
-SegDef NullSegDef;
-SegDef ZeropageSegDef;
-SegDef DataSegDef;
-SegDef BssSegDef;
-SegDef RODataSegDef;
-SegDef CodeSegDef;
-
-
-
-/*****************************************************************************/
-/*                           Segment management                             */
-/*****************************************************************************/
-
-
-
-void UseSeg (const SegDef* D);
-/* Use the given segment */
-
-const SegDef* GetCurrentSeg (void);
-/* Get a pointer to the segment defininition of the current segment */
-
-unsigned GetSegNum (void);
-/* Get the number of the current segment */
-
-void SegAlign (unsigned Power, int Val);
-/* Align the PC segment to 2^Power. If Val is -1, emit fill fragments (the
- * actual fill value will be determined by the linker), otherwise use the
- * given value.
- */
-
-int IsZPSeg (void);
-/* Return true if the current segment is a zeropage segment */
-
-int IsFarSeg (void);
-/* Return true if the current segment is a far segment */
-
-unsigned GetSegType (unsigned SegNum);
-/* Return the type of the segment with the given number */
-
-unsigned long GetPC (void);
-/* Get the program counter of the current segment */
-
-void SetAbsPC (unsigned long AbsPC);
-/* Set the program counter in absolute mode */
-
-void SegCheck (void);
-/* Check the segments for range and other errors */
-
-void SegDump (void);
-/* Dump the contents of all segments */
-
-void WriteSegments (void);
-/* Write the segment data to the object file */
+#include "strbuf.h"
 
 
 
@@ -130,15 +62,18 @@ void Emit2 (unsigned char OPC, ExprNode* Value);
 void Emit3 (unsigned char OPC, ExprNode* Expr);
 /* Emit an instruction with a three byte argument */
 
-void Emit3b (unsigned char OPC, ExprNode* Expr, ExprNode* Bank);
-/* Emit an instruction with a three byte argument and separate bank */
+void EmitSigned (ExprNode* Expr, unsigned Size);
+/* Emit a signed expression with the given size */
 
 void EmitPCRel (unsigned char OPC, ExprNode* Expr, unsigned Size);
 /* Emit an opcode with a PC relative argument of one or two bytes */
 
-void EmitData (const unsigned char* Data, unsigned Size);
+void EmitData (const void* Data, unsigned Size);
 /* Emit data into the current segment */
 
+void EmitStrBuf (const StrBuf* Data);
+/* Emit a string into the current segment */
+
 void EmitByte (ExprNode* Expr);
 /* Emit one byte */