KryoFluxを使ってみた

2014.8.11 初版
2014.12.28 第二版
2015.1.17 第三版 HxCによるD88イメージ作成、イメージ書き戻しについて記述
2015.9.12 第四版 武田氏のエミュレータが2Sサポートを開始したので一部記述変更
            単密度/倍密度混在ディスクのイメージ化について追記
2018.12.08 第五版 SAMdiskの新バージョンに関する情報を追記

 64bitPC時代におけるエミュレータ用ディスクイメージ作成環境の救世主!!

…いつも使うわけではないので、メモ代わりに使い方をまとめてみました。

DITTがだんだん使いにくくなる…

 レトロPCを保存して遊ぶといっても、本体よりもむしろメディアの方が先に傷んでくるもので、とりあえずソフトを実行できればいいという時はエミュレータが使えると便利ですよね。武田氏のがんばりによって、メジャー・マイナー問わず各種エミュレータが動くようになってきているのはありがたい話です。

 エミュレータに使用するソフトのイメージ化については、テープの場合適当なラジカセで再生してWAV音声としてPCに録音してしまえば、もちろんフォーマットごとに専用のツールは必要ですけれど、ハード的には特殊な物を揃える必要はありません。
 一方ディスクの場合、主流だった5インチフロッピーを読むためのドライブとツールの制約により、特にここ最近はかなり使いにくくなってきている事情があります。

 これまで5インチフロッピーのイメージ化には、5インチドライブを備えたPC-98かPC/ATが使われてきました。その前に8ビットマシン本体で読み出してシリアルケーブルで転送という時代もありましたが、エミュレーション技術の高度化で技術情報を含むフォーマットが提案されると、その作成ツールを動かせるマシンでのイメージ化が主流となりました。
 私はPC-98シリーズを所有しない主義なので専らPC/ATだったのですが、そこで活躍したのがQUASI88やM88といったPC-8801シリーズエミュレータで使われていたD88フォーマットというディスクイメージ形式を作成するDITTというツールでした。読み出しだけでなく書き戻しも可能で、D88フォーマットがエミュレータで標準的に使われるようになったことからとても重宝していたのです。

 しかし、DITTはDOS環境でないと使えないという制約がありました。なんとかWindows98くらいまではGUIを動かさずDOSプロンプトなら動かせたようですが、WindowsNT/2000以降はアプリが直接ハードを叩くことを許さなくなったので、ベースOSの進化を止めた「DITT専用マシン」を用意しないといけなくなりました。私自身はWindowsXPの時代になってからDITTを使い始めたので、引退しかかっていた486マシンにPC-DOSと5インチFDDを入れてその環境を整えたのです。

 専用マシンとして分離してしまうと、メインPCに入れたエミュレータまでどうやってイメージファイルを転送するかが問題になります。DOSフロッピー経由でもダメってことはないんですが、X68000用なんかの2HDイメージだと一つしか入らないですよね…。
 やっぱりLANで転送した方が便利に決まってます。Win95/98でDITTを動かすってのはその利便性を買ってのことなんですが、DOSでは如何ともしがたく…いや、そんなことはありません。Neptune-Xを作ろうと思って買っておいたISAバス用LANカードを装着し、パケットドライバを導入して、WATTCPにて家庭内サーバにFTP転送…さらにはTEENというTCP/IPプロトコルスタックを導入し、SMBクライアントソフトも入れてさらに使いやすく…と環境構築を進めてきました。

 ですがそれでも満足はできない…以前から解決法がなくて困っていたのが、MZ-80K/Cシリーズ用2Sフロッピーのイメージ化です。2Sディスクに関しては世界的に決まったフォーマットはなく(D88も収容可能ではあるがヘッダの「ディスクの種類」を示すコードの定義がない)、日本では長い間エミュレータが存在しませんでした(2015年9月についにMZ-80K/Cシリーズ用エミュレータにてFDDサポート)。DITTは2Sディスクを読めないですし(そもそも対象じゃないんだから仕方が無い)、一応Amstrad CPCエミュレータ用フォーマットであるDSK形式にイメージ化する改造版CPDREADというソフトはあるのですが、手元のDOSマシンではイメージ化できませんでした。
 サポートするエミュレータがなかったこともあり、急いでいたわけではありませんが…例えばこういうボードも実機で読んでPCに転送するために計画していることもある、とかいろいろ考えていたのですよ。MZシリーズをFPGAで再現するにあたっては、いつかFDDの模擬もやりたくて、そのためには2Sを含むいろいろなディスクイメージが必要…ということもありました。

 そこで現れたのが…いやごめんなさい、かなり前からありますし知ってから入手するまでかなり時間がありました…KryoFluxです。

 これがKryoFluxの本体。かなり小さいです。注文して約1〜2週間くらいで到着します。

 KryoFluxは、言ってみればフロッピードライブをUSBで外付けするためのボード…というように見えるのですが、よくあるUSB FDDのように認識されるようなことはありません。専用のソフトでFDDを制御し、フロッピーに書き込まれた情報を読んだり書き戻したりします。USBで通信するマイコンボードにFDDがぶら下がっているというのがより正確だろうと思います。

 普通FDDを接続したシステムなら何らかのFDCを介してディスクの読み書きをします。その方が簡単で確実にアクセスできるからですが、逆にFDCの制約から逃れることはできません。有名どころではWestern DigitalのFD179Xシリーズ(富士通のMB887xシリーズの元)だとフォーマット時に指定する特殊コードの都合上、0xF5・0xF6・0xF7などを管理領域に書き込むことができません。比較的初歩的なプロテクトに使われた仕組みですが、厳密に読み出された物をそのまま書き戻そうと思うとこれが障害になってしまいます。そこで、FDCを介さずマイコンが直接フロッピーのビットストリームを解析することでFDCにまつわる一切の制約から逃れられるようになっています。

 というのも、KryoFluxが一部の人から注目を集めているのが、この「ビットストリームをまるごと記録できる」機能です。過去のソフトを保存することを考えると、そこで動いているプログラムだけでなく、プロテクトや隠しデータ・消したつもりのゴミデータまで含めて"ありのまま"に保存されることが望ましいに決まっています。これまでのディスクイメージだと本体のデータの他は少ししか追加情報はないわけで、もちろんエミュレータには不要なデータなので仕方ないんですけど、それをフロッピーに書き戻したところで元のように使うことはできるでしょうけど元のディスクとは似ても似つかない内容になってしまってるわけです。

 KryoFluxのサイトを確認してみると、さすがに世界的にはマイナーなのでD88形式の出力はサポートしていませんが、とりあえず素直にセクタのダンプをしてくれるモードもあるようですし、単密度でダンプしてくれそうなので、こいつを使ってイメージ作成環境を構築してみましょう。


