diff --git a/instructionList.txt b/instructionList.txt index 99c0d0b..af89023 100644 --- a/instructionList.txt +++ b/instructionList.txt @@ -84,6 +84,10 @@ and c AA 1 A&=C, set zero flag ior c AB 1 A|=C, set zero flag xor c AC 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): jmp imm16 60 3 I=imm16 @@ -172,10 +176,10 @@ ldp *q 94 3 P=*Q ldq *q 95 3 Q=*Q stp *q 7C 3 *Q=P stq *p 7D 3 *P=Q -ldq *p++ CC 3 Q=*P++ -ldp *q++ CD 3 P=*Q++ -stp *q++ CE 3 *Q++=P -stq *p++ CF 3 *P++=Q +ldq *p++ CC 3 Q=*P++++ +ldp *q++ CD 3 P=*Q++++ +stp *q++ CE 3 *Q++++=P +stq *p++ CF 3 *P++++=Q Moves (M): lda b 80 1 A=B @@ -197,20 +201,20 @@ ldq p 8E 1 Q=P lds p 8F 1 S=P ldv p 90 1 V=P -Opcodes used: 183/255 +Opcodes used: 187/255 0123456789ABCDEF 00 | C--------------- 10 | UUIIUIIUUUUUUUUU 20 | BWWWAWBBBBBUUUU- 30 | JJJJJJJ--------- -40 | SSSSSSSSSSXXX--- +40 | SSSSSSSSSSXXX-AA 50 | BBBBBBBBBBBBBBBB 60 | JBBJJJJJWWWWWWWW 70 | AAAAAAAAAAWWWWWW 80 | MMMMMMMMMMMMMMMM 90 | MMWWWWBBBAAAAAAA A0 | AAAAAAAAAAAAAAAA -B0 | AAAAAAAAAAAAAA-- +B0 | AAAAAAAAAAAAAAAA C0 | BBBBBBBBBBBBWWWW D0 | ---------------- E0 | ---------------- diff --git a/rom-8608-defs.lua b/rom-8608-defs.lua index 4e002bd..a2b148d 100644 --- a/rom-8608-defs.lua +++ b/rom-8608-defs.lua @@ -187,6 +187,10 @@ instructions = { { 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="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" }, { mnem="jmp imm16" , opcode=0x60, {"loadImm161","instrSub1"}, {"loadImm162","instrSub2"}, {"jmpAbsUT" }, desc="I=imm16" },