Apple ][のDOSのソースコードが公開される 41
ストーリー by hylom
もう35年以上前なのか 部門より
もう35年以上前なのか 部門より
米コンピュータ歴史博物館が12日、Apple ][で使われていたDisk Operating System(DOS)のソースコードおよび関連文書を同Webサイト上で公開した(PC Watch、Apple II DOS source codeページ)。
開発者のPaul Lahghton氏とAppleの許諾の下で公開されている。個人利用に限り無償というライセンスだ。実際、現代でこれ自体に価値があるかどうかというと微妙だが、エンジニアや技術マニアの方には興味深いのではないだろうか。
今年の春のCNET (スコア:1)
参考リンクとしてこんなの [cnet.com]がありましてん。
#9DBFG
][って・・・ (スコア:0, すばらしい洞察)
IIでいいじゃん
Re:][って・・・ (スコア:1)
まあ正確には
apple ][
なんだけどね。
Re: (スコア:0)
Google先生にダブルクォーテーションで囲んで訊いてみました。
"Apple ][" とか "Apple //" とかだと、コンピュータの名前と理解してくれないようであります。
Re:][って・・・ (スコア:1)
"Apple //e" ですね。試すなら。
Re: (スコア:0)
細かいことに突っ込む人が多いので。
その手のこだわりはここでは大切。
世間ではどーでも良いのだけどね。
Re:][って・・・ (スコア:1)
だって技術屋だもの
みつお
Re: (スコア:0)
いやいや、// でしょ。
Re: (スコア:0)
それはcでは?
Re: (スコア:0)
「//」 ならC++だな。
Re: (スコア:0)
C99かもね
何を今さら感 (スコア:0)
逆アセンブルすれば中身が分かる程度のものだし、中身を知りたければそうしていたものだが
Re:何を今さら感 (スコア:2)
逆アセンブルしたことがあるならお分かりだと思われますけど、
・バイナリがコードなのかデータなのか
・データならどんな意味でどういう型なのか
・特定の値が何を表現しているのか
・条件分岐が何を目的としているのか
といったことが分かるのはとても重要ですよ。
自己書き換えなんかが行われていると、その把握にひと苦労しますし。
Re: (スコア:0)
たぶん君は、出版されていつでも本屋で立ち読みできる漫画の
原画(原稿)を展示したり、それを見に行く人の気持ちも理解できないだろうな。
Re: (スコア:0)
会社がApple Developer Groupに登録していて(当時漢字Talkの頃)
ソースコードとか見たがそんないいもんじゃなかったよ
第一声が「汚ねぇ」だったw
芸術家の原稿や楽譜を眺めて楽しみたい人にはいいんだろうけど
こっちは仕事だしねぇ
Re: (スコア:0)
やっぱ理想の設計より目先の実装だよなぁ
と実感したものです。
俺以外の誰かが使うのなら、それはアウトプットが全てであり、他には何も必要としないでしょう。
# 雑兵は死んでこそ価値がある XD
Re: (スコア:0)
>やっぱ理想の設計より目先の実装だよなぁ
逆。OS Xはやっと脱却できたの。
Re: (スコア:0)
オマエ、公開されたものを見ていないだろ。
ソースにはコメントも付いているんだよ。
# ファンフォールド紙に打ち出したものをスキャンしてあるのを公開するなんて何て粋なことをと思ったが
# 紙の形でしかソースが残っていなかったのかな?
Re:何を今さら感 (スコア:4, 興味深い)
「博物館の収蔵品」の公開なのだと思います。「情報」として打ち込み直すことも可能でしょうが
これは、こういう形で鑑賞するものかと思います。
元々、テクニカルマニュアルには、モニターROMのソースコードと、AppleIIの全回路図が
掲載されていましたが、DOSの方は、きっと著作者の違いで公開されていなかったのですね。
学生時代のアルバイト先にあったもので今手元には無いのですが、確かこのテクニカルマニュアルには、
6502のアーキテクチャやその命令語の解説も含まれていて入門者の良い教材になりました。
Re:何を今さら感 (スコア:5, 参考になる)
もしやと思って探してみたらありました
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]
Re: (スコア:0)
一応テキストも埋め込まれてますね。コピペも出来ます。書式ぐちゃぐちゃになるけど。
OCRの読み取りミスか間違いもかなりありますね。「EQU」が「EGU」になってたり。
修正するつもりまったくなさげなのが笑える。
Re: (スコア:0)
つコメント(手書き含む)
Re: (スコア:0)
AppleIIの逆アセ解析本は出てなかったっけ?
あれのDOSの大変なところは (スコア:0)
汎用ロジック+プログラムでフロッピーディスクに読み書きをすると言う点じゃないかと。
アセンブラバリバリで、この命令が〇クロックで動くから、ああしてこうしてという職人芸のソースコードなのでしょう。
実際、Apple ][のゲーム等でプロテクトがかけられたとき、解析の糸口として使いまわされるリードルーチンを探してから解析したと聞いてます(………つまり、難読化をしてなかったわけだな)。
Re:あれのDOSの大変なところは (スコア:1)
職人技でも何でも無い普通のコードでしょう. と感じるのが当時の一般的なプログラマのレベルだと思います. クロック数をちゃんと数えないと, 処理が間にあうかどうか分からない, ハードリアルタイム処理に近いことが要求されていましたし, 信号線や間に入るロジック回路の延停を考慮してNOP命令を入れるなんてことも.
ましてや難読化なんて実行性能や使用メモリ容量に悪影響を及ぼすことは全くのナンセンス. 自己改変コードも, シングルスレッド前提でリエントラントは考慮しなくていいし, 組み込み用途みたいに明確にROMのコード領域とRAMのデータ領域が分かれていなければ使うのが当然というところがありました.
まあ, それもコードの規模が小さいから出来たことでしょうけど.
Re: (スコア:0)
いや、当時すでに8ビット機でもディスク周りはある程度インテリジェント化され、apple2のような
バカなデバイス設計は、時代遅れと言うか珍しいと言うか頑固と言うか独特と言うか、そんな感じだった。
(まあ、あのころはどのマシンも独特だけど)
だから、CPU側でプログラミングでディスクへの書き込みタイミングをいじれるので、
すなわちこのDOSに頼らずにかなりのことができるので、
プロテクトに使いやすく、そんな技が結構あったと聞いている(僕はappleの解析はやったことないので伝聞)
「アセンブラバリバリ」が当時としては当然で、職人芸でもなんでもないのには同意。
Re: (スコア:0)
解析した香港のクラッカーもまたすごかったということでしょう。
クラックした上に、自分の名前入れた独自の
スプラッシュスクリーンとか仕込んでたから
Artの領域です。
Re: (スコア:0)
>汎用ロジック+プログラムでフロッピーディスクに読み書きをすると言う点じゃないかと
FDC-I/Fを考えたのはwozだったけどDOSを書いたのはwozじゃないみたいだから
DOSには物理層入っていないんじゃない?(ぢゃないとブートできない)
その辺は考えてみりゃテープと変わらんな。速度が全然違うけど。
PC-8001で9600ボーとかテープでやっていた記憶がある。
今のプロセッサなら振幅多値にしてイコライザとか入れられるんだろうけど
あんときゃ1/0の矩形波だけだった。
Re: (スコア:0)
この命令が〇クロックで動くから、ああしてこうしてという職人芸のソースコードなのでしょう。
“The source code of the low-level read/write routines by Steve Wozniak and Randy Wigginton.” とコメントされてる Apple_DOS_RW_30May1978.txt [amazonaws.com] 見ても、とてもそんな感じの内容ではないですが。
Re:あれのDOSの大変なところは (スコア:1)
APPLE2のディスクコントローラはバッファがないので、厳密なクロック数で1バイトずつI/Oアドレスに書き続ける実行するコードを書かないと、正しくディスクにデータを書き込むことができません。例えば8サイクルで書き込むとデータとして扱われ、10サイクルで書き込むと同期バイトとして扱われる…みたいな感じです。
また、if文の様な条件分岐では1サイクル追加されるので、アセンブルするアドレスにも気を遣う必要があります。
Re: (スコア:0)
それってそういうハードでは当たり前でしょう? どこが職人芸??
Re: (スコア:0)
そのころすでに「それってそういうハード」が当たり前ではなくなっていたから、
当時としても驚かれていたのですよ。
Re: (スコア:0)
今でもAVRのSoftUSBが、そんな感じのコードですね。いい意味でとってもアマチュア的。
Re: (スコア:0)
ハードウェアの構造として時代遅れなのであって、プログラムとして特に高度なことをしてるわけじゃないんだけど?
Re: (スコア:0)
MacのFDDはBDのように(角速度一定ではなく)線速度一定だった記憶があるけど、AppleIIはどうだったんでしょう。
Re: (スコア:0)
角速度一定です。フロッピーに位置決めの穴が開いていますが、全てソフトで管理しているので穴は見ていません。
やっとと言う事で (スコア:0)
オープンソースとして前世紀の70年代に公開されてれば
それなりにもっと多くの色々な作品が出てきていたと思うよ(走召糸色木亥火暴)
くらいの感想かな。
"castigat ridendo mores" "Saxum volutum non obducitur musco"
Re: (スコア:0)
先頭でいいじゃん。
「おそく」だから、文脈ともあってる。
Re: (スコア:0)
うん、まあProDOSはMS-DOSよりもずっと前の製品なんだけどね。
MS-DOSはCP/Mのパクリから始まってるから、
それを考えるとMS-DOSの方が古いとも言えなくもないけどねw