CTIA 및 GTIA

CTIA and GTIA
오키다타에서 제조한 NTSC GTIA 칩

컬러 텔레비전 인터페이스 어댑터[1](CTIA)와 그 후속 GTIA(Graphic Television Interface Adaptor[1])는 아타리 8비트 컴퓨터 제품군아타리 5200 홈 비디오 게임 콘솔에서 사용되는 맞춤형 칩이다.이러한 시스템에서는 CTIA 또는 GTIA 칩이 ANTIC와 함께 작동하여 비디오 디스플레이를 제작한다.ANTIC는 플레이필드 그래픽(텍스트 및 비트맵)을 생성하며, CTIA/GTIA는 플레이필드 색상을 제공하고 플레이어/미사일 그래픽(스프라이트)으로 알려진 오버레이 객체를 추가한다.제이 마이너의 지시로 CTIA/GTIA 칩은 조지 맥레오드가 스티브 스미스의 기술 지원을 받아 설계했다.[2][3][4]

컬러 텔레비전 인터페이스 어댑터그래픽 텔레비전 인터페이스 어댑터는 아타리 현장 서비스 설명서에 명시된 칩 이름이다.[1]다양한 출판물들은 칩의 이름을 다르게 지었고, 때로는 대체 철자 어댑터[5][6] 그래픽을 사용하거나,[3] 또는 "CTIA"의 "C"는 콜린/캔디[5] 의미하고 "GTIA"의 "G"는 조지를 위한 것이라고 주장했다.[3][5][6][7]

역사

2600과 TIA

아타리는 최초의 디스플레이 드라이버 칩인 텔레비전 인터페이스 어댑터(Television Interface Adaptor)를 만들었지만, 일반적으로 아타리 2600 콘솔의 일부로 TIA라고 부른다.[8]TIA 디스플레이는 논리적으로 움직이는 물체를 나타내는 "플레이어"와 "실수"와 동작이 발생한 정적 배경 이미지를 나타내는 "플레이 필드"라는 두 가지 기본 물체로 구성되었다.칩은 메모리 레지스터의 데이터를 이용해 디지털-아날로그 컨버터RF 변조기를 통해 실시간으로 변환해 텔레비전 디스플레이를 제작했다.

플레이필드를 그리는 일반적인 방법은 프레임 버퍼에 고정된 비트맵을 사용하는 것인데, 프레임 버퍼의 각 메모리 위치는 화면의 하나 이상의 위치를 나타낸다.보통 160x192 픽셀의 해상도를 사용한 2600의 경우, 프레임 버퍼는 최소 160x192/8 = 3840바이트의 메모리를 가져야 한다.RAM이 매우 비싼 시대에 건설된 TIA는 이 솔루션을 감당할 수 없었다.

대신 화면 오른쪽 절반에 복사하거나 미러링할 수 있는 20비트 메모리 레지스터 1대를 활용해 사실상 40비트 디스플레이를 만드는 디스플레이 시스템을 구현했다.각각의 위치는 128가지 가능한 색상의 팔레트에서 4가지 색상 중 하나로 표시될 수 있다.TIA는 또한 "플레이어"와 "미사일"이라는 몇 개의 다른 디스플레이 객체를 포함했다.이들은 "플레이어"로 알려진 두 개의 8비트 와이드 객체, "볼"로 알려진 한 개의 1비트 객체, 그리고 두 개의 1비트 "미사일"로 구성되었다.이러한 모든 물체는 다른 레지스터의 설정을 통해 임의의 수평 위치로 이동할 수 있다.

TIA 시스템의 핵심, 그리고 2600의 저렴한 가격은 시스템이 디스플레이의 단일 선을 그리기에 충분한 메모리만을 구현했다는 점이었는데, 이 모든 것이 레지스터에 고정되어 있었다.전체 화면을 데이터로 가득 채우기 위해 사용자 코드는 텔레비전 디스플레이가 화면 오른쪽에 도달할 때까지 기다렸다가 플레이필드 레지스터와 플레이어/미사일에 대한 레지스터를 업데이트하여 디스플레이의 다음 라인을 올바르게 반영한다.이 계획은 "빔을 이동"하는 것으로 알려진 기술인 ROM 카트리지의 프로그램 코드로부터 스크린을 일직선으로 그렸다.

CTIA

Atari는 처음에 2600이 1976년에 디자인되었을 때 시장 수명이 3년으로 짧을 것이라고 추정했는데, 이것은 1979년까지 회사가 새로운 디자인을 필요로 한다는 것을 의미했다.[8]처음에 이 새로운 디자인은 단순히 2600개의 게임기처럼 업데이트되었고, 단지 업데이트 된 비슷한 기본 디자인을 기반으로 만들어졌다.CTIA가 될 것에 대한 작업은 1977년에 시작되었으며, 해상도가 두 배, 색상 수가 두 배인 시스템을 제공하는 것을 목표로 했다.게다가, 플레이필드의 색상 수를 변경함으로써 수평으로 320픽셀까지 훨씬 더 높은 해상도를 지원할 수 있다.선수와 미사일도 8비트 플레이어 4개, 2비트 미사일 4개 등 업데이트됐지만 4개의 미사일을 5번째 플레이어로 결합할 수 있는 추가 모드도 허용했다.

디자인이 시작된 직후인 1977년 후반부터 가정용 컴퓨터 혁명이 본격적으로 시작됐다.이에 아타리는 새로운 기계의 두 가지 버전, 즉 게임 콘솔로서의 로우엔드 모델과 가정용 컴퓨터로서의 하이엔드 버전을 출시하기로 결정했다.[8]어느 역할이든 좀 더 복잡한 플레이 필드, 특히 컴퓨터 역할의 캐릭터 그래픽에 대한 지원이 필요할 것이다.이 시점에서 CTIA의 디자인은 상당히 진보되어 있었기 때문에 재설계 대신 빔 경주 과정을 효과적으로 자동화할 수 있는 세컨드 칩을 추가함으로써 영리한 솔루션을 제공하였다.사용자가 인터럽트 타이밍에 기반하여 CTIA의 레지스터를 업데이트하는 프로그래밍 대신, 새로운 ANTIC는 프레임 버퍼로부터 데이터를 읽고 그것을 즉시 CTIA에 공급하면서 이 작업을 처리할 것이다.

이러한 변화로 인해, 새로운 칩은 TIA를 통해 상당히 향상된 그래픽 모드 수와 선택을 제공한다.해상도가 20~40비트인 단일 플레이필드 모드 대신 CTIA/ANTIC 쌍은 다양한 해상도와 색의 깊이를 가진 6개의 텍스트 모드와 8개의 그래픽 모드를 표시할 수 있어 프로그래머가 디스플레이의 해상도, 색상, 메모리 사용량 사이에서 균형을 선택할 수 있다.

CTIA 대 GTIA

GTIA 칩에 사용되는 256 색상 팔레트(NTSC에만 해당), 16 색조 값.
이것은 아타리 TIA와 CTIA가 팔레트로 사용한 것으로(NTSC에만 해당) 16색이며 휘도 값은 8색에 불과해 128개의 고유 색상을 이루고 있다.

CTIA 칩의 원래 설계에는 일반 그래픽 모드의 세 가지 색상 해석도 추가되었다.이 기능은 픽셀당 1비트, 1/2 컬러 클럭 와이드 픽셀당 4비트, 최대 16색, 2컬러 클럭 와이드 픽셀을 제공하는 앤틱의 고해상도 그래픽 모드를 대체 표현해 준다.이 기능은 1979년 11월 컴퓨터의 데뷔 전에 준비되었지만, 개발 주기에서 너무 많이 지연되어 아타리는 이미 그래픽 모드가 누락된 약 10만 개의 CTIA 칩을 일괄 주문했었다.이미 생산된 칩을 버리고 싶지 않아 미국 시장에서 아타리 400, 800 모델의 초기 출시 때 쓰기로 했다.3가지 컬러 모드가 부족한 CTIA 장착 컴퓨터는 1981년 10~11월까지 출하됐다.[5][6]이때부터 모든 신형 아타리 유닛에는 새로운 색상 해석 모드를 지원하는 GTIA라고 불리는 새로운 칩이 장착되었다.[6][9]

원래의 Atari 800/400 운영 체제는 시작부터 GTIA 대체 색상 해석 모드를 지원하여,[9] CTIA가 준비되면 GTIA로 쉽게 교체할 수 있었다.아타리 공인 서비스 센터는 컴퓨터 보증 기간이 만료되면 무료로 CTIA가 장착된 컴퓨터에 GTIA 칩을 설치할 수 있으며, 그렇지 않으면 교체 비용이 62.52달러가 될 것이다.[6][7]

GTIA는 이후 모든 아타리 XL 및 XE 컴퓨터와 아타리 5200 콘솔에도 탑재되었다.

특징들

아래 목록은 빈번한 레지스터 변경을 추진하는 CPU 제공 인터럽트 또는 디스플레이 커널에 의해 달성된 결과를 포함하지 않고 하드웨어 자체의 의도된 기능을 의미하는 CTIA/GTIA의 고유한 하드웨어 기능을 설명한다.

