aboutsummaryrefslogtreecommitdiff
path: root/src/label.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/label.c')
-rw-r--r--src/label.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/label.c b/src/label.c
index 946a6ea..72e752c 100644
--- a/src/label.c
+++ b/src/label.c
@@ -56,6 +56,8 @@ static char namespace[MAX_LABEL_SIZE + 1];
static Stack *stack;
+static int address24 = FALSE;
+
/* ---------------------------------------- PRIVATE FUNCTIONS
*/
@@ -297,7 +299,15 @@ int LabelExpand(const char *expr, int *result)
/* Current PC
*/
case '$':
- *result = PC();
+ if (address24)
+ {
+ *result = Bank() << 16 | PC();
+ }
+ else
+ {
+ *result = PC();
+ }
+
return TRUE;
default:
@@ -570,6 +580,12 @@ void LabelReadBlob(FILE *fp, int offset)
}
+void LabelSetAddress24(int onoff)
+{
+ address24 = onoff;
+}
+
+
/*
vim: ai sw=4 ts=8 expandtab
*/