commit 223bc51
Devine Lu Linvega
·
2024-07-01 15:58:09 +0000 UTC
parent 44c501b
Removed masking in screen_deo
6 files changed,
+23,
-26
+13,
-13
1@@ -256,19 +256,19 @@ screen_dei(Uint8 addr)
2 }
3
4 void
5-screen_deo(Uint8 port)
6+screen_deo(Uint8 addr)
7 {
8- switch(port) {
9- case 0x3: screen_resize(PEEK2(&uxn.dev[0x22]), uxn_screen.height, uxn_screen.scale); return;
10- case 0x5: screen_resize(uxn_screen.width, PEEK2(&uxn.dev[0x24]), uxn_screen.scale); return;
11- 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;
12- case 0x8:
13- case 0x9: rX = (uxn.dev[0x28] << 8) | uxn.dev[0x29], rX = twos(rX); return;
14- case 0xa:
15- case 0xb: rY = (uxn.dev[0x2a] << 8) | uxn.dev[0x2b], rY = twos(rY); return;
16- case 0xc:
17- case 0xd: rA = (uxn.dev[0x2c] << 8) | uxn.dev[0x2d]; return;
18- case 0xe: {
19+ switch(addr) {
20+ case 0x23: screen_resize(PEEK2(&uxn.dev[0x22]), uxn_screen.height, uxn_screen.scale); return;
21+ case 0x25: screen_resize(uxn_screen.width, PEEK2(&uxn.dev[0x24]), uxn_screen.scale); return;
22+ case 0x26: 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;
23+ case 0x28:
24+ case 0x29: rX = (uxn.dev[0x28] << 8) | uxn.dev[0x29], rX = twos(rX); return;
25+ case 0x2a:
26+ case 0x2b: rY = (uxn.dev[0x2a] << 8) | uxn.dev[0x2b], rY = twos(rY); return;
27+ case 0x2c:
28+ case 0x2d: rA = (uxn.dev[0x2c] << 8) | uxn.dev[0x2d]; return;
29+ case 0x2e: {
30 Uint8 ctrl = uxn.dev[0x2e];
31 Uint8 color = ctrl & 0x3;
32 Uint8 *layer = ctrl & 0x40 ? uxn_screen.fg : uxn_screen.bg;
33@@ -297,7 +297,7 @@ screen_deo(Uint8 port)
34 }
35 return;
36 }
37- case 0xf: {
38+ case 0x2f: {
39 Uint8 i;
40 Uint8 ctrl = uxn.dev[0x2f];
41 Uint8 twobpp = !!(ctrl & 0x80);
+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 port);
6+void screen_deo(Uint8 addr);
7
8 #define twos(v) (v & 0x8000 ? (int)v - 0x10000 : (int)v)
+3,
-4
1@@ -101,12 +101,11 @@ system_dei(Uint8 addr)
2 }
3
4 void
5-system_deo(Uint8 port)
6+system_deo(Uint8 addr)
7 {
8- Uint16 addr;
9- switch(port) {
10+ switch(addr) {
11 case 0x3:
12- addr = PEEK2(uxn.dev + 2);
13+ Uint16 addr = PEEK2(uxn.dev + 2);
14 if(uxn.ram[addr] == 0x0) {
15 Uint8 value = uxn.ram[addr + 7];
16 Uint16 i, length = PEEK2(uxn.ram + addr + 1);
+1,
-1
1@@ -17,6 +17,6 @@ int system_error(char *msg, const char *err);
2 int system_boot(Uint8 *ram, char *rom);
3
4 Uint8 system_dei(Uint8 addr);
5-void system_deo(Uint8 port);
6+void system_deo(Uint8 addr);
7
8 extern char *boot_rom;
+4,
-5
1@@ -59,16 +59,15 @@ emu_dei(Uint8 addr)
2 void
3 emu_deo(Uint8 addr, Uint8 value)
4 {
5- Uint8 p = addr & 0x0f, d = addr & 0xf0;
6 uxn.dev[addr] = value;
7- switch(d) {
8+ switch(addr & 0xf0) {
9 case 0x00:
10- system_deo(p);
11- if(p > 0x7 && p < 0xe)
12+ system_deo(addr);
13+ if(addr > 0x7 && addr < 0xe)
14 screen_palette();
15 break;
16 case 0x10: console_deo(addr); break;
17- case 0x20: screen_deo(p); break;
18+ case 0x20: screen_deo(addr); break;
19 case 0xa0: file_deo(addr); break;
20 case 0xb0: file_deo(addr); break;
21 }
+1,
-2
1@@ -34,10 +34,9 @@ emu_dei(Uint8 addr)
2 void
3 emu_deo(Uint8 addr, Uint8 value)
4 {
5- Uint8 p = addr & 0x0f;
6 uxn.dev[addr] = value;
7 switch(addr & 0xf0) {
8- case 0x00: system_deo(p); break;
9+ case 0x00: system_deo(addr); break;
10 case 0x10: console_deo(addr); break;
11 case 0xa0: file_deo(addr); break;
12 case 0xb0: file_deo(addr); break;