セットアップ

 KryoFluxのボードにはFDDやHDDによくある4ピンの電源端子が生えているのですが、ボードはUSBの電源で動けますので、通常は電源を接続する必要はありません。バスパワーHUBで接続していると必要になるかもしれませんが…。

 というわけであとはフロッピーのケーブルを接続するのと台数設定くらい。さすがに今時設計されたものだけあって、フロッピーケーブルはPC/AT用のものがそのまま使えます。というかそれ前提ですね。

 私は当初、MZとかで使ってるFDDユニットに接続できるよう、MZやX1のFD端子であるD-Sub 37pin仕様に合わせたコネクタを持つ、小さなケースに入れて運用しようかと思ってました。書き戻しを考えるとトラック幅の狭い2HD用ヘッドで2Dディスクに書き込むのはイヤですからね。
 ですが…。

 まずは動かしてどういう環境になるかを確認する必要もありましたので、これまでDOSマシンとして使ってきたデスクトップPCに組み込んでしまいました。やったことと言えばフロッピーのケーブルをマザーから抜いてKryoFluxに挿し直しただけ。

 ソフトについてはKryoFluxのサイトからダウンロードします。インストーラはないので適当な場所に展開して。

 ドライバのインストールにあたっては、まずFDDの電源を入れないでUSBケーブルだけ接続してPCに認識させてください。ドライバが見つからないとか、何か偶然別なものが代わりに当たったりするかもしれませんが細かいことは気にせず、デバイスマネージャを開いて今追加されたデバイスのドライバの更新としてダウンロードしたデータの中にあるdriverフォルダを指定すれば、正しいものに入れ替えてくれます。

 その状態のまま、コマンドプロンプトを開き、ダウンロードしたデータの中にあるdtcコマンドを実行します。このようなエラーが出れば、つまりボードの存在は認識できてる…ということなのでドライバのインストールには成功しています。

