... | ... |
@@ -301,8 +301,7 @@ parsetoken(char *w) |
301 | 301 |
return 0; |
302 | 302 |
} |
303 | 303 |
pushbyte((Sint8)(l->addr - p.ptr - 3), 1); |
304 |
- l->refs++; |
|
305 |
- return 1; |
|
304 |
+ return ++l->refs; |
|
306 | 305 |
} else if(w[0] == '=' && (l = findlabel(w + 1))) { |
307 | 306 |
if(!findlabellen(w + 1) || findlabellen(w + 1) > 2) |
308 | 307 |
return error("Invalid store helper", w); |
... | ... |
@@ -313,8 +312,7 @@ parsetoken(char *w) |
313 | 312 |
pushshort(findlabeladdr(w + 1), 1); |
314 | 313 |
pushbyte(findopcode(findlabellen(w + 1) == 2 ? "STR2" : "POK2"), 0); |
315 | 314 |
} |
316 |
- l->refs++; |
|
317 |
- return 1; |
|
315 |
+ return ++l->refs; |
|
318 | 316 |
} else if(w[0] == '~' && (l = findlabel(w + 1))) { |
319 | 317 |
if(!findlabellen(w + 1) || findlabellen(w + 1) > 2) |
320 | 318 |
return error("Invalid load helper", w); |
... | ... |
@@ -325,18 +323,15 @@ parsetoken(char *w) |
325 | 323 |
pushshort(findlabeladdr(w + 1), 1); |
326 | 324 |
pushbyte(findopcode(findlabellen(w + 1) == 2 ? "LDR2" : "PEK2"), 0); |
327 | 325 |
} |
328 |
- l->refs++; |
|
329 |
- return 1; |
|
330 |
- } else if((op = findopcode(w)) || scmp(w, "BRK", 4)) { |
|
331 |
- pushbyte(op, 0); |
|
332 |
- return 1; |
|
326 |
+ return ++l->refs; |
|
333 | 327 |
} else if(w[0] == '.' && (l = findlabel(w + 1))) { |
334 | 328 |
pushshort(findlabeladdr(w + 1), 0); |
335 |
- l->refs++; |
|
336 |
- return 1; |
|
329 |
+ return ++l->refs; |
|
337 | 330 |
} else if(w[0] == ',' && (l = findlabel(w + 1))) { |
338 | 331 |
pushshort(findlabeladdr(w + 1), 1); |
339 |
- l->refs++; |
|
332 |
+ return ++l->refs; |
|
333 |
+ } else if((op = findopcode(w)) || scmp(w, "BRK", 4)) { |
|
334 |
+ pushbyte(op, 0); |
|
340 | 335 |
return 1; |
341 | 336 |
} else if(w[0] == '#') { |
342 | 337 |
if(slen(w + 1) == 1) |
... | ... |
@@ -425,9 +420,8 @@ pass2(FILE *f) |
425 | 420 |
scpy(w + 1, scope, 64); |
426 | 421 |
continue; |
427 | 422 |
} |
428 |
- if(w[1] == '$') { |
|
423 |
+ if(w[1] == '$') |
|
429 | 424 |
scpy(sublabel(subw, scope, w + 2), w + 1, 64); |
430 |
- } |
|
431 | 425 |
if(skipblock(w, &cbits, '[', ']')) { |
432 | 426 |
if(w[0] == '[' || w[0] == ']') { continue; } |
433 | 427 |
if(slen(w) == 4 && sihx(w)) |
... | ... |
@@ -436,9 +430,8 @@ pass2(FILE *f) |
436 | 430 |
pushbyte(shex(w), 0); |
437 | 431 |
else |
438 | 432 |
pushtext(w, 0); |
439 |
- } else if(!parsetoken(w)) { |
|
433 |
+ } else if(!parsetoken(w)) |
|
440 | 434 |
return error("Unknown label in second pass", w); |
441 |
- } |
|
442 | 435 |
} |
443 | 436 |
return 1; |
444 | 437 |
} |
... | ... |
@@ -460,18 +453,12 @@ int |
460 | 453 |
main(int argc, char *argv[]) |
461 | 454 |
{ |
462 | 455 |
FILE *f; |
463 |
- if(argc < 3) { |
|
464 |
- error("Input", "Missing"); |
|
465 |
- return 1; |
|
466 |
- } |
|
467 |
- if(!(f = fopen(argv[1], "r"))) { |
|
468 |
- error("Open", "Failed"); |
|
469 |
- return 1; |
|
470 |
- } |
|
471 |
- if(!pass1(f) || !pass2(f)) { |
|
472 |
- error("Assembly", "Failed"); |
|
473 |
- return 1; |
|
474 |
- } |
|
456 |
+ if(argc < 3) |
|
457 |
+ return !error("Input", "Missing"); |
|
458 |
+ if(!(f = fopen(argv[1], "r"))) |
|
459 |
+ return !error("Open", "Failed"); |
|
460 |
+ if(!pass1(f) || !pass2(f)) |
|
461 |
+ return !error("Assembly", "Failed"); |
|
475 | 462 |
fwrite(p.data + OFFSET, p.ptr - OFFSET, 1, fopen(argv[2], "wb")); |
476 | 463 |
fclose(f); |
477 | 464 |
cleanup(argv[2]); |