Atari 8ビット・コンピュータ

Atari 8ビット・コンピュータは、アタリが1979年11月に発売したホームコンピュータ。1992年1月に生産終了した。
概要.
アタリは1979年から1992年までモステクノロジー6502マイクロプロセッサを使用した8ビットホームコンピューターのシリーズを発売した。以後10年間以上、同じ基本設計のいくつかのバージョンがリリースされた。初期の Atari 400 と Atari 800、その後継機の XL および XEシリーズがある。これらの内部設計はほぼ同一である。また、カスタムのコプロセッサチップを使用した初めてのホームコンピュータでもある。アタリの8ビット・コンピュータ・シリーズは商業的成功を収め、1979年末から1985年中ごろまでの最も売れた期間に200万台以上を販売し、総計では400万台となった。
IBMはアタリからライセンス供与を受けてホームコンピュータ市場に参入することを検討したが、最終的に独自の設計で行くことを決めた経緯がある。
歴史.
起源.
1977年後半にゲーム機VCS（後の Atari 2600 ）がリリースされると、"Cyan"と呼ばれる技術チームは後継機の設計にとりかかった。彼らはVCSの商品としての寿命を三年と考え、その時点で可能な機能を実現することにした。これを "blue sky" と呼び、ゲーム機として1980年ごろ出荷する予定とした。結果として開発されたものはVCSの明らかな問題点を改善したバージョンであった。2600よりも高性能で、グラフィックスとサウンドハードウェアを改良したものである。1978年はそれらの機能を実現するチップの設計に費やされた。第一は「カラーテレビジョン・インターフェイスアダプター(CTIA)」と呼ばれるビデオ用チップである(VCSが使っていたチップは「テレビジョン・インターフェイスアダプター(TIA)」と呼ばれていた)。
この時点でホームコンピュータ革命は、Apple II、コモドールPET、TRS-80によって始まっており、バイト誌が後に "1977 Trinity" と呼んだ。親会社だったワーナー・コミュニケーションズから来たアタリの新CEOレイ・カサールは、CTIA を使ってアップルに挑戦したいと考えた。アタリは自らの手でホームコンピュータを開発製造するのに必要なことは何か、調査を開始した。VCSがサポートしていなかった文字表示のサポート、周辺機器のための拡張手段、BASIC言語、キーボードなどが必要と考えられた。
文字表示の必要性からチップが開発された。これはCTIAと協調動作して画面表示を行うコプロセッサである。2600でのTIAと同様、CTIAはスプライトのみを生成し他にはなにもできなかった。ANTICは一般的なビットマップ画像と文字を表示でき、色数や解像度の異なる様々なモードを備えている。ANTICとCTIAが協調動作することで完全な画面を生み出せる。
初期のマシン: 400 と 800.
アタリは、ふたつの機種を発売するマーケティング戦略を採用した。ローエンドの「キャンディ」はゲーム機として販売し、ハイエンドの「コリーン」はコンピュータとして販売するというものである（コード名はアタリの2人の美人秘書に由来する）。「コリーン」にはROMカートリッジにもRAM増設にも使えるスロット、二つ目のカートリッジスロット、ビデオ出力、フルキーボードを装備し、一方で「キャンディ」はプラスチックのメンブレンキーボードとカートリッジスロットをひとつだけ備えていた(メモリ拡張不可)。
当時、連邦通信委員会 (FCC) からテレビの周波数帯域での電磁波の漏れを極めて低くするよう命令が出ていた。アタリの機械はテレビ用の信号を内部で生成していたため、FCCの規定を守るには厳重にシールドする必要があった。そのためアルミダイカストの頑丈なシールドで部分的にファラデーケージを形成し、その枠の中に様々な部品をネジ止めする形とした。このため非常に頑丈なコンピュータとなったが、コストと複雑さの面では不利になった。ちなみにRFモジュレータを持たないアップルのマシンはFCCの規定を守る必要はなかった（初期のTRS-80はFCCの規定を満足していない）。FCCの規定によって大きめの穴を設けることも難しくなり、 Apple II コンピュータにあったような拡張スロットやカードを大きなコネクタで本体と接続することができなくなった。そこでアタリは1つのシールドされたコネクタを通して複数の周辺機器をデイジーチェーン接続できるシリアルI/O (SIO) バスを設計した。全ての周辺機器(カセットドライブ、ディスクドライブ、インターフェイスボックスなど)はこのインターフェイスで接続された。これは周辺機器の高価格化を招くことになった。本体内部のスロットはROMおよびRAMモジュール用とした。
当初アタリは他のベンダーでも広く採用されている Microsoft BASIC を移植する予定で、8KBのROMカートリッジの形で供給するつもりだった。しかし、マイクロソフト製の既存の6502版BASICは12KBのROMが必要で、これを8KBに縮小しようというあらゆる試みは失敗した。そこでアタリは というコンサルティング会社に委託し、同社が一から独自の処理系を書くことを勧め、 が完成した。
マシンは1978年11月に 400 と 800 として発表されたが、一般に入手可能となったのは 1979年11月である。この名称はメモリ容量を示していて、400 は 4KバイトのRAM、800 は 8KバイトのRAMを搭載する予定だった。しかし、リリース時点ではRAMの価格が下がっていたため、実際にはそれぞれ 8Kバイトと 16KバイトのRAMを搭載することとなった。その後もRAMの価格は下がり続け、800では全スロットを使って48KバイトRAMを搭載したバージョンをリリースするようになった。オーバーヒート問題が発生するようになり、アタリはRAMモジュールのケースを廃止し、基板だけをスロットに挿入するようになった。初期バージョンはRAMモジュールの上のカバーは簡単に開けられるようになっていたが、後期バージョンはフル実装で出荷されるのが普通になったため、ネジ止めして簡単には開かないようにした。
Liz.
400 と 800 は複雑で原価も高かった。複数の基板で構成されており、それらの大部分がアルミダイカストのシールドで覆われている。またRAMはマザーボード上のコネクタに差し込むカードになっていたため、48Kバイトをフルに搭載して出荷するようになってもコネクタなどコスト高となる部品を省略できなかった。また、 Atari 400 は1980年代初頭の他のコンピュータと比較すると貧弱であった。
別の大きな変化は特に家庭とオフィスのデジタル機器に関するFCCの格付けの導入であった。クラスBという格付けでは、RF出力がラジオやテレビに電波障害を起こさないレベルであることを求められた。コンピュータによる電波干渉に対してやっと法が対応し始めたのである。この格付けによって Atari 400/800 よりも低コストで遮蔽を実現できる可能性が生じた（つまり、400/800のアルミによるシールドはオーバースペックだったのである）。
1982年、アタリはこれらの問題に対処する "Sweet 8"（または "Liz NY"）と "Sweet 16" というプロジェクトを開始した。結果として改善されたマシンは、基本設計は400/800と同じだが、組み立てが容易で生産コストが抑えられたものになった。新たな設計では基板が1枚にまとめられ、従来より薄いシールドで済むようになった。これにはICチップの進化も寄与しており、従来複数のチップで構成されていた回路を1チップで構成できるようになった。また、6502のカスタム版製造も依頼し、内部的には 6502C と名付けられたが、標準品の6502Cと区別するため SALLY が通称となった。ANTICがメモリアクセスするときにはCPUを停止させていたが、これには4つのチップを使った回路が必要だった。SALLYには停止 (Halt) 用の1つのピンが追加されている。SALLY は後期の400/800から導入され、その後のXL/XE、さらにはゲーム機の Atari5200/7800 でも採用された。
Sweet 8/16 も再び2つのバージョンでリリースされる予定だった。1000 は16KB、1000X は64KBのRAMを搭載とされた。RAMはこの差異が意味がある程度には高価だった。ハイエンドシステムでの拡張性を確保するため、Apple II または S-100 バスを搭載したマシンのようにカードスロットを採用し、 (PBI) という拡張スロットも1つ設けた。PBIには拡張ボックスを接続し、さらにカードスロットを増やすことができる。
XL シリーズ.
1200XL.
1982年後半、実際にリリースされたのは 1200XL という一機種だけだった。Sweet 8/16 プロジェクトの中間のような構成である。RAMは64Kバイトで、自己診断テスト機能を備え、キーボードの設計が新しくなっていた（4つのファンクションキーとヘルプキーを追加）。ケーブルポートの配置も再設計されている。全体としては、ハイエンドの Sweet 16 のコンセプトに近い。
しかし、1200XL は Sweet 16 から削られたあるいは改悪された機能もいくつかある。PBI拡張コネクタは 1000X から受け継がれ内部にあったのだが、従来からのSIOを使うことになったためボディにそのための穴がない。また、SIOポートの +12V のピンは接続されておらず、+12Vで動作する周辺機器もいくつかあったが +5V の電源しか供給していない。新しいビデオチップは多色化されていたがそのためのピンはモニター出力から外されていた。ポートの配置が変わったため、一部のジョイスティックやROMカートリッジが使えなくなった。OSも新ハードウェアサポートのために変更されており、結果としてガイドラインを守っていなかったソフトウェアにも非互換が生じた。
結局、1200XL は 800 と比較しても特に目新しい部分は無いため、価格が下がっていなければならなかったのだが、実際には同じ価格帯で販売された。以上のようなことから、1200XL はあまり売れなかった。1200XLの発売直後、800が消える前に入手しようとするユーザーがいたため、800の販売が急激に増えたという噂もあった。1982年の後半にリリースされた 1200XL は 1983年中に販売停止となった。そのため1200XLにはPAL版が存在しない。
その後の XL シリーズ.
このころアタリは価格戦争に巻き込まれた。コモドール社のジャック・トラミエルはテキサス・インスツルメンツ(TI)がホームコンピュータ市場に参入するのを見て、これを追い出そうと考え価格戦争を仕掛けたのである。数年前、TIは電卓の価格戦争でコモドールを電卓市場から追い出したが、今回はコモドールの方に分があった。
アタリはトラミエルのターゲットではなかったものの、他の各社もシェアを確保するために低価格化を進めざるをえなかったのである。アタリにとってタイミングが悪かった。1200XL は失敗し、それ以前のマシン(400/800)はコスト高のため、価格競争には対抗できない。解決策としては、1200XLの後継機でユーザーの信頼を回復するしかなかった。
1200XLをベースとして、アタリの技術者は新ICを追加して機能を追加した。1200XLの回路は非常にコンパクトだったためICを追加しても問題なかった。また、製造コストを下げるために、新しいマシンは極東で生産された。
新たな4つの機種 600XL、800XL、1400XL、1450XLDは1983年夏のCESで発表された。これらはBASICのROMを内蔵し、拡張のためのPBIを備えている。外観は1200XLによく似ているが、奥行きが1200XLよりも小さい。1400XL と 1450XLD は300ボーのモデムを備え、音声合成機能を備えていた。さらに 1450には両面フロッピーディスクドライブが内蔵された。
生産工程上の問題でリリースは遅れ、1983年中ごろに投入する予定だったものが1983年のクリスマス時期になっても大量に出荷できない状態だった。それにもかかわらず、800XL はアタリの発売したコンピュータの中で最も売れたマシンである。1983年後半には価格戦争が最高潮に達していた。600XL/800XLの価格性能比は悪くなかったが、市場に出回るのが遅すぎた。1983年のクリスマスはコモドール64の勝利に終わった。同時期のゲーム専用機でのアタリショックとの相乗効果によって、アタリは毎日数百万ドルを失うこととなった。アタリの当時の所有者であったワーナー・コミュニケーションズは、この部門を売却したいと考えるようになった。
なお、600XL/800XL の生産を優先するため、1400XL と 1450XLD の生産は後回しにされ、その後は Atari 7800 を優先するため後回しにされた。最終的に 1400XL はキャンセルとなり、1450XLD はあまりにも先延ばしとなって、結局出荷されなかった。他にも 1600XL、1650XLD、1850XLD といったプロトタイプが発売されることなく消えていった。1600XL は6502と80186を搭載したデュアルプロセッサ機、1650XLD は1450XLDによく似た機種だった。これらは当時CEOとなったの、ゲーム会社という原点に返るという方針によってキャンセルとなった。1850XLDはAmigaのプロトタイプ Lorraine に基づいていた。その後ジャック・トラミエルがアタリを入手すると、トラミエルはXLシリーズの開発をXEシリーズへと方向転換させた。1850XLDがベースにしようとしていたAmigaはコモドールが発売することになり、代わりに Atari ST を開発することになった。
価格戦争では勝利したコモドールだったが、内部抗争によってジャック・トラミエルは失脚させられた。彼は市場に再参入する方法を模索し、ワーナーが破格の低価格で売却したがっていたアタリを購入することにした。
トラミエル時代: XE シリーズと XEGS.
8ビットの最後のマシンは Atari 65XE と Atari 130XE である。1985年に Atari ST シリーズと同時に発表され、外観は Atari ST とよく似ている。
65XE は 800XLの後継機であり、当初 900XLF と呼ばれていた。PBIが削除された以外は機能的に同等である。ヨーロッパ版の 65XE と 130XE は を装備している。ECIは電気的にはPBIと互換性があるが、物理的には小さく、カートリッジ用インタフェースの隣にあって、カートリッジ用インタフェースを補完する信号線だけを備えている（つまり、カートリッジ用インタフェースと組合わせて使用する）。130XE はバンク切り替え機能により、搭載した128KバイトのRAMにアクセス可能である。
アタリは 800XL のヨーロッパ（特に東ヨーロッパ）での人気にあやかろうとして、130XE を 800XE と名称変更した。しかし、東ヨーロッパで販売された 65XE と 800XE にはバグだらけのGTIAチップが使われていた(特に1991年に中国で生産されたものは品質が悪かった)。
最終的に任天堂が成し遂げたゲーム産業の再起に引かれて、アタリは1987年に (XEGS) をリリースした。キーボード、ジョイスティック、ライトガン、いくつかのゲームカートリッジをバンドルして販売された。65XEと基本的には同一であり、このシリーズのソフトウェアや周辺機器をそのまま使える。しかし、マーケティング戦略の問題とリリースが続かなかったことが原因で、販売は振るわなかった。
1992年1月1日に、アタリは公式に全8ビット・コンピュータのサポートをやめた。
ハードウェア.
アタリのマシンは主プロセッサとして6502を使い、ANTICチップとGTIAチップの組み合わせでグラフィックスを提供し、POKEYチップでサウンドとシリアルI/Oを担当する。これらの周辺チップはメモリにマッピングされたハードウェアレジスタを通して6502上のプログラムから制御することができる。例えば、GTIAは一連のレジスタを使い、画面上で表示する色を選択する。したがって、そのレジスタ群に値をセットすることで、表示色を変更することができる。またシステムの一部はRAMをバッファとして使用する。例えば、ANTICのディスプレイバッファと「ディスプレイリスト」（ANTICの単純な機械語で書かれた小さなプログラムであり、ANTICに対してデータの解釈方法と表示方法を指示する）や、GTIAのスプライト情報などがある。これらの機能により多くの機能を直接ハードウェアで実行しており、背景のスムーススクロールなどは当時の他のコンピュータではソフトウェアで実現していたが、アタリのコンピュータではハードウェアで実現していた。
ANTIC.
 は表示命令を処理するマイクロプロセッサである。ひとかたまりの完結している命令列をディスプレイリストと呼ぶ。個々の命令は画面上の1「行」をどのように表示するかを指示（いくつかあるテキストモードやグラフィックスモードからいずれかを指定）し、どこに表示するかを指示し、割り込みの有無を指定し、ファインスクロールの有無を指定し、オプションでデータ（テキストまたはグラフィックスの情報）をロードするメモリアドレスを指定する。各行は個別にプログラミング可能なので、グラフィックスやテキストが混在した画面を構成でき、同時に様々なグラフィックスモードも混在表示させることができる。また、メモリ空間上の1箇所に書き込むだけで画面の上下左右へのスクロールを指示できる。ANTICはディスプレイリストと表示用データをDMA（ダイレクトメモリアクセス）で読み込み、その内容からGTIAが処理できる電気的データに変換する。この一連の処理をCPUをわずらわすことなく実行できる。
