キーが押されるまで、プログラムを中断して待ちます。
![]()
ポート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