--- nono/doc/index.html 2026/04/29 17:05:34 1.1.1.20 +++ nono/doc/index.html 2026/04/29 17:05:39 1.1.1.21 @@ -72,10 +72,10 @@ dt.dt-indent { background-color: var(--light-green); } -nono document (1.2.0) +nono document (1.3.0) -

nono 1.2.0 (2025/01/26)

+

nono 1.3.0 (2025/02/26)

nono は NetBSD とかで動作する OMRON LUNA-I/LUNA-88K のエミュレータです。 何故か SHARP X68030 と virt-m68k も動いたりするかも知れません。 @@ -120,17 +120,16 @@ For clang, at least 7.0 or later.)
  • wxWidgets 3.2.x "stable" branch. (3.0.x "old stable" branch would also work.)
  • gettext -
  • libslirp -(4.7.0 or later is comfirmed, 4.8.0 or later is preferred.) +
  • libslirp (4.7.0 or later is comfirmed, 4.8.0 or later is preferred.)

    NetBSD(pkgsrc) なら必要なパッケージは -x11/wxGTK32 と net/libslirp です。 +x11/wxGTK32 と net/libslirp です。 wxGTK32 の代わりに wxGTK30 でも動くはずです。 If you use NetBSD(pkgsrc), -x11/wxGTK32 and net/libslirp are needed. -wxGTK30 would work. +x11/wxGTK32 and net/libslirp are needed. +wxGTK30 would also work.

    (NetBSD 以外でのビルドはサポートしていませんが) @@ -145,7 +144,7 @@ build-essential, gettext, libbsd-dev, libkqueue-dev, -libslirp-dev, +libslirp-dev, libwxgtk3.2-dev, zlib1g-dev @@ -250,6 +249,18 @@ GUI なら起動後にもメニューか 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.

    +
    --fd0 file
    --fd1 file
    +
    +(X68030 Only) フロッピーイメージを指定します。 +file が相対パスの場合カレントディレクトリからのパスになります。 +設定の fd0-imagefd1-image +とは相対パスの起点の違いを除いて同一です。 +Specifies the floppy image. +If file is relative path, +it is path from the current directory. +This option is equivalent to fd0-image, fd1-image +in configuration except for base directory of the relative path. +

    --fontsize height
    GUI 版のみ。 全サブウインドウの起動時のフォントサイズを指定します。 @@ -260,7 +271,7 @@ Specifies the initial fontsize of all su You can change this value on GUI menu after boot. This option is equivalent to monitor-fontsize in configuration.

    --initrd file
    -
    (virt-m68k only) +
    (virt-m68k Only) カーネルに渡す初期 RAM ディスクのパスを指定します。 file が相対パスの場合カレントディレクトリからのパスになります。 設定の exec-initrd とは相対パスの起点の違いを除いて同一です。 @@ -454,14 +465,38 @@ The default value is empty.

    clock-sync = value
    仮想マシン内の時刻の同期方法を指定します。 real なら実時間に同期、virtual なら仮想時間に同期します。 -デフォルトは real です。 -この機能は実験中のため将来予告なく仕様が変更になる可能性があります。 -Specifies how to synchronize the time in virtual machine. +Specifies how to synchronize the time in the 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.

    +if virtual, synchronize with the virtual time. +

    debugger-driver = string
    デバッガのコンソールドライバを指定します。 stdiotcpnone が選択可能です。 @@ -671,7 +706,7 @@ terminate the process if 0, or continue to run using the none driver if 1. The default is 0.

    hostkbd-input = string
    -
    (LUNA and X68030 only) +
    (LUNA and X68030 Only) ホストキーボードの入力モードを指定します。 char ならキャラクタ入力モード、 jp なら日本語キーボードモードです。 @@ -682,16 +717,16 @@ The default is 0.

    jp means the Japanese keyboard mode. The defualt is char. See About VM for details.

    -
    hostnet-driver = string
    hostnet-afpacket-ifname = ifname
    hostnet-bpf-ifname = ifname
    hostnet-tap-devpath = path
    hostnet-usermode-hostfwd = string
    hostnet-usermode-net = string
    hostnet-usermode-net6 = string
    hostnet-fallback = integer
    +
    hostnet-driver = string
    hostnet-afpacket-ifname = ifname
    hostnet-bpf-ifname = ifname
    hostnet-tap-devpath = path
    hostnet-usermode-hostfwd = string
    hostnet-usermode-net = string
    hostnet-usermode-net6 = string
    hostnet-fallback = integer
    それぞれ hostnet0-* の別名です。

    hostnetN-driver = string
    N 番目のイーサネットデバイスのホスト側ドライバを指定します。 -afpacketbpftapusermode のうち +afpacketbpftapusermode のうち configure で検出したものと autonone が選択可能です。 Specifies the host driver of N-th ethernet device. -afpacket, bpf, tap and usermode can be specified +afpacket, bpf, tap and usermode can be specified only if the configure detects them. auto and none can always be specified. - autousermode と同義ですが、 -configure で libslirp が無効になっている場合は none と同義になります。 +configure で libslirp が無効になっている場合は none と同義になります。 hostnet0-driver のデフォルトは autohostnet1-driver のデフォルトは none です。 - -auto is a synonym for usermode, but -when libslirp is disabled on configure, it is a synonym for none. +auto is a synonym for usermode, but +when libslirp is disabled on configure, it is a synonym for none. The default of hostnet0-driver is auto, the default of hostnet1-driver is none.

    hostnetN-afpacket-ifname = ifname
    @@ -773,32 +805,24 @@ In all cases, you need to prepare two sh 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.

    -
    hostnetN-usermode-net = network/netmask
    -
    -ホストドライバが usermode の時の、内部 IPv4 ネットワークのアドレスを指定します。 +
    hostnetN-usermode-net = network/netmask
    +
    ホストドライバが usermode の時の、内部 IPv4 ネットワークのアドレスを指定します。 ネットワークアドレスは 192.0.2.0/255.255.255.0 のようにネットマスクで指定するか 192.0.2.0/24 のようにネットマスク長で指定することも出来ます。 -デフォルトは 10.8.0.0/24 です。 -

    -
    hostnetN-usermode-net6 = network/prefixlen
    -
    -ホストドライバが usermode の時の、内部 IPv6 ネットワークのアドレスを指定します。 +デフォルトは 10.8.0.0/24 です。

    +
    hostnetN-usermode-net6 = network/prefixlen
    +
    ホストドライバが usermode の時の、内部 IPv6 ネットワークのアドレスを指定します。 ネットワークアドレスは 2001:db8::/64 のようにアドレスとプレフィックス長で指定します。 -デフォルトは fd08::/64 です。 -

    -
    hostnetN-usermode-hostfwd = entry[;entry[;…]]
    -
    -ホストドライバが usermode の時の、外部から内部へのポートフォワーディングの設定を行います。 +デフォルトは fd08::/64 です。

    +
    hostnetN-usermode-hostfwd = entry[;entry[;…]]
    +
    ホストドライバが usermode の時の、外部から内部へのポートフォワーディングの設定を行います。 1つの entry
    - protocol,[hostaddr:]hostport,[guestaddr:]guestport -
    - のように ','(カンマ) 3つで区切って表します。 protocoltcpudp です。 hostaddr はホストのバインドアドレスで省略すると 0.0.0.0 です。 @@ -808,11 +832,8 @@ you need to prepare empty scripts that w 例えば、ホストの 10022/tcp へのコネクションをゲストの 22/tcp に転送したい場合は tcp,10022,22 となります。 複数指定する場合は ';'(セミコロン) で区切って1行に並べます。 -

    - -IPv6 には対応していません。 -

    +IPv6 には対応していません。

    hostnetN-fallback = integer
    hostnetN-driver で指定したドライバが使用可能でなかった時、 0 ならプロセスを終了します。 @@ -1002,10 +1023,8 @@ The default value is 20MHz on LUNA-I, or On virt-m68k, it's less meaningful but 25MHz.

    mpu-type = value
    (X68030, virt-m68k Only) -MPU 種別を指定します。 -MPU を変更出来るのは X68030 と virt-m68k のみで、 -6803068040 かを指定します。 -デフォルトはいずれも 68030 です。 +MPU 種別を 6803068040 で指定します。 +デフォルトは 68030 です。 Specifies the MPU type, 68030 or 68040. The default is 68030.

    mpu-pseudo-stop = integer
    @@ -1154,7 +1173,7 @@ By the way, NetBSD/luna68k needs at leas If the size is less than 64MB, you can specify in 16MB unit. If larger, you can specify up to tentative 512MB in 1MB unit. However, if you have prom-image with the real image, -the maximum is limited to 240MB. +the maximum is limited to 240MB.
  • X68030 ではメイン RAM 容量を示し、デフォルトは 12MB です。 4MB から 12MB まで 1MB 単位で指定できます。 拡張メモリについては extram-size を参照してください。 @@ -1164,7 +1183,7 @@ See extram-size for extended memory.
  • NWS-1750 では現状 16MB で変更できません。 On NWS-1750, This is 16MB fixed for now.
  • virt-m68k のデフォルトは 128MB です。 -16MB から 4080MB まで(アプリケーションとしては)指定可能です。 +16MB から 4080MB まで指定可能です。 指定された値が 16MB で割り切れない場合は 16MB 単位に切り上げになります。 On virt-m68k, the default is 128MB and the range is 16MB to 4080MB. @@ -1201,8 +1220,7 @@ SCSI デバイスとイメージを指 値はデバイス種別 devtype とディスクイメージパス path を ","(カンマ) で区切って並べた形式です。 デバイス種別 devtype は以下のいずれかです。 - -Specifies SCSI device and image. N in the key 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 disk image path path separated by ","(comma). @@ -1217,8 +1235,7 @@ the disk image path path separate devtypehd なら path は省略できません。 devtypecdmo なら path は省略可能です。 イメージパスが相対パスなら VM ディレクトリからの相対パスになります。 - -If devtype is hd, path cannot be ommitted. +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. @@ -1279,14 +1296,6 @@ 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).

    -
    spc0-idN-writeprotect = integer
    -
    (LUNA and X68030 Only) -古いオプションです。 -代わりに spc0-idN-writeignore を使ってください。 -このオプションは開発用です。 -Obsolete. -Use spc0-idN-writeignore instead. -This option is for developers.

    sram-sync-ramsize = integer
    (X68030 Only) SRAM の RAM 容量欄を実際の RAM サイズに合わせるかどうかを指定します。 @@ -1305,42 +1314,41 @@ This update is performed once only if the SRAM magic string is correct at the application startup. The default is 1.

    virtio-blockN-image = path
    -
    (virt-m68k only) -virtio のブロックデバイスのイメージを指定します。 -キーの N は現状 0 から 7 です。 +
    (virt-m68k Only) +VirtIO ブロックデバイスのイメージを指定します。 +キーの N は現状 0 から 7 が指定可能です。 イメージパスが相対パスなら VM ディレクトリからの相対パスになります。 -Specifies virtio block device's image. -N in the key is 0 to 7 for now. +Specifies VirtIO block device's image. +N in the key is 0 through 7 for now. If the path is relative path, it is from the VM directory.

    virtio-blockN-writeignore = integer
    -
    (virt-m68k only) -指定の virtio ブロックデバイスへの書き込みをイメージに書き戻すかどうか指定します。 -0 なら通常動作(書き込みを行う)です。 -1 ならディスクイメージに一切書き戻しません。 -デバイスへ書き込んだはずのデータは Copy-On-Write の要領で、 -VM ディレクトリ内の一時ファイルに書き込みます。 -この一時ファイルはアプリケーション終了時に削除します。 -fsck を気にせずカーネルのデバッグとかを行いたい場合にはどうぞ。 -何が起きるか意味が分からない人は指定しないでください。 -デフォルトは 0 です。 -Specifies whether nono writes a writing to virtio block devices back +
    (virt-m68k Only) +指定の VirtIO ブロックデバイスへの書き込みをイメージに書き戻すかどうか指定します。 +詳細は spc0-idN-writeignore を参照してください。 +Specifies whether nono writes a writing to VirtIO block 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 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).

    +See spc0-idN-writeignore for details.

    +
    virtio-scsi-idN-image = devtype[,path]
    +
    +(virt-m68k Only) +VirtIO SCSI デバイスとイメージを指定します。 +イニシエータ ID が不要なため、 +キーの N には 0 から 7 が指定できます。 +詳細は spc0-idN-image を参照してください。 +Specifies VirtIO SCSI device and image. +You can specify all of 0 thorugh 7 for the key N, +because there is no initiator. +See spc0-idN-image for more details. +

    +
    virtio-scsi-idN-writeignore = integer
    +
    +(virt-m68k Only) +指定の VirtIO SCSI デバイスへの書き込みをイメージに書き戻すかどうか指定します。 +詳細は spc0-idN-writeignore を参照してください。 +Specifies whether nono writes a writing to VirtIO SCSI devices back +to the diskimage. +See spc0-idN-writeignore for details. +

    windrv-path = path
    (X68030 Only) Windrv でゲスト側に見せるホストディレクトリを指定します。 @@ -1614,15 +1622,18 @@ XP プロセッサのクロック数を Goldfish TTY ○ -virtio v1.0 block +VirtIO Block ○ -virtio v1.0 net +VirtIO Network ○ -virtio v1.0 entropy +VirtIO Entropy ◎ +VirtIO SCSI + + Power Control ○ @@ -1651,13 +1662,12 @@ FPU はある程度動作すると思い 68881 相当のハードウェアエミュレーションで実行出来てしまうという 通常あまり困らないタイプの問題は存分にあります。
    -命令の実行サイクルについては未考察です。 + +命令の実行サイクルについてはある程度似せているつもりですが、 そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を -正確にエミュレーションすることはおそらく不可能ですが、 -それにしても似せるところまでも行っていないという意味です。 +正確にエミュレーションすることはおそらく不可能です。
    -68040 は X68030 と virt-m68k でのみ選択可能で、 -LUNA-I と NEWS では選択できません。 +68040 は X68030 と virt-m68k でのみ選択可能です。 NEWS に 68040 搭載モデルはなさそうなのと、 LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。 @@ -1800,21 +1810,56 @@ Also, SW8 specifies enable/disable of th
    -4.10. usermode ネットワーク
    - +4.10. usermode ネットワーク
    usermode ネットワークでは nono 自身が NAT ルータ、DHCP サーバ、DNS サーバの機能を持ちます。 ルータと DHCP サーバのアドレスはネットワークアドレス +1 (デフォルトでは 10.8.0.1)、 DNS サーバのアドレスはネットワークアドレス +2 (デフォルトでは 10.8.0.2) です。 IPv6 ルータのアドレスはネットワークアドレス +1 (デフォルトでは fd08::1)、 DNS サーバのアドレスはネットワークアドレス +2 (デフォルトでは fd08::2) です。 +
    +
    + + +
    +4.11. NetBSD/x68k での時間同期Time Synchronization on NetBSD/x68k
    + +X68030 でゲスト OS に NetBSD/x68k を使う場合、 +nono と NetBSD/x68k を次の通りに設定すれば +nono をフルスピード動作にしてもゲスト OS の時間がずれなくなります。 +まず nono の設定ファイルに以下を追加します。 +
    +clock-sync = real
    +
    +ゲストの NetBSD/x68k を起動し、 +/etc/sysctl.conf に以下の1行を追加します。 +
    +kern.timecounter.hardware=clockinterrupt
    +
    +さらに /etc/rc.conf に +
    +ntpdate=YES
    +ntpdate_hosts=ntp.nict.jp
    +
    +などと設定します (NTP サーバはお好みで)。 +sysctl の設定によって、ゲスト OS の時計は「この設定が有効になった時点から」 +実時間間隔を刻めますが、 +電源オンからここまでにずれた分が解決できるわけではありませんので、 +必然的に時計を合わせる必要もあるためです。 +これで再起動すると次回からはフルスピードでも実時間を刻めます。 +(再起動せずに有効にしたい場合はこの設定の後 root ユーザで +
    +/etc/rc.d/sysctl start
    +/etc/rc.d/ntpdate start
    +
    +を実行してください)
    -4.11. Windrv
    +4.12. Windrv
    X68030 で Windrv を一応サポートしています。 Human68k からホストのファイルシステムをアクセスする機構です。 従来の Windrv とはホスト OS の前提が異なるため、 @@ -1865,7 +1910,7 @@ DEVICE = \SYS\WINDRV.SYS
    -4.12. ステータスパネル Status Panel
    +4.13. ステータスパネル Status Panel
    ステータスパネル中央にあるパフォーマンスメータのアイコンは 高速モードの状態を表示しています。 ダブルクリックすると高速/等速モードの指定を切り替えることができます。 @@ -1914,7 +1959,7 @@ or the keyboard buzzer is sounding.
    -4.13. DIPSW 設定ウィンドウ
    +4.14. DIPSW 設定ウィンドウ
    DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。 またここでの設定は即 VM に反映されますが、 LUNA の場合 DIPSW の状態を @@ -1925,7 +1970,7 @@ PIO(8255) がラッチするのが概ね
    -4.14. メモリダンプモニタ Memory Dump Monitor
    +4.15. メモリダンプモニタ Memory Dump Monitor
    メモリダンプモニタの出力形式を、バイト、ワード、ロングワード (m88k ではそれぞれバイト、ハーフワード、ワードと表現します) から選択できます。 @@ -1968,7 +2013,7 @@ The only last 8 bytes are not editable s
    -4.15. デバイスマップモニタ Device Map Monitor
    +4.16. デバイスマップモニタ Device Map Monitor
    m68k/m88k バスに接続されているデバイスを表示します。 32ビットアドレスのうち上位 8 ビット、256個分を表示しています。 1枠が 16MB になります。 @@ -1982,7 +2027,7 @@ NEWS のデバイスマップは内部
    -4.16. キー入力モード Key input mode
    +4.17. キー入力モード Key input mode
    LUNA も X68030 もキーボードは通常日本語キーボードです (LUNA には英語キーボードも存在するようですが…)。 そのため、ホストが日本語キーボードの場合とそうでない場合のために @@ -2068,7 +2113,7 @@ even though it should not work as a corr
    -4.17. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
    +4.18. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
    キャラクタ入力モードでの、ホストから入力した文字と VM に送信されるキーの対応は次の通りです。 ファンクションキーとカーソルキーは文字ではありませんが @@ -2183,7 +2228,7 @@ only be typed from the software keyboard
    -4.18. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
    +4.19. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
    JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。 ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。 The following table shows the correspondence between @@ -2253,7 +2298,7 @@ the software keyboard window.
    -4.19. キーリピート Key Repeat
    +4.20. キーリピート Key Repeat
    LUNA では、キーボードがハードウェア側でキーリピートを行わず、 ソフトウェア(OS など)がキーリピートの処理を行います。 そのため、キーリピートを実装していない LUNA の PROM や @@ -2352,7 +2397,7 @@ x⏎ You will see a screen like this. The bold text indicates the characters you need to enter.
    -NONO 1.2.0 Emulated ROM Monitor for LUNA-I
    +NONO 1.3.0 Emulated ROM Monitor for LUNA-I
     
     ** NVRAM Initialized.
     
    @@ -2450,7 +2495,7 @@ b⏎
     You will see a screen like this.  The bold text indicates
     the characters you need to enter.
     
    -NONO 1.2.0 Emulated ROM Monitor for LUNA-88K
    +NONO 1.3.0 Emulated ROM Monitor for LUNA-88K
     
     ** NVRAM Initialized.