偽SCSI BIOS計画www

研究ネタとか尽きたので半分お遊びで偽SCSI BIOSの作成をしてみることに。
半分は何十年かけても完成しない可能性が高い俺の遺言代わりの人生最後のPC-98研究。
界隈の偉い人達に馬鹿にされても仕方のない研究だけどそこは気にしない方向でw

目標
PC-9801実機でホストPC上のnhdなどのHDDイメージを直接マウントして読み書きすること。
できればFDも統合したい。
実機でのデータ移動を考えてSASI/IDEは搭載しないことにした。
俺はPC-98実機は古いドライブをガチャガチャさせないとつまらないという
古い考えの持ち主なので本来はポリシーに反するのだがあえてその禁を破ることにした。

現状(2021/10/28) 詳しい開発経緯はツイッター参照
基本的な機能はほぼ実装し終わったと思うのでテスト公開という形で公開。
HDD(2TBまで) 4台 3.5インチMO1台 ZIP/JAZまたは5インチMO1台 DVD-ROMドライブ1台
3モードFDD(外付けFDDと排他使用) 2台 320k FD 2台(初代,E,F,M専用)搭載

できないこと
INT 1Bに頼らないアクセス(原理的に対応不可能)
Windows95以降(GUI)の起動(仕組み上ドライバを作らないと不可能)
 (DOS互換モードでアクセスできることもある。)
320K I/F非搭載機種で320K FDDが使えない。
CD-ROM特有のSCSIコマンドの実行(そもそも大部分のSCSIコマンドが未実装)
パラレルポート利用はwin機98双方の難点からあきらめた。

不具合
デッドロックを起こす。(まともなプログラムとか書けないので仕方がない)
不具合が発生したときに復帰できない。
ホスト側でAccessViolationExceptionが発生(VSのデバッグモードが原因?)
FDDのヘッドが起動時に異常な位置に移動しようとする。
CD-ROMのMODE1以外は読めない。
その他の不具合はreadmeにあります。

ダウンロード テスト公開中
PC-98側,Windows側双方で何が起きてもかまわない人だけダウンロードしてください。
このソフトを使用した結果いかなる損害を被ろうとも作者は責任は取りません。
テスト公開なので突然公開中止になったり告知なしのサイレント修正がされたりします。
対応PC-98環境 初代PC-9801を除くノーマル機(98互換機含む)+RSA-98IIIまたはnp21w
2021/10/30 複数のFDイメージが結合されたD88のフォーマットを禁止するように変更
ダウンロードリンク
作者が使用しているデバッグ版が欲しい人はツイッターで連絡ください。
個別に対応します。デバッグビルドなので対応環境が必要かもしれません。

自分用メモ TODOリスト?
開発再開時用のメモ
建て増しに建て増したBIOSやホストプログラムを一旦崩しての再開発。
(通信方法とあわせて見直しが必要)
通信方法の抜本的改革による高速化
シリアル通信以外への対応の準備

わかんないこと
*SCSI HDDは4台までしか対応していないのか?
 DOSからは4台分しかドライブレターが割り当てられない。
*5インチMOの挙動全般(把握してないけど一応使えるようになった)

最終目標(というか発想の出発点)
先日Cバスのユニバーサル基板を手に入れたのでそいつを眺めながら
PICのUSB通信機能経由でホストPCとPC-98側のCバスを繋いで
ステータスポートとデータポートとBIOS用ROM回路を用意すればいけるんじゃね?
程度の妄想がこの計画の出発点。所詮は机上の空論w
メモ:
PICは遅いのでアドレスデコードなどは汎用ロジックにやらせて
最終的にPICへの入力は1ピンで済むようにしなければ間に合わない。
データポートをコマンド入力とデータ出力に使いステータスポートを見ながらのPIO転送。
BIOSメモリ領域の一部に展開するのもありかもしれないが回路設計ができない上に
速度的に有利になりそうもないし使えるBIOS領域も減る。

8bitROM1個で16bit出力する方法もしくは8bit幅のままで読ませる方法
さらには今時の?シリアルROMを読ませる方法の模索
8bit幅で読ませる方法は市販のCバスボードを見る限り100%存在しない。
16bit幅で読ませるのなら373あたりを使ってラッチしてアドレスをすばやく切り替えればいいのか?
どうしてもダメなら2ROM仕様にする。
パラレルROMなら32ピンのFLASH ROMを搭載する予定。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です