Das mit Direction mache ich immer gerne kurz und knapp wie folgt, wenn es wie in diesem Fall zwischen 0 und 1 toggeln soll. man kann es natürlich auch an andere Wechsel anpassen:

direction = 1 - direction

Das mit port und pin ist wirklich manchmal recht fehlerträchtig, so sollte es gehen:

Config Portd.7 = Input ' beim configurieren ists noch der port
Taste_1 Alias Pind.7 ' damit im programm der alias richtig ersetzt wird, muss hier pin stehen

Gruß MeckPommER

P.S.: warum einen externem Pull-Up, wenn ein interner vorhanden ist, der nur "angeschaltet" werden muss?