LUNA も X68030 もキーボードは通常日本語キーボードです
(LUNA には英語キーボードも存在するようですが…)。
そのため、ホストが日本語キーボードの場合とそうでない場合のために
2つの入力モードを用意しています。
どちらも一長一短があります。
LUNA and X68030 has the Japanese keyboard
(though I ever heard there are US keyboard for LUNA...).
So nono provides two input modes
for Japanese keyboard users and non Japanese keyboard users.
Both have advantages and disadvantages.
JP キーボードモードは、ホストが日本語キーボードであることを前提に
対応するキーの押下、開放をその都度 VM に入力します。
メリットとしては動作が実機に近くなり、
特にキーリピート(をハードウェアが行わないこと)も忠実に再現可能です。
デメリットは ALT + TAB やアクセラレータキーでメニューを開く場合などに
キー入力が残ることがあることです
(キーを押した後でフォーカスが外れるとキーを離したことが
アプリケーションに通知されないため)。
またホストが日本語キーボードでなければ使いづらいです。
JP keyboard mode assumes that the host uses the Japanese keyboard.
Each time you presses and releases a key,
nono sends the corresponding key-pressed or key-released to the VM.
One advantage is that it's close to the real machine behavior,
and another is that it can reproduce
the LUNA keyboard itself does not perform a key repeat.
On the other hand,
one disadvantage is that key sometimes remains pressed,
especially when you enter ALT + TAB to switch the application
or enter accelerator key to open the menu
(If the application loses the focus after the key is pressed,
the application will not receive the subsequent key release).
And another disadvantage is that
it will be hard to use for non Japenese keyboard users.
一方、キャラクタ入力モードは、ホストから入力された「文字」を
再び LUNA/X68030 のキーコードに解釈し直して VM に入力するモードです。
例えばゲスト OS に "@" を入力したい場合、
US キーボードなら [SHIFT] + [2] を、
JP キーボードなら [@] キーを押しますが、
どちらも VM には [@] キーの押下、[@] キーの開放が連続して送られます。
US キーボードで [SHIFT] を押したことは通知されません。
逆に "=" を入力したい場合、
US キーボードなら [=] キーを、
JP キーボードなら [SHIFT] + [-] を押しますが、
どちらも VM には
[SHIFT]押下 → [-]押下 → [-]開放 → [SHIFT]開放のシーケンスが送られます。
このようにホストキーボードのレイアウトによらず、
入力したい文字が入力できるようになり、
通常のタイピングで困ることはないと思います。
デメリットは、通常の文字入力以外のタイピングはほぼ出来ないことです。
[SHIFT] キーを押したままにすることや、
文字が入力できないキーの組み合わせは入力出来ません。
もう一つのデメリットはキーリピート(をハードウェアが行わないこと)が再現できず、
ホスト側のキーリピートが効いてしまうことです
(本来キーリピートが動作しない ROM やブートローダでもキーリピートが効くことは
一般ユーザからはメリットに感じられるかも知れませんが)。
In contrast, in the character mode, when you type a character,
nono re-converts it into the LUNA/X68030's key code and sends it to the VM.
For example if you want to type "@" in the guest OS,
you would press [SHIFT] + [2] on the US keyboard or [@] on the JP keyboard.
In both cases, the sequence of
[@]-pressed and [@]-released will be sent to the VM.
Note that the fact that you pressed [SHIFT] key on the US keyboard
will not be sent to the VM.
Another example, if you want to type "=",
you would press [=] on the US keyboard or [SHIFT] + [-] on the JP keyboard.
In both cases, the sequence of
[SHIFT]-pressed, [-]-pressed, [-]-released, and [SHIFT]-released
will be sent to the VM.
Thus, you can type what character you want to type,
regardless of your keyboard layout.
Of course there are some disadvantages.
Firstly, it's hard to type any special characters,
for example, you can not type any key conbinations
that don't generate a character.
Or you can not hold [SHIFT] key pressed.
Secondly, the key repeat works (by the host),
even though it should not work as a correct emulation
(Although some of you may feel it an advantage).