NOTE: The opcodes in column 1 refer to the TMS1000/1200/1070/1270. The opcodes in the second column refer to the TMS1100/1300
| TMS1000 I/O instruction opcodes | ||||||
|---|---|---|---|---|---|---|
| Mnemonic | Operand | Status | Operation | Op Code | ||
| C | NE | |||||
| KNEZ | X | Set status only if data on input lines is not 0 | 09 | 0E | ||
| TKA | Load Accumulator with data on input lines | 08 | ||||
| SETR | Set R output addressed by contents of Y | 0D | ||||
| RSTR | Reset R output addressed by contents of Y | 0C | ||||
| TDO | Transfer data from Accumulator and status flag to output O | 0A | ||||
| CLO | Clear the output register O | 0B | ||||
| TMS1000 Primary memory reference opcodes | ||||||
| TAM | Store Accumulator to RAM location pointed to by XY | 03 | 27 | |||
| TMY | Load register Y from RAM location pointed to by XY | 22 | ||||
| TMA | Load Accumulator from RAM location pointed to by XY | 21 | ||||
| XMA | Exchange Accumulator with data pointed to by XY | 2E | 03 | |||
| TMS1000 Primary memory reference (with register) opcodes | ||||||
| TAMIY | Store Accumulator to RAM (XY pointer) and increment Y | 20 | ||||
| TAMIYC | X | Store Accumulator to RAM (XY pointer) and increment Y set status on carry | 25 | |||
| TAMDYN | X | Store Accumulator to RAM (XY pointer) and increment Y set status if no borrow | 24 | |||
| TAMZA | Store Accumulator to RAM (XY pointer) and clear Accumulator | 04 | 26 | |||
| TMS1000 Secondary memory reference opcodes | ||||||
| AMAAC | X | Add RAM (XY pointer) to Accumulator with carry out | 25 | 06 | ||
| SAMAN | X | Subtract Accumulator from RAM (XY pointer) and set status on borrow | 27 | 3C | ||
| IMAC | X | Load contents of RAM (XY pointer) to Accumulator and increment. Set status on carry. | 28 | 3E | ||
| DMAN | X | Load contents of RAM (XY pointer) to Accumulator and decrement. Set status if no borrow. | 2A | 07 | ||
| ALEM | X | Set status flag only if Accumulator is less than or equal to RAM (XY pointer) | 29 | 01 | ||
| MNEA | X | Set status flag only if RAM (XY pointer) is not equal to Accumulator | 00 | |||
| MNEZ | X | Set status if RAM (XY pointer) not zero | 26 | 3F | ||
| SBIT | b | Set specified bit of RAM addressed by XY | 001100bb | |||
| RBIT | b | Reset specified bit of RAM addressed by XY | 001101bb | |||
| TBIT1 | b | X | Test specified bit of RAM addressed by XY | 001110bb | ||
| TMS1000 Immediate opcodes | ||||||
| TCY | data | Load register Y immediate | 0100xxxx | |||
| TCMIY | data | Load RAM (XY pointer) and increment Y | 0110xxxx | |||
| LDX | data | Load register X immediate | 001111xx | 00101xxx | ||
| LDP | data | Load Page Buffer register immediate | 0001xxxx | |||
| TMS1000 immediate operate opcodes | ||||||
| ALEC | data | X | Set status if Accumulator is less than or equal to immediate data | 0111xxxx | ||
| YNEC | data | X | Set status if RAM (XY pointer) is not equal to immediate data | 0101xxxx | ||
| A2AAC | X | Add 2 to Accumulator and set status flag on carry | 78 | |||
| A3AAC | X | Add 3 to Accumulator and set status flag on carry | 74 | |||
| A4AAC | X | Add 4 to Accumulator and set status flag on carry | 7C | |||
| A5AAC | X | Add 5 to Accumulator and set status flag on carry | 72 | |||
| A6AAC | X | Add 6 to Accumulator and set status flag on carry | 06 | 7A | ||
| A7AAC | X | Add 7 to Accumulator and set status flag on carry | 76 | |||
| A8AAC | X | Add 8 to Accumulator and set status flag on carry | 01 | 7E | ||
| A9AAC | X | Add 9 to Accumulator and set status flag on carry | 71 | |||
| A10AAC | X | Add 10 to Accumulator and set status flag on carry | 05 | 79 | ||
| A11AAC | X | Add 11 to Accumulator and set status flag on carry | 75 | |||
| A12AAC | X | Add 12 to Accumulator and set status flag on carry | 7D | |||
| A13AAC | X | Add 13 to Accumulator and set status flag on carry | 73 | |||
| A14AAC | X | Add 14 to Accumulator and set status flag on carry | 7B | |||
| TMS1000 jump opcode | ||||||
| RETN | Return from subroutine | 0F | ||||
| TMS1000 conditional branch opcodes | ||||||
| BR | label | Branch if status flag set | 10xxxxxx | |||
| CALL | label | Call subroutine if status flag is set. A call within subroutine acts as a branch. | 11xxxxxx | |||
| TMS1000 register to register move opcodes | ||||||
| TAY | Transfer Accumulator to register Y | 24 | 20 | |||
| TYA | Transfer register Y to Accumulator | 23 | ||||
| TMS1000 register to register operation opcode | ||||||
| YNEA | X | Set status flag if Y is not equal to Accumulator | 02 | |||
| TMS1000 register operation opcodes | ||||||
| CLA | Clear Accumulator | 2F | 7F | |||
| IA | Increment Accumulator (status not affected) | 0E | ||||
| IAC | X | Increment Accumulator and set status flag on carry | 70 | |||
| DAN | X | Decrement Accumulator and set status flag if no borrow | 07 | 77 | ||
| IYC | X | Increment register Y and set status flag on carry | 2B | 05 | ||
| DYN | X | Decrement register Y and set status flag if no borrow | 2C | 04 | ||
| CPAIZ | X | Negate Accumulator (2's compliment) and set status flag on zero | 2D | 3D | ||
| COMX | Compliment X | 00 | ||||
| COMX | Compliment the most significant bit of X | 09 | ||||
| COMC | Compliment chapter flag | 0B | ||||
last modified 10JUL01
this home page is maintained by
Lowell O. Turner.
Please email
lowell.turner@ieee.org with comments and corrections.