>dtc -c2
Timeout while waiting for device initialization

 次にFDDの電源を入れて、もう一度同じコマンドを実行します。すると今度は改めてドライバがロードされて、ちゃんとしたメッセージが出力されます。

>dtc -c2
CM: maxtrack=83

 これでハード・ソフト共準備が整いました。


MFM/FM sector imageによるフロッピーイメージ作成

 KryoFluxはAmigaやCommodore系の多数の種類のディスクイメージを直接出力することができますが、個人的にはどれにも用はありませんので、一番素直なMFM sector imageまたはFM sector imageでいわゆる「ベタイメージ」を作ってみます。

 まずはMFM sector imageから。ダウンロードしたデータのdtcフォルダにあるkryoflux-ui.jarをダブルクリックすると、次のようなアプリが起動します。上記で使用したdtcはコマンドラインアプリで、全ての機能を使うにはこれを起動する必要がありますがイメージ取り込みする分にはGUI環境の方が便利です(というかこのGUIはdtcを使用するためのフロントエンドです)。

 Fileメニューの「Settings」という項目を選択すると、次のような設定画面が現れます。

 左のメニューから「MFM sector image」を選択し、変えたい設定の「Default」のチェックを消して適切な値を入力します。ここでは、PC/AT用5インチFDD・FD-55GFRで2Dディスクを読み出す前提として、256バイト/セクタ・40トラック・300rpmとして設定しています。ただし回転数は「この設定で回す」という意味ではなく、そもそも記録された時の回転数を指すようです。

 メイン画面に戻って、DriveメニューでFDDのドライブ番号を設定しておきます。PC/AT流用システムなら、Drive 0が3.5インチ、Drive 1が5インチのFDDになりますね。
 Control欄の「Enter name...」にイメージファイル名を入れて、その下の「Select outputs...」とあるところのメニューから先ほど設定した「MFM sector image」を選択し、FDDにフロッピーを入れて、Startボタンをクリックすれば読み取りが始まります。

 なお初回のみ、そのドライブのトラック数を確認するためキャリブレーションを実行します。キャリブレーションはDriveメニューから指定することもできます。一度実行されれば自動でキャリブレーションすることはないはずです。

 さて、これで上記の設定だとfilename.imgとかいう名前でイメージファイルが出来上がりました。これはトラック0・サイド0・セクタ1から順番にデータが並んでいるだけのベタフォーマットです。一部エミュレータではこの形式をサポートするものがありますが、使い勝手を考えてD88フォーマットに変換することにします。

 自作ソフトのお部屋2D Toolsにある2d88というユーティリティを使用します。これは2DベタイメージとD88形式イメージを相互変換します。さすがに1998年製の古いソフトなので最近のOS(64bit環境とか)では動かないと思いますので、その時はMS-DOS Playerを使用するとうまくいきます。

>msdos 2d88 -d88 filename.img

 さて次はFM sector imageです。MFMの場合とほとんど同じで、設定画面もセクタ長を128にするのが違うくらいです。

 生成されたファイルは2Sベタイメージになっています。ここから何かの形式に変換するツールはありませんが、素直なバイナリファイルですから、初歩的なプログラムで簡単に好きな形式に加工できるのではないかと思います。

 なお、イメージ取り込み前に行った設定は、元の物を変更して使うのではなく、コピーした方を変更して使う方がいいと思います。


