commit 2039e0f

Devine Lu Linvega  ·  2023-02-02 18:39:57 +0000 UTC
parent 5ceffe2
Named system_cmd arguments
2 files changed,  +7, -9
+1, -1
1@@ -41,7 +41,7 @@
2 	;&mmu #02 DEO2
3 
4 BRK
5-	&mmu 01 0001 0002 89ab 0003 3333
6+	&mmu 01 1234 4567 789a 2345 6789
7 
8 @draw-polycat ( -- )
9 
+6, -8
 1@@ -36,14 +36,12 @@ static void
 2 system_cmd(Uint8 *ram, Uint16 addr)
 3 {
 4 	if(ram[addr] == 0x01) {
 5-		int src, dst;
 6-		Uint16 i, args[5]; /* length, a_page, a_addr, b_page, b_addr */
 7-		for(i = 0; i < 5; i++)
 8-			args[i] = PEEK16(ram + addr + 1 + i * 2);
 9-		src = (args[1] % RAM_PAGES) * 0x10000;
10-		dst = (args[3] % RAM_PAGES) * 0x10000;
11-		for(i = 0; i < args[0]; i++)
12-			ram[dst + (Uint16)(args[4] + i)] = ram[src + (Uint16)(args[2] + i)];
13+		Uint16 i, length = PEEK16(ram + addr + 1);
14+		Uint16 a_page = PEEK16(ram + addr + 1 + 2), a_addr = PEEK16(ram + addr + 1 + 4);
15+		Uint16 b_page = PEEK16(ram + addr + 1 + 6), b_addr = PEEK16(ram + addr + 1 + 8);
16+		int src = (a_page % RAM_PAGES) * 0x10000, dst = (b_page % RAM_PAGES) * 0x10000;
17+		for(i = 0; i < length; i++)
18+			ram[dst + (Uint16)(b_addr + i)] = ram[src + (Uint16)(a_addr + i)];
19 	}
20 }
21