Why the difference between these two button reading programs in PASM and SPIN
I am working on a Propeller Professional Development Board using button Zero and LED 9. Both programs work as coded, but with this one puzzling result. When I run the PASM code and while it is waiting for the a button press the LED is dimly lit. When you press and hold the button the LED is brightly lit as you would expect. Release the button and the LED returns to the dimly lit state. The SPIN code works as well, but the LED is off until the button is pressed and held. I'm returning to working with PASM because I am beginning a project which needs it. I was reviewing some learning/practice code I had worked with for some time and rediscovered this old problem I never got figured out.
Thanks,
Tony
CON
_clkmode = xtal1 + pll16x ' Enable External Crystal and PLL X 16
_xinfreq = 5_000_000 ' External Crystal Frequency 5Mhz
PUB Main
{Launch cog to run Propeller Assembly code}
cognew(@entry, 0) 'Launch new cog
DAT
org 0 'Begin at Cog RAM address 0
entry mov dira, LED 'Set pin 9 to output
loop waitpeq Button, Button 'Wait till button is pressed
xor outa, LED 'Turn on LED
waitpne Button, Nobutton 'Wait till button is released
xor outa, LED 'Turn off LED
jmp #loop 'Loop
LED long |< 9
Button long 0
Nobutton long |< 0
CON
_clkmode = xtal1 + pll16x ' Enabled External Crystal and PLL X16
_xinfreq = 5_000_000 ' External Crystal Frequency
VAR
OBJ
PUB Main
dira[9] := 1
repeat
waitpeq(%0, %1, 0)
outa[9] := 1
waitpne(%0, %1, 0)
outa[9] := 0
Thanks,
Tony

Comments
waitpeq mask, mask ' wait for pin high waitpne mask, mask ' wait for pin low mask long |< pin