Bei festen Wert (1<<5) macht der C kompiler gleich ein 0x20 draus,
also im Code gleich tmp |= 0x20.

Das hat Bascom dzt. nicht drauf

Mit Variablen zur Laufzeit wäre das Äquivalent
Code:
DIM TMP AS BYTE 
DIM POS AS BYTE 
     pos = 5
     TMP.pos = 1
Btw: das mit dem Shiften und dann Odern geht natürlich auch, is aber mehr Code