/* */
/* */
/* */
-/* (C) 1998-2003 Ullrich von Bassewitz */
+/* (C) 1998-2004 Ullrich von Bassewitz */
/* Römerstraße 52 */
/* D-70794 Filderstadt */
/* EMail: uz@cc65.org */
{
static const char* Keys[] = {
"CONSTRUCTOR",
- "DESTRUCTOR",
+ "DESTRUCTOR",
+ "INTERRUPTOR",
};
char Name [sizeof (SVal)];
long Type;
/* Parse the remainder of the line and export the symbol */
ConDes (Name, (unsigned) Type);
}
-
+
static void DoConstructor (void)
+static void DoInterruptor (void)
+/* Export a symbol as interruptor */
+{
+ char Name [sizeof (SVal)];
+
+ /* Symbol name follows */
+ if (Tok != TOK_IDENT) {
+ ErrorSkip ("Identifier expected");
+ return;
+ }
+ strcpy (Name, SVal);
+ NextTok ();
+
+ /* Parse the remainder of the line and export the symbol */
+ ConDes (Name, CD_TYPE_INT);
+}
+
+
+
static void DoInvalid (void)
/* Handle a token that is invalid here, since it should have been handled on
* a much lower level of the expression hierarchy. Getting this sort of token
{ ccNone, DoImportZP },
{ ccNone, DoIncBin },
{ ccNone, DoInclude },
+ { ccNone, DoInterruptor },
{ ccNone, DoInvalid }, /* .LEFT */
{ ccNone, DoLineCont },
{ ccNone, DoList },
{ ".IMPORTZP", TOK_IMPORTZP },
{ ".INCBIN", TOK_INCBIN },
{ ".INCLUDE", TOK_INCLUDE },
+ { ".INTERRUPTOR", TOK_INTERRUPTOR },
{ ".LEFT", TOK_LEFT },
{ ".LINECONT", TOK_LINECONT },
{ ".LIST", TOK_LIST },
/* For better handling of files with unusual line endings (DOS
* files that are accidently translated on Unix for example),
- * first remove all whitespace at the end, then add a single
+ * first remove all whitespace at the end, then add a single
* newline.
*/
Len = strlen (IFile->Line);
TOK_IMPORTZP,
TOK_INCBIN,
TOK_INCLUDE,
+ TOK_INTERRUPTOR,
TOK_LEFT,
TOK_LINECONT,
TOK_LIST,
TOK_LISTBYTES,
- TOK_LOBYTE,
+ TOK_LOBYTE,
TOK_LOCAL,
TOK_LOCALCHAR,
TOK_LOWORD,
/* */
/* */
/* */
-/* (C) 2000 Ullrich von Bassewitz */
-/* Wacholderweg 14 */
-/* D-70597 Stuttgart */
-/* EMail: uz@musoftware.de */
+/* (C) 2000-2004 Ullrich von Bassewitz */
+/* Römerstraße 52 */
+/* D-70794 Filderstadt */
+/* EMail: uz@cc65.org */
/* */
/* */
/* This software is provided 'as-is', without any expressed or implied */
/* Predefined types */
#define CD_TYPE_CON 0 /* Constructor */
#define CD_TYPE_DES 1 /* Destructor */
+#define CD_TYPE_INT 2 /* Interruptor */
/* When part of an export in an object file, type and priority are encoded in
* one byte. In this case, the following macros access the fields: