BHT-BASIC4.0:[BS/C]キー入力ではまった件について
BHT-BASICのシステムで処理の実行を行うかどうかを、
[BS/C][ENT]キーで処理を行っているのですが、
もちろん[BS/C]キーは処理中断で、[ENT]キーは処理続行としています。
処理を中断しようとして[BS/C]キーを押すのですが、中断できない場合があるとの現象が発生しました。
ソース的には以下の様な組み方で、[BS/C][ENT]キーのどちらかのキーのみの反応行う様にしています。
DENSOさんのサンプルプログラムを見ても、 処理の中断の判定は「バックスペース(&H08)」のみで処理しているので、 深く考えずに「BS」のみで中断処理をしていました。
しかし、たまに「BS」が利かない場合があるとのことで、 バグの連絡を受けたので、少し調べてみました。 なんと、「BHT1300_Programmers_Manual_J1.pdf」にはちゃんと説明がされていました。 「付録Eキーボードとキー番号」のページからの引用ですが、以下の通りです。
==========================
[BS/C] *1 *2
*1 BSはバックスペース(08h)、CRはキャリッジリターン(0Dh)、Cはキャンセル(18h)、SPはスペース(20h)コードを表します。
*2 一定時間(デフォルト500ms)以上長押しでキャンセル(18h)コードを返します。
==========================
[BS/C]キーの長押しだとキャンセル(18h)コードが返ってくるのでした。
そこで、中止の判定をキャンセル(18h)コードでも行う様に変更し、バグを解消しました。
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数について
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
処理を中断しようとして[BS/C]キーを押すのですが、中断できない場合があるとの現象が発生しました。
ソース的には以下の様な組み方で、[BS/C][ENT]キーのどちらかのキーのみの反応行う様にしています。
DENSOさんのサンプルプログラムを見ても、 処理の中断の判定は「バックスペース(&H08)」のみで処理しているので、 深く考えずに「BS」のみで中断処理をしていました。
しかし、たまに「BS」が利かない場合があるとのことで、 バグの連絡を受けたので、少し調べてみました。 なんと、「BHT1300_Programmers_Manual_J1.pdf」にはちゃんと説明がされていました。 「付録Eキーボードとキー番号」のページからの引用ですが、以下の通りです。
==========================
[BS/C] *1 *2
*1 BSはバックスペース(08h)、CRはキャリッジリターン(0Dh)、Cはキャンセル(18h)、SPはスペース(20h)コードを表します。
*2 一定時間(デフォルト500ms)以上長押しでキャンセル(18h)コードを返します。
==========================
[BS/C]キーの長押しだとキャンセル(18h)コードが返ってくるのでした。
そこで、中止の判定をキャンセル(18h)コードでも行う様に変更し、バグを解消しました。
■関連記事
⇒BHT-BASIC:DENSOのハンディターミナルの開発言語のBHT-BASIC4.0を使ってみた
⇒BHT-BASIC4.0:変数宣言の書き方(BHT-1300)
⇒BHT-BASIC4.0:変数宣言の書き方その2(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数について(BHT-1300)
⇒BHT-BASIC4.0:演算子について(BHT-1300)
⇒BHT-BASIC4.0:画面への表示について(BHT-1300)
⇒BHT-BASIC4.0:キー入力について(BHT-1300)
⇒BHT-BASIC4.0:数値用キー入力関数(ユーザ定義関数)について(BHT-1300)
⇒BHT-BASIC4.0:ユーザ定義関数の値渡し・参照渡しについて(BHT-1300)
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数について
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその2
⇒BHT-BASIC4.0:文字列を扱うユーザ定義関数についてその3
⇒BHT-BASIC4.0:TeraTermを使ってDENSOのハンディターミナルにファイル(プログラム)転送を行う方法
⇒BHT-BASIC4.0:I/OポートとWAIT、さらにTIMERについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについて(BHT-1300)
⇒BHT-BASIC4.0:データファイルの取り扱いについてその2(書込み・読込みの実用的な関数)
⇒BHT-BASIC4.0:データファイルの検索について(SEARCH関数)
⇒BHT-BASIC4.0:ユーザ関数の引数の仮変数に対する代入の注意点
⇒BHT-BASIC4.0:データファイルの削除等について(KILL、CLFILEのラッパ関数)
⇒BHT-BASIC4.0:ファイルの存在確認関数を作ってみました
⇒BHT-BASIC4.0:拡張関数のバイナリサーチ処理関数(BSEARCH.FN3)の使い方
⇒BHT-BASIC4.0:拡張関数のサーチ処理関数(SEARCH.FN3)の使い方
⇒BHT-BASIC4.0:簡単なメニュー表示・選択を行うユーザ関数について
⇒BHT-BASIC4.0:ファイル伝送におけるXFILE命令の使い方
⇒BHT-BASIC4.0:バーコードの読込み(バーコードスキャン)について
⇒BHT-BASIC4.0:Bluetoothデバイスアドレス取得等について
⇒VB.NET:ハンディターミナル(BHT-1300等)とのデータファイルの送受信について
コメント