レトロコンピューティングは、テクノロジーの歴史を紐解き、現代のコンピュータがいかに進化してきたかを学ぶ機会です。Apple Iのレプリカを自作する方法をご紹介します。
1976 年に Apple が設立されて以来、コンピュータは長い道のりを歩んできました。スティーブ・ジョブズとスティーブ・ウォズニアックが初めてオリジナルの Apple I コンピュータキットを組み立てた当時は、すべてが手作業で調達され、組み立てられていました。
Apple はスティーブ・ジョブズの両親のガレージを拠点とする小さな会社で、ガレージでキットコンピュータを販売していました。
Apple I キットは、巨大なマザーボード、数十個のロジック チップ、大容量の電力コンデンサ、ダイオード、抵抗器、ROM チップ、および MOS Technology が設計し Motorola にライセンス供与された 6502 CPU で構成されていました。
6502は1980年代に広く普及したCPUで、Apple、Atari、Commodoreなどのコンピュータで使用されていました。これは真に低コストなマイクロコンピュータ用CPUの先駆けであり、パーソナルコンピュータ革命の鍵となる要素でした。
Apple I の場合、自作の電源装置を組み立て、後に Apple II キーボードを製造した Datanetics という会社からキーボードを入手することも、ユーザーの課題として残されていました。
1979 年にジョブズ氏が Apple II を手に持っている写真は、コンピュータ歴史博物館の Web サイトで見ることができます。
Apple I はキットの形で販売され、完全に組み立てられたユニットは販売されませんでした。
このマシンは1976年4月11日に初めて発売されました。同年エイプリルフールにAppleが設立されてからわずか10日後のことでした。スティーブとスティーブは冗談で、このマシンの価格を666.66ドルに設定することにしました。
Apple Iの販売台数は、主にその極めて限定的な機能が原因で少なかった。英国のSinclair社など、他社からもはるかに高度なキットが発売されており、同社のマシンはビデオ、グラフィック、キーボード、カセットポートを内蔵し、後にカラーにも対応した。
スティーブ・ウォズニアックのオリジナルの Apple I コンピュータは、ジョブズ家のガレージで組み立てられ、木箱に収められており、もともとカリフォルニア州クパチーノの R+D Six on 1 Infinite Loop にある Apple 社内の博物館に展示されていましたが、現在はワシントン DC のスミソニアン博物館に所蔵されています。
オリジナルの Apple I の場所: 左側の Apple R+D Six にある社内博物館。
後継機であるApple IIは、2年後に完全組み立て済みの筐体で出荷され、内蔵電源とキーボードも完備していました。グラフィックモードとBASIC(フロッピーディスクまたはROMベースのアドインカードからロードする必要がありました)も搭載されていました。
2 番目のモデルである Apple II+ は 1 年後、内蔵 BASIC と外付けフロッピー ディスクからの起動をサポートしました。
Apple II は Apple 社の最初のキラー製品であり、1 年後、Apple II の最初のキラーアプリケーションである VisiCalc が Dan Bricklin 氏と Bob Frankston 氏によって書かれたことで、Apple 社は一夜にしてシリコンバレーで最初の 10 億ドル規模のパーソナルコンピュータ企業となった。
会計士やその他のビジネスマンが VisiCalc を使用してビジネスを管理し、簿記や予測を自動化したため、Apple II コンピュータは飛ぶように売れました。
Apple I は、当時RAMが非常に高価だったことと、4Kまたは8KのRAM(最大32Kまで拡張可能)という制限が主な要因でした。Apple I はテキストのみで、ゲーム作成に必要なグラフィックモード、カラー、スプライトが欠けていました。
このマシンにはオペレーティング システムはありませんでしたが、マシンの 1 つの拡張ポートに適合するオプションのカセット拡張インターフェイス カードもユーザーが構築すれば、1970 年代に人気のあったオーディオ形式であるオプションのコンパクト カセットから BASIC をロードすることができました。
BASIC がなければ、ユーザーが Apple I をプログラムしたい場合、 Motorola 6502 アセンブリ言語とマシンの内蔵モニターであるWozMon を使用する必要がありました。
オリジナルの Apple I 広告。
45年早送り
今日の世界では、プリント基板(PCB)はソフトウェアで数時間あるいは数日で設計でき、ファイルは保存され、インターネット経由で世界中のPCB製造会社にアップロードされます。購入者は1週間以内に、ほぼ無料で基板を自宅に届けることができます。
これを、FPGA、フラッシュ EPROMS、Arduino などの IoT デバイスなどのプロセッサやマイクロコントローラの最新の進歩と組み合わせると、新たなレトロ コンピューティング革命の要素がすべて揃います。
数人の起業家がオリジナルのApple IのPCBを再現し、eBayやEtsyなどのオンラインで販売しています。これらの基板を購入し、自分でパーツを組み替えることで、オリジナルのApple Iと全く同じ、完全に動作するレプリカを作り上げることができます。
eBayで「newton-computer」が販売しているApple IのレプリカPCB。カセットインターフェースPCBも付属しています。
RC6502レプリカPCB
オリジナルのApple Iを自作するのに必要なものをすべて購入して組み立てるのが面倒なら、もっと良い方法があります。ノルウェーのTebi社が開発したRC6502という小型PCBは、オリジナルのApple I ROM、SRAMチップ1個、1MHzで動作する6502 CPU、そして同じくMotorola製の6821P PIAチップ1個を搭載しています。
このボードには、プログラムをロードするためのArduino Nano 1個と、その他の小さな部品も必要です。オプションのバックプレーンPCBを作成すれば、ビデオディスプレイユニットなどの機能を追加することもできます。
RC6502 コンピューターを組み立てました。
RC6502はオープンソースで、ガーバーファイルをダウンロードしてオンラインで注文したり、eBay、Amazon、Etsyなどのオンラインストアで販売者から基板を注文したりすることができます。ガーバーファイルとは、PCB(プリント基板)を製造するために使用される、コンピュータで生成された電子回路図です。
RC6502 の大きな利点は、そのサイズと部品点数の少なさで、ボードを構築する総コストは 50 ドル未満です。
はじめる
むき出しの PCB を見てみましょう。
RC6502 レプリカ Apple I PCB。
左上には3つの部品があります。1MHzの水晶発振器チップ、一般的な555タイマーチップ、そしてMCP23S17-E/SPシリアル・ペリフェラル・インターフェース(SPI)チップです。最後のSPIチップは、アリゾナ州チャンドラーのMicrochip Technology Inc.製で、Arduino Nanoとの通信に使用されます。
MCP23S17-E/SP は、COVID パンデミックによるサプライ チェーンの問題により、少々高価で入手困難な場合がありますが、徐々に入手しやすくなってきています。
DigiKeyには現在、在庫が豊富のようです。AliExpressも試してみてください。私たちはAliExpressで見つけましたが、品薄の時期には送料込みで7ドルもかかりました。
1MHzの水晶発振器チップを使用してください。初代Apple Iも1MHzで動作していました。
ボードの右上隅には Arduino Nano ヘッダー用のスペースがあり、Arduino を接続できるようにはんだ付けする必要があります。
その下には、74HCT138N、74HCT04N、74HCT00Nという3つの一般的なロジックチップがあります。これらはロジックゲート、マルチプレクサ、インバータで、いずれも1個あたり数ドル程度です。
3つのロジックチップの下には、1つのSRAMチップ(日立製HM62256BLP-7、または同等品)と1つのフラッシュ可能なEPROM(この場合はAtmel AT28C64-15PC)があります。Atmelチップをフラッシュするには、USBプログラマーデバイスも必要です。
HM62256BLP-7の末尾にある「-7」はRAMの速度を示しています。この場合は70nsですが、それより少し遅いチップでも動作する可能性があります。場合によっては100ns(またはチップモデル名の末尾にある「-10」)程度になることもあります。ほとんどの場合、速度が近い場合は、RAMの速度をボードの速度に合わせて下げることができます。
日立 HM62256BLP-7 SRAM チップ。
RAM と EPROM の左側には、1 MHz で動作する Motorola 6502 CPU がありますが、6502 の最新版である 65C02 も動作させることができるかもしれません。65C02 は 6502 の最新代替品であり、アリゾナ州メサにある Western Design Center (MOS Technology の後継会社) によって製造されています。
65C02はより現代的な設計を採用し、消費電力はオリジナルの6502の10分の1以下で、最大14MHzの可変速度で動作可能です。37番ピンはクロック入力ピンで、CPUを外部発振器(この場合は1MHzの水晶発振器)で駆動できます。
WDC の新しい W65C02S6TPG-14 CPU は、最大 14MHz で動作し、消費電力が少なくなっています。
65C02を使わない場合は、動作する中古の6502、またはオンライン販売業者から新古品を入手する必要があります。eBay、Amazon、AliExpress、その他多くの海外販売業者で見つけることができます。
オリジナルの6502はMOSテクノロジー社が製造しましたが、後にモトローラ社にライセンス供与されたため、両社から6502モデルが販売されている場合があります。また、6502は後にロックウェル・インターナショナル社とUMC社にもライセンス供与されました。
何十年も前のものですが、一度も使われていないNOS RockwellとUMC 6502はまだ見つかります。
NOS UMC 6502、日付コード「9028T」 - 1990 年 8 月の第 2 週。
通常、チップには製造年、週、月が記載された日付スタンプコードが付いています。日付コードの先頭には通常年が記載されていますが、必ずしもそうとは限りません。
下の写真では、6502 の日付スタンプ コードは「0988」で、1988 年 9 月を示しています。
6502 CPUとMotorola MC6821P PIAチップ。MC6822Pでも動作する可能性があります。
多くの場合、初期の製造ロットには問題があった可能性があり、またチップの素材は経年劣化するため、できるだけ最新のチップを入手する方が良いでしょう。そのため、1992年に製造されたチップは、1979年に製造されたチップよりも一般的に優れています。
通常、純正のMotorola 6502にはMotorolaの「M」ロゴが付いていますが、必ずしもそうとは限りません。一部のチップは中国やインドで電子廃棄物となり、基板から取り外され、再生・再加工されます。通常は、上記のような一般的なプリントが施されています。
中国製のチップの中には偽物もあり、動作はするかもしれませんが、信頼性が低かったり、動作期間が長くなかったりする可能性があることに注意してください。
また、IC ソケット、ジャンパー ヘッダー、PC マザーボード スタイルのプラスチック ジャンパー、さまざまな抵抗器、およびセラミック コンデンサも必要になります (ほとんどは 104 または 0.1uF ですが、すべてが 104 または 0.1uF というわけではありません)。
プロジェクトの部品表 (BOM) の完全なリストについては、Tebi の GitHub ページを参照してください。
はんだ付けソケットと基本部品
まず、すべての抵抗器、セラミックコンデンサ、電解コンデンサ1個、小型のモーメンタリオンプッシュボタンスイッチ1個、そしてジャンパーヘッダーをはんだ付けします。時間をかけて、すべてのはんだ接合部を確認してください。
IC ソケットには 2 つのタイプがあります。1 つ (より安価なタイプ) は、平らな葉のような接続部と、PCB に対して平らに配置されるプラスチックのサラウンドを備えています。
これらは安価ですが、信頼性も低くなります。IC ピンを保持する小さな金属片が外れることがあり、プラスチック製のハウジングが平らに設置されているため、その下を見ることは不可能です。
もう一方のタイプのソケットは、丸みを帯びた突起ピンと上部の丸い穴を使用しており、数十年後でも腐食を防ぐために金メッキが施されていることが多いです。後者のタイプのソケットは少し高価ですが、その価値は十分にあります。
また、PCB 上のはんだ接合部の上面を検査して、穴と穴の間に不要なブリッジ (ビアと呼ばれる) がないことを確認することもできます。
ソケットとICには通常、片方の端に半円形の切り欠きがあります。また、PCBにも半円形の切り欠きのマーキングが付いていることが多いです。ソケットをはんだ付けする際は、切り欠きがPCBのマーキングと一致するようにしてください。
ノッチにより、ICがソケットに正しく挿入され、逆挿入によるチップの焼損を防ぎます。
また、ボードの右上隅にある小さなリセット スイッチ、または外部スイッチ、電源、および電源 LED 用のヘッダーをはんだ付けする必要があります。
ボード下部にある長いピンヘッダーには、電源やその他の機能を含む様々な接続端子があります。すべての長いジャンパーピンの完全なピン配置については、GitHubページとドキュメントをご覧ください。
すべての小さなコンポーネントがインストールされた初期ビルドは次のようになります。
RC6502 の小さな部品の初期組み立て: IC、水晶、Arduino 以外のすべて。
チップをインストールする
次に、ボードの右上隅に Arduino Nano 用のピン ソケット ヘッダーを 2 列はんだ付けし、Atmel EPROM チップを除くすべてのチップをソケットに取り付けます。
EPROMは消去可能プログラマブル読み取り専用メモリ(Erasable Programmable Read Only Memory)の略です。EPROMチップをフラッシュするには、PCでUSBプログラマデバイスを使用する必要があります。
フラッシュが完了したら、Atmelチップをソケットに挿入します。また、ボードの左上隅に1MHzの水晶振動子をはんだ付けします。
IC をソケットに挿入するときは、ピンが曲がったりソケットの穴から外れたりしないように十分注意してください。
次に、ドキュメントに記載されているように、ジャンパーピンに小さなプラスチック製のジャンパーを追加します。ジャンパーには、RAM容量、PIA有効、ROM有効など、さまざまなものがあります。それぞれのジャンパー設定によって、ボードの動作が変わります。
バックプレーンとオプションのビデオ
RC6502 Apple I の初期バージョンは、現在でも自作可能なバックプレーンボードと、ジャンパーで有効/無効を切り替えられる複数のドーターカードを搭載していました。しかし、新しいバージョンのボードは、自己完結型のシングルボードコンピュータ (SBC) 設計となっています。
バックプレーン ボードを使用する場合は、ボードをバックプレーンに垂直に差し込めるように、長いヘッダー コネクタ用に SBC 上の角度付きヘッダーを使用する必要があります。
ボードで実際のビデオディスプレイを使用する場合は、2枚の小型追加ボード(ビデオディスプレイユニット)とバックプレーンボードを追加する必要があります。そうでない場合は、Arduino経由でシリアル接続でSBCボードに接続します。
システム バスとピン配置の詳細な説明については、GitHub ページの Bus.md ドキュメントを参照してください。
力
Arduino の USB 接続を使用してボードに電源を供給し、バックプレーンを使用しない場合は、 「USB 電源」とマークされた電源 LED のすぐ隣にある 2 ピン ヘッダーにジャンパーを追加します。
そうでない場合、バックプレーンはSBCのロングヘッダーのピン17と18にあるDC電源ジャックから電源を供給します。ArduinoのUSB接続には、電源のオン/オフを切り替えられるように、電源スイッチ付きのUSBケーブルを用意することをお勧めします。
準備が整ったら、Arduino USB ケーブルを接続し、Mac に差し込んで、電源スイッチを入れます。
Arduino接続
電源を入れたら、MacまたはPCでArduino IDEアプリを起動し、「ツール」->「ボード」->「Arduino AVRボード」で「Arduino Nano」を選択します。選択した後、自動的に選択されない場合は、 「ツール」->「ポート」でシリアルポートを設定する必要があります。
Arduino IDEで接続したら、ドキュメントに記載されているように、IDEを使ってPIA CommunicatorスケッチプログラムをArduinoにアップロードします。これにより、IDEのシリアルモニターがApple Iと通信し、その出力をMacのウィンドウに表示できるようになります。
接続に問題がある場合は、ボーレート(シリアル接続でデータが転送される速度)を確認してください。115200 に設定されているはずです。
すべてが計画通りに動作すれば、Arduino IDEのシリアルモニターに感嘆符「!」が表示されます。任意の16進アドレスを入力して、その内容を表示できます。
PIA Communicatorでは、6502アセンブリプログラムとBASICプログラムの両方をApple Iにアップロードして実行できます。Apple IにBASICをロードすれば、シリアル接続を介してApple Iに直接BASICプログラムを入力し、実行することができます。
BASIC はコマンド ライン プロンプトを切り替えて、シリアル ウィンドウに「!」の代わりに「>」を表示します。
組み込みアプリ
Apple I ROMには3つのアプリが組み込まれています。これらのアプリは、RC6502 PCBのCPUの下の背面に、アクセスに必要なROMメモリアドレス(16進数)とともに記載されています。以下の通りです。
- 整数BASIC(E000)
- クルセイダーアセンブラー(F000)
- ウォズモニター(FF00)
3つのプログラムのいずれかを実行するには、「!」プロンプトで16進アドレスを入力し、スペースと大文字の「R」を入力してから、Returnキーを押します。例えば、MacのArduinoシリアルウィンドウからApple IにInteger BASICをロードするには、次のように入力します。
E000 R
そしてReturnを押します。
シリアル ウィンドウのプロンプトが「>」に変わります。
これでBASICモードに入り、BASICプログラムを入力できるようになりました。BASICプログラムを入力したら、「run」と入力してReturnキーを押すとプログラムが実行されます。
レトロ コンピューティングの世界は拡大しており、RC6502 は Apple I のビルドを素早く安価に開始できる手段です。
また、トム・オワッドの注目すべき著書『 Apple I Replica Creation: Back to the Garage』 (PDF 6 ドル)もぜひ読んでみてください。この本には、スティーブ・ウォズニアック自身による序文も含まれています。