NICOLA配列規格書
最新更新日: 2000/01/08
 





NICOLA配列規格書
NICOLA(ニコラ)
(Nihongo Input COnsortium LAyout)


-CONTENTS-

目次  本文   解説  参考


仮名漢字変換形日本語入力装置用
親指キー併用形鍵盤配列


1. 適用範囲

この規格は、主として仮名漢字変換形日本語入力装置で使用する親指キー併用形鍵盤配列について規定する。

この規格で規定する鍵盤は、英数モードとかな漢字モードを切り替えながら、日本語を入力するものとする。

なお、この規格は, かな漢字モードにおけるかな文字について、鍵盤上のキーの相対的な配列と文字選択方式とを規定し、キー上面の表記、キーの間隔、鍵盤の傾斜、キートップの形状、寸法のような物理的要因は対象外とする。

この規格は、英数モードの配列については規定しない。

参考 (Informative)

英数モードの配列としては、OADG 109Aキーボードが想定される. OADG 109Aキーボード JISにより参照

2. 用語の意味

この規格で用いる主な用語の意味は次の通りとする。

(1) 打鍵
鍵盤上のキーを押して離す動作。
(2) 親指キー
図1のA段の01、02に配置され、同時打鍵に使用するキーであり、A段の01を親指左キー、A段の02を親指右キーと呼ぶ。
(3) 左領域
図1のB段の01、02、03、04、05とC段の01、02、03、03、04、05とD段の01、02、03、03、04、05のキーが配置された領域とする。
(4) 右領域
図1のB段の06、07、08、09、10とC段の06、07、08、09、10とD段の06、07、08、09、10、11のキーが配置された領域とする。
(5) 単独打鍵
一回の動作で、一つのキーを打鍵すること。
(6) 同時打鍵
一回の動作で、文字キーと親指キーとの二つを順不同で、ピアノの和音のように、同時性を意図して打鍵すること。

3. キーの配列

キーの配列及び領域分けは図1のとおりとする。なお、左領域と右領域が容易に識別できること。

打鍵操作と、選択される文字との関係は、図2のとおりとする。

図1 配列図
図2

備考

  1. キーの位置は、英字の段名と数字の2桁の番号の組合わせで示す。
  2. A段の、親指右、親指左キーの位置、間隔は、おおむね図1のとおりとする。
  3. 「う''」または「ウ''」を配置する場合には、C01の左上に配置する。
  4. 字形の類似した文字については、次のとおりとする。
    D01: 。(半濁点) D04: ゃ(小文字) D10: ぇ(小文字) D11: 、(読点)
      : ぁ(小文字)   : ,(コンマ)
      : 。(句点)
    C04: ゅ(小文字) C09: ょ(小文字) C10: っ(小文字)
    B01: ぅ(小文字) B02: ー(長音符合) B05: ぃ(小文字) B10: ''(濁点)
      : .(ピリオド)          : ぉ(小文字)
      :・(中点)

4. 文字の選択

(1)右領域文字キーの単独打鍵により選択できる文字種は以下のとおりとする。
  め そ ね ほ ・ は と き い ん ら ち く つ , 、
   注) ・(中点) ,(コンマ) 、(読点)
(2)右領域文字キーと親指右キーの同時打鍵により選択できる文字種は以下のとおりとする。
  ぬ ゆ む わ ぉ の ょ っ よ に る ま ぇ
(3)右領域文字キーと親指左キーの同時打鍵により選択できる文字種は以下のとおりとする。
  ぷ ぞ ぺ ぼ ば ど ぎ ぽ ぱ ぢ ぐ づ ぴ ゛
   注) ゛(濁点)
(4)左領域文字キーの単独打鍵により選択できる文字種は以下のとおりとする。
  . ひ す ふ へ う し て け せ 。 か た こ さ
   注) .(ピリオド) 。(句点)
(5)左領域文字キーと親指左キーの同時打鍵により選択できる文字種は以下のとおりとする。
  ぅ ー ろ や ぃ を あ な ゅ も ぁ え り ゃ れ 注)-(長音符号)
