Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

XM6:X68000エミュレータ - Human68k、SX-WINDOWのHDD bootから、X68030の起動まで


80年代の国産PCといえば、当時の中高生にとっては、端的にはゲーム機も同然だった。その中でも、ひときわ異彩を放っていたのがMSXX68000だった。両者に共通するのは、現在で言うところのプログラミングのカルチャーだ。ただゲームで遊ぶだけではなく、何か他のクリエイティブな目的に利用するユーザーには、「おたく」と呼ばれるには相応しくない、IT通という意味でのハッカー的な風格があった。

その両者の特性は、その開発、販売組織の気風のようなものから継承されたものでもあったようだ。MSXでは、MSXPLAYerと言う公式のエミュレータが配布された。X68000においては、そのBIOS、システム・ディスクなどが無償公開されている。

エミュレータと言えば、その利用については後ろめたい要素が付きまとうものだが、X68000に関しては例外だ。公式のBIOS、システム・ディスクが無償公開されているのだから、堂々と使用することができる。

この投稿では、X68000エミュレータの一つであるXM6gを用いて、次の手順を紹介する。

  • X68000 EXPERTの起動
  • Human68KのHDDインストールと起動
  • SX-WINDOWのHDDインストールと起動
  • X68030の起動

準備

次のデータをダウンロードする。

XM6 エミュレータ
XM6ユーティリティ 必要なROMを生成するためのツール
IPL-ROM X68000各機種のROM
Human68k CUIシステム・ディスク
SX-WINDOW GUIシステム・ディスク
retropc.net retropc.net

ダウンロードしたファイルを展開し、適切なフォルダへ配置する。私は次のように配置している。この投稿で前提としているフォルダ構成でもある。

C:\myapp\XM6\ このフォルダに、次のものが配置されている。
64bit版xm6g.exe
各種ROM(DATファイル)
C:\myapp\XM6\HDD\ HDDイメージ(HDSファイル)を格納する。
C:\myapp\XM6\Human68k\ 次のファイルを配置している。
XM6Util.exe
Human68kディスク・イメージ(XDFファイル)
C:\myapp\XM6\SX-WINDOW\ SX-WINDOWディスク・イメージ(XDFファイル)

ダウンロードしたXM6に含まれているデータの一つが、X64フォルダだ。このフォルダが前述の「C:\myapp\XM6」に該当する。

IPL-ROMは機種ごとに存在するのだが、X68000 EXPERTのROMだけは、目的とする機種に関わらず必須だ。つまり、X68030を動かそうと思えば、該当機種のROMだけでなく、EXPERTのROMもあわせて、XM6フォルダに配置する必要がある。

注意点が一つある。X68030ではなぜかSCSIが認識されない。X68030の起動方法は紹介するのだが、後述するHDDインストールの話題について、X68030は対象外だ。

XM6ユーティリティ

各システム・ディスクを適切なフォルダに配置したら、XM6ユーティリティを起動する。XM6ユーティリティからROMを出力するには、Human68kのディスク・イメージが同じフォルダに配置されている必要がある。
3つのROMを生成し、出力されたファイルをXM6フォルダへ移動する。

X68000 EXPERTの起動

ここまで対応してXM6を起動すれば、X68000 EXPERTが立ち上がる。AドライブにHuman68kのディスク・イメージを割当、XM6をリセットすればシステムが起動する。

インストール

Human68KのHDDインストール

ファイル・メニューを次のように辿り、SCSI HDDイメージを作成する。ここでは、HDDフォルダに、「SCSI-Human68k.HDS」を100MBのハードディスクとして作成している。

ツール > イメージ作成 > SCSI ハードディスクイメージの作成

続いて、次のように各オプションを設定する。

ツール > オプション

システム > 機種 X68030以外の適切なモデルを選択
システム > 速度 > MPUクロック モデルに応じた適切なクロックを選択
システム > 増設 > メインRAM 12MB
SCSI > SCSIディスク > ドライブ数
ID0に「SCSI-Human68k.HDS」をマウント

一連の設定を終えたら、AドライブにHuman68kのディスク・イメージを割り当てた状態で、XM6をリセット(再起動)する。起動を終えたら、formatコマンドを実行する。

  1. formatコマンド
  2. SCSI装置
  3. ハードディスク
  4. 装置初期化
  5. 領域確保
    1. 容量=99
    2. ボリューム名=Human68k
    3. システム転送=する
    4. 実行
  6. format終了→コマンド画面へ戻る
  7. 次のコマンドを実行する。
copyall /s *.* c:\

一連の手続きを終えたら、Aドライブからディスクを取り出し、XM6をリセットするとHDDからX68000が起動する。

SX-WINDOWのHDDインストール

