commit 1fb9750
Devine Lu Linvega
·
2025-01-22 00:40:36 +0000 UTC
parent 7250a2a
Fixed bug with system/length
1 files changed,
+5,
-5
+5,
-5
1@@ -87,35 +87,35 @@ system_deo(Uint8 port)
2 switch(port) {
3 case 0x3: {
4 Uint16 addr = PEEK2(uxn.dev + 2);
5- Uint16 aptr = uxn.ram + addr;
6+ Uint8 *aptr = uxn.ram + addr;
7 if(uxn.ram[addr] == 0x0) {
8- value = uxn.ram[addr + 7];
9- length = PEEK2(aptr + 1);
10 unsigned int dst_page = PEEK2(aptr + 3);
11 unsigned int dst_addr = PEEK2(aptr + 5);
12 unsigned int dst = dst_page * 0x10000;
13+ value = uxn.ram[addr + 7];
14+ length = PEEK2(aptr + 1);
15 if(dst_page < RAM_PAGES)
16 for(i = 0; i < length; i++)
17 uxn.ram[dst + (Uint16)(dst_addr + i)] = value;
18 } else if(uxn.ram[addr] == 0x1) {
19- length = PEEK2(aptr + 1);
20 unsigned int src_page = PEEK2(aptr + 3);
21 unsigned int src_addr = PEEK2(aptr + 5);
22 unsigned int dst_page = PEEK2(aptr + 7);
23 unsigned int dst_addr = PEEK2(aptr + 9);
24 unsigned int src = src_page * 0x10000;
25 unsigned int dst = dst_page * 0x10000;
26+ length = PEEK2(aptr + 1);
27 if(src_page < RAM_PAGES && dst_page < RAM_PAGES)
28 for(i = 0; i < length; i++)
29 uxn.ram[dst + (Uint16)(dst_addr + i)] = uxn.ram[src + (Uint16)(src_addr + i)];
30 } else if(uxn.ram[addr] == 0x2) {
31- length = PEEK2(aptr + 1);
32 unsigned int src_page = PEEK2(aptr + 3);
33 unsigned int src_addr = PEEK2(aptr + 5);
34 unsigned int dst_page = PEEK2(aptr + 7);
35 unsigned int dst_addr = PEEK2(aptr + 9);
36 unsigned int src = src_page * 0x10000;
37 unsigned int dst = dst_page * 0x10000;
38+ length = PEEK2(aptr + 1);
39 if(src_page < RAM_PAGES && dst_page < RAM_PAGES)
40 for(i = length - 1; i != 0xffff; i--)
41 uxn.ram[dst + (Uint16)(dst_addr + i)] = uxn.ram[src + (Uint16)(src_addr + i)];