--- nono/doc/index.php 2026/04/29 17:04:33 1.1.1.2 +++ nono/doc/index.php 2026/04/29 17:05:15 1.1.1.14 @@ -4,16 +4,10 @@ Licensed under nono-license.txt --> 1) - get_version($_SERVER['argv'][1]); - -function get_version($filename) -{ - global $nono_ver; - - $fp = fopen($filename, "r"); + $fp = fopen("../lib/header.h", "r"); if ($fp !== false) { while (($buf = fgets($fp)) !== false) { if (preg_match("/NONO_MAJOR_VER\s+\((\d+)\)/", $buf, $m)) { @@ -31,66 +25,176 @@ function get_version($filename) } fclose($fp); - $nono_ver = "${nono_major}.${nono_minor}.${nono_patch} (${nono_date})"; + $nono_ver = "${nono_major}.${nono_minor}.${nono_patch}"; } -} ?> + +
+{$h4number}. {$title} +_EOM_; +} +function H4end() +{ + print "
\n"; +} + +function H5($name, $title) +{ + global $h4number; + global $h5number; + $h5number++; + print <<<_EOM_ + +
+{$h4number}.{$h5number}. {$title} +_EOM_; +} +function H5end() +{ + print "
\n"; +} +?> -

nono

+

nono ()

-nono は NetBSD とかで動作する OMRON LUNA-I とかのエミュレータです。 -nono is OMRON LUNA-I emulator runs on NetBSD and so on. +nono は NetBSD とかで動作する OMRON LUNA-I/LUNA-88K +(と SHARP X68030) のエミュレータです。 +nono is OMRON LUNA-I/LUNA-88K (and SHARP X68030) emulator +runs on NetBSD and etc.
-

ビルド方法 How to build

+ +

Index of this page:

+
+1. ビルド方法 How to build
+2. 実行方法 How to execute
+3. 設定 Configuration
+4. VM について About VM
+5. 実行してみる Try it
+6. ホストネットワーク設定例 Example of host network setup
+7. 既知の問題 Known Issues
+8. 過去のバージョンからの移行方法 +How to migrate from old versions
+9. 変更履歴 Changes
+10. 連絡先、ライセンス等 Contact, License, etc
+
+

-ビルドには以下が必要です。The following are required for build. +緑背景は新規または目立った更新のあった箇所です。 +Green Background is new or updated paragraph. +
+ + +How to build"); ?> +
+ビルドには以下が必要です。 +The followings are required for build. + +

wxWidgets は NetBSD(pkgsrc) なら -pkgsrc/x11/wxGTK30 (OPTIONS:gtk2 推奨) です。 +pkgsrc/x11/wxGTK30 (OPTIONS:gtk3 で動作確認) です。 +2022Q3 の wxGTK32 ではビルドできないようです。 If you use NetBSD(pkgsrc), -wxWidgets is pkgsrc/x11/wxGTK30 (OPTIONS:gtk2 is recommended). +wxWidgets is pkgsrc/x11/wxGTK30 (OPTIONS:gtk3 is tested). +wxGTK32 in 2022Q3 doesn't seem to build for now. +

-アーカイブを展開したら以下のようにビルドします。 +(NetBSD 以外でのビルドはサポートしていませんが) +Ubuntu 20.04 ではたぶん以下のパッケージが必要です。 +You may need the following packages on Ubuntu 20.04 +(though we won't support non-NetBSD platform). +

+ + +

+nono のソースアーカイブを展開したら以下のようにビルドします。 configure には環境変数 CC、CXX でコンパイラを指定することが出来ます。 また wx-config が標準的な名前で提供されていないために見付けられない場合には 環境変数 WX_CONFIG にパスを指定することが出来ます。 -Extract the archive and build as following. +Extract the nono's source archive and build as following. You can specify C/C++ compiler using environment variable CC and CXX if configure cannot find standard name suitable compiler. Also, you can specify wx-config path using environment variable WX_CONFIG if configure cannot find wx-config. +

+-DNOTEST は開発者用のテストツールをビルドしないためのものです。 +With -DNOTEST, the build excludes test tools which is needed +for developers only. +

 % ./configure
-% make depend
-% make
+% make -DNOTEST depend
+% make -DNOTEST
 % su
 # make install
 
- -

2つの実行ファイルがインストールされます。 nono が GUI 版実行ファイル、 nono-cli がコマンドライン版です。 Two executables will be installed. -nono is GUI executable and nono-cli is -command line executable. +nono is the GUI executable and nono-cli is +the command line executable.

+ + +How to execute"); ?> +
+nono は複数機種に対応しているため設定なしでは起動できません。 +設定は設定ファイルかコマンドラインオプションで指定します。 +nono はまず設定ファイル ~/.nono.cfg +があれば読み込み、続いて +カレントディレクトリの設定ファイル nono.cfg +があれば読みます +(-c オプションで設定ファイル (VM ディレクトリ) の位置を指定することも出来ます)。 +詳細は以下の設定の章を参照してください。 +nono supports multiple architectures so that +it needs configuration. +First, nono reads a configuration file +names ~/.nono.cfg if exists, then +reads a configuration file names nono.cfg in the current directory +if exists +(You can specify the configuration file path (or VM directory) using +-c option). +See the following Configuration section for +details. +
-

コマンドラインオプション Command Line Option

+Command Line Option"); +?>
file", <<<_EOM_ -ホストの file をロードして実行します。 -ファイルが gzip 圧縮されていれば自動的に展開します。 -(展開後の) ファイル形式は a.out (OMAGIC) か ELF で、 -実際にはブートローダとカーネル程度しか想定していません。 -設定ファイルの prom-image とともに指定されると --A のほうが優先します。 -Loads and executes host's file. -If the file is gzip'd, it is automatically extracted. -The supported file format (after extracting) is a.out (OMAGIC) or ELF. -Actually, it only assumes bootloaders or kernels. -If this option is specified at the same time as -prom-image in configuration file, -this option preceeds. - +option_item("-c vmpath", <<<_EOM_ +VM ディレクトリ/設定ファイルを指定します。 +vmpath がディレクトリならそのディレクトリの中の nono.cfg +を設定ファイルとします。 +vmpath がファイルならそれを設定ファイルとします。 +そしていずれの場合も +設定ファイルがあるディレクトリを VM ディレクトリとします。 +-c オプションを省略すると vmpath をカレントディレクトリとします。 +Specifies the VM directory/configuration file. +If vmpath is a directory, +make nono.cfg in that directory a configuration file. +Or if vmpath is a file, +make the specified file a configuration file. +And in both cases, +make the directory where that file is located a VM directory. +If -c option is omitted, +vmpath is considered as the current directory. _EOM_ ); -option_item("-c vmdir", <<<_EOM_ -VM ディレクトリを指定します。省略するとカレントディレクトリとします。 -Specifies the VM directory. If omitted, the current directory is used. +option_item("--create-sram", <<<_EOM_ + +(X68030 Only) +VM ディレクトリに X68030 用の SRAM.DAT がなければ初期状態で作成して終了します。 + +nono will create the initial SRAM.DAT for X68030 and exit, +if there is no SRAM.DAT in the VM directory. + _EOM_ ); option_item("-f", <<<_EOM_ 高速モードで起動します。 GUI なら起動後にもメニューから変更できますが、その初期値を変えるだけです。 +設定の fast-mode=1 と等価です。 Boot as the fast mode. You can change this mode on GUI menu after boot, and the option only changes its initial state. - +This option is equivalent to fast-mode=1 in configuration. _EOM_ ); option_item("--fontsize height", <<<_EOM_ GUI 版のみ。 全サブウインドウの起動時のフォントサイズを指定します。 -height には 12, 16 -のいずれかを指定します。デフォルトは 12 です。 - -GUI Only. -Specifies the initial fontsize on all sub windows. -height is one of 12 or 16. -The default value is 12 - +起動後にメニューから変更できます。 +設定の monitor-fontsize と等価です。 +GUI Only. +Specifies the initial fontsize of all sub windows. +You can change this value on GUI menu after boot. +This option is equivalent to monitor-fontsize in configuration. _EOM_ ); -option_item(array("-s scale", - "--scale scale"), <<<_EOM_ +option_item("-s scale", <<<_EOM_ GUI 版のみ。 メインウィンドウの起動時のスケールを実数で指定します。 -起動後にもメニューからプリセットされた倍率には変更可能ですが、 -任意倍率は起動時のみ指定可能です -(そのうちなんとかしたい)。 -デフォルトは 1.0 です。 - -GUI Only. + +設定の mainview-scale と等価です。 +起動後はメニューからプリセットされた倍率と +mainview-scale で指定された倍率には変更可能です。 +GUI Only. Specifies the initial main window scale in real number. -You can change this scale on GUI menu after boot, -but unlike this option, there are only a few preset choices -(Should be improved in someday). -The default value is 1.0 + +This is equivalent to mainview-scale in configuration. +You can change this scale on GUI menu after boot. _EOM_ ); @@ -189,11 +299,56 @@ _EOM_ ); option_item("-V name=value", <<<_EOM_ -設定ファイルの name=configvalue の代わりに +設定ファイルで指定した name=configvalue の代わりに このオプションの name=value を適用します。 -Applies this option's name=value -instead of name=configvalue in configuration file. - +name が正しくない場合はエラー終了します。 +Use this name=value +instead of name=configvalue specified in configuration file. +If name is not correct, it will exit on error. +_EOM_ +); + +option_item("-X file", <<<_EOM_ +ホストの file をロードして実行します。 +file が相対パスの場合カレントディレクトリからのパスになります。 +ファイルが gzip 圧縮されていれば自動的に展開します。 +(展開後の) ファイル形式は以下の通りですが、 +実際にはブートローダとカーネル程度しか想定していません。 +また、いずれも起動元デバイスが取得できないなどの問題はあるかも知れません。 +Loads and executes host's file. +If file is relative path, +it is path from the current directory. +If the file is gzip'd, it is automatically extracted. +The supported file format (after extracting) is the following. +Actually, it only assumes bootloaders or kernels. +And note that it may not obtain some information that where did I boot from, +for example. + +LUNA では、設定の prom-imageluna-dipsw1 の内容(後述)によらず +内蔵の互換 PROM で起動し、直ちにホストファイルを実行します。 +X68030 では、IPLROM 起動の後の起動デバイスに細工がしてあり、 +そこからホストファイルを実行します。 + +On LUNA, +regardless of prom-image and luna-dipsw1 configuration +(see below), +the internal emulated PROM loads and executes the host file immediately. +On X68030, +nono hacks the boot device after normal boot from IPLROM, +and loads and executes the host file. _EOM_ ); ?> @@ -209,7 +364,7 @@ function option_dev($name, $desc) print "
{$desc}
\n"; } -option_dev("-b hexaddr", <<<_EOM_ +option_dev("-b hexaddr[,skipcount]", <<<_EOM_ デバッガのブレークポイントを 16進数で指定します。 _EOM_ ); @@ -227,8 +382,8 @@ _EOM_ option_dev("-D", <<<_EOM_ コンソールをデバッガとして使用します。 --d を指定しなくても起動時にプロンプトで停止します -(そのうちなんとかしたい)。 +過去との互換性のために存在していますが、 +-V debugger-driver=stdio と等価です。 _EOM_ ); @@ -240,9 +395,15 @@ option_dev("-L name1=level1file", <<<_EOM_ +-X オプションと同様ですが、PROM のプロンプトで停止します。 +_EOM_ +); + option_dev("-M name[,name2,...]", <<<_EOM_ 起動時に表示するモニタウィンドウを指定します。 カンマで区切って複数指定することも出来ます。 +-Mhelp で name の一覧を表示します。 _EOM_ ); @@ -250,20 +411,57 @@ _EOM_ ?>
+ + + -

設定 Configuration

+Configuration"); ?>
-VM の設定ファイルはその VM ディレクトリ内の nono.cfg です。 -書式は key = value 形式で1行1項目ずつです。 + +nono の設定はいずれも以下の順序で適用されます。 +nono's configurations are always applied in the following order. + +
    +
  1. デフォルト値 Default value +
  2. ~/.nono.cfg があればその内容 +Contents of ~/.nono.cfg if exists +
  3. VM ディレクトリ内の nono.cfg (または -c で指定したファイル) +があればその内容 +Contents of nono.cfg in the VM directory (or the file specified by -c option) if exists +
  4. コマンドラインオプション Command line option +
+ +ファイルの書式はどちらも key = value 形式で1行1項目ずつです。 keyvalue の前後の空白は取り除かれます。 また空行と "#" で始まる行は無視します。 -知らないキーの行も無視します。 -VM configuration file is nono.cfg in the VM directory. -Its syntax is key = value format, one per line. +知らないキーは警告を出した上で無視します。 +同じキーが複数回現れた場合、 +上に列挙した順に後から書いたほうで上書きし、 +同じファイル内でも同様に後に書いたほうで上書きします。 +コマンドラインオプション -V 等はこれをさらに上書きします。 +コマンドラインオプションで同じキーが複数回現れた場合も後に書いたほうが上書きします。 + +The syntax of both files is key = value format, one per line. White spaces before and after key and value are ignored. -And, blank lines, lines beginning with "#", and -lines with unrecognized key are also ignored. - +Blank lines, lines beginning with "#" are also ignored. +The lines with unrecognized key are ignored with a warning. + +If the same key appears more than once, +the latter overwrites the former in the above order. +If the same key appears in a file, +the latter overwrites the former in the same manner. +Then, command line option -V etc. overwrites it. +If the same key appears more than once in the command line option, +do in the same manner. + +

+ +vmtype を除くすべての設定項目はそれぞれデフォルト値を持っています。 +つまり少なくとも vmtype だけは設定ファイルかコマンドラインオプションで指定する必要があります。 +All configuration items except vmtype have default value. +It means, you must specify at least only vmtype +by configuration file or commandline option. +

設定項目は次の通りです。 The configuration items are: @@ -275,33 +473,126 @@ function config_item($name, $desc) } config_item("vmtype = string", <<<_EOM_ -VM 種別を指定します。 -今の所 string に -指定できるのは luna (LUNA-I) だけですが、省略不可です。 -Specifies the VM type. -For now, only luna (LUNA-I) can be specified for -string. +VM 種別を以下のいずれかから指定します。 +省略不可です。 +Specifies the VM type from the following. This field is mandatory. + +
 luna … LUNA-I +
luna88k … LUNA-88K +
x68030 … X68030 (Experimental) +
news … NWS-1750 (Just a joke) +
_EOM_ ); -config_item("debugger-port = integer", <<<_EOM_ -デバッガの TCP 待ち受けポート番号を指定します。 -0 なら待ち受けを行いません。 -デフォルトは 9999 です(適当)。 +config_item("cgrom-image = path", <<<_EOM_ +(X68030 Only) +X68030 の外部 CGROM イメージファイルのパスを指定します。 +CGROM は 768KB です。 +path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。 +path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。 +空にすると nono 内蔵の互換 CGROM を使用します。 +デフォルトは空です。 +Specifies the X68030's external CGROM image file path. +This CGROM is 768KB. +If the path does not have any path delimiters, +the VM directory and then its parent directory will be searched. +If the path is a relative path, +it will be path from the VM directory, not from the current directory. +If the path is empty, nono's builtin compatible CGROM will be used. +The default value is empty. _EOM_ ); -config_item("ethernet-hostdriver = string", <<<_EOM_ -イーサネットデバイスのホスト側ドライバを指定します。 -nonetapbpf が指定できます。 +config_item("clock-sync = value", <<<_EOM_ +仮想マシン内の時刻の同期方法を指定します。 +real なら実時間に同期、virtual なら仮想時間に同期します。 +デフォルトは real です。 +この機能は実験中のため将来予告なく仕様が変更になる可能性があります。 +Specifies how to synchronize the time in virtual machine. +If real, synchronize with the real time; +if virtual, synchronize with the virtual time. +The default is real. +This feature is under experimentation and may be changed in the future +without notice. +_EOM_ +); + +config_item("debugger-driver = string", <<<_EOM_ +デバッガのコンソールドライバを指定します。 +stdiotcpnone が選択可能です。 +stdio は標準入出力を使用します。 +tcp は TCP ポートで TELNET プロトコルで待ち受けます。 none ならホスト側とは一切通信を行いません。 -tapbpf かはホスト OS によってビルド時に決定します。 -NetBSD なら tap です。 +デフォルトは none です。 +Specifies console driver of the debugger. +stdio, tcp, and none can be specified. +stdio uses the standard input/output. +tcp listens on TCP port using TELNET protocol. +none doesn't make any communication with the host. +The default is none. +_EOM_ +); + +config_item("debugger-tcp-port = integer", +<<<_EOM_ +デバッガのコンソールドライバが tcp の時の TCP 待ち受けポート番号を指定します。 +Specifies the TCP port number that debugger console driver listens. +_EOM_ +); + +?>yesno", <<<_EOM_ +(LUNA and NEWS Only) +機種に依存せず DIPSW を自動起動に設定するかどうか指定します。 +"yes" なら自動起動するように、 +"no" なら自動起動しないように DIPSW 設定を上書きします。 +"" (空) なら何もしません。デフォルトは "" です。 +このオプションは luna-dipsw1news-dipsw +の状態が設定ファイルやコマンドラインオプションによって確定した後に +該当のスイッチだけを変更します。 +Specifies whether to configure DIPSW to boot automatically, +regardless of the models. +"yes" overwrites DIPSW, to boot automatically. +"no" overwrites DIPSW, not to boot automatically. +"" (Empty) does nothing. +The default value is "". +This option only changes the appropriate switch(es) +after the luna-dipsw1 or news-dipsw configuration +is determined by the configuration file or command line options. +_EOM_ +); + +config_item("dipsw-serial = yesno", <<<_EOM_ +(LUNA and NEWS Only) +機種に依存せず DIPSW をシリアルコンソールを使うかどうか指定します。 +"yes" ならシリアルコンソールを使うように、 +"no" ならシリアルコンソールを使わないように DIPSW 設定を上書きします。 +"" (空) なら何もしません。デフォルトは "" です。 +luna-dipsw1 もしくは news-dipsw (機種による) +の状態が設定ファイルやコマンドラインオプションによって確定した後に +このオプションによって該当のスイッチだけを変更します。 +NEWS でシリアルコンソールを使わないを選択した場合、 +SW1,2,3 は OFF, OFF, ON にセットされ、 +NWB-512 モノクロコンソール(未実装) が選択されます。 +Specifies whether to configure DIPSW to use serial console, +regardless of the models. +"yes" overwrites DIPSW, to use serial console. +"no" overwrites DIPSW, not to use serial console. +"" (Empty) does nothing. +The default value is "". +This option only changes the appropriate switch(es) +after the luna-dipsw1 or news-dipsw configuration +is determined by the configuration file or command line options. +If you choose not to use serial console on NEWS, +SW1,2,3 will be set OFF, OFF, ON respectively, +and NWB-512 monochrome console (not implemented) will be chosen. _EOM_ ); config_item("ethernet-macaddr = string", <<<_EOM_ +(LUNA and NEWS only) イーサネットデバイスの仮想マシン側の MAC アドレスを指定します。 XX:XX:XX:XX:XX:XX 形式で指定します。 @@ -310,68 +601,491 @@ config_item("ethernet-macaddr = strin _EOM_ ); +config_item("extram-size = integer", <<<_EOM_ + +(X68030 Only) +拡張メモリのサイズを MB 単位で指定します。 +今の所以下だけが指定できます。 +Specifies the extended RAM size in MB. +For now, only the following can be specified. +

+_EOM_ +); + +config_item("fast-mode = integer", <<<_EOM_ + +起動時の動作モードを指定します。0 なら通常モード、1 なら高速モードです。 +デフォルトは 0 です。 +コマンドラインオプション -f でも高速モードへのみ指定可能です。 + +_EOM_ +); + +config_item("fd-drive = integer", <<<_EOM_ +(X68030 Only) +フロッピードライブの数を 0 から 4 で指定します。 +デフォルトは 2 です。 +Specifies the number of floppy drives from 0 to 4. +The default is 2. +_EOM_ +); + +config_item("fdN-image = path", <<<_EOM_ +(X68030 Only) +フロッピードライブ N に起動時に挿入するディスクイメージを指定します。 +イメージパスが相対パスなら VM ディレクトリからの相対パスになります。 +起動後はメニューから操作できます。 +デフォルトは空です。 +Specifies a diskimage to be inserted to floppy drive N at startup. +If the path is relative path, it is from the VM directory. +You can also operate them from menu after startup. +The default is empty. +_EOM_ +); + +config_item("fpu-type = value", <<<_EOM_ +(X68030 Only) +FPU を装着するかどうか指定しています。 +none なら FPU を装着しません。 +68881 なら FPU として 68881 を装着します。 +現状 68882 はサポートしていません。 +また none の代わりに 0、 +68881 の代わりに 1 と書くこともできます。 +デフォルトは 68881 です。 +LUNA-I はたぶん 68881 搭載モデルのみのため設定できません。 +Specifies whether to install FPU or not. +If none, FPU is not installed. +If 68881, 68881 FPU is installed. +68882 is not supported yet. +And, none can also be written as 0, +68881 can also be written as 1. +The default is 68881. +This item cannot be specified on LUNA-I +because (probably) all LUNA-I has 68881. +_EOM_ +); + +config_item("hostcom-driver = string", <<<_EOM_ +シリアルポートのホスト側ドライバを指定します。 +stdiotcpnone が選択可能です。 +stdio は標準入出力を使用します。 +tcp は TCP ポートで TELNET プロトコルで待ち受けます。 +none ならホスト側とは一切通信を行いません。 +デフォルトは none です。 +Specifies the host driver of serial port. +stdio, tcp, and none can be specified. +stdio uses the standard input/output. +tcp listens on TCP port using TELNET protocol. +none doesn't make any communication with the host. +The default is none. +_EOM_ +); + +config_item("hostcom-tcp-port = integer", <<<_EOM_ +ホストドライバが tcp の時の TCP 待ち受けポート番号を指定します。 +Specifies the TCP port number that host driver listens. +_EOM_ +); + +config_item("hostcom-fallback = integer", <<<_EOM_ +hostcom-driver で指定したドライバが使用可能でなかった時、 +0 ならプロセスを終了します。1 なら none を選択して実行を継続します。 +デフォルトは 0 です。 +Specifies the behavior when the driver which is selected by +hostcom-driver is unusable; +terminate the process if 0, +or continue to run using the none driver if 1. +The default is 0. +_EOM_ +); + +config_item("hostkbd-input = string", <<<_EOM_ +(LUNA and X68030 only) +ホストキーボードの入力モードを指定します。 +char ならキャラクタ入力モード、 +jp なら日本語キーボードモードです。 +デフォルトは char です。 +詳細は VM について の章を参照してください。 +Specifies the input mode of the host keyboard. +char means the character mode, +jp means the Japanese keyboard mode. +The defualt is char. +See About VM for details. +_EOM_ +); + +config_item("hostnet-driver = string", <<<_EOM_ +(LUNA and NEWS Only) +イーサネットデバイスのホスト側ドライバを指定します。 +afpacketbpftap のうち +ホスト OS がサポートしているものと autonone が選択可能です。 +afpacket は Linux の AF_PACKET ソケットを使用します。 +bpf は bpf(4) デバイスを使用します。 +tap は tap(4) インタフェースを使用します。 +none ならホスト側とは一切通信を行いません。 +auto ならホスト OS がサポートしているもののうち +tapafpacketbpf を順に試します。 +デフォルトは auto です。 +Specifies the host driver of ethernet device. +afpacket, bpf, and tap can be specified +only if the host OS supports them. +auto and none can always be specified. +afpacket uses Linux's AF_PACKET socket, +bpf uses bpf(4) device, +and tap uses tap(4) interface. +none doesn't make any communication with the host. +If auto is specified, +it tries tap, afpacket, and bpf in that order +(if the host OS supports them). +The default is auto. +_EOM_ +); + +config_item("hostnet-afpacket-ifname = ifname", <<<_EOM_ +(LUNA and NEWS Only) +ホストドライバが afpacket の時にバインドするインタフェースを1つ指定します。 +ifnameauto +なら使用可能なインタフェースを1つ自動的に選択します。 +デフォルトは auto です。 +なお、このホストドライバではローカルホストとの通信は出来ません。 +Specifies an interface name to bind to, when the host driver is afpacket. +If auto is specified as ifname, +it selects an usable interface automatically. +The default is auto. +Note that this host driver cannot communicate with the localhost. +_EOM_ +); + +config_item("hostnet-bpf-ifname = ifname", <<<_EOM_ +(LUNA and NEWS Only) +ホストドライバが bpf の時にバインドするインタフェースを1つ指定します。 +ifnameauto +なら使用可能なインタフェースを1つ自動的に選択します。 +デフォルトは auto です。 +なお、このホストドライバではローカルホストとの通信は出来ません。 +Specifies an interface name to bind to, when the host driver is bpf. +If auto is specified as ifname, +it selects an usable interface automatically. +The default is auto. +Note that this host driver cannot communicate with the localhost. +_EOM_ +); + +config_item("hostnet-tap-devpath = path", <<<_EOM_ +(LUNA and NEWS Only) +ホストドライバが tap の時に使用するデバイスを1つフルパスで指定します。 +デフォルトは auto で、この場合は自動的にデバイスを選択します。 +この時の探し方はホスト OS によって異なります。 +Linux なら /dev/net/tun を指定したのと同じです。 +OpenBSD なら /dev/tap0 から /dev/tap9 まで +順番にオープンできるまで試します。 +NetBSD (と FreeBSD) ならまず /dev/tap でクローニングを試み、 +それが失敗すれば /dev/tap0 から /dev/tap9 までを +順番にオープンできるまで試します。 +いずれの場合も VM ディレクトリかその親ディレクトリに +nono-ifup, nono-ifdown という名前のシェルスクリプトが必要です。 +何もすることがない場合でも正常終了する空のシェルスクリプトを用意してください。 + +Specifies a device pathname, when the host driver is tap. +The default is auto. +The behavior in this case depends on the host OS. +On Linux, it's the same as /dev/net/tun. +On OpenBSD, it will try from /dev/tap0 to /dev/tap9 +until successful. +On NetBSD (and FreeBSD), it will try cloning by /dev/tap first. +If that fails, then try from /dev/tap0 to /dev/tap9 +until successful. +In all cases, you need to prepare two shell script files which names are +nono-ifup and nono-ifdown in the VM directory or +its parent directory. +Even if you don't have anything to do in these scripts, +you need to prepare empty scripts that will terminate successfully. +_EOM_ +); + +config_item("hostnet-fallback = integer", <<<_EOM_ +(LUNA and NEWS Only) +hostnet-driver で指定したドライバが使用可能でなかった時、 +0 ならプロセスを終了します。 +1 なら none を選択して実行を継続します。 +デフォルトは 0 です。 +Specifies the behavior when the driver which is selected by +hostnet-driver is unusable; +terminate the process if 0, +or continue to run using the none driver if 1. +The default is 0. +_EOM_ +); + +config_item("iplrom1-image = path", <<<_EOM_ +(X68030 Only) +X68030 の外部 IPLROM イメージファイルのパスを指定します。 +こちらは 0xfe0000..0xffffff の 128KB の部分で、IPLROM30 と呼ばれているほうです。 +path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。 +path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。 +空にすると無償配布されている IPLROM30 を使用します。 +デフォルトは空です。 +Specifies the X68030's external IPLROM image file path. +This one contains 128KB at 0xfe0000..0xffffff and is known as IPLROM30. +If the path does not have any path delimiters, +the VM directory and then its parent directory will be searched. +If the path is a relative path, +it will be path from the VM directory, not from the current directory. +If the path is empty, the public released IPLROM30 will be used. +The default value is empty. +_EOM_ +); + +config_item("iplrom2-image = path", <<<_EOM_ +(X68030 Only) +X68030 の外部 IPLROM イメージファイルのパスを指定します。 +こちらは 0xfc0000..0xfdffff の 128KB の部分で、ROM30 と呼ばれているほうです。 +path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。 +path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。 +空にすると内蔵 ROM を使用します。 +内蔵 ROM は NetBSD/x68k が起動する程度の SCSI IOCS のみサポートしています。 +デフォルトは空です。 +Specifies the X68030's external IPLROM image file path. +This one contains 128KB at 0xfc0000..0xfdffff and is known as ROM30. +If the path does not have any path delimiters, +the VM directory and then its parent directory will be searched. +If the path is a relative path, +it will be path from the VM directory, not from the current directory. +If the path is empty, internal emulated ROM will be used. +The ROM supports only enough SCSI IOCS to boot NetBSD/x68k. +The default value is empty. +_EOM_ +); + +config_item("keyboard-connect = integer", <<<_EOM_ +(LUNA and X68030 Only) +起動時にキーボードを本体に接続するかどうかを指定します。 +1 なら接続し、0 なら接続しません。デフォルトは 1 です。 +起動後はメニューから変更可能です。 +Specifies whether to connect keyboard on boot. +If 1, it is connected; if 0, it isn't connected. The default is 1. +You can change it on GUI menu after boot. +_EOM_ +); + +config_item("luna-adjust-misused-epoch = integer", <<<_EOM_ +(LUNA Only) +LUNA で誤った RTC epoch を採用している OS 向けに RTC +エミュレーションを補正するかどうかを +指定します。0 なら補正をしません(実機と同じ動作)、 +1 なら補正します(現実世界と同じ動作)。 +デフォルトは 1 で、通常 1 のままで使用して問題ありません。 + +Specifies whether nono corrects RTC emulation for OSes +that adopts wrong RTC epoch on LUNA. +0 means making no correction +(this is the same behavior as the actual machine). +1 means making correction +(this is the same behavior as the real world). +The default is 1. Normally, leave it 1. +

+LUNA で採用している RTC (MK48T02) は2桁で保持している年の値が +4 で割り切れる年をうるう年とする仕様です。 +ところが NetBSD/luna68k、OpenBSD/luna88k などはこの +RTC の年の値を 1970年からの経過年として使用しています。 +例えば1970年はうるう年ではないため 2月28日の翌日は 3月1日ですが、 +MK48T02 的には 00年であるためうるう年と認識し 2月28日の翌日が2月29日になります。 +このように、これらの OS を使っている場合実機の +RTC は4年のうち約2年間、1日ずれた日付を指しているようです。 +しかしながら、RTC の時刻は OS 起動時に一度読んだ後は基本的に参照しない上、 +今時必要なら NTP で時間を合わせるため、 +実機でも問題が顕在化することはまずないと思います。 +nono の場合は実機と異なり、アプリケーション実行中しか RTC が進まないため、 +補正がない場合の動作が問題になるのは +nono を起動したまま偶数年の2月末日から日付をまたいで、 +かつ nono を起動したまま OS を再起動して NTP などで時刻修正を行わなかった時 +だけだと思います。 +このオプションはほぼ開発者向けの動作確認用です。 +_EOM_ +); + config_item("luna-dipsw1 = string", <<<_EOM_ +(LUNA Only) 本体前面 DIPSW#1-1..#1-8 の内容を指定します。 "0" を DOWN、"1" を UP として、 これを8つ並べた形式で、前から順に #1..#8 に対応します。 -デフォルトは 11110111 です。 -Specifies status of the front panel DIPSW#1-1..#1-8. +Specifies status of the front panel DIPSW#1-1..#1-8 using 8 digits. "0" means DOWN and "1" means UP. The first character corresponds to #1 and -the eighth character corresponds to #8. -The default value is 11110111. +the eighth character corresponds to #8. +

+LUNA-I でのデフォルトは 11110111 です。 +各スイッチの内容は以下のリンクを参照してください。 +On LUNA-I, the default value is 11110111. +See the following link about DIPSW.
+→ NetBSD/luna68k: Information
-各スイッチの内容はここ -(NetBSD/luna68k: Information) を参照してください。 -See NetBSD/luna68k: Information about DIPSW. +LUNA-88K でのデフォルトは 11111111 です。 +各スイッチの内容は以下のリンクを参照してください。 +On LUNA-88K, the default value is 11111111. +See the following link about DIPSW.
+→ OpenBSD manual pages: boot_luna88k(8) +

+自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は +こちらではなく +dipsw-autoboot、dipsw-serial +設定を使うほうが便利です。 +If you only want to specify whether to autoboot and/or +to use serial console, +dipsw-autoboot, dipsw-serial +configurations are useful. _EOM_ ); config_item("luna-dipsw2 = string", <<<_EOM_ +(LUNA Only) 本体前面 DIPSW#2-1..#2-8 の内容を指定します。 書式は luna-dipsw1 と同じです。 デフォルトは 11111111 です。 Specifies status of the front panel DIPSW#2-1..#2-8. The same syntax as luna-dipsw1 is used. The default value is 11111111. -
-すべて "1"(UP) なら -NetBSD/luna68k のブートローダは自動的にカーネルをロードして実行し、 -どれかでも "0"(DOWN) にするとプロンプトで停止するようです。 +

+NetBSD/luna68k のブートローダは、 +DIPSW#2 が "11111111" なら自動的にカーネルをロードして実行し、 +どれかでも "0" にするとプロンプトで停止するようです。 (本当は #8 だけで制御するつもりだったんじゃないかという気がします) -If the value is 11111111, -NetBSD/luna68k bootloader will automatically load and execute the kernel. +NetBSD/luna68k bootloader will automatically load and execute the kernel, +if the DIPSW#2 is "11111111". Otherwise, the bootloader will enter interactive mode. (I doubt that they actually wanted to switch with only #8) + +_EOM_ +); + +config_item("luna-video-plane = integer", <<<_EOM_ +(LUNA Only) +LUNA のビデオボードのプレーン数を 1、4、8 から指定します。 +1 ならモノクロビデオボード、 +4 なら16色 (4bpp) ビデオボード、 +8 なら 256色 (8bpp) ビデオボードです。 +デフォルトは 4 です。 +Specifies number of planes on LUNA video board. +The valid values are 1, 4 or 8. +1 means a monochrome video board, +4 means 16-color (4bpp) video board, +8 means 256-color (8bpp) video board. +The default value is 4. +_EOM_ +); + +config_item("mainview-scale = double", <<<_EOM_ + +メインウィンドウの起動時のスケールを実数で指定します。 +コマンドラインオプション -s で上書き可能です。 +起動後はメニューから、 +プリセットされた倍率とここで指定した倍率には変更可能です。 +デフォルトは 1.0 です。 +_EOM_ +); + +config_item("monitor-fontsize = integer", +<<<_EOM_ + +テキスト系モニタとステータスパネルのフォントサイズを +12, 16, 24 から指定します。 +コマンドラインオプション --fontsize で上書き可能です。 +起動後はメニューから変更することができます。 +デフォルトは 12 です。 - +_EOM_ +); + +config_item("monitor-rate = integer", <<<_EOM_ +テキスト系モニタウィンドウの更新頻度を Hz 単位で指定します。 +1 から 60 までの間で指定でき、デフォルトは 20Hz です。 +起動後にメニューから、プリセットされた頻度 +とここで指定した頻度には変更可能です。 +Specifies refresh rate of all text monitor windows in Hz. +It ranges from 1 to 60. The default is 20Hz. +You can choose this value on GUI menu after boot, +from preset rate or rate specified here. _EOM_ ); config_item("mpu-clock = value", <<<_EOM_ MPU のクロック数を MHz 単位で指定します。 -デフォルトは 20MHz です。 -Specifies the MPU clock in MHz. The default value is 20MHz. +デフォルトは LUNA-I なら 20MHz、LUNA-88K と X68030 なら 25MHz です。 +Specifies the MPU clock in MHz. +The default value is 20MHz on LUNA-I, or 25MHz on LUNA-88K and X68030. +_EOM_ +); + +config_item("mpu-pseudo-stop = integer", <<<_EOM_ +(LUNA-88K Only) +m88100 にて疑似 STOP 状態を有効にするかどうかを指定します。 +0 なら無効(実機と同じ動作)、1 なら有効で、デフォルトは 1 です。 +m88100 には、m68k の STOP 命令 (割り込みが上がるまで何もせず待つ) +に相当する命令がなく、 +大抵ビジーウェイトループで割り込みが上がるのを待つことになります。 +これは実機では (消費電力を減らす手段がないという些細な問題以外には) +何のデメリットもないのですが、 +エミュレータで特に高速動作させている時には割り込みが上がるまで +(例えば人間がキーを入力するまで) ホスト CPU パワーを使い潰してビジーウェイトループを実行し続けることになり、ホスト CPU があっつあつになります。 +それを防ぐための機能です。 +特徴的な命令列を検出して実現しているので、すべての状況で動作するわけではありません。 _EOM_ ); -/* luna には不要 - config_item("mpu-has-fpu", ""); */ +config_item("news-dipsw = string", <<<_EOM_ +(NEWS Only) +DIPSW の内容を指定します。 +"0" を OFF、"1" を ON として、 +これを8つ並べた形式で、前から順に SW1..SW8 に対応します。 +デフォルトは 00001000 です。 +Specifies status of the DIPSW using 8 digits. +"0" means OFF and "1" is ON. +The first character corresponds to SW1 and +the eighth character corresponds to SW8. +The default valus is 00001000. +

+各スイッチの内容は以下のリンクを参照してください。 +See the following link about DIPSW.
+→ NetBSD/news68k Frequently Asked Questions +

+自動起動するかどうかとシリアルコンソールを使うかどうかを指定したい場合は +こちらではなく +dipsw-autoboot、dipsw-serial +設定を使うほうが便利です。 +If you only want to specify whether to autoboot and/or +to use serial console, +dipsw-autoboot, dipsw-serial +configurations are useful. +_EOM_ +); config_item("prom-image = path", <<<_EOM_ -外部 ROM イメージファイルのパスを指定します。 +(LUNA Only) +LUNA-I/LUNA-88K の外部 ROM イメージファイルのパスを指定します。 path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。 path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。 空にすると内蔵 ROM を使用します。 デフォルトは空です。 -Specifies the external ROM image file path. +Specifies the LUNA-I/LUNA-88K's external ROM image file path. If the path does not have any path delimiters, the VM directory and then its parent directory will be searched. If the path is a relative path, -it will be path from the VM directory, not from the current -directory. +it will be path from the VM directory, not from the current directory. If the path is empty, internal emulated ROM will be used. The default value is empty.

@@ -381,220 +1095,1299 @@ nono 内蔵のなんちゃって下位 you can boot with nono's internal downward compatible emulated ROM if you set this field empty (or leave it as the default).

-実機を持っている場合は ROM ファイルを指定することで実機 ROM で起動できます。 +LUNA-I 実機を持っている場合は +ROM ファイルを指定することで実機 ROM で起動できます。 ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を保存したものです。 -If you have the real LUNA machines, +今のところ ROM は V4.22 (Thu Jul 27 11:45:42 1989) のみサポートしています。 +それ以外については何も分かりません。 +If you have the real LUNA-I machine, you can boot with the real ROM spcifying the ROM file path. -The ROM file is extracted from 0x41000000-0x4101ffff (128KB) from -the real machine. +The ROM file is extracted from 0x41000000-0x4101ffff (128KB) of +the real LUNA-I machine. +For now, only V4.22 (Thu Jul 27 11:45:42 1989) is supported. +I have no idea about other ROMs. +

+LUNA-88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。 +今のところ ROM は version 1.20 のみサポートしています。 + +For LUNA-88K, +the ROM file is extracted from 0x41000000-0x4103ffff (256KB). +For now, only version 1.20 is supported. _EOM_ ); -config_item("ram-size = value", <<<_EOM_ -搭載する RAM サイズを MB 単位で指定します。 -デフォルトは 16MB です。 -Specifies the RAM size in MB. The default is 16MB. +config_item("ram-size = integer", <<<_EOM_ +搭載する RAM サイズを MB 単位で指定します。Specifies the RAM size in MB. +

_EOM_ ); -config_item("spc0-idN-image = devtype,path", <<<_EOM_ -SCSI デバイスを指定します。N には 0 から 7 が入ります。 -ID 7 は本体が使用しますので指定しないでください。 -値はデバイス種別 devtype とイメージパス path -を ","(カンマ) で区切って並べた形式で、 -今の所デバイス種別 devtype には "hd"(ハードディスク) のみ指定可能です。 -ディスクイメージパスが相対パスなら VM ディレクトリからの相対パスになります。 +config_item("rtc-epoch-year = integer", <<<_EOM_ +(LUNA Only) +RTC (MK48T02) の基準年を指定します。 +デフォルトは 1970年です。 +NetBSD/luna68k、OpenBSD/luna88k はいずれも基準年を 1970年としていますので、 +デフォルトのままで構いません。 +ゲスト OS に 4.4BSD を使用する際は 1900 を指定します。 +NEWS では今の所 1900 固定で変更出来ません。 +Specifies the RTC (MK48T02) epoch year. +The default is 1970. +Since both NetBSD/luna68k and OpenBSD/luna88k use 1970 as epoch year, +there is no need to touch this value. +If you boot 4.4BSD on LUNA-I as the guest OS, specify 1900. +On NEWS, it is fixed at 1900. +_EOM_ +); + +config_item("show-statuspanel = integer", <<<_EOM_ +ステータスパネルを表示するかどうかを指定します。 +0 なら非表示、1 なら表示です。 +デフォルトは 1(表示) です。 +起動後はメニューから変更可能です。 +Specifies whether to display the status panel or not. +If 0, it is hidden; if 1, it is shown. +The default is 1 (show). +You can change it on GUI menu after boot. +_EOM_ +); + +config_item("spc0-idN-image = devtype[,path]", <<<_EOM_ +(LUNA and X68030 Only) +SCSI デバイスとイメージを指定します。キーの N には 0 から 7 が入ります。 +ただし ID 7 は本体が使用しますので指定しないでください。 +値はデバイス種別 devtype とディスクイメージパス path +を ","(カンマ) で区切って並べた形式です。 +デバイス種別 devtype は以下のいずれかです。 -Specifies SCSI device. N is 0 to 7. +Specifies SCSI device and image. N in the key is 0 to 7. But don't specify ID 7 because the host uses it. The value is in a form of device type devtype and -the image path path separated by ","(comma). -For now, only "hd" (hard disk) can be specified for devtype. -If the path is relative path, it is from the VM directory. - +the disk image path path separated by ","(comma). +devtype can be one of the following: +

-例えば、nono.cfg と同じディレクトリに置いたディスクイメージ luna.img -を使う場合、 -LUNA では通常 ID 6 をプライマリ HDD に割り当てるのでこんな感じになります。 -For example, if you use disk image luna.img placed in the same -directory as nono.cfg, -since LUNA usually assigns ID 6 to the primary HDD, +devtypehd なら path は省略できません。 +devtypecdmo なら path は省略可能です。 +イメージパスが相対パスなら VM ディレクトリからの相対パスになります。 + +If devtype is hd, path cannot be ommitted. +If devtype is cd or mo, path can be ommitted. +If the path is relative path, it is from the VM directory. + +

+例えば、nono.cfg と同じディレクトリに置いた sd0.img を +起動 HDD ディスクイメージとして使い +(LUNA では通常 ID 6 をプライマリ HDD に割り当てます)、 +ID 5 に同じディレクトリの install.iso をセットした CD ドライブを、 +ID 4 に起動時メディアなしの MO ドライブを接続する場合は次のようになります。 +For example, if you use a harddisk image sd0.img placed in the same +directory as nono.cfg +(LUNA usually assigns ID 6 to the primary HDD), +ID 5 for CD-ROM drive that loads install.iso in the same directory, +and ID 4 for MO drive without media on boot, write as following:

-spc0-id6-image = hd,luna.img
+spc0-id6-image = hd,sd0.img
+spc0-id5-image = cd,install.iso
+spc0-id4-image = mo
 
_EOM_ ); -config_item("spc0-idN-writeprotect = integer", <<<_EOM_ -指定の SCSI デバイスへの書き込みを無視するかどうか指定します。 +config_item("spc0-idN-seektime = integer", <<<_EOM_ +(LUNA and X68030 Only) +指定の SCSI HDD の平均シークタイムを msec 単位で指定します。 +現在のデフォルトは 0 です (S・S・D!! S・S・D!!)。 +16 程度を指定すると幾分往時に思いを馳せることが出来るかもしれませんが、 +今の所あまり安定していません。 +Specifies the average seek time of specified SCSI HDD in msec. +Currently, the default value is 0 +(This may be something like SSD :-). +If you specify about 16 or so, you can feel nostalgic, +but this feature is still unstable. +_EOM_ +); + +config_item("spc0-idN-writeignore = integer", <<<_EOM_ +(LUNA and X68030 Only) +指定の SCSI HD デバイスへの書き込みをイメージに書き戻すかどうか指定します。 0 なら通常動作(書き込みを行う)です。 -1 なら書き込みコマンドは成功したように振る舞いますが実際には -ディスクイメージに一切書き戻しません。 +1 ならディスクイメージに一切書き戻しません。 +デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、 +VM ディレクトリ内の一時ファイルに書き込みます。 +この一時ファイルはアプリケーション終了時に削除します。 fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。 何が起きるか意味が分からない人は指定しないでください。 デフォルトは 0 です。 -Specifies whether nono ignores writing to SCSI devices. -0 means normal operation (writes to the devices). -If 1 is specified, -nono will not actually write back to the disk image -even though the write command is succeeded. -nono's SCSI devices acts as -write command is successfully done but it never writes back -to the actual disk image. +Specifies whether nono writes a writing to SCSI HD devices back +to the diskimage. +0 means normal operation (writes to the diskimage). +1 means that nono will not write to the diskimage back. +Data that the guest wrote to the device will be written to a temporary file +in the VM directory, +like Copy-On-Write. +The temporary file will be removed when the application exits. This is useful for kernel debugging because it does not require fsck -after the kernel hangs. -But don't use this flag if you don't understand this paragraph. -The default value is 0. - +after the kernel hangs or reboots. +Don't use this flag if you don't understand this paragraph. +The default value is 0. +

+ちなみに、メディアを書き込み禁止にしたい場合はこれではなく、 +イメージファイルの書き込み権を落としてください。 +By the way, if you want to make the media write-protected, +clear the write permission from the image file +(instead of this setting). +_EOM_ +); + +config_item("spc0-idN-writeprotect = integer", <<<_EOM_ +(LUNA and X68030 Only) +古いオプションです。 +代わりに spc0-idN-writeignore を使ってください。 +このオプションは開発用です。 +Obsolete. +Use spc0-idN-writeignore instead. +This option is for developers. _EOM_ ); +config_item("sram-sync-ramsize = integer", <<<_EOM_ +(X68030 Only) +SRAM の RAM 容量欄を実際の RAM サイズに合わせるかどうかを指定します。 +0 なら何もしません (実機と同じ)。 +1 なら、アプリケーション起動時に +SRAM の \$ed0008.L (RAM 容量) を ram-size の設定値で更新します。 +この更新は、 +アプリケーション起動時に SRAM マジックが正しく書かれている場合のみ行われます。 +デフォルトは 1 です。 +Specifies whether to synchronize a RAM size field in SRAM +with real RAM size or not. +If 0, the application will do nothing (as same as the real). +If 1, the application updates(synchronizes) +\$ed0008.L (RAM size) in SRAM with configuration value of ram-size. +This update is performed once only if +the SRAM magic string is correct at the application startup. +The default is 1. +_EOM_ +); + +config_item("xxx-news-sic-ignore = integer", +<<<_EOM_ +(NEWS Only) +未実装の SCSI コントローラおよび DMA +コントローラ領域へのアクセスを無視するか指定します。 +現状 (2022/08)、NetBSD/m68k はこの領域へのバスエラーを処理できず、 +uvm_fault のパニックを起こしてしまいます。 +1 にするととりあえず si(4) へのアクセスが不調に終わって +(他に問題がなければ) NetBSD/news68k が起動できます。 +デフォルトは 0 です。 +このオプションは暫定的なもので将来廃止される予定です。 + +Specifies whether to ignore accesses to unimplemented +SCSI controller and DMA controller areas. +As of Aug. 2022, NetBSD/m68k can not handle bus errors to this area, +and it happens uvm_fault panic. +Specifying 1 avoids it and NetBSD/news68k can boot. +The default value is 0. +This option is temporary and will be discontinued in the future. +_EOM_ +); ?>

+ + +About VM"); ?> -

実行してみる Try it

+Implementation Status"); ?>
-つついさんが NetBSD/luna68k 9.0 の liveimage を用意してくださっています -(いつもありがとうございます)。 -Tsutsui-san has provided NetBSD/luna68k 9.0 liveimage for this -(Thanks as always). + +
: ほぼ実装済み Mostly implemented +
: 困らない程度には実装済み Works +
: とりあえず動いてる程度 Works somehow +
× : 未実装 Not implemented +
: 実装予定なし Not planned +
+ + +Cache not implemented +FPU (68881) ◎ +BT454 ◎ +CRTC2 ○ 標準で使用する値のみサポート +Frame buffer ◎ +Keyboard/Mouse ◎ +SIO (uPD7201) ◎ +PIO (8255) ○ +Ethernet (AM7990) ◎ LARF を除く Except LARF +NVRAM&RTC (MK48T02) ◎ +Front LCD ◎ +SPC (MB89352) ◎ +SCSI HD/CD/MO Devices ○ +XP(HD647180) CPU +XP(HD647180) Timer0/1 +XP(HD647180) その他の内蔵デバイス
Other internal devices
× +XP 周辺デバイス Peripheral devices× +電源 Power Circuit ○ + +LUNA-88K specific +MPU (88100 part) ○ マルチプロセッサ未実装、バグも未実装? MP (and bugs?) not implemented +MPU (88200 part) ◎ +MPU (88110) — 実装予定なし Not planned +FUSEROM ○ + +X68030 +MPU (68030) ○ キャッシュ未実装、ファンクションコード未実装 Cache and FC not implemented +MPU (68EC030) — 実装予定なし Not planned +FPU (68881) ◎ 68882 は未実装 68882 not implemented +DMAC ○ +CRTC/VC △ 768x512 のテキスト画面のみサポート Only 768x512 text screen supported +FDC/FDD ○ +標準・拡張エリアセット Areaset × +ADPCM/OPM × +グラフィック機能全般 All other graphics × 当面予定なし Not scheduled +Keyboard ◎ TVコントロールを除く Except TV Control +Mouse ◎ 本体接続のみ +MFP △ +PPI (8255) △ +Printer × +RTC ◎ アラームを除く Except Alarm +SPC (MB89352) ◎ +SCSI HD/CD/MO Devices ○ +SCC (Z8530) ◎ +SRAM ◎ +システムポートSystem port △ +テキスト画面Text screen ○ +電源 Power curcuit ○ +Nereid Ethernet × +Nereid Bank memory × +Nereid USB — 実装予定なし Not planned +拡張メモリ Extended memory + +NWS-1750 +MPU (68030) ○ キャッシュ未実装 Cache not implemented +FPU (68881) ◎ 68882 は未実装 68882 not implemented +PROM × +SCC (Z8530) ◎ チャンネル A のみホストに接続 Only channel A is connected to the host +Ethernet (AM7990) ◎ LARF を除く Except LARF +NVRAM&RTC (MK48T02) ◎ +Video Board × +Keyboard/Mouse × +SCSI Controller × +IDROM, DIP-SW, 100Hz Timer, 診断用LED ○ +AST, Lv2Intr × +電源 Power Circuit × + +__EOM__; + $table_lines = preg_split("/\n/", $table); + foreach ($table_lines as $line) { + if ($line == "") { + continue; + } else if (preg_match("/\t/", $line) == false) { + // table title + print "
{$br}{$line}\n"; + $br = ""; + } else { + list ($h, $m, $d) = preg_split("/\t+/", $line, 3); + print "
{$h}\n"; + print " {$m}\n"; + print " {$d}\n"; + } + } +?> +
+
+ + + +
+68030 はキャッシュが未実装です。 +これに伴い命令の所要クロック数もまだ正しくなく、 +そのためクロック測定などでは正確な値が出ません。 +また ATC (アドレス変換キャッシュ) は実際の仕様とは異なり高速化してあります。 +68030 cache is not implemented. +Therefore, number of clock cycle is not correct. +ATC (Address Translation Cache) is differ from and faster than the real 68030. +
+ + + +
+LUNA-I、LUNA-88K で PROM の外部イメージを指定しない場合 +(prom-image が空の場合)、 +内蔵の独自 ROM が動作し、コンソールモニタが起動します。 +このコンソールモニタの動作は実機のそれとよく似ていますが、 +これは実機確認の際に操作方法が違いすぎると(自分が)困るため仕方なく似せているもので、 +忠実なコピーを作る目的ではありません。 +
+ + + +
+X68030 で ROM30 の外部イメージを指定しない場合 +(iplrom2-image が空の場合)、内蔵の独自 ROM が組み込まれます。 +本来の ROM30 には SCSIIOCS の他に ROM デバッガなどが含まれていますが、 +内蔵 ROM はこのうち SCSIIOCS を NetBSD/x68k が起動するのに十分なだけしか +実装していません。 +Human68k を起動する場合はお手元の実機から ROM イメージを作成してください。 +
+ + + +
+NEWS エミュレーションは未完成です。 +今の所 -X でカーネルを直接起動することしか出来ません。 +
+ + +Status Panel"); ?> +
+ステータスパネル中央にあるパフォーマンスメータのアイコンは +高速モードの状態を表示しています。 +ダブルクリックすると高速/等速モードの指定を切り替えることができます。 +The performance meter's icon at the center of the status panel +shows the VM speed status. +You can switch full speed / syncronized mode by double-clicking +on this icon. + +
+ +… + +マークなしの場合、ユーザが等速モードを指定していて、等速モードで実行中です。 +When no icons are displayed, +the user has specified syncronized mode and +the VM is running in synchronized mode. +
+ +… + +三角3つの場合、ユーザが高速モードを指定していて、高速モードで実行中です。 +高速モード中はパーセントではなく何倍速で動作しているかを表します。 +When an icon (three triangles) is displayed, +the user has specified full speed mode and +the VM is running in full speed mode. +
+ +… + +三角2つの場合、ユーザが高速モードを指定していて、等速モードで実行中です。 +以下のいずれかの状態で起きます。 +When an icon (two triangles) is displayed, +the user has specified full speed mode and +the VM is running in synchronized mode. +This will happen when any of the following occurs: +
    +
  • キー押下中(後述)あるいはキーボードブザー発声中 +When any keys are pressed (see below), +or the keyboard buzzer is sounding. +
  • STOP instruction on m68k. +
  • pseudo STOP state on m88k. +
+
+
+ + + +
+DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。 +またここでの設定は即 VM に反映されますが、 +LUNA の場合 DIPSW の状態を +PIO(8255) がラッチするのが概ね起動時および再起動時のみとなっています +(厳密には PROM と XP が云々ですが)。 +
+ +Memory Dump Monitor"); ?> +
+メモリダンプモニタの出力形式を、バイト、ワード、ロングワード +(m88k ではそれぞれバイト、ハーフワード、ワードと表現します) +から選択できます。 +また 68030/88200 の MMU ディスクリプタとして表示させることもできます +(この位置が正しいディスクリプタかどうかは関係なく表示します)。 +逆アセンブルも、逆アセンブルウィンドウからこちらにマージしました。 +LUNA-I なら m68k、HD64180 の逆アセンブルが、 +LUNA-88K なら m88k、HD64180 の逆アセンブルが、 +X68030 と NEWS なら m68k の逆アセンブルが選択できます。 +On memory dump monitor, +you can choose the output format from byte, word and longword +(In m88k, it is represented as byte, halfword and word respectively). +Also you can choose 68030/88200 MMU descriptor format +(It displays regardless of whether this address is used as descriptor or not). +Disassemble is now merged from disassemble monitor. +On LUNA-I, you can choose m68k and HD64180 disassemble. +On LUNA-88K, you can choose m88k and HD64180 disassemble. +On X68030 and NEWS, you can choose m68k disassemble. +

+表示されているダンプ値をダブルクリックすることでメモリの値を編集できます。 +編集できるのはメモリと以下の部分のみです。 +You can edit the memory value by double click. +Only memory and the following areas are ediable. +

+
+ +Key input mode"); ?> +
+LUNA も X68030 もキーボードは通常日本語キーボードです +(LUNA には英語キーボードも存在するようですが…)。 +そのため、ホストが日本語キーボードの場合とそうでない場合のために +2つの入力モードを用意しています。 +どちらも一長一短があります。 +LUNA and X68030 has the Japanese keyboard +(though I ever heard there are US keyboard for LUNA...). +So nono provides two input modes +for Japanese keyboard users and non Japanese keyboard users. +Both have advantages and disadvantages. +

+JP キーボードモードは、ホストが日本語キーボードであることを前提に +対応するキーの押下、開放をその都度 VM に入力します。 +メリットとしては動作が実機に近くなり、 +特にキーリピート(をハードウェアが行わないこと)も忠実に再現可能です。 +デメリットは ALT + TAB やアクセラレータキーでメニューを開く場合などに +キー入力が残ることがあることです +(キーを押した後でフォーカスが外れるとキーを離したことが +アプリケーションに通知されないため)。 +またホストが日本語キーボードでなければ使いづらいです。 +JP keyboard mode assumes that the host uses the Japanese keyboard. +Each time you presses and releases a key, +nono sends the corresponding key-pressed or key-released to the VM. +One advantage is that it's close to the real machine behavior, +and another is that it can reproduce +the LUNA keyboard itself does not perform a key repeat. +On the other hand, +one disadvantage is that key sometimes remains pressed, +especially when you enter ALT + TAB to switch the application +or enter accelerator key to open the menu +(If the application loses the focus after the key is pressed, +the application will not receive the subsequent key release). +And another disadvantage is that +it will be hard to use for non Japenese keyboard users. +

+一方、キャラクタ入力モードは、ホストから入力された「文字」を +再び LUNA/X68030 のキーコードに解釈し直して VM に入力するモードです。 +例えばゲスト OS に "@" を入力したい場合、 +US キーボードなら [SHIFT] + [2] を、 +JP キーボードなら [@] キーを押しますが、 +どちらも VM には [@] キーの押下、[@] キーの開放が連続して送られます。 +US キーボードで [SHIFT] を押したことは通知されません。 +逆に "=" を入力したい場合、 +US キーボードなら [=] キーを、 +JP キーボードなら [SHIFT] + [-] を押しますが、 +どちらも VM には +[SHIFT]押下 → [-]押下 → [-]開放 → [SHIFT]開放のシーケンスが送られます。 +このようにホストキーボードのレイアウトによらず、 +入力したい文字が入力できるようになり、 +通常のタイピングで困ることはないと思います。 +デメリットは、通常の文字入力以外のタイピングはほぼ出来ないことです。 +[SHIFT] キーを押したままにすることや、 +文字が入力できないキーの組み合わせは入力出来ません。 +もう一つのデメリットはキーリピート(をハードウェアが行わないこと)が再現できず、 +ホスト側のキーリピートが効いてしまうことです +(本来キーリピートが動作しない ROM やブートローダでもキーリピートが効くことは +一般ユーザからはメリットに感じられるかも知れませんが)。 +In contrast, in the character mode, when you type a character, +nono re-converts it into the LUNA/X68030's key code and sends it to the VM. +For example if you want to type "@" in the guest OS, +you would press [SHIFT] + [2] on the US keyboard or [@] on the JP keyboard. +In both cases, the sequence of +[@]-pressed and [@]-released will be sent to the VM. +Note that the fact that you pressed [SHIFT] key on the US keyboard +will not be sent to the VM. +Another example, if you want to type "=", +you would press [=] on the US keyboard or [SHIFT] + [-] on the JP keyboard. +In both cases, the sequence of +[SHIFT]-pressed, [-]-pressed, [-]-released, and [SHIFT]-released +will be sent to the VM. +Thus, you can type what character you want to type, +regardless of your keyboard layout. +Of course there are some disadvantages. +Firstly, it's hard to type any special characters, +for example, you can not type any key conbinations +that don't generate a character. +Or you can not hold [SHIFT] key pressed. +Secondly, the key repeat works (by the host), +even though it should not work as a correct emulation +(Although some of you may feel it an advantage). +

+ + +Keycode table in the character mode"); ?> +
+キャラクタ入力モードでの、ホストから入力した文字と +VM に送信されるキーの対応は次の通りです。 +ファンクションキーとカーソルキーは文字ではありませんが +特別に対応しています。 +ここに記載のないゲストキーはソフトウェアキーボードからのみ入力できます。 +The following table shows the correspondence between +the character that typed from the host +and the key that will be sent to the VM. +nono can recognize the function keys and arrow keys. +The keys that not listed in this table can +only be typed from the software keyboard window. +

+

+ +a 〜 z [A] 〜 [Z] + 09 [0] 〜 [9] + SPACE [SPACE] + - [-] + ^ [^] + \ [\] + @ [@] + [ [[] + ; [;] + : [:] + ] []] + , [,] + . [.] + / [/] + + AZ [SHIFT]+[A] 〜 [SHIFT]+[Z] + ! [SHIFT]+[1] + " [SHIFT]+[2] + # [SHIFT]+[3] + $ [SHIFT]+[4] + % [SHIFT]+[5] + & [SHIFT]+[6] + ' [SHIFT]+[7] + ( [SHIFT]+[8] + ) [SHIFT]+[9] + = [SHIFT]+[-] + ~ [SHIFT]+[^] + | [SHIFT]+[\] + ` [SHIFT]+[@] + { [SHIFT]+[[] + + [SHIFT]+[;] + * [SHIFT]+[:] + ] [SHIFT]+[]] + < [SHIFT]+[,] + > [SHIFT]+[.] + ? [SHIFT]+[/] + _ [SHIFT]+[_] + + F1 〜 F10 [PF1] 〜 [PF10] + F11 [PF10] + ↑ [↑] + ← [←] + → [→] + ↓ [↓] + ^@ [CTRL]+[@] + ^A^Z [CTRL]+[A] 〜 [CTRL]+[Z] + ^[ [ESC] + ^\ [CTRL]+[\] + ^] [CTRL]+[]] + ^^ [CTRL]+[^] + ^_ [CTRL]+[_] + ^H [BS] + ^I [TAB] + ^M [Enter] +__EOM__; + $table = array(); + $table[0] = array(); + $table[1] = array(); + $table[2] = array(); + $i = 0; + foreach (split("\n", $str) as $s) { + if ($s == "") { + $i++; + continue; + } + $s = preg_replace("/^\t+/", "", $s); + list ($hkey, $gkey) = preg_split("/\t+/", $s); + $table[$i][] = array($hkey, $gkey); + } + + for ($j = 0; $j < count($table); $j++) { + switch ($j) { + case 0: $classname = "left"; break; + default: $classname = "middle"; break; + case 3: $classname = "right"; break; + } + print "\n"; + print ""; + print ""; + print "
HostChar"; + print "GuestKey\n"; + for ($i = 0; $i < count($table[$j]); $i++) { + list ($h, $g) = $table[$j][$i]; + print "
{$h}"; + print "${g}\n"; + } + print "
\n"; + } +?> +
+
+ + +Keycode table in the JP keyboard mode"); ?> +
+JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。 +ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。 +The following table shows the correspondence between +the host key and the guest key. +The keys that not listed in this table can only be enter from +the software keyboard window. +

+

+\n"; + print ""; + print "HostKey"; + print "GuestKey\n"; + for ($i = 0; $i < count($table[$j]); $i++) { + list ($h, $g) = $table[$j][$i]; + print ""; + print "{$h}"; + print "${g}\n"; + } + print "\n"; + } +?> +
+
+ + +Key Repeat"); ?> +
+LUNA では、キーボードがハードウェア側でキーリピートを行わず、 +ソフトウェア(OS など)がキーリピートの処理を行います。 +そのため、キーリピートを実装していない LUNA の PROM や +NetBSD/luna68k のブートローダではキーリピートは起きず、 +キーリピートを実装している NetBSD/luna68k カーネルではキーリピートが起こせます。 +キーリピートを起こす間隔をゲストのソフトウェアが測定しているということは、 +VM が高速動作するとキーリピートもそれに合わせて発生することになり、 +これをホスト側から防ぐ手段はありません。 +そこで nono ではキー入力が発生している間 +(キーが一つでも押されてからキーが全て離されるまでの間)、 +高速モードが指示されていても VM を一時的に等速モードに落として実行します。 +上記のアイコンがそれを区別しているのはこのためです。 +そのため、何らかの理由でキーが入りっぱなしになった場合 +(ALT + TAB やアクセラレータキーでメニューを開くと起きがちです) +高速モードが抑制されたままということが起きえます。 +その場合はソフトウェアキーボードからキー入力を解除するなどしてください。 +On LUNA, +key repeat is done by software(OS), not by the keyboard hardware. +For this reason, +key repeat doesn't occur on LUNA's PROM or NetBSD/luna68k's bootloader +that don't implement it, and +key repeat occurs on NetBSD/luna68k kernel that implements it. +Since the timing of key repeat is measured by the guest software, +if the VM is running faster than the real, +the key repeat will occur faster, too. +The host application doesn't have the way to avoid it. +Therefore, nono will temporarily suppress the full speed mode +while any keys are pressed. +That is why the above-mentioned icon distinguishes them. +If keys continue to be pressed for some reasons, +the VM also continues to run syncronized mode. +In this case, you can resolve it by using the software keyboard window. +
+ + + + +Try it"); ?> +Try NetBSD/luna68k"); ?> +
+つついさんが NetBSD/luna68k 9.2 の liveimage を用意されています。 +Tsutsui-san has provided a liveimage of NetBSD/luna68k 9.2. +
+
https://twitter.com/tsutsuii/status/1436381589211017217
+
+ここではこれを起動してみます。Let's try it.
  1. どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、 その中に VM ディレクトリを用意します (例えば ~/nono/luna/)。 -Create a directory for nono somewhere (for example ~/nono/), -and create subdirectory for individual VMs in it (for example ~/nono/luna). +Create a directory somewhere for nono (for example ~/nono/), +and create subdirectories for individual VMs in it +(for example ~/nono/luna/). -
  2. http://teokurebsd.org/netbsd/liveimage/20200518-luna68k/ から -イメージファイルをダウンロードして展開し、 +
  3. 以下のリンクからイメージファイルをダウンロードして展開し、 VM ディレクトリ ~/nono/luna/ に置きます。 -Download imagefile from -http://teokurebsd.org/netbsd/liveimage/20200518-luna68k/, -extract it and place it in the VM directory, ~/nono/luna. - -
  4. 同じく VM ディレクトリに設定ファイル nono.cfg を以下の内容で用意します。 -Create a configuration file nono.cfg in the same VM directory, ~/nono/luna, -with following contents: +Download imagefile from the following link, +extract it and place it in the VM directory, ~/nono/luna/. +
    +http://teokurebsd.org/netbsd/liveimage/20210910-luna68k/ +
    + +
  5. 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna/ +に作成します。 +ここでは説明を簡単にするためネットワークなしにしていますが、 +ネットワーク設定は必要に応じて行ってください。 +Create a configuration file nono.cfg in the VM directory, ~/nono/luna/, +with following contents. +By the way, to simplify the explanation, we assume there is no network here. +However, please configure the network if necessary.
     vmtype = luna
    -spc0-id6-image = hd,liveimage-luna68k-raw-20200518.img
    +spc0-id6-image = hd,liveimage-luna68k-with-packages-20210910.img
    +hostnet-driver = none
     
    +
  6. nono -c ~/nono/luna で起動します (VM ディレクトリに自動的に NVRAM.DAT が作られます)。 Run as nono -c ~/nono/luna. -(It creates NVRAM.DAT automatically in the VM directory) +(NVRAM.DAT will be created automatically in the VM directory) +
  7. Emulated ROM Monitor が起動するので、 初回は以下のように入力すると NetBSD が起動します。 The emulated ROM Monitor will be executed. Then, only for the first time, entering the following can boot NetBSD. +
    +k⏎
    +⏎
    +⏎
    +d⏎
    +boot⏎
    +g⏎
    +x⏎
    +
    +画面はこんな感じのはずです (太字が入力部分)。 +You will see a screen like this. The bold text indicates +the characters you need to enter.
    -k
    -[Enter]
    -[Enter]
    -d
    -boot
    -g
    -x
    +NONO  Emulated ROM Monitor for LUNA-I
    +
    +** NVRAM Initialized.
    +
    +>k⏎
    +controller: dk  ?
    +drive unit: 0  ?
    +partition : c  ?d⏎
    +filename  : vmunix  ?boot⏎
    +>g⏎
    +Loaded.  Entry point = $00700000
    +>x⏎
     
    この内容は NVRAM.DAT に記録されているので次回以降は直接 NetBSD が起動します。 -The information you have just entered is recorded in NVRAM, -so next time it boots NetBSD automatically. +The information you have just entered is recorded in the NVRAM, +so next time it will boot NetBSD automatically. +
  8. 初回起動時、 +Updating fontconfig cache はあほみたいに時間がかかりますが、 +nono がハングアップしてるわけではありません(>_<)。 +また初回は起動後数時間めちゃくちゃ重たいですが、 +これはバックグラウンドで makemandb が動くためで +nono のせいではありません(>_<)。 +At the first boot, you will see the console stops after printing +"Updating fontconfig cache". +This is because the infamous fontconfig takes very looooong time. +nono would not have hang-up. +In addition, at the first boot, you will feel it's too heavy for several hours. +This is because the infamous makemandb(8) runs heavily in the background +for a looooong time. +It's very sad to me that these two accidents which are far from the ideal +are the first experiences of newcomers. + +
  9. 終了する時は root +ユーザで “shutdown -p now” を実行してください。 +LUNA はソフトウェアから電源オフでき、 +VM の電源オフで nono も終了します。 +To quit, type “shutdown -p now” as the root user. +LUNA can be powered off by software, +and nono will terminate when the VM is powered off. +
+
+ + +Try OpenBSD/luna88k"); ?> +
+あおやまさんが OpenBSD/luna88k 7.0 の liveimage を用意されています。 +Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.0. +
+
https://twitter.com/ao_kenji/status/1473611893386661888 +
+ここではこれを起動してみます。Let's try it. +
+
    +
  1. どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、 +その中に VM ディレクトリを用意します (例えば ~/nono/luna88k/)。 +Create a directory somewhere for nono (for example ~/nono/), +and create subdirectories for individual VMs in it +(for example ~/nono/luna88k/). + +
  2. 以下のリンクから liveimage-luna88k-raw-20211221.img.gz +をダウンロードして展開し、 +VM ディレクトリ ~/nono/luna88k/ に置きます。 +Download liveimage-luna88k-raw-20211221.img.gz from the following link, +extract it and place it in the VM directory, ~/nono/luna88k/. +
    +http://www.nk-home.net/~aoyama/liveimage/ +
    + +
  3. 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna88k/ +に作成します。 +ここでは説明を簡単にするためネットワークなしにしていますが、 +ネットワーク設定は必要に応じて行ってください。 +Create a configuration file nono.cfg in the VM directory, ~/nono/luna88k/, +with following contents. +By the way, to simplify the explanation, we assume there is no network here. +However, please configure the network if necessary. +
    +vmtype = luna88k
    +spc0-id6-image = hd,liveimage-luna88k-raw-20211221.img
    +hostnet-driver = none
    +
    + +
  4. nono -c ~/nono/luna88k で起動します +(VM ディレクトリに自動的に NVRAM.DAT が作られます)。 +Run as nono -c ~/nono/luna88k. +(NVRAM.DAT will be created automatically in the VM directory) +
  5. Emulated ROM Monitor が起動するので、 +初回は以下のように入力すると OpenBSD が起動します。 +The emulated ROM Monitor will be executed. +Then, only for the first time, +entering the following can boot OpenBSD. +
    +nvram boot_filename boot⏎
    +y
    +b⏎
    +
    +画面はこんな感じのはずです (太字が入力部分)。 +You will see a screen like this. The bold text indicates +the characters you need to enter. +
    +NONO  Emulated ROM Monitor for LUNA-88K
    +
    +** NVRAM Initialized.
    +
    +N>nvram boot_filename boot⏎
    +Update boot_filename : "vmunix" -> "boot" (Y/[N]):y
    +Updated
    +N>b⏎
    +
    +この内容は NVRAM.DAT に記録されているので次回以降は直接 OpenBSD が起動します。 +The information you have just entered is recorded in the NVRAM, +so next time it will boot OpenBSD automatically. + +
  6. 終了する時は root +ユーザで “shutdown -p now” を実行してください。 +LUNA-88K はソフトウェアから電源オフでき、 +VM の電源オフで nono も終了します。 +To quit, type “shutdown -p now” as the root user. +LUNA-88K can be powered off by software, +and nono will terminate when the VM is powered off.
-

-元ツイートはこちらOriginal tweet

+ -

ネットワーク設定 Setup network

+Try NetBSD/x68k"); ?> +
+つついさんが NetBSD/x68k 9.2 の liveimage を用意されています。 +ここではこれを起動してみます。 +Tsutsui-san has provided a liveimage of NetBSD/x68k 9.2. Let's try it. +
+
    +
  1. どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、 +その中に VM ディレクトリを用意します (例えば ~/nono/x68k/)。 +Create a directory somewhere for nono (for example ~/nono/), +and create subdirectories for individual VMs in it +(for example ~/nono/x68k/). + +
  2. 以下のリンクから +plain-install か with-packages のお好みのほうをダウンロードして展開し、 +VM ディレクトリ ~/nono/x68k/ に置きます。 +Download your favorite one of plain-install or with-packages +from the following link, +extract it and place it in the VM directory, ~/nono/x68k/. +
    +http://teokurebsd.org/netbsd/liveimage/20210613-x68k/ +
    + +
  3. 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/x68k/ +に作成します。 +ここでは説明を簡単にするためネットワークなしにしていますが、 +ネットワーク設定は必要に応じて行ってください。 +Create a configuration file nono.cfg in the VM directory, ~/nono/x68k/, +with following contents. +By the way, to simplify the explanation, we assume there is no network here. +However, please configure the network if necessary. +
    +vmtype = x68030
    +spc0-id0-image = hd,liveimage-x68k-with-packages-20210613.hds
    +hostnet-driver = none
    +
    + +
  4. 初回のみ nono -c ~/nono/x68k --create-sram を実行します。 +これで VM ディレクトリに初期状態の SRAM.DAT が作られます。 +Only the first time, run as nono -c ~/nono/x68k --create-sram. +This will create initial SRAM.DAT in the VM directory. + +
  5. nono -c ~/nono/x68k で起動すると、 +HDD から NetBSD/x68k が起動します。 +次回以降はこれだけで直接 NetBSD が起動します。 +Again, run as nono -c ~/nono/x68k. +NetBSD/x68k will be booted from HDD. +Next time, it will boot NetBSD automatically. + +
  6. 初回起動後数時間はめちゃくちゃ重たいですが、 +これはバックグラウンドで makemandb が動くためで +nono のせいではありません(>_<)。 +At the first boot, you will feel it's too heavy for several hours. +This is because the infamous makemandb(8) runs heavily in the background +for a looooong time. +It's very sad to me that an accident which is far from the ideal +is the first experiences of newcomers. + +
  7. NetBSD が起動した後なら (正確には powerd(8) が起動していれば)、 +終了する時はメニューの「デバイス > 操作 > 電源ボタンを押す」 +でシャットダウンして電源オフになり、 +VM の電源オフで nono も終了します。 +After NetBSD boots up (more precisely, if powerd(8) is running), +you can shutdown and power off by +"Device > Operation > Push Power button" on menu, +and nono will terminate when the VM is powered off. + +
+ + + + +Example of host network setup"); ?>
-設定ファイル nono.cfg に以下の行を追加します。 -Add the following line to configuration file, nono.cfg. +wm0 を持つ NetBSD ホストに tap(4) デバイスを用いて +nono のゲスト OS を接続する場合の設定例です。 +
    +
  1. +設定ファイル nono.cfg に以下の行を追加します +(と言いつつ NetBSD では書かなくてもデフォルトでこの動作になりますが) +Add the following line to configuration file, nono.cfg. +(Although you don't need to write it since these are default behavior +on NetBSD)
    -ethernet-hostdriver = tap
    +hostnet-driver = tap
    +hostnet-tap-devpath = auto
     
    -次に VM ディレクトリかその親ディレクトリに nono-ifup、nono-ifdown -というスクリプトを用意します。 -nono は tap(4) をオープンし、 -そのデバイス名を引数にこれらのスクリプトを呼びます。 -Then, prepare two scripts named nono-ifup and nono-ifdown -in the VM directory or its parent directory. -nono will open tap(4) and -invoke these scripts with the name of the device as an argument. -

    -最もシンプルなケースだとおそらく -For example, in the simplest case, probably, + +

  2. デフォルトでは /dev/tap は一般ユーザからアクセスできないので、 +chmod で適当にパーミッションを与えます。 +番号の付いていないほうの /dev/tap だけでいいです。 +sysinst 等で OS をアップグレードするとパーミッションが 600 +に戻るのがハマりポイントです。 +By default, /dev/tap is only accessible to privileged user. +You need to chmod /dev/tap (without unit number) appropriately. +Note that upgrading using sysinst always reset the permission to 600. + +
  3. bridge(4) インタフェースを作成し、 +ホストの外部(物理)インタフェースをブリッジに追加しておきます。 +Create a bridge(4) interface, and +add your physical interface to the bridge.
    -# brconfig bridge0 create
    +# ifconfig bridge0 create
     # brconfig bridge0 add wm0
     
    -のようにして用意しておいた bridge0 に対して、 -(sudo の設定は別途行ってから) -次のような nono-ifup、nono-ifdown を用意すれば -wm0 の物理セグメントとブリッジできると思います。 -If you setup bridge0 as above (and setup sudo) and -prepare the following nono-ifup, nono-ifdown scripts, -you can bridge between the guest network and host's wm0. - +常用するなら /etc の設定ファイルに書いておきましょう。 +If you use it regularly, +you can put configuration file into /etc. +
    +/etc/ifconfig.bridge0 +
    +create
    +up
    +!/sbin/brconfig $int add wm0
    +
    +
    +# /etc/rc.d/network restart
    +
    +
    + +
  4. +一般ユーザに戻って、 +VM ディレクトリかその親ディレクトリに +次のような 2つのスクリプトを用意します。 +nono は tap(4) をオープンし、 +そのデバイス名を引数にこれらのスクリプトを呼びます。 +sudo の設定は別途行ってください。 +Return to non-privileged user, and +create following two scripts in the VM directory or its parent directory. +nono will open tap(4) and +invoke these scripts with the name of the device as an argument. +In addition, you need to set up sudo separately.
    nono-ifup
     #!/bin/sh
    -sudo ifconfig $1 up
    -sudo brconfig bridge0 add $1
    +sudo /sbin/ifconfig $1 up
    +sudo /sbin/brconfig bridge0 add $1
     
    -nono-ifup +nono-ifdown
     #!/bin/sh
    -sudo brconfig bridge0 delete $1
    -sudo ifconfig $1 down
    +sudo /sbin/brconfig bridge0 delete $1
    +sudo /sbin/ifconfig $1 down
    +
    + +
    +% chmod +x nono-ifup nono-ifdown
     
    +
  5. nono を起動し、 +メニューの「モニタ > ホスト > ホストネットワーク」を開いて +HostNet Driver: tap になっていれば動いてるはずです。 +Run nono, +and open "Monitor > Host > Host Network" window from menu. +It's OK if you can see "HostNet Driver: tap". + +
+ -

既知の問題 Known problems

+Known Issues"); ?>
+
+ + +How to migrate from old versions"); +?> +
+バージョンアップに伴い設定ファイル等に非互換が発生する場合があります。 +その場合は以下の移行方法を参照して設定ファイル等を更新してください。 +Some versions may have incompatibilities in the configuration files, etc. +In such case, you may need to upgrade it by referring the following link. +
+ -

変更履歴 Changes

+Changes"); ?>
See changes.html.
+ -

ライセンス License

+Contact, License, etc"); ?> + +License"); ?>
-See nono-license.txt. +
+ -

パッチの提供について About contributes

+Contact us"); ?> +
+バグ報告などは以下にお願いします。日本語でおk。 +If you find any problems, please let me know. +You may write in English.
+https://github.com/isaki68k/nono-issue/issues +
+ + +About contributes"); ?>
パッチを提供してくださる場合は以下に同意したものとします。 -If you provide a patch to nono, you must agree to the following conditions: - +If you provide a patch to nono, we assume that you agree the following +conditions: -
+ - -

Acknowledgements

+
nono は以下の広告条項を含むソースコードを利用しています。 nono uses source code with the following advertising clause. @@ -616,7 +2408,8 @@ This product includes software developed This product includes software developed by the University of California, Lawrence Berkeley Laboratory.
- + +
nono project