From d480d63f450e75e0c57a57150b28d83f7c80c620 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Wed, 24 May 2017 12:02:51 +0200 Subject: Word addressing --- main.go | 6 +- testdata/j1.dump | 5050 +++++++++++++++++++++++++++--------------------------- 2 files changed, 2528 insertions(+), 2528 deletions(-) diff --git a/main.go b/main.go index 609cf86..ed78f90 100644 --- a/main.go +++ b/main.go @@ -51,11 +51,11 @@ func Decode(v uint16) string { case v&(1<<15) == 1<<15: return fmt.Sprintf("LIT %0.4X", v&0x7fff) case v&(7<<13) == 0: - return fmt.Sprintf("UBRANCH %0.4X", v&0x1fff) + return fmt.Sprintf("UBRANCH %0.4X", v<<1) case v&(7<<13) == 1<<13: - return fmt.Sprintf("0BRANCH %0.4X", v&0x1fff) + return fmt.Sprintf("0BRANCH %0.4X", v<<1) case v&(7<<13) == 1<<14: - return fmt.Sprintf("CALL %0.4X", v&0x1fff) + return fmt.Sprintf("CALL %0.4X", v<<1) case v&(7<<13) == 3<<13: op := (v >> 8) & 15 s := "ALU " + opcodes[op] diff --git a/testdata/j1.dump b/testdata/j1.dump index 674f0bc..a2ca34b 100644 --- a/testdata/j1.dump +++ b/testdata/j1.dump @@ -1,5 +1,5 @@ -0000 1C5D UBRANCH 1C5D -0002 1C5D UBRANCH 1C5D +0000 1C5D UBRANCH 38BA +0002 1C5D UBRANCH 38BA 0004 6E81 ALU depth T→N dstack+ 0006 80FF LIT 00FF 0008 730F ALU TandN R→PC rstack- dstack- @@ -23,12 +23,12 @@ 002C 6103 ALU N dstack- 002E 710F ALU N R→PC rstack- dstack- 0030 6081 ALU T T→N dstack+ -0032 201B 0BRANCH 001B +0032 201B 0BRANCH 4036 0034 6081 ALU T T→N dstack+ 0036 700C ALU T R→PC rstack- 0038 6181 ALU N T→N dstack+ 003A 6303 ALU TandN dstack- -003C 4014 CALL 0014 +003C 4014 CALL 8028 003E 750F ALU TxorN R→PC rstack- dstack- 0040 6147 ALU N T→R rstack+ dstack- 0042 6181 ALU N T→N dstack+ @@ -41,10 +41,10 @@ 0050 6180 ALU N T→N 0052 8001 LIT 0001 0054 6303 ALU TandN dstack- -0056 202F 0BRANCH 002F +0056 202F 0BRANCH 405E 0058 8008 LIT 0008 005A 6903 ALU NrshiftT dstack- -005C 0031 UBRANCH 0031 +005C 0031 UBRANCH 0062 005E 80FF LIT 00FF 0060 6303 ALU TandN dstack- 0062 700C ALU T R→PC rstack- @@ -56,7 +56,7 @@ 006E 6D03 ALU NlshiftT dstack- 0070 6403 ALU TorN dstack- 0072 6180 ALU N T→N -0074 4014 CALL 0014 +0074 4014 CALL 8028 0076 6081 ALU T T→N dstack+ 0078 6C00 ALU [T] 007A 6180 ALU N T→N @@ -66,25 +66,25 @@ 0082 6703 ALU N=T dstack- 0084 80FF LIT 00FF 0086 6503 ALU TxorN dstack- -0088 4020 CALL 0020 +0088 4020 CALL 8040 008A 6180 ALU N T→N 008C 6023 ALU T N→[T] dstack- 008E 710F ALU N R→PC rstack- dstack- 0090 8001 LIT 0001 0092 6503 ALU TxorN dstack- -0094 0032 UBRANCH 0032 +0094 0032 UBRANCH 0064 0096 6B8D ALU R T→N rstack- dstack+ 0098 6B8D ALU R T→N rstack- dstack+ -009A 4007 CALL 0007 +009A 4007 CALL 800E 009C 6B81 ALU R T→N dstack+ 009E 6181 ALU N T→N dstack+ 00A0 6703 ALU N=T dstack- 00A2 6081 ALU T T→N dstack+ -00A4 2057 0BRANCH 0057 +00A4 2057 0BRANCH 40AE 00A6 6003 ALU T dstack- 00A8 6B8D ALU R T→N rstack- dstack+ 00AA 6103 ALU N dstack- -00AC 0059 UBRANCH 0059 +00AC 0059 UBRANCH 00B2 00AE 6180 ALU N T→N 00B0 6147 ALU N T→R rstack+ dstack- 00B2 6180 ALU N T→N @@ -92,7 +92,7 @@ 00B6 700C ALU T R→PC rstack- 00B8 6181 ALU N T→N dstack+ 00BA 718D ALU N R→PC T→N rstack- dstack+ -00BC 4014 CALL 0014 +00BC 4014 CALL 8028 00BE 6C00 ALU [T] 00C0 6203 ALU T+N dstack- 00C2 6180 ALU N T→N @@ -100,40 +100,40 @@ 00C6 710F ALU N R→PC rstack- dstack- 00C8 6703 ALU N=T dstack- 00CA 760C ALU ~T R→PC rstack- -00CC 4012 CALL 0012 +00CC 4012 CALL 8024 00CE 760C ALU ~T R→PC rstack- 00D0 8000 LIT 0000 00D2 780F ALU N