CTIA/GTIA는 다음과 같은 특징을 가진 텔레비전 인터페이스 장치다.

  • ANTIC의 Playfield 그래픽 데이터 스트림을 해석하여 디스플레이에 색상을 적용한다.
  • 4개의 플레이어와 4개의 미사일 오버레이 객체(일명 스프라이트)를 ANTIC의 플레이필드 그래픽과 병합한다.플레이어/미사일 특징:
    • Player/Missile 픽셀 위치는 Playfield와 독립적이다.
      • 플레이어/미사일 객체는 표시된 플레이필드 너머의 수직 및 수평 오버스캔 영역에서 정상적으로 기능한다.
      • 플레이어/미사일 객체는 ANTIC Playfield 없이 정상적으로 작동한다.
    • 8비트 와이드 플레이어 객체 및 2비트 와이드 미사일 객체, 각 비트가 하나의 표시된 픽셀을 나타낸다.
    • 가변 픽셀 폭(1, 2 또는 4 컬러 클럭 폭)
    • 각 플레이어/미사일 물체는 수직으로 전체 화면의 높이를 나타낸다.
    • ANTIC DMA에서 데이터를 제공할 때의 가변 픽셀 높이(데이터당 단일 또는 이중 스캔 라인)
    • 데이터당 이중 스캔 라인에서 작업할 때 각 P/M 객체를 수직으로 한 스캔 라인씩 독립적으로 이동할 수 있는 기능.
    • 각 플레이어와 관련 미사일에는 플레이필드 색상과 별개의 전용 색상 레지스터가 있다.
    • 그래픽 계층 순서를 위한 다중 우선 순위 체계(P/M 그래픽 대 재생 필드)
    • 플레이어와 플레이필드 사이의 컬러 병합으로 추가 컬러가 생성
    • 여러 색상의 플레이어를 생성하는 플레이어 쌍 간의 색상 병합.
    • 미사일은 별도의 컬러 레지스터를 사용하는 제5의 플레이어로 함께 묶을 수 있다.
    • 플레이어, 미사일 및 플레이필드 그래픽 간의 충돌 감지.
  • 일반(CTIA) 색상 해석 모드에는 고정된 색상이 없다.모든 색상은 9개의 컬러 레지스터를 통해 간접적으로 생성된다. (플레이어/미사일 그래픽의 경우 4개, 플레이필드용 4개, 플레이필드와 5번째 플레이어 기능 간 공유 1개)
    • 일반 색상 해석 모드에서는 128가지 색상 팔레트(각각 휘도 값이 8개인 16가지 색상)에서 색상 선택 가능
    • GTIA 색상 해석 모드는 색상당 16루미를 생성하여 256색 팔레트를 제공할 수 있다.
  • 칩의 GTIA 버전은 플레이필드 그래픽을 위해 세 가지 대체 색상 해석 모드를 추가한다.
    • 아타리 팔레트에서 가능한 16가지 색조의 단일 색조 16가지 색조.이것은 Atari BASIC에서 Graphics 9로 액세스할 수 있다.
    • 단일 음영/환율 값에 배경까지 15가지 색조를 더하기.이것은 Atari BASIC에서 Graphics 11로 접근할 수 있다.
    • 플레이필드 색상에 대한 모든 플레이어/미사일 및 플레이필드 색상 레지스터를 사용하여 수행된 팔레트의 색조 및 휘도 9가지 색상.이것은 Atari BASIC에서 Graphics 10으로 접근할 수 있다.
  • 조이스틱 트리거의 상태 읽기(Atari 5200 컨트롤러에 대한 하단 버튼만 해당)
  • 시스템에 따라 다른 방식으로 사용되는 4개의 입출력 핀이 포함되어 있다.
    • 아타리 8비트 시스템에서는 3개의 핀을 사용하여 콘솔 키의 상태를 읽는다(시작/선택/옵션).
    • 네 번째 핀은 키보드 클릭을 발생시키기 위해 아타리 400/800에 내장된 스피커를 제어한다.이후 모델에서는 스피커가 없지만, 키 클릭은 여전히 GTIA에 의해 생성되며 일반 오디오 출력과 혼합된다.
    • 아타리 5200에서 핀은 컨트롤러 키보드를 읽는 프로세스의 일부로 사용된다.

버전

부품번호로

  • C012295 — NTSC CTIA[10][11]
  • C014805 — NTSC GTIA[12]
  • C014889 — PAL GTIA[12]
  • C020120 — 프랑스 SECAM GTIA(FGTIA)[12]

Atari, Inc.는 Atari 컴퓨터와 5200 콘솔의 생산 비용을 절감하기 위해 ANTIC와 GTIA 칩의 기능을 하나의 통합 회로에 결합하는 것을 의도했다.그러한 두 개의 프로토타입 회로가 개발되고 있었지만, 그 중 어느 것도 생산에 들어가지 않았다.

핀아웃

아타리 GTIA(C014805) 핀아웃
핀 이름 핀 번호 설명
A0 - A4 2, 1, 40, 39, 38 주소 입력
AN0 - AN2 18, 19, 20 ANTIC 인터페이스 입력
COL 21 컬러 주파수 출력
CS 32 칩 선택 입력
CSYNC 25 복합 동기화 출력
D0 - D7 7, 6, 5, 4, 37, 36, 35, 34 데이터 버스 I/O
DEL 17 색상 지연 라인 입력
포에0 29 고속 위상 클럭 출력
STOP 26 입력 중지
L0 - L3 31, 22, 23, 24 휘도 출력
해당불/C 16 연결되지 않음(이후 버전의 PAL)
OSC 28 오실레이터 입력
R/W 33 읽기/쓰기 입력
S0 - S3 12, 13, 14, 15 데이터 I/O 전환
T0 - T3 8, 9, 10, 11 내부 풀업이 있는 트리거 입력
Vcc 27 전원 +5V
브이ss 3 그라운드
Ø2 30 컴퓨터 2단계 입력

레지스터

아타리 8비트 컴퓨터는 CTIA/GTIA를 $D0xxhex 페이지에 매핑하고, 아타리 5200 콘솔은 $C0xxhex 페이지에 매핑한다.

CTIA/GTIA는 플레이어/미사일 그래픽, 플레이필드 색상, 조이스틱 트리거 및 콘솔 키를 제어하는 54개의 읽기/쓰기 레지스터를 제공한다.많은 CTIA/GTIA 레지스터 주소에는 읽기 대 쓰기 레지스터로서 다른 기능을 수행하는 이중 목적이 있다.따라서 어떤 코드도 이전에 작성된 값을 검색할 것으로 예상되는 하드웨어 레지스터를 읽으면 안 된다.

이 문제는 일반 RAM에서 실행된 운영체제 섀도 레지스터가 레지스터에 마지막으로 기록한 값을 레지스터에 저장하는 장소로 많은 쓰기 레지스터에서 해결된다.운영 체제 섀도 레지스터는 수직 공백 중에 RAM에서 하드웨어 레지스터로 복사된다.따라서 해당 섀도 레지스터가 있는 하드웨어 레지스터에 대한 쓰기는 다음 수직 공백 동안 섀도 레지스터의 값으로 덮어쓰게 된다.

일부 쓰기 레지스터에는 해당하는 섀도 레지스터가 없다.그것들은 세로 공백 동안 덮어쓰지 않고 애플리케이션에 의해 안전하게 쓰일 수 있다.신청자가 등록부의 마지막 상태를 알아야 할 경우, 자신이 작성한 내용을 기억하는 것은 신청서의 책임이다.

또한 일부 읽기 레지스터에는 운영 체제 섀도 레지스터가 존재하며, 표시 주기의 알 수 없는 단계에서 하드웨어에서 직접 값을 판독하면 일관되지 않은 결과가 반환될 수 있다.

이름 설명 읽기/쓰기 헥스 애드르 데크 애드르 섀도 이름 섀도 16진수 추가자 섀도우 데크 애드러
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 Player 0과 Playfield 충돌 읽다 $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
SIZEP0 플레이어 0의 크기 쓰다 $D008 53256
M0PL 미사일 0과 플레이어 충돌 읽다 $D008 53256
SIZEP1 플레이어 1의 크기 쓰다 $D009 53257
M1PL 미사일 1과 플레이어의 충돌 읽다 $D009 53257
SIZEP2 플레이어 2의 크기 쓰다 $D00A 53258
M2PL 미사일 2와 플레이어 충돌 읽다 $D00A 53258
SIZEP3 플레이어 3의 크기 쓰다 $D00B 53259
M3PL 미사일 3과 플레이어의 충돌 읽다 $D00B 53259
시젬 모든 미사일의 크기 쓰다 $D00C 53260
P0PL 플레이어 0과 플레이어 충돌 읽다 $D00C 53260
GRAFP0 플레이어 0의 그래픽 패턴 쓰다 $D00D 53261
P1PL 플레이어 1과 플레이어 간의 충돌 읽다 $D00D 53261
GRAFP1 플레이어 1의 그래픽 패턴 쓰다 $D00E 53262
P2PL 플레이어 2와 플레이어 충돌 읽다 $D00E 53262
GRAFP2 플레이어 2의 그래픽 패턴 쓰다 $D00F 53263
P3PL 플레이어 3과 플레이어 충돌 읽다 $D00F 53263
GRAFP3 플레이어 3의 그래픽 패턴 쓰다 $010 53264
TRIG0 조이스틱 0 트리거. 읽다 $010 53264 STRIG0 $0284 644
GRAFM 모든 미사일에 대한 그래픽 패턴 쓰다 $011 53265
TRIG1 조이스틱 1 트리거. 읽다 $011 53265 STRIG1 $0285 645
COLPM0 선수와 미사일 0의 색상/유연성. 쓰다 $012 53266 PCOLOR0 $02C0 704
TRIG2 조이스틱 2 트리거. 읽다 $012 53266 STRIG2 $0286 646
COLPM1 선수와 미사일 1의 색상/유연성. 쓰다 $013 53267 PCOLOR1 $02C1 705
TRIG3 조이스틱 3 트리거. 읽다 $013 53267 STRIG3 $0287 647
COLPM2 선수와 미사일 2의 색상/유연성. 쓰다 $014 53268 PCOLOR2 $02C2 706
PAL 플래그. 읽다 $014 53268
COLPM3 선수와 미사일 3의 색상/유연성. 쓰다 $015 53269 PCOLOR3 $02C3 707
COLPF0 Playfield 0의 색상/유연성. 쓰다 $016 53270 COLOR0 $02C4 708
COLPF1 Playfield 1의 색상/유연성. 쓰다 $017 53271 COLOR1 $02C5 709
COLPF2 Playfield 2의 색상/유연성. 쓰다 $018 53272 COLOR2 $02C6 710
COLPF3 Playfield 3의 색상/유연성. 쓰다 $019 53273 COLOR3 $02C7 711
COLBK Playfield 배경의 색상/유연성. 쓰다 $D01A 53274 COLOR4 $02C8 712
선행 우선 순위 선택, 다섯 번째 플레이어 및 GTIA 모드 쓰다 D01B 달러 53275 GPRIOR $026F 623
브이델레이 수직 지연 P/M 그래픽 쓰다 $D01C 53276
그라틀 그래픽 컨트롤. 쓰다 $D01D 53277
HITCLR 충돌 지우기 쓰다 $D01E 53278
콘돌크 콘솔 스피커 쓰다 $D01F 53279
위로 콘솔 키 읽다 $D01F 53279

