30年前のPC-9801を実用を目指して蘇らせる - FreeBSDインストール準備編

30年前のPC-9801を実用を目指して蘇らせる - FreeBSDインストール準備編

PC-9801は30年前に主にMS-DOSというOSで使用されていました。このMS-DOSはシングルユーザー・シングルタスクのOSであり、動作できるアプリケーションも、基本的には640KBのメモリに制限されていました。当時のコンピュータ環境は今と比べると非常に限られていましたが、それでもユーザーたちはPC-9801を駆使してさまざまな作業を行っていました。
その頃、IBM PS/2やPC/AT互換機向けに、フリーのBSD系UNIXである386BSDが登場し始めました。386BSDは、最初の段階でいくつかのライセンス問題を抱えていましたが、それらの問題が整理され、後にFreeBSDとして正式にリリースされることになりました。

PC-9801用にも、一部の熱心なパワーユーザーによって386BSD(98)やFreeBSD(98)が移植されました。この成果により、FreeBSD 5.4以降(実質5.0以降?)は正式なFreeBSDの公式アーキテクチャの1つ(FreeBSD/pc98)として認められることとなりました。このPC98向けの移植作業は最終的にはFreeBSD 8.4R(2013年)相当のバージョンまで続きました。

386BSD, FreeBSD(98)はインテル80386以上のCPUを搭載したモデルで利用できます。PC-9801シリーズでは、1988年には80386プロセッサを搭載したモデルであるPC-9801RAが発売されました。その後の80386、80486、Pentium、さらにはそれらの互換CPUを搭載したモデルにおいてもFreeBSD(98)は動作するようです。しかしながら、FreeBSD(98) 5.0以降のバージョンについては、おそらくPC-9821シリーズの一部のモデルでしか動作しないと考えられます。(これはあくまで推測であり、断定的な情報ではありません)。

「がとらぼ」の人はFreeBSD 8.4Rから順にバージョンを遡ってインストールフロッピーディスクを使ってPC-9801FAでインストールを試みましたが、5.0〜8.4のバージョンでは、インストーラーのカーネルが起動するものの、途中でリセットがかかってしまったり、SCSIインターフェースが正しく認識されないといった問題が発生し、結局インストールを完了することができませんでした。

2024年11月21日追記:
5.2.1はインストーラーで再起動することなく、ミニマム構成でインストールする限りでは正常にインストール可能です。ただし、インストール後の動作は重くやや不安定です。インストール時またはインストール後に少し大きなパッケージをインストールしようとすると展開に半日/1日のような長い時間がかかりハングアップします。実用的とはいえないでしょう。これは、PC-9801FAの最大メモリ容量が14MBという少なさが影響しているかもしれませんし、5.xに入っているSCSIドライバが55互換のカードを完全にサポートしていないのかもしれません。

そこでインストーラーが動作した最も新しいバージョンFreeBSD(98) 4.11をインストールすることにしました。
FreeBSD 4.11Rは2005年にリリースされたバージョンであり、約20年前のものです。そのため、さまざまな点で現代のシステムと比べると非常に古いものであり、特にインターネットに接続して使用する際には注意が必要です。セキュリティ上の問題があるため、インターネットに接続する環境での使用は避けた方が良いでしょう。

FreeBSD(98), FreeBSD/pc98のインストールに使うフロッピーディスクについて

PC-98シリーズは、CDドライブから直接起動することができないため、OSのインストール手順が少し特殊です。基本的には、最初にフロッピーディスクを使用してシステムを起動させ、その後インストールの途中でCD-ROMや他の大容量メディアやネットワークから必要なファイルを転送する形で進行します。