(6)左領域文字キーと親指右キーの同時打鍵により選択できる文字種は以下のとおりとする。
  び ず ぶ べ じ で げ ぜ が だ ご ざ °
   注) °(半濁音)

5. 同時打鍵

5.1 同時打鍵による文字の選択

同時打鍵とは、2つのキーをピアノの和音の様に同時に押す操作である。
親指キー併用形鍵盤では、同時打鍵操作用のキーとして、キーボード中央に2つの親指キー(親指右キー、親指左キー)を備えており、これらを文字キーと組合せることで1つの文字キーに3つの文字を割り当てることが可能となっている。

例:  文字キーに、"は"、"み"、"ぱ"の3文字を割り当てた場合

    「文字キーのみの単独打鍵」     → は
    「親指右キーと文字キーの同時打鍵」 → み
    「親指左キーと文字キーの同時打鍵」 → ぱ

1つのキーに3つの文字が割り当てられることにより、かな文字全てをアルファベットとほぼ同じキー数に収めることが可能になり、さらに、濁音、半濁音も1つの文字として割り付けることが可能となった。

5.2 同時打鍵操作の方法

同時打鍵は、打鍵の時間差のみに着目し、打鍵の前後関係を問わない方式であるため、以下の2つの操作方法が存在する。

操作1:
「親指キーを押し、同時とみなせる時間以内に、文字キーを押す」
 (Prefix型のキー操作)
操作2:
「文字キーを押し、同時とみなせる時間内に、親指キーを押す」
 (Postfix型のキー操作)

つまり、親指キーが文字キーの前でも後でも、ある許容時間(同時とみなせる時間範囲)以内のずれで連続して押されたならば、全く同等の同時打鍵入力として扱われる。

この「同時に押されたと判定されるための打鍵時間のずれの許容限界」を同時打鍵判定時間と呼ぶ。

なお、同時打鍵判定時間は、実験的に50〜200ms程度が妥当であることが確認されており、本例では100msと仮定している。(以後、判定時間と略する場合あり)

5.3 同時打鍵判定について

打鍵された文字キーが単独の打鍵であると判定するためには、それが同時打鍵ではないことを判定する必要がある。

文字キーが押下された場合、そのキーON情報はすぐに出力されず、まず、キーコードレジスタ(MM)に格納される。
そして、同時打鍵判定時間の間に親指キーが押されないことを確認した後、単独打鍵が確定して、キーコードレジスタの内容が出力される。

規定時間以内で単独打鍵が確定するケースもあるので、実際には図1〜図3の3パターンが存在する。

図1   単独打鍵「文字キーON→タイムアウト」の場合
 文字キー        |------
          …………

              |…………> 判定時間以上経過して単独打鍵が成立
      
図2   単独打鍵「文字キーON→文字キーOFF」の場合
 文字キー        | ̄ ̄|
          …………   ………………
                 ↑ 判定時間以内でも文字キーOFFなら単独打鍵成立
      
図3   単独打鍵「文字キーON→文字キーON」の場合
 文字キーa       | ̄ ̄|
          …………   ………………

 文字キーb         | ̄ ̄|
          ………………   …………
                ↑ 判定時間内でも他の文字キーbが押下された
                  時点で文字キーaの単独打鍵成立。
      

5.4 同時打鍵の成立条件

5.4.1 親指キーと文字キー2つのキーで確定する同時打鍵
親指キーが押され、同時打鍵判定時間以内に文字キーが押された場合(図4)と、文字キーが押され、同時打鍵判定時間以内に親指キーが押された場合(図5)の2パターンが存在する。

図4   同時打鍵「親指キーON→文字キーON」の場合

  文字キーa         | ̄ ̄ ̄|
          ………………    ………………

  親指キーs       | ̄ ̄ ̄|
          …………    ……………………

              |……|判定時間内なら、同時打鍵成立

図5   同時打鍵「文字キーON→親指キーON」の場合

  文字キーa       | ̄ ̄ ̄|
          …………    ………………

  親指キーs         | ̄ ̄ ̄|
          ………………    …………

              |……|判定時間内なら、同時打鍵成立