아래의 개별 레지스터 목록에는 다음과 같은 범례가 적용된다.

비트 값 설명
0 비트는 0이어야 함
1 비트는 1이어야 함
? 비트는 0 또는 1일 수 있으며 목적을 위해 사용된다.
- 비트가 사용되지 않았거나 특정 값이 될 것으로 예상되지 않아야 함
라벨을 붙이다 비트의 용도는 나중에 설명하는 것을 참조하십시오.

플레이어/미사일 수평 좌표

이러한 레지스터는 플레이어/미사일 객체의 왼쪽 가장자리 색상 클럭(GRAF* 바이트 패턴의 높은 비트)에 수평 위치를 지정한다.좌표는 항상 현재의 플레이필드 디스플레이 모드가 아닌 디스플레이 하드웨어의 컬러 클럭 엔진을 기반으로 한다.이것은 또한 플레이어/미사일 객체를 현재 플레이필드 모드를 넘어 오버스캔 영역으로 이동할 수 있다는 것을 의미한다.

비산물 객체 비트 패턴은 표시된 픽셀(GRAFM)에 대해 동일한 바이트를 공유하지만 각 비산물 위치는 독립적일 수 있다는 점에 유의하십시오."5번째 플레이어" 옵션이 활성화되면(PRIOR/GPRIOR 레지스터 참조) 4개의 미사일을 하나의 "플레이어"로 변환하면 미사일은 관련 플레이어 객체의 색상을 표시하는 것에서 COLPF3의 값을 표시하는 것으로 전환한다.화면상의 새로운 "플레이어" 위치는 각 미사일의 위치를 개별적으로 명시하여 설정해야 한다.

플레이어/미사일 픽셀은 GTIA의 픽셀 엔진에서 보이는 부분 내에서만 렌더링된다.플레이어/미사일 객체는 수평 공백 또는 수직 공백 중에 렌더링되지 않는다.그러나 물체는 부분적으로 수평 공백 안에 있을 수 있다.수평 공란 밖에 있는 물체의 픽셀은 표시장치의 가시적인 부분 안에 있고 여전히 충돌을 등록할 수 있다.가시색 시계의 수평 위치 범위는 $22hex/34dec ~ $DDhex/221이다dec.

보이는 디스플레이 영역(왼쪽) 수평 위치(왼쪽) 0 및 (오른쪽hex) $DE/222dec(이상)에서 플레이어/미사일 개체를 제거하려면 플레이어/미사일 개체의 크기에 관계없이 픽셀이 렌더링되지 않으므로 의도하지 않은 충돌이 발생하지 않도록 해야 한다.

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
? ? ? ? ? ? ? ?

Playfield 구성 요소에 Player/Missile 객체를 정렬할 때 유용한 가능한 Playfield 크기의 왼쪽 가장자리와 오른쪽 가장자리의 색상 시계 좌표는 아래와 같다.

플레이필드 표시된 컬러 클럭의 너비 왼쪽 가장자리 첫 번째 색상 시계 오른쪽 모서리 마지막 색상 시계
좁다 $80hex/128dec $40hex/64dec $BFhex/191dec
정상 $A0hex/160dec $30hex/48dec $CFhex/207dec
넓다 $B0hex/176dec $28hex/40dec $D7hex/215dec

플레이어/미사일 크기 제어

세 가지 크기를 선택할 수 있다: Normal, Double, Quad width.왼쪽 가장자리(수평 좌표 참조)는 고정되어 있고 크기 조정은 모든 경우에 플레이어 또는 미사일을 오른쪽으로 확장한다.

  • 정상 - 1비트(픽셀)는 1컬러 클럭 너비
  • 이중 - 1비트(픽셀)는 2가지 색상 시계 폭
  • 쿼드 - 1비트(픽셀)는 4가지 색상의 시계 너비

4배 크기에서 단일 플레이어/미사일 픽셀은 Antic Mode 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색 시계 $00 0 0
더블 16색 시계 $01 0 1
정상 8색 시계 $02 1 0
쿼드 32색 시계 $03 1 1

SIZEM $D00C 쓰기

모든 미사일 크기는 하나의 레지스터에 의해 제어되지만, 각 미사일은 다른 것과 독립적으로 크기를 조정할 수 있다."5번째 플레이어" 옵션이 활성화된 경우(PRIOR/GPRIOR 레지스터 참조) 4개의 미사일을 하나의 "플레이어"로 변환해도 각 미사일의 크기를 개별적으로 지정하여 너비를 설정한다.

비트 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개 $00 0 0
더블 4색 시계 $01 0 1
정상 컬러 시계 2개 $02 1 0
쿼드 8색 시계 $03 1 1
미사일 1호 정상 컬러 시계 2개 $00 0 0
더블 4색 시계 $04 0 1
정상 컬러 시계 2개 $08 1 0
쿼드 8색 시계 $0C 1 1
미사일 2 정상 컬러 시계 2개 $00 0 0
더블 4색 시계 $10 0 1
정상 컬러 시계 2개 $20 1 0
쿼드 8색 시계 $30 1 1
미사일 3 정상 컬러 시계 2개 $00 0 0
더블 4색 시계 $40 0 1
정상 컬러 시계 2개 $80 1 0
쿼드 8색 시계 $C0 1 1

플레이어/미사일 그래픽 패턴

각 플레이어 객체에는 고유의 8비트 패턴 레지스터가 있다.미사일 개체는 각 미사일당 2비트로 하나의 레지스터를 공유한다.값이 설정되면 각 스캔 라인에 계속 표시된다.값을 업데이트하기 위해 CPU 또는 ANTIC DMA에 의한 다른 개입이 없으면 결과는 오버스캔 영역을 포함한 화면 높이에서 수직 스트라이프 패턴이 된다.이 작동 모드는 컴퓨터에서 CPU 또는 DMA 비용을 발생시키지 않는다.화면 영역을 구분하는 대체 색상의 경계선과 수직선을 표시하는데 유용하다.

GRAFP0 $D00D 쓰기

플레이어 0의 그래픽 패턴

GRAFP1 $D00E 쓰기

플레이어 1의 그래픽 패턴

GRAFP2 $D00F 쓰기

플레이어 2의 그래픽 패턴

GRAFP3 $D010 쓰기

플레이어 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비트(픽셀)이다.비트가 설정된 경우, 픽셀은 미사일과 연결된 플레이어의 색상 레지스터에 할당된 색상으로 표시된다.다섯 번째 플레이어가 활성화되면(이전/GPRIOR 참조) 미사일 픽셀은 모두 COLPF3을 표시한다.비트가 설정되지 않은 경우 미사일 개체는 플레이어, 미사일, 플레이필드 픽셀 또는 배경색을 표시하여 투명하다.픽셀 출력은 가장 높은 비트 출력으로 먼저 미사일의 HPOS 값으로 지정된 수평 위치에서 시작한다.

미사일 값:

미사일 비트 값 픽셀 1 픽셀 0
미사일 0 $00 0 0
$01 0 1
$02 1 0
$03 1 1
미사일 1호 $00 0 0
$04 0 1
$08 1 0
$0C 1 1
미사일 2 $00 0 0
$10 0 1
$20 1 0
$30 1 1
미사일 3 $00 0 0
$40 0 1
$80 1 0
$C0 1 1

플레이어/미사일 충돌

CTIA/GTIA는 플레이어와 미사일, 플레이필드 픽셀이 교차할 때 자동으로 충돌 감지 기능을 제공하는 60비트를 가지고 있다.단일 비트는 플레이어/미사일 객체의 0이 아닌 픽셀이 특정 색상 레지스터의 픽셀과 교차했음을 나타낸다.백그라운드 컬러 레지스터/값을 사용하여 렌더링한 픽셀에 대해서는 충돌이 등록되지 않았다.이 시스템은 경계 상자나 이미지 비트맵 마스킹의 값비싼 CPU 평가 없이 픽셀 단위까지 완벽한 오버랩 비교를 즉각적으로 제공한다.

물체의 실제 색상 값은 고려되지 않는다.플레이어, 미사일, 플레이필드, 백그라운드 컬러 레지스터가 모두 동일한 값이어서 물체가 효과적으로 "보이지 않는" 상태일 경우 물체의 교차점은 여전히 충돌을 기록한다.이것은 숨겨진 물체나 비밀의 물체와 벽을 만드는데 유용하다.

가려진 교차로도 충돌을 등록한다.플레이어 객체 우선 순위가 플레이필드 색상 레지스터 뒤에 있고 다른 플레이어 객체 우선 순위가 플레이필드보다 높고(전경) 전경 플레이어 픽셀이 플레이필드 뒤에 있는 플레이어 객체와 플레이필드 뒤에 있는 플레이어 객체를 모두 모호하게 하는 경우 플레이필드 및 배경 및 전경 플레이어 객체 간의 충돌은 r예를 들어, 전경과 배경 플레이어 물체 사이의 충돌.

미사일과 미사일의 충돌은 없다는 점에 유의하십시오.

플레이어/미사일 충돌은 플레이어/미사일 객체 픽셀이 디스플레이의 가시적 부분 내에서 발생할 때만 발생할 수 있다.플레이어/미사일 객체는 수평 공백 또는 수직 공백 중에 렌더링되지 않는다.가시색 시계의 범위는 34~221이며, 가시색 스캔 라인은 8호선부터 247호선까지 다양하다.이러한 좌표를 벗어난 플레이어/미사일 데이터는 렌더링되지 않으며 충돌을 등록하지 않는다.물체는 부분적으로 수평 공란 안에 있을 수 있다.수평 공란 밖에 있는 물체의 픽셀은 디스플레이의 가시적인 부분 안에 있고 여전히 충돌을 등록할 수 있다.

