Browse code

Will connect devices to devold while I migrate to new router

Devine Lu Linvega authored on 01/01/2023 20:12:59
Showing 5 changed files
... ...
@@ -154,7 +154,7 @@ file_delete(UxnFile *c)
154 154
 static UxnFile *
155 155
 file_instance(Device *d)
156 156
 {
157
-	return &uxn_file[d - &d->u->dev[DEV_FILE0]];
157
+	return &uxn_file[d - &d->u->devold[DEV_FILE0]];
158 158
 }
159 159
 
160 160
 /* IO */
... ...
@@ -26,9 +26,11 @@ WITH REGARD TO THIS SOFTWARE.
26 26
 #define POKE(x, y) { if(bs) { u->ram[(x)] = (y) >> 8; u->ram[(x) + 1] = (y); } else { u->ram[(x)] = y; } }
27 27
 #define PEEK16(o, x) { o = (u->ram[(x)] << 8) + u->ram[(x) + 1]; }
28 28
 #define PEEK(o, x) { if(bs) { PEEK16(o, x) } else { o = u->ram[(x)]; } }
29
-#define DEVR(o, d, x) { dev = (d); o = dev->dei(dev, (x) & 0x0f); if(bs) { o = (o << 8) + dev->dei(dev, ((x) + 1) & 0x0f); } }
30
-#define DEVW8(x, y) { dev->dat[(x) & 0xf] = y; dev->deo(dev, (x) & 0x0f); }
31
-#define DEVW(d, x, y) { dev = (d); if(bs) { DEVW8((x), (y) >> 8); DEVW8((x) + 1, (y)); } else { DEVW8((x), (y)) } }
29
+
30
+#define DEVROLD(o, d, x) { dev = (d); o = dev->dei(dev, (x) & 0x0f); if(bs) { o = (o << 8) + dev->dei(dev, ((x) + 1) & 0x0f); } }
31
+#define DEVW8OLD(x, y) { dev->dat[(x) & 0xf] = y; dev->deo(dev, (x) & 0x0f); }
32
+#define DEVWOLD(d, x, y) { dev = (d); if(bs) { DEVW8OLD((x), (y) >> 8); DEVW8OLD((x) + 1, (y)); } else { DEVW8OLD((x), (y)) } }
33
+
32 34
 #define WARP(x) { if(bs) pc = (x); else pc += (Sint8)(x); }
33 35
 #define LIMIT 0x40000 /* around 3 ms */
34 36
 
... ...
@@ -40,7 +42,7 @@ uxn_eval(Uxn *u, Uint16 pc)
40 42
 	Uint8 kptr, *sp;
41 43
 	Stack *src, *dst;
42 44
 	Device *dev;