KryoFlux Raw Streamによるフロッピーイメージ作成

 上記のMFM sector imageによる方法で、大半のフロッピーはイメージ化に成功すると思います。ディスクBASICなどそのパソコンの基本的なシステムソフトならなおさらでしょう。

 しかし、全てのフロッピーディスクがそうとは限りません。プロテクトのために1トラックだけセクタの数が異常とかいうのは別としても、例えばセクタにインターリーブがかかっているものはベタイメージになってしまうとその情報が失われてしまう(物理的な並びのままイメージ化されてしまう)ため、正しいD88ファイルにすることができなくなってしまいます。KryoFluxが直接D88形式の出力をサポートしてくれれば、ディスクがどうなってるか全部わかってるんだから万事解決だったのでしょうけどね。
 さらには、MFM sector imageではリードエラーになってしまうディスクがあります。記録状態が悪化していたり、その他読み出し条件が良くないものがあるんですね。

 そこで登場するのがビットストリーム記録、つまりRaw Streamです。ありのままをデータとして保存しておいて、別のプログラムで必要な形式に変換してしまおうということですね。

 まずはKryoFluxでの操作です。先ほど指定していたMFM sector imageとかの代わりにKryoFlux stream files, preservationを指定するのですが、同時に他の形式もセットで指定します。メインの画面では形式のところで<Multiple>を指定すると、このようなウィンドウが現れます。

 ここで、まずKryoFlux stream files, preservationをクリックして選択し、次にCtrlを押しながらMFM sector imageとCT Raw imageをクリックして、3つ選択されている状態にします。OKを押してウィンドウが消えれば、後はMFMなどと同じ手順でディスクを読み込ませることができます。
 File→Settingメニューでの設定でKryoFlux stream files, preservationもベタイメージ取り込み時に説明した項目が編集できますが、どうも無視されているようです。この形式による取り込みは2Dだろうが2Sだろうが「なにがなんでも2HDドライブで取り込んでやる」ということなんでしょう。

 実はKryoFlux stream files, preservationを指定するだけでもイメージ作成はやってくれます。その場合はこんな画面になると思います。

 小さい四角がたくさんあるところが、各トラックの読み込み状況を表しています。エラーなどの結果がわかるのですが、全てUnknownの灰色になっています。灰色はUnformatとかでもインジケートされますが、ここでは形式はわからんけどとりあえず読んだ…ということしかわかりません。
 そこで、先ほどのようにMFM sector imageやCT Raw imageなんかを合わせて指定して取り込んでみると、次のような画面になると思います。

 Raw Streamでの取り込みはトラック間隔とか関係なく倍トラックで行われるのですが、そのうち正しそうなデータがありそうなトラックはその旨(正確には読み出したがトラック番号が違うとのこと)表示されています。合わせて指定する形式は、Raw取り込みの時でも一種のガイドとして働くようで、生成するデータをより確実なものにしてくれます。KryoFlux stream filesだけ指定した場合に復元しきれなかったセクタが合わせ指定で復元できるようになった例もあります。

 そして、このRaw StreamからD88形式に変換します。Raw Streamを扱えるツールもいくつかあるようですが、ここではSAMdiskを紹介します。これはコマンドラインアプリですが、WindowsNT/2000以降で動作します。そもそもこれはフロッピーから直接イメージに変換するツールで、マザーに直接接続されたFDD(=USBで接続されてないFDD)であればアクセスできるツールなのですが、ここではオマケの機能であるイメージ→イメージ変換を利用します。使い方は簡単、

>samdisk track00.0.raw filename.d88 -d

