+nono is OMRON LUNA-I emulator runs on NetBSD and etc. +LUNA88K is still experimental support and it does not work yet. ++
--- nono/doc/index.php 2026/04/29 17:04:30 1.1 +++ nono/doc/index.php 2026/04/29 17:04:40 1.1.1.4 @@ -1,3 +1,8 @@ + -
- -nono is OMRON LUNA-I emulator runs on NetBSD and so on.- +
nono is OMRON LUNA-I emulator runs on NetBSD and etc.
Introduction
+nono is OMRON LUNA-I emulator runs on NetBSD and etc. +LUNA88K is still experimental support and it does not work yet. ++
How to build
The following are required for build.
If you use NetBSD(pkgsrc), +wxWidgets is pkgsrc/x11/wxGTK30 (OPTIONS:gtk2 is recommended).+
+アーカイブを展開したら以下のようにビルドします。
+configure には環境変数 CC、CXX でコンパイラを指定することが出来ます。
+また wx-config が標準的な名前で提供されていないために見付けられない場合には
+環境変数 WX_CONFIG にパスを指定することが出来ます。
+Extract the 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.
-まだ make install はないです。 -wx/nono が GUI 版実行ファイル、 -cli/nono-cli がコマンドライン版です。 + + + +% ./configure % make depend % make +% su +# make install
+2つの実行ファイルがインストールされます。
+nono が GUI 版実行ファイル、
+nono-cli がコマンドライン版です。
+Two executables will be installed.
+nono is GUI executable and nono-cli is
+command line executable.
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 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. +_EOM_ ); option_item("-c vmdir", <<<_EOM_ VM ディレクトリを指定します。省略するとカレントディレクトリとします。 +
Specifies the VM directory. If omitted, the current directory is used._EOM_ ); option_item("-f", <<<_EOM_ 高速モードで起動します。 GUI なら起動後にもメニューから変更できますが、その初期値を変えるだけです。 +
Boot as the fast mode. +You can change this mode on GUI menu after boot, +and the option only changes its initial state. +_EOM_ ); option_item("--fontsize height", <<<_EOM_ GUI 版のみ。 全サブウインドウの起動時のフォントサイズを指定します。 -height には 12, 16, 24 +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. +You can change this value on GUI menu after boot. +_EOM_ ); @@ -162,27 +183,41 @@ GUI 版のみ。 任意倍率は起動時のみ指定可能です (そのうちなんとかしたい)。 デフォルトは 1.0 です。 +
+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_EOM_ ); option_item("--show-config", <<<_EOM_ 設定ファイルと -V オプションを読み込んだ結果を表示します。 +
Shows the result of reading configuration file and +parsing -V options._EOM_ ); option_item("-v", <<<_EOM_ バージョンを表示します。 +
Shows the version._EOM_ ); option_item("-V name=value", <<<_EOM_ -設定ファイルの内容を個別に上書きします。 +設定ファイルで指定した name=configvalue の代わりに +このオプションの name=value を適用します。 +
Use this name=value +instead of name=configvalue specified in configuration file. +_EOM_ ); ?> -以下開発用。 +以下開発用。
For developers:
VM configuration file is nono.cfg in the VM directory. +Its syntax 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. +
設定項目は次の通りです。
+The configuration items are:
Specifies the VM type from the following. +This field is mandatory. ++
| luna | … LUNA-I + | |
| luna88k | … LUNA88K (experimental) + |
Specifies the TCP port number that debugger listens. +If 0, it will not listen. +The default is 0._EOM_ ); @@ -285,11 +338,24 @@ config_item("luna-dipsw1 = string 本体前面 DIPSW#1-1..#1-8 の内容を指定します。 "0" を DOWN、"1" を UP として、 これを8つ並べた形式で、前から順に #1..#8 に対応します。 -デフォルトは 11110111 です。 +
Specifies status of the front panel DIPSW#1-1..#1-8 using 8 digit. +"0" means DOWN and "1" means UP. +The first character corresponds to #1 and +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) を参照してください。
+LUNA88K でのデフォルトは 11111111 です。
+各スイッチの内容は以下のリンクを参照してください。
+On LUNA88K, the default value is 11111111.
+See the following link about DIPSW.
+→ OpenBSD manual pages: boot_luna88k(8)
_EOM_
);
@@ -297,35 +363,95 @@ config_item("luna-dipsw2 = string
本体前面 DIPSW#2-1..#2-8 の内容を指定します。
書式は luna-dipsw1 と同じです。
デフォルトは 11111111 です。
-
-すべて "1"(UP) なら
-NetBSD/luna68k のブートローダは自動的にカーネルをロードして実行し、
-どれかでも "0"(DOWN) にするとプロンプトで停止するようです。
+Specifies status of the front panel DIPSW#2-1..#2-8.
+The same syntax as luna-dipsw1 is used.
+The default value is 11111111.
+
+NetBSD/luna68k のブートローダは、
+DIPSW#2 が "11111111" なら自動的にカーネルをロードして実行し、
+どれかでも "0" にするとプロンプトで停止するようです。
(本当は #8 だけで制御するつもりだったんじゃないかという気がします)
+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("monitor-rate = integer", <<<_EOM_
+テキスト系モニタウィンドウの更新頻度を Hz 単位で指定します。
+1 から 60 までの間で指定でき、デフォルトは 20Hz です。
+起動後にメニューからプリセットされた頻度には変更可能です。
+Specifies refresh rate of all text monitor windows in Hz.
+It ranges from 1 to 60. The default is 20Hz.
+You can change this value on GUI menu after boot,
+but unlike this configuration value, there are only a few preset choices.
+
_EOM_
);
config_item("mpu-clock = value", <<<_EOM_
MPU のクロック数を MHz 単位で指定します。
デフォルトは 20MHz です。
+Specifies the MPU clock in MHz. The default value is 20MHz.
_EOM_
);
/* luna には不要
config_item("mpu-has-fpu", ""); */
-config_item("prom-use-rom = integer", <<<_EOM_
-外部 ROM イメージファイルを使うかどうかを指定します。
-0 なら使わない、1 なら使うです。
-デフォルトは 0 です。
+config_item("prom-image = path", <<<_EOM_
+LUNA-I/LUNA88K の外部 ROM イメージファイルのパスを指定します。
+path がファイル名のみなら VM ディレクトリとその親ディレクトリからこのファイル名を検索します。
+path が相対パスなら VM ディレクトリからの相対パスになります (現在のディレクトリからではありません)。
+空にすると内蔵 ROM を使用します。
+デフォルトは空です。
+Specifies the LUNA-I/LUNA88K'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.
+If the path is empty, internal emulated ROM will be used.
+The default value is empty.
-実機を持っていない場合はこの値を 0 にしておくと、
-nono 内蔵のなんちゃって下位互換 ROM で起動します。
+実機を持っていない場合はこの値を空に (= デフォルトのままに) しておくと、
+nono 内蔵のなんちゃって下位互換 ROM で起動します(現状 LUNA-I のみ)。
+If you does not have the real LUNA machines,
+you can boot with nono's internal downward compatible emulated ROM
+if you set this field empty (or leave it as the default).
+For now, it's only for LUNA-I.
+
-実機を持っている場合は ROM ファイルを用意して
-この値を 1 にすると実機 ROM で起動できます。
-ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を PROM.DAT (大文字)
-という名前で保存したもので、VM ディレクトリに置きます。
+LUNA-I 実機を持っている場合は
+ROM ファイルを指定することで実機 ROM で起動できます。
+ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を保存したものです。
+今のところ 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) 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.
+
+
+LUNA88K 実機の場合は 0x41000000-0x4103ffff (256KB) を保存したものです。
+ただし現状サポートしていません。
+
+For LUNA88K,
+the ROM file is extracted from 0x41000000-0x4103ffff (256KB).
+However, it's not supported yet.
+
+_EOM_
+);
+
+config_item("ram-size = integer", <<<_EOM_
+搭載する RAM サイズを MB 単位で指定します。
+デフォルトは 16MB です。
+Specifies the RAM size in MB. The default is 16MB.
_EOM_
);
@@ -336,16 +462,43 @@ ID 7 は本体が使用しますので
を ","(カンマ) で区切って並べた形式で、
今の所デバイス種別 devtype には "hd"(ハードディスク) のみ指定可能です。
ディスクイメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+
+Specifies SCSI device. N 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.
+
+
例えば、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,
+write as following:
_EOM_ ); +config_item("spc0-idN-seektime = integer", <<<_EOM_ +指定の SCSI HDD の平均シークタイムを msec 単位で指定します。 +現在のデフォルトは 0 です (S・S・D!! S・S・D!!)。 +16 程度を指定すると幾分往時に思いを馳せることが出来るかもしれませんが、 +今の所あまり安定していません。 +spc0-id6-image = hd,luna.img
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-writeprotect = integer", <<<_EOM_ 指定の SCSI デバイスへの書き込みを無視するかどうか指定します。 0 なら通常動作(書き込みを行う)です。 @@ -354,6 +507,19 @@ config_item("spc0-idN-writeprotec 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. +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. +_EOM_ ); @@ -365,36 +531,79 @@ _EOM_
Try it
Tsutsui-san has provided NetBSD/luna68k 9.0 liveimage for this +(Thanks as always).+
+-% mkdir -p ~/nono/luna/ -% echo "vmtype=luna" > ~/nono/luna/nono.cfg -% path/to/nono -c ~/nono/luna -
Create a directory somewhere for nono (for example ~/nono/), +and create subdirectory for individual VMs in it (for example ~/nono/luna).+
Download imagefile from the following link, +extract it and place it in the VM directory, ~/nono/luna.+
+http://teokurebsd.org/netbsd/liveimage/20200518-luna68k/ ++ +
Create a configuration file nono.cfg in the same VM directory, ~/nono/luna, +with following contents:+
++vmtype = luna +spc0-id6-image = hd,liveimage-luna68k-raw-20200518.img +
Run as nono -c ~/nono/luna. +(NVRAM.DAT will be created automatically in the VM directory)+
The emulated ROM Monitor will be executed. +Then, only for the first time, +entering the following can boot NetBSD.+
+この内容は NVRAM.DAT に記録されているので次回以降は直接 NetBSD が起動します。 ++k +[Enter] +[Enter] +d +boot +g +x +
The information you have just entered is recorded in NVRAM, +so next time it boots NetBSD automatically.+
Setup network
Add the following line to configuration file, nono.cfg.
-を追加し、VM ディレクトリに nono-ifup、nono-ifdown -というスクリプトを用意してください。 +次に VM ディレクトリかその親ディレクトリに nono-ifup、nono-ifdown +というスクリプトを用意します。 nono は tap(4) をオープンし、 そのデバイス名を引数にこれらのスクリプトを呼びます。 +ethernet-hostdriver = tap
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,
# brconfig bridge0 create # brconfig bridge0 add wm0 @@ -403,7 +612,10 @@ nono は tap(4) をオープンし、 (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. +nono-ifup@@ -423,14 +635,57 @@ sudo ifconfig $1 down
Note
This is alpha quality release. -All specifications on this page may be changed -without compatibility in the near future.+
Changes
License
Contact us
If you find any problems, please let me know. +You may write in English.
About contributes
If you provide a patch to nono, you must agree to the following conditions: ++
All your work are operated or distributed under the nono license.+
The license may be changed in the future.+
Do not exercise your author's rights.+
nono uses source code with the following advertising clause.+
+This product includes software developed by Gordon Ross+
+This product includes software developed by the University of California, Lawrence Berkeley Laboratory.
+