From b8a5b8ecb3b720078f449b1325da1ba46ce61e9b Mon Sep 17 00:00:00 2001 From: Simon Robertshaw Date: Sat, 15 Sep 2012 12:26:52 +0100 Subject: [PATCH] Fix file reading, fix ARG implementation --- src/virtualmachine/Operations.cpp | 2 +- src/virtualmachine/Syscalls.cpp | 4 +--- src/virtualmachine/VirtualMachine.cpp | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/virtualmachine/Operations.cpp b/src/virtualmachine/Operations.cpp index 1223c8132..dcd2cb2e6 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 642e7639f..bc88fb24e 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(0); - //Push(sim->create_part(ARG(0).int4, ARG(1).int4, ARG(2).int4, ARG(3).int4)); + Push(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 7d1af8e9c..fe871f3ba 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;