...
|
...
|
@@ -48,19 +48,6 @@ system_print(Stack *s, char *name)
|
48
|
48
|
fprintf(stderr, "\n");
|
49
|
49
|
}
|
50
|
50
|
|
51
|
|
-static void
|
52
|
|
-system_cmd(Uint8 *ram, Uint16 addr)
|
53
|
|
-{
|
54
|
|
- if(ram[addr] == 0x1) {
|
55
|
|
- Uint16 i, length = PEEK2(ram + addr + 1);
|
56
|
|
- Uint16 a_page = PEEK2(ram + addr + 1 + 2), a_addr = PEEK2(ram + addr + 1 + 4);
|
57
|
|
- Uint16 b_page = PEEK2(ram + addr + 1 + 6), b_addr = PEEK2(ram + addr + 1 + 8);
|
58
|
|
- int src = (a_page % RAM_PAGES) * 0x10000, dst = (b_page % RAM_PAGES) * 0x10000;
|
59
|
|
- for(i = 0; i < length; i++)
|
60
|
|
- ram[dst + (Uint16)(b_addr + i)] = ram[src + (Uint16)(a_addr + i)];
|
61
|
|
- }
|
62
|
|
-}
|
63
|
|
-
|
64
|
51
|
int
|
65
|
52
|
system_error(char *msg, const char *err)
|
66
|
53
|
{
|
...
|
...
|
@@ -129,7 +116,16 @@ system_deo(Uxn *u, Uint8 *d, Uint8 port)
|
129
|
116
|
{
|
130
|
117
|
switch(port) {
|
131
|
118
|
case 0x3:
|
132
|
|
- system_cmd(u->ram, PEEK2(d + 2));
|
|
119
|
+ Uint8 *ram = u->ram;
|
|
120
|
+ Uint16 addr = PEEK2(d + 2);
|
|
121
|
+ if(ram[addr] == 0x1) {
|
|
122
|
+ Uint16 i, length = PEEK2(ram + addr + 1);
|
|
123
|
+ Uint16 a_page = PEEK2(ram + addr + 1 + 2), a_addr = PEEK2(ram + addr + 1 + 4);
|
|
124
|
+ Uint16 b_page = PEEK2(ram + addr + 1 + 6), b_addr = PEEK2(ram + addr + 1 + 8);
|
|
125
|
+ int src = (a_page % RAM_PAGES) * 0x10000, dst = (b_page % RAM_PAGES) * 0x10000;
|
|
126
|
+ for(i = 0; i < length; i++)
|
|
127
|
+ ram[dst + (Uint16)(b_addr + i)] = ram[src + (Uint16)(a_addr + i)];
|
|
128
|
+ }
|
133
|
129
|
break;
|
134
|
130
|
case 0xe:
|
135
|
131
|
system_inspect(u);
|