# Watch — Simple stopwatch

Here is a simple stopwatch with lap times. Note that the machine switches off automatically after a time if no keys are pressed; you may want to disable this feature via the Control Panel on the System screen before running this program.

Each timing is only accurate to within one second, as the procedure is based on the `SECOND` function.

        PROC watch:
              LOCAL k%,s%,se%,mi%
              FONT 11,16
              AT 20,1 :PRINT "Stopwatch"
              AT 15,11 :PRINT "Press a key to start"
              GET
              DO
                    CLS :mi%=0 :se%=0 :s%=SECOND
                    AT 15,11 :PRINT "  S=Stop, L=Lap  "
        loop::
                    k%=KEY AND $ffdf                   REM ensures upper case
                    IF k%=%S
                          GOTO pause::
                    ENDIF
                    IF k%=%L
                          AT 20,6 :PRINT "Lap: ";mi%;":";
                          IF se%<10 :PRINT "0"; :ENDIF
                          PRINT se%;" ";
                    ENDIF
                    IF SECOND<>s%
                          s%=SECOND :se%=se%+1
                          IF se%=60 :se%=0 :mi%=mi%+1 :ENDIF
                          AT 17,8
                          PRINT "Mins",mi%,"Secs",
                          IF se%<10 :PRINT "0"; :ENDIF
                          PRINT se%;" ";
                    ENDIF
                    GOTO loop::
        pause::
                    mINIT
                    mCARD "Watch","Restart",%r,"Zero",%z,"Exit",%x
                    k%=MENU
                    IF k%=%r
                          GOTO loop::
                    ENDIF
              UNTIL k%<>%z
        ENDP