CTIAとGTIA


CTIA_and_GTIA

はマニュアルやガイドブックのように書かれています。
Color Television Interface Adapter ( CTIA ) とその後継のGraphic Television Interface Adapter ( GTIA ) は、 Atari 8 ビット ファミリーのコンピューターとAtari 5200 ホーム ビデオ ゲーム コンソールで使用されるカスタム チップです。これらのシステムでは、CTIA または GTIA チップがANTICと連携してビデオ表示を生成します。CTIA/GTIA はプレイフィールドの色を提供し、プレイヤー/ミサイル グラフィック (スプライト) として知られるオーバーレイ オブジェクトを追加しますが、ANTIC はプレイフィールド グラフィック (テキストとビットマップ) を生成します。Jay Minerの指揮の下で、CTIA/GTIA チップは、Steve Smith の技術支援を受けて George McLeod によって設計されました。
沖データ製NTSC GTIAチップ
Color Television Interface AdapterおよびGraphic Television Interface Adapterは、Atari フィールド サービス マニュアルに記載されているチップの名前です。さまざまな出版物がチップの名前を変えており、別の綴りのAdapter またはGraphics、を使用したり、「CTIA」の「C」がColleen/Candy と「G 」を表していると主張したりしています。 「GTIA」の「」はジョージです。

コンテンツ
1 歴史
1.1 2600 と TIA 1.2 CTIA 1.3 CTIA 対 GTIA
2 特徴
3 バージョン
4 ピン配列
5 レジスター
5.1 プレイヤー/ミサイルの水平座標
5.1.1 HPOSP0 $D000 書き込み
5.1.2 HPOSP1 $D001 書き込み
5.1.3 HPOSP2 $D002 書き込み
5.1.4 HPOSP3 $D003 書き込み
5.1.5 HPOSM0 $D004 書き込み
5.1.6 HPOSM1 $D005 書き込み
5.1.7 HPOSM2 $D006 書き込み
5.1.8 HPOSM3 $D007 書き込み
5.2 プレイヤー/ミサイルのサイズ制御
5.2.1 SIZEP0 $D008 書き込み
5.2.2 SIZEP1 $D009 書き込み
5.2.3 SIZEP2 $D00A 書き込み
5.2.4 SIZEP3 $D00B 書き込み
5.2.5 SIZEM $D00C 書き込み
5.3 プレイヤー/ミサイルのグラフィック パターン
5.3.1 GRAFP0 $D00D 書き込み
5.3.2 GRAFP1 $D00E 書き込み
5.3.3 GRAFP2 $D00F 書き込み
5.3.4 GRAFP3 $D010 書き込み
5.3.5 GRAFM $D011 書き込み
5.4 プレイヤーとミサイルの衝突
5.4.1 プレイヤー/ミサイルとプレイフィールドの衝突
5.4.1.1 M0PF $D000 読み取り
5.4.1.2 M1PF $D001 読み取り
5.4.1.3 M2PF $D002 読み取り
5.4.1.4 M3PF $D003 読み取り
5.4.1.5 P0PF $D004 読み取り
5.4.1.6 P1PF $D005 読み取り
5.4.1.7 P2PF $D006 読み取り
5.4.1.8 P3PF $D007 読み取り
5.4.2 ミサイルとプレイヤーの衝突
5.4.2.1 M0PL $D008 読み取り
5.4.2.2 M1PL $D009 読み取り
5.4.2.3 M2PL $D00A 読み取り
5.4.2.4 M3PL $D00B 読み取り
5.4.3 プレイヤー同士の衝突
5.4.3.1 P0PL $D00C 読み取り
5.4.3.2 P1PL $D00D 読み取り
5.4.3.3 P2PL $D00E 読み取り
5.4.3.4 P3PL $D00F 読み取り
5.5 プレイヤー/ミサイルとプレイフィールドの色と輝度
5.5.1 COLPM0 $D012 書き込み
5.5.2 COLPM1 $D013 書き込み
5.5.3 COLPM2 $D014 書き込み
5.5.4 COLPM3 $D015 書き込み
5.5.5 COLPF0 $D016 書き込み
5.5.6 COLPF1 $D017 書き込み
5.5.7 COLPF2 $D018 書き込み
5.5.8 COLPF3 $D019 書き込み
5.5.9 COLBK $D01A 書き込み
5.6 その他のプレーヤー/ミサイルおよび GTIA コントロール
5.6.1 前の $D01B 書き込み
5.6.1.1 GTIA プレイフィールドの色の解釈
5.6.1.2 16 シェード
5.6.1.3 9 色
5.6.1.4 16 色
5.6.1.5 マルチカラープレーヤー
5.6.1.6 5 番目のプレーヤー
5.6.1.7 優先順位
5.6.1.8 優先モードと高解像度モード
5.6.2 VDELAY $D01C 書き込み
5.6.3 GRACTL $D01D 書き込み
5.6.4 HITCLR $D01E 書き込み
5.7 その他の CTIA/GTIA 機能
5.7.1 ジョイスティックトリガー
5.7.1.1 TRIG0 $D010 読み取り
5.7.1.2 TRIG1 $D011 読み取り
5.7.1.3 TRIG2 $D012 読み取り
5.7.1.4 TRIG3 $D013 読み取り
5.7.2 PAL $D014 読む
5.7.3 CONSPK $D01F 書き込み
5.7.4 CONSOL $D01F 読み取り
6 プレイヤー/ミサイルグラフィック(スプライト)の操作
7 GTIA の機能強化
8 バグ
9 こちらもご覧ください
10 参考文献
11 外部リンク

歴史

2600 と TIA
Atari は、 Atari 2600コンソールの一部として、最初のディスプレイ ドライバ チップであるTelevision Interface Adapterを構築しましたが、一般的には TIA と呼ばれていました。 TIA ディスプレイは、論理的には、動くオブジェクトを表す「プレイヤー」と「ミサイル」、およびアクションが行われる静的な背景画像を表す「プレイフィールド」という 2 つの主要なオブジェクトのセットで構成されていました。このチップは、メモリ レジスタ内のデータを使用してデジタル信号を生成し、デジタル アナログ コンバーターとRF 変調器を介してリアルタイムで変換し、テレビ ディスプレイを生成しました。
プレイフィールドを描画する従来の方法は、フレーム バッファに保持されたビットマップを使用することです。フレーム バッファ内の各メモリ位置は、画面上の 1 つまたは複数の位置を表します。通常 160×192 ピクセルの解像度を使用する 2600 の場合、フレーム バッファには少なくとも 160×192/8 = 3840 バイトのメモリが必要です。RAMが非常に高価だった時代に構築されたTIA は、このソリューションを購入する余裕がありませんでした。
代わりに、システムは、画面の右半分にコピーまたはミラーリングできる単一の 20 ビットメモリ レジスタを使用して、事実上 40 ビット ディスプレイを作成するディスプレイ システムを実装しました。各場所は、128 色のパレットから 4 色のいずれかで表示できます。TIAには、「プレイヤー」と「ミサイル」という他のいくつかの表示オブジェクトも含まれていました。これらは、「プレイヤー」として知られる 2 つの 8 ビット幅のオブジェクト、「ボール」として知られる 1 つの 1 ビット オブジェクト、および 2 つの 1 ビットの「ミサイル」で構成されていました。これらのオブジェクトはすべて、他のレジスタの設定を介して任意の水平位置に移動できます。
TIA システムと 2600 の低価格の鍵は、システムがディスプレイの 1 行を描画するのに十分なメモリのみを実装し、そのすべてがレジスタに保持されていることでした。データでいっぱいの画面全体を描画するために、ユーザー コードは、テレビ ディスプレイが画面の右側に到達するまで待機し、プレイフィールドとプレーヤー/ミサイルのレジスタを更新して、ディスプレイの次の行を正しく反映します。この方式は、 ROM カートリッジのプログラム コードから 1 行ずつ画面を描画するもので、「ビームのレーシング」として知られる手法です。

CTIA
Atari は当初、1976 年に設計された 2600 の市場寿命は 3 年と短いと見積もっていたため、同社は 1979 年までに新しい設計が必要になることを意味していた。同様の基本設計を中心に構築され、単純に更新されました。CTIA となる作業は 1977 年に開始され、2 倍の解像度と 2 倍の色数を持つシステムを提供することを目的としていました。さらに、プレイフィールドの色数を変えることで、水平方向に最大 320 ピクセルまでのはるかに高い解像度をサポートできます。プレーヤーとミサイルも更新され、4 つの 8 ビット プレーヤーと 4 つの 2 ビット ミサイルが含まれましたが、4 つのミサイルを 5 番目のプレーヤーに結合する追加モードも可能になりました。
設計が始まって間もなく、 1977年後半から本格的にホームコンピュータ革命が始まりました。これを受けて、アタリは、ゲーム機としてのローエンドモデルと、ゲーム機としてのハイエンドモデルの2つのバージョンの新型機の発売を決定しました。自宅のコンピューター。いずれの役割においても、より複雑なプレイフィールドが必要であり、特にコンピューターの役割でのキャラクター グラフィックのサポートが必要です。CTIA の設計はこの時点で十分に進んでいたため、再設計の代わりに、ビームのレーシング プロセスを効果的に自動化する 2 つ目のチップを追加するという巧妙なソリューションが提供されました。割り込みタイミングに基づいて CTIA のレジスタを更新するユーザーのプログラミングの代わりに、新しいANTICはこの雑用を処理し、フレームバッファからデータを読み取り、そのデータをその場で CTIA に供給します。
これらの変更の結果、新しいチップでは、TIA よりもグラフィック モードの数と選択が大幅に改善されています。CTIA/ANTIC ペアは、解像度が 20 ビットまたは 40 ビットの単一のプレイフィールド モードの代わりに、6 つのテキスト モードと 8 つのグラフィック モードをさまざまな解像度と色深度で表示できるため、プログラマーは解像度、色、メモリ使用量のバランスを選択できます。彼らのディスプレイのために。

CTIA 対 GTIA
image"
GTIA チップで使用される 256 カラー パレット (NTSC のみ)。16 の色相と 16 の輝度値が
image
これは Atari TIA と CTIA がパレットとして使用したもので (NTSC のみ)、16 の色相と 8 つの輝度値のみで、128 の一意の色を構成します。
CTIA チップの元の設計には、通常のグラフィック モードの 3 つの追加の色解釈も含まれていました。この機能は、ANTIC の高解像度グラフィックス モードの代替表現を提供します。1 ピクセルあたり 1 ビット、2 色、1 ピクセルあたり 4 ビット、最大 16 色、2 色クロック幅のピクセルの 1/2 カラー クロック幅ピクセルを表します。この機能は、コンピュータが 1979 年 11 月に登場する前に準備が整っていましたが、開発サイクルが大幅に遅れたため、Atari はすでに約 100,000 個の CTIA チップをグラフィック モードなしで注文していました。同社は、すでに生産されたチップを捨てたくなかったため、米国市場での Atari 400 および 800 モデルの最初のリリースでそれらを使用することにしました。 この時点から、すべての新しい Atari ユニットには、現在 GTIA と呼ばれる新しいチップが搭載されており、新しいカラー モードをサポートしていました。色解釈モード。
オリジナルの Atari 800/400 オペレーティング システムは、最初から GTIA 代替色解釈モードをサポートしており、準備ができたら CTIA を GTIA に簡単に置き換えることができました。Atari 認定サービス センターは、コンピューターが保証期間内であれば、CTIA を搭載したコンピューターに GTIA チップを無料でインストールします。それ以外の場合、交換には 62.52 ドルかかります。
GTIA は、後のすべての Atari XL および XE コンピュータと Atari 5200 コンソールにも搭載されました。

