Reading nonmontary switches such as thumbwheels and dip switches is always a pain since one way or another you need lots of I/O pins (either on the chip itself or using a parallel to serial shift register). I've managed to get a few products done here using the 16c74a and just have the 3 digit thumbwheel drive 12 input lines. 8 of them are on port B with internal pull-ups, so pull-ups are only needed on 4 lines. I generally think eeprom is a way around using thumbwheel and dip switches. Like the switches, eeprom is nonvolatile and can be changed by the user. Unfortunately, the user can't see the current settings. You then end up with some sort of display to show the current settings and prompt the user along with momentary key switches (that can be scanned) for user input. Where this is not cost effective, I think I'd either drive the pic I/O lines directly, if there are enough, or go with the external 12 bit shift register. That shift register can be expanded to handle more input lines, if needed. It's all a trade-off! Harold