パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

MS-DOSはCP/Mのソースコードを盗んで作られたのか?証明できたら総額20万ドルの賞金」記事へのコメント

  • ソースが欲しけりゃ、わざわざ盗むまでもなく逆アセンブルすればええだけやん

    現代におけるソースコード盗用とは意味が違いすぎますわ

    • by Anonymous Coward

      アセンブラ知らなさすぎ。
      ディスアセンブラが吐き出したものは、ラベル付けやワークエリアの解析など
      かなり手間暇かけないとアセンブラのソースにはならんよ。

      この場合の盗用は、現代におけるソースの盗用とほぼ同じ。

      • バイナリを逆アセ>アセンブル(コンパイル)可能なソース化が手間がかかるのは、言われる通り。
        特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。
        「簡単」と言っている人は多分実際にはやったことなくて、「やった事例がある」のを知ってるだけだと思う。やったのなら、その手間に辟易してるだろうから。
        ただし、だからと言ってソース化が不可能と言っている訳ではない。もちろん可能。

        dis.xや半自動化ツールは親コメがいう所の「ワークの解析」なんてのはやってくれない。
        (=親コメで言っているものと同等ですらないものを持ち出しているだけ)

        毎日逆アセと解析している身としては、まぁCP/Mぐらいの規模になれば、ソースを盗用するよりは、むしろ見えているAPIを下敷きに、模倣する方が100倍くらい楽。
        仮にCP/Mの動作を確認したいとしても、テストコード書いて確認すれば良いだけだから、わざわざコストの高い解析をするとは考えにくい。
        親コメント
        • by Anonymous Coward

          > 特にワークの意味合いまで完全に調べるのは、相当に手間がかかる。

          他アーキテクチャへの移植が目的なら「ワークの意味合いまで完全に調べる」必要はあんまないだろ。
          コードとデータの区別ができれば、8080 → 8086/8088 の移植は、キレイに書かれたプログラムならニモニックの機械的な変換でいけるよ。

          • ワークの意味合いまで調べる必要があるのは、
            それがテンポラリ的に使いまわしされるのか、とか、
            グローバル的に意味合いを持たされて使われるのか、とか、
            「同じものを指しているが、意味合いが違う場合」が多々あるからなんですね。

            全く改変する予定がない(機械的な逆アセではかれたコードを一対一で再利用するだけ)のであれば
            最低限それで良いかもしれませんが、
            それをもとに、発展継続を考えているのであれば、どう考えてもシステムの構造や、ワークの意味合いの解析は必要でしょう。

            まぁこういうのは実際にやったことがないと、どのくらい大変かはわからないですよね~。
            親コメント
            • by Anonymous Coward
              なんか資料鵜呑みにしてるだけで、本当にやったことある?

              MS-DOS の時代は、ディスアセンブラとか無くても、モニタでダンプ読んでコード理解するのは当たり前の作業だったよ。
              アセンブラのニモニック覚えるのも、オペコードの数字覚えるのも大差ないから、アセンブラ読めなくてもダンプではコード追えるって人も多かった。それくらいは少なくとも特殊な能力でもないし、誰でもやってた基本能力だった。
              ワークの解析というか、メモリマップ作るのはダンプ読みながらやる標準的な作業の一部。そんな大変な作業じゃない。ダンプレベルでパッチあてたり機能追加したりとか、学生のバイトにもやらせてたぐらいのレベルの作業だよ。

              いまみたいに CPU の挙動が複雑じゃなければたいした作業じゃないので、当時マイコンやってた人なら誰でもできるよ。
              • 逆に「本当にやったことあるの?」と問いたいw
                曲がりなりにも「システム」のプログラムならそれなりの量はあるし、もちろん複雑。

                あなたが記述してるのは「パッチあて」であって、システムの動作や構造をあらわにするレベルの「解析」ではないよ。
                そもそも比較しているものが違いすぎる。
                hello worldが書けたからOSも書けるだろって言ってるようなもんですわ。

                俺も毎日8bit-32bitのコードを解析してるけど、どれも面倒くさいよ。
                CPUの挙動じゃなくて単純にコードの規模の話。
                親コメント
              • ゲームのチートやちょっとしたパッチあてなら、それでいいけど、
                システム一通り読もうとすると、メモ書き程度では破たんだろう。
                というか、そんなに楽なら次から頼むわ。あの不毛とも思える作業。

                CP/M程度なら挙動を模倣するコードを自分で書くのが一番楽かと。

                まあこの時代、ソースの盗用,いいソフトをまねた習作,移植,あたりは
                渾然一体としていて厳密に分けられないことも多いけどね。

                親コメント
              • by Anonymous Coward

                それ言葉の使い方間違ってる恥ずかしいやつ、でケリついてるし

            • by Anonymous Coward

              まぁこういうのは実際にやったことがないと、どのくらい大変かはわからないですよね~。

              拾うところと捨てるところの判断を効率的にできないから全体を把握とか言ってるんだろうなあ。
              ゲームソフトの他のプラットホームへの移植の仕事とか何度かやった経験がある自分からすればバージョン2.2でBDOSのサイズが4kBもないCP/Mについてできない理由をうだうだ語ってるこの人のことは馬鹿としか思えん。

              • 文章ちゃんと読んでほしいんだけど
                「できるか、できないか、で言えば、できる」んですよ。
                でも、当初のコメにあるような
                「簡単、簡単!誰でもできる!」はどう考えても違う。

                「誰でもできる」なんて言葉を現時点で発言するのは
                「文系大卒でも、今すぐできる」って言ってるようなもんですよ?

                あの当時にしろ、そんなに誰でもできる、とかいうのであれば
                swordだとか、そういった「互換性」が取り沙汰される事もなかったはずです。

                なんというか「自分ができたことができないやつは全員バカ」みたいな狭い視野で議論されてますけど、それって自己満足以外に何があるんですか?
                俺も解析や移植なんかは多々やってますけど(なので「できない」なんて主張する気はない)それでもフラットに考えても、CP/Mの全解析が「簡単、できないやつはバカ」なんて思えない。
                自分という例外的な事例を取り上げて、反論したいのなら、どっか他所でやるべきなんじゃないですかね?
                ただのマウント取りたいだけのモヒカンにしか見えませんよ。
                親コメント
              • by Anonymous Coward

                〉ゲームソフトの他のプラットホームへの移植の仕事とか何度かやった経験がある

                学生時代の話?E仕事でした?

              • by Anonymous Coward

                文章ちゃんと読んでほしいんだけど
                「できるか、できないか、で言えば、できる」んですよ。
                でも、当初のコメにあるような
                「簡単、簡単!誰でもできる!」はどう考えても違う。

                「誰でもできる」なんて言葉を現時点で発言するのは
                「文系大卒でも、今すぐできる」って言ってるようなもんですよ?

                「ソースが欲しけりゃ、わざわざ盗むまでもなく逆アセンブルすればええだけやん」や「当時マイコンやってた人なら誰でもできるよ」という投稿を↑と解釈しているのであれば、日本語能力に障害があると言わざるを得んな。
                それか、藁人形論法でも構わんから論破した気分になりたいだけの阿呆だろう。

              • by Anonymous Coward

                1980年の時点の話なら70年代からやってた人ですね。
                文系ではマイコンの存在の認識すら無理では。

              • by Anonymous Coward

                「当時マイコンやってた人なら誰でもできるよ」は違う、という話をしてるのが理解できないあなたの日本語能力に問題がありすぎる。

              • by Anonymous Coward

                「簡単、簡単!誰でもできる!」なんて誰も言ってないことを持ちだして否定してる馬鹿の日本語能力を疑えよ馬鹿。

              • 何を主張したいのか、論旨もまとまってないようですが、
                まぁACですし、とりあえず場を荒らしたかった人だったんですね。
                お疲れ様でした。
                親コメント
              • by Anonymous Coward

                なんというか、今の阿呆なあなたがたが「当時マイコンやってた」からといってまともにできたはずがないですね
                賢い人ほど自分のやっていることの困難さを自覚するものです
                で、AZUCOさんの実績はご存知?

              • by Anonymous Coward

                で、AZUCOさんの実績はご存知?

                なんかのエミュレータを作り掛けで途中で放置してる方、という認識で合ってますか?

                # 実績(=実際の功績・成果)ではないか。

              • by Anonymous Coward

                あなたは、あの程度なら自分でもできると言いたいのかな?

              • by Anonymous Coward

                エミュレータをいくつか手がけた経験から言えばソフトが一つ動くようなったところでエミュレータの完成度は50%以下、二つ動くようなってようやく50%かそこら、三つ四つと動くようなっていってもその過程で非互換部分は見つかり対策を行い、途中どうしてもわからん壁みたいなものに遭遇することもしばしばで動作するソフトが増えるに従い難易度は上がっていく印象なんですけどね。
                「あの程度」ってどの程度のこと言ってんの?

              • by Anonymous Coward

                (#3062540) 氏にとってはちょろい仕事で、(#3062696) =ある程度の知名度のあるエミュレータを手伝った私にとっては非常に大変な程度です

                HBLANKの処理が不正確だったのではないかと推測はされましたが、ただ一つのゲームがいつまでたっても画面が崩れるとか

              • by Anonymous Coward

                HBLANKの処理が不正確だったのではないかと推測はされましたが、ただ一つのゲームがいつまでたっても画面が崩れるとか

                なんで調査して問題解決しないで推測でやめたんですか??

              • by Anonymous Coward
                特定した。
                acountname
              • by Anonymous Coward

                特定した。
                acountname

                https://www.google.co.jp/search?q=acountname [google.co.jp]

                次の検索結果を表示しています: account name
                元の検索キーワード: acountname

              • by Anonymous Coward
                いつもはACのacountname
              • by Anonymous Coward

                http://srad.jp/~acountname [srad.jp]

                こんな頭悪そうなIDの奴いるんだなw 特定したとか抜かしてる奴も含めて馬鹿揃いだわw

              • by Anonymous Coward

                あなたには一生かかってもできない程度には難しいことなので

              • by Anonymous Coward

                「やーいバーカバーカ」みたいなコメント投稿してて楽しい?

              • by Anonymous Coward

                何のプラットホームかわからんけど

                1. 該当のタイミングでの実機のVRAMの内容を確認
                2. 該当のタイミングでの実機でH-BLANK期間に実際に行われる処理内容を確認
                3. 以上2点を踏まえた上でどのような表示が行われるかを考察
                4. 考察された表示結果が実際のものと同一となるか確認
                5. 4. が正しければエミュレータの動作を 1. から確認、違う部分は原因を突き止め修正

                作業的には大体こんな流れになると思うけどね、こんなのを「一生かかってもできない程度には難しいこと」と思える人には確かに無理かも。

              • by Anonymous Coward

                (#3062696) =ある程度の知名度のあるエミュレータを手伝った私

                ただ一つのゲームがいつまでたっても画面が崩れるとか

                自称手伝った人だけど実際なんも役に立ってなかったってことかな?
                いますね、実績がないのに自己評価だけは高い人って。

              • by Anonymous Coward

                「当時マイコンやってた人なら誰でもできるよ」は違う、という話をしてる

                どの投稿がそれだという主張ですか? メッセージ番号を示してもらえませんか?
                http://srad.jp/comment/3062017 [srad.jp] の

                当初のコメにあるような
                「簡単、簡単!誰でもできる!」はどう考えても違う。

                「誰でもできる」なんて言葉を現時点で発言するのは
                「文系大卒でも、今すぐできる」って言ってるようなもんですよ?

                は違いますよね?

              • by Anonymous Coward

                現象を確認しつつそれを修正しないって無能の証しだよなあ…。

              • by Anonymous Coward

                だからそれはあなたには一生かかってもできないのです…

              • by Anonymous Coward

                言うは易し行うは難しなんですが、それをまったく自覚していない、想像もつかない阿呆には無理なんですよ

              • by Anonymous Coward

                言うは易し行うは難しなんですが、

                http://it.srad.jp/comment/3062938 [it.srad.jp] で挙げられてる作業の 1. ~ 5. でどこか難しい部分がありますか?
                あるいは別の解決方法を考えた上で修正を断念されたということでしょうか?
                現時点この場であなたは易しいという「言う」ことすらされてないのですが、その自覚はありますか?

              • by Anonymous Coward
                火消しに躍起になってるな。
                特定する根拠はかなり強力なのがそろってるんだよ。
                その根拠を知らずに、特定に否定的な事を言いたがる人物もおのずと特定されるよな。
                関係ない他人なら「どんな方法で特定したの?」と気になるだろうからな。

                他にもお前の特徴はある。
                数行の短い反射的な、相手を批判するためだけのレス
                ACとそうでない時は意図的に語尾を変えてる

                なんの実績もないお前がまぁよくも他人にあれだけ言えたな。
                典型的な口だけオタクのおっさんだろ。
              • by Anonymous Coward on 2016年08月14日 18時13分 (#3063194)
                火消しに躍起になってるな。
                特定する根拠はかなり強力なのがそろってるんだよ。
                その根拠を知らずに、特定に否定的な事を言いたがる人物もおのずと特定されるよな。
                関係ない他人なら「特定方法はなんだろう」と気になるだろうからな。

                他にもお前の特徴はある。
                数行の短い反射的な、相手を批判するためだけのレス
                ACとそうでない時は意図的に語尾を変えてる

                なんの実績もないお前がまぁよくも他人にあれだけ言えたな。
                典型的な口だけオタクのおっさんだろ。
                親コメント
              • by Anonymous Coward

                他にもお前の特徴はある。
                数行の短い反射的な、相手を批判するためだけのレス
                ACとそうでない時は意図的に語尾を変えてる

                「口調が違うのが同一人物の証拠だ!(ドャァ」って頭大丈夫?
                ちょっと本気で頭の病院逝くことをお勧めするよ。

          • by Anonymous Coward

            DOSは知らんけどハンドラとか自動生成している場合なんかはデータ部分にコードがあったりして
            自動解析結果は信用できない事がよくあります。

            経験ない人にはわからんと思いますけど

          • by Anonymous Coward

            実際ワークは特に考える必要無いんだけどねえ。
            ロジックを追っていくとワークとして使われているエリアが見られる、ってのは往々にしてあるけども、
            そもそも互換品を作りたいなら細かいところなんかどうでも良くて、大雑把にどう動いているか判ればいい。
            エミュレーター作っている訳では無いから、過度の解析は時間の無駄だったりする。

        • by Anonymous Coward

          PL/Mという指摘があるけど、アセンブラの話をすると…

          もとコメントを見て最初に思ったのは、CP/Mって
          どんなアセンブラを使って書いてたの? という
          疑問でした。

          もっとはっきりいうと、コメントツリーのだれもマクロに
          言及していないのが時代性を感じさせるというか。
          (ラベルとかワークエリアとか、そこかよ! みたいな。そんなのどうでもいい)
          アセンブリでプログラムを書くのが普通の時代はマクロを
          使ったものです。生産性が全然ちがいますよ。ちょっと開発すれば
          マクロライブラリはがんがん貯まります。
          マクロ機能はCPPみたいな低機能なものではなくて、VHDLのgenericとかを
          考えてくれればいいです。

          で、言いたかったのは、あれを逆アセンブルすればソース化は
          可能と言うなら、Cだって可能です。

          とはいえ、CP/Mがどんなアセンブラを使ってたか知らないので
          黙っていたのでした。(PL/Mということなので、黙ってて正解だった)

          • 「マクロアセンブラは、マクロアセンブラというツールであって、
            アセンブラとは違う」と思えるくらい違うよね。
            個人的にはIFと書けたら高機能マクロなイメージがある。

            親コメント
          • by Anonymous Coward on 2016年08月12日 21時50分 (#3062450)

            > とはいえ、CP/Mがどんなアセンブラを使ってたか知らないので

            付属のASM.COMなら、マクロどころかリロケータブルなオブジェクト生成やリンケージなどできない単純なアセンブラでしたよ。
            出力はIntel Hexフォーマットのみで、バイナリを作るためにLOAD.COMで変換してましたな。
            後にMACというマクロアセンブラが派生したけど、CP/M1.4時代からあったのはASM.COM。

            まあ、それは商品としてそうであったということだけで、開発したKildallさんが自前で持っていなかったとはいわない。

            > マクロ機能はCPPみたいな低機能なものではなくて、VHDLのgenericとかを考えてくれればいいです。

            例えばMS-DOSのMASMなどと比べるとかなり基本的なマクロ機能しかなかったです。数KB~10数KB程度(MACは手元にないですが、マイクロソフトのMACRO-80アセンブラは19KB、リンカが10KB)のバイナリや32kB~56KB程度のフリーエリアしかない開発環境に多くを求められないでしょう。

            親コメント
            • by Anonymous Coward

              セルフで開発していると思っているバカ

              • by Anonymous Coward

                公開されてるCP/MのソースがPL/Mで書かれてるからなー、初期のCP/MはMDS上でクロス開発され、それ以降の開発はCP/M上でセルフ開発された可能性はフツーに考えられると思うよ。

          • by Anonymous Coward

            マクロって言ってみたいだけの人にしか見えんなあ。
            アセンブラのマクロなんて単なる省力化の手段であって、そんな御大層なもんではないぞ。

        • by Anonymous Coward
          まぁ、当時はメモリも少なかったし何やっても遅かったから手間かかるし、自己書換のコードなんてのも普通にあったし、ワークエリア使いまわしとか、逆アセして人のソース見てもあまり楽は出来ないんじゃないかと。
          • by Anonymous Coward

            自己書換のコードなんてのも普通にあったし、ワークエリア使いまわしとか、

            PL/M ってそんなコード吐くんだあ、勉強になるなあ。

        • by Anonymous Coward

          議論の本質はCP/M(のBDOSとCCP?)が逆アセンブルとどの程度の手間でソース化できるか、それが現実的なものなのかなのに、「逆アセンブルによるプログラム解析についての一般論」か何かに曲解してあーだこーだ言ってるコイツは馬鹿。

        • by Anonymous Coward

          > バイナリを逆アセ>アセンブル(コンパイル)可能なソース化が手間がかかる
          ・・・いやあの。最悪元のコードをデータとしてまるっと埋めるだけでも
          アセンブル(コンパイル)可能なソース」は簡単に作れますよ?

          人間可読な、意味のわかるコードに変換することは確かに自動ではほぼ無理で手動でも手間が掛かりますし、
          コンパイルすれば同じバイナリになるけど意味合いが全然違うコードしか得られないとかはありますけど、
          # データ部分がコードになってたり、その逆だったり、開始位置がずれて妙な解釈したり
          出力結果をアセンブル(コンパイル)することが前提の逆アセンブラ(逆コンパイラ)なら、
          意味合いが不明だったり間違っていても問題なくアセンブル(コンパイル)できる出力が得られます。

普通のやつらの下を行け -- バッドノウハウ専門家

処理中...