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.