C is the basic unit. Minimum memory, NO time functions or other goodies, YES memory module works.
CV has more memory than a C, less than CX, YES memory modules work, NO time functions or other goodies.
CX has max registers already, YES time functions plus other goodies, memory module has no effect.
Advantage modules are available (I have one, no you can't have it, and please don't even ask or I'll be morally and ethically required to hurt you -- badly!) and I don't know its current availability or pricing. It does have many good features:
>> Matrix math (selectable matrix sizes pretty much limited only by how many registers are free, matrix multiply, matrix divide, matrix +, matrix determinant)
>>HEX/BIN/OCT/DEC conversion functions
>>Binary math (XOR, AND, OR, NOT, etc.)
>>SOLVE (Newtonian method used in 15C)
>>INTEG (integration)
>>Complex number operations (LNz, e^z, z^1/N, SINz, COSz)
>>Differential equation processing
>>Curve fitting (linear, power functions)
>>Vector operations (cross product, dot product, vector math)
>>TVM -- time value of money
PPC module is the best that the user-community-braintrust could come up with -- and I mean that as a compliment! Among its many toys is "synthetic programming" utilities. Synthetic programming is a way of "combining" two data bytes/numbers into a single non-standard (meaning you can't normally enter it by a single keystroke) command. Without the PPC, the only way to put prep the calculator for synthetic programming is an arcane set of keystrokes that bypass normal system boundaries, and the setup goes away if you dump the memory and you haven't created a magnetic card with all synthetic programs. Also, some synthetic programming functions are lengthy and take up memory, so the PPC module is nice to have (no I don't have one, dammit!). Some examples of the fun and games of synthetic programming:
>>Generate any one of about 100 tones, instead of just 10 (some are very cool -- ear-splitting sonic bursts that last only about .02 seconds!)
>>Planting random values into the "C" register in the calculator. If ANYTHING other than the "expected" system constant is found in "C" when the calc does its "sanity check", it resets itself to factory original and may sit comatose until power is removed for sometimes up to several hours.
>>Creating some very convenient register savings commands -- swapping data from the "flag conditions" register into a normal register (posiibly saving many different flag condition sets into many registers) and swapping back in to the flag conditions register to create a whole set of conditions with a single command
Hope that helped. Others in this oh-just-get-a-life community have more info, I'm sure.