Buttons are inputs so you don't have to worry about shadowing. Read them normally. They can share the same port as outputs if you want - just be sure to read the PORT itself (not the shadow image).I don't know how to write the button's code in shadowing!