PC6001用フロッピーのファイル化 のバックアップ(No.2)


oldPC

PC6001用フロッピーのファイル化

なんでP6にFD?

  • 私にとってはパソコン青春機ともいえる『PC-6001』だが、そのエミュレータの存在を知ったのは2001年の夏頃だった。PC6001Vのこころというホームぺージを見つけ、ゲームのスナップショット画面を見た時は、思いがけない懐かしさとうれしさで胸がいっぱいになったものだ。
  • そもそもPC6001実機を買ったのは1982年頃だったか? すぐに後継機のPC6001mk2に乗り換えて、しっかり使いまわして元は取ったと思うが、90年頃には本体等は動かなくなっていたような記憶。本体は処分したが、例によって捨てがたく残ったのは、けっこうな本数のテープとフロッピーだった。
    P6_Floppys
  • もともとPC60のソフトは90%がゲームだった。媒体は「カセットテープ」。オプションで外付けFDドライブもあったのだが、高価だし、そもそもアミューズメントパソコンだから、フロッピー版の市販ソフトというのは見かけたためしがない。
    P6_Tapes
  • ではなぜ、フロッピーがあるのか。そこが「わが青春機」たるゆえんなのだが(^^)、、、PC6001Mk2(中古)に2ドライブFDD(PC8031)やミニプリンタ(PC-6021)なんかを追加して、それなりにシステムっぽくして、、何をしてたのかというと、ゲームソフトの解析をやっていた(^^;) 無敵化等の改造はもちろん、テープソフトをフロッピー版にリメークしたり、つまり、Z80マシン語の世界に片足を突っ込んでいたのだ。ま、そんな思い出話は、またあらためて(^^)
  • その成果というべきフロッピーの束なのだが、エミュレータがDISKにも対応していたおかげで、あらためて動く可能性が出てきたわけである!!捨てなくてよかった(^^)
  • そんなわけで、P6用のFDをイメージファイル化する作戦のはじまりはじまり!
    (実際にやったのは2001年頃のお話、メモをたよりに記録にまとめたのは 2009年09月)

P6のフロッピーと「両面」化

  • ついでに書くと、PC6001のFDタイプは「5インチ_1D」であった。『片面倍密度』と言うことになるのか。容量は約160KB。当時、PC80/88が 「5-2D」PC98では「5-2DD」や「5-2HD」だったから、ハードレベルに合わせた低仕様と言うことになるのだろう。
  • そもそも「5-1D」なんて媒体はあまり市場性もなく割高で、PC80用の「2D」フロッピーを買ってきて、「両面・1D」タイプに改造して使っていた。
  • ジャケットをそーっと解体して開き、ひらひらのフロッピーを抜き出しておいてから、パンチでインデックホールをもう一つ穿けて、またフロッピーを戻して、瞬間接着剤でジャケットを閉じるという作業なのだが、何10枚もやればけっこう上手になった(^^)
    1D_W_FD
       【通常の1Dフロッピー(片面)】  【2Dフロッピーを1D両面化】

P6FDの読み取りツール

  • さて、残されたP6のフロッピーをいかにしてファイル化するかだが、読むためのドライブやツールが問題だ。
  • そもそも、P6FDのフォーマットは、当然MS-DOSではない。PC6001用だから、「N60mBASIC」である。(PC98は「N88BASIC」だったかいな?)
  • 当時調べた中でも、いくつかツールが存在することはわかったが、なかなかたどりつけなかった

「DSK:フロッピーディスク吸出し&書込みツール」

  • P6用のFDドライブを使って読み取るらしいのだが、本体もFDDもなくなってしまい、この手は使えない。(ハードが使えても、正直なところ、P6上でどうするのか ^^;)

「1DDディスクツール」

  • PC-98で1DDメディアの読み書きやフォーマットをするツールだが、リンクは切れており入手できなかった
  • 今さらだが、調べ直してみると、P6エミュレータ iP6 PlusFAQに、SMC-777用である「1DDitt」 が紹介されており、リンク先でダウンロードも可能だった。これはDOS版なので、ひょとしたらまだ使えるかも??

