The scoped output shows an auto ranged voltage proportional to the current that the current source on the top left puts out.
The 3 ranges are:
0-50uA > 0-10V (1V/5uA)
50-500uA > 1-10V (1V/50uA)
0.5-5mA > 1-10V (1V/500uA)
The voltage developed across the 200R-resistor by the input current is rectified and amplified x10 by the full wave rectifier.
That voltage is compared with a threshold (100mV) by the 2 compairing opamps.
The FET-switches and logic gates makes a crude analog multiplexer (ie 4052) that sets the gain of the leftmost opamp to x1, x10 or x100.
More ranges could be added if more comparators and FET-switches would be used, just keep the relatively high burden voltage developed by the input resistor in mind (up to 1V in this case).
I think im gonna breadboard this thing and find out to what extent real-world imperfections like opamp offset voltage and input current will affect accuracy, if it works at all that is :)
The input current should be set to under 50uA in order to make the simulation start.
EDIT: Bug fixes