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