learning interrupt

hi, I'm trying to learn the Interrupt. I've almost rewritten http://www.arduino.cc/playground/Main/PcInt without using pins_arduino.h libraries, just Regiter manipulation and ISR() routine. But one function seems hard to replace: curr = *portInputRegister(port+2); Seems what this function return the pins that has changed. I can simulate its work simply looking at PORTD ecc and saving the old state... but PORTX or PINX is always 0... who can help me?