Sorry for the late reply again - I'm still struggling with works here!
The idea I have is to connect the 'sending' shift registers so they cascade, in other words, the bit pattern on one is shifted along into the next one in line. To test the wiring, the shift registers first have to be cleared, either by electrical reset or by clocking enough '0' in to them that the whole chain has to be full of them. Then a pin counter is set to a value of 1 and a single high is clocked into the first shift register. The input to the shift register is then set low again. Next, the counter is incremented and another clock pulse is sent to the shift register, this continues until all the pins have had the '1' walked across them.
So at any time the counter holds the same number as the pin being driven high.
At the other end, after each time the sending end has placed a '1' on one of the wires, the entire shift register is read by clocking it once for each pin. The resulting incoming bit stream is compared with the expected pattern to check for missing or extra signals. Knowing the count at the sending end and the number of clock pulses at the receiving end when the error was detected, lets the PIC caculate where and what the wiring error is.
The expected patterns can be stored in a table with one bit per pin so for your 150 pin system it would only need 150/8 = 19 bytes per pin of storage or 2850 bytes in total..
How the result is reported would be the next task. I'm not sure if this is connected to a PC, in which case a serial link would be the best method or if it is to have a built in display. Both are fairly easy to implement. I'm visualizing something saying "Error: Driving pin 12, signal found on pin 12 and 13" if there was a short between the two pins. Is that acceptable?
Brian.