MSX をタイマーにしてみましょう。カップ麺とか作る時に必要でしょ?
SCREEN 3 を使って大きく表示しています。
0:00 になると BEEP が連呼するので、SPACE キーで止めて下さい。
110 T=3 で分を設定できます。ただし 9 分までの考慮です。
少し改良しても TIME の限度’(65535 まで)により 18 分までとなります。
MSXPen・WebMSX を用いる場合、MUTE(消音)状態ではじまっているので、
音を出す場合は WebMSX 画面をクリックしておいて下さい。
100 DEFINT A-Z
110 T=3
120 SCREEN 3
130 OPEN"GRP:"AS #1
140 T=T*60*60
150 TIME=0
160 N=TIME
170 IF N>T GOTO 300
180 N=(T-N)/60
190 M=N/60
200 S=N MOD 60
210 S$=MID$(STR$(S),2)
220 IF S<10 THEN S$="0"+S$
230 IF L=M AND R=S GOTO 160
240 CLS
250 DRAW"BM68,80"
260 PRINT #1,USING"#:&&";M,S$
270 L=M
280 R=S
290 GOTO 160
300 BEEP
310 IF STRIG(0)=0 GOTO 280
PRINT USING は書式を指定しての PRINT ですが、
グラフィック出力では PRINT #●,USING となります。
210・220 は秒が 1 桁の場合に 0● と表示するための考慮です。
MID$ は MID$(文字列,開始位置,文字数) ですが、
そのうち 文字数 を省略できます。「開始位置以降」になります。
MSX の STR$ では 0 以上で頭に空白が入るため、
その空白をなくすために MID$(STR$(S),2) として文字列にもして、
1 桁だったら頭に 0 を付けるのが 220 です。