/* */
/* */
/* */
-/* (C) 2000-2001 Ullrich von Bassewitz */
+/* (C) 2000-2002 Ullrich von Bassewitz */
/* Wacholderweg 14 */
/* D-70597 Stuttgart */
/* EMail: uz@cc65.org */
/* Pointer to the current segment list. Output goes here. */
extern Segments* CS;
+/* Pointer to the global segment list */
+extern Segments* GS;
+
/*****************************************************************************/
void InitSegNames (void);
/* Initialize the segment names */
-void NewSegName (segment_t Seg, const char* Name);
+void SetSegName (segment_t Seg, const char* Name);
/* Set a new name for a segment */
-int ValidSegName (const char* Name);
-/* Return true if the given segment name is valid, return false otherwise */
+void PushSegName (segment_t Seg, const char* Name);
+/* Push the current segment name and set a new name for a segment */
+
+void PopSegName (segment_t Seg);
+/* Restore a segment name from the segment name stack */
+
+const char* GetSegName (segment_t Seg);
+/* Get the name of the given segment */
Segments* PushSegments (struct SymEntry* Func);
/* Make the new segment list current but remember the old one */
/* Return the current data segment */
void AddTextLine (const char* Format, ...) attribute ((format (printf, 1, 2)));
-/* Add a line of code to the current text segment */
+/* Add a line to the current text segment */
void AddCodeLine (const char* Format, ...) attribute ((format (printf, 1, 2)));
/* Add a line of code to the current code segment */
void AddDataLine (const char* Format, ...) attribute ((format (printf, 1, 2)));
/* Add a line of data to the current data segment */
+int HaveGlobalCode (void);
+/* Return true if the global code segment contains entries (which is an error) */
+
+void RemoveGlobalCode (void);
+/* Remove all code from the global code segment. Used for error recovery. */
+
void OutputSegments (const Segments* S, FILE* F);
/* Output the given segments to the file */