4.3. MPU (68040)
+いくつか未実装の命令があります。
+キャッシュは未実装で、
+それに伴いキャッシュ制御を行う新設命令 CINV*, CPUSH* も未実装です。
+MMU、ATC はおそらく実装完了です。
+FPU はある程度動作すると思いますが
+例外を起こす細かい条件は未検証のため、
+本来は例外が起きてソフトウェア (FPSP) で処理するはずのものが
+68881 相当のハードウェアエミュレーションで実行出来てしまうという
+通常あまり困らないタイプの問題は存分にあります。
+
+命令の実行サイクルについては未考察です。 +そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を +正確にエミュレーションすることはおそらく不可能ですが、 +それにしても似せるところまでも行っていないという意味です。 +
+68040 は X68030 と virt-m68k でのみ選択可能で、 +LUNA-I と NEWS では選択できません。 +NEWS に 68040 搭載モデルはなさそうなのと、 +LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。 +
+
+
+
++命令の実行サイクルについては未考察です。 +そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を +正確にエミュレーションすることはおそらく不可能ですが、 +それにしても似せるところまでも行っていないという意味です。 +
+68040 は X68030 と virt-m68k でのみ選択可能で、 +LUNA-I と NEWS では選択できません。 +NEWS に 68040 搭載モデルはなさそうなのと、 +LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。 +
+
4.4. LUNA の ROM エミュレーション
LUNA-I、LUNA-88K で PROM の外部イメージを指定しない場合
(prom-image が空の場合)、
内蔵の独自 ROM が動作し、コンソールモニタが起動します。
@@ -1571,7 +1637,7 @@ LUNA-I、LUNA-88K で PROM の外部イ
-
4.4. X68030 の ROM (ROM30) エミュレーション
+
4.5. X68030 の ROM (ROM30) エミュレーション
X68030 で ROM30 の外部イメージを指定しない場合
(iplrom2-image が空の場合)、内蔵の独自 ROM が組み込まれます。
本来の ROM30 には SCSIIOCS の他に ROM デバッガなどが含まれていますが、
@@ -1583,7 +1649,7 @@ Human68k を起動する場合はお手
-
4.5. NEWS エミュレーション
+
4.6. NEWS エミュレーション
NEWS エミュレーションは今の所
-X オプションでカーネルを直接起動することしか出来ません。
PROM も NetBSD/news68k
@@ -1597,29 +1663,44 @@ PROM も NetBSD/news68k
-
4.6. virt-m68k エミュレーション
+
4.7. virt-m68k エミュレーション
QEMU の "virt" (架空ハードウェア仕様)の互換機wをサポートしています。
NetBSD/virt68k が動作します。
-X オプション (または設定の exec-file)
-でカーネルを指定してください。
+でカーネルを、
+設定の exec-bootparam でルートデバイスを
+それぞれ
+指定してください。
インストール時には --initrd (または設定の exec-initrd)
で RAM ディスクイメージも指定します。
-また、設定の hostcom-driver でシリアルコンソールを
-どこかに出力するのもほぼ必須だと思います。
+
+
+
+Supports QEMU "virt" virtual hardware's compatible machine and it can run NetBSD/virt68k. You need to specify the kernel by -X option (or exec-file in configuration). If you want to install, you also need to specify the ramdisk image by ---initrd option (or exec-initrd in configuration). -And also, you may need to configure serial console -by hostcom-driver in configuration.+--initrd option (or exec-initrd in configuration). +
+
4.8. シリアルコンソールの端末エミュレーション
+
+virt-m68k (や NEWS) のようにシリアルコンソールしか持たない機種のために、
+メイン画面でシリアルコンソールの端末エミュレーションを実装してあります。
+hostcom-driver = cons とすることで nono のメイン画面に
+シリアルコンソールの内容が表示されます。
+カラーは現状サポートしていませんが、
+ボールド、イタリック、下線などはある程度サポートしています。
+バックログはありませんので、バックログが必要なら
+stdio 等を使ってください。
+
-
4.7. X68030 の Nereid エミュレーション
+
4.9. X68030 の Nereid エミュレーション
現実の Nereid はイーサネット/メモリ/USB の複合拡張ボードで、
このうちメモリは、メインメモリの増設に使える他、
メインメモリとして使わなかった領域をバンクメモリとして使うことも出来ます。
@@ -1682,7 +1763,7 @@ Also, SW8 specifies enable/disable of th
-
4.8. Windrv
+
4.10. Windrv
X68030 で Windrv を一応サポートしています。
Human68k からホストのファイルシステムをアクセスする機構です。
従来の Windrv とはホスト OS の前提が異なるため、
@@ -1732,7 +1813,7 @@ DEVICE = \SYS\WINDRV.SYS
-4.9. ステータスパネル
4.9. ステータスパネル Status Panel
+4.11. ステータスパネル
4.11. ステータスパネル Status Panel
ステータスパネル中央にあるパフォーマンスメータのアイコンは
高速モードの状態を表示しています。
ダブルクリックすると高速/等速モードの指定を切り替えることができます。
@@ -1781,7 +1862,7 @@ or the keyboard buzzer is sounding.
-
4.10. DIPSW 設定ウィンドウ
+
4.12. DIPSW 設定ウィンドウ
DIPSW 設定ウィンドウでの変更はアプリケーション起動中のみ有効です。
またここでの設定は即 VM に反映されますが、
LUNA の場合 DIPSW の状態を
@@ -1792,7 +1873,7 @@ PIO(8255) がラッチするのが概ね
-4.11. メモリダンプモニタ
4.11. メモリダンプモニタ Memory Dump Monitor
+4.13. メモリダンプモニタ
4.13. メモリダンプモニタ Memory Dump Monitor
メモリダンプモニタの出力形式を、バイト、ワード、ロングワード
(m88k ではそれぞれバイト、ハーフワード、ワードと表現します)
から選択できます。
@@ -1835,7 +1916,7 @@ The only last 8 bytes are not editable s
-4.12. デバイスマップモニタ
4.12. デバイスマップモニタ Device Map Monitor
+4.14. デバイスマップモニタ
4.14. デバイスマップモニタ Device Map Monitor
m68k/m88k バスに接続されているデバイスを表示します。
32ビットアドレスのうち上位 8 ビット、256個分を表示しています。
1枠が 16MB になります。
@@ -1849,7 +1930,7 @@ NEWS のデバイスマップは内部
-4.13. キー入力モード
4.13. キー入力モード Key input mode
+4.15. キー入力モード
4.15. キー入力モード Key input mode
LUNA も X68030 もキーボードは通常日本語キーボードです
(LUNA には英語キーボードも存在するようですが…)。
そのため、ホストが日本語キーボードの場合とそうでない場合のために
@@ -1935,7 +2016,7 @@ even though it should not work as a corr
-4.14. キャラクタ入力モードのキーコード対応表
4.14. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
+4.16. キャラクタ入力モードのキーコード対応表
4.16. キャラクタ入力モードのキーコード対応表 Keycode table in the character mode
キャラクタ入力モードでの、ホストから入力した文字と
VM に送信されるキーの対応は次の通りです。
ファンクションキーとカーソルキーは文字ではありませんが
@@ -2050,7 +2131,7 @@ only be typed from the software keyboard
-4.15. JP キーボードモードのキーコード対応表
4.15. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
+4.17. JP キーボードモードのキーコード対応表
4.17. JP キーボードモードのキーコード対応表 Keycode table in the JP keyboard mode
JP キーボードモードでの、ホストキーと VM に送信されるキーの対応は次の通りです。
ここに記載のないキーはソフトウェアキーボードからのみ入力出来ます。
The following table shows the correspondence between @@ -2120,7 +2201,7 @@ the software keyboard window.
-4.16. キーリピート
4.16. キーリピート Key Repeat
+4.18. キーリピート
4.18. キーリピート Key Repeat
LUNA では、キーボードがハードウェア側でキーリピートを行わず、
ソフトウェア(OS など)がキーリピートの処理を行います。
そのため、キーリピートを実装していない LUNA の PROM や
@@ -2224,7 +2305,7 @@ x⏎
You will see a screen like this. The bold text indicates the characters you need to enter.
-NONO 1.0.0 Emulated ROM Monitor for LUNA-I +NONO 1.1.0 Emulated ROM Monitor for LUNA-I ** NVRAM Initialized. @@ -2327,7 +2408,7 @@ b⏎You will see a screen like this. The bold text indicates the characters you need to enter.-NONO 1.0.0 Emulated ROM Monitor for LUNA-88K +NONO 1.1.0 Emulated ROM Monitor for LUNA-88K ** NVRAM Initialized. @@ -2430,15 +2511,30 @@ and nono will terminate when the VM is p@@ -2610,11 +2712,13 @@ wxWidgets (3.0/3.2) のバグと思わ This may be due to wxWidgets (3.0/3.2) bug. (2021/12/30, Updated 2024/07/03) -5.4. NetBSD/virt68k をインストールしてみる
Try installing NetBSD/virt68kここでは NetBSD/virt68k をクリーンインストールする手順だけ紹介します。 -Here I will introduce how to install NetBSD/virt68k.+Here I will introduce how to install NetBSD/virt68k cleanly.
+
- どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、 その中に VM ディレクトリを用意します (例えば ~/nono/virt68k/)。
Create a directory somewhere for nono (for example ~/nono/), 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/ +- 空のディスクイメージを用意します。 1GB でもインストール自体は出来ますが、もう少し大きいほうが安心です。
Prepare an empty disk image file. @@ -2456,39 +2552,45 @@ with following contents. You may also need network configuration.-vmtype = virt-m68k +exec-file = netbsd-GENERIC.gz +exec-bootparam = root=ld0 virtio-block0-image = virt68k.img -hostcom-driver = stdio +fast-mode = 1 hostnet-driver = auto- 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. :(- -- 以下のコマンドラインで起動します。 -
Run as the following:+- インストーラ 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.--nono -c ~/nono/virt68k -f \ - -X <path>/release/virt68k/binary/kernel/netbsd-GENERIC.gz \ +nono -c ~/nono/virt68k \ --initrd <path>/release/virt68k/installation/ramdisks/inst-ramdisk.fs- しばらくすると root パーティションなどを聞かれるので Enter を 4回押します。 -またしばらくすると見慣れたインストーラが起動してきます。 -
After a while, you will be asked about the root partition, etc., -so hit Enter key four times. -After a while again, the familiar installer will start.+- しばらくすると見慣れたインストーラが起動してきます。 +インストールが終わったらトップメニューから e:Utility menu > +g:Halt the system +を選択してください。ゲストの電源がオフになり nono も終了します。 +
After a while, the familiar installer will start. +Once the installation has finished, +choose e:Utility menu > g:Halt the system. +Then the guest will shut down, and nono also will terminate.+ +- インストールしたディスクから起動するには、 +--initrd オプションを外して実行します。 +カーネルは引き続きホストファイルシステム上にあるもの +(ここでは ~/nono/virt68k/netbsd-GENERIC.gz) を使います。 +
To boot from the installed disk, +run without --initrd option. +It still uses the kernel on the host filesystem, +just like the installer does.+-[ 1.0000030] root device (default md0a): ⏎ -[ 1.0200030] dump device (default md0b): ⏎ -[ 1.0300030] file system (default ffs): ⏎ -[ 1.0400030] root on md0a dumps on md0b -[ 1.0600030] kern.module.path=/stand/virt68k/10.99.10/modules -[ 1.1200030] init path (default /sbin/init): ⏎ -[ 1.1400030] init: trying /sbin/init - : +nono -c ~/nono/virt68knono ではありませんが、wxWidgets 3.2 (wxGTK3) は -NetBSD/sparc でウィンドウ内がほぼ描画されないようです。 -wxWidgets 3.0 (wxGTK2) であれば動作します。 - On wxWidgets 3.2 (wxGTK3), it seems that the inside of the window -is hardly drawn at NetBSD/sparc. wxWidgets 3.0 (wxGTK2) can.+nono ではありませんが、wxWidgets 3.2 (with GTK3) は +NetBSD/sparc (などマイナーアーキテクチャ?) +でウィンドウ内がほぼ描画されないようです。 +wxWidgets 3.0 (with GTK2) であれば動作します。 + On wxWidgets 3.2 (with GTK3), it seems that the inside of the window +is hardly drawn at NetBSD/sparc (and such minor architectures?). +wxWidgets 3.0 (with GTK2) can.(2024/07/03)