+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.html 2026/04/29 17:04:30 1.1.1.1 +++ nono/doc/index.html 2026/04/29 17:04:43 1.1.1.5 @@ -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 followings are required for build. +If you use NetBSD(pkgsrc), +wxWidgets is pkgsrc/x11/wxGTK30 (OPTIONS:gtk2 is recommended).+
+(NetBSD 以外でのビルドはサポートしていませんが)
+Ubuntu 18.04 ではたぶん以下のパッケージが必要です。
+You may need the following packages on Ubuntu 18.04
+(though we won't support non-NetBSD platform).
+
+アーカイブを展開したら以下のようにビルドします。
+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. +
Specifies the VM directory. If omitted, the current directory is used.
Boot as the fast mode. +You can change this mode on GUI menu after boot, +and the option only changes its initial state. +
+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. +
+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
Shows the result of reading configuration file and +parsing -V options.
Shows the version.
Use this name=value +instead of name=configvalue specified in configuration file. +
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.
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) を参照してください。
On LUNA88K, the default value is 11111111. +See the following link about DIPSW.
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)
+
+
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. +
Specifies the MPU clock in MHz. +The default value is 20MHz on LUNA-I, or 25MHz on LUNA88K.
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.+
+実機を持っていない場合はこの値を空に (= デフォルトのままに) しておくと、
+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.
+
-実機を持っていない場合はこの値を 0 にしておくと、
-nono 内蔵のなんちゃって下位互換 ROM で起動します。
+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.
+
-実機を持っている場合は ROM ファイルを用意して -この値を 1 にすると実機 ROM で起動できます。 -ROM ファイルは実機の 0x41000000-0x4101ffff (128KB) を PROM.DAT (大文字) -という名前で保存したもので、VM ディレクトリに置きます。
+For LUNA88K, +the ROM file is extracted from 0x41000000-0x4103ffff (256KB). +However, it's not supported yet. ++
Specifies the RAM size in MB. +The default is 16MB on LUNA-I or 64MB on LUNA88K. +Not supported yet.
+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 に割り当てるのでこんな感じになります。
+LUNA-I では通常 ID 6 をプライマリ HDD に割り当てるのでこんな感じになります。
+For example, if you use disk image luna.img placed in the same
+directory as nono.cfg,
+since LUNA-I usually assigns ID 6 to the primary HDD,
+write as following:
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. +
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. +
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.
-最もシンプルなケースだとおそらく
+例えば、NetBSD ホストで、ホストの wm0 セグメントに nono のゲスト OS を接続する場合、
+For example, if you want to connect guest OS to host's wm0 segment
+on NetBSD,
+
By default, /dev/tap is only accessible to privileged user. +You need to chmod /dev/tap (without unit number) appropriately.+sysinst 等で OS をアップグレードするとパーミッションが 600 +に戻るのがハマりポイントです。 + +
Create a bridge(4) interface, and +add your physical interface to the bridge.
-のようにして用意しておいた bridge0 に対して、 -(sudo の設定は別途行ってから) -次のような nono-ifup、nono-ifdown を用意すれば -wm0 の物理セグメントとブリッジできると思います。 - +常用するなら設定ファイルに書いておきましょう。 +-# brconfig bridge0 create +# ifconfig bridge0 create # brconfig bridge0 add wm0
If you want to use this all the time, +you can put configuration file into /etc.+
+/etc/ifconfig.bridge0 ++ ++create +up +!/sbin/brconfig $int add wm0 +++# /etc/rc.d/network restart ++
Return to non-privileged user, and +create following two scripts in the VM directory or its parent directory. +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 +
Run nono, +and open "Monitor > Host > Host Network" window from menu. +It's OK if you can see "NetDriver: BSD tap" (in this case).+ +
Changes
Note
This is alpha quality release. -All specifications on this page may be changed -without compatibility in the near future.+
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.
+