アップルディスク II コントローラカード

2026/06/30 3:23

アップルディスク II コントローラカード

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

Apple II の長期的な人気は、主に低コストの Disk II コントローラーによって大きく支えられており、これはシステムにフロッピーディスクサポートをもたらした独自のデバイスです。1977 年末、スティーブ・ウォズニアックとランディ・ウィギントンによって設計されたこの「ダマ」ハードウェアは、チップがわずか 8 つで構成され、データ符号化やサーチなど複雑な操作のすべてを内蔵ロジックではなくソフトウェアルーチンにオフロードし、現代の基準とは対照的なアプローチでした。しかしながら、これは大きなコスト削減を実現しました。当初は トラックあたり 13 セクターまでしか扱えない非効率な「5-and-3」符号化方式を採用していましたが、連続したゼロを読み取ることを可能にする重要なソフトウェア修正が行われた後、「6-and-2」方式へのアップグレードが実施され、DOS 3.3 の導入により容量は 140 KB に増加しました。ハードウェアに抽象化レイヤーがないため、OS は DOS 3.3 などのようにドライブの生メカニクスを直接管理する必要があり、現代システムで自動的に処理されるタスクのために膨大な内部コードが関与していました。このアーキテクチャは必然的にユーザーエクスペリエンスとコピー保護スキームに影響を与え、ハーフトラックオフセット操作やスプリットトラック書き込みのような複雑なトリックを利用することが一般的でした。結局のところ、Apple II は、ハードウェアの複雑さを手放して費用対効果と柔軟性を提供するという、軽量でソフトウェア中心の設計が画期的なパーソナルコンピュータを動力源とすることを示しました。

本文

アップル II ディスクコントローラーとフラップディスク技術の深層分析

1. 2 つのアプローチ:オリジナル vs そのほかのカテゴリー

アップル II のディスクシステムには、主に 2 つの種類 のコントローラカードが存在します。

  • カテゴリ A: オリジナル・ディスク II コントローラ(およびクローン)
    • 極めてシンプルで「頭脳なし」の状態です。
    • ソフトウェアに事実上すべての低レベル処理を任せます。
    • 簡素な構成でありながら、当時の技術としては驚くべき傑作でした。
  • カテゴリ B: それ以外のすべて
    • アップル 3.5 インチコントローラ、リロン (Liron) カード、SCSI、IDE などが含まれます。
    • 「知能」を内蔵しており、低レベルの詳細処理はハードウェア(組み込みの知能)が対応します。
    • スタンダードな API を提供するため、ソフトウェア側がディスク内部構造を知る必要はありません。

2. フラップディスク基礎知識と開発背景

フラップディスクとは

  • 磁気被覆を施したプラスチック円盤です。
  • 回転速度:約 300 RPM
  • データ記録方式:ステッパモーターでヘッドが中心から外周へ直線移動し、**同心リング(並列データ)**を形成します。

ウォズニアクの挑戦

  • 背景: 初期アップル II に内蔵ドライブがなく、安価な外部ドライブ接続が必要でした。
  • 制約: 小規模企業・実績不足(発売後半年)。ウォズは専門知識がありませんでした。
  • 戦略: **「Bit-banging(ビットバンギング)」**と呼ばれる、ソフトウェア主導のアプローチを採用しました。
    • シュガート社製の SA400 をベースに制御回路を簡素化。
    • 単なるモーターとステッパのみを持つ低コスト機構を実現。
  • 開発期間: ウォズとランディ・ウィギントンが、1977 年クリスマス休暇の数週間で完成(CES でデモ発表)。

ウォズの言葉:「地上げ」からの発想

「電子回路は得意だが、ディスク分野の経験はない。ゼロから考え直した。ディスクからデータを受け取り、タイミングに基づいて 0 と 1 を判断する仕組みが必要だった。」

「ステートマシン(簡易マイクロプロセッサ)として 2 つのチップだけで全てを動かす設計にした。ドライブ内の約 20 チップをすべて外し、ソフトウェアで代替処理した。お金がない分、部品数を最小限に抑えながら創造的な解決策が生まれました。」


3. ディスク II コントローラーのハードウェア構成

本質的には高度な シフトレジスター に過ぎず、以下のような極小構成で動作します。

  • チップ数: всего 8 つ
    • ROM (256 バイト): CPU 起動時のブートストラップコード。
    • ROM (256 バイト): ステートマシンの処理ロジック。
    • 74LS174: ヘックスフラップフロップ(ステートマシン入出力)。
    • 74LS323: 8 ビットシフトレジスター(心臓部)。
    • 74LS259: アドレスラッチ(モーター状態・ドライブ選択記憶)。
    • 556/74LS05/74LS132: タイマ、インバーター、ゲート(グルーロジック)。