特徴
以下のリストでは、CTIA/GTIA 固有のハードウェア機能について説明します。これは、ハードウェア自体の意図された機能を意味し、頻繁なレジスタ変更を駆動する CPU サービス割り込みまたはディスプレイ カーネルによって達成される結果は含まれません。
CTIA/GTIA は、次の機能を備えたテレビ インターフェイス デバイスです。
ANTICからの Playfield グラフィックス データ ストリームを解釈して、ディスプレイに色を適用します。
4 つの Player と 4 つの Missile オーバーレイ オブジェクト (別名スプライト) を、ANTIC の Playfield グラフィックスとマージします。プレーヤー/ミサイル機能には以下が含まれます:
プレイヤー/ミサイルのピクセル配置は、プレイフィールドとは無関係です:
プレイヤー/ミサイル オブジェクトは、表示されたプレイフィールドを超えた垂直方向および水平方向のオーバースキャン エリアで正常に機能します。
プレイヤー/ミサイル オブジェクトは、ANTIC プレイフィールドがなくても正常に機能します。
各ビットが 1 つの表示ピクセルを表す 8 ビット幅の Player オブジェクトと 2 ビット幅の Missile オブジェクト。
可変ピクセル幅 (1、2、または 4 カラー クロック幅)
各プレイヤー/ミサイル オブジェクトの垂直方向の高さは、画面全体の高さです。
データが ANTIC DMA によって供給される場合の可変ピクセル高さ (データごとに 1 つまたは 2 つのスキャン ライン)
データごとにダブル スキャン ラインで操作する場合、各 P/M オブジェクトを垂直方向に 1 スキャン ラインずつ個別にシフトする機能。
各プレイヤーとそれに関連付けられたミサイルには、プレイフィールドの色とは別の専用の色レジスタが
グラフィックレイヤーの順序に関する複数の優先順位スキーム (P/M グラフィックとプレイフィールド)
プレーヤーとプレイフィールドの間の色のマージにより、余分な色が生成されます。
マルチカラー プレーヤーを生成するプレーヤーのペア間の色のマージ。
ミサイルは、別のカラー レジスタを使用する 5 番目のプレーヤーにグループ化できます。
プレイヤー、ミサイル、プレイフィールド グラフィックス間の衝突検出。
通常 (CTIA) 色解釈モードには固定色はありません。すべての色は、9 つ​​のカラー レジスタを介して間接的に生成されます。(プレイヤー/ミサイル グラフィック用に 4 つ、プレイフィールド用に 4 つ、プレイフィールドと 5 番目のプレイヤー機能の間で 1 つが共有されます。)
通常の色解釈モードでは、128 色のパレット (それぞれに 8 つの輝度値を持つ 16 色) から色を選択できます。
GTIA カラー解釈モードは、256 色のカラー パレットを提供する色ごとに 16 の輝度を生成できます。
チップの GTIA バージョンは、プレイフィールド グラフィックスに 3 つの代替色解釈モードを追加します。
Atari パレットの 16 の可能な色相からの 1 つの色相の 16 の色合い。これは Atari BASIC で Graphics 9 としてアクセスできます。
単一の色合い/輝度値と背景で 15 の色相。これは Atari BASIC で Graphics 11 としてアクセスできます。
プレイフィールド カラーのすべてのプレイヤー/ミサイルおよびプレイフィールド カラー レジスタを使用して達成される、パレットからの任意の色相および輝度の 9 色。これは Atari BASIC で Graphics 10 としてアクセスできます。
ジョイスティックトリガーの状態を読み取ります (Atari 5200 コントローラーの場合は下部のボタンのみ)。
これには、システムに応じてさまざまな方法で使用される 4 つの入出力ピンが含まれています。
Atari 8 ビット コンピューターでは、ピンの 3 つを使用してコンソール キーの状態 (スタート/選択/オプション) を読み取ります。
4 番目のピンは、Atari 400/800 に組み込まれたスピーカーを制御して、キーボード クリックを生成します。後のモデルにはスピーカーがありませんが、キー クリックは依然として GTIA によって生成され、通常のオーディオ出力と混合されます。
Atari 5200 では、ピンはコントローラーのキーボードを読み取るプロセスの一部として使用されます。

バージョン
品番別
C012295 — NTSC CTIA
C014805 — NTSC GTIA
C014889 — PAL GTIA
C020120 — フランスの SECAM GTIA (FGTIA)
Atari, Inc. は、ANTIC チップと GTIA チップの機能を 1 つの集積回路に組み合わせて、Atari コンピューターと 5200 コンソールの製造コストを削減することを意図していました。このようなプロトタイプ回路が 2 つ開発されていましたが、いずれも製品化には至りませんでした。
C020577 — CGIA
C021737 — ケリ

ピン配列
image
  Atari GTIA (C014805) ピン配列
ピン名
ピン番号
説明
A0 – A4
2、1、40、39、38
住所入力
AN0 – AN2
18、19、20
ANTIC インターフェイス入力
コル 21 色周波数出力CS 32
チップセレクト入力CSYNC 25
コンポジット同期出力
D0 – D7
7、6、5、4、37、36、35、34
データバス I/O
デル 17 カラーディレイライン入力FØ0 29
高速位相クロック出力
停止 26 入力停止
L0 – L3
31、22、23、24
輝度出力N/C 16
未接続 (以降のバージョンでは PAL)OSC 28
発振器入力
読み取り/書き込み 33 読み取り/書き込み入力
S0 – S3
12、13、14、15
スイッチ データ I/O
T0 – T3
8、9、10、11
内部プルアップ付きトリガー入力Vcc 27
電源 +5 ボルトVss _ 3
接地Ø2 30
コンピュータフェーズ 2 入力

レジスター
Atari 8 ビット コンピュータは CTIA/GTIA を $D0xx 16 進数ページにマップし、Atari 5200 コンソールはそれを $C0xx 16 進数ページにマップします。
CTIA/GTIA は、プレーヤー/ミサイル グラフィック、プレイフィールド カラー、ジョイスティック トリガー、およびコンソール キーを制御する 54 個の読み取り/書き込みレジスタを提供します。多くの CTIA/GTIA レジスタ アドレスには、読み取りレジスタと書き込みレジスタとして異なる機能を実行する 2 つの目的がしたがって、以前に書き込まれた値を取得することを期待してハードウェア レジスタを読み取るコードはありません。
この問題は、レジスタに最後に書き込まれた値を格納する場所として通常の RAM に実装されたオペレーティング システム シャドウ レジスタによって、多くの書き込みレジスタで解決されます。オペレーティング システムのシャドー レジスタは、垂直ブランク中に RAM からハードウェア レジスタにコピーされます。したがって、対応するシャドウ レジスタを持つハードウェア レジスタへの書き込みは、次の垂直ブランク中にシャドウ レジスタの値によって上書きされます。
一部の書き込みレジスタには、対応するシャドウ レジスタがありません。垂直ブランク中に値が上書きされることなく、アプリケーションによって安全に書き込むことができます。アプリケーションがレジスタの最後の状態を知る必要がある場合、アプリケーションは何を書き込んだかを覚えておく必要が
オペレーティング システム シャドウ レジスタは、表示サイクルの不明な段階でハードウェアから直接値を読み取ると、一貫性のない結果が返される可能性がある一部の読み取りレジスタにも存在します。 名前 説明
読み書き
16 進アドレス
10月の住所
影の名前
シャドウ 16 進アドレス
シャドウ Dec アドレス HPOSP0 プレイヤー 0 の水平位置
書く$D000 53248 M0PF
ミサイル 0 からプレイフィールドへの衝突
読んだ$D000 53248 HPOSP1
プレーヤー 1 の水平位置
書く$D001 53249 M1PF
ミサイル 1 からプレイフィールドへの衝突
読んだ$D001 53249 HPOSP2
プレーヤー 2 の水平位置
書く$D002 53250 M2PF
ミサイル 2 からプレイフィールドへの衝突
読んだ$D002 53250 HPOSP3
プレーヤー 3 の水平位置
書く$D003 53251 M3PF
ミサイル 3 からプレイフィールドへの衝突
読んだ$D003 53251 HPOSM0
ミサイル0の水平位置
書く$D004 53252 P0PF
プレーヤー 0 からプレイフィールドへの衝突
読んだ$D004 53252 HPOSM1
ミサイル 1 の水平位置
書く$D005 53253 P1PF
プレーヤー 1 からプレイフィールドへの衝突
読んだ$D005 53253 HPOSM2
ミサイル 2 の水平位置
書く$D006 53254 P2PF
プレイヤー 2 とプレイフィールドの衝突
読んだ$D006 53254 HPOSM3
ミサイル 3 の水平位置
書く$D007 53255 P3PF
プレイヤー 3 とプレイフィールドの衝突
読んだ$D007 53255
サイズP0
プレーヤーのサイズ 0
書く$D008 53256 M0PL
ミサイル 0 対プレイヤーの衝突
読んだ$D008 53256
サイズP1
プレーヤー 1 のサイズ
書く$D009 53257 M1PL
ミサイル 1 とプレイヤーの衝突
読んだ$D009 53257
サイズP2
プレーヤー 2 のサイズ
書く$D00A 53258 M2PL
ミサイル 2 とプレイヤーの衝突
読んだ$D00A 53258
サイズP3
プレーヤー 3 のサイズ
書く$D00B 53259 M3PL
ミサイル 3 とプレイヤーの衝突
読んだ$D00B 53259
サイズM
すべてのミサイルのサイズ
書く$D00C 53260 P0PL
プレーヤー 0 からプレーヤーへの衝突
読んだ$D00C 53260 GRAFP0
Player 0 のグラフィック パターン
書く$D00D 53261 P1PL
プレイヤー 1 からプレイヤーへの衝突
読んだ$D00D 53261 GRAFP1
プレーヤー 1 のグラフィック パターン
書く$D00E 53262 P2PL
プレイヤー 2 からプレイヤーへの衝突
読んだ$D00E 53262 GRAFP2
プレーヤー 2 のグラフィック パターン
書く$D00F 53263 P3PL
プレイヤー 3 からプレイヤーへの衝突
読んだ$D00F 53263 GRAFP3
Player 3 のグラフィック パターン
書く$D010 53264 TRIG0
ジョイスティック 0 トリガー。
読んだ$D010 53264 STRIG0 $0284 644
グラフム
すべてのミサイルのグラフィック パターン
書く$D011 53265 TRIG1
ジョイスティック 1 トリガー。
読んだ$D011 53265 STRIG1 $0285 645 COLPM0 プレイヤーとミサイルの色/輝度 0.
書く$D012 53266 PCOLOR0 $02C0 704 TRIG2 ジョイスティック 2 トリガー。
読んだ$D012 53266 STRIG2 $0286 646 COLPM1 プレイヤーとミサイルの色/輝度 1.
書く$D013 53267 PCOLOR1 $02C1 705 TRIG3 ジョイスティック 3 トリガー。
読んだ$D013 53267 STRIG3 $0287 647 COLPM2 プレイヤーとミサイル 2 の色/輝度。
書く$D014 53268 PCOLOR2 $02C2 706
パル
PAL フラグ。
読んだ$D014 53268 COLPM3
プレイヤーとミサイルの色/輝度 3.
書く$D015 53269 PCOLOR3 $02C3 707 COLPF0 Playfield 0 の色/輝度。
書く$D016 53270 COLOR0 $02C4 708 COLPF1 プレイフィールド 1 の色/輝度。
書く$D017 53271
カラー1$02C5 709 COLPF2
Playfield 2 の色/輝度。
書く$D018 53272
カラー2$02C6 710 COLPF3
Playfield 3 の色/輝度。
書く$D019 53273 COLOR3 $02C7 711 COLBK プレイフィールドの背景の色/輝度。
書く$D01A 53274
カラー4$02C8 712 前
優先選択、5 番目のプレーヤー、および GTIA モード
書く$D01B 53275 GPRIOR $026F 623
V遅延
垂直遅延 P/M グラフィックス
書く$D01C 53276 GRACTL
グラフィックコントロール。
書く$D01D 53277 HITCLR
衝突をクリア
書く$D01E 53278 CONSPK
コンソールスピーカー
書く$D01F 53279
コンソール
コンソールキー
読んだ$D01F 53279
以下の個々の登録リストでは、次の凡例が適用されます。
ビット値
説明 0 ビットは 0 でなければなりません 1 ビットは 1 でなければなりません ? ビットは 0 または 1 のいずれかで、目的に使用されます。 – ビットが使用されていないか、特定の値であると想定されるべきではありません
ラベル
ビットの目的については、後述の説明を参照して

