| ... | ... |
@@ -31,10 +31,10 @@ contexts: |
| 31 | 31 |
scope: entity.name.type.typedef |
| 32 | 32 |
pop: true |
| 33 | 33 |
- match: '\;(\S+)\sLDA2' |
| 34 |
- scope: constant.numeric |
|
| 34 |
+ scope: entity.name.type.typedef |
|
| 35 | 35 |
pop: true |
| 36 | 36 |
- match: '\;(\S+)\sLDA' |
| 37 |
- scope: constant.numeric |
|
| 37 |
+ scope: entity.name.type.typedef |
|
| 38 | 38 |
pop: true |
| 39 | 39 |
# set |
| 40 | 40 |
- match: '\.(\S+)\sDEO2' |
| ... | ... |
@@ -56,10 +56,10 @@ contexts: |
| 56 | 56 |
scope: constant.numeric |
| 57 | 57 |
pop: true |
| 58 | 58 |
- match: '\;(\S+)\sSTA2' |
| 59 |
- scope: entity.name.type.typedef |
|
| 59 |
+ scope: constant.numeric |
|
| 60 | 60 |
pop: true |
| 61 | 61 |
- match: '\;(\S+)\sSTA' |
| 62 |
- scope: entity.name.type.typedef |
|
| 62 |
+ scope: constant.numeric |
|
| 63 | 63 |
pop: true |
| 64 | 64 |
|
| 65 | 65 |
# label |
| ... | ... |
@@ -70,6 +70,10 @@ contexts: |
| 70 | 70 |
- match: '\&(\S+)\s?' |
| 71 | 71 |
scope: string.control |
| 72 | 72 |
pop: true |
| 73 |
+ # include |
|
| 74 |
+ - match: 'include' |
|
| 75 |
+ scope: string.control |
|
| 76 |
+ pop: true |
|
| 73 | 77 |
|
| 74 | 78 |
# jump |
| 75 | 79 |
- match: '\|(\S+)\s?' |
| ... | ... |
@@ -20,7 +20,6 @@ typedef unsigned short Uint16; |
| 20 | 20 |
typedef struct {
|
| 21 | 21 |
char name[64], items[256][64]; |
| 22 | 22 |
Uint8 len; |
| 23 |
- Uint16 refs; |
|
| 24 | 23 |
} Macro; |
| 25 | 24 |
|
| 26 | 25 |
typedef struct {
|
| ... | ... |
@@ -154,7 +153,7 @@ makemacro(char *name, FILE *f) |
| 154 | 153 |
return error("Macro duplicate", name);
|
| 155 | 154 |
if(sihx(name) && slen(name) % 2 == 0) |
| 156 | 155 |
return error("Macro name is hex number", name);
|
| 157 |
- if(findopcode(name) || scmp(name, "BRK", 4) || !slen(name)) |
|
| 156 |
+ if(findopcode(name) || scmp(name, "BRK", 4) || !slen(name) || scmp(name,"include",8)) |
|
| 158 | 157 |
return error("Macro name is invalid", name);
|
| 159 | 158 |
m = &p.macros[p.mlen++]; |
| 160 | 159 |
scpy(name, m->name, 64); |
| ... | ... |
@@ -280,7 +279,7 @@ parsetoken(char *w) |
| 280 | 279 |
for(i = 0; i < m->len; ++i) |
| 281 | 280 |
if(!parsetoken(m->items[i])) |
| 282 | 281 |
return error("Invalid macro", m->name);
|
| 283 |
- return ++m->refs; |
|
| 282 |
+ return 1; |
|
| 284 | 283 |
} |
| 285 | 284 |
return error("Invalid token", w);
|
| 286 | 285 |
} |
| ... | ... |
@@ -380,9 +379,6 @@ cleanup(char *filename) |
| 380 | 379 |
continue; /* Ignore capitalized labels(devices) */ |
| 381 | 380 |
else if(!p.labels[i].refs) |
| 382 | 381 |
fprintf(stderr, "--- Unused label: %s\n", p.labels[i].name); |
| 383 |
- for(i = 0; i < p.mlen; ++i) |
|
| 384 |
- if(!p.macros[i].refs) |
|
| 385 |
- fprintf(stderr, "--- Unused macro: %s\n", p.macros[i].name); |
|
| 386 | 382 |
printf("Assembled %s(%d bytes), %d labels, %d macros.\n", filename, (p.length - TRIM), p.llen, p.mlen);
|
| 387 | 383 |
} |
| 388 | 384 |
|
| ... | ... |
@@ -112,14 +112,7 @@ redraw(Uxn *u) |
| 112 | 112 |
{
|
| 113 | 113 |
if(devsystem->dat[0xe]) |
| 114 | 114 |
inspect(&ppu, u->wst.dat, u->wst.ptr, u->rst.ptr, u->ram.dat); |
| 115 |
- if(rgbaSurface == NULL) |
|
| 116 |
- SDL_BlitScaled(idxSurface, NULL, winSurface, &gRect); |
|
| 117 |
- else if(zoom == 1) |
|
| 118 |
- SDL_BlitSurface(idxSurface, NULL, winSurface, &gRect); |
|
| 119 |
- else {
|
|
| 120 |
- SDL_BlitSurface(idxSurface, NULL, rgbaSurface, NULL); |
|
| 121 |
- SDL_BlitScaled(rgbaSurface, NULL, winSurface, &gRect); |
|
| 122 |
- } |
|
| 115 |
+ SDL_BlitSurface(idxSurface, NULL, winSurface, &gRect); |
|
| 123 | 116 |
SDL_UpdateWindowSurface(gWindow); |
| 124 | 117 |
reqdraw = 0; |
| 125 | 118 |
} |