First off, your clock() function doesn't actually do anything.
The 'Time' variable inside that function is local, so doesn't get updated by your main loop, and by default = 0. This means that the first logic check inside the function is always
IF Timer() = 0 + 1000
(I think at the moment my Timer() reads in the 868-millions!) So it will never be true
However, given that you are running exactly the same code in the main loop means that the main loop 'Time' variable is being updated properly - it just means you can delete the Clock() call you have after the CLS, along with the whole Clock() function
As far as the actual problem counting up goes: I wasn't able to consistently replicate the issue, but I 'think' the problem is that your logic check is aiming for an 'exact' figure, i.e. IF TIMER() = TIME + 1000 - This makes it extremely sensitive to any hiccups in the looping rate.
i.e. if at the beginning of your code TIMER() may return 868000123, and dutifully assign that value to the 'Time' variable
999 milliseconds later, the TIMER() may = 868001122, and if there is much as a millisecond hiccup in your system, in the next loop the TIMER() value may jump from 868001122 to 868001124 -meaning that TIMER() never = Time + 1000, and hence nothing happens inside your IF ENDIF statement, which basically locks your time variable for, well, all time - this happened to me more frequently when I ran more processes in the background, hard drive kicking over, antivirus starting etc
try running a relative logic check, rather than an absolute (i.e. check if timer() is greater than, rather than directly equal the Time+1000 value)
TIME = TIMER()
PRINT "CURRTIMER : " + STR$(timer())
PRINT "TIME+1000 : " + STR$(TIME + 1000)
IF TIMER() > TIME+1000
IF seconds = 10 THEN print "AARGH"
unless you are worried about millisecond accuracy in your program...
I also chucked in the lines to display TIMER() and TIME + 1000, so you can see when the TIME variable fails to get updated
This is not the Sig you are looking for....