Browse code

Reinstated check for labels in zero page

Andrew Alderwick authored on 21/04/2021 20:01:50
Showing 2 changed files
... ...
@@ -3,7 +3,7 @@
3 3
 |00 @System     [ &vector $2 &pad    $6 &r      $2 &g     $2 &b      $2 ]
4 4
 |20 @Screen     [ &vector $2 &width  $2 &height $2 &pad   $2 &x      $2 &y $2 &addr $2 &color $1 ]
5 5
 
6
-|0100
6
+|0000
7 7
 
8 8
 @dvd [ &x $2 &y $2 &dx $1 &dy $1 ]
9 9
 
... ...
@@ -233,6 +233,8 @@ parsetoken(char *w)
233 233
 	Label *l;
234 234
 	Macro *m;
235 235
 	if(w[0] == '.' && (l = findlabel(w + 1))) { /* zero-page */
236
+		if(l->addr > 0xff)
237
+			return error("Address is not in zero page", w);
236 238
 		pushbyte(l->addr, 1);
237 239
 		return ++l->refs;
238 240
 	} else if(w[0] == ',' && (l = findlabel(w + 1))) {