プレイヤー/ミサイルの水平座標
これらのレジスタは、プレーヤー/ミサイル オブジェクトの左端 ( GRAF*バイト パターンの上位ビット) のカラー クロックの水平位置を指定します。座標は、単に現在のプレイフィールド表示モードではなく、常にディスプレイ ハードウェアのカラー クロック エンジンに基づいています。これは、プレイヤー/ミサイル オブジェクトを現在のプレイフィールド モードを超えてオーバースキャン エリアに移動できることも意味します。
Missile オブジェクトのビット パターンは、表示されるピクセル ( GRAFM ) に対して同じバイトを共有しますが、各 Missile は個別に配置できることに注意して「5 番目のプレーヤー」オプションが有効な場合 ( PRIOR/GPRIORレジスタを参照)、4 つのミサイルが 1 つの「プレーヤー」に変わり、ミサイルは関連付けられたプレーヤー オブジェクトの色の表示から COLPF3 の値の表示に切り替わります。画面上の新しい「プレーヤー」の位置は、各ミサイルの位置を個別に指定して設定する必要が
プレイヤー/ミサイル ピクセルは、GTIA のピクセル エンジンの可視部分内でのみレンダリングされます。水平ブランクまたは垂直ブランクの間、プレイヤー/ミサイル オブジェクトはレンダリングされません。ただし、オブジェクトが部分的に水平ブランク内にある場合が水平ブランクの外側にあるオブジェクトのピクセルは、ディスプレイの可視部分内にあり、衝突を記録できます。可視カラー時計の水平位置の範囲は、 $22 hex /34 decから $DD hex /221 decです。
プレーヤー/ミサイル オブジェクトを可視表示領域の水平位置 (左) 0 および (右) $DE hex /222 dec (またはそれ以上) から削除するには、プレーヤー/ミサイル オブジェクトのサイズに関係なく、ピクセルがレンダリングされないようにします。意図しない衝突にフラグを立てることはできません。

HPOSP0 $D000 書き込み
プレイヤー 0 の水平位置

HPOSP1 $D001 書き込み
プレーヤー 1 の水平位置

HPOSP2 $D002 書き込み
プレーヤー 2 の水平位置

HPOSP3 $D003 書き込み
プレーヤー 3 の水平位置

HPOSM0 $D004 書き込み
ミサイル0の水平位置

HPOSM1 $D005 書き込み
ミサイル 1 の水平位置

HPOSM2 $D006 書き込み
ミサイル 2 の水平位置

HPOSM3 $D007 書き込み
ミサイル 3 の水平位置
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0? ? ? ? ?? ? ?
以下は、可能なプレイフィールド サイズの左端と右端のカラー クロック座標です。これは、プレイヤー/ミサイル オブジェクトをプレイフィールド コンポーネントに配置するときに役立ちます。
プレイフィールド
表示されたカラークロックの幅
左端の最初のカラー クロック
右端の最後のカラー クロック
狭い
$80 hex /128 dec
$40 hex /64 dec
$BF hex /191 dec
普通
$A0 hex /160 dec
$30 hex /48 dec
$CF hex /207 dec 幅 $B0 hex /176 dec
$28 hex /40 dec
$D7 hex /215 dec

プレイヤー/ミサイルのサイズ制御
ノーマル、ダブル、クアッド幅の3サイズからお選びいただけます。左端 (水平座標を参照) は固定されており、サイズ調整により、常にプレーヤーまたはミサイルが右方向に拡張されます。
通常 – 1 ビット (ピクセル) は 1 カラー クロック幅です。
Double – 1 ビット (ピクセル) は 2 カラー クロック幅
Quad – 1 ビット (ピクセル) は 4 カラー クロック幅
クワッド サイズでは、1 つのプレーヤー/ミサイル ピクセルがアンティック モード 2 のテキスト文字と同じ幅であることに注意してプレイヤー/ミサイルの優先度選択とクワッド幅の混合 プレイヤー ミサイルのグラフィックを使用して、モード ラインごとに複数のテキスト カラーを作成できます。
各プレーヤーには独自のサイズ制御レジスタが

SIZEP0 $D008 書き込み
プレーヤーのサイズ 0

SIZEP1 $D009 書き込み
プレーヤー 1 のサイズ

SIZEP2 $D00A 書き込み
プレーヤー 2 のサイズ

SIZEP3 $D00B 書き込み
プレーヤー 3 のサイズ
プレーヤーのサイズ コントロール:
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – – – サイズ 1
サイズ 0
値:
サイズ
プレーヤーの幅
ビット値
サイズ 1
サイズ 0
普通
8色の時計 $000 0 ダブル
16色の時計 $010 1 普通
8色の時計 $021 0 クワッド
32色の時計$03 1
1

SIZEM $D00C 書き込み
すべてのミサイル サイズは 1 つのレジスタによって制御されますが、各ミサイルは他のミサイルとは独立してサイズ変更できます。「5 番目のプレーヤー」オプションが有効になっている場合 ( PRIOR/GPRIORレジスタを参照)、4 つのミサイルを 1 つの「プレーヤー」に変えても、各ミサイルのサイズを個別に指定することで幅が設定されます。
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
M3サイズ1
M3 サイズ 0
M2 サイズ 1
M2 サイズ 0
M1 サイズ 1
M1 サイズ 0
M0 サイズ 1
M0 サイズ 0
値:
ミサイル
サイズ
ミサイル幅
ビット値
サイズ 1
サイズ 0
ミサイル 0
普通
2色の時計 $000 0 ダブル
4色の時計 $010 1 普通
2色の時計 $021 0 クワッド
8色の時計 $031 1 ミサイル1
普通
2色の時計 $000 0 ダブル
4色の時計 $040 1 普通
2色の時計 $081 0 クワッド
8色の時計 $0C1 1 ミサイル2
普通
2色の時計 $000 0 ダブル
4色の時計 $100 1 普通
2色の時計 $201 0 クワッド
8色の時計 $301 1 ミサイル3
普通
2色の時計 $000 0 ダブル
4色の時計 $400 1 普通
2色の時計 $801 0 クワッド
8色の時計$C0 1
1

プレイヤー/ミサイルのグラフィック パターン
各 Player オブジェクトには、独自の 8 ビット パターン レジスタがミサイル オブジェクトは、ミサイルごとに 2 ビットの 1 つのレジスタを共有します。値が設定されると、各スキャン ラインに表示され続けます。値を更新するために CPU または ANTIC DMA によるその他の介入がない場合、結果はオーバースキャン領域を含む画面の高さの縦縞パターンになります。この操作モードでは、コンピュータの CPU または DMA の負荷は発生しません。画面領域を区切る代替色の境界線と垂直線を表示するのに役立ちます。

GRAFP0 $D00D 書き込み
Player 0 のグラフィック パターン

GRAFP1 $D00E 書き込み
プレーヤー 1 のグラフィック パターン

GRAFP2 $D00F 書き込み
プレーヤー 2 のグラフィック パターン

GRAFP3 $D010 書き込み
Player 3 のグラフィック パターン
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
ピクセルHPOS+0
ピクセルHPOS+1
ピクセルHPOS+2
ピクセルHPOS+3
ピクセルHPOS+4
ピクセルHPOS+5
ピクセルHPOS+6
ピクセルHPOS+7
各プレーヤーは 8 ビット (ピクセル) 幅です。ビットが設定されている場合、プレーヤーに関連付けられたカラー レジスタに割り当てられた色でピクセルが表示されます。ビットが設定されていない場合、プレーヤー オブジェクトは透明で、プレーヤー、ミサイル、プレイフィールド ピクセル、または背景色が表示されます。ピクセル出力は、プレーヤーの HPOS 値で指定された水平位置から開始され、最初に最高ビット出力が付けられます。

GRAFM $D011 書き込み
すべてのミサイルのグラフィック パターン
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
M3 ピクセル HPOS+0
M3 ピクセル HPOS+1
M2 ピクセル HPOS+0
M2 ピクセル HPOS+1
M1 ピクセル HPOS+0
M1 ピクセル HPOS+1
M0 ピクセル HPOS+0
M0 ピクセル HPOS+1
各ミサイルは 2 ビット (ピクセル) 幅です。ビットが設定されている場合、ミサイルに関連付けられたプレーヤーのカラー レジスタに割り当てられた色でピクセルが表示されます。Fifth Player が有効になっている場合 ( PRIOR/GPRIORを参照)、Missiles ピクセルはすべて COLPF3 を表示します。ビットが設定されていない場合、Missile オブジェクトは透明になり、プレイヤー、ミサイル、プレイフィールド ピクセル、または背景色が表示されます。ピクセル出力は、Missile の HPOS 値で指定された水平位置から始まり、最上位ビット出力が最初になります。
ミサイル値:
ミサイル
ビット値
ピクセル 1
ピクセル 0
ミサイル 0 $000 0 $010 1 $021 0 $031 1
ミサイル1 $000 0 $040 1 $081 0 $0C1 1
ミサイル2 $000 0 $100 1 $201 0 $301 1
ミサイル3 $000 0 $400 1
$801 0$C0 1
1