5.4.2 打鍵順序だけでは決定できない同時打鍵
文字キーa、親指キーs、文字キーbの3つのキーが、判定時間以内の間隔で重複して押された場合は、中央に挟まれた親指キーsが文字キーaを修飾するものか、文字キーbを修飾するものかを決定しなければならない。(図6)

基本的には、押下時刻が、より親指キーに近い文字キーとの間に同時打鍵が成立すると判断する。

図6   「文字キーON→親指キーON→文字キーON」の例

  文字キーa        | ̄ ̄ ̄|
          …………    ……………………

  親指キーs          | ̄ ̄ ̄|
          ………………    ………………

  文字キーb             | ̄ ̄ ̄|
          ………………………    ………

              |-t1-| t2 |t1、t2は共に判定時間以内

t1=t2ならば、文字キーaと親指キーsが同時打鍵、文字キーbは単独打鍵。
ただし、文字キーbは、さらに続いて親指キーが押されれば同時打鍵となる。

t1>t2ならば、文字キーaは単独打鍵、親指キーsと文字キーbは同時打鍵。

5.5 親指キーの単独打鍵について

親指キーの単独打鍵に意味をもたせて、変換キー、無変換キーなどに利用する場合、単独打鍵と同時打鍵とを識別する判定基準が必要となる。
7.5.1 逐次打鍵について
逐次打鍵とは、時間順序を意図して連続して打鍵するキー操作を言う。
本来逐次打鍵では、それぞれのキー入力が独立して行われ、その間に空き時間が存在するべきであるが、高速な入力を行う際には、最初に押したキーが離される前に次のキーが押される場合もあって、タイミング的には同時打鍵に似た状況が発生する。
通常のキーボードでは、このようなキーのオーバーラップが発生しても問題にならないのであるが、親指キーと文字キーの場合は、重複を同時打鍵と誤認してしまう危険性がある。
7.5.2 逐次打鍵と同時打鍵の識別方法

「文字キーON→親指キーON→文字キーOFF→親指キーOFF」と打鍵された場合の例を図7に示す。

図7   逐次打鍵と同時打鍵の識別

  文字キーa       | ̄ ̄ ̄ ̄ ̄|
          …………      ……………………

  親指キーs          | ̄ ̄ ̄ ̄ ̄|
          …………………      ……………

              |…t1…|-t2-|


   t1: 「文字キーa  ON → 親指キーs  ON」の時間
   t2: 「親指キーs  ON → 文字キーa  OFF」の時間

文字キーaと親指キーsの押された時間のずれ(t1)が同時打鍵判定時間内である場合、キーONの時間だけに着目して同時打鍵を判定する方法では、必ず同時打鍵と判定されてしまう。 しかし、その後、文字キーaが短い時間(t2)で離されたとすると、文字キーと、親指キーの逐次打鍵でたまたま重複が起きたという可能性も考えられる。

本例では、実現が比較的容易な判定基準として、t1>t2ならば逐次打鍵、t1<=t2ならば同時打鍵と判定する方法を採用している。

しかし、キーが押下されている時間が極端に短い場合は、ぶれの要素を考慮する必要があり、t1とt2の大小比較だけでは安定した判断を行うことが難しくなる。そこで、t2の絶対時間を考慮して、ある規定時間以下であった場合は、t1によらず逐次打鍵と判定するという手法も考えられている。

現状、この2方式を併用する形がもっとも望ましいと思われるが、検討の余地は多く残されている。

6. アクセシビリティ対応

同時打鍵は親指キーと文字キーの同時操作が必要となるため、両手の動作に困難を伴う利用者の使用に対して考慮しておく必要がある。
9.1 緩慢な打鍵操作について
同時打鍵は2つのキーを押す時間差を規定しているため、素早いキー操作に困難を伴う利用者にとっては使いにくいものになってしまう恐れがある。
9.1.1 緩慢な打鍵操作に対する対応
親指キーを先に押し、後から文字キーを打鍵する操作(英文入力におけるシフト操作と同じ)も同時打鍵と認める方法。

→ 別紙「親指キー併用形鍵盤の制御マトリクス」において、
  親指キー押下状態におけるタイムアウト処理を無くす。

利点:受信側のソフトウェアの変更は不要。
欠点:親指キーの単独押下はキーを離すまで確定しない。

