From 35678cfb79644e37dfd0329aa060c755192092c1 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 24 May 2017 11:50:45 +0200 Subject: Fix opcode --- main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 1f0bc0e..609cf86 100644 --- a/main.go +++ b/main.go @@ -57,7 +57,7 @@ func Decode(v uint16) string { case v&(7<<13) == 1<<14: return fmt.Sprintf("CALL %0.4X", v&0x1fff) case v&(7<<13) == 3<<13: - op := (v & 15 << 8) >> 8 + op := (v >> 8) & 15 s := "ALU " + opcodes[op] if v&(1<<12) != 0 { s += " R→PC" @@ -71,13 +71,13 @@ func Decode(v uint16) string { if v&(1<<5) != 0 { s += " N→[T]" } - switch expand(v & (3 << 2) >> 2) { + switch expand((v >> 2) & 3) { case -1: s += " rstack-" case 1: s += " rstack+" } - switch expand(v & (3 << 0) >> 0) { + switch expand(v & 3) { case -1: s += " dstack-" case 1: -- cgit v1.2.3