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 (LSB-first 14 bit address, 4 CE bits, and two unused bits, effectively 18 address bits) into the internal address pointer. On the TMS6125 the command must be executed 4 times instead, and only a 16 bit block is loaded (12 address bits, two unused bits, and two CE bits). • 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 (which has the address within its mask-programmed range) 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(and bit?) pointed to, and loads the value read into the address pointer, leaving the high bits of the address pointer alone. (This was intended for making VSMs with multiple languages available, where the initial load addresses could remain static, so for example they would not require changes to code in a
microcontroller, and only the values pointed to in the VSM needed changing. In practice it doesn't seem to have ever been used, as it doesn't work when more than one VSM chip shares a bus, which is what was done in most cases.) ==Part Numbering==