commit 15c5354

Devine Lu Linvega  ·  2025-01-22 01:16:37 +0000 UTC
parent 265b5bb
Further optimization of expansion ports
1 files changed,  +4, -9
+4, -9
 1@@ -95,15 +95,10 @@ system_deo(Uint8 port)
 2 			value = uxn.ram[addr + 7];
 3 			for(; a < b; uxn.ram[a++] = value);
 4 		} else if(uxn.ram[addr] == 0x1) {
 5-			unsigned int src_page = PEEK2(aptr + 3);
 6-			unsigned int src_addr = PEEK2(aptr + 5);
 7-			unsigned int dst_page = PEEK2(aptr + 7);
 8-			unsigned int dst_addr = PEEK2(aptr + 9);
 9-			unsigned int src = src_page * 0x10000;
10-			unsigned int dst = dst_page * 0x10000;
11-			if(src_page < RAM_PAGES && dst_page < RAM_PAGES)
12-				for(i = 0; i < length; i++)
13-					uxn.ram[dst + (Uint16)(dst_addr + i)] = uxn.ram[src + (Uint16)(src_addr + i)];
14+			unsigned int a = PEEK2(aptr + 3) * 0x10000 + PEEK2(aptr + 5);
15+			unsigned int b = a + length;
16+			unsigned int c = PEEK2(aptr + 7) * 0x10000 + PEEK2(aptr + 9);
17+			for(; a < b; uxn.ram[c++] = uxn.ram[a++]);
18 		} else if(uxn.ram[addr] == 0x2) {
19 			unsigned int src_page = PEEK2(aptr + 3);
20 			unsigned int src_addr = PEEK2(aptr + 5);