+ステータスパネル中央にあるパフォーマンスメータのアイコンは
+高速モードの状態を表示しています。
+ダブルクリックすると高速/等速モードの指定を切り替えることができます。
+
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.
+
+
+
+| …
+ |
+マークなしの場合、ユーザが等速モードを指定していて、等速モードで実行中です。
+When no icons are displayed,
+the user has specified syncronized mode and
+the VM is running in synchronized mode.
+ |
+
+| …
+ |
+三角3つの場合、ユーザが高速モードを指定していて、高速モードで実行中です。
+高速モード中はパーセントではなく何倍速で動作しているかを表します。
+When an icon (three triangles) is displayed,
+the user has specified full speed mode and
+the VM is running in full speed mode.
+
+
+| …
+ |
+三角2つの場合、ユーザが高速モードを指定していて、等速モードで実行中です。
+以下のいずれかの状態で起きます。
+When an icon (two triangles) is displayed,
+the user has specified full speed mode and
+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.
+
+ | | | | |
+
+
+
+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).
+
+
+
+キャラクタ入力モードでの、ホストから入力した文字と
+VM に送信されるキーの対応は次の通りです。
+ファンクションキーとカーソルキーは文字ではありませんが
+特別に対応しています。
+ここに記載のないゲストキーはソフトウェアキーボードからのみ入力できます。
+
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 that not listed in this table can
+only be typed from the software keyboard window.
+
+
+
+
+| HostChar | GuestKey
+ |
|---|
| a 〜 z | [A] 〜 [Z]
+ |
| 0 〜 9 | [0] 〜 [9]
+ |
| SPACE | [SPACE]
+ |
| - | [-]
+ |
| ^ | [^]
+ |
| \ | [\]
+ |
| @ | [@]
+ |
| [ | [[]
+ |
| ; | [;]
+ |
| : | [:]
+ |
| ] | []]
+ |
| , | [,]
+ |
| . | [.]
+ |
| / | [/]
+ |
+
+| HostChar | GuestKey
+ |
|---|
| 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]+[_]
+ |
+
+| HostChar | GuestKey
+ |
|---|
| F1 〜 F10 | [PF1] 〜 [PF10]
+ |
| F11 | [PF10]
+ |
| ↑ | [↑]
+ |
| ← | [←]
+ |
| → | [→]
+ |
| ↓ | [↓]
+ |
| ^@ | [CTRL]+[@]
+ |
| ^A 〜 ^Z | [CTRL]+[A] 〜 [CTRL]+[Z]
+ |
| ^[ | [ESC]
+ |
| ^\ | [CTRL]+[\]
+ |
| ^] | [CTRL]+[]]
+ |
| ^^ | [CTRL]+[^]
+ |
| ^_ | [CTRL]+[_]
+ |
| ^H | [BS]
+ |
| ^I | [TAB]
+ |
| ^M | [Enter]
+ |
+
+
+
+
+JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。
+ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。
+
The following table shows the correspondence between
+the host key and the guest key.
+The keys that not listed in this table can only be enter from
+the software keyboard window.
+
+
+
+| HostKey | GuestKey
+ |
|---|
| [0] 〜 [9] | [0] 〜 [9]
+ |
| [A] 〜 [Z] | [A] 〜 [Z]
+ |
| [-] | [-]
+ |
| [^] | [^]
+ |
| [\] | [\]
+ |
| [@] | [@]
+ |
| [[] | [[]
+ |
| [;] | [;]
+ |
| [:] | [:]
+ |
| []] | []]
+ |
| [,] | [,]
+ |
| [.] | [.]
+ |
| [/] | [/]
+ |
| [_] | [_]
+ |
+
+| HostKey | GuestKey
+ |
|---|
| [ESC] | [ESC]
+ |
| [TAB] | [TAB]
+ |
| [CTRL] | [CTRL]
+ |
| [BS] | [BS]
+ |
| [Enter] | [Enter]
+ |
| [F1] 〜 [F10] | [PF1] 〜 [PF10]
+ |
| [F11] | [PF10]
+ |
| [SHIFT-L] | [SHIFT-L]
+ |
| [SHIFT-R] | [SHIFT-R]
+ |
| [↑] | [↑]
+ |
| [←] | [←]
+ |
| [→] | [→]
+ |
| [↓] | [↓]
+ |
+
+| HostKey | GuestKey
+ |
|---|
| [DEL] | Numpad[DEL]
+ |
| Numpad[0]〜[9] | Numpad[0]〜[9]
+ |
| Numpad[+] | Numpad[+]
+ |
| Numpad[-] | Numpad[-]
+ |
| Numpad[*] | Numpad[*]
+ |
| Numpad[/] | Numpad[/]
+ |
| Numpad[=] | Numpad[=]
+ |
| Numpad[.] | Numpad[.]
+ |
| Numpad[Enter] | Numpad[Enter]
+ |
+
+
+
+
+LUNA では、キーボードがハードウェア側でキーリピートを行わず、
+ソフトウェア(OS など)がキーリピートの処理を行います。
+そのため、キーリピートを実装していない LUNA の PROM や
+NetBSD/luna68k のブートローダではキーリピートは起きず、
+キーリピートを実装している NetBSD/luna68k カーネルではキーリピートが起こせます。
+キーリピートを起こす間隔をゲストのソフトウェアが測定しているということは、
+VM が高速動作するとキーリピートもそれに合わせて発生することになり、
+これをホスト側から防ぐ手段はありません。
+そこで nono ではキー入力が発生している間
+(キーが一つでも押されてからキーが全て離されるまでの間)、
+高速モードが指示されていても VM を一時的に等速モードに落として実行します。
+上記のアイコンがそれを区別しているのはこのためです。
+そのため、何らかの理由でキーが入りっぱなしになった場合
+(ALT + TAB やアクセラレータキーでメニューを開くと起きがちです)
+高速モードが抑制されたままということが起きえます。
+その場合はソフトウェアキーボードからキー入力を解除するなどしてください。
+On LUNA,
+key repeat is done by software(OS), not by the keyboard hardware.
+For this reason,
+key repeat doesn't occur on LUNA's PROM or NetBSD/luna68k's bootloader
+that don't implement it, and
+key repeat occurs on NetBSD/luna68k kernel that implements it.
+Since the timing of key repeat is measured by the guest software,
+if the VM is running faster than the real,
+the key repeat will occur faster, too.
+The host application doesn't have the way to avoid it.
+Therefore, nono will temporarily suppress the full speed mode
+while any keys are pressed.
+That is why the above-mentioned icon distinguishes them.
+If keys continue to be pressed for some reasons,
+the VM also continues to run syncronized mode.
+In this case, you can resolve it by using the software keyboard window.
+
+
+
+
+
-どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
+つついさんが NetBSD/luna68k 9.2 の liveimage を用意されています。
+
Tsutsui-san has provided a liveimage of NetBSD/luna68k 9.2.
+
+- https://twitter.com/tsutsuii/status/1436381589211017217
+
+ここではこれを起動してみます。
Let's try it.
+
+
+- どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
その中に VM ディレクトリを用意します (例えば ~/nono/luna/)。
-その中に設定ファイル nono.cfg を用意します。
-nono に -c オプションで VM ディレクトリを指定して起動します。
-これだけでたぶん起動して NVRAM.DAT ファイルが自動的に作られます。
-ROM モニタについては最低限なんとなく雰囲気似せてあるので
-再びこちら (NetBSD/luna68k: Information) 参照のこと。
-ここからどうやって NetBSD/luna68k をインストールするかについては待て次号。
-
-% mkdir -p ~/nono/luna/
-% echo "vmtype=luna" > ~/nono/luna/nono.cfg
-% path/to/nono -c ~/nono/luna
+Create a directory somewhere for nono (for example ~/nono/),
+and create subdirectories for individual VMs in it
+(for example ~/nono/luna/).
+
+
- 以下のリンクからイメージファイルをダウンロードして展開し、
+VM ディレクトリ ~/nono/luna/ に置きます。
+
Download imagefile from the following link,
+extract it and place it in the VM directory, ~/nono/luna/.
+
+http://teokurebsd.org/netbsd/liveimage/20210910-luna68k/
+
+
+ - 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna/
+に作成します。
+ここでは説明を簡単にするためネットワークなしにしていますが、
+ネットワーク設定は必要に応じて行ってください。
+
Create a configuration file nono.cfg in the VM directory, ~/nono/luna/,
+with following contents.
+By the way, to simplify the explanation, we assume there is no network here.
+However, please configure the network if necessary.
+
+vmtype = luna
+spc0-id6-image = hd,liveimage-luna68k-with-packages-20210910.img
+hostnet-driver = none
+
+
+ - nono -c ~/nono/luna で起動します
+(VM ディレクトリに自動的に NVRAM.DAT が作られます)。
+
Run as nono -c ~/nono/luna.
+(NVRAM.DAT will be created automatically in the VM directory)
+
+ - Emulated ROM Monitor が起動するので、
+初回は以下のように入力すると NetBSD が起動します。
+
The emulated ROM Monitor will be executed.
+Then, only for the first time,
+entering the following can boot NetBSD.
+
+k⏎
+⏎
+⏎
+d⏎
+boot⏎
+g⏎
+x⏎
+
+画面はこんな感じのはずです (太字が入力部分)。
+You will see a screen like this. The bold text indicates
+the characters you need to enter.
+
+NONO 0.4.0 Emulated ROM Monitor for LUNA-I
+
+** NVRAM Initialized.
+
+>k⏎
+controller: dk ?⏎
+drive unit: 0 ?⏎
+partition : c ?d⏎
+filename : vmunix ?boot⏎
+>g⏎
+Loaded. Entry point = $00700000
+>x⏎
+
+この内容は NVRAM.DAT に記録されているので次回以降は直接 NetBSD が起動します。
+The information you have just entered is recorded in the NVRAM,
+so next time it will boot NetBSD automatically.
+ - 初回起動時、
+Updating fontconfig cache はあほみたいに時間がかかりますが、
+nono がハングアップしてるわけではありません(>_<)。
+また初回は起動後数時間めちゃくちゃ重たいですが、
+これはバックグラウンドで makemandb が動くためで
+nono のせいではありません(>_<)。
+
At the first boot, you will see the console stops after printing
+"Updating fontconfig cache".
+This is because the infamous fontconfig takes very looooong time.
+nono would not have hang-up.
+In addition, at the first boot, you will feel it's too heavy for several hours.
+This is because the infamous makemandb(8) runs heavily in the background
+for a looooong time.
+It's very sad to me that these two accidents which are far from the ideal
+are the first experiences of newcomers.
+
+ - 終了する時は root
+ユーザで “shutdown -p now” を実行してください。
+LUNA はソフトウェアから電源オフでき、
+VM の電源オフで nono も終了します。
+
To quit, type “shutdown -p now” as the root user.
+LUNA can be powered off by software,
+and nono will terminate when the VM is powered off.
+
+
+
+
+あおやまさんが OpenBSD/luna88k 7.0 の liveimage を用意されています。
+
Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.0.
+
+- https://twitter.com/ao_kenji/status/1473611893386661888
+
+ここではこれを起動してみます。
Let's try it.
+
+
+- どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
+その中に VM ディレクトリを用意します (例えば ~/nono/luna88k/)。
+
Create a directory somewhere for nono (for example ~/nono/),
+and create subdirectories for individual VMs in it
+(for example ~/nono/luna88k/).
+
+ - 以下のリンクから liveimage-luna88k-raw-20211221.img.gz
+をダウンロードして展開し、
+VM ディレクトリ ~/nono/luna88k/ に置きます。
+
Download liveimage-luna88k-raw-20211221.img.gz from the following link,
+extract it and place it in the VM directory, ~/nono/luna88k/.
+
+http://www.nk-home.net/~aoyama/liveimage/
+
+
+ - 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna88k/
+に作成します。
+ここでは説明を簡単にするためネットワークなしにしていますが、
+ネットワーク設定は必要に応じて行ってください。
+
Create a configuration file nono.cfg in the VM directory, ~/nono/luna88k/,
+with following contents.
+By the way, to simplify the explanation, we assume there is no network here.
+However, please configure the network if necessary.
+
+vmtype = luna88k
+spc0-id6-image = hd,liveimage-luna88k-raw-20211221.img
+hostnet-driver = none
+
+
+ - nono -c ~/nono/luna88k で起動します
+(VM ディレクトリに自動的に NVRAM.DAT が作られます)。
+
Run as nono -c ~/nono/luna88k.
+(NVRAM.DAT will be created automatically in the VM directory)
+ - Emulated ROM Monitor が起動するので、
+初回は以下のように入力すると OpenBSD が起動します。
+
The emulated ROM Monitor will be executed.
+Then, only for the first time,
+entering the following can boot OpenBSD.
+
+nvram boot_filename boot⏎
+y
+b⏎
+
+画面はこんな感じのはずです (太字が入力部分)。
+You will see a screen like this. The bold text indicates
+the characters you need to enter.
+
+NONO 0.4.0 Emulated ROM Monitor for LUNA88K
+
+** NVRAM Initialized.
+
+N>nvram boot_filename boot⏎
+Update boot_filename : "vmunix" -> "boot" (Y/[N]):y
+Updated
+N>b⏎
+
+この内容は NVRAM.DAT に記録されているので次回以降は直接 OpenBSD が起動します。
+The information you have just entered is recorded in the NVRAM,
+so next time it will boot OpenBSD automatically.
+
+ - 終了する時は root
+ユーザで “shutdown -p now” を実行してください。
+LUNA-88K はソフトウェアから電源オフでき、
+VM の電源オフで nono も終了します。
+
To quit, type “shutdown -p now” as the root user.
+LUNA-88K can be powered off by software,
+and nono will terminate when the VM is powered off.
+
+
+
+
-設定ファイルに
+wm0 を持つ NetBSD ホストに tap(4) デバイスを用いて
+nono のゲスト OS を接続する場合の設定例です。
+
+-
+設定ファイル nono.cfg に以下の行を追加します
+(と言いつつ NetBSD では書かなくてもデフォルトでこの動作になりますが)
+
Add the following line to configuration file, nono.cfg.
+(Although you don't need to write it since these are default behavior
+on NetBSD)
-ethernet-hostdriver = tap
+hostnet-driver = tap
+hostnet-tap-devpath = auto
-を追加し、VM ディレクトリに nono-ifup、nono-ifdown
-というスクリプトを用意してください。
-nono は tap(4) をオープンし、
-そのデバイス名を引数にこれらのスクリプトを呼びます。
-
-最もシンプルなケースだとおそらく
+
+
- デフォルトでは /dev/tap は一般ユーザからアクセスできないので、
+chmod で適当にパーミッションを与えます。
+番号の付いていないほうの /dev/tap だけでいいです。
+sysinst 等で OS をアップグレードするとパーミッションが 600
+に戻るのがハマりポイントです。
+
By default, /dev/tap is only accessible to privileged user.
+You need to chmod /dev/tap (without unit number) appropriately.
+Note that upgrading using sysinst always reset the permission to 600.
+
+ - bridge(4) インタフェースを作成し、
+ホストの外部(物理)インタフェースをブリッジに追加しておきます。
+
Create a bridge(4) interface, and
+add your physical interface to the bridge.
-# brconfig bridge0 create
+# ifconfig bridge0 create
# brconfig bridge0 add wm0
-のようにして用意しておいた bridge0 に対して、
-(sudo の設定は別途行ってから)
-次のような nono-ifup、nono-ifdown を用意すれば
-wm0 の物理セグメントとブリッジできると思います。
+常用するなら /etc の設定ファイルに書いておきましょう。
+If you use it regularly,
+you can put configuration file into /etc.
+
+/etc/ifconfig.bridge0
+
+create
+up
+!/sbin/brconfig $int add wm0
+
+
+# /etc/rc.d/network restart
+
+
+ -
+一般ユーザに戻って、
+VM ディレクトリかその親ディレクトリに
+次のような 2つのスクリプトを用意します。
+nono は tap(4) をオープンし、
+そのデバイス名を引数にこれらのスクリプトを呼びます。
+sudo の設定は別途行ってください。
+
Return to non-privileged user, and
+create following two scripts in the VM directory or its parent directory.
+nono will open tap(4) and
+invoke these scripts with the name of the device as an argument.
+In addition, you need to set up sudo separately.
nono-ifup
#!/bin/sh
-sudo ifconfig $1 up
-sudo brconfig bridge0 add $1
+sudo /sbin/ifconfig $1 up
+sudo /sbin/brconfig bridge0 add $1
-nono-ifup
+nono-ifdown
#!/bin/sh
-sudo brconfig bridge0 delete $1
-sudo ifconfig $1 down
+sudo /sbin/brconfig bridge0 delete $1
+sudo /sbin/ifconfig $1 down
+
+
+
+% chmod +x nono-ifup nono-ifdown
+ - nono を起動し、
+メニューの「モニタ > ホスト > ホストネットワーク」を開いて
+HostNet Driver: tap になっていれば動いてるはずです。
+
Run nono,
+and open "Monitor > Host > Host Network" window from menu.
+It's OK if you can see "HostNet Driver: tap".
+
+
+
+
+
+
+バージョンアップに伴い設定ファイル等に非互換が発生する場合があります。
+その場合は以下の移行方法を参照して設定ファイル等を更新してください。
+
Some versions may have incompatibilities in the configuration files, etc.
+In such case, you may need to upgrade it by referring the following link.
+
+
+
+
+バグ報告などは以下にお願いします。日本語でおk。
+
If you find any problems, please let me know.
+You may write in English.
+
https://github.com/isaki68k/nono-issue/issues
+
+パッチを提供してくださる場合は以下に同意したものとします。
+
If you provide a patch to nono, we assume that you agree the following
+conditions:
+
+- 成果物が nono のライセンスに従って運用あるいは配布されること。
+
All your work are operated or distributed under the nono license.
+ - ライセンスが将来変わる可能性があること。
+
The license may be changed in the future.
+ - 著作部分に関して著作者人格権を行使しないこと。
+
Do not exercise your author's rights.
+
+
+
+
+nono は以下の広告条項を含むソースコードを利用しています。
+
nono uses source code with the following advertising clause.
+
+This product includes software developed by Gordon Ross
+This product includes software developed by the University of California, Lawrence Berkeley Laboratory.
+
+
-