親指キーの単独打鍵を使う必要の無い、変換/無変換キーを独立して持つシステムならば、ごきインプリメントを行っても実害はなく、実際に多くの機種で採用されている。

9.2 一本指操作について
一回の動作で1つのキーしか打鍵出来ないような場合、2つのキーを同時に操作する同時打鍵入力を行うことができない。
9.2.1 一本指操作に対する対応
親指キー単独打鍵の後、文字キーを押した場合も同時打鍵と認める方法。

→ “親指キー単独打鍵コード+文字キーONコード”を受信した場合にも
  同時打鍵と認めるように本体側のソフトウェアで対応する。

利点:キーボード側の変更は不要。
欠点:受信側のソフトウェアの変更が必要。

親指キーの単独打鍵を使う必要の無い、変換/無変換キーを独立して持つシステムならば、受信側のキーコード解析プログラムを変更することで対応できる。

親指キー単独打鍵を変換/無変換キーとして用いるシステムの場合は、2回連続して親指キーを打鍵した場合に、変換/無変換動作を行うようにするなど上位レベルのソフトウェア対応が必要である。


目次  本文 解説  参考


解 説


1. 制定前の状況

1980年代の10年間は、日本において日本語ワードプロセッサ(いわゆる日本語ワープロ)が多数商品化されオフィス用途から個人用途まで広く普及することにより、歴史上初めて鍵盤を通じた仮名漢字変換方式による日本語入力が日常的に行われるようになった画期的な時代であった。[表-1]
 この時期に存在した日本語入力用鍵盤配列の規格としては1972年制定(1980年改正)のJISX6002(情報処理系鍵盤配列)*1と、1986年制定のJISX6004(仮名漢字変換形日本文入力装置用鍵盤配列)があった。JISX6004が制定された時点ではJISX6002が廃止されていなかったために、便宜上JISX6002を旧JIS配列、JISX6004を新JIS配列と呼ぶのが通例であった。
*1JISX6002配列の原型は1964年制定のJISB 9509にみられる。
 新JIS制定時点で多くの日本語ワープロが採用していた配列が旧JIS配列であったことは言うまでもないが二番目に多かったのは本規格の前身である親指シフト配列であった。以下にこれらの配列について説明する。

(1)旧JIS配列
 旧JIS配列が今日の多くの日本語ワープロに採用されていることは事実であるが、それは必ずしも旧JISのカナ配列が広く利用されていることを意味しない。むしろ旧JIS配列はその英字配列部分を使ったローマ字入力の配列として利用されているケースが非常に多い。
 しかしながら、英文タイプやコンピュータ端末などの経験のない利用者が特に事前の指導を受けることなく旧JIS配列鍵盤による日本語入力を始める場合、キートップにかな文字が刻印されている以上、ローマ字ではなくむしろカナ文字による入力の方を選択するのが自然である。ある調査によると1990年時点での日本語入力方式のシェアは表2のとおりである。日本語ワープロが世帯普及率50%を超えた(*2)といわれる現在、ますますこの傾向は強まるものと考えられる。[表−2]
(*2)1993年ニフティ株式会社調査  旧JIS配列の鍵盤はその利用実態から見るとローマ字入力用の英字配列として普及し始めたが、日本語ワープロの大衆化が進むにつれて次第にカナ配列としての利用が増えており、漸くその本来の規格として利用者のテストに直面する時期に差し掛かっていると言える。
(2)新JIS配列
 新JIS配列は、旧JIS配列に基づく日本語ワープロやパソコンが既に広く普及していた1986年の時点で、敢て新たな規格として導入された。その理由として、旧JIS配列は「タッチ打法による操作が英文タイプに比べて著しく困難なこと」、「タッチ打法によって操作すると小指の使用頻度が著しく高くでる」点が指摘され、結論的には「日本文の入力用として使用することは必ずしも適当ではない」とされた(JIS6004解説1-(2))
 新JIS制定の意義としては「仮名を含む鍵盤は、仮名漢字変換形の日本文入力装置の鍵盤として今後広く使用されるものであり、その操作性の良否は、我が国における文書作成業務の生産性に大きな影響を与える」(JISX6004解説1-(3))こと,また「従来の鍵盤配列は,すべて機械式の鍵盤を前提としたものであるが,最近の電子技術の進歩は,・・・操作性の点で格段に優れた鍵盤を得ること・・・」(JISX6004解説1-(4))を可能にすると指摘している。
 新JIS配列は制定後7年を経過した今日にいたるまで製品として実現された事例が極めて少なく、また、普及台数も非常に小さいまま推移しており、今後もその状況が急に変化すると信じる理由は存在しない。[表-3]
