add ad/sb b/c a

This commit is contained in:
Redo 2022-11-01 13:46:18 -06:00
parent c1fd3d1d30
commit ceb4a457f7
2 changed files with 15 additions and 7 deletions

View File

@ -84,6 +84,10 @@ and c AA 1 A&=C, set zero flag
ior c AB 1 A|=C, set zero flag ior c AB 1 A|=C, set zero flag
xor c AC 1 A^=C, set zero flag xor c AC 1 A^=C, set zero flag
ann c AD 1 A&=~C, set zero flag ann c AD 1 A&=~C, set zero flag
adb a BE 1 B+=A, set flags
sbb a BF 1 B-=A, set flags
adc a 4E 1 C+=A, set flags
sbc a 4F 1 C-=A, set flags
Jumps (J): Jumps (J):
jmp imm16 60 3 I=imm16 jmp imm16 60 3 I=imm16
@ -172,10 +176,10 @@ ldp *q 94 3 P=*Q
ldq *q 95 3 Q=*Q ldq *q 95 3 Q=*Q
stp *q 7C 3 *Q=P stp *q 7C 3 *Q=P
stq *p 7D 3 *P=Q stq *p 7D 3 *P=Q
ldq *p++ CC 3 Q=*P++ ldq *p++ CC 3 Q=*P++++
ldp *q++ CD 3 P=*Q++ ldp *q++ CD 3 P=*Q++++
stp *q++ CE 3 *Q++=P stp *q++ CE 3 *Q++++=P
stq *p++ CF 3 *P++=Q stq *p++ CF 3 *P++++=Q
Moves (M): Moves (M):
lda b 80 1 A=B lda b 80 1 A=B
@ -197,20 +201,20 @@ ldq p 8E 1 Q=P
lds p 8F 1 S=P lds p 8F 1 S=P
ldv p 90 1 V=P ldv p 90 1 V=P
Opcodes used: 183/255 Opcodes used: 187/255
0123456789ABCDEF 0123456789ABCDEF
00 | C--------------- 00 | C---------------
10 | UUIIUIIUUUUUUUUU 10 | UUIIUIIUUUUUUUUU
20 | BWWWAWBBBBBUUUU- 20 | BWWWAWBBBBBUUUU-
30 | JJJJJJJ--------- 30 | JJJJJJJ---------
40 | SSSSSSSSSSXXX--- 40 | SSSSSSSSSSXXX-AA
50 | BBBBBBBBBBBBBBBB 50 | BBBBBBBBBBBBBBBB
60 | JBBJJJJJWWWWWWWW 60 | JBBJJJJJWWWWWWWW
70 | AAAAAAAAAAWWWWWW 70 | AAAAAAAAAAWWWWWW
80 | MMMMMMMMMMMMMMMM 80 | MMMMMMMMMMMMMMMM
90 | MMWWWWBBBAAAAAAA 90 | MMWWWWBBBAAAAAAA
A0 | AAAAAAAAAAAAAAAA A0 | AAAAAAAAAAAAAAAA
B0 | AAAAAAAAAAAAAA-- B0 | AAAAAAAAAAAAAAAA
C0 | BBBBBBBBBBBBWWWW C0 | BBBBBBBBBBBBWWWW
D0 | ---------------- D0 | ----------------
E0 | ---------------- E0 | ----------------

View File

@ -187,6 +187,10 @@ instructions = {
{ mnem="ior c" , opcode=0xAB, {"aluA", "alurC","aluIor", "aluSaveNZ","instrNext"}, desc="A|=C, set zero flag" }, { mnem="ior c" , opcode=0xAB, {"aluA", "alurC","aluIor", "aluSaveNZ","instrNext"}, desc="A|=C, set zero flag" },
{ mnem="xor c" , opcode=0xAC, {"aluA", "alurC","aluXor", "aluSaveNZ","instrNext"}, desc="A^=C, set zero flag" }, { mnem="xor c" , opcode=0xAC, {"aluA", "alurC","aluXor", "aluSaveNZ","instrNext"}, desc="A^=C, set zero flag" },
{ mnem="ann c" , opcode=0xAD, {"aluA", "alurC","aluAnd","aluRInv", "aluSaveNZ","instrNext"}, desc="A&=~C, set zero flag" }, { mnem="ann c" , opcode=0xAD, {"aluA", "alurC","aluAnd","aluRInv", "aluSaveNZ","instrNext"}, desc="A&=~C, set zero flag" },
{ mnem="adb a" , opcode=0xBE, {"aluB", "alurA","aluAdd", "aluSaveCarry","aluSaveNZ","instrNext"}, desc="B+=A, set flags" },
{ mnem="sbb a" , opcode=0xBF, {"aluB", "alurA","aluAdd","aluRInv","aluCinOn","aluSaveCarry","aluSaveNZ","instrNext"}, desc="B-=A, set flags" },
{ mnem="adc a" , opcode=0x4E, {"aluC", "alurA","aluAdd", "aluSaveCarry","aluSaveNZ","instrNext"}, desc="C+=A, set flags" },
{ mnem="sbc a" , opcode=0x4F, {"aluC", "alurA","aluAdd","aluRInv","aluCinOn","aluSaveCarry","aluSaveNZ","instrNext"}, desc="C-=A, set flags" },
{ category = "Jumps", catlet="J" }, { category = "Jumps", catlet="J" },
{ mnem="jmp imm16" , opcode=0x60, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"jmpAbsUT" }, desc="I=imm16" }, { mnem="jmp imm16" , opcode=0x60, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"jmpAbsUT" }, desc="I=imm16" },