aboutsummaryrefslogtreecommitdiff
path: root/eval.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2017-06-04 12:28:46 +0200
committerDimitri Sokolyuk <demon@dim13.org>2017-06-04 12:28:46 +0200
commitf713dc900328db88e32ade374d932748153da328 (patch)
tree70d836eac6eeb3c65288866e4b8e8909b08885d8 /eval.go
parent17a25dd6d354a3ffe9e81fc9f827684c10f7eb7f (diff)
Test ALU
Diffstat (limited to 'eval.go')
-rw-r--r--eval.go6
1 files changed, 3 insertions, 3 deletions
diff --git a/eval.go b/eval.go
index 50eb4be..3c2efda 100644
--- a/eval.go
+++ b/eval.go
@@ -70,7 +70,8 @@ func (vm *J1) eval(ins Instruction) {
vm.rsp += 1
next = uint16(v)
case ALU:
- vm.st0 = vm.newST0(v)
+ vm.dsp = uint16(int8(vm.dsp) + v.Ddir)
+ vm.rsp = uint16(int8(vm.rsp) + v.Rdir)
if v.NtoAtT {
vm.memory[vm.st0] = vm.dstack[vm.dsp]
}
@@ -80,11 +81,10 @@ func (vm *J1) eval(ins Instruction) {
if v.TtoN {
vm.dstack[vm.dsp] = vm.st0
}
- vm.dsp = uint16(int8(vm.dsp) + v.Ddir)
- vm.rsp = uint16(int8(vm.rsp) + v.Rdir)
if v.RtoPC {
next = vm.rstack[vm.rsp]
}
+ vm.st0 = vm.newST0(v)
}
vm.pc = next
fmt.Println(ins)