commit a26538c

Devine Lu Linvega  ·  2026-01-21 20:34:49 +0000 UTC
parent 693c7c9
Removed file_success for poke2
1 files changed,  +29, -34
+29, -34
  1@@ -44,7 +44,9 @@ static unsigned int uxn_eval(Uint16 pc);
  2 
  3 #define CLAMP(v, a, b) { if(v < a) v = a; else if(v >= b) v = b; }
  4 #define TWOS(v) (v & 0x8000 ? (int)v - 0x10000 : (int)v)
  5-#define PEEK2(d) (*(d) << 8 | (d)[1])
  6+
  7+static inline Uint16 peek2(const Uint8 *d) { return ((Uint16)d[0] << 8) | d[1]; }
  8+static inline void poke2(Uint8 *d, Uint16 v) { d[0] = v >> 8, d[1] = v; }
  9 
 10 /* clang-format on */
 11 
 12@@ -102,18 +104,17 @@ system_reboot(const unsigned int soft)
 13 static void
 14 system_deo_expansion(void)
 15 {
 16-	const Uint16 exp = PEEK2(dev + 2);
 17+	const Uint16 exp = peek2(dev + 2);
 18 	Uint8 *aptr = ram + exp;
 19-	Uint16 length = PEEK2(aptr + 1);
 20-	unsigned int bank = PEEK2(aptr + 3) * 0x10000;
 21-	unsigned int addr = PEEK2(aptr + 5);
 22+	Uint16 length = peek2(aptr + 1);
 23+	unsigned int bank = peek2(aptr + 3) * 0x10000;
 24+	unsigned int addr = peek2(aptr + 5);
 25 	if(ram[exp] == 0x0) {
 26-		unsigned int dst_value = ram[exp + 7];
 27 		if(bank < BANKS_CAP)
 28-			memset(ram + bank + addr, dst_value, length);
 29+			memset(ram + bank + addr, ram[exp + 7], length);
 30 	} else if(ram[exp] == 1 || ram[exp] == 2) {
 31-		unsigned int dst_bank = PEEK2(aptr + 7) * 0x10000;
 32-		unsigned int dst_addr = PEEK2(aptr + 9);
 33+		unsigned int dst_bank = peek2(aptr + 7) * 0x10000;
 34+		unsigned int dst_addr = peek2(aptr + 9);
 35 		if(bank < BANKS_CAP && dst_bank < BANKS_CAP)
 36 			memmove(ram + dst_bank + dst_addr, ram + bank + addr, length);
 37 	} else
 38@@ -212,7 +213,7 @@ start_fork_pipe(void)
 39 {
 40 	pid_t pid;
 41 	pid_t parent_pid = getpid();
 42-	int addr = PEEK2(&dev[CMD_ADDR]);
 43+	int addr = peek2(&dev[CMD_ADDR]);
 44 	fflush(stdout);
 45 	if(child_mode & 0x08) {
 46 		dev[CMD_EXIT] = dev[CMD_LIVE] = 0x00;
 47@@ -329,7 +330,7 @@ console_close(void)
 48 
 49 static Uint8 console_dei_childlive(void) { check_child(); return dev[CMD_LIVE]; }
 50 static Uint8 console_dei_childexit(void) { check_child(); return dev[CMD_EXIT]; }
 51-static void console_deo_vector(void) { console_vector = PEEK2(&dev[0x10]); }
 52+static void console_deo_vector(void) { console_vector = peek2(&dev[0x10]); }
 53 static void console_deo_stdout(void) { fputc(dev[0x18], stdout), fflush(stdout); }
 54 static void console_deo_stderr(void) { fputc(dev[0x19], stderr), fflush(stderr); }
 55 static void console_deo_hb(void) { fprintf(stderr, "%02x", dev[0x1a]); }
 56@@ -561,9 +562,9 @@ static Uint8 screen_dei_ryhb(void) { return rY >> 8; }
 57 static Uint8 screen_dei_rylb(void) { return rY; }
 58 static Uint8 screen_dei_rahb(void) { return rA >> 8; }
 59 static Uint8 screen_dei_ralb(void) { return rA; }
 60-static void screen_deo_vector(void) { screen_vector = PEEK2(&dev[0x20]); }
 61-static void screen_deo_width(void) { screen_resize(PEEK2(&dev[0x22]) & 0xfff, screen_height & 0xfff); }
 62-static void screen_deo_height(void) { screen_resize(screen_width & 0xfff, PEEK2(&dev[0x24]) & 0xfff); }
 63+static void screen_deo_vector(void) { screen_vector = peek2(&dev[0x20]); }
 64+static void screen_deo_width(void) { screen_resize(peek2(&dev[0x22]) & 0xfff, screen_height & 0xfff); }
 65+static void screen_deo_height(void) { screen_resize(screen_width & 0xfff, peek2(&dev[0x24]) & 0xfff); }
 66 static void screen_deo_auto(void) { rMX = dev[0x26] & 0x1, rMY = dev[0x26] & 0x2, rMA = dev[0x26] & 0x4, rML = dev[0x26] >> 4, rDX = rMX << 3, rDY = rMY << 2; }
 67 static void screen_deo_x(void) { rX = (dev[0x28] << 8) | dev[0x29], rX = TWOS(rX); }
 68 static void screen_deo_y(void) { rY = (dev[0x2a] << 8) | dev[0x2b], rY = TWOS(rY); }
 69@@ -607,7 +608,7 @@ controller_key(Uint8 key)
 70 void
 71 controller_deo_vector(void)
 72 {
 73-	controller_vector = PEEK2(&dev[0x80]);
 74+	controller_vector = peek2(&dev[0x80]);
 75 }
 76 
 77 /*
 78@@ -650,7 +651,7 @@ mouse_scroll(Uint16 x, Uint16 y)
 79 void
 80 mouse_deo_vector(void)
 81 {
 82-	mouse_vector = PEEK2(&dev[0x90]);
 83+	mouse_vector = peek2(&dev[0x90]);
 84 }
 85 
 86 /*
 87@@ -887,26 +888,20 @@ file_delete(unsigned int id)
 88 	return !unlink(ufs[id].filepath);
 89 }
 90 
 91-static void
 92-file_success(unsigned int port, unsigned int value)
 93-{
 94-	dev[port] = value >> 8, dev[port + 1] = value;
 95-}
 96-
 97 /* clang-format off */
 98 
 99-static void filea_deo_vector(void) { rL1 = PEEK2(&dev[0xaa]); }
100-static void filea_deo_stat(void) { file_success(0xa2, file_stat(0, PEEK2(&dev[0xa4]), rL1)); }
101-static void filea_deo_delete(void) { file_success(0xa2, file_delete(0)); }
102-static void filea_deo_name(void) { file_success(0xa2, file_init(0, PEEK2(&dev[0xa8]))); }
103-static void filea_deo_read(void) { file_success(0xa2, file_read(0, PEEK2(&dev[0xac]), rL1)); }
104-static void filea_deo_write(void) { file_success(0xa2, file_write(0, PEEK2(&dev[0xae]), rL1, dev[0xa7])); }
105-static void fileb_deo_vector(void) { rL2 = PEEK2(&dev[0xba]); }
106-static void fileb_deo_stat(void) { file_success(0xb2, file_stat(1, PEEK2(&dev[0xb4]), rL2)); }
107-static void fileb_deo_delete(void) { file_success(0xb2, file_delete(1)); }
108-static void fileb_deo_name(void) { file_success(0xb2, file_init(1, PEEK2(&dev[0xb8]))); }
109-static void fileb_deo_read(void) { file_success(0xb2, file_read(1, PEEK2(&dev[0xbc]), rL2)); }
110-static void fileb_deo_write(void) { file_success(0xb2, file_write(1, PEEK2(&dev[0xbe]), rL2, dev[0xb7])); }
111+static void filea_deo_vector(void) { rL1 = peek2(&dev[0xaa]); }
112+static void filea_deo_stat(void) { poke2(&dev[0xa2], file_stat(0, peek2(&dev[0xa4]), rL1)); }
113+static void filea_deo_delete(void) { poke2(&dev[0xa2], file_delete(0)); }
114+static void filea_deo_name(void) { poke2(&dev[0xa2], file_init(0, peek2(&dev[0xa8]))); }
115+static void filea_deo_read(void) { poke2(&dev[0xa2], file_read(0, peek2(&dev[0xac]), rL1)); }
116+static void filea_deo_write(void) { poke2(&dev[0xa2], file_write(0, peek2(&dev[0xae]), rL1, dev[0xa7])); }
117+static void fileb_deo_vector(void) { rL2 = peek2(&dev[0xba]); }
118+static void fileb_deo_stat(void) { poke2(&dev[0xb2], file_stat(1, peek2(&dev[0xb4]), rL2)); }
119+static void fileb_deo_delete(void) { poke2(&dev[0xb2], file_delete(1)); }
120+static void fileb_deo_name(void) { poke2(&dev[0xb2], file_init(1, peek2(&dev[0xb8]))); }
121+static void fileb_deo_read(void) { poke2(&dev[0xb2], file_read(1, peek2(&dev[0xbc]), rL2)); }
122+static void fileb_deo_write(void) { poke2(&dev[0xb2], file_write(1, peek2(&dev[0xbe]), rL2, dev[0xb7])); }
123 
124 /* clang-format on */
125