キーが押されるまで、プログラムを中断して待ちます。
ポート0のビット0は、キーボードバッファのデータ有無を監視するフラグに割り当てられています。WAITステートメントを使用して、このフラグが「データ有」に変化するのを待ちます。
[ENT]キーが押されるのを待つ、[F1]が押されるのを待つ、など、特定のキーが押されるのを待つ場合は、WAITステートメントで何かキーが押されるのを待った後、どのキーが押されたか判別します。
押されたキーを判別するには、INKEY$関数を使用して押されたキーのキーデータを取得し、各キーに割り当てられているキーデータと比較してください。
キーデータには、下表の値が、デフォルトで割り当てられています。
キー | キーデータ(デフォルト) |
---|---|
[F1] | A |
[F2] | B |
[F3] | C |
[F4] | D |
[F5] | E |
[F6] | F |
[F7] | G |
[F8] | H |
[ENT] | キャリッジリターン(0Dh) |
[BS] | バックスペース(08h) |
[C] | キャンセル(18h) |
上記以外のキーについては、BHT-BASICプログラミングマニュアル「付録E キーボードとキー番号」を参照してください。
private waitENT$ waitENT: wait 0,&h01 '何かキーが押されるまで待つ waitENT$ = inkey$ '押されたキーのキーデータを取得 if waitENT$ <> chr$(&h0D) then 'キーが[ENT]以外の場合、 goto waitENT '再びキーが押されるまで待つ endif print "[ENT]"
private waitkey$ waitkey: wait 0,&h01 '何かキーが押されるまで待つ waitkey$ = inkey$ '押されたキーのキーデータを取得 select waitkey$ case "A": 'キーが[F1]の場合 print "[F1]" '[F1]表示 case "B": 'キーが[F2]の場合 print "[F2]" '[F2]表示 case else: 'キーが[F1][F2]以外の場合 goto waitkey '再びキーが押されるまで待つ end select