Well guys

Thanks for all your help, I've found that @20mhz its probably fast enough to just poll all the pins to check if they have changed state (this may change as I add more pins to my project), as for the pull-ups, I think im going to go with external resistor packs.

I have further questions (descriptors) , but I think its best to post in another thread, so if you are bored please take a look and help if you can

Thanks again