| luna88k | … LUNA88K
@@ -358,8 +349,7 @@ If real, synchronize with the r
if virtual, synchronize with the virtual time.
The default is real.
This feature is under experimentation and may be changed in the future
-without notice.
-
+without notice.
_EOM_
);
@@ -382,6 +372,20 @@ config_item("ethernet-macaddr = strin
_EOM_
);
+config_item("hostkbd-input = string", <<<_EOM_
+ホストキーボードの入力モードを指定します。
+char ならキャラクタ入力モード、
+jp なら日本語キーボードモードです。
+デフォルトは char です。
+詳細は VM について の章を参照してください。
+Specifies the input mode of the host keyboard.
+char means the character mode,
+jp means the Japanese keyboard mode.
+The defualt is char.
+See About VM for details.
+_EOM_
+);
+
config_item("hostnet-driver = string", <<<_EOM_
イーサネットデバイスのホスト側ドライバを指定します。
afpacket、bpf、tap のうち
@@ -463,8 +467,7 @@ In all cases, you need to prepare two sh
nono-ifup and nono-ifdown in the VM directory or
its parent directory.
Even if you don't have anything to do in these scripts,
-you need to prepare empty scripts that will terminate successfully.
-
+you need to prepare empty scripts that will terminate successfully.
_EOM_
);
@@ -559,8 +562,7 @@ DIPSW#2 が "11111111" なら
if the DIPSW#2 is "11111111".
Otherwise, the bootloader will enter interactive mode.
(I doubt that they actually wanted to switch with only #8)
-
-
+
_EOM_
);
@@ -571,8 +573,7 @@ config_item("monitor-rate = integer
Specifies refresh rate of all text monitor windows in Hz.
It ranges from 1 to 60. The default is 20Hz.
You can change this value on GUI menu after boot,
-but unlike this configuration value, there are only a few preset choices.
-
+but unlike this configuration value, there are only a few preset choices.
_EOM_
);
@@ -621,8 +622,7 @@ The default value is empty.
nono 内蔵のなんちゃって下位互換 ROM で起動します。
If you does not have the real LUNA machines,
you can boot with nono's internal downward compatible emulated ROM
-if you set this field empty (or leave it as the default).
-
+if you set this field empty (or leave it as the default).
LUNA-I 実機を持っている場合は
ROM ファイルを指定することで実機 ROM で起動できます。
@@ -634,16 +634,14 @@ you can boot with the real ROM spcifying
The ROM file is extracted from 0x41000000-0x4101ffff (128KB) of
the real LUNA-I machine.
For now, only V4.22 (Thu Jul 27 11:45:42 1989) is supported.
-I have no idea about other ROMs.
-
+I have no idea about other ROMs.
LUNA88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。
今のところ ROM は version 1.20 のみサポートしています。
For LUNA88K,
the ROM file is extracted from 0x41000000-0x4103ffff (256KB).
-For now, only version 1.20 is supported.
-
+For now, only version 1.20 is supported.
_EOM_
);
@@ -663,8 +661,7 @@ If larger, you can specify up to 255MB i
By the way, NetBSD/luna68k needs at least 8MB to boot.
On LUNA88K, the default is 64MB.
If the size is less than 64MB, you can specify in 16MB unit.
-If larger, you can specify up to tentative 255MB in 1MB unit.
-
+If larger, you can specify up to tentative 255MB in 1MB unit.
_EOM_
);
@@ -674,8 +671,7 @@ config_item("show-statuspanel = integ
起動後はメニューから変更可能です。
Specifies whether to display the status panel or not.
If 0, it is hidden; if 1, it is shown.
-You can change it on GUI menu after boot.
-
+You can change it on GUI menu after boot.
_EOM_
);
@@ -690,8 +686,7 @@ Specifies SCSI device and image. N
But don't specify ID 7 because the host uses it.
The value is in a form of device type devtype and
the disk image path path separated by ","(comma).
-devtype can be one of the following:
-
+devtype can be one of the following:
- hd … HD drive
- cd … CD-ROM drive
@@ -705,8 +700,7 @@ the disk image path path separate
If devtype is hd, path cannot be ommitted.
If devtype is cd or mo, path can be ommitted.
-If the path is relative path, it is from the VM directory.
-
+If the path is relative path, it is from the VM directory.
例えば、nono.cfg と同じディレクトリに置いた sd0.img を
@@ -737,8 +731,7 @@ config_item("spc0-idN-seektime =
Currently, the default value is 0
(This may be something like SSD :-).
If you specify about 16 or so, you can feel nostalgic,
-but this feature is still unstable.
-
+but this feature is still unstable.
_EOM_
);
@@ -777,8 +770,7 @@ config_item("spc0-idN-writeprotec
このオプションは開発用です。
Obsolete.
Use spc0-idN-writeignore instead.
-This option is for developers.
-
+This option is for developers.
_EOM_
);
?>
@@ -787,16 +779,16 @@ _EOM_
- VM について About VM
-ステータスパネル Status Panel
+4. VM について About VM
+4.1. ステータスパネル Status Panel
ステータスパネル中央にあるパフォーマンスメータのアイコンは
高速モードの状態を表示しています。
ダブルクリックすると高速/等速モードの指定を切り替えることができます。
The performance meter's icon at the center of the status panel
shows the VM speed status.
-You can switch full speed / syncronized mode by double-clicking on this icon.
-
+You can switch full speed / syncronized mode by double-clicking
+on this icon.
@@ -807,30 +799,370 @@ You can switch full speed / syncronized
the user has specified syncronized mode and
the VM is running in synchronized mode.
-
+
| …
|
-三角2つの場合、ユーザが高速モードを指定していて、等速モードで実行中です。
-キー入力中(後述)または VM がアイドル状態(m68k の STOP 命令)などで起きます。
+三角3つの場合、ユーザが高速モードを指定していて、高速モードで実行中です。
高速モード中はパーセントではなく何倍速で動作しているかを表します。
-When an icon (two triangles) is displayed,
+When an icon (three triangles) is displayed,
the user has specified full speed mode and
-the VM is running in synchronized mode.
-This will happen during keystrokes (see below) or when the VM is idle
-(STOP instruction on m68k).
-
+the VM is running in full speed mode.
-
+
| …
|
-三角3つの場合、ユーザが高速モードを指定していて、高速モードで実行中です。
-When an icon (three triangles) is displayed,
+三角2つの場合、ユーザが高速モードを指定していて、等速モードで実行中です。
+以下のいずれかの状態で起きます。
+When an icon (two triangles) is displayed,
the user has specified full speed mode and
-the VM is running in full speed mode.
+the VM is running in synchronized mode.
+This will happen when any of the following occurs:
+
+- キー押下中(後述)あるいはキーボードブザー発声中
+
When any keys are pressed (see below),
+or the keyboard buzzer is sounding.
+- STOP instruction on m68k.
+
- pseudo STOP state on m88k.
+
| | | | |
-キー入力 Key input
+4.2. キー入力モード Key input mode
+
+LUNA のキーボードは通常日本語キーボードです
+(英語キーボードも存在するようですが…)。
+そのため、ホストが日本語キーボードの場合とそうでない場合のために
+2つの入力モードを用意しています。
+どちらも一長一短があります。
+ Most LUNAs have the Japanese keyboard
+(though I ever heard there are the US keyboard...).
+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 のキーコードに解釈し直して 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'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).
+
+
+4.3. キャラクタ入力モードのキーコード対応表
+Keycode table in the character mode
+
+キャラクタ入力モードでの、ホストから入力した文字と
+VM に送信されるキーの対応は次の通りです。
+ファンクションキーとカーソルキーは文字ではありませんが
+特別に対応しています。
+HostChar が N/A で示してあるキーはソフトウェアキーボードからのみ入力できます。
+ The following table shows the correspondence between
+the character that typed from the host
+and the key that will be sent to the VM.
+nono can recognize the function keys and arrow keys.
+The keys where the HostChar is N/A can
+only be typed from the software keyboard window.
+
+
+
+a 〜 z [A] 〜 [Z]
+ 0 〜 9 [0] 〜 [9]
+ SPACE [SPACE]
+ - [-]
+ ^ [^]
+ \ [\]
+ @ [@]
+ [ [[]
+ ; [;]
+ : [:]
+ ] []]
+ , [,]
+ . [.]
+ / [/]
+ ^@ [CTRL]+[@]
+ ^A 〜 ^Z [CTRL]+[A] 〜 [CTRL]+[Z]
+ ^[ [ESC]
+ ^\ [CTRL]+[\]
+ ^] [CTRL]+[]]
+ ^^ [CTRL]+[^]
+ ^_ [CTRL]+[_]
+ ^H [BS]
+ ^I [TAB]
+ ^M [Enter]
+
+ A 〜 Z [SHIFT]+[A] 〜 [SHIFT]+[Z]
+ ! [SHIFT]+[1]
+ " [SHIFT]+[2]
+ # [SHIFT]+[3]
+ $ [SHIFT]+[4]
+ % [SHIFT]+[5]
+ & [SHIFT]+[6]
+ ' [SHIFT]+[7]
+ ( [SHIFT]+[8]
+ ) [SHIFT]+[9]
+ = [SHIFT]+[-]
+ ~ [SHIFT]+[^]
+ | [SHIFT]+[\]
+ ` [SHIFT]+[@]
+ { [SHIFT]+[[]
+ + [SHIFT]+[;]
+ * [SHIFT]+[:]
+ ] [SHIFT]+[]]
+ < [SHIFT]+[,]
+ > [SHIFT]+[.]
+ ? [SHIFT]+[/]
+ _ [SHIFT]+[_]
+
+ F1 〜 F10 [PF1] 〜 [PF10]
+ ↑ [↑]
+ ← [←]
+ → [→]
+ ↓ [↓]
+ N/A [確定]
+ N/A [前面]
+ N/A [CAP]
+ N/A [かな]
+ N/A [変換]
+ N/A [消去]
+ N/A [呼出]
+ N/A [文節←]
+ N/A [文節→]
+ N/A Numpad[0]〜[9]
+ N/A Numpad[+]
+ N/A Numpad[-]
+ N/A Numpad[*]
+ N/A Numpad[/]
+ N/A Numpad[=]
+ N/A Numpad[.]
+ N/A Numpad[Enter]
+__EOM__;
+ $table = array();
+ $table[0] = array();
+ $table[1] = array();
+ $table[2] = array();
+ $i = 0;
+ foreach (split("\n", $str) as $s) {
+ if ($s == "") {
+ $i++;
+ continue;
+ }
+ $s = preg_replace("/^\t+/", "", $s);
+ list ($hkey, $gkey) = preg_split("/\t+/", $s);
+ $table[$i][] = array($hkey, $gkey);
+ }
+
+ for ($j = 0; $j < count($table); $j++) {
+ switch ($j) {
+ case 0: $classname = "left"; break;
+ case 1: $classname = "middle"; break;
+ case 2: $classname = "right"; break;
+ }
+ print "\n";
+ print "";
+ print "| HostChar";
+ print " | GuestKey\n";
+ for ($i = 0; $i < count($table[$j]); $i++) {
+ list ($h, $g) = $table[$j][$i];
+ print " | ";
+ print "| {$h}";
+ print " | ${g}\n";
+ }
+ print " | \n";
+ }
+?>
+
+
+
+4.4. JP キーボードモードのキーコード対応表
+Keycode table in the JP keyboard mode
+
+JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。
+HostKey が N/A で示してあるキーは
+ソフトウェアキーボードからのみ入力出来ます。
+ The following table shows the correspondence between
+the host key and the guest key.
+The keys where the HostKey is N/A can only be enter from
+the software keyboard window.
+
+
+\n";
+ print "";
+ print "| HostKey";
+ print " | GuestKey\n";
+ for ($i = 0; $i < count($table[$j]); $i++) {
+ list ($h, $g) = $table[$j][$i];
+ print " | ";
+ print "| {$h}";
+ print " | ${g}\n";
+ }
+ print " | |