thanks i don't have much choice then i have to use digital write. no old school stuff.
Already given to you: http://www.arduino.cc/en/Reference/PortManipulation
PORTD = PORTD | 0x04; // sets Pin 2 of Uno to Input.
int singleBit = PIND & 0x04 >> 2; // read Pin 2 on an UNO
or as most people prefer
pinMode(2, INPUT); // only run once
int singleBit = digitalRead(2);
but how state like on button press it inverts the old state of the port. what we do in PIC just "portd.f1 = ~portd.f1" for example.
pinMode(13, OUTPUT); // only run once
digitalWrite(13,
!digitalRead(13)); // inverts the state of an output pin.
Edit: Forgot the bang.