ブートストラップ ROM の役割

  • トラック 0 セクタ 0 を探索し、データをメインメモリへ読み込み。
  • これ以上の処理はすべて CPU とソフトウェア に任せる「最小限の知能」しか持たない。

4. 課題と解決策(ソフトウェア主導の奇跡)

ディスク II はハードウェアで保証する機構を持たず、すべての課題をソフトウェア規約で解決しました。

課題 #1: バイトフレームング (Byte Framing)

  • 問題: ディスクデータは連続した「1」と「0」のストリームであり、バイト境界がない。
  • 解決策: **最上位ビット (MSB) を常に「1」**に設定する規約。
    • 読み取り時は MSB が「1」になるまでシフトし続けた時点で、「新しいバイトが見つかった」と判断する。
    • 同期問題の回避: バイト途中から始まっても、初回を除き永続的に正確に機能する仕組みを作る。
  • 同期バイト (Sync Bytes):
    1111111100
    のパターンを 5 回繰り返す。初期位置に関わらず最大 5 回で同期状態に収束する(純粋なソフトウェア規約)。

課題 #2: バイト符号化 (Byte Encoding)

  • 問題:
    • MSB を「1」にするため、ゼロバイトや小値を直接書き込めない。
    • 連続したゼロビットが3 つ以上あると読み戻せない。
  • 解決策: 「6-and-2」エンコード方式 (GCR の一種) を採用。
    • ディスクバイトは 64 通り使え、1 バイトで論理ビット 6 ビットを表現できる(1.33 倍のオーバーヘッド)。
    • 動的デコードテーブル: ROM に逆参照テーブルを持たず、RAM で動的に前方参照テーブルを構築する巧妙な手法(約 30 バイトのコードで実装)。
  • 技術進化:
    • 初期型(DOS 3.1/3.2): 連続ゼロ制限が厳しく「5-and-3」方式を採用。トラックあたり 13 セクタ、容量 114 KB。
    • DOS 3.3 以降: ステートマシン ROM の修正のみで対応可能になり、「6-and-2」へ移行。16 セクタ・140 KB へ向上。

課題 #3: セクタ分割 (Sectoring)

  • 問題: データリングのどこがセクタの始まりか?(物理的インデックス穴を使わない)。
  • 解決策: D5 AA 96 というバイトシーケンスをセクタ開始シグネチャとする。
    • ヘッダーに含まれるセクタ番号と照合し、不一致なら次の
      D5 AA 96
      を探す。
    • 完全なソフトウェア規約であり、ハードウェアによる強制はない。(※『サファリアン』などは独自スキームを採用)

課題 #4: タラックの位置付け (Finding Tracks)

  • 問題: ディスク上には「トラック」という物理的定義がなく、ヘッドをどこに持っていくべきか。
  • 解決策: ソフトウェアによる相対制御
    • トラック 0 探索: ステッパモーターを止まらずに連続動作させ、物理ストッパーにぶつかって停止させる(起動時の「カタカタ」音)。80 半ステップ後確定。
    • ヘッド移動: 4 つの電磁石による微細制御。「1 回の動き」=「半トラック」。密な配置のため通常は 2 回の動きで 1 つのトラックとする。
    • コピー保護トリック:
      • 奇数回だけオフセットした位置にデータを置く(整数トラック期待プログラムを混乱)。
      • 円盤周長の半分のみ使用する「分割トラック」技術。

5. ブートストラップコードの逆アセンブリ解説

256 バイトという限られた空間で、以下の処理を実現しています。

  1. ステッパ制御によるトラック 0 到達。
  2. バイト読み取り開始と
    D5 AA 96
    シグネチャ認識。
  3. RAM 上に動的に GCR デコードテーブル構築。
  4. 「6-and-2」デコードを実行して論理バイトへ変換。
  5. スーパーダ(Super-DOS)全体を RAM へ読み込み、実行。

欠点と妥協点

  • チェックサム検証なし: セクタ 0 のエラー検知を行わない(後継機で「修正」されたが互換性問題発生)。
  • エラーハンドリング無効: 読み取り失敗時に永遠にループし、起動時フリーズの原因となる。

6. 総括:すべてを統合して考える

ソフトウェア主導の哲学

ディスク II コントローラーは、「最小限のハードウェア × 莫大なソフトウェア」による設計です。

  • 現代的視点: ブロック I/O は低レベル詳細から解放されたい(不良慣行と呼ばれるほど)。
  • 現実: 他のコントローラと異なり、アップル II は DOS3.3 や ProDOS のように追加コードで全ての処理を行うという狂気的なスタイル。