43
-	if(!pc || u->dev[0].dat[0xf]) return 0;
45
+	if(!pc || u->devold[0].dat[0xf]) return 0;
44 46
 	while((instr = u->ram[pc++])) {
45 47
 		if(!limit--) {
46 48
 			if(!uxn_interrupt()) {
... ...
@@ -90,8 +92,8 @@ uxn_eval(Uxn *u, Uint16 pc)
90 92
 		case 0x13: /* STR */ POP8(a) POP(b) c = pc + (Sint8)a; POKE(c, b) break;
91 93
 		case 0x14: /* LDA */ POP16(a) PEEK(b, a) PUSH(src, b) break;
92 94
 		case 0x15: /* STA */ POP16(a) POP(b) POKE(a, b) break;
93
-		case 0x16: /* DEI */ POP8(a) DEVR(b, &u->dev[a >> 4], a) PUSH(src, b) break;
94
-		case 0x17: /* DEO */ POP8(a) POP(b) DEVW(&u->dev[a >> 4], a, b) break;
95
+		case 0x16: /* DEI */ POP8(a) DEVROLD(b, &u->devold[a >> 4], a) PUSH(src, b) break;
96
+		case 0x17: /* DEO */ POP8(a) POP(b) DEVWOLD(&u->devold[a >> 4], a, b) break;
95 97
 		/* Arithmetic */
96 98
 		case 0x18: /* ADD */ POP(a) POP(b) PUSH(src, b + a) break;
97 99
 		case 0x19: /* SUB */ POP(a) POP(b) PUSH(src, b - a) break;
... ...
@@ -129,7 +131,7 @@ uxn_boot(Uxn *u, Uint8 *ram, Dei *dei, Deo *deo)
129 131
 Device *
130 132
 uxn_port(Uxn *u, Uint8 id, Uint8 (*deifn)(Device *d, Uint8 port), void (*deofn)(Device *d, Uint8 port))
131 133
 {
132
-	Device *d = &u->dev[id];
134
+	Device *d = &u->devold[id];
133 135
 	d->u = u;
134 136
 	d->dei = deifn;
135 137
 	d->deo = deofn;
... ...
@@ -48,7 +48,7 @@ typedef struct Device {
48 48
 typedef struct Uxn {
49 49
 	Uint8 *ram;
50 50
 	Stack wst, rst;
51
-	Device dev[16];
51
+	Device devold[16];
52 52
 	Uint8 (*dei)(struct Uxn *u, Uint8 addr);
53 53
 	void (*deo)(struct Uxn *u, Uint8 addr, Uint8 value);
54 54
 } Uxn;
... ...
@@ -69,7 +69,7 @@ nil_deo(Device *d, Uint8 port)
69 69
 static int
70 70
 console_input(Uxn *u, char c)
71 71
 {
72
-	Device *d = &u->dev[1];
72
+	Device *d = &u->devold[1];
73 73
 	d->dat[0x2] = c;
74 74
 	return uxn_eval(u, GETVECTOR(d));
75 75
 }
... ...
@@ -77,7 +77,7 @@ console_input(Uxn *u, char c)
77 77
 static void
78 78
 run(Uxn *u)
79 79
 {
80
-	Device *d = &u->dev[0];
80
+	Device *d = &u->devold[0];
81 81
 	while(!d->dat[0xf]) {
82 82
 		int c = fgetc(stdin);
83 83
 		if(c != EOF)
... ...
@@ -386,7 +386,7 @@ do_shortcut(Uxn *u, SDL_Event *event)
386 386
 static int
387 387
 console_input(Uxn *u, char c)
388 388
 {
389
-	Device *d = &u->dev[1];
389
+	Device *d = &u->devold[1];
390 390
 	d->dat[0x2] = c;
391 391
 	return uxn_eval(u, GETVECTOR(d));
392 392
 }
... ...
@@ -413,22 +413,22 @@ handle_events(Uxn *u)
413 413
 		}
414 414
 		/* Mouse */
415 415
 		else if(event.type == SDL_MOUSEMOTION)
416
-			mouse_pos(u, u->dev[9].dat, clamp(event.motion.x - PAD, 0, uxn_screen.width - 1), clamp(event.motion.y - PAD, 0, uxn_screen.height - 1));
416
+			mouse_pos(u, u->devold[9].dat, clamp(event.motion.x - PAD, 0, uxn_screen.width - 1), clamp(event.motion.y - PAD, 0, uxn_screen.height - 1));
417 417
 		else if(event.type == SDL_MOUSEBUTTONUP)
418
-			mouse_up(u, u->dev[9].dat, SDL_BUTTON(event.button.button));
418
+			mouse_up(u, u->devold[9].dat, SDL_BUTTON(event.button.button));
419 419
 		else if(event.type == SDL_MOUSEBUTTONDOWN)
420
-			mouse_down(u, u->dev[9].dat, SDL_BUTTON(event.button.button));
420
+			mouse_down(u, u->devold[9].dat, SDL_BUTTON(event.button.button));
421 421
 		else if(event.type == SDL_MOUSEWHEEL)
422
-			mouse_scroll(u, u->dev[9].dat, event.wheel.x, event.wheel.y);
422
+			mouse_scroll(u, u->devold[9].dat, event.wheel.x, event.wheel.y);
423 423
 		/* Controller */
424 424
 		else if(event.type == SDL_TEXTINPUT)
425
-			controller_key(u, u->dev[8].dat, event.text.text[0]);
425
+			controller_key(u, u->devold[8].dat, event.text.text[0]);
426 426
 		else if(event.type == SDL_KEYDOWN) {
427 427
 			int ksym;
428 428
 			if(get_key(&event))
429
-				controller_key(u, u->dev[8].dat, get_key(&event));
429
+				controller_key(u, u->devold[8].dat, get_key(&event));
430 430
 			else if(get_button(&event))
431
-				controller_down(u, u->dev[8].dat, get_button(&event));
431
+				controller_down(u, u->devold[8].dat, get_button(&event));
432 432
 			else
433 433
 				do_shortcut(u, &event);
434 434
 			ksym = event.key.keysym.sym;
... ...
@@ -436,17 +436,17 @@ handle_events(Uxn *u)
436 436
 				return 1;
437 437
 			}
438 438
 		} else if(event.type == SDL_KEYUP)
439
-			controller_up(u, u->dev[8].dat, get_button(&event));
439
+			controller_up(u, u->devold[8].dat, get_button(&event));
440 440
 		else if(event.type == SDL_JOYAXISMOTION) {
441 441
 			Uint8 vec = get_vector_joystick(&event);
442 442
 			if(!vec)
443
-				controller_up(u, u->dev[8].dat, (3 << (!event.jaxis.axis * 2)) << 4);
443
+				controller_up(u, u->devold[8].dat, (3 << (!event.jaxis.axis * 2)) << 4);
444 444
 			else
445
-				controller_down(u, u->dev[8].dat, (1 << ((vec + !event.jaxis.axis * 2) - 1)) << 4);
445
+				controller_down(u, u->devold[8].dat, (1 << ((vec + !event.jaxis.axis * 2) - 1)) << 4);
446 446
 		} else if(event.type == SDL_JOYBUTTONDOWN)
447
-			controller_down(u, u->dev[8].dat, get_button_joystick(&event));
447
+			controller_down(u, u->devold[8].dat, get_button_joystick(&event));
448 448
 		else if(event.type == SDL_JOYBUTTONUP)
449
-			controller_up(u, u->dev[8].dat, get_button_joystick(&event));
449
+			controller_up(u, u->devold[8].dat, get_button_joystick(&event));
450 450
 		/* Console */
451 451
 		else if(event.type == stdin_event)
452 452
 			console_input(u, event.cbutton.button);
... ...
@@ -457,7 +457,7 @@ handle_events(Uxn *u)
457 457
 static int
458 458
 run(Uxn *u)
459 459
 {
460
-	Device *devsys = &u->dev[0];
460
+	Device *devsys = &u->devold[0];
461 461
 	Uint64 now = SDL_GetPerformanceCounter(), frame_end, frame_interval = SDL_GetPerformanceFrequency() / 60;
462 462
 	for(;;) {
463 463
 		/* .System/halt */