보이는 디스플레이 영역(왼쪽) 수평 위치(왼쪽) 0 및 (오른쪽) 222(이상)에서 플레이어/미사일 개체를 제거하려면 플레이어/미사일 개체의 크기에 관계없이 픽셀이 렌더링되지 않고 의도하지 않은 충돌이 발생하지 않도록 해야 한다.

마지막으로 플레이어, 미사일, 플레이필드 객체 충돌검출은 실시간이며, 이미지 픽셀이 병합되어 디스플레이용으로 출력되면서 충돌이 등록된다.물체가 CTIA/GTIA에 의해 렌더링되기 전에 물체의 충돌 비트를 확인해도 충돌은 나타나지 않는다.

일단 설정되면, 충돌은 HITCLR 레지스터에 기록하여 삭제될 때까지 유효하다.효과적인 충돌 대응 루틴은 대상 물체가 표시된 후 또는 프레임의 끝 또는 수직 블랭크 동안 다음 프레임이 시작되기 전에 충돌과 명확한 충돌에 반응하기 위해 발생해야 한다.

충돌은 단 하나의 비트일 뿐이기 때문에, 충돌은 분명히 첨가물이 아니다.픽셀 간 충돌이 한 프레임 내에서 얼마나 여러 번, 다른 위치에서 발생하더라도 충돌이 있었다는 것을 나타내는 것은 1비트밖에 없다.설정된 충돌 비트는 프로그램에게 관련 물체를 검사하여 충돌 위치를 식별한 다음 각 위치에 대한 반응 방법을 결정할 수 있음을 알려준다.

HITCLR과 충돌검출이 실시간이기 때문에 디스플레이 목록 인터럽트는 디스플레이를 각 섹션의 시작 부분에 HITCLR을 사용한 섹션으로 나누고 각 섹션의 끝 부분에 별도의 충돌평가를 할 수 있다.

"5번째 플레이어" 옵션이 활성화된 경우(PRIOR/GPRIOR 레지스터 참조) 유일한 변경 사항은 관련 플레이어 객체의 색상을 표시하는 미사일 0~3 스위치에서 COLPF3의 값을 표시하는 것이다.새로운 "플레이어" 충돌은 여전히 개별 미사일에 대해 보고되고 있다.

플레이어/미사일과 플레이필드 충돌

각 비트는 Player/Missile 객체의 픽셀이 지정된 Playfield 색상 객체의 픽셀과 교차했음을 나타낸다.배경색에 대해 등록된 충돌은 없다.

가려진 교차로도 충돌을 등록한다.플레이어/미사일 객체 우선 순위가 플레이필드 색상 레지스터 뒤에 있고 다른 플레이어/미사일 객체 우선 순위가 플레이필드보다 더 높고(전면), 포그라운드 플레이어/미사일 픽셀이 플레이필드 뒤에 있는 플레이어/미사일 객체와 플레이필드 뒤에 있는 플레이어/미사일 객체를 모두 모호하게 하는 경우 플레이필드와 배경 및 배경과 배경 둘 다와 충돌한다.포그라운드 플레이어/미사일 객체가 등록된다.

