レトロPCのBASICにおいて、タイムアウト付き入力ステートメントを実装するものを4つだけ発見した。以下にそれをまとめる。
TRS-80 Level-III BASIC §
[LINE] INPUT#LEN m,n;["prompt string"];variable name(s)
mはタイムアウトした時に飛ぶ行番号
nは秒数
特徴: 名前が違う
N88-BASIC/N88-BASIC(86) §
[LINE] INPUT WAIT 待ち時間[, "プロンプト文"]; 変数名
待ち時間は0.1秒単位
タイムアウトすると後続の文を実行。(入力されると次の行を実行)
特徴: 独自性が強く、タイムアウトを設定できることと名前以外に他と共通点がない
日立Level-3 BASIC §
INPUT WAIT <行番号>;<待ち時間(秒)>,["<プロンプト文>"{;|,}] <変数名>[,<変数名...>]
特徴: TRS-80 Level-III BASICのほぼ忠実な複製だが、名前や区切り記号が異なっていて、微妙に違う。機能的には等価と考えられる。ただし、LINE INPUT WAITは無いようだ。
その他 §
少なくとも以下のページからF-BASICには存在しないことが確認できる。
GW-BASICにもないことは以下のPDFで確認した。
考察 §
N-BASICはTRS-80 Level-III BASICをかなり参考にしたと思われるが、LINE INPUT#LEN/INPUT#LENは実装しなかった。
このことが心残りでN88-BASICでLINE INPUT WAIT/INPUT WAITを実装したのではないか?
また、日立L3は、N-BASICへの対抗上、N-BASICが実装できなかったINPUT#LENを積極的に取り込もうとしたと考えられる。
時系列で捉えると、TRS-80 Level-III BASIC→N-BASIC→日立L3→N88-BASIC→N88-BASIC(86)である。
つまり、以下のような順序で変化していったことが考えられる。
- 日立L3においてステートメント名と区切り文字が変更された
- N88-BASICにおいて仕様が全面的に見直されたがステートメント名だけは日立L3を踏襲した