All of these are almost identical in their operation. It is possible to detect each version by writing and then reading from the ppi control i/o port. Each can give a different pattern of values that are read back.
The Amstrad Plus emulates the 8255 in its ASIC chip. But the implementation is quite different and a frequent cause of compatibility issues with Amstrad CPC software.
== The 8255 in the CPC ==