REM See the WYWTK Index of BBC BASIC Tutorials for more help with BBC BASIC. Many pages give you more than just the code, the way this one does. REM wywtk.com/prgm/bas/basb-med-tim-1.htm REM MedTime.BBC- Meditation Timer REM VERS PRINT "Hi. Repeat..." PRINT "Don't press more than one key at any time." PRINT "To start, press a key BRIEFLY. NOT '.' or ','" PRINT "Then BRIEFLY press just '.' (or'Q')" PRINT "Until you've had enough!" PRINT "(Q TO Quit)" REPEAT PRINT "But first set the WAIT time. (about 20 probably right.)" INPUT delay% UNTIL delay%>5 PRINT REM Wait for user to start holding down a key... REPEAT : REM Start of inner parts pressed$=INKEY$(2) UNTIL pressed$><"" AND pressed$><"." AND pressed$><"," REM Now begin main part of program... REPEAT REM Drives outer loop REM Start of first pass through inner parts REPEAT PRINT"*"; pressed$=INKEY$(2) WAIT(delay%) UNTIL pressed$="." OR pressed$="," REM Done? IF pressed$="q" OR pressed$="Q" THEN PRINT PRINT "Bye" WAIT(120) QUIT ENDIF REPEAT PRINT"."; pressed$=INKEY$(2) WAIT(delay%) UNTIL (pressed$><"." AND pressed$><"," AND pressed$><"") OR (pressed$="q" OR pressed$="Q") REM Done? IF pressed$="q" OR pressed$="Q" THEN PRINT PRINT "Bye" WAIT(120) QUIT ENDIF REM End of inner parts REM *crude* "Do inner parts again" by copy/paste... REM========= VVV Second copy of "inner parts" vvv REPEAT PRINT"*"; pressed$=INKEY$(2) WAIT(delay%) UNTIL pressed$="." OR pressed$="," REM Done? IF pressed$="q" OR pressed$="Q" THEN PRINT PRINT "Bye" WAIT(120) QUIT ENDIF REPEAT PRINT"."; pressed$=INKEY$(2) WAIT(delay%) UNTIL (pressed$><"." AND pressed$><"," AND pressed$><"") OR (pressed$="q" OR pressed$="Q") REM Done? IF pressed$="q" OR pressed$="Q" THEN PRINT PRINT "Bye" WAIT(120) QUIT ENDIF REM========= ^^^ Second copy of "inner parts" ^^^ PRINT:REM Starts new line of Pressed/Not pressed characters UNTIL 4=5 REM End of Outer loop.