Soon, I will be an owner of the Due. The archetechure seems to very different and much doesn't work, The 3v3 vs 5V stuff and I2C of all things?
Something tells me things are going to get messy with the PORT based interupts without some intervention on the Arduino side.
For one, let;s see some examples of an ISR based on a bits changes within a single port, but you would like to really have eight IRS's and not just one,
My crystal ball sees somethig where "some shield" wants to use some bit of PORT x and really can't because the Arduino system would not know what to do with it.
So, I'd like to see something where everyine could play nice. i.e. The ISR's based on port bit or maybe a port bit mask.
So why can't I say (pseudocode) attachinterrupt(PORTA, 111000, ISR) and attachinterrupt(PORTA,000111, ISR)
In order to achive this, one MIGHT have to have a Arduino function that reads each port as though it's masked, if it's read in the ISR.
I would like everyone interested to read this http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CDsQFjAA&url=http%3A%2F%2Fwww.nxp.com%2Fdocuments%2Fdata_sheet%2FPCAL6416A.pdf&ei=5vZ7U_L_GvLQsQS9qYGgAg&usg=AFQjCNFnxmhkmp6C18TcdALm_NTGoyF3Og&sig2=irD4jz8ynUXzW8B3-UqHxA&bvm=bv.67229260,d.cWc&cad=rja datasheet for the PCAL6416A
Right now, I'm not going to suggest a solution, but I thin somethng bad is going to happen down the road. Interrupt sharing should be a possibility. That responsibility is on the Auduino OS.
I'm software x and I would request a call back when such and such happens. Best you could do is when any of "these" bits change state. Now what? Level, negative edge, positive edge etc.