PC-98シリーズの中でも、MateやFellowシリーズ以前のモデルに搭載されているフロッピーディスクドライブは、5.25インチ1.2MB (2HC)や3.5インチ1.23MB (2HD)など、いくつかの異なる規格が存在します。この点に関しては、PC/AT互換機やPS/2などで一般的に使用される3.5インチ1.44MB (2HD)との違いに注意が必要です。日本国内では「2HD」と呼ばれるフォーマットは、海外とは異なる仕様を指しているのです。
また、3.5インチの1.2MB(2HC)フォーマットは、東芝のDynabookなど一部の日本国内のパソコンで利用されていましたが、約1.2MBという容量はほぼ似ているもののPC-98シリーズの2HDとはフォーマットが異なるためフロッピーディスクの取り扱いには慎重さが求められました。PC-98では2HCの読み書きができるもののDynabookではPC-98の2HDを扱えなかったからです。
5.25インチの2HCフォーマットと3.5インチの2HCフォーマットは、セクタ長やセクタ数、トラック数が同一であるため、両者は同じフォーマットと見なすことができます。この3.5インチの2HCフォーマットも、PC-9801シリーズでは問題なく使用することができます。(ここまで、2DDについては省略しています)

さて、ここで何が重要かというと、FreeBSD(98), FreeBSD/pc98のインストール用メディアには、1.44MBと1.2MBの2種類のイメージファイルが提供されている点です。旧PC-98シリーズに対応する1.2MBのイメージファイルは、2HC用のフォーマットを対象としています。5.25インチのフロッピーディスクを使う場合は特に問題ありませんが、3.5インチフロッピーディスクを使用する場合は、フロッピーディスクのフォーマットに注意が必要です。というのも、PC-98で通常のフォーマットを行うと、3.5インチフロッピーディスクは2HDフォーマット(1.23MB)になってしまいます。もしその状態で2HC用のイメージをフロッピーディスクに書き込むと、読み取りエラーが発生し、FreeBSD(98), FreeBSD/pc98のインストーラーが正しく起動しないという問題が起こります。
そのため、必ず2HCフォーマットを行ってから、イメージファイルを書き込む必要があります。

PC-98のMS-DOSで3.5インチフロッピーディスクを2HCフォーマットする場合

A:¥> FORMAT B: /5   B:が3.5インチフロッピーディスクドライブの場合

PC/AT互換機のLinuxで3.5インチフロッピーディスクを2HCフォーマットする場合

$ sudo apt install ufiformat    ufiformatのインストール
$ sudo ufiformat /dev/sda -f 1200

USB接続の3モード対応フロッピーディスクドライブを利用する場合、デバイスは一般的に /dev/sda として認識されます。2HCフォーマットを指定するオプションは -f 1200 であり、これは1.2MBの2HCフォーマットを指します。ちなみに、通常のPC-98用の1.2MB(HD)フォーマットを指定する場合は -f 1232 というオプションを使用します。一方、PC/AT互換機やPS/2で利用される3.5インチ1.44MBの2HDフォーマットは -f 1440 というオプションで指定します。

次に、フロッピーディスクにFreeBSD(98)のイメージファイルを書き込む手順です。
FreeBSD(98)のディストリビューションには、floppy98 というディレクトリが含まれており、その中に必要なイメージファイルが格納されています。バージョンによって異なるものの、たとえばFreeBSD(98) 4.11Rのインストールには、kern.flp と mfsroot.flp の2つのイメージファイルを使用します。

一方、FreeBSD(98) 5.0R以降では、ファイル名に「small」という文字列が含まれるイメージファイルが2HC用です。ファイルサイズを確認し、1.4MiBならばDOS/V(2HD)フォーマット、1.2MiBであれば2HCフォーマットと判断することもできます。
さらに、FreeBSD(98) 5.0R以降のインストールでは、boot, kernel, mfsroot の3種類のイメージファイルを使用します。場合によっては、kernel ファイルが2つ必要になることもありますので、これらのイメージファイルの数に応じたフロッピーディスクを用意します。

Windowsで3.5インチフロッピーディスクを2HCフォーマットする場合

Windows 10 1607 (Anniversary Update) 以降のバージョンでは、2HCフォーマット機能が無効化されています。これは、古いPC98シリーズ用の1.23MB (2HD)フォーマットも同様で、Windowsフォーマット機能ではフォーマットを行うことはできません。しかし、サードパーティ製の対応アプリケーションを使用すれば、引き続き2HCやPC98用のフォーマットを行うことは可能なようです。つまり、Windows標準のフォーマット機能では対応できない古いフォーマットでも、適切なソフトウェアを導入することで可能になる余地があります。

PC/AT互換機のLinuxでフロッピーディスクにイメージファイルを書き込む場合

