Welche I/O-Ports werden denn zum "Einlesen" der Programmwahl benutzt?
Wenn es Dir die Hardware erlaubt, hierfür die unteren 5 Bits eines kompletten Ports zu verwenden (also z.B. PINA.4, PINA.3... PINA.0), könntest Du die Variable Programmwahl noch einfacher bekommen:

Code:
Programmwahl = PINA        'Übernimmt das komplette Eingangsregister von PortA
Programmwahl = Programmwahl AND &B00011111  'Löscht die Bits 7...5 und lässt die Bits 4...0 unverändert