고해상도, 1/2 컬러 클럭 픽셀 모드(ANTIC Mode 2, 3, F)는 다르게 취급한다.픽셀 값이 0인 COLPF2로 렌더링된 "배경" 색상은 충돌을 등록하지 않는다.고해상도 픽셀은 COLPF1의 휘도 값으로 렌더링된다.픽셀은 컬러 클럭 범위 쌍(픽셀 0과 1, 픽셀 2와 3으로 그룹화되어 픽셀 318과 319로 이어진다.쌍의 픽셀 중 하나가 1일 경우 플레이어 또는 미사일 픽셀과 플레이필드 색상 COLPF2 사이에서 충돌이 감지된다.

GTIA 모드 9와 11은 플레이필드 충돌을 처리하지 않는다.GTIA 모드에서는 플레이필드 픽셀이 COLPF0을 사용하는 곳에서 10개의 플레이필드 충돌이 등록된다.

M0PF $D000 읽기

플레이필드 충돌에 대한 미사일 0

M1PF $D001 읽기

미사일 1과 플레이필드 충돌

M2PF $D002 읽기

미사일 2와 플레이필드 충돌

M3PF $D003 읽기

미사일 3과 플레이필드 충돌

P0PF $D004 읽기

Player 0과 Playfield 충돌

P1PF $D005 읽기

플레이어 1과 플레이필드 충돌

P2PF $D006 읽기

플레이어 2와 플레이필드 충돌

P3PF $D007 읽기

플레이어 3과 플레이필드 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - COLPF3 COLPF2 COLPF1 COLPF0

미사일과 플레이어의 충돌

미사일은 플레이어와 플레이필드와 충돌한다.미사일과 미사일의 충돌은 없다.

M0PL $D008 읽기

미사일 0과 플레이어 충돌

M1PL $D009 읽기

미사일 1과 플레이어의 충돌

M2PL $D00A 읽기

미사일 2와 플레이어 충돌

M3PL $D00B 읽기

미사일 3과 플레이어의 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - COLPM3 COLPM2 COLPM1 COLPM0

플레이어와 플레이어 간의 충돌

두 선수의 충돌은 두 선수의 충돌 기록부에 충돌 비트를 설정한다.0번 플레이어와 1번 플레이어가 충돌하면 1번 플레이어의 충돌 비트가 설정되고 0번 플레이어의 충돌 비트가 설정된다.

플레이어는 자신과 충돌할 수 없으므로 비트는 항상 0이다.

P0PL $D00C 읽기

플레이어 0과 플레이어 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - COLPM3 COLPM2 COLPM1 0
P1PL $D00D 읽기

플레이어 1과 플레이어 간의 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - COLPM3 COLPM2 0 COLPM0
P2PL $D00E 읽기

플레이어 2와 플레이어 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - COLPM3 0 COLPM1 COLPM0
P3PL $D00F 읽기

플레이어 3과 플레이어 충돌

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - 0 COLPM2 COLPM1 COLPM0

플레이어/미사일 및 플레이필드 색상 및 휘도

기본 CTIA/GTIA 색상 해석 모드의 모든 Playfield 픽셀과 모든 Playfield 픽셀을 사용하여 색상을 지정한다.방향은 픽셀 데이터의 값이 색을 직접 지정하지 않고 색상에 대한 다른 정보 소스를 가리킨다는 것을 의미한다.CTIA/GTIA는 색상에 사용되는 값을 설정하는 하드웨어 레지스터를 포함하고 있으며 픽셀의 정보는 이러한 레지스터를 참조한다.아타리의 팔레트는 총 128가지 색상에 대해 16가지 색상의 8가지 휘도 레벨이다.색의 양방향 유연성은 프로그램이 화면 색상을 프로그램 표시 목적에 맞게 조정할 수 있도록 한다.

모든 하드웨어 색상 레지스터에는 해당 섀도 레지스터가 있다.

COLPM0 $D012 쓰기

그림자: PCOLOR0 $02C0

선수와 미사일 0의 색상/유연성.

GTIA 9-컬러 모드가 활성화된 경우(PRIOR/GPRIOR 값 $80) 이 레지스터는 COLBK가 아닌 테두리 및 배경(Playfield 픽셀 값 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

Playfield 1의 색상/유연성.

이 레지스터는 ANTIC 텍스트 모드 2와 3의 설정 픽셀(값 1)과 지도 모드 F에 사용된다.휘도 부분만 사용되며 COLPF2의 색상 값을 가진 OR'd이다.다른 문자 및 지도 모드에서 이 레지스터는 픽셀에 대해 예상되는 색상과 휘도를 제공한다.

COLPF2 $D018 쓰기

그림자: COLOR2 $02C6

Playfield 2의 색상/유연성.

이 레지스터는 ANTIC 텍스트 모드 2와 3의 플레이필드 배경색과 지도 모드 F에 사용된다.즉, 픽셀 값 0이 사용되는 경우.다른 문자 및 지도 모드에서 이 레지스터는 픽셀에 대해 예상되는 색상과 휘도를 제공한다.

COLPF3 $D019 쓰기

그림자: COLOR3 $02C7

Playfield 3의 색상/유연성.

COLPF3는 다음과 같은 몇 가지 특수한 상황에서 사용할 수 있다.

  • 비산물이 "5번째 플레이어"로 변환되면 비산물은 관련 플레이어 객체의 색상을 표시하는 것에서 COLPF3 표시로 전환되며 우선순위를 변경한다.이전/GPRIOR 레지스터를 참조하십시오.
  • Playfield Text Mode 4 및 5.반전 비디오 문자(높은 비트 $80 세트)를 사용하면 CTIA/GTIA가 문자 행렬의 COLPF2 픽셀에 대해 COLPF3 값을 대체하게 된다. (ANTIC의 글리프 렌더링 참조)
  • Playfield Text Mode 6 및 7.문자 값에 비트 6과 7이 설정되면(문자 범위 $C0-FF), 전체 문자 픽셀 매트릭스가 COLPF3로 표시된다(ANTIC의 글리프 렌더링 참조).
  • 이 레지스터는 GTIA의 특수 9색 픽셀 양방향 색상 모드에서도 사용할 수 있다.

COLBK $D01A 쓰기

그림자: COLOR4 $02C8

Playfield 배경의 색상/유연성.

전체 오버스캔 디스플레이 영역을 통해 다른 픽셀이 발생하지 않는 곳에 배경색이 표시된다.배경에는 다음과 같은 예외가 발생한다.

  • ANTIC 텍스트 모드 2와 3 및 지도 모드 F에서 픽셀이 렌더링될 수 있는 플레이필드 영역의 배경은 COLPF2이며 COLBK 색상은 플레이필드 주위에 테두리로 나타난다.
  • GTIA 컬러 해석 모드에서는 디스플레이 배경색이 컬러 레지스터 COLPM0에 의해 제공되는 반면 COLBACK은 플레이필드 픽셀 값 $8에 사용된다.
  • GTIA 색상 해석 모드에서는 $C(한 휘도 레벨에 15컬러 추가)를 COLBK를 사용하여 다른 모든 픽셀(픽셀 값 $1 ~ $F)의 휘도 레벨을 설정한다.그러나 배경 자체는 COLBK 레지스터에 설정된 색상 성분만 사용한다.배경의 휘도 값은 0으로 강제된다.

색상 레지스터의 비트:

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
컬러 3 컬러 2 컬러 1 컬러 0 휘도 3 휘도 2 휘도 1 (부채 0)

컬러 레지스터의 높은 nyble은 16가지 색상($00, $10, $20...) 중 하나를 지정한다.F0달러까지.

레지스터의 낮은 nyble은 16개의 휘도 값 중 하나를 명시한다. (00, $01, $02, $02...).($0F)

일반 색상 해석 모드에서 최저 비트는 유의하지 않으며 8개의 휘도 값($00, $02, $04, $06, $08, $0A, $0C, $0E)만 사용할 수 있으므로 전체 색상 팔레트는 128 색 값이다.

GTIA 색상 해석 모드 $4(휘도 전용 모드)에서는 전체 16비트의 휘도 값을 256색 팔레트를 제공하는 Playfield 픽셀에 사용할 수 있다.이 모드에 표시되는 플레이어/미사일 객체는 128 컬러 팔레트를 여전히 사용하는 양방향으로 채색된다.

정상 색상 해석 모드에서 픽셀 값은 일반적으로 색상 레지스터 COLBK, COLPF0, COLPF1, COLPF2를 가리키는 $0 ~ $3 범위.색상 텍스트 모드에는 특정 범위의 문자 값에 대해 COLPF3를 사용하는 옵션도 포함되어 있다.자세한 내용은 ANTIC의 그래픽 모드를 참조하십시오.

그래픽 패턴 비트가 설정된 디스플레이에 대해 플레이어/미사일 그래픽 패턴이 활성화되면 표시되는 색상은 객체에 할당된 레지스터에서 나온다.

색상 생성 및 디스플레이에 대한 예외가 있음:

  • ANTIC Text 모드 2와 3 및 Map 모드 F:
    • 이러한 모드에서 픽셀 값은 0달러와 1달러에 불과하다.$0 픽셀은 컬러 레지스터 COLPF2인 Playfield 배경을 지정한다.$1 픽셀은 COLPF2의 색상 성분과 COLPF1이 지정한 휘도를 사용한다.플레이필드 주변의 테두리는 COLBK의 색을 사용한다.
    • ANTIC Text 모드 2와 3과 Map 모드 F는 다른 모드의 플레이어/미사일 그래픽과 다르게 동작한다.글리프 또는 그래픽 픽셀에 사용되는 COLPF1은 항상 우선순위가 가장 높으며 플레이어 또는 미사일에 의해 가려질 수 없다.COLPF1의 색상은 항상 COLPF2인 "배경"에서 나온다.따라서 선수/실격자 및 5번째 플레이어가 COLPF2보다 우선 순위가 높은 경우 COLPF1 글리프/그래픽 픽셀은 우선 순위가 가장 높은 색상(플레이어 또는 미사일)의 색상 성분과 COLPF1의 휘도 성분을 사용한다.이 동작은 플레이어/미사일 우선순위 충돌이 "백그라운드"에 대해 진정한 흑색으로 나타나는 경우 일관된다.요약하면, CTIA/GTIA 색상은 최종적으로 고차원 픽셀을 "뒤로" 사용하기로 결정한 후 COLPF1 전경 글리프/그래픽 픽셀을 "int"하는 데 사용된다.
  • GTIA 예외
    • GTIA 컬러 해석 모드 $8(9컬러 리디렉션)은 디스플레이 배경과 테두리 색상에 컬러 레지스터 COLPM0을 사용하고, COLBACK은 플레이필드 픽셀 값 $8에 사용한다.
    • GTIA 색상 해석 모드 $C(한 휘도 레벨에서 15가지 색상, 배경 포함)는 COLBK를 사용하여 다른 모든 픽셀(픽셀 값 $1 ~ $F)의 휘도 레벨을 설정한다.그러나 배경 자체는 COLBK 레지스터에 설정된 색상 성분만 사용한다.배경의 휘도 값은 0으로 강제된다.배경의 색 구성 요소도 다른 픽셀의 색상과 함께 OR'd라는 점에 유의하십시오.따라서 배경색 구성 요소가 검은색(숫자로 0)이 아닐 때는 모드의 전체 색상 수가 감소한다.
  • 플레이어/미사일 예외:
    • 플레이어/미사일 우선순위 값 $0(PERTER/GPRIOR 참조)은 겹치는 플레이어 및 플레이필드 픽셀을 서로 다른 색상으로 표시하도록 한다.
    • 플레이어/미사일 우선순위 구성이 충돌하면 충돌이 발생하는 경우 참 블랙(색상 0, 루마 0)이 출력된다.
    • Player/Missile Multi-Color 옵션은 겹치는 Player 픽셀을 OR'd와 함께 다른 색상을 표시하게 한다.

색상 레지스터의 ANTIC 문자 모드별 사용:

등록하다 앤틱 2 앤틱 3 앤틱 4 앤틱 5 앤틱 6 앤틱 7
COLPM0/PCOLOR0
COLPM1/PCOLOR1
COLPM2/PCOLOR2
COLPM3/PCOLOR3
COLPF0/COLOR0 글리프 픽셀 글리프 픽셀 글리프 글리프
COLPF1/COLOR1 글리프 픽셀(루마) 글리프 픽셀(루마) 글리프 픽셀 글리프 픽셀 글리프 글리프
COLPF2/COLOR2 배경 배경 글리프 픽셀 글리프 픽셀 글리프 글리프
COLPF3/COLOR3 글리프 픽셀 글리프 픽셀 글리프 글리프
COLBAC/COLOR4 테두리를 두르다 테두리를 두르다 배경 배경 배경 배경

색상 레지스터의 ANTIC 지도 모드별 사용:

등록하다 ANTIC 0(빈 선) 앤틱 8 앤틱 9 앤틱 A 앤틱 B 앤틱 C 앤틱 D 앤틱 E 앤틱 F
COLPM0/PCOLOR0
COLPM1/PCOLOR1
COLPM2/PCOLOR2
COLPM3/PCOLOR3
COLPF0/COLOR0 화소 화소 화소 화소 화소 화소 화소
COLPF1/COLOR1 화소 화소 화소 화소 픽셀(루마)
COLPF2/COLOR2 화소 화소 화소 화소 배경
COLPF3/COLOR3
COLBAC/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 화소
COLBAC/COLOR4 배경 베이스 색상 화소 백그라운드 베이스 루마

플레이어/미사일 색상은 특수 GTIA 모드(16 음영/16 색상)가 적용될 때 색상이 수정될 수 있지만 모든 모드에서 플레이어/미사일 객체에 항상 사용할 수 있다.

기타 플레이어/미사일 및 GTIA 컨트롤

이전 $D01B 쓰기

그림자: GPRIOR $026F

이 레지스터는 다음과 같은 몇 가지 CTIA/GTIA 색상 관리 기능을 제어한다.GTIA Playfield 색상 해석 모드, Multi-Color Player 객체, Fifth Player, Player/Missile/Playfield 우선 순위.

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
GTIA 모드 1 GTIA 모드 0 멀티컬러 플레이어 다섯 번째 플레이어 우선 순위 3 우선 순위 2 우선 순위 1 우선 순위 0

GTIA Playfield 색상 해석
CTIA에는 ANTIC Playfield 데이터 스트림에 대한 기본 색상 해석 모드가 하나만 포함되어 있다.그것은 달리 명시되지 않은 한 대부분의 ANTIC 및 CTIA/GTIA 토론에서 가정된 기본 기능이다.GTIA는 Playfield 데이터에 대한 세 가지 대체 색상 해석 모드를 포함한다.이러한 모드는 ANTIC에서 인접한 컬러 클럭을 페어링하여 작동하므로 GTIA에 의한 픽셀 출력은 항상 두 컬러 클럭의 너비가 된다.이러한 모드는 ANTIC Playfield Mode를 표시하는 동안 결합할 수 있지만, 이러한 GTIA 색상 처리 옵션으로 가능한 전체 색상 팔레트는 1/2 컬러 클럭 픽셀에 기반한 ANTIC 모드에서만 실현된다(ANTIC 모드 2, 3, F).이러한 GTIA 옵션은 모드 F 디스플레이와 함께 가장 많이 사용된다.또한 특수 GTIA 컬러 처리 모드는 플레이어/미사일 그래픽의 표시나 동작을 다양한 방식으로 변경한다.

색 해석 제어는 전체 화면에 영향을 미치는 GTIA의 글로벌 기능이다.GTIA는 한 디스플레이에서 다양한 GTIA 색상 해석 모드와 대부분의 ANTIC Playfields에 필요한 기본 CTIA 모드를 본질적으로 혼합할 수 있는 것은 아니다.색상 해석 모드를 혼합하려면 디스플레이가 생성될 때(일반적으로 디스플레이 목록 인터럽트에 의해) 소프트웨어가 사전 레지스터에 기록되어야 한다.

PRIER 비트 7과 6은 색상 해석 모드를 지정하는 네 가지 값을 제공한다.

GTIA 모드 비트 [7:6] 특징 설명
0 0 = $00 체납 CTIA랑 똑같아.정상적인 색상 레지스터 사용.
0 1 = $40 GTIA/16 색조 배경색 16가지 색조(COLBK )
1 0 = $80 GTIA/9 컬러 플레이필드 9개 및 플레이어/미사일 색상 레지스터는 모두 플레이필드에서 사용할 수 있다.배경은 COLPM0
1 = $C0 GTIA/16 색상 백그라운드 레지스터(COLBK)에 의해 설정된 휘도 레벨에 15가지 색상과 배경.

16 음영
이 모드는 COLBK 레지스터를 사용하여 배경색을 지정한다.양방향으로 사용하기보다는 픽셀 값이 휘도를 직접 나타낸다.이 모드는 아타리 색상 팔레트에서 4개의 휘도 비트를 모두 사용할 수 있으므로 256개의 색상을 표시할 수 있다.

플레이어/미사일 그래픽(5번째 플레이어 옵션 없음)은 이 모드에서 제대로 표시되지만 플레이필드와의 충돌 탐지는 비활성화된다.플레이필드 우선 순위는 항상 밑바닥에 있다.미사일들이 다섯 번째 플레이어로 전환되면, 미사일 물체가 플레이필드와 겹치는 곳에서 미사일 픽셀 휘도는 플레이필드 픽셀의 휘도 값과 합쳐진다.

9색
다른 두 개의 특수 GTIA 모드와는 달리, 이 모드는 전적으로 색상 양방향에 의해 구동된다.픽셀 값 0에서 8까지 9개의 컬러 레지스터가 모두 디스플레이에서 작동한다.나머지 7픽셀 값은 이전 색상 레지스터를 반복한다.

픽셀은 출력 시 컬러 클럭 1개(GTIA 모드 픽셀 절반)만큼 지연된다.이 오프셋은 흥미로운 효과를 허용한다.예를 들어, 이 모드와 다른 GTIA 모드 사이에서 페이지를 빠르게 넘기면 분명히 더 높은 해상도와 더 많은 수의 색상을 가진 디스플레이가 생성된다.

이 모드는 COLBK가 아닌 테두리 및 배경(Playfield 0 값 픽셀)에 컬러 레지스터 COLPM0을 사용한다는 점에서 독특하다.

플레이어/미사일 그래픽은 플레이어/미사일 0이 백그라운드 픽셀과 구분할 수 없다는 예외를 제외하고 적절하게 표시되며, 이는 플레이어/미사일의 동일한 색상 레지스터인 COLPM0을 사용하기 때문이다. 플레이어/미사일 색상을 사용하는 플레이필드 픽셀은 플레이어/미사일 객체인 것처럼 우선 순위 설정에 의해 수정되므로 플레이어/미사일의 디스플레이에 영향을 줄 수 있다.미사일.플레이어/미사일/플레이필드 우선 순위에 대한 자세한 내용은 나중에 확인하십시오.

Player/Missile 색상을 사용하는 Playfield 픽셀은 Player/Missile 객체가 겹칠 때 충돌을 유발하지 않는다.그러나 플레이필드 컬러 COLPF0에서 COLPF3까지 겹치는 플레이어/미사일 그래픽은 예상 충돌을 유발한다.

16색
이 모드는 COLBK 레지스터를 사용하여 모든 플레이필드 픽셀의 휘도를 지정한다(가격은 1/1hexdec ~ $Fhex/15dec).휘도 값 중 최하위 비트는 관찰되지 않으므로 표준/CTIA 8 휘도 값만 (0, 2, 4, 6, 8, A, $C, $E)을 사용할 수 있다.또한 배경 자체는 COLBK 레지스터에 설정된 색상 성분만 사용한다.배경의 휘도 값은 0으로 강제된다.휘도 모드와 마찬가지로 방향은 비활성화되며 픽셀 값은 직접 색상을 나타낸다.

배경의 색 구성 요소도 재생 필드 픽셀과 병합된다는 점에 유의하십시오.배경의 검은색 이외의 색은 모드에 표시되는 전체 색 수를 줄인다.

플레이어/미사일 그래픽(5번째 플레이어 옵션 없음)은 이 모드에서 제대로 표시되지만 플레이필드와의 충돌 탐지는 비활성화된다.플레이필드 우선 순위는 항상 밑바닥에 있다.미사일들이 다섯 번째 플레이어로 전환되면 미사일 개체가 플레이필드와 겹치는 곳에서 미사일 픽셀은 플레이필드 픽셀의 Color 값을 상속한다.

멀티컬러 플레이어
이전 비트 5에서는 $20hex/32dec 가치로 멀티 컬러 플레이어 객체를 사용할 수 있다.두 개의 플레이어/미사일 객체의 픽셀이 겹치는 경우 세 번째 색상이 나타난다.이는 플레이어/미사일 개체 쌍 간의 우선 처리를 제거하여 CTIA/GTIA가 두 컬러 픽셀의 비트 OR을 수행하여 새로운 색상을 출력함으로써 구현된다.

예: 색상 값이 $98hex/152dec(파란색)인 플레이어 픽셀은 색상 값이 $46hex/70dec(빨간색)인 플레이어 픽셀과 겹쳐서 $DEhex/228dec(연녹색/노란색)의 픽셀 색상이 발생한다.

멀티 컬러 출력을 지원하는 플레이어/미사일 쌍:

  • 플레이어 0 + 플레이어 1
  • 미사일 0 + 미사일 1
  • 플레이어 2 + 플레이어 3
  • 미사일 2 + 미사일 3

다섯 번째 플레이어
이전 비트 4에서 가치 10hex/16으로dec 미사일은 5번째 선수가 될 수 있다.미사일의 색상 처리 외에는 어떠한 기능 변화도 일어나지 않는다.일반적으로 미사일은 관련 플레이어의 색상을 사용하여 표시된다.5번째 플레이어가 활성화되면 모든 미사일은 플레이필드 3(COLPF3)의 색상을 표시한다.수평 위치, 크기, 수직 지연 및 플레이어/미사일 충돌은 모두 동일한 방식으로 계속 작동한다.제5 플레이어 오브젝트 픽셀 교차로에 대한 우선 순위는 COLPF3이지만, 제5 플레이어의 픽셀은 모든 플레이필드 색상보다 우선권이 있다.

색상 처리 변경은 또한 GTIA의 대체 색상 모드에서 미사일의 디스플레이에 대한 일부 예외를 야기한다.

  • GTIA 16 음영 모드:Missile 픽셀이 Playfield와 겹치는 경우, 픽셀은 Playfield 픽셀의 휘도 값을 상속한다.
  • GTIA 16 색상 모드:Missile 픽셀이 Playfield와 겹치는 경우 픽셀은 Playfield 픽셀의 Color 값을 상속한다.

다섯 번째 플레이어에서는 우선 순위 값 $8(비트 1000)에 대한 예외를 도입한다(아래 우선 순위 토론 참조).

우선 순위
이전 비트 3 ~ 0은 플레이어/미사일 객체 픽셀과 플레이필드 픽셀이 교차할 때 표시되는 픽셀 값을 결정하는 4개의 플레이어/미사일 및 플레이필드 우선 순위 값을 제공한다.네 가지 값은 아래 우선순위 차트에 나열된 특정 옵션을 제공한다."PM"은 다섯 번째 플레이어 없이 정상적인 플레이어/미사일 구현을 의미한다.다섯 번째 플레이어인 "P5"는 활성화되었을 때 우선순위가 발생하는 위치에 표시된다.

이 차트는 기본(CTIA) 색상 해석 모드를 사용하는 ANTIC Playfield Character 및 Map 모드에 정확하다.GTIA 색상 해석 모드와 고해상도 1/2 컬러 클럭 픽셀에 기반한 ANTIC 모드는 다르게 동작한다(나중에 공지함).

우선 순위 비트 [3:0] 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 PM0
PM1 PM1 PF1 PF1 PM1
PM2 P5/PF0 PF2 PM0 P5/PF0
PM3 PF1 PF3 PM1 PF1
P5/PF0 PF2 PM0 PM2 PM2
PF1 PF3 PM1 PM3 PM3
PF2 PM2 PM2 PF2 PF2
PF3 PM3 PM3 PF3 PF3
밑단 COLBK COLBK COLBK COLBK COLBK

여러 비트가 설정된 경우 충돌이 발생하는 경우 CTIA/GTIA는 검은색 픽셀을 출력한다.검정색은 단순히 배경색이 아닌 실제 검정색을 의미한다는 점에 유의한다.

5번째 플레이어는 COLPF3의 값으로 표시되지만, 우선순위는 모든 플레이필드 색상보다 높다.이것은 우선순위 값 $8 (Bits 1000)에 대한 예외를 생성한다.이 모드에서는 플레이필드 0과 1이 플레이어보다 우선 순위가 높고 플레이필드 2와 3보다 플레이어가 우선 순위가 높다.Playfield 0 또는 1 픽셀이 Player 픽셀과 교차하는 경우 표시되는 결과는 Playfield 픽셀이다.그러나 5번 선수도 같은 위치를 교차할 경우 플레이필드 위에 그 가치가 나타나 플레이필드 3이 가장 우선순위가 높은 것처럼 나타나게 된다.플레이필드 0 또는 1 픽셀을 이 교차로에서 제거하면, 5번째 플레이어의 픽셀에는 오버라이드할 플레이필드 픽셀이 없으므로 플레이어의 픽셀에도 뒤처진다.

Priority 비트가 모두 0이면 다른 효과가 발생한다. Player와 Playfield 픽셀은 Multi-Color Player 기능과 유사한 방식으로 논리적으로 OR'd이다.이런 상황에서 플레이어 0과 1 픽셀은 플레이필드 0과 1 픽셀, 플레이어 2와 3 픽셀은 플레이필드 2와 3 픽셀과 혼합할 수 있다.또한 멀티컬러 플레이어 옵션을 사용할 경우 결과적으로 병합된 플레이어의 색상이 플레이필드와 혼합되어 더 많은 색상이 생성될 수 있다.모든 색상 병합 가능성을 고려할 때 CTIA/GTIA 하드웨어는 스캔 라인당 23가지 색상을 출력할 수 있다.첫 번째 색으로 배경색을 시작으로 나머지 22가지 색상과 색상 병합이 가능하다.

COLPM0 COLPM1 COLPF0 COLPF1 COLPM2 COLPM3 COLPF2 COLPF3
1 X 12 X
2 X 13 X
3 X X 14 X X
4 X 15 X
5 X X 16 X X
6 X X 17 X X
7 X X X 18 X X X
8 X 19 X
9 X X 20 X X
10 X X 21 X X
11 X X X 22 X X X

우선순위 비트가 모두 0일 때 비산물 색상은 위에서 설명한 해당 플레이어와 동일한 방식으로 기능한다.5번째 플레이어가 활성화되면 Missile 픽셀은 위의 표(색상 19~22)에 있는 COLPF3에 표시된 것과 동일한 색상을 병합한다.

우선 순위 및 고해상도 모드
우선 순위 결과는 고해상도 1/2 컬러 클럭 픽셀을 사용하는 문자 및 지도 모드에 따라 다르다.ANTIC 모드 2, 3, F.이러한 우선순위 처리 차이는 전통적으로 "모노크롬"으로 생각되는 이러한 모드에서 컬러 텍스트나 그래픽을 생성하는데 이용될 수 있다.

이러한 ANTIC 모드에서는 플레이필드의 "배경"으로 COLPF2가 출력되고, 플레이필드 주변의 경계로 COLBK가 출력된다.그래픽이나 글리프 픽셀은 COLPF1의 휘도 성분만 백그라운드의 색상 성분(일반적으로 COLPF2)과 혼합하여 출력한다.

선수/실수와 COLPF2의 우선순위 관계는 아래 우선순위 차트에 따라 동작한다.우선순위가 높은 플레이어/미사일 픽셀은 COLPF2를 "배경" 색으로 대체한다.COLPF1은 항상 우선순위가 가장 높으며 선수나 미사일에 의해 가려질 수 없다.글리프/그래픽 픽셀은 우선 순위가 가장 높은 색상(Playfield, Player 또는 Missile)의 색상 성분과 COLPF1의 휘도 성분을 사용한다.이러한 동작은 플레이어/미사일 우선순위가 충돌할 경우 "배경"에 대해 검정색이 되는 경우에도 일관된다는 점에 유의하십시오.실제로, 색상 값 CTIA/GTIA는 최종적으로 COLPF1 포그라운드 글리프/그래픽 픽셀의 "배경" 색상에 사용한다.

우선 순위 비트 [3:0] COLPF2 대 COLPM0 및 COLPM1 비교 COLPF2 대 COLPM2 및 COLPM3
0 0 0 0 = $00 플레이어/미사일 COLPF2의 플레이어/미사일 OR'd
0 0 0 1 = $01 플레이어/미사일 플레이어/미사일
0 0 1 0 = $02 플레이어/미사일 COLPF2
0 0 1 1 = $03 플레이어/미사일 트루 블랙
0 1 0 0 = $04 COLPF2 COLPF2
0 1 0 1 = $05 COLPF2 트루 블랙
0 1 1 0 = $06 COLPF2 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 = 0B 달러 플레이어/미사일 트루 블랙
1 1 0 = 0C 달러 COLPF2 트루 블랙
1 1 0 1 = $0D COLPF2 트루 블랙
1 1 1 0 = $0E COLPF2 트루 블랙
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

이 레지스터는 Double Line Player/Missile 해상도가 ANTIC의 DMACTL 레지스터에서 활성화된 경우 단일 스캔 라인 이동을 제공하는 데 사용된다.이것은 짝수 스캔 라인에서 GRAF* 레지스터에 대한 ANTIC DMA 업데이트를 마스킹하여 그래픽 패턴이 스캔 라인 한 개 아래로 이동하게 하는 방식으로 작동한다.

단일 라인 해상도에는 각 스캔 라인에서 ANTIC DMA 업데이트가 필요하고 VDELay는 짝수 스캔 라인의 업데이트를 가리기 때문에 이 비트는 싱글 라인 플레이어/미사일 해상도를 이중 라인으로 줄인다.

GRACTL $D01D 쓰기

그래픽 컨트롤.

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
? ? ? ? ? 트리거 래치 플레이어 사용 미사일 사용

GRACTL은 CTIA/GTIA가 ANTIC로부터 플레이어/미사일 DMA 데이터를 수신하는 것을 제어하고 조이스틱 트리거 입력 모드를 전환한다.

플레이어/미사일 DMA 데이터를 수신하려면 데이터를 수신하도록 CTIA/GTIA를 구성해야 한다.이 작업은 ANTIC가 플레이어 데이터와 미사일 데이터를 전송하도록 지시하는 ANTIC의 DMACTL 레지스터의 비트 쌍과 일치하는 GRACL의 비트 쌍으로 수행된다.GRACTL의 비트 0은 DMACTL의 비트 2에 해당하므로 미사일 데이터의 전송이 가능하다.GRACTL의 비트 1은 DMACTL의 비트 3에 해당하므로 플레이어 데이터 전송이 가능하다.이 비트는 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로 설정하면(값hex $fdec/15) 시스템이 NTSC에서 작동하고 있다.비트가 0일 때 시스템은 PAL 모드로 작동하고 있다.

MOLODK $D01F 쓰기

콘솔 스피커

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
0 0 0 0 스피커 - - -

비트3는 아타리 800/400의 내부 스피커를 제어한다.이후 모델에서는 콘솔 스피커가 제거되고 소리가 모니터 포트 및 RF 어댑터로 출력하기 위한 일반 POKEY 오디오 신호와 혼합된다.아타리 OS는 콘솔 스피커를 사용하여 키보드 클릭과 벨/버저 사운드를 출력한다.

운영 체제는 수직 블랭크 루틴 중에 스피커 비트를 설정한다.Vertical Blank가 값을 재설정할 때 비트에 0을 반복해서 쓰면 60Hz의 윙윙거리는 소리가 발생한다.유용한 톤은, 비록 오디오 톤을 유지하기 위해 CPU 시간이 필요한 채널이지만, 5번째 오디오 채널을 효과적으로 추가함으로써 6502 코드를 사용하여 생성될 수 있다.

CONSORY $D01F 읽기

콘솔 키

비트 7 비트 6 비트 5 비트 4 비트 3 비트 2 비트 1 비트 0
- - - - - 옵션 선택 시작

각 특수 콘솔 키의 상태, 시작, 선택 및 옵션을 보고하기 위해 비트가 할당된다.비트 값 0은 키를 눌렀음을 나타내고, 1은 키를 누르지 않았음을 나타낸다.키/비트 값:

  • 시작 키 = 비트 값 $1
  • 키 선택 = 비트 값 $2
  • 옵션 키 = 비트 값 $4

플레이어/미사일 그래픽(스프라이트) 작동

하드웨어 "스프라이트" 시스템은 CTIA/GTIA가 처리한다.스프라이트 시스템의 공식 명칭은 "플레이어/미사일 그래픽"인데, 이는 슈팅 em up 게임에서 "플레이어"와 그의 무기 "미사일"과 같은 빠르게 움직이는 물체의 디스플레이 메모리를 조작할 필요성을 줄이기 위해 고안되었기 때문이다.

플레이어는 기본적으로 가로 8픽셀, 세로 256개의 TV 라인으로, 배경(투명)의 두 가지 색을 가지고 있다.0글리프)와 전경(글리프)에서1). 미사일 물체는 유사하지만 폭은 2픽셀에 불과하다.CTIA/GTIA는 우선 순위에 따라 Player/Missile 객체의 픽셀과 Playfield 픽셀을 결합한다.투명(Transparent)0) 플레이어 픽셀은 Playfield에 영향을 미치지 않으며 변경 없이 Playfield 또는 배경 픽셀을 디스플레이한다.모든 플레이어/미사일 객체의 정상적인 픽셀 너비는 하나의 컬러 클럭이다.레지스터 값은 플레이어 또는 미사일 픽셀의 너비를 1, 2 또는 4 컬러 클럭 너비로 설정할 수 있다.

