パスワードを忘れた? アカウント作成
36482 story
ゲーム

コモドール64とIBMのフォーマットが混在するフロッピーディスク 55

ストーリー by hayakawa
お宝発見 部門より

あるAnonymous Coward 曰く、

本家「PC Historian Finds Puzzling Game Diskette Image」より。

昔のゲームを発掘し、アーカイブすることを趣味とする"Trixter"氏は、先日5ドルで古いDOSゲームなどを購入したそうだ。その中に含まれていた「Mental Blocks」というゲームのアーカイブに取り掛かかろうとしたところ、ゲームのマニュアルに「コモドール64でもIBMでも、ラベル面を上にしてディスクを挿入する」という文言を目にしたそうだ。当時のコモドール64/IBM用やApple/IBM用のディスクはそれぞれがどちらか片面を使用する両面ディスク("flippy"disk)であることが常だったため、マニュアルのTypoだと思いながらディスクのFAT12を確認したところ、"BAD"とマークされているセクションが所々に存在していた。DIRをかけると、使用可能領域は通常の360KBではなく256KBとなっており、トラックエディタはMFMデータとして認識されないトラックがあることを示していたとのこと。

この「Mental Blocks」というゲーム、どうもIBMとコモドール64のフォーマットが混在しているディスクで販売されていたようなのである。Trixter氏は、このディスクが生まれた背景を次のように推測している。

  • IBM版ゲームの容量は160KB以上であり、ディスクの片面には収まる容量ではなかった。恐らく4/2色のCGA/Herc版と16色のEGA/Tandy版の両方を収めようとしたためと思われる。
  • MFMデータとして認識されないデータ量から推測すると、コモドール64版ゲームの容量は80KB程と思われる。
  • 発売当時、パッケージやメディアのコストなどの理由から、ゲームを1枚のディスクに収める必要があった。
  • IBM版はCGAとEGA両方で発売したかったため、開発者の誰かがDOSではコモドール64トラックを読み込ませずに、かつコモドール64でもディスクを読み取りブートできるようなフォーマットを構築した。

