commit 52f9f9d
Devine Lu Linvega
·
2024-03-08 05:01:12 +0000 UTC
parent 45fd270
(uxnasm) Print assembly result to stdout
2 files changed,
+13,
-26
+6,
-12
1@@ -29,23 +29,17 @@ mouse_up(Uxn *u, Uint8 *d, Uint8 mask)
2 void
3 mouse_pos(Uxn *u, Uint8 *d, Uint16 x, Uint16 y)
4 {
5- *(d + 2) = x >> 8;
6- *(d + 3) = x;
7- *(d + 4) = y >> 8;
8- *(d + 5) = y;
9+ *(d + 2) = x >> 8, *(d + 3) = x;
10+ *(d + 4) = y >> 8, *(d + 5) = y;
11 uxn_eval(u, PEEK2(d));
12 }
13
14 void
15 mouse_scroll(Uxn *u, Uint8 *d, Uint16 x, Uint16 y)
16 {
17- *(d + 0xa) = x >> 8;
18- *(d + 0xb) = x;
19- *(d + 0xc) = -y >> 8;
20- *(d + 0xd) = -y;
21+ *(d + 0xa) = x >> 8, *(d + 0xb) = x;
22+ *(d + 0xc) = -y >> 8, *(d + 0xd) = -y;
23 uxn_eval(u, PEEK2(d));
24- *(d + 0xa) = 0;
25- *(d + 0xb) = 0;
26- *(d + 0xc) = 0;
27- *(d + 0xd) = 0;
28+ *(d + 0xa) = 0, *(d + 0xb) = 0;
29+ *(d + 0xc) = 0, *(d + 0xd) = 0;
30 }
+7,
-14
1@@ -83,13 +83,6 @@ error_asm(const char *name, const char *msg)
2 return 0;
3 }
4
5-static int
6-error_res(const char *name, const char *msg)
7-{
8- fprintf(stderr, "%s: %s.\n", name, msg);
9- return 0;
10-}
11-
12 static char *
13 setlocation(char *name)
14 {
15@@ -434,7 +427,7 @@ resolve(void)
16 case '_':
17 case ',':
18 if(!(l = findlabel(r->name)))
19- return error_res("Unknown relative reference", r->name);
20+ return error_top("Unknown relative reference", r->name);
21 p.data[r->addr] = (Sint8)(l->addr - r->addr - 2);
22 if((Sint8)p.data[r->addr] != (l->addr - r->addr - 2))
23 return error_asm("Relative reference is too far", r->name);
24@@ -443,7 +436,7 @@ resolve(void)
25 case '-':
26 case '.':
27 if(!(l = findlabel(r->name)))
28- return error_res("Unknown zero-page reference", r->name);
29+ return error_top("Unknown zero-page reference", r->name);
30 p.data[r->addr] = l->addr & 0xff;
31 l->refs++;
32 break;
33@@ -451,7 +444,7 @@ resolve(void)
34 case '=':
35 case ';':
36 if(!(l = findlabel(r->name)))
37- return error_res("Unknown absolute reference", r->name);
38+ return error_top("Unknown absolute reference", r->name);
39 p.data[r->addr] = l->addr >> 0x8;
40 p.data[r->addr + 1] = l->addr & 0xff;
41 l->refs++;
42@@ -460,7 +453,7 @@ resolve(void)
43 case '!':
44 default:
45 if(!(l = findlabel(r->name)))
46- return error_res("Unknown absolute reference", r->name);
47+ return error_top("Unknown absolute reference", r->name);
48 a = l->addr - r->addr - 2;
49 p.data[r->addr] = a >> 0x8;
50 p.data[r->addr + 1] = a & 0xff;
51@@ -491,8 +484,8 @@ review(char *filename)
52 if(p.labels[i].name[0] >= 'A' && p.labels[i].name[0] <= 'Z')
53 continue; /* Ignore capitalized labels(devices) */
54 else if(!p.labels[i].refs)
55- fprintf(stderr, "-- Unused label: %s\n", p.labels[i].name);
56- fprintf(stderr,
57+ fprintf(stdout, "-- Unused label: %s\n", p.labels[i].name);
58+ fprintf(stdout,
59 "Assembled %s in %d bytes(%.2f%% used), %d labels, %d macros.\n",
60 filename,
61 p.length - TRIM,
62@@ -528,7 +521,7 @@ main(int argc, char *argv[])
63 if(argc == 1)
64 return error_top("usage", "uxnasm [-v] input.tal output.rom");
65 if(argv[1][0] == '-' && argv[1][1] == 'v')
66- return !fprintf(stdout, "Uxnasm - Uxntal Assembler, 6 Mar 2024.\n");
67+ return !fprintf(stdout, "Uxnasm - Uxntal Assembler, 7 Mar 2024.\n");
68 if(!(src = fopen(setlocation(argv[1]), "r")))
69 return !error_top("Invalid input", argv[1]);
70 p.entry = argv[1];