Waitkey() подразумевает ожидание символа в буфере. Если бы его не было, остальная часть кода и не работала бы. Хотя с Инкей() та же фигня.
Нет, глюк где-то в массиве кроется.
А как вообще отследить причину зависания?
Do
B = Waitkey() ' берем символ из буфера в формате ASCII
If B = 36 Or B = 46 Then ' $=36 ascii начало строки
Z = 0
Buf_count = 0
' Reset Watchdog
End If
If B = 82 Then Z = 1 'нашли букву R (82 ascii)
If Z = 1 Then Incr Buf_count
If Buf_count = 5 Or Buf_count > 6 Then S = Chr(b)
If Buf_count = 6 Then Sh = S + Chr(b)
Varval = Val(sh) + 3 ' для добавления часового пояса
If Varval > 23 Then Varval = Varval - 24
I(1) = Varval / 10
I(2) = Varval Mod 10
If Buf_count = 7 Then I(3) = Val(s)
If Buf_count = 8 Then I(4) = Val(s)
If Buf_count = 9 Then I(5) = Val(s)
If Buf_count = 10 Then I(6) = Val(s)
Loop
