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. 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. Subroutines were limited to 1 level