commit a904916
Devine Lu Linvega
·
2024-11-26 23:57:44 +0000 UTC
parent 3307991
Fixed expansion port commands
1 files changed,
+10,
-10
+10,
-10
1@@ -126,17 +126,17 @@ system_deo(Uxn *u, Uint8 port)
2 for(i = 0; i < length; i++)
3 u->ram[dst + (Uint16)(dst_addr + i)] = value;
4 } else if(u->ram[addr] == 0x1) {
5- int i, j, length = PEEK2(u->ram + addr + 1);
6- int a_page = PEEK2(u->ram + addr + 3), a_addr = PEEK2(u->ram + addr + 5);
7- int b_page = PEEK2(u->ram + addr + 7), b_addr = PEEK2(u->ram + addr + 9);
8- int src = a_page * 0x10000, dst = b_page * 0x10000;
9- for(i = src + a_addr, j = dst + b_addr; i < src + a_addr + length; i++, j++)
10- u->ram[j] = u->ram[i];
11+ Uint16 i, length = PEEK2(u->ram + addr + 1);
12+ Uint16 a_page = PEEK2(u->ram + addr + 3), a_addr = PEEK2(u->ram + addr + 5);
13+ Uint16 b_page = PEEK2(u->ram + addr + 7), b_addr = PEEK2(u->ram + addr + 9);
14+ int src = (a_page % (RAM_PAGES + 1)) * 0x10000, dst = (b_page % (RAM_PAGES + 1)) * 0x10000;
15+ for(i = 0; i < length; i++)
16+ u->ram[dst + (Uint16)(b_addr + i)] = u->ram[src + (Uint16)(a_addr + i)];
17 } else if(u->ram[addr] == 0x2) {
18- int i, length = PEEK2(u->ram + addr + 1);
19- int a_page = PEEK2(u->ram + addr + 3), a_addr = PEEK2(u->ram + addr + 5);
20- int b_page = PEEK2(u->ram + addr + 7), b_addr = PEEK2(u->ram + addr + 9);
21- int src = a_page * 0x10000, dst = b_page * 0x10000;
22+ Uint16 i, length = PEEK2(u->ram + addr + 1);
23+ Uint16 a_page = PEEK2(u->ram + addr + 3), a_addr = PEEK2(u->ram + addr + 5);
24+ Uint16 b_page = PEEK2(u->ram + addr + 7), b_addr = PEEK2(u->ram + addr + 9);
25+ int src = (a_page % (RAM_PAGES + 1)) * 0x10000, dst = (b_page % (RAM_PAGES + 1)) * 0x10000;
26 for(i = length - 1; i != 0xffff; i--)
27 u->ram[dst + (Uint16)(b_addr + i)] = u->ram[src + (Uint16)(a_addr + i)];
28 } else