TIME関数は(turbo Rかそうでないかによらず)60分の1秒毎にその値が1増える関数です。
TIME関数は0〜65535までの値を取り、65535の次は0に戻ります。
また、RUNしたときにも初期化されません(0になるとは限らないということ)。
TIME関数は値を代入することもできます。
TIME関数のこのような特徴を生かして、例えば速度的に標準、高速を問わないプログラムを簡単に作ることができます。
TIME関数を使ったサンプルプログラム1:
※MSX1(RAM 8KB以上)で実行可能
10 DEFINT A−Z 20 FOR I=1 TO 20 30 TIME=0 40 PRINT I 50 FOR WT!=0 TO 60 60 WT!=TIME 70 NEXT 80 NEXT 90 END1から20までの数字を、1秒おきにモニタ(テレビ)に出力します。 標準モード、高速モードいずれでも同様に動作します。 MSX turbo Rを使っている人は標準モード、高速モード両方でお試し下さい。 サンプルプログラムはプログラムを見やすくするため、FORループに段落を付けたり、1行1命令で書いています。
TIME関数はこの他にも、RUNしてもその値が初期化されないという性質を利用して、乱数の初期化などにも使われます。
TIME関数を使ったサンプルプログラム2:
※MSX1(RAM 8KB以上)で実行可能
10 DEFINT A−Z 20 I=RND(−TIME) 30 FOR I=0 TO 2 40 PRINT RND(1) 50 NEXT 60 ENDこのプログラムを実行すると、乱数を3つ、モニタに出力します。 よほど運が良くない限り、RUNする毎に異なる乱数が出てきます。