ブレークキー
ブレークキー(英語: Break key)は、コンピュータのキーボード上に配置されているキーの1種である。
19世紀に導入された電信の回路を切断するためのキーに由来するものであるが、現在ではこのキーにははっきりとした目的がない。ソフトウェアでタスクの終了や複数のログインセッションの切り換え、モデムによる接続の中断などに使用されることはある。
1985年のIBMのモデルMキーボードの導入以来、ブレーク機能はポーズ機能と統合されており、ブレークキーはポーズキー(英語: Pause key)とも呼ばれる。Deus Exやコール オブ デューティシリーズなどいくつかのゲームでは、このキーがポーズ機能のために使われている。
歴史
編集電信
編集標準的な電信の回路では、1つの回路上に送信側・受信側の全てのキー(電鍵)、スピーカーとバッテリーが直列につながっている。スピーカーは双方のキーが押下された(スイッチが閉じられた)ときにだけ鳴動する(この状態を「マーキング(marking)」という)。そのため、オペレーターは受信時には自分のキーを押下したままの状態にしておくか、キーを短絡するスイッチを閉じておく必要がある。その結果、受信側のオペレーターは、スイッチを開いて回路を切断する(この状態を「スペーシング(spacing)」という)ことで、送信側のオペレータが送信するのを遮ることができた。こうすることで、双方のスピーカーが鳴動しなくなるので、送信側は回路が切断されたことに気付くことができた。電信線が物理的に切断された場合も同様である。
テレタイプ
編集テレタイプ端末も、上記の電信と同様の仕組みで動作した。ただし、送信側も常に回路を閉じる(論理的な1、あるいはマーキング状態)点が電信とは異なる。特別な「ブレーク」キーを押下することで、回路を切断し、強制的に論理的な0、あるいはスペーシング状態にした。この状態になったとき、テレタイプ端末はそれを全ビットが0の文字(Baudot CodeやASCIIにおけるNUL)として、何も印字しない状態になる。送信者は、このときに発生する雑音で回路の切断を認識した。
コンピュータ
編集この仕組みは、テレタイプ端末を使用したタイムシェアリングシステム(TSS)のコンピュータにも持ち込まれた。スペース(論理的な0)が連続する状態は、全ての有効な文字は1つ以上の論理的な1(マーキング)からなる「終了」ビットで終わらなければならないという規則に反する。コンピュータ(特にUART)は、これを特別な「ブレーク」状態と認識し、プログラムの実行の中止や、オペレーティングシステムに強制的にログインプロンプトを表示させる割り込みを起こした。
現在では非同期連続電信はまれであるが、⎊ Breakキーは類似した目的のために端末エミュレータやソフトウェアにより用いられる。
現代のキーボード
編集現代の多くのパーソナルコンピュータでは、ポーズキーを押下すると、BIOSによって出力される画面表示を中断し、何か他のキーが押下されると再開する。これは、テキストモードによるブート中や、Windowsの50ラインセーフモードにおけるDOSプロンプトでも有効である。
初期の⎉ Pauseキーのないキーボード(101/102鍵キーボードの導入前)では、ポーズ機能は⎈ Ctrl+⇭ NumLockに、ブレーク機能はCtrl+ScrLockに割り当てられていた。このキーの組み合わせは、ポーズキーのある現代のコンピュータでも、多くのプログラムで使用できる。101/102鍵のキーボードで専用の⎉ Pauseキーを押すと、Ctrlと⇭ NumLockを順に押した時と同じスキャンコードを送信する。キーを離した時はその逆の順番である。ソフトウェアが101/102鍵のキーボードであることを認識できるように、その前に E1hex が送られる。この接頭辞を認識できないソフトウェアでは無視される。⎉ Pauseはキーを離すまでスキャンコードを送信しない。そのため、このキーが押しっぱなしになっているかどうかをソフトウェアが知ることはできない[1]。
現代のキーボードでは、⎊ Breakキーには、Pauseの下にBreakと書かれていてその間に線が引かれているか、上面にPause、側面(前面)にBreakと書かれている。
Windowsでは、⊞ Win+⎉ Pauseでシステムのプロパティが表示される。
ブレークキーのないキーボードでの入力
編集ノートPCにはPause/Breakキーがついていない場合がある。この場合、以下のキー入力が⎊ Breakキーの代わりとなる。
以下のキー入力が⎉ Pauseキーの代わりとなる。
macOSではこのキーを使用しないので、Apple KeyboardにはPause/Breakキーがついていない[4]。
プログラムによる拡張した利用法
編集Ctrl+⎊ BreakとCtrl+Cはともに、コンソールアプリケーションの実行を中断するのに用いられる。これらは、統合開発環境で類似した効果のために使われる[5][6]。これらの2つは交換可能であるとみなされるが[7]、コンパイラと実行環境は通常異なる信号をこれらに割り当てる[8]。さらに、いくつかのカーネル(DOSの変種など)では、OSがキーボードバッファを読み取るときだけ、かつ、それがバッファの唯一のキーシーケンスである場合だけ、Ctrl+Cが検出され[9][10]、Ctrl+⎊ Breakに翻訳される。このため、このようなオペレーティングシステムでは通常はCtrl+⎊ Breakを使用した方が効果的である。
脚注
編集- ^ “Keyboard 101- and 102-Key”. PS/2 Hardware Interface Technical Reference. IBM. (October 1990). p. 19 . "Except for the Pause key, all keys are make/break."
- ^ http://forum.thinkpads.com/viewtopic.php?f=60&t=98708
- ^ a b http://forum.thinkpads.com/viewtopic.php?t=105807
- ^ Computer Hope, Pause key http://www.computerhope.com/jargon/p/pausekey.htm
- ^ “CTRL+C (Break)”. Msdn.microsoft.com (2010年3月30日). 2010年10月22日閲覧。
- ^ “Debug Break”. Msdn.microsoft.com (2010年3月30日). 2010年10月22日閲覧。
- ^ “Ctrl-Break definition of Ctrl-Break in the Free Online Encyclopedia”. Encyclopedia2.thefreedictionary.com. 2010年10月22日閲覧。
- ^ [1] アーカイブ 2012年10月22日 - ウェイバックマシン
- ^ “Vim documentation: vim online”. Vim.org. 2010年10月22日閲覧。
- ^ “ClipX — DOS 5.0 Ref. - int 23h ctrl-c handler”. Ousob.com. 2010年10月22日閲覧。