socket The microcontrollers in the TLCS-90 family use a
8-bit/
16-bit architecture reminiscent of the
Z80. These are no longer advertised on the Toshiba website. The TLCS-90 inherits most Z80 features, such as: • seven 8-bit registers (A, B, C, D, E, H and L), • six 16-bit registers (BC, DE, HL, IX, IY, and SP), three of which are 8-bit register pairs, • the combined parity/overflow flag, • the , and 16-bit exchange instructions, and • the and memory copy instructions. There are, however, significant differences. It omits the separate I/O address space of the Z80, but adds more flexibility to operand combinations, some new operations (notably multiply and divide), and several additional
addressing modes: • and indexed modes operating similarly to and • single-byte "
zero page" addressing of memory from FF00–FFFF16 • and addressing without a displacement, enabling a single byte of machine code to be saved and the execution time to be decreased • PC-relative long (-32768 to +32767 bytes from the program counter, rather than the shorter -128 to +127) Most of the functionality of 8-bit accumulator A has also been implemented for the 16-bit HL register pair, such as the missing and instructions, and the , , and bitwise instructions. The flag quirk from the Z80 is implemented. Furthermore, the instruction was added to ease 16-bit loop counting. TLCS-90 SoC packages include the 4-bit BX and BY registers, which get concatenated with effective addresses based on the IX or IY register, allowing the processor to address up to one
megabyte of memory. The processor includes the and instructions, which are useful for performing 20-bit pointer arithmetic using the IX and BX registers or the IY and BY registers. Instructions are divided into one-byte basic and two-byte extended instructions. Opcodes E016 through FE16 are
prefixes which begin an extended instruction. The instruction encoding is unusual in that the prefix specifies one operand of the extended instruction, and unlike the single-byte prefixes used by the Z80 or
x86 architecture, may itself be followed by operand bytes. After the prefix bytes, the second opcode byte specifies the operation and second operand. For example, the instruction is encoded as , where the first two bytes specify the destination address, the third byte specifies the operation, and the fourth byte provides the source operand. == TLCS-870 family ==