プレイヤーとミサイルの衝突
CTIA/GTIA には 60 ビットがあり、プレーヤー、ミサイル、およびプレイフィールドのピクセルが交差するときに衝突を自動検出します。単一ビットは、プレーヤー/ミサイル オブジェクトのゼロ以外のピクセルが特定のカラー レジスタのピクセルと交差したことを示します。背景色レジスタ/値を使用してレンダリングされたピクセルに対して登録された衝突はありません。このシステムは、バウンディング ボックスやイメージ ビットマップ マスキングの高価な CPU 評価を行わずに、瞬時にピクセル単位でオーバーラップを比較します。
オブジェクトの実際の色の値は考慮されません。Player、Missile、Playfield、および Background のカラー レジスタがすべて同じ値であり、オブジェクトが事実上「見えない」場合、オブジェクトの交差は依然として衝突を登録します。これは、隠しオブジェクトや秘密のオブジェクトや壁を作成するのに役立ちます。
隠れた交差点も衝突を記録します。プレイヤー オブジェクトの優先度がプレイフィールド カラー レジスタの背後にあり、別のプレイヤー オブジェクトの優先度がプレイフィールドよりも (前景に) 高く、前景のプレイヤー ピクセルがプレイフィールドとプレイフィールドの背後にあるプレイヤー オブジェクトの両方を隠している場合、プレイフィールドと両方の間の衝突が発生します。バックグラウンドとフォアグラウンドの Player オブジェクトは、フォアグラウンドとバックグラウンドの Player オブジェクト間の衝突とともに登録されます。
ミサイル同士の衝突はないことに注意して
プレイヤー/ミサイルの衝突は、プレイヤー/ミサイル オブジェクトのピクセルがディスプレイの可視部分内で発生した場合にのみ発生します。水平ブランクまたは垂直ブランクの間、プレイヤー/ミサイル オブジェクトはレンダリングされません。可視カラー クロックの範囲は 34 ~ 221 で、可視スキャン ラインの範囲は 8 行目から 247 行目です。これらの座標の外側にあるプレイヤー/ミサイル データはレンダリングされず、衝突を記録しません。オブジェクトは、水平ブランク内に部分的に入ることができます。水平ブランクの外側にあるオブジェクトのピクセルは、ディスプレイの可視部分内にあり、依然として衝突を登録できます。
プレーヤー/ミサイル オブジェクトを可視表示領域から削除するには、水平位置 (左) を 0 および (右) 222 (またはそれ以上) にすると、プレーヤー/ミサイル オブジェクトのサイズに関係なく、ピクセルがレンダリングされないことが保証されるため、意図しない衝突が発生することはありません。フラグが立てられました。
最後に、Player、Missile、および Playfield オブジェクトの衝突検出はリアルタイムで行われ、画像ピクセルがマージされて表示用に出力されるときに衝突が登録されます。オブジェクトが CTIA/GTIA によってレンダリングされる前にオブジェクトの衝突ビットをチェックすると、衝突は表示されません。
一度セットされると、衝突はHITCLRレジスタへの書き込みによってクリアされるまで有効なままになります。効果的な衝突応答ルーチンは、ターゲット オブジェクトが表示された後、フレームの最後、または垂直ブランク中に発生して、衝突に反応し、次のフレームが始まる前に衝突をクリアする必要が
衝突は 1 ビットにすぎないため、衝突が相加的でないことは明らかです。ピクセル間の衝突が 1 フレーム内で何回、異なる場所で発生しても、衝突があったことを示すビットは 1 つしかありません。設定された衝突ビットは、プログラムが関連するオブジェクトを調べて衝突位置を識別し、各位置にどのように反応するかを決定できることをプログラムに通知します。
HITCLR と衝突検出はリアルタイムであるため、表示リスト割り込みは、各セクションの最初に HITCLR を使用して表示をセクションに分割し、各セクションの最後に個別の衝突評価を行うことができます。
「5 番目のプレーヤー」オプションが有効な場合 ( PRIOR/GPRIORレジスタを参照)、唯一の変更は、Missiles 0 から 3 が関連する Player オブジェクトの色の表示から COLPF3 の値の表示に切り替わることです。新しい「プレーヤーの」衝突は、個々のミサイルについて引き続き報告されます。

プレイヤー/ミサイルとプレイフィールドの衝突
各ビットは、プレイヤー/ミサイル オブジェクトのピクセルが、指定されたプレイフィールド カラー オブジェクトのピクセルと交差したことを示します。背景色に登録されている衝突はありません。
隠れた交差点も衝突を記録します。プレーヤー/ミサイル オブジェクトの優先度がプレイフィールド カラー レジスタの背後にあり、別のプレーヤー/ミサイル オブジェクトの優先度がプレイフィールドよりも (前景に) 高く、前景のプレーヤー/ミサイル ピクセルがプレイフィールドとプレイフィールドの背後にあるプレーヤー/ミサイル オブジェクトの両方を隠している場合、次に、Playfield と、背景と前景の両方の Player/Missile オブジェクトとの衝突が登録されます。
高解像度の 1/2 カラー クロック ピクセル モード ( ANTICモード 2、3、および F) は、別の方法で処理されます。ピクセル値が 0のCOLPF2としてレンダリングされた「背景」カラーは、衝突を登録しません。高解像度ピクセルは、COLPF1からの輝度値としてレンダリングされます。ピクセルは、カラー クロック幅のペア (ピクセル 0 と 1、ピクセル 2 と 3、ピクセル 318 と 319 に続く) にグループ化されます。ペアのいずれかのピクセルが 1 の場合、プレイヤーまたはミサイル ピクセルとプレイフィールド カラーCOLPF2の間で衝突が検出されます。
GTIA モード 9 および 11 は、プレイフィールドの衝突を処理しません。GTIA モードでは、プレイフィールド ピクセルがCOLPF0からCOLPF3を使用する場所に 10 個のプレイフィールド衝突が登録されます。

M0PF $D000 読み取り
ミサイル 0 からプレイフィールドへの衝突

M1PF $D001 読み取り
ミサイル 1 からプレイフィールドへの衝突

M2PF $D002 読み取り
ミサイル 2 からプレイフィールドへの衝突

M3PF $D003 読み取り
ミサイル 3 からプレイフィールドへの衝突

P0PF $D004 読み取り
プレーヤー 0 からプレイフィールドへの衝突

P1PF $D005 読み取り
プレーヤー 1 からプレイフィールドへの衝突

P2PF $D006 読み取り
プレイヤー 2 とプレイフィールドの衝突

P3PF $D007 読み取り
プレイヤー 3 とプレイフィールドの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – COLPF3COLPF2 COLPF1
COLPF0

ミサイルとプレイヤーの衝突
ミサイルはプレイヤーとプレイフィールドに衝突します。ミサイル同士の衝突はありません。

M0PL $D008 読み取り
ミサイル 0 対プレイヤーの衝突

M1PL $D009 読み取り
ミサイル 1 とプレイヤーの衝突

M2PL $D00A 読み取り
ミサイル 2 とプレイヤーの衝突

M3PL $D00B 読み取り
ミサイル 3 とプレイヤーの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – COLPM3COLPM2 COLPM1
COLPM0

プレイヤー同士の衝突
2 人のプレーヤー間の衝突は、両方のプレーヤーの衝突レジスタに衝突ビットを設定します。プレイヤー 0 とプレイヤー 1 が衝突すると、プレイヤー 1 のプレイヤー 0 の衝突ビットが設定され、プレイヤー 0 のプレイヤー 1 の衝突ビットが設定されます。
Player は自分自身と衝突できないため、そのビットは常に 0 です。

P0PL $D00C 読み取り
プレーヤー 0 からプレーヤーへの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – COLPM3COLPM2 COLPM1
0

P1PL $D00D 読み取り
プレイヤー 1 からプレイヤーへの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – COLPM3COLPM2 0
COLPM0

P2PL $D00E 読み取り
プレイヤー 2 からプレイヤーへの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – COLPM30 COLPM1
COLPM0

P3PL $D00F 読み取り
プレイヤー 3 からプレイヤーへの衝突
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- — – 0COLPM2 COLPM1
COLPM0

プレイヤー/ミサイルとプレイフィールドの色と輝度
デフォルトの CTIA/GTIA カラー解釈モードのすべての Player/Missile オブジェクトのピクセルとすべての Playfield ピクセルは、色の指定に間接参照を使用します。間接的とは、ピクセル データの値が色を直接指定するのではなく、色の別の情報源を指すことを意味します。CTIA/GTIA には、色に使用される値を設定するハードウェア レジスタが含まれており、ピクセルの情報はこれらのレジスタを参照します。Atari のパレットは、16 色の​​ 8 つの輝度レベルで合計 128 色です。色の間接的な柔軟性により、プログラムは画面の色をプログラムの表示の目的に合わせて調整できます。
すべてのハードウェア カラー レジスタには、対応するシャドウ レジスタが

COLPM0 $D012 書き込み
シャドウ: PCOLOR0 $02C0
プレイヤーとミサイルの色/輝度 0.
GTIA 9 色モードが有効な場合 ( PRIOR/GPRIOR値 $80)、このレジスタはCOLBKではなく、境界線と背景 (プレイフィールド ピクセル値 0) に使用されます。

COLPM1 $D013 書き込み
シャドウ: PCOLOR1 $02C1
プレイヤーとミサイルの色/輝度 1.

COLPM2 $D014 書き込み
シャドウ: PCOLOR2 $02C2
プレイヤーとミサイル 2 の色/輝度。

COLPM3 $D015 書き込み
シャドウ: PCOLOR3 $02C3
プレイヤーとミサイルの色/輝度 3.

COLPF0 $D016 書き込み
シャドウ: COLOR0 $02C4
Playfield 0 の色/輝度。

COLPF1 $D017 書き込み
シャドウ: COLOR1 $02C5
プレイフィールド 1 の色/輝度。
このレジスタは、ANTIC テキスト モード 2 と 3、およびマップ モード F のセット ピクセル (値 1) に使用されます。輝度部分のみが使用され、COLPF2 のカラー値とOR 演算されます。他の Character および Map モードでは、このレジスタはピクセルの予想される色と輝度を提供します。