$ sudo dd if=./kern.flp of=/dev/sda

USB接続の3モード対応フロッピーディスクドライブを使用することで、特定のフロッピーディスクにイメージファイルを書き込むことが可能です。例えば、カレントディレクトリにある「kern.flp」というイメージファイルを書き込む場合、./kern.flp のような相対path付きで指定することができます。
なお、フロッピーディスクのイメージをフロッピーディスクに書き込む際にはフォーマット形式を指定する必要はありません。

FreeBSD(98)の5.0Rより前のバージョンは、昔からある有名な日本のFTPサイトに置いてあることが多いです。

参照: http://ftp.jaist.ac.jp/pub/FreeBSD-PC98/tars/

30年前のPC-9801を蘇らせる - FreeBSDインストール準備編 1
取得したFreeBSD(98) 4.11Rのファイルの中身はこのようになっています。

FreeBSDのディスクイメージの準備

FreeBSD(98), FreeBSD/pc98のCD-ROMイメージはFreeBSD 5.0以降では用意されています。

参照: http://ftp-archive.freebsd.org/mirror/FreeBSD-Archive/old-releases/pc98/ISO-IMAGES/

FreeBSD(98)のバージョン5.0R以前では、配布されているFreeBSD(98)のファイルとは別に、同じバージョンのFreeBSD i386用のISOイメージファイルが必要です。i386用のISOファイルは、FreeBSD公式サイトで配布されているものの他に、Walnut Creek(現在はiXsystems)のようなサードパーティから出版されたものでも問題ありません。ただし、FreeBSD(98)とi386用のISOファイルのバージョンは必ず揃える必要があります。バージョンが異なる場合、システムは正常に動作しない可能性がありますので、注意が必要です。
参照: http://ftp-archive.freebsd.org/mirror/FreeBSD-Archive/old-releases/i386/ISO-IMAGES/
複数枚構成のCDが提供されている場合は、FreeBSD(98)のインストールに必要なのは、Disc 1だけです。

取得したi386用のCDのISOイメージを編集します。
まず、事前に取得しておいたFreeBSD(98)のファイルを展開し、それらすべてのファイルをi386用CDのISOイメージ内に追加します。この作業は、WindowsまたはLinuxの環境で行えますが、それぞれのOSに応じた手順が必要です。

Windows環境では、ISOファイルを編集するために、ISO編集アプリケーションを使用します。ISO編集アプリを使って、i386用のISOファイルを開き、そこにFreeBSD(98)の展開したファイルをドラッグ&ドロップで追加します。その後、変更を保存すればISOファイルが完成します。

Linux環境の場合は、コマンドラインを使用して作業を進めることが一般的です。まず、i386用のISOファイルを任意のディレクトリに展開します。その後、展開したFreeBSD(98)のファイルを同じディレクトリに追加します。最後に、mkisofsなどのツールを使って、新しいISOイメージを作成します。(次)

$ mkisofs -r -J -o CD3_freebsd411.iso ./FreeBSD4.11R

この作業によって「CD3_freebsd411.iso」という名前のISOファイルが生成されます。
mkisofsの引数の内、./FreeBSD4.11R というのはカレントディレクトリにあるFreeBSD4.11Rというディレクトリです。このディレクトリには、i386用のISOファイルの内容と、FreeBSD(98)のファイルがすべて含まれているものとします。

30年前のPC-9801を蘇らせる - FreeBSDインストール準備編 2
作成したISOファイルの中身はこのようになります。赤枠部分がFreeBSD(98)のファイル群です。

ハードディスクイメージの作成

前回の記事でも触れたように、SCSIハードディスクの入手が非常に難しい現状があります。特に、古いPC98の環境で動作するSCSIハードディスクは、市場での入手が困難です。そこで、物理的なSCSIハードディスクの代わりに、BlueSCSIというデバイスを使用してSDカードを仮想ハードディスクとして利用することにしました。このBlueSCSIは、SCSIインターフェースをエミュレートし、SDカードをハードディスクとして認識させることができる非常に便利なデバイスです。

