Greetings E -
>> I don't think that is correct -from memory- the reader should be able to read any code
In theory, perhaps. But in actual practice, no.
Part of the OBD-II standard (mandated by the U.S. EPA) was a basic set of emissions related codes (SAE spec J1979). Many of the cheaper readers support only these few.
A better, but still inexpensive reader is only capable of reading the entire, so-called "generic code" set - the P0xxx series codes.
Better still, a reader that can read the manufacturer's proprietary - P1xxx - codes as well. Not all of them do.
In all cases, the reader must be compatible with the hardware interface used by Toyota. In other words, not all 1996+ OBD-II vehicles are the same - and not all readers will work on all vehicles [yes, the plug is the same, but the communication protocol is different], though a good many are capable of using all of the three standard protocols.
And all of this does not even address the scanners... so it's not so simple as going out and buying the cheapest device. Didn't someone else say, you get what you pay for?
Cheers, R -