From 4ab0f8dcb8eb248139fe84ad9b736ab5bb24b331 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 10 Jun 2017 10:13:16 +0200 Subject: Slow down and prettyprint rstack --- eval.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'eval.go') diff --git a/eval.go b/eval.go index 97ec07f..ee83e4c 100644 --- a/eval.go +++ b/eval.go @@ -5,6 +5,7 @@ import ( "encoding/binary" "fmt" "io/ioutil" + "time" ) // J1 Forth processor VM @@ -27,8 +28,12 @@ func (vm *J1) Reset() { } func (vm *J1) String() string { + var rstack [32]uint16 + for i, v := range vm.rstack { + rstack[i] = v << 1 + } return fmt.Sprintf("PC=%0.4X ST=%0.4X D=%0.4X R=%0.4X", - vm.pc<<1, vm.st0, vm.dstack[:vm.dsp+1], vm.rstack[:vm.rsp+1]) + vm.pc<<1, vm.st0, vm.dstack[:vm.dsp+1], rstack[:vm.rsp+1]) } // LoadBytes into memory @@ -51,7 +56,9 @@ func (vm *J1) LoadFile(fname string) error { // Eval evaluates content of memory func (vm *J1) Eval() { - for { + ticker := time.NewTicker(time.Second) + defer ticker.Stop() + for range ticker.C { ins := Decode(vm.memory[vm.pc]) if ins == Jump(0) { break -- cgit v1.2.3