Browse code

Implemented : for ; without LIT2

Andrew Alderwick authored on 20/04/2021 20:05:34
Showing 1 changed files
... ...
@@ -212,6 +212,7 @@ walktoken(char *w)
212 212
 	case ']': return 0;
213 213
 	case '.': return 2; /* zero-page: LIT addr-lb */
214 214
 	case ',': return 2; /* relative:  LIT addr-rel */
215
+	case ':': return 2; /* absolute:      addr-hb addr-lb */
215 216
 	case ';': return 3; /* absolute:  LIT addr-hb addr-lb */
216 217
 	case '$': return shex(w + 1);
217 218
 	case '#': return slen(w + 1) == 4 ? 3 : 2;
... ...
@@ -239,6 +240,9 @@ parsetoken(char *w)
239 240
 			return error("Address is too far", w);
240 241
 		pushbyte((Sint8)off, 1);
241 242
 		return ++l->refs;
243
+	} else if(w[0] == ':' && (l = findlabel(w + 1))) { /* absolute */
244
+		pushshort(l->addr, 0);
245
+		return ++l->refs;
242 246
 	} else if(w[0] == ';' && (l = findlabel(w + 1))) { /* absolute */
243 247
 		pushshort(l->addr, 1);
244 248
 		return ++l->refs;