ID0にハードディスクをマウントするまでは、Human68kのインストール手順と同じだ。ただしディスク・イメージはSX-WINDOW用に作り直したものだ。HDDフォルダに、「SCSI-SX-WINDOW.HDS」を100MBのハードディスクとして作成したものをマウントする。

AドライブにSX-WINDOWの起動ディスク(SXWIN311.XDF)を割り当てた状態で、XM6をリセットする。ここからはGUI操作となる。XM6、SX-WINDOWなりの特殊な操作があるので注意すること。

  1. F12キーでマウス操作の主導権がWindows、XM6で切り替えられる。
  2. 右クリックでコンテキストメニューが表示される。
  3. 右クリック状態のまま、目的の項目でクリックを解除する。
  4. 目的の項目が実行される。

まずHDDのフォーマットから始める。起動時にAドライブが展開されている。

  1. 「HDフォーマット」を実行する。
  2. 「SCSI0 ハードディスク」を選択する。
  3. 実行ボタンを押す。
  4. 「はい」を押す。
  5. 「領域確保」を選択する。システム転送=する。実行ボタンを押す。
  6. 確認ボタンを押す。

ここでXM6が再起動される。AドライブのSX-WINDOW起動ディスクから立ち上がる。

  1. 「X」アイコン(左上隅のアイコン)を右クリックし、「ドライブトレイ」からCドライブを開く。
  2. Aドライブの中身を「すべてを選択」し、Cドライブへドラッグ&ドロップする。
  3. 転送先にない=on。実行ボタンを押す。
  4. SX-WINDOWのその他のディスクについても、同様の作業を繰り返す。
    1. ディスクはBドライブに挿入すること。

一連のコピーが完了したら、「X」アイコン(左上隅のアイコン)を右クリックし、「終了」する。終了画面が表示されたら、A、Bドライブからディスクを取り出す。
XM6をリセットすると、HDDからSX-WINDOWが起動する。

X68030の起動

X68030ではSCSIが認識されないので、HDDはマウントしたままでも構わない。あらかじめ、X68030のROMをXM6フォルダへコピーしておくこと。

他の機種とは異なり、X68030として起動するために必要なDATファイルが欠けている。「ROM30.DAT」だ。しかし、それは128Kのバイナリ・ファイルであれば、中身はどうでも良いもののようだ。

ROM30.DAT (ダミー) 生成
dd.exe と SCSIINROM.DAT が置かれていることを確認して、コマンドプロンプト上で
C:\XM6i>dd if=SCSIINROM.DAT of=ROM30.DAT bs=128k conv=sync

としてダミーの ROM30.DAT を生成。 (SCSIINROM.DAT の後ろをパディングして 128KB にしているだけ)

NetBSD/x68k on XM6i 0.30 - クロスプラットフォーム X68000/X68030 エミュレータ

それならば、ユーザー自身で作り出すことができる。ここではPowerShellを用いる。XM6フォルダで、次のコマンドを実行すると、目的のファイルが出力される。

$data = New-Object byte[] 131072
Set-Content -Value $data -Encoding byte ROM30.DAT

ここまで対応したら、オプション設定を確認する。

ツール > オプション

システム > 機種 X68030
システム > 速度 > MPUクロック モデルに応じた適切なクロックを選択
システム > 増設 > メインRAM 12MB

XM6を起動すると、X68030が立ち上がるはずだ。

SASI HDDについて

SASI HDDを使用するには、次の前提、制約がある。

  • 最大容量40MB/ドライブ
  • X68000 EXPERTだけで利用できる。
  • 起動ドライブにすることはできない。

つまりSASI HDDは、X68000 EXPERTのデータ領域としてのみ利用可能、と言うことだ。基本的にSCSI HDDが利用できさえすれば、必要になることはない。例外的なのは、XDFファイルとしてのディスク・イメージが必要な場合だ。

HDF SASIディスク
HDS SCSIディスク

作成、マウントの手順はこれまでに述べたSCSIの場合と、ほぼ同様だ。若干、設定項目に違いがある。

ツール > イメージ作成 > SASI ハードディスクイメージの作成


ツール > オプション

システム > 機種 EXPERT
システム > 速度 > MPUクロック モデルに応じた適切なクロックを選択
システム > 増設 > メインRAM 12MB
SCSI > SCSIディスク > SCSIインタフェース 装着しない
SASI > SCSIディスク > ドライブ数 1
作成したXDFファイルをマウント

Human68Kkの場合は、formatコマンドを実行し、領域確保する。
SX-WINDOWの場合は、HDフォーマットを実行し、領域確保する。
いずれの場合においても、画面は若干異なるが、手順はSCSIの場合と同様だ。起動ディスクとして動作しないので、システムを転送する必要はない。