--- nono/doc/index.php 2026/04/29 17:04:33 1.1.1.2
+++ nono/doc/index.php 2026/04/29 17:05:34 1.1.1.19
@@ -3,94 +3,190 @@
Copyright (C) 2020 nono project
Licensed under nono-license.txt
-->
- 1)
- get_version($_SERVER['argv'][1]);
-
-function get_version($filename)
+
+
+
+
+
-VM の設定ファイルはその VM ディレクトリ内の nono.cfg です。
-書式は
key = value 形式で1行1項目ずつです。
+nono の設定はいずれも以下の順序で適用されます。
+
nono's configurations are always applied in the following order.
+
+- デフォルト値
Default value
+ - ~/.nono.cfg があればその内容
+
Contents of ~/.nono.cfg if exists
+ - VM ディレクトリ内の nono.cfg (または -c で指定したファイル)
+があればその内容
+
Contents of nono.cfg in the VM directory (or the file specified by -c option) if exists
+ - コマンドラインオプション
Command line option
+
+ファイルの書式はどちらも
key = value 形式で1行1項目ずつです。
key と
value の前後の空白は取り除かれます。
また空行と "
#" で始まる行は無視します。
-知らないキーの行も無視します。
-
VM configuration file is nono.cfg in the VM directory.
-Its syntax is key = value format, one per line.
+知らないキーは警告を出した上で無視します。
+同じキーが複数回現れた場合、
+上に列挙した順に後から書いたほうで上書きし、
+同じファイル内でも同様に後に書いたほうで上書きします。
+コマンドラインオプション -V 等はこれをさらに上書きします。
+コマンドラインオプションで同じキーが複数回現れた場合も後に書いたほうが上書きします。
+
+The syntax of both files is key = value format, one per line.
White spaces before and after key and value are ignored.
-And, blank lines, lines beginning with "#", and
-lines with unrecognized key are also ignored.
-
+Blank lines, lines beginning with "#" are also ignored.
+The lines with unrecognized key are ignored with a warning.
+
+If the same key appears more than once,
+the latter overwrites the former in the above order.
+If the same key appears in a file,
+the latter overwrites the former in the same manner.
+Then, command line option -V etc. overwrites them.
+If the same key appears more than once in the command line option,
+do in the same manner.
+
+vmtype を除くすべての設定項目はそれぞれデフォルト値を持っています。
+つまり少なくとも vmtype だけは設定ファイルかコマンドラインオプションで指定する必要があります。
+All configuration items except vmtype have default value.
+It means, you need to specify at least only vmtype
+by configuration file or commandline option.
設定項目は次の通りです。
The configuration items are:
@@ -275,103 +475,855 @@ function config_item($name, $desc)
}
config_item("vmtype = string", <<<_EOM_
-VM 種別を指定します。
-今の所 string に
-指定できるのは luna (LUNA-I) だけですが、省略不可です。
-Specifies the VM type.
-For now, only luna (LUNA-I) can be specified for
-string.
+VM 種別を以下のいずれかから指定します。
+省略不可です。
+Specifies the VM type from the following.
This field is mandatory.
+
+| | luna | … LUNA-I
+ |
| luna88k | … LUNA-88K
+ |
| x68030 | … X68030
+ |
| news | … NWS-1750 (Just a joke)
+ |
| virt-m68k (or virt68k) | … virt-m68k
+ |
_EOM_
);
-config_item("debugger-port = integer", <<<_EOM_
-デバッガの TCP 待ち受けポート番号を指定します。
-0 なら待ち受けを行いません。
-デフォルトは 9999 です(適当)。
+config_item("cgrom-image = path", <<<_EOM_
+(X68030 Only)
+X68030 の外部 CGROM イメージファイルのパスを指定します。
+CGROM は 768KB です。
+path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
+path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
+空にすると nono 内蔵の互換 CGROM を使用します。
+デフォルトは空です。
+Specifies the X68030's external CGROM image file path.
+This CGROM is 768KB.
+If the path does not have any path delimiters,
+the VM directory and then its parent directory will be searched.
+If the path is a relative path,
+it will be path from the VM directory, not from the current directory.
+If the path is empty, nono's builtin compatible CGROM will be used.
+The default value is empty.
_EOM_
);
-config_item("ethernet-hostdriver = string", <<<_EOM_
-イーサネットデバイスのホスト側ドライバを指定します。
-none、tap、bpf が指定できます。
+config_item("clock-sync = value", <<<_EOM_
+仮想マシン内の時刻の同期方法を指定します。
+real なら実時間に同期、virtual なら仮想時間に同期します。
+デフォルトは real です。
+この機能は実験中のため将来予告なく仕様が変更になる可能性があります。
+Specifies how to synchronize the time in virtual machine.
+If real, synchronize with the real time;
+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.
+_EOM_
+);
+
+config_item("debugger-driver = string", <<<_EOM_
+デバッガのコンソールドライバを指定します。
+stdio、tcp、none が選択可能です。
+stdio は標準入出力を使用します。
+tcp は TCP ポートで TELNET プロトコルで待ち受けます。
none ならホスト側とは一切通信を行いません。
-tap か bpf かはホスト OS によってビルド時に決定します。
-NetBSD なら tap です。
+デフォルトは none です。
+Specifies console driver of the debugger.
+stdio, tcp, and none can be specified.
+stdio uses the standard input/output.
+tcp listens on TCP port using TELNET protocol.
+none doesn't make any communication with the host.
+The default is none.
+_EOM_
+);
+
+config_item("debugger-tcp-port = integer",
+<<<_EOM_
+デバッガのコンソールドライバが tcp の時の TCP 待ち受けポート番号を指定します。
+Specifies the TCP port number that debugger console driver listens.
_EOM_
);
-config_item("ethernet-macaddr = string", <<<_EOM_
-イーサネットデバイスの仮想マシン側の MAC アドレスを指定します。
+?>yesno", <<<_EOM_
+(LUNA and NEWS Only)
+機種に依存せず DIPSW を自動起動に設定するかどうか指定します。
+"yes" なら自動起動するように、
+"no" なら自動起動しないように DIPSW 設定を上書きします。
+"" (空) なら何もしません。デフォルトは "" です。
+このオプションは luna-dipsw1 や news-dipsw
+の状態が設定ファイルやコマンドラインオプションによって確定した後に
+該当のスイッチだけを変更します。
+Specifies whether to configure DIPSW to boot automatically,
+regardless of the models.
+"yes" overwrites DIPSW, to boot automatically.
+"no" overwrites DIPSW, not to boot automatically.
+"" (Empty) does nothing.
+The default value is "".
+This option only changes the appropriate switch(es)
+after the luna-dipsw1 or news-dipsw configuration
+is determined by the configuration file or command line options.
+_EOM_
+);
+
+config_item("dipsw-serial = yesno", <<<_EOM_
+(LUNA and NEWS Only)
+機種に依存せず DIPSW をシリアルコンソールを使うかどうか指定します。
+"yes" ならシリアルコンソールを使うように、
+"no" ならシリアルコンソールを使わないように DIPSW 設定を上書きします。
+"" (空) なら何もしません。デフォルトは "" です。
+luna-dipsw1 もしくは news-dipsw (機種による)
+の状態が設定ファイルやコマンドラインオプションによって確定した後に
+このオプションによって該当のスイッチだけを変更します。
+NEWS でシリアルコンソールを使わないを選択した場合、
+SW1,2,3 は OFF, OFF, ON にセットされ、
+NWB-512 モノクロコンソール(未実装) が選択されます。
+Specifies whether to configure DIPSW to use serial console,
+regardless of the models.
+"yes" overwrites DIPSW, to use serial console.
+"no" overwrites DIPSW, not to use serial console.
+"" (Empty) does nothing.
+The default value is "".
+This option only changes the appropriate switch(es)
+after the luna-dipsw1 or news-dipsw configuration
+is determined by the configuration file or command line options.
+If you choose not to use serial console on NEWS,
+SW1,2,3 will be set OFF, OFF, ON respectively,
+and NWB-512 monochrome console (not implemented) will be chosen.
+_EOM_
+);
+
+config_item(
+ "ethernet-macaddr = string
" .
+ "ethernetN-macaddr = string
",
+<<<_EOM_
+N
+番目のイーサネットデバイスの仮想マシン側の MAC アドレスを指定します。
XX:XX:XX:XX:XX:XX
形式で指定します。
auto なら自動的に決定します。
デフォルトは auto です。
+ethernet-macaddr は ethernet0-macaddr の別名です。
+_EOM_
+);
+
+config_item("exec-file = path", <<<_EOM_
+起動時にロードするホストの実行ファイルを指定します。
+-X オプションとほぼ同等ですが、相対パスは VM ディレクトリを起点にします。
+Specifiies the host file that will be loaded at startup.
+This is mostly the same as -X option.
+The only one difference is that relative path originates the VM directory.
+_EOM_
+);
+
+config_item("exec-bootparam = string", <<<_EOM_
+(virt-m68k Only)
+カーネルに渡すブートパラメータを指定します。
+内容はたぶん OS ごとに異なりますが、
+NetBSD/virt68k では "root=ld0" (クォートを除く)
+のようにしてカーネルにルートデバイスを指示します。
+Specifies the boot parameter that is passed to the kernel.
+The syntax may differ depending on the OS, but in NetBSD/virt68k,
+you can specify the root device to the kernel, like as
+"root=ld0" (excluding quotes).
+_EOM_
+);
+
+config_item("exec-initrd = path", <<<_EOM_
+(virt-m68k Only)
+カーネルに渡す初期 RAM ディスクイメージのパスを指定します。
+--initrd オプションとほぼ同等ですが、相対パスは VM ディレクトリを起点にします。
+Specifies the initial ramdisk image passed to the kernel.
+This is mostly the same as --initrd option.
+The only one difference is that relative path originates the VM directory.
+_EOM_
+);
+
+config_item("extram-size = integer", <<<_EOM_
+(X68030 Only)
+拡張メモリのサイズを MB 単位で指定します。
+今の所以下だけが指定できます。
+Specifies the extended RAM size in MB.
+For now, only the following can be specified.
+
+- 0 … 拡張メモリを使用しません。デフォルトです。
+
No extended memory. It's default.
+ - 16 … TS-6BE16 互換モードで、
+アドレス $0100'0000 からの 16MB です。
+
TS-6BE16 compatible mode.
+Its address is from $0100'0000 and the size is 16MB.
+ - 128/256/512 … 060turbo 互換モードで、
+アドレス $1000'0000 からです。
+
060turbo compatible mode. Its address is from $1000'0000.
+
+_EOM_
+);
+
+config_item("fast-mode = integer", <<<_EOM_
+起動時の動作モードを指定します。0 なら通常モード、1 なら高速モードです。
+デフォルトは 0 です。
+コマンドラインオプション -f でも高速モードへのみ指定可能です。
+_EOM_
+);
+
+config_item("fd-drive = integer", <<<_EOM_
+(X68030 Only)
+フロッピードライブの数を 0 から 4 で指定します。
+デフォルトは 2 です。
+Specifies the number of floppy drives from 0 to 4.
+The default is 2.
+_EOM_
+);
+
+config_item("fdN-image = path", <<<_EOM_
+(X68030 Only)
+フロッピードライブ N に起動時に挿入するディスクイメージを指定します。
+イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+起動後はメニューから操作できます。
+デフォルトは空です。
+Specifies a diskimage to be inserted to floppy drive N at startup.
+If the path is relative path, it is from the VM directory.
+You can also operate them from menu after startup.
+The default is empty.
+_EOM_
+);
+
+config_item("fpu-type = value", <<<_EOM_
+(X68030 and virt-m68k Only)
+68030 に FPU コプロセッサを装着するかどうか指定しています。
+この設定は mpu-type が 68030 の時のみ有効です。
+none なら FPU コプロセッサを装着しません。
+68881 なら FPU コプロセッサとして 68881 を装着します。
+現状 68882 はサポートしていません。
+また none の代わりに 0、
+68881 の代わりに 1 と書くこともできます。
+デフォルトは 68881 です。
+LUNA-I はたぶん 68881 搭載モデルのみのため変更できません。
+Specifies whether to install FPU co-processor or not.
+This item is meaningful only if mpu-type is 68030.
+If none, FPU co-processor is not installed.
+If 68881, 68881 FPU co-processor is installed.
+68882 is not supported yet.
+And, none can also be written as 0,
+68881 can also be written as 1.
+The default is 68881.
+This item cannot be specified on LUNA-I
+because (probably) all LUNA-I has 68881.
+_EOM_
+);
+
+config_item("host-avx2 = string", <<<_EOM_
+ホストが amd64(x86_64) の場合にレンダリングに AVX2
+アクセラレーションを使うかどうかを指定します。
+auto なら起動時にホスト CPU が AVX2 をサポートしているか確認し、
+サポートしていれば使用します。
+no なら AVX2 コードを実行しません。
+デフォルトは auto です。
+amd64(x86_64) 以外のホストではこの設定は無視されます。
+Specifies whether to use AVX2 acceleration for rendering
+on amd64(x86_64) host.
+If auto, nono checks whether the host CPU supports AVX2
+on startup and use it if it does.
+If no, nono will not execute AVX2 instructions.
+The default is auto.
+Note that this item is ignored if the host is not amd64(x86_64).
+_EOM_
+);
+
+config_item("host-neon = string", <<<_EOM_
+ホストが aarch64 の場合にレンダリングに NEON
+アクセラレーションを使うかどうかを指定します。
+auto なら使用し、
+no なら使用しません。
+デフォルトは auto です。
+aarch64 以外のホストではこの設定は無視されます。
+Specifies whether to use NEON acceleration for rendering
+on aarch64 host.
+If auto, nono uses NEON code.
+If no, nono don't use NEON code.
+The default is auto.
+Note that this item is ignored if the host is not aarch64.
+_EOM_
+);
+
+config_item("hostcom-driver = string", <<<_EOM_
+シリアルポートのホスト側ドライバを指定します。
+stdio なら標準入出力を使用します。
+tcp なら TCP ポートで TELNET プロトコルで待ち受けます。
+cons ならメイン画面で端末エミュレーションを行います。
+none ならホスト側とは一切通信を行いません。
+ゲスト機種によって対応しているホスト側ドライバの種類とデフォルト値が変わります。
+LUNA-I、LUNA-88K、X68030 では stdio、tcp、none
+が選択可能でデフォルトは none です。
+virt-m68k、NEWS では stdio、tcp、cons、none
+すべてが選択可能でデフォルトは cons です。
+Specifies the host driver of serial port.
+stdio uses the standard input/output.
+tcp listens on TCP port using TELNET protocol.
+cons does a terminal emulation in main panel.
+none doesn't make any communication with the host.
+The choices and default value vary depending on the guest type.
+On LUNA-I, LUNA-88K and X68030, you can choose stdio, tcp
+or none, and the default is none.
+On virt-m68k and NEWS, you can choose all of stdio, tcp,
+cons or none, and the default is cons.
+_EOM_
+);
+
+config_item("hostcom-tcp-port = integer", <<<_EOM_
+ホストドライバが tcp の時の TCP 待ち受けポート番号を指定します。
+Specifies the TCP port number that host driver listens.
+_EOM_
+);
+
+config_item("hostcom-fallback = integer", <<<_EOM_
+hostcom-driver で指定したドライバが使用可能でなかった時、
+0 ならプロセスを終了します。1 なら none を選択して実行を継続します。
+デフォルトは 0 です。
+Specifies the behavior when the driver which is selected by
+hostcom-driver is unusable;
+terminate the process if 0,
+or continue to run using the none driver if 1.
+The default is 0.
+_EOM_
+);
+
+config_item("hostkbd-input = string", <<<_EOM_
+(LUNA and X68030 only)
+ホストキーボードの入力モードを指定します。
+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
" .
+ "hostnet-afpacket-ifname = ifname
" .
+ "hostnet-bpf-ifname = ifname
" .
+ "hostnet-tap-devpath = path
" .
+ "hostnet-usermode-hostfwd = string
" .
+ "hostnet-usermode-net = string
" .
+ "hostnet-usermode-net6 = string
" .
+ "hostnet-fallback = integer
", <<<_EOM_
+それぞれ hostnet0-* の別名です。
+_EOM_
+);
+
+config_item("hostnetN-driver = string", <<<_EOM_
+N
+番目のイーサネットデバイスのホスト側ドライバを指定します。
+afpacket、bpf、tap、usermode のうち
+configure で検出したものと auto、none が選択可能です。
+Specifies the host driver of N-th
+ethernet device.
+afpacket, bpf, tap and usermode can be specified
+only if the configure detects them.
+auto and none can always be specified.
+
+- afpacket は Linux の AF_PACKET ソケットを使用します。
+ホスト自身とは通信できません。
+
afpacket uses Linux's AF_PACKET socket.
+It cannot communicate with the host itself.
+ - bpf は bpf(4) デバイスを使用します。
+ホスト自身とは通信できません。
+
bpf uses bpf(4) device.
+It cannot communicate with the host itself.
+ - tap は tap(4) デバイスを使用します。
+
tap uses tap(4) device.
+ - usermode は libslirp を使用したユーザモードです。
+nono 自身が NAT ルータ、DHCP サーバ、DNS サーバの機能を持ちます。
+
usermode is an usermode network using libslirp.
+nono also acts as NAT router, DHCP server and DNS server.
+
+ - none ならホスト側とは一切通信を行いません。
+
none doesn't make any communication with the host.
+
+
+auto は usermode と同義ですが、
+configure で libslirp が無効になっている場合は none と同義になります。
+hostnet0-driver のデフォルトは auto、
+hostnet1-driver のデフォルトは none です。
+
+auto is a synonym for usermode, but
+when libslirp is disabled on configure, it is a synonym for none.
+The default of hostnet0-driver is auto,
+the default of hostnet1-driver is none.
+_EOM_
+);
+
+config_item("hostnetN-afpacket-ifname = ifname", <<<_EOM_
+ホストドライバが afpacket の時にバインドするインタフェースを1つ指定します。
+ifname が auto
+なら使用可能なインタフェースを1つ自動的に選択します。
+デフォルトは auto です。
+なお、このホストドライバではローカルホストとの通信は出来ません。
+Specifies an interface name to bind to, when the host driver is afpacket.
+If auto is specified as ifname,
+it selects an usable interface automatically.
+The default is auto.
+Note that this host driver cannot communicate with the localhost.
+_EOM_
+);
+
+config_item("hostnetN-bpf-ifname = ifname", <<<_EOM_
+ホストドライバが bpf の時にバインドするインタフェースを1つ指定します。
+ifname が auto
+なら使用可能なインタフェースを1つ自動的に選択します。
+デフォルトは auto です。
+なお、このホストドライバではローカルホストとの通信は出来ません。
+Specifies an interface name to bind to, when the host driver is bpf.
+If auto is specified as ifname,
+it selects an usable interface automatically.
+The default is auto.
+Note that this host driver cannot communicate with the localhost.
+_EOM_
+);
+
+config_item("hostnetN-tap-devpath = path", <<<_EOM_
+ホストドライバが tap の時に使用するデバイスを1つフルパスで指定します。
+デフォルトは auto で、この場合は自動的にデバイスを選択します。
+この時の探し方はホスト OS によって異なります。
+Linux なら /dev/net/tun を指定したのと同じです。
+OpenBSD なら /dev/tap0 から /dev/tap9 まで
+順番にオープンできるまで試します。
+NetBSD (と FreeBSD) ならまず /dev/tap でクローニングを試み、
+それが失敗すれば /dev/tap0 から /dev/tap9 までを
+順番にオープンできるまで試します。
+いずれの場合も VM ディレクトリかその親ディレクトリに
+nono-ifup, nono-ifdown という名前のシェルスクリプトが必要です。
+何もすることがない場合でも正常終了する空のシェルスクリプトを用意してください。
+
+Specifies a device pathname, when the host driver is tap.
+The default is auto.
+The behavior in this case depends on the host OS.
+On Linux, it's the same as /dev/net/tun.
+On OpenBSD, it will try from /dev/tap0 to /dev/tap9
+until successful.
+On NetBSD (and FreeBSD), it will try cloning by /dev/tap first.
+If that fails, then try from /dev/tap0 to /dev/tap9
+until successful.
+In all cases, you need to prepare two shell script files which names are
+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.
+_EOM_
+);
+
+config_item("hostnetN-usermode-net = network/netmask", <<<_EOM_
+
+ホストドライバが usermode の時の、内部 IPv4 ネットワークのアドレスを指定します。
+ネットワークアドレスは
+192.0.2.0/255.255.255.0 のようにネットマスクで指定するか
+192.0.2.0/24 のようにネットマスク長で指定することも出来ます。
+デフォルトは 10.8.0.0/24 です。
+
+_EOM_
+);
+
+config_item("hostnetN-usermode-net6 = network/prefixlen", <<<_EOM_
+
+ホストドライバが usermode の時の、内部 IPv6 ネットワークのアドレスを指定します。
+ネットワークアドレスは 2001:db8::/64
+のようにアドレスとプレフィックス長で指定します。
+デフォルトは fd08::/64 です。
+
+_EOM_
+);
+
+config_item("hostnetN-usermode-hostfwd = entry[;entry[;…]] ", <<<_EOM_
+
+ホストドライバが usermode の時の、外部から内部へのポートフォワーディングの設定を行います。
+1つの entry は
+
+-
+
+protocol,[hostaddr:]hostport,[guestaddr:]guestport
+
+
+
+のように ','(カンマ) 3つで区切って表します。
+protocol は tcp か udp です。
+hostaddr はホストのバインドアドレスで省略すると 0.0.0.0 です。
+guestaddr はゲストのアドレスで、
+省略すると DHCP でクライアントに配布したアドレスになります
+(通常は省略します)。
+例えば、ホストの 10022/tcp へのコネクションをゲストの 22/tcp に転送したい場合は
+tcp,10022,22 となります。
+複数指定する場合は ';'(セミコロン) で区切って1行に並べます。
+
+
+
+IPv6 には対応していません。
+
+_EOM_
+);
+
+config_item("hostnetN-fallback = integer", <<<_EOM_
+hostnetN-driver で指定したドライバが使用可能でなかった時、
+0 ならプロセスを終了します。
+1 なら none を選択して実行を継続します。
+デフォルトは 0 です。
+Specifies the behavior when the driver which is selected by
+hostnetN-driver is unusable;
+terminate the process if 0,
+or continue to run using the none driver if 1.
+The default is 0.
+_EOM_
+);
+
+config_item("iplrom1-image = path", <<<_EOM_
+(X68030 Only)
+X68030 の外部 IPLROM イメージファイルのパスを指定します。
+こちらは 0xfe0000..0xffffff の 128KB の部分で、IPLROM30 と呼ばれているほうです。
+path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
+path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
+空にすると無償配布されている IPLROM30 を使用します。
+デフォルトは空です。
+Specifies the X68030's external IPLROM image file path.
+This one contains 128KB at 0xfe0000..0xffffff and is known as IPLROM30.
+If the path does not have any path delimiters,
+the VM directory and then its parent directory will be searched.
+If the path is a relative path,
+it will be path from the VM directory, not from the current directory.
+If the path is empty, the public released IPLROM30 will be used.
+The default value is empty.
+_EOM_
+);
+
+config_item("iplrom2-image = path", <<<_EOM_
+(X68030 Only)
+X68030 の外部 IPLROM イメージファイルのパスを指定します。
+こちらは 0xfc0000..0xfdffff の 128KB の部分で、ROM30 と呼ばれているほうです。
+path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
+path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
+空にすると内蔵 ROM を使用します。
+内蔵 ROM は NetBSD/x68k が起動する程度の SCSI IOCS のみサポートしています。
+デフォルトは空です。
+Specifies the X68030's external IPLROM image file path.
+This one contains 128KB at 0xfc0000..0xfdffff and is known as ROM30.
+If the path does not have any path delimiters,
+the VM directory and then its parent directory will be searched.
+If the path is a relative path,
+it will be path from the VM directory, not from the current directory.
+If the path is empty, internal emulated ROM will be used.
+The ROM supports only enough SCSI IOCS to boot NetBSD/x68k.
+The default value is empty.
+_EOM_
+);
+
+config_item("keyboard-connect = integer", <<<_EOM_
+(LUNA and X68030 Only)
+起動時にキーボードを本体に接続するかどうかを指定します。
+1 なら接続し、0 なら接続しません。デフォルトは 1 です。
+起動後はメニューから変更可能です。
+Specifies whether to connect keyboard on boot.
+If 1, it is connected; if 0, it isn't connected. The default is 1.
+You can change it on GUI menu after boot.
+_EOM_
+);
+
+config_item("luna-adjust-misused-epoch = integer", <<<_EOM_
+(LUNA Only)
+LUNA で誤った RTC epoch を採用している OS 向けに RTC
+エミュレーションを補正するかどうかを
+指定します。0 なら補正をしません(実機と同じ動作)、
+1 なら補正します(現実世界と同じ動作)。
+デフォルトは 1 で、通常 1 のままで使用して問題ありません。
+
+Specifies whether nono corrects RTC emulation for OSes
+that adopts wrong RTC epoch on LUNA.
+0 means making no correction
+(this is the same behavior as the actual machine).
+1 means making correction
+(this is the same behavior as the real world).
+The default is 1. Normally, leave it 1.
+
+LUNA で採用している RTC (MK48T02) は2桁で保持している年の値が
+4 で割り切れる年をうるう年とする仕様です。
+ところが NetBSD/luna68k、OpenBSD/luna88k などはこの
+RTC の年の値を 1970年からの経過年として使用しています。
+例えば1970年はうるう年ではないため 2月28日の翌日は 3月1日ですが、
+MK48T02 的には 00年であるためうるう年と認識し 2月28日の翌日が2月29日になります。
+このように、これらの OS を使っている場合実機の
+RTC は4年のうち約2年間、1日ずれた日付を指しているようです。
+しかしながら、RTC の時刻は OS 起動時に一度読んだ後は基本的に参照しない上、
+今時必要なら NTP で時間を合わせるため、
+実機でも問題が顕在化することはまずないと思います。
+nono の場合は実機と異なり、アプリケーション実行中しか RTC が進まないため、
+補正がない場合の動作が問題になるのは
+nono を起動したまま偶数年の2月末日から日付をまたいで、
+かつ nono を起動したまま OS を再起動して NTP などで時刻修正を行わなかった時
+だけだと思います。
+このオプションはほぼ開発者向けの動作確認用です。
_EOM_
);
config_item("luna-dipsw1 = string", <<<_EOM_
+(LUNA Only)
本体前面 DIPSW#1-1..#1-8 の内容を指定します。
"0" を DOWN、"1" を UP として、
これを8つ並べた形式で、前から順に #1..#8 に対応します。
-デフォルトは 11110111 です。
-Specifies status of the front panel DIPSW#1-1..#1-8.
+Specifies status of the front panel DIPSW#1-1..#1-8 using 8 digits.
"0" means DOWN and "1" means UP.
The first character corresponds to #1 and
-the eighth character corresponds to #8.
-The default value is 11110111.
+the eighth character corresponds to #8.
+
+LUNA-I でのデフォルトは 11110111 です。
+各スイッチの内容は以下のリンクを参照してください。
+On LUNA-I, the default value is 11110111.
+See the following link about DIPSW.
+→ NetBSD/luna68k: Information
-各スイッチの内容はここ
-(NetBSD/luna68k: Information) を参照してください。
-See NetBSD/luna68k: Information about DIPSW.
+LUNA-88K でのデフォルトは 11111111 です。
+各スイッチの内容は以下のリンクを参照してください。
+On LUNA-88K, the default value is 11111111.
+See the following link about DIPSW.
+→ OpenBSD manual pages: boot_luna88k(8)
+
+自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は
+こちらではなく
+dipsw-autoboot、dipsw-serial
+設定を使うほうが便利です。
+If you only want to specify whether to autoboot and/or
+to use serial console,
+dipsw-autoboot, dipsw-serial
+configurations are useful.
_EOM_
);
config_item("luna-dipsw2 = string", <<<_EOM_
+(LUNA Only)
本体前面 DIPSW#2-1..#2-8 の内容を指定します。
書式は luna-dipsw1 と同じです。
デフォルトは 11111111 です。
Specifies status of the front panel DIPSW#2-1..#2-8.
The same syntax as luna-dipsw1 is used.
The default value is 11111111.
-
-すべて "1"(UP) なら
-NetBSD/luna68k のブートローダは自動的にカーネルをロードして実行し、
-どれかでも "0"(DOWN) にするとプロンプトで停止するようです。
+
+NetBSD/luna68k のブートローダは、
+DIPSW#2 が "11111111" なら自動的にカーネルをロードして実行し、
+どれかでも "0" にするとプロンプトで停止するようです。
(本当は #8 だけで制御するつもりだったんじゃないかという気がします)
-If the value is 11111111,
-NetBSD/luna68k bootloader will automatically load and execute the kernel.
+NetBSD/luna68k bootloader will automatically load and execute the kernel,
+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_
+);
+
+config_item("luna-video-plane = integer", <<<_EOM_
+(LUNA Only)
+LUNA のビデオボードのプレーン数を 1、4、8 から指定します。
+1 ならモノクロビデオボード、
+4 なら16色 (4bpp) ビデオボード、
+8 なら 256色 (8bpp) ビデオボードです。
+デフォルトは 4 です。
+Specifies number of planes on LUNA video board.
+The valid values are 1, 4 or 8.
+1 means a monochrome video board,
+4 means 16-color (4bpp) video board,
+8 means 256-color (8bpp) video board.
+The default value is 4.
+_EOM_
+);
+
+config_item(
+ "m88100-version = integer
" .
+ "m88200-version = integer", <<<_EOM_
+(LUNA-88K Only)
+MPU と CMMU のマスクバージョンを設定します。
+今の所これによるエミュレータの動作の違いはありません。
+どちらかというとこれを参照しているゲスト OS の動作確認用です。
+デフォルトは m88100-version が 11、m88200-version が 9 です。
+Specifies MPU and CMMU mask version.
+This item doesn't affect any MPU/CMMU emulations for now.
+But it may be useful for verifying the guest OS behaviors.
+The default value is 11 for m88100-version,
+9 for m88200-version.
+_EOM_
+);
+
+config_item("mainview-scale = double", <<<_EOM_
+メインウィンドウの起動時のスケールを実数で指定します。
+コマンドラインオプション -s で上書き可能です。
+起動後はメニューから、
+プリセットされた倍率とここで指定した倍率には変更可能です。
+デフォルトは 1.0 です。
+_EOM_
+);
+
+config_item("monitor-fontsize = integer",
+<<<_EOM_
+テキスト系モニタとステータスパネルのフォントサイズを
+12, 16, 24 から指定します。
+コマンドラインオプション --fontsize で上書き可能です。
+起動後はメニューから変更することができます。
+デフォルトは 12 です。
+_EOM_
+);
+
+config_item("monitor-rate = integer", <<<_EOM_
+テキスト系モニタウィンドウの更新頻度を Hz 単位で指定します。
+1 から 60 までの間で指定でき、デフォルトは 20Hz です。
+起動後にメニューから、
+プリセットされた頻度とここで指定した頻度には変更可能です。
+Specifies refresh rate of all text monitor windows in Hz.
+It ranges from 1 to 60. The default is 20Hz.
+You can choose this value on GUI menu after boot,
+from preset rate or rate specified here.
_EOM_
);
config_item("mpu-clock = value", <<<_EOM_
MPU のクロック数を MHz 単位で指定します。
-デフォルトは 20MHz です。
-Specifies the MPU clock in MHz. The default value is 20MHz.
+デフォルトは LUNA-I なら 20MHz、LUNA-88K と X68030 なら 25MHz です。
+virt-m68k ではあまり意味はありませんが 25MHz です。
+Specifies the MPU clock in MHz.
+The default value is 20MHz on LUNA-I, or 25MHz on LUNA-88K and X68030.
+On virt-m68k, it's less meaningful but 25MHz.
_EOM_
);
-/* luna には不要
- config_item("mpu-has-fpu", ""); */
+config_item("mpu-type = value", <<<_EOM_
+(X68030, virt-m68k Only)
+MPU 種別を指定します。
+MPU を変更出来るのは X68030 と virt-m68k のみで、
+68030 か 68040 かを指定します。
+デフォルトはいずれも 68030 です。
+Specifies the MPU type, 68030 or 68040.
+The default is 68030.
+_EOM_
+);
+
+config_item("mpu-pseudo-stop = integer", <<<_EOM_
+(LUNA-88K Only)
+m88100 にて疑似 STOP 状態を有効にするかどうかを指定します。
+0 なら無効(実機と同じ動作)、1 なら有効で、デフォルトは 1 です。
+m88100 には、m68k の STOP 命令 (割り込みが上がるまで何もせず待つ)
+に相当する命令がなく、
+大抵ビジーウェイトループで割り込みが上がるのを待つことになります。
+これは実機では (消費電力を減らす手段がないという些細な問題以外には)
+何のデメリットもないのですが、
+エミュレータで特に高速動作させている時には割り込みが上がるまで
+(例えば人間がキーを入力するまで) ホスト CPU パワーを使い潰してビジーウェイトループを実行し続けることになり、ホスト CPU があっつあつになります。
+それを防ぐための機能です。
+特徴的な命令列を検出して実現しているので、すべての状況で動作するわけではありません。
+_EOM_
+);
+
+config_item(
+ "nereid0-enable = integer
" .
+ "nereid1-enable = integer
", <<<_EOM_
+(X68030 Only)
+Nereid 拡張ボードを装着するかどうかを指定します。
+Nereid は同時に2枚まで使用することができます。
+値は 0 なら装着せず、1 なら装着します。
+デフォルトは 0 (装着しない) です。
+詳細は 4.6 Nereid の章を参照してください。
+Specifies whether install Nereid expansion board or not.
+Up to two board can be operated at the same time.
+If 0, the board is not installed.
+If 1, the board is installed.
+The default value is 0.
+See also Section 4.6 Nereid below for details.
+_EOM_
+);
+
+config_item(
+ "nereid0-net = integer
" .
+ "nereid1-net = integer
", <<<_EOM_
+(X68030 Only)
+Nereid ボードの NIC (RTL8019AS) のみを無効にすることが出来ます
+(実機では通常そのようなことは出来ません)。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+通常は 1 のまま使用してください。
+この設定は対応する nereidN-enable が 0
+(ボードを装着しない) の場合は意味を持ちません。
+This can disable only NIC (RTL8019AS) of Nereid expansion board
+(although it's not possible normally in the real world).
+It's disabled if 0, or enabled if 1.
+The default is 1. Normally, leave it 1.
+This item will be ignored if the corresponding nereidN-enable
+is 0.
+_EOM_
+);
+
+config_item(
+ "nereid0-ram-size = integer
" .
+ "nereid1-ram-size = integer
", <<<_EOM_
+(X68030 Only)
+Nereid ボードのバンクメモリのサイズを MB 単位で指定します。
+指定できるのは 0, 4, 16 です。
+0 を指定するとバンクメモリを無効にします。
+デフォルトは 16 です。
+この設定は対応する nereidN-enable が 0
+(ボードを装着しない) の場合は意味を持ちません。
+Specifies bank memory size in MB of Nereid expansion board.
+The valid values are 0, 4 or 16.
+If 0, disable the bank memory.
+The default is 16.
+This item will be ignored if the corresponding nereidN-enable
+is 0.
+
+また通常は必要ありませんが -4 または -16 を指定すると、
+バンクメモリは無効にした上で Nereid 制御ポートのビット6の読み出し値
+(バンクメモリの容量) を再現することが出来ます。
+-4 ならビット6は 0 (4MB)、0 か -16 なら 1(16MB) が読み出せます。
+_EOM_
+);
+
+config_item("news-dipsw = string", <<<_EOM_
+(NEWS Only)
+DIPSW の内容を指定します。
+"0" を OFF、"1" を ON として、
+これを8つ並べた形式で、前から順に SW1..SW8 に対応します。
+デフォルトは 00001000 です。
+Specifies status of the DIPSW using 8 digits.
+"0" means OFF and "1" is ON.
+The first character corresponds to SW1 and
+the eighth character corresponds to SW8.
+The default valus is 00001000.
+
+各スイッチの内容は以下のリンクを参照してください。
+See the following link about DIPSW.
+→ NetBSD/news68k Frequently Asked Questions
+
+自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は
+こちらではなく
+dipsw-autoboot、dipsw-serial
+設定を使うほうが便利です。
+If you only want to specify whether to autoboot and/or
+to use serial console,
+dipsw-autoboot, dipsw-serial
+configurations are useful.
+_EOM_
+);
config_item("prom-image = path", <<<_EOM_
-外部 ROM イメージファイルのパスを指定します。
+(LUNA Only)
+LUNA-I/LUNA-88K の外部 ROM イメージファイルのパスを指定します。
path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
空にすると内蔵 ROM を使用します。
デフォルトは空です。
-Specifies the external ROM image file path.
+Specifies the LUNA-I/LUNA-88K's external ROM image file path.
If the path does not have any path delimiters,
the VM directory and then its parent directory will be searched.
If the path is a relative path,
-it will be path from the VM directory, not from the current
-directory.
+it will be path from the VM directory, not from the current directory.
If the path is empty, internal emulated ROM will be used.
The default value is empty.
@@ -381,73 +1333,295 @@ nono 内蔵のなんちゃって下位
you can boot with nono's internal downward compatible emulated ROM
if you set this field empty (or leave it as the default).
-実機を持っている場合は ROM ファイルを指定することで実機 ROM で起動できます。
+LUNA-I 実機を持っている場合は
+ROM ファイルを指定することで実機 ROM で起動できます。
ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を保存したものです。
-If you have the real LUNA machines,
+今のところ ROM は V4.22 (Thu Jul 27 11:45:42 1989) のみサポートしています。
+それ以外については何も分かりません。
+If you have the real LUNA-I machine,
you can boot with the real ROM spcifying the ROM file path.
-The ROM file is extracted from 0x41000000-0x4101ffff (128KB) from
-the real machine.
+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.
+
+LUNA-88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。
+今のところ ROM は version 1.20 のみサポートしています。
+
+For LUNA-88K,
+the ROM file is extracted from 0x41000000-0x4103ffff (256KB).
+For now, only version 1.20 is supported.
+_EOM_
+);
+
+config_item("ram-size = integer", <<<_EOM_
+搭載する RAM サイズを MB 単位で指定します。Specifies the RAM size in MB.
+
+- LUNA-I のデフォルトは 16MB です。
+16MB 未満は 4MB 単位で、
+16MB 以上は 512MB まで 1MB 単位で指定できます。
+ただし prom-image で実機イメージを指定した場合は 255MB が上限になります。
+ちなみに NetBSD/luna68k の起動には最低でも 8MB 必要です。
+
On LUNA-I, the default is 16MB.
+If the size is less than 16MB, you can specify in 4MB unit.
+If larger, you can specify up to 512MB in 1MB unit.
+However, if you have prom-image with the real image,
+the maximum is limited to 255MB.
+By the way, NetBSD/luna68k needs at least 8MB to boot.
+ - LUNA-88K のデフォルトは 64MB です。
+64MB 未満は 16MB 単位で、
+64MB 以上は暫定で 512MB まで 1MB 単位で指定できます。
+ただし prom-image で実機イメージを指定した場合は
+240MB が上限になります。
+
On LUNA-88K, 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 512MB in 1MB unit.
+However, if you have prom-image with the real image,
+the maximum is limited to 240MB.
+ - X68030 ではメイン RAM 容量を示し、デフォルトは 12MB です。
+4MB から 12MB まで 1MB 単位で指定できます。
+拡張メモリについては extram-size を参照してください。
+
On X68030, the default is 12MB.
+You can specify it in 1MB unit from 4MB to 12MB.
+See extram-size for extended memory.
+ - NWS-1750 では現状 16MB で変更できません。
+
On NWS-1750, This is 16MB fixed for now.
+ - virt-m68k のデフォルトは 128MB です。
+16MB から 4080MB まで(アプリケーションとしては)指定可能です。
+指定された値が 16MB で割り切れない場合は 16MB 単位に切り上げになります。
+
On virt-m68k, the default is 128MB and
+the range is 16MB to 4080MB.
+If the specified size is not divisible by 16MB,
+it will be rounded up to 16MB.
+
+_EOM_
+);
+
+config_item("rtc-epoch-year =
integer", <<<_EOM_
+(LUNA Only)
+RTC (MK48T02) の基準年を指定します。
+デフォルトは 1970年です。
+NetBSD/luna68k、OpenBSD/luna88k はいずれも基準年を 1970年としていますので、
+デフォルトのままで構いません。
+ゲスト OS に 4.4BSD を使用する際は 1900 を指定します。
+NEWS では今の所 1900 固定で変更出来ません。
+
Specifies the RTC (MK48T02) epoch year.
+The default is 1970.
+Since both NetBSD/luna68k and OpenBSD/luna88k use 1970 as epoch year,
+there is no need to touch this value.
+If you boot 4.4BSD on LUNA-I as the guest OS, specify 1900.
+On NEWS, it is fixed at 1900.
_EOM_
);
-config_item("ram-size =
value", <<<_EOM_
-搭載する RAM サイズを MB 単位で指定します。
-デフォルトは 16MB です。
-
Specifies the RAM size in MB. The default is 16MB.
+config_item("show-statuspanel =
integer", <<<_EOM_
+ステータスパネルを表示するかどうかを指定します。
+0 なら非表示、1 なら表示です。
+デフォルトは 1(表示) です。
+起動後はメニューから変更可能です。
+
Specifies whether to display the status panel or not.
+If 0, it is hidden; if 1, it is shown.
+The default is 1 (show).
+You can change it on GUI menu after boot.
_EOM_
);
-config_item("spc0-id
N-image =
devtype,
path", <<<_EOM_
-SCSI デバイスを指定します。
N には 0 から 7 が入ります。
-ID 7 は本体が使用しますので指定しないでください。
-値はデバイス種別
devtype とイメージパス
path
-を "
,"(カンマ) で区切って並べた形式で、
-今の所デバイス種別
devtype には "
hd"(ハードディスク) のみ指定可能です。
-ディスクイメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+config_item("spc0-id
N-image =
devtype[,
path]", <<<_EOM_
+(LUNA and X68030 Only)
+SCSI デバイスとイメージを指定します。キーの
N には 0 から 7 が入ります。
+ただし ID 7 は本体が使用しますので指定しないでください。
+値はデバイス種別
devtype とディスクイメージパス
path
+を "
,"(カンマ) で区切って並べた形式です。
+デバイス種別
devtype は以下のいずれかです。
-Specifies SCSI device. N is 0 to 7.
+Specifies SCSI device and image. N in the key is 0 to 7.
But don't specify ID 7 because the host uses it.
The value is in a form of device type devtype and
-the image path path separated by ","(comma).
-For now, only "hd" (hard disk) can be specified for devtype.
-If the path is relative path, it is from the VM directory.
-
+the disk image path
path separated by "
,"(comma).
+
devtype can be one of the following:
+
+- hd … HD drive
+
- cd … CD-ROM drive
+
- mo … MO drive
+
-例えば、nono.cfg と同じディレクトリに置いたディスクイメージ luna.img
-を使う場合、
-LUNA では通常 ID 6 をプライマリ HDD に割り当てるのでこんな感じになります。
-For example, if you use disk image luna.img placed in the same
-directory as nono.cfg,
-since LUNA usually assigns ID 6 to the primary HDD,
+devtype が hd なら path は省略できません。
+devtype が cd か mo なら path は省略可能です。
+イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+
+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.
+
+
+例えば、nono.cfg と同じディレクトリに置いた sd0.img を
+起動 HDD ディスクイメージとして使い
+(LUNA では通常 ID 6 をプライマリ HDD に割り当てます)、
+ID 5 に同じディレクトリの install.iso をセットした CD ドライブを、
+ID 4 に起動時メディアなしの MO ドライブを接続する場合は次のようになります。
+For example, if you use a harddisk image sd0.img placed in the same
+directory as nono.cfg
+(LUNA usually assigns ID 6 to the primary HDD),
+ID 5 for CD-ROM drive that loads install.iso in the same directory,
+and ID 4 for MO drive without media on boot,
write as following:
-spc0-id6-image = hd,luna.img
+spc0-id6-image = hd,sd0.img
+spc0-id5-image = cd,install.iso
+spc0-id4-image = mo
_EOM_
);
+config_item("spc0-idN-seektime = integer", <<<_EOM_
+(LUNA and X68030 Only)
+指定の SCSI HDD の平均シークタイムを msec 単位で指定します。
+現在のデフォルトは 0 です (S・S・D!! S・S・D!!)。
+16 程度を指定すると幾分往時に思いを馳せることが出来るかもしれませんが、
+今の所あまり安定していません。
+Specifies the average seek time of specified SCSI HDD in msec.
+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.
+_EOM_
+);
+
+config_item("spc0-idN-writeignore = integer", <<<_EOM_
+(LUNA and X68030 Only)
+指定の SCSI HD デバイスへの書き込みをイメージに書き戻すかどうか指定します。
+0 なら通常動作(書き込みを行う)です。
+1 ならディスクイメージに一切書き戻しません。
+デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、
+VM ディレクトリ内の一時ファイルに書き込みます。
+この一時ファイルはアプリケーション終了時に削除します。
+fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。
+何が起きるか意味が分からない人は指定しないでください。
+デフォルトは 0 です。
+Specifies whether nono writes a writing to SCSI HD devices back
+to the diskimage.
+0 means normal operation (writes to the diskimage).
+1 means that nono will not write to the diskimage back.
+Data that the guest wrote to the device will be written to a temporary file
+in the VM directory,
+like Copy-On-Write.
+The temporary file will be removed when the application exits.
+This is useful for kernel debugging because it does not require fsck
+after the kernel hangs or reboots.
+Don't use this flag if you don't understand this paragraph.
+The default value is 0.
+
+ちなみに、メディアを書き込み禁止にしたい場合はこれではなく、
+イメージファイルの書き込み権を落としてください。
+By the way, if you want to make the media write-protected,
+clear the write permission from the image file
+(instead of this setting).
+_EOM_
+);
+
config_item("spc0-idN-writeprotect = integer", <<<_EOM_
-指定の SCSI デバイスへの書き込みを無視するかどうか指定します。
+(LUNA and X68030 Only)
+古いオプションです。
+代わりに spc0-idN-writeignore を使ってください。
+このオプションは開発用です。
+Obsolete.
+Use spc0-idN-writeignore instead.
+This option is for developers.
+_EOM_
+);
+
+config_item("sram-sync-ramsize = integer", <<<_EOM_
+(X68030 Only)
+SRAM の RAM 容量欄を実際の RAM サイズに合わせるかどうかを指定します。
+0 なら何もしません (実機と同じ)。
+1 なら、アプリケーション起動時に
+SRAM の \$ed0008.L (RAM 容量) を ram-size の設定値で更新します。
+この更新は、
+アプリケーション起動時に SRAM マジックが正しく書かれている場合のみ行われます。
+デフォルトは 1 です。
+Specifies whether to synchronize a RAM size field in SRAM
+with real RAM size or not.
+If 0, the application will do nothing (as same as the real).
+If 1, the application updates(synchronizes)
+\$ed0008.L (RAM size) in SRAM with configuration value of ram-size.
+This update is performed once only if
+the SRAM magic string is correct at the application startup.
+The default is 1.
+_EOM_
+);
+
+config_item("virtio-blockN-image = path", <<<_EOM_
+(virt-m68k only)
+virtio のブロックデバイスのイメージを指定します。
+キーの N は現状 0 から 7 です。
+イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+Specifies virtio block device's image.
+N in the key is 0 to 7 for now.
+If the path is relative path, it is from the VM directory.
+_EOM_
+);
+
+config_item("virtio-blockN-writeignore = integer", <<<_EOM_
+(virt-m68k only)
+指定の virtio ブロックデバイスへの書き込みをイメージに書き戻すかどうか指定します。
0 なら通常動作(書き込みを行う)です。
-1 なら書き込みコマンドは成功したように振る舞いますが実際には
-ディスクイメージに一切書き戻しません。
+1 ならディスクイメージに一切書き戻しません。
+デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、
+VM ディレクトリ内の一時ファイルに書き込みます。
+この一時ファイルはアプリケーション終了時に削除します。
fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。
何が起きるか意味が分からない人は指定しないでください。
デフォルトは 0 です。
-Specifies whether nono ignores writing to SCSI devices.
-0 means normal operation (writes to the devices).
-If 1 is specified,
-nono will not actually write back to the disk image
-even though the write command is succeeded.
-nono's SCSI devices acts as
-write command is successfully done but it never writes back
-to the actual disk image.
+Specifies whether nono writes a writing to virtio block devices back
+to the diskimage.
+0 means normal operation (writes to the diskimage).
+1 means that nono will not write to the diskimage back.
+Data that the guest wrote to the device will be written to a temporary file
+in the VM directory,
+like Copy-On-Write.
+The temporary file will be removed when the application exits.
This is useful for kernel debugging because it does not require fsck
-after the kernel hangs.
-But don't use this flag if you don't understand this paragraph.
-The default value is 0.
-
+after the kernel hangs or reboots.
+Don't use this flag if you don't understand this paragraph.
+The default value is 0.
+
+ちなみに、メディアを書き込み禁止にしたい場合はこれではなく、
+イメージファイルの書き込み権を落としてください。
+By the way, if you want to make the media write-protected,
+clear the write permission from the image file
+(instead of this setting).
+_EOM_
+);
+
+config_item("windrv-path = path", <<<_EOM_
+(X68030 Only)
+Windrv でゲスト側に見せるホストディレクトリを指定します。
+今の所指定できるディレクトリは1つだけです。
+空なら Windrv デバイスが存在しないように振る舞います。
+デフォルトは空です。
+_EOM_
+);
+
+config_item("x68k-cut-fc2 = integer", <<<_EOM_
+(X68030 Only)
+MPU (68030) の FC2 ピンを切断するかどうかを指定します。
+0 なら切断しません (標準の状態)。
+1 なら切断します。
+デフォルトは 1 です。
+NetBSD/x68k で X サーバを起動する場合のみ 1 にする必要があります。
+Specifies whether to cut MPU(68030) FC2 pin.
+If 0, the FC2 pin is connected as usual.
+If 1, it is disconnected.
+The default is 1.
+Only if you run the X server on NetBSD/x68k, it needs to be 1.
+_EOM_
+);
+
+config_item("xp-clock = value", <<<_EOM_
+(LUNA Only)
+XP プロセッサのクロック数を MHz 単位で指定します。
+デフォルトは 6.144 [MHz] です。
_EOM_
);
@@ -455,159 +1629,1412 @@ _EOM_
?>
+
+
+About VM"); ?>
-
+いくつか未実装の命令があります。
+キャッシュは未実装で、
+それに伴いキャッシュ制御を行う新設命令 CINV*, CPUSH* も未実装です。
+MMU、ATC はまだ怪しいです。
+FPU はある程度動作すると思いますが
+例外を起こす細かい条件は未検証のため、
+本来は例外が起きてソフトウェア (FPSP) で処理するはずのものが
+68881 相当のハードウェアエミュレーションで実行出来てしまうという
+通常あまり困らないタイプの問題は存分にあります。
+
+命令の実行サイクルについては未考察です。
+そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を
+正確にエミュレーションすることはおそらく不可能ですが、
+それにしても似せるところまでも行っていないという意味です。
+
+68040 は X68030 と virt-m68k でのみ選択可能で、
+LUNA-I と NEWS では選択できません。
+NEWS に 68040 搭載モデルはなさそうなのと、
+LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。
+
+
+
+
+
+virt-m68k (や NEWS) のようにシリアルコンソールしか持たない機種のために、
+メイン画面でシリアルコンソールの端末エミュレーションを実装してあります。
+hostcom-driver = cons とすることで nono のメイン画面に
+シリアルコンソールの内容が表示されます。
+カラーは現状サポートしていませんが、
+ボールド、イタリック、下線などはある程度サポートしています。
+バックログはありませんので、バックログが必要なら
+stdio 等を使ってください。
+
+
+
+
+
+DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。
+またここでの設定は即 VM に反映されますが、
+LUNA の場合 DIPSW の状態を
+PIO(8255) がラッチするのが概ね起動時および再起動時のみとなっています
+(厳密には PROM と XP が云々ですが)。
+
+
+
+Memory Dump Monitor"); ?>
+
+m68k/m88k バスに接続されているデバイスを表示します。
+32ビットアドレスのうち上位 8 ビット、256個分を表示しています。
+1枠が 16MB になります。
+また、X68030 ではこのうち 24ビット空間を別モニタで表示します。
+こちらは 1枠 8KB x 2048個です。
+どちらも内部構造を表示しているだけなので名前に馴染みがない場合があるかもしれません。
+NEWS のデバイスマップは内部構造の都合上、
+内部状態を正確に反映していないケースがあるかも知れません。
+
+
+
+Key input mode"); ?>
+
+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).
+
+
+
+Keycode table in the character mode"); ?>
+
+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.
+
+
+
+
+
+Try it"); ?>
+Try NetBSD/luna68k"); ?>
+