Browse code

Named arguments in system_cmd

Devine Lu Linvega authored on 02/02/2023 18:40:47
Showing 1 changed files
... ...
@@ -36,14 +36,12 @@ static void
36 36
 system_cmd(Uint8 *ram, Uint16 addr)
37 37
 {
38 38
 	if(ram[addr] == 0x01) {
39
-		int src, dst;
40
-		Uint16 i, args[5]; /* length, a_page, a_addr, b_page, b_addr */
41
-		for(i = 0; i < 5; i++)
42
-			args[i] = PEEK16(ram + addr + 1 + i * 2);
43
-		src = (args[1] % RAM_PAGES) * 0x10000;
44
-		dst = (args[3] % RAM_PAGES) * 0x10000;
45
-		for(i = 0; i < args[0]; i++)
46
-			ram[dst + (Uint16)(args[4] + i)] = ram[src + (Uint16)(args[2] + i)];
39
+		Uint16 i, length = PEEK16(ram + addr + 1);
40
+		Uint16 a_page = PEEK16(ram + addr + 1 + 2), a_addr = PEEK16(ram + addr + 1 + 4);
41
+		Uint16 b_page = PEEK16(ram + addr + 1 + 6), b_addr = PEEK16(ram + addr + 1 + 8);
42
+		int src = (a_page % RAM_PAGES) * 0x10000, dst = (b_page % RAM_PAGES) * 0x10000;
43
+		for(i = 0; i < length; i++)
44
+			ram[dst + (Uint16)(b_addr + i)] = ram[src + (Uint16)(a_addr + i)];
47 45
 	}
48 46
 }
49 47