「MAHALITO」で吸出し成功!

  • PC98のフロッピーの吸出しでも登場したファイル化ツール「MAHALITO」だが、これがP6のフロッピーにも使えることがわかった。
  • MAHALITOの動作環境としてはPC98(NECのMS-DOS)であったが、幸い、まだ2001年頃は、PC98実機もクラリHOSTとして現役だったりして、それなりに動いていた時代だったので吸出し環境としては間に合った。
  • 一歩譲ってMAHALITOがWin98のDOS窓で動作したとしても、5インチフロッピーディスクドライブが前提となる。PC98の終焉は5インチドライブの終焉でもあったのだから、も少し気付くのに遅れたらお手上げになるところだったといえよう。
  • まず、MAHALITOを使った吸出し手順だが、フロッピーを挿入してコマンドを実行するが、基本パラメータは以下のとおり
    MAHALITO <コマンド> <オプション> <転送元> <転送先>
    《コマンド》は  A: フロッピーディスクのファイル化を行う
    《オプション》は -2D : 2D
     <転送元>は、ファイル化対象フロッピーのセットドライブ名
     <転送先>は、ディスクをファイル化したデータを格納するファイル名
  • 実行例は
      A>MAHALITO A -2D B: A:\P6FD\DATA
  • Bドライブのフロッピーディスクを2Dフォーマットで読み、Aドライブの¥P6FDフォルダーに、DATA というファイル名で保存するという形になる。
  • MAHALITOで生成されるファイルは、フロッピー1枚につき2つ。 拡張子が ”.2D”及び”.DAT”。前者の"*.2D”には元のフロッピーのフォーマット情報、“*.DAT”にはフロッピーの内容が記録されている。
  • 実は、説明書の扱えるディスクの項には「・N80BASIC、N88BASICのフロッピー(2HD/2DD/2D)」としか書いてなかったり、オプションにも「1D」がなくて、ほんとに読めるかどうか心配したが、結果はOKだった
  • 両面化FD(1D×2面)でも、問題なく片面づつファイル化可能だった。実は、「-2D」指定で読めたとしても、表と裏がグチャグチャに一つのファイルになってしまうこと心配したのだが、それは杞憂に終わった(^^)
  • PC98上で行った作業だが、まとめてHDDに保存し、フロッピーやMOを経由でWindows機に移して、吸出しは完了となる。

D88フォーマットへ変換

  • ファイル化はできたが、MAHALITOのフォーマットのままではP6エミュレータが扱えないので、対応フォーマットに変換する必要がある。
  • 当初使ったエミュレータ「iP6 for Windows」は、D88ファイルフォーマット(拡張子.D88)に対応していた。まぁ、当時の国内の主なパソコンのディスクフォーマットとなんだろう
  • 変換ツールとしては、 「DILTO」が有効だった。PC88系エミュレータ用ツールの一つであるが、問題なく使えた。
  • 「DILTO」によるconvert手順を整理しておくと、
    • ①同一DIR上に、本体とMAHALITOで吸い出したファイル「xxx・*」2つを置く
        dilto.exe
        xxx.dat (MAHALITO吸出しファイル)
        xxx.2d  (MAHALITOフォーマットファイル)
    • ②ファイル名を指定してコマンドを実行する
       c:dilto xxx
    • ③動作画面は
      mahalito file -> .D88  converter  [ DILTO ] v1.30  by anonB,8.1998 
      xxx.2D + xxx.DAT --> xxx.D88
      diskname(title)  : 【適当に入力 ふつうはxxx とソフト名か】
      write protect    : ON
      media type       : 2D(40)
      append mode      : NO
      D88 head length  : 676
           (中略)
      track   0/ 79 (N=0*16:MFM  ) -         0  
      track   1/ 79 (  unformat  ) -      4352  
      track   2/ 79 (N=1*16:MFM--) -      4352  
           (中略)
      Complete!
       1 Disk converted  by DILTO.
        Header :       676
        Data   :    152332
        Total  :    153008
  • 実は、先ほどVistaでこの変換作業を試しにやってみた。なんと、一部文字化けはするもののちゃんと動いて、.D88ファイルができて驚きだ。
    DILTO_log

ベタファイルへの再変換

  • D88に変換して『iP6 for Windows』で大部分は動作した。
  • ただ、ほんとは別のエミュレータ『PC6001V』を使いたかった。多少だが、機能とかユーザインタフェースに差異があって、PC6001Vの方が格好良かったわけ。
  • ところがPC6001Vの対応フォーマットは、当時「D88」ではなく「ベタフォーマット」だった。これは、本来フロッピーとして管理するためのヘッダー情報をファイル内に持たない、ただデータ部が連続するファイルなのだ。
  • ここで、ムキになってベタフォーマットにトライした。といっても、難しい話ではなくて、バイナリエディタ等を用いて、D88形式のヘッダー情報部分を削除すれば一巻の終わりだなのだ
    ヘッダの削除:PC6001V用ベタファイル作成方法
    (1)ヘッダ部 230H分(000H~2AFH)データ削除
    (2)セクタヘッダ部 削除
      100H毎のoffset_size(10H)を削除
    (3)最終サイズ
      256×16×35=143,360Byte
      (100H×10H×23H=23,000H)
      アドレス:00000H~22FFFH
  • 実際やってみると、ファイルの頭230Hバイトと、100Hバイト毎に10Hバイトずつ削除するという単純な力仕事。それだけに気が抜けず疲れる(^^;) Mifesでマクロを組んでみたりしたが、スマートといえない。
  • 最後は作者の掲示板で何とか対応してくださいとお願いした。その時の返事はあまり芳しくなかったが、割とすばやい対応で、D88フォーマットが読めるようになって、一件落着した。
  • 今は、どのエミュレータもD88フォーマットが基本なので、ベタ化は余分な騒ぎだった。

決定版だ! PC6001VW

  • その後、P6エミュレータはさらに進化し、決定版ともいえる「PC-6001VW」が登場した。着々とバージョンアップが継続し、いまや機能的には天下一品!! Vistaでも時折、昔のP6ゲームをひっぱり出して楽しんでいる(^^)
    PC6001VW3
  • このソフトの紹介も、あらためて別の機会に(^^)
トップ   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS   リンク元