30年前のPC-9801を蘇らせる - FreeBSDインストール準備編 3
前回作成した1GBのハードディスクイメージについて説明します。このディスクイメージは、MS-DOS環境では902MBとして認識されました。MS-DOSが認識できるハードディスクの最大容量はFAT16であれば約4GBであり、それを超えるサイズのハードディスクはMS-DOSでは認識されないという制約があります。そのため、4GBを超えるディスクイメージを作成すると、MS-DOSにインストールできなくなります。
しかし、PC-9801FA + 日本テクサEZPHA-FA02(SCSI-IF) + BlueSCSI + MS-DOSの組み合わせでは1GBのイメージファイルを作成して902MBまで認識させることができたのが最大で、これ以上では容量が極端に小さく認識されるか、または認識できないハードディスクとして取り扱われます。
前回の作業では、1GBのハードディスクイメージファイルを作成し、そのうち64MBをMS-DOS用に割り当て、残りの領域(960MB)をすべてFreeBSD用に確保する予定でした。

しかし、960MBという限られた領域でFreeBSDを運用するのは非常に窮屈です。そこで、今回、新たに1GBのハードディスクイメージに加え、もう1つ4GBのハードディスクイメージを作成することにしました。この構成によって、MS-DOS用には128MB、FreeBSDのルートファイルシステム用には639MB、そして256MBをスワップ領域に割り当てることにしました。これにより、FreeBSDがより快適に動作する環境を整えられると考えています。

PC98エミュレータである「Neko Project 21/W」を使用して、前回と同じハードディスクジオメトリで1GBのイメージファイルを作成しました。下記の画像はその際の設定画面です。ディスクジオメトリは重要で、適切に設定しないとOSが正常に動作しない可能性があります。
PC98エミュレータNeko Project 21/Wで作成する1GBのイメージファイルは画像のとおり前回と同じハードディスクジオメトリです。

30年前のPC-9801を蘇らせる - FreeBSDインストール準備編 4
新しく4GBのハードディスクイメージを作成しました。ディスクジオメトリは画像のとおりです。このサイズは、前述のPC-9801FA〜MS-DOSの組み合わせでは正しく認識することができませんが、FreeBSDでは認識できます。FreeBSD専用のディスクとして使用する予定です。

30年前のPC-9801を蘇らせる - FreeBSDインストール準備編 5
SDカードに書き込んだハードディスクイメージファイル2つと、作成したISOファイルです。
前回の記事でBlueSCSIについて触れましたが、BlueSCSIではイメージファイルのファイル名に特定の意味があります。このファイル名によって、SCSIデバイスが正しく識別されます。たとえば、ファイル名の文字列「HD1」はSCSI-ID1のハードディスク、「HD2」はSCSI-ID2のハードディスク、そして「CD3」はSCSI-ID3のCDドライブとしてBlueSCSIに認識されます。また、ファイル名に含まれる「512」という数字は、論理セクタサイズが512バイトであることを示しています。このセクタサイズはイメージファイルを作成するときに指定する重要なパラメータです。(セクタサイズ512バイトは固定にすることが望ましいです) さらに、ファイル名に「1GB」「4GB」「freebsd411」といった文字列が含まれていますが、これらはただのメモで、特に実際の設定や動作には影響しません。

bluescsi.iniは前回の記事と同じです。
[SCSI]
System="Generic"
Quirks=0
EnableSCSI2=0
MaxSyncSpeed=0
SectorsPerTrack=64
HeadsPerCylinder=8

ハードディスクのパーティションについてです。1GBのハードディスクには、MS-DOS用に128MBの領域を割り当て、FreeBSDのルートディレクトリ ( / ) 用に639MB、さらにスワップ領域として256MBを設定します。4GBのハードディスクには、全体をFreeBSDの /usr ディレクトリ用に割り当てる予定です。これにより、効率的にディスクの容量を使用しつつ、各OSの動作に必要な領域を確保しています。