COLPF2 $D018 書き込み
シャドウ: COLOR2 $02C6
Playfield 2 の色/輝度。
このレジスタは、ANTIC テキスト モード 2 と 3、およびマップ モード F のプレイフィールドの背景色に使用されます。つまり、ピクセル値 0 が使用されます。他の Character および Map モードでは、このレジスタはピクセルの予想される色と輝度を提供します。

COLPF3 $D019 書き込み
シャドウ: COLOR3 $02C7
プレイフィールド 3 の色/輝度
COLPF3 は、いくつかの特別な状況で使用できます。
ミサイルが「5 番目のプレーヤー」に変換されると、関連するプレーヤー オブジェクトの色の表示から COLPF3 の表示に切り替わり、優先度が変更されます。PRIOR/GPRIORレジスタを参照して
プレイフィールド テキスト モード 4 および 5。逆ビデオ文字 (高ビット $80 が設定されている) により、CTIA/GTIA は文字マトリックス内の COLPF2 ピクセルを COLPF3 値に置き換えます。( ANTIC のグリフ レンダリングを参照)
プレイフィールド テキスト モード 6 および 7。文字値にビット 6 および 7 が設定されている場合 (文字範囲 $C0-FF)、文字ピクセル マトリックス全体が COLPF3 に表示されます。( ANTIC のグリフ レンダリングを参照)
このレジスタは、GTIA の特別な 9 色のピクセル間接カラー モードでも使用できます。

COLBK $D01A 書き込み
シャドウ: COLOR4 $02C8
プレイフィールドの背景の色/輝度。
背景色は、オーバースキャン表示領域全体で他のピクセルが発生しない場所に表示されます。バックグラウンドでは、次の例外が発生します。
ANTIC テキスト モード 2 と 3、およびマップ モード F では、ピクセルがレンダリングされる可能性があるプレイフィールド エリアの背景は COLPF2 からのものであり、COLBK カラーはプレイフィールドの周囲の境界線として表示されます。
GTIA カラー解釈モード $8 (9 色間接) では、ディスプレイの背景色はカラー レジスタ COLPM0 によって提供され、COLBAK は Playfield ピクセル値 $8 に使用されます。
GTIA カラー解釈モード $C (1 つの輝度レベルに 15 色と背景) では、COLBK を使用して他のすべてのピクセル (ピクセル値 $1 から $F) の輝度レベルを設定します。ただし、背景自体は、COLBK レジスタに設定された色コンポーネントのみを使用します。背景の輝度値は強制的に 0 になります。
カラー レジスタのビット:
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
カラー 3
カラー2
カラー 1
カラー 0
輝度 3
輝度 2
輝度 1(輝度0)
カラーレジスタの上位ニブルは、16 色 ($00、$10、$20… ~ $F0) のいずれかを指定します。
レジスタの下位ニブルは、16 の輝度値 ($00、$01、$02… ~ $0F) のいずれかを指定します。
通常の色解釈モードでは、最下位ビットは重要ではなく、8 つの輝度値 ($00、$02、$04、$06、$08、$0A、$0C、$0E) しか使用できないため、完全なカラー パレットは 128 色の値になります。
GTIA カラー解釈モード $4 (輝度のみのモード) では、256 色のパレットを提供する Playfield ピクセルにフル 16 ビットの輝度値を使用できます。このモードで表示されるすべてのプレイヤー/ミサイル オブジェクトは、128 色のパレットを使用するインダイレクションによって色付けされます。
通常のカラー解釈モードでは、ピクセル値の範囲は $0 から $3 で、通常はそれぞれカラー レジスタ COLBK、COLPF0、COLPF1、COLPF2 を指します。カラー テキスト モードには、特定の範囲の文字値に COLPF3 を使用するオプションも含まれています。詳細については、 ANTICのグラフィック モードを参照して
グラフィック パターン ビットが設定されている場合、プレーヤー/ミサイル グラフィック パターンが表示用に有効になっている場合、表示される色は、オブジェクトに割り当てられたレジスタから取得されます。
色の生成と表示には例外が
ANTIC Text モード 2 および 3、および Map モード F:
これらのモードのピクセル値は $0 と $1 のみです。$0 ピクセルは、カラー レジスタ COLPF2 であるプレイフィールドの背景を指定します。$1 ピクセルは、COLPF2 のカラー コンポーネントと、COLPF1 で指定された輝度を使用します。プレイフィールドの境界線は COLBK の色を使用しています。
ANTIC テキスト モード 2 と 3、およびマップ モード F は、他のモードとはプレイヤー/ミサイル グラフィックスの動作が異なります。グリフまたはグラフィック ピクセルに使用される COLPF1 は常に最高の優先度を持ち、プレイヤーやミサイルによって隠されることはありません。COLPF1 の色は、通常 COLPF2 である「背景」から常に来ます。したがって、プレーヤー/ミサイルと 5 番目のプレーヤーが COLPF2 よりも優先される場合、COLPF1 グリフ/グラフィック ピクセルは、最も優先度の高い色 (プレーヤーまたはミサイル) の色コンポーネントと、COLPF1 の輝度コンポーネントを使用します。この動作は、プレイヤーとミサイルの優先順位が競合して「背景」が真の黒になる場合と一致しています。要約すると、CTIA/GTIA が最終的に高解像度ピクセルの「背後」で使用することを決定した色は、COLPF1 フォアグラウンド グリフ/グラフィック ピクセルを「着色」するために使用されます。
GTIA の例外
GTIA カラー解釈モード $8 (9 色間接) は、ディスプレイの背景と境界線の色にカラー レジスタ COLPM0 を使用し、COLBAK は Playfield ピクセル値 $8 に使用されます。
GTIA カラー解釈モード $C (1 つの輝度レベルに 15 色と背景) は、COLBK を使用して他のすべてのピクセル (ピクセル値 $1 から $F) の輝度レベルを設定します。ただし、背景自体は、COLBK レジスタに設定された色コンポーネントのみを使用します。背景の輝度値は 0 に強制されます。背景の色成分も他のピクセルの色と OR 演算されることに注意してしたがって、背景色コンポーネントが黒でない場合 (数値的にゼロ)、モードの全体的な色数は減少します。
プレイヤー/ミサイルの例外:
Player/Missile Priority の値が $0 ( PRIOR/GPRIORを参照) の場合、重なっている Player と Playfield のピクセルが OR 演算され、異なる色で表示されます。
競合するプレイヤー/ミサイルの優先度構成により、競合が発生した場所で真の黒 (色 0、輝度 0) が出力されます。
Player/Missile Multi-Color オプションを使用すると、重なっている Player ピクセルが OR 演算されて、異なる色で表示されます。
ANTIC キャラクター モードごとのカラー レジスタの使用:
登録
アンティック 2
アンティック3
アンティック4
アンティック5
アンティック6
アンティック7COLPM0/PCOLOR0 COLPM1/PCOLOR1 COLPM2/PCOLOR2 COLPM3/PCOLOR3 COLPF0/COLOR0
グリフ ピクセル
グリフ ピクセル
グリフ
グリフ COLPF1/COLOR1 グリフ ピクセル (輝度)
グリフ ピクセル (輝度)
グリフ ピクセル
グリフ ピクセル
グリフ
グリフ COLPF2/COLOR2 バックグラウンド
バックグラウンド
グリフ ピクセル
グリフ ピクセル
グリフ
グリフ COLPF3/COLOR3 グリフ ピクセル
グリフ ピクセル グリフ グリフ
コルバック/COLOR4 国境 国境
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
ANTICマップモードごとのカラーレジスタの使用:
登録
ANTIC 0 (空白行)
アンティック8
アンティック9
アンティックA
アンティックB
アンティックC
アンティックD
アンティックE
アンティックFCOLPM0/PCOLOR0 COLPM1/PCOLOR1 COLPM2/PCOLOR2 COLPM3/PCOLOR3 COLPF0/COLOR0
ピクセル
ピクセル
ピクセル
ピクセル
ピクセル
ピクセル
ピクセル COLPF1/COLOR1 ピクセル
ピクセル
ピクセル
ピクセル
ピクセル (輝度) COLPF2/COLOR2 ピクセル
ピクセル
ピクセル
ピクセル
バックグラウンド COLPF3/COLOR3 コルバック/COLOR4
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
バックグラウンド
国境
GTIA モードごとのカラー レジスタの使用 (ANTIC F) :
登録
GTIA $4 (ベーシック 9)
GTIA $8 (ベーシック 10)
GTIA $C (ベーシック 11) COLPM0/PCOLOR0 バックグラウンド COLPM1/PCOLOR1 ピクセル COLPM2/PCOLOR2 ピクセル COLPM3/PCOLOR3 ピクセル COLPF0/COLOR0 ピクセル COLPF1/COLOR1 ピクセル COLPF2/COLOR2 ピクセル COLPF3/COLOR3 ピクセル
コルバック/COLOR4
背景のベースカラー
ピクセル
背景ベース輝度
プレーヤー/ミサイルの色は、すべてのモードのプレーヤー/ミサイル オブジェクトで常に使用できますが、特別な GTIA モード (16 シェード/16 色) が​​有効な場合は色が変更される場合が
その他のプレーヤー/ミサイルおよび GTIA コントロール編集

前の $D01B 書き込み
シャドウ:GPRIOR $026F
このレジスタは、いくつかの CTIA/GTIA カラー管理機能を制御します: GTIA Playfield カラー解釈モード、Multi-Color Player オブジェクト、5 番目のプレーヤー、および Player/Missile/Playfield 優先順位。
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
GTIA モード 1
GTIA モード 0
マルチカラープレーヤー
5 番目のプレーヤー
優先度 3
優先度 2
優先度 1
優先度 0

GTIA プレイフィールドの色の解釈
CTIA には、ANTIC Playfield データ ストリーム用のデフォルトの色解釈モードが 1 つだけ含まれています。これは、特に明記されていない限り、 ANTICおよび CTIA/GTIA の議論の大部分で想定されている基本的な機能です。GTIA には、プレイフィールド データの 3 つの代替色解釈モードが含まれています。これらのモードは、ANTIC からの隣接するカラー クロックをペアにすることによって機能するため、GTIA によって出力されるピクセルは常に 2 つのカラー クロック幅になります。これらのモードは、任意の ANTIC プレイフィールド モードの表示中に使用できますが、これらの GTIA カラー処理オプションで可能なフル カラー パレットは、1 ⁄ 2カラー クロック ピクセルに基づく ANTIC モードでのみ実現されます (ANTIC モード 2、3、F)。 GTIA オプションは、モード F ディスプレイで最もよく使用されます。特別な GTIA カラー処理モードも、さまざまな方法でプレイヤー/ミサイル グラフィックの表示または動作を変更します。
色解釈制御は、画面全体に影響を与える GTIA のグローバル機能です。GTIA は本質的に、さまざまな GTIA カラー解釈モードと、ほとんどの ANTIC Playfield に必要なデフォルトの CTIA モードを 1 つのディスプレイで混在させることができません。色解釈モードを混在させるには、表示が生成されるときに (通常は表示リスト割り込みによって)、ソフトウェアが PRIOR レジスタに書き込む必要が
PRIOR ビット 7 および 6 は、色解釈モードを指定する 4 つの値を提供します。
GTIA モード ビット 特徴 説明
0 0 = $00
デフォルト
CTIAと同じ。通常のカラー レジスタの使用。
0 1 = $40
GTIA/16 シェード
16 階調の背景色 ( COLBK )
1 0 = $80
GTIA/9色
Playfield では、9 つ​​の Playfield と Player/Missile のカラー レジスタをすべて使用できます。バックグラウンドはCOLPM0
1 1 = $C0
GTIA/16色
バックグラウンド レジスタ ( COLBK ) とバックグラウンドによって設定された 1 つの輝度レベルでの 15 色。