(3)親指シフト配列
 1987年に富士通株式会社が開発した親指シフト配列は、ローマ字ではなく仮名入力をする際の旧JIS配列に対する代替手段として、広く利用され続けている唯一の配列である。1986年の新JIS制定の時点ですでに約37万台の出荷実績を持っていた。
 今日、新JIS配列は工業規格としての影響力をすでに失っているが、規格化にあたってタッチ打法の実現を目標として掲げたこと、鍵盤による日本語入力が広く利用されているがゆえに効率化の意義が大きいという指摘、実現に当たって電子技術を前提とすること、という3つの項目は親指シフト配列にそっくりそのままあてはまり、その妥当性は今日も変わらないどころかむしろますます強まっていると言える。

2. 制定の目的

我々の、誰もが生涯を通じて社会生活の中で日本語を読み、書き、話し、聞いているが、このうち「書く」という行為は1980年代後半からのパーソナルワープロ等の普及にともない鍵盤による入力へと歴史的な転換を起こし始めた。
 最初の日本語ワープロが出荷されてからわずか十数年しか経過していない1993年現在の日本のオフィスにおける文書作成はすでに鍵盤入力が主流となっており、今や手書き資料は例外的存在になっている。また、利用する当人が鍵盤を操作する電子メールの普及率も約5%(*3)に上がっており、今後もその傾向はますます進むと予想されている。
(*3) 1933年ニフティ株式会社調査  欧米で既に100年以上にわたり根づいているタイプライタ文化に相当するものが、わが国も広く深く根を下ろす日がようやく間近に迫って来ていると考えられる。
 したがって、すべての国民が鍵盤による日本語入力を日常的に行うであろう将来に、我々が持つべき標準規格を定めることこそがこの規格制定の目的である。

3. 規格の要件

制定にあたっては欧米の歴史に学び、また、日本語の特性も考慮して、以下の6つの要件を満たすことを目標とした。

(1)効率的な入力のタッチ打法が容易であること
 現在の4段型キーボードにおいて、効率的な入力を目指すならば、文字キーは指の移動量の少ない範囲にまとめるべきである。NICOLA配列では日本語の入力を英文タッチ打法と同様に文字キーを3段に配置して入力操作を容易ならしめた。
(2)自然な日本語入力ができること
 自然な日本語入力とは、一つの文字で表記される音が一回の打鍵操作で入力できることである。ひとつのかな文字には濁音や半濁音も含まれる。
 日本語の文章に常用される記号類で、特に使用頻度の高いものや、その呼称が一般的に確立されていないために仮名漢字変換での発生に適していないもの、及び数字を配置する場所としてタッチ打法の範囲外である鍵盤の最上段(4段目)を開放できること。
(3)身体的な負担が少ないこと
 キーボードを日常的に操作する場合、その身体的な負担は軽い方が望ましいだけではなく、一般に力の入りにくい小指の多用は避けるべきである。
(4)アクセシビリティに配慮していること
 日本語入力鍵盤は全ての国民に利用され得るものでなければならず、従ってアクセシビリティに配慮した使用の製品実現を許容する規格でなければならない。
(5)国際規格と矛盾しないこと
 現代の日本語の文章には欧米の文字や記号が部分的にせよ含まれているので、日本語入力の鍵盤といえども欧文入力にも利用できなければならない。
 そのためにはキーの全体的な配置と個数が国際規格の欧文配列をあるがままに受けいれる適合性を備えている必要がある。