CTIA/GTIA에 의한 플레이어/미사일 구현은 TIA와 유사하다.플레이어는 각 스캔 라인에서 또는 레지스터에서 패턴이 변경될 때까지 자동으로 반복되는 지정된 수평 위치의 8비트 값 또는 패턴이다.미사일은 2비트 폭이며 1개의 패턴 레지스터를 공유하기 때문에 4개의 2비트 폭 값이 8비트 폭 패턴 레지스터를 차지하지만, 각각의 미사일은 독립적인 수평 위치와 크기를 가지고 있다.플레이어/미사일 객체는 화면 테두리를 포함하여 디스플레이의 높이를 확장한다.즉, CTIA/GTIA에 의한 Player/Missile Graphics의 기본 구현은 화면 아래 줄무늬가 된다.이 방법은 외관상으로는 제한되어 있지만 플레이어/미사일 그래픽은 디스플레이에서 대체 색상의 수직 경계선 또는 분리기로 사용을 용이하게 하며, 우선 순위 값이 플레이필드 픽셀 뒤에 플레이어/미사일 픽셀을 배치하도록 설정되면 디스플레이에 추가 색상을 추가하는 데 사용할 수 있다.최대 너비로 설정되고 나란히 배치된 모든 선수와 미사일은 정상 너비 플레이필드 전체를 커버할 수 있다.

