PC-9801 / 9821 で ArdSCSino を使う

※特に記載がない限り、ArdSCSino は ArdSCSino-stm32 のことです。
※以下の内容は 2022/09/10 のソースをビルドしたものを使用しています。他のバージョンでは設定等 異なる場合があります。

SCSI / SASI エミュレータ の ArdSCSino を導入

PC-9801/9821のHDDインターフェース規格は多数あるようですが、ArdSCSinoは SCSI 接続対応です。ArdSCSino_98SASI を使うと SASI 接続も使用できるようです

SCSI 接続の場合
 
※SCSI端子から電源を取るタイプの ArdSCinoでは BluePillに外部電源は不要です。
 98scsi
※SDカードのフォーマットは FAT32exFATを使用しますが、exFATの方がパフォーマンスが良いらしいです
 ArdSCSinoで使うSDカードに ハードディスク(HDD)イメージと”scsi-config.txt”を入れます。
 HDDイメージファイルは RaSCSI用のHDN形式が使用できます。HDN形式は、PC-98x1エミュレータ Neko Project 21/W(np21w)で作成(使用も)できます。
 作成したHDDイメージは入れ物だけなので、エミュレータまたは実機でフォーマットする必要があります。
 np21wでフォーマットした場合は、PC-9801-55ボード(55互換)形式のHDDイメージとなるようです。
Neko Project 21/W        https://simk98.github.io/np21w/
(メインコンテンツ ”なんかくれ”)

HDDイメージのファイル名は以下のようにします。
例:
HD00_512MS-DOS.HDS
HD10_512Data.HDS
先頭 “HD”は固定
次の数字は SCSI IDLUN ID を指定。SCSI ID は 0~6、LUN ID は 0を指定します。
SCSIハードディスクイメージの場合は”_512”を指定。CD-ROMイメージは使えないようです。
その後は任意で文字を付けられます。
ファイル名は 拡張子までを含め最大32文字です。

scsi-config.txt”ファイルの内容は以下のようにします。
例:55互換形式(左)、92互換形式(右)
 pc98-55 pc98-92

1行目:ベンダ名を設定。半角8文字。不足分はスペースで埋める
  ベンダ名は 使用している SCSIボードによって変更します。
  SCSIボードが55互換の場合は、NECから始まる名前
  SCSIボードが92互換またはマルチベンダ対応の場合は、
  ・HDDイメージが55互換形式(フォーマット)の場合は NECから始まる名前
  ・HDDイメージが92互換形式(フォーマット)の場合は 先頭はNEC以外の名前
  ・HDDイメージが未フォーマットの場合は、
   ・55互換形式で使いたい場合、NECから始まる名前
   ・92互換形式で使いたい場合、先頭はNEC以外の名前
 ※実際にはボードの仕様が異なる場合もあり ボードによっては動作しないかもしれません
2行目:プロダクト名。半角16文字。不足分はスペースで埋める
3行目:バージョン。半角4文字。不足分はスペースで埋める
4行目:タイプ。半角1文字。PC-9801/9821では 2
5行目:WAIT時間。半角3文字。000にする
なお、改行コードは1バイト(LFまたはCR)にします。
ちょっと面倒なのでサンプルファイルを置いておきます。
55互換用          scsi-config.txt
92互換マルチベンダ用   scsi-config.txt

正常にSDカードを認識し イメージをマウントできると SDカードに以下のようなLOG.TXTファイルが作成されます。
 98-55 log 98-92 log

※ソースを読んでいたらセクタ数等が固定となっているのに気付いたので、55互換以外では一見、ちゃんと動いているようですが 問題が発生するかもしれません。(2023/02/20追記)

SCSIボードがマルチベンダ対応で、HDDイメージを実機でフォーマットして使う場合は”scsi-config.txt”ファイルは無くても使用できるかも?と試したところ、所有ボード(SC-98 III)ではフォーマット等見た目は正常に動作しているようでしたが、実際のファイルはおかしくなっているのか正常動作しませんでした。

SCSIボードの仕様
 PC-98x1シリーズは SCSIボードによって 仕様が微妙にも異なることがあるようです。大きくは「PC-9801-55」準拠(55互換)と「PC-9801-92」準拠(92互換)で、簡単に言うとハードディスク(HDD)のフォーマット形式の違いで、違うボードのフォーマット形式は使用できないということのようです。
 他に、マルチベンダ対応SCSIボードと言うのがあり、これは複数の形式(55/92互換+α?)に対応したボードと言うことのようです。また、通常 92互換ボードは 55互換ボード用のHDDも使用できるようです。

SCSIボードを含む、PC-98x1シリーズについて 詳細を公開されてる方のサイトがあり いろいろ調べられ助かります。
第三研究所         
http://www.amy.hi-ho.ne.jp/nakajima-jr/
(サイトトップ –> 企画課 –> “第4回 CバスSCSIの活用” –> “PC-98用 SCSIボード一覧”)

「55互換」「92互換」について、こちらのサイトでも詳しく紹介されてます。
The Adequate Junkers   
http://kazzez.html.xdomain.jp/index.html
(付録コーナー”未整理コラム” –> “「55互換」「92互換」ってなに?”)


SASI 接続の場合
 ArdSCSino-mt32 では未対応だと思います。BluePillのファームウェアを なおさん(twitter)が公開されている ArdSCSino_98SASI に書き換えることで使用できるようです。
yukkurizのメモ帳     
https://ykz.f5.si/
(”プログラム置き場” –> ”ArdScsino_98SASI")

SASI環境は無いため未確認。


PC-98向けについて ArdSCSino等、詳しい情報を公開されてる方のサイトもあります。
Project M.P.S       
https://projectmps.net/index.htm
(Storage Emulator’s –> 『ArdSCSino/BlueSCSI』 SCSIエミュレーター)


<関連>
X68000 / X68030 で ArdSCSino を使う



コメント