I would eliminate the key presses for testing. Setup a pause in your main loop and a just change a new bit variable to mimic the key press action. Just to isolate where the issue may be.

Something like.
Keypressbit var bit

Keypressbit = 0

Mainloop:
Pause 1500
If Keypressbit = 1 then
......... Etc

' at the end of Mainloop
Keypressbit = ~ Keypressbit
Pause 2000 ' 2 second pause
GOTO Mainloop

Btw, ! hourmode should have been ~ hourmode (bit wise not)

Good luck