From 114a327dd3b6a2901166a518becbe04099a062da Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 26 May 2017 01:48:34 +0200 Subject: ... --- main.go | 88 +++-------------------------------------------------------------- 1 file changed, 3 insertions(+), 85 deletions(-) (limited to 'main.go') diff --git a/main.go b/main.go index 0e51fc7..3b91739 100644 --- a/main.go +++ b/main.go @@ -1,98 +1,16 @@ package main import ( - "encoding/binary" "fmt" - "os" ) func main() { - fd, err := os.Open("testdata/j1.bin") + body, err := ReadBin("testdata/j1.bin") if err != nil { panic(err) } - defer fd.Close() - stat, err := fd.Stat() - if err != nil { - panic(err) - } - sz := stat.Size() - body := make([]uint16, int(sz)/2) - if err := binary.Read(fd, binary.BigEndian, &body); err != nil { - panic(err) - } for i, v := range body { - op := Decode(v) - fmt.Printf("%0.4X %0.4X\t%s\n", 2*i, v, op) - } -} - -var opcodes = []string{ - "T", - "N", - "T+N", - "T&N", - "T|N", - "T^N", - "~T", - "N==T", - "N>T", - "T-1", - "rT", - "[T]", - "N<> 8) & 15 - s := "ALU " + opcodes[op] - if v&(1<<12) != 0 { - s += " R→PC" - } - if v&(1<<7) != 0 { - s += " T→N" - } - if v&(1<<6) != 0 { - s += " T→R" - } - if v&(1<<5) != 0 { - s += " N→[T]" - } - switch expand((v >> 2) & 3) { - case -1: - s += " r-1" - case -2: - s += " r-2" // ??? - case 1: - s += " r+1" - } - switch expand(v & 3) { - case -1: - s += " d-1" - case 1: - s += " d+1" - } - return s - } - return "" -} - -func expand(v uint16) int8 { - if v&2 != 0 { - v |= 0xfc + inst := Decode(v) + fmt.Printf("%0.4X %0.4X\t%s\n", 2*i, v, inst) } - return int8(v) } -- cgit v1.2.3