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];