16 シェード
このモードでは、COLBK レジスタを使用して背景色を指定します。間接的な使用ではなく、ピクセル値が輝度を直接表します。このモードでは、4 つの輝度ビットすべてを Atari カラー パレットで使用できるため、256 色を表示できます。
プレイヤー/ミサイルのグラフィック (5 番目のプレイヤー オプションなし) はこのモードで適切に表示されますが、プレイフィールドとの衝突検出は無効になっています。プレイフィールドの優先順位は常に一番下にミサイルが 5 番目のプレーヤーとして機能するように切り替えられると、ミサイル オブジェクトがプレイフィールドと重なる場所で、ミサイル ピクセルの輝度がプレイフィールド ピクセルの輝度値とマージされます。

9 色
他の 2 つの特別な GTIA モードとは異なり、このモードは完全に色の間接化によって駆動されます。9 つのカラー レジスタはすべて、ピクセル値 0 ~ 8 に対してディスプレイ上で機能します。残りの 7 つのピクセル値は、前のカラー レジスタを繰り返します。
ピクセルは、出力時に 1 カラー クロック (GTIA モード ピクセルの半分) だけ遅延します。このオフセットにより、興味深い効果が得られます。たとえば、このモードと別の GTIA モードの間でページをすばやく切り替えると、明らかに解像度が高く、色数が多いディスプレイが生成されます。
このモードは、 COLBK ではなく、境界線と背景 (プレイフィールド 0 の値のピクセル) にカラー レジスタ COLPM0 を使用するという点で独特です。
Player/Missile グラフィックスは適切に表示されますが、Player/Missile 0 は同じカラー レジスタCOLPM0を使用するため、背景ピクセルと区別できません。プレイヤー/ミサイルの色を使用するプレイフィールド ピクセルは、プレイヤー/ミサイル オブジェクトであるかのように優先度設定によって変更されるため、プレイヤー/ミサイルの表示に影響を与える可能性が(プレイヤー/ミサイル/プレイフィールドの優先順位については、後述の説明を参照してください)。
プレイヤー/ミサイルの色を使用するプレイフィールド ピクセルは、プレイヤー/ミサイル オブジェクトがオーバーレイされたときに衝突をトリガーしません。ただし、Playfield の色COLPF0からCOLPF3に重なる Player/Missile グラフィックは、予想される衝突を引き起こします。

16 色
このモードは COLBK レジスタを使用して、すべてのプレイフィールド ピクセルの輝度を指定します (値 1 hex /1 decから F hex /15 decまで)。輝度値の最下位ビットは観察されないため、標準/CTIA 8 輝度値のみが使用されます。利用可能です ( $0 , $2、 $4 ,
$6 ,
$8 , $A、 $C、
$E )。さらに、背景自体は、COLBK レジスタに設定された色コンポーネントのみを使用します。背景の輝度値は 0 に強制されます。輝度モードと同様に、間接化は無効になり、ピクセル値は直接色を表します。
背景の色成分もプレイフィールドのピクセルとマージされることに注意して背景に黒以外の色を使用すると、モードで表示される全体の色数が減少します。
プレイヤー/ミサイルのグラフィック (5 番目のプレイヤー オプションなし) はこのモードで適切に表示されますが、プレイフィールドとの衝突検出は無効になっています。プレイフィールドの優先順位は常に一番下にミサイルが 5 番目のプレーヤーとして機能するように切り替えられると、ミサイル オブジェクトがプレイフィールドと重なる場所で、ミサイル ピクセルはプレイフィールド ピクセルのカラー値を継承します。

マルチカラープレーヤー
PRIOR ビット 5、値 20 hex /32 decは、Multi-Color Player オブジェクトを有効にします。2 つの Player/Missile オブジェクトのピクセルが重なり合う場所に、3 番目の色が表示されます。これは、CTIA/GTIA が 2 つの色付きピクセルのビットごとの OR を実行して新しい色を出力する、プレーヤー/ミサイル オブジェクトのペア間の優先処理を排除することによって実装されます。
例: 色値 98 hex /152 dec (青) のプレーヤー ピクセルは、色値 46 hex /70 dec (赤) のプレーヤー ピクセルと重なり、DE hex /228 dec (ライト グリーン/イエロー) のピクセル カラーになります。
マルチカラー出力が可能なプレーヤー/ミサイルのペア:
プレーヤー 0 + プレーヤー 1
ミサイル 0 + ミサイル 1
プレイヤー 2 + プレイヤー 3
ミサイル 2 + ミサイル 3

5 番目のプレーヤー
PRIOR ビット 4、値 $10 hex /16 decは、ミサイルが 5 番目のプレーヤーになることを可能にします。ミサイルの色処理以外の機能的な変更はありません。通常、ミサイルは関連するプレーヤーの色を使用して表示されます。5 番目のプレーヤーが有効になっている場合、すべてのミサイルはプレイフィールド 3 ( COLPF3 ) の色で表示されます。水平位置、サイズ、垂直遅延、プレイヤー/ミサイルの衝突はすべて同じように動作し続けます。プレーヤー オブジェクトのピクセル交差に対する 5 番目のプレーヤーの優先度は COLPF3 ですが、5 番目のプレーヤーのピクセルはすべてのプレイフィールド カラーよりも優先されます。
カラー処理の変更により、GTIA の代替カラー モードでのミサイルの表示にもいくつかの例外が発生します。
GTIA 16 シェード モード: ミサイル ピクセルがプレイフィールドに重なっている場合、ピクセルはプレイフィールド ピクセルの輝度値を継承します。
GTIA 16 カラー モード: ミサイル ピクセルがプレイフィールドに重なっている場合、ピクセルはプレイフィールド ピクセルのカラー値を継承します。
5 番目のプレーヤーは、プライオリティ値 $8 (ビット 1000) の例外を導入します (以下のプライオリティの説明を参照してください)。

優先順位
PRIOR ビット 3 ~ 0 は、プレイヤー/ミサイル オブジェクトのピクセルとプレイフィールド ピクセルが交差するときにどのピクセル値を表示するかを決定する 4 つのプレイヤー/ミサイルおよびプレイフィールドの優先度値を提供します。4 つの値は、以下の優先度チャートにリストされている特定のオプションを提供します。「PM」は、5 番目のプレーヤーのない通常のプレーヤー/ミサイルの実装を意味します。5 番目のプレーヤー「P5」は、有効になっているときに優先順位が発生する場所に表示されます。
チャートは、デフォルト (CTIA) の色解釈モードを使用して、ANTIC Playfield Character および Map モードで正確です。GTIAカラー解釈モード、高解像度に基づくANTICモード、
1 ⁄ 2色のクロック ピクセルは異なる動作をします (後述)。
優先度ビット
0 0 0 1 = $1
0 0 1 0 = $2
0 1 0 0 = $4
1 0 0 0 = $8
0 0 0 0 = $0上 PM0 PM0 P5/PF0 P5/PF0
PM0PM1 PM1 PF1 PF1 PM1
PM2P5/PF0 PF2 PM0 P5/PF0 PM3
PF1PF3 PM1 PF1 P5/PF0 PF2
PM0PM2 PM2 PF1 PF3 PM1
PM3PM3 PF2 PM2 PM2 PF2
PF2PF3 PM3 PM3 PF3 PF3
下COLBK COLBK COLBK COLBK COLBK
複数のビットが設定されている場合、CTIA/GTIA が競合する場合、黒のピクセルが出力されます。黒は、単なる背景色 COLBK ではなく、実際の黒を意味することに注意して
5 番目のプレーヤーは COLPF3 の値で表示されますが、その優先順位はすべてのプレイフィールドの色よりも優先されます。これにより、プライオリティ値 $8 (ビット 1000) の例外が生成されます。このモードでは、プレイフィールド 0 と 1 はプレイヤーよりも優先度が高く、プレイヤーはプレイフィールド 2 と 3 よりも優先度が高くなります。プレイフィールド 0 または 1 のピクセルがプレイヤーのピクセルと交差する場合、表示される結果はプレイフィールドのピクセルです。ただし、5 番目のプレーヤーも同じ場所と交差する場合、その値はプレイフィールドの上に表示され、プレイフィールド 3 が最も優先度が高いように見えます。プレイフィールド 0 または 1 ピクセルがこの交差から削除されると、5 番目のプレーヤーのピクセルには上書きするプレイフィールド ピクセルがないため、プレーヤー ピクセルよりも遅れます。
優先度ビットがすべて 0 の場合、別の効果が発生します。マルチカラー プレーヤー機能と同様の方法で、プレーヤーとプレイフィールドのピクセルが論理的に OR されます。この状況では、プレーヤー 0 および 1 のピクセルは Playfield 0 および 1 のピクセルと混合でき、プレーヤー 2 および 3 のピクセルは Playfield 2 および 3 のピクセルと混合できます。さらに、マルチカラー プレーヤー オプションを使用すると、マージされたプレーヤーの色がプレイフィールドと混ざり合い、より多くの色が生成されます。すべてのカラー マージの可能性を考慮すると、CTIA/GTIA ハードウェアはスキャン ラインごとに 23 色を出力できます。背景色を最初の色として開始し、残りの 22 色と色の結合が可能です。色 COLPM0 COLPM1 COLPF0 COLPF1
色COLPM2 COLPM3 COLPF2 COLPF3 1X
12X2X 13X 3XX 14XX 4X
15X5XX 16XX 6XX 17XX 7XXX
18XXX8X 19X 9XX 20XX 10XX21XX 11XXX 22XXX
優先度ビットがすべて 0 の場合、ミサイルの色は上記の対応するプレイヤーと同じように機能します。5 番目のプレーヤーが有効になっている場合、ミサイル ピクセルは、上の表の COLPF3 で示されているのと同じ色のマージを引き起こします (色 19 から 22)。

