; ;D16.TBL ;Instruction Table for the Doran Engineering D16/M processor. ;This table is an input to the Cross-32 meta-assembler, which ;allows it to process the D16 instructions. ; ;Revision History ; ; 1.0 Basic completed table. ; 02/10/2001. ; ; 2.0 New addressing modes, new instructions. ; Full operation requires D16/M processor V. 3.0. ; D16/M microcode V. 2.0. ; 04/04/2005. ; ;REGISTER DEFINITIONS ;None. There are no register addressing modes on the D16. ; * ; ;OPERANDS ;There is only one type of operand on the D16, a 16-bit binary word. ; ;NUM START LENGTH EXP LOW HIGH ;comment 1, 16, 16, #, -32768, 65535 ;all operands 16 bit ; * ; ;ADDRESSING MODES ;There are thirteen addressing modes (of seven basic types) for One Address ;Instructions. Modes 14-22 are just duplications allowing operands to appear ;in any order in the source code (for example, IX+m instead of m+IX); they ;assemble to the same object code. ; 1,{1}^03000000: ;Immediate Addressing 2,({1})^01000000: ;Direct Addressing 3,[{1}]^05000000: ;Indirect Addressing 4,[{1}++]^0D000000: ;Post-Incremented Indirect Addressing 5,({1}+IX)^11000000: ;Direct Indexed Addressing using IX Register 6,({1}+IY)^21000000: ;Direct Indexed Addressing using IY Register 7,({1}+SP)^31000000: ;Direct Indexed Addressing using Stack Pointer 8,[{1}+IX]^15000000: ;Indirect Indexed Addressing using IX Register 9,[{1}+IY]^25000000: ;Indirect Indexed Addressing using IY Register 10,[{1}+SP]^35000000: ;Indirect Indexed Addressing using Stack Pointer 11,[({1}++)+IX]^1D000000: ;Post-Incremented Indirect Indexed Addr using IX 12,[({1}++)+IY]^2D000000: ;Post-Incremented Indirect Indexed Addr using IY 13,[({1}++)+SP]^3D000000: ;Post-Incremented Indirect Indexed Addr using SP 14,(IX+{1})^11000000: ;Same as mode 5, except the operands are swapped 15,(IY+{1})^21000000: ;Same as 6, except swapped 16,(SP+{1})^31000000: ;Same as 7, except swapped 17,[IX+{1}]^15000000: ;Same as 8, except swapped 18,[IY+{1}]^25000000: ;Same as 9, except swapped 19,[SP+{1}]^35000000: ;Same as 10, except swapped 20,[IX+({1}++)]^1D000000: ;Same as 11, except swapped 21,[IY+({1}++)]^2D000000: ;Same as 12, except swapped 22,[IX+({1}++)]^3D000000: ;Same as 13, except swapped ; * ; ;INSTRUCTION MNEMONICS and OPCODES ; ;Zero Address Instructions (Implied Addressing) ; INC ^001A: ;Increment Accumulator DEC ^001B: ;Decrement Accumulator COM ^001C: ;Ones Complement Accumulator (Logical NOT) NEG ^001D: ;Twos Complement Accumulator (Twos Complement Negate) SET ^001E: ;Set Accumulator (AC