--- nono/doc/index.php 2026/04/29 17:04:57 1.1.1.9
+++ nono/doc/index.php 2026/04/29 17:05:18 1.1.1.15
@@ -4,16 +4,10 @@
Licensed under nono-license.txt
-->
1)
- get_version($_SERVER['argv'][1]);
-
-function get_version($filename)
-{
- global $nono_ver;
-
- $fp = fopen($filename, "r");
+ $fp = fopen("../lib/header.h", "r");
if ($fp !== false) {
while (($buf = fgets($fp)) !== false) {
if (preg_match("/NONO_MAJOR_VER\s+\((\d+)\)/", $buf, $m)) {
@@ -31,57 +25,103 @@ function get_version($filename)
}
fclose($fp);
- $nono_ver = "${nono_major}.${nono_minor}.${nono_patch} (${nono_date})";
+ $nono_ver = "${nono_major}.${nono_minor}.${nono_patch}";
}
-}
?>
+
+
+{$h4number}. {$title}
+_EOM_;
+}
+function H4end()
+{
+ print " \n";
+}
+
+function H5($name, $title)
+{
+ global $h4number;
+ global $h5number;
+ $h5number++;
+ print <<<_EOM_
+
+
+{$h4number}.{$h5number}. {$title}
+_EOM_;
+}
+function H5end()
+{
+ print " \n";
+}
+?>
-
-VM の設定ファイルはその VM ディレクトリ内の nono.cfg
-(または -c で指定したファイル) です。
-書式は
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
-(or the file specified by -c option) 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 it.
+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 must specify at least only vmtype
+by configuration file or commandline option.
設定項目は次の通りです。
The configuration items are:
@@ -339,50 +460,259 @@ config_item("vmtype = string", <<
VM 種別を以下のいずれかから指定します。
省略不可です。
Specifies the VM type from the following.
-This field is mandatory.
-
+This field is mandatory.
| | luna | … LUNA-I
- |
| luna88k | … LUNA88K
+ |
| luna88k | … LUNA-88K
+ |
| x68030 | … X68030 (Experimental)
+ |
| news | … NWS-1750 (Just a joke)
|
_EOM_
);
+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("clock-sync =
value", <<<_EOM_
仮想マシン内の時刻の同期方法を指定します。
real なら実時間に同期、
virtual なら仮想時間に同期します。
デフォルトは
real です。
この機能は実験中のため将来予告なく仕様が変更になる可能性があります。
-
Specify how to synchronize the time in virtual machine.
+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.
-
+without notice.
_EOM_
);
-config_item("debugger-port =
integer", <<<_EOM_
-デバッガの TCP 待ち受けポート番号を指定します。
-0 なら待ち受けを行いません。
-デフォルトは 0 です。
-
Specifies the TCP port number that debugger listens.
-If 0, it will not listen.
-The default is 0.
+config_item("debugger-driver =
string", <<<_EOM_
+デバッガのコンソールドライバを指定します。
+
stdio、
tcp、
none が選択可能です。
+
stdio は標準入出力を使用します。
+
tcp は TCP ポートで TELNET プロトコルで待ち受けます。
+
none ならホスト側とは一切通信を行いません。
+デフォルトは
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("ethernet-macaddr =
string", <<<_EOM_
+config_item("debugger-tcp-port =
integer",
+<<<_EOM_
+デバッガのコンソールドライバが tcp の時の TCP 待ち受けポート番号を指定します。
+
Specifies the TCP port number that debugger console driver listens.
+_EOM_
+);
+
+?>
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("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〜$01ff'ffff の 16MB です。
+
TS-6BE16 compatible mode.
+Its address is $0100'0000〜$01ff'ffff and the size is 16MB.
+ - 128/256 … 060turbo 互換モードで、
+アドレス $1000'0000〜$17ff'ffff/$1fff'ffff の 128/256MB です。
+
060turbo compatible mode.
+Its address is $1000'0000〜$17ff'ffff/$1fff'ffff and the size is
+128 or 256MB.
+
+_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("fd
N-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 Only)
+FPU を装着するかどうか指定しています。
+
none なら FPU を装着しません。
+
68881 なら FPU として 68881 を装着します。
+現状 68882 はサポートしていません。
+また
none の代わりに
0、
+
68881 の代わりに
1 と書くこともできます。
+デフォルトは
68881 です。
+LUNA-I はたぶん 68881 搭載モデルのみのため設定できません。
+
Specifies whether to install FPU or not.
+If none, FPU is not installed.
+If 68881, 68881 FPU 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("hostcom-driver =
string", <<<_EOM_
+シリアルポートのホスト側ドライバを指定します。
+
stdio、
tcp、
none が選択可能です。
+
stdio は標準入出力を使用します。
+
tcp は TCP ポートで TELNET プロトコルで待ち受けます。
+
none ならホスト側とは一切通信を行いません。
+デフォルトは
none です。
+
Specifies the host driver of serial port.
+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("hostcom-tcp-port =
integer", <<<_EOM_
+ホストドライバが tcp の時の TCP 待ち受けポート番号を指定します。
+
Specifies the TCP port number that host driver listens.
_EOM_
);
-config_item("hostnet-driver =
string", <<<_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("
hostnetN-driver = string", <<<_EOM_
+
N 番目の
イーサネットデバイスのホスト側ドライバを指定します。
afpacket、
bpf、
tap のうち
ホスト OS がサポートしているものと
auto、
none が選択可能です。
@@ -392,8 +722,10 @@ config_item("hostnet-driver =
string<
none ならホスト側とは一切通信を行いません。
auto ならホスト OS がサポートしているもののうち
tap → afpacket → bpf を順に試します。
-デフォルトは auto です。
-Specifies the host driver of ethernet device.
+hostnet0-driver のデフォルトは auto、
+hostnet1-driver のデフォルトは none です。
+Specifies the host driver of N-th
+ethernet device.
afpacket, bpf, and tap can be specified
only if the host OS supports them.
auto and none can always be specified.
@@ -404,17 +736,18 @@ and tap uses tap(4) interface.
If auto is specified,
it tries tap, afpacket, and bpf in that order
(if the host OS supports them).
-The default is auto.
+The default of hostnet0-driver is auto,
+the default of hostnet1-driver is none.
_EOM_
);
-config_item("hostdriver-afpacket-ifname = ifname", <<<_EOM_
+config_item("hostnetN-afpacket-ifname = ifname", <<<_EOM_
ホストドライバが afpacket の時にバインドするインタフェースを1つ指定します。
ifname が auto
なら使用可能なインタフェースを1つ自動的に選択します。
デフォルトは auto です。
なお、このホストドライバではローカルホストとの通信は出来ません。
-Specify an interface name to bind to, when the host driver is afpacket.
+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.
@@ -422,13 +755,13 @@ Note that this host driver cannot commun
_EOM_
);
-config_item("hostdriver-bpf-ifname = ifname", <<<_EOM_
+config_item("hostnetN-bpf-ifname = ifname", <<<_EOM_
ホストドライバが bpf の時にバインドするインタフェースを1つ指定します。
ifname が auto
なら使用可能なインタフェースを1つ自動的に選択します。
デフォルトは auto です。
なお、このホストドライバではローカルホストとの通信は出来ません。
-Specify an interface name to bind to, when the host driver is bpf.
+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.
@@ -436,7 +769,7 @@ Note that this host driver cannot commun
_EOM_
);
-config_item("hostdriver-tap-devpath = path", <<<_EOM_
+config_item("hostnetN-tap-devpath = path", <<<_EOM_
ホストドライバが tap の時に使用するデバイスを1つフルパスで指定します。
デフォルトは auto で、この場合は自動的にデバイスを選択します。
この時の探し方はホスト OS によって異なります。
@@ -450,7 +783,7 @@ NetBSD (と FreeBSD) ならまず /d
nono-ifup, nono-ifdown という名前のシェルスクリプトが必要です。
何もすることがない場合でも正常終了する空のシェルスクリプトを用意してください。
-Specify a device pathname, when the host driver is tap.
+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.
@@ -463,25 +796,86 @@ 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_
);
-config_item("hostnet-fallback = integer", <<<_EOM_
-hostnet-driver で指定したドライバが使用可能でなかった時、
+config_item("hostnetN-fallback = integer", <<<_EOM_
+hostnetN-driver で指定したドライバが使用可能でなかった時、
0 ならプロセスを終了します。
1 なら none を選択して実行を継続します。
デフォルトは 0 です。
-Specify the behavior when the driver which is selected by
-hostnet-driver is unusable;
+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("" .
+ "hostnet-driver = string
" .
+ "hostnet-afpacket-ifname = ifname
" .
+ "hostnet-bpf-ifname = ifname
" .
+ "hostnet-tap-devpath = path
" .
+ "hostnet-fallback = integer
", <<<_EOM_
+それぞれ hostnet0-* の別名です。
+_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 なら補正をしません(実機と同じ動作)、
@@ -498,14 +892,12 @@ The default is 1. Normally, leave it 1.
LUNA で採用している RTC (MK48T02) は2桁で保持している年の値が
4 で割り切れる年をうるう年とする仕様です。
-ところが NetBSD/luna68k、OpenBSD/luna88k など現存してソースが確認できる OS
-はいずれもこの RTC の年の値を 1970年からの経過年として使用しています
-(LUNA が本来どういう仕様だったのかは分かりませんが、
-異なる OS を起動し直すたびに RTC epoch をずらす運用は考えにくいので
-おそらくすべての OS で同じだと思います)。
+ところが NetBSD/luna68k、OpenBSD/luna88k などはこの
+RTC の年の値を 1970年からの経過年として使用しています。
例えば1970年はうるう年ではないため 2月28日の翌日は 3月1日ですが、
MK48T02 的には 00年であるためうるう年と認識し 2月28日の翌日が2月29日になります。
-このように、実機の RTC は4年のうち約2年間、1日ずれた日付を指しているようです。
+このように、これらの OS を使っている場合実機の
+RTC は4年のうち約2年間、1日ずれた日付を指しているようです。
しかしながら、RTC の時刻は OS 起動時に一度読んだ後は基本的に参照しない上、
今時必要なら NTP で時間を合わせるため、
実機でも問題が顕在化することはまずないと思います。
@@ -519,10 +911,11 @@ _EOM_
);
config_item("luna-dipsw1 = string", <<<_EOM_
+(LUNA Only)
本体前面 DIPSW#1-1..#1-8 の内容を指定します。
"0" を DOWN、"1" を UP として、
これを8つ並べた形式で、前から順に #1..#8 に対応します。
-Specifies status of the front panel DIPSW#1-1..#1-8 using 8 digit.
+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.
@@ -534,16 +927,26 @@ See the following link about DIPSW.
<
→ NetBSD/luna68k: Information
-LUNA88K でのデフォルトは 11111111 です。
+LUNA-88K でのデフォルトは 11111111 です。
各スイッチの内容は以下のリンクを参照してください。
-On LUNA88K, the default value is 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 です。
@@ -559,35 +962,67 @@ 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_
+);
+
+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("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 change this value on GUI menu after boot,
-but unlike this configuration value, there are only a few preset choices.
-
+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 単位で指定します。
-デフォルトは LUNA-I なら 20MHz、LUNA88K なら 25MHz です。
+デフォルトは LUNA-I なら 20MHz、LUNA-88K と X68030 なら 25MHz です。
Specifies the MPU clock in MHz.
-The default value is 20MHz on LUNA-I, or 25MHz on LUNA88K.
+The default value is 20MHz on LUNA-I, or 25MHz on LUNA-88K and X68030.
_EOM_
);
-/* luna には不要
- config_item("mpu-has-fpu", ""); */
-
config_item("mpu-pseudo-stop = integer", <<<_EOM_
+(LUNA-88K Only)
m88100 にて疑似 STOP 状態を有効にするかどうかを指定します。
0 なら無効(実機と同じ動作)、1 なら有効で、デフォルトは 1 です。
m88100 には、m68k の STOP 命令 (割り込みが上がるまで何もせず待つ)
@@ -602,18 +1037,113 @@ m88100 には、m68k の STOP 命令 (
_EOM_
);
+config_item("" .
+ "nereid0-enable = integer
" .
+ "nereid1-enable = integer
", <<<_EOM_
+
+(X68030 Only)
+Nereid 拡張ボードを装着するかどうかを指定します。
+Nereid は同時に2枚まで使用することができます。
+値は 0 なら装着せず、1 なら装着します。
+デフォルトは 0 (装着しない) です。
+詳細は 4.5 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.5 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_
-LUNA-I/LUNA88K の外部 ROM イメージファイルのパスを指定します。
+(LUNA Only)
+LUNA-I/LUNA-88K の外部 ROM イメージファイルのパスを指定します。
path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
空にすると内蔵 ROM を使用します。
デフォルトは空です。
-Specifies the LUNA-I/LUNA88K's 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.
@@ -621,8 +1151,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,52 +1163,77 @@ 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) を保存したものです。
+LUNA-88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。
今のところ ROM は version 1.20 のみサポートしています。
-For LUNA88K,
+For LUNA-88K,
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_
);
config_item("ram-size = integer", <<<_EOM_
-搭載する RAM サイズを MB 単位で指定します。
-LUNA-I のデフォルトは 16MB です。
+搭載する RAM サイズを MB 単位で指定します。Specifies the RAM size in MB.
+
+- LUNA-I のデフォルトは 16MB です。
16MB 未満は 4MB 単位で、
16MB 以上は 255MB まで 1MB 単位で指定できます
(ちなみに NetBSD/luna68k の起動には最低でも 8MB 必要です)。
-LUNA88K のデフォルトは 64MB です。
-64MB 未満は 16MB 単位で、
-64MB 以上は暫定で 255MB まで 1MB 単位で指定できます。
-
Specifies the RAM size in MB.
-On LUNA-I, the default is 16MB.
+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 255MB in 1MB unit.
-By the way, NetBSD/luna68k needs at least 8MB to boot.
-On LUNA88K, the default is 64MB.
+By the way, NetBSD/luna68k needs at least 8MB to boot.
+- LUNA-88K のデフォルトは 64MB です。
+64MB 未満は 16MB 単位で、
+64MB 以上は暫定で 255MB まで 1MB 単位で指定できます。
+
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 255MB in 1MB unit.
-
+If larger, you can specify up to tentative 255MB in 1MB unit.
+ - 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.
+
+_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("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.
-You can change it on GUI menu after boot.
-
+The default is 1 (show).
+You can change it on GUI menu after boot.
_EOM_
);
config_item("spc0-id
N-image =
devtype[,
path]", <<<_EOM_
+(LUNA and X68030 Only)
SCSI デバイスとイメージを指定します。キーの
N には 0 から 7 が入ります。
ただし ID 7 は本体が使用しますので指定しないでください。
値はデバイス種別
devtype とディスクイメージパス
path
@@ -690,8 +1244,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 +1258,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 を
@@ -729,6 +1281,7 @@ _EOM_
);
config_item("spc0-idN-seektime = integer", <<<_EOM_
+(LUNA and X68030 Only)
指定の SCSI HDD の平均シークタイムを msec 単位で指定します。
現在のデフォルトは 0 です (S・S・D!! S・S・D!!)。
16 程度を指定すると幾分往時に思いを馳せることが出来るかもしれませんが、
@@ -737,30 +1290,32 @@ 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_
);
config_item("spc0-idN-writeignore = integer", <<<_EOM_
-指定の SCSI HD デバイスへの書き込みを無視するかどうか指定します。
+(LUNA and X68030 Only)
+指定の SCSI HD デバイスへの書き込みをイメージに書き戻すかどうか指定します。
0 なら通常動作(書き込みを行う)です。
-1 なら書き込みコマンドは成功したように振る舞いますが実際には
-ディスクイメージに一切書き戻しません。
+1 ならディスクイメージに一切書き戻しません。
+デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、
+VM ディレクトリ内の一時ファイルに書き込みます。
+この一時ファイルはアプリケーション終了時に削除します。
fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。
何が起きるか意味が分からない人は指定しないでください。
デフォルトは 0 です。
-Specifies whether nono ignores writing to SCSI HD 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 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.
-But don't use this flag if you don't understand this paragraph.
+after the kernel hangs or reboots.
+Don't use this flag if you don't understand this paragraph.
The default value is 0.
ちなみに、メディアを書き込み禁止にしたい場合はこれではなく、
@@ -772,31 +1327,299 @@ _EOM_
);
config_item("spc0-idN-writeprotect = integer", <<<_EOM_
+(LUNA and X68030 Only)
古いオプションです。
代わりに spc0-idN-writeignore を使ってください。
このオプションは開発用です。
Obsolete.
Use spc0-idN-writeignore instead.
-This option is for developers.
-
+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("xxx-news-sic-ignore = integer",
+<<<_EOM_
+(NEWS Only)
+未実装の SCSI コントローラおよび DMA
+コントローラ領域へのアクセスを無視するか指定します。
+現状 (2022/08)、NetBSD/m68k はこの領域へのバスエラーを処理できず、
+uvm_fault のパニックを起こしてしまいます。
+1 にするととりあえず si(4) へのアクセスが不調に終わって
+(他に問題がなければ) NetBSD/news68k が起動できます。
+デフォルトは 0 です。
+このオプションは暫定的なもので将来廃止される予定です。
+
+Specifies whether to ignore accesses to unimplemented
+SCSI controller and DMA controller areas.
+As of Aug. 2022, NetBSD/m68k can not handle bus errors to this area,
+and it happens uvm_fault panic.
+Specifying 1 avoids it and NetBSD/news68k can boot.
+The default value is 0.
+This option is temporary and will be discontinued in the future.
+_EOM_
+);
+
?>
+
+
+
+About VM"); ?>
+
+Implementation Status"); ?>
+
+68030 はキャッシュが未実装です。
+これに伴い命令の所要クロック数もまだ正しくなく、
+そのためクロック測定などでは正確な値が出ません。
+また ATC (アドレス変換キャッシュ) は実際の仕様とは異なり高速化してあります。
+68030 cache is not implemented.
+Therefore, number of clock cycle is not correct.
+ATC (Address Translation Cache) is differ from and faster than the real 68030.
+
+
+
+
+
+DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。
+またここでの設定は即 VM に反映されますが、
+LUNA の場合 DIPSW の状態を
+PIO(8255) がラッチするのが概ね起動時および再起動時のみとなっています
+(厳密には PROM と XP が云々ですが)。
+
+
+Memory Dump Monitor"); ?>
+
+m68k/m88k バスに接続されているデバイスを表示します。
+32ビットアドレスのうち上位 8 ビット、256個分を表示しています。
+1枠が 16MB になります。
+また、X68030 ではこのうち 24ビット空間を別モニタで表示します。
+こちらは 1枠 8KB x 2048個です。
+どちらも内部構造を表示しているだけなので名前に馴染みがない場合があるかもしれません。
+
+
+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"); ?>
+