(6)実績に裏付けられていること
 日本語入力鍵盤は人々が生涯を通じて日常的に使用するものであることを考えるなら、その規格化に当たっては理論的・実験的裏付けのみならず工業製品としての長期にわたる大規模な実用実績等にも考慮して妥当性を検証すべきである。


[表-1]ワープロの大衆化:平均単価推移

年度(暦年) 82 83 84 85 86 87 88 89 90 91 92
単価(千円) 1,233 858 450 146 88 97 100 116 134 141 145

[表-2]入力方式の選択
  全体 世帯主 主婦 小学生 中学生 高校生 各種学校
大学生
社会人
の子供
世帯主
の父母
JISカナ 55.1% 52.0% 59.3% 75.7% 67.4% 48.2% 44.1% 46.7% 80.0%
ローマ字 30.9% 33.4% 26.4% 16.2% 15.2% 30.4% 58.8% 41.7% 0.0%
親指カナ 15.1% 14.8% 15.9% 8.1% 15.2% 21.4% 2.9% 18.3% 20.0%
その他*2 1.8% 1.5% 0.8% 2.7% 4.3% 3.6% 2.9% 3.3% 0.0%
*2五十音配列など 1990年7月発表のキヤノン販売(株)調査(首都圏のワープロ保有500世帯対象)

[表-3]1986年以降新JIS配列の出荷台数または製品化事例 日本事務機械工業会 集計 ワープロ出荷実績調での「KB種類別調査」キーボードの出荷実績調査は1988年〜1990年の3年間のみ調査
  全国KB出荷台数 新JIS出荷台数 新JIS出荷比率
1988年 2,425,533台 186,415台 7.7%
1989年 2,721,945台 12,795台 0.5%
1990年 2,683,806台 2,265台 0.08%

《新JISの各社の製品状況》

・リコー (×) JISのみ。
・東芝 (△) 現在はなし。(機種により、92年度まで対応しているものもあった)
・キヤノン (○) 現行機種はオプションで対応。但し対応していない機種もある。
・NEC (○) ビジネス機のみ対応。
・シャープ (○) JIS/新JIS/50音の3種を内部で設定。KBにシールを貼ることにより対応。機種により未対応あり。
・富士通 (○) ビジネス機のみに対応。
・IBM (×) JISのみ。
・サンヨー (×) JISのみ。
・ソニー (×) JISのみ。

目次  本文  解説  参考


参 考

○親指キー併用形鍵盤配列の実装例


1. 概要

本例は、キーボードコントローラーにおいて、親指キーを用いた同時打鍵入力を検出するための動作アルゴリズムを示したものである。
(別紙「親指キー併用形鍵盤配列の制御マトリクス」参照)

2. 特徴

本例の対象とするキーボードユニットは、キー押下時にキーONコード、キーリリース時にキーOFFコードを送出する。
同時打鍵検出時は同時打鍵マーカーをキーONコードの前に付加して送出する。
親指キーの単独打鍵検出機能があり、親指キーの単独打鍵を変換・無変換キーなどに兼用することも可能である。
キーリピートはキーボードユニットが検出し、キーコードを繰り返し発生する。

3. キーの種類

親指キー            :  親指左キー、親指右キー
文字キー            :  同時打鍵が成立する可能性のある文字キー。
キーリピートあり。
ダイレクト リピートキー    :  同時打鍵に関与しないキー。
キーリピートあり。
Space、Tab、Esc、Bs、Rtnなど。
ダイレクト ノンリピートキー  :  同時打鍵に関与しないキー。
キーリピートなし。Ctrl、Shift、Altなど。

4. キーコード

キー情報は8bitコードで送るものとし、$00〜$7f §の範囲でON、それの最上位ビットに1を立てた値$80〜$ffまでキーOFFを表現するものとする。
§ $付きの2桁の数字は16進数を表すものとする。(例:$ff=255)
ただし、同時打鍵成立時の識別のための1つのコード(本例では$7f)を使用するので、実際にインプリメント可能なキーの数は127個以下となる。

5. 同時打鍵の伝達方法

同時打鍵が成立した親指キーと文字キーのONコードを送出する際に、同時打鍵マーカーを付加して出力する方式を用いる。

