yeah, I think the adcon1 addition was my imagination. still acting up. what I'm trying to do is simple look at the data output from an infrared receiver on an input pin (with a pullup) and check for a low. works fine on a breadboard (just doing that with a few lines of code in a loop) but when I try to implement it in some code which has a lot going on, it's haphazard. I've tried using a for next loop so it stays on the input pin, checking a thousand times and even tried a goto where it loops for a few seconds using a counter. (a few seconds would be more than enough to "catch" the pin going low). tried a voltage divider on the pin trying to push it lower to ground, etc. not having much luck.

But I'll probably figure out after I post this --as always