From: Tim Vanderhoek (vanderh_at_ecf.utoronto.ca)
Date: 2000-01-29 21:20:37
I couldn't find any way to tell the cc65 compiler that an extern
variable belonged on the zpage.
I added an "externzp" extension to do this. This is probably not the
best way to do it --- there should be something more general. Say
"extern __zeropage__ v;" or even "__zeropage__ v;" to _request_ that
a new variable be put into some zeropage segment.
I haven't tested this extensively. One can, of course, argue that
it's even silly since if one cares enough to have something on the
zpage, they should also care enough to write the whole thing in asm... :)
I don't know if Uz (aka "You") want to add this or not, given the
preceeding two paras. However, if there is something subtly broken by
this, at least, I'd prefer to know now rather than get strange errors
someday later... :)
Relative to 2.4.0. I see I also screwed-up some tabs vs. spaces and
the numbering in scanner.h needs to be redone. These are easy to
fix... I'm a little too lazy at the moment. :)
diff -ru4 cc65-2.4.0-orig/cc65/declare.c cc65-2.4.0/cc65/declare.c
--- cc65-2.4.0-orig/cc65/declare.c Sat Jan 8 11:46:22 2000
+++ cc65-2.4.0/cc65/declare.c Sat Jan 29 15:02:51 2000
@@ -291,8 +291,13 @@
gettok ();
return (SC_EXTERN | SC_STATIC);
break;
+ case EXTERNZP:
+ gettok ();
+ return (SC_EXTERN | SC_STATIC | SC_ZEROPAGE);
+ break;
+
case STATIC:
gettok ();
return SC_STATIC;
diff -ru4 cc65-2.4.0-orig/cc65/scanner.c cc65-2.4.0/cc65/scanner.c
--- cc65-2.4.0-orig/cc65/scanner.c Sun Jan 9 14:50:22 2000
+++ cc65-2.4.0/cc65/scanner.c Sat Jan 29 14:46:24 2000
@@ -71,8 +71,9 @@
{ "double", DOUBLE, TT_C },
{ "else", ELSE, TT_C },
{ "enum", ENUM, TT_C },
{ "extern", EXTERN, TT_C },
+ { "externzp", EXTERNZP, TT_EXT },
{ "fastcall", FASTCALL, TT_EXT },
{ "float", FLOAT, TT_C },
{ "for", FOR, TT_C },
{ "goto", GOTO, TT_C },
diff -ru4 cc65-2.4.0-orig/cc65/scanner.h cc65-2.4.0/cc65/scanner.h
--- cc65-2.4.0-orig/cc65/scanner.h Sun Jan 9 14:50:22 2000
+++ cc65-2.4.0/cc65/scanner.h Sat Jan 29 14:30:43 2000
@@ -24,8 +24,9 @@
#define CEOF 0
#define AUTO 10
#define EXTERN 11
+#define EXTERNZP 103
#define REGISTER 12
#define STATIC 13
#define TYPEDEF 14
#define ENUM 15
--
Signature withheld by request of author.
----------------------------------------------------------------------
To unsubscribe from the list send mail to majordomo_at_musoftware.de with
the string "unsubscribe cc65" in the body(!) of the mail.
This archive was generated by hypermail 2.1.3 : 2001-12-14 22:05:35 CET