68030 ATC (Address Translation Cache) is differ from and faster than the real 68030.+MMU、キャッシュあたりはほぼ実装していると思います。 +命令の実行サイクルについてはある程度似せているつもりですが、 +68000 のようにサイクル数を正確に数えるのは困難です。
--- nono/doc/index.html 2026/04/29 17:05:52 1.1.1.24 +++ nono/doc/index.html 2026/04/29 17:05:56 1.1.1.25 @@ -72,10 +72,10 @@ dt.dt-indent { background-color: var(--light-green); } -
@@ -142,7 +142,7 @@ Ubuntu 24.04 ではたぶん以下のパ bmake, build-essential, gettext, -libasound2-dev, +libasound2-dev, libbsd-dev, libkqueue-dev, libslirp-dev, @@ -465,8 +465,8 @@ The default value is empty.
Specifies how to synchronize the time in the virtual machine. -If real, synchronize with the real time; -if virtual, synchronize with the virtual time.+real means synchronizing with the real time. +virtual means synchronizing with the virtual time.
Specifies whether to install FPU co-processor or not. This item is meaningful only if mpu-type is 68030. -If none, FPU co-processor is not installed. -If 68881, 68881 FPU co-processor is installed. +If set to none, FPU co-processor is not installed. +If set to 68881, 68881 FPU co-processor is installed. 68882 is not supported yet. And, none can also be written as 0, 68881 can also be written as 1. @@ -717,7 +718,7 @@ If changing at runtime fails, it will faデフォルトは auto です。 -hostcomN-tcp-port = integer ホストドライバが tcp の時の TCP 待ち受けポート番号を指定します。 -Specifies the TCP port number that host driver listens.hostcpu-avx2 = string +hostcpu-avx2 = string ホストが amd64(x86_64) の場合にレンダリングに AVX2 アクセラレーションを使うかどうかを指定します。 auto なら起動時にホスト CPU が AVX2 をサポートしているか確認し、 @@ -725,33 +726,28 @@ If changing at runtime fails, it will fa no なら AVX2 コードを実行しません。 デフォルトは auto です。 amd64(x86_64) 以外のホストではこの設定は無視されます。 -ver 1.5.0 までは host-avx2 という名前でした。 -Specifies whether to use AVX2 acceleration for rendering on amd64(x86_64) host. -If auto, nono checks whether the host CPU supports AVX2 +If set to auto, nono checks whether the host CPU supports AVX2 on startup and use it if it does. -If no, nono will not execute AVX2 instructions. +If set to no, nono will not execute AVX2 instructions. The default is auto. -Note that this item is ignored if the host is not amd64(x86_64). -Up to ver 1.5.0, it was called host-avx2.hostcpu-neon = string +Note that this item is ignored if the host is not amd64(x86_64). +hostcpu-neon = string ホストが aarch64 の場合にレンダリングに NEON アクセラレーションを使うかどうかを指定します。 auto なら使用し、 no なら使用しません。 デフォルトは auto です。 aarch64 以外のホストではこの設定は無視されます。 -ver 1.5.0 までは host-neon という名前でした。 -Specifies whether to use NEON acceleration for rendering on aarch64 host. -If auto, nono uses NEON code. -If no, nono don't use NEON code. +If set to auto, nono uses NEON code. +If set to no, nono don't use NEON code. The default is auto. -Note that this item is ignored if the host is not aarch64. -Up to ver 1.5.0, it was called host-neon.hostcpu-fastcore = string --ホストの CPU がヘテロジニアス構成の場合の高性能コアを列挙します。 +Note that this item is ignored if the host is not aarch64. +hostcpu-fastcore = string +ホストの CPU がヘテロジニアス構成の場合の高性能コアを列挙します。 コアの番号は 0,1,2 のようにカンマ区切りで指定します。 ハイフンで範囲指定も出来ます。 -2,3,4-7 は 0-7 と等価です。 @@ -760,8 +756,7 @@ Note that this item is ignored if the ho コアが一つも指定されないかすべてのコアが指定された場合はホモジニアス構成とみなします。 auto と書くと自動判別ですが現状 Intel CPU のみ対応しています。 対称構成の CPU なら指定不要です。 -デフォルトは auto です。 - +デフォルトは auto です。hostkbd-input = string (LUNA and X68030 Only) ホストキーボードの入力モードを指定します。 @@ -919,16 +914,15 @@ you need to prepare empty scripts that w 複数指定する場合は ';'(セミコロン) で区切って1行に並べます。 -IPv6 には対応していません。
hostsound-driver = string --サウンドデバイスのホスト側ドライバを指定します。 + hostsound-driver = string +サウンドデバイスのホスト側ドライバを指定します。 alsa、netbsd、sndio のうち configure で検出したものと wav、none、auto が選択可能です。 Specifies the host sound driver. alsa, netbsd, and sndio are available only if detected by configure. wav, none, and auto are always selectable.-+
- alsa は Linux の ALSA ライブラリを使用します。
alsa uses Linux's ALSA library.- netbsd は NetBSD の audio(4) デバイスを使用します。 @@ -947,18 +941,13 @@ available only if detected by configure. Or act as none if no drivers are detected.
The default is auto.- -
The default is auto.+
Specifies the MPU clock in MHz. The default value is 20MHz on LUNA-I, or 25MHz on LUNA-88K and X68030. On virt-m68k, it's less meaningful but 25MHz.
You can forcibly disable MPU data cache (dcache)/instruction cache (icache). +0 means forcibly disable the cache. +1 means normal operation. +The default is 1. +On 68030, forcibly disable means that even if +you write 1 to EI, ED on CACR, it will remain 0. +Not supported for m88k.+
Specifies whether install Nereid expansion board or not. Up to two board can be operated at the same time. -If 0, the board is not installed. -If 1, the board is installed. +If set to 0, the board is not installed. +If set to 1, the board is installed. The default value is 0. -See also Section 4.6 Nereid below for details.
Specifies bank memory size in MB of Nereid expansion board. The valid values are 0, 4 or 16. -If 0, disable the bank memory. +If set to 0, disable the bank memory. The default is 16. This item will be ignored if the corresponding nereidN-enable is 0.@@ -1330,7 +1335,8 @@ The default is 1 (show). You can change it on GUI menu after boot.
-例えば、nono.cfg と同じディレクトリに置いた sd0.img を
+例えば、nono.cfg と同じディレクトリに置いた sd0.qcow2 を
起動 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
+
For example, if you use a harddisk image sd0.qcow2 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,sd0.img
+spc0-id6-image = hd,sd0.qcow2
spc0-id5-image = cd,install.iso
spc0-id4-image = mo
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) +If set to 0, the application will do nothing (as same as the real). +If set to 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.
Specifies VirtIO block device's image. @@ -1443,9 +1449,33 @@ If the path is relative path, it is fromSpecifies whether nono writes a writing to VirtIO block devices back to the diskimage. See spc0-idN-writeignore for details.
You can disable VirtIO entropy device. +0 means disabled, 1 means enabled. +The default is 1.+
You can disable VirtIO network device. +0 means disabled, 1 means enabled. +The default is 1.+
You can disable VirtIO SCSI device. +0 means disabled, 1 means enabled. +The default is 1.+
Specifies whether to cut MPU(68030) FC2 pin. -If 0, the FC2 pin is connected as usual. -If 1, it is disconnected. +If set to 0, no modification is applied +(the original FC2 pin is kept). +If set to 1, the FC2 pin is cut. The default is 1. Only if you run the X server on NetBSD/x68k, it needs to be 1.
Specifies the XP processor's clock in MHz. +The default value is 6.144 MHz.@@ -1614,9 +1647,9 @@ XP プロセッサのクロック数を
Areaset
Filter is not implemented. Recording is not planned+
Filter is not implemented. Recording is not planned
68030 ATC (Address Translation Cache) is differ from and faster than the real 68030.+MMU、キャッシュあたりはほぼ実装していると思います。 +命令の実行サイクルについてはある程度似せているつもりですが、 +68000 のようにサイクル数を正確に数えるのは困難です。
Disk image
QCOW2 and raw format are supported for the disk images for +HD, CD, MO and FDs.+ +
+ +QCOW2 形式のうち、外部バッキングファイル (CoW) を持つもの、 +zstd 圧縮されたもの、 +暗号化されているもの +は未対応です。 +また refcount が 16 ビットでないものも未対応ですが通常遭遇しないはず。 +イメージがスナップショットを持っている場合、 +スナップショットに関与せず最新の状態だけを読み書きします。 +イメージが zlib 圧縮されているものについては読み込み専用でのみ対応しています。 +書き込みは技術的には可能ですが仕組みを考えると嬉しくないので対応しません。 + +
Nereid emulation on X68030
Time Synchronization on NetBSD/x68k
Time Synchronization on NetBSD/x68k
Status Panel
Status Panel
Memory Dump Monitor
Memory Dump Monitor
Device Map Monitor
Page Table Monitor
This is a page table monitor on 68030 and 68040. +It doesn't support 88200 yet. +It doesn't support all variations of 68030 because it's too complex.+
Up to 3-levels (From TIA to TIC). No FCL supported.+
An early termination and indirect descriptor are not distinguished +in the display.+
The root pointer switching on 68040 is SRP/URP as is. +On 68030, it switches supervisor-state/user-state.+
Device Map Monitor
Key input mode
Key input mode
Keycode table in the character mode
Keycode table in the character mode
Keycode table in the JP keyboard mode
Keycode table in the JP keyboard mode
The following table shows the correspondence between @@ -2425,7 +2518,7 @@ the software keyboard window.
Key Repeat
Key Repeat
You will see a screen like this. The bold text indicates the characters you need to enter.
-NONO 1.6.0 Emulated ROM Monitor for LUNA-I +NONO 1.7.0 Emulated ROM Monitor for LUNA-I ** NVRAM Initialized. @@ -2622,7 +2715,7 @@ b⏎You will see a screen like this. The bold text indicates the characters you need to enter.-NONO 1.6.0 Emulated ROM Monitor for LUNA-88K +NONO 1.7.0 Emulated ROM Monitor for LUNA-88K ** NVRAM Initialized. @@ -2716,8 +2809,8 @@ and nono will terminate when the VM is p5.4. NetBSD/virt68k をインストールしてみる
Try installing NetBSD/virt68k-ここでは NetBSD/virt68k をインストールする手順を紹介します。 -Here I will introduce how to install NetBSD/virt68k.+ここでは NetBSD/virt68k 11.0_RC2 をインストールする手順を紹介します。 +Here I will introduce how to install NetBSD/virt68k 11.0_RC2.
@@ -2728,21 +2821,32 @@ and create subdirectories for individual (for example ~/nono/virt68k/).
- NetBSD/virt68k を含む 11.0 は執筆時点ではまだリリースされていませんが、 -公式サイトにリリースブランチのデイリービルドがあります。 +公式サイトに RC (Release Candidate) のイメージが公開されています。 以下のリンクから netbsd-GENERIC.gz (カーネル) と inst-ramdisk.fs (インストーライメージ) をダウンロードします。 +
As of the time of writing, +NetBSD 11.0 including virt68k has not yet been released. +However, images of RC (Release Candidate) are available on the official site. +Download netbsd-GENERIC.gz (kernel) and inst-ramdisk.fs +(installer image) from the following links.-https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-11/latest/virt68k/binary/kernel/netbsd-GENERIC.gz
-https://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-11/latest/virt68k/installation/ramdisks/inst-ramdisk.fs +https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.0_RC2/virt68k/binary/kernel/netbsd-GENERIC.gz
+https://cdn.netbsd.org/pub/NetBSD/NetBSD-11.0_RC2/virt68k/installation/ramdisks/inst-ramdisk.fs- 空のディスクイメージを用意します。 1GB でもインストール自体は出来ますが、もう少し大きいほうが安心です。 +(qemu-img がない場合は dd で生イメージを作ります)
Prepare an empty disk image file. You can install it with 1GB at least, -but it would be safer if it was a little larger.+but it would be safer if it was a little larger. +(If you doesn't have qemu-img, create a raw image by using dd instead.) +++qemu-img create -f qcow2 virt68k.qcow2 2G +or@@ -2753,20 +2857,22 @@ dd if=/dev/zero of=virt68k.img bs=1m cou with following contents.dd if=/dev/zero of=virt68k.img bs=1m count=2048-vmtype = virt-m68k +fast-mode = 1 +virtio-block0-image = virt68k.qcow2 # or virt68k.img exec-file = netbsd-GENERIC.gz exec-bootparam = root=ld0 -virtio-block0-image = virt68k.img -fast-mode = 1- インストーラ RAM ディスクを指定してインストーラを起動します。 -設定ファイルでルートデバイスを ld0 に指定していますが、 -RAM ディスク指定のほうが優先されるようです。 -
Run the installer by specifying installer RAM disk. -By the way, configuration file specifies root device as ld0, -but RAM disk specified by the command line will take precedence.+- インストーライメージからインストーラを起動します。 +設定ファイルでは運用時のためにルートデバイスを ld0 に指定していますが +インストーラは RAM ディスクから起動したいため -V +オプションで exec-bootparam を空に戻します。 +
Run installer from specified installer image. +The configuration file specifies root device as ld0 for normal operation, +but since we want to boot from ramdisk this time, +use the -V option to reset exec-bootparam.-nono -c ~/nono/virt68k --initrd inst-ramdisk.fs +nono -c ~/nono/virt68k --initrd inst-ramdisk.fs -V exec-bootparam=- しばらくすると見慣れたインストーラが起動してきます。 @@ -2779,11 +2885,11 @@ select e:Utility menu > g:Halt the sy Then the guest will shut down, and nono also will terminate.
- インストールしたディスクから起動するには、 ---initrd オプションを外して実行します。 +--initrd と -V オプションを外して実行します。 カーネルは引き続きホストファイルシステム上にあるもの (ここでは ~/nono/virt68k/netbsd-GENERIC.gz) を使います。
To boot from the installed disk, -run without --initrd option. +run without --initrd and -V option. It still uses the kernel on the host filesystem, just like the installer does.