パスワードを忘れた? アカウント作成
10216373 story
ソフトウェア

Apple ][のDOSのソースコードが公開される 41

ストーリー by hylom
もう35年以上前なのか 部門より

米コンピュータ歴史博物館が12日、Apple ][で使われていたDisk Operating System(DOS)のソースコードおよび関連文書を同Webサイト上で公開した(PC WatchApple II DOS source codeページ)。

開発者のPaul Lahghton氏とAppleの許諾の下で公開されている。個人利用に限り無償というライセンスだ。実際、現代でこれ自体に価値があるかどうかというと微妙だが、エンジニアや技術マニアの方には興味深いのではないだろうか。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年11月16日 16時29分 (#2496565)

    参考リンクとしてこんなの [cnet.com]がありましてん。

    #9DBFG

  • ][って・・・ (スコア:0, すばらしい洞察)

    by Anonymous Coward on 2013年11月15日 9時06分 (#2495845)

    IIでいいじゃん

  • by Anonymous Coward on 2013年11月15日 9時16分 (#2495849)

    逆アセンブルすれば中身が分かる程度のものだし、中身を知りたければそうしていたものだが

    • by T.Sawamoto (4142) on 2013年11月15日 10時13分 (#2495885)

      逆アセンブルしたことがあるならお分かりだと思われますけど、

      ・バイナリがコードなのかデータなのか
      ・データならどんな意味でどういう型なのか
      ・特定の値が何を表現しているのか
      ・条件分岐が何を目的としているのか

      といったことが分かるのはとても重要ですよ。
      自己書き換えなんかが行われていると、その把握にひと苦労しますし。

      親コメント
    • by Anonymous Coward

      たぶん君は、出版されていつでも本屋で立ち読みできる漫画の
      原画(原稿)を展示したり、それを見に行く人の気持ちも理解できないだろうな。

      • by Anonymous Coward

        会社がApple Developer Groupに登録していて(当時漢字Talkの頃)
        ソースコードとか見たがそんないいもんじゃなかったよ
        第一声が「汚ねぇ」だったw

        芸術家の原稿や楽譜を眺めて楽しみたい人にはいいんだろうけど
        こっちは仕事だしねぇ

        • by Anonymous Coward
          ソース実物を見る機会は無かったのですが、とあるブログ製本にて「よくもあんなキ*ガイコードを」と書かれてるのを見て、

          やっぱ理想の設計より目先の実装だよなぁ

          と実感したものです。
          俺以外の誰かが使うのなら、それはアウトプットが全てであり、他には何も必要としないでしょう。

          # 雑兵は死んでこそ価値がある XD
          • by Anonymous Coward

            >やっぱ理想の設計より目先の実装だよなぁ

            逆。OS Xはやっと脱却できたの。

    • by Anonymous Coward

      オマエ、公開されたものを見ていないだろ。
      ソースにはコメントも付いているんだよ。

      # ファンフォールド紙に打ち出したものをスキャンしてあるのを公開するなんて何て粋なことをと思ったが
      # 紙の形でしかソースが残っていなかったのかな?

      • by Anonymous Coward on 2013年11月15日 10時34分 (#2495895)

        「博物館の収蔵品」の公開なのだと思います。「情報」として打ち込み直すことも可能でしょうが
        これは、こういう形で鑑賞するものかと思います。

        元々、テクニカルマニュアルには、モニターROMのソースコードと、AppleIIの全回路図が
        掲載されていましたが、DOSの方は、きっと著作者の違いで公開されていなかったのですね。

        学生時代のアルバイト先にあったもので今手元には無いのですが、確かこのテクニカルマニュアルには、
        6502のアーキテクチャやその命令語の解説も含まれていて入門者の良い教材になりました。

        親コメント
        • Re:何を今さら感 (スコア:5, 参考になる)

          by Anonymous Coward on 2013年11月15日 11時39分 (#2495917)

          もしやと思って探してみたらありました

          Apple II Reference Manual from Apple Computer (January 1978)
          https://archive.org/details/applerefjan78 [archive.org]

            - - -
          オマケです、IBM PC/ATのもの (これも同様に回路図とBIOSのソースコードを含んでいます)

          PC AT Technical Reference Mar84 (March 1984)
          https://archive.org/details/bitsavers_ibmpcat150ferenceMar84_26847525 [archive.org]

          親コメント
        • by Anonymous Coward

          一応テキストも埋め込まれてますね。コピペも出来ます。書式ぐちゃぐちゃになるけど。
          OCRの読み取りミスか間違いもかなりありますね。「EQU」が「EGU」になってたり。
          修正するつもりまったくなさげなのが笑える。

    • by Anonymous Coward

      つコメント(手書き含む)

    • by Anonymous Coward

      AppleIIの逆アセ解析本は出てなかったっけ?

  • by Anonymous Coward on 2013年11月15日 13時04分 (#2495952)

    汎用ロジック+プログラムでフロッピーディスクに読み書きをすると言う点じゃないかと。
    アセンブラバリバリで、この命令が〇クロックで動くから、ああしてこうしてという職人芸のソースコードなのでしょう。

    実際、Apple ][のゲーム等でプロテクトがかけられたとき、解析の糸口として使いまわされるリードルーチンを探してから解析したと聞いてます(………つまり、難読化をしてなかったわけだな)。

    • アセンブラバリバリで、この命令が〇クロックで動くから、ああしてこうしてという職人芸のソースコードなのでしょう。

      職人技でも何でも無い普通のコードでしょう. と感じるのが当時の一般的なプログラマのレベルだと思います. クロック数をちゃんと数えないと, 処理が間にあうかどうか分からない, ハードリアルタイム処理に近いことが要求されていましたし, 信号線や間に入るロジック回路の延停を考慮してNOP命令を入れるなんてことも.

      ましてや難読化なんて実行性能や使用メモリ容量に悪影響を及ぼすことは全くのナンセンス. 自己改変コードも, シングルスレッド前提でリエントラントは考慮しなくていいし, 組み込み用途みたいに明確にROMのコード領域とRAMのデータ領域が分かれていなければ使うのが当然というところがありました.

      まあ, それもコードの規模が小さいから出来たことでしょうけど.

      親コメント
      • by Anonymous Coward

        いや、当時すでに8ビット機でもディスク周りはある程度インテリジェント化され、apple2のような
        バカなデバイス設計は、時代遅れと言うか珍しいと言うか頑固と言うか独特と言うか、そんな感じだった。
        (まあ、あのころはどのマシンも独特だけど)

        だから、CPU側でプログラミングでディスクへの書き込みタイミングをいじれるので、
        すなわちこのDOSに頼らずにかなりのことができるので、
        プロテクトに使いやすく、そんな技が結構あったと聞いている(僕はappleの解析はやったことないので伝聞)

        「アセンブラバリバリ」が当時としては当然で、職人芸でもなんでもないのには同意。

    • by Anonymous Coward

      解析した香港のクラッカーもまたすごかったということでしょう。

      クラックした上に、自分の名前入れた独自の
      スプラッシュスクリーンとか仕込んでたから
      Artの領域です。

    • by Anonymous Coward

      >汎用ロジック+プログラムでフロッピーディスクに読み書きをすると言う点じゃないかと
      FDC-I/Fを考えたのはwozだったけどDOSを書いたのはwozじゃないみたいだから
      DOSには物理層入っていないんじゃない?(ぢゃないとブートできない)

      その辺は考えてみりゃテープと変わらんな。速度が全然違うけど。
      PC-8001で9600ボーとかテープでやっていた記憶がある。
      今のプロセッサなら振幅多値にしてイコライザとか入れられるんだろうけど
      あんときゃ1/0の矩形波だけだった。

    • by Anonymous Coward

      この命令が〇クロックで動くから、ああしてこうしてという職人芸のソースコードなのでしょう。

      “The source code of the low-level read/write routines by Steve Wozniak and Randy Wigginton.” とコメントされてる Apple_DOS_RW_30May1978.txt [amazonaws.com] 見ても、とてもそんな感じの内容ではないですが。

      • by Anonymous Coward on 2013年11月16日 0時37分 (#2496371)

        APPLE2のディスクコントローラはバッファがないので、厳密なクロック数で1バイトずつI/Oアドレスに書き続ける実行するコードを書かないと、正しくディスクにデータを書き込むことができません。例えば8サイクルで書き込むとデータとして扱われ、10サイクルで書き込むと同期バイトとして扱われる…みたいな感じです。
        また、if文の様な条件分岐では1サイクル追加されるので、アセンブルするアドレスにも気を遣う必要があります。

        親コメント
        • by Anonymous Coward

          それってそういうハードでは当たり前でしょう? どこが職人芸??

          • by Anonymous Coward

            そのころすでに「それってそういうハード」が当たり前ではなくなっていたから、
            当時としても驚かれていたのですよ。

            • by Anonymous Coward

              今でもAVRのSoftUSBが、そんな感じのコードですね。いい意味でとってもアマチュア的。

            • by Anonymous Coward

              ハードウェアの構造として時代遅れなのであって、プログラムとして特に高度なことをしてるわけじゃないんだけど?

        • by Anonymous Coward

          MacのFDDはBDのように(角速度一定ではなく)線速度一定だった記憶があるけど、AppleIIはどうだったんでしょう。

          • by Anonymous Coward

            角速度一定です。フロッピーに位置決めの穴が開いていますが、全てソフトで管理しているので穴は見ていません。

  • by Seth (1176) on 2013年11月15日 14時28分 (#2496010) 日記

     オープンソースとして前世紀の70年代に公開されてれば
    それなりにもっと多くの色々な作品が出てきていたと思うよ(走召糸色木亥火暴)
     くらいの感想かな。

    --
    "castigat ridendo mores" "Saxum volutum non obducitur musco"
typodupeerror

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

読み込み中...