どんな開発者が、どのようにこのフォーマットを構築したのだろうか。是非話を聞いてみたいところだ。また、/.J諸氏でこのようなディスクにお目にかかったことのある方はいるだろうか?
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by shima923 (5627) on 2008年10月02日 12時33分 (#1430318)
    フロッピー時代の同人ソフトでは、
    わりとあったと記憶してます。
    4機種ぐらいは自動で判別するとかもあったような。
    すっかり忘れましたが。
  • by Anonymous Coward on 2008年10月02日 12時44分 (#1430330)

    このタレコミを垂れ込んだ人も採用した人も若い人なんだろうなぁ、私は既に若くないんだなぁ、ということがよくわかりました。はぁ。年取ったんだな。

    • 採用した者です。

      > このタレコミを垂れ込んだ人も採用した人も若い人なんだろうなぁ
      ご想像のとおり、私は20代の若者です(^^ゞ

      一応、MSX、PC-9801VM,RXあたりは使ってたのですが、
      正直この手の話題は斬新に感じました。

      他のコメントも拝見させていただきましたが、
      昔は結構メジャー(?)だったのですね、勉強になりました。
      --
      混沌の中にこそ真実がある・・・かもしれないけど探すのめんどい
      親コメント
    • ディスク容量のくだりを読んだ時点で「あれ?単位とかまちがえてんじゃない?」と
      調べ始めた若い人が少なくとも数人はいると推測してます。
      親コメント
      • >ディスク容量のくだりを読んだ時点で「あれ?単位とかまちがえてんじゃない?」と

        そうなんですよねぇ・・・
        最近ははじめて使ったPCにWindowsXPが入ってたなんて新人も多くて、
        昔は8ビットCPUでメインメモリが最大64KBでなんて言っても
        『まぁたまたご冗談を』とか
        『嘘つけこのハゲ』かなんか言われてしまうだろう。

        # 最近のCPUのオンダイキャッシュより小さいし。
        ## そんなこと言ったら上限1MBの8086でもOUTだろーが。
        ### 16MBの80286ですら危ういぞ。
        親コメント
    • どこに下げようかと迷いましたが。

      あのころは、ディスクフォーマットのプログラムが教科書に書いてあったりして、CP/Mの移植とかやろうと思うと、フォーマッタとかブートローダとか読み書きプログラムを自作するのは必須でしたね。

      オレサマフォーマットで少しだけ容量を増やしたフロッピーを作ったりして喜んでたものです。

      その中で、特殊なフォーマットを使ってプロテクト代わりにしたソフトなんてのも目にしました。(もちろんクラックされて自分のところに回ってきたわけですが)

      親コメント
      • by prankster (12979) on 2008年10月02日 14時38分 (#1430425)
        >特殊なフォーマットを使ってプロテクト代わりにしたソフト>

        この例ですが。通常のデータ領域の外側にデータの1部が書き込んであって、ハードウエアを叩いてそこを読みに行かせるしくみのソフトがありました。

        通常のDISKCOPYだとその特殊データまではコピーできないので、コピーは動作しません。そういうコピープロテクトでした。

        ちなみに、MagicCopyというコピーソフトを使うとシーク可能なすべての領域をチェックしてコピーするため、コピーも動作したみたいです。秋葉原でデモをしているのを見ました。
        # もう何年前のことか。総てが懐かしい...
        親コメント
        • by Anonymous Coward
          みんなよく覚えているなあ

          >>通常のデータ領域の外側にデータの1部が書き込んであって
          オーバートラックですね。

          プロテクト全盛の時代のフロッピーは、アンフォーマットが混じってたり、セクタが異様に短かったり長かったり、回転数変えて書き込みされてたり、インデックスホールの数が妙に多かったり、特定のセクタにレーザーで穴が開けられていたり、もうやりたい放題でしたね。

          # アインシュタインが欲しくて悶えた中学2年の夏
          • by jtss (23444) on 2008年10月02日 20時12分 (#1430741)
            そうそう、PC88SRの本体と5インチのフロッピーディスクドライブの間にハードを噛ませて、物理的な(穴を開けたりした)以外のソフトのバックアップを取るソフト(一部ハード)を使ってました。でも当時あんまりパソコン(ソフト)を持っている友人がいなかったから、違法コピーをしてたわけじゃなくて純粋にバックアップをしてただけ。えっ、購入したソフトの個人的なバックアップって違法なの !!
            --
            JTSS
            親コメント
          • by Anonymous Coward
            昔の会社の先輩が学生の頃、88だったかな・・・のフロッピーディスクに物理的な穴が複数
            空いている奴をバックアップするのに、分度器で角度を調べて穿孔したとか言ってたなぁ。
            ソフト名とかは覚えていませんが。

            自分は学生の時分は既にPC-98x1が主流で、Wizard V3とかのファイラー頼りでした。
            渋谷のマックスロード(桜ヶ丘方面)にお世話になった記憶が。店は摘発され閉店したな。

            関係ないけど、このストーリーを見てSACD Hybridを思い出しました。

            #時効・・・になっているといいなーと思いつつACでスイマセン。
        • by Anonymous Coward
          > そういうコピープロテクトでした。

          そんな初期的なコピープロテクトを使っているところなんてほとんどなかっただろうね。

          > ちなみに、MagicCopyというコピーソフトを使うと

          某コピーソフトは、プロテクトチェックルーチンにパッチ当てていたよ。
    • by Anonymous Coward
      へぇ~、

      でも、かつてっていっても

      64ビットのゲームマシンはあったってことですよね。

      # ;-)
  • by 505 (12538) on 2008年10月02日 14時31分 (#1430415)
    FDCを直接触るって、いまぢゃ失われた技術なんでしょうね…

    私も若いころは、I/Oポートを直接いじって、モータが回りだしたり、アクセスランプが点灯したり、MB8877を駆って他機種のFDを読んだもんです。
    (2DDのドライブで2Dは読めるけど、書き込むと相手の2Dドライブでは読めなかった…)

    uPD765Aはコマンドやデータを順番に書き込んでいかないとならないので、ちょっと面倒でしたね。おまけに、リザルトステータスとかの読み出しバイト数を間違えると、以降の動作がおかしくなるし。


    そして今… FPGAでオリジナルなFDCを設計して、IBMフォーマットの1.44MのFDを読み込んでる人を知ってます(ドライブはPC/ATで使う一般的な3.5インチ・ドライブ)
    「ミッシングクロックの判定が難しくてなぁ~」とか言ってました…
    • by lynnlynn (15967) on 2008年10月02日 15時24分 (#1430448)
      なんでしょうか。

      一番最近MFMという文字列を見たのは近鉄の自動券売機のデバッグ画面?でした。3年ほど前。
      磁気カードにもある [tacy.co.jp]んだなあと。

      #ST-506とかSASIとかはすでに、もうすぐSCSIもロストテクノロジーに入るんだろうかな。
      親コメント
    • by Anonymous Coward
      MB8877、uPD765A‥。
      久しぶりに聞いたなぁ、そのチップ。
      どちらかというとその手のチップの知識とFDのフォーマットの知識を土台に
      フロッピーとか(その後)MOとかの復旧には随分役立ったものでした。

      #最近は自前で復旧することしなくて、バックアップ取ってなきゃ終了にしてるから。
    • by Anonymous Coward
      そのむかしPC98シリーズでIBMフォーマットのFD(2D)を読み書きするためのファイラー(FDもどき)を作って公開していました。
      98はシリンダ・トラック・セクタを指定してINT 1Bhを叩いてやればIBMフォーマットでも読み書きできたのでそのあたりの苦労はなかったのですが
      FATにあたる部分の仕様解析とEBCDICという謎の文字コードの対応表づくりに苦労した記憶があります。
      (仕様手に入れる苦労より解析したほうがてっとりばやかった)

      C64とIBMのハイブリッドのような特殊フォーマットや独自フォーマットは、こと日本においてはゲームやプロテクトよりワープロのフロッピーに多かったかもしれません。
      • by Anonymous Coward
        >EBCDICという謎の文字コード
        今じゃネットでいくらでも調べられる時代。変わったものです。

        昔は、自分の世界ならJIS(or ShiftJIS)だけで事足りた。
        いやUNIXな人はEUCか。
  • 有名なことだけ覚えていて、どこに書いてあったのかは忘れたが、
    たしかブートコードが複数のプロセッサのどれであっても、最初の何バイトかで適切なアドレスにジャンプするように記述されていたとかいう記憶が…
    --
    fjの教祖様
    • MFMデータとして認識されないトラックがあることを示していた
      ということは、C64のフロッピーはMFMじゃなく別の変調方式ってことじゃないでしょうか。Googleで探しても確かめられなかったけど。
      変調方式が違うなら、「同じブートセクタから別のセクタにジャンプさせて…」というのは不可能では。

      ひとつのメディアに複数の変調方式って、どうやって書き込んだんだろう。
      FDCを経由せずにヘッドに直接信号を送るとか?
      --
      うじゃうじゃ
      親コメント
      • ひとつのメディアに複数の変調方式って、どうやって書き込んだんだろう。
        FDCを経由せずにヘッドに直接信号を送るとか?

        大昔の記憶ですが、モトローラのFDCは可能だったかと。
        --
        fjの教祖様
        親コメント
      • by Anonymous Coward
        >ひとつのメディアに複数の変調方式って、どうやって書き込んだんだろう。
        業務用のディスクライターならいくらでも。
        PCでもFDCリセットなんかで。

        何かがトラック0だけFMだったような記憶があるんだけど、なんだったっけ。
        N-BASICだったっけなあ。
        • by Anonymous Coward
          >何かがトラック0だけFMだったような記憶があるんだけど、なんだったっけ。

          8インチの倍密度フロッピーでしょう。

          http://ja.wikipedia.org/wiki/IBM%E5%BD%A2%E5%BC%8F%E3%83%95%E3%83%AD%E... [wikipedia.org]

          >IBM形式では、0シリンダの表側をインデックス領域として使う。
          >インデックス部はFM方式で書き込まれ、データ部はMFM方式で書き込まれる。
  • by Anonymous Coward on 2008年10月02日 12時22分 (#1430308)
    FM-7と88だっけ?98と68kだっけ?なんかいろいろあった記憶があるんだけど、もう完全に忘れています。
    • by Artane. (1042) on 2008年10月02日 13時57分 (#1430392) ホームページ 日記
      私もうろ覚えですが、各機種でIPLとして使われているTrack0のSector1(でよかったか…)のしょっぱなでZ80か6809かを判定して、それぞれのローダー実体を本体にあるBIOS経由で読み込む類のコードに飛ぶような「粋」な仕掛けが1セクタの中に仕込まれてるのがありましたね。

      確か、どちらかのNOPが条件判定になってるので(Z80のNOP=6809のBNEでしたっけ?)、IPL読み込み時の分岐条件フラグがクリヤされてるのを逆手に取って、ジャンプ先アドレスとして記述されてる一バイトをもう片方がスキップすれば済むという、仕掛けが分かれば「なーんだ」的な物でしたが…

      確か、ザインソフトのトリトーン [retropc.net]の5インチ版がFM-7とPC8801SR両対応だったような
      …後は一部のコピーツールで対応機種以外からブートすると、違うCPUのマシンであっても「間違っています」みたいなメッセージ吐くのがあったような…EXPERTだったかCOPYBOYだったか忘れましたが、そういう余りにHACKERな真似と言うのが競われていた時代だったんですわ。
      親コメント
      • by Anonymous Coward
        これ [cug.net]ですかね。
        誰か各アセンブラに翻訳してくだちい。
        • by Anonymous Coward
          リンク先のコードは01 C0 E9 3B 00 18 19 20 57だそうで、FP-1100でZ-80のニーモニック対応表見ながらハンドアセンブルしてた世代ですが、検索などしてちょっとやってみました。他CPUは素人なのであしからず。

          Z-80の場合
           LD BC,0E9C0H
           DEC SP
           NOP
           JR 020H -> ここで分岐?

          8086の場合
           ADD AX,AX
           JMP 040H -> ここで分岐?

          6809の場合
           ??? ググって見つけたopcode表では01は未定義っぽい?
           68派だった方お願いします。

    • by Anonymous Coward
      FM-7と88はガチですね。
      98と68Kは最近の話なのでわかりません。
  • by Anonymous Coward on 2008年10月02日 13時01分 (#1430343)
    昔あったAMIGA/ST Formatと言う雑誌についていた付録のフロッピーは
    AMIGAとATARI STの両方で読み込めるようになっていた。
  • by Anonymous Coward on 2008年10月02日 13時18分 (#1430363)
    >IBM版ゲームの容量は160KB以上であり、ディスクの片面には収まる容量ではなかった。

    っていうけど、ディスクの片面容量は

    >使用可能領域は通常の360KBではなく256KBとなっており、

    だから収まるんじゃないの?
    • by Anonymous Coward on 2008年10月02日 13時52分 (#1430387)
      >IBM版ゲームの容量は160KB以上であり、ディスクの片面には収まる容量ではなかった。

      本家には、ちゃんと180KB以上と書いてある。タレコミ人のミス

      >使用可能領域は通常の360KBではなく256KBとなっており、

      IBM版ゲームの容量が180KB以上あると片面の360KBに入らないので
      A面はIBMのCGA/Herc版(MFM(倍密度) FAT)
      B面はIBMのEGA/Tandy版(MFM(倍密度) FAT)余ったところをBADセクターにして容量を256KBにする

      B面コモドールはMFMフォーマットが読めないのでMFMのBADで空けた160KBをFM(単密度)フォーマットして80KBにコモドール64版ゲームを入れる
      親コメント
      • by Anonymous Coward
        だから、256K空いてるのになんで160Kのゲームが入らないんだよ、と質問してるんだよ、上の人は
    • by Anonymous Coward on 2008年10月02日 17時46分 (#1430589)

      IBM版ゲームの容量は160KB以上であり、ディスクの片面には収まる容量ではなかった。
      っていうけど、ディスクの片面容量は

      使用可能領域は通常の360KBではなく256KBとなっており、
      だから収まるんじゃないの?

      5インチ2Dのディスクのはずなので、通常のディスク全体(両面)の容量が360KBで、片面の容量は180KBです。 元記事 [wordpress.com] (日本語訳 [blogspot.com]) には160KB以上と書かれていますが、180KB上の間違いじゃないかなと思います。ただ、#1430387 [srad.jp]に書かれている本家での指摘というのがどこにあるのかはよくわかりませんでした。

      ディスクの構成は#1430387に書かれたようなものではなく、A面がIBM (256 - (360 / 2) = 76KB分) とC64 (360 - 256 = 84KB分) のハイブリッドで、B面はIBM用のデータ (180KB分) のみ記録されています。IBM用のドライブは両面対応なので、IBMでもC64でも常にA面を表にして使用します。

      親コメント
      • by Anonymous Coward on 2008年10月03日 11時48分 (#1431141)
        >160KB以上と書かれていますが、180KB上の間違いじゃないかなと思います。ただ、#1430387 [slashdot.jp]に書かれている本家での指摘というのがどこにあるのかはよくわかりませんでした。

        #1430387の発言者です。
        書いてありませんでした。見間違いでした。ごめん。
        親コメント
    • by Anonymous Coward
      >っていうけど、ディスクの片面容量は
      >
      >>使用可能領域は通常の360KBではなく256KBとなっており、

      5インチ2Dの両面の容量でしょ。1セクタ512バイトのフォーマットで360KBですよ。
      • by Anonymous Coward
        NECの5インチ2Dは1セクタ256バイトの、320kBだったな。
        ファルコムなんかが1024バイト×5で400kB、「3-5フォーマット」と呼んでた。
        「リトルバンパイア」だったか、1024バイト×5+256バイト×2で440kB突っ込んでるのもあった。
  • by Anonymous Coward on 2008年10月02日 15時31分 (#1430452)
    異種フォーマットが存在するディスクなんて珍しくはないでしょ?

    いまだって某業務ソフトで、特殊フォーマットをかけて、業務ソフト上からは見えるけどとWindowsからは見えない、みたいなことやっているソフトあるね。Windowsから見たら空なのでフォーマットかけちゃったなんてヘマがある。
    • by Anonymous Coward
      それはたぶん論理フォーマットのことで、こちらは物理フォーマット。

      わざわざフロッピーの物理フォーマットを変える理由として、
      1.一枚で容量を稼ぐ(reservedな場所までデータを読み書き)
      2.一枚で複数の機種に対応させる
      3.コピープロテクトをかける(製品フロッピーだと物理フォーマットがされていないはずの
      領域を読みにいって、エラーしなければコピーだと判定)

      2.から、複数の機種で解釈がことなるバイナリを埋め込んで機種判別とか、
      3.から、さまざまなコピープロテクト技術(NECを代表するFDCであるμPD765シリーズとか、富士通を代表するMB8877シリーズとか)に派生したりとか。

      #もちろん、そういうミスを昔もやったことはありますよ。
      #ラベル貼ってないフロッピーが読めなくて実はなにかはいってたとか。
      • by Anonymous Coward
        たぶん、上の人が言っている某業務ソフトは、容量を稼ぐために物理フォーマットを変えていると思うよ。

  • by Anonymous Coward on 2008年10月02日 20時26分 (#1430750)
    MFMとFMの混在でしょ。
    0シリンダだけFM。
    最近某測定器のシステムディスク(2DD)をバックアップとろうとして
    現用PCで四苦八苦してました。結局linux嬢のfdrawread(だっけか)で吸い出して解決。
    これが0シリンダFMで、、、

    #かくいう私もアインシュタイン世代 蝮の執念とか
    #RATS&STARとか

    いやまぢでWizard&98を引っ張り出そうかと思った。
    某測定器ってシステムメニューにシステムディスクのバックアップが無いのよ。
    • by Anonymous Coward
      RATS&STARのDCIは、個人的には(ソフトレベルでは)最強だったと思う。
  • by Anonymous Coward on 2008年10月02日 20時48分 (#1430763)
    SHARP MZ-80C/K/80B/2000シリーズの両面FDDでは
    の5インチ FDDは表面と裏面の信号の論理を逆に解釈して
    ソフトが作られていたため、表裏逆に記録されていた。
    こいつを利用して他機種でも利用できるFDができた。
  • by Anonymous Coward on 2008年10月03日 1時38分 (#1430935)
    FDCすら使っておらず怪しいハードと怪しいソフトの力で読み書きをしていました。
    やろうと思えばなんでもありの楽しいシステムでした。

    変調、セクタサイズ、セクタ数、セクタ間隔、セクタインターリーブ、トラックピッチ、etc.
    (シーク用のステッピングモータを半位相ずつずらしてスパイラルのようなフォーマットまで可能)
    • by celtis (33470) on 2008年10月03日 16時50分 (#1431383)
      適度にいい加減な純正ドライブでは読めるけど、正確すぎるコンパチドライブでは
      読めなくなるという超絶技巧or自虐ネタなプロテクトもありましたよね?
      親コメント
      • by diskpower (37801) on 2009年02月23日 17時49分 (#1519239)
        それと逆のパターンなら経験しました。
        忘れもしない純正品をわざわざ取り寄せた Ultima II。
        もちろん本体もFDDもモッキンボードも全部純正品。
        ぜんぶコンパチ品の後輩の家では起動するのに、ウチので起動しない。
        仕方ないのでコピーを作ったら、なぜかそいつでは大丈夫。
        暫く頭かかえちゃいましたよ。

        別のコメントに通常 Side 0 Track 0 Sector 0 が最初に読み込まれるってな感じの記事が
        ありましたけど、
        TRS-80って、たしか真ん中辺りにコントロールブロックとかディレクトリがあったはず。
        平均シーク時間を下げようとしたんだろうなぁ。Boot block もそこにあったかは忘れました。
        親コメント
    • by Anonymous Coward
      The Integrated Woz Machine (IWM) ですね。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...