現代への応用:BMOW Floppy Emu

古き良きマシン(Apple II, Mac, Lisa)の保存・活用には Floppy Emu が不可欠です。

  • SD カードに数百枚のディスクイメージを保存。
  • 専用ハードウェアが多種類のフラップ/HDD をシミュレートし、ファイル転送やソフトウェア実行を実現。

アーカイブへのメッセージ

この技術はウォズニアクと小チームによる驚異的な冒険でした。理解の限界を超えて構造を把握しましたが、なおも多くの未知があります。

もし誤解や重要な欠落があれば、コメント欄でお知らせください。

同じ日のほかのニュース

一覧に戻る →

2026/07/02 7:03

ZCode:GLM-5.2 ハーネス

## Japanese Translation: ## サマリー: ZCode は、Deep GLM-5.2 の機能を「エージェント型」のワークフローに統合することでソフトウェア開発を革命化し、エンジニアがレガシーなモノリシックアーキテクチャからリアルタイム機能のデプロイへと移行することを可能にします。当プラットフォームは、Goals を通じた長期間にわたるタスクへの継続的な計画をサポートし、ユーザーが WeChat、Feishu、Telegram などのメッセージングアプリを通じてセッションを導くことを可能にします。提供されるのは柔軟な 3 つの料金プランです:小規模なリポジトリ向けで Base ユーザー数に基づいた「ライトウェイト(軽量)プラン」16.2 ドル/月、中規模なリポジトリ向けでユーザー数を 5 倍にし厳選されたツールを含んだ「プロフェッショナルプラン」64.8 ドル/月、大企業向けに専用リソースと新モデルへの優先アクセスを提供する「ハイボリュームプラン」144 ドル/月の 3 つです。MacOS と Windows の両プラットフォームに対応しており、ZCode は複雑な推論タスクにおいて AI の速度を最適化しながらも、チームを開発の最前線に保ち続けます。(注:料率と特典は変動する可能性があります。最終詳細については z.ai をご参照ください。)

2026/07/01 23:20

初めて、細胞から作られたものが成長・分裂した

## Japanese Translation: 生物学者は、非生命の素材から成長し、DNA を複製し、分裂する合成細胞を構築することに成功し、人工的なシステムにおいて細胞周期の主要な機能を遂行した。ミネソタ大学のケイト・アダマラ氏率いるチームが主導するこの研究は現在未公開であり、査読もされていないものの、ジャック・シュストゥーク氏(芝加哥大学)ら専門家からは、「非生命物質から生命を生み出す」という「聖杯」への画期的な一歩として称賛されている。シブレン・オット氏(ストアテンハ化学研究所)は、同細胞は現在の定義において本当に「生きている」とは言えないと指摘しつつも、この成就是、死んだ物質から生命を生み出す科学の進展を大幅に促進したとしている。

2026/07/02 7:48

運動不足の健康な人でも細胞内のエネルギー産生が早期に低下することが判明

## 日本語翻訳: 年齢約 42 歳で運動を習慣化していない健康な成人でも、疾病の発症前に著しい細胞レベルの劣化が見られます。コロラド大学アンスシュ医学部によって実施され、*Clinical Bioenergetics* に公開された研究では、9 名の非活性男性と 10 名の有活動な男性(平均約 42 歳)を比較し、定期的な好気性運動の欠如(週 150 時間未満)が、細胞内の糖や脂肪をエネルギーに変換する「エンジン」となるミトコンドリア機能を急激に低下させることを明らかにしました。非活性男性では、最大酸素利用量が 38% 減少し、負荷時の血液中の乳酸値は 60% 上昇しました。また、主要な燃料処理タンパク質も著しく機能不全を起こしており、MPC1 の活性が有活動レベルの約 49% に低下し、CPT1 酵素の活性は有活動レベルの半分程度まで減少し、糖と脂肪の両方を処理する能力が損なわれていることを示しました。全体として、ミトコンドリアの効率は複数の項目で約 28% から 36% の減少が見られました。共同著者の Iñigo San Millan(イニゴ・サン・ミリャン)は、「40 歳で健康でありながら非活性であることは、現在既に細胞への損傷変化が進行しており、10〜15 年後の健康に影響を与える可能性がある」と指摘し、糖尿病、アルツハイマー病、がんなどの疾患を引き起こす可能性があると述べました。この劣化を早期に検出するための介入対策を可能にするには、心臓血管・呼吸器運動テストと乳酸分析による非侵襲的検査が有効です。研究チームは、より大規模で多様な臨床試験を実施する計画であり、特定の運動プログラムや新規薬剤によってミトコンドリアの健康を回復させることができるかどうかを検証するために、女性の参加者も含む併行研究も行う予定です。