2019年10月05日

QUASI88とディスクイメージ

PC-8801エミュレータで使われるD88ディスクイメージ用のツールを作っているときに気がついた。
QUASI88 0.6.4でトラックをWrite IDするとディスクイメージが破損する。
なんでだろう、と調べたら、どうもQUASI88は使用未使用に関わらず1トラック5,632バイト必ずあることを前提に動いているようで……
M88や他の抽出ツールなどで作られた一般的なD88イメージは、存在するデータ量だけが保存される仕様であることから起こるようである。

M88等で256バイトセクタ×16の1トラック4,096を作って、QUASI88で同じトラックを例として1,024バイトセクタ×5の計5,120バイトセクタでフォーマットすると後続のトラックをオーバーライトする。
このD88イメージをダンプしてみたら、ヘッダ内にあるトラックテーブルも一切変更されていない。
本来トラックの大きさに合わせて変動しないといけないのだが。。。

フォーマットしなければよい、という話かもしれないが、しかしそうもいかないのがみんな大好きμPD765A。
このFDC、最終的なセクタサイズはWrite ID(フォーマット)のときではなく、Write Data(データ書き込み)のときに決まってしまうという特徴がありまして。。。
IDを調整した256バイトセクタ×16を作り1024バイトセクタ×5でWrite Dataすると5,120バイトトラックになったりします。
レアケースではあるが、データ書き込みでもトラックサイズが変動します。

このため、QUASI88以外で作られたディスクイメージをQUASI88で使うと最悪ディスクイメージが破損します。
前述の自作ツールでもこの仕様に頭を抱えている状態です。

ちなみに自作ツールは、N88-DISK BASICフォーマットされたディスクイメージに直接データを入出力できる、現状CUI(CLI)で動作する完全Linux専用のいわゆる自分さえ使えればいい俺様ソフトです。
PC-8801エミュレータとLinux間のクロス開発を少しでも楽にするつもりで作ったもの。
概ね出来上がっていて動作テスト中、公開するかもだけど時期は未定。
こんなニッチ産業使いたい人もいないと思うけど、興味あるならコメントで書いてくれればα版を前倒しして公開します。
タグ:QUASI88
posted by えとかみ at 13:37| Comment(0) | TrackBack(0) | モバイル
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/186648348

この記事へのトラックバック