| CRTC/VC
| △
- | 768x512 のテキスト画面のみサポート Only 768x512 text screen supported
+ 768x512 画面モードのみサポート Only 768x512 screen mode is supported
| FDC/FDD
| ○
|
@@ -1502,8 +1564,8 @@ XP プロセッサのクロック数を
| ◎
|
| グラフィック機能全般 All other graphics
- ×
- | 当面予定なし Not scheduled
+ | △
+ | グラフィック画面(1024x1024 モード)、画面間プライオリティ(合成を除く)、個別画面オンオフのみ実装。これ以外は当面予定なし。
| | Keyboard
| ◎
| TVコントロールを除く Except TV Control
@@ -1614,15 +1676,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 +1716,11 @@ FPU はある程度動作すると思い
68881 相当のハードウェアエミュレーションで実行出来てしまうという
通常あまり困らないタイプの問題は存分にあります。
-命令の実行サイクルについては未考察です。
+命令の実行サイクルについてはある程度似せているつもりですが、
そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を
-正確にエミュレーションすることはおそらく不可能ですが、
-それにしても似せるところまでも行っていないという意味です。
+正確にエミュレーションすることはおそらく不可能です。
-68040 は X68030 と virt-m68k でのみ選択可能で、
-LUNA-I と NEWS では選択できません。
+68040 は X68030 と virt-m68k でのみ選択可能です。
NEWS に 68040 搭載モデルはなさそうなのと、
LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。
@@ -1689,7 +1752,22 @@ Human68k を起動する場合はお手
-4.6. NEWS エミュレーション
+ 4.6. X68030 のグラフィック画面
+
+X68030 のグラフィック画面を一部実装しています。
+これにより NetBSD/x68k の標準設定の X サーバは起動します。
+グラフィック画面として実装しているのは 1024x1024 (16色) モードのみです。
+ビデオコントローラは、画面間プライオリティと画面オンオフを実装しており、
+テキスト画面とグラフィック画面の優先度を変更することは出来ます。
+ただし合成や半透明合成は未実装ですので実質切り替えられるだけです。
+スクロール等 CRTC の機能も未実装です。
+
+
+
+
+
+
+4.7. NEWS エミュレーション
NEWS エミュレーションは今の所
-X オプションでカーネルを直接起動することしか出来ません。
PROM も NetBSD/news68k
@@ -1703,7 +1781,7 @@ PROM も NetBSD/news68k
-4.7. virt-m68k エミュレーション
+ 4.8. virt-m68k エミュレーション
QEMU の "virt" (架空ハードウェア仕様)の互換機wをサポートしています。
NetBSD/virt68k が動作します。
-X オプション (または設定の exec-file)
@@ -1723,7 +1801,7 @@ If you want to install, you also need to
-4.8. シリアルコンソールの端末エミュレーション
+ 4.9. シリアルコンソールの端末エミュレーション
virt-m68k (や NEWS) のようにシリアルコンソールしか持たない機種のために、
メイン画面でシリアルコンソールの端末エミュレーションを実装してあります。
hostcom-driver = cons とすることで nono のメイン画面に
@@ -1735,9 +1813,21 @@ virt-m68k (や NEWS) のようにシリ
+
+
+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.9. X68030 の Nereid エミュレーション
+ 4.11. X68030 の Nereid エミュレーション
現実の Nereid はイーサネット/メモリ/USB の複合拡張ボードで、
このうちメモリは、メインメモリの増設に使える他、
メインメモリとして使わなかった領域をバンクメモリとして使うことも出来ます。
@@ -1798,23 +1888,44 @@ Also, SW8 specifies enable/disable of th
-
+
-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.12. 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.13. Windrv
X68030 で Windrv を一応サポートしています。
Human68k からホストのファイルシステムをアクセスする機構です。
従来の Windrv とはホスト OS の前提が異なるため、
@@ -1865,7 +1976,7 @@ DEVICE = \SYS\WINDRV.SYS
-4.12. ステータスパネル Status Panel
+ 4.14. ステータスパネル Status Panel
ステータスパネル中央にあるパフォーマンスメータのアイコンは
高速モードの状態を表示しています。
ダブルクリックすると高速/等速モードの指定を切り替えることができます。
@@ -1902,8 +2013,8 @@ the user has specified full speed mode a
the VM is running in synchronized mode.
This will happen when any of the following occurs:
-- キー押下中(後述)あるいはキーボードブザー発声中
-
When any keys are pressed (see below),
+- LUNA でキー押下中(後述)あるいはキーボードブザー発声中
+
When any keys are pressed on LUNA (see below),
or the keyboard buzzer is sounding.
- STOP instruction on m68k.
- pseudo STOP state on m88k.
@@ -1914,7 +2025,7 @@ or the keyboard buzzer is sounding.
-4.13. DIPSW 設定ウィンドウ
+ 4.15. DIPSW 設定ウィンドウ
DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。
またここでの設定は即 VM に反映されますが、
LUNA の場合 DIPSW の状態を
@@ -1925,7 +2036,7 @@ PIO(8255) がラッチするのが概ね
-4.14. メモリダンプモニタ Memory Dump Monitor
+ 4.16. メモリダンプモニタ Memory Dump Monitor
メモリダンプモニタの出力形式を、バイト、ワード、ロングワード
(m88k ではそれぞれバイト、ハーフワード、ワードと表現します)
から選択できます。
@@ -1961,14 +2072,14 @@ The only last 8 bytes are not editable s
- SRAM (X68030 Only) …
編集するとただちにファイルも更新します。
The backend file is also updated immediately when edited.
- - TVRAM とテキストパレット (X68030 Only)
Text VRAM and text palette
+ - TVRAM、GVRAM とパレット (X68030 Only)
Text VRAM, Graphic VRAM and palette
-4.15. デバイスマップモニタ Device Map Monitor
+ 4.17. デバイスマップモニタ Device Map Monitor
m68k/m88k バスに接続されているデバイスを表示します。
32ビットアドレスのうち上位 8 ビット、256個分を表示しています。
1枠が 16MB になります。
@@ -1982,7 +2093,7 @@ NEWS のデバイスマップは内部
-4.16. キー入力モード Key input mode
+ 4.18. キー入力モード Key input mode
LUNA も X68030 もキーボードは通常日本語キーボードです
(LUNA には英語キーボードも存在するようですが…)。
そのため、ホストが日本語キーボードの場合とそうでない場合のために
@@ -2068,7 +2179,7 @@ even though it should not work as a corr
-4.17. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
+ 4.19. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
キャラクタ入力モードでの、ホストから入力した文字と
VM に送信されるキーの対応は次の通りです。
ファンクションキーとカーソルキーは文字ではありませんが
@@ -2183,7 +2294,7 @@ only be typed from the software keyboard
-4.18. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
+ 4.20. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。
ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。
The following table shows the correspondence between
@@ -2253,7 +2364,7 @@ the software keyboard window.
-4.19. キーリピート Key Repeat
+ 4.21. キーリピート Key Repeat
LUNA では、キーボードがハードウェア側でキーリピートを行わず、
ソフトウェア(OS など)がキーリピートの処理を行います。
そのため、キーリピートを実装していない LUNA の PROM や
@@ -2262,7 +2373,7 @@ NetBSD/luna68k のブートローダで
キーリピートを起こす間隔をゲストのソフトウェアが測定しているということは、
VM が高速動作するとキーリピートもそれに合わせて発生することになり、
これをホスト側から防ぐ手段はありません。
-そこで nono ではキー入力が発生している間
+そこで nono では LUNA でキー入力が発生している間
(キーが一つでも押されてからキーが全て離されるまでの間)、
高速モードが指示されていても VM を一時的に等速モードに落として実行します。
上記のアイコンがそれを区別しているのはこのためです。
@@ -2281,7 +2392,7 @@ if the VM is running faster than the rea
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.
+while any keys are pressed on LUNA.
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.
@@ -2352,7 +2463,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.5.0 Emulated ROM Monitor for LUNA-I
** NVRAM Initialized.
@@ -2398,11 +2509,11 @@ and nono will terminate when the VM is p
5.2. OpenBSD/luna88k を実行してみる Try OpenBSD/luna88k
-あおやまさんが OpenBSD/luna88k 7.6 の liveimage を用意されています。
+あおやまさんが OpenBSD/luna88k 7.7 の liveimage を用意されています。
Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.6.
-- https://bsd.network/@ao_kenji/113300210182705408
+
- https://bsd.network/@ao_kenji/114436150104520496
ここではこれを起動してみます。 Let's try it.
@@ -2413,10 +2524,10 @@ and nono will terminate when the VM is p
and create subdirectories for individual VMs in it
(for example ~/nono/luna88k/).
- - 以下のリンクから liveimage-luna88k-raw-20241013.img.gz
+
- 以下のリンクから liveimage-luna88k-raw-20250518.img.gz
をダウンロードして展開し、
VM ディレクトリ ~/nono/luna88k/ に置きます。
-
Download liveimage-luna88k-raw-20241013.img.gz from the following link,
+Download liveimage-luna88k-raw-20250518.img.gz from the following link,
extract it and place it in the VM directory, ~/nono/luna88k/.
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.5.0 Emulated ROM Monitor for LUNA-88K
** NVRAM Initialized.
@@ -2513,22 +2624,16 @@ vmtype = x68030
spc0-id0-image = hd,liveimage-x68k-with-packages-20250106.hds
- - 初回のみ nono -c ~/nono/x68k --create-sram を実行します。
-これで VM ディレクトリに初期状態の SRAM.DAT が作られます。
-
Only the first time, run as nono -c ~/nono/x68k --create-sram.
-This will create an initial SRAM.DAT in the VM directory.
-
- - 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.
+ - nono -c ~/nono/x68k で起動します
+(VM ディレクトリに自動的に SRAM.DAT が作られます)。
+
Run as nono -c ~/nono/x68k
+(SRAM.DAT will be created automatically in the VM directory).
-- 初回起動後数時間はめちゃくちゃ重たいですが、
+
- 初回の NetBSD/x68k 起動後数時間はめちゃくちゃ重たいですが、
これはバックグラウンドで makemandb が動くためで
nono のせいではありません(>_<)。
-
At the first boot, you will feel it's too heavy for several hours.
+At the first NetBSD/x68k 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 the accident which is far from the ideal
@@ -2550,8 +2655,8 @@ and nono will terminate when the VM is p
5.4. NetBSD/virt68k をインストールしてみる Try installing NetBSD/virt68k
-ここでは NetBSD/virt68k をクリーンインストールする手順だけ紹介します。
- Here I will introduce how to install NetBSD/virt68k cleanly.
+ここでは NetBSD/virt68k をインストールする手順を紹介します。
+ Here I will introduce how to install NetBSD/virt68k.
@@ -2561,19 +2666,16 @@ and nono will terminate when the VM is p
and create subdirectories for individual VMs in it
(for example ~/nono/virt68k/).
-- NetBSD/virt68k のインストールセットはまだ用意されてないようなので、
-NetBSD のソースコードから build.sh でビルドします。
-
There doesn't seem to be the official NetBSD/virt68k set available yet.
-You have to build it manually from the source code using build.sh. :(
-
- - インストーラを起動するカーネルとその後運用するカーネルは同じものなので
-VM ディレクトリ内に持ってきておくとよいです。
-
The kernel used for installation and the kernel used for operation
-are the same.
-So it would be good idea to bring it into the VM directory at this point.
-
-cp <path>/release/virt68k/binary/kernel/netbsd-GENERIC.gz ~/nono/virt68k/
-
+ - NetBSD/virt68k を含む 11.0 は執筆時点ではまだリリースされていませんが、
+公式サイトにリリースブランチのデイリービルドがあります。
+以下のリンクから netbsd-GENERIC.gz (カーネル) と
+inst-ramdisk.fs (インストーライメージ) をダウンロードします。
+
+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
+
- 空のディスクイメージを用意します。
1GB でもインストール自体は出来ますが、もう少し大きいほうが安心です。
@@ -2603,8 +2705,7 @@ RAM ディスク指定のほうが優先
By the way, configuration file specifies root device as ld0,
but RAM disk specified by the command line will take precedence.
-nono -c ~/nono/virt68k \
- --initrd <path>/release/virt68k/installation/ramdisks/inst-ramdisk.fs
+nono -c ~/nono/virt68k --initrd inst-ramdisk.fs
- しばらくすると見慣れたインストーラが起動してきます。
| | | |