30年前のPC-9801を蘇らせる - FreeBSDインストール編 6
次に、ハードディスクのイメージファイルを書き込んだSDカード((microSD)をBlueSCSIに挿し込み、PC-9801FAの実機を起動します。電源をオンにすると、SCSIインターフェイスが正しく認識された状態が画面に表示されます。SCSI-ID1とSCSI-ID2にハードディスク (HD)、SCSI-ID3にCDドライブが認識されているため、予定通りです。

30年前のPC-9801を蘇らせる - FreeBSDインストール編 7
MS-DOSのインストールについては前回の記事で説明しているため、ここでは割愛します。
MS-DOSのインストールが完了した後、システムを再起動すると、最初にSCSIの認識状態が表示されます。その後、「固定ディスク起動メニュープログラム」が表示されます。このメニュープログラムは、通常、ハードディスクが1台しか接続されておらず、MS-DOSが唯一のインストールOSである場合は表示されませんが、複数のハードディスクが接続されているとMS-DOSのみがインストールされている場合でも表示されます。このメニューは、デフォルトの設定では起動したいOSを手動で選択する必要がありますが、設定を変更することで、メニューをスキップし、MS-DOSや他のOSを自動で起動させることも可能です。

今回は準備だけで終わります。次回はいよいよFreeBSDのインストールです。

関連記事:

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編

30年前のPC-9801を実用を目指して蘇らせる - ハードディスクをSDカードに交換BlueSCSI編

BlueSCSIは、レトロコンピュータのハードディスクをSDカードで置き換えるためのデバイスです。古いパソコンやMacに搭載されているSCSIで動作するストレージ装置の代わりとして利用できます。
レトロコンピュータに搭載されているハードディスクは古くなり、壊れて動かないか故障するリスクが高いため、BlueSCSIはこれをSDカードで置き換えることで、データの保存や読み書きをより安全かつ迅速に行えるようにします。また、SDカードを交換するだけで複数のシステムやデータを簡単に管理できる点も魅力です。
セットアップは比較的簡単で、BlueSCSIをSCSIポートに接続し、ハードディスクやCD-ROMのイメージファイルをSDカードに書き込むだけで使用可能です。低コストかつ信頼性の高いソリューションとして、レトロPCやMac愛好者の間で人気があります。
レトロコンピュータの維持が難しくなっている今、BlueSCSIは最新技術を使いながらも、古い機器を再び動かすための強力なツールです。

1990年代に普及したIDEストレージ用のSDカード変換基板は、今でも安価で手に入れやすく、IDE機材も比較的入手が容易です。一方、SCSI対応機器は現在では非常に入手が難しく、SDカード変換基板も有名なものは高価な場合が多いです。

今回紹介するBlueSCSIは、元々Macユーザーの間で改良されたオープンソースのハードウエアであり、Mac向けの拡張ソフトウェアやノウハウは豊富です。しかし、PC-98シリーズで使用するための専用ソフトウェアや情報は少ないのが現状です。また、BlueSCSIにはWi-Fi対応版も存在しますが、これはMac専用のソフトウェアだけが提供されており、残念ながらPC-98でWi-Fi機能を使えるわけではありません。

BlueSCSIには、3種類のモデルがあります。デスクトップ版は、3.5インチ 50ピンSCSIハードディスクの置き換え用で、SCSIインターフェイス背面にあるD-Sub 25ピンポートに接続する外付け版、そしてPowerBook向けのラップトップ版です。
この中で、もっとも手軽に使えるのは外付け版かもしれませんが、PC-98シリーズのSCSIインターフェースの背面ポートは大きめのアンフェノールフルピッチ50ピンかハーフピッチタイプ50ピンのコネクタが多いのでそのまま利用できません。PC-98シリーズでの利用を予定しているならデスクトップ版が適しているでしょう。今回は、BlueSCSIの日本正規販売店であるKero's Mac Modsから、正規完成品をヤフオクで購入しました。
なお、この記事では単にBlueSCSIと書いていますが、現在販売されいるのはBlueSCSI v2で、この記事で紹介しているボードもBlueSCSI v2です。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 1
今回は、BlueSCSI v2デスクトップ版のスタンダードモデル(Wi-Fi非対応)を購入しました。国内発送のため、注文(落札)後すぐに到着し、輸送中の箱の潰れもありません。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 2
中国製品では説明書や印刷物が同梱されないことが多いですが、今回はしっかりと紙類が入っていました。ただし取扱説明書ではありません。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 3
写真の左側にある黒い部品は、3Dプリンタで作られたと思われるフレームで、3.5インチハードディスクの置き換えとして使う際に、ネジ穴の位置が互換性を持つようになっています。右側がBlueSCSIの本体です。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 4
BlueSCSIの基板をフレームに嵌め込みましたが、固定ネジはまだ取り付けていません。BlueSCSIは青い基板の上に緑色のRaspberry Pi Picoが搭載されており、このRaspberry Pi Picoは、Kero's Mac Modsで販売されている完成品では、すでに組み込まれた状態で提供されています。Raspberry Pi PicoにはBlueSCSI用ファームウエアも書き込み済みなので届いてすぐ使用を開始できます。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 5
青い基板の裏側には特に目立った部品はありません。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 6
BlueSCSI基板を黒いフレームに取り付け、ネジで固定しました。これをPC-9801FAの内蔵ハードディスクを収納する「籠」に入っていた3.5インチハードディスクと置き換えました。50ピンのSCSIケーブルをBlueSCSIのSCSIヘッダに接続し、ハードディスクのインジケーターLEDのケーブルもBlueSCSI基板に接続しました。このインジケーターLEDのケーブルは、写真の青い基板右上に接続されている黄色いコード1本です。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 7
SDカードは、AliExpressで購入した安価なものを使用しています。ハードディスク用イメージとしては512MB(0.5GB)から1GB程度、CD-ROM用イメージは640MBを2〜3個分の計2GB強しか使う予定がありませんが、手元にあったのが64GBのカードだけだったため、少しもったいない気もします。しかし、2024年現在、64GBのmicroSDカードは1枚約500円で購入でき、512MBから64GBまでのカードがほぼ同じ価格帯なので、大きさに関わらず費用はほとんど変わりません。
ちなみに、この記事の最初の写真では東芝のSDカードを挿していますが、15年ほど前に購入したこのSDカードは正常に使用できませんでした。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 8
BlueSCSIデスクトップ版のカードスロットはSDカードサイズのため、microSDカードを使う際には付属のカードアダプタを利用して挿入しました。なお、microSDカードをexFATなどで適切にフォーマットし、ハードディスクイメージを書き込んだ状態でBlueSCSIに接続しないと、正常に動作しません。この作業には、Windows、Linux、MacOSなどのOSが動作する別のPCが必要です。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 9
BlueSCSIの電源ポートはBerg 4ピンコネクタを採用しています。本来ならハードディスクの置き換えを目的としているため、一般的なペリフェラル4ピンコネクタの方が便利ですが、ペリフェラルコネクタは抜き差しに力が必要で、基板を破損するリスクがあるため、フロッピーディスクドライブに採用されていたBergコネクタで正解だと思われます。かつてはPC電源にBergコネクタ(またはペリフェラル-Berg変換アダプタ)が付属していたり、ペリフェラルからBergへの変換ケーブルが販売されていましたが、現在はフロッピーディスクドライブが廃れているため、変換ケーブルの入手は難しくなっています。しかし、Bergコネクタは2.54mmピッチのピンコネクタ4本分と同じため、自作が比較的簡単です。
今回はたくさん余っていたペリフェラル4ピン電源コネクタとシリアルATA用の電源ケーブルのシリアルATA側のコネクタを切り落として、2.54mmピンコネクタを接続して自作しました。配線は、赤が5V、黄色が12V、黒の2本がGNDです。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 10
PC-9801FAのハードディスクの「籠」の蓋を外した状態で接続し、PC-9801FAの電源を入れました。BlueSCSIに搭載されたRaspberry Pi PicoのLEDが点灯することを確認しました。(ちなみに、蓋を閉じた状態でもスリット越しに内部を確認できますが、今回は写真撮影のため蓋を外しています。)

BlueSCSIでのイメージファイルの命名ルール

BlueSCSIを使用する際、使用するイメージファイルには、特定の命名規則に従ってファイル名を付けます。
ハードディスクとして認識させたいイメージファイルには、ファイル名の最初に「HD」を付け、次に使用するSCSI-ID (0~7の範囲で、他のデバイスと重複しない番号)を続けます。その後、アンダーバー「_」を挟んでセクターサイズを指定します(基本的には512バイト)。続けて、任意でメモ用の名前を追加できます。拡張子は数種類が利用できるようです。今回はエミュレータとBlueSCSIの両方で対応しているnhd形式を選びました。

例えば、「HD1_512_Windows95_1GB.nhd」という名前のファイルは、SCSI ID 1、セクターサイズ512バイトのハードディスクとして認識されます。なお、SCSI IDに加えて論理ユニット番号(LUN)も指定できますが、現在は「0」のみ対応し、省略可能です。

CD-ROMの場合、ファイル名の最初に「CD」を付け、その後にSCSI IDを指定します。こちらも任意のメモ用の名前を続けることができ、拡張子は通常「.iso」などが使用されます。
例えば、「CD2_Windows95_install_disc.iso」という名前のファイルは、SCSI ID 2のCDドライブに挿入されたCD-ROMメディアとして認識されます。

BlueSCSIでは、ハードディスクやCD-ROMの他にも、以下のようなストレージメディアを扱うことができます:

  • FD - フロッピーディスク
  • MO - MOディスク(MOドライブ)
  • TP - テープメディア
  • RE - その他のリムーバブルメディア (不明)

これらのメディアの場合も、同様にメディアの種類を示す2文字に続けてSCSI IDを指定します。

BlueSCSIの設定

SCSIは、ハードディスクのCHSパラメータ(シリンダ数、ヘッド数、セクタ数)を自動で認識し、適切に処理することを可能にしています。しかし、規格の互換性が不十分な場合があり、実際には正しく認識できないことが多々あります。BlueSCSIでは、ハードディスクなどのデバイスを実際の機器に似せてエミュレーションする仕組みがあり、これにより互換性を向上させています。適切な設定ファイルを作成することで、SCSIインターフェイスが正しく認識できるように調整可能です。

PC-98シリーズの55互換SCSIインターフェイスでは、ハードディスクのパラメータ取得に失敗することが多いため、設定ファイルの使用が必要になることがよくあります。一方、92互換SCSIインターフェイスでは「8ヘッド32セクタ」に統一されていますが、55互換として動作する状態で認識に問題が生じる場合は、やはり設定ファイルが役立ちます。

また、NEC純正のSCSIインターフェイスボードには、ハードディスクのベンダーチェックが行われる仕様があります。ここで、ハードディスクのベンダー名に「NEC」という文字列が含まれていないと、そのハードディスクを使用できないという制約があります。しかし、BlueSCSIの設定ファイルでベンダー名の文字列に「NEC」を含めることで、SCSIインターフェイスボードに対して利用可能なハードディスクとして認識させることが可能です。

512MB(480MB)のハードディスクとして認識させたときのbluescsi.ini
[SCSI]
System="Generic"
Quirks=0
EnableSCSI2=0
MaxSyncSpeed=0
SectorsPerTrack=32
HeadsPerCylinder=8
併せて、CHSパラメータを指定してハードディスクのイメージファイルを作成しています。(後述)
1GB(902MB)のハードディスクとして認識させたときのbluescsi.ini
[SCSI]
System="Generic"
Quirks=0
EnableSCSI2=0
MaxSyncSpeed=0
SectorsPerTrack=64
HeadsPerCylinder=8

上は、日本テクサのSCSIは4ヘッド64セクタのフォーマットという情報を得たので、それに従ってCHSパラメータを合わせてイメージファイルを作成(後述)し、bluescsi.iniではSectorsPerTrack=64を指定しています。(ヘッドは4である必要はなさそうで8を指定しています)

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 11
ハードディスクのイメージファイルは、PC-98エミュレータ「Neko Project 21/W」を使用して作成しました。ただし、単にHDDサイズを指定するだけでは、PC-9801FA側で正しく認識されなかったため、Advanced設定でシリンダー、ヘッド、セクター、セクターサイズのパラメータを手動で入力しました。それでも、正しく認識されることが少なく、かなり手こずりました。上の画像は、512MBに近づけるようパラメータを設定し、結果的に480MB程度で正常に動作した時のものです。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 12
1GB以上のイメージ作成にも挑戦しましたが、ほぼ全て失敗しました。上の画像では1GBを目指したものの、PC-9801FAでは902MBとして認識されました。これ以上大きなサイズは32MBなど極端に小さく認識されてしまうため、ヤフオクで購入したPC-9801FAに搭載されていた(前オーナーが追加した)日本テクサのSCSIインターフェイスでは902MBが限界のようです。この記事以降も、この902MBのイメージファイルを使用していきます。902MBはPC-9801FAと日本テクサのSCSIインターフェイスとMS-DOSの組み合わせで認識可能な最大サイズです。MS-DOS以外ではさらに大きなサイズを正しく取り扱える場合があります。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 13
作成した空のハードディスクイメージファイルをmicroSDカードに書き込み、PC-9801FAをMS-DOSのフロッピーディスクから起動して、認識されたハードディスクの初期化を行いました。今回作成した1GBのイメージファイルは902MBのハードディスクとして認識されました。この902MBの内、MS-DOS用として確保する領域(パーティション)は64MBにすることにしました。これは、1.2MBフロッピーディスク約50枚分に相当する容量です。30年以上前に、「がとらぼ」の人は、購入した100MBの外付けSCSIハードディスクを(愚かにも)「一生かかっても使い切れない」と思っていたのですが、64MBでも当時としては十分な容量でした。ちなみに、PC-9801FAのハードディスク内蔵モデルは40MBと100MBの2種類があり、その容量差60MBの価格差が7万円もありました。また、ハードディスク無しモデルも販売されていました。当時の主なデータはテキストファイルやワープロのデータファイルです。当時のワープロといえば文字の大きさが普通の文字、倍角と4倍角程度で、装飾機能も少なく、単なるテキストデータと比べて極端に巨大なファイルになるものではありませんでした。なので、1.2MBのフロッピーディスク1枚でも十分に使えた時代でした。

この記事では、エミュレータ上で作成した空のイメージファイルを使用し、それをPC-9801実機のハードディスクとして認識させてOSをインストールする手順を採っていますが、エミュレータ上でOSをインストールし、環境を整えてから、そのハードディスクイメージをBlueSCSI用のSDカードにコピーし、PC-9801実機で利用することも可能です。ただし、古いSCSIインターフェイスでは、イメージファイルがハードディスクとして正しく認識されるかどうかは不明です。また、MS-DOSやWindows 3.1、Windows 95はエミュレータ上で正常に動作しますが、UNIX系のOSはエミュレータでうまく動作しないことがあるため、エミュレータで構築した環境が実機でそのまま動作するとは限りませんし、エミュレータで環境を構築できるとも限らないことは覚悟しておく必要があります。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 14
MS-DOSのインストールを終え、再起動すると「DOSシェル」が起動します。これは、Windowsのエクスプローラーのような機能を持つMS-DOS純正のファイラですが、操作性はお世辞にも良いとは言えません。そのため、FDやFilmtnといった他のMS-DOS用ファイラを使うことになるでしょう。マイクロソフト製ソフトウェアの使いにくさは、DOS時代から変わっていません。このユーザーにとって嬉しくない謎のこだわりの正体は一体何なのでしょうか。

30年前のPC-9801を蘇らせる - ハードディスクをSDカードに交換BlueSCSI編 15
BlueSCSIは、1枚のSDカードに複数のハードディスクやCD-ROMのイメージを保存し、それらを同時に利用することが可能です。イメージファイルにSCSI-IDが適切に設定されていれば、複数のストレージデバイスとして同時に認識させることができます。たとえば、ハードディスクのイメージとCD-ROMのイメージが実機ではそれぞれハードディスクとCD-ROMドライブとして認識されるため、ユーザーはそのCD-ROMからソフトウェアをハードディスクにインストールすることも可能です。画像では、SCSI-ID 1にハードディスク、SCSI-ID 2にCD-ROMが認識されていますが、もちろん、実際には物理的なハードディスクやCD-ROMドライブは接続していません。CD-ROMのイメージファイルには、一般的なISOファイルを利用できます。

この記事や次の記事では、順調に環境構築が進んでいるように見えるかもしれませんが、実際には多くの試行錯誤を繰り返し、BlueSCSIを使えるようになるまでに数日かかりました。さらに、次に行うOSのインストールには、2週間もの時間がかかっています。数々の失敗を経て、何とか動作させているという状況です。

関連記事:
Up