とするだけです。Raw Streamはトラックごとに1ファイル生成されていますが、その先頭ファイルだけ指定すれば後は自動的に全部拾ってくれます。出力形式は出力ファイル名の拡張子で判断されます。最後のオプションは倍トラックでイメージ化されているファイルをひとつ飛ばしで拾わせるための指定です。

 もう一つ、有用なツールとしてHxC Floppy Emulatorというものがあります。

これはSDカードまたはPCにUSBで接続した周辺機器としてFDDの信号を模擬し、旧来のパソコンやシンセサイザーなどのFDDと置き換えてしまおうというハードとソフトなのですが、各種エミュレータで使われているイメージ形式やKryoFlux Raw Streamもサポートしており、さらにそれぞれの間の形式を相互変換する機能もあるのです。

 変換に先立って前準備があります。イメージファイルがあるフォルダに、"doublestep"と"rpm300"という名前のファイルを用意します。

これはエクスプローラのファイル一覧のところで右クリックして出てくるメニューの「新規作成(X)」から選べる適当なファイル…テキストファイルあたりが無難ですが、それをリネームして作ります。見たとおりで拡張子はありません。"doublestep"はイメージをひとつ飛ばしで読ませる指示で、2Dや2S等片面40トラックのディスクでなければ必要ありません。また"rpm300"は元々記録されていたディスクの回転数で、2HD・1.2MBディスクならば"rpm360"になるところです。特に"doublestep"は、データの中身とファイル名にあるトラック番号が一致しないためか指定を忘れるとツールがハングアップしてしまいます。

 そしてイメージファイルのひとつをドラッグしてHxCツールの上でドロップすれば、全てのトラックのデータを読み込んで処理の準備が完了します。一瞬アプリの応答がなくなりますが、先ほどの指定が間違えてなければ程なく復帰するはずです。

 ここで、"Track Analyzer"ボタンを押すと各トラックの記録状態を確認できる画面が現れます。

下にあるTrackのTrack numberのノブを動かせば他のトラックの画面になり、Side numberのノブを動かせば裏表を切り替えられます。Viewのツマミを適宜動かすと拡大・縮小などが可能です。その右、Statusの欄にはマウスカーソルのあるセクタの情報が現れます。

 ここで画面上部の緑の帯がそれぞれのセクタを表すのですが、ここでは帯16本分でディスク1回転を意味します。Raw Streamは何回転分かのデータをひとまとまりとして記録しており、ツールは必要であればできるだけ読み取り失敗のないデータを選べるようになっているのだと思われます。

 ViewのところのDisk viewをクリックすると、こんな画面に切り替わります。

こちらは拡大などはできませんが、ディスクのデータを俯瞰することができるようになっています。マウスカーソルのあるセクタの情報がStatusで表示されるので、適宜Track viewに切り替えて詳しく見るというような使い方もできるでしょう。

 さて、右下のOKボタンを押して元の画面に戻りましょう。ここで"Export"ボタンを押すといろいろな形式に変換して保存することができます。「ファイルの種類」で"PC88 D88 file (*.d88)"を選びファイル名を指定するとD88形式で保存できます。

 ここまでSAMdiskとHxCの2つのツールを紹介したわけですが、どちらを使うのがいいのでしょうか? 実はその答えは「両方使い分ける」ということになります。それぞれのツールで微妙に動きが異なるようで、片方を常用するとしてもたまにもう片方が必要になることがあるのです。

 私がいろいろ試してみた範囲では、HxCにてセクタ単位で復元できないStreamがあったり、SAMdiskがハングアップしてしまうStreamがあったりしました。いずれももう片方で試すと問題なく変換できたので、ツールの癖で不得意とするデータがあると考えるしかなさそうです(Development Versionとされている4.0を試用したところ、SAMdiskが以前ハングアップしたイメージでのトラブルは解消した模様)。Streamデータの解釈や解析の方法がツール毎に異なることは容易に想像できますから、どちらかをもう片方のバックアップとして使えばいいのではないでしょうか。両方で扱えないデータが現れる可能性もないわけではないのですが…その時はどうしましょうかね…。

 <Multiple>にて複数のフォーマットを指定する際、2D以上の容量のディスクならMFMを指定するということは、2SならFMにすれば良さそうということはすぐ連想できると思います。では、トラックによって・セクタによって記録密度が違うものが混在するディスクの場合はどう指定するべきでしょうか?
 …どうやら、指定するフォーマットはあくまでガイドのようなものなので、違うからといってエラーにされたりはしないようです。手元にあるMZ用のディスクでそういったものは多くないのですが、PC-3200S(単密度)のディスクとの互換性を必要とするMZ-3500(倍密度)で起動できるシステムディスクをMFM併せ指定にて試したところ、単密度で記録されたトラック0もきちんとイメージ化できました。


