DSM/ECU/TMP76xxx MH6xxx Instruction Set: Difference between revisions

From Jane Hacker Wiki
Jump to navigation Jump to search
Created page with "00 TEST 1 * TEST OPERATION TEST MODE ONLY 01 NOP 1 2 NO OPERATION 02 AIM DIR 3 ? AND IN MEMORY 03 OIM DIR 3 ? OR IN MEM..."
 
No edit summary
Line 1: Line 1:
00    TEST        1  *    TEST OPERATION TEST MODE ONLY
{| class="wikitable"
|00    TEST        1  *    TEST OPERATION TEST MODE ONLY
01    NOP        1  2    NO OPERATION
01    NOP        1  2    NO OPERATION
02    AIM DIR        3  ?    AND IN MEMORY
02    AIM DIR        3  ?    AND IN MEMORY
Line 274: Line 275:
FE    LDX EXT        3  5    LOAD INDEX REGISTER X
FE    LDX EXT        3  5    LOAD INDEX REGISTER X
FF    STX EXT        3  5    STORE INDEX REGISTER X
FF    STX EXT        3  5    STORE INDEX REGISTER X
|}

Revision as of 19:46, 4 May 2021

00 TEST 1 * TEST OPERATION TEST MODE ONLY

01 NOP 1 2 NO OPERATION 02 AIM DIR 3  ? AND IN MEMORY 03 OIM DIR 3  ? OR IN MEMORY 04 LSRD 1 3 LOGICAL SHIFT RIGHT DOUBLE ACCUMULATOR 05 ASLD / LSLD 1 3 ARITHMETIC / LOGICAL SHIFT LEFT DOUBLE ACC 06 TAP 1 2 TRANSFER FROM ACC A TO CONDITION CODE REGISTER 07 TPA 1 2 TRANSFER FROM CONDITION CODE REGISTER TO ACC A 08 INX 1 3 INCREMENT INDEX REGISTER X 09 DEX 1 3 DECREMENT INDEX REGISTER X 0A CLV 1 2 CLEAR TWOS COMPLEMENT OVERFLOW BIT 0B SEV 1 2 SET TWOS COMPLEMENT OVERFLOW BIT 0C CLC 1 2 CLEAR CARRY 0D SEC 1 2 SET CARRY 0E CLI 1 2 CLEAR INTERRUPT MASK 0F SEI 1 2 SET INTERRUPT MASK 10 SBA 1 2 SUBTRACT ACCUMULATORS 11 CBA 1 2 COMPARE ACCUMULATORS 14 IDIV DIR 2 6 INTEGER DIVIDE 15 FDIV DIR 2 6 FRACTIONAL DIVIDE 16 TAB 1 2 TRANSFER ACCUMULATOR A TO ACCUMULATOR B 17 TBA 1 2 TRANSFER FROM ACCUMULATOR B TO ACCUMULATOR A 18 XGXY 1 4 EXCHANGE REGISTER X AND REGISTER Y 19 DAA 1 2 DECIMAL ADJUST ACCUMULATOR A 1A XGDX 1 EXCHANGE DOUBLE ACCUMLATOR AND INDEX REG X 1B ABA 1 2 ADD ACCUMULATOR B TO ACCUMULATOR A 1C CPD IMM 3 5 COMPARE DOUBLE ACCUMULATOR 1D CPD DIR 2 6 COMPARE DOUBLE ACCUMULATOR 1F CPD EXT 3 7 COMPARE DOUBLE ACCUMULATOR 20 BRA 2 3 BRANCH ALWAYS 21 BRN 2 3 BRANCH NEVER 22 BHI 2 3 BRANCH IF HIGHER 23 BLS 2 3 BRANCH IF LOWER OR SAME 24 BCC / BHS 2 3 BRANCH IF CARRY CLR / BRANCH IF HIGHER OR SAME 25 BCS / BLO 2 3 BRANCH IF CARRY SET / BRANCH IF LOWER 26 BNE 2 3 BRANCH IF NOT EQUAL TO ZERO 27 BEQ 2 3 BRANCH IF EQUAL 28 BVC 2 3 BRANCH IF OVERFLOW CLEAR 29 BVS 2 3 BRANCH IF OVERFLOW SET 2A BPL 2 3 BRANCH IF PLUS 2B BMI 2 3 BRANCH IF MINUS 2C BGE 2 3 BRANCH IF GREATER THAN OR EQUAL TO ZERO 2D BLT 2 3 BRANCH IF LESS THAN ZERO 2E BGT 2 3 BRANCH IF GREATER THAN ZERO 2F BLE 2 3 BRANCH IF LESS THAN OR EQUAL TO ZERO 30 TSX 1 3 TRANSFER FROM STACK POINTER TO INDEX REGISTER X 31 INS 1 3 INCREMENT STACK POINTER 32 PULA 1 4 PULL DATA FROM STACK 33 PULB 1 4 PULL DATA FROM STACK 34 DES 1 3 DECREMENT STACK POINTER 35 TXS 1 3 TRANSFER FROM INDEX REGISTER X TO STACK POINTER 36 PSHA 1 3 PUSH DATA ONTO STACK 37 PSHB 1 3 PUSH DATA ONTO STACK 38 PULX 1 5 PULL INDEX REGISTER X FROM STACK 39 RTS 1 5 RETURN FROM SUBROUTINE 3A ABX 1 3 ADD ACCUMULATOR B TO INDEX REGISTER X 3B RTI 1 12 RETURN FROM INTERRUPT 3C PSHX 1 4 PUSH INDEX REGISTER X ONTO STACK 3D MUL 1 10 MULTIPLY UNSIGNED 3E WAI 1 14 WAIT FOR INTERRUPT 3F SWI 1 14 SOFTWARE INTERRUPT 40 NEGA 1 2 NEGATE 43 COMA 1 2 COMPLEMENT 44 LSRA 1 2 LOGICAL SHIFT RIGHT 46 RORA 1 2 ROTATE RIGHT 47 ASRA 1 2 ARITHMETIC SHIFT RIGHT 48 ASLA / LSLA 1 2 ARITHMETIC / LOGICAL SHIFT LEFT 49 ROLA 1 2 ROTATE LEFT 4A DECA 1 2 DECREMENT 4C INCA 1 2 INCREMENT 4D TSTA 1 2 TEST 4F CLRA 1 2 CLEAR 50 NEGB 1 2 NEGATE 53 COMB 1 2 COMPLEMENT 54 LSRB 1 2 LOGICAL SHIFT RIGHT 56 RORB 1 2 ROTATE RIGHT 57 ASRB 1 2 ARITHMETIC SHIFT RIGHT 58 ASLB / LSLB 1 2 ARITHMETIC / LOGICAL SHIFT LEFT 59 ROLB 1 2 ROTATE LEFT 5A DECB 1 2 DECREMENT 5C INCB 1 2 INCREMENT 5D TSTB 1 2 TEST 5F CLRB 1 2 CLEAR 60 NEG IND,X 2 6 NEGATE 63 COM IND,X 2 6 COMPLEMENT 64 LSR IND,X 2 6 LOGICAL SHIFT RIGHT 66 ROR IND,X 2 6 ROTATE RIGHT 67 ASR IND,X 2 6 ARITHMETIC SHIFT RIGHT 68 ASL / LSL IND,X 2 6 ARITHMETIC / LOGICAL SHIFT LEFT 69 ROL IND,X 2 6 ROTATE LEFT 6A DEC IND,X 2 6 DECREMENT 6C INC IND,X 2 6 INCREMENT 6D TST IND,X 2 6 TEST 6E JMP IND,X 2 3 JUMP 6F CLR IND,X 2 6 CLEAR 70 NEG EXT 3 6 NEGATE 73 COM EXT 3 6 COMPLEMENT 74 LSR EXT 3 6 LOGICAL SHIFT RIGHT 76 ROR EXT 3 6 ROTATE RIGHT 77 ASR EXT 3 6 ARITHMETIC SHIFT RIGHT 78 ASL / LSL EXT 3 6 ARITHMETIC / LOGICAL SHIFT LEFT 79 ROL EXT 3 6 ROTATE LEFT 7A DEC EXT 3 6 DECREMENT 7C INC EXT 3 6 INCREMENT 7D TST EXT 3 6 TEST 7E JMP EXT 3 3 JUMP 7F CLR EXT 3 6 CLEAR 80 SUBA IMM 2 2 SUBTRACT 81 CMPA IMM 2 2 COMPARE 82 SBCA IMM 2 2 SUBTRACT WITH CARRY 83 SUBD IMM 3 4 SUBTRACT DOUBLE ACCUMULATOR 84 ANDA IMM 2 2 LOGICAL AND 85 BITA IMM 2 2 BIT TEST 86 LDAA IMM 2 2 LOAD ACCUMULATOR 87 BRSET DIR 4 BRANCH IF BIT(S) ARE SET 88 EORA IMM 2 2 EXCLUSIVE OR 89 ADCA IMM 2 2 ADD WITH CARRY 8A ORAA IMM 2 2 INCLUSIVE OR 8B ADDA IMM 2 2 ADD WITHOUT CARRY 8C CPX IMM 3 4 COMPARE INDEX REGISTER X 8D BSR 2 6 BRANCH TO SUBROUTINE 8E LDS IMM 3 3 LOAD STACK POINTER 8F BRCLR DIR 4 BRANCH IF BIT(S) ARE CLEAR 90 SUBA DIR 2 3 SUBTRACT 91 CMPA DIR 2 3 COMPARE 92 SBCA DIR 2 3 SUBTRACT WITH CARRY 93 SUBD DIR 2 5 SUBTRACT DOUBLE ACCUMULATOR 94 ANDA DIR 2 3 LOGICAL AND 95 BITA DIR 2 3 BIT TEST 96 LDAA DIR 2 3 LOAD ACCUMULATOR 97 STAA DIR 2 3 STORE ACCUMULATOR 98 EORA DIR 2 3 EXCLUSIVE OR 99 ADCA DIR 2 3 ADD WITH CARRY 9A ORAA DIR 2 3 INCLUSIVE OR 9B ADDA DIR 2 3 ADD WITHOUT CARRY 9C CPX DIR 2 5 COMPARE INDEX REGISTER X 9D JSR DIR 2 5 JUMP TO SUBROUTINE 9E LDS DIR 2 4 LOAD STACK POINTER 9F STS DIR 2 4 STORE STACK POINTER A0 SUBA IND,X 2 4 SUBTRACT A0 80 SUBA IND,Y 2 SUBTRACT A1 CMPA IND,X 2 4 COMPARE A1 80 CMPA IND,Y+ 2 COMPARE WITH/Y+ A2 SBCA IND,X 2 4 SUBTRACT WITH CARRY A2 80 SBCA IND,Y 2 SUBTRACT WITH CARRY A3 SUBD IND,X 2 6 SUBTRACT DOUBLE ACCUMULATOR A3 80 SUBD IND,Y 2 6 SUBTRACT DOUBLE ACCUMULATOR A4 ANDA IND,X 2 4 LOGICAL AND A4 80 ANDA IND,Y 2 4 LOGICAL AND A5 BITA IND,X 2 4 BIT TEST A5 80 BITA IND,Y 2 4 BIT TEST A6 LDAA IND,X 2 4 LOAD ACCUMULATOR A6 80 LDAA IND,Y+ 2 LOAD ACCUMULATOR WITH/Y+ A7 STAA IND,X 2 4 STORE ACCUMULATOR A7 80 STAA IND,Y 2 STORE ACCUMULATOR A8 EORA IND,X 2 4 EXCLUSIVE OR A8 80 EORA IND,Y 2 4 EXCLUSIVE OR A9 ADCA IND,X 2 4 ADD WITH CARRY A9 80 ADCA IND,Y 2 4 ADD WITH CARRY AA ORAA IND,X 2 4 INCLUSIVE OR AA 80 ORAA IND,Y 2 4 INCLUSIVE OR AB ADDA IND,X 2 4 ADD WITHOUT CARRY AB 80 ADDA IND,Y 2 4 ADD WITHOUT CARRY AC CPX IND,X 2 6 COMPARE INDEX REGISTER X AC 80 CPX IND,Y 2 6 COMPARE INDEX REGISTER X AD JSR IND,X 2 6 JUMP TO SUBROUTINE AD 80 JSR IND,Y 2 JUMP TO SUBROUTINE AE LDS IND,X 2 5 LOAD STACK POINTER AE 80 LDS IND,Y 2 5 LOAD STACK POINTER AF STS IND,X 2 5 STORE STACK POINTER AF 80 STS IND,Y 2 5 STORE STACK POINTER B0 SUBA EXT 3 4 SUBTRACT B1 CMPA EXT 3 4 COMPARE B2 SBCA EXT 3 4 SUBTRACT WITH CARRY B3 SUBD EXT 3 6 SUBTRACT DOUBLE ACCUMULATOR B4 ANDA EXT 3 4 LOGICAL AND B5 BITA EXT 3 4 BIT TEST B6 LDAA EXT 3 4 LOAD ACCUMULATOR B7 STAA EXT 3 4 STORE ACCUMULATOR B8 EORA EXT 3 4 EXCLUSIVE OR B9 ADCA EXT 3 4 ADD WITH CARRY BA ORAA EXT 3 4 INCLUSIVE OR BB ADDA EXT 3 4 ADD WITHOUT CARRY BC CPX EXT 3 6 COMPARE INDEX REGISTER X BD JSR EXT 3 6 JUMP TO SUBROUTINE BE LDS EXT 3 5 LOAD STACK POINTER BF STS EXT 3 5 STORE STACK POINTER C0 SUBB IMM 2 2 SUBTRACT C1 CMPB IMM 2 2 COMPARE C2 SBCB IMM 2 2 SUBTRACT WITH CARRY C3 ADDD IMM 3 4 ADD DOUBLE ACCUMULATOR C4 ANDB IMM 2 2 LOGICAL AND C5 BITB IMM 2 2 BIT TEST C6 LDAB IMM 2 2 LOAD ACCUMULATOR C8 EORB IMM 2 2 EXCLUSIVE OR C9 ADCB IMM 2 2 ADD WITH CARRY CA ORAB IMM 2 2 INCLUSIVE OR CB ADDB IMM 2 2 ADD WITHOUT CARRY CC LDD IMM 3 3 LOAD DOUBLE ACCUMULATOR CD 08 INY 2 4 INCREMENT INDEX REGISTER Y CD 09 DEY 2 4 DECREMENT INDEX REGISTER Y CD 1A XGDY 2 EXCHANGE DOUBLE ACCUMULATOR AND INDEX REG Y CD 3A ABY 2 ADD ACCUMULATOR B TO INDEX REG Y CD 8C CMPY IMM, Y++ 4 CMPY INDEX REGISTER Y AND INCREMENT. CD CE LDY IMM 4 4 LOAD INDEX REGISTER Y CD DF STY DIR 3 5 STORE INDEX REGISTER Y CD EE LDY IND,X 3 6 LOAD INDEX REGISTER Y CE LDX IMM 3 3 LOAD INDEX REGISTER X CF ***** 3  ?????


