HP-BASIC クロックとタイマ
HPBASICにはリアルタイム・クロックが備わっており、割り込みをおこなったり、タイミングを図ったりできます。
昔のワークステーションのタイプによるのですが、ほとんどのコンピュータにはクロックハードウェア(電池)が備わっています。
しかし昔すぎるワークステーションにはクロックがついていなかったり、
単純な電池切れを起こしている場合もあります。
日付と時刻の判断
TIMEDATE関数によってクロックの現在の値を戻すことができます。
PRINT TIMEDATE
PRINT DATE$(TIMEDATE)
時刻を返すためにはTIME$関数を使用します。
PRINT TIME$(TIMEDATE)
時刻、日付、時間のセット
時刻のセットはSET TIME xxxで変更します。この場合、xxxは午前0時以降の
秒数をあらわします。xxxの値は24時間以内でなければなりません。
SET TIME 55810
SET TIME TIME("15:30:10")
クロックイベントによる分岐
一方、クロックによってタイミングを計り、イベントを起こさせることが可能です。
CLOCKで使用できるいくつかの分岐を追加するとリアルタイム・クロックの値に応じて終了・分岐をトリガとすることができます。
・ON TIMEを使用するとクロックが指定時刻になると分岐が起こるよう設定できます。
・ON DELAYを使用すると指定した秒数が経過してから分岐が起こるよう設定できます。
・ON CYCLEを使用すると指定秒数が経過する度に分岐が繰り返しておこるよう設定できます。
10 ON CYCLE 1 GOSUB Five
20 ON DELAY 6 GOTO Quit
30 !
40 TSTAMP: DISP TIME$(TIMEDATE) !Show time
50 GOTO TSTAMP
60 !
70 Five:FOR I=1 TO 5
80 PRINT RND;
90 NEXT I
100 PRINT
110 RETURN
120 !
130 Quit:END
このプログラムは6秒間、毎秒5個の乱数をプリントしてから停止します。