summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-09-15 11:26:52 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-09-15 11:26:52 (GMT)
commitb8a5b8ecb3b720078f449b1325da1ba46ce61e9b (patch)
treee66a0bbdf06afbc304d7b72cf839afe70b7d1be7 /src
parent3b2f4d59fc44ad4d15e002123aa1e05a080b51a8 (diff)
downloadpowder-b8a5b8ecb3b720078f449b1325da1ba46ce61e9b.zip
powder-b8a5b8ecb3b720078f449b1325da1ba46ce61e9b.tar.gz
Fix file reading, fix ARG implementation
Diffstat (limited to 'src')
-rw-r--r--src/virtualmachine/Operations.cpp2
-rw-r--r--src/virtualmachine/Syscalls.cpp4
-rw-r--r--src/virtualmachine/VirtualMachine.cpp2
3 files changed, 3 insertions, 5 deletions
diff --git a/src/virtualmachine/Operations.cpp b/src/virtualmachine/Operations.cpp
index 1223c81..dcd2cb2 100644
--- a/src/virtualmachine/Operations.cpp
+++ b/src/virtualmachine/Operations.cpp
@@ -227,7 +227,7 @@ namespace vm
OPDEF(ARG) /* Marshal TOS to to-call argument list */
{
- Marshal(parameter.int4, Pop());
+ Marshal(parameter.uint1, Pop());
return 0;
}
diff --git a/src/virtualmachine/Syscalls.cpp b/src/virtualmachine/Syscalls.cpp
index 642e763..bc88fb2 100644
--- a/src/virtualmachine/Syscalls.cpp
+++ b/src/virtualmachine/Syscalls.cpp
@@ -61,9 +61,7 @@ namespace vm
TRAPDEF(partCreate)
{
- printf("%d, %d, %d, %d\n", ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4);
- Push<int4_t>(0);
- //Push<int4_t>(sim->create_part(ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4));
+ Push<int4_t>(sim->create_part(ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4));
}
TRAPDEF(partChangeType)
diff --git a/src/virtualmachine/VirtualMachine.cpp b/src/virtualmachine/VirtualMachine.cpp
index 7d1af8e..fe871f3 100644
--- a/src/virtualmachine/VirtualMachine.cpp
+++ b/src/virtualmachine/VirtualMachine.cpp
@@ -137,7 +137,7 @@ namespace vm
if ((i = opcodeParameterSize(n)))
{
x[0] = x[1] = x[2] = x[3] = 0;
- input.readsome((char*)x, 4);
+ input.readsome((char*)x, i);
w.uint4 = (x[0]) | (x[1] << 8) | (x[2] << 16) | (x[3] << 24);
}
rom[romSize].Operation = n;