The Texas InstrumentsTMS6100 is a 1 or 4-bit serial mask -programmed read-only memoryIC. It is a companion chip to the TMS5100, CD2802, TMS5110, TMS5200, and TMS5220speech synthesizer ICs, and was mask-programmed with LPC data required for a specific product. It holds 128Kib of data, and is mask-programmed with a start address for said data on a 16KiB boundary. It is also mask-programmable whether the /CE line needs to be high or low to activate, and also what the two 'internal' CE bits need to be set to activate, effectively making the total addressable area 18 bits. Finally, it is mask-programmable whether the bits are read out 1-bit serially or 4 at a time.
TMS6125
The TMS6125 is a smaller, 32Kib version of effectively the same chip, with some minor changes to the 'address load' command format to reflect its smaller size. Texas Instruments calls both of these serial roms "VSM"s on their datasheets and literature, and they will be referred to as such for the rest of this article. Both VSMs use 'local addressing', meaning the chip keeps track of its own address pointer once loaded. Hence every bit in the chip can be sequentially read out, even though internally the chip stores data in 8-bit bytes.
Commands
The VSM has supports 4 basic commands, based on two input pins called 'M0' and 'M1':
no operation/idle: this command tells the chip to 'do nothing' or 'continue doing what was being done before'.
load address: this command parallel-loads 4 bits from the data bus. to fully load an address, this command must be executed 5 times in sequence, for a load of a 20 bit block into the internal address pointer. On the TMS6125 the command must be executed 4 times instead, and only a 16 bit block is loaded.
read bit: this reads a single bit at the loaded address, and advances the 3 bit 'bit pointer' to point to the next bit within the address; if the bit pointer overflows, the address pointer is incremented. If the address pointed to on a specific chip is outside of the mask-programmed range of said VSM, the VSM will leave the data bus 'open' in a high impedance state, so another chip wired in parallel can supply the data instead. A rarely used mask option made the read bit command read 4 bits at once; this was used on a few non-speech products, and could not be used with the TI-manufactured LPC speech ICs.
read and branch: this reads 16 bits of data from the current address pointed to, and loads the value read into the address pointer, leaving the high bits of the address pointer alone.
Part Numbering
When used on Texas Instruments' Consumer Division products, the VSMs are always marked CDxxxxx where xxxxx is a 4 or 5 digit mask rom ID code, typically 23xx or 62xxx. The chips are SOMETIMES also marked TMC0350, as this seems to be the 'internal use class' of the chip. The very first VSMs were marked TMC0351 and TMC0352 and did not have a CD number. These two SEEM to have been 'grandfathered in' as CD2300 and CD2301, as all later VSMs start at CD2302. It should also be noted that CD22xx, CD25xx and CD28xx numbers are used for chips that are NOT VSMs. When used on Texas Instruments' non-consumer division products the chips are labeled VMxxxxx. When used on 3rd party products, the chips are marked CMxxxxx instead. The numbering scheme for the xxxxx part seems to be common between both CDxxxxx and CMxxxxx chips, so no chip of either series will have a common xxxxx number.