10 REM A TIME SIMULATER DEMO 20 REM FOR THE BBC MICROCOMPUTER 30 REM BY ANDREW YORK IN 1995 40 ::REM HERE ARE THE INSTRUCTIONS: 60 ::REM PRESS 'A' TO SET TIME ALARM 80 REM PRESS 'Q' TO STOP TICKING 90 REM PRESS 'S' TO START TICKING 100 REM PRESS 'E' TO EXIT PROGRAM 110 REM PRESS ESCAPE TO RUN PROGRAM 120 REM ANY OTHER KEY MOVES TIME 130 ::REM-- [0x07] [0x03] [0x15] ROGRAM-STARTS-HERE---- 150 ::ONERROR GOTO 710 170 M%=7:REM MODE 180 HOURS=0:MINUTES=0:SECS=0:a=100:b=100 :c=100 :d=0 :MODEM% : REM SET MOD [0x0C] [0x15] 260 VDU23;10,32;0;0;0:REM STOPS CURSER 270 PRINTTAB(8,5);"A‚TIMEƒSIMULATOR" :REPEAT:PRINTTAB(15,8);HOURS;":";MINUTES;" ";SECS;" ":IF HOURS=a AND MINUTES=b AND SECS=c THEN PROCalarm 310 IF d=0 THEN *M.1 320 IF d=0 THEN *M.0 330 REM LINES 300 AND 310 MAKES TICKING 340 T$=INKEY$(100):IF T$="A" THEN PROCsetalarm 360 IF T$="Q" THEN PROCtickoff 370 IF T$="S" THEN PROCtickon 380 IF T$="E" THEN MODE7:*FX200,0 390 IF T$="E" THEN *FX4,0 400 IF T$="E" THEN PRINTCHR$(129);"BYE..":END 410 SECS=SECS+1 :IF SECS=60 THEN MINUTES=MINUTES+1:SECS=00 430 IF MINUTES=60 THEN HOURS=HOURS+1:MINUTES=0:SECS=00:VDU7 440 UNTIL FALSE 450 DEFPROCsetalarm:SOUND 1,19,10,2 :PRINTTAB(10,10);"„SETTING…ALARM " :INPUTTAB(10,12);"†HOUR ? :"a:INPUTTAB(10,14);"MINUTE ? :"b:INPUTTAB(10,16);"‚SECOND ? :"c :PRINTTAB(10,10);" " 510 PRINTTAB(10,12);" ":PRINTTAB(10,14);" " :PRINTTAB(10,16);" ":ENDPROC 550 DEFPROCtickoff:d=1: REM TICKING OFF 570 ENDPROC 580 DEFPROCtickon:d=0: REM TICKING ON 600 ENDPROC 610 DEFPROCalarm:CLS:PRINTTAB(12,7);CHR$(141);"ˆALERT":PRINTTAB(12,8);CHR$(141);"ˆALERT":PRINTTAB(5,10);CHR$(141);"‚THEƒALARM„HAS…GONE†OFF":PRINTTAB(5,11);CHR$(141);"‚THEƒALARM„HAS…GONE†OFF":PRINTTAB(15,13);HOURS;":";MINUTES;" ";SECS;" " 660 ENVELOPE 2,1,2,-2,2,10,20,10,1,0,0,-1,100,100:SOUND1,2,100,100000:REM ALARM SOUND 670 REPEAT:SOUND1,2,100,100000:SOUND1,2,100,100000:SOUND1,2,100,100000 :SOUND1,2,100,100000:VDU7:UNTIL FALSE :ENDPROC 710 ONERROR OFF 720 IF ERR=17 THEN RUN 730 MODE7:*FX200,0 740 *FX18 750 VDU7:REPORT:PRINT"‚ATƒSILLY„LINE…";ERL :END