フロッピーイメージを書き戻す

 KryoFluxは以前から「読み」「書き」両方の機能があると宣伝されていましたが、長らく試験的な機能実装に留まっていたようです。それが2014年10月のv2.50から正式サポートとなりました。そこで上記PC/AT流用システム(つまり5インチ・3.5インチ共2HD/2DD兼用ドライブ)にて2Dディスクの書き込みをやってみます。

(注:正式サポートなのはIPFファイルからの書き込みであり、この欄で書いているStreamイメージからの書き込みはtechnology previewであるとされています。操作方法やオプション類が変更される可能性があることにご留意ください)

 KryoFluxに添付されるGUIは書き込み機能正式サポート後も読み込み専用となっています。書き込みには別のGUIアプリがありますので、KryoFluxのサイトから別途ダウンロードしましょう。名称は"WildeWutz"といいます。

もちろんこれも読み込みのUIと同様、コマンドラインツールであるDTCのフロントエンドにすぎません。DTCのあるフォルダにこのアプリも放り込めば使用できるようになります。DTCコマンドは書き込みについてもいろいろなオプションがあってWildeWutzから指定できないものもあるのですが、実使用上はここで指定できるだけで問題ないと思います。

 まずはKryoFlux Raw Streamデータを使って書き込みます。上部にある"Select"ボタンを押して〜00.0.rawとかのファイルを指定します。D88ファイルを作成した時のイメージファイルの指定と同じです。但しここでは"doublestep"や"rpm300"とかのファイルは必要ありません。

 Driveで書き込みたいドライブ(5インチなら"1")を指定し、Wipingでusedを指定して、ドライブにディスクをセットし"Start"ボタンを押せば書き込みが始まります。画面下半分にログが表示されますので、何か異常がないか確認することができます。

 KryoFluxで読み出したRawイメージは2Dディスクであっても両面合わせて160トラック以上ありますが、書き込みでも同様に160トラックあるものとして動作します。但し中身がアンフォーマットと判別されればスキップするようです。

 GUIで指定できるオプションは次のとおりです。
 Precompingはデータの書き込み位置を調整するライト・プリコンペンセイションを指すと思われます。use defaultにチェックが入っていますが、そのままで大丈夫なのではないかと思います。
 Mode signallingはドライブの高密度モードをオンするか否かです。2HDならHD側を、それ以外ならDD側を選択しておきます。
 Maximum trackはトラック数設定です。片面のトラック数で指示します。2HDなんかの倍トラックのドライブでは80以上を、2Dドライブでは40台のを選ぶことになるでしょう。
 Steppingはヘッドをどう動かすのかの設定で、neutralとbias inでは外から、bias outでは内から順に書き込むようになります。bias in/outではneutralとは違う条件になるようですが細かいことはわかりません。ここも通常はautoでいいと思います。
 Wipingは書き込みに先立ってトラックを消すのかどうかという設定です。normalでも消したと思いますが通常はusedでいいと思います。これは既に何か書き込まれているディスクに上書きする使い方です。wipeは強制的に消去を行い、その後書き込みます。

 消去というのはちょっと説明が必要かもしれません。フロッピーディスクドライブでもヘッドは再生・記録ヘッドと消去ヘッドで構成されているのですが、音楽テープのように消去してから記録するのではなく、上書き記録してから両端を狭めるように消去しています。これにより隣のトラックとの隙間をしっかり確保して精度を高めているのですが、構造上消去ヘッドだけを動作させてアンフォーマットディスクを作るなんてことはできないようになっています。

 しかしこのWipeという機能は、記録ヘッドを上手く操作して、結果的に「何も記録されていない状態」を作り出すようになっているものと思われます。昔、2HD/2DD兼用ドライブで2Dディスクを作成したものの、2D専用ドライブではリードエラーになった経験のある人もいるでしょう。データ転送用として、フォーマットされていないディスクを用意して2HD/2DD兼用ドライブで2Dフォーマットし、2Dドライブでは読み出ししかしないようにするアドバイスを聞いたことがある人もいるでしょう。全ては2Dドライブのヘッド幅が大きくて、2HD/2DD兼用ドライブのヘッド幅ではその半分の幅しか記録しないものだから、古い記録情報と混ざってしまうのが原因です。Wipe機能はこれを解消してくれるようなのです。

 もし上記の方法でリードエラーになるようであれば、一度Wipingをwipeに設定して書き込み、しかる後にusedに変更してもう一度書き込んでみてください。残念ながらwipeモードではうまく書き込めてないようで、場合によってはRAW書き込み時にコマンドが受け付けられなかった旨のメッセージが出ることもあるようです。もう一度usedモードで書き込むのが確実です。

 次にD88イメージファイルの書き戻しを行います。
 KryoFluxは生成時もそうでしたがD88フォーマットを知らないので、そのままでは書き込みに使えません。まずはRawファイルに変換しないといけないのですが、D88作成時に使用したSAMdiskは.rawを出力に指定してもベタフォーマットになってしまうので問題外です。ここではHxCツールを使います。

 HxCはなんとD88ファイルを読み込みフロッピーエミュレータとして使用することができるようです。Raw Streamに比べれば失われた情報はかなりあるのですが、そこはツールが勝手に補ってくれるようです。これをRaw Streamとして出力すればKryoFluxが受け付けられるようになります。D88作成時と似た要領で、D88ファイルをドラッグ&ドロップして、Exportでファイルの種類を"KF Stream file (*.raw)"として出力してください。

 しかしここでひとつ問題があります。2DサイズのD88ファイルを変換すると、Raw Streamも約80トラック分(両面)しかデータがありません。上で述べたとおりKryoFluxは書き込みでも全160トラックですから、前半だけしかデータが書かれないことになります。しかも倍トラックの密度で。

 そこで一計を案じます。.rawファイルの拡張子の直前の数値はトラック番号とサイド番号を表します。このトラック番号を、リネームで倍の数値にするのです。例えばこんな感じ。

filename_D8800.0.raw filename_D8800.0.raw
filename_D8800.1.raw filename_D8800.1.raw
filename_D8801.0.raw filename_D8802.0.raw
filename_D8838.0.raw filename_D8876.0.raw
filename_D8838.1.raw filename_D8876.1.raw
filename_D8839.0.raw filename_D8878.0.raw
filename_D8839.1.raw filename_D8878.1.raw

 出来上がりは0から78の偶数のみになります。これを上記のように設定して書き込めばうまくいくはずです。存在しない奇数トラックはちゃんと飛ばしてくれます。wipeモードで書き込んだ時は、奇数トラックも全部wipeした上で偶数トラックだけ書き込みます(この後usedモードで再度書き込みするのを忘れないように)。こうすることで、2Dドライブのヘッドでデータのある偶数トラック・wipeされた奇数トラックが同時に読み込まれても、偶数トラックの状態だけが読み取られるのでエラーなくアクセスできるようになります。

 DITTでは2Dディスクの場合奇数トラックを飛ばして書き込むぐらいはやってくれてましたが、トラック幅の問題は依然残ったままでした。KryoFluxならそれも解決してくれます。これからもどんどん活用していきたいですね。

戻る