CTIA/GTIA는 플레이어/미사일 색상을 제어하는 여러 옵션을 지원한다.PRIOR/GPRIOR 레지스터 값은 4개의 미사일을 두 가지 색상 표시 옵션으로 전환할 수 있다. 각 미사일(0~3)은 관련 플레이어 객체(0~3)의 색상을 표시하거나 모든 미사일은 레지스터 COLPF3/COLOR3의 색상을 표시한다.비산물의 색상이 유사할 경우 다섯 번째 플레이어로 간주할 수 있지만 화면에 정확히 배치하려면 여전히 4개의 비산물 수평 위치 레지스터에 값을 저장해야 한다.PRIOR/GPRIOR는 또한 두 플레이어의 겹치는 픽셀이 세 번째 색을 생성하도록 하는 기능을 제어하여 사용 가능한 객체의 수를 줄이는 비용으로 멀티 컬러 플레이어 객체를 허용한다.마지막으로 PRIER/GPRIOR를 사용하여 플레이어/미사일 픽셀 대 플레이필드 픽셀의 전경/배경 레이어링("우선순위")을 변경할 수 있으며, 표시되는 색상에 예측 가능한 영향을 미치는 우선순위 충돌을 발생시킬 수 있다.

수직으로 변화하는 이미지/패턴을 가진 스프라이트의 재래식 아이디어도 플레이어/미사일 그래픽 시스템에 내장되어 있다.ANTIC 칩은 디스플레이가 생성될 때 자동으로 CTIA/GTIA에 새로운 픽셀 패턴을 공급하기 위해 DMA를 수행하는 기능을 포함하고 있다.이 작업은 각 스캔 라인 또는 다른 모든 스캔 라인에 대해 수행될 수 있으며 플레이어/미사일 픽셀이 하나 또는 두 개의 스캔 라인 높이로 생성된다.이러한 방식으로 플레이어/미사일 객체는 디스플레이 높이에 의해 8비트/픽셀 폭의 글꼴로 매우 큰 문자로 간주될 수 있다.