5.1 コード化の例
親指左キー($60)、親指右キー($61)、文字キー($20)、同時打鍵マーカー($7f)とする。
以下のように打鍵された場合、
親指左キーON   ($60)
文字キーON   ($20)
親指左キーOFF   ($e0)
文字キーOFF   ($a0)

同時打鍵が成立しているならば、同時打鍵マーカーが先頭に付加されて出力される。

同時打鍵マーカー   ($7f)
親指左キーON   ($60)
文字キーON   ($20)
親指左キーOFF   ($e0)
文字キーOFF   ($a0)

同時打鍵マーカーは、直後に続く2つのキーON情報を修飾するものとし、この3つのコードの間に他のコードが入ることはないものとする。
また、親指キーと文字キーのONコードの順序は、打鍵時の順序が保存されるものとする。
受信側では、同時打鍵マーカーを受信した後、次に続く親指キーと文字キーのONコードから、同時打鍵された文字を特定することができる。
5.2 同時打鍵マーカー方式の利点
同時打鍵検出機能を常に働かせておくと、英字入力を高速に行った場合にも、誤って同時打鍵と判断されてしまうことがある。
しかし、同時打鍵マーカー方式ならば、同時打鍵検出時も元のキー押下情報はそのままの形で伝達されるため、同時打鍵検出が不要な場合は同時打鍵マーカーを無視するだけで済む。

よって、キーボードコントローラーの同時打鍵検出を「かな」/「英数」の入力モードに合わせてON/OFF制御する必要がなく、キーボード側にモードをもたせたくない場合に有効な手法である。

ただし、同時打鍵検出の原理上、キー入力に対するレスポンスが悪く感じられる場合もあり、英字入力を重視するならば同時打鍵検出機能を停止させる機能を付加することも検討すべきである。

6. ハードウェアについて

6.1 タイマー
初期値が設定可能な減算カウンタで、設定値が0になったときに割り込みを発生する。
カウント値は随時読み出しが可能。

同時打鍵判定のための複数のキーの打鍵間隔、および、キーリピート間隔を計測するために用いる。

6.2 タイマーレジスタ
T1、T2 タイマーのカウント値を格納する変数。
6.3 比較器
タイマーレジスタT1とT2の値の大小比較を行う。
6.4 キーコードレジスタ
打鍵されたキー押下情報を同時打鍵判定を行う間、一時的に保持するレジスタ。

MM   文字キーの押下情報を保持するレジスタ
SS   親指キーの押下情報を保持するレジスタ
OF   文字キーのリリース情報を保持するレジスタ

これらのレジスタを出力する際に値がセットされていない場合は何も出力されないものとする。

6.5 ハードウェア制御用の関数
Tset  タイマーに初期値(割り込み発生までの時間)を設定する関数。
    引数はミリ秒を単位とする。

7. キーリピートについて

キーリピート時は、ONコードを繰り返して発生する。
(本例では、リピート間隔を500msに設定している。)

同時打鍵においてもリピート動作を行うようになっており、同時打鍵マーカーと文字ONコード、親指ONコードをセットにして繰り返し出力を行う。
なお、文字キー、又は、親指キーのどちらか一方が離された時点でリピートは終了する。

あるキーがリピートしている最中に、別のキーが押された場合は、新しいキーのリピートが優先される。
そして、新しいキーのリピート途中で元のキーが離された場合は、リピートの途中にキーOFFコードが挿入されるが、リピート動作は継続される。

8.1 文字キーリピートの例
  文字キーON   $20
  (リピート間隔)  
  文字キーON   $20
  (リピート間隔)  
  文字キーON   $20
  (リピート間隔)  
     ・  
     ・  
  文字キーOFF   $a0
8.2 同時打鍵リピートの例
  同時打鍵マーカー   $7f
  文字キーON   $20
  親指左キーON   $60
  (リピート間隔)  
  同時打鍵マーカー   $7f
  文字キーON   $20
  親指左キーON   $60
  (リピート間隔)  
  同時打鍵マーカー   $7f
  文字キーON   $20
  親指左キーON   $60
  (リピート間隔)  
     ・  
     ・  
  親指左キーOFF   $e0
  文字キーOFF   $a0

−以上−

目次  本文  解説  参考