commit 9d0803e
Devine Lu Linvega
·
2024-06-29 23:37:43 +0000 UTC
parent 7cff7b1
Removed indirection in screen device
3 files changed,
+11,
-11
+9,
-9
1@@ -256,20 +256,20 @@ screen_dei(Uint8 addr)
2 }
3
4 void
5-screen_deo(Uint8 *d, Uint8 port)
6+screen_deo(Uint8 port)
7 {
8 switch(port) {
9- case 0x3: screen_resize(PEEK2(d + 2), uxn_screen.height, uxn_screen.scale); return;
10- case 0x5: screen_resize(uxn_screen.width, PEEK2(d + 4), uxn_screen.scale); return;
11- case 0x6: rMX = d[0x6] & 0x1, rMY = d[0x6] & 0x2, rMA = d[0x6] & 0x4, rML = d[0x6] >> 4, rDX = rMX << 3, rDY = rMY << 2; return;
12+ case 0x3: screen_resize(PEEK2(&uxn.dev[0x22]), uxn_screen.height, uxn_screen.scale); return;
13+ case 0x5: screen_resize(uxn_screen.width, PEEK2(&uxn.dev[0x24]), uxn_screen.scale); return;
14+ case 0x6: rMX = uxn.dev[0x26] & 0x1, rMY = uxn.dev[0x26] & 0x2, rMA = uxn.dev[0x26] & 0x4, rML = uxn.dev[0x26] >> 4, rDX = rMX << 3, rDY = rMY << 2; return;
15 case 0x8:
16- case 0x9: rX = (d[0x8] << 8) | d[0x9], rX = twos(rX); return;
17+ case 0x9: rX = (uxn.dev[0x28] << 8) | uxn.dev[0x29], rX = twos(rX); return;
18 case 0xa:
19- case 0xb: rY = (d[0xa] << 8) | d[0xb], rY = twos(rY); return;
20+ case 0xb: rY = (uxn.dev[0x2a] << 8) | uxn.dev[0x2b], rY = twos(rY); return;
21 case 0xc:
22- case 0xd: rA = (d[0xc] << 8) | d[0xd]; return;
23+ case 0xd: rA = (uxn.dev[0x2c] << 8) | uxn.dev[0x2d]; return;
24 case 0xe: {
25- Uint8 ctrl = d[0xe];
26+ Uint8 ctrl = uxn.dev[0x2e];
27 Uint8 color = ctrl & 0x3;
28 Uint8 *layer = ctrl & 0x40 ? uxn_screen.fg : uxn_screen.bg;
29 /* fill mode */
30@@ -299,7 +299,7 @@ screen_deo(Uint8 *d, Uint8 port)
31 }
32 case 0xf: {
33 Uint8 i;
34- Uint8 ctrl = d[0xf];
35+ Uint8 ctrl = uxn.dev[0x2f];
36 Uint8 twobpp = !!(ctrl & 0x80);
37 Uint8 color = ctrl & 0xf;
38 Uint8 *layer = ctrl & 0x40 ? uxn_screen.fg : uxn_screen.bg;
+1,
-1
1@@ -26,6 +26,6 @@ void screen_resize(Uint16 width, Uint16 height, int scale);
2 void screen_redraw();
3
4 Uint8 screen_dei(Uint8 addr);
5-void screen_deo(Uint8 *d, Uint8 port);
6+void screen_deo(Uint8 port);
7
8 #define twos(v) (v & 0x8000 ? (int)v - 0x10000 : (int)v)
+1,
-1
1@@ -68,7 +68,7 @@ emu_deo(Uint8 addr, Uint8 value)
2 screen_palette(&uxn.dev[0x8]);
3 break;
4 case 0x10: console_deo(&uxn.dev[d], p); break;
5- case 0x20: screen_deo(&uxn.dev[d], p); break;
6+ case 0x20: screen_deo(p); break;
7 case 0xa0: file_deo(0, &uxn.dev[d], p); break;
8 case 0xb0: file_deo(1, &uxn.dev[d], p); break;
9 }