-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.
-例えば、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
@@ -1326,17 +1681,6 @@ clear the write permission from the imag
_EOM_
);
-config_item("spc0-idN-writeprotect = integer", <<<_EOM_
-(LUNA and X68030 Only)
-古いオプションです。
-代わりに spc0-idN-writeignore を使ってください。
-このオプションは開発用です。
-Obsolete.
-Use spc0-idN-writeignore instead.
-This option is for developers.
-_EOM_
-);
-
config_item("sram-sync-ramsize = integer", <<<_EOM_
(X68030 Only)
SRAM の RAM 容量欄を実際の RAM サイズに合わせるかどうかを指定します。
@@ -1348,8 +1692,8 @@ SRAM の \$ed0008.L (RAM 容量) を ram
デフォルトは 1 です。
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.
@@ -1357,28 +1701,118 @@ The default is 1.
_EOM_
);
-config_item("xxx-news-sic-ignore = integer",
-<<<_EOM_
-(NEWS Only)
-未実装の SCSI コントローラおよび DMA
-コントローラ領域へのアクセスを無視するか指定します。
-現状 (2022/08)、NetBSD/m68k はこの領域へのバスエラーを処理できず、
-uvm_fault のパニックを起こしてしまいます。
-1 にするととりあえず si(4) へのアクセスが不調に終わって
-(他に問題がなければ) NetBSD/news68k が起動できます。
-デフォルトは 0 です。
-このオプションは暫定的なもので将来廃止される予定です。
-
-Specifies whether to ignore accesses to unimplemented
-SCSI controller and DMA controller areas.
-As of Aug. 2022, NetBSD/m68k can not handle bus errors to this area,
-and it happens uvm_fault panic.
-Specifying 1 avoids it and NetBSD/news68k can boot.
-The default value is 0.
-This option is temporary and will be discontinued in the future.
+config_item("virtio-blockN-image = path", <<<_EOM_
+(virt-m68k Only)
+VirtIO ブロックデバイスのディスクイメージを指定します。
+キーの N は現状 0 から 7 が指定可能です。
+イメージパスが相対パスなら VM ディレクトリからの相対パスになります。
+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.
+_EOM_
+);
+
+config_item("virtio-blockN-writeignore = integer", <<<_EOM_
+(virt-m68k Only)
+指定の VirtIO ブロックデバイスへの書き込みをイメージに書き戻すかどうか指定します。
+詳細は spc0-idN-writeignore を参照してください。
+Specifies whether nono writes a writing to VirtIO block devices back
+to the diskimage.
+See spc0-idN-writeignore for details.
+_EOM_
+);
+
+config_item("virtio-entropy = integer", <<<_EOM_
+
+VirtIO エントロピーデバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+You can disable VirtIO entropy device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
+config_item("virtio-net = integer", <<<_EOM_
+
+VirtIO ネットワークデバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+You can disable VirtIO network device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
+config_item("virtio-scsi = integer", <<<_EOM_
+
+VirtIO SCSI デバイスを無効にすることが出来ます。
+0 なら無効、1 なら有効です。デフォルトは 1 です。
+You can disable VirtIO SCSI device.
+0 means disabled, 1 means enabled.
+The default is 1.
+
+_EOM_
+);
+
+config_item("virtio-scsi-idN-image = devtype[,path]", <<<_EOM_
+(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.
+_EOM_
+);
+
+config_item("virtio-scsi-idN-writeignore = integer", <<<_EOM_
+(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.
+_EOM_
+);
+
+config_item("windrv-path = path", <<<_EOM_
+(X68030 Only)
+Windrv でゲスト側に見せるホストディレクトリを指定します。
+今の所指定できるディレクトリは1つだけです。
+空なら Windrv デバイスが存在しないように振る舞います。
+デフォルトは空です。
+_EOM_
+);
+
+config_item("x68k-cut-fc2 = integer", <<<_EOM_
+(X68030 Only)
+MPU (68030) の FC2 ピンを切断するかどうかを指定します。
+0 なら切断しません (標準の状態)。
+1 なら切断します。
+デフォルトは 1 です。
+NetBSD/x68k で X サーバを起動する場合のみ 1 にする必要があります。
+Specifies whether to cut MPU(68030) FC2 pin.
+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.
+_EOM_
+);
+
+config_item("xp-clock = value", <<<_EOM_
+(LUNA Only)
+XP プロセッサのクロック数を MHz 単位で指定します。
+デフォルトは 6.144 [MHz] です。
+Specifies the XP processor's clock in MHz.
+The default value is 6.144 MHz.
_EOM_
);
+
?>
@@ -1420,7 +1854,7 @@ _EOM_
Cache not implemented
+MPU (68030) ◎
FPU (68881) ◎
BT454 ◎
CRTC2 ○ 標準で使用する値のみサポート
@@ -1428,13 +1862,14 @@ Frame buffer ◎
Keyboard/Mouse ◎
SIO (uPD7201) ◎
PIO (8255) ○
-Ethernet (AM7990) ◎ マルチキャストフィルタを除く Except multicast filter
+Ethernet (AM7990) ◎
NVRAM&RTC (MK48T02) ◎
Front LCD ◎
SPC (MB89352) ◎
SCSI HD/CD/MO Devices ○
XP(HD647180) CPU △
XP(HD647180) Timer0/1 ○
+XP(HD647180) ASCI ○
XP(HD647180) その他の内蔵デバイス
Other internal devices
×
XP 周辺デバイス Peripheral devices
×
電源 Power Circuit
○
@@ -1446,15 +1881,18 @@ MPU (88110) — 実装予定なし N
FUSEROM ○
X68030
-MPU (68030) ○ キャッシュ未実装、ファンクションコード未実装 Cache and FC not implemented
-MPU (68EC030) — 実装予定なし Not planned
+MPU (68030) ◎ 68EC030 は実装予定なし 68EC030 is not planned
FPU (68881) ◎ 68882 は未実装 68882 not implemented
-DMAC ○
-CRTC/VC △ 768x512 のテキスト画面のみサポート Only 768x512 text screen supported
+MPU (68040) △ キャッシュ未実装、実行サイクル未考察
+DMAC △
+CRTC/VC △ 768x512 画面モードのみサポート Only 768x512 screen mode is supported
FDC/FDD ○
-標準・拡張エリアセット Areaset
×
-ADPCM/OPM ×
-グラフィック機能全般 All other graphics
× 当面予定なし Not scheduled
+標準・拡張エリアセット Areaset
◎
+ADPCM ○ フィルタ未実装、録音は実装予定なし Filter is not implemented. Recording is not planned
+OPM ×
+テキスト画面Text screen
○
+コントラスト Contrast
◎
+グラフィック機能全般 All other graphics
△ グラフィック画面(1024x1024 モード)、画面間プライオリティ(合成を除く)、個別画面オンオフのみ実装。これ以外は当面予定なし。
Keyboard ◎ TVコントロールを除く Except TV Control
Mouse ◎ 本体接続のみ
MFP △
@@ -1466,19 +1904,19 @@ SCSI HD/CD/MO Devices ○
SCC (Z8530) ◎
SRAM ◎
システムポートSystem port
△
-テキスト画面Text screen
○
電源 Power curcuit
○
-Nereid Ethernet ◎ マルチキャストフィルタを除く Except multicast filter
-Nereid Bank memory ◎
+Nereid Ethernet ◎
+Nereid Bank memory ◎
Nereid USB — 実装予定なし Not planned
拡張メモリ Extended memory
○
+Windrv △
NWS-1750
-MPU (68030) ○ キャッシュ未実装 Cache not implemented
+MPU (68030) ◎
FPU (68881) ◎ 68882 は未実装 68882 not implemented
PROM ×
SCC (Z8530) ◎ チャンネル A のみホストに接続 Only channel A is connected to the host
-Ethernet (AM7990) ◎ マルチキャストフィルタを除く Except multicast filter
+Ethernet (AM7990) ◎
NVRAM&RTC (MK48T02) ◎
Video Board ×
Keyboard/Mouse ×
@@ -1487,17 +1925,33 @@ IDROM, DIP-SW, 100Hz Timer, 診断用LED
AST, Lv2Intr ×
電源 Power Circuit
×
+virt-m68k
+MPU (68030) ◎
+FPU (68881) ◎ 68882 は未実装 68882 not implemented
+MPU (68040) △ キャッシュ未実装、実行サイクル未考察
+Goldfish PIC ◎
+Goldfish RTC ◎
+Goldfish Timer ◎
+Goldfish TTY ○
+VirtIO Block ○
+VirtIO Network ○
+VirtIO Entropy ◎
+VirtIO SCSI ○
+Power Control ○
+
__EOM__;
$table_lines = preg_split("/\n/", $table);
foreach ($table_lines as $line) {
if ($line == "") {
continue;
- } else if (preg_match("/\t/", $line) == false) {
+ } else if (preg_match("/\t/", $line) == 0) {
// table title
- print "| {$br}{$line}\n";
- $br = "";
+ print " |
| {$line}\n";
} else {
- list ($h, $m, $d) = preg_split("/\t+/", $line, 3);
+ $t = preg_split("/\t+/", $line, 3);
+ $h = isset($t[0]) ? $t[0] : "";
+ $m = isset($t[1]) ? $t[1] : "";
+ $d = isset($t[2]) ? $t[2] : "";
print " |
| {$h}\n";
print " | {$m}\n";
print " | {$d}\n";
@@ -1510,13 +1964,31 @@ __EOM__;
-68030 はキャッシュが未実装です。
-これに伴い命令の所要クロック数もまだ正しくなく、
-そのためクロック測定などでは正確な値が出ません。
-また ATC (アドレス変換キャッシュ) は実際の仕様とは異なり高速化してあります。
-68030 cache is not implemented.
-Therefore, number of clock cycle is not correct.
-ATC (Address Translation Cache) is differ from and faster than the real 68030.
+MMU、キャッシュあたりはほぼ実装していると思います。
+命令の実行サイクルについてはある程度似せているつもりですが、
+68000 のようにサイクル数を正確に数えるのは困難です。
+
+
+
+
+
+いくつか未実装の命令があります。
+キャッシュは未実装で、
+それに伴いキャッシュ制御を行う新設命令 CINV*, CPUSH* も未実装です。
+MMU、ATC はまだ怪しいです。
+FPU はある程度動作すると思いますが
+例外を起こす細かい条件は未検証のため、
+本来は例外が起きてソフトウェア (FPSP) で処理するはずのものが
+68881 相当のハードウェアエミュレーションで実行出来てしまうという
+通常あまり困らないタイプの問題は存分にあります。
+
+命令の実行サイクルについてはある程度似せているつもりですが、
+そもそも 68040 はパイプライン方式なので 68000 時代のようにサイクル数を
+正確にエミュレーションすることはおそらく不可能です。
+
+68040 は X68030 と virt-m68k でのみ選択可能です。
+NEWS に 68040 搭載モデルはなさそうなのと、
+LUNA では 68040 搭載モデルは LUNA-I ではなく LUNA-II になるからです。
@@ -1542,8 +2014,107 @@ Human68k を起動する場合はお手
-
-
+
+
+X68030 のグラフィック画面を一部実装しています。
+これにより NetBSD/x68k の標準設定の X サーバは起動します。
+グラフィック画面として実装しているのは 1024x1024 (16色) モードのみです。
+ビデオコントローラは、画面間プライオリティと画面オンオフを実装しており、
+テキスト画面とグラフィック画面の優先度を変更することは出来ます。
+ただし合成や半透明合成は未実装ですので実質切り替えられるだけです。
+スクロール等 CRTC の機能も未実装です。
+
+
+
+
+
+NEWS エミュレーションは今の所
+-X オプションでカーネルを直接起動することしか出来ません。
+PROM も NetBSD/news68k
+の起動と終了に最低限必要な程度が誤魔化してあるだけです。
+また、デバイスの配置や、デバイスが存在しないアドレスへのアクセスが
+どうなるかなどは実機確認をしていないため分かりません。
+従って、動くものは動く、程度のものでしかありません。
+というかネタです。
+
+
+
+
+
+QEMU の "virt" (架空ハードウェア仕様)の互換機wをサポートしています。
+NetBSD/virt68k が動作します。
+-X オプション (または設定の exec-file)
+でカーネルを、
+設定の exec-bootparam でルートデバイスを
+それぞれ指定してください。
+インストール時には --initrd (または設定の exec-initrd)
+で RAM ディスクイメージも指定します。
+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).
+
+
+
+
+
+virt-m68k (や NEWS) のようにシリアルコンソールしか持たない機種のために、
+メイン画面でシリアルコンソールの端末エミュレーションを実装してあります。
+hostcom-driver = console とすることで nono のメイン画面に
+シリアルコンソールの内容が表示されます。
+
+概ね VT220 互換です。
+ただし倍角文字、背景色切り替え、タブ設定等サポートしてないものもあります。
+VT220 互換のためカラーはサポートしていません。
+132 桁モードをサポートしました。
+ブリンクをサポートしました。
+VT220 にはないイタリックはサポートしています。
+
+バックログはありませんので、バックログが必要なら
+stdio 等を使ってください。
+
+
+
+ディスクイメージ Disk image "); ?>
+
+
+HD, CD, MO, FD 等のディスクイメージは QCOW2 形式と生イメージをサポート
+しています。
+QCOW2 形式かどうかはヘッダのマジックで自動判別しますが、
+判別できないものはすべて生イメージとして扱います。
+QCOW2 and raw format are supported for the disk images for
+HD, CD, MO and FDs.
+
+
+
+QCOW2 形式のうち、外部バッキングファイル (CoW) を持つもの、
+zstd 圧縮されたもの、
+暗号化されているもの
+は未対応です。
+また refcount が 16 ビットでないものも未対応ですが通常遭遇しないはず。
+イメージがスナップショットを持っている場合、
+スナップショットに関与せず最新の状態だけを読み書きします。
+イメージが zlib 圧縮されているものについては読み込み専用でのみ対応しています。
+書き込みは技術的には可能ですが仕組みを考えると嬉しくないので対応しません。
+
+
+
+
+
+
+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) です。
+
+
+
+Nereid emulation on X68030"); ?>
+
現実の Nereid はイーサネット/メモリ/USB の複合拡張ボードで、
このうちメモリは、メインメモリの増設に使える他、
メインメモリとして使わなかった領域をバンクメモリとして使うことも出来ます。
@@ -1572,7 +2143,7 @@ Originally, SW6 and SW7 can be arbitrari
SW6 and SW7 are fixed to be OFF on board #0, and
SW6 and SW7 are fixed to be ON on board #1.
-
+
| #0 (nereid0-*) | #1 (nereid1-*)
|
|---|
ベースアドレス・割り込みベクタ
Base address and interrupt vectors
| $ece300,$f9,$fb (SW7=OFF)
@@ -1601,13 +2172,91 @@ Otherwise, the bank memory will be alloc
Thus, nereidN-ram-size specifies this value.
Also, SW8 specifies enable/disable of the bank memory regardless of the size,
nereidN-ram-size = 0 (or less) means disabling the bank memory.
-
+
-
+Time Synchronization on NetBSD/x68k"); ?>
-NEWS エミュレーションは未完成です。
-今の所 -X でカーネルを直接起動することしか出来ません。
+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
+
+を実行してください)
+
+
+
+
+
+X68030 で Windrv を一応サポートしています。
+Human68k からホストのファイルシステムをアクセスする機構です。
+従来の Windrv とはホスト OS の前提が異なるため、
+既存実装からの移植ではありませんし、
+そもそも Human68k とホスト(UNIX)ファイルシステムの差異による制約も多くあります。
+これらを把握してから使用してください。
+
+- ファイル名は21文字すべて認識します。
+22文字以上(というか 18.3 形式以外)のファイル名はゲストからは見えません。
+
- ファイル名中の ASCII 以外の文字には現状対応していません。
+これらの文字を含むファイルはゲストからは見えません。
+
- マルチピリオドには対応していません。
+このようなファイルはゲストからは見えません。
+
- 大文字小文字は区別しません。
+大文字小文字だけが違う同名のファイル (例えば a.BAK と a.bak) があると、
+検索(FILES/NFILES) には現れません。
+この状況で a.Bak (大文字小文字を区別していれば違うファイル)
+を新規作成しようとすると (大文字小文字を区別しないゲスト OS からは
+a.Bak というエントリは存在しないように見えるにも関わらず)
+作成できなくしてあります。
+
- ファイルサイズが 2GB 以上のファイルはゲストからは見えません。
+
- Human68k 側の属性は A(アーカイブ)/D(ディレクトリ)/R(読み込み専用)
+のみ対応しています。
+S(システム)/H(隠しファイル)属性は保存されません。
+
- ホストのシンボリックリンクは、リンク先の
+ファイルもしくはディレクトリとして見えます。
+またリンク先が Windrv のルートパスの外側を指していても構いません。
+
- ファイルのロックには対応していません。
+
- WindrvXM.sys による拡張動作には対応していません。
+windrv 互換として動作します。
+
- TwentyOne.x は現状 +T/-C/-P/-S (いずれもデフォルト) 相当だと思います。
+TwentyOne.x が常駐していないとか、
+これ以外のオプションの時にどうなるかは把握していません。
+
- lndrv.x によるゲスト側のシンボリックリンク機能には未対応です。
+
+
+Windrv を使用する場合、まず nono
+の設定ファイルに windrv-path を設定します。
+次にゲストの Human68k の CONFIG.SYS に WINDRV.SYS (または WindrvXM.sys)
+を設定してください。
+
+
+DEVICE = \SYS\WINDRV.SYS
+
+
@@ -1667,6 +2316,7 @@ LUNA の場合 DIPSW の状態を
PIO(8255) がラッチするのが概ね起動時および再起動時のみとなっています
(厳密には PROM と XP が云々ですが)。
+
Memory Dump Monitor"); ?>
@@ -1675,19 +2325,20 @@ PIO(8255) がラッチするのが概ね
から選択できます。
また 68030/88200 の MMU ディスクリプタとして表示させることもできます
(この位置が正しいディスクリプタかどうかは関係なく表示します)。
-逆アセンブルも、逆アセンブルウィンドウからこちらにマージしました。
-LUNA-I なら m68k、HD64180 の逆アセンブルが、
-LUNA-88K なら m88k、HD64180 の逆アセンブルが、
-X68030 と NEWS なら m68k の逆アセンブルが選択できます。
+逆アセンブルは、
+LUNA-I なら m68k と HD64180 の逆アセンブルが、
+LUNA-88K なら m88k と HD64180 の逆アセンブルが、
+X68030/virt-m68k/NEWS なら m68k の逆アセンブルが選択できます。
On memory dump monitor,
-you can choose the output format from byte, word and longword
+you can select the output format from byte, word and longword
(In m88k, it is represented as byte, halfword and word respectively).
-Also you can choose 68030/88200 MMU descriptor format
+Also you can select 68030/88200 MMU descriptor format
(It displays regardless of whether this address is used as descriptor or not).
Disassemble is now merged from disassemble monitor.
-On LUNA-I, you can choose m68k and HD64180 disassemble.
-On LUNA-88K, you can choose m88k and HD64180 disassemble.
-On X68030 and NEWS, you can choose m68k disassemble.
+On LUNA-I, you can select m68k and HD64180 disassemble.
+On LUNA-88K, you can select m88k and HD64180 disassemble.
+On X68030/virt-m68k/NEWS,
+you can select m68k disassemble.
表示されているダンプ値をダブルクリックすることでメモリの値を編集できます。
編集できるのはメモリと以下の部分のみです。
@@ -1696,17 +2347,44 @@ Only memory and the following areas are
- NVRAM (LUNA and NEWS Only) …
編集するとただちにファイルも更新します。
-後ろの8バイトは時計レジスタを兼ねているため編集不可です。
+後ろの8バイトのみ時計レジスタを兼ねているため編集不可です。
The backend file is also updated immediately when edited.
-The last 8 bytes are not editable since there are the clock register.
+The only last 8 bytes are not editable since there are the clock registers.
- Bitmap framebuffer (LUNA Only) … 共通プレーンは書き込み不可です。
The common plane is not editable.
- 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
+
+
+
+
+Page Table Monitor"); ?>
+
+68030 と 68040 のページテーブルを一覧できるモニタです。
+88200 は未対応です。
+68030 はバリエーションが多すぎるのですべてには対応していません。
+ 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.
+
+- 現状、段数は TIC までの3段階まで、FCL には未対応です。
+
Up to 3-levels (From TIA to TIC). No FCL supported.
+ - アーリーターミネーションと間接ディスクリプタは表示で区別していませんので
+自身で判断してください。
+
An early termination and indirect descriptor are not distinguished
+in the display.
+ - ルートポインタの切り替えは、68040 ではそのまま
+SRP/URP レジスタの切り替えです。
+68030 では TC によって SRP/CRP の使い方が変わるため、
+SRP/CRP の切り替えではなく
+スーパーバイザ状態/ユーザ状態でのルートポインタを選択します。
+
The root pointer switching on 68040 is SRP/URP as is.
+On 68030, it switches supervisor-state/user-state.
+
Device Map Monitor"); ?>
@@ -1716,7 +2394,10 @@ m68k/m88k バスに接続されている
また、X68030 ではこのうち 24ビット空間を別モニタで表示します。
こちらは 1枠 8KB x 2048個です。
どちらも内部構造を表示しているだけなので名前に馴染みがない場合があるかもしれません。
+NEWS のデバイスマップは内部構造の都合上、
+内部状態を正確に反映していないケースがあるかも知れません。
+
Key input mode"); ?>
@@ -1823,7 +2504,7 @@ only be typed from the software keyboard
.keytable-whole {
display: inline-block;
vertical-align: top;
- border: solid 1px;
+ border-bottom: solid 1px;
}
.keytable-middle {
margin-left: 1em;
@@ -1832,16 +2513,25 @@ only be typed from the software keyboard
.keytable-head {
text-align: left;
+ border-top: solid 1px;
border-bottom: solid 1px;
}
.keytable-headl {
padding-right: 1em;
+ border-left: solid 1px;
+ border-right: solid 1px;
+}
+.keytable-headr {
+ border-right: solid 1px;
}
.keytable-tdl {
padding-right: 1em;
+ border-left: solid 1px;
+ border-right: solid 1px;
}
.keytable-tdr {
+ border-right: solid 1px;
}
The following table shows the correspondence between
the host key and the guest key.
-The keys that not listed in this table can only be enter from
+The keys that not listed in this table can only be entered from
the software keyboard window.
@@ -1965,24 +2655,24 @@ the software keyboard window.
[]] []]
[,] [,]
[.] [.]
+
[/] [/]
[_] [_]
-
[ESC] [ESC]
[TAB] [TAB]
[CTRL] [CTRL]
- [BS] [BS]
- [Enter] [Enter]
- [F1] 〜 [F10] [PF1] 〜 [PF10]
- [F11] [PF10]
[SHIFT-L] [SHIFT-L]
[SHIFT-R] [SHIFT-R]
+ [Enter] [Enter]
[↑] [↑]
[←] [←]
[→] [→]
[↓] [↓]
- [DEL] Numpad[DEL]
+ [BS] [BS]
+ [Delete] [DEL]
+ [F1] 〜 [F10] [PF1] 〜 [PF10]
+ [F11] [PF10]
Numpad[0]〜[9] Numpad[0]〜[9]
Numpad[+] Numpad[+]
Numpad[-] Numpad[-]
@@ -1991,13 +2681,20 @@ the software keyboard window.
Numpad[=] Numpad[=]
Numpad[.] Numpad[.]
Numpad[Enter] Numpad[Enter]
+
+ [Home] [HOME]
+ [Insert] [INS]
+ [PageUp] [ROLL UP]
+ [PageDown] [ROLL DOWN]
+ [End] [UNDO]
__EOM__;
$table = array();
- $table[0] = array();
- $table[1] = array();
- $table[2] = array();
+ $table[0] = array(); // 1段目(共通)
+ $table[1] = array(); // 1段目(共通)
+ $table[2] = array(); // 1段目(共通)
+ $table[3] = array(); // 2段目(X68030)
$i = 0;
- foreach (split("\n", $str) as $s) {
+ foreach (explode("\n", $str) as $s) {
if ($s == "") {
$i++;
continue;
@@ -2008,13 +2705,22 @@ __EOM__;
}
for ($j = 0; $j < count($table); $j++) {
+ if ($j == 3) {
+ print " \n";
+ }
+
+ $caption = "";
switch ($j) {
case 0: $classname = "left"; break;
case 1: $classname = "middle"; break;
case 2: $classname = "right"; break;
+ case 3: $classname = "left"; $caption = "(X68030 Only)"; break;
}
print "\n";
+ if ($caption != "") {
+ print "{$caption}\n";
+ }
print "";
print "| HostKey";
print " | GuestKey\n";
@@ -2060,7 +2766,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.
@@ -2099,16 +2805,11 @@ extract it and place it in the VM direct
以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna/
に作成します。
-ここでは説明を簡単にするためネットワークなしにしていますが、
-ネットワーク設定は必要に応じて行ってください。
Create a configuration file nono.cfg in the VM directory, ~/nono/luna/,
-with following contents.
-By the way, to simplify the explanation, we assume there is no network here.
-However, please configure the network if necessary.
+with following contents.
vmtype = luna
spc0-id6-image = hd,liveimage-luna68k-with-packages-20210910.img
-hostnet-driver = none
nono -c ~/nono/luna で起動します
@@ -2179,11 +2880,11 @@ and nono will terminate when the VM is p
Try OpenBSD/luna88k"); ?>
-あおやまさんが OpenBSD/luna88k 7.0 の liveimage を用意されています。
- Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.0.
+あおやまさんが OpenBSD/luna88k 7.7 の liveimage を用意されています。
+ Aoyama-san has provided a liveimage of OpenBSD/luna88k 7.6.
-- https://twitter.com/ao_kenji/status/1473611893386661888
+
- https://bsd.network/@ao_kenji/114436150104520496
ここではこれを起動してみます。 Let's try it.
@@ -2194,10 +2895,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-20211221.img.gz
+以下のリンクから liveimage-luna88k-raw-20250518.img.gz
をダウンロードして展開し、
VM ディレクトリ ~/nono/luna88k/ に置きます。
-Download liveimage-luna88k-raw-20211221.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/.
以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/luna88k/
に作成します。
-ここでは説明を簡単にするためネットワークなしにしていますが、
-ネットワーク設定は必要に応じて行ってください。
Create a configuration file nono.cfg in the VM directory, ~/nono/luna88k/,
-with following contents.
-By the way, to simplify the explanation, we assume there is no network here.
-However, please configure the network if necessary.
+with following contents.
vmtype = luna88k
-spc0-id6-image = hd,liveimage-luna88k-raw-20211221.img
-hostnet-driver = none
+spc0-id6-image = hd,liveimage-luna88k-raw-20241013.img
nono -c ~/nono/luna88k で起動します
@@ -2263,9 +2959,10 @@ and nono will terminate when the VM is p
Try NetBSD/x68k"); ?>
-つついさんが NetBSD/x68k 9.2 の liveimage を用意されています。
+つついさんが NetBSD/x68k 10.1 の liveimage を用意されています。
ここではこれを起動してみます。
- Tsutsui-san has provided a liveimage of NetBSD/x68k 9.2. Let's try it.
+ Tsutsui-san has provided a liveimage of NetBSD/x68k 10.1.
+Let's try it.
- どこかに nono 用のディレクトリを用意し(例えば ~/nono/)、
@@ -2274,50 +2971,42 @@ and nono will terminate when the VM is p
and create subdirectories for individual VMs in it
(for example ~/nono/x68k/).
-
- 以下のリンクから
-plain-install か with-packages のお好みのほうをダウンロードして展開し、
-VM ディレクトリ ~/nono/x68k/ に置きます。
-
Download your favorite one of plain-install or with-packages
-from the following link,
-extract it and place it in the VM directory, ~/nono/x68k/.
+ - 以下のサイトから
+「パッケージインストール設定済み版」か
+「インストーラでインストールしたところまでの未設定版」の
+お好みのほうをダウンロードします。
+迷ったら「パッケージインストール設定済み版」がよいでしょう。
+ダウンロードできたら展開して、VM ディレクトリ ~/nono/x68k/ に置きます。
+
Download your favorite one of with-packages or plain-install
+from the following site.
+Extract it and place it in the VM directory, ~/nono/x68k/.
-http://teokurebsd.org/netbsd/liveimage/20210613-x68k/
+http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage/x68k.html
- 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/x68k/
に作成します。
-ここでは説明を簡単にするためネットワークなしにしていますが、
-ネットワーク設定は必要に応じて行ってください。
Create a configuration file nono.cfg in the VM directory, ~/nono/x68k/,
-with following contents.
-By the way, to simplify the explanation, we assume there is no network here.
-However, please configure the network if necessary.
+with following contents.
vmtype = x68030
-spc0-id0-image = hd,liveimage-x68k-with-packages-20210613.hds
-hostnet0-driver = none
+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 an accident which is far from the ideal
+It's very sad to me that the accident which is far from the ideal
is the first experiences of newcomers.
- NetBSD が起動した後なら (正確には powerd(8) が起動していれば)、
@@ -2331,21 +3020,113 @@ and nono will terminate when the VM is p
+
+
+Try installing NetBSD/virt68k"); ?>
+
+ここでは NetBSD/virt68k 11.0_RC2 をインストールする手順を紹介します。
+ Here I will introduce how to install NetBSD/virt68k 11.0_RC2.
+
+
+
+- どこかに 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 を含む 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://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.
+(If you doesn't have qemu-img, create a raw image by using dd instead.)
+
+qemu-img create -f qcow2 virt68k.qcow2 2G
+
+or
+
+dd if=/dev/zero of=virt68k.img bs=1m count=2048
+
+
+ - 以下の内容の設定ファイル nono.cfg を VM ディレクトリ ~/nono/virt68k
+に作成します。
+
Create a configuration file nono.cfg in the VM directory, ~/nono/virt68k/,
+with following contents.
+
+vmtype = virt-m68k
+fast-mode = 1
+virtio-block0-image = virt68k.qcow2 # or virt68k.img
+exec-file = netbsd-GENERIC.gz
+exec-bootparam = root=ld0
+
+
+ - インストーライメージからインストーラを起動します。
+設定ファイルでは運用時のためにルートデバイスを 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 -V exec-bootparam=
+
+
+ - しばらくすると見慣れたインストーラが起動してきます。
+インストールが終わったらトップメニューから e:Utility menu >
+g:Halt the system
+を選択してください。ゲストの電源がオフになり nono も終了します。
+
After a while, the familiar installer will start.
+Once the installation has finished,
+select e:Utility menu > g:Halt the system.
+Then the guest will shut down, and nono also will terminate.
+
+ - インストールしたディスクから起動するには、
+--initrd と -V オプションを外して実行します。
+カーネルは引き続きホストファイルシステム上にあるもの
+(ここでは ~/nono/virt68k/netbsd-GENERIC.gz) を使います。
+
To boot from the installed disk,
+run without --initrd and -V option.
+It still uses the kernel on the host filesystem,
+just like the installer does.
+
+nono -c ~/nono/virt68k
+
+
+
+
Example of host network setup"); ?>
+
-wm0 を持つ NetBSD ホストに tap(4) デバイスを用いて
-nono のゲスト OS を接続する場合の設定例です。
+NetBSD の tap(4) デバイスを用いて、
+ホストの wm0 と nono のゲスト OS を接続する場合の設定例です。
-
-設定ファイル nono.cfg に以下の行を追加します
-(と言いつつ NetBSD では書かなくてもデフォルトでこの動作になりますが)
-
Add the following line to configuration file, nono.cfg.
-(Although you don't need to write it since these are default behavior
-on NetBSD)
+設定ファイル nono.cfg に以下の行を追加します。
+Add the following line to configuration file, nono.cfg.
hostnet-driver = tap
hostnet-tap-devpath = auto
@@ -2358,7 +3139,7 @@ sysinst 等で OS をアップグレー
に戻るのがハマりポイントです。
By default, /dev/tap is only accessible to privileged user.
You need to chmod /dev/tap (without unit number) appropriately.
-Note that upgrading using sysinst always reset the permission to 600.
+Note that upgrading using sysinst always resets the permission to 600.
- bridge(4) インタフェースを作成し、
ホストの外部(物理)インタフェースをブリッジに追加しておきます。
@@ -2424,6 +3205,7 @@ It's OK if you can see "HostNet Driver:
+
@@ -2444,10 +3226,19 @@ the mouse pointer will not move as expec
(2021/12/30)
Wayland の場合にウィンドウサイズが正しく設定されない場合があります。
-wxWidgets (3.0.5) のバグと思われます。
+wxWidgets (3.0/3.2) のバグと思われます。
On Wayland, window size may be incorrect.
-This may be due to wxWidgets (3.0.5) bug.
-(2021/12/30)
+This may be due to wxWidgets (3.0/3.2) bug.
+(2021/12/30, Updated 2024/07/03)
+
+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)
@@ -2463,8 +3254,17 @@ This may be due to wxWidgets (3.0.5) bug
Some versions may have incompatibilities in the configuration files, etc.
In such case, you may need to upgrade it by referring the following link.
+
+
+
+
+Included Software"); ?>
+
@@ -2472,13 +3272,7 @@ In such case, you may need to upgrade it
Changes"); ?>
-See changes.html.
-changes.php)\n";
- }
-?>
+See .
| | |