O podes leer pines con
int valor_pin = input(pin);
o leer todo el puerto:
int valor_pin = PORTA; // o el port que sea.
Y para escribir como dijiste tenes output_high() y output_low() para un solo bit, tambien tenes output_bit (pin, valor) pero para todo un puerto:
output_x(value);
donde x es a,b,c,d,e,etc etc etc, suponete escribir en el portb todo lo del porta. Estarias copiando los 8 bits del PORTA al PORTB
output_b(PORTA);
si solo queres hace que por ejemplo la salida copie la entrada de un solo pin
Lo mas entendible:
if(input(pin_A0))
{
output_high(pin_B0);
}
else
{
output_low(pin_B0);
}
esta ultima deberia funcionar, seria la mas corta y lo que buscas:
output_bit (pin_B0, input(pin_A0));