creo que es esencial preguntar por el comando, ya que la direccion siempre será la misma, o al menos deberia serlo, el comando es el que variará segun el pulsador qeu uses, puedes usar muchos pulsadores o hasta cualquier dato con el codigo que ha implementado ALGEC
en tu caso yo lo haria asi:
despues de recibir cada bit:
if(direccion == 1 && comando == 0)
output_toggle(PIN_B1);
... y para algun otro comando
if(direccion == 1 && comando == 3)
output_toggle(PIN_B4);
algo redundate el && pero por si acaso, jeje
con el toggle cambia de estado el pin, cada vez que entre a la rutina
el comando 0 lo envio con un pulsador, y el coamndo 3 con otro pulsador
un saludo