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