|74299's are really versatile shift registers (parallel load, |bidirectional, etc...), and have extra ripple i/o pins specifically for |chaining them together, so you don't lose data. The 74HC299 looks like a decent chip, but is has the same problem that the 74HC165 does: the output changes on the same clock edge where the input is sampled. If the same clock is fed to two shift registers which are chained to- gether, a race condition will exist as the "downstream" chip will try to read its input at the same time as the "upstream" chip is changing it. The preferred solution to this problem is to add an extra latch between the output of one chip and the input of the next; this latch should be triggered on the opposite clock edge from the shift registers. There exists one parallel- to-serial chip with this function (4094?) but I know of no "standard" serial-to-parallel chips that work this way. Otherwise, though, the 74HC299 looks like it might be a nice chip for some applications, but it would be much nicer if it included an extra set of latches so that data could be shift- ed through it without affecting its outputs. As it is, it's larger than a 74HC165, 74HC164, or 74HC595 and for most app- lications it's just as functional then the '165 for input and it's more functional than the '164 for output [since it does have tri-statable outputs], but it's less functional than the '595 [since it lacks double-buffering].