플레이어/미사일 객체를 수평으로 이동하면 CTIA/GTIA에서 레지스터를 변경하는 것처럼 간단하다(아타리 BASIC에서는 PUCK 문 한 개가 플레이어나 미사일을 수평으로 이동시킨다).물체를 수직으로 이동시키는 것은 플레이어나 미사일 비트맵의 새로운 위치로 글리프 정의를 이동하거나 전체 플레이어/미사일 비트맵(128 또는 256바이트)을 회전시킴으로써 달성된다.전체 비트맵의 최악의 경우 회전 속도는 6502 기계 언어로, 6502는 8080년에 발견된 블록 이동 명령이 부족함에도 불구하고 여전히 상당히 빠르다.스프라이트의 길이가 정확히 128 또는 256바이트이므로 인덱싱은 6502의 바이트 범위 레지스터에 쉽게 수용할 수 있다.아타리 베이직은 고속 메모리 이동 명령이 부족하고 BASIC PEEK()를 이용한 이동 메모리는 고통스러울 정도로 느리다.플레이어/미사일 그래픽을 사용하는 Atari BASIC 프로그램은 고속 메모리 이동을 수행하기 위한 다른 옵션을 가지고 있다.한 가지 방법은 메모리 이동을 수행하기 위해 USR() 함수를 통해 짧은 기계 언어 루틴을 호출하는 것이다.또 다른 옵션은 큰 문자열을 플레이어/미사일 메모리 맵으로 활용하고 기계 언어 속도로 메모리를 이동시키는 문자열 복사 명령을 수행하는 것이다.

아타리 하드웨어의 다른 그래픽 기능과 함께 플레이어/미사일 그래픽을 주의 깊게 사용하면 그래픽 프로그래밍, 특히 게임을 훨씬 단순화할 수 있다.

GTIA 향상

GTIA 칩은 CTIA와 역호환되며 14개의 "정상" ANTIC Playfield 그래픽 모드에 대해 3가지 색상 해석을 추가한다.CTIA 칩의 정상적인 색상 해석은 특수 프로그래밍 기법을 사용하지 않는 한 Map 모드에서는 최대 4가지 색상으로, Text 모드에서는 5가지 색상(Player/Missile Graphics의 경우 4가지 색상으로 제한된다.GTIA의 세 가지 새로운 색상 해석은 이론적으로 총 56개의 그래픽 모드(14개의 ANTIC 모드와 4개의 가능한 색상 해석)를 제공한다.그러나 고해상도, 1/2 컬러 클럭 픽셀(즉, Antic 텍스트 모드 2, 3 및 그래픽 모드 F)을 기반으로 하는 그래픽 모드만이 이 세 가지 새로운 컬러 해석의 컬러 팔레트를 완전히 표현할 수 있다.세 가지 추가 색상 해석은 두 가지 색상 시계(4비트)의 정보를 사용하여 16가지 색상 값 중 하나의 픽셀을 생성한다.이를 통해 모드 F 디스플레이가 픽셀당 2색, 수평 320픽셀, 모드 라인당 1개의 스캔 라인에서 16색, 수평 80픽셀로 바뀐다.추가적인 색상 해석은 다음을 가능하게 한다.

  • GTIA 색상 해석 모드 $4 - 아타리 팔레트에서 가능한 16가지 색조에서 단일 색조(배경색, COLBK로 설정) 16가지 색조이것은 또한 Atari BASIC에서 Graphics 9로 접근할 수 있다.
  • GTIA 색상 해석 모드 $8 - 이 모드는 128 색상의 전체 아타리 팔레트에서 색조 및 휘도별로 수평선당 9가지 색상의 방향성을 허용한다.이 작업은 플레이필드 픽셀에 대한 모든 플레이어/미사일 및 플레이필드 색상 레지스터를 사용하여 수행된다.이 모드에서 배경색은 컬러 레지스터 COLPM0에서 제공하는 반면 COLBACK은 플레이필드 픽셀 값 $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로 액세스할 수 있다.

이러한 모드 중 특히 아타리 BASIC Graphics 9가 눈에 띈다.이것은 아타리가 그레이 스케일의 디지털화된 사진들을 전시할 수 있게 해주는데, 그들의 낮은 해상도에도 불구하고 그 당시 매우 인상적이었다.또한 다른 그래픽 모드에서 사용할 수 있는 8가지 색조가 아닌 단일 색조의 16가지 색조를 허용함으로써 아타리가 표시할 수 있는 다양한 색상의 양을 128개에서 256개로 늘린다.유감스럽게도 이 기능은 해상도가 낮기 때문에 이 모드에서만 사용할 수 있도록 제한된다.

Antic 2 및 3 텍스트 모드는 GTIA의 대체 색상 해석을 사용할 때 모드 F 그래픽과 동일한 색상 범위를 표시할 수 있다.단, 화소축소도 적용되어 8픽셀 폭, 2컬러 텍스트가 2픽셀 폭, 16컬러 블록이 적용되기 때문에 실제 텍스트에 적합하지 않고, 따라서 이러한 그래픽 모드는 데모를 제외하고는 인기가 없다.텍스트 모드와 함께 GTIA 색상 해석 기능을 효과적으로 사용하려면 문자를 픽셀로 취급하는 세심하게 구성된 문자 집합이 필요하다.이 방법은 일반적으로 RAM의 8K를 차지하게 되는 명백한 GTIA "고해상도" 그래픽 모드를 디스플레이 할 수 있도록 하며, 대신 약 2K(문자 집합의 경우 1K, 화면 RAM 및 디스플레이 목록의 경우 1K)만 사용할 수 있다.

GTIA는 또한 CTIA의 오류를 수정하여 그래픽이 "반쪽 컬러 시계"로 잘못 정렬되도록 했다.수정의 부작용은 고해상도 단색 모드에서 컬러 아티팩트에 의존하는 프로그램이 다른 색의 쌍을 보여줄 것이라는 점이었다.[5][15]

Atari 소유자는 BASIC 명령을 실행하여 자신의 기계에 CTIA 또는 GTIA가 장착되어 있는지 확인할 수 있다.POKE 623,64실행 후 화면이 어두워지면 기계에는 새로운 GTIA 칩이 장착된다.만약 파란색으로 유지된다면, 그 기계는 대신 CTIA 칩을 가지고 있다.

벅스

동유럽 시장을 위해 만들어진 마지막 아타리 XE 컴퓨터는 중국에서 만들어졌다.모두가 버기 PAL GTIA 칩을 가지고 있지 않다면 많은 사람들이 많다.Graphics 9 이상의 루마 값은 줄무늬로 나타나며 결함이 있다.칩을 교체하면 문제가 해결된다.또한 일부 외부 회로로 결함이 있는 GTIA 칩을 고치려는 시도가 있었다.

참고 항목

참조

  1. ^ a b c Atari Home Computer Field Service Manual - 400/800 (PDF). Atari, Inc. pp. 1–10. Retrieved 2010-09-10.
  2. ^ Neubauer, Doug (2009-06-20). "The Atari Years, by Doug Neubauer. Star Raiders, Solaris and Pokey". DougNeubauer.com.
  3. ^ a b c Sherer, Robin Alan (June 1988). "GTIA Joystick Painter - Powerful Atari Animation Tool". ANTIC. 7 (2): 37. ISSN 0113-1141. Retrieved 2011-01-26.
  4. ^ 미국 특허권 4296476, 메이어, 스티븐 T; 광부, 제이 G;Neubauer, Douglas G.;Decuir, Joseph C, "프로그램 가능한 그래픽 생성기가 있는 데이터 처리 시스템"은 주식회사 Atari에 할당된 1 981-10-20을 발행했다.
  5. ^ a b c d e Patchett, Craig; Sherer, Robin (1984). "Special Chips and ROM". The Master Memory Map for the Atari. Reston, Va.: Reston Publishing Company. ISBN 0-8359-4242-2. Retrieved 2011-01-26.
  6. ^ a b c d e Mace, Scott (1982-03-15). "Atari quietly switches to a 16-color graphics chip". InfoWorld. Palo Alto, CA: Popular Computing. 4 (10): 3–4. ISSN 0199-6649. Retrieved 2011-02-01.
  7. ^ a b Chamberlain, Craig (July 1982). "Atari Video Graphics And The New GTIA". Compute! (26): 124. ISSN 0194-357X. Retrieved 2011-01-24.
  8. ^ a b c Joe Decuir, CGEXPO99 "3세대 게임 머신 아키텍처"
  9. ^ a b Small, David; Small, Sandy; Blank, George (May 1983). "Design Philosophy and GTIA Demos". The Creative Atari. Creative Computing Press. ISBN 978-0-916688-34-9. Retrieved 2011-01-26.
  10. ^ Switzer, Steve (October 1983). "Atari Clinic". ANTIC. 2 (7): 103. ISSN 0113-1141. Retrieved 2011-02-01.
  11. ^ 마이클 커런트 "샐리, 앤틱, CTIA/GTIA, POKEY, FREDDII 칩은 무엇인가?", 아타리 8비트 컴퓨터:자주 묻는 질문
  12. ^ a b c d e Boris, Dan. "Atari Chips". Dan B's Home Page. Retrieved 2011-02-01.
  13. ^ Vendel, Curt. "Atari 800XLCR". AtariMuseum.com. Retrieved 2011-02-01.
  14. ^ Vendel, Curt. "KERI Performance Tester". AtariMuseum.com. Retrieved 2011-02-01.
  15. ^ Small, David; Small, Sandy; Blank, George, eds. (1983). "The Wizard, the Princess, and the Atari". The Creative Atari. Creative Computing Press. ISBN 0916688348.

외부 링크