優先モードと高解像度モード
高解像度を使用したキャラクターモードとマップモードでは優先結果が異なり、
1 ⁄ 2カラー クロック ピクセル—ANTIC モード 2、3、および F。これらの優先順位の処理の違いを利用して、従来「モノクロ」と考えられていたこれらのモードでカラー テキストまたはグラフィックを生成できます。
これらの ANTIC モードでは、COLPF2 はプレイフィールドの「背景」として出力され、COLBK はプレイフィールドの境界として出力されます。グラフィックまたはグリフのピクセルは、背景の色成分 (通常は COLPF2) と混合された COLPF1 の輝度成分のみを使用して出力されます。
プレイヤー/ミサイルと COLPF2 の優先関係は、以下の優先順位表に従って動作します。優先度の高いプレイヤー/ミサイル ピクセルは、「背景」色として COLPF2 を置き換えます。COLPF1 は常に最高の優先度を持ち、プレイヤーやミサイルによって隠されることはありません。グリフ/グラフィック ピクセルは、最も優先度の高い色 (プレイフィールド、プレーヤー、またはミサイル) の色コンポーネントと、COLPF1 の輝度コンポーネントを使用します。この動作は、プレイヤーとミサイルの優先度が競合して「背景」が真の黒になる場合にも一貫していることに注意して実際には、CTIA/GTIA が最終的に「背景」色に使用するカラー値は、COLPF1 前景グリフ/グラフィック ピクセルを「濃淡」に使用します。
優先度ビット
COLPF2 対 COLPM0 および COLPM1
COLPF2 対 COLPM2 および COLPM3
0 0 0 0 = $00
プレイヤー/ミサイル
プレーヤー/ミサイルを COLPF2 で OR したもの
0 0 0 1 = $01
プレイヤー/ミサイル
プレイヤー/ミサイル
0 0 1 0 = $02
プレイヤー/ミサイル COLPF2 0 0 1 1 = $03
プレイヤー/ミサイル
トゥルーブラック
0 1 0 0 = $04COLPF2 COLPF2
0 1 0 1 = $05 COLPF2 トゥルーブラック
0 1 1 0 = $06COLPF2 COLPF2
0 1 1 1 = $07 COLPF2 トゥルーブラック
1 0 0 0 = $08
プレイヤー/ミサイル
プレイヤー/ミサイル
1 0 0 1 = $09
プレイヤー/ミサイル
プレイヤー/ミサイル
1 0 1 0 = $0A
プレイヤー/ミサイル
トゥルーブラック
1 0 1 1 = 00 億ドル
プレイヤー/ミサイル
トゥルーブラック
1 1 0 0 = $0C COLPF2 トゥルーブラック
1 1 0 1 = $0D COLPF2 トゥルーブラック
1 1 1 0 = $0E COLPF2 トゥルーブラック
1 1 1 1 = $0F COLPF2 トゥルーブラック

VDELAY $D01C 書き込み
垂直遅延 P/M グラフィックス
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0
プレーヤー 3
プレーヤー 2
プレーヤー 1
プレーヤー 0
ミサイル3
ミサイル2
ミサイル1
ミサイル 0
このレジスタは、ANTIC のDMACTLレジスタで Double Line Player/Missile 解像度が有効になっている場合に、シングル スキャン ラインの移動を提供するために使用されます。これは、ANTIC DMA の更新を偶数スキャン ラインの GRAF* レジスタにマスクすることで機能し、グラフィックス パターンを 1 スキャン ライン下にシフトさせます。
シングル ライン解像度では各スキャン ラインで ANTIC DMA の更新が必要であり、VDELAY は偶数スキャン ラインでの更新をマスクするため、このビットはシングル ライン プレーヤー/ミサイルの解像度をダブル ラインに引き下げます。

GRACTL $D01D 書き込み
グラフィックコントロール
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0? ? ? ? ?
トリガーラッチ
プレーヤーを有効にする
ミサイルを有効にする
GRACTL は CTIA/GTIA の ANTIC からの Player/Missile DMA データの受信を制御し、ジョイスティック トリガー入力のモードを切り替えます。
Player/Missile DMA データを受信するには、データを受信するように CTIA/GTIA を構成する必要がこれは、 ANTIC にプレイヤー データとミサイル データを送信するように指示する、ANTIC のDMACTLレジスタのビットのペアと一致する GRACTL のビットのペアで行われます。GRACTL のビット 0 は DMACTL のビット 2 に対応し、ミサイル データの転送を可能にします。GRACTL のビット 1 は DMACTL のビット 3 に対応し、Player データの転送を可能にします。GTIA が DMA 経由で ANTIC からプレーヤー/ミサイル データを受信するには、これらのビットを設定する必要がプレーヤー/ミサイル グラフィックスが CPU によって直接操作されている場合、これらのビットはオフにする必要が
ジョイスティック トリガー レジスタは、押された/押されていない状態をリアルタイムで報告します。プログラムの入力ポーリングがジョイスティック ボタンの瞬間的な押下をキャッチするのに十分な頻度ではない場合、トリガーを閉じた状態または押した状態でロックし、ボタンを離した後もその状態を維持するように設定できます。GRACTL ビット 2 を設定すると、すべてのトリガーのラッチが有効になります。ビットをクリアすると、トリガはラッチされていないリアルタイム動作に戻ります。

HITCLR $D01E 書き込み
衝突をクリア
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0? ? ? ? ?? ? ?
このレジスタに書き込みを行うと、プレーヤー/ミサイルの衝突検出ビットがすべてクリアされます。
その他の CTIA/GTIA 機能編集

ジョイスティックトリガー

TRIG0 $D010 読み取り
シャドウ:STRIG0 $0284
ジョイスティック 0 トリガー

TRIG1 $D011 読み取り
シャドウ: STRIG1 $0285
ジョイスティック 1 トリガー。

TRIG2 $D012 読み取り
シャドウ:STRIG2 $0286
ジョイスティック 2 トリガー。

TRIG3 $D013 読み取り
シャドウ:STRIG3 $0287
ジョイスティック 3 トリガー
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
引き金0 0 0 0 0 0 0 ? ビット 7 ~ 1 は常に 0 です。ビット 0 は、ジョイスティック トリガーの状態を報告します。値 1 は、トリガーが押されていないことを示します。値 0 は、トリガーが押されていることを示します。
トリガーは、レポート ボタンの押下をリアルタイムで登録します。ボタンを離すと、ボタンを押した状態が即座にクリアされます。
トリガーは、押された状態でラッチする、つまりロックするように構成され、特に解除されるまでその状態を維持します。GRACTLビット 2 は、すべてのトリガーのラッチ動作を有効にします。GRACTL ビット 2 をクリアすると、すべてのトリガーがリアルタイム動作に戻ります。

PAL $D014 読む
PAL フラグ。
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – –
ビデオ 3
ビデオ 2
ビデオ 1
ビデオ 0
このレジスタは、システムの表示標準を報告します。ビット 3 から 0 が 1 (値 $f hex /15 dec ) に設定されている場合、システムは NTSC で動作しています。ビットが 0 の場合、システムは PAL モードで動作しています。

CONSPK $D01F 書き込み
コンソールスピーカー
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 00 0 0 0
スピーカー- – –
Bit3 は Atari 800/400 の内部スピーカーを制御します。後のモデルでは、コンソール スピーカーが取り外され、サウンドは通常の POKEY オーディオ信号と混合されて、モニター ポートと RF アダプターに出力されます。Atari OS はコンソール スピーカーを使用して、キーボードのクリック音とベル/ブザー音を出力します。
オペレーティング システムは、垂直ブランク ルーチン中にスピーカー ビットを設定します。このビットに繰り返し 0 を書き込むと、垂直ブランクが値をリセットするときに 60 Hz のブーンという音が発生します。オーディオ トーンを維持するために CPU 時間を必要とするチャネルではありますが、6502 コードを使用して効果的に 5 番目のオーディオ チャネルを追加することで、有用なトーンを生成できます。

CONSOL $D01F 読み取り
コンソールキー
ビット 7
ビット 6
ビット 5
ビット 4
ビット 3
ビット 2
ビット 1
ビット 0- – – – –
オプション
選択する
始める
特別なコンソール キー、Start、Select、および Option のそれぞれの状態を報告するためにビットが割り当てられます。ビット値 0 はキーが押されたことを示し、1 はキーが押されていないことを示します。キー/ビット値:
開始キー = ビット値 $1
キーを選択 = ビット値 $2
オプションキー = ビット値 $4

プレイヤー/ミサイルグラフィック(スプライト)の操作
ハードウェアの「スプライト」システムは、CTIA/GTIA によって処理されます。スプライト システムの ATARI の公式名は「プレイヤー/ミサイル グラフィックス」です。シューティングゲーム。
0Player は基本的に、幅 8 ピクセル、高さ 256 TV ラインのグリフであり、背景 (透明) (グリフ内) と前景 ( )の 2 つの色があります1。Missile オブジェクトも似ていますが、幅は 2 ピクセルしかありません。CTIA/GTIA は、優先順位に従って、プレイヤー/ミサイル オブジェクトのピクセルをプレイフィールド ピクセルと結合します。透明 ( 0) のプレーヤー ピクセルはプレイフィールドに影響を与えず、プレイフィールドまたは背景ピクセルを変更せずに表示します。すべてのプレイヤー/ミサイル オブジェクトの通常のピクセル幅は、1 色クロックです。レジスタ値は、プレーヤーまたはミサイル ピクセルの幅を 1、2、または 4 カラー クロック幅に設定できます。
CTIA/GTIA による Player/Missile の実装は、 TIAのものと似ています。Player は、指定された水平位置にある 8 ビット値またはパターンであり、スキャン ラインごとに、またはパターンがレジスタで変更されるまで自動的に繰り返されます。ミサイルは 2 ビット幅で 1 つのパターン レジスタを共有するため、4 つの 2 ビット幅の値が 8 ビット幅のパターン レジスタを占有しますが、各ミサイルには独立した水平位置とサイズがプレイヤー/ミサイル オブジェクトは、画面の境界線を含むディスプレイの高さを拡張します。つまり、CTIA/GTIA による Player/Missile グラフィックスのデフォルトの実装は、画面のストライプです。この方法は一見制限があるように見えますが、プレーヤー/ミサイルのグラフィックスをディスプレイ上の別の色の垂直境界線またはセパレーターとして使用することを容易にします。また、プレーヤー/ミサイルのピクセルをプレイフィールドのピクセルの後ろに配置するように優先値を設定すると、ディスプレイに追加の色を追加するために使用できます。最大幅に設定され、並べて配置されたすべてのプレーヤーとミサイルは、通常の幅のプレイフィールド全体をカバーできます。
CTIA/GTIA は、プレイヤー/ミサイルの色を制御するいくつかのオプションをサポートしています。PRIOR/GPRIORレジスタ値は、4 つのミサイルを 2 つのカラー表示オプションの間で切り替えることができます。各ミサイル (0 から 3) は、関連付けられたプレーヤー オブジェクト (0 から 3) の色を表すか、すべてのミサイルは、レジスタCOLPF3/COLOR3の色を表示します。ミサイルが同様の色の場合、5 番目のプレーヤーとして扱うことができますが、画面上で正しく配置するには、4 つのミサイル水平位置レジスタすべてに値を格納する必要がPRIOR/GPRIORは、2 つのプレーヤーのオーバーラップ ピクセルが 3 番目の色を生成する機能も制御します。これにより、使用可能なオブジェクトの数が減りますが、マルチカラーのプレーヤー オブジェクトが可能になります。最後に、PRIOR/GPRIORを使用して、プレーヤー/ミサイル ピクセルとプレイフィールド ピクセルのフォアグラウンド/バックグラウンド レイヤー (「優先度」と呼ばれる) を変更し、表示される色に予想どおり影響する優先度の競合を作成できます。
上下に変化する画像/パターンを持つスプライトの従来のアイデアも、Player/Missile グラフィック システムに組み込まれています。ANTIC チップには、DMA を実行して、表示が生成されるときに新しいピクセル パターンを CTIA/GTIA に自動的に供給する機能が含まれています。これは各スキャン ラインまたは他のすべてのスキャン ラインに対して行うことができ、プレーヤー/ミサイル ピクセルの高さは 1 つまたは 2 つのスキャン ラインになります。このように、Player/Missile オブジェクトは、ディスプレイの高さによって、8 ビット/ピクセル幅のフォントで非常に背の高い文字と見なすことができます。
プレーヤー/ミサイル オブジェクトを水平方向に移動するのは、CTIA/GTIA のレジスタを変更するのと同じくらい簡単です (Atari BASIC では、単一の POKE ステートメントでプレーヤーまたはミサイルを水平方向に移動します)。オブジェクトを垂直方向に移動するには、グリフの定義を Player または Missile ビットマップ内の新しい位置にブロック移動するか、Player/Missile ビットマップ全体 (128 または 256 バイト) を回転させます。6502 には 8080 に見られるブロック移動命令がないにもかかわらず、ビットマップ全体の最悪の場合の回転は、6502 機械語では依然として非常に高速です。 Atari BASIC には高速メモリ移動コマンドがなく、BASIC PEEK() と POKE(s) を使用したメモリ移動は非常に遅いです。Player/Missile グラフィックスを使用する Atari BASIC プログラムには、高速メモリ移動を実行するための他のオプションが1 つの方法は、USR() 関数を介して短い機械語ルーチンを呼び出し、メモリ移動を実行することです。もう 1 つのオプションは、大きな文字列を Player/Missile メモリ マップとして利用し、文字列コピー コマンドを実行して、機械語の速度でメモリを移動することです。
Player/Missile グラフィックスを Atari ハードウェアの他のグラフィックス機能と一緒に慎重に使用すると、グラフィックス プログラミング、特にゲームが大幅に簡素化されます。

