DSM/ECU: Difference between revisions

From Jane Hacker Wiki
Jump to navigation Jump to search
No edit summary
Line 100: Line 100:
===MH6111 Instruction Set===
===MH6111 Instruction Set===
* https://www.scribd.com/doc/293622595/MH6111-OPCODES-1
* https://www.scribd.com/doc/293622595/MH6111-OPCODES-1
===MH6211 Instruction Set===
{| class="wikitable"
!|Bytes
!|Code
!|A
!|B
!|Desc
|-
|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  (b = D/M, > a = D%M)
|-
|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
|-
|C7||BRSET IND, X||4||||BRANCH IF BIT(S) SET
|-
|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 A3||CPD IND,Y
|-
|CD AC||CPX IND,Y
|-
|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
|-
|CD EF||STX IND,Y||3||6||
|-
|CD FE||||4????
|-
|CE||LDX IMM||3||3||LOAD INDEX REGISTER X
|-
|CF||*****||3||||?????(4!!!!!)
|-
|CF||STOP||1||||
|-
|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
|}
<ref>
* http://www.rhinopower.org/76xxx/docs/MH6211_is.doc
** https://web.archive.org/save/http://www.rhinopower.org/76xxx/docs/MH6211_is.doc
</ref>


===Procs Docs Tossed===
===Procs Docs Tossed===

Revision as of 17:06, 1 May 2021

Subpages

DSM/ECU/Pretty disassembly notes[1]

DSM/ECU/MH6211 Instruction Set[2]

General

- https://web.archive.org/web/20050427181808/http://dsm-ecu.com/

ECU troubleshooting and daughterboard [RUS]

ECU numbers

EPROM images

Editing notes

E931 disassembly with comments


http://www.ceddy.us/

Processor info

Docs

This is the symbolic and commented source code for the DSM E931
and E932 ECU. To assemble "standard_E932_E931_source.asm",
download the telemark assembler TASM from http://home.comcast.net/~tasm/ to the same directory and execute asm.bat from the DOS prompt.
The assembler will produce two files: standard_E932_E931_source.lst
is a line by line listing of the assembly with addresses while standard_E932_E931_source.obj is the 32KB binary image to burn
on EPROM. Default setting produces the E931 standard binary image
Required file, not provided (from http://home.comcast.net/~tasm/): TASM.EXE, Version 3.2
Contents: standard_E932_E931_source.asm
Assembly source file for the E931/E932. See notes at the beginning of that file for more details. Default setting produces the standard E931 EPROM image.
asm.bat
Batch file to assemble standard_E932_E931_source.asm
standard_E931.bin
Binary file read from an actual E931 EPROM. Assembly of standard_E932_E931_source.asm using the "E931" setting should produce an identical binary.
standard_E932.bin
Binary file read from an actual E932 EPROM. Assembly of standard_E932_E931_source.asm using the "E932" setting should produce an identical binary.
standard_E931.lst
Assembly listing file for the standard E931, usefull if you just want to edit an EPROM image without assembly..
standard_E932.lst
Assembly listing file for the standard E932, usefull if you just want to edit an EPROM image without assembly..
tasm6111.tab
TASM compatible opcodes for the E931/E932 ECUs. Works with the provided source files. Might be incomplete if you want to use something not already used by the standard code...
Christian [email protected]

MH6111 Instruction Set

Procs Docs Tossed

Related?

Board parts

Chips

ISC drivers

MH6111 Processor

Standalones

AEM

Megasquirt

Speeduino

Link ECU (VR4LINK)

Haltech