The TMS1000 family eventually included variants in both the original
PMOS logic and also in
NMOS and
CMOS. Product variations included different sizes of ROM and RAM, different I/O counts, and ROMless versions intended for development or for use with external ROM. The original TMS1000 had 1024 x 8 bits of ROM, 64 x 4 bits of RAM, and 23 input/output lines. The TMS1000 family used
mask-programmed ROM. Once the user had a debugged program ready to be committed to production, it would send the program to Texas Instruments who would then make a special mask to program the on-chip ROM. The ROM could not be altered in the field; the contents were fixed by the patterns laid down on the chip by the manufacturer. While this process had a high initial cost, the production cost was very low, making it suitable for high volume products (say, more than a few thousand items sold per year). All internal data paths of the processor were 4 bits wide. Program ROM and data RAM were separately addressed as in a
Harvard architecture; this became a typical characteristic of microcontrollers by many other manufacturers. The
ALU had a carry flag to indicate overflow and facilitate multiple precision arithmetic. On-chip RAM was addressed by X and Y registers, where Y had 4 bits and X had either 2 or 3 bits depending on the size of RAM on the part. The program counter was 6 bits wide, with "page" and "chapter" registers to address up to 2 KB of ROM program memory. No stack was provided, but a register was provided to store the program counter and carry flag to allow for one level of
subroutine (some members of the family allowed for 2 or 3 levels). No interrupt facility was provided. Some models had as few as 4 I/O lines because they had no on-chip ROM and the limited number of package pins were needed to access off-chip program memory. One version had special outputs for driving a
vacuum fluorescent display, and a
programmable logic array useful for driving
seven segment displays. Four input lines were provided for purposes such as sensing keyboard inputs, and a varying number of output lines were provided to control external devices, or to scan the rows of a
keyboard matrix circuit. PMOS versions ran on -9 or -15 volts and consumed around 6 mA, Output logic levels were therefore not compatible with
TTL logic. The NMOS and CMOS parts ran on a TTL-style +5 volts and could interoperate with 5 volt logic. Instruction sets varied slightly by model, with 43 instructions in the basic set and 54 available in some family members; instructions were 8 bits long.
BCD arithmetic instructions were provided, but no instructions were available for logical AND or OR of registers. Each instruction took between 10 and 15 microseconds to execute on the NMOS and PMOS parts, but some CMOS parts could be run as fast as 6 microseconds. The internal oscillator gave an effective clock speed of around 0.3 megahertz. The TMS1000 parts were packaged in through-hole
dual in-line packages with 28 or 40 pins, but some models for prototyping were in 64-pin packages. All versions had a temperature range of 0 to 70 degrees C. Since these were intended as single-chip embedded systems, no special support chips (such as
UARTs) were specifically made in the TMS 1000 family. ==References==