|
|
1.1.1.2 root 1: <!--
2: nono
3: Copyright (C) 2020 nono project
4: Licensed under nono-license.txt
5: -->
1.1 root 6: <html><?php
1.1.1.11 root 7: $nono_ver = "@version@";
8: $nono_date = "@date@";
1.1 root 9:
1.1.1.11 root 10: $fp = fopen("../lib/header.h", "r");
1.1 root 11: if ($fp !== false) {
12: while (($buf = fgets($fp)) !== false) {
13: if (preg_match("/NONO_MAJOR_VER\s+\((\d+)\)/", $buf, $m)) {
14: $nono_major = $m[1];
15: }
16: if (preg_match("/NONO_MINOR_VER\s+\((\d+)\)/", $buf, $m)) {
17: $nono_minor = $m[1];
18: }
19: if (preg_match("/NONO_PATCH_VER\s+\((\d+)\)/", $buf, $m)) {
20: $nono_patch = $m[1];
21: }
22: if (preg_match("/NONO_DATE\s+\"([^\"]+)\"/", $buf, $m)) {
23: $nono_date = $m[1];
24: }
25: }
26: fclose($fp);
27:
1.1.1.11 root 28: $nono_ver = "${nono_major}.${nono_minor}.${nono_patch}";
1.1 root 29: }
30: ?>
1.1.1.2 root 31: <?php require_once "common.php"; ?>
1.1.1.14 root 32: <?php
33: function H4($name, $title)
34: {
35: global $h4number;
36: global $h5number;
37: $h4number++;
38: $h5number = 0;
39: print <<<_EOM_
40: <a name="{$name}"></a>
41: <details open style="padding-top: 1em">
42: <summary><span class=h4>{$h4number}. {$title}</span></summary>
43: _EOM_;
44: }
45: function H4end()
46: {
47: print "</details>\n";
48: }
49:
50: function H5($name, $title)
51: {
52: global $h4number;
53: global $h5number;
54: $h5number++;
55: print <<<_EOM_
56: <a name="{$name}"></a>
57: <details open style="padding-top: 1em">
58: <summary><span class=h5>{$h4number}.{$h5number}. {$title}</span></summary>
59: _EOM_;
60: }
61: function H5end()
62: {
63: print "</details>\n";
64: }
65: ?>
1.1 root 66: <body>
1.1.1.11 root 67: <h3>nono <?=$nono_ver?> (<?=$nono_date?>)</h3>
1.1 root 68:
1.1.1.13 root 69: nono は NetBSD とかで動作する OMRON LUNA-I/LUNA-88K
70: (と SHARP X68030) のエミュレータです。
71: <q>nono is OMRON LUNA-I/LUNA-88K (and SHARP X68030) emulator
72: runs on NetBSD and etc.</q>
1.1.1.8 root 73:
74: <hr>
75:
76: <h4>Index of this page:</h4>
1.1.1.7 root 77: <div class="main">
1.1.1.10 root 78: <a href="#build">1. ビルド方法 <q>How to build</q></a><br>
1.1.1.13 root 79: <a href="#execute">2. 実行方法 <q>How to execute</q></a><br>
1.1.1.10 root 80: <a href="#configuration">3. 設定 <q>Configuration</q></a><br>
81: <a href="#aboutvm">4. VM について <q>About VM</q></a><br>
82: <a href="#tryit">5. 実行してみる <q>Try it</q></a><br>
1.1.1.13 root 83: <a href="#network">6. ホストネットワーク設定例 <q>Example of host network setup</q></a><br>
1.1.1.12 root 84: <a href="#knownissues">7. 既知の問題 <q>Known Issues</q></a><br>
85: <a href="#migrate">8. 過去のバージョンからの移行方法
1.1.1.9 root 86: <q>How to migrate from old versions</q></a><br>
1.1.1.12 root 87: <a href="#changes">9. 変更履歴 <q>Changes</q></a><br>
88: <a href="#license">10. 連絡先、ライセンス等 <q>Contact, License, etc</q></a><br>
89: </div>
90: <p>
91: <div class="main">
92: <span class="new">緑背景</span>は新規または目立った更新のあった箇所です。
93: <q><span class="new">Green Background</span> is new or updated paragraph.</q>
94: </div>
95:
96:
1.1.1.14 root 97: <?php H4("build", "ビルド方法 <q>How to build</q>"); ?>
1.1 root 98: <div class="main">
1.1.1.5 root 99: ビルドには以下が必要です。
1.1.1.13 root 100: <q>The followings are required for build.</q>
1.1.1.5 root 101:
1.1 root 102: <ul>
1.1.1.2 root 103: <li>make (BSD make, not GNU make)
1.1.1.4 root 104: <li>C/C++ compiler which supports -std=c++14.
105: <br>
1.1.1.12 root 106: (For gcc, 7.4 or newer works at least.
107: For clang, 7.0 - 13.0 works at least.)
108: <li>wxWidgets 3.0.x "stable" branch
1.1.1.14 root 109: or 3.2.x "new stable" branch
1.1.1.2 root 110: <li>gettext
1.1 root 111: </ul>
1.1.1.2 root 112:
1.1.1.5 root 113: <p>
1.1.1.14 root 114: wxWidgets は NetBSD(pkgsrc) なら
115: pkgsrc/x11/wxGTK30 (OPTIONS:gtk3 で動作確認) です。
116: 2022Q3 の wxGTK32 ではビルドできないようです。
1.1.1.13 root 117: <q>If you use NetBSD(pkgsrc),
1.1.1.14 root 118: wxWidgets is pkgsrc/x11/wxGTK30 (OPTIONS:gtk3 is tested).
119: wxGTK32 in 2022Q3 doesn't seem to build for now.</q>
1.1.1.13 root 120:
121: <p>
1.1.1.5 root 122: (NetBSD 以外でのビルドはサポートしていませんが)
1.1.1.9 root 123: Ubuntu 20.04 ではたぶん以下のパッケージが必要です。
1.1.1.10 root 124: <q>You may need the following packages on Ubuntu 20.04
1.1.1.5 root 125: (though we won't support non-NetBSD platform).</q>
126: </p>
1.1.1.7 root 127: <ul>
128: <li>
1.1.1.5 root 129: bmake
130: build-essential
131: gettext
132: libbsd-dev
133: libkqueue-dev
1.1.1.9 root 134: libwxgtk3.0-gtk-dev
1.1.1.5 root 135: zlib1g-dev
1.1.1.7 root 136: </ul>
1.1.1.5 root 137:
1.1.1.2 root 138: <p>
1.1.1.8 root 139: nono のソースアーカイブを展開したら以下のようにビルドします。
1.1.1.2 root 140: configure には環境変数 CC、CXX でコンパイラを指定することが出来ます。
141: また wx-config が標準的な名前で提供されていないために見付けられない場合には
142: 環境変数 WX_CONFIG にパスを指定することが出来ます。
1.1.1.8 root 143: <q>Extract the nono's source archive and build as following.
1.1.1.2 root 144: You can specify C/C++ compiler using environment variable CC and CXX
145: if configure cannot find standard name suitable compiler.
146: Also, you can specify wx-config path using environment variable WX_CONFIG
147: if configure cannot find wx-config.</q>
1.1.1.12 root 148: </p><p>
149: <tt>-DNOTEST</tt> は開発者用のテストツールをビルドしないためのものです。
150: <q>With <tt>-DNOTEST</tt>, the build excludes test tools which is needed
151: for developers only.</q>
152:
1.1 root 153: <blockquote class="cons"><pre>
154: % ./configure
1.1.1.12 root 155: % make -DNOTEST depend
156: % make -DNOTEST
1.1.1.2 root 157: % su
158: # make install
1.1 root 159: </pre></blockquote>
1.1.1.2 root 160:
161: <p>
162: 2つの実行ファイルがインストールされます。
163: <tt>nono</tt> が GUI 版実行ファイル、
164: <tt>nono-cli</tt> がコマンドライン版です。
165: <q>Two executables will be installed.
1.1.1.7 root 166: <tt>nono</tt> is the GUI executable and <tt>nono-cli</tt> is
167: the command line executable.</q>
1.1 root 168:
169: </div>
1.1.1.14 root 170: <?php H4end(); ?>
1.1 root 171:
172:
1.1.1.14 root 173: <?php H4("execute", "実行方法 <q>How to execute</q>"); ?>
1.1.1.13 root 174: <div class="main">
1.1.1.14 root 175: nono は複数機種に対応しているため設定なしでは起動できません。
176: 設定は設定ファイルかコマンドラインオプションで指定します。
1.1.1.15! root 177: nono はまず設定ファイル ~/.nono.cfg
! 178: があれば読み込み、続いてカレントディレクトリの設定ファイル nono.cfg
! 179: があれば読みます
1.1.1.14 root 180: (<tt>-c</tt> オプションで設定ファイル (VM ディレクトリ) の位置を指定することも出来ます)。
181: 詳細は以下の<a name="#configuration">設定</a>の章を参照してください。
182: <q>nono supports multiple architectures so that
183: it needs configuration.
1.1.1.15! root 184: First, nono reads a configuration file
! 185: names ~/.nono.cfg if exists, then
! 186: reads a configuration file names nono.cfg in the current directory if exists
1.1.1.14 root 187: (You can specify the configuration file path (or VM directory) using
188: <tt>-c</tt> option).
189: See the following <a name="#configuration">Configuration</a> section for
190: details.</q>
1.1.1.13 root 191: </div>
192:
1.1.1.14 root 193: <?php H5("commandline", "コマンドラインオプション <q>Command Line Option</q>");
194: ?>
1.1 root 195: <div class="main">
196: <dl>
197: <?php
198: function item($name, $desc)
199: {
200: if (!is_array($name)) {
201: $name = array($name);
202: }
203: foreach ($name as $n) {
204: print "<dt class=dt-indent><tt>{$n}</tt></dt>\n";
205: }
206: print "<dd>{$desc}</p></dd>\n";
207: }
208: function option_item($name, $desc)
209: {
210: item($name, $desc);
211: }
212:
1.1.1.6 root 213: option_item("-c <i>vmpath</i>", <<<_EOM_
214: VM ディレクトリ/設定ファイルを指定します。
215: <i>vmpath</i> がディレクトリならそのディレクトリの中の nono.cfg
216: を設定ファイルとします。
217: <i>vmpath</i> がファイルならそれを設定ファイルとします。
218: そしていずれの場合も
219: 設定ファイルがあるディレクトリを VM ディレクトリとします。
220: -c オプションを省略すると <i>vmpath</i> をカレントディレクトリとします。
221: <q>Specifies the VM directory/configuration file.
222: If <i>vmpath</i> is a directory,
223: make nono.cfg in that directory a configuration file.
224: Or if <i>vmpath</i> is a file,
225: make the specified file a configuration file.
226: And in both cases,
227: make the directory where that file is located a VM directory.
228: If <tt>-c</tt> option is omitted,
1.1.1.11 root 229: <i>vmpath</i> is considered as the current directory.</q>
1.1 root 230: _EOM_
231: );
232:
1.1.1.15! root 233: option_item("--create-sram", <<<_EOM_
1.1.1.14 root 234: (X68030 Only)
235: VM ディレクトリに X68030 用の SRAM.DAT がなければ初期状態で作成して終了します。
236: <q>
237: nono will create the initial SRAM.DAT for X68030 and exit,
238: if there is no SRAM.DAT in the VM directory.</q>
239: _EOM_
240: );
241:
1.1 root 242: option_item("-f", <<<_EOM_
243: 高速モードで起動します。
244: GUI なら起動後にもメニューから変更できますが、その初期値を変えるだけです。
1.1.1.15! root 245: 設定の <tt>fast-mode=1</tt> と等価です。
1.1.1.2 root 246: <q>Boot as the fast mode.
247: You can change this mode on GUI menu after boot,
1.1.1.14 root 248: and the option only changes its initial state.
1.1.1.15! root 249: This option is equivalent to <tt>fast-mode=1</tt> in configuration.</q>
1.1 root 250: _EOM_
251: );
252:
253: option_item("--fontsize <i>height</i>", <<<_EOM_
254: GUI 版のみ。
255: 全サブウインドウの起動時のフォントサイズを指定します。
1.1.1.3 root 256: 起動後にメニューから変更できます。
1.1.1.15! root 257: 設定の <tt>monitor-fontsize</tt> と等価です。
1.1.1.14 root 258: <q>GUI Only.
259: Specifies the initial fontsize of all sub windows.
260: You can change this value on GUI menu after boot.
1.1.1.15! root 261: This option is equivalent to <tt>monitor-fontsize</tt> in configuration.</q>
1.1 root 262: _EOM_
263: );
264:
1.1.1.14 root 265: option_item("-s <i>scale</i>", <<<_EOM_
1.1 root 266: GUI 版のみ。
267: メインウィンドウの起動時のスケールを実数で指定します。
1.1.1.14 root 268: 設定の <tt>mainview-scale</tt> と等価です。
269: 起動後はメニューからプリセットされた倍率と
1.1.1.15! root 270: <tt>mainview-scale</tt> で指定された倍率には変更可能です。
1.1.1.14 root 271: <q>GUI Only.
1.1.1.2 root 272: Specifies the initial main window scale in real number.
1.1.1.15! root 273: This is equivalent to <tt>mainview-scale</tt> in configuration.
1.1.1.14 root 274: You can change this scale on GUI menu after boot.</q>
1.1 root 275: _EOM_
276: );
277:
278: option_item("--show-config", <<<_EOM_
279: 設定ファイルと <tt>-V</tt> オプションを読み込んだ結果を表示します。
1.1.1.2 root 280: <q>Shows the result of reading configuration file and
281: parsing <tt>-V</tt> options.</q>
1.1 root 282: _EOM_
283: );
284:
285: option_item("-v", <<<_EOM_
286: バージョンを表示します。
1.1.1.2 root 287: <q>Shows the version.</q>
1.1 root 288: _EOM_
289: );
290:
291: option_item("-V <i>name</i>=<i>value</i>", <<<_EOM_
1.1.1.3 root 292: 設定ファイルで指定した <tt><i>name</i>=<i>configvalue</i></tt> の代わりに
1.1.1.2 root 293: このオプションの <tt><i>name</i>=<i>value</i></tt> を適用します。
1.1.1.12 root 294: <tt><i>name</i></tt> が正しくない場合はエラー終了します。
1.1.1.3 root 295: <q>Use this <i>name</i>=<i>value</i>
1.1.1.12 root 296: instead of <i>name</i>=<i>configvalue</i> specified in configuration file.
297: If <tt><i>name</i></tt> is not correct, it will exit on error.</q>
1.1 root 298: _EOM_
299: );
1.1.1.9 root 300:
301: option_item("-X <i>file</i>", <<<_EOM_
302: ホストの <tt><i>file</i></tt> をロードして実行します。
303: <tt><i>file</i></tt> が相対パスの場合カレントディレクトリからのパスになります。
304: ファイルが gzip 圧縮されていれば自動的に展開します。
1.1.1.14 root 305: (展開後の) ファイル形式は以下の通りですが、
1.1.1.9 root 306: 実際にはブートローダとカーネル程度しか想定していません。
1.1.1.14 root 307: また、いずれも起動元デバイスが取得できないなどの問題はあるかも知れません。
1.1.1.9 root 308: <q>Loads and executes host's <tt><i>file</i></tt>.
309: If <tt><i>file</i></tt> is relative path,
310: it is path from the current directory.
311: If the file is gzip'd, it is automatically extracted.
1.1.1.14 root 312: The supported file format (after extracting) is the following.
1.1.1.9 root 313: Actually, it only assumes bootloaders or kernels.
1.1.1.14 root 314: And note that it may not obtain some information that where did I boot from,
315: for example.</q>
316: <ul>
317: <li>a.out (OMAGIC) 実行ファイル (おそらくブートローダのみサポート)
318: <q>a.out (OMAGIC) executable (It probably supports bootloaders only)</q>
319: <li>ELF 実行ファイル
320: (おそらくカーネルのみサポート。
321: NetBSD の実行ファイルのようであれば、
322: カーネルだと思ってシンボルテーブルも読み込みます)
323: <q>ELF executable
324: (It probably supports the kernel only.
325: If the file is assumed to be NetBSD executable,
326: it will also load symbol tables as the bootloader does to the kernel.)</q>
327: <li>ELF object (Experimental)
328: <li>Human68k .x executable (Experimental)
329: </ul>
330: LUNA では、設定の <tt>prom-image</tt>、<tt>luna-dipsw1</tt> の内容(後述)によらず
331: 内蔵の互換 PROM で起動し、直ちにホストファイルを実行します。
332: X68030 では、IPLROM 起動の後の起動デバイスに細工がしてあり、
333: そこからホストファイルを実行します。
334: <q>
335: On LUNA,
336: regardless of <tt>prom-image</tt> and <tt>luna-dipsw1</tt> configuration
1.1.1.11 root 337: (see below),
1.1.1.14 root 338: the internal emulated PROM loads and executes the host file immediately.
339: On X68030,
340: nono hacks the boot device after normal boot from IPLROM,
341: and loads and executes the host file.</q>
1.1.1.9 root 342: _EOM_
343: );
1.1 root 344: ?>
345: </dl>
346:
1.1.1.2 root 347: 以下開発用。<q>For developers:</q>
1.1 root 348: <dl>
349: <?php
350: // 項目間を空けない
351: function option_dev($name, $desc)
352: {
353: print "<dt class=dt-indent><tt>{$name}</tt></dt>\n";
354: print "<dd>{$desc}</dd>\n";
355: }
356:
1.1.1.3 root 357: option_dev("-b <i>hexaddr</i>[,<i>skipcount</i>]", <<<_EOM_
1.1 root 358: デバッガのブレークポイントを 16進数で指定します。
359: _EOM_
360: );
361:
362: option_dev("-C", <<<_EOM_
363: ログをコンソールにも出力します。
364: 通常はログウィンドウにだけ出力されます。
365: _EOM_
366: );
367:
368: option_dev("-d", <<<_EOM_
369: 起動時にデバッガプロンプトで停止します。
370: _EOM_
371: );
372:
373: option_dev("-D", <<<_EOM_
374: コンソールをデバッガとして使用します。
1.1.1.12 root 375: 過去との互換性のために存在していますが、
376: <tt>-V debugger-driver=stdio</tt> と等価です。
1.1 root 377: _EOM_
378: );
379:
380: option_dev("-L <i>name1</i>=<i>level1</i>[,<i>name2</i>=<i>level2</i>,...]",
381: <<<_EOM_
382: ログレベルを指定します。
383: カンマで区切って複数指定することも出来ます。
384: <tt>-Lhelp</tt> で name の一覧を表示します。
385: _EOM_
386: );
387:
1.1.1.11 root 388: option_dev("--load-only <i>file</i>", <<<_EOM_
389: <tt>-X</tt> オプションと同様ですが、PROM のプロンプトで停止します。
390: _EOM_
391: );
392:
1.1 root 393: option_dev("-M <i>name</i>[,<i>name2</i>,...]", <<<_EOM_
394: 起動時に表示するモニタウィンドウを指定します。
395: カンマで区切って複数指定することも出来ます。
1.1.1.3 root 396: <tt>-Mhelp</tt> で name の一覧を表示します。
1.1 root 397: _EOM_
398: );
399:
400:
401: ?>
402: </dl>
403: </div>
1.1.1.14 root 404: <?php H5end(); ?>
405: <?php H4end(); ?>
1.1 root 406:
1.1.1.7 root 407:
1.1.1.14 root 408: <?php H4("configuration", "設定 <q>Configuration</q>"); ?>
1.1 root 409: <div class="main">
1.1.1.14 root 410: nono の設定はいずれも以下の順序で適用されます。
411: <q>nono's configurations are always applied in the following order.</q>
1.1.1.15! root 412: <ol>
1.1.1.14 root 413: <li>デフォルト値 <q>Default value</q>
414: <li>~/.nono.cfg があればその内容
415: <q>Contents of ~/.nono.cfg if exists</q>
416: <li>VM ディレクトリ内の nono.cfg (または -c で指定したファイル)
417: があればその内容
418: <q>Contents of nono.cfg in the VM directory (or the file specified by -c option) if exists</q>
419: <li>コマンドラインオプション <q>Command line option</q>
420: </ol>
421: ファイルの書式はどちらも <tt>key = value</tt> 形式で1行1項目ずつです。
1.1 root 422: <tt>key</tt> と <tt>value</tt> の前後の空白は取り除かれます。
423: また空行と "<tt>#</tt>" で始まる行は無視します。
1.1.1.12 root 424: 知らないキーは警告を出した上で無視します。
1.1.1.14 root 425: 同じキーが複数回現れた場合、
426: 上に列挙した順に後から書いたほうで上書きし、
427: 同じファイル内でも同様に後に書いたほうで上書きします。
428: コマンドラインオプション <tt>-V</tt> 等はこれをさらに上書きします。
429: コマンドラインオプションで同じキーが複数回現れた場合も後に書いたほうが上書きします。
430: <q>
431: The syntax of both files is <tt>key = value</tt> format, one per line.
1.1.1.2 root 432: White spaces before and after <tt>key</tt> and <tt>value</tt> are ignored.
1.1.1.12 root 433: Blank lines, lines beginning with "<tt>#</tt>" are also ignored.
1.1.1.14 root 434: The lines with unrecognized key are ignored with a warning.
435:
436: If the same key appears more than once,
437: the latter overwrites the former in the above order.
438: If the same key appears in a file,
439: the latter overwrites the former in the same manner.
440: Then, command line option <tt>-V</tt> etc. overwrites it.
441: If the same key appears more than once in the command line option,
442: do in the same manner.</q>
443: <p>
444: <tt>vmtype</tt> を除くすべての設定項目はそれぞれデフォルト値を持っています。
445: つまり少なくとも <tt>vmtype</tt> だけは設定ファイルかコマンドラインオプションで指定する必要があります。
446: <q>All configuration items except <tt>vmtype</tt> have default value.
447: It means, you must specify at least only <tt>vmtype</tt>
448: by configuration file or commandline option.</q>
1.1 root 449: <p>
450: 設定項目は次の通りです。
1.1.1.2 root 451: <q>The configuration items are:</q>
1.1 root 452: <dl>
453: <?php
454: function config_item($name, $desc)
455: {
456: item($name, $desc);
457: }
458:
459: config_item("vmtype = <i>string</i>", <<<_EOM_
1.1.1.4 root 460: VM 種別を以下のいずれかから指定します。
461: 省略不可です。
462: <q>Specifies the VM type from the following.
1.1.1.11 root 463: This field is mandatory.</q>
1.1.1.4 root 464: <table cellspacing=0 cellpadding=0>
465: <tr><td> <td><tt>luna</tt> <td>… LUNA-I
1.1.1.12 root 466: <tr><td><td><tt>luna88k</tt> <td>… LUNA-88K
1.1.1.14 root 467: <tr><td><td><tt>x68030</tt> <td>… X68030 (Experimental)
468: <tr><td><td><tt>news</tt> <td>… NWS-1750 (Just a joke)
1.1.1.4 root 469: </table>
1.1 root 470: _EOM_
471: );
472:
1.1.1.14 root 473: config_item("cgrom-image = <i>path</i>", <<<_EOM_
1.1.1.13 root 474: (X68030 Only)
475: X68030 の外部 CGROM イメージファイルのパスを指定します。
476: CGROM は 768KB です。
477: <i>path</i> がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
478: <i>path</i> が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
479: 空にすると nono 内蔵の互換 CGROM を使用します。
480: デフォルトは空です。
481: <q>Specifies the X68030's external CGROM image file path.
482: This CGROM is 768KB.
483: If the <i>path</i> does not have any path delimiters,
484: the VM directory and then its parent directory will be searched.
485: If the <i>path</i> is a relative path,
486: it will be path from the VM directory, not from the current directory.
487: If the <i>path</i> is empty, nono's builtin compatible CGROM will be used.
1.1.1.14 root 488: The default value is empty.</q>
1.1.1.13 root 489: _EOM_
490: );
491:
1.1.1.8 root 492: config_item("clock-sync = <i>value</i>", <<<_EOM_
493: 仮想マシン内の時刻の同期方法を指定します。
494: <tt>real</tt> なら実時間に同期、<tt>virtual</tt> なら仮想時間に同期します。
495: デフォルトは <tt>real</tt> です。
496: この機能は実験中のため将来予告なく仕様が変更になる可能性があります。
1.1.1.14 root 497: <q>Specifies how to synchronize the time in virtual machine.
1.1.1.8 root 498: If <tt>real</tt>, synchronize with the real time;
499: if <tt>virtual</tt>, synchronize with the virtual time.
500: The default is <tt>real</tt>.
501: This feature is under experimentation and may be changed in the future
1.1.1.11 root 502: without notice.</q>
1.1.1.8 root 503: _EOM_
504: );
505:
1.1.1.13 root 506: config_item("debugger-driver = <i>string</i>", <<<_EOM_
1.1.1.12 root 507: デバッガのコンソールドライバを指定します。
508: <tt>stdio</tt>、<tt>tcp</tt>、<tt>none</tt> が選択可能です。
509: <tt>stdio</tt> は標準入出力を使用します。
510: <tt>tcp</tt> は TCP ポートで TELNET プロトコルで待ち受けます。
511: <tt>none</tt> ならホスト側とは一切通信を行いません。
512: デフォルトは <tt>none</tt> です。
513: <q>Specifies console driver of the debugger.
514: <tt>stdio</tt>, <tt>tcp</tt>, and <tt>none</tt> can be specified.
515: <tt>stdio</tt> uses the standard input/output.
516: <tt>tcp</tt> listens on TCP port using TELNET protocol.
517: <tt>none</tt> doesn't make any communication with the host.
518: The default is <tt>none</tt>.</q>
519: _EOM_
520: );
521:
1.1.1.13 root 522: config_item("debugger-tcp-port = <i>integer</i>",
1.1.1.12 root 523: <<<_EOM_
524: デバッガのコンソールドライバが tcp の時の TCP 待ち受けポート番号を指定します。
1.1.1.14 root 525: <q>Specifies the TCP port number that debugger console driver listens.</q>
526: _EOM_
527: );
528:
529: ?><a name="config-dipsw-autoboot"></a><?php
530: config_item("dipsw-autoboot = <i>yesno</i>", <<<_EOM_
531: (LUNA and NEWS Only)
532: 機種に依存せず DIPSW を自動起動に設定するかどうか指定します。
533: "<tt>yes</tt>" なら自動起動するように、
534: "<tt>no</tt>" なら自動起動しないように DIPSW 設定を上書きします。
535: "" (空) なら何もしません。デフォルトは "" です。
536: このオプションは <tt>luna-dipsw1</tt> や <tt>news-dipsw</tt>
537: の状態が設定ファイルやコマンドラインオプションによって確定した後に
538: 該当のスイッチだけを変更します。
539: <q>Specifies whether to configure DIPSW to boot automatically,
540: regardless of the models.
541: "<tt>yes</tt>" overwrites DIPSW, to boot automatically.
542: "<tt>no</tt>" overwrites DIPSW, not to boot automatically.
543: "" (Empty) does nothing.
544: The default value is "".
545: This option only changes the appropriate switch(es)
546: after the <tt>luna-dipsw1</tt> or <tt>news-dipsw</tt> configuration
547: is determined by the configuration file or command line options.</q>
548: _EOM_
549: );
550:
551: config_item("dipsw-serial = <i>yesno</i>", <<<_EOM_
552: (LUNA and NEWS Only)
553: 機種に依存せず DIPSW をシリアルコンソールを使うかどうか指定します。
554: "<tt>yes</tt>" ならシリアルコンソールを使うように、
555: "<tt>no</tt>" ならシリアルコンソールを使わないように DIPSW 設定を上書きします。
556: "" (空) なら何もしません。デフォルトは "" です。
557: <tt>luna-dipsw1</tt> もしくは <tt>news-dipsw</tt> (機種による)
558: の状態が設定ファイルやコマンドラインオプションによって確定した後に
559: このオプションによって該当のスイッチだけを変更します。
560: NEWS でシリアルコンソールを使わないを選択した場合、
561: SW1,2,3 は OFF, OFF, ON にセットされ、
562: NWB-512 モノクロコンソール(未実装) が選択されます。
563: <q>Specifies whether to configure DIPSW to use serial console,
564: regardless of the models.
565: "<tt>yes</tt>" overwrites DIPSW, to use serial console.
566: "<tt>no</tt>" overwrites DIPSW, not to use serial console.
567: "" (Empty) does nothing.
568: The default value is "".
569: This option only changes the appropriate switch(es)
570: after the <tt>luna-dipsw1</tt> or <tt>news-dipsw</tt> configuration
571: is determined by the configuration file or command line options.
572: If you choose not to use serial console on NEWS,
573: SW1,2,3 will be set OFF, OFF, ON respectively,
574: and NWB-512 monochrome console (not implemented) will be chosen.</q>
1.1 root 575: _EOM_
576: );
577:
1.1.1.15! root 578: config_item(
! 579: "ethernet-macaddr = <i>string</i><br>" .
! 580: "<span class='new'>ethernet<i>N</i>-macaddr = <i>string</i></span><br>",
! 581: <<<_EOM_
! 582: <span class="new"><i>N</i> 番目の</span>
1.1.1.8 root 583: イーサネットデバイスの仮想マシン側の MAC アドレスを指定します。
584: <tt><i>XX</i>:<i>XX</i>:<i>XX</i>:<i>XX</i>:<i>XX</i>:<i>XX</i></tt>
585: 形式で指定します。
586: <tt>auto</tt> なら自動的に決定します。
587: デフォルトは <tt>auto</tt> です。
1.1.1.15! root 588: <span class="new"><tt>ethernet-macaddr</tt> は <tt>ethernet0-macaddr</tt> の別名です。</span>
1.1.1.8 root 589: _EOM_
590: );
591:
1.1.1.15! root 592: config_item("extram-size = <i>integer</i>", <<<_EOM_
1.1.1.14 root 593: (X68030 Only)
594: 拡張メモリのサイズを MB 単位で指定します。
595: 今の所以下だけが指定できます。
596: <q>Specifies the extended RAM size in MB.
597: For now, only the following can be specified.</q>
1.1.1.15! root 598: <ul>
1.1.1.14 root 599: <li><tt>0</tt> … 拡張メモリを使用しません。デフォルトです。
600: <q>No extended memory. It's default.</q>
601: <li><tt>16</tt> … TS-6BE16 互換モードで、
602: アドレス $0100'0000〜$01ff'ffff の 16MB です。
603: <q>TS-6BE16 compatible mode.
604: Its address is $0100'0000〜$01ff'ffff and the size is 16MB.</q>
605: <li><tt>128/256</tt> … 060turbo 互換モードで、
606: アドレス $1000'0000〜$17ff'ffff/$1fff'ffff の 128/256MB です。
607: <q>060turbo compatible mode.
608: Its address is $1000'0000〜$17ff'ffff/$1fff'ffff and the size is
609: 128 or 256MB.</q>
1.1.1.15! root 610: </ul>
1.1.1.14 root 611: _EOM_
612: );
613:
1.1.1.15! root 614: config_item("fast-mode = <i>integer</i>", <<<_EOM_
1.1.1.14 root 615: 起動時の動作モードを指定します。0 なら通常モード、1 なら高速モードです。
616: デフォルトは 0 です。
617: コマンドラインオプション <tt>-f</tt> でも高速モードへのみ指定可能です。
618: _EOM_
619: );
620:
621: config_item("fd-drive = <i>integer</i>", <<<_EOM_
622: (X68030 Only)
1.1.1.13 root 623: フロッピードライブの数を 0 から 4 で指定します。
624: デフォルトは 2 です。
1.1.1.14 root 625: <q>Specifies the number of floppy drives from <tt>0</tt> to <tt>4</tt>.
1.1.1.13 root 626: The default is <tt>2</tt>.</q>
627: _EOM_
628: );
629:
1.1.1.14 root 630: config_item("fd<i>N</i>-image = <i>path</i>", <<<_EOM_
631: (X68030 Only)
1.1.1.13 root 632: フロッピードライブ <i>N</i> に起動時に挿入するディスクイメージを指定します。
633: イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
634: 起動後はメニューから操作できます。
635: デフォルトは空です。
1.1.1.14 root 636: <q>Specifies a diskimage to be inserted to floppy drive <i>N</i> at startup.
1.1.1.13 root 637: If the <i>path</i> is relative path, it is from the VM directory.
638: You can also operate them from menu after startup.
639: The default is empty.</q>
640: _EOM_
641: );
642:
1.1.1.14 root 643: config_item("fpu-type = <i>value</i>", <<<_EOM_
644: (X68030 Only)
1.1.1.13 root 645: FPU を装着するかどうか指定しています。
646: <tt>none</tt> なら FPU を装着しません。
647: <tt>68881</tt> なら FPU として 68881 を装着します。
648: 現状 68882 はサポートしていません。
649: また <tt>none</tt> の代わりに <tt>0</tt>、
650: <tt>68881</tt> の代わりに <tt>1</tt> と書くこともできます。
651: デフォルトは <tt>68881</tt> です。
652: LUNA-I はたぶん 68881 搭載モデルのみのため設定できません。
1.1.1.14 root 653: <q>Specifies whether to install FPU or not.
1.1.1.13 root 654: If <tt>none</tt>, FPU is not installed.
655: If <tt>68881</tt>, 68881 FPU is installed.
656: 68882 is not supported yet.
657: And, <tt>none</tt> can also be written as <tt>0</tt>,
658: <tt>68881</tt> can also be written as <tt>1</tt>.
659: The default is <tt>68881</tt>.
660: This item cannot be specified on LUNA-I
661: because (probably) all LUNA-I has 68881.</q>
662: _EOM_
663: );
664:
1.1.1.12 root 665: config_item("hostcom-driver = <i>string</i>", <<<_EOM_
666: シリアルポートのホスト側ドライバを指定します。
667: <tt>stdio</tt>、<tt>tcp</tt>、<tt>none</tt> が選択可能です。
668: <tt>stdio</tt> は標準入出力を使用します。
669: <tt>tcp</tt> は TCP ポートで TELNET プロトコルで待ち受けます。
670: <tt>none</tt> ならホスト側とは一切通信を行いません。
671: デフォルトは <tt>none</tt> です。
672: <q>Specifies the host driver of serial port.
673: <tt>stdio</tt>, <tt>tcp</tt>, and <tt>none</tt> can be specified.
674: <tt>stdio</tt> uses the standard input/output.
675: <tt>tcp</tt> listens on TCP port using TELNET protocol.
676: <tt>none</tt> doesn't make any communication with the host.
677: The default is <tt>none</tt>.</q>
678: _EOM_
679: );
680:
681: config_item("hostcom-tcp-port = <i>integer</i>", <<<_EOM_
682: ホストドライバが tcp の時の TCP 待ち受けポート番号を指定します。
1.1.1.14 root 683: <q>Specifies the TCP port number that host driver listens.</q>
1.1.1.12 root 684: _EOM_
685: );
686:
687: config_item("hostcom-fallback = <i>integer</i>", <<<_EOM_
688: <tt>hostcom-driver</tt> で指定したドライバが使用可能でなかった時、
689: 0 ならプロセスを終了します。1 なら <tt>none</tt> を選択して実行を継続します。
690: デフォルトは 0 です。
1.1.1.14 root 691: <q>Specifies the behavior when the driver which is selected by
1.1.1.12 root 692: <tt>hostcom-driver</tt> is unusable;
693: terminate the process if 0,
694: or continue to run using the <tt>none</tt> driver if 1.
695: The default is 0.</q>
696: _EOM_
697: );
698:
1.1.1.10 root 699: config_item("hostkbd-input = <i>string</i>", <<<_EOM_
1.1.1.14 root 700: (LUNA and X68030 only)
1.1.1.10 root 701: ホストキーボードの入力モードを指定します。
702: <tt>char</tt> ならキャラクタ入力モード、
703: <tt>jp</tt> なら日本語キーボードモードです。
704: デフォルトは <tt>char</tt> です。
705: 詳細は <a href="#aboutvm">VM について</a> の章を参照してください。
706: <q>Specifies the input mode of the host keyboard.
707: <tt>char</tt> means the character mode,
708: <tt>jp</tt> means the Japanese keyboard mode.
709: The defualt is <tt>char</tt>.
710: See <a href="#aboutvm">About VM</a> for details.</q>
711: _EOM_
712: );
713:
1.1.1.15! root 714: config_item("<span class='new'>hostnet<i>N</i>-driver = <i>string</i></span>", <<<_EOM_
! 715: <span class="new"><i>N</i> 番目の</span>
1.1 root 716: イーサネットデバイスのホスト側ドライバを指定します。
1.1.1.8 root 717: <tt>afpacket</tt>、<tt>bpf</tt>、<tt>tap</tt> のうち
718: ホスト OS がサポートしているものと <tt>auto</tt>、<tt>none</tt> が選択可能です。
719: <tt>afpacket</tt> は Linux の AF_PACKET ソケットを使用します。
720: <tt>bpf</tt> は bpf(4) デバイスを使用します。
721: <tt>tap</tt> は tap(4) インタフェースを使用します。
1.1 root 722: <tt>none</tt> ならホスト側とは一切通信を行いません。
1.1.1.8 root 723: <tt>auto</tt> ならホスト OS がサポートしているもののうち
724: <tt>tap</tt> → <tt>afpacket</tt> → <tt>bpf</tt> を順に試します。
1.1.1.15! root 725: <span class="new"><tt>hostnet0-driver</tt> のデフォルトは <tt>auto</tt>、
! 726: <tt>hostnet1-driver</tt> のデフォルトは <tt>none</tt> です。</span>
! 727: <q>Specifies the host driver of <span class="new"><i>N</i>-th</span>
! 728: ethernet device.
1.1.1.8 root 729: <tt>afpacket</tt>, <tt>bpf</tt>, and <tt>tap</tt> can be specified
730: only if the host OS supports them.
731: <tt>auto</tt> and <tt>none</tt> can always be specified.
732: <tt>afpacket</tt> uses Linux's AF_PACKET socket,
733: <tt>bpf</tt> uses bpf(4) device,
734: and <tt>tap</tt> uses tap(4) interface.
735: <tt>none</tt> doesn't make any communication with the host.
736: If <tt>auto</tt> is specified,
737: it tries <tt>tap</tt>, <tt>afpacket</tt>, and <tt>bpf</tt> in that order
738: (if the host OS supports them).
1.1.1.15! root 739: <span class="new">The default of <tt>hostnet0-driver</tt> is <tt>auto</tt>,
! 740: the default of <tt>hostnet1-driver</tt> is <tt>none</tt>.</q>
1.1.1.6 root 741: _EOM_
742: );
743:
1.1.1.15! root 744: config_item("<span class='new'>hostnet<i>N</i>-afpacket-ifname = <i>ifname</i></span>", <<<_EOM_
1.1.1.8 root 745: ホストドライバが afpacket の時にバインドするインタフェースを1つ指定します。
746: <i>ifname</i> が <tt>auto</tt>
747: なら使用可能なインタフェースを1つ自動的に選択します。
748: デフォルトは <tt>auto</tt> です。
749: なお、このホストドライバではローカルホストとの通信は出来ません。
1.1.1.14 root 750: <q>Specifies an interface name to bind to, when the host driver is afpacket.
1.1.1.8 root 751: If <tt>auto</tt> is specified as <i>ifname</i>,
752: it selects an usable interface automatically.
753: The default is <tt>auto</tt>.
754: Note that this host driver cannot communicate with the localhost.</q>
755: _EOM_
756: );
757:
1.1.1.15! root 758: config_item("<span class='new'>hostnet<i>N</i>-bpf-ifname = <i>ifname</i></span>", <<<_EOM_
1.1.1.8 root 759: ホストドライバが bpf の時にバインドするインタフェースを1つ指定します。
760: <i>ifname</i> が <tt>auto</tt>
761: なら使用可能なインタフェースを1つ自動的に選択します。
762: デフォルトは <tt>auto</tt> です。
763: なお、このホストドライバではローカルホストとの通信は出来ません。
1.1.1.14 root 764: <q>Specifies an interface name to bind to, when the host driver is bpf.
1.1.1.8 root 765: If <tt>auto</tt> is specified as <i>ifname</i>,
766: it selects an usable interface automatically.
767: The default is <tt>auto</tt>.
768: Note that this host driver cannot communicate with the localhost.</q>
769: _EOM_
770: );
771:
1.1.1.15! root 772: config_item("<span class='new'>hostnet<i>N</i>-tap-devpath = <i>path</i></span>", <<<_EOM_
1.1.1.8 root 773: ホストドライバが tap の時に使用するデバイスを1つフルパスで指定します。
774: デフォルトは <tt>auto</tt> で、この場合は自動的にデバイスを選択します。
775: この時の探し方はホスト OS によって異なります。
776: Linux なら <tt>/dev/net/tun</tt> を指定したのと同じです。
1.1.1.6 root 777: OpenBSD なら <tt>/dev/tap0</tt> から <tt>/dev/tap9</tt> まで
778: 順番にオープンできるまで試します。
779: NetBSD (と FreeBSD) ならまず <tt>/dev/tap</tt> でクローニングを試み、
780: それが失敗すれば <tt>/dev/tap0</tt> から <tt>/dev/tap9</tt> までを
781: 順番にオープンできるまで試します。
1.1.1.8 root 782: いずれの場合も VM ディレクトリかその親ディレクトリに
783: <tt>nono-ifup</tt>, <tt>nono-ifdown</tt> という名前のシェルスクリプトが必要です。
784: 何もすることがない場合でも正常終了する空のシェルスクリプトを用意してください。
785: <q>
1.1.1.14 root 786: Specifies a device pathname, when the host driver is tap.
1.1.1.8 root 787: The default is <tt>auto</tt>.
1.1.1.6 root 788: The behavior in this case depends on the host OS.
789: On Linux, it's the same as <tt>/dev/net/tun</tt>.
790: On OpenBSD, it will try from <tt>/dev/tap0</tt> to <tt>/dev/tap9</tt>
791: until successful.
792: On NetBSD (and FreeBSD), it will try cloning by <tt>/dev/tap</tt> first.
793: If that fails, then try from <tt>/dev/tap0</tt> to <tt>/dev/tap9</tt>
794: until successful.
1.1.1.8 root 795: In all cases, you need to prepare two shell script files which names are
796: <tt>nono-ifup</tt> and <tt>nono-ifdown</tt> in the VM directory or
797: its parent directory.
798: Even if you don't have anything to do in these scripts,
1.1.1.11 root 799: you need to prepare empty scripts that will terminate successfully.</q>
1.1 root 800: _EOM_
801: );
802:
1.1.1.15! root 803: config_item("<span class='new'>hostnet<i>N</i>-fallback = <i>integer</i></span>", <<<_EOM_
! 804: <tt>hostnet<i>N</i>-driver</tt> で指定したドライバが使用可能でなかった時、
1.1.1.8 root 805: 0 ならプロセスを終了します。
806: 1 なら none を選択して実行を継続します。
807: デフォルトは 0 です。
1.1.1.14 root 808: <q>Specifies the behavior when the driver which is selected by
1.1.1.15! root 809: <tt>hostnet<i>N</i>-driver</tt> is unusable;
1.1.1.8 root 810: terminate the process if 0,
811: or continue to run using the <tt>none</tt> driver if 1.
812: The default is 0.</q>
1.1 root 813: _EOM_
814: );
815:
1.1.1.15! root 816: config_item("<span class='new'>" .
! 817: "hostnet-driver = <i>string</i><br>" .
! 818: "hostnet-afpacket-ifname = <i>ifname</i><br>" .
! 819: "hostnet-bpf-ifname = <i>ifname</i><br>" .
! 820: "hostnet-tap-devpath = <i>path</i><br>" .
! 821: "hostnet-fallback = <i>integer</i><br></span>", <<<_EOM_
! 822: <span class="new">それぞれ <tt>hostnet0-*</tt> の別名です。</span>
! 823: _EOM_
! 824: );
! 825:
1.1.1.14 root 826: config_item("iplrom1-image = <i>path</i>", <<<_EOM_
1.1.1.13 root 827: (X68030 Only)
828: X68030 の外部 IPLROM イメージファイルのパスを指定します。
829: こちらは 0xfe0000..0xffffff の 128KB の部分で、IPLROM30 と呼ばれているほうです。
830: <i>path</i> がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
831: <i>path</i> が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
832: 空にすると無償配布されている IPLROM30 を使用します。
833: デフォルトは空です。
834: <q>Specifies the X68030's external IPLROM image file path.
835: This one contains 128KB at 0xfe0000..0xffffff and is known as IPLROM30.
836: If the <i>path</i> does not have any path delimiters,
837: the VM directory and then its parent directory will be searched.
838: If the <i>path</i> is a relative path,
839: it will be path from the VM directory, not from the current directory.
840: If the <i>path</i> is empty, the public released IPLROM30 will be used.
1.1.1.14 root 841: The default value is empty.</q>
1.1.1.13 root 842: _EOM_
843: );
844:
1.1.1.14 root 845: config_item("iplrom2-image = <i>path</i>", <<<_EOM_
1.1.1.13 root 846: (X68030 Only)
847: X68030 の外部 IPLROM イメージファイルのパスを指定します。
848: こちらは 0xfc0000..0xfdffff の 128KB の部分で、ROM30 と呼ばれているほうです。
849: <i>path</i> がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
850: <i>path</i> が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
851: 空にすると内蔵 ROM を使用します。
852: 内蔵 ROM は NetBSD/x68k が起動する程度の SCSI IOCS のみサポートしています。
853: デフォルトは空です。
854: <q>Specifies the X68030's external IPLROM image file path.
855: This one contains 128KB at 0xfc0000..0xfdffff and is known as ROM30.
856: If the <i>path</i> does not have any path delimiters,
857: the VM directory and then its parent directory will be searched.
858: If the <i>path</i> is a relative path,
859: it will be path from the VM directory, not from the current directory.
860: If the <i>path</i> is empty, internal emulated ROM will be used.
861: The ROM supports only enough SCSI IOCS to boot NetBSD/x68k.
1.1.1.14 root 862: The default value is empty.</q>
1.1.1.13 root 863: _EOM_
864: );
865:
1.1.1.12 root 866: config_item("keyboard-connect = <i>integer</i>", <<<_EOM_
1.1.1.14 root 867: (LUNA and X68030 Only)
1.1.1.12 root 868: 起動時にキーボードを本体に接続するかどうかを指定します。
869: 1 なら接続し、0 なら接続しません。デフォルトは 1 です。
870: 起動後はメニューから変更可能です。
1.1.1.14 root 871: <q>Specifies whether to connect keyboard on boot.
1.1.1.12 root 872: If 1, it is connected; if 0, it isn't connected. The default is 1.
873: You can change it on GUI menu after boot.</q>
874: _EOM_
875: );
876:
1.1.1.9 root 877: config_item("luna-adjust-misused-epoch = <i>integer</i>", <<<_EOM_
1.1.1.13 root 878: (LUNA Only)
1.1.1.9 root 879: LUNA で誤った RTC epoch を採用している OS 向けに RTC
880: エミュレーションを補正するかどうかを
881: 指定します。0 なら補正をしません(実機と同じ動作)、
882: 1 なら補正します(現実世界と同じ動作)。
883: デフォルトは 1 で、通常 1 のままで使用して問題ありません。
884: <q>
885: Specifies whether nono corrects RTC emulation for OSes
886: that adopts wrong RTC epoch on LUNA.
887: 0 means making no correction
888: (this is the same behavior as the actual machine).
889: 1 means making correction
890: (this is the same behavior as the real world).
891: The default is 1. Normally, leave it 1.</q>
892: <p>
893: LUNA で採用している RTC (MK48T02) は2桁で保持している年の値が
894: 4 で割り切れる年をうるう年とする仕様です。
1.1.1.12 root 895: ところが NetBSD/luna68k、OpenBSD/luna88k などはこの
896: RTC の年の値を 1970年からの経過年として使用しています。
1.1.1.9 root 897: 例えば1970年はうるう年ではないため 2月28日の翌日は 3月1日ですが、
898: MK48T02 的には 00年であるためうるう年と認識し 2月28日の翌日が2月29日になります。
1.1.1.12 root 899: このように、これらの OS を使っている場合実機の
900: RTC は4年のうち約2年間、1日ずれた日付を指しているようです。
1.1.1.9 root 901: しかしながら、RTC の時刻は OS 起動時に一度読んだ後は基本的に参照しない上、
902: 今時必要なら NTP で時間を合わせるため、
903: 実機でも問題が顕在化することはまずないと思います。
904: nono の場合は実機と異なり、アプリケーション実行中しか RTC が進まないため、
905: 補正がない場合の動作が問題になるのは
906: nono を起動したまま偶数年の2月末日から日付をまたいで、
907: かつ nono を起動したまま OS を再起動して NTP などで時刻修正を行わなかった時
908: だけだと思います。
909: このオプションはほぼ開発者向けの動作確認用です。
910: _EOM_
911: );
912:
1.1 root 913: config_item("luna-dipsw1 = <i>string</i>", <<<_EOM_
1.1.1.13 root 914: (LUNA Only)
1.1 root 915: 本体前面 DIPSW#1-1..#1-8 の内容を指定します。
916: "<tt>0</tt>" を DOWN、"<tt>1</tt>" を UP として、
917: これを8つ並べた形式で、前から順に #1..#8 に対応します。
1.1.1.14 root 918: <q>Specifies status of the front panel DIPSW#1-1..#1-8 using 8 digits.
1.1.1.2 root 919: "<tt>0</tt>" means DOWN and "<tt>1</tt>" means UP.
920: The first character corresponds to #1 and
1.1.1.3 root 921: the eighth character corresponds to #8.</q>
922: <p>
923: LUNA-I でのデフォルトは <tt>11110111</tt> です。
924: 各スイッチの内容は以下のリンクを参照してください。
925: <q>On LUNA-I, the default value is <tt>11110111</tt>.
1.1.1.4 root 926: See the following link about DIPSW.</q><br>
1.1.1.3 root 927: → <a href="https://wiki.netbsd.org/ports/luna68k/luna68k_info/"
928: >NetBSD/luna68k: Information</a>
1.1 root 929: <br>
1.1.1.12 root 930: LUNA-88K でのデフォルトは <tt>11111111</tt> です。
1.1.1.4 root 931: 各スイッチの内容は以下のリンクを参照してください。
1.1.1.12 root 932: <q>On LUNA-88K, the default value is <tt>11111111</tt>.
1.1.1.4 root 933: See the following link about DIPSW.</q><br>
934: → <a href="http://man.openbsd.org/boot_luna88k.8"
935: >OpenBSD manual pages: boot_luna88k(8)</a>
1.1.1.14 root 936: <p>
937: 自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は
938: こちらではなく
939: <a href="#config-dipsw-autoboot">dipsw-autoboot、dipsw-serial</a>
940: 設定を使うほうが便利です。
941: <q>If you only want to specify whether to autoboot and/or
942: to use serial console,
943: <a href="#config-dipsw-autoboot">dipsw-autoboot, dipsw-serial</a>
944: configurations are useful.</q>
1.1 root 945: _EOM_
946: );
947:
948: config_item("luna-dipsw2 = <i>string</i>", <<<_EOM_
1.1.1.13 root 949: (LUNA Only)
1.1 root 950: 本体前面 DIPSW#2-1..#2-8 の内容を指定します。
951: 書式は <tt>luna-dipsw1</tt> と同じです。
952: デフォルトは <tt>11111111</tt> です。
1.1.1.2 root 953: <q>Specifies status of the front panel DIPSW#2-1..#2-8.
954: The same syntax as <tt>luna-dipsw1</tt> is used.
955: The default value is <tt>11111111</tt>.</q>
1.1.1.3 root 956: <p>
1.1.1.4 root 957: NetBSD/luna68k のブートローダは、
958: DIPSW#2 が "<tt>11111111</tt>" なら自動的にカーネルをロードして実行し、
959: どれかでも "<tt>0</tt>" にするとプロンプトで停止するようです。
1.1 root 960: <span class=strike>(本当は #8 だけで制御するつもりだったんじゃないかという気がします)</span>
1.1.1.4 root 961: <q>NetBSD/luna68k bootloader will automatically load and execute the kernel,
962: if the DIPSW#2 is "<tt>11111111</tt>".
1.1.1.2 root 963: Otherwise, the bootloader will enter interactive mode.
964: <span class=strike>(I doubt that they actually wanted to switch with only #8)
1.1.1.11 root 965: </span></q>
1.1 root 966: _EOM_
967: );
968:
1.1.1.12 root 969: config_item("luna-video-plane = <i>integer</i>", <<<_EOM_
1.1.1.13 root 970: (LUNA Only)
1.1.1.14 root 971: LUNA のビデオボードのプレーン数を 1、4、8 から指定します。
1.1.1.12 root 972: 1 ならモノクロビデオボード、
1.1.1.14 root 973: 4 なら16色 (4bpp) ビデオボード、
974: 8 なら 256色 (8bpp) ビデオボードです。
1.1.1.15! root 975: デフォルトは 4 です。
1.1.1.14 root 976: <q>Specifies number of planes on LUNA video board.
977: The valid values are 1, 4 or 8.
1.1.1.12 root 978: 1 means a monochrome video board,
1.1.1.14 root 979: 4 means 16-color (4bpp) video board,
980: 8 means 256-color (8bpp) video board.
1.1.1.15! root 981: The default value is 4.</q>
1.1.1.14 root 982: _EOM_
983: );
984:
1.1.1.15! root 985: config_item("mainview-scale = <i>double</i>", <<<_EOM_
1.1.1.14 root 986: メインウィンドウの起動時のスケールを実数で指定します。
987: コマンドラインオプション <tt>-s</tt> で上書き可能です。
988: 起動後はメニューから、
989: プリセットされた倍率とここで指定した倍率には変更可能です。
1.1.1.15! root 990: デフォルトは 1.0 です。
1.1.1.14 root 991: _EOM_
992: );
993:
1.1.1.15! root 994: config_item("monitor-fontsize = <i>integer</i>",
1.1.1.14 root 995: <<<_EOM_
996: テキスト系モニタとステータスパネルのフォントサイズを
997: 12, 16, 24 から指定します。
998: コマンドラインオプション <tt>--fontsize</tt> で上書き可能です。
999: 起動後はメニューから変更することができます。
1000: デフォルトは 12 です。
1.1.1.12 root 1001: _EOM_
1002: );
1003:
1.1.1.3 root 1004: config_item("monitor-rate = <i>integer</i>", <<<_EOM_
1005: テキスト系モニタウィンドウの更新頻度を Hz 単位で指定します。
1006: 1 から 60 までの間で指定でき、デフォルトは 20Hz です。
1.1.1.15! root 1007: 起動後にメニューから、
! 1008: プリセットされた頻度とここで指定した頻度には変更可能です。
1.1.1.3 root 1009: <q>Specifies refresh rate of all text monitor windows in Hz.
1010: It ranges from 1 to 60. The default is 20Hz.
1.1.1.14 root 1011: You can choose this value on GUI menu after boot,
1.1.1.15! root 1012: from preset rate or rate specified here.</q>
1.1.1.3 root 1013: _EOM_
1014: );
1015:
1.1 root 1016: config_item("mpu-clock = <i>value</i>", <<<_EOM_
1017: MPU のクロック数を MHz 単位で指定します。
1.1.1.14 root 1018: デフォルトは LUNA-I なら 20MHz、LUNA-88K と X68030 なら 25MHz です。
1.1.1.5 root 1019: <q>Specifies the MPU clock in MHz.
1.1.1.14 root 1020: The default value is 20MHz on LUNA-I, or 25MHz on LUNA-88K and X68030.</q>
1.1 root 1021: _EOM_
1022: );
1023:
1.1.1.8 root 1024: config_item("mpu-pseudo-stop = <i>integer</i>", <<<_EOM_
1.1.1.13 root 1025: (LUNA-88K Only)
1.1.1.8 root 1026: m88100 にて疑似 STOP 状態を有効にするかどうかを指定します。
1027: 0 なら無効(実機と同じ動作)、1 なら有効で、デフォルトは 1 です。
1028: m88100 には、m68k の STOP 命令 (割り込みが上がるまで何もせず待つ)
1029: に相当する命令がなく、
1030: 大抵ビジーウェイトループで割り込みが上がるのを待つことになります。
1031: これは実機では (消費電力を減らす手段がないという些細な問題以外には)
1032: 何のデメリットもないのですが、
1033: エミュレータで特に高速動作させている時には割り込みが上がるまで
1034: (例えば人間がキーを入力するまで) ホスト CPU パワーを使い潰してビジーウェイトループを実行し続けることになり、ホスト CPU があっつあつになります。
1035: それを防ぐための機能です。
1036: 特徴的な命令列を検出して実現しているので、すべての状況で動作するわけではありません。
1037: _EOM_
1038: );
1039:
1.1.1.15! root 1040: config_item("<span class='new'>" .
! 1041: "nereid0-enable = <i>integer</i><br>" .
! 1042: "nereid1-enable = <i>integer</i><br></span>", <<<_EOM_
! 1043: <span class="new">
! 1044: (X68030 Only)
! 1045: Nereid 拡張ボードを装着するかどうかを指定します。
! 1046: Nereid は同時に2枚まで使用することができます。
! 1047: 値は <tt>0</tt> なら装着せず、<tt>1</tt> なら装着します。
! 1048: デフォルトは <tt>0</tt> (装着しない) です。
! 1049: 詳細は <a href="#nereid">4.5 Nereid の章</a>を参照してください。
! 1050: <q>Specifies whether install Nereid expansion board or not.
! 1051: Up to two board can be operated at the same time.
! 1052: If <tt>0</tt>, the board is not installed.
! 1053: If <tt>1</tt>, the board is installed.
! 1054: The default value is <tt>0</tt>.
! 1055: See also <a href="#nereid">Section 4.5 Nereid</a> below for details.</q>
! 1056: </span>
! 1057: _EOM_
! 1058: );
! 1059:
! 1060: config_item("<span class='new'>" .
! 1061: "nereid0-net = <i>integer</i><br>" .
! 1062: "nereid1-net = <i>integer</i><br></span>", <<<_EOM_
! 1063: <span class="new">
! 1064: (X68030 Only)
! 1065: Nereid ボードの NIC (RTL8019AS) のみを無効にすることが出来ます
! 1066: (実機では通常そのようなことは出来ません)。
! 1067: <tt>0</tt> なら無効、<tt>1</tt> なら有効です。デフォルトは <tt>1</tt> です。
! 1068: 通常は <tt>1</tt> のまま使用してください。
! 1069: この設定は対応する <tt>nereid<i>N</i>-enable</tt> が <tt>0</tt>
! 1070: (ボードを装着しない) の場合は意味を持ちません。
! 1071: <q>This can disable only NIC (RTL8019AS) of Nereid expansion board
! 1072: (although it's not possible normally in the real world).
! 1073: It's disabled if <tt>0</tt>, or enabled if <tt>1</tt>.
! 1074: The default is <tt>1</tt>. Normally, leave it <tt>1</tt>.
! 1075: This item will be ignored if the corresponding <tt>nereid<i>N</i>-enable</tt>
! 1076: is <tt>0</tt>.</q>
! 1077: </span>
! 1078: _EOM_
! 1079: );
! 1080:
! 1081: config_item("<span class='new'>" .
! 1082: "nereid0-ram-size = <i>integer</i><br>" .
! 1083: "nereid1-ram-size = <i>integer</i><br></span>", <<<_EOM_
! 1084: <span class="new">
! 1085: (X68030 Only)
! 1086: Nereid ボードのバンクメモリのサイズを MB 単位で指定します。
! 1087: 指定できるのは <tt>0</tt>, <tt>4</tt>, <tt>16</tt> です。
! 1088: <tt>0</tt> を指定するとバンクメモリを無効にします。
! 1089: デフォルトは <tt>16</tt> です。
! 1090: この設定は対応する <tt>nereid<i>N</i>-enable</tt> が <tt>0</tt>
! 1091: (ボードを装着しない) の場合は意味を持ちません。
! 1092: <q>Specifies bank memory size in MB of Nereid expansion board.
! 1093: The valid values are <tt>0</tt>, <tt>4</tt> or <tt>16</tt>.
! 1094: If <tt>0</tt>, disable the bank memory.
! 1095: The default is <tt>16</tt>.
! 1096: This item will be ignored if the corresponding <tt>nereid<i>N</i>-enable</tt>
! 1097: is <tt>0</tt>.</q>
! 1098: <br><br>
! 1099: また通常は必要ありませんが -4 または -16 を指定すると、
! 1100: バンクメモリは無効にした上で Nereid 制御ポートのビット6の読み出し値
! 1101: (バンクメモリの容量) を再現することが出来ます。
! 1102: -4 ならビット6は 0 (4MB)、0 か -16 なら 1(16MB) が読み出せます。
! 1103: </span>
! 1104: _EOM_
! 1105: );
! 1106:
1.1.1.14 root 1107: config_item("news-dipsw = <i>string</i>", <<<_EOM_
1108: (NEWS Only)
1109: DIPSW の内容を指定します。
1110: "<tt>0</tt>" を OFF、"<tt>1</tt>" を ON として、
1111: これを8つ並べた形式で、前から順に SW1..SW8 に対応します。
1112: デフォルトは <tt>00001000</tt> です。
1113: <q>Specifies status of the DIPSW using 8 digits.
1114: "<tt>0</tt>" means OFF and "<tt>1</tt>" is ON.
1115: The first character corresponds to SW1 and
1116: the eighth character corresponds to SW8.
1117: The default valus is <tt>00001000</tt>.</q>
1118: <br><br>
1119: 各スイッチの内容は以下のリンクを参照してください。
1120: <q>See the following link about DIPSW.</q><br>
1121: → <a href="https://www.netbsd.org/ports/news68k/faq.html#dip_sw"
1122: >NetBSD/news68k Frequently Asked Questions</a>
1123: <p>
1124: 自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は
1125: こちらではなく
1126: <a href="#config-dipsw-autoboot">dipsw-autoboot、dipsw-serial</a>
1127: 設定を使うほうが便利です。
1128: <q>If you only want to specify whether to autoboot and/or
1129: to use serial console,
1130: <a href="#config-dipsw-autoboot">dipsw-autoboot, dipsw-serial</a>
1131: configurations are useful.</q>
1132: _EOM_
1133: );
1134:
1.1.1.2 root 1135: config_item("prom-image = <i>path</i>", <<<_EOM_
1.1.1.13 root 1136: (LUNA Only)
1.1.1.12 root 1137: LUNA-I/LUNA-88K の外部 ROM イメージファイルのパスを指定します。
1.1.1.2 root 1138: <i>path</i> がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
1139: <i>path</i> が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
1140: 空にすると内蔵 ROM を使用します。
1141: デフォルトは空です。
1.1.1.12 root 1142: <q>Specifies the LUNA-I/LUNA-88K's external ROM image file path.
1.1.1.2 root 1143: If the <i>path</i> does not have any path delimiters,
1144: the VM directory and then its parent directory will be searched.
1145: If the <i>path</i> is a relative path,
1.1.1.13 root 1146: it will be path from the VM directory, not from the current directory.
1.1.1.2 root 1147: If the <i>path</i> is empty, internal emulated ROM will be used.
1148: The default value is empty.</q>
1.1 root 1149: <p>
1.1.1.2 root 1150: 実機を持っていない場合はこの値を空に (= デフォルトのままに) しておくと、
1.1.1.8 root 1151: nono 内蔵のなんちゃって下位互換 ROM で起動します。
1.1.1.2 root 1152: <q>If you does not have the real LUNA machines,
1153: you can boot with nono's internal downward compatible emulated ROM
1.1.1.11 root 1154: if you set this field empty (or leave it as the default).</q>
1.1 root 1155: <p>
1.1.1.4 root 1156: LUNA-I 実機を持っている場合は
1157: ROM ファイルを指定することで実機 ROM で起動できます。
1.1.1.2 root 1158: ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を保存したものです。
1.1.1.3 root 1159: 今のところ ROM は V4.22 (Thu Jul 27 11:45:42 1989) のみサポートしています。
1160: それ以外については何も分かりません。
1.1.1.4 root 1161: <q>If you have the real LUNA-I machine,
1.1.1.2 root 1162: you can boot with the real ROM spcifying the ROM file path.
1.1.1.4 root 1163: The ROM file is extracted from 0x41000000-0x4101ffff (128KB) of
1164: the real LUNA-I machine.
1.1.1.3 root 1165: For now, only V4.22 (Thu Jul 27 11:45:42 1989) is supported.
1.1.1.11 root 1166: I have no idea about other ROMs.</q>
1.1.1.4 root 1167: <p>
1.1.1.12 root 1168: LUNA-88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。
1.1.1.8 root 1169: 今のところ ROM は version 1.20 のみサポートしています。
1.1.1.4 root 1170: <q>
1.1.1.12 root 1171: For LUNA-88K,
1.1.1.4 root 1172: the ROM file is extracted from 0x41000000-0x4103ffff (256KB).
1.1.1.11 root 1173: For now, only version 1.20 is supported.</q>
1.1.1.2 root 1174: _EOM_
1175: );
1176:
1.1.1.3 root 1177: config_item("ram-size = <i>integer</i>", <<<_EOM_
1.1.1.13 root 1178: 搭載する RAM サイズを MB 単位で指定します。<q>Specifies the RAM size in MB.</q>
1179: <ul>
1180: <li>LUNA-I のデフォルトは 16MB です。
1.1.1.6 root 1181: 16MB 未満は 4MB 単位で、
1182: 16MB 以上は 255MB まで 1MB 単位で指定できます
1183: (ちなみに NetBSD/luna68k の起動には最低でも 8MB 必要です)。
1.1.1.13 root 1184: <q>On LUNA-I, the default is 16MB.
1.1.1.6 root 1185: If the size is less than 16MB, you can specify in 4MB unit.
1186: If larger, you can specify up to 255MB in 1MB unit.
1.1.1.13 root 1187: By the way, NetBSD/luna68k needs at least 8MB to boot.</q>
1188: <li>LUNA-88K のデフォルトは 64MB です。
1189: 64MB 未満は 16MB 単位で、
1190: 64MB 以上は暫定で 255MB まで 1MB 単位で指定できます。
1191: <q>On LUNA-88K, the default is 64MB.
1.1.1.6 root 1192: If the size is less than 64MB, you can specify in 16MB unit.
1.1.1.11 root 1193: If larger, you can specify up to tentative 255MB in 1MB unit.</q>
1.1.1.14 root 1194: <li>X68030 ではメイン RAM 容量を示し、デフォルトは 12MB です。
1.1.1.13 root 1195: 4MB から 12MB まで 1MB 単位で指定できます。
1.1.1.15! root 1196: 拡張メモリについては extram-size を参照してください。
1.1.1.14 root 1197: <q>On X68030, the default is 12MB.
1198: You can specify it in 1MB unit from 4MB to 12MB.
1.1.1.15! root 1199: See extram-size for extended memory.</q>
1.1.1.14 root 1200: <li>NWS-1750 では現状 16MB で変更できません。
1201: <q>On NWS-1750, This is 16MB fixed for now.</q>
1.1.1.13 root 1202: </ul>
1.1 root 1203: _EOM_
1204: );
1205:
1.1.1.12 root 1206: config_item("rtc-epoch-year = <i>integer</i>", <<<_EOM_
1.1.1.13 root 1207: (LUNA Only)
1208: RTC (MK48T02) の基準年を指定します。
1.1.1.12 root 1209: デフォルトは 1970年です。
1210: NetBSD/luna68k、OpenBSD/luna88k はいずれも基準年を 1970年としていますので、
1211: デフォルトのままで構いません。
1212: ゲスト OS に 4.4BSD を使用する際は 1900 を指定します。
1.1.1.14 root 1213: NEWS では今の所 1900 固定で変更出来ません。
1.1.1.13 root 1214: <q>Specifies the RTC (MK48T02) epoch year.
1.1.1.12 root 1215: The default is 1970.
1216: Since both NetBSD/luna68k and OpenBSD/luna88k use 1970 as epoch year,
1217: there is no need to touch this value.
1.1.1.14 root 1218: If you boot 4.4BSD on LUNA-I as the guest OS, specify 1900.
1219: On NEWS, it is fixed at 1900.</q>
1.1.1.12 root 1220: _EOM_
1221: );
1222:
1.1.1.7 root 1223: config_item("show-statuspanel = <i>integer</i>", <<<_EOM_
1224: ステータスパネルを表示するかどうかを指定します。
1225: 0 なら非表示、1 なら表示です。
1.1.1.14 root 1226: デフォルトは 1(表示) です。
1.1.1.7 root 1227: 起動後はメニューから変更可能です。
1228: <q>Specifies whether to display the status panel or not.
1229: If 0, it is hidden; if 1, it is shown.
1.1.1.14 root 1230: The default is 1 (show).
1.1.1.11 root 1231: You can change it on GUI menu after boot.</q>
1.1.1.7 root 1232: _EOM_
1233: );
1234:
1.1.1.9 root 1235: config_item("spc0-id<i>N</i>-image = <i>devtype</i>[,<i>path</i>]", <<<_EOM_
1.1.1.14 root 1236: (LUNA and X68030 Only)
1.1.1.9 root 1237: SCSI デバイスとイメージを指定します。キーの <i>N</i> には 0 から 7 が入ります。
1238: ただし ID 7 は本体が使用しますので指定しないでください。
1239: 値はデバイス種別 <i>devtype</i> とディスクイメージパス <i>path</i>
1240: を "<tt>,</tt>"(カンマ) で区切って並べた形式です。
1241: デバイス種別 <i>devtype</i> は以下のいずれかです。
1.1.1.2 root 1242: <q>
1.1.1.9 root 1243: Specifies SCSI device and image. <i>N</i> in the key is 0 to 7.
1.1.1.2 root 1244: But don't specify ID 7 because the host uses it.
1245: The value is in a form of device type <i>devtype</i> and
1.1.1.9 root 1246: the disk image path <i>path</i> separated by "<tt>,</tt>"(comma).
1.1.1.11 root 1247: <i>devtype</i> can be one of the following:</q>
1.1.1.9 root 1248: <ul>
1249: <li><tt>hd</tt> … HD drive
1250: <li><tt>cd</tt> … CD-ROM drive
1251: <li><tt>mo</tt> … MO drive
1252: </ul>
1253:
1254: <p>
1255: <i>devtype</i> が <tt>hd</tt> なら <i>path</i> は省略できません。
1256: <i>devtype</i> が <tt>cd</tt> か <tt>mo</tt> なら <i>path</i> は省略可能です。
1257: イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
1258: <q>
1259: If <i>devtype</i> is <tt>hd</tt>, <i>path</i> cannot be ommitted.
1260: If <i>devtype</i> is <tt>cd</tt> or <tt>mo</tt>, <i>path</i> can be ommitted.
1.1.1.11 root 1261: If the <i>path</i> is relative path, it is from the VM directory.</q>
1.1.1.2 root 1262:
1.1 root 1263: <p>
1.1.1.9 root 1264: 例えば、nono.cfg と同じディレクトリに置いた sd0.img を
1265: 起動 HDD ディスクイメージとして使い
1266: (LUNA では通常 ID 6 をプライマリ HDD に割り当てます)、
1267: ID 5 に同じディレクトリの install.iso をセットした CD ドライブを、
1268: ID 4 に起動時メディアなしの MO ドライブを接続する場合は次のようになります。
1269: <q>For example, if you use a harddisk image sd0.img placed in the same
1270: directory as nono.cfg
1271: (LUNA usually assigns ID 6 to the primary HDD),
1272: ID 5 for CD-ROM drive that loads install.iso in the same directory,
1273: and ID 4 for MO drive without media on boot,
1.1.1.2 root 1274: write as following:</q>
1.1 root 1275: <blockquote><pre>
1.1.1.9 root 1276: spc0-id6-image = hd,sd0.img
1277: spc0-id5-image = cd,install.iso
1278: spc0-id4-image = mo
1.1 root 1279: </pre></blockquote>
1280: _EOM_
1281: );
1282:
1.1.1.4 root 1283: config_item("spc0-id<i>N</i>-seektime = <i>integer</i>", <<<_EOM_
1.1.1.14 root 1284: (LUNA and X68030 Only)
1.1.1.4 root 1285: 指定の SCSI HDD の平均シークタイムを msec 単位で指定します。
1286: 現在のデフォルトは <tt>0</tt> です (S・S・D!! S・S・D!!)。
1287: 16 程度を指定すると幾分往時に思いを馳せることが出来るかもしれませんが、
1288: 今の所あまり安定していません。
1289: <q>Specifies the average seek time of specified SCSI HDD in msec.
1290: Currently, the default value is <tt>0</tt>
1291: (This may be something like SSD :-).
1292: If you specify about 16 or so, you can feel nostalgic,
1.1.1.11 root 1293: but this feature is still unstable.</q>
1.1.1.4 root 1294: _EOM_
1295: );
1296:
1.1.1.9 root 1297: config_item("spc0-id<i>N</i>-writeignore = <i>integer</i>", <<<_EOM_
1.1.1.14 root 1298: (LUNA and X68030 Only)
1299: 指定の SCSI HD デバイスへの書き込みをイメージに書き戻すかどうか指定します。
1.1 root 1300: <tt>0</tt> なら通常動作(書き込みを行う)です。
1.1.1.14 root 1301: <tt>1</tt> ならディスクイメージに一切書き戻しません。
1302: デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、
1303: VM ディレクトリ内の一時ファイルに書き込みます。
1304: この一時ファイルはアプリケーション終了時に削除します。
1.1 root 1305: fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。
1306: 何が起きるか意味が分からない人は指定しないでください。
1307: デフォルトは <tt>0</tt> です。
1.1.1.14 root 1308: <q>Specifies whether nono writes a writing to SCSI HD devices back
1309: to the diskimage.
1310: <tt>0</tt> means normal operation (writes to the diskimage).
1311: <tt>1</tt> means that nono will not write to the diskimage back.
1312: Data that the guest wrote to the device will be written to a temporary file
1313: in the VM directory,
1314: like Copy-On-Write.
1315: The temporary file will be removed when the application exits.
1.1.1.2 root 1316: This is useful for kernel debugging because it does not require fsck
1.1.1.14 root 1317: after the kernel hangs or reboots.
1318: Don't use this flag if you don't understand this paragraph.
1.1.1.9 root 1319: The default value is <tt>0</tt>.</q>
1320: <p>
1321: ちなみに、メディアを書き込み禁止にしたい場合はこれではなく、
1322: イメージファイルの書き込み権を落としてください。
1323: <q>By the way, if you want to make the media write-protected,
1324: clear the write permission from the image file
1325: (instead of this setting).</q>
1326: _EOM_
1327: );
1328:
1329: config_item("spc0-id<i>N</i>-writeprotect = <i>integer</i>", <<<_EOM_
1.1.1.14 root 1330: (LUNA and X68030 Only)
1.1.1.9 root 1331: 古いオプションです。
1332: 代わりに <tt>spc0-id<i>N</i>-writeignore</tt> を使ってください。
1333: このオプションは開発用です。
1334: <q>Obsolete.
1335: Use <tt>spc0-id<i>N</i>-writeignore</tt> instead.
1.1.1.11 root 1336: This option is for developers.</q>
1.1 root 1337: _EOM_
1338: );
1.1.1.13 root 1339:
1.1.1.14 root 1340: config_item("sram-sync-ramsize = <i>integer</i>", <<<_EOM_
1.1.1.13 root 1341: (X68030 Only)
1342: SRAM の RAM 容量欄を実際の RAM サイズに合わせるかどうかを指定します。
1343: <tt>0</tt> なら何もしません (実機と同じ)。
1344: <tt>1</tt> なら、アプリケーション起動時に
1345: SRAM の \$ed0008.L (RAM 容量) を ram-size の設定値で更新します。
1346: この更新は、
1347: アプリケーション起動時に SRAM マジックが正しく書かれている場合のみ行われます。
1348: デフォルトは <tt>1</tt> です。
1.1.1.14 root 1349: <q>Specifies whether to synchronize a RAM size field in SRAM
1.1.1.13 root 1350: with real RAM size or not.
1351: If <tt>0</tt>, the application will do nothing (as same as the real).
1352: If <tt>1</tt>, the application updates(synchronizes)
1353: \$ed0008.L (RAM size) in SRAM with configuration value of ram-size.
1354: This update is performed once only if
1355: the SRAM magic string is correct at the application startup.
1356: The default is <tt>1</tt>.</q>
1357: _EOM_
1358: );
1.1.1.14 root 1359:
1360: config_item("xxx-news-sic-ignore = <i>integer</i>",
1361: <<<_EOM_
1362: (NEWS Only)
1363: 未実装の SCSI コントローラおよび DMA
1364: コントローラ領域へのアクセスを無視するか指定します。
1365: 現状 (2022/08)、NetBSD/m68k はこの領域へのバスエラーを処理できず、
1366: uvm_fault のパニックを起こしてしまいます。
1367: <tt>1</tt> にするととりあえず si(4) へのアクセスが不調に終わって
1368: (他に問題がなければ) NetBSD/news68k が起動できます。
1369: デフォルトは <tt>0</tt> です。
1370: このオプションは暫定的なもので将来廃止される予定です。
1371: <q>
1372: Specifies whether to ignore accesses to unimplemented
1373: SCSI controller and DMA controller areas.
1374: As of Aug. 2022, NetBSD/m68k can not handle bus errors to this area,
1375: and it happens uvm_fault panic.
1376: Specifying <tt>1</tt> avoids it and NetBSD/news68k can boot.
1377: The default value is <tt>0</tt>.
1378: This option is temporary and will be discontinued in the future.</q>
1379: _EOM_
1380: );
1381:
1.1 root 1382: ?>
1383: </dl>
1384: </div>
1.1.1.14 root 1385: <?php H4end(); ?>
1.1 root 1386:
1387:
1.1.1.14 root 1388: <?php H4("aboutvm", "VM について <q>About VM</q>"); ?>
1.1.1.13 root 1389:
1.1.1.14 root 1390: <?php H5("", "実装状況 <q>Implementation Status</q>"); ?>
1.1.1.13 root 1391: <div class="main">
1392: <table cellpadding=0 cellspacing=0>
1393: <tr><td style="padding-right: 1em">◎ <td>: ほぼ実装済み <q>Mostly implemented</q>
1394: <tr><td>○ <td>: 困らない程度には実装済み <q>Works</q>
1395: <tr><td>△ <td>: とりあえず動いてる程度 <q>Works somehow</q>
1396: <tr><td>× <td>: 未実装 <q>Not implemented</q>
1397: <tr><td>— <td>: 実装予定なし <q>Not planned</q>
1398: </table>
1399: <style type="text/css">
1400: .pghd {
1401: border: 0px none;
1402: border-bottom: 1px solid black;
1403: padding-top: 1em;
1404: }
1405: .pgth {
1406: border-top: 0px none;
1407: border-left: 1px solid black;
1408: border-right: 1px solid black;
1409: border-bottom: 1px solid black;
1410: padding-right: 1ex;
1411: }
1412: .pgtd {
1413: border-top: 0px none;
1414: border-left: 0px none;
1415: border-right: 1px solid black;
1416: border-bottom: 1px solid black;
1417: }
1418: </style>
1419: <table cellspacing=0 cellpadding=0>
1420: <?php
1421: $table = <<<__EOM__
1422: LUNA-I
1423: MPU (68030) ○ キャッシュ未実装 <q>Cache not implemented</q>
1424: FPU (68881) ◎
1425: BT454 ◎
1426: CRTC2 ○ 標準で使用する値のみサポート
1427: Frame buffer ◎
1428: Keyboard/Mouse ◎
1.1.1.14 root 1429: SIO (uPD7201) ◎
1430: PIO (8255) ○
1.1.1.15! root 1431: Ethernet (AM7990) ◎ マルチキャストフィルタを除く <q>Except multicast filter</q>
1.1.1.13 root 1432: NVRAM&RTC (MK48T02) ◎
1433: Front LCD ◎
1.1.1.14 root 1434: SPC (MB89352) ◎
1.1.1.13 root 1435: SCSI HD/CD/MO Devices ○
1.1.1.15! root 1436: XP(HD647180) CPU △
! 1437: XP(HD647180) Timer0/1 ○
! 1438: XP(HD647180) その他の内蔵デバイス<br><q>Other internal devices</q> ×
! 1439: XP 周辺デバイス <q>Peripheral devices</q> ×
1.1.1.13 root 1440: 電源 <q>Power Circuit</q> ○
1441:
1442: LUNA-88K specific
1443: MPU (88100 part) ○ マルチプロセッサ未実装、バグも未実装? <wbr><q>MP (and bugs?) not implemented</q>
1444: MPU (88200 part) ◎
1445: MPU (88110) — 実装予定なし <q>Not planned</q>
1446: FUSEROM ○
1447:
1448: X68030
1449: MPU (68030) ○ キャッシュ未実装、ファンクションコード未実装 <wbr><q>Cache and FC not implemented</q>
1450: MPU (68EC030) — 実装予定なし <q>Not planned</q>
1451: FPU (68881) ◎ 68882 は未実装 <q>68882 not implemented</q>
1452: DMAC ○
1453: CRTC/VC △ 768x512 のテキスト画面のみサポート <wbr><q>Only 768x512 text screen supported</q>
1454: FDC/FDD ○
1455: 標準・拡張エリアセット <q>Areaset</q> ×
1456: ADPCM/OPM ×
1457: グラフィック機能全般 <wbr><q>All other graphics</q> × 当面予定なし <q>Not scheduled</q>
1458: Keyboard ◎ TVコントロールを除く <q>Except TV Control</q>
1459: Mouse ◎ 本体接続のみ
1460: MFP △
1.1.1.14 root 1461: PPI (8255) △
1.1.1.13 root 1462: Printer ×
1463: RTC ◎ アラームを除く <q>Except Alarm</q>
1.1.1.14 root 1464: SPC (MB89352) ◎
1.1.1.13 root 1465: SCSI HD/CD/MO Devices ○
1.1.1.14 root 1466: SCC (Z8530) ◎
1.1.1.13 root 1467: SRAM ◎
1468: システムポート<q>System port</q> △
1469: テキスト画面<q>Text screen</q> ○
1470: 電源 <q>Power curcuit</q> ○
1.1.1.15! root 1471: <span class="new">Nereid Ethernet</span> <span class="new">◎</span> <span class="new">マルチキャストフィルタを除く <q>Except multicast filter</q></span>
! 1472: <span class="new">Nereid Bank memory</span> <span class="new">◎</span>
1.1.1.13 root 1473: Nereid USB — 実装予定なし <q>Not planned</q>
1.1.1.15! root 1474: 拡張メモリ <q>Extended memory</q> ○
1.1.1.14 root 1475:
1476: NWS-1750
1477: MPU (68030) ○ キャッシュ未実装 <q>Cache not implemented</q>
1478: FPU (68881) ◎ 68882 は未実装 <q>68882 not implemented</q>
1479: PROM ×
1480: SCC (Z8530) ◎ チャンネル A のみホストに接続 <wbr><q>Only channel A is connected to the host</q>
1.1.1.15! root 1481: Ethernet (AM7990) ◎ マルチキャストフィルタを除く <q>Except multicast filter</q>
1.1.1.14 root 1482: NVRAM&RTC (MK48T02) ◎
1483: Video Board ×
1484: Keyboard/Mouse ×
1485: SCSI Controller ×
1486: IDROM, DIP-SW, 100Hz Timer, 診断用LED ○
1487: AST, Lv2Intr ×
1488: 電源 <q>Power Circuit</q> ×
1489:
1.1.1.13 root 1490: __EOM__;
1491: $table_lines = preg_split("/\n/", $table);
1492: foreach ($table_lines as $line) {
1493: if ($line == "") {
1494: continue;
1495: } else if (preg_match("/\t/", $line) == false) {
1496: // table title
1497: print "<tr><td colspan=3 class=pghd>{$br}{$line}\n";
1498: $br = "";
1499: } else {
1500: list ($h, $m, $d) = preg_split("/\t+/", $line, 3);
1501: print "<tr><td class=pgth>{$h}\n";
1502: print " <td class=pgtd style='padding: 0 1ex 0 1ex'>{$m}\n";
1503: print " <td class=pgtd style='padding-left: 0.5ex'>{$d}\n";
1504: }
1505: }
1506: ?>
1507: </table>
1508: </div>
1.1.1.14 root 1509: <?php H5end(); ?>
1.1.1.13 root 1510:
1.1.1.14 root 1511: <?php H5("", "MPU (68030)"); ?>
1512: <div class="main">
1.1.1.13 root 1513: 68030 はキャッシュが未実装です。
1514: これに伴い命令の所要クロック数もまだ正しくなく、
1515: そのためクロック測定などでは正確な値が出ません。
1516: また ATC (アドレス変換キャッシュ) は実際の仕様とは異なり高速化してあります。
1517: <q>68030 cache is not implemented.
1518: Therefore, number of clock cycle is not correct.
1519: ATC (Address Translation Cache) is differ from and faster than the real 68030.</q>
1520: </div>
1.1.1.14 root 1521: <?php H5end(); ?>
1.1.1.13 root 1522:
1.1.1.14 root 1523: <?php H5("", "LUNA の ROM エミュレーション"); ?>
1524: <div class="main">
1.1.1.13 root 1525: LUNA-I、LUNA-88K で PROM の外部イメージを指定しない場合
1526: (<tt>prom-image</tt> が空の場合)、
1527: 内蔵の独自 ROM が動作し、コンソールモニタが起動します。
1528: このコンソールモニタの動作は実機のそれとよく似ていますが、
1529: これは実機確認の際に操作方法が違いすぎると(自分が)困るため仕方なく似せているもので、
1530: 忠実なコピーを作る目的ではありません。
1531: </div>
1.1.1.14 root 1532: <?php H5end(); ?>
1.1.1.13 root 1533:
1.1.1.14 root 1534: <?php H5("", "X68030 の ROM (ROM30) エミュレーション"); ?>
1535: <div class="main">
1.1.1.13 root 1536: X68030 で ROM30 の外部イメージを指定しない場合
1537: (<tt>iplrom2-image</tt> が空の場合)、内蔵の独自 ROM が組み込まれます。
1538: 本来の ROM30 には SCSIIOCS の他に ROM デバッガなどが含まれていますが、
1539: 内蔵 ROM はこのうち SCSIIOCS を NetBSD/x68k が起動するのに十分なだけしか
1540: 実装していません。
1541: Human68k を起動する場合はお手元の実機から ROM イメージを作成してください。
1542: </div>
1.1.1.14 root 1543: <?php H5end(); ?>
1544:
1.1.1.15! root 1545: <?php H5("nereid", "X68030 の Nereid エミュレーション"); ?>
! 1546: <div class="main"><span class="new">
! 1547: 現実の Nereid はイーサネット/メモリ/USB の複合拡張ボードで、
! 1548: このうちメモリは、メインメモリの増設に使える他、
! 1549: メインメモリとして使わなかった領域をバンクメモリとして使うことも出来ます。
! 1550: nono ではこの Nereid の機能のうちイーサネット (RTL8019AS)
! 1551: とバンクメモリのみサポートします。
! 1552: メインメモリの増設機能はエミュレータでは意味がないので実装しません。また
! 1553: USB (SL811HS/T) の実装予定はありません。
! 1554: <q>Nereid in the real world is a combined Ethernet/memory/USB expansion board.
! 1555: Of these, the memory can be used to expand main memory,
! 1556: and areas not used for the main memory can be used as bank memory.
! 1557: nono supports only ethernet (RTL8019AS) and bank memory among
! 1558: the functions of the Nereid expansion board.
! 1559: Main memory expansion is not supported because it's meaningless on emulators.
! 1560: Also, USB (SL811HS/T) is not planned for implementation.</q>
! 1561: <br><br>
! 1562: Nereid は DIPSW6,7 によりアドレス・割り込みベクタの組を2通り指定できるため、
! 1563: 2枚まで同時に運用することが出来ます。
! 1564: 本来 SW6 と SW7 は (衝突さえしなければ) 任意に組み合わせることが可能ですが、
! 1565: nono では簡便のためボード #0 は SW6,7 が OFF、
! 1566: ボード #1 は SW6,7 が ON と固定しています。
! 1567: <q>Since Nereid can set to two different combinations of addresses and
! 1568: interrupt vectors by DIPSW,
! 1569: so up to two boards can be operated at the same time.
! 1570: Originally, SW6 and SW7 can be arbitrarily combined
! 1571: (as long as they don't collide), in nono however, for simpility,
! 1572: SW6 and SW7 are fixed to be OFF on board #0, and
! 1573: SW6 and SW7 are fixed to be ON on board #1.</q>
! 1574: <blockquote>
! 1575: <table border=1 rules=all class="new">
! 1576: <tr><th><th>#0 (<tt>nereid0-*</tt>)<th>#1 (<tt>nereid1-*</tt>)
! 1577: <tr><td align=center>ベースアドレス・割り込みベクタ<br><q>Base address and interrupt vectors</q>
! 1578: <td>$ece300,$f9,$fb<br>(SW7=OFF)
! 1579: <td>$eceb00,$f8,$fa<br>(SW7=ON)
! 1580: <tr><td align=center>バンクメモリウィンドウ<br><q>Bank memory window</q>
! 1581: <td>$ee0000<br>(SW6=OFF)
! 1582: <td>$ef0000<br>(SW6=ON)
! 1583: </table>
! 1584: </blockquote>
! 1585: バンクメモリは、メインメモリとして使わなかった領域を使用します。
! 1586: そのため実機でもバンクメモリの容量は DIPSW のメインメモリ割り当て設定
! 1587: (SW1-5) に依存します。
! 1588: nono に関係する結論だけでいうと、
! 1589: メインメモリへの割り当てを一切行わない場合はバンクメモリは 16MB 確保でき、
! 1590: メインメモリへの割り当てをいくらかでも行うとバンクメモリは 4MB となります。
! 1591: 設定の <tt>nereid<i>N</i>-ram-size</tt> はこの部分を指定していることになります。
! 1592: またこの容量とは独立に SW8 でバンクメモリの有効・無効を指定できますので、
! 1593: <tt>nereid<i>N</i>-ram-size</tt> が 0 (以下) というのは SW8
! 1594: でバンクメモリを無効にしたことに相当します。
! 1595: <q>Bank memory uses memory areas not used as the main memory.
! 1596: So the bank memory size depends on the main memory settings (SW1-5).
! 1597: As a result,
! 1598: only if you don't allocate any memories to main memory,
! 1599: the bank memory can be allocated 16MB.
! 1600: Otherwise, the bank memory will be allocated 4MB.
! 1601: Thus, <tt>nereid<i>N</i>-ram-size</tt> specifies this value.
! 1602: Also, SW8 specifies enable/disable of the bank memory regardless of the size,
! 1603: <tt>nereid<i>N</i>-ram-size = 0</tt> (or less) means disabling the bank memory.</q>
! 1604: </span></div>
! 1605: <?php H5end(); ?>
! 1606:
1.1.1.14 root 1607: <?php H5("", "NEWS エミュレーション"); ?>
1608: <div class="main">
1609: NEWS エミュレーションは未完成です。
1610: 今の所 -X でカーネルを直接起動することしか出来ません。
1611: </div>
1612: <?php H5end(); ?>
1.1.1.13 root 1613:
1.1.1.14 root 1614: <?php H5("", "ステータスパネル <q>Status Panel</q>"); ?>
1.1.1.7 root 1615: <div class="main">
1616: ステータスパネル中央にあるパフォーマンスメータのアイコンは
1617: 高速モードの状態を表示しています。
1618: ダブルクリックすると高速/等速モードの指定を切り替えることができます。
1619: <q>The performance meter's icon at the center of the status panel
1620: shows the VM speed status.
1.1.1.11 root 1621: You can switch full speed / syncronized mode by double-clicking
1622: on this icon.</q>
1.1.1.7 root 1623: <table>
1624: <tr><td valign=top>
1625: <image src="image/sp-ffmark0.png" style="padding:0.5ex; background-color:white">
1626: <td valign=top>…
1627: <td valign=top>
1628: マークなしの場合、ユーザが等速モードを指定していて、等速モードで実行中です。
1629: <q>When no icons are displayed,
1630: the user has specified syncronized mode and
1631: the VM is running in synchronized mode.</q>
1632: <tr><td valign=top>
1.1.1.11 root 1633: <image src="image/sp-ffmark2.png" style="padding:0.5ex; background-color:white">
1.1.1.7 root 1634: <td valign=top>…
1635: <td valign=top>
1.1.1.11 root 1636: 三角3つの場合、ユーザが高速モードを指定していて、高速モードで実行中です。
1.1.1.8 root 1637: 高速モード中はパーセントではなく何倍速で動作しているかを表します。
1.1.1.11 root 1638: <q>When an icon (three triangles) is displayed,
1.1.1.7 root 1639: the user has specified full speed mode and
1.1.1.11 root 1640: the VM is running in full speed mode.
1.1.1.7 root 1641: <tr><td valign=top>
1.1.1.11 root 1642: <image src="image/sp-ffmark1.png" style="padding:0.5ex; background-color:white">
1.1.1.7 root 1643: <td valign=top>…
1644: <td valign=top>
1.1.1.11 root 1645: 三角2つの場合、ユーザが高速モードを指定していて、等速モードで実行中です。
1646: 以下のいずれかの状態で起きます。
1647: <q>When an icon (two triangles) is displayed,
1.1.1.7 root 1648: the user has specified full speed mode and
1.1.1.11 root 1649: the VM is running in synchronized mode.
1650: This will happen when any of the following occurs:</q>
1651: <ul>
1652: <li>キー押下中(後述)あるいはキーボードブザー発声中
1653: <q>When any keys are pressed (see below),
1654: or the keyboard buzzer is sounding.
1655: <li>STOP instruction on m68k.
1656: <li>pseudo STOP state on m88k.
1657: </ul>
1.1.1.7 root 1658: </table>
1659: </div>
1.1.1.14 root 1660: <?php H5end(); ?>
1.1.1.7 root 1661:
1.1.1.14 root 1662: <?php H5("", "DIPSW 設定ウィンドウ"); ?>
1663: <div class="main">
1664: DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。
1665: またここでの設定は即 VM に反映されますが、
1666: LUNA の場合 DIPSW の状態を
1667: PIO(8255) がラッチするのが概ね起動時および再起動時のみとなっています
1668: (厳密には PROM と XP が云々ですが)。
1669: </div>
1670:
1671: <?php H5("", "メモリダンプモニタ <q>Memory Dump Monitor</q>"); ?>
1672: <div class="main">
1673: メモリダンプモニタの出力形式を、バイト、ワード、ロングワード
1674: (m88k ではそれぞれバイト、ハーフワード、ワードと表現します)
1675: から選択できます。
1676: また 68030/88200 の MMU ディスクリプタとして表示させることもできます
1677: (この位置が正しいディスクリプタかどうかは関係なく表示します)。
1.1.1.15! root 1678: 逆アセンブルも、逆アセンブルウィンドウからこちらにマージしました。
1.1.1.14 root 1679: LUNA-I なら m68k、HD64180 の逆アセンブルが、
1680: LUNA-88K なら m88k、HD64180 の逆アセンブルが、
1.1.1.15! root 1681: X68030 と NEWS なら m68k の逆アセンブルが選択できます。
1.1.1.14 root 1682: <q>On memory dump monitor,
1683: you can choose the output format from byte, word and longword
1684: (In m88k, it is represented as byte, halfword and word respectively).
1685: Also you can choose 68030/88200 MMU descriptor format
1686: (It displays regardless of whether this address is used as descriptor or not).
1.1.1.15! root 1687: Disassemble is now merged from disassemble monitor.
1.1.1.14 root 1688: On LUNA-I, you can choose m68k and HD64180 disassemble.
1689: On LUNA-88K, you can choose m88k and HD64180 disassemble.
1.1.1.15! root 1690: On X68030 and NEWS, you can choose m68k disassemble.</q>
1.1.1.14 root 1691: <p>
1692: 表示されているダンプ値をダブルクリックすることでメモリの値を編集できます。
1693: 編集できるのはメモリと以下の部分のみです。
1694: <q>You can edit the memory value by double click.
1.1.1.15! root 1695: Only memory and the following areas are editable.</q>
1.1.1.14 root 1696: <ul>
1697: <li>NVRAM (LUNA and NEWS Only) …
1698: 編集するとただちにファイルも更新します。
1699: 後ろの8バイトは時計レジスタを兼ねているため編集不可です。
1700: <q>The backend file is also updated immediately when edited.
1701: The last 8 bytes are not editable since there are the clock register.</q>
1702: <li>Bitmap framebuffer (LUNA Only) … 共通プレーンは書き込み不可です。
1703: <q>The common plane is not editable.</q>
1704: <li>SRAM (X68030 Only) …
1705: 編集するとただちにファイルも更新します。
1706: <q>The backend file is also updated immediately when edited.</q>
1707: <li>TVRAM とテキストパレット (X68030 Only) <q>Text VRAM and text palette</q>
1708: </ul>
1709: </div>
1710:
1.1.1.15! root 1711: <?php H5("", "デバイスマップモニタ <q>Device Map Monitor</q>"); ?>
! 1712: <div class="main">
! 1713: m68k/m88k バスに接続されているデバイスを表示します。
! 1714: 32ビットアドレスのうち上位 8 ビット、256個分を表示しています。
! 1715: 1枠が 16MB になります。
! 1716: また、X68030 ではこのうち 24ビット空間を別モニタで表示します。
! 1717: こちらは 1枠 8KB x 2048個です。
! 1718: どちらも内部構造を表示しているだけなので名前に馴染みがない場合があるかもしれません。
! 1719: </div>
! 1720:
1.1.1.14 root 1721: <?php H5("", "キー入力モード <q>Key input mode</q>"); ?>
1.1.1.10 root 1722: <div class="main">
1.1.1.13 root 1723: LUNA も X68030 もキーボードは通常日本語キーボードです
1724: (LUNA には英語キーボードも存在するようですが…)。
1.1.1.10 root 1725: そのため、ホストが日本語キーボードの場合とそうでない場合のために
1726: 2つの入力モードを用意しています。
1727: どちらも一長一短があります。
1.1.1.13 root 1728: <q>LUNA and X68030 has the Japanese keyboard
1729: (though I ever heard there are US keyboard for LUNA...).
1.1.1.10 root 1730: So nono provides two input modes
1731: for Japanese keyboard users and non Japanese keyboard users.
1732: Both have advantages and disadvantages.</q>
1733: <p>
1734: JP キーボードモードは、ホストが日本語キーボードであることを前提に
1735: 対応するキーの押下、開放をその都度 VM に入力します。
1736: メリットとしては動作が実機に近くなり、
1737: 特にキーリピート(をハードウェアが行わないこと)も忠実に再現可能です。
1738: デメリットは ALT + TAB やアクセラレータキーでメニューを開く場合などに
1739: キー入力が残ることがあることです
1740: (キーを押した後でフォーカスが外れるとキーを離したことが
1741: アプリケーションに通知されないため)。
1742: またホストが日本語キーボードでなければ使いづらいです。
1743: <q>JP keyboard mode assumes that the host uses the Japanese keyboard.
1744: Each time you presses and releases a key,
1745: nono sends the corresponding key-pressed or key-released to the VM.
1746: One advantage is that it's close to the real machine behavior,
1747: and another is that it can reproduce
1748: the LUNA keyboard itself does not perform a key repeat.
1749: On the other hand,
1750: one disadvantage is that key sometimes remains pressed,
1751: especially when you enter ALT + TAB to switch the application
1752: or enter accelerator key to open the menu
1753: (If the application loses the focus after the key is pressed,
1754: the application will not receive the subsequent key release).
1755: And another disadvantage is that
1.1.1.11 root 1756: it will be hard to use for non Japenese keyboard users.</q>
1.1.1.10 root 1757: <p>
1758: 一方、キャラクタ入力モードは、ホストから入力された「文字」を
1.1.1.13 root 1759: 再び LUNA/X68030 のキーコードに解釈し直して VM に入力するモードです。
1.1.1.10 root 1760: 例えばゲスト OS に "@" を入力したい場合、
1761: US キーボードなら [SHIFT] + [2] を、
1762: JP キーボードなら [@] キーを押しますが、
1763: どちらも VM には [@] キーの押下、[@] キーの開放が連続して送られます。
1764: US キーボードで [SHIFT] を押したことは通知されません。
1765: 逆に "=" を入力したい場合、
1766: US キーボードなら [=] キーを、
1767: JP キーボードなら [SHIFT] + [-] を押しますが、
1768: どちらも VM には
1769: [SHIFT]押下 → [-]押下 → [-]開放 → [SHIFT]開放のシーケンスが送られます。
1770: このようにホストキーボードのレイアウトによらず、
1771: 入力したい文字が入力できるようになり、
1772: 通常のタイピングで困ることはないと思います。
1773: デメリットは、通常の文字入力以外のタイピングはほぼ出来ないことです。
1774: [SHIFT] キーを押したままにすることや、
1775: 文字が入力できないキーの組み合わせは入力出来ません。
1776: もう一つのデメリットはキーリピート(をハードウェアが行わないこと)が再現できず、
1777: ホスト側のキーリピートが効いてしまうことです
1778: (本来キーリピートが動作しない ROM やブートローダでもキーリピートが効くことは
1779: 一般ユーザからはメリットに感じられるかも知れませんが)。
1780: <q>In contrast, in the character mode, when you type a character,
1.1.1.13 root 1781: nono re-converts it into the LUNA/X68030's key code and sends it to the VM.
1.1.1.10 root 1782: For example if you want to type "@" in the guest OS,
1783: you would press [SHIFT] + [2] on the US keyboard or [@] on the JP keyboard.
1784: In both cases, the sequence of
1785: [@]-pressed and [@]-released will be sent to the VM.
1786: Note that the fact that you pressed [SHIFT] key on the US keyboard
1787: will not be sent to the VM.
1788: Another example, if you want to type "=",
1789: you would press [=] on the US keyboard or [SHIFT] + [-] on the JP keyboard.
1790: In both cases, the sequence of
1791: [SHIFT]-pressed, [-]-pressed, [-]-released, and [SHIFT]-released
1792: will be sent to the VM.
1793: Thus, you can type what character you want to type,
1794: regardless of your keyboard layout.
1795: Of course there are some disadvantages.
1796: Firstly, it's hard to type any special characters,
1797: for example, you can not type any key conbinations
1798: that don't generate a character.
1799: Or you can not hold [SHIFT] key pressed.
1800: Secondly, the key repeat works (by the host),
1801: even though it should not work as a correct emulation
1802: (Although some of you may feel it an advantage).</q>
1803: </div>
1.1.1.14 root 1804: <?php H5end(); ?>
1.1.1.10 root 1805:
1.1.1.14 root 1806: <?php H5("","キャラクタ入力モードのキーコード対応表 " .
1807: "<q>Keycode table in the character mode</q>"); ?>
1.1.1.10 root 1808: <div class="main">
1809: キャラクタ入力モードでの、ホストから入力した文字と
1810: VM に送信されるキーの対応は次の通りです。
1811: ファンクションキーとカーソルキーは文字ではありませんが
1812: 特別に対応しています。
1.1.1.13 root 1813: ここに記載のないゲストキーはソフトウェアキーボードからのみ入力できます。
1.1.1.10 root 1814: <q>The following table shows the correspondence between
1815: the character that typed from the host
1816: and the key that will be sent to the VM.
1817: nono can recognize the function keys and arrow keys.
1.1.1.13 root 1818: The keys that not listed in this table can
1.1.1.10 root 1819: only be typed from the software keyboard window.</q>
1820: <p>
1821: <center>
1822: <style type="text/css">
1823: .keytable-whole {
1824: display: inline-block;
1825: vertical-align: top;
1826: border: solid 1px;
1827: }
1828: .keytable-middle {
1829: margin-left: 1em;
1830: margin-right: 1em;
1831: }
1832:
1833: .keytable-head {
1834: text-align: left;
1835: border-bottom: solid 1px;
1836: }
1837: .keytable-headl {
1838: padding-right: 1em;
1839: }
1840:
1841: .keytable-tdl {
1842: padding-right: 1em;
1843: }
1844: .keytable-tdr {
1845: }
1846: </style>
1847: <?php
1848: $str = <<<__EOM__
1849: <tt>a</tt> 〜 <tt>z</tt> [A] 〜 [Z]
1850: <tt>0</tt> 〜 <tt>9</tt> [0] 〜 [9]
1851: SPACE [SPACE]
1852: <tt>-</tt> [-]
1853: <tt>^</tt> [^]
1854: <tt>\</tt> [\]
1855: <tt>@</tt> [@]
1856: <tt>[</tt> [[]
1857: <tt>;</tt> [;]
1858: <tt>:</tt> [:]
1859: <tt>]</tt> []]
1860: <tt>,</tt> [,]
1861: <tt>.</tt> [.]
1862: <tt>/</tt> [/]
1863:
1864: <tt>A</tt> 〜 <tt>Z</tt> [SHIFT]+[A] 〜 [SHIFT]+[Z]
1865: <tt>!</tt> [SHIFT]+[1]
1866: <tt>"</tt> [SHIFT]+[2]
1867: <tt>#</tt> [SHIFT]+[3]
1868: <tt>$</tt> [SHIFT]+[4]
1869: <tt>%</tt> [SHIFT]+[5]
1870: <tt>&</tt> [SHIFT]+[6]
1871: <tt>'</tt> [SHIFT]+[7]
1872: <tt>(</tt> [SHIFT]+[8]
1873: <tt>)</tt> [SHIFT]+[9]
1874: <tt>=</tt> [SHIFT]+[-]
1875: <tt>~</tt> [SHIFT]+[^]
1876: <tt>|</tt> [SHIFT]+[\]
1877: <tt>`</tt> [SHIFT]+[@]
1878: <tt>{</tt> [SHIFT]+[[]
1879: <tt>+</tt> [SHIFT]+[;]
1880: <tt>*</tt> [SHIFT]+[:]
1881: <tt>]</tt> [SHIFT]+[]]
1882: <tt><</tt> [SHIFT]+[,]
1883: <tt>></tt> [SHIFT]+[.]
1884: <tt>?</tt> [SHIFT]+[/]
1885: <tt>_</tt> [SHIFT]+[_]
1886:
1887: F1 〜 F10 [PF1] 〜 [PF10]
1.1.1.14 root 1888: F11 [PF10]
1.1.1.10 root 1889: ↑ [↑]
1890: ← [←]
1891: → [→]
1892: ↓ [↓]
1.1.1.13 root 1893: <tt>^@</tt> [CTRL]+[@]
1894: <tt>^A</tt> 〜 <tt>^Z</tt> [CTRL]+[A] 〜 [CTRL]+[Z]
1895: <tt>^[</tt> [ESC]
1896: <tt>^\</tt> [CTRL]+[\]
1897: <tt>^]</tt> [CTRL]+[]]
1898: <tt>^^</tt> [CTRL]+[^]
1899: <tt>^_</tt> [CTRL]+[_]
1900: <tt>^H</tt> [BS]
1901: <tt>^I</tt> [TAB]
1902: <tt>^M</tt> [Enter]
1.1.1.10 root 1903: __EOM__;
1904: $table = array();
1905: $table[0] = array();
1906: $table[1] = array();
1907: $table[2] = array();
1908: $i = 0;
1909: foreach (split("\n", $str) as $s) {
1910: if ($s == "") {
1911: $i++;
1912: continue;
1913: }
1914: $s = preg_replace("/^\t+/", "", $s);
1915: list ($hkey, $gkey) = preg_split("/\t+/", $s);
1916: $table[$i][] = array($hkey, $gkey);
1917: }
1918:
1919: for ($j = 0; $j < count($table); $j++) {
1920: switch ($j) {
1921: case 0: $classname = "left"; break;
1.1.1.13 root 1922: default: $classname = "middle"; break;
1923: case 3: $classname = "right"; break;
1.1.1.10 root 1924: }
1925: print "<table class='keytable-whole keytable-${classname}'";
1926: print " cellspacing=0 cellpadding=1>\n";
1927: print "<tr>";
1928: print "<th class='keytable-head keytable-headl'>HostChar";
1929: print "<th class='keytable-head keytable-headr'>GuestKey\n";
1930: for ($i = 0; $i < count($table[$j]); $i++) {
1931: list ($h, $g) = $table[$j][$i];
1932: print "<tr>";
1933: print "<td class='keytable-tdl'>{$h}";
1934: print "<td class='keytable-tdr'>${g}\n";
1935: }
1936: print "</table>\n";
1937: }
1938: ?>
1939: </center>
1940: </div>
1.1.1.14 root 1941: <?php H5end(); ?>
1.1.1.10 root 1942:
1.1.1.14 root 1943: <?php H5("", "JP キーボードモードのキーコード対応表 " .
1944: "<q>Keycode table in the JP keyboard mode</q>"); ?>
1.1.1.10 root 1945: <div class="main">
1946: JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。
1.1.1.13 root 1947: ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。
1.1.1.10 root 1948: <q>The following table shows the correspondence between
1949: the host key and the guest key.
1.1.1.13 root 1950: The keys that not listed in this table can only be enter from
1.1.1.10 root 1951: the software keyboard window.</q>
1952: <p>
1953: <center>
1954: <?php
1955: $str = <<<__EOM__
1956: [0] 〜 [9] [0] 〜 [9]
1957: [A] 〜 [Z] [A] 〜 [Z]
1958: [-] [-]
1959: [^] [^]
1960: [\] [\]
1961: [@] [@]
1962: [[] [[]
1963: [;] [;]
1964: [:] [:]
1965: []] []]
1966: [,] [,]
1967: [.] [.]
1968: [/] [/]
1969: [_] [_]
1970:
1971: [ESC] [ESC]
1972: [TAB] [TAB]
1973: [CTRL] [CTRL]
1974: [BS] [BS]
1975: [Enter] [Enter]
1976: [F1] 〜 [F10] [PF1] 〜 [PF10]
1.1.1.14 root 1977: [F11] [PF10]
1.1.1.13 root 1978: [SHIFT-L] [SHIFT-L]
1979: [SHIFT-R] [SHIFT-R]
1980: [↑] [↑]
1981: [←] [←]
1982: [→] [→]
1983: [↓] [↓]
1984:
1.1.1.10 root 1985: [DEL] Numpad[DEL]
1986: Numpad[0]〜[9] Numpad[0]〜[9]
1987: Numpad[+] Numpad[+]
1988: Numpad[-] Numpad[-]
1989: Numpad[*] Numpad[*]
1990: Numpad[/] Numpad[/]
1991: Numpad[=] Numpad[=]
1992: Numpad[.] Numpad[.]
1993: Numpad[Enter] Numpad[Enter]
1994: __EOM__;
1995: $table = array();
1996: $table[0] = array();
1997: $table[1] = array();
1998: $table[2] = array();
1999: $i = 0;
2000: foreach (split("\n", $str) as $s) {
2001: if ($s == "") {
2002: $i++;
2003: continue;
2004: }
2005: $s = preg_replace("/^\t+/", "", $s);
2006: list ($hkey, $gkey) = preg_split("/\t+/", $s);
2007: $table[$i][] = array($hkey, $gkey);
2008: }
2009:
2010: for ($j = 0; $j < count($table); $j++) {
2011: switch ($j) {
2012: case 0: $classname = "left"; break;
2013: case 1: $classname = "middle"; break;
2014: case 2: $classname = "right"; break;
2015: }
2016: print "<table class='keytable-whole keytable-${classname}'";
2017: print " cellspacing=0 cellpadding=0>\n";
2018: print "<tr>";
2019: print "<th class='keytable-head keytable-headl'>HostKey";
2020: print "<th class='keytable-head keytable-headr'>GuestKey\n";
2021: for ($i = 0; $i < count($table[$j]); $i++) {
2022: list ($h, $g) = $table[$j][$i];
2023: print "<tr>";
2024: print "<td class='keytable-tdl'>{$h}";
2025: print "<td class='keytable-tdr'>${g}\n";
2026: }
2027: print "</table>\n";
2028: }
2029: ?>
2030: </center>
2031: </div>
1.1.1.14 root 2032: <?php H5end(); ?>
1.1.1.10 root 2033:
1.1.1.14 root 2034: <?php H5("", "キーリピート <q>Key Repeat</q>"); ?>
1.1.1.7 root 2035: <div class="main">
2036: LUNA では、キーボードがハードウェア側でキーリピートを行わず、
2037: ソフトウェア(OS など)がキーリピートの処理を行います。
2038: そのため、キーリピートを実装していない LUNA の PROM や
2039: NetBSD/luna68k のブートローダではキーリピートは起きず、
2040: キーリピートを実装している NetBSD/luna68k カーネルではキーリピートが起こせます。
1.1.1.8 root 2041: キーリピートを起こす間隔をゲストのソフトウェアが測定しているということは、
1.1.1.7 root 2042: VM が高速動作するとキーリピートもそれに合わせて発生することになり、
2043: これをホスト側から防ぐ手段はありません。
2044: そこで nono ではキー入力が発生している間
2045: (キーが一つでも押されてからキーが全て離されるまでの間)、
2046: 高速モードが指示されていても VM を一時的に等速モードに落として実行します。
2047: 上記のアイコンがそれを区別しているのはこのためです。
2048: そのため、何らかの理由でキーが入りっぱなしになった場合
2049: (ALT + TAB やアクセラレータキーでメニューを開くと起きがちです)
2050: 高速モードが抑制されたままということが起きえます。
2051: その場合はソフトウェアキーボードからキー入力を解除するなどしてください。
1.1.1.10 root 2052: <q>On LUNA,
1.1.1.7 root 2053: key repeat is done by software(OS), not by the keyboard hardware.
2054: For this reason,
2055: key repeat doesn't occur on LUNA's PROM or NetBSD/luna68k's bootloader
2056: that don't implement it, and
2057: key repeat occurs on NetBSD/luna68k kernel that implements it.
1.1.1.8 root 2058: Since the timing of key repeat is measured by the guest software,
1.1.1.7 root 2059: if the VM is running faster than the real,
2060: the key repeat will occur faster, too.
2061: The host application doesn't have the way to avoid it.
2062: Therefore, nono will temporarily suppress the full speed mode
2063: while any keys are pressed.
2064: That is why the above-mentioned icon distinguishes them.
1.1.1.8 root 2065: If keys continue to be pressed for some reasons,
1.1.1.7 root 2066: the VM also continues to run syncronized mode.
1.1.1.11 root 2067: In this case, you can resolve it by using the software keyboard window.</q>
1.1.1.7 root 2068: </div>
1.1.1.14 root 2069: <?php H5end(); ?>
2070: <?php H4end(); ?>
1.1.1.7 root 2071:
2072:
1.1.1.14 root 2073: <?php H4("tryit", "実行してみる <q>Try it</q>"); ?>
2074: <?php H5("", "NetBSD/luna68k を実行してみる <q>Try NetBSD/luna68k</q>"); ?>
1.1 root 2075: <div class="main">
1.1.1.8 root 2076: つついさんが NetBSD/luna68k 9.2 の liveimage を用意されています。
2077: <q>Tsutsui-san has provided a liveimage of NetBSD/luna68k 9.2.</q>
2078: <dl>
1.1.1.11 root 2079: <dd><a href="https://twitter.com/tsutsuii/status/1436381589211017217"
2080: >https://twitter.com/tsutsuii/status/1436381589211017217</a><br>
1.1.1.8 root 2081: </dl>
2082: ここではこれを起動してみます。<q>Let's try it.</q>
1.1.1.2 root 2083: <br>
2084: <ol>
2085: <li>どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
1.1 root 2086: その中に VM ディレクトリを用意します (例えば ~/nono/luna/)。
1.1.1.3 root 2087: <q>Create a directory somewhere for nono (for example ~/nono/),
1.1.1.8 root 2088: and create subdirectories for individual VMs in it
2089: (for example ~/nono/luna/).</q>
1.1 root 2090:
1.1.1.3 root 2091: <li>以下のリンクからイメージファイルをダウンロードして展開し、
1.1.1.2 root 2092: VM ディレクトリ ~/nono/luna/ に置きます。
1.1.1.3 root 2093: <q>Download imagefile from the following link,
1.1.1.7 root 2094: extract it and place it in the VM directory, ~/nono/luna/.</q>
1.1.1.3 root 2095: <blockquote>
1.1.1.11 root 2096: <a href="http://teokurebsd.org/netbsd/liveimage/20210910-luna68k/"
2097: >http://teokurebsd.org/netbsd/liveimage/20210910-luna68k/</a>
1.1.1.3 root 2098: </blockquote>
1.1.1.2 root 2099:
1.1.1.8 root 2100: <li>以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna/
2101: に作成します。
2102: ここでは説明を簡単にするためネットワークなしにしていますが、
2103: ネットワーク設定は必要に応じて行ってください。
1.1.1.7 root 2104: <q>Create a configuration file nono.cfg in the VM directory, ~/nono/luna/,
1.1.1.8 root 2105: with following contents.
2106: By the way, to simplify the explanation, we assume there is no network here.
2107: However, please configure the network if necessary.</q>
1.1.1.2 root 2108: <blockquote class="file"><pre>
2109: vmtype = luna
1.1.1.11 root 2110: spc0-id6-image = hd,liveimage-luna68k-with-packages-20210910.img
1.1.1.8 root 2111: hostnet-driver = none
1.1.1.2 root 2112: </pre></blockquote>
1.1.1.8 root 2113:
1.1.1.2 root 2114: <li><tt>nono -c ~/nono/luna</tt> で起動します
2115: (VM ディレクトリに自動的に NVRAM.DAT が作られます)。
2116: <q>Run as <tt>nono -c ~/nono/luna</tt>.
1.1.1.4 root 2117: (NVRAM.DAT will be created automatically in the VM directory)</q>
1.1.1.13 root 2118:
1.1.1.2 root 2119: <li>Emulated ROM Monitor が起動するので、
2120: 初回は以下のように入力すると NetBSD が起動します。
2121: <q>The emulated ROM Monitor will be executed.
2122: Then, only for the first time,
2123: entering the following can boot NetBSD.</q>
1.1.1.8 root 2124: <blockquote><pre>
2125: k⏎
2126: ⏎
2127: ⏎
2128: d⏎
2129: boot⏎
2130: g⏎
2131: x⏎
2132: </pre></blockquote>
2133: 画面はこんな感じのはずです (太字が入力部分)。
2134: <q>You will see a screen like this. The bold text indicates
2135: the characters you need to enter.</q>
1.1.1.2 root 2136: <blockquote class="file"><pre>
1.1.1.11 root 2137: NONO <?=$nono_ver?> Emulated ROM Monitor for LUNA-I
1.1.1.8 root 2138:
2139: ** NVRAM Initialized.
2140:
2141: ><b>k⏎</b>
2142: controller: dk ?<b>⏎</b>
2143: drive unit: 0 ?<b>⏎</b>
2144: partition : c ?<b>d⏎</b>
2145: filename : vmunix ?<b>boot⏎</b>
2146: ><b>g⏎</b>
2147: Loaded. Entry point = $00700000
2148: ><b>x⏎</b>
1.1.1.2 root 2149: </pre></blockquote>
2150: この内容は NVRAM.DAT に記録されているので次回以降は直接 NetBSD が起動します。
1.1.1.7 root 2151: <q>The information you have just entered is recorded in the NVRAM,
1.1.1.13 root 2152: so next time it will boot NetBSD automatically.</q>
1.1.1.8 root 2153: <li>初回起動時、
2154: Updating fontconfig cache はあほみたいに時間がかかりますが、
2155: nono がハングアップしてるわけではありません(>_<)。
1.1.1.13 root 2156: また初回は起動後数時間めちゃくちゃ重たいですが、
1.1.1.8 root 2157: これはバックグラウンドで makemandb が動くためで
2158: nono のせいではありません(>_<)。
2159: <q>At the first boot, you will see the console stops after printing
2160: "Updating fontconfig cache".
2161: This is because the infamous fontconfig takes very looooong time.
2162: nono would not have hang-up.
1.1.1.13 root 2163: In addition, at the first boot, you will feel it's too heavy for several hours.
1.1.1.8 root 2164: This is because the infamous makemandb(8) runs heavily in the background
2165: for a looooong time.
2166: It's very sad to me that these two accidents which are far from the ideal
1.1.1.12 root 2167: are the first experiences of newcomers.</q>
1.1.1.8 root 2168:
2169: <li>終了する時は root
2170: ユーザで “<tt>shutdown -p now</tt>” を実行してください。
2171: LUNA はソフトウェアから電源オフでき、
2172: VM の電源オフで nono も終了します。
2173: <q>To quit, type “<tt>shutdown -p now</tt>” as the root user.
2174: LUNA can be powered off by software,
2175: and nono will terminate when the VM is powered off.</q>
2176: </ol>
2177: </div>
1.1.1.14 root 2178: <?php H5end(); ?>
1.1.1.8 root 2179:
1.1.1.14 root 2180: <?php H5("", "OpenBSD/luna88k を実行してみる <q>Try OpenBSD/luna88k</q>"); ?>
1.1.1.8 root 2181: <div class="main">
1.1.1.12 root 2182: あおやまさんが OpenBSD/luna88k 7.0 の liveimage を用意されています。
2183: <q>Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.0.</q>
1.1.1.8 root 2184: <dl>
1.1.1.12 root 2185: <dd><a href="https://twitter.com/ao_kenji/status/1473611893386661888"
2186: >https://twitter.com/ao_kenji/status/1473611893386661888</a>
1.1.1.8 root 2187: </dl>
2188: ここではこれを起動してみます。<q>Let's try it.</q>
2189: <br>
2190: <ol>
2191: <li>どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
2192: その中に VM ディレクトリを用意します (例えば ~/nono/luna88k/)。
2193: <q>Create a directory somewhere for nono (for example ~/nono/),
2194: and create subdirectories for individual VMs in it
2195: (for example ~/nono/luna88k/).</q>
2196:
1.1.1.12 root 2197: <li>以下のリンクから liveimage-luna88k-raw-20211221.img.gz
1.1.1.8 root 2198: をダウンロードして展開し、
2199: VM ディレクトリ ~/nono/luna88k/ に置きます。
1.1.1.12 root 2200: <q>Download liveimage-luna88k-raw-20211221.img.gz from the following link,
1.1.1.8 root 2201: extract it and place it in the VM directory, ~/nono/luna88k/.</q>
2202: <blockquote>
2203: <a href="http://www.nk-home.net/~aoyama/liveimage/"
2204: >http://www.nk-home.net/~aoyama/liveimage/</a>
2205: </blockquote>
2206:
2207: <li>以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna88k/
2208: に作成します。
2209: ここでは説明を簡単にするためネットワークなしにしていますが、
2210: ネットワーク設定は必要に応じて行ってください。
2211: <q>Create a configuration file nono.cfg in the VM directory, ~/nono/luna88k/,
2212: with following contents.
2213: By the way, to simplify the explanation, we assume there is no network here.
2214: However, please configure the network if necessary.</q>
2215: <blockquote class="file"><pre>
2216: vmtype = luna88k
1.1.1.12 root 2217: spc0-id6-image = hd,liveimage-luna88k-raw-20211221.img
1.1.1.8 root 2218: hostnet-driver = none
2219: </pre></blockquote>
2220:
2221: <li><tt>nono -c ~/nono/luna88k</tt> で起動します
2222: (VM ディレクトリに自動的に NVRAM.DAT が作られます)。
2223: <q>Run as <tt>nono -c ~/nono/luna88k</tt>.
2224: (NVRAM.DAT will be created automatically in the VM directory)</q>
2225: <li>Emulated ROM Monitor が起動するので、
2226: 初回は以下のように入力すると OpenBSD が起動します。
2227: <q>The emulated ROM Monitor will be executed.
2228: Then, only for the first time,
2229: entering the following can boot OpenBSD.</q>
2230: <blockquote><pre>
2231: nvram boot_filename boot⏎
2232: y
2233: b⏎
2234: </pre></blockquote>
2235: 画面はこんな感じのはずです (太字が入力部分)。
2236: <q>You will see a screen like this. The bold text indicates
2237: the characters you need to enter.</q>
2238: <blockquote class="file"><pre>
1.1.1.14 root 2239: NONO <?=$nono_ver?> Emulated ROM Monitor for LUNA-88K
1.1.1.8 root 2240:
2241: ** NVRAM Initialized.
2242:
2243: N><b>nvram boot_filename boot⏎</b>
2244: Update boot_filename : "vmunix" -> "boot" (Y/[N]):<b>y</b>
2245: Updated
2246: N><b>b⏎</b>
2247: </pre></blockquote>
2248: この内容は NVRAM.DAT に記録されているので次回以降は直接 OpenBSD が起動します。
2249: <q>The information you have just entered is recorded in the NVRAM,
1.1.1.13 root 2250: so next time it will boot OpenBSD automatically.</q>
1.1.1.8 root 2251:
2252: <li>終了する時は root
2253: ユーザで “<tt>shutdown -p now</tt>” を実行してください。
1.1.1.12 root 2254: LUNA-88K はソフトウェアから電源オフでき、
1.1.1.8 root 2255: VM の電源オフで nono も終了します。
2256: <q>To quit, type “<tt>shutdown -p now</tt>” as the root user.
1.1.1.12 root 2257: LUNA-88K can be powered off by software,
1.1.1.8 root 2258: and nono will terminate when the VM is powered off.</q>
1.1.1.2 root 2259: </ol>
1.1 root 2260: </div>
1.1.1.14 root 2261: <?php H5end(); ?>
2262:
1.1 root 2263:
1.1.1.14 root 2264: <?php H5("", "NetBSD/x68k を実行してみる <q>Try NetBSD/x68k</q>"); ?>
1.1.1.13 root 2265: <div class="main">
2266: つついさんが NetBSD/x68k 9.2 の liveimage を用意されています。
2267: ここではこれを起動してみます。
2268: <q>Tsutsui-san has provided a liveimage of NetBSD/x68k 9.2. Let's try it.</q>
2269: <br>
2270: <ol>
2271: <li>どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
2272: その中に VM ディレクトリを用意します (例えば ~/nono/x68k/)。
2273: <q>Create a directory somewhere for nono (for example ~/nono/),
2274: and create subdirectories for individual VMs in it
2275: (for example ~/nono/x68k/).</q>
2276:
2277: <li>以下のリンクから
2278: plain-install か with-packages のお好みのほうをダウンロードして展開し、
2279: VM ディレクトリ ~/nono/x68k/ に置きます。
2280: <q>Download your favorite one of plain-install or with-packages
2281: from the following link,
2282: extract it and place it in the VM directory, ~/nono/x68k/.</q>
1.1.1.14 root 2283: <blockquote>
1.1.1.13 root 2284: <a href="http://teokurebsd.org/netbsd/liveimage/20210613-x68k/"
2285: >http://teokurebsd.org/netbsd/liveimage/20210613-x68k/</a>
2286: </blockquote>
2287:
2288: <li>以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/x68k/
2289: に作成します。
1.1.1.15! root 2290: <span class="new">ここでは説明を簡単にするためネットワークなしにしていますが、
! 2291: ネットワーク設定は必要に応じて行ってください。</span>
1.1.1.13 root 2292: <q>Create a configuration file nono.cfg in the VM directory, ~/nono/x68k/,
2293: with following contents.
1.1.1.15! root 2294: <span class="new">By the way, to simplify the explanation, we assume there is no network here.
! 2295: However, please configure the network if necessary.</span></q>
1.1.1.13 root 2296: <blockquote class="file"><pre>
2297: vmtype = x68030
2298: spc0-id0-image = hd,liveimage-x68k-with-packages-20210613.hds
1.1.1.15! root 2299: hostnet0-driver = none
1.1.1.13 root 2300: </pre></blockquote>
2301:
1.1.1.15! root 2302: <li>初回のみ <tt>nono -c ~/nono/x68k --create-sram</tt> を実行します。
1.1.1.14 root 2303: これで VM ディレクトリに初期状態の SRAM.DAT が作られます。
2304: <q>Only the first time, run as <tt>nono -c ~/nono/x68k --create-sram</tt>.
1.1.1.15! root 2305: This will create an initial SRAM.DAT in the VM directory.</q>
1.1.1.14 root 2306:
2307: <li><tt>nono -c ~/nono/x68k</tt> で起動すると、
1.1.1.13 root 2308: HDD から NetBSD/x68k が起動します。
2309: 次回以降はこれだけで直接 NetBSD が起動します。
2310: <q>Again, run as <tt>nono -c ~/nono/x68k</tt>.
2311: NetBSD/x68k will be booted from HDD.
2312: Next time, it will boot NetBSD automatically.</q>
2313:
2314: <li>初回起動後数時間はめちゃくちゃ重たいですが、
2315: これはバックグラウンドで makemandb が動くためで
2316: nono のせいではありません(>_<)。
2317: <q>At the first boot, you will feel it's too heavy for several hours.
2318: This is because the infamous makemandb(8) runs heavily in the background
2319: for a looooong time.
2320: It's very sad to me that an accident which is far from the ideal
2321: is the first experiences of newcomers.</q>
2322:
2323: <li>NetBSD が起動した後なら (正確には powerd(8) が起動していれば)、
2324: 終了する時はメニューの「デバイス > 操作 > 電源ボタンを押す」
2325: でシャットダウンして電源オフになり、
2326: VM の電源オフで nono も終了します。
2327: <q>After NetBSD boots up (more precisely, if powerd(8) is running),
2328: you can shutdown and power off by
2329: "Device > Operation > Push Power button" on menu,
2330: and nono will terminate when the VM is powered off.</q>
2331: </ul>
2332: </div>
1.1.1.14 root 2333: <?php H5end(); ?>
2334: <?php H4end(); ?>
1.1 root 2335:
1.1.1.8 root 2336:
1.1.1.14 root 2337: <?php H4("network",
2338: "ホストネットワーク設定例 <q>Example of host network setup</q>"); ?>
1.1 root 2339: <div class=main>
1.1.1.8 root 2340: wm0 を持つ NetBSD ホストに tap(4) デバイスを用いて
2341: nono のゲスト OS を接続する場合の設定例です。
2342: <ol>
2343: <li>
2344: 設定ファイル nono.cfg に以下の行を追加します
2345: (と言いつつ NetBSD では書かなくてもデフォルトでこの動作になりますが)
2346: <q>Add the following line to configuration file, nono.cfg.
2347: (Although you don't need to write it since these are default behavior
2348: on NetBSD)</q>
1.1 root 2349: <blockquote class="file"><pre>
1.1.1.8 root 2350: hostnet-driver = tap
2351: hostnet-tap-devpath = auto
1.1 root 2352: </pre></blockquote>
1.1.1.8 root 2353:
1.1.1.5 root 2354: <li>デフォルトでは /dev/tap は一般ユーザからアクセスできないので、
2355: chmod で適当にパーミッションを与えます。
2356: 番号の付いていないほうの /dev/tap だけでいいです。
2357: sysinst 等で OS をアップグレードするとパーミッションが 600
2358: に戻るのがハマりポイントです。
1.1.1.8 root 2359: <q>By default, /dev/tap is only accessible to privileged user.
2360: You need to chmod /dev/tap (without unit number) appropriately.
1.1.1.11 root 2361: Note that upgrading using sysinst always reset the permission to 600.</q>
1.1.1.5 root 2362:
2363: <li>bridge(4) インタフェースを作成し、
1.1.1.8 root 2364: ホストの外部(物理)インタフェースをブリッジに追加しておきます。
1.1.1.5 root 2365: <q>Create a bridge(4) interface, and
2366: add your physical interface to the bridge.</q>
1.1 root 2367: <blockquote class="cons"><pre>
1.1.1.5 root 2368: # ifconfig bridge0 create
1.1 root 2369: # brconfig bridge0 add wm0
2370: </pre></blockquote>
1.1.1.8 root 2371: 常用するなら /etc の設定ファイルに書いておきましょう。
2372: <q>If you use it regularly,
1.1.1.5 root 2373: you can put configuration file into /etc.</q>
2374: <blockquote>
2375: /etc/ifconfig.bridge0
2376: <pre class=file>
2377: create
2378: up
2379: !/sbin/brconfig $int add wm0
2380: </pre>
2381: <pre class=cons>
2382: # /etc/rc.d/network restart
2383: </pre>
2384: </blockquote>
2385:
2386: <li>
2387: 一般ユーザに戻って、
2388: VM ディレクトリかその親ディレクトリに
2389: 次のような 2つのスクリプトを用意します。
1.1.1.8 root 2390: nono は tap(4) をオープンし、
2391: そのデバイス名を引数にこれらのスクリプトを呼びます。
1.1.1.5 root 2392: sudo の設定は別途行ってください。
2393: <q>Return to non-privileged user, and
2394: create following two scripts in the VM directory or its parent directory.
1.1.1.8 root 2395: nono will open tap(4) and
2396: invoke these scripts with the name of the device as an argument.
1.1.1.5 root 2397: In addition, you need to set up sudo separately.</q>
1.1 root 2398: <blockquote>
2399: nono-ifup
2400: <pre class=file>
2401: #!/bin/sh
1.1.1.5 root 2402: sudo /sbin/ifconfig $1 up
2403: sudo /sbin/brconfig bridge0 add $1
1.1 root 2404: </pre></blockquote>
2405:
2406: <blockquote>
1.1.1.5 root 2407: nono-ifdown
1.1 root 2408: <pre class=file>
2409: #!/bin/sh
1.1.1.5 root 2410: sudo /sbin/brconfig bridge0 delete $1
2411: sudo /sbin/ifconfig $1 down
2412: </pre></blockquote>
2413:
2414: <blockquote class="cons"><pre>
2415: % chmod +x nono-ifup nono-ifdown
1.1 root 2416: </pre></blockquote>
2417:
1.1.1.5 root 2418: <li>nono を起動し、
2419: メニューの「モニタ > ホスト > ホストネットワーク」を開いて
1.1.1.8 root 2420: HostNet Driver: tap になっていれば動いてるはずです。
1.1.1.5 root 2421: <q>Run nono,
2422: and open "Monitor > Host > Host Network" window from menu.
1.1.1.8 root 2423: It's OK if you can see "HostNet Driver: tap".</q>
1.1.1.5 root 2424:
2425: </ol>
1.1 root 2426: </div>
1.1.1.14 root 2427: <?php H4end(); ?>
2428:
1.1 root 2429:
1.1.1.14 root 2430: <?php H4("knownissues", "既知の問題 <q>Known Issues</q>"); ?>
1.1.1.12 root 2431: <div class="main">
2432: <ul>
1.1.1.13 root 2433: <li>デバッガのコンソール入力で、
1.1.1.14 root 2434: カーソルキーなどの特殊文字入力に対する表示が動作していません。
2435: <q>In debugger console, some special characters like cursor keys
1.1.1.12 root 2436: aren't printed correctly.</q>
1.1.1.13 root 2437: (since ver 0.3.0)
1.1.1.12 root 2438: <li>ホストが VirtualBox (on Windows?) で、
2439: VirtualBox の「マウス統合」が有効にしている場合、
2440: nono の「マウスモード」でマウスポインタが正しく移動しません。
2441: <q>If the host OS is running on VirtualBox (on Windows?) and
2442: "Mouse integration" on VirtualBox is enabled,
2443: the mouse pointer will not move as expected in nono's Mouse Mode.</q>
2444: (2021/12/30)
2445:
2446: <li>Wayland の場合にウィンドウサイズが正しく設定されない場合があります。
2447: wxWidgets (3.0.5) のバグと思われます。
2448: <q>On Wayland, window size may be incorrect.
2449: This may be due to wxWidgets (3.0.5) bug.</q>
2450: (2021/12/30)
2451:
2452: </ul>
2453: </div>
1.1.1.14 root 2454: <?php H4end(); ?>
2455:
1.1 root 2456:
1.1.1.14 root 2457: <?php H4("migrate",
2458: "過去のバージョンからの移行方法 <q>How to migrate from old versions</q>");
2459: ?>
1.1.1.9 root 2460: <div class="main">
2461: バージョンアップに伴い設定ファイル等に非互換が発生する場合があります。
2462: その場合は以下の移行方法を参照して設定ファイル等を更新してください。
2463: <q>Some versions may have incompatibilities in the configuration files, etc.
2464: In such case, you may need to upgrade it by referring the following link.</q>
2465: <ul>
1.1.1.13 root 2466: <li><a href="upgrade-0.3.0.html">From ver 0.2.x to ver 0.3.0</a>
1.1.1.9 root 2467: <li><a href="upgrade-0.2.0.html">From ver 0.1.x to ver 0.2.0</a>
2468: </ul>
2469: </div>
1.1.1.14 root 2470: <?php H4end(); ?>
2471:
1.1.1.2 root 2472:
1.1.1.14 root 2473: <?php H4("changes", "変更履歴 <q>Changes</q>"); ?>
1.1.1.10 root 2474: <div class="main">
2475: See <a href="changes.html">changes.html</a>.
1.1.1.15! root 2476: <?php
! 2477: // ブラウザから見てる時だけ .php へのリンクを貼る
! 2478: if (is_array($argv) == false) {
! 2479: print "(<a href=\"changes.php\">changes.php</a>)\n";
! 2480: }
! 2481: ?>
1.1.1.10 root 2482: </div>
1.1.1.14 root 2483: <?php H4end(); ?>
2484:
1.1.1.10 root 2485:
1.1.1.14 root 2486: <?php H4("license", "連絡先、ライセンス等 <q>Contact, License, etc</q>"); ?>
1.1.1.10 root 2487:
1.1.1.14 root 2488: <?php H5("", "ライセンス <q>License</q>"); ?>
1.1.1.2 root 2489: <div class="main">
1.1.1.14 root 2490: <ul>
2491: <li>
2492: nono 自身については
2493: <a href="nono-license.txt">nono-license.txt</a> を読んでください。
2494: <q>See nono-license.txt about nono itself.</q>
2495: <li>
2496: nono は無償公開されている X68030 の IPLROM を使用しています。
1.1.1.13 root 2497: <a href="fsharp-license.txt">許諾条件</a>を読んでください。
2498: <q>nono uses X68030 IPLROM image distributed without charge.
2499: You must read
2500: <a href="fsharp-license.txt">the license agreement</a>
2501: (even though it's Japanese original text only).</q>
1.1.1.14 root 2502: <li>
2503: nono は SIL Open Font License version 1.1 で配布されているフォントの
2504: 一部を改変して組み込んでいます。
2505: <q>nono modifies and embeds the font distributed as SIL Open Font License version 1.1.</q>
2506: </ul>
2507: </div>
2508:
2509: <?php H5end(); ?>
1.1.1.2 root 2510:
1.1.1.14 root 2511: <?php H5("", "連絡先 <q>Contact us</q>"); ?>
1.1.1.4 root 2512: <div class="main">
2513: バグ報告などは以下にお願いします。日本語でおk。
2514: <q>If you find any problems, please let me know.
2515: You may write in English.</q><br>
2516: <a href="https://github.com/isaki68k/nono-issue/issues"
2517: >https://github.com/isaki68k/nono-issue/issues</a>
2518: </div>
1.1.1.14 root 2519: <?php H5end(); ?>
1.1.1.4 root 2520:
1.1.1.14 root 2521: <?php H5("", "パッチの提供について <q>About contributes</q>"); ?>
1.1.1.2 root 2522: <div class="main">
2523: パッチを提供してくださる場合は以下に同意したものとします。
1.1.1.12 root 2524: <q>If you provide a patch to nono, we assume that you agree the following
1.1.1.11 root 2525: conditions:</q>
1.1.1.2 root 2526: <ul>
2527: <li>成果物が nono のライセンスに従って運用あるいは配布されること。
1.1.1.15! root 2528: <q>All your work will be operated or distributed under the nono license.</q>
1.1.1.2 root 2529: <li>ライセンスが将来変わる可能性があること。
2530: <q>The license may be changed in the future.</q>
2531: <li>著作部分に関して著作者人格権を行使しないこと。
2532: <q>Do not exercise your author's rights.</q>
2533: </ul>
2534: </div>
1.1.1.14 root 2535: <?php H5end(); ?>
1.1.1.2 root 2536:
1.1.1.14 root 2537: <?php H5("", "Acknowledgements"); ?>
1.1.1.2 root 2538: <div class="main">
2539: nono は以下の広告条項を含むソースコードを利用しています。
2540: <q>nono uses source code with the following advertising clause.</q>
2541: <blockquote>
2542: This product includes software developed by Gordon Ross<br>
2543: This product includes software developed by the University of California, Lawrence Berkeley Laboratory.<br>
2544: </blockquote>
2545: </div>
1.1.1.14 root 2546: <?php H5end(); ?>
2547: <?php H4end(); ?>
1.1 root 2548:
2549: <hr>
1.1.1.2 root 2550: nono project
1.1 root 2551: </body>
2552: </html>
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.