summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/saturn/saturnds.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/cpu/saturn/saturnds.c')
-rw-r--r--src/emu/cpu/saturn/saturnds.c1684
1 files changed, 842 insertions, 842 deletions
diff --git a/src/emu/cpu/saturn/saturnds.c b/src/emu/cpu/saturn/saturnds.c
index 0db10df7768..76ed7b1defa 100644
--- a/src/emu/cpu/saturn/saturnds.c
+++ b/src/emu/cpu/saturn/saturnds.c
@@ -54,20 +54,20 @@ static const char *const adr_af[]=
{ P, WP, XS, X, S, M, B, W, 0, 0, 0, 0, 0, 0, 0, A };
static const char *const adr_a[]=
- { P, WP, XS, X, S, M, B, W };
+ { P, WP, XS, X, S, M, B, W };
static const char number_2_hex[]=
{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
-#define SATURN_PEEKOP_DIS8(v) v = (INT8)( oprom[pos] | ( oprom[pos+1] << 4 ) ); pos+= 2;
+#define SATURN_PEEKOP_DIS8(v) v = (INT8)( oprom[pos] | ( oprom[pos+1] << 4 ) ); pos+= 2;
-#define SATURN_PEEKOP_DIS12(v) v = oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ); \
- pos += 3; \
- if ( v & 0x0800 ) v = -0x1000 + v;
+#define SATURN_PEEKOP_DIS12(v) v = oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ); \
+ pos += 3; \
+ if ( v & 0x0800 ) v = -0x1000 + v;
-#define SATURN_PEEKOP_DIS16(v) v = (INT16)( oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ) | ( oprom[pos+3] << 12 ) ); pos += 4;
+#define SATURN_PEEKOP_DIS16(v) v = (INT16)( oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ) | ( oprom[pos+3] << 12 ) ); pos += 4;
-#define SATURN_PEEKOP_ADR(v) v = oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ) | ( oprom[pos+3] << 12 ) | ( oprom[pos+4] << 16 ); pos += 5;
+#define SATURN_PEEKOP_ADR(v) v = oprom[pos] | ( oprom[pos+1] << 4 ) | ( oprom[pos+2] << 8 ) | ( oprom[pos+3] << 12 ) | ( oprom[pos+4] << 16 ); pos += 5;
// don't split branch and return, source relies on this ordering
@@ -202,353 +202,353 @@ enum MNEMONICS
static const struct {
const char *name[2];
} mnemonics[]={
- { { "rtn", "RET" } },
- { { "rtnsXM", "RETSETXM" } },
- { { "rtnsC", "RETSETC" } },
- { { "rtncC", "RETCLRC" } },
- { { "rti", "RETI" } },
- { { "goto %05x", "JUMP.3 %05x" } },
- { { "goto %05x", "JUMP.4 %05x" } },
- { { "goto %05x", "JUMP %05x" } },
- { { "gosub %05x", "CALL.3 %05x" } },
- { { "gosub %05x", "CALL.4 %05x" } },
- { { "gosub %05x", "CALL %05x" } },
- { { "goC %05x", "BRCS %05x" } },
- { { "rtnC", "RETCS" } },
- { { "gonC %05x", "BRCC %05x" } },
- { { "rtnnC", "RETCC" } },
-
- { { "OUT=CS", "OUT.S C" } },
- { { "OUT=C", "OUT.X C" } },
- { { "A=IN", "IN.4 A" } },
- { { "C=IN", "IN.4 C" } },
- { { "uncnfg", "UNCNFG" } },
- { { "config", "CONFIG" } },
- { { "C=id", "MOVE.A ID,C" } },
- { { "!shutdn", "!SHUTDN" } },
- { { "C+P+1", "ADD.A P+1,C" } },
- { { "reset", "RESET" } },
- { { "!buscc", "!BUSCC" } },
- { { "C=P %x", "MOVE.1 P,C,%x" } },
- { { "P=C %x", "MOVE.1 C,%x,P" } },
- { { "!sreq?", "!SREQ" } },
- { { "CPex %x", "SWAP.1 P,C,%x" } },
-
- { { "!inton", "!INTON" } },
- { { "LA %-2x %s", "MOVE.P%-2x %s,A" } },
- { { "!buscb", "!BUSCB" } },
- { { "Abit=0 %x", "CLRB %x,A" } },
- { { "Abit=1 %x", "SETB %x,A" } },
- { { "?Abit=0 %x,%05x", "BRBC %x,A,%05x" } },
- { { "?Abit=0 %x,rtn", "RETBC %x,A" } },
- { { "?Abit=1 %x,%05x", "BRBS %x,A,%05x" } },
- { { "?Abit=1 %x,rtn", "RETBS %x,A" } },
- { { "Cbit=0 %x", "CLRB %x,C" } },
- { { "Cbit=1 %x", "SETB %x,C" } },
- { { "?Cbit=0 %x,%05x", "BRBC %x,C,%05x" } },
- { { "?Cbit=0 %x,rtn", "RETBC %x,C" } },
- { { "?Cbit=1 %x,%05x", "BRBS %x,C,%05x" } },
- { { "?Cbit=1 %x,rtn", "RETBS %x,C" } },
+ { { "rtn", "RET" } },
+ { { "rtnsXM", "RETSETXM" } },
+ { { "rtnsC", "RETSETC" } },
+ { { "rtncC", "RETCLRC" } },
+ { { "rti", "RETI" } },
+ { { "goto %05x", "JUMP.3 %05x" } },
+ { { "goto %05x", "JUMP.4 %05x" } },
+ { { "goto %05x", "JUMP %05x" } },
+ { { "gosub %05x", "CALL.3 %05x" } },
+ { { "gosub %05x", "CALL.4 %05x" } },
+ { { "gosub %05x", "CALL %05x" } },
+ { { "goC %05x", "BRCS %05x" } },
+ { { "rtnC", "RETCS" } },
+ { { "gonC %05x", "BRCC %05x" } },
+ { { "rtnnC", "RETCC" } },
+
+ { { "OUT=CS", "OUT.S C" } },
+ { { "OUT=C", "OUT.X C" } },
+ { { "A=IN", "IN.4 A" } },
+ { { "C=IN", "IN.4 C" } },
+ { { "uncnfg", "UNCNFG" } },
+ { { "config", "CONFIG" } },
+ { { "C=id", "MOVE.A ID,C" } },
+ { { "!shutdn", "!SHUTDN" } },
+ { { "C+P+1", "ADD.A P+1,C" } },
+ { { "reset", "RESET" } },
+ { { "!buscc", "!BUSCC" } },
+ { { "C=P %x", "MOVE.1 P,C,%x" } },
+ { { "P=C %x", "MOVE.1 C,%x,P" } },
+ { { "!sreq?", "!SREQ" } },
+ { { "CPex %x", "SWAP.1 P,C,%x" } },
+
+ { { "!inton", "!INTON" } },
+ { { "LA %-2x %s", "MOVE.P%-2x %s,A" } },
+ { { "!buscb", "!BUSCB" } },
+ { { "Abit=0 %x", "CLRB %x,A" } },
+ { { "Abit=1 %x", "SETB %x,A" } },
+ { { "?Abit=0 %x,%05x", "BRBC %x,A,%05x" } },
+ { { "?Abit=0 %x,rtn", "RETBC %x,A" } },
+ { { "?Abit=1 %x,%05x", "BRBS %x,A,%05x" } },
+ { { "?Abit=1 %x,rtn", "RETBS %x,A" } },
+ { { "Cbit=0 %x", "CLRB %x,C" } },
+ { { "Cbit=1 %x", "SETB %x,C" } },
+ { { "?Cbit=0 %x,%05x", "BRBC %x,C,%05x" } },
+ { { "?Cbit=0 %x,rtn", "RETBC %x,C" } },
+ { { "?Cbit=1 %x,%05x", "BRBS %x,C,%05x" } },
+ { { "?Cbit=1 %x,rtn", "RETBS %x,C" } },
{ { "PC=(A)", "JUMP.A @A" } },
- { { "!buscd", "!BUSCD" } },
- { { "PC=(C)", "JUMP.A @C" } },
- { { "!intoff", "!INTOFF" } },
- { { "!rsi", "!RSI" } },
-
- { { "PC=A", "JUMP.A A" } },
- { { "PC=C", "JUMP.A C" } },
- { { "A=PC", "MOVE.A PC,A" } },
- { { "C=PC", "MOVE.A PC,C" } },
- { { "APCex", "SWAP.A A,PC" } },
- { { "CPCex", "SWAP.A C,PC" } },
-
- { { "HST=0 %x", "CLRHST %x" } },
- { { "?HST=0 %x,%05x", "BRBCHST %x,%05x" } },
- { { "?HST=0 %x,rtn", "RETBCHST %x" } },
- { { "ST=0 %x", "CLRB %x,ST" } },
- { { "ST=1 %x", "SETB %x,ST" } },
- { { "?ST=0 %x,%05x", "BRBC ST,%x,%05x" } },
- { { "?ST=0 %x,rtn", "RETBC ST,%x" } },
- { { "?ST=1 %x,%05x", "BRBS ST,%x,%05x" } },
- { { "?ST=1 %x,rtn", "RETBS ST,%x" } },
- { { "?P# %x,%05x", "BRNE P,%x,%05x" } },
- { { "?P# %x,rtn", "RETNE P,%x" } },
- { { "?P= %x,%05x", "BREQ P,%x,%05x" } },
- { { "?P= %x,rtn", "RETEQ P,%x" } },
-
- { { "?A=B %s,%05x", "BREQ.%-2s A,B,%05x" } },
- { { "?A=B %s,rtn", "RETEQ.%-2s A,B" } },
- { { "?B=C %s,%05x", "BREQ.%-2s B,C,%05x" } },
- { { "?B=C %s,rtn", "RETEQ.%-2s B,C" } },
- { { "?A=C %s,%05x", "BREQ.%-2s A,C,%05x" } },
- { { "?A=C %s,rtn", "RETEQ.%-2s A,C" } },
- { { "?C=D %s,%05x", "BREQ.%-2s C,D,%05x" } },
- { { "?C=D %s,rtn", "RETEQ.%-2s C,D" } },
- { { "?A#B %s,%05x", "BRNE.%-2s A,B,%05x" } },
- { { "?A#B %s,rtn", "RETNE.%-2s A,B" } },
- { { "?B#C %s,%05x", "BRNE.%-2s B,C,%05x" } },
- { { "?B#C %s,rtn", "RETNE.%-2s B,C" } },
- { { "?A#C %s,%05x", "BRNE.%-2s A,C,%05x" } },
- { { "?A#C %s,rtn", "RETNE.%-2s A,C" } },
- { { "?C#D %s,%05x", "BRNE.%-2s C,D,%05x" } },
- { { "?C#D %s,rtn", "RETNE.%-2s C,D" } },
- { { "?A=0 %s,%05x", "BRZ.%-2s A,%05x" } },
- { { "?A=0 %s,rtn", "RETZ.%-2s A" } },
- { { "?B=0 %s,%05x", "BRZ.%-2s B,%05x" } },
- { { "?B=0 %s,rtn", "RETZ.%-2s B" } },
- { { "?C=0 %s,%05x", "BRZ.%-2s C,%05x" } },
- { { "?C=0 %s,rtn", "RETZ.%-2s C" } },
- { { "?D=0 %s,%05x", "BRZ.%-2s D,%05x" } },
- { { "?D=0 %s,rtn", "RETZ.%-2s D" } },
- { { "?A#0 %s,%05x", "BRNZ.%-2s A,%05x" } },
- { { "?A#0 %s,rtn", "RETNZ.%-2s A" } },
- { { "?B#0 %s,%05x", "BRNZ.%-2s B,%05x" } },
- { { "?B#0 %s,rtn", "RETNZ.%-2s B" } },
- { { "?C#0 %s,%05x", "BRNZ.%-2s C,%05x" } },
- { { "?C#0 %s,rtn", "RETNZ.%-2s C" } },
- { { "?D#0 %s,%05x", "BRNZ.%-2s D,%05x" } },
- { { "?D#0 %s,rtn", "RETNZ.%-2s D" } },
-
- { { "?A>B %s,%05x", "BRGT.%-2s A,B,%05x" } },
- { { "?A>B %s,rtn", "RETGT.%-2s A,B" } },
- { { "?B>C %s,%05x", "BRGT.%-2s B,C,%05x" } },
- { { "?B>C %s,rtn", "RETGT.%-2s B,C" } },
- { { "?C>A %s,%05x", "BRGT.%-2s C,A,%05x" } },
- { { "?C>A %s,rtn", "RETGT.%-2s C,A" } },
- { { "?D>C %s,%05x", "BRGT.%-2s D,C,%05x" } },
- { { "?D>C %s,rtn", "RETGT.%-2s D,C" } },
- { { "?A<B %s,%05x", "BRLT.%-2s A,B,%05x" } },
- { { "?A<B %s,rtn", "RETLT.%-2s A,B" } },
- { { "?B<C %s,%05x", "BRLT.%-2s B,C,%05x" } },
- { { "?B<C %s,rtn", "RETLT.%-2s B,C" } },
- { { "?C<A %s,%05x", "BRLT.%-2s C,A,%05x" } },
- { { "?C<A %s,rtn", "RETLT.%-2s C,A" } },
- { { "?D<C %s,%05x", "BRLT.%-2s D,C,%05x" } },
- { { "?D<C %s,rtn", "RETLT.%-2s D,C" } },
- { { "?A>=B %s,%05x", "BRGE.%-2s A,B,%05x" } },
- { { "?A>=B %s,rtn", "RETGE.%-2s A,B" } },
- { { "?B>=C %s,%05x", "BRGE.%-2s B,C,%05x" } },
- { { "?B>=C %s,rtn", "RETGE.%-2s B,C" } },
- { { "?C>=A %s,%05x", "BRGE.%-2s C,A,%05x" } },
- { { "?C>=A %s,rtn", "RETGE.%-2s C,A" } },
- { { "?D>=C %s,%05x", "BRGE.%-2s D,C,%05x" } },
- { { "?D>=C %s,rtn", "RETGE.%-2s D,C" } },
- { { "?A<=B %s,%05x", "BRLE.%-2s A,B,%05x" } },
- { { "?A<=B %s,rtn", "RETLE.%-2s A,B" } },
- { { "?B<=C %s,%05x", "BRLE.%-2s B,C,%05x" } },
- { { "?B<=C %s,rtn", "RETLE.%-2s B,C" } },
- { { "?C<=A %s,%05x", "BRLE.%-2s C,A,%05x" } },
- { { "?C<=A %s,rtn", "RETLE.%-2s C,A" } },
- { { "?D<=C %s,%05x", "BRLE.%-2s D,C,%05x" } },
- { { "?D<=C %s,rtn", "RETLE.%-2s D,C" } },
-
- { { "sethex", "SETHEX" } },
- { { "setdec", "SETDEC" } },
- { { "RSTK=C", "PUSH.A C" } },
- { { "C=RSTK", "POP.A C" } },
+ { { "!buscd", "!BUSCD" } },
+ { { "PC=(C)", "JUMP.A @C" } },
+ { { "!intoff", "!INTOFF" } },
+ { { "!rsi", "!RSI" } },
+
+ { { "PC=A", "JUMP.A A" } },
+ { { "PC=C", "JUMP.A C" } },
+ { { "A=PC", "MOVE.A PC,A" } },
+ { { "C=PC", "MOVE.A PC,C" } },
+ { { "APCex", "SWAP.A A,PC" } },
+ { { "CPCex", "SWAP.A C,PC" } },
+
+ { { "HST=0 %x", "CLRHST %x" } },
+ { { "?HST=0 %x,%05x", "BRBCHST %x,%05x" } },
+ { { "?HST=0 %x,rtn", "RETBCHST %x" } },
+ { { "ST=0 %x", "CLRB %x,ST" } },
+ { { "ST=1 %x", "SETB %x,ST" } },
+ { { "?ST=0 %x,%05x", "BRBC ST,%x,%05x" } },
+ { { "?ST=0 %x,rtn", "RETBC ST,%x" } },
+ { { "?ST=1 %x,%05x", "BRBS ST,%x,%05x" } },
+ { { "?ST=1 %x,rtn", "RETBS ST,%x" } },
+ { { "?P# %x,%05x", "BRNE P,%x,%05x" } },
+ { { "?P# %x,rtn", "RETNE P,%x" } },
+ { { "?P= %x,%05x", "BREQ P,%x,%05x" } },
+ { { "?P= %x,rtn", "RETEQ P,%x" } },
+
+ { { "?A=B %s,%05x", "BREQ.%-2s A,B,%05x" } },
+ { { "?A=B %s,rtn", "RETEQ.%-2s A,B" } },
+ { { "?B=C %s,%05x", "BREQ.%-2s B,C,%05x" } },
+ { { "?B=C %s,rtn", "RETEQ.%-2s B,C" } },
+ { { "?A=C %s,%05x", "BREQ.%-2s A,C,%05x" } },
+ { { "?A=C %s,rtn", "RETEQ.%-2s A,C" } },
+ { { "?C=D %s,%05x", "BREQ.%-2s C,D,%05x" } },
+ { { "?C=D %s,rtn", "RETEQ.%-2s C,D" } },
+ { { "?A#B %s,%05x", "BRNE.%-2s A,B,%05x" } },
+ { { "?A#B %s,rtn", "RETNE.%-2s A,B" } },
+ { { "?B#C %s,%05x", "BRNE.%-2s B,C,%05x" } },
+ { { "?B#C %s,rtn", "RETNE.%-2s B,C" } },
+ { { "?A#C %s,%05x", "BRNE.%-2s A,C,%05x" } },
+ { { "?A#C %s,rtn", "RETNE.%-2s A,C" } },
+ { { "?C#D %s,%05x", "BRNE.%-2s C,D,%05x" } },
+ { { "?C#D %s,rtn", "RETNE.%-2s C,D" } },
+ { { "?A=0 %s,%05x", "BRZ.%-2s A,%05x" } },
+ { { "?A=0 %s,rtn", "RETZ.%-2s A" } },
+ { { "?B=0 %s,%05x", "BRZ.%-2s B,%05x" } },
+ { { "?B=0 %s,rtn", "RETZ.%-2s B" } },
+ { { "?C=0 %s,%05x", "BRZ.%-2s C,%05x" } },
+ { { "?C=0 %s,rtn", "RETZ.%-2s C" } },
+ { { "?D=0 %s,%05x", "BRZ.%-2s D,%05x" } },
+ { { "?D=0 %s,rtn", "RETZ.%-2s D" } },
+ { { "?A#0 %s,%05x", "BRNZ.%-2s A,%05x" } },
+ { { "?A#0 %s,rtn", "RETNZ.%-2s A" } },
+ { { "?B#0 %s,%05x", "BRNZ.%-2s B,%05x" } },
+ { { "?B#0 %s,rtn", "RETNZ.%-2s B" } },
+ { { "?C#0 %s,%05x", "BRNZ.%-2s C,%05x" } },
+ { { "?C#0 %s,rtn", "RETNZ.%-2s C" } },
+ { { "?D#0 %s,%05x", "BRNZ.%-2s D,%05x" } },
+ { { "?D#0 %s,rtn", "RETNZ.%-2s D" } },
+
+ { { "?A>B %s,%05x", "BRGT.%-2s A,B,%05x" } },
+ { { "?A>B %s,rtn", "RETGT.%-2s A,B" } },
+ { { "?B>C %s,%05x", "BRGT.%-2s B,C,%05x" } },
+ { { "?B>C %s,rtn", "RETGT.%-2s B,C" } },
+ { { "?C>A %s,%05x", "BRGT.%-2s C,A,%05x" } },
+ { { "?C>A %s,rtn", "RETGT.%-2s C,A" } },
+ { { "?D>C %s,%05x", "BRGT.%-2s D,C,%05x" } },
+ { { "?D>C %s,rtn", "RETGT.%-2s D,C" } },
+ { { "?A<B %s,%05x", "BRLT.%-2s A,B,%05x" } },
+ { { "?A<B %s,rtn", "RETLT.%-2s A,B" } },
+ { { "?B<C %s,%05x", "BRLT.%-2s B,C,%05x" } },
+ { { "?B<C %s,rtn", "RETLT.%-2s B,C" } },
+ { { "?C<A %s,%05x", "BRLT.%-2s C,A,%05x" } },
+ { { "?C<A %s,rtn", "RETLT.%-2s C,A" } },
+ { { "?D<C %s,%05x", "BRLT.%-2s D,C,%05x" } },
+ { { "?D<C %s,rtn", "RETLT.%-2s D,C" } },
+ { { "?A>=B %s,%05x", "BRGE.%-2s A,B,%05x" } },
+ { { "?A>=B %s,rtn", "RETGE.%-2s A,B" } },
+ { { "?B>=C %s,%05x", "BRGE.%-2s B,C,%05x" } },
+ { { "?B>=C %s,rtn", "RETGE.%-2s B,C" } },
+ { { "?C>=A %s,%05x", "BRGE.%-2s C,A,%05x" } },
+ { { "?C>=A %s,rtn", "RETGE.%-2s C,A" } },
+ { { "?D>=C %s,%05x", "BRGE.%-2s D,C,%05x" } },
+ { { "?D>=C %s,rtn", "RETGE.%-2s D,C" } },
+ { { "?A<=B %s,%05x", "BRLE.%-2s A,B,%05x" } },
+ { { "?A<=B %s,rtn", "RETLE.%-2s A,B" } },
+ { { "?B<=C %s,%05x", "BRLE.%-2s B,C,%05x" } },
+ { { "?B<=C %s,rtn", "RETLE.%-2s B,C" } },
+ { { "?C<=A %s,%05x", "BRLE.%-2s C,A,%05x" } },
+ { { "?C<=A %s,rtn", "RETLE.%-2s C,A" } },
+ { { "?D<=C %s,%05x", "BRLE.%-2s D,C,%05x" } },
+ { { "?D<=C %s,rtn", "RETLE.%-2s D,C" } },
+
+ { { "sethex", "SETHEX" } },
+ { { "setdec", "SETDEC" } },
+ { { "RSTK=C", "PUSH.A C" } },
+ { { "C=RSTK", "POP.A C" } },
// load immediate
- { { "D0= %02x", "MOVE.2 %02x,D0" } },
- { { "D0= %04x", "MOVE.4 %04x,D0" } },
- { { "D0= %05x", "MOVE.5 %05x,D0" } },
+ { { "D0= %02x", "MOVE.2 %02x,D0" } },
+ { { "D0= %04x", "MOVE.4 %04x,D0" } },
+ { { "D0= %05x", "MOVE.5 %05x,D0" } },
- { { "D1= %02x", "MOVE.2 %02x,D1" } },
- { { "D1= %04x", "MOVE.4 %04x,D1" } },
- { { "D1= %05x", "MOVE.5 %05x,D1" } },
+ { { "D1= %02x", "MOVE.2 %02x,D1" } },
+ { { "D1= %04x", "MOVE.4 %04x,D1" } },
+ { { "D1= %05x", "MOVE.5 %05x,D1" } },
- { { "P= %x", "MOVE %x,P" } },
- { { "lC %-2x %s", "MOVE.P%-2x %s,C" } },
+ { { "P= %x", "MOVE %x,P" } },
+ { { "lC %-2x %s", "MOVE.P%-2x %s,C" } },
- { { "clrST", "CLR.X ST" } },
- { { "C=ST", "MOVE.X ST,C" } },
- { { "ST=C", "MOVE.X C,ST" } },
- { { "CSTex", "SWAP.X C,ST" } },
+ { { "clrST", "CLR.X ST" } },
+ { { "C=ST", "MOVE.X ST,C" } },
+ { { "ST=C", "MOVE.X C,ST" } },
+ { { "CSTex", "SWAP.X C,ST" } },
- { { "P=P+1", "INC P" } },
- { { "P=P-1", "DEC P" } },
+ { { "P=P+1", "INC P" } },
+ { { "P=P-1", "DEC P" } },
// copy
- { { "R0=A %s", "MOVE.%-2s A,R0" } },
- { { "R1=A %s", "MOVE.%-2s A,R1" } },
- { { "R2=A %s", "MOVE.%-2s A,R2" } },
- { { "R3=A %s", "MOVE.%-2s A,R3" } },
- { { "R4=A %s", "MOVE.%-2s A,R4" } },
-
- { { "R0=C %s", "MOVE.%-2s C,R0" } },
- { { "R1=C %s", "MOVE.%-2s C,R1" } },
- { { "R2=C %s", "MOVE.%-2s C,R2" } },
- { { "R3=C %s", "MOVE.%-2s C,R3" } },
- { { "R4=C %s", "MOVE.%-2s C,R4" } },
-
- { { "A=R0 %s", "MOVE.%-2s R0,A" } },
- { { "A=R1 %s", "MOVE.%-2s R1,A" } },
- { { "A=R2 %s", "MOVE.%-2s R2,A" } },
- { { "A=R3 %s", "MOVE.%-2s R3,A" } },
- { { "A=R4 %s", "MOVE.%-2s R4,A" } },
-
- { { "C=R0 %s", "MOVE.%-2s R0,C" } },
- { { "C=R1 %s", "MOVE.%-2s R1,C" } },
- { { "C=R2 %s", "MOVE.%-2s R2,C" } },
- { { "C=R3 %s", "MOVE.%-2s R3,C" } },
- { { "C=R4 %s", "MOVE.%-2s R4,C" } },
-
- { { "D0=A", "MOVE.A A,D0" } },
- { { "D1=A", "MOVE.A A,D1" } },
- { { "D0=C", "MOVE.A C,D0" } },
- { { "D1=C", "MOVE.A C,D1" } },
- { { "D0=As", "MOVE.S A,D0" } },
- { { "D1=As", "MOVE.S A,D1" } },
- { { "D0=Cs", "MOVE.S C,D0" } },
- { { "D1=Cs", "MOVE.S C,D1" } },
+ { { "R0=A %s", "MOVE.%-2s A,R0" } },
+ { { "R1=A %s", "MOVE.%-2s A,R1" } },
+ { { "R2=A %s", "MOVE.%-2s A,R2" } },
+ { { "R3=A %s", "MOVE.%-2s A,R3" } },
+ { { "R4=A %s", "MOVE.%-2s A,R4" } },
+
+ { { "R0=C %s", "MOVE.%-2s C,R0" } },
+ { { "R1=C %s", "MOVE.%-2s C,R1" } },
+ { { "R2=C %s", "MOVE.%-2s C,R2" } },
+ { { "R3=C %s", "MOVE.%-2s C,R3" } },
+ { { "R4=C %s", "MOVE.%-2s C,R4" } },
+
+ { { "A=R0 %s", "MOVE.%-2s R0,A" } },
+ { { "A=R1 %s", "MOVE.%-2s R1,A" } },
+ { { "A=R2 %s", "MOVE.%-2s R2,A" } },
+ { { "A=R3 %s", "MOVE.%-2s R3,A" } },
+ { { "A=R4 %s", "MOVE.%-2s R4,A" } },
+
+ { { "C=R0 %s", "MOVE.%-2s R0,C" } },
+ { { "C=R1 %s", "MOVE.%-2s R1,C" } },
+ { { "C=R2 %s", "MOVE.%-2s R2,C" } },
+ { { "C=R3 %s", "MOVE.%-2s R3,C" } },
+ { { "C=R4 %s", "MOVE.%-2s R4,C" } },
+
+ { { "D0=A", "MOVE.A A,D0" } },
+ { { "D1=A", "MOVE.A A,D1" } },
+ { { "D0=C", "MOVE.A C,D0" } },
+ { { "D1=C", "MOVE.A C,D1" } },
+ { { "D0=As", "MOVE.S A,D0" } },
+ { { "D1=As", "MOVE.S A,D1" } },
+ { { "D0=Cs", "MOVE.S C,D0" } },
+ { { "D1=Cs", "MOVE.S C,D1" } },
// swap operations
- { { "AR0ex %s", "SWAP.%-2s A,R0" } },
- { { "AR1ex %s", "SWAP.%-2s A,R1" } },
- { { "AR2ex %s", "SWAP.%-2s A,R2" } },
- { { "AR3ex %s", "SWAP.%-2s A,R3" } },
- { { "AR4ex %s", "SWAP.%-2s A,R4" } },
-
- { { "CR0ex %s", "SWAP.%-2s C,R0" } },
- { { "CR1ex %s", "SWAP.%-2s C,R1" } },
- { { "CR2ex %s", "SWAP.%-2s C,R2" } },
- { { "CR3ex %s", "SWAP.%-2s C,R3" } },
- { { "CR4ex %s", "SWAP.%-2s C,R4" } },
-
- { { "AD0ex", "SWAP.A A,D0" } },
- { { "AD1ex", "SWAP.A A,D1" } },
- { { "CD0ex", "SWAP.A C,D0" } },
- { { "CD1ex", "SWAP.A C,D1" } },
- { { "AD0xs", "SWAP.S A,D0" } },
- { { "AD1xs", "SWAP.S A,D1" } },
- { { "CD0xs", "SWAP.S C,D0" } },
- { { "CD1xs", "SWAP.S C,D1" } },
+ { { "AR0ex %s", "SWAP.%-2s A,R0" } },
+ { { "AR1ex %s", "SWAP.%-2s A,R1" } },
+ { { "AR2ex %s", "SWAP.%-2s A,R2" } },
+ { { "AR3ex %s", "SWAP.%-2s A,R3" } },
+ { { "AR4ex %s", "SWAP.%-2s A,R4" } },
+
+ { { "CR0ex %s", "SWAP.%-2s C,R0" } },
+ { { "CR1ex %s", "SWAP.%-2s C,R1" } },
+ { { "CR2ex %s", "SWAP.%-2s C,R2" } },
+ { { "CR3ex %s", "SWAP.%-2s C,R3" } },
+ { { "CR4ex %s", "SWAP.%-2s C,R4" } },
+
+ { { "AD0ex", "SWAP.A A,D0" } },
+ { { "AD1ex", "SWAP.A A,D1" } },
+ { { "CD0ex", "SWAP.A C,D0" } },
+ { { "CD1ex", "SWAP.A C,D1" } },
+ { { "AD0xs", "SWAP.S A,D0" } },
+ { { "AD1xs", "SWAP.S A,D1" } },
+ { { "CD0xs", "SWAP.S C,D0" } },
+ { { "CD1xs", "SWAP.S C,D1" } },
// store
- { { "Dat0=A %s", "MOVE.%-2s A,@D0" } },
- { { "Dat1=A %s", "MOVE.%-2s A,@D0" } },
- { { "Dat0=C %s", "MOVE.%-2s C,@D0" } },
- { { "Dat1=C %s", "MOVE.%-2s C,@D0" } },
+ { { "Dat0=A %s", "MOVE.%-2s A,@D0" } },
+ { { "Dat1=A %s", "MOVE.%-2s A,@D0" } },
+ { { "Dat0=C %s", "MOVE.%-2s C,@D0" } },
+ { { "Dat1=C %s", "MOVE.%-2s C,@D0" } },
// load
- { { "A=Dat0 %s", "MOVE.%-2s @D0,A" } },
- { { "A=Dat1 %s", "MOVE.%-2s @D0,A" } },
- { { "C=Dat0 %s", "MOVE.%-2s @D0,C" } },
- { { "C=Dat1 %s", "MOVE.%-2s @D0,C" } },
+ { { "A=Dat0 %s", "MOVE.%-2s @D0,A" } },
+ { { "A=Dat1 %s", "MOVE.%-2s @D0,A" } },
+ { { "C=Dat0 %s", "MOVE.%-2s @D0,C" } },
+ { { "C=Dat1 %s", "MOVE.%-2s @D0,C" } },
// add/sub immediate
- { { "D0=D0+ %x", "ADD.A %x,D0" } },
- { { "D1=D1+ %x", "ADD.A %x,D1" } },
- { { "D0=D0- %x", "SUB.A %x,D0" } },
- { { "D1=D1- %x", "SUB.A %x,D1" } },
-
- { { "A=A+ %s,%x", "ADD.%-2s %x,A" } },
- { { "B=B+ %s,%x", "ADD.%-2s %x,B" } },
- { { "C=C+ %s,%x", "ADD.%-2s %x,C" } },
- { { "D=D+ %s,%x", "ADD.%-2s %x,D" } },
- { { "A=A- %s,%x", "SUB.%-2s %x,A" } },
- { { "B=B- %s,%x", "SUB.%-2s %x,B" } },
- { { "C=C- %s,%x", "SUB.%-2s %x,C" } },
- { { "D=D- %s,%x", "SUB.%-2s %x,D" } },
-
- { { "A=A&B %s", "AND.%-2s B,A" } },
- { { "B=B&C %s", "AND.%-2s C,B" } },
- { { "C=C&A %s", "AND.%-2s A,C" } },
- { { "D=D&C %s", "AND.%-2s C,D" } },
- { { "B=B&A %s", "AND.%-2s A,B" } },
- { { "C=C&B %s", "AND.%-2s B,C" } },
- { { "A=A&C %s", "AND.%-2s C,A" } },
- { { "C=C&D %s", "AND.%-2s D,C" } },
-
- { { "A=A!B %s", "OR.%-2s B,A" } },
- { { "B=B!C %s", "OR.%-2s C,B" } },
- { { "C=C!A %s", "OR.%-2s A,C" } },
- { { "D=D!C %s", "OR.%-2s C,D" } },
- { { "B=B!A %s", "OR.%-2s A,B" } },
- { { "C=C!B %s", "OR.%-2s B,C" } },
- { { "A=A!C %s", "OR.%-2s C,A" } },
- { { "C=C!D %s", "OR.%-2s D,C" } },
-
- { { "Asrb %s", "SRB.%-2s A" } },
- { { "Bsrb %s", "SRB.%-2s B" } },
- { { "Csrb %s", "SRB.%-2s C" } },
- { { "Dsrb %s", "SRB.%-2s D" } },
-
- { { "Aslc %s", "RLN.%-2s A" } },
- { { "Bslc %s", "RLN.%-2s B" } },
- { { "Cslc %s", "RLN.%-2s C" } },
- { { "Dslc %s", "RLN.%-2s D" } },
- { { "Asrc %s", "RRN.%-2s A" } },
- { { "Bsrc %s", "RRN.%-2s B" } },
- { { "Csrc %s", "RRN.%-2s C" } },
- { { "Dsrc %s", "RRN.%-2s D" } },
-
- { { "A=A+B %s", "ADD.%-2s B,A" } },
- { { "B=B+C %s", "ADD.%-2s C,B" } },
- { { "C=C+A %s", "ADD.%-2s A,C" } },
- { { "D=D+C %s", "ADD.%-2s C,D" } },
- { { "A=A+A %s", "ADD.%-2s A,A" } },
- { { "B=B+B %s", "ADD.%-2s B,B" } },
- { { "C=C+C %s", "ADD.%-2s C,C" } },
- { { "D=D+C %s", "ADD.%-2s D,D" } },
- { { "B=B+A %s", "ADD.%-2s A,B" } },
- { { "C=C+B %s", "ADD.%-2s B,C" } },
- { { "A=A+C %s", "ADD.%-2s C,A" } },
- { { "C=C+D %s", "ADD.%-2s D,C" } },
- { { "A=A-1 %s", "DEC.%-2s A" } },
- { { "B=B-1 %s", "DEC.%-2s B" } },
- { { "C=C-1 %s", "DEC.%-2s C" } },
- { { "D=D-1 %s", "DEC.%-2s D" } },
-
- { { "A=A-B %s", "ADD.%-2s B,A" } },
- { { "B=B-C %s", "ADD.%-2s C,B" } },
- { { "C=C-A %s", "ADD.%-2s A,C" } },
- { { "D=D-C %s", "ADD.%-2s C,D" } },
- { { "A=A+1 %s", "INC.%-2s A" } },
- { { "B=B+1 %s", "INC.%-2s B" } },
- { { "C=C+1 %s", "INC.%-2s C" } },
- { { "D=D+1 %s", "INC.%-2s D" } },
- { { "B=B-A %s", "SUB.%-2s A,B" } },
- { { "C=C-B %s", "SUB.%-2s B,C" } },
- { { "A=A-C %s", "SUB.%-2s C,A" } },
- { { "C=C-D %s", "SUB.%-2s D,C" } },
- { { "A=B-A %s", "SUBN.%-2s B,A" } },
- { { "B=C-B %s", "SUBN.%-2s C,B" } },
- { { "C=A-C %s", "SUBN.%-2s A,C" } },
- { { "D=C-D %s", "SUBN.%-2s C,D" } },
-
- { { "A=0 %s", "CLR.%-2s A" } },
- { { "B=0 %s", "CLR.%-2s B" } },
- { { "C=0 %s", "CLR.%-2s C" } },
- { { "D=0 %s", "CLR.%-2s D" } },
- { { "A=B %s", "MOVE.%-2s B,A" } },
- { { "B=C %s", "MOVE.%-2s C,B" } },
- { { "C=A %s", "MOVE.%-2s A,C" } },
- { { "D=C %s", "MOVE.%-2s C,D" } },
- { { "B=A %s", "MOVE.%-2s A,B" } },
- { { "C=B %s", "MOVE.%-2s B,C" } },
- { { "A=C %s", "MOVE.%-2s C,A" } },
- { { "C=D %s", "MOVE.%-2s D,C" } },
- { { "ABex %s", "SWAP.%-2s A,B" } },
- { { "BCex %s", "SWAP.%-2s B,C" } },
- { { "ACex %s", "SWAP.%-2s A,C" } },
- { { "CDex %s", "SWAP.%-2s C,D" } },
-
- { { "Asl %s", "SLN.%-2s A" } },
- { { "Bsl %s", "SLN.%-2s B" } },
- { { "Csl %s", "SLN.%-2s C" } },
- { { "Dsl %s", "SLN.%-2s D" } },
- { { "Asr %s", "SRN.%-2s A" } },
- { { "Bsr %s", "SRN.%-2s B" } },
- { { "Csr %s", "SRN.%-2s C" } },
- { { "Dsr %s", "SRN.%-2s D" } },
- { { "A=-A %s", "NEG.%-2s A" } },
- { { "B=-B %s", "NEG.%-2s B" } },
- { { "C=-C %s", "NEG.%-2s C" } },
- { { "D=-D %s", "NEG.%-2s D" } },
- { { "A=-A-1 %s", "NOT.%-2s A" } },
- { { "B=-B-1 %s", "NOT.%-2s B" } },
- { { "C=-C-1 %s", "NOT.%-2s C" } },
- { { "D=-D-1 %s", "NOT.%-2s D" } }
+ { { "D0=D0+ %x", "ADD.A %x,D0" } },
+ { { "D1=D1+ %x", "ADD.A %x,D1" } },
+ { { "D0=D0- %x", "SUB.A %x,D0" } },
+ { { "D1=D1- %x", "SUB.A %x,D1" } },
+
+ { { "A=A+ %s,%x", "ADD.%-2s %x,A" } },
+ { { "B=B+ %s,%x", "ADD.%-2s %x,B" } },
+ { { "C=C+ %s,%x", "ADD.%-2s %x,C" } },
+ { { "D=D+ %s,%x", "ADD.%-2s %x,D" } },
+ { { "A=A- %s,%x", "SUB.%-2s %x,A" } },
+ { { "B=B- %s,%x", "SUB.%-2s %x,B" } },
+ { { "C=C- %s,%x", "SUB.%-2s %x,C" } },
+ { { "D=D- %s,%x", "SUB.%-2s %x,D" } },
+
+ { { "A=A&B %s", "AND.%-2s B,A" } },
+ { { "B=B&C %s", "AND.%-2s C,B" } },
+ { { "C=C&A %s", "AND.%-2s A,C" } },
+ { { "D=D&C %s", "AND.%-2s C,D" } },
+ { { "B=B&A %s", "AND.%-2s A,B" } },
+ { { "C=C&B %s", "AND.%-2s B,C" } },
+ { { "A=A&C %s", "AND.%-2s C,A" } },
+ { { "C=C&D %s", "AND.%-2s D,C" } },
+
+ { { "A=A!B %s", "OR.%-2s B,A" } },
+ { { "B=B!C %s", "OR.%-2s C,B" } },
+ { { "C=C!A %s", "OR.%-2s A,C" } },
+ { { "D=D!C %s", "OR.%-2s C,D" } },
+ { { "B=B!A %s", "OR.%-2s A,B" } },
+ { { "C=C!B %s", "OR.%-2s B,C" } },
+ { { "A=A!C %s", "OR.%-2s C,A" } },
+ { { "C=C!D %s", "OR.%-2s D,C" } },
+
+ { { "Asrb %s", "SRB.%-2s A" } },
+ { { "Bsrb %s", "SRB.%-2s B" } },
+ { { "Csrb %s", "SRB.%-2s C" } },
+ { { "Dsrb %s", "SRB.%-2s D" } },
+
+ { { "Aslc %s", "RLN.%-2s A" } },
+ { { "Bslc %s", "RLN.%-2s B" } },
+ { { "Cslc %s", "RLN.%-2s C" } },
+ { { "Dslc %s", "RLN.%-2s D" } },
+ { { "Asrc %s", "RRN.%-2s A" } },
+ { { "Bsrc %s", "RRN.%-2s B" } },
+ { { "Csrc %s", "RRN.%-2s C" } },
+ { { "Dsrc %s", "RRN.%-2s D" } },
+
+ { { "A=A+B %s", "ADD.%-2s B,A" } },
+ { { "B=B+C %s", "ADD.%-2s C,B" } },
+ { { "C=C+A %s", "ADD.%-2s A,C" } },
+ { { "D=D+C %s", "ADD.%-2s C,D" } },
+ { { "A=A+A %s", "ADD.%-2s A,A" } },
+ { { "B=B+B %s", "ADD.%-2s B,B" } },
+ { { "C=C+C %s", "ADD.%-2s C,C" } },
+ { { "D=D+C %s", "ADD.%-2s D,D" } },
+ { { "B=B+A %s", "ADD.%-2s A,B" } },
+ { { "C=C+B %s", "ADD.%-2s B,C" } },
+ { { "A=A+C %s", "ADD.%-2s C,A" } },
+ { { "C=C+D %s", "ADD.%-2s D,C" } },
+ { { "A=A-1 %s", "DEC.%-2s A" } },
+ { { "B=B-1 %s", "DEC.%-2s B" } },
+ { { "C=C-1 %s", "DEC.%-2s C" } },
+ { { "D=D-1 %s", "DEC.%-2s D" } },
+
+ { { "A=A-B %s", "ADD.%-2s B,A" } },
+ { { "B=B-C %s", "ADD.%-2s C,B" } },
+ { { "C=C-A %s", "ADD.%-2s A,C" } },
+ { { "D=D-C %s", "ADD.%-2s C,D" } },
+ { { "A=A+1 %s", "INC.%-2s A" } },
+ { { "B=B+1 %s", "INC.%-2s B" } },
+ { { "C=C+1 %s", "INC.%-2s C" } },
+ { { "D=D+1 %s", "INC.%-2s D" } },
+ { { "B=B-A %s", "SUB.%-2s A,B" } },
+ { { "C=C-B %s", "SUB.%-2s B,C" } },
+ { { "A=A-C %s", "SUB.%-2s C,A" } },
+ { { "C=C-D %s", "SUB.%-2s D,C" } },
+ { { "A=B-A %s", "SUBN.%-2s B,A" } },
+ { { "B=C-B %s", "SUBN.%-2s C,B" } },
+ { { "C=A-C %s", "SUBN.%-2s A,C" } },
+ { { "D=C-D %s", "SUBN.%-2s C,D" } },
+
+ { { "A=0 %s", "CLR.%-2s A" } },
+ { { "B=0 %s", "CLR.%-2s B" } },
+ { { "C=0 %s", "CLR.%-2s C" } },
+ { { "D=0 %s", "CLR.%-2s D" } },
+ { { "A=B %s", "MOVE.%-2s B,A" } },
+ { { "B=C %s", "MOVE.%-2s C,B" } },
+ { { "C=A %s", "MOVE.%-2s A,C" } },
+ { { "D=C %s", "MOVE.%-2s C,D" } },
+ { { "B=A %s", "MOVE.%-2s A,B" } },
+ { { "C=B %s", "MOVE.%-2s B,C" } },
+ { { "A=C %s", "MOVE.%-2s C,A" } },
+ { { "C=D %s", "MOVE.%-2s D,C" } },
+ { { "ABex %s", "SWAP.%-2s A,B" } },
+ { { "BCex %s", "SWAP.%-2s B,C" } },
+ { { "ACex %s", "SWAP.%-2s A,C" } },
+ { { "CDex %s", "SWAP.%-2s C,D" } },
+
+ { { "Asl %s", "SLN.%-2s A" } },
+ { { "Bsl %s", "SLN.%-2s B" } },
+ { { "Csl %s", "SLN.%-2s C" } },
+ { { "Dsl %s", "SLN.%-2s D" } },
+ { { "Asr %s", "SRN.%-2s A" } },
+ { { "Bsr %s", "SRN.%-2s B" } },
+ { { "Csr %s", "SRN.%-2s C" } },
+ { { "Dsr %s", "SRN.%-2s D" } },
+ { { "A=-A %s", "NEG.%-2s A" } },
+ { { "B=-B %s", "NEG.%-2s B" } },
+ { { "C=-C %s", "NEG.%-2s C" } },
+ { { "D=-D %s", "NEG.%-2s D" } },
+ { { "A=-A-1 %s", "NOT.%-2s A" } },
+ { { "B=-B-1 %s", "NOT.%-2s B" } },
+ { { "C=-C-1 %s", "NOT.%-2s C" } },
+ { { "D=-D-1 %s", "NOT.%-2s D" } }
};
@@ -612,12 +612,12 @@ static const OPCODE opcodes[][0x10]= {
// first digit
{ Opcode0 },
{ Opcode1 },
- { Complete, Imm, PloadImm },
- { Complete, ImmCload, CloadImm },
- { Complete, BranchReturn, branchCarrySet},
- { Complete, BranchReturn, branchCarryClear },
- { Complete, Dis3, jump3 },
- { Complete, Dis3Call, call3 },
+ { Complete, Imm, PloadImm },
+ { Complete, ImmCload, CloadImm },
+ { Complete, BranchReturn, branchCarrySet},
+ { Complete, BranchReturn, branchCarryClear },
+ { Complete, Dis3, jump3 },
+ { Complete, Dis3Call, call3 },
{ Opcode8 },
{ Opcode9 },
{ OpcodeA },
@@ -627,31 +627,31 @@ static const OPCODE opcodes[][0x10]= {
{ OpcodeE },
{ OpcodeF }
}, { // 0
- { Complete, AdrNone, ReturnSetXM },
- { Complete, AdrNone, Return },
- { Complete, AdrNone, ReturnSetCarry },
- { Complete, AdrNone, ReturnClearCarry },
- { Complete, AdrNone, SetHexMode },
- { Complete, AdrNone, SetDecMode },
- { Complete, AdrNone, PushC },
- { Complete, AdrNone, PopC },
- { Complete, AdrNone, clearST },
- { Complete, AdrNone, CcopyST },
- { Complete, AdrNone, STcopyC },
- { Complete, AdrNone, swapCST },
- { Complete, AdrNone, incP },
- { Complete, AdrNone, decP },
+ { Complete, AdrNone, ReturnSetXM },
+ { Complete, AdrNone, Return },
+ { Complete, AdrNone, ReturnSetCarry },
+ { Complete, AdrNone, ReturnClearCarry },
+ { Complete, AdrNone, SetHexMode },
+ { Complete, AdrNone, SetDecMode },
+ { Complete, AdrNone, PushC },
+ { Complete, AdrNone, PopC },
+ { Complete, AdrNone, clearST },
+ { Complete, AdrNone, CcopyST },
+ { Complete, AdrNone, STcopyC },
+ { Complete, AdrNone, swapCST },
+ { Complete, AdrNone, incP },
+ { Complete, AdrNone, decP },
{ Opcode0E },
- { Complete, AdrNone, ReturnFromInterrupt }
+ { Complete, AdrNone, ReturnFromInterrupt }
}, { //0E
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
- { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
+ { Opcode0Ea, AdrAF },
{ Illegal },
{ Illegal },
{ Illegal },
@@ -659,24 +659,24 @@ static const OPCODE opcodes[][0x10]= {
{ Illegal },
{ Illegal },
{ Illegal },
- { Opcode0Ea, AdrAF }
+ { Opcode0Ea, AdrAF }
}, { //0Ea
- { Complete, AdrNone, AandB },
- { Complete, AdrNone, BandC },
- { Complete, AdrNone, CandA },
- { Complete, AdrNone, DandC },
- { Complete, AdrNone, BandA },
- { Complete, AdrNone, CandB },
- { Complete, AdrNone, AandC },
- { Complete, AdrNone, CandD },
- { Complete, AdrNone, AorB },
- { Complete, AdrNone, BorC },
- { Complete, AdrNone, CorA },
- { Complete, AdrNone, DorC },
- { Complete, AdrNone, BorA },
- { Complete, AdrNone, CorB },
- { Complete, AdrNone, AorC },
- { Complete, AdrNone, CorD }
+ { Complete, AdrNone, AandB },
+ { Complete, AdrNone, BandC },
+ { Complete, AdrNone, CandA },
+ { Complete, AdrNone, DandC },
+ { Complete, AdrNone, BandA },
+ { Complete, AdrNone, CandB },
+ { Complete, AdrNone, AandC },
+ { Complete, AdrNone, CandD },
+ { Complete, AdrNone, AorB },
+ { Complete, AdrNone, BorC },
+ { Complete, AdrNone, CorA },
+ { Complete, AdrNone, DorC },
+ { Complete, AdrNone, BorA },
+ { Complete, AdrNone, CorB },
+ { Complete, AdrNone, AorC },
+ { Complete, AdrNone, CorD }
}, { //1
{ Opcode10 },
{ Opcode11 },
@@ -684,198 +684,198 @@ static const OPCODE opcodes[][0x10]= {
{ Opcode13 },
{ Opcode14 },
{ Opcode15 },
- { Complete, ImmCount, D0addImm },
- { Complete, ImmCount, D1addImm },
- { Complete, ImmCount, D0subImm },
- { Complete, Imm2, D0loadImm2 },
- { Complete, Imm4, D0loadImm4 },
- { Complete, Imm5, D0loadImm5 },
- { Complete, ImmCount, D1subImm },
- { Complete, Imm2, D1loadImm2 },
- { Complete, Imm4, D1loadImm4 },
- { Complete, Imm5, D1loadImm5 }
+ { Complete, ImmCount, D0addImm },
+ { Complete, ImmCount, D1addImm },
+ { Complete, ImmCount, D0subImm },
+ { Complete, Imm2, D0loadImm2 },
+ { Complete, Imm4, D0loadImm4 },
+ { Complete, Imm5, D0loadImm5 },
+ { Complete, ImmCount, D1subImm },
+ { Complete, Imm2, D1loadImm2 },
+ { Complete, Imm4, D1loadImm4 },
+ { Complete, Imm5, D1loadImm5 }
}, { //10
- { Complete, FieldW, R0copyA },
- { Complete, FieldW, R1copyA },
- { Complete, FieldW, R2copyA },
- { Complete, FieldW, R3copyA },
- { Complete, FieldW, R4copyA },
+ { Complete, FieldW, R0copyA },
+ { Complete, FieldW, R1copyA },
+ { Complete, FieldW, R2copyA },
+ { Complete, FieldW, R3copyA },
+ { Complete, FieldW, R4copyA },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, FieldW, R0copyC },
- { Complete, FieldW, R1copyC },
- { Complete, FieldW, R2copyC },
- { Complete, FieldW, R3copyC },
- { Complete, FieldW, R4copyC },
+ { Complete, FieldW, R0copyC },
+ { Complete, FieldW, R1copyC },
+ { Complete, FieldW, R2copyC },
+ { Complete, FieldW, R3copyC },
+ { Complete, FieldW, R4copyC },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //11
- { Complete, FieldW, AcopyR0 },
- { Complete, FieldW, AcopyR1 },
- { Complete, FieldW, AcopyR2 },
- { Complete, FieldW, AcopyR3 },
- { Complete, FieldW, AcopyR4 },
+ { Complete, FieldW, AcopyR0 },
+ { Complete, FieldW, AcopyR1 },
+ { Complete, FieldW, AcopyR2 },
+ { Complete, FieldW, AcopyR3 },
+ { Complete, FieldW, AcopyR4 },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, FieldW, CcopyR0 },
- { Complete, FieldW, CcopyR1 },
- { Complete, FieldW, CcopyR2 },
- { Complete, FieldW, CcopyR3 },
- { Complete, FieldW, CcopyR4 },
+ { Complete, FieldW, CcopyR0 },
+ { Complete, FieldW, CcopyR1 },
+ { Complete, FieldW, CcopyR2 },
+ { Complete, FieldW, CcopyR3 },
+ { Complete, FieldW, CcopyR4 },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //12
- { Complete, FieldW, SwapAR0 },
- { Complete, FieldW, SwapAR1 },
- { Complete, FieldW, SwapAR2 },
- { Complete, FieldW, SwapAR3 },
- { Complete, FieldW, SwapAR4 },
+ { Complete, FieldW, SwapAR0 },
+ { Complete, FieldW, SwapAR1 },
+ { Complete, FieldW, SwapAR2 },
+ { Complete, FieldW, SwapAR3 },
+ { Complete, FieldW, SwapAR4 },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, FieldW, SwapCR0 },
- { Complete, FieldW, SwapCR1 },
- { Complete, FieldW, SwapCR2 },
- { Complete, FieldW, SwapCR3 },
- { Complete, FieldW, SwapCR4 },
+ { Complete, FieldW, SwapCR0 },
+ { Complete, FieldW, SwapCR1 },
+ { Complete, FieldW, SwapCR2 },
+ { Complete, FieldW, SwapCR3 },
+ { Complete, FieldW, SwapCR4 },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //13
- { Complete, FieldA, D0copyA },
- { Complete, FieldA, D1copyA },
- { Complete, FieldA, SwapAD0 },
- { Complete, FieldA, SwapAD1 },
- { Complete, FieldA, D0copyC },
- { Complete, FieldA, D1copyC },
- { Complete, FieldA, SwapCD0 },
- { Complete, FieldA, SwapCD1 },
- { Complete, FieldS, D0copyAShort },
- { Complete, FieldS, D1copyAShort },
- { Complete, FieldS, SwapAD0Short },
- { Complete, FieldS, SwapAD1Short },
- { Complete, FieldS, D0copyCShort },
- { Complete, FieldS, D1copyCShort },
- { Complete, FieldS, SwapCD0Short },
- { Complete, FieldS, SwapCD1Short }
+ { Complete, FieldA, D0copyA },
+ { Complete, FieldA, D1copyA },
+ { Complete, FieldA, SwapAD0 },
+ { Complete, FieldA, SwapAD1 },
+ { Complete, FieldA, D0copyC },
+ { Complete, FieldA, D1copyC },
+ { Complete, FieldA, SwapCD0 },
+ { Complete, FieldA, SwapCD1 },
+ { Complete, FieldS, D0copyAShort },
+ { Complete, FieldS, D1copyAShort },
+ { Complete, FieldS, SwapAD0Short },
+ { Complete, FieldS, SwapAD1Short },
+ { Complete, FieldS, D0copyCShort },
+ { Complete, FieldS, D1copyCShort },
+ { Complete, FieldS, SwapCD0Short },
+ { Complete, FieldS, SwapCD1Short }
}, { //14
- { Complete, FieldA, D0storeA },
- { Complete, FieldA, D1storeA },
- { Complete, FieldA, AloadD0 },
- { Complete, FieldA, AloadD1 },
- { Complete, FieldA, D0storeC },
- { Complete, FieldA, D1storeC },
- { Complete, FieldA, CloadD0 },
- { Complete, FieldA, CloadD1 },
- { Complete, FieldB, D0storeA },
- { Complete, FieldB, D1storeA },
- { Complete, FieldB, AloadD0 },
- { Complete, FieldB, AloadD1 },
- { Complete, FieldB, D0storeC },
- { Complete, FieldB, D1storeC },
- { Complete, FieldB, CloadD0 },
- { Complete, FieldB, CloadD1 }
+ { Complete, FieldA, D0storeA },
+ { Complete, FieldA, D1storeA },
+ { Complete, FieldA, AloadD0 },
+ { Complete, FieldA, AloadD1 },
+ { Complete, FieldA, D0storeC },
+ { Complete, FieldA, D1storeC },
+ { Complete, FieldA, CloadD0 },
+ { Complete, FieldA, CloadD1 },
+ { Complete, FieldB, D0storeA },
+ { Complete, FieldB, D1storeA },
+ { Complete, FieldB, AloadD0 },
+ { Complete, FieldB, AloadD1 },
+ { Complete, FieldB, D0storeC },
+ { Complete, FieldB, D1storeC },
+ { Complete, FieldB, CloadD0 },
+ { Complete, FieldB, CloadD1 }
}, { //15
- { Complete, AdrA, D0storeA },
- { Complete, AdrA, D1storeA },
- { Complete, AdrA, AloadD0 },
- { Complete, AdrA, AloadD1 },
- { Complete, AdrA, D0storeC },
- { Complete, AdrA, D1storeC },
- { Complete, AdrA, CloadD0 },
- { Complete, AdrA, CloadD1 },
- { Complete, AdrCount, D0storeA },
- { Complete, AdrCount, D1storeA },
- { Complete, AdrCount, AloadD0 },
- { Complete, AdrCount, AloadD1 },
- { Complete, AdrCount, D0storeC },
- { Complete, AdrCount, D1storeC },
- { Complete, AdrCount, CloadD0 },
- { Complete, AdrCount, CloadD1 },
+ { Complete, AdrA, D0storeA },
+ { Complete, AdrA, D1storeA },
+ { Complete, AdrA, AloadD0 },
+ { Complete, AdrA, AloadD1 },
+ { Complete, AdrA, D0storeC },
+ { Complete, AdrA, D1storeC },
+ { Complete, AdrA, CloadD0 },
+ { Complete, AdrA, CloadD1 },
+ { Complete, AdrCount, D0storeA },
+ { Complete, AdrCount, D1storeA },
+ { Complete, AdrCount, AloadD0 },
+ { Complete, AdrCount, AloadD1 },
+ { Complete, AdrCount, D0storeC },
+ { Complete, AdrCount, D1storeC },
+ { Complete, AdrCount, CloadD0 },
+ { Complete, AdrCount, CloadD1 },
}, { //8
{ Opcode80 },
{ Opcode81 },
- { Complete, Imm, clearHST },
- { Complete, TestBranchRet, branchHSTclear },
- { Complete, Imm, clearBitST },
- { Complete, Imm, setBitST },
- { Complete, TestBranchRet, branchSTclear },
- { Complete, TestBranchRet, branchSTset },
- { Complete, TestBranchRet, branchPdiffers},
- { Complete, TestBranchRet, branchPequals},
+ { Complete, Imm, clearHST },
+ { Complete, TestBranchRet, branchHSTclear },
+ { Complete, Imm, clearBitST },
+ { Complete, Imm, setBitST },
+ { Complete, TestBranchRet, branchSTclear },
+ { Complete, TestBranchRet, branchSTset },
+ { Complete, TestBranchRet, branchPdiffers},
+ { Complete, TestBranchRet, branchPequals},
{ Opcode8A },
{ Opcode8B },
- { Complete, Dis4, jump4 },
- { Complete, Abs, jump },
- { Complete, Dis4Call, call4 },
- { Complete, Abs, call }
+ { Complete, Dis4, jump4 },
+ { Complete, Abs, jump },
+ { Complete, Dis4Call, call4 },
+ { Complete, Abs, call }
}, { //80
- { Complete, AdrNone, outCS },
- { Complete, AdrNone, outC },
- { Complete, AdrNone, inA },
- { Complete, AdrNone, inC },
- { Complete, AdrNone, unconfig },
- { Complete, AdrNone, config },
- { Complete, AdrNone, Cid },
- { Complete, AdrNone, shutdown },
+ { Complete, AdrNone, outCS },
+ { Complete, AdrNone, outC },
+ { Complete, AdrNone, inA },
+ { Complete, AdrNone, inC },
+ { Complete, AdrNone, unconfig },
+ { Complete, AdrNone, config },
+ { Complete, AdrNone, Cid },
+ { Complete, AdrNone, shutdown },
{ Opcode808 },
- { Complete, AdrNone, cp1 },
- { Complete, AdrNone, reset },
- { Complete, AdrNone, buscc },
- { Complete, Imm, CcopyP },
- { Complete, Imm, PcopyC },
- { Complete, AdrNone, sreq },
- { Complete, Imm, CswapP }
+ { Complete, AdrNone, cp1 },
+ { Complete, AdrNone, reset },
+ { Complete, AdrNone, buscc },
+ { Complete, Imm, CcopyP },
+ { Complete, Imm, PcopyC },
+ { Complete, AdrNone, sreq },
+ { Complete, Imm, CswapP }
}, { //808
- { Complete, AdrNone, inton },
+ { Complete, AdrNone, inton },
{ Opcode8081 },
- { Complete, ImmCload, AloadImm },
- { Complete, AdrNone, buscb },
- { Complete, Imm, clearAbit },
- { Complete, Imm, setAbit },
- { Complete, TestBranchRet, branchAbitclear },
- { Complete, TestBranchRet, branchAbitset },
- { Complete, Imm, clearCbit },
- { Complete, Imm, setCbit },
- { Complete, TestBranchRet, branchCbitclear },
- { Complete, TestBranchRet, branchCbitset },
- { Complete, AdrNone, PCloadA },
- { Complete, AdrNone, buscd },
- { Complete, AdrNone, PCloadC },
- { Complete, AdrNone, intoff }
+ { Complete, ImmCload, AloadImm },
+ { Complete, AdrNone, buscb },
+ { Complete, Imm, clearAbit },
+ { Complete, Imm, setAbit },
+ { Complete, TestBranchRet, branchAbitclear },
+ { Complete, TestBranchRet, branchAbitset },
+ { Complete, Imm, clearCbit },
+ { Complete, Imm, setCbit },
+ { Complete, TestBranchRet, branchCbitclear },
+ { Complete, TestBranchRet, branchCbitset },
+ { Complete, AdrNone, PCloadA },
+ { Complete, AdrNone, buscd },
+ { Complete, AdrNone, PCloadC },
+ { Complete, AdrNone, intoff }
}, { //8081
- { Complete, AdrNone, rsi },
+ { Complete, AdrNone, rsi },
//! rest illegal
}, { //81
- { Complete, FieldW, AshiftleftCarry },
- { Complete, FieldW, BshiftleftCarry },
- { Complete, FieldW, CshiftleftCarry },
- { Complete, FieldW, DshiftleftCarry },
- { Complete, FieldW, AshiftrightCarry },
- { Complete, FieldW, BshiftrightCarry },
- { Complete, FieldW, CshiftrightCarry },
- { Complete, FieldW, DshiftrightCarry },
+ { Complete, FieldW, AshiftleftCarry },
+ { Complete, FieldW, BshiftleftCarry },
+ { Complete, FieldW, CshiftleftCarry },
+ { Complete, FieldW, DshiftleftCarry },
+ { Complete, FieldW, AshiftrightCarry },
+ { Complete, FieldW, BshiftrightCarry },
+ { Complete, FieldW, CshiftrightCarry },
+ { Complete, FieldW, DshiftrightCarry },
{ Opcode818 },
{ Opcode819 },
{ Opcode81A },
{ Opcode81B },
- { Complete, FieldW, Ashiftrightbit },
- { Complete, FieldW, Bshiftrightbit },
- { Complete, FieldW, Cshiftrightbit },
- { Complete, FieldW, Dshiftrightbit }
+ { Complete, FieldW, Ashiftrightbit },
+ { Complete, FieldW, Bshiftrightbit },
+ { Complete, FieldW, Cshiftrightbit },
+ { Complete, FieldW, Dshiftrightbit }
}, { //818
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
- { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
{ Illegal },
{ Illegal },
{ Illegal },
@@ -883,33 +883,33 @@ static const OPCODE opcodes[][0x10]= {
{ Illegal },
{ Illegal },
{ Illegal },
- { Opcode818a, AdrAF },
+ { Opcode818a, AdrAF },
}, { //818a
- { Complete, AdrImmCount, AaddImm },
- { Complete, AdrImmCount, BaddImm },
- { Complete, AdrImmCount, CaddImm },
- { Complete, AdrImmCount, DaddImm },
+ { Complete, AdrImmCount, AaddImm },
+ { Complete, AdrImmCount, BaddImm },
+ { Complete, AdrImmCount, CaddImm },
+ { Complete, AdrImmCount, DaddImm },
{ Illegal },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, AdrImmCount, AsubImm },
- { Complete, AdrImmCount, BsubImm },
- { Complete, AdrImmCount, CsubImm },
- { Complete, AdrImmCount, DsubImm },
+ { Complete, AdrImmCount, AsubImm },
+ { Complete, AdrImmCount, BsubImm },
+ { Complete, AdrImmCount, CsubImm },
+ { Complete, AdrImmCount, DsubImm },
{ Illegal },
{ Illegal },
{ Illegal },
{ Illegal },
}, { //819
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF },
- { Opcode819a, AdrAF }, //?
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF }, //?
{ Illegal },
{ Illegal },
{ Illegal },
@@ -917,22 +917,22 @@ static const OPCODE opcodes[][0x10]= {
{ Illegal },
{ Illegal },
{ Illegal },
- { Opcode819a, AdrAF },
+ { Opcode819a, AdrAF },
}, { //819a }
- { Complete, AdrNone, Ashiftright },
- { Complete, AdrNone, Bshiftright },
- { Complete, AdrNone, Cshiftright },
- { Complete, AdrNone, Dshiftright },
+ { Complete, AdrNone, Ashiftright },
+ { Complete, AdrNone, Bshiftright },
+ { Complete, AdrNone, Cshiftright },
+ { Complete, AdrNone, Dshiftright },
//! rest illegal
}, { //81A
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
- { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
{ Illegal },
{ Illegal },
{ Illegal },
@@ -940,72 +940,72 @@ static const OPCODE opcodes[][0x10]= {
{ Illegal },
{ Illegal },
{ Illegal },
- { Opcode81Aa, AdrAF },
+ { Opcode81Aa, AdrAF },
}, { //81Aa
{ Opcode81Aa0 },
{ Opcode81Aa1 },
{ Opcode81Aa2 },
//! rest illegal
}, { //81Aa0
- { Complete, AdrNone, R0copyA },
- { Complete, AdrNone, R1copyA },
- { Complete, AdrNone, R2copyA },
- { Complete, AdrNone, R3copyA },
- { Complete, AdrNone, R4copyA },
+ { Complete, AdrNone, R0copyA },
+ { Complete, AdrNone, R1copyA },
+ { Complete, AdrNone, R2copyA },
+ { Complete, AdrNone, R3copyA },
+ { Complete, AdrNone, R4copyA },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, AdrNone, R0copyC },
- { Complete, AdrNone, R1copyC },
- { Complete, AdrNone, R2copyC },
- { Complete, AdrNone, R3copyC },
- { Complete, AdrNone, R4copyC },
+ { Complete, AdrNone, R0copyC },
+ { Complete, AdrNone, R1copyC },
+ { Complete, AdrNone, R2copyC },
+ { Complete, AdrNone, R3copyC },
+ { Complete, AdrNone, R4copyC },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //81Aa1
- { Complete, AdrNone, AcopyR0 },
- { Complete, AdrNone, AcopyR1 },
- { Complete, AdrNone, AcopyR2 },
- { Complete, AdrNone, AcopyR3 },
- { Complete, AdrNone, AcopyR4 },
+ { Complete, AdrNone, AcopyR0 },
+ { Complete, AdrNone, AcopyR1 },
+ { Complete, AdrNone, AcopyR2 },
+ { Complete, AdrNone, AcopyR3 },
+ { Complete, AdrNone, AcopyR4 },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, AdrNone, CcopyR0 },
- { Complete, AdrNone, CcopyR1 },
- { Complete, AdrNone, CcopyR2 },
- { Complete, AdrNone, CcopyR3 },
- { Complete, AdrNone, CcopyR4 },
+ { Complete, AdrNone, CcopyR0 },
+ { Complete, AdrNone, CcopyR1 },
+ { Complete, AdrNone, CcopyR2 },
+ { Complete, AdrNone, CcopyR3 },
+ { Complete, AdrNone, CcopyR4 },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //81Aa2
- { Complete, AdrNone, SwapAR0 },
- { Complete, AdrNone, SwapAR1 },
- { Complete, AdrNone, SwapAR2 },
- { Complete, AdrNone, SwapAR3 },
- { Complete, AdrNone, SwapAR4 },
+ { Complete, AdrNone, SwapAR0 },
+ { Complete, AdrNone, SwapAR1 },
+ { Complete, AdrNone, SwapAR2 },
+ { Complete, AdrNone, SwapAR3 },
+ { Complete, AdrNone, SwapAR4 },
{ Illegal },
{ Illegal },
{ Illegal },
- { Complete, AdrNone, SwapCR0 },
- { Complete, AdrNone, SwapCR1 },
- { Complete, AdrNone, SwapCR2 },
- { Complete, AdrNone, SwapCR3 },
- { Complete, AdrNone, SwapCR4 },
+ { Complete, AdrNone, SwapCR0 },
+ { Complete, AdrNone, SwapCR1 },
+ { Complete, AdrNone, SwapCR2 },
+ { Complete, AdrNone, SwapCR3 },
+ { Complete, AdrNone, SwapCR4 },
{ Illegal },
{ Illegal },
{ Illegal }
}, { //81B
{ Illegal },
{ Illegal },
- { Complete, AdrNone, jumpA },
- { Complete, AdrNone, jumpC },
- { Complete, AdrNone, PCcopyA },
- { Complete, AdrNone, PCcopyC },
- { Complete, AdrNone, AcopyPC },
- { Complete, AdrNone, CcopyPC },
+ { Complete, AdrNone, jumpA },
+ { Complete, AdrNone, jumpC },
+ { Complete, AdrNone, PCcopyA },
+ { Complete, AdrNone, PCcopyC },
+ { Complete, AdrNone, AcopyPC },
+ { Complete, AdrNone, CcopyPC },
{ Illegal },
{ Illegal },
{ Illegal },
@@ -1015,260 +1015,260 @@ static const OPCODE opcodes[][0x10]= {
{ Illegal },
{ Illegal }
}, { //8A
- { Complete, ABranchReturn, branchAequalsB },
- { Complete, ABranchReturn, branchBequalsC },
- { Complete, ABranchReturn, branchAequalsC },
- { Complete, ABranchReturn, branchCequalsD },
- { Complete, ABranchReturn, branchAdiffersB },
- { Complete, ABranchReturn, branchBdiffersC },
- { Complete, ABranchReturn, branchAdiffersC },
- { Complete, ABranchReturn, branchCdiffersD },
- { Complete, ABranchReturn, branchAzero },
- { Complete, ABranchReturn, branchBzero },
- { Complete, ABranchReturn, branchCzero },
- { Complete, ABranchReturn, branchDzero },
- { Complete, ABranchReturn, branchAnotzero },
- { Complete, ABranchReturn, branchBnotzero },
- { Complete, ABranchReturn, branchCnotzero },
- { Complete, ABranchReturn, branchDnotzero }
+ { Complete, ABranchReturn, branchAequalsB },
+ { Complete, ABranchReturn, branchBequalsC },
+ { Complete, ABranchReturn, branchAequalsC },
+ { Complete, ABranchReturn, branchCequalsD },
+ { Complete, ABranchReturn, branchAdiffersB },
+ { Complete, ABranchReturn, branchBdiffersC },
+ { Complete, ABranchReturn, branchAdiffersC },
+ { Complete, ABranchReturn, branchCdiffersD },
+ { Complete, ABranchReturn, branchAzero },
+ { Complete, ABranchReturn, branchBzero },
+ { Complete, ABranchReturn, branchCzero },
+ { Complete, ABranchReturn, branchDzero },
+ { Complete, ABranchReturn, branchAnotzero },
+ { Complete, ABranchReturn, branchBnotzero },
+ { Complete, ABranchReturn, branchCnotzero },
+ { Complete, ABranchReturn, branchDnotzero }
}, { //8B
- { Complete, ABranchReturn, branchAgreaterB },
- { Complete, ABranchReturn, branchBgreaterC },
- { Complete, ABranchReturn, branchCgreaterA },
- { Complete, ABranchReturn, branchDgreaterC },
- { Complete, ABranchReturn, branchAlowerB },
- { Complete, ABranchReturn, branchBlowerC },
- { Complete, ABranchReturn, branchClowerA },
- { Complete, ABranchReturn, branchDlowerC },
- { Complete, ABranchReturn, branchAnotlowerB },
- { Complete, ABranchReturn, branchBnotlowerC },
- { Complete, ABranchReturn, branchCnotlowerA },
- { Complete, ABranchReturn, branchDnotlowerC },
- { Complete, ABranchReturn, branchAnotgreaterB },
- { Complete, ABranchReturn, branchBnotgreaterC },
- { Complete, ABranchReturn, branchCnotgreaterA },
- { Complete, ABranchReturn, branchDnotgreaterC }
+ { Complete, ABranchReturn, branchAgreaterB },
+ { Complete, ABranchReturn, branchBgreaterC },
+ { Complete, ABranchReturn, branchCgreaterA },
+ { Complete, ABranchReturn, branchDgreaterC },
+ { Complete, ABranchReturn, branchAlowerB },
+ { Complete, ABranchReturn, branchBlowerC },
+ { Complete, ABranchReturn, branchClowerA },
+ { Complete, ABranchReturn, branchDlowerC },
+ { Complete, ABranchReturn, branchAnotlowerB },
+ { Complete, ABranchReturn, branchBnotlowerC },
+ { Complete, ABranchReturn, branchCnotlowerA },
+ { Complete, ABranchReturn, branchDnotlowerC },
+ { Complete, ABranchReturn, branchAnotgreaterB },
+ { Complete, ABranchReturn, branchBnotgreaterC },
+ { Complete, ABranchReturn, branchCnotgreaterA },
+ { Complete, ABranchReturn, branchDnotgreaterC }
}, { //9
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9a, AdrA },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
- { Opcode9b, AdrB },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9a, AdrA },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
+ { Opcode9b, AdrB },
}, { //9a
- { Complete, xBranchReturn, branchAequalsB },
- { Complete, xBranchReturn, branchBequalsC },
- { Complete, xBranchReturn, branchAequalsC },
- { Complete, xBranchReturn, branchCequalsD },
- { Complete, xBranchReturn, branchAdiffersB },
- { Complete, xBranchReturn, branchBdiffersC },
- { Complete, xBranchReturn, branchAdiffersC },
- { Complete, xBranchReturn, branchCdiffersD },
- { Complete, xBranchReturn, branchAzero },
- { Complete, xBranchReturn, branchBzero },
- { Complete, xBranchReturn, branchCzero },
- { Complete, xBranchReturn, branchDzero },
- { Complete, xBranchReturn, branchAnotzero },
- { Complete, xBranchReturn, branchBnotzero },
- { Complete, xBranchReturn, branchCnotzero },
- { Complete, xBranchReturn, branchDnotzero }
+ { Complete, xBranchReturn, branchAequalsB },
+ { Complete, xBranchReturn, branchBequalsC },
+ { Complete, xBranchReturn, branchAequalsC },
+ { Complete, xBranchReturn, branchCequalsD },
+ { Complete, xBranchReturn, branchAdiffersB },
+ { Complete, xBranchReturn, branchBdiffersC },
+ { Complete, xBranchReturn, branchAdiffersC },
+ { Complete, xBranchReturn, branchCdiffersD },
+ { Complete, xBranchReturn, branchAzero },
+ { Complete, xBranchReturn, branchBzero },
+ { Complete, xBranchReturn, branchCzero },
+ { Complete, xBranchReturn, branchDzero },
+ { Complete, xBranchReturn, branchAnotzero },
+ { Complete, xBranchReturn, branchBnotzero },
+ { Complete, xBranchReturn, branchCnotzero },
+ { Complete, xBranchReturn, branchDnotzero }
}, { //9b
- { Complete, xBranchReturn, branchAgreaterB },
- { Complete, xBranchReturn, branchBgreaterC },
- { Complete, xBranchReturn, branchCgreaterA },
- { Complete, xBranchReturn, branchDgreaterC },
- { Complete, xBranchReturn, branchAlowerB },
- { Complete, xBranchReturn, branchBlowerC },
- { Complete, xBranchReturn, branchClowerA },
- { Complete, xBranchReturn, branchDlowerC },
- { Complete, xBranchReturn, branchAnotlowerB },
- { Complete, xBranchReturn, branchBnotlowerC },
- { Complete, xBranchReturn, branchCnotlowerA },
- { Complete, xBranchReturn, branchDnotlowerC },
- { Complete, xBranchReturn, branchAnotgreaterB },
- { Complete, xBranchReturn, branchBnotgreaterC },
- { Complete, xBranchReturn, branchCnotgreaterA },
- { Complete, xBranchReturn, branchDnotgreaterC }
+ { Complete, xBranchReturn, branchAgreaterB },
+ { Complete, xBranchReturn, branchBgreaterC },
+ { Complete, xBranchReturn, branchCgreaterA },
+ { Complete, xBranchReturn, branchDgreaterC },
+ { Complete, xBranchReturn, branchAlowerB },
+ { Complete, xBranchReturn, branchBlowerC },
+ { Complete, xBranchReturn, branchClowerA },
+ { Complete, xBranchReturn, branchDlowerC },
+ { Complete, xBranchReturn, branchAnotlowerB },
+ { Complete, xBranchReturn, branchBnotlowerC },
+ { Complete, xBranchReturn, branchCnotlowerA },
+ { Complete, xBranchReturn, branchDnotlowerC },
+ { Complete, xBranchReturn, branchAnotgreaterB },
+ { Complete, xBranchReturn, branchBnotgreaterC },
+ { Complete, xBranchReturn, branchCnotgreaterA },
+ { Complete, xBranchReturn, branchDnotgreaterC }
}, { //A
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAa, AdrA },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
- { OpcodeAb, AdrB },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAa, AdrA },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
+ { OpcodeAb, AdrB },
}, { //Aa
- { Complete, AdrNone, AaddB },
- { Complete, AdrNone, BaddC },
- { Complete, AdrNone, CaddA },
- { Complete, AdrNone, DaddC },
- { Complete, AdrNone, AaddA },
- { Complete, AdrNone, BaddB },
- { Complete, AdrNone, CaddC },
- { Complete, AdrNone, DaddD },
- { Complete, AdrNone, BaddA },
- { Complete, AdrNone, CaddB },
- { Complete, AdrNone, AaddC },
- { Complete, AdrNone, CaddD },
- { Complete, AdrNone, decA },
- { Complete, AdrNone, decB },
- { Complete, AdrNone, decC },
- { Complete, AdrNone, decD },
+ { Complete, AdrNone, AaddB },
+ { Complete, AdrNone, BaddC },
+ { Complete, AdrNone, CaddA },
+ { Complete, AdrNone, DaddC },
+ { Complete, AdrNone, AaddA },
+ { Complete, AdrNone, BaddB },
+ { Complete, AdrNone, CaddC },
+ { Complete, AdrNone, DaddD },
+ { Complete, AdrNone, BaddA },
+ { Complete, AdrNone, CaddB },
+ { Complete, AdrNone, AaddC },
+ { Complete, AdrNone, CaddD },
+ { Complete, AdrNone, decA },
+ { Complete, AdrNone, decB },
+ { Complete, AdrNone, decC },
+ { Complete, AdrNone, decD },
}, { //Ab
- { Complete, AdrNone, clearA },
- { Complete, AdrNone, clearB },
- { Complete, AdrNone, clearC },
- { Complete, AdrNone, clearD },
- { Complete, AdrNone, AcopyB },
- { Complete, AdrNone, BcopyC },
- { Complete, AdrNone, CcopyA },
- { Complete, AdrNone, DcopyC },
- { Complete, AdrNone, BcopyA },
- { Complete, AdrNone, CcopyB },
- { Complete, AdrNone, AcopyC },
- { Complete, AdrNone, CcopyD },
- { Complete, AdrNone, AswapB },
- { Complete, AdrNone, BswapC },
- { Complete, AdrNone, CswapA },
- { Complete, AdrNone, DswapC }
+ { Complete, AdrNone, clearA },
+ { Complete, AdrNone, clearB },
+ { Complete, AdrNone, clearC },
+ { Complete, AdrNone, clearD },
+ { Complete, AdrNone, AcopyB },
+ { Complete, AdrNone, BcopyC },
+ { Complete, AdrNone, CcopyA },
+ { Complete, AdrNone, DcopyC },
+ { Complete, AdrNone, BcopyA },
+ { Complete, AdrNone, CcopyB },
+ { Complete, AdrNone, AcopyC },
+ { Complete, AdrNone, CcopyD },
+ { Complete, AdrNone, AswapB },
+ { Complete, AdrNone, BswapC },
+ { Complete, AdrNone, CswapA },
+ { Complete, AdrNone, DswapC }
}, { //B
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBa, AdrA },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
- { OpcodeBb, AdrB },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBa, AdrA },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
+ { OpcodeBb, AdrB },
}, { //Ba
- { Complete, AdrNone, AsubB },
- { Complete, AdrNone, BsubC },
- { Complete, AdrNone, CsubA },
- { Complete, AdrNone, DsubC },
- { Complete, AdrNone, incA },
- { Complete, AdrNone, incB },
- { Complete, AdrNone, incC },
- { Complete, AdrNone, incD },
- { Complete, AdrNone, BsubA },
- { Complete, AdrNone, CsubB },
- { Complete, AdrNone, AsubC },
- { Complete, AdrNone, CsubD },
- { Complete, AdrNone, AsubnB },
- { Complete, AdrNone, BsubnC },
- { Complete, AdrNone, CsubnA },
- { Complete, AdrNone, DsubnC },
+ { Complete, AdrNone, AsubB },
+ { Complete, AdrNone, BsubC },
+ { Complete, AdrNone, CsubA },
+ { Complete, AdrNone, DsubC },
+ { Complete, AdrNone, incA },
+ { Complete, AdrNone, incB },
+ { Complete, AdrNone, incC },
+ { Complete, AdrNone, incD },
+ { Complete, AdrNone, BsubA },
+ { Complete, AdrNone, CsubB },
+ { Complete, AdrNone, AsubC },
+ { Complete, AdrNone, CsubD },
+ { Complete, AdrNone, AsubnB },
+ { Complete, AdrNone, BsubnC },
+ { Complete, AdrNone, CsubnA },
+ { Complete, AdrNone, DsubnC },
}, { //Bb
- { Complete, AdrNone, Ashiftleft },
- { Complete, AdrNone, Bshiftleft },
- { Complete, AdrNone, Cshiftleft },
- { Complete, AdrNone, Dshiftleft },
- { Complete, AdrNone, Ashiftright },
- { Complete, AdrNone, Bshiftright },
- { Complete, AdrNone, Cshiftright },
- { Complete, AdrNone, Dshiftright },
- { Complete, AdrNone, negateA },
- { Complete, AdrNone, negateB },
- { Complete, AdrNone, negateC },
- { Complete, AdrNone, negateD },
- { Complete, AdrNone, notA },
- { Complete, AdrNone, notB },
- { Complete, AdrNone, notC },
- { Complete, AdrNone, notD }
+ { Complete, AdrNone, Ashiftleft },
+ { Complete, AdrNone, Bshiftleft },
+ { Complete, AdrNone, Cshiftleft },
+ { Complete, AdrNone, Dshiftleft },
+ { Complete, AdrNone, Ashiftright },
+ { Complete, AdrNone, Bshiftright },
+ { Complete, AdrNone, Cshiftright },
+ { Complete, AdrNone, Dshiftright },
+ { Complete, AdrNone, negateA },
+ { Complete, AdrNone, negateB },
+ { Complete, AdrNone, negateC },
+ { Complete, AdrNone, negateD },
+ { Complete, AdrNone, notA },
+ { Complete, AdrNone, notB },
+ { Complete, AdrNone, notC },
+ { Complete, AdrNone, notD }
}, { //C
- { Complete, FieldA, AaddB },
- { Complete, FieldA, BaddC },
- { Complete, FieldA, CaddA },
- { Complete, FieldA, DaddC },
- { Complete, FieldA, AaddA },
- { Complete, FieldA, BaddB },
- { Complete, FieldA, CaddC },
- { Complete, FieldA, DaddD },
- { Complete, FieldA, BaddA },
- { Complete, FieldA, CaddB },
- { Complete, FieldA, AaddC },
- { Complete, FieldA, CaddD },
- { Complete, FieldA, decA },
- { Complete, FieldA, decB },
- { Complete, FieldA, decC },
- { Complete, FieldA, decD }
+ { Complete, FieldA, AaddB },
+ { Complete, FieldA, BaddC },
+ { Complete, FieldA, CaddA },
+ { Complete, FieldA, DaddC },
+ { Complete, FieldA, AaddA },
+ { Complete, FieldA, BaddB },
+ { Complete, FieldA, CaddC },
+ { Complete, FieldA, DaddD },
+ { Complete, FieldA, BaddA },
+ { Complete, FieldA, CaddB },
+ { Complete, FieldA, AaddC },
+ { Complete, FieldA, CaddD },
+ { Complete, FieldA, decA },
+ { Complete, FieldA, decB },
+ { Complete, FieldA, decC },
+ { Complete, FieldA, decD }
}, { //D
- { Complete, FieldA, clearA },
- { Complete, FieldA, clearB },
- { Complete, FieldA, clearC },
- { Complete, FieldA, clearD },
- { Complete, FieldA, AcopyB },
- { Complete, FieldA, BcopyC },
- { Complete, FieldA, CcopyA },
- { Complete, FieldA, DcopyC },
- { Complete, FieldA, BcopyA },
- { Complete, FieldA, CcopyB },
- { Complete, FieldA, AcopyC },
- { Complete, FieldA, CcopyD },
- { Complete, FieldA, AswapB },
- { Complete, FieldA, BswapC },
- { Complete, FieldA, CswapA },
- { Complete, FieldA, DswapC }
+ { Complete, FieldA, clearA },
+ { Complete, FieldA, clearB },
+ { Complete, FieldA, clearC },
+ { Complete, FieldA, clearD },
+ { Complete, FieldA, AcopyB },
+ { Complete, FieldA, BcopyC },
+ { Complete, FieldA, CcopyA },
+ { Complete, FieldA, DcopyC },
+ { Complete, FieldA, BcopyA },
+ { Complete, FieldA, CcopyB },
+ { Complete, FieldA, AcopyC },
+ { Complete, FieldA, CcopyD },
+ { Complete, FieldA, AswapB },
+ { Complete, FieldA, BswapC },
+ { Complete, FieldA, CswapA },
+ { Complete, FieldA, DswapC }
}, { //E
- { Complete, FieldA, AsubB },
- { Complete, FieldA, BsubC },
- { Complete, FieldA, CsubA },
- { Complete, FieldA, DsubC },
- { Complete, FieldA, incA },
- { Complete, FieldA, incB },
- { Complete, FieldA, incC },
- { Complete, FieldA, incD },
- { Complete, FieldA, BsubA },
- { Complete, FieldA, CsubB },
- { Complete, FieldA, AsubC },
- { Complete, FieldA, CsubD },
- { Complete, FieldA, AsubnB },
- { Complete, FieldA, BsubnC },
- { Complete, FieldA, CsubnA },
- { Complete, FieldA, DsubnC }
+ { Complete, FieldA, AsubB },
+ { Complete, FieldA, BsubC },
+ { Complete, FieldA, CsubA },
+ { Complete, FieldA, DsubC },
+ { Complete, FieldA, incA },
+ { Complete, FieldA, incB },
+ { Complete, FieldA, incC },
+ { Complete, FieldA, incD },
+ { Complete, FieldA, BsubA },
+ { Complete, FieldA, CsubB },
+ { Complete, FieldA, AsubC },
+ { Complete, FieldA, CsubD },
+ { Complete, FieldA, AsubnB },
+ { Complete, FieldA, BsubnC },
+ { Complete, FieldA, CsubnA },
+ { Complete, FieldA, DsubnC }
}, { //F
- { Complete, FieldA, Ashiftleft },
- { Complete, FieldA, Bshiftleft },
- { Complete, FieldA, Cshiftleft },
- { Complete, FieldA, Dshiftleft },
- { Complete, FieldA, Ashiftright },
- { Complete, FieldA, Bshiftright },
- { Complete, FieldA, Cshiftright },
- { Complete, FieldA, Dshiftright },
- { Complete, FieldA, negateA },
- { Complete, FieldA, negateB },
- { Complete, FieldA, negateC },
- { Complete, FieldA, negateD },
- { Complete, FieldA, notA },
- { Complete, FieldA, notB },
- { Complete, FieldA, notC },
- { Complete, FieldA, notD }
+ { Complete, FieldA, Ashiftleft },
+ { Complete, FieldA, Bshiftleft },
+ { Complete, FieldA, Cshiftleft },
+ { Complete, FieldA, Dshiftleft },
+ { Complete, FieldA, Ashiftright },
+ { Complete, FieldA, Bshiftright },
+ { Complete, FieldA, Cshiftright },
+ { Complete, FieldA, Dshiftright },
+ { Complete, FieldA, negateA },
+ { Complete, FieldA, negateB },
+ { Complete, FieldA, negateC },
+ { Complete, FieldA, negateD },
+ { Complete, FieldA, notA },
+ { Complete, FieldA, notB },
+ { Complete, FieldA, notC },
+ { Complete, FieldA, notD }
}
};
@@ -1290,7 +1290,7 @@ CPU_DISASSEMBLE( saturn )
char number[17];
const OPCODE *level=opcodes[0]; //pointer to current digit
int op; // currently fetched nibble
- int pos = 0;
+ int pos = 0;
int i,c,v;