ANTICはグラフィックス画面の「背景」とテキストの表示を受け持つ。ANTICがビデオデータをGTIAに渡し、GTIAが色とスプライトをそこに付与する。この組み合わせによって変わった効果が生まれ、例えばメモリ上の値を変更するだけで画面上の全ての文字を反転させるといったことが可能である。文字コードに対応した文字パターンもANTICのレジスタの設定で容易に変更でき、比較的簡単にユーザー定義の文字パターンを使用できる。
CTIA/GTIA.
 (CTIA)は、初期の Atari 400/800 で使われたグラフィックスチップである。Atari 2600 で使われていたチップの後継である。Joe Decuir によれば、ジョージ・マクラウドが1977年にCTIAを設計した。CTIAチップの後継として (GTIA) が開発され、400/800の後期バージョンから使われている。GTIAもジョージ・マクラウドが設計したチップで、新たに3つの色情報解釈モードを追加し、従来よりも多くの色を表示できるようになった。
CTIA/GTIA はANTICからグラフィックス情報を受け取り、スプライトを制御し、衝突を検出し、全表示オブジェクトの優先度制御や色と輝度(明るさ)の制御を行う。CTIA/GTIAはそれらをデジタルの輝度信号と色差信号として出力し、それらを混合することでアナログのビデオ信号ができる。
6502が初期のマシンで広く使われた主要な理由の1つはコストだったが、もうひとつの理由としてグラフィックス処理に適していたことがあげられる。CPUはクロック信号波形がハイレベルのときのみメモリにアクセスする。したがってビデオコントローラーはクロック信号波形がローレベルのときにメモリにアクセスできる。アタリの技術者は "GTIA" がメモリアクセスするのに支障が出ないようにクロック周波数を決定した。このため、NTSCテレビでは 1.79MHz、PALでは 1.77MHzというクロック速度が決定された。
POKEY.
三番目のカスタムチップは と呼ばれ、キーボード入力、サウンド生成、シリアル通信を担当した。また、タイマー、乱数発生器（サウンドでのノイズにも利用）、割り込み制御の機能も持っている。POKEYには半独立の4つのオーディオチャンネルがあり、それぞれが独自の周波数とノイズと音量を設定可能である。それぞれ8ビットのチャンネルで、オーディオ制御レジスタが対応していて、そこでノイズや音量を設定できる。
8ビットチャンネルのうちの2つを16ビットの1つのチャンネルとして使用して、さらに高品質の音を発生させることもできる（周波数を8ビットではなく16ビットの値で表すことができる）。POKEYという名称は "POtentiometer" と "KEYboard" に由来し、POKEY経由で接続する2つのデバイスを意味する（ポテンショメータとはパドルコントローラの機構である）。このチップは80年代にアタリ製アーケードゲーム機でも使われていた。例えば、『ミサイルコマンド』などがある。
バリエーション.
CPUは全機種共通で、6502 1.79MHz(NTSC)または 1.77MHz(PAL) である。
プロトタイプやキャンセルされた機種としては、以下のものがある。
周辺機器.
8ビット・シリーズに対して、アタリは多数の周辺機器をリリースした。以下のようなものがある。
アタリの周辺機器は独自のSIOポートを使用し、デイジーチェーン接続で複数の周辺機器を接続する。SIOに対応するため、IBM PC 向けの周辺機器よりも割高だった。
ソフトウェア.
オペレーティングシステム.
内蔵OS.
アタリの8ビットコンピュータはROMにオペレーティングシステムを内蔵していた。Atari 400/800 には以下のバージョンがある。
XL/XE ではハードウェア機能追加に対応するためOSのバージョンアップしている。しかし、そのために一部ソフトウェアでは非互換が生じた。これに対処するため、アタリは400/800用の古いOSをXL/XEにロードできるフロッピーディスクを Translator Disk としてリリースした。
また、XL/XEでは のROMも内蔵している。これは電源投入時にキーボード右端のOPTIONキーを押下しておくと使用不可にすることができる。初期のリビジョンBはバグが多く、後期モデルではリビジョンCとなった。
ディスクオペレーティングシステム.
内蔵OSはフロッピーディスクドライブへのアクセスルーチンとして非常に低レベルなものしか搭載していない。ファイルシステムのようなディスクアクセスを実現するには、DOS (Disk Operating System) を必要とした。そこでフロッピーディスクからブートして使用する が登場した。他の同時代のDOSとは異なり、Atari DOS は完全なメニュー方式だった。
サードパーティからも代替DOSがリリースされた。 などは非常に進んだ機能を備えていた。
その他のソフトウェア.
様々なソフトウェアがリリースされたが、例えば次のようなプログラミング言語の処理系が多数リリースされた。
他にも、Forth、Pascal、、 などがあった。
グラフィックス機能.
ANTICとGTIAは様々なグラフィックスモードを提供し、アタリのOSは基本的なグラフィックスモード群を提供する。多くの場合、Atari BASIC の GRAPHICS コマンドでモードを指定でき、他の言語でも似たようなシステムコールでモードを指定できる。
これらはOSがデフォルトで設定するモードである。先述した通りANTICチップに適切なディスプレイリストを与えることでモードがセットされる。ハードウェア上は最大で水平方向に384ピクセル、垂直方向に240ピクセルを表示可能である。
ソフトウェア駆動モード.
柔軟性が高いため、ソフトウェアで様々な擬似モードを生成することができる。例えば、擬似256色で80×192ピクセルを表示したり、80×24文字表示したりできる。その際の問題は、PALとNTSCでの特性（更新速度、解像度）が大きく異なる点で、PALでうまく表示できてもNTSCではうまく表示できない（あるいは逆）ということがよく発生する。
また、ディスプレイリストの割り込み機能を使うと、通常よりも遥かに多くのスプライトを表示でき、色数も通常より多く使える。これは、垂直方向の位置ごとにハードウェアレジスタの値を変更する機械語ルーチンを書くことで可能となる。
画面に表示するメモリはメモリ空間上の任意の位置に置くことができ、2つのポインタでアクセスされる。そのためポインタをうまく更新すればスクロールやページ切り替えが容易に実装できる。