GTIA の機能強化
GTIA チップはCTIA と下位互換性があり、14 の「通常の」ANTIC Playfield グラフィック モードに 3 つの色解釈を追加します。CTIA チップの通常の色解釈は、特別なプログラミング技術が使用されない限り、マップ モードでは最大 4 色、テキスト モードでは最大 5 色 (さらにプレーヤー/ミサイル グラフィックスでは 4 色) にスキャンラインごとに制限されます。GTIA の 3 つの新しい色の解釈により、理論的に合計 56 のグラフィック モードが提供されます (14 の ANTIC モードに 4 つの可能な色の解釈を掛けたもの)。ただし、高解像度に基づくグラフィック モードのみ、
1 ⁄ 2カラー クロック ピクセル (つまり、Antic テキスト モード 2、3、およびグラフィック モード F) は、これら 3 つの新しい色解釈のカラー パレットを完全に表現できます。3 つの追加のカラー解釈は、2 つのカラー クロック (4 ビット) の情報を使用して、16 のカラー値のいずれかでピクセルを生成します。これにより、モード F の表示が、1 ピクセルあたり 2 色、水平方向に 320 ピクセル、モード ラインごとに 1 つの走査線から、16 色、水平方向に 80 ピクセルに変わります。追加の色の解釈により、次のことが可能になります。
GTIA カラー解釈モード
$4 — Atari パレットの 16 の可能な色相からの単一の色相 (背景色、COLBK によって設定) の 16 の色合い。これは、Graphics 9 として Atari BASIC でもアクセスできます。
GTIA カラー解釈モード
$8 — このモードでは、128 色の Atari パレット全体から任意の色相と輝度で、水平線ごとに 9 色の間接色を使用できます。これは、Playfield ピクセルのすべての Player/Missile および Playfield カラー レジスタを使用して実行されます。このモードでは、背景色はカラー レジスタ COLPM0 によって提供され、COLBAK は Playfield ピクセル値 $8 に使用されます。このモードは Atari BASIC で Graphics 10 としてアクセスできます。
GTIA カラー解釈モード
$C — 単一の色合い/輝度値と背景の 15 色相。背景の値 COLBK は、他のすべてのピクセルの輝度レベルを設定します (ピクセル値 $1~ $F )。輝度値の最下位ビットは観察されないため、標準/CTIA 8 輝度値のみが使用可能です ( $0、 $2、 $4 ,
$6 ,
$8 ,A、 C、
$E )。さらに、背景自体は、COLBK レジスタに設定された色コンポーネントのみを使用します。背景の輝度値は 0 に強制されます。このモードは Atari BASIC で Graphics 11 としてアクセスできます。
これらのモードの中で、Atari BASIC Graphics 9 は特に注目に値します。これにより、Atari はグレースケールのデジタル化された写真を表示できます。これは、解像度が低いにもかかわらず、当時は非常に印象的でした。さらに、他のグラフィック モードで使用できる 8 つの色合いではなく、1 つの色相の 16 の色合いを許可することで、Atari が表示できるさまざまな色の量が 128 から 256 に増加します。残念ながら、この機能はこのモードでのみ使用するように制限されています。解像度が低いため、広く使用されていませんでした。
Antic 2 および 3 テキスト モードは、GTIA の代替色解釈を使用する場合、モード F グラフィックスと同じ色範囲を表示できます。ただし、ピクセル削減も適用され、幅 8 ピクセル、2 色のテキストが幅 2 ピクセル、16 色の​​ブロックに変換されるため、これらのモードは実際のテキストには適さないため、これらのグラフィック モードはデモ以外では一般的ではありません。テキスト モードで GTIA カラー解釈機能を効果的に使用するには、文字をピクセルとして扱う、慎重に構築された文字セットが必要です。この方法を使用すると、通常は 8K の RAM を占有する見かけ上の GTIA の「高解像度」グラフィックス モードを表示して、代わりに約 2K (文字セットに 1K、画面 RAM と表示リストに 1K) しか使用しません。
GTIA は、グラフィックスが「カラー クロックの半分」だけずれていた CTIA のエラーも修正しました。この修正の副作用は、高解像度のモノクロ モードでカラー アーティファクトに依存するプログラムが異なる色のペアを表示することでした。
Atari の所有者は、 BASICコマンドを実行することによって、自分のマシンに CTIA または GTIA が装備されているかどうかを判断できPOKE 623,64ます。実行後に画面が黒くなる場合、マシンには新しい GTIA チップが搭載されています。青色のままの場合、マシンには代わりに CTIA チップが搭載されています。

バグ
東ヨーロッパ市場向けに製造された最後の Atari XE コンピューターは、中国で製造されました。すべてではないにしても、多くがバグのあるPAL GTIA チップを持っています。Graphics 9 以降の輝度値に問題があり、ストライプとして表示されます。チップを交換すると問題が解決します。また、故障した GTIA チップを外部回路で修正する試みも行われています。

こちらもご覧ください
ビデオ ハードウェア別のホーム コンピューターのリスト

参考文献
^ Atari Home Computer Field Service Manual – 400/800 (PDF) . Atari, Inc. pp. 1–10 . 2010 年9 月10 日閲覧。
^ノイバウアー、ダグ (2009-06-20)。「アタリ時代、ダグ・ノイバウアー著。スター・レイダーズ、ソラリス、ポーキー」 . DougNeubauer.com .
^ Sherer、Robin Alan (1988 年 6月)。「GTIA ジョイスティック ペインター – 強力な Atari アニメーション ツール」 . アンティック。7 (2): 37. ISSN  0113-1141 。2011 年1 月 26 日閲覧。
^ 米国特許 4296476、Mayer、Steven T.; マイナー、ジェイ G .; ノイバウアー、ダグラス G.; Decuir、Joseph C.、「プログラマブル グラフィックス ジェネレータを備えたデータ処理システム」、1 981-10-20 発行、Atari, Inc. に譲渡 
^ パチェット、クレイグ。Sherer、ロビン (1984)。「スペシャルチップとROM」 . Atari のマスター メモリ マップ。バージニア州レストン:レストン出版会社。ISBN 0-8359-4242-2. 2011 年1 月 26 日閲覧。
^ メイス、スコット (1982-03-15)。「Atari は静かに 16 色の​​グラフィックス チップに切り替えます」 . インフォワールド。カリフォルニア州パロアルト: ポピュラー コンピューティング。4 (10): 3–4. ISSN  0199-6649 . 2011 年2 月1 日閲覧。
^ チェンバレン、クレイグ (1982 年 7月)。「Atari Video Graphics と新しい GTIA」 . 計算してください!(26): 124. ISSN  0194-357X . 2011 年1 月 24 日閲覧。
^ Joe Decuir、「3 世代のゲーム機アーキテクチャ」、CGEXPO99
^ スモール、デビッド。スモール、サンディ。空白、ジョージ (1983 年 5月)。「設計思想と GTIA のデモ」 . クリエイティブなアタリ。クリエイティブ コンピューティング プレス。ISBN 978-0-916688-34-9. 2011 年1 月 26 日閲覧。
^スイス、スティーブ (1983 年 10月)。「アタリクリニック」 . アンティック。2 (7): 103. ISSN  0113-1141 . 2011 年2 月1 日閲覧。
^ Michael Current、「SALLY、ANTIC、CTIA/GTIA、POKEY、FREDDIE チップとは?」、Atari 8 ビット コンピュータ: よく寄せられる質問
^ ボリス、ダン。「アタリチップス」 . ダン B のホームページ。2011 年2 月1 日閲覧。
^ヴェンデル、カート。「アタリ800XLCR」 . AtariMuseum.com . 2011-09-13にオリジナルからアーカイブ。2011 年2 月1 日閲覧。
^ヴェンデル、カート。「KERI パフォーマンステスター」 . AtariMuseum.com . 2011-09-13にオリジナルからアーカイブ。2011 年2 月1 日閲覧。
^スモール、デビッド。スモール、サンディ。ブランク、ジョージ編。(1983)。「魔法使いとお姫様とアタリ」。クリエイティブなアタリ。クリエイティブ コンピューティング プレス。ISBN 0916688348.

外部リンク
Atari Program Exchange発行のDe Re Atari
Atari のマッピング、 Ian Chadwick による改訂版
PDFにスキャンされたGTIAチップのデータシート。
jindroush サイト (アーカイブ) GTIA 情報
CTIAダイショット
GTIAダイショット”