D0 SUBB DIR 2 3 SUBTRACT D1 CMPB DIR 2 3 COMPARE D2 SBCB DIR 2 3 SUBTRACT WITH CARRY D3 ADDD DIR 2 5 ADD DOUBLE ACCUMULATOR D4 ANDB DIR 2 3 LOGICAL AND D5 BITB DIR 2 3 BIT TEST D6 LDAB DIR 2 3 LOAD ACCUMULATOR D7 STAB DIR 2 3 STORE ACCUMULATOR D8 EORB DIR 2 3 EXCLUSIVE OR D9 ADCB DIR 2 3 ADD WITH CARRY DA ORAB DIR 2 3 INCLUSIVE OR DB ADDB DIR 2 3 ADD WITHOUT CARRY DC LDD DIR 2 4 LOAD DOUBLE ACCUMULATOR DD STD DIR 2 4 STORE DOUBLE ACCUMULATOR DE LDX DIR 2 4 LOAD INDEX REGISTER X DF STX DIR 2 4 STORE INDEX REGISTER X E0 SUBB IND,X 2 4 SUBTRACT E0 80 SUBB IND,Y 2 4 SUBTRACT E1 CMPB IND,X 2 4 COMPARE E1 80 CMPB IND,Y 2 4 COMPARE E2 SBCB IND,X 2 4 SUBTRACT WITH CARRY E2 80 SBCB IND,Y 2 4 SUBTRACT WITH CARRY E3 ADDD IND,X 2 6 ADD DOUBLE ACCUMULATOR E3 80 ADDD IND,Y 2 6 ADD DOUBLE ACCUMULATOR E4 ANDB IND,X 2 4 LOGICAL AND E4 80 ANDB IND,Y 2 4 LOGICAL AND E5 BITB IND,X 2 4 BIT TEST E5 80 BITB IND,Y 2 4 BIT TEST E6 LDAB IND,X 2 4 LOAD ACCUMULATOR E6 80 LDAB IND,Y 2 4 LOAD ACCUMULATOR E7 STAB IND,X 2 4 STORE ACCUMULATOR E7 80 STAB IND,Y 2 4 STORE ACCUMULATOR E8 EORB IND,X 2 4 EXCLUSIVE OR E8 80 EORB IND,Y 2 4 EXCLUSIVE OR E9 ADCB IND,X 2 4 ADD WITH CARRY E9 80 ADCB IND,Y 2 4 ADD WITH CARRY EA ORAB IND,X 2 4 INCLUSIVE OR EA 80 ORAB IND,Y 2 4 INCLUSIVE OR EB ADDB IND,X 2 4 ADD WITHOUT CARRY EB 80 ADDB IND,Y 2 4 ADD WITHOUT CARRY EC LDD IND,X 2 5 LOAD DOUBLE ACCUMULATOR EC 80 LDD IND,Y 2 5 LOAD DOUBLE ACCUMULATOR ED STD IND,X 2 5 STORE DOUBLE ACCUMULATOR ED 80 STD IND,Y 2 5 STORE DOUBLE ACCUMULATOR EE LDX IND,X 2 5 LOAD INDEX REGISTER X EE 80 LDX IND,Y++ 2 5 LOAD INDEX REGISTER X WITH/Y++ EF STX IND,X 2 5 STORE INDEX REGISTER X EF 80 STX IND,X 2 5 STORE INDEX REGISTER X F0 SUBB EXT 3 4 SUBTRACT F1 CMPB EXT 3 4 COMPARE F2 SBCB EXT 3 4 SUBTRACT WITH CARRY F3 ADDD EXT 3 6 ADD DOUBLE ACCUMULATOR F4 ANDB EXT 3 4 LOGICAL AND F5 BITB EXT 3 4 BIT TEST F6 LDAB EXT 3 4 LOAD ACCUMULATOR F7 STAB EXT 3 4 STORE ACCUMULATOR F8 EORB EXT 3 4 EXCLUSIVE OR F9 ADCB EXT 3 4 ADD WITH CARRY FA ORAB EXT 3 4 INCLUSIVE OR FB ADDB EXT 3 4 ADD WITHOUT CARRY FC LDD EXT 3 5 LOAD DOUBLE ACCUMULATOR FD STD EXT 3 5 STORE DOUBLE ACCUMULATOR FE LDX EXT 3 5 LOAD INDEX REGISTER X FF STX EXT 3 5 STORE INDEX REGISTER X