KR960012990B1 - 비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법 - Google Patents

비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법 Download PDF

Info

Publication number
KR960012990B1
KR960012990B1 KR1019880700303A KR880700303A KR960012990B1 KR 960012990 B1 KR960012990 B1 KR 960012990B1 KR 1019880700303 A KR1019880700303 A KR 1019880700303A KR 880700303 A KR880700303 A KR 880700303A KR 960012990 B1 KR960012990 B1 KR 960012990B1
Authority
KR
South Korea
Prior art keywords
data
address
image data
register
blitter
Prior art date
Application number
KR1019880700303A
Other languages
English (en)
Other versions
KR880701575A (ko
Inventor
제이 지. 마이너
데이브 딘
조셉 씨. 디퀴어
로널드 에이 취. 니콜슨
아끼오 다나까
Original Assignee
베스콤 에이지
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=25389792&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=KR960012990(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by 베스콤 에이지 filed Critical 베스콤 에이지
Publication of KR880701575A publication Critical patent/KR880701575A/ko
Application granted granted Critical
Publication of KR960012990B1 publication Critical patent/KR960012990B1/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/25Output arrangements for video game devices
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/02Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed
    • G09G5/024Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the way in which colour is displayed using colour registers, e.g. to control background, foreground, surface filling
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/20Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterised by details of the game platform
    • A63F2300/203Image generating hardware
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/12Frame memory handling
    • G09G2360/127Updating a frame memory using a transfer of data from a source area to a destination area
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • G09G5/346Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling for systems having a bit-mapped display memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Air Bags (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

내용없음

Description

[발명의 명칭]
비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법
[도면의 간단한 설명]
제1도는 어드레스 발생기[아그너스(Agnus)]칩의 계통도이고,
제2도는 회로의 비트맵 영상 조작기(블리터)부의 동작 계통도이며,
제3도는 회로의 광펜(light pen) 레지스터 및 동기 카운터부의 계통도이고,
제4도는 회로의 RAM 어드레스 발생기 부의 계통도이며,
제5도는 비트플레인 DMA 제어 논리의 계통도이며,
제6도는 회로의 스프라이트 수직 비교기 및 위치 레지스터의 계통도이며,
제7도는 코프로세서(copper)의 계통도이고,
제8도는 아미가(Amiga) 시스템의 계통도이고,
제9도는 디스플레이 엔코더[데니스(Denise)]칩의 계통도이고,
제10도는 비트플레인 데이타 레지스터 및 직렬기(serializer)의 계통도이며,
제11도는 스프라이트 데이타 레지스터 및 직렬기의 계통도이고,
제12도는 충돌 검출 논리를 도시한 도면이며,
제13도는 디스플레이 우선순위 제어 논리를 도시한 도면이다.
[발명의 상세한 설명]
[발명의 배경]
본 발명은 DNA 기술을 사용하는 비디오 게임 및 퍼스널 컴퓨터용 마이크로프로세서 가동식 컴퓨터 분야에 관한 것인데, 이러한 시스템은 회로 면적을 고려하여 MOS(금속 산화막 반도체) LSI(대규모 집적)회로로 실행된다. 또한, 본 발명은 보조 회로가 호스트(hsot)시스템에 추가되었고, 텔리비젼형 디스플레이장치가 사용되며, 비트 캡 모우드(bit map mode)[비디오 정보의 1개 이상의 비트는 디스플레이된 화사의 매 소자 위치(픽셀)마다 메모리내에 기억된다.]가 유사하게 사용되는 개량된 시스템에 관한 것이다.
또한, 본 발명은 컬러 스프라이트(color sprite)(때때로 배경이라고 함)가 일제히 동작되는 컬러 비디오 디스플레이 모니터용 비디오 디스플레이 구동기에 관한 것이다.
비트 맵핑은, 공간 및 시간 실행이 소요되지만, 비디오 디스플레이 발생을 위한 간단하고 정확한 방법을 증명되어 왔다. 비디오 게임 및 퍼스널 컴퓨터에 의해 제공된 복합 디스플레이들은 이동가능하고 변경가능한 정보와 고정된 정보, 이동가능한 오브젝트들 간의 충돌의 오버레이 표시를 요구한다. 비트 맵 실행은 여러 종래 회로들의 촛점이었다.
종래의 비디오 게임 회로들은 텔리비젼 수상기 디스플레이 유니트(음극선관)에 복합 디스플레이 포오맷을 제공하였는데, 이 디스플레이 유니트는 수평 주사 및 래스터(raster)선들로 표시를 발생시킨다. 배경과 같은 고정된 오브잭트 뿐만 아니라 이동 오브젝트를 디스플레이할 수 있는 비디오 게임 회로는 로젠달(Rosenthal)의 미합중국 특허 제4,053,740호에 기술되어 있다.
로젠달은 상호 배타적인 기준상에서 선택된 다수의 소프트웨어정의 프로그램으로부터 비디오 게임 정보를 발생시키기 위해 특수 목적 디지탈 컴퓨터를 조작자 명령은 처리 회로의 독립 계산부와 독립 디스플레이로 분리된다. 로젠달의 미합중국 특허 제4,053,740호는 x 및 y 레지스터 및 음극선관 디스플레이 이용 관련 수평 및 수직 비임 방향 구동 회로를 제어하도록 누산기를 구동시키기 위해 산술 논리 유니트를 사용하였다.
애플 컴퓨터와 같은 퍼스널 컴퓨터는 계산 동작을 수행하고 텔리비젼형 수신기에 디스플레이를 발생시키도록 비디오 디스플레이 정보를 처리(검색)하기 위해 메인 마이크로프로세서를 사용하였다.
애플 컴퓨터는 계산 동작과 비디오 디스플레이 정보 검색을 수행하기 위해 MOS Technology Inc., Model 6502인 범용 마이크로프로세서를 사용하였다. 이러한 단일 마이크로프로세서 구동 시스템은 Model 6502를 포함하는 대부분의 마이크로프로세서들이 레지스터를 회복(refresh)시키고 동작을 리셋트 및 초기화시키기 위해 사용된 상당한 처리 무효(deal) 시간을 갖기 때문에 속도 제한을 갖는다. 결과적으로, 이러한 시스템내에서의 정보 처리는 느리게 될 수 있다.
처리 속도를 향상시키기 위해서, 이 소형 마이크로프로세서 구동 컴퓨터는 희생된 디스플레이 성질, 즉 정의, 특성 및 디테일(detail)을 갖는다.
이러한 퍼스널 컴퓨터의 속도를 증가시키기 위한 한가지 해결 방법으로는 2개의 프로세서, 즉 Motorola Inc., 68000과 6502를 사용하여 왔다. 이 시스템내에서, 제1프로세서는 계산 동작용으로 제공되고, 제2마이크로프로세서는 비디오 디스플레이 정보 검색용으로 제공된다.
대쉬(Dash)등의 미합중국 특허 제4,034,983호내에 기술된 것과 같은 다른 이전의 게임 회로들은 시판중인 컬러 텔리비젼 수상기의 안테나 접속부에 신호들을 발생시키기 위해 특수 목적 제어 회로를 사용하였다. 이러한 특수 목적 제어 회로는 게임-패들(game-paddle) 신호 및 디코딩 기능을 처리하기 위한 아날로그 인터페이스 회로를 포함하고, 동기 펄스 발생 회로는 수평 동기 및 래스터 주사(raster scan) 정보를 발생시키기 위해 사용될 수 있다.
충(Chung)의 미합중국 특허 제4,177,642호내에 기술된 것과 같은 퍼스널 컴퓨터 및 마이크로프로세서 구동 시스템은 래스터 라인 발생 및 수직 위치 카운터를 포함하는 어드레스 버스, 데이타 버스 및 제어 버스가 드라이브 오프된(driven off) 디스플레이 발생기 회로를 사용하였다.
서코닉크(Sukonick) 등의 미합중국 특허 제4,070,710호는 데이타 및 어드레스 버스 구조를 갖고 있는 시스템내에 비디오 제어 회로 및 래스터 메모리 억세스를 사용하였다. 서코닉크 등은 비디오 정보를 선입선출(FIFO) 처리하기 위해 다수의 수직과 수평 위치 레지스터, 스킵 패턴(skip pattern) 메모리, 및 모듈로(modulo) 비교회로에 의존하는 비디오 제어 회로를 사용한다.
서코닉크의 미합중국 특허 제4,070,710호내에는 이중 프로세서 시스템이 기술되어 있다. 서코닉크는 디스플레이 시스템(16)을 프로그램된 호스트 컴퓨터(10)에 추가시켰다. 이 비디오 디스플레이 시스템(16)은 비디오 디스플레이 컴퓨터의 마이크로-제어 유니트(22)내의 Intel Corporation 8088 마이크로프로세서(76)을 포함한다.
버손(Burson)의 미합중국 특허 제4,180, 505호는 미합중국 특허 제3,398,604호내에 도시한 바와 같이 범용 마이크로프로세서(15), 즉, TMS 1100 마이크로컴퓨터를 사용하는 비디오 디스플레이 회로를 제공하였다. 문자 메모리는 디스플레이 메모리 및 문자 발생 메모리로부터 별도로 제공되고 각 디스플레이 메모리 워드는 2개의 바이트로 분할되는데, 이 바이트들 중 제1바이트는 문자 메모리 어드레스이고, 제2바이트는 한 셋트의 문자워드내의 문자-워드를 메모리내에 배치시키기 위한 버스-어드레스이다. 각 문자 메모리 워드도 2개의 바이트로 분할되는데, 이 바이트들 중 제1바이트는 컬러를 결정하고, 제2바이트는 사전 기억된 셋트로부터 특정 문자를 선택한다.
비디오 디스플레이 정보를 처리하기 위해 신판중인 제2범용 마이크로컴퓨터를 사용하면, 컴퓨터 속도가 증가되고, 시스템의 제조비용 뿐만 아니라, 시스템의 사이즈, 즉 칩 리얼 에스테이트(real eatate) 도 증가된다.
또한, 마이크로-제어 유니트가 사용되고, 회로에 필요하게 된다. 마이크로-제어 유니트는 래스터 메모리 유니트에 의해 사용되기 위한 호스트 컴퓨터로부터의 명령을 디코드하고, 래스터 메모리가 디스플레이 정보를 기입할 뿐만 아니라 래스터 메모리로부터의 정보를 해독하여 이것을 CRT 구동 회로에 의해 사용가능한 비디오 신호로 변환시키기 위해 비디오 제어 회로를 제어하게 하도록 제어 정보를 발생(엔코드)시킨다. 액클리(Ackley) 등의 미합중국 특허 제4,243,984호에는 스프라이트 위치와 컬러의 오버레이 제어, 우선 순위 선택, 순차제어 및 메모리 제어용 일반 회로 부품들을 포함하는 비디오 디스플레이 프로세서가 기술되어 있다.
라만(Rahman)의 미합중국 특허 제4,420,770호에는 휠드 보정 논리, 우선 순위 엔코더 회로 및 수평과 수직 비트 맵 메모리를 포함하는 비디오 배경 발생 시스템이 기술되어 있다.
그 외의 다른 사람들은 마이크로프로세서 기재(based) 컴퓨터 시스템과의 인터페이싱용 어드레스 버스, 데이타 버스 및 제어 신호 라인들을 포함한 디스플레이 회로를 개량하였다. 몇가지 디스플레이 회로들은 충돌 검출 및 디스플레이 우선순위 논리를 포함하는 다수의 메모리와 동작하도록 접속된 다수의 제어 레지스터들을 사용하는 DMA 제어와 플레이 휠드 및 스프라이트 발생기 부품들을 포함하였다.
또한, 시판중인 이중 마이크로프로세서 시스템은 시판중인 각 회로가 별도의 이중-인-라인 팩키지(dual-in-line package, DIP)로서 되기 때문에 오프-칩(off-chip) 배선 접속부를 증가시켰다. LSI(대규모 직접 집적)회로 설계시에, 이것은 백플레인(backplane) 및 회로 카드 가격을 상승시키고, 때때로 부수적인 휠터링 및 증가된 신호 레벨을 필요로 하는 잡음 픽업(pick up) 가능성을 증가시키므로, 통상적으로 더 많은 전력 소모를 야기시키게 된다. 퍼스널 컴퓨터 시장에서 가격이 매겨진 비싼 이중 마이크로프로세서 시스템 내에서는, 디스플레이의 질은 잡음 픽업 및 휠터링 비용이 낮은 디스플레이 출력질을 지시하기 때문에 이 제2마이크로프로세서로 크게 향상되지 않는다.
그 외의 다른 사람들은 래스터 주사선 버퍼 구조물로서 디스플레이 발생기를 사용하는 것과 같은 다른 해결 방법을 취하였다. 이런 해결 방법내에서, 디스플레이 오브젝트 기억 등속 호출 메모리(RAM)을 어드레스하기 위해 일반적인 마이크로프로세서가 사용될 수 있다. 이 회로는 디스플레이를 이동 오브젝트(스프라이트)와 고정 오브젝트(플레이 휠드)로 분리시킨다.
이 해결 방법은 상술한 이중 마이크로프로세서 해결 방법보다 실행 비용이 저렴하고 더 적은 칩 기하학적 형태 및 인터-칩(inter-chip) 배선을 사용하지만, 이중 마이크로프로세서 시스템과 비교하여 감쇠된 시스템 성능 및 디스플레이 능력을 제공한다.
한가지 특수 디스플레이 발생기 증강 마이크로프로세서 기재 시스템은 호간(Hogran)등의 미합중국 특허 제3,996,585호내에 기술되어 있는데, 여기에서 디스플레이 발생기는 다수의 버퍼 레지스터들로 실행된다. 호간 등은 등속 호출 메모리(RAM)으로부터 얻어진 비트 맵 정보를 처리하기 위해 이 디스플레이 발생기를 사용한다. 패턴 발생기는 각 래스터 주사선 용으로 데이타를 디코드하기 위해 사용된다. 디코드된 래스터 주사선 데이타는 디스플레이되기 위해 버퍼 레지스터내에 기억된다. 또한, 패턴 발생기는 충돌을 결정하기 위해 제어 데이타를 디코드시킨다. 디코드된 충돌 제어 데이타는 버퍼 레지스터내에 기억된다. 호간의 회로는 간단한 비디오 디스플레이 데이타 검색 및 조작으로부터 시스템 마이크로프로세서를 해방시키고자 한다.
호간 등의 디스플레이 발생기 회로 해결 방법과 조화하여, 다른 사람들은 디코더 기재 비디오 디스플레이 발생기를 설계하였다. 이러한 회로는 비디오 발생기를 구동시키기 위해 제2범용 마이크로프로세서를 사용하지 않았지만, 가동 오브젝트와 고정 플레이휠드 오브젝트 정보를 비디오 디스플레이에 제공하기 위해 디스플레이 명령 디코더 회로를 사용할 수 있으므로, (범용) 마이크로프로세서만으로 작업을 감소시키게 된다. 호간 등의 회로와 같은 소정의 이 회로들은 다수의 기억공간의 증가를 필요로 한다. 몇가지 비디오 비스플레이 발생기의 회로들은 플레이휠드-고정-오브젝트 데이타를 처리하기 위한 디코더, RAM 및 레지스터와 이동 오브젝트 데이타를 처리하기 위한 디코더- 선택기 및 레지스터로 분리되었다.
마이크로프로세서 기재 퍼스널 컴퓨터 시스템내에 사용될 보조 회로를 제공하는 것이 바람직한데, 이 보조 회로는 비트-맵 데이타 조작 능력을 포함하는 마이크로프로세서 능력을 갖고 있지만, 제2마이크로프로세서이 공간과 전력을 사용하지 않거나 디코더 해결 방법에 의해 요구된 메모리를 증가시키지 않고, 인터-칩 및 백플레인 배선이 최소화되는 경우에 실행될 수 있다.
[발명의 요약]
아미가 퍼스널 컴퓨터는 특징이 향상된 저렴한 고성능 컴퓨터이다. 본 발명의 목적은 고 해상도 컬러 디스플레이, 시뮬레이션과 동화(animation)용 신속한 그래픽, 및 상당한 처리력을 저렴한 비용으로 제공하기 위한 것이다.
고 해상도 컬러 디스플레이는 메모리 가격의 계속적인 저하로 인해 점점 통상적으로 되고 있다. 그러나, 최종 색상 디스플레이 버퍼 메모리는 특히 단일 종래의 마이크로프로세서만을 사용할 때 디스플레이상을 그리거나 이동시키는 것이 느리게 될 수 있다. 이 상황은 메모리 버스 타임 동안 디스플레이와 경합하는 다중-채널 스테레오 사운드, (스프라이트와 같은) 고속 라인 버퍼 오브젝트, 및 전(full) 트랙 플로피 디스크 버퍼와 같은 다른 대용량 메모리 전송 채널에 의해 악화된다. 고 해상도 컬러, 신속 이동 디스플레이 및 저렴한 제조 비용이 불일치되는 설계 목적은 본 발명의 특징에 의해 크게 해결되었다. 하드웨어 해결 방법들은 이들을 커스텀(custom) 실리콘 칩상에 설계함으로써 저렴하게 행해진다.
윈도우 실시간 동적 디스플레이 특유의 대부분의 데이타 전송 및 비임 위치 검사를 메인 마이크로프로세서로부터 면제시키기 위해 DMA(Direct Memory Access)가 널리 사용된다. Motorola 68000은 메인 마이크로프로세서로서 사용된다. 68000의 성능은 모든 교호 버스 싸이클을 제공하여 전속도로 가동시키는 시스템 설계에 의해 향상된다. 다음에 기술한 특수 기능들은 완전 삽입 베이시스(basis)상에 공용 메모리를 사용하기 위해 68000과 협력하여 작용하는 2개의 커스텀-설계된 VLSI회로를 사용하여 발생된다. 68000이전속도 가동하기 위해서 각 교호 클럭 싸이클동안 메모리 버스를 억세스할 필요가 있기 때문에, 나머지 시간 동안에 메모리 버스는 다른 동작을 행하지 않는다. 코프로세서(coprocessor), 및 블리터(blitter)라고 부르는 데이타-이동 DMA채널은 68000보다 신속히 행할 수 있는 작업을 위해 68000으로부터 시간을 스틸(steal)할 수 있다. 그러므로, 시스템 DMA 채널은 최대 성능으로 설계되는데, 업무는 가장 효율적인 하드웨어 소자에 의해 수행된다.
커스텀 디스플레이 코프로세서는 비디오 비임의 위치와 동기화하여 대부분의 특수-목적 레지스터들로 교환된다. 이것은 컬러 팰리트(color palette)에 미드-스크린(mid-screen)변화와 같은 특수 영향을 허용하므로, 스크린을 상이한 비디오 해상도와 컬러 심도, 및 68000에 대한 비임-동기 인터럽트 발생을 각각 갖고 있는 다수의 수평 슬라이스(slice)로 분할시키게 된다. 코프로세서는 공백(blanking) 기간 동안 뿐만 아니라 라인 중간에서 스크린마다 여러번 트리거할 수 있다. 코프로세서 자체는 특수-목적 하드웨어의 대부분의 레지스터에 직접 영향을 미칠 수 있으므로, 범용 계산 업무로부터 68000을 면제시키게 된다.
32개의 시스템 컬러 레지스터들이 제공되는데, 이들은 각각 적색도 정보의 4비트, 녹색도 정보의 4비트와 청색도 경보의 4비트인 12-비트 수를 갖고 있다. 이것은 시스템 커러 팰리트가 각 레지스터마다 컬러의 4096가지의 상이한 선택을 하게 한다. 비트 플레인 어드레싱이라고 부르는 비트맵 디스플레이 메모리 구성이 사용된다. 이 방법은(픽셀 대신에) 비트플레인들을 메모리내에서 그룹화시키고, 비트플레인들의 수와 그룹을 별도 상으로 변화시키며, 감소된 수의 비트플레인을 사용할 때 속도를 증가시킨다.
(스프라이트들이 쌍으로 될때) 스프라이트 픽셀마다 15가지 까지의 컬러 선택을 갖고 있는 8개의 재사용 가능한 16-비트 광(wide) 스프라이트들이 하드웨어내에 사용된다. 스프라이트는 디스플레이가(플레이휠드라고 부르는) 배경과 완전 무관한 용이하게 이동가능한 그래픽 오브젝트이다. 스프라이트는 이 배경 위에 또는 밑에 디스플레이될 수 있다. 스크린 상에 스프라이트의 최종 라인을 발생시킨 후, 스프라이트 DMA 채널은(스프라이트 프로세서의 각 재사용간에 최소한 1개의 수평 라인을 갖고 있는) 스크린 상의 어느 지점에 또 다른 스프라이트 상을 발생시키기 위해 재사용될 수 있다.
부수적인 논리는 충돌 검출로 오브젝트간 우선 순위를 동적 제어가능하게 한다. 이 시스템은 스프라이트 오브젝트와 비트-플레인 배경(플레이 휠드) 사이의 비디오 우선 순위를 동적으로 제어할 수 있고, 시스템 하드웨어는 오브젝트들 간의 충돌을 검출하기 위해 사용될 수 있으므로, 프로그램은 이러한 충돌에 반응할 수 있다.
블리터는 비트플레인 동화에 적합한 고속 데이타 이동용으로 사용된다. 블리터는 3개까지의 소오스로부터의 데이타를 효율적으로 검색하고, 이 데이타는 256가지 상이한 가능 방식중 1가지 방식으로 조합시키며, 조합된 데이타를 수신지(destination) 영역내에 선택적으로 기억시킨다. 블리터는 초당 1백만 도트의 속도로 사각형으로 구성된 메모리 영역내에 패턴화된 라인들을 그릴 수 있고, 효율적으로 영역을 충전시킬 수 있다.
이하, 첨부도면을 참조하여 본 발명의 부수적인 목적 및 장점들에 대해서 상세하게 기술하겠다.
[양호한 실시예의 상세한 설명]
아미가 퍼스널 컴퓨터는 비디오 게임 및 퍼스널 컴퓨터 응용의 저렴한 고성능 그래픽 및 사운드 시스템이다. 이 시스템은 Motorola 68000 16/32비트 마이크로프로세서에 의해 제어된 3개의 커스텀 IC를 포함한다. 이 칩들은 비디오 게임, 만화, 저 해상도 사진, 또는 80개까지의 텍스트 문자를 스크린상에 디스플레이하기 위해 양질의 해상도와 심도로 특별한 컬러 그래픽을 표준 TV 또는 RGB 컬러 모니터상에 제공한다. 사운드 회로는 각각의 4개의 채널 상의 복잡한 파형을 복제할 수 있는데, 이것은 질적으로 시판중인 신디사이저(Synthesizer)와 견줄만 하다. 칩 가격은 신중한 설계 룰, 프로세서 명세 및 논리 밀도를 사용함으로써 낮게 유지되었다. 선택된 프로세서는 거의 모든 MOS 제조자들이 사용해 오는 공통 실리콘 게이트 NMOS 프로세스이다.
제8도내의 아미가 시스템 계통도에는 아그너스, 데니스 및 폴라가 설계한 3개의 커스텀 칩들이 도시되어 있고, 이들이 아미가 시스템의 어드레스 및 데이타 버스와 어떻게 접속되는지가 도시되어 있다. 이 계통도에는 RAM(401)을 모든 3개의 커스텀 칩에 접속시키고 쌍방향성 3상태 버퍼(403)을 통해 68000 마이크로프로세서(402)에 접속시키는 시스템 데이타 버스가 도시되어 있다. 시스템 데이타 버스(404)는 16비트이고, 쌍방향성이다. 레지스터 어드레스 버스(405) 또는 RGA 버스는 아그너스 칩에 관해서만 쌍방향성이다. RAM(401)로의 어드레스들은 멀티플렉서(407)의 제어하에서 어느 한 소오스를 선택함으로써 Motorola 68000 프로세서(402) 또는 DRA 버스(406)를 통해 아그너스 칩으로부터 입력된다. 레지스터 어드레스 버스(405) 또는 RGA 버스는 DMA가 3상태 버퍼(409)를 통해 68000의 출력 라인(408)상에 하위 어드레스 비트에 의해 나타나지 않을 때 구동된다. 이것은 마이크로프로세서(402)가 등속 호출 메모리인 것처럼 커스텀 칩을 해독하거나 기입하게 한다. DMA 싸이클이 요구될 때, 아그너스 칩(410)은 데이타 버스 요구(DBR)라인(411)의 주장(asserting)을 마이크로프로세서(402)에 알린다.
그다음, 버스 제어 논리(412)는 신호 DTACK를 라인(413)상에 출력시키므로, 68000 마이크로프로세서(402)의 동작을 중지시키고, 프로세서(402)가 더 이상 시스템 데이타 버스(404) 또는 RGA 버스(405)를 억세스하지 않도록 2개의 3상태 버퍼(403과 409)를 스위치시킨다. 이 DMA 모우드내에 있을 때, 아그너스 칩(410)은 레지스터 어드레스(RGA) 버스(405)상의 데이타에 대한 수신지 어드레스를 배치시킴과 동시에, 버스 제어 논리(412)의 제어하에서 RAM(401)로의 입력용으로 멀티플렉서(407)에 의해 선택되는 자체 RAM 어드레스 버스, 즉 DRA 버스(406)으로 RAM(401)을 어드레스한다. RGA 버스(405)상의 레지스터 어드레스는 RAM(401)로부터의 데이타의 수신지로서, 어그너스 칩(401)을 포함하는 3개의 커스텀 칩들 중 소정의 칩 상의 다수의 레지스터들 중 1개의 레지스터를 선택한다.
아미가 컴퓨터 시스템의 동작, 즉 마이크로프로세서(402)와 커스텀 칩, 즉 아그너스 칩(410), 데니스 칩(420) 및 폴라칩(430)간의 상호작용에 대한 더욱 상세한 설명은 본 명세서에서 참고한 1985. 7. 19자 출원한 계류 중인 Video Game and Personal Computer란 명칭의 특허 출원 제756,910호에 기술되어 있다. 본 출원은 아그너스 칩(410)과 데니스 칩(420)에 관련된 하드웨어 및 특징에 관한 것이다. 아그너스 칩과 데니스 칩의 계통도는 각각 제1도와 제9도에 도시되어 있다. 폴라 칩(430)에 관련된 하드웨어와 특징에 대한 설명은 본 명세서에서 참고로 한 1986. 7. 18자 출원한 계류중인 Peripheral Control Circuitry for Personal Computter란 명칭의 특허 출원 제886,614호에 기술되어 있다.
아그너스 칩(410)은 어드레스 발생기 칩이다(제1도). 이것은 238×281mil이고, 약 21,000개의 트랜지스터를 포함한다. 이것의(칩 영역내에서의) 주 기능은 DMA 싸이클 중에 모든 레지스터와 RAM 어드레스를 발생시키는 RAM 어드레스 발생기(45)와 레지스터 어드레스 엔코더(43)의 가능하다. DMA는 마이크로프로세서(402)에 의한 인터럽트 루틴의 실행을 요구하지 않고서 메모리와 커스텀 칩들 중 1개의 칩 사이에서 데이타를 전송하기 위한 방법이다. 아그너스 칩은 아미가 시스템용 모든 DMA 채널 제어기들을 포함한다. 이것은 또한 블리터라고 부르는 하드웨어 비트 맵 영상 조각기(67)과 코퍼라고 부르는 디스플레이 동기화 코프로세서(47)을 포함한다. 아그너스 계통도는 DMA 제어 논리, 및 레지스터 어드레스 버스(405)와 RAM 어드레스 버스(406)용 구동기를 도시한다. 각 DMA 제어기 회로의 출력은 두자리 숫자 화살표가 붙어 있다. 이 화살표들은 레지스터 어드레스 엔코더(43)과 RAM 어드레스 발생기(45)를 구동하고 있는 각각의 이 제어기들로부터의 DMA 채널들의 수를 나타낸다.
아그너스 칩(410)은 이 아그너스 칩(410) 자체 상의 레지스터들은 사용하는 데이타 전송을 포함하는 3개의 칩들 중 소정의 칩을 포함하는 모든 DMA 데이타 전송용 2개의 어드레스(즉, 소오스용과 수신지용)를 발생시킨다. DMA 데이타 전송의 소오스는 거의 항상 RAM 어드레스 발생기(45)에 의해 어드레스되는 동적 RAM이다. 칩 레지스터들은 거의 항상 DMA 데이타 전송의 수신지이고, 레지스터 어드레스 엔코더(43)에 의해 어드레스된다.
우선순위 제어 논리(73)은 DMA 동작중에 68000 마이크로프로세서가 RAM(401)을 억세스하지 못하게 하기 위해서 DMA 동작이 요구될 때마다 제8도에 도시한 버스 제어 논리(412)로의 라인(411)상에 버스요구(demand) 신호 DBR을 출력시킨다. 각각의 DMA 제어기(41,47,53,57,61 및 65)는 우선순위 요구 신호를 출력시키고, 우선순위 제어 논리(74)로부터 우선순위 엔에이블 신호를 수신한다. 실제 논리는 DMA제어기들을 접속시키고 상이한 형태의 DMA 요구에 상이한 우선순위를 제공하는 데이지 체인(dasiy chaim)과 유사하다. 논리(73)은 동기 카운터 회로(31)내에 포함되고 우선순위가 제공된 소정의 DMA 채널에 영향을 미칠 수 있는 비디오 비임 카운터(117)로부터 비디오 비임 카운트를 수신한다. 메모리 억세스 싸이클은 DMA 제어기들과 프로세서(402)간에 할당되는데, 이것에 대해서는 나중에 설명하겠다. 그러므로, 예를 들어 비디오 비임 카운트가 비임이 디스플레이를 주사중이고 공백 상태가 아니라는 것을 나타내면, 비트플레인 디스플레이용 DMA 제어기는 우선 순위를 제공받게 되고, 버스 요구 신호는 비트플레인 DMA 제어기가 데이타 버스(404)의 억세스를 요구할 때 마나 논리(73)에 의해 출력된다.
데이타 버스(404)상의 RAM(401)로의/로부터의 데이타에 대한 수신지 또는 소오스로서 3개의 커스텀 칩들중 소정의 칩 상의 레지스터를 선택하기 위해서, 레지스터 어드레스 엔코더(43)은 아미가 컴퓨터상의 25개의 DMA 채널들 중 1개의 채널이 작동될 때마다 RGA 버스(405)상에 미리 배선된 어드레스를 배치시킨다. 레지스터 어드레스 버스(405)상의 모든 어드레스들은 블리터, 코퍼, 및 아그너스 칩상에 포함된 모든 다른 레지스터들로의 다수의 출력 라인(29)를 갖는 아그너스 칩(410)상의 레지스터 어드레스 디코더(27)로 입력된다. 아그너스 칩(410)상의 레지스터들 중 1개의 레지스터가 어드레스되고 있으면, 디코더(27)은 데이타 버스(404)가 레지스터 어드레스 버스(405)상의 어드레스에 의해 선택된 특수 레지스터에 의해서만 억세스될 수 있게 하는 출력 라인(29)들 중 1개의 라인 상에 출력을 배치시킨다. 레지스터 어드레스 엔코더(43)은 DMA 채널 제어기에 의해 구동되고, 각 DMA 채널용 제어 논리에 의해 선택된 독특한 코드로 레지스터 어드레스 버스(405)를 구동시킨다. 8비트의 RGA 버스(405)는 별도의 칩 선택 라인 또는 레지스터 해독/기입 라인없이 3개의 칩상의 각 레지스터가 독특한 고유 어드레스 및 때때로 별도의 해독/기입용 어드레스를 가질 수 있도록 충분한 어드레스 정보를 제공한다. 아그너스 칩(410)이 DMA 동작을 수행하지 않을 때마다, 엔코더(43)은 RGA 버스(405)상에 8개의 1을 발생시키므로, 생략성(default) 또는 어드레스 부재 어드레스를 의미하게 된다.
RAM(401)로부터의 데이타용 수신지가 레지스터 어드레스 엔코더(43)에 의해 레지스터 어드레스 버스(405)상에 배치되지미나, RAM 어드레스 발생기(45)는 RAM(401)내의 메모리 워드를 억세스하기 위한 어드레스를 발생시키고, 이것을 DRA 버스(406)상에 배치시킨다. 그러므로, DMA 동작이 일어나면, 아그너스 칩(410)은 데이타 버스 요구 라인(411)을 가정하고, RAM 어드레스 버스(406)으로 RAM내의 워드를 어드레스한다. RAM 어드레스 발생기(45)는 제4도에 더욱 상세하게 도시되어 있다.
아미가 퍼스널 컴퓨터 시스템은 총 25개의 DMA 채널을 제공한다. 제1도에 도시한 바와 같이, 모든 25개의 DMA 채널용 제어 신호들은 RAM 어드레스 발생기(45)내에 입력된다. RAM 어드레스 발생기(45)는 한 셋트의 25개 포인터 레지스터(138, 제4도)을 포함한다. 각각의 포인터 레지스터들은 특정 DMA 채널용으로 다음에 페치(fetch)될 데이타의 메모리내의 위치를 지시하는 18-비트 어드레스를 포함한다. 포인터 레지스터(138)에는 프로그램 제어하에서 프로세서(402) 또는 코프로세서(47)에 의해 데이타 버스(404)로부터의 데이타(어드레스)가 로드(load)된다. DMA 채널들은 스프라이트 DMA 제어 논리(41)(8개의 채널), 코퍼(47)(1개의 채널), 오디오 DMA 제어 논리(53)(4개의 채널), 비트플레인 dmA 제어 논리(57) (6개의 채널), 디스크 및 회복 DMA 제어 논리(61)(2개의 채널), 및 블리터 DMA 제어 논리(67)(4개의 채널)에 관련된다. 각각의 25개의 DMA 채널에 대해, 18비트 RAM 어드레스 포인터는 지정된 포인터 레지스터(138)내에 기억되고, 이 채널이 DMA에 의해 억세스될 RAM(401)내의 데이타의 메모리 어드레스를 선택하기 위해서 작동될 때 DRA 버스(406)상에 출력된다. 아그너스 칩(410)으로부터의 DRA 어드레스 라인들은 멀티플렉서(69)에 의해 상위 및 하위 바이트로 칩내에서 미리 멀티플렉스되므로, 18개의 라인이 아닌 9개의 라인이 한꺼번에 아그너스 칩(410)으로 부터의 RAM 어드레스 버스(406)상에 출력됨으로써, 다른 목적을 위해 9개의 핀을 절약하게 된다. 제1도 및 제4도내의 멀티플렉서(69)는 DRA 버스(406)에 직접 접속되는 출력 버퍼 레지스터(141)을 포함한다.
RAM 어드레스 버스(406)은 RAM(401)내에 기억된 256K 워드(512K 바이트)중 1개의 워드를 어드레스하기 위해 멀티플렉스된 어드레스 데이타의 18개의 비트를 갖고 있는 9핀 버스이다. 버스(406)은 항상 칩(410)에 의해 구동되고, 외부적으로 선택되고 디멀티플렉스된 때 RAM(401)상의 어드레스 핀을 구동시키게 된다 . 버스상의 어드레스들은 데이타가 실제로 전송되기 전에 RAM(401)내에 래치되기 위해서 1/2 메모리 싸이클동안에 발생된다. RAM 어드레스의 최하위 9개 비트는 이전 메모리 싸이클의 나중 1/2 싸이클 동안에 버스(406)상에 출력된다. RAM 어드레스의 최상위 9개 비트는 현재 DMA 싸이클의 제1 1/2 싸이클 동안에 버스(406)상에 출력된다. 현재 DMA 싸이클의 제2 1/2 싸이클 동안에, RAM내에 포함된 데이타는 3개의 커스텀 칩들 중 1개의 칩내의 선택된 레지스터로 전송됨과 동시에, 다음(필요시) DMA싸이클동안에 RAM 어드레스의 최하위 9개 비트들은 RAM 어드레스 버스 상에 배치된다.
RAM이 데이타 전송 중의 수신지이면, 데이타는 이미 해독된 것으로 불리워지는 현재 DMA 싸이클의 처음 1/2 싸이클 동안에 레지스터로부터 RAM에 전송된다. 다수의 레지스터들이 마이크로프로세서(402)에 의해 해독된 때 데이타의 소오스로서 작용하지만, 단지 2개의 칩 레지스터만이 RAM(401)내로의 DMA 데이타 전송용 데이타의 소오스이다. 이들은 블리터 수신지 레지스터(113)고 디스크 데이타 해독 레지스터(도시하지 않음)이다. 이 형태의 DMA 동작은 이미 해독된 싸이클을 사용하는데, 그 이유는 데이타가 DMA 싸이클의 제1 1/2 싸이클 종료전에 RAM(401)에서 유용한 데이타를 갖기 위해서 칩 레지스터로부터 미리 해독되어야 하기 때문이다. 결과적으로, 레지스터 어드레스가 아그너스 칩(410)에 의해 레지스터 어드레스 버스(405)상에 배치될 시간이 없다. 그러므로, RGA 버스(405)상에 놓여진 미리 해독된 어드레스들은 단지 싸이클 확인용 모조 어드레스이다. 칩 레지스터 데이타는 현재 DMA 싸이클 개시시에 아그너스 칩(410)에 의해 자동적으로 출력되는데, 그 이유는 칩이 이 2개의 DMA 싸이클 중 어느 한 싸이클이 발생할 때를 미리 결정할 수 있기 때문이다.
제4도의 RAM 어드레스 발생기(45)는 RAM 어드레스 버스(406), 25개의 포인터 레지스터(138), 그룹, 6개의 모듈로 레지스터(131) 그룹, 및 6개의 백업(또는 위치) 레지스터(129) 그룹으로 구성된다.
상술한 25개의 DMA 채널들은 데이타 버스로의 억세스가 얻어질 때 동적 RAM(401)을 어드레스하기 위해 어드레스 포인터를 각각 사용한다. 레지스터(138)은 마이크로프로세서(402) 또는 코퍼(47)에 의해 개시값이 로드되는 18비트 레지스터이다. 각 포인터 DRA 버스(406)상의 어드레스로서 사용되고, 전형적으로 사용될 다음 시간을 메모리내의 다음 어드레스에 지시하기 위해 1만큼 증가된다. DMA 채널이 동일 어드레스에서 신속히 재개시되어야 할 때, 어드레스 포인터는 하드웨어 레지스터로부터 자동적으로 재로드된다.
이것은 백업 또는 위치 레지스터(129)를 사용하여 행해진다. 6개의 백업 레지스터(129)가 있는데, 4개는 4개의 오디오 채널용이고, 2개의 위치 레지스터는 2개의 코어간접 점프(jump) 레지스터용이다. 오디오 DMA의 경우에, 백업 값은 출력되는 오디오 파형이 종료될 때마다 포인터 레지스터내로 재로드된다. 코프로세서 또는 코퍼(47)의 경우에, 백업값은 2개의 코퍼 위치 레지스터(129)들 중 어느 1개에 대응하는 (스트로브)어드레스가 기입될 때마다 포인터 레지스터(프로그램 카운터)내로 재로드(스트로브) 된다.
비트플레인 DMA 제어 논리(57)과 블리터(67)은 비트-맵 비디오 영상들의 디스플레이시에 사용된다. 윈도우, 즉 스크린상에 디스플레이될 비디오 영상이 RAM(401)내에 기억된 큰 영상이 일부일 때, 픽셀들의 1개의 수평 라인의 종료부에 대응하는 어드레스로부터 이 영상용으로 주사될 픽셀들의 다음 라인의 개시부에 대응하는 어드레스로 비트플레인 포인터 레지스터(138)내에 기억된 데이타 어드레스의 값을 증가시킬 필요가 있다. 이것을 달성하기 위해서, 모듈로 레지스터(131)이 사용된다. 6개의 모듈로 레지스터(131)이 있는데, 4개는 4개의 블리터 채널용이고, 2개는 3개의 짝수와 3개의 홀수 비트플레인 채널에 의해 각각 사용된다. 모듈로 레지스터들에는 1개의 수평 라인 상의 스크린 상에 디스플레이되고 있는 최종 워드와 다음 라인 상의 제1워드의 개시부 사이의 메모리 내의 워드수와 동일한 어드레스 점프 값이 사전로드된다. 비디오 주사라인의 종료부에 도달할 때마다, 대응 포인터 레지스터(138)내에 포함된 어드레스가 단순히 1만큼 증가하는 대신에, 모듈로 레지스터(131) 내에 기억된 어드레스 점프값은 다음 비디오 주사라인을 디스플레이 할 때 사용될 데이타의 개시부에 대응하는 RAM(401)내의 데이타를 억세스하기 위해서 어드레스 포인터에 가산된다. 6개의 비트플레인은 단지 2개의 모듈로 레지스터를 갖고 있으므로, 1개의 레지스터는 짝수 비트플레인 용으로 지정되고 다른 레지스터는 홀수 비트플레인용으로 지정된다. 그러므로, 각각의 2개의 플레이 휠드마다, 스크린 상에 디스플레이되는 영상보다 더 큰 영상이 메모리 내에 기억될 수 있다. 각 블리터 채널을 자체 모듈로 레지스터를 갖고 있다. 그러므로, 브리터에 의해 처리된 각각의 3개의 소오스 영상과 1개의 수신지 영상은 메모리 내에 기억된 상이한 사이즈의 영상들을 가질 수 있지만, 스크린은 물론 단일 사이즈의 윈도우만을 디스플레이할 수 있다.
포인터 레지스터 내의 포인터들의 소정의 증가와 감소를 수행하고, 스크린을 주사하는 비임이 수평 주사라인의 종료부에 도달한 때(비디오 비임 카운트를 데이타 페치 중지 레지스터 내의 값과 비교함으로써 정해짐), 비트플레인 및 블리터 DMA 채널용으로 모듈로 레지스터(131) 내에 기억된 모듈로를 가산하거나 감산하는 18비트 가산기(137)이 RAM 어드레스 발생기(45) 내에 있다. 가산기(137)은 또한 상술한 오디오 DMA 또는 코퍼 DMA사 상 발생시에 대응 포인터 레지스터(138)내의 값들 대신에 6개의 백업 레지스터(129) 내의 값을 가산(감산)하도록 스위치될 수 있다. 백업 레지스터(129)와 모듈로 레지스터(131)은 제1도 및 제4도의 레지스터 어드레스 디코더(27)로부터의 엔에이블라인(29)의 제어하의 가산기(137)로의 출력을 갖고 있으므로, 단지 1개의 모듈로 또는 백업 값이 한번에 가산기(137)에 입력된다. 제4도에 도시한 바와 같이, 코퍼(47)과 오디오 DMA 제어기(53)에 응답하는 라인(133)상의 게이트 억제 신호는 게이트(135)를 제어한다. 이 게이트(135)는 백업 재로딩 동작을 제어하는데, 이 동안에 게이트(135)는 레지스터(138)로부터 가산기(137)로의 모든 입력들을 0으로 구동시키고, 가산기(137)은 가산 모우드 내에서 동작하므로, 백업 레지스터(129)내의 값은 레지스터(138)내의 이전 값으로 대체된다. 또한, 인버터 명령과 캐리(carry) 명령이 DMA 제어기로부터 가산기(137)에 제공된다. 캐리와 인버터 명령에 의해 제공된 2비트 입력에 응답하여 가산기(137)에 의해 4가지 동작이 수행된다. 인버터 명령은 필요시에, 예를 들어 중첩 메모리를 포함하는 소정의 블리터 동작중에 가산기를 내림차순 모두의 내에서 동작시킨다.
그러므로, 가산 또는 증가 동작 대신에 1만큼의 감산 또는 감소 동작이 선택된다. 캐리 명령은 모듈로와 백업 값을 사용하기 위해서 요구될 때 가산기가 포인터를 단순히 증가/감소시키는 대신에 2개의 입력들을 가산하거나 감산하게 한다. 가산기(137)은 다음 메모리 싸이클 동안에 사용될 어드레스를 포인터 레지스터(138)내에 배치시키기 위해 멀티플렉서(139)내로 출력되는 포인터 복귀(return) 값을 제공한다. 또한, 멀티플렉서(139)는 데이타 버스(404)로부터 입력을 수신한다. 멀티플렉서(139)로의 입력으로서 버스 상의 몇개의 비트를 반복시킴으로써 16비트 시스템 데이타 버스로부터 16개이상의 비트들이 제공된다. 데이타버스(404)상의 데이타 또는 가산기(137)로부터의 포인터 복귀 값은 멀티플렉서(139)에 의해 선택되어, 레지스터 어드레스 디코더(27)에 의해 선택된 특정 포인터 레지스터(138)내로 로드된다.
비트플레인 제어 레지스터(55)와 비트플레인 DMA 제어기(57)은 제5도에 도시되어 있다. 데이타 버스(404)로부터 데이타를 수신하는 레지스터(143)으로 도시한 몇개의 비트플레인 제어 레지스터들이 있다. 제어 레지스터(143)은 비트플레인을 각각 엔에이블시키는 비트를 포함하고 레지스터 어드레스 디코더(27)로부터의 엔에이블 신호의 제어하에서 로드된다. 레지스터(143)으로부터의 출력들은 타이밍 입력과 비트플레인 가동(run) 신호와 함께 상태 순차기(145)와 병렬로 입력된다. 순차기(145)는 각각의 6개의 비트플레인 DMA 채널용 6개의 출력 라인들 중 1개의 라인을 펄스화시킨다. 각 출력 라인은 RAM 어드레스 발생기(45)와 레지스터 어드레스 엔코더(43)으로 보내진다. 제4도의 RAM 어드레스 발생기(45)로의 출력들은 RAM 내의 이 어드레스에 기억된 비트플레인 데이타를 억세스하기 위해서 RAM 어드레스 버스(406)상의 출력용으로 특정 포인터를 선택하기 위해 사용된다. 레지스터 어드레스 엔코더(43)으로의 동일 출력들은 엔코더가 메모리로부터 비트 플레인 데이타에 대한 수신기를 선택하기 위해서 레지스터 어드레스 버스(405)상에 출력되어야 하는 8비트 코드를 선택하게 한다. 라인(149)상의 비트플레인 가동 신호는 메모리 억세스를 요구할 때 우선순위 제어 논리(73)내의 비트플레인 개시/정지 제어 논리로부터 발생되어 비트플레인 DMA 제어기에 우선순위를 부여한다. 가동 신호는 디스플레이가 온 상태이므로 우선순위를 부여 받아야 한다는 것을 비디오 비임 카운트가 표시할 때에만 출력된다. 이것은 비디오 비임 카운트가 비트플레인 제어레지스터들 간에 포함된 레지스터 윈도우 개시 및 정지와 데이타 페치 개시 및 정지 레지스터들 내에 셋트된 한계 사이에 있다는 것을 비트플레인 개시/정지 제어 논리가 표시할 때에 발생한다. 라인 상의 출력들을 엔코더(43)과 포인터 레지스터(138)에 발생시키기 위한 제5도에 도시한 회로는 모든 DMA 제어기용으로 사용된 회로와 유사하다.
동기 카운터와 광펜 레지스터(31)은 제3도에 도시되어 있다. 이 회로는 레지스터 어드레스 디코더(27)로부터의 라인(29)들 중 1개의 라인에 의해 엔에이블된 때 데이타 버스(404)를 억세스한다. 광펜 입력신호(33)은 광펜 레지스터 회로(119)내로 공급되고, 텔리비젼 동기 신호(35)는 동작을 프로세서의 동작과 동기화시키도록 동기 비디오임 카운터(117)에 의해 디스플레이에 출력된다. 광펜 신호(33)은 회로에 접속된 광펜 포트로부터 수신되고, 비임이 광펜을 통과한 때 비임 카운트가 레지스터 어드레스 디코더(27)의 제어하에서 데이타 버스(404)상에 로드되게 할 수 있다. 동기 비디오 비임 카운터(117)의 출력은 코퍼(47), 스프라이트 수직 위치 비교기(39) 및 우선순위 제어 논리(73)내에 입력된다. 비임 카운터는 DMA 제어기가 다음 메모리 싸이클을 요구할 수 있는지를 결정할 때, 스프라이트를 디스플레이할 때, 및 공백 기간 중에 또는 디스플레이 중간에서 코퍼(47)에 의해 레지스터의 내용을 변경시킬 때 중요하다.
스프라이트용 수직 위치와 비교 논리는 제6도에 더욱 상세하게 도시되어 있다. 수직 개시 위치 레지스터(153)과 수직 정지 위치 레지스터(155)에는 레지스터 어드레스 디코더(27)의 제어하에서 8개까지 가능한 스프라이트를 위해 데이타 버스(404)로부터의 데이타가 로드된다. 각 스프라이트 채널은 스프라이트의 디스플레이를 개시 및 정지시키기 위해서 스프라이트 DMA 제어기(41)내의 상태 순차기에 2개의 출력 라인(120)을 보낸다. 동기 비디오 비임 카운터(117)은 카운트의 수직부를 스프라이트 수직 위치 비교기(39)에 출력시킨다. 비교기(39)로의 다른 입력들은 각 스프라이트용 수직 개시와 정지 위치 레지스터에 의해 제공된다. 수직 카운트가 레지스터(153과 155)중 어느 한 레지스터 내의 값을 초과하거나 동일할 때, 출력은 대응하는 라인(120)을 통해 스프라이트 DMA 제어기(41)로 보내진다. 스프라이트 DMA 제어기는 각각의 8개의 스프라이트용 수직 위치 비교기 출력들을 수신하고 각각의 8개의 스프라이트용 출력 라인을 갖고 있는 RAM 어드레스 발생기(45)내의 레지스터 어드레스 엔코더(43)과 포인터 레지스터(138)을 교대로 구동시키는 상태 순차기를 갖고 있다.
코퍼(47)은 명령을 페치시키기 위해 1개의 DMA 채널을 사용하는 코프로세서이다. 코퍼(47)에 대응하는 포인터 레지스터(138)내에 기억된 포인터는 명령 또는 프로그램 카운터이고, 코퍼용 프로그램 명령의 메모리 내의 개시 어드레스로 사전 로드되어야 한다. 코퍼는 프로세서(402)가 프로그램 논리를 실행할 필요없이 전체 그래픽 시스템을 거의 제어한다. 또한, 코퍼는 칩 상의 대부분의 레지스터의 내용에 직접적으로 영향을 미칠 수 있다. 코퍼는 그래픽 디스플레이의 미드스크린(midscreen) 변형을 지시하고 디스플레이들간의 수직 공백 기간중에 발생해야 하는 레지스터 값의 변경을 지시하기 위한 강력한 도구로서 작용한다. 그 중에서 특히, 코퍼는 레지스터 업데이트를 제어하고, 스프라이트를 재배치시키며, 컬리 팰리트를 변경시키고, 오디오 채널을 업데이트시키며, 블리터를 제어할 수 있다. 코퍼(47)은 코프로세서이고 단지 3가지 명령으로 구성되는 자체 명령 셋트를 갖고 있다. 코퍼는 x와 y좌표로서 지정된 특수 스크린 위치에 도달하도록 비임이 스크린을 주사하기를 WAIT할 수 있고, 즉시(immediate) 데이타 값을 싸이클들은 코퍼(47)에 의해 요구하므로, MOVE와 SKIP 명령 실행을 위해 4개의 메모리 싸이클이 요구되고, WAIT 명령 실행을 위해서는 6개의 메모리 싸이클이 요구된다.
MOVE 명령은 데이타를 RAM(401)로부터 레지스터 수신지로 전송한다. MOVE 명령 내의 제1워드는 수신지 레지스터의 어드레스를 포함하고, MOVE 명령의 제2워드는 무관하다(이것은 전송될 데이타를 포함한다). WAIT 명령은 비임 위치 카운트가 명령 내에 지정된 좌표 이상이 될때까지 코퍼(47)을 대기시킨다. 대기중에, 코퍼는 시스템 데이타 버스(404)를 오프시키고, 어떠한 메모리 싸이클도 사용하지 않는다. 제1명령 워드는 비임 위치의 수직과 수평 좌표를 포함한다. 제2워든 비임 위치 카운트의 어드 비트가 비교를 행할 때 사용되는지를 나타내는 마스크(mask)를 형성하기 위해 사용되는 엔에이블 비트를 포함한다. SKIP 명령은 비디오 비임 위치 카운트가 명령 내에 제공된 값 이상인 경우에 코퍼가 다음 명령을 스킵시키게 된다.
코퍼(47)은 제7도 내에 더욱 상세하게 도시되어 있다. 제1명령 레지스터(173)은 데이타 버스(404)로부터 수신된 제1명령 워드의 내용을 기억하고, 제2명령 레지스터는 데이타 버스(404)로부터 수신된 제2명령워드의 내용을 수신한다. 버스(404)로부터 레지스터(173과 175)로의 데이타의 로딩은 레지스터 어드레스 디코더(27)로부터 라인(29)상에 보내진 엔에이블 신호에 의해 제어된다. 제1명령 워드와 제2명령 워드 내의 최하위 비트는 3개의 가능한 명령들 중 어느 명령이 실행될지를 결정하기 위해 사용된다. 그러므로, 단일 비트 제어 라인(177과 181)은 제1과 제2명령 워드의 최하위 비트를 명령 연산 코드 디코더(179) 내에 입력시킨다. 연산 코드 디코더(179)는 실행될 명령을 결정하기 위해 입력의 2개의 비트를 사용하고, MOVE 명령 라인(183), SKIP 명령 라인(185), 또는 WAIT 명령 라인(187)을 인에이블시키게 된다. 요구된 명령을 식별하는 이 3개의 출력 라인들은 상태 순차기(199)내에 입력된다.
제1명령 레지스터 내에 로드된 최하위 8개의 비트(비트 0은 포함하지 않음)는 지연 래치(191)에 출력된다. MOVE 명령이 코퍼(47)에 의해 실행되며, 이 8개의 비트들은 제2워드 명령의 페치중에 데이타 버스상에 있는 데이타의 수신지인 레지스터의 어드레스를 지정한다. MOVE 명령이 코퍼에 의해 실행되며, 지연 래치(191)로부터의 8개의 비트들은 나중에 버퍼 회로(21)을 통해 레지스터 어드레스 엔코더(43)으로부터 레지스터 어드레스 버스(405)로 출력된다. RGA 버스(405)상의 8개 비트의 배치는 어드레스되는 특정 레지스터가 코퍼에 대응하는 포인터 레지스터 내에 지정된 RAM(401) 어드레스로부터 데이타 버스(404)에 출력되는 데이타를 수신할 수 있게 된다.
동기 카운터 회로(31) 내에 포함된 비디오 비임 위치 카운터(117)은 데이타의 15개 비트를 코퍼(47)내의 비교기(193)에 출력시킨다. 비디오 비임 위치 카운터(117)의 내용은 디스플레이를 주사하는 전자 비임이 스크린 상에 도달한 특수 위치를 표시한다. WAIT 또는 SKIP 명령 중의 제1명령 워드 레지스터 내의 비트 1-15는 수평(비트 1-7)과 수직(비트 8-15) 비임 위치를 지정하고, AND 게이트(195)로의 한 셋트의 입력을 형성한다. 비임 카운터로부터 입력된 값은 비교기(193)내에서 AND 게이트(195)로부터 입력된 값과 비교된다. AND 게이트(195)로의 다른 세트의 입력은 제2명령 워드 레지스터(175)내에 포함된 최하위 비트(비트 0은 포함하지 않음)에 의해 제공된다. 이 비트들은 마스크를 형성하기 위해 사용되는 엔에이블 비트이므로, 비교기(193)은 WAIT 또는 SKIP 명령 중에 비교를 행할 때 소정 비트를 무시하게 된다. 비교기(193)내에서, 제2명령 워드 내의 엔에이블 비트에 의해 마스크되지 않는 제1명령워드에 의해 지정된 비임 위치 비트는 소정의 다른 동작이 취해지기 전에 비디오 비임 위치 카운터(177)의 계수에 대해 검사된다. 비교기(193) 출력은 상태 순차기(199)에 보내진다.
상태 순차기(199)는 점프 어드레스 스트로브와 비임 카운트 비교결과인 입력 및 실행되는 명령을 식별하는 입력에 응답하여 3개의 출력을 제공한다. 라인(219)상의 페치 출력은 레지스터 어드레스 엔코더(43)과 RAM 어드레스 발생기(45)내의 포인터 레지스터(프로그램 카운터)에 보내지므로, 코퍼(47)은 우선순위 제어 논리(73)이 허용하는 경우에 메모리를 억세스할 수 있다. 출력라인(221과 223)은 제4도 내에 도시한 RAM 어드레스 발생기(45)에 보내진다.
제4도내의 라인(133)상의 게이트 억제 신호는 함께 와이어드-OR(wired-OR)되어 있는 출력 라인(221과 223)으로부터 발생되므로, 어느 한 출력은 가산기(137)이 백업(위치) 레지스터(129)내의 값을 프로그램 카운터(138)내로 대체시키게 한다. 또한, 2개의 출력, 즉 Jump 1과 Jump 2는 코퍼(47)에 의해 실행될 다음 명령의 RAM(401) 내의 어드레스를 포함하는 2개의 각각의 위치 레지스터(129)에 보내진다. 제1위치 레지스터(129)와 제2위치 레지스터(131)은 코퍼(47)에 의해 사용된 2개의 간섭 점프 어드레스를 포함한다. 코퍼(47)은 프로그램 카운터[포인터 레지스터(138)]을 사용하여 RAM(401)로부터 명령을 페치시켜, 각 데이타 페치후에 프로그램 카운터를 증가시키게 된다.
점프 스트로브가 기입되며, 대응 위치 레지스터 내에 기억된 어드레스는 코퍼(47) 프로그램 카운터 내에 로드된다. 이것은 코퍼(47)을 메모리 내의 새로운 위치로 점프시키고, 이로부터 다음 프로그램 명령이 페치된다. 프로그램 명령 페치는 레지스터 어드레스 디코더(27)로부터의 다른 점프 어드레스 스트로브가 발생할때까지 연속적으로 계속된다. 각 수직 공백 기간의 개시부에서, 제1위치 레지스터(129)내의 어드레스는 프로그램 카운터를 시동시키기 위해 자동적으로 사용되고, Jump 1 출력이 작동된다. 그러므로, 수직 공백 기간의 종료부가 발생하면, 코퍼(47)은 제1위치 레지스터(129) 내에 지정된 RAM내에서 DMA(401)내의 명령으로 동작을 자동적으로 재개시키게 된다.
블리터 DMA 제어기(65) 동작에 대해서는 제4도와 제5도를 참조하여 충분히 기술되어 있다. 블리터 제어 레지스터는 데이타를 버스(404)로부터 DMA(63)들 중 1개의 레지스터 내로 전송하기 위해서 레지스터 어드레스 디코더(27)로부터의 라인(29)에 의해 각각 엔에이블된다. 블리터 제어 레지스터(63)의 출력들은 비트플레인 제어기(57)에 관련하여 기술한 상태 순차기(145)와 구조가 유사한 상태 순차기에 보내진다. 상태 순차기 출력들(4개의 브리터 DMA 채널용 모두 4개)은 라인(411)을 통해 버스 제어 논리(412)에 데이타 버스 요구를 발생시키기 위해서 우선순위 요구 신호를 우선순위 제어 논리(73)에 제공하고 레지스터 어드레스 버스(405)상에 특정 레지스터를 선택하는 코드를 출력시키는 레지스터 어드레스 엔코더(43)에 입력된다. 또한, 이 4개의 출력들은 포인터 레지스터들 중 1개의 레지스터가 선택되고, 가산기(137)로의 입력들로서 인버트 명령과 캐리 명령을 발생시키기 위한 부수적인 가산기 제어 회로가 존재하는 RAM 어드레스 발생기(45)에 보내진다.
제1도에 도시한 오디오 DMA 제어기(53)의 실행은 제4도와 제5도에 도시한 비트플레인 DMA 제어용 회로와 매우 유사하다. 좌측과 우측 오디오 제어 정보를 보유하기 위한 단일 셋트의 레지스터(51)이 있고, 이 레지스터들의 출력들은 제5도에 도시한 비트플레인 DMA 채널용 상태 순차기(145)와 유사한 4개의 출력을 갖고 있는 상태 순차기에 접속된다. 그러나, 비트플레인과 블리터 DMA 제어기의 경우에서와 같이 모듈로 레지스터가 아닌 백업 레지스터에 오디오 DMA 제어기에 의해 부수적인 출력들이 제공된다. 이 출력들은 코퍼(47) 점프 출력들과 같이 함께 와이어드-OR되고, 가산기(137)에 의한 가산이 아닌 대체를 행하기 위해서 게이트(135)에 게이트 억제 신호를 인가시키는 라인(133)을 공급한다. 이와 대조적으로, 비트 플레인고 블리터 제어 레지스터(55와 63)의 경우에, 적당한 때에 모듈로 레지스터(131)에 출력을 보낼 수 있게 하기 위해서 디스플레이 윈도우 개시 및 정지 레지스터 또는 블리터 사이즈 레지스터와 같은 소정 레지스터에는 디스플레이 위치 카운트 데이타가 로드된다.
블리터(67)의 하드웨어는 제2도의 동작 계통도 내에 도시되어 있다. 데이타 버스(404)상의 데이타는 레지스터 어드레스 디코더(27)의 제어하에서 A와 B 소오스 데이타 레지스터(77과 79)내에 입력된다. A와 B 소오스 데이타 레지스터(77과 79)는 각각 2개의 15비트 레지스터로 구성되는데, A와 B의 구 소오스 데이타 레지스터(77a과 79a) 각각은 레지스터(77과 79)에 이미 입력된 데이타 워드를 각각 기억한다. A와 B 소오스 데이타 레지스터는 각각 2개의 16비트 워드를 16비트 배럴 쉬프터(barrel shifter)(81)내에 출력시킨다. 또한, 데이타 버스(404)상의 데이타는 제1워드와 제2워드 A 마스크 레지스터(83과 85)에 입력된다. 이 마스크 레지스터로부터의 출력은 A 소오스 마스크 논리(90)내에 로드되기 위해 입력된다. A 마스크 논리(90)은 레지스터(77)내의 워드가 수평 라인용 블리터 윈도우 내의 첫번째 및/또는 최종 워드일 때 제1도의 블리터 DMA 제어기(65)로부터[모듈로 레지스터(131)도 엔에이블시킬 수 있는] 제어신호를 수신한다.
또한, 데이타 버스(404)는 C 소오스 데이타 레지스터(89)내로의 입력을 제공하므로, 레지스터 어드레스디코더(27)의 제어하에서 로드된다. C 소오스 데이타 레지스터(89)는 A, B 및 C 레지스터로부터 수신하는 3개의 입력에 따른 256가지 가능한 논리 동작들 중 소정의 동작을 수행하도록 제어될 수 있는 논리 유니트인 논리 유니트(91)에 데이타를 보낸다. 블리터 제어 레지스터(63)중의 쉬프트 카운트 레지스터(93)과 B쉬프트 카운트 레지스터(95)에는 데이타 버스(404)로부터의 데이타의 4개의 비트가 각각 로드된다. 4비트 출력은 쉬프트 카운터 레지스터(93과 95)에 의해 배럴 쉬프트(81)에 제공된다. 배럴 쉬프트(81)은 A와 B 소오스 데이타 레지스터(77과 79)용 15개까지 비트의 쉬프팅을 수행할 수 있는데, 쉬프터는 각 소오스로부터의 32개의 비트를 포함한다. 각 소오스에 대한 배럴 쉬프트(81)로부터의 16비트 출력은 A와 B 보유(holding) 레지스터(101 및 102)에 제공된다. 보유 레지스터(101과 102)는 16비트 출력을 갖고 있다. 블리터 제어 레지스터(63)들 중의 한 레지스터는 데이타 버스(404)로부터 데이타 워드를 수신한다. 이 블리터 제어 워드 내의 8개의 비트는 논리 유니트(91)에 입력되는 다중 최소항(multi-minterm) 선택 비트를 포함하고, 8개의 유용한 최소항들 중 어느 최소항이 A, B 및 C 소오스 입력에 따라 수행될 수 있는 256개의 가능한 논리 연산들 중 1개의 연산을 선택하기 위해 조합될 것인지를 선택한다.
또한, 논리 유니트(91)은 충전(fill) 논리 회로를 포함한다. 이 충전 논리 회로는 스크린 상에 디스플레이되고 있는 오브젝트의 수평 아웃라인들 사이에 비트를 충전하도록 동작한다. 이것은 블리터 제어 레지스터(63)들 중의 한 레지스터가 휠 동작을 엔에이블시키는 비트로 로드된 경우에 데이타를 발생시킨다. 각 비트 및 각 워드용 충전 논리는 다음 비트용 또는 현재 워드에 따른 블리터 동작이 완료되는 경우에 다음 워드의 제1비트용으로 논리에 입력되는 라인(107)상의 충전 실행 신호를 갖는다. 익스클루시브 OR회로(108)은 1이 수평 라인 상에서 처음 발견될 때 다른 1이 라인 상에서 발견될 때까지 라인 상의 모든 후속 0을 1로 변경시키게 된다. 논리 유니트(91) 출력은 D 보유 레지스터(113)에 입력된다. D 보유 레지스터로부터의 출력은 데이타 버스(404)상에 발송되어, RAM(401)내에 기억될 수 있다.
데이타는 데이타 버스(404)를 통해 디스플레이 엔코더(데니스) 칩(420)으로 이송된다(제9도). 쌍방향성 버퍼(313)은 데이타 버스에 접속되고, 이 데이타 버스의 연속부(315)는 데니스 칩(42) 상의 회로 전반에 걸쳐 계속된다. 이 데이타 버스(315)는 16비트 폭이다. 여러 레지스터들은 데이타를 수신하거나 데이타 버스(315)상에 데이터를 보낸다. 이 레지스터들은 레지스터 어드레스 버퍼(405) 및 비트폭인 레지스터 어드레스 버스 연속부(325)에 접속된 버퍼 회로(323)을 통해 어드레스 디코더(319) 내에 배치된 수신지 명령을 사용하는 레지스터 어드레스 디코더(319)로부터의 로드 엔에이블 신호(317)에 의해 제어된다. 레지스터 어드레스 디코더(319)는 수신지 명령을 디코드시키고, 특정한 수신지 레지스터 내외로의 데이타 전송을 엔에이블시키도록 라인(317)들중 1개의 라인 상에 출력을 제공한다.
데이타 버스(315)에 접속된 레지스터들 중에는 비트 플레인 제어 레지스터(327)이 있다. 이 레지스터(327)은 제어 신호를 비트플레인 선택 직렬기 회로(329)에 보낸다. 이 비트플레인 선택 직렬기 회로(329)는 6개가 있는 비트플레인 데이타 레지스터(331)로부터 수신된 비트플레인 데이타용 직렬기로서 작용한다. 각 레지스터(331)은 레지스터 어드레스 디코더(319)에 의해 선택된 때 데이타를 직렬기(329)에 보내기 위해 접속된다. 비트프레인 선택 직렬기(329)의 출력은 6개의 비트플레인 각각에 대응하고 비트플레인 버스(333)을 구성하는 6개의 비트이다. 비트플레인 버스(333)은 컬러 레지스터 선택 데이타를 충돌 검출 논리(335)와 디스플레이 우선순위 제어 회로(337)에 출력시키기 위해 접속된다.
수평 동기 비임 카운터(339)는 데니스 칩 상에 존재하고, 아그너스 칩(410)상의 비임 카운터와 동기화된다. 출력은 비트플레인 제어 레지스터(327)에 접속되고, 스프라이트 수평 위치 비교기 논리(341)에 접속된다.
스프라이트 수평 위치 레지스터(343)은 데이타 버스(315)로부터 데이타를 수신한다. 8개의 스프라이트 수평 위치 레지스터(343) 각각으로부터의 출력은 스프라이트 수평 위치 비교기 논리(341)에 제2입력으로서 입력된다. 이 스프라이트 수평 위치 비교기 논리(341)은 수평 동기 비임 카운터(339)로부터의 8-비트 워드를 스프라이트 수평 위치 레지스터(343)들 각각으로부터의 워드와 비교한다.
데이타 버스(315)로부터 데이타를 수신하는 각각의 8개의 스프라이트에 대해 데이타 버스(315)로부터 데이타를 수신하는 2개의 8-비트 스프라이트 데이타레지스터(345)가 있다. 이 스프라이트 데이타 레지스터(345)는 스프라이트 버스(349)를 형성하기 위해 직렬기로서 작용하고 8개의 스프라이트 각각에 대응하는 8쌍의 신호 라인을 출력시키는 스프라이트 선택 직렬기 회로(347)에 컬러 레지스터 선택 데이타를 출력시킨다. 그러므로, 스프라이트 버스(349)는 16개의 비트 폭이다. 스프라이트 수평 위치 비교기 논리(341)로부터의 출력은 스프라이트 선택 직렬기(347)에 입력된다. 스프라이트 버스(349)는 컬러 레지스터 선택 데이타를 충돌 검출 논리(335)와 디스플레이 우선순위 제어 논리(337)에 출력시키기 위해 접속된다.
충돌 제어 레지스터(351)은 데이타 버스(315)로부터 데이타를 수신한다. 충돌 제어 레지스터(351)로부터의 출력은 충돌 검출 논리(335)에 입력된다. 충돌 검출 논리(335)로부터의 16-비트 출력은 데이타를 데이타 버스(315)상에 발송하기 위해 접속되는 충돌 기억 레지스터(353)에 입력된다.
비트플레인 우선순위 제어 레지스터(355)는 데이타 버스(315)로부터 데이타를 수신한다. 출력은 디스플레이 우선순위 제어 논리(337)에 접속된다. 디스플레이 우선순위 제어 논리(337)은 5-비트 컬러 레지스터 선택 데이타를 컬러 선택 디코더(357)에 보낸다.
컬러 선택 디코더(357)은 영상 디스플레이는 발생시키기 위해 사용된 적색, 녹색 및 청색 총(gun)을 제어하는 12-비트 코드를 사용하여 비디오를 디스플레이에 제공하도록 작용하는 32개의 컬러 디스플레이(359)들 중 1개의 레지스터들을 엔에이블시키도록 독립적으로 선택되는 32대의 출력라인을 갖고 있다. 32개의 컬러 레지스터(359)에는 데이타 버스(315)로터의 데이타가 로드된다.
비트플레인 버스로부터 입력을 수신하는 논리(360)을 보유 및 변형시키기 위해 비디오 출력이 보내진다. 논리(360)은 비트플레인 제어 레지스터(355)중의 한 레지스터로부터의 출력에 의해 엔에이블된다.
또한, 마우스(mouse) 카운터(361)과 같은 보조 주변 장치 제어기들이 데이타 버스(315)에 접속될 수도 있다. 이러한 마우스 카운터(361)은 시판중인 커서 위치설정 장치에 사용된다. 이러한 마우스 카운터(361)은 데이타를 수신하여, 이 데이타를 데이타 버스(315)상에 덤프(dump)시킨다.
6개가 있는 비트플레인 데이타 레지스터(331)은 각각 16개의 비트폭이다(제10도). 각각의 6개의 비트플레인 데이타 레지스터(331)은 비트플레인 직렬기(329)내의 6개의 비트플레인 병렬-직렬 레지스터(363)들 중 대응하는 1개의 레지스터내로 16-비트 정보를 통과시킨다. 비트플레인 데이타 레지스터(331)내의 데이타는 모든 작동 비트플레인에 대한 데이타가 DMA 제어하에서 비트플레인 데이타 레지스터(331)로 전송된 후에 대응하는 병렬-직렬 디스플레이(363)으로 전송된다. 각 비트플레인 병렬-직렬 레지스터(363)은 비트플레인 데이타 버스(333)을 구성하는 6개의 출력 라인들 중 대응하는 한 라인상에서의 직렬 형성시에 비트플레인 정보를 통과시킨다. 이것은 비트플레인 레지스터 1로의 라인(317)이 이 레지스터가 로드되게 한 후에 일어나므로, 비트플레인 제어 레지스터(327)로부터의 라인(365)상의 비트플레인 제어 레지스터 엔에이블 신호에 응답하여 비트플레인 레지스터 각각에 의한 데이타의 동시 덤프를 대응하는 직렬기내에 트리거시키게 된다.
데니스 칩의 스프라이트 선택 직렬기(347)(제11도)은 상술한 비트플레인 선택 직결기(329)와 같이 병렬-직렬 변환 및 직렬화를 사용한다. 스프라이트 데이타 레지스터(345)는 각각의 8개의 스프라이트에 대한 2개의 16-비트 스프라이트 데이타 레지스터(367)로 구성된다. 총 8쌍의 16-비트 레지스터(367)은 데이타 버스(315)로부터 데이타를 수신한다. 각각의 스프라이트 데이타 레지스터(367)은 역시 총 8쌍이 있는 대응 스프라이트 병렬-직렬 레지스터(369)에 접속된다. 각각의 16개의 스프라이트 병렬-직렬 레지스터(369)는 스프라이트 버스(333)을 구성하는 16개의 출력 라인들 중 한 라인상에 일렬로 스프라이트 데이타를 공급한다. 각 스프라이트용 레지스터(369)의 각 쌍으로부터의 출력은 스프라이트 수평 위치 비교기 논리(341)로부터 각각의 레지스터(369)까지 8쌍의 출력 라인(371)상의 신호의 제어하에 있게 된다.
충돌 검출 논리(335)는 제12도에 더욱 상세하게 도시되어 있다. 충돌은 소정의 8개의 스프라이트 또는 2개의 플레이휠드를 디스플레이하기 위해 사용된 소정의 비-제로 비트에 의해 정해진 바와 같은 2개 이상의 오브젝트들이 동일 픽셀 위치내에서 중첩할 때 검출될 수 있다. 2단(stage)의 NAND게이트(373 및 375)[게이트(373)은 제1단이고, 게이트(375)는 제2단이다.]로 구성되는 논리 어레이 회로망은 충돌 검출 논리를 형성한다. 제1단 NAND게이트(373)은 비트플레인 버스(333)과 스프라이트 버스(349)의 각 라인 및 충돌 제어 레지스터(351)로부터 출력된 각 라인으로부터 [인버터(372)를 사용하여] 반전된 데이타 또는 비-반전 데이타를 수신한다. 각각의 제2단 NAND게이트(375)는 소정의 스프라이트 또는 플레이휠드가 MINTERM을 형성하게 하기 위해 제1단 NAND게이트(373)으로부터의 선택된 수의 출력을 입력으로서 접속시켰다. 충돌 제어 레지스터(351)내에 로드된 비트들은 홀수 스프라이트와 특수 비트플레인이 충돌 기억 레지스터(353)내의 비트의 셋팅시에 검출 논리(335)에 의해 사용될지의 여부를 결정한다. 제어 레지스터(351)내의 비트에 의해 선택된 실행에 따라 충돌을 검출하기 위해 사용된 비트들의 극성으로 정해질 수도 있다.
비트플레인 및 디스플레이 우선순위 회로부는 제13도에 도시되어 있다. 디스플레이 우선순위 제어 논리(337)은 2단의 NAND 게이트(377 및 378)로 구성되는 논리 어레이 회로망에 의해 실행된다. 제1단 NAND게이트(377)은 각각의 비트플레인 버스(333)의 6개의 라인 및 스프라이트 버스(349)로부터의 16개의 라인들로부터[인버터(376)을 통해] 반전된 데이타 및 비-반전 데이타를 수신하고, MINTERM 어레이를 설정시키기 위해 비트플레인 우선순위 레지스터(355)로부터 입력을 수신한다. 선택된 조합의 제1단 NAND게이트(377) 출력들은 컬러 선택 디코더(357)에 보내진 5비트 출력을 발생시키기 위해 사용된다. 스프라이트는 서로에 관련하여 고정된 우선순위를 갖지만, 스프라이트 및 서로에 관련된 짝수 및 홀수 비트 플레인들의 우선순위는 비트플레인 우선순위 레지스터로 제어될 수 있다.
컬러 선택 디코더(357)은 적색, 녹색 및 청색 비디오 색도(color intensity)에 대한 3개의 4-비트 컬러 코드 워드를 선택하기 위해 32개의 컬러 레지스터(359)에 대응하는 32개의 제어 라인을 제공한다. 각 컬러 레지스터에는 데이타 버스(315)로부터 컬러를 정하는 비트가 로드된다.
동작 이론
아미가 퍼스널 컴퓨터를 사용할 때 디스플레이 스크린상에 나타날 수 있는 소정의 디스플레이에 대한 2개의 기본부가 있다. 첫째는 스프라이트라고 부르는 용이하게 이동가능한 오브젝트이다. 둘째는 플레이휠드 또는 플레이휠드 오브젝트라고 부르는, 이동하지 못하거나 단지 느리게 이동할 수 있는 오브젝트이다. 플레이휠드는 스프라이트와 오브젝트가 디스플레이될 수 있거나 스프라이트와 오브젝트가 상호작용할 수 있는 배경이다. 플레이휠드 오브젝트는 단순히 플레이휠드의 작은 부수적인 부분이지만, 아미가 시스템내의 소프트웨어에 의해 몇가지 종류의 오브젝트인 것으로 간주된다. 플레이휠드 오브젝트들이 비-이동 오브젝트로서 분류되지만, 이 오브젝트들은 플레이휠드 동화라고 부르는 기술을 사용함으로써 이동하는 것처럼 보일 수 있다. 그러므로, 블리터는 운동 착각을 제공하기 위해 플레이휠드 오브젝트들이 그려지는 배경 또는 플레이휠드를 모아 회복시키는 동안에 플레이휠드 오브젝트들이 스크린 상에 신속히 다시 그려지게 한다.
플레이휠드 디스플레이에 대한 2가지 상이한 동작 모우드, 즉 정상 해상도 모우드와 고해상도 모우드가 있다. 정상 해상도 모우드내에는 스크린의 각 수평 라인들을 형성하는 320개의 화소(picture element) 또는 픽셀(pixel)이 있다. 이것은 표준 가정용 텔리비젼용으로 사용된 해상도이다. 고 해상도 화상들은 통상적으로도 고해상도 단색(monochrome) 또는 RGB 모니터에만 이용될 수 있다. 고 해상도 모우드내에는 스크린 디스플레이의 각 수평 라인을 형성하는 640개의 픽셀이 있다. 통상적으로 디스플레이 스크린당 약 200개의 라인들이 수직 방향으로 있다. 그러나, 인터페이스(interlace) 모우드내에는 디스플레이 스크린당 약 400개의 라인이 수직 방향으로 있다. 인터페이스 모우드내에서, 비디오 주사 회로는(초당 60회 발생하는) 1프레임 동안에 한 셋트의 200개 라인을 디스플레이하지만, 바로다음 디스플레이 프레임상에서, 비디오 주사 회로는 각 프레임의 200개 라인을 서로의 사이에 배치시킴으로써 스크린상에 상이한 200개 라인을 인터페이스한다. 이것은 수직 해상도를 배가시킨다. 비디오 비임 카운터(117)로부터의 카운트는 2개의 프레임을 구별하기 위해 인터페이스 모두드용으로 사용된 장-프레임(long-frame) 비트를 포함한다. 비트플레인 제어레지스터(55 및 327)은 수평 비트 해상도와 수직 해상도용 인터페이스 모우드를 정하는 비트를 포함한다. 한 비트는 고 해상도 모우드를 선택하고, 다른 비트는 인터페이스 모우드를 엔에이블시킨다.
아미가 시스템내에서, 사용자는 가능한 4096개의 유용한 컬러중에서 32개의 컬러를 포함하는 컬러 팰리트를 정할 수 있다. 정상 해상도 모우드내에서, 팰리트내의 32개 컬러들 중 소정의 컬러가 선택될 수 있고, 디스플레이되는 전체 화상을 형성하는 픽셀 소자들중 소정의 픽셀 소자와 정합될 수 있다. 픽셀은 비디오 디스플레이내의 최소 화소이다. 고 해상도 모우드내에서, 각 픽셀은 컬러 팰리트내에 포함된 16개 컬러들 중 소정의 컬러일 수 있다. 특수 보유 및 변형 동작 모우드내에서, 3616개까지의 컬러가 표준 텔레비젼의 경우에 스크린상에 동시에 기입될 수 있거나, 4096개까지의 컬러가 RGB 모니터의 스크린 상에 그려질 수 있다.
스크린 상에 디스플레이된 각 픽셀은 아미가 등속 호출 메모리(401)내에 1개 이상의 비트로 표시되어 있다. 그러므로, 각 픽셀마다에는, 32개의 컬러 레지스터(359)들 중 어느 레지스터가 이 픽셀에 관한 컬러 정보를 포함하는지를 결정하는 컴퓨터 메모리내의 대응 셋트의 비트가 있다. 픽셀들이 2-차원(수평과 수직)어레이로 구성되기 때문에, 플레이휠드를 컬러 플레인이라고 부른다. 각각의 플레이휠드 픽셀의 컬러를 결정하는 비트를 포함하는 RAM(401)내의 대응부들을 비트플레인이라고 부른다. 각 픽셀용으로 사용될 컬러의 값은 비트플레인의 일부로서 메모리내에 직접 기억되는 것이 아니라, 앞에서 컬러 팰리트라고 부른 컬러데이블내에 기억된다. 32개의 컬러 레지스터(359)들은 디스플레이 엔코더 칩(420)상에 포함되고, 컬러 선택 디코더(357)로부터의 32개의 라인들 중 한 라인에 의해 각각 선택될 수 있는 한 셋트의 12-비트 레지스터로 구성된다. 그러므로, 디스플레이상의 소정의 특정 픽셀은 32가지 상이한 컬러들 중 소정의 컬러를 가질 수 있다. 각각의 32개의 레지스터의 내용은 사용자에 의해 선택된다. 각 레지스터내에 포함된 12개의 비트는 각 컬러 레지스터마다 총 4096개의 가능한 컬러를 선택하게 한다. COLOR0 레지스터는 항상 스크린의 배경 컬러용으로 지정된다. 배경 컬러는 다른 오브젝트가 전혀 존재하지 않을 때 디스플레이상의 소정 영역내에 나타내는 컬러인데, 그 이유는 모든 다른 오브젝트들이 배경보다 높은 우선순위를 갖기 때문이다.
2가지 이상의 컬러 팰리트로부터 특정 픽셀의 컬러를 선택하기 위해서는, 몇개의 컬러 레지스터들 중 1개의 레지스터가 선택될 수 있도록 스크린상에 디스플레이된 각 픽셀에 대응하는 RAM(401내의 1개 이상의 비트가 있어야 한다. 플레이휠드의 컬러를 지정하기 위해 단 1개의 비트플레인이 사용되면, 이 플레이휠드내의 각 픽셀은 컬러 레지스터 COLOR0 및 COLOR1내에서 지정된 컬러만을 가질 수 있다. 픽셀에 대한 부수적인 컬러 선택은 몇개의 비트플레인이 각 픽셀마다 컬러 레지스터를 지정하기 위해서 조합될 때 유용하게 된다. 몇개의 비트플레인이 온 스크린 픽셀 소자의 컬러를 지정하기 위해서 조합되며, 각각으로부터의 비트들은 부수적인 컬러 레지스터를 선택할 수있는 긴 이진수로 조합된다. 통상적으로, 단일 플레이휠드인 경우, 단지 5개의 비트플레인만이 아미가 시스템내에서 작동될 수 있다. 각 픽셀 소자용 5개의 이진 비트들의 조합은 컬러를 각각 지정하는 32개의 상이한 컬러 레지스터(359)를 중의 선택을 허용한다. 각 비트플레인은 RAM(401)냉내에 기억된 비트들의 별도 블럭을 형성한다. 그러나, 디스플레이는 비트플레인을 이 비트플레인들이 스택(stack)된 것처럼 해석하므로, 상이한 비트플레인내의 대응 위치내의 비트들은 이 픽셀소자에 컬러를 제공하기 위해 사용된 특정한 컬러 레지스터에 대응하는 이진수를 형성하도록 디스플레이 하드웨어에 의해 조합된다. 비트플레인 제어 레지스터는 사용자가 디스플레이를 위해 0 내지 6개의 비트플레인을 지정하게 하는 3개의 비트를 포함한다.
또한, 비트플레인 제어 레지스터(355)는 이중 플레이휠드 엔에이블 비트를 포함한다. 플레이휠드 동작 모우드내에서, 모든 홀수 비트플레인들은 플레이휠드 1로서 함께 그룹화되고, 모든 짝수 비트플레인들은 플레이휠드 2로서 함께 그룹화된다. 예를 들어, 6개의 비트플레인들이 지정되고 이중 플레이휠드 모우드가 선택되면, 8개의 상이한 컬러 레지스터들이 각 플레이휠드용으로 조합된 3개의 비트에 의해 소정의 특정한 픽셀용으로 지정되고, 8개의 컬러 레지스터셋트가 각 플레이휠드용으로 완전히 분리된다.
비트플레인이 플레이휠드 1 또는 플레이휠드 2내의 특정한 픽셀에 대한 모든 0으로 포함할 때 특수 경우가 존재한다. 픽셀에 대한 모든 0의 지정은 플레이휠드가 투명 모우드내에 있다는 것을 의미한다(COLOR0 레지스터는 배경 컬러를 포함한다). 어느한 플레이휠드내의 비트 조합이 투명 모우드내에 어디든 셋트되면, 디스플레이는 특정한 플레이휠드(예를 들어, 다른 플레이휠드, 스프라이트 또는 배경 컬러) 후방에 있든지(낮은 우선 순위를 갖고 있음) 컬러를 나타내게 된다. 사용자는 소정의 오브젝트들이 비트플레인 우선순위 레지스터(355)를 사용하여 플레이휠드 및 스프라이트의 상대 시각적 우선순위를 제어함으로써 서로 전방 또는 후방에 배치되는지의 여부를 지정할 수 있다. 이중 플레이휠드 모우드내에서, 2개의 플레이휠드는 이중 플레이휠드 디스플레이를 형성하기 위해 스크린 상에 조합된다. 플레이휠드 1이 플레이휠드 2보다 높은 우선순위를 가지면, 각 픽셀 소자용 컬러는 플레이휠드 1의 홀수 비트플레인에 의해 지정된 컬러 레지스터를 사용함으로써 디스플레이 우선순위 제어 논리(337)내에서 선택된다. 그러나, 스크린상의 소정 픽셀이 플레이휠드 1용 홀수 비트플레인에 의해 투명 모우드(모든 비트들은 0이다)내에 배치되며, 픽셀들은 플레이휠드 2에 관련된 짝수 비트플레인에 의해 지정된 컬러 레지스터를 사용하여 채색된다. 2개의 플레이휠드용 비트플레인이 동일 픽셀용 COLOR0 레지스터를 선택하면, 픽셀 소자는 COLOR0 레지스터내에 포함된 배경 컬러로 채색된다.
컬러 레지스터(359)내에 기억된 32개의 가능한 선택 보다 많은 컬러를 동시에 디스플레이하기 위해서는, 특수 보유 및 변경 모우드가 있다. 이 모우드는 비트플레인 제어 레지스터(355)내의 비트를 사용하여 선택된다. 이 모우드내에서 시스템은 비트플레인 데이타를 상이한 방식으로 해석한다. 상술한 바와 같이, 각 컬러 레지스터(359)는 특정 컬러를 지정하는 2개의 비트를 포함한다. RGB 컬러 모니터는 RGB(적색, 녹색 및 청색) 총을 각각 구동시키는 3개의 단색 신호이다. 정상 해상도를 사용할 때, 컬러 레지스터의 12개의 비트는 비트 0 내지 3이 청색 전자총에 대한 세기 레벨을 지정하고, 비트 4 내지 7이 녹색 전자총에 대응하며, 비트 8 내지 11이 적색 전자총에 대응하도록 해석된다. 보유 및 변경 모우드내에서, 이미 디스플레이된 픽셀에 대한 컬러 출력 회로내의 값은 보유된 다음에, 이 값의 3개의 4-비트부들 중 1개의 비트부는 이 픽셀에 대한 제14개의 비트플레인내의 데이타에 의해 변경된다. 보유 및 변경 모우드내에서, 비트플레인 5와 6으로부터의 픽셀에 대한 비트 조합은 비트플레인 1 내지 4로부터의 비트들이 해석되는 방식을 변경시키기 위해 사용된다. 비트플레인 버스(333) 및 컬러 레지스터(359)로부터의 12개의 비디오 출력은 12개의 비디오 출력을 갖는 보유 및 변형 회로(360)에 입력된다. 픽셀에 대한 비트플레인 5와 6내의 비트가 0으로 셋트되면, 제1의 4개의 비트플레인은 16개의 컬러 레지스터(359)중 1개의 컬러 레지스터를 선택하기 위해 사용된다.
비트플레인 5와 6으로부터의 2개의 3가지 다른 가능한 조합의 경우에, (현재 픽셀의 좌측에) 디스플레이된 이전 픽셀의 컬러는 4-비트 변경을 제외하고는 복제된다. 비트플레인 5와 6내에 포함된 비트들은 디스플레이의 적색, 녹색, 또는 청색 부분이 변경될지의 여부를 결정된다. 이때, 비트플레인 1 내지 4내의 4개의 비트는 디스플레이 적색, 녹색 또는 청색총을 구동시킬 때 사용된(12개중) 4개의 비트를 대체하기 위해 사용된다. 그러므로, 이 모우드내에서, 컬러 레지스터로부터의 그대로 보유되고, 1개의 부분(예를 들어, 청색)은 비트플레인내에 포함된 데이타 의해 변경된다.
텔리비젼 스크린 상에 디스플레이되는 픽셀의 각 라인은 각 특정한 픽셀에 관련된 비트를 포함하는 1개이상의 비트플레인의 중첩에 의해 형성된다. 각 비트플레인은 등속 호출 메모리(401)내의 연속 위치내의 16개의 비트 데이타 워드의 블럭들로 형성된다. 비트플레인의 각 라인은 일련의 데이타 워드로 구성되는데, 각 데이타 워드의 최상위 비트는 픽셀 소자를 디스플레이상에 나타내기 위해 최좌측 픽셀에 관련된다. 각 메모리 워드는 연속 증가 메모리 어드레스에 있으므로, 1개의 메모리 워드는 좌측에서 우측으로 디스플레이를 가로질러 이동한다. 전체 비트플레인이 모두 디스플레이되는 픽셀에 대응하면, 소정의 수평 라인상에 디스플레이된 최좌측 픽셀은 바로 위에 디스플레이된 수평 라인의 우측 상에 최종 픽셀에 대응하는 비트를 포함하는 워드의 어드레스보다 1이 큰 어드레스에서 메모리 워드내에 포함된 비트에 대응한다. 각 데이타 워드내에서, 각 비트는 스크린상의 단일 픽셀을 나타낸다. 메모리내에 기억된 비트의 순차는 비트플레인이라고 부르는 디스플레이 상에 정해진 각 x와 y위치마다 1개의 비트를 갖고 있는 비트들의 2-차원 면을 정한다. 각 비트플레인은 전체적으로 스크린상의 각 가능한 x-y 좌표에 1개의 비트를 제공한다.
배경 컬러 및 1개 또는 2개의 플레이휠드를 스크린상에 디스플레이하기 위해서, 아미가 시스템은 사용될 각각의 비트플레인용 데이타 블럭에 대한 수직 공백 기간 동안에 개시 어드레스를 제공받아야 한다. 비트플레인 데이타의 개시는 제4도의 포인터 레지스터(138)내에 포함된 포인터를 사용하여 지정되는데, 1개의 레지스터가 각각의 6개의 가능 비트플레인용으로 존재한다. 비트플레인 포인터는 특수 비트플레인용 데이타가 실제로 개시하는 RAM(401)내의 개시 어드레스를 지시하는 어드레스 포인터이다. 레지스터(138)내의 포인터들은 19개 비트폭이고, 동적이다. 비트플레인의 페치가 DMA 싸이클 중에 시작될 때, 레지스터(138)내의 포인터들은 페치될 RAM(401)내의 다음 워드의 어드레스를 지시하도록 가산기(137)을 사용하여 계속 증가된다. 억세스되는 데이타의 어드레스는 아그너스 칩(410)의 RAM 어드레스 발생기(45)에 의해 DRA버스(406)상에 배치된다. 텔리비젼 스크린용 전자 비임이 수평 라인 상에 표시될 최종 픽셀에 도달하면(비임 카운트에 의해 정해진 바와 같이), 이것은 이 라인용 최종 데이타 워드를 페치시켰다. 각각의 비트플레인용 각 포인터는 가산기(137)을 사용하여 레지스터(138)내에 기억된 포인터값에 가산되는, 모듈로 레지스터(131)내에 포함된 모듈로 수에 의해 조정된다. 모듈로 수 가산은 페치된 다음 데이타 워드가 스크린의 다음 라인상에 디스플레이될 최좌측 픽셀에 대응하는 메모리내의 워드라는 것을 보장한다. 별도 모듈로 수가 짝수 및 홀수 비트플레인용으로 사용될 수 있고, 2개의 모듈 레지스터(131)에 기억될 수 있다.
전술한 바와 같이, 정상 해상도 모우드내의 각 수평 라인내에는 320개의 픽셀이 있다. 각 데이타 워드는 16개의 비트로 구성되므로, 320개 비트를 포함하는 20개 데이타 워드는 각 비트플레인이 디스플레이되는 픽셀들의 1개의 수평 라인에 대응하는 모든 데이타를 포함하게 하기에 충분하다. 비트플레인 사이즈가 디스플레이 윈도우 사이즈와 정확히 동일하면, 0이 모듈로 레지스터(131)내에 로드된다. 이 경우에, RAM(401)내에 기억된 비트수는 스크린상에 나타나게 되는 픽셀수와 정확히 동일하다. 전자비임이 스크린을 따라 수평으로 주행할 때 비트플레인용 각 데이타 워드가 페치되므로, 이 비트플레인용 포인터는 가산기(137)에 의해 1만큼 증가된다. 그러므로, 각 수평 라인이 비임에 의해 주사된 후, 다음 라인용 데이타 페치가 시작될 때의 포인터 레지스터(138)내에 기억된 값(워드)은 이전 라인이 시작된 때의 포인터 값을 20만큼 초과하게 된다. 그러나, 예를 들어 비트플레인이 디스플레이될 픽셀수로서 2배의 수평 라인당 비트수를 가지면, 픽셀의 다음 라인용 컬러를 발생시키기 위해 사용된 데이타가 다음 수평 라인에 관련된 비트인 것을 보장하기 위해 20개 워드의 모듈로가 사용되어야 한다. 수평 라인상에 최종 픽셀을 디스플레이한 후, 6개의 비트플레인 포인터 레지스터(138)들 중 1개의 레지스터내의 이 비트플레인에 대응하는 포인터는 이 라인용 개시 메모리 어드레스에 대응하는 값 플러스(puls) 20을 포함한다. 20개의 워드의 모듈로가 모듈로 레지스터(131)과 가산기(137)을 사용하여 이 포인터에 가산되어야 하므로, 다음 수평 라인용 데이타 페치가 시작될 때, (이 특정 순간에 320개의 유용한 픽셀상에 디스플레이될 수 있는 즉, 좌우의 플레이휠드 화상부에 대응하는)메모리내의 다음 20개 워드가 스킵된다. 이 방식내에서, 현재 디스플레이내에 사용되지 않은 데이타의 어드레스는 발생기(45)에 의해 RAM 어드레스 버스(406)상에 배치되지 않는다. 고 해상도 모우드가 플레이휠드를 디스플레이하기 위해 사용되고 있으면, 20개 대신에 데이타의 40개 워드가 각 라인용으로 페치되어야 하고, 비트플레인인 윈도우 사이즈의 2배일 때 모듈로는 40이다.
이 시스템은, 허용가능한 디스플레이 윈도우 사이즈 보다 큰(예를 들어, 2배) 비트플레인에 의해 정해진 화상의 다른 부분(예를 들어, 우측 절반부)를 디스플레이하도록 지시받을 수 있다. 이러한 경우에, 상이한 포인터 값은 제1비트가(수직 공백중에) 상부 좌측 픽셀을 스크린상에 디스플레이하기 위해 페치될 때 이 비트플레인용 포인터 레지스터(138)내에 로드된다. 640-비트 폭 수평 라인을 갖고 있는 비트플레인에 의해 정해진 화상의 우측 절반부만을 디스플레이하기 위해, 포인터값은 화상의 좌측 절반부만이 디스플레이될 때의 개시 어드레스보다 20개 워드(320개 비트) 더 높아야 한다. 이 경우에, 모듈로는 각 라인이 주사된 후에 화상의 좌측 절반부에 관련된 데이타의 어드레싱을 방지하기 위해 20으로 유지된다.
또한, 비트플레인 모듈로 레지스터(131)내에 기억된 모듈로는 인터페이스된 화상을 발생시킬 때에도 사용된다. 비디오 비임 카운터(117)에 의해 발생된 프레임 비트는 제어 레지스터내에 로드될 수 있고, 작동 시스템의 수직 공백 루틴중에 해독될 수 있다. 이 비트의 상태에 따라, 시스템은 홀수 프레임 또는 짝수 프레임을 발생시키게 된다. 이 비트의 값에 기초를 두고, 홀수 프레임의 경우에 수직 공백 루틴은 라인 1에 대응하는 어드레스를 비트플레인 포인터 레지스터(138)에 로드시키게 되고, 짝수 프레임의 경우에는 라인 2에 관련된 데이타에 대응하는 어드레스가 로드된다. 이것을 달성하기 위해 코퍼(47) 스팁 명령이 사용될 수 있다. 디스플레이의 교호 프레임중 메모리내에 포함된 완전한 화상의 교호 라인들의 디스플레이는 단일 수평라인에 관련되는 메모리내의 워드의 총수 플러스 모듈로에 관련된 정상값(특정한 수평 라인을 정하는 메모리내의 데이타가 한번에 스크린상에 디스플레이되는 픽셀수를 초과하는 워드수)과 동일하게 레지스터(131)내의 모듈로 번호를 셋트시켜야 한다. 메모리내에 기억된 화상이 400개 라인 길이로서 정해지면, 완전한 화상을 형성하기 위해 200개의 홀수 라인들은 한 프레임중에 나타나게 되고, 다른 200개의 짝수 라인들은 다음 프레임중에 나타나게 된다. 주사 회로는 인터페이스된 모우드내의 주사 라인의 1/2만큼 다른 휠드의 개시를 수직으로 오프셋시킨다. 홀스 프레임의 경우에, 수직 공백 기간중에 비트플레인용으로 포인터 레지스터(138)내에 로드된 포인터는 소정의 개시 메모리 어드레스에 셋트된다. 짝수 프레임의 경우에, 짝수 프레임의 주사의 개시시에 포인터 어드레스(38)내에 로드된 포인터의 값은 최초 개시 메모리 어드레스 플러스 단일 수평 라인에 관련되는 비트를 포함하는 메모리내의 워드의 총수에 대응한다.
사이즈가 텔리비젼 스크린과 동일한 플레이휠드를 발생시키기 위해, 320개 픽셀 또는 640개 픽셀(고 해상도)폭이 선택된다. 높이는 200개의 라인 또는 400개 라인(인터페이스 모우드)으로 될 수 있다. 그러나, 온 스크린 디스플레이의 실제 사이즈는 윈도우 사이즈를 정함으로써 조정될 수 있다. 정해진 디스플레이 윈도우 밖에는, 플레이휠드와 스프라이트를 포함하는 것은 아무것도 디스플레이되지 않는다. 디스플레이 윈도우 사이즈는 디스플레이 윈도우가 개시 및 정지하는 수평과 수직 위치를 지정함으로써 정해진다. 수직 개시와 정지의 해상도는 한 주사 라인이고, 수평 개시와 정지의 해상도는 한 저 해상도 모우드 픽셀이다. 디스플레이 윈도우 개시 레지스터는 디스플레이 윈도우 개시 위치를 제어한다. 디스플레이 윈도우 개시 위치의 수평과 수직 성분들은 프로세서(402) 또는 코퍼(47)에 의해 아그너스 칩(410)상의 비트플레인 제어 레지스터(55)들 사이에 배치되는 이 레지스터내에 로드된다. 이와 유사하게, 디스플레이 윈도우 정지 레지스터는 아그너스 칩(410)상에 존재하고, 디스플레이 윈도우 정지 위치의 수평과 수직 성분에 로드된다. 정지 위치는 개시 위치와 같이, 고 해상도 또는 인터페이스 모우드들이 선택되더라도 저 해상도 비-인터페이스 모우드내에서 해석된다.
디스플레이 개시와 정지 레지스터를 사용하여 디스플레이 윈도우의 사이즈와 위치가 정해진 후, 메모리로부터 페치된 데이타에 대한 온스크린 위치가 식별되어야 한다. 이것은 각 라인이 개시 및 정지하는 수평 위치를 비트플레인 제어 레지스터(55) 사이에 배치된 데이타 페치 개시 레지스터와 데이타 페치 정지 레지스터에 로드시킴으로써 행해진다. 1픽셀 해상도(저 해상도 모우드)를 갖는 디스플레이 윈도우 레지스터와 달리, 데이타 페치 레지스터는 단지 4픽셀 해상도를 갖는데, 그 이유는 단지 5개의 비트들만이 데이타 페치용 개시와 종료 위치를 지정하기 위해 어느 한 레지스터내에 사용되기 때문이다. 하드웨어는 데이타를 실제로 디스플레이할 수 있기 전에 제1데이타 페치 후 소정 시간을 필요로 한다. 결과적으로, 윈도우 개시와 데이타 페치 개시값 사이에는 차이가 있고, 레지스터는 비트플레인 DMA 데이타 페치의 수평 타이밍을 제어한다. 저 해상도 모우드내에서, 이 차이는 8.5클럭 싸이클이고, 이 차이는 고 해상도 모우드내에서 4.5클럭싸이클이다. 전술한 바와 같이, 포인터 레지스터(138)내에 기억된 비트플레인 어드레스 포인터들은 데이타를 스크린에 페치시키기 위해 사용된다. 데이타 페치가 시작될 때, 포인터는 다음 워드를 지시하기 위해 계속 증가된다. 데이타 페치 정지 레지스터는 수평 라인의 단부에 도달될 때를 정하는데, 이때 비트플레인이 가동(run) 신호는 오프 상태로 되고, 이 비트플레인용 모듈로 레지스터(131)내에 포함된 모듈로는 이 비트플레인용 포인터에 가산된다. 그러므로, 포인터는 다음 수평 라인용으로 페치될 데이타의 제1워드의 어드레스를 포함하도록 조정된다. 2개의 모듈로 레지스터, 즉 홀수 비트플레인용(또는 이중 플레이휠드 모우드내에서 동작할 때 플레이휠드 1용) 비트플레인 1 모듈로 레지스토와 짝수 비트플레인용(또는 이중 플레이휠드 모우드내에서 동작할 때 플레이휠드 2용) 비트플레인 2 모듈로 레지스터가 있다.
플레이휠드의 디스플레이를 개시하기 위해, 비트플레인용 포인터가 셋트되어야 하고, 비트플레인 DMA가 턴온되어야 한다. 비트플레인 DMA는 DMA 제어 레지스터내의 시트를 셋트시킴으로써 턴온된다. 플레이휠드가 수직 공백 기간후에 재디스플레이될 때마다, 비트플레인 포인터는 리셋트되어야 한다. 포인터 레지스터내의 값들이 각 세트의 비트플레인용 메모리내의 각 연속 워드를 지시하기 위해 증가되었고, 다음 디스플레이용 제1워드를 재지시 받아야 하기 때문에 리세팅이 필요하다. 코퍼(47)용 프로그램 명령이 수직 공백 작업의 일부로서 이 동작을 수행하기 위해 사용된다.
코퍼(47)의 특징들 중 한 가지는 특수 비디오 비임 위치를 대기한 다음, 데이타를 시스템 레지스터내로 이동시킬 수 있는 능력이다. 대기 기간 중, 코퍼(47)는 비디오 비임 위치 카운터(117)의 내용을 직접 검사한다. 그러므로, 코퍼(47)이, 비임이 특수 위치에 도달하기를 기다리는 동안, 이것을 데이타 버스(404)를 전혀 사용하지 못한다. 그러므로, 데이타 버스(404)는 다른 DMA 채널 또는 마이크로프로세서(402)에 의해 자유롭게 사용된다. 대기 조건이 충족되었으면, 코퍼(47)은 지정된 데이타를 선택된 특수 목적 레지스터내로 이동시키기 위해 블리터(67) 또는 프로세서(402)로부터 메모리 싸이클을 스틸(steal)한다. 코퍼(47)은 홀수 메모리 싸이클 동안에만 버스를 요구하는 2싸이클 프로세서이다. 이것은 오디오, 디스크, 회복, 스프라이트와 최조 해상도 디스플레이 DMA 억세스와의 충돌을 방지하는데, 이것들은 모두 짝수 메모리 싸이클만을 사용한다. 그러므로, 코퍼(47)은 단지 프로세서(402)와 블리터(67)보다 높은 우선순위를 필요로 한다.
코퍼(47) 명령 리스트는 수직 공백 기간중에 행해진 모든 레지스터 리셋팅 및 미드스크린(midscreen) 변경을 행하기 위해 필요한 레지스터 변경을 달성하기에 충분하다. 예를 들어, 플레이휠드 디스플레이내에 사용된 홀수 및 짝수 비트플레인용 포인터 및 스프라이트 포인터는 디스플레이가 다시 개시될 때 스크린의 상부 좌측에 관련된 데이타가 검색되도록 수직 공백 기간중에 재기입되어야 한다. 이것은 다음과 같이 행해지는 코퍼 명령 리스트로 행해질 수 있다. (1) 비디오 비임이 디스플레이의 제1라인에 도달할때까지 대기, (2) 홀수 비트플레인 데이타용 RAM(401)내의 개시 어드레스를 제1비트플레인 포인터 레지스터로 MOVE, (3) 짝수 비트플레인 데이타용 개시 어드레스를 제2비트플레인 포인터 레지스터로 MOVE, (4) 데이타를 제1스프라이트 포인터 레지스터로 MOVE, 다른 예로서, 컬러 레지스터에는 스크린의 디스플레이의 중간의 상이한 컬러들의 디스플레이를 지정하는 비트들이 재로드될 수 있다. 그러므로, 코퍼(47)용 프로그램 명령 리스트는 디스플레이의 제1라인을 대기한 다음에, 일련의 12개의 비트코드를 몇개의 컬러 레지스터내로 이동시키며, (특정한 스프라이트 프로세서의 재사용에 대응하는 제1라인과 같은) 디스플레이의 후속 라인을 대기한 다음에, 새로운 셋트의 컬러를 지정하는 데이타의 12개 비트를 디스플레이의 제1라인중에 이미 로드된 몇개의 컬러 레지스터내로 이동시킨다.
코퍼(47)은 프로그램 카운터를 사용함으로써 명령을 페치시키고, 각 페치후에 프로그램 카운터를 증가시킨다. 그러나, 코퍼(47)은 2개의 점프 스트로브 어드레스, 즉 점프 1과 점프 2를 갖는다. 점프 1 또는 점프 2 스트로브 어드레스로의 기입 시도가 행해지면, 코퍼(47)의 프로그램 카운터에는 새로운 어드레스가 로드된다. 코퍼(47)은 RAM 어드레스를 포함하는 제1 및 제2위치 레지스터(129)를 갖는다. 점프 스트로브 어드레스가 기입될 때마다, 대응 위치 레지스터내에 포함된 어드레스는 가산기(137)과 게이트 억제 신호를 사용하여 코퍼 프로그램 카운터(포인터 레지스터)내로 로드된다. 이것은 코퍼가 제1 또는 제2위치 레지스터(129)내에서 지정된 어드레스로 점프하고, 이 RAM 어드레스에 포함된 명령을 실행하게 된다. 코퍼(47)이 다른 점프 어드레스 스트로브에 의해 인터럽트될때까지 명령 페치가 계속된다. 각 수직 공백 기간 개시시에, 코퍼가 무엇을 행하고 있는지에 관계없이, 코퍼는 제1위치 레지스터내에 포함된 어드레스에서 동작을 자동적으로 재개시하게 된다. 또한, 코퍼는 자체 위치 레지스터에 기입한 다음, 프로그램된 점프를 수행하기 위해 스트로브 어드레스에 기입할 수 있다. 그러므로, 코퍼는 새로운 어드레스를 제2위치 레지스터내로 이동시킬 수 있다. 이때, 점프 2어드레스를 어드레스하는 코퍼에 의해 실행된 후속 이동 명령은 제2위치 레지스터내의 새로운 어드레스가 코퍼의 프로그램 카운터내에 스트로브되게 할 수 있다. 가동 또는 리셋트시에, 코퍼의 제1 및 제2위치 레지스터는 초기치 설정되어야 하고, 점프 스트로브 어드레스는 코퍼 DMA가 처음 턴온되기 전에 공지된 새시 어드레스와 공지된 상태가 보장되도록 기입되어야 한다. 이때, 제1위치 레지스터의 내용이 변경되지 않으면, 코퍼는 수직 공백이 각 후속 비디오 스크린용으로 발생할 때마다 동일 위치에서 재기시하게 된다. DMA 제어 레지스터내의 한 비트는 코프로세서 DMA 동작을 엔에이블시키기 위해서 셋트된다.
이동하는 배경 디스플레이를 얻기 위해서, 디스플레이 윈도우보다 큰 플레이휠드가 메모리내에 기억되어, 스크롤된다. 이중 플레이휠드는 별도로 스크롤될 수 있다. 수평 스크롤링시에, 데이타의 1개의 부수적인 워드는 각 수평 라인의 디스플레이용으로 페치되어야 하고, 이 데이타의 디스플레이는 지연되어야 한다. 수직 스크롤링시에, 비트플레인 포인터내에 로드된 개시 어드레스는 메모리내의 수평 라인에 의해 채택된 정수배의 워드량만큼 증가되거나 감소된다. 이것은 각 수직 공백 기간후에 화상의 저부 또는 고부가 디스플레이 되게 한다. 수직 스크롤링을 달성하기 위해 각 수직 공백 기간중에, 코퍼는 디스플레이가 최소한 1개의 수평 라인을 매회 느리거나 이르게 시작하도록 하기에 충분히 큰 양만큼 디스플레이 포인터 레지스터(138)내에 기억된 포인터의 값을 증가 또는 감소시켜야 한다. 어느 한 형태의 스크롤링의 경우에, 코퍼(47)은 포인터 및 데이타 페치 레지스터를 리셋트시키기 위해 수직 공백 기간중에 사용될 수 있다. 데이타의 20개 워드만이 각 수평 라인용으로 사용되는 저해상도 디스플레이 경우에, 코퍼(47)에 의해 포인터 레지스터(138)내에 로드된 개시 어드레스는 각 수직 공백 기간중에 20개 워드의 배수만큼 변경된다.
플레이휠드는 스크린상에서 좌측에서 우측으로 또는 이와 반대로 수평으로 스크롤될 수 있다. 수평 스크롤링은 픽셀 디스플레이 전에 지연량을 지정함으로써 제어된다. 지연은 수평 라인용 데이타의 보조 워드가 페치되지만 즉시 디스플레이되지 않을 때 발생한다. 부수적인 데이타 워드는 디스플레이 윈도우 좌측 연부의 좌측에 배치되고, 정상 데이타 페치가 시작되기 전에 검색된다. 그러나, 비임이 우측을 주사할 때, 이 부수적인 데이타 워드내의 비트들은 윈도우의 좌측에서 스크린상에 나타나는 픽셀들의 컬러를 정하기 위해 사용되고, 스크린상의 우측에서 나타나는 픽셀들을 채색하기 위해 이전에 사용된 데이타는 디스플레이중에 더 이상 나타나지 않는다. 지정된 지연의 각 픽셀마다, 온스크린 데이타는 각 수직 공백 기간 후에 1개의 픽셀을 우측으로 쉬프트시킨다. 사용된 지연이 많을수록, 디스플레이의 스크롤링 속도는 더 빨라진다. 15개까지의 지연 픽셀은 플레이휠드 1에 대한 지연을 지정하는 데이타의 4개 비트 및 플레이휠드 2에 대한 지연을 지정하는 데이타의 4개 비트를 비트플레인 제어 레지스터에 로드시킴으로서 지정될 수 있다. 그러므로, 수평 스크롤링시에, 데이타 페치 개시 레지스터에는 데이타 페치용 스크롤되지 않은 개시 위치전에 16개 픽셀(1개의 보조 워드)인 데이타 페치용 개시 위치가 로드되어야 하고, 플레이휠드에 대한 모듈러는 1개의 워드만큼 증가되어야 하며, 지연 비트수는 비트플레인 제어 레지스터내에 로드되어야 한다.
블리터란 용어는 블럭 영상 전송기를 뜻한다. 블리터(67)의 주 목적은 더 이상 처리되거나 처리되지 않고서 큰 블럭내의 데이타를 한 메모리 위치로부터 다른 메모리 위치로 카피(전송)하기 위한 것이다. 레지스터들이 셋업된 후에 수행되는 동작들은 마이크로프로세서(402)에 의해 수행된 동작들 보다 현저하게 빠르다. 블리터(67)은 RAM(401)내의 개시 어드레스, RAM(401)내의 수신지 어드레스 및 블럭의 사이즈만이 알려져야 하기 때문에 데이타 블럭을 카피할 때 매우 효율적이다. 이것은 데이타 버스(404)가 유용하게 될 때마다 한번에 한 워드씩 데이타 블럭을 자동적으로 이동시키게 된다. 블리터는 전송이 완료된 때 플랙 및 인터럽트를 프로세서(402)에 신호하게 된다.
블리터는 DMA 순차를 통해 여러 데이타 페치, 변경 및 기억 동작을 수행하고, 아미가 시스템내의 다른 장치들과 메모리 억세스를 공동부담한다. 디스크 DMA, 오디오 DMA, 비트 플레인 DMA 및 스프라이트 DMA는 모두 최고 우선순위 레벨을 갖는다. 각각의 이 4개의 장치는 비디오 비임의 각각 수평 주사중에 타임 슬로트 그룹을 할당 받는다. 장치가 할당된 타임 슬로트들중 1개의 타임 슬로트도 요구하지 않으면, 슬로트는 다른 사용을 위해 개방된다. 미스된(missed) DMA 싸이클에 데이타 손실, 사운드 출력내의 잡음, 또는 스크린상의 디스플레이내의 인터럽션을 발생시킬 수 있기 때문에, 제1우선순위가 이 장치에 제공된다. 코퍼(47)은 스크린을 스위프하는 비디오 비임과 계속 동기화되도록 각 디스플레이 프레임중에 동시에 동작을 수행해야 하기 때문에 다음 우선순위를 갖는다. 최조 우선순위는 그 순서로 브리터(67)과 마이크로프로세서(402)에 지정된다. 블리터(67)은 마이크로프로세서(402)보다 더 빠르게 데이타 카핑, 변경 및 라인 도시 동작을 수행하기 때문에 높은 우선순위를 제공받는다. 수평 라인 주사중에는, 각각 280nsec 기간인 227.5개의 메모리 억세스 싸이클이 있다. 이때에, 226개의 싸이클들이 메모리 억세스를 필요로 하는 여러장치에 할당되도록 사용될 수 있다. 메모리 싸이클들은 다음과 같이 할당된다. 즉, (홀수 싸이클에만 지정된) 메모리 회복용 4개 싸이클, (홀수 싸이클에만 지정된) 디스크 DMA용 3개 싸이클, (홀수 싸이클에만 채널당 1개 워드로 지정된)오디오 DMA용 4개 싸이클, 홀수 싸이클에만 채널당 2개 워드로 지정된) 스트라이트 DMA용 16개 싸이클 및 (디스플레이가 저 해상도이고 4개 이하의 비트플레인을 포함하는 경우에 홀수 싸이클에만 지정될 수 있는) 비트플레인 DMA용 80개 싸이클, 마이크로프로세서(402)는 짝수 메모리 억세스 싸이클만을 사용한다. 통상적으로, 완전한 프로세서 명령 시간 동안, 프로세서(402)는 시간의 절반은 내부 동작을 행하는데 소모하고, 나머지 절반은 메모리를 억세스하는데 소모한다. 그러므로, 각 다른 메모리 싸이클을 68000 프로세서에 할당함으로써, 프로세서(402)는 전속으로 가동할 수 있는데, 그 이유는 프로세서가 항상 메모리 억세스를 갖는 것처럼 보이기 때문이다. 싸이클이 68000에 의해 미스되면, 계속하기전에 다음 유용한 메모리 싸이클까지 대기한다. 그러나, 4개 이상의 비트플레인들이 디스플레이되거나, 고해상도 디스플레이가 사용되면, 비트플레인 DMA는 디스플레이중에 68000으로부터 싸이클을 스틸하기 시작하게 된다. 예를들어, 4개 고 해상도 비트플레인들이 지정되며, 비트플레인(DMA)는 각각의 4개의 비트플레인에 대한 각 라인용으로 요구된 40개 데이타 워드를 페치시키기 위해서 디스플레이 시간(비트플레인 가동 신호가 온 상태이다)중에 모든 유용한 메모리 타임 슬로트를 필요로 한다. 이것은 디스플레이중에 소정의 메모리 억세스로부터 블리터(67)과 코퍼(47)뿐만 아니라 프로세서(42)를 효율적으로 폐쇄시킨다. 4비트플레인 저 해상도 디스플레이에 대한 디스플레이시간 동안, 80개 홀수 타임 슬로트들이 비트플레인 DMA용으로 예약되고, 80개 짝수 타임 슬로트들이 프로세서(402)용으로 이용가능하게 된다. 6비트플레인 저 해상도 디스플레이의 디스플레이를 위해, 비트플레인 DMA는 디스플레이중에 80개 짝수 슬로트들의 절반을 스틸하는데, 그 이유는 6개 비트플레인용으로 20개 데이타 워드를 페치시키기 위해 120타임 슬로트가 요구되기 때문이다. 4비트플레인 고 해상도 디스플레이의 디스플레이중에는 메모리 타임 슬로트가 전혀 이용되지 않는데, 그 이유는 각각의 4개 비트플레인용으로 40개 데이타 워드를 페치시키기 위해 160개 타임 슬로트가 요구되기 때문이다.
블리터(67)은 통상적으로 DMA 싸이클에 대해 프로세서(402)보다 높은 우선순위를 갖는다. 기회가 주어지면, 블리터는 모든 유용한 메모리 싸이클을 스틸하게 되어, 버스 억세스로부터 프로세서(402)를 차단시키게 된다. DMA 제어 레지스터내의 비트를 셋트시킴으로써, 블리터는 모든 유용한 메모리 싸이클에 대해 프로세서(402)보다 높은 우선순위를 제공받게 된다. 그러나, 비트가 셋트되지 않으면, 블리터(67)은 프로세서(402)가 3개의 연속 메모리 싸이클용으로 충족되지 않는 경우에 프로세서(402)로의 데이타 버스(404)를 해제시키게 된다.
블리터는 4개까지의 DMA 채널을 사용한다. 3개의 DMA 채널은 RAM(401)로부터 블리터(67)까지의 검색 데이타용으로 제공되고, 소오스 A, 소오스 B 및 소오스 C로 지정된다. 1개의 수신지 DMA 채널은 수신지 D로 지정된다. 블리터 제어 레지스터(63)에는, 4개의 DMA 채널들중 어느 채널이 사용될지를 표시하기 위해 데이타 버스(404)로부터 데이타가 로드되는데, 각각의 4개 채널을 독립적으로 엔에이블시키기 위해서는 4개의 비트가 필요하게 된다. 각각의 블리터 소오스 및 수신지 채널은 자체 메모리 포인터 레지스터(138) 및 자체 모듈로 레지스터(131)을 갖는다. 이것은 블리터가 메모리내의 각각의 소오스 및 수신지 블럭에 대해 상이한 사이즈로 될 수 있는 큰 플레이휠드 영상내의 동일한 장방형 윈도우로 및 윈도우로부터 데이타를 이동시키게 한다. 블리터 채널용 포인터 레지스터(138)은 소오스 또는 수신지 데이타의 다음 워드가 배치되는 RAM(401)내의 어드레스를 지시하기 위해 사용된다. 전술한 비트플레인 동작과 유사하게, 블리터(67)은 메모리내에 기억된 큰 영상내의 작은 윈도우를 조정하기 위해 모듈로스(modulos)를 사용한다. 대응 모듈로 레지스터(131)내에 기억된 모듈로 수가 적합한 포인터 레지스터(138)내의 값에 가산되면, 어드레스 포인터는 이전 라인상의 윈도우내의 최종 워드가 처리된 후 다음 수평 라인의 개시를 식별하게 된다. 선택된 사이즈의 윈도우 동일 수평 라인상에 포함된 데이타 워드에 따라 동작할 때, 포인터 레지스터(138)내에 포함된 어드레스는 매회 1워드씩 증가하게 된다. 중첩하는 소오스와 수신지에 대한 데이타의 블럭을 식별할 수 있다. 이러한 경우에, 블리터는 이 동일 어드레스에서 데이타가 소오스로서 블리터에 의해 해독되기 전에 수신지 블럭내의 특정한 메모리 어드레스에 기입할 수 있게 된다. 이러한 데이타 파괴를 방지하기 위해, 반전 명령 신호를 사용하여 데이타 신호가 처리되고 있을 때 포인터 값을 증가시키거나 감소시킬 수 있다. 예를 들어, 데이타의 소오스와 수신지 블럭이 중첩되고 RAM(401)내의 더 높은 어드레스를 향해 데이타를 이동시키고자 할 경우에, 포인터 레지스터내의 값은 감소되어야 하고 블리터는 내림차순 모우드내에서 동작해야 한다. 내림차순 또는 올림차순 동작 모우드는 블리터 제어 레지스터내에 포함된 비트를 로드시킴으로써 선택된다.
제어 레지스터중에 포함된 블리터 사이즈 레지스터에는 블리터에 의해 동작중인 윈도우의 폭과 높이가 로드된다. 이레지스터내의 10개 비트는 최대 1024개 라인까지 블리터 동작의 동작을 정한다. 이 레지스터내의 6개 비트는 최대 64개 워드 또는 1024개 픽셀까지 블리터 동작의 폭을 정한다. 데이타를 블리터 사이즈 레지스터내에 로드시키는 것은 블리터의 동작을 개시시키고, 모든 포인터와 제어 레지스터들이 초기치 설정된 후 최후에 행해진다.
단일 소오스로부터의 데이타를 간단히 검색하는 대신에, 블리터는 가능한 수신지 영역에 대한 결과를 발생시킬 때 3개까지의 소오스로부터의 데이타를 검색할 수 있다. 이 소오스들은 통상적으로 각각의 3개의 별도 그래픽 영상으로부터의 한 비트플레인이다. 블리터 논리 동작은 각각의 3개의 소오스로부터의 1개 비트의 모든 가능한 조합의 경우에 무엇이 발생하는지를 설명함으로써 정해진다. 3개 비트의 8개의 가능한 데이타 조합을 MINTERMS라고 부른다. 각각의 8개의 입력 가능성에 대해, RAM(401)내의 대응 수신지로의 비트출력 값이 지정되어야 한다. 블리터 제어 레지스터(63)중 1개의 레지스터에는 논리 기능 MINTERM 선택 라인으로서 사용된 8개 비트가 로드된다. 이 8개 비트의 세팅은 블리터 동작중에 3개의 소오스로부터의 데이타에 따라 수행될 256가지 가능한 동작들중 1가지 동작을 지정한다.
블리터(67)은 데이타 이동중에 별도 영상 소오스로부터의 데이타 비트들은 논리적으로 조합시킬 수 있기 때문에 비트플레인 동화 수행시에 매우 효율적이다. 예를 들어, 미리 그린 빌딩 영상 전방에서 미리 그린 자동차 영상을 이동시키고저 할 때가 있을 수 있다. 자동차를 동화(이동)시키기 위해, 제1스텝은 자동차가 배치되는 배경 영상을 포함하는 윈도우를 비축하는 것이다. 자동차의 완전한 아웃라인(마스크)를 포함하는 데이타는 메모리내의 소정 지점에서 발생되고 소오스 A로서 지정될 수 있고, 자동차 오브젝트 자체에 대한 ()에서 이전 배경 데이타(C)를 보유하게 된다는 것을 표시하기 위해 AB+ 동작이 사용된다. 자동차 디스플레이상의 소정 지점에 이미 존재하였으면, 자동차가 이동전에 덮은 구(old) 배경 영상은 자동차가 다음에 덮혀질 배경을 카피하기 전에 이동된 위치에서 재기억되어야 한다. 배경(C)는 수신지이고 동작 AT가 사용되는데, 소오스 T는 자동차가 이전에 배치된 배경이 AC 동작을 사용하여 기억된 임시 수신지이다. 이 AT 논리 동작은 자동차 아웃라인 마스크(A)가 존재한 모든 지점에서 배경(C)를 비축된 배경으로 대체시킨다. 데이타 및 마스크가 새로운 위치로 쉬프트되고 상기 논리 동작들이 블리터에 의해 계속 반복되면, 자동차는 배경을 가로질러 이동하는 것처럼 보이게 된다. 새로운 영상이 논리 동작 AB+를 사용하여 발생되는 논리 동작을 쿠키 컷(cookie cut) 동작이라고 부른다.
방금 기술한 예내에서, 자동차 영상(B)와 자동차 아웃라인 마스크(A)는 배경이 비축되고(A), 자동차가 배치되기(AB+)전에 매회 새로운 위치로 쉬프트되어야 한다. 배경(C)를 가로지르는 영상(B)의 이동은 영상의 연부가 16비트 워드내의 소정 비트 위치상에 떨어지게 할 수 있다. 이것은 블리터(67)내에서의 고속 쉬프트 능력의 필요성을 발생시킨다. 따라서, 블리터는 A와 B 데이타 소오스 레지스터(77과 79)에 사용되는 배럴 쉬프트(81)을 포함한다. 이 쉬프터(81)은 소오스 A와 B를 0으로부터 15개 비트까지 쉬프트시킬 수 있다. 이것은 마이크로프로세서(402)에 의해 수행된 경우와 같이 큰 쉬프트가 작은 쉬프트보다 많은 시간이 걸리지 않는 배럴 쉬프터이다. 그러므로, 16개 픽셀들이 비트플레인내의 각 워드가 페치될 때 한번에 어드레스되어야 하지만, 쉬프터(81)은 픽셀 경계면상에서 영상들이 이동하게 된다. 각각의 소오스에 대한 쉬프트량은 A 소오스의 경우에 4개 비트를 블리터 제어 레지스터(63)내에 로드시키고 B 소오스의 경우에도 4개 비트를 로드시킴으로써 셋트된다.
블리터(67)은 각 수평 라인으로부터 선택된 윈도우내의 최좌측과 최우측 데이타 워드를 마스크할 수 있다. 마스크 레지스터(83과 85)가 소오스 A용 블리터 데이타와의 매 수평 라인상의 제1과 최종 워드용으로 제공된다. 이것은 장방형 영역의 좌측과 우측 연부로부터의 비트 경계선들 상에서의 논리 동작을 허용한다. 제1워드 마스크내에 1비트가 로드될 때에만, 소오스 A의 제1워드로부터의 이 비트가 블리터에 의해 수행된 논리 동작내에 사용된다. 유사한 방식으로, 최종 워드 마스크(85)는 소오스 A 데이타의 최우측 워드를 마스크한다. 그러므로, 좌측 및 우측 연부가 워드 경계선들 사이에서 발생하는 데이타의 장방형 블럭에 따라 동작을 수행할 수 있다. 윈도우가 단지 1개의 워드폭이면, 제1과 최종 워드 마스크는 중첩하고, 소오스 A워드로부터의 비트들은 2개의 마스크가 1을 포함하는 비트 지점에서만 사용된다.
블리터는 소정의 1 비트가 소오스 데이타에 따른 논리 동작의 결과로서 나타나는지의 여부를 감지할 수 있다. 이 특징은 2개의 영상들 간의 충돌을 하드웨어 보조 검출하기 위해 사용될 수 있다. 동작 AB가 수행될 수 있고, 영상 A와 B가 중첩하지 안흥면 제로 플랙이 블리터 DMA 상태 레지스터내에 셋트된다. 블리터가 단지 제로 검출만을 행하고 있고, 수신지 영상을 발생기키기 위해 사용되지 않고 있으면, 블리터 제어 레지스터(63)내의 적합한 비트를 셋트시키지 않음으로써 수신지 채널을 디스에이블시킴으로써 시간과 버스 싸이클이 비출될 수 있다.
데이타 카핑 외에, 블리터(67)은 카피중에 충전(fill)동작을 동시에 수행할 수 있다. 충전 동작의 제한은 충전 영역이 충전을 위해 경계선들을 셋트시키도록 수평 라인당 1개의 픽셀만을 포함하는 처음 그려진 언텍스츄어(untexture)라인에 의해 정해지게 해야 한다는 것이다. 블리터에 의해 실행된 특수 라인 도시 모우드는 이 라인 도시 동작을 달성할 수 있다. 블리터는 소정 각도의 통상적 라인을 그릴 수 있고, 그리는 라인에 패턴을 적용할 수도 있다. 블리터가 라인 도시 모우드내에서 동작할 것이라는 것을 표시하기 위해서 비트가 블리터 제어 레지스터(63)내에 셋트된다. 후속 영역 충전을 위해 요구된 바와 같이, 그려지는 라인들이 1픽셀 폭이 되게 하기 위해서, 다른 비트가 수평 라인당 단일 비트를 지정하도록 블리터 제어 레지스터(63)내에 셋트되어야 한다. 소오스 A와 소오스 C는 수신지 D 블리터 DMA 채널과 함께 사용된다. 블리터 소오스 A 레지스터(77)에는 라인 도시 모우드중에 15개 0과 최상위 비트로서의 단일 1을 포함하는 16비트 워드가 미리 로드된다. 이것은 처음에 A 쉬프트 레지스터(93)내의 값만큼 정확한 위치내로 쉬프트된 다음 처리시에 라인 도시 하드웨어에 의해 쉬프트되는 단일 비트이다. B 데이타 레지스터(77)내의 16개 비트는 라인의 텍스츄어를 표시하기 위해 사용되고, 이 비트에는 충전 모우드가 후속 실행되는 경우에 필요한 실선을 발생시키기 위해 모두 1이 미리 로드된다. 블리터 제어 레지스터(63)내의 4개 비트에는 라인의 개시 비트가 발생하는 워드내의 비트 위치가 로드된다. 블리터 제어 레지스터(63)내의 3개 비트에는 라인 도시를 위해 사용된 8개의 팔분원들중 1개의 팔분원을 선택하는 값이 로드된다. 8개의 팔분원은 라인 도시 목적을 위해 라인의 방향을 정하도록 2차원 카티젼 평면(Catesian plane)을 8개 영역으로 나누기 위해 사용된다. 브리터 사이즈 레지스터는 라인 길이를 제어하기 위해 사용되고, 데이타가 기입될 때 라인 도시를 개시한다. 10개 비트는 높이를 지정하고, 라인이 1024개 까지의 픽셀로 연장되게 하지만, 폭내의 워드 수를 표시하는 6개 비트는 항상 2로 셋트되어야 한다. 라인의 기울기는 A 모듈로 레지스터(수평 변화)와 B 모듈로 레지스터(수직 변화)내의 라인의 개시와 종료 지점들 사이의 비트 위치내의 차이를 로드시킴으로써 정해진다. 소오스 A용 블리터 포인터 레지스터(138)은 인 라인 모우드시에 누산기로서 사용된다. 소오스 C와 수신시 D용 포인터 레지스터에는 제1수평 라인의 개시 어드레스가 미리 로드되어야한다. C 소오스와 D 수신지용 모듈로 레지스터에는 라인이 그려지고 있는 스크린의 폭이 미리 로드된다.
블리터 제어 레지스터(63)에는 라인 도시 모우드중에 동일 논리 기능 최소항 선택 비트들이 항상 로드된다. 라인 도시 모우드중의 논리 기능 선택 블리터 동작은 의 수신지내로의 이동이다. A 소오스 데이타 레지스터(77)에는, 상술한 바와 같이, 데이타 워드내의 단일 비트, 즉 1이 로드된다. 그러므로, 디스플레이 휠드(C)상의 이 동작은 비트플레인내의 대부분을 불변상태로 유지시키게 되는데, 그 이유는 각 워드내의 16개 비트들중 최소한 15개 비트의 경우에, 수신지에 C 소오스 데이타 레지스터(89)내의 기존 비트값이 로드된다(). 라인 도시 동작 다음에 영역 충전 동작이 뒤따른 경우에, 언텍스츄어 라인들이 요구되므로, B 소오스 데이타 레지스터(79)는 단지 1만을 포함한다. 그러므로, 1인 A 소오스 레지스터(77)내의 워드당 1비트인 경우에, C 소오스 데이타 레지스터(89)내에 포함된 비트값은 반전된다(). 각 후속 수평 라인의 경우, 블리터 하드웨어는 A 소오스 데이타 레지스터(77)내에 기억되는 데이타 워드내의 정확한 위치로 1을 자동적으로 이동시킨다. 결과적으로, 각 수평 라인상에 1픽셀을 갖고 있는 특수 라인은 블리터(67)에 의해 그려질 수 있다.
충전 동작은 다른 블리터 데이타 카피 동작 주위에 수행될 수 있다. 영역 충전 동작전에, 디스플레이상에 2개의 수직 라인(각각 1비트폭)을 제공하기 위해 블리터 라인 도시 동작이 먼저 수행된다. 충전 동작은 내림차순 모우드(높은 메모리 어드레스로부터 낮은 메모리 어드레스로)내에서만 정확히 동작한다. 단 1개의 소오스와 수신지 D가 요구된다. 포인터 레지스터(138)내의 소오스와 수신지용 포인터는 동작이 내림차순 방향으로 수행되기 때문에 RAM(401)내의 윈도우의 사각형의 최종 워드의 어드레스인 동일 값으로 셋트되어야 한다. 소오스와 수신지용 모듈로 레지스터에는 충전될 사각형의 수평 라인내의 워드 수와 비트플레인에 의해 메모리내에 취해진 수평 라인당 워드간의 차이가 로드된다. 블리터 사이즈 레지스터에는 디스플레이 윈도우내의 수직 라인수를 셋트시키는 10개 비트와 각 수평 라인내의 워드수를 정하는 6개 비트가 로드된다. 블리터 사이즈 레지스터에의 기입은 블리터의 동작을 개시하게 된다. Fill Carry In 제어 비트는 각 라인의 최우측 연부에서 시작되는(내림차순 모우드) 개시 충전 상태를 표시하기 위해 블리터 제어 레지스터(63)내에 로드된다. Fill Carry In 비트가 1로 셋트되면, 라인 밖의 소오스 영역내의 영역은 1로 충전되고, 라인 내부의 영역은 0인채로 유지된다. Fill Carry In 비트가 0이면, 라인들 사이의 영역은 1로 충전된다. 또한, 블리터 제어 레지스터(63)에는 내포 충전 또는 배타 충전이 사용될지의 여부를 표시하는 비트가 로드된다. 배타 충전이 엔에이블되면, 충전의 미연부(좌측)상의 아웃라인은 발생충만 영역으로부터 제외된다. 배타 충전 모우드의 엔에이블링은 날카로운 단일 픽셀 꼭지점을 발생시키기 위해 사용된다.
스프라이트 오브젝트들은 메모리내의 영상 위치를 이동시키지 않고서 스크린상에서 신속히 이동시킬 수 있는 그래픽 오브젝트이다. 대조적으로, 비트맵된 오브젝트들은 RAM(401)내의 위치에 직접 관련되는 디스플레이 스크린상의 위치를 갖고, 이들을 이동시키기 위해서, 메모리내에 기억된 오브젝트 영상은 소거되어 상이한 위치내에 재기입되어야 한다. 이것은 매우 긴 시간을 요할 수 있다. 아미가 시스템내에 사용된 스프라이트들은 수평 위치 레지스터(343), 수직 위치 레지스터(37), 수평 위치 비교기(341), 수직 위치 비교기(39) 및 스프라이트 데이타 버퍼 레지스터(345)와 같은 보조 하드웨어로 이동된다. 스프라이트를 이동시키기 위해, 위치 레지스터내의 기억된 값들은 간단히 변경된다. 수직 위치 회로들은 아그너스 칩(410)상에 배치된다. 데이타 버퍼와 수평 위치 회로들은 데니스 칩(420)상에 배치된다.
스프라이트의 위치는 상부 좌측 픽셀의 좌표를 지정함으로써 정해진다. 아미가 시스템내에서, 각 스프라이트는 16개 픽셀(1개 데이타 워드)의 고정 폭 및 가변 높이를 갖고 있는 디스플레이상의 사각형을 형성한다. 그러므로, 스프라이트는 인접 메모리 영역내의 일련의 16개 비트워드로 구성된다. 스프라이트 데이타 구조를 발생시키기 위해, 이 특정한 스프라이트(모두 유용한 8개의 스프라이트가 있다)용 위치 레지스터(153 및 343)내의 비트에는 수직 개시 위치를 지정하는 8개 비트와 스프라이트의 상부 좌측 코너에서 픽셀의 수평 개시 위치를 지정하는 8개 비트가 로드된다. 다음에, 이 특정한 스프라이트용 수직 정지 위치 레지스터(155)내의 8개 비트에는 특정한 스프라이트용 수직 정지 위치가 로드된다(스프라이트 제어 레지스터라고 부름). 각 스프라이트마다 1개의 위치와 1개의 제어 레지스터가 있거나, 전체 아미가 시스템의 각각에 대한 총 8개의 레지스터가 있다. 또한, 각 스프라이트는 스프라이트의 특정한 수평 라인 상의 각각의 16개 픽셀용으로 사용된 컬러 레지스터를 정하는 비트를 포함하는 2개의 데이타 레지스터에 관련된다. 각 스프라이트용 2개의 데이타 레지스터는 2개의 비트가 스프라이트내의 소정의 특정한 픽셀에 관련된 컬러 레지스터를 정할 때 사용되게 한다. 그러므로, 4개의 가능 레지스터들이 유용하다. 2개의 비트가 특정한 픽셀용으로 0에 셋트되면, 이것은 투명이라고 해석되고, 낮은 우선 순위를 갖고 있는 플레이휠드 또는 스프라이트에 관련된 데이타에 의해 정해진 컬러가 디스플레이될 수 있다. 소정의 다른 이진수는 이 특정한 스프라이트 DMA 채널에 지정된 3개의 컬러 레지스터들중 1개의 레지스터를 지시한다. 8개의 스프라이트는 시스템 컬러 레지스터(17-19, 21-23, 25-27 및 29-31)을 사용한다. 컬러를 선택하기 위해, 8개의 스프라이트들은 쌍으로 구성되고, 각 쌍은 3개의 컬러 레지스터들중 1개의 컬러 레지스터를 사용하거나 투명 모우드를 선택한다. 각 홀수 스프라이트마다 관련된 제어 레지스터는 컬러 해석시에 2개의 스프라이트용 데이타를 쌍으로 하도록 홀수와 짝수 스프라이트를 부착시키기 위해서 셋트될 수 있는 비트를 포함한다. 2개의 스프라이트는 여전히 독립적 운동을 할 수 있게 된다. 그러나, 소정의 특정한 픽셀 위치에서 서로 오버레이하는 연부들이 있으면, 더 많은 컬러 선택이 가능한데, 그 이유는 모든 4개의 비트들이 16개 컬러 레지스터들중 1개의 레지스터를 선택할 때 사용되기 때문이다.
각 스프라이트를 정하는 데이타에 대한 메모리 어드레스는 스프라이트의 제1디스플레이전의 수직 공백기간중에 적합한 포인터 레지스터(138)내에 기입되어야 한다. 통상적으로, 스프라이트 포인터 레지스터는 코퍼(47)에 의해 수직 공백 기간중에 로드된다. 스프라이트 포인터 레지스터내의 값들은 동적이고, 가산기(137)을 사용하여 증가되며, 먼저 위치 레지스터내에 로드될 개시 데이타를 포함하는 메모리 어드레스를 지시한 다음, 스프라이트(수직 정지) 제어 레지스터(155)내에 로드될 수직 정지 데이타를 포함하는 다음 어드레스를 지시하며, 그 다음에 스프라이트의 각 수평 라인용으로 요구된 컬러 선택 정보를 지정하는 데이타 워드쌍을 포함하는 다음 어드레스를 지시한다. 데이타 워드들이 스프라이트내의 최종 수평 라인내의 컬러 선택을 설명한 후, 2개의 데이타 워드들은 이 스프라이트의 다음 용도를 표시하고, 스프라이트의 재사용을 위해 개시와 정지 데이타를 구성한다. 이 최종 워드 쌍은 특정한 스프라이트 프로세서가 디스플레이 프레임내에서 수직으로 1회만 사용될 경우에 모든 0을 포함한다. 수직 공백기간 동안, 스프라이트 포인터는 포인터 레지스터내에 재기입되어야 한다. 비디오 비임 카운터(117)은 화상을 발생시키고 있는 비디오 비임의 현재 위치를 표시하는 카운트를 포함한다. 스프라이트 수직 위치 비교기(39)와 수평 위치 비교기(341)은 비임 카운터의 값을 스프라이트 위치 레지스터(153과 343)내의 개시 위치의 값에 비교한다. 스프라이트 위치 및 제어 레지스터로의 기입은 수평 비교기 회로(341)을 디스플레이시킨다. 이것은 데이타 레지스터(345)가 소정의 출력을 직렬기(347) 및 스프라이트 버스(349)로 보내지 못하게 한다. 비임이 스프라이트의 최상부 픽셀이 나타날 수평 라인에 도달하였으면, 수직 위치 비교기(39)는 스프라이트 DMA 제어기(41)이 로드된 이 스프라이트용 데이타 레지스터(345)를 갖게 하므로, 수평 비교기(341)을 엔에이블시킨다. 이것은 비교기(341)이 수평 개시 위치에 도달하였다는 것을 표시할 때 스프라이트 버스로의 이 스프라이트에 대한 직렬기(369)에 의한 출력을 엔에이블시킨다. 스프라이트 데이타 워드의 각각의 16개 비트는 이 비트에 관련된 픽셀이 스크린상에 디스플레이되고 있을 때 컬러 선택 회로로 각각 보내진다. 각 병렬-직렬 변환기(369)는 변환기밖의 비트를 쉬프트시키기 시작하는데, 최상위 비트가 제일 먼저 쉬프트된다. 쉬프트는 각 저 해상도 픽셀 타임중에 1회 발생하고, 모든 16개 비트들이 스프라이트 버스(349)로 전송될 때까지 계속된다. 스프라이트 버스는 컬러 레지스터를 선택할 때 스프라이트와 플레이휠드 간의 우선순위를 설정하기 위해 우선순위 회로(337)를 진행한다. 스프라이트 DMA 채널은 얼마나 많은 스프라이트 라인들이 페치될 것인지를 결정학 위해 스프라이트 위치 및 제어 레지스터의 내용을 검사하는데, 수평 공백 기간중의 각 수평 주사 라인 발생마다 2개의 데이타 워드가 페치된다. 각 수평 주사 라인에 대한 페치 및 기억은 수평 공백 기간중에 발생한다. 데이타 워드가 페치되어 데이타 레지스터내에 기입되면, 이것은 스프라이트 수평 비교기(341)을 갖추고 있고, 이 비교기들이 수평 비임 카운트값이 스프라이트 수평 위치 레지스터(343)내에 기억된 값과 일치하는 즉시 스크린으로의 스프라이트 데이타 출력을 개시하게 된다. 비임 카운터의 수직 위치가 스프라이트 제어 레지스터내에 포함된 수직 정지값과 동일하면, 스프라이트 포인터 레지스터에 의해 어드레스되고 메모리로부터 페치된 다음 2개 워드는 데이타 레지스터(345)로 보내지는 대신에 스프라이트 위치 및 제어 레지스터내에 기입된다. 이 워드들은 위치 및 제어 레지스터내에 처음된 로드된 최초 워드와 동일한 방식으로 하드웨어에 의해 해석된다. 현재 비임 위치보다 높은 수직 개시 위치를 위치 레지스터에 로드시킴으로써, 스프라이트는 동일 디스플레이 휠드중에 재사용될 수 있다.
상술한 방식으로 발생된 스프라이트는 스프라이트 위치 및 제어 레지스터내에 로드된 수직 및 수평 개시위치와 수직 정지 위치를 간단히 변경시킴으로써 이동될 수 있다. 이 위치 데이타가 스프라이트가 다시 그려지기전에 변경되면, 스프라이트는 새로운 위치내에 나타나게 되고, 이동하고 있는 것으로 나타나게 된다. 통상적으로, 수직 공백 기간은 스프라이트의 위치를 변경시키기에 최적한 시간이다. 각 스프라이트 DMA 채널은 동일 디스플레이 휠드내에서 수회 재사용될 수 있다. 디스플레이 스크린상의 낮은 수직 위치에서의 스프라이트 재사용에 관한 제한은 이전 사용 스프라이트의 최종 라인이 다음 사용 스프라이트의 상부 라인으로부터 최소한 1개의 수평 주사 라인에 의해 분리되어야 한다는 것이다. 다음 사용 스프라이트를 정하는 위치 및 제어 워드를 페치시키기 위해 수평 주사 라인중의 시간이 필요하기 때문에 이 제한이 필요하다. 스프라이트가 디스플레이 스크린상에서 이동할 때, 이 스프라이트들은 서로 또는 2개의 플레이휠드중 어느 한 플레이휠드와 충돌할 수 있다. 아미가 시스템은 특수 효과를 발생시키거나 특수 온스크린 경계선내에 이동 오브젝트를 유지시키기 위해 특수 충돌 검출 논리(335)를 포함한다. 내장(built in) 스프라이트 비디오 우선순위는 스프라이트들이 중첩될 때만 한 스프라이트가 다른 스프라이트 뒤에 나타나게 한다. 우선 순위 회로(337)은 최저 번호 스프라이트에 최고 우선순위를 제공하고, 최고 번호 스프라이트에 최저 우선순위를 제공한다. 그러므로, 2개의 스프라이트가 중첩될 때, 낮은 번호 스프라이트에 대한 데이타에 의해 정해진 영상은 투명한 것으로서 지정되는 픽셀 위치외에 표시되는데, 이 경우에 저 우선순위 스프라이트 데이타는 영상을 발생시키기 위해 사용될 수 있다.
디스플레이상의 여러 오브젝트들의 우선순위는 3차원 착각을 제공하도록 제어될 수 있다. 플레이휠드 우선순위와 충돌 목적만을 위해, 스프라이트들은 각 2개 스프라이트의 4개 그룹으로서 취급된다. 서로에 대한 스프라이트들의 상대 우선순위는 변경될 수 없다.
이들은 항상(높은 스크린 우선순위를 갖고 있는) 높은 번호 스프라이트 전방에 나타나는 낮은 번호 스프라이트로 스크린상에 나타나게 된다. 이 우선순위는 디스플레이 우선순위 제어 논리(337)내에 와이어된다. 비트플레인 우선순위 레지스터(355)내에서, 플레이휠드 1, 플레이휠드 2 및 4개의 스프라이트쌍의 상대 비디오 우선순위를 제어하게 되는 7개 비트들이 로드될 수 있다. 4개의 스프라이트쌍에 관련하여 플레이휠드 1의 상대 우선순위를 결정하기 위해 3개 비트가 사용된다. 이와 유사하게, 플레이휠드 2와 4개의 스프라이트쌍 간의 우선순위를 설정하기 위해 3개 이상의 비트가 사용된다. 그러나, 2개의 플레이휠드중 어느 플레이휠드가 다른 것보다 높은 우선순위를 갖는지를 결정하기 위해 1개 이상의 비트가 사용된다. 이것은 스크린상의 이상 시각 효과를 허용한다. 그러므로, 플레이휠드 1보다 낮은 우선순위를 갖는 동안, 스프라이트는 플레이휠드 1전방에 나타나지만 플레이휠드 2뒤에서 사라지게 할 수 있으므로, 플레이휠드 2뒤에는 나타나지 않는다.
충돌 제어 레지스터(351)은 소정의 충돌 검출 특성을 정하는 비트를 포함한다. 2개 이상의 오브젝트가 동일 픽셀 위치내에서 중첩되고저 할 때 충돌이 검출된다. 이것은 충돌 제어 레지스터가 특정한 중첩이 충돌을 발생시키게 된다는 것을 표시하는 경우에 충돌 데이타 기억 에지스터(353)내의 비트를 셋트시키게 된다. 충돌 기억 레지스터내의 15개 비트는 소정의 몇가지 형태, 예를 들어 다른 스프라이트에 대한 스프라이트, 홀스 비트플레인에 대한 짝수 비트플레인, 소정 스프라이트에 대한 짝수 비트플레인, 또는 소정 스프라이트에 대한 홀수 비트플레인의 중첩이 발생하였는지의 여부를 표시하기 위해 사용된다. 충돌 제어 레지스터는 충돌 검출로부터 홀수 스프라이트 또는 특수 비트플레인을 포함할지 또는 제외시킬지를 지정하는 비트를 포함한다. 또한, 다른 비트들은 충돌을 발생시키게 되는 각 비트플레인내의 비트의 진-오 상태(ture-false condition)를 지정한다. 그러므로, 오브젝트가 특정한 컬러와 충돌할 때에만 충돌을 레지스터할 수 있다.
본 발명의 상기 설명은 한가지 양호한 실시예를 설명하기 위한 것이다. 본 발명의 특징 및 범위를 벗어나지 않고서 본 명세서내에 기술된 구조를 변경시킬 수 있다.

Claims (66)

  1. 비디오 출력 신호를 래스터 디스플레이에 공급하는 퍼스널 컴퓨터 시스템에 있어서, 다수의 픽셀로 구성된 영상이 스크린을 전자 비임 주사함으로써 상기 래스터 디스플레이의 스크린상에 어셈블되고, 상기 전자 비임에 의해 주사되는 픽셀의 가시 특성은 픽셀이 주사될 때에 상기 퍼스널 컴퓨터 시스템에 의해 제공된 상기 비디오 출력 신호에 의해 규정되며, 상기 퍼스널 컴퓨터 시스템이, 프로그램 명령어를 실행하는 중앙 프로세서 수단, 픽셀의 상기 특성을 규정하고 상기 픽셀에 대응하는 1개 이상의 어드레스에 기억된 비트 맵 영상 데이타를 기억하기 위한 다수의 어드레스를 포함하는 메모리 수단, 데이타를 전송하기 위해 상기 프로세서 수단 및 상기 메모리 수단에 결합된 데이타 버스 수단, 어드레스를 상기 메모리 수단에 전송하기 위해 상기 프로세서 수단 및 상기 메모리 수단에 결합된 어드레스 버스 수단, 상기 데이타 버스 수단에 전송될 미처리된 비트 맵 영상 데이타의 다수의 소오스로서 상기 메모리 수단내의 다수의 소오스 어드레스를 선택하고 상기 데이타 버스 수단에 전송되어 처리된 비트 맵 영상 데이타의 수신지로서 상기 메모리 수단내의 수신지 어드레스를 선택하는, 상기 어드레스 버스 수단에 결합된 포인터 수단, 상기 메모리 수단과의 사이에 비트 맵 영상 데이타의 블럭을 전송하고 이 비트 맵 영상 데이타의 블럭을 처리하는, 상기 데이타 버스 수단에 결합된 블리터 수단 및 픽셀에 대응하는 1개 이상의 어드레스내에 기억된 비트 맵 영상 데이타를 수신하고 상기 픽셀의 가시 특성을 결정하는 비디오 출력 신호를 발생시키는 영상 디스플레이 수단을 포함하고, 상기 블리터 수단이, 상기 다수의 소오스 어드레스에서 상기 메모리 수단에 기억되어 미처리된 비트 맵 영상 데이타를 상기 데이타 버스 수단으로부터 수신하기 위한 수단, 처리된 비트 맵 영상 데이타를 발생하도록 상기 다수의 소오스 어드레스 각각에 대해 상기 수신 수단으로부터 동시에 입력되어 미처리된 비트 맵 영상 데이타에 대한 논리 동작을 실행하기 위한 논리 수단 및 수신지 어드레스에서 상기 메모리 수단내에 기억하기 위해 상기 처리된 비트 맵 영상 데이타를 상기 데이타 버스 수단에 제공하기 위한 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  2. 제1항에 있어서, 상기 포인터 수단이 상기 데이타 버스 수단에 전송되어 미처리된 비트 맵 영상 데이타의 제1소오스, 제2소오스 및 제3소오스로서 상기 메모리 수단에 기억된 제1어드레스, 제2어드레스 및 제3어드레스를 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  3. 제2항에 있어서, 상기 영상 디스플레이 수단이 RGB 컬러 신호를 포함하는 비디오 출력 신호를 발생시키는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  4. 제2항에 있어서, 비트 맵 영상 데이타가 상기 블리터 수단과 상기 메모리 수단과의 사이에 전송될 때에 데이타가 상기 데이타 버스 수단과 상기 중앙 프로세서 수단에 전송되는 것을 방지하기 위해 블리터 DMA 요구를 발생하는 블리터 DMA 제어기 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  5. 제2항에 있어서, 상기 영상이 다수의 수평 라인을 전자 비임 주사함으로써 상기스크린상에 어셈블되고 상기 퍼스널 컴퓨터 시스템이, 상기 블리터 수단에 의해 처리되는 비트 맵 영상 데이타의 윈도우 폭을 정하기 위한 사이즈 수단 및 모듈로 수를 기억하기 위해 상기 포인터 수단에 결합된 모듈로 레지스터 수단을 포함하고, 상기 윈도우 폭의 수가 상기 윈도우의 각 수평 라인에 대응하는 어드레스의 수이고, 상기 모듈로 수가 1개 이상의 소오스 어드레스 및 수신지 어드레스에 대한 상기 영상의 각 수평 라인에 대응하는 상기 윈도우 폭의 수와 상기 어드레스 수 사이의 차이에 대응하며, 상기 포인터 수단이 상기 윈도우의 다른 수평 라인에 대응하는 최종 어드레스에 모듈로 수를 가산함으로써 1개 이상의 상기 소오스 어드레스 및 수신지 어드레스에 대해, 상기 윈도우의 한 수평 라인에 대응하는 제1어드레스를 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  6. 제5항에 있어서, 상기 수신 수단이 1개 이상의 상기 소오스 어드레스에 대해서 상기 데이타 버스 수단으로부터 미처리된 비트 맵 영상 데이타의 다중 비트 데이타 워드를 수신하고, 1개 이상의 상기 소오스 어드레스에 대해 상기 수신된 다중 비트 데이타 워드의 선택된 수의 비트를 마스킹하기 위한, 상기 수신 수단과 상기 논리 수단과의 사이에 결합된 마스크 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  7. 제2항에 있어서, 상기 블리터 수단이 상기 3개의 소오스 어드레스중 1개 이상의 어드레스로부터의 비트 맵 영상 데이타에 대한 쉬프트 동작을 실행하기 위한 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  8. 제7항에 있어서, 상기 블리터 수단이 상기 3개의 소오스 어드레스중 1개 이상의 어드레스로부터의 비트 맵 영상 데이타에 대해 실행될 쉬프트의 사이즈를 결정하는 쉬프트 카운트를 선택하기 위해 쉬프트 카운트를 포함하고, 상기 쉬프트 수단이 상기 선택된 쉬프트 카운트를 실행하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  9. 제2항에 있어서, 상기 블리터 수단이 다수의 논리 동작중 한 동작을 선택하기 위한 수단을 포함하고, 상기 논리 수단이 상기 선택된 논리 동작을 실행하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  10. 제9항에 있어서, 다수의 논리 동작중 한 동작을 선택하기 위한 수단이 256개의 가능한 논리 동작중 한 동작을 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  11. 제9항에 있어서, 상기 블리터 수단이 상기 3개의 소오스 어드레스중 한 어드레스로부터의 비트 맵 영상 데이타에 대해 쉬프트 동작을 실행하기 위한 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  12. 제9항에 있어서, 상기 영상이 배경 및 윤곽을 갖는 배경상의 오브젝트를 포함하고, 상기 오브젝트가 상기 배경과 관련하여 생성되며, 상기 메모리 수단이 상기 오브젝트의 윤곽을 정하는 데이타를 기억하는 1개 이상의 어드레스 A, 상기 영상의 가시 특성을 규정하는 비트 맵 영상 데이타를 기억하는 1개 이상의 어드레스 C, 상기 오브젝트의 가시 특성을 규정하는 비트 맵 영상 데이타를 기억하는 1개 이상의 어드레스 B 및 상기 오브젝트에 의해 커버된 최소한 배경의 일부분에 대한 가시 특성을 규정하는 비트 맵 영상 데이타를 기억하는 1개 이상의 어드레스 T를 포함하고, 상기 포인터 수단이 제1시간에는 제1소오스로서의 어드레스 A, 제2 소오스로서의 어드레스 C 및 수신지로서의 어드레스 T를 선택하고, 제2시간에는 제1소오스로서의 어드레스 A, 제2소오스로서의 어드레스 B, 제3소오스로서의 어드레스 C 및 수신지로서의 어드레스 C를 선택하며 제3시간에는 제1소오스로서의 어드레스 A, 제2소오스로서의 어드레스 T 및 수신지로서의 어드레스 C를 선택하고, 상기 선택 수단이 상기 오브젝트에 의해 커버될 배경의 최소한 어드레스 T에 기억하는 제1시간의 논리 동작을 선택하고, 상기 오브젝트의 윤곽이 어드레스 C에 존재할 경우에 상기 오브젝트의 가시 특성을 정하는 비트 맵 영상 데이타를 어드레스 C에 기억하고 상기 오브젝트의 윤곽이 어드레스 C에 존재하지 않을 경우에 상기 배경의 가시 특성을 정하는 비트 맵 영상 데이타를 어드레스 C에 보관하는 제2시간에 논리 동작을 선택하며, 상기 오브젝트에 의해 커버될 상기 배경의 최소한 일부분의 가시특성을 정하는 비트 맵 영상 데이타를 어드레스 C에 기억하는 제3시간에 논리 동작을 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 블리터 수단이 상기 다수의 소오스 어드레스중 1개 이상의 어드레스로부터의 비트 맵 영상 데이타에 대한 쉬프트 동작을 실행하기 위한 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  14. 제1항에 있어서, 상기 블리터 수단이 다수의 논리 동작중 한 동작을 선택하기 위한 수단을 포함하고, 상기 논리 수단이 상기 선택된 논리 동작을 실행하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  15. 제14항에 있어서, 비트 맵 영상 데이타가 상기 블리터 수단과 상기 메모리 수단과의 사이에 전송될 때에 데이타가 상기 데이타 버스 수단과 상기 중앙 프로세서 수단에 전송되는 것을 방지하기 위해 블리터 DMA 요구를 발생하는 블리터 DMA 제어기 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  16. 제14항에 있어서, 상기 영상이 다수의 수평 라인을 전자 비임 주사함으로써 상기 스크린상에 어셈블되고, 상기 퍼스널 컴퓨터 시스템이, 상기 블리터 수단에 의해 처리되는 비트 맵 영상 데이타의 윈도우 폭을 정하기 위한 사이즈 수단 및 모듈로 수를 기억하기 위해 상기 포인터 수단에 결합된 모듈로 레지스터 수단을 포함하고, 상기 윈도우 폭의 수가 상기 윈도우의 각 수평 라인에 대응하는 어드레스의 수이고, 상기 모듈로 수가 1개 이상의 소오스 어드레스 및 수신지 어드레스에 대한 상기 영상의 각 수평 라인에 대응하는 상기 윈도우 폭의 수와 상기 어드레스 수 사이의 차이에 대응하며, 상기 포인터 수단이 상기 윈도우의 다른 수평 라인에 대응하는 최종 어드레스에 모듈로 수를 가산함으로써 1개 이상의 상기 소오스 어드레스 및 수신지 어드레스에 대해, 상기 윈도우의 한 수평 라인에 대응하는 제1 어드레스를 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  17. 제14항에 있어서, 상기 수신 수단이 1개 이상의 상기 소오스 어드레스에 대해서 상기 데이타 버스 수단으로부터 미처리된 비트 맵 영상 데이타의 다중 비트 데이타 워드를 수신하고, 1개 이상의 상기 소오스 어드레스에 대해 상기 수신된 다중 비트 데이타 워드의 선택된 수의 비트를 마스킹하기 위한, 상기 수신 수단과 상기 논리 수단과의 사이에 결합된 마스크 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  18. 제14항에 있어서, 상기 블리터 수단이 상기 다수의 소오스 어드레스중 1개 이상의 어드레스로부터 비트 맵 영상 데이타에 대한 쉬프트 동작을 실행하기 위한 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  19. 제18항에 있어서, 상기 블리터 수단이 상기 다수의 소오스 어드레스중 1개 이상의 어드레스로부터의 비트 맵 영상 데이타에 대해 실행될 쉬프트의 사이즈를 결정하는 쉬프트 카운트를 선택하기 위한 쉬프트 카운트를 포함하고, 상기 쉬프트 수단이 상기 선택된 쉬프트 카운트를 실행하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  20. 제1항에 있어서, 상기 블리터 수단이 상기 다수의 소오스 어드레스중 한 어드레스로부터의 비트 맵 영상 데이타에 대해 쉬프트 동작을 실행하기 위한 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  21. 제20항에 있어서, 상기 블리터 수단이 상기 다수의 소오스 어드레스중 1개 이상의 어드레스로부터의 비트 맵 영상 데이타에 대해 실행될 쉬프트의 사이즈를 정하는 쉬프트 카운트를 선택하기 위해 쉬프트 카운트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  22. 제20항에 있어서, 비트 맵 영상 데이타가 상기 블리터 수단과 상기 메모리 수단과의 사이에 전송될 때에 데이타가 상기 데이타 버스 수단과 상기 중앙 프로세서 수단에 전송되는 것을 방지하기 위해 블리터 DMA 요구를 발생하는 블리터 DMA 제어기 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  23. 제20항에 있어서, 상기 수신 수단이 1개 이상의 상기 소오스 어드레스에 대해서 상기 데이타 버스 수단으로부터 미처리된 비트 맵 영상 데이타의 다중 비트 데이타 워드를 수신하고, 1개 이상의 상기 소오스 어드레스에 대해 상기 수신된 다중 비트 데이타 워드의 선택된 수의 비트를 마스킹하기 위한, 상기 수신 수단과 상기 논리 수단과의 사이에 결합된 마스크 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  24. 제1항에 있어서, 비트 맵 영상 데이타가 상기 블리터 수단과 상기 메모리 수단과의 사이에 전송될 때에 데이타가 상기 데이타 버스 수단과 상기 중앙 프로세서 수단에 전송되는 것을 방지하기 위해 블리터 DMA 요구를 발생하는 블리터 DMA 제어기 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  25. 제24항에 있어서, 상기 영상이 다수의 수평 라인을 전자 비임 주사함으로써 상기 스크린상에 어셈블되고, 상기 퍼스널 컴퓨터 시스템이, 상기 블리터 수단에 의해 처리되는 비트 맵 영상 데이타의 윈도우 폭을 정하기 위한 사이즈 수단 및 모듈로 수를 기억하기 위해 상기 포인터 수단에 결합된 모듈로 레지스터 수단을 포함하고, 상기 윈도우 폭의 수가 상기 윈도우의 각 수평 라인에 대응하는 어드레스의 수이고, 상기 모듈로 수가 1개 이상의 소오스 어드레스 및 수신지 어드레스에 대한 상기 영상의 각 수평 라인에 대응하는 상기 윈도우 폭의 수와 상기 어드레스 수 사이의 차이에 대응하며, 상기 포인터 수단이 상기 윈도우의 다른 수평 라인에 대응하는 최종 어드레스에 모듈로 수를 가산함으로써 1개 이상의 상기 소오스 어드레스 및 수신지 어드레스에 대해, 상기 윈도우의 한 수평 라인에 대응하는 제1 어드레스를 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  26. 제24항에 있어서, 상기 수신 수단이 1개 이상의 상기 소오스 어드레스에 대해서 상기 데이타 버스 수단으로부터 미처리된 비트 맵 영상 데이타의 다중 비트 데이타 워드를 수신하고, 1개 이상의 상기 소오스 어드레스에 대해 상기 수신된 다중 비트 데이타 워드의 선택된 수의 비트를 마스킹하기 위한, 상기 수신 수단과 상기 논리 수단과의 사이에 결합된 마스크 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  27. 제1항에 있어서, 상기 영상 디스플레이 수단이 RGB 컬러 신호로 구성된 비디오 출력 신호를 발생시키는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  28. 제1항에 있어서, 상기 영상이 다수의 수평 라인을 전자 비임 주사함으로써 상기 스크린상에 어셈블되고, 상기 퍼스널 컴퓨터 시스템이, 상기 블리터 수단에 의해 처리되는 비트 맵 영상 데이타의 윈도우 폭을 지정하기 위한 사이즈 수단 및 모듈로 수를 기억하기 위해 상기 포인터 수단에 결합된 모듈로 레지스터 수단을 포함하고, 상기 윈도우 폭이 상기 윈도우의 각 수평 라인에 대응하는 어드레스의 수이고, 상기 모듈로 수가 1개 이상의 소오스 어드레스 및 수신지 어드레스에 대한 상기 영상의 각 수평 라인에 대응하는 상기 윈도우 폭의 수와 상기 어드레스 수 사이의 차이에 대응하며, 상기 포인터 수단이 상기 윈도우의 다른 수평 라인에 대응하는 최종 어드레스에 모듈로 수를 가산함으로써 1개 이상의 상기 소오스 어드레스 및 수신지 어드레스에 대해, 상기 윈도우의 한 수평 라인에 대응하는 제1 어드레스를 선택하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  29. 제28항에 있어서, 상기 수신 수단이 1개 이상의 상기 소오스 어드레스에 대해서 상기 데이타 버스 수단으로부터 미처리된 비트 맵 영상 데이타의 다중 비트 데이타 워드를 수신하고, 1개 이상의 상기 소오스 어드레스에 대해 상기 수신된 다중 비트 데이타 워드의 선택된 수의 비트를 마스킹하기 위한, 상기 수신 수단과 상기 논리 수단과의 사이에 결합된 마스크 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  30. 비디오 출력 신호를 래스터 디스플레이에 공급하는 퍼스널 컴퓨터 시스템에 있어서, 다수의 픽셀로 구성된 영상이 스크린을 전자 비임 주사함으로써 상기 래스터 디스플레이의 스크린상에 어셈블되고, 상기 전자 비임에 의해 주사되는 픽셀의 가시 특성은 픽셀이 주사될 때에 상기 퍼스널 컴퓨터 시스템에 의해 제공된 상기 비디오 출력 신호에 의해 규정되며, 상기 영상이 2개의 수직 라인에 의해 경계지워지는 영역을 포함하고, 상기 퍼스널 컴퓨터 시스템이, 프로그램 명령어를 실행하는 중앙 프로세서 수단, 픽셀의 상기 특성을 정하고 상기 픽셀에 대응하는 1개 이상의 어드레스에 기억된 비트 맵 영상 데이타를 기억하기 위한 다수의 어드레스를 포함하는 메모리 수단, 데이타를 전송하기 위해 상기 프로세서 수단 및 상기 메모리 수단에 결합된 데이타 버스 수단, 어드레스를 상기 메모리 수단에 전송하기 위해 상기 프로세서 수단 및 상기 메모리 수단에 결합된 어드레스버스 수단 상기 데이타 버스 수단에 전송되어 미처리된 비트 맵 영상 데이타의 소오스로서 상기 메모리 수단내의 소오스 어드레스를 선택하고 상기 데이타 버스 수단에 전송되어 처리된 비트 맵 영상 데이타의 수신지로서 상기 메모리 수단내의 수신지 어드레스를 선택하는, 상기 어드레스 버스 수단에 결합된 포인터 수단, 상기 메모리 수단과의 사이에 비트 맵 영상 데이타의 블럭을 전송하고 이 비트 맵 영상 데이타의 블럭을 처리하는, 상기 데이타 버스 수단에 결합된 블리터 수단 및 픽셀에 대응하는 1개 이상의 어드레스에 기억된 비트 맵 영상 데이타를 수신하고 상기 비디오 출력 신호를 발생시키는 영상 디스플레이 수단을 포함하고, 상기 블리터 수단이, 상기 소오스 어드레스에서 상기 메모리 수단에 기억되어 미처리된 비트 맵 영상 데이타를 상기 데이타 버스 수단으로부터 수신하는 수단, 비트 맵 영상 데이타를 처리하기 위해 미처리된 비트 맵 영상 데이타에 대해 논리 동작을 실행하고, 충전 논리 수단을 포함하며, 상기 영상의 한 수평 라인에 대응하는 비트 맵 영상 데이타의 처리중에 상기 2개의 수직 라인 각각에 대응하는 비트 맵 영상 데이타를 검출하고, 상기 경계 영역을 채우기 위해 상기 2개의 수직 라인에 의해 경계지워진 한 수평 라인의 상기 영역에 대응하는 비트 맵 영상 데이타를 변경시키기 위한 논리 수단 및 상기 수신지 어드레스에서 상기 메모리 수단에 기억하기 위해 상기 처리된 비트 맵 영상 데이타를 상기 데이타 버스 수단에 제공하는 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  31. 제30항에 있어서, 상기 블리터 수단이 상기 소오스 어드레스로부터의 비트 맵 영상 데이타에 대해 쉬프트 동작을 실행하는 쉬프트 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  32. 제30항에 있어서, 비트 맵 영상 데이타가 상기 블리터 수단과 상기 메모리 수단 사이에 전송될 때에 데이타가 상기 데이타 버스 수단과 상기 중앙 프로세서 수단 사이에 전송되는 것을 방지하기 위해 블리터 DMA 요구를 발생하는 블리터 DMA 제어기 수단을 포함하는 것을 특징으로 하는 퍼스널 컴퓨터 시스템.
  33. 비디오 비임이 스크린상의 다수의 위치를 주사하는 컴퓨터 시스템에 포함된 기억 장소에 기억된 디스플레이 제어 데이타로 미드스크린 변경을 하는 컴퓨터 시스템을 사용하는 방법에 있어서, 상기 컴퓨터 시스템이, 상기 스크린상의 비디오 비임 위치를 지시하는 단계, 상기 스크린의 블랭킹 주기에 대응하지 않는 비디오 비임 위치를 정하는 단계, 상기 비디오 비임 위치 지시를 상기 정해진 비디오 비임 위치와 비교하는 단계 및 기억 장소내에 기억된 디스플레이 제어 데이타로 미드스크린 변경을 하기 위해서 상기 비디오 비임 위치 지시가 상기 정해진 비디오 비임 위치에 대응할 때에 디스플레이 제어 데이타를 기억 장소로 전송하는 단계를 실행하는 것을 특징으로 하는 방법.
  34. 제33항에 있어서, 상기 컴퓨터 시스템이 디스플레이 제어 데이타를 기억하는 다수의 기억 장소를 포함하고, 다수의 기억 장소중에 한 장소를 선택하고 단계를 포함하고, 상기 디스플레이 제어 데이타가 상기 선택된 기억 장소로 전송되는 것을 특징으로 하는 방법.
  35. 비디오 비임이 스크린상의 정해진 위치에 도달할 때에 디스플레이 제어 데이타를 기억 장소로 전송하는 코프로세서를 사용하는 방법에 있어서, 상기 비디오 비임이 사기 스크린상의 다수의 위치를 주사하고, 상기 코프로세서가 프로그램 카운터를 포함하고 다수의 상이한 명령어에 응답하며, 상기 코프로세서가 메모리, 버스, 상기 기억 장소 및 상기 스크린상의 비디오 비임의 위치를 지시하는 수단을 포함하는 컴퓨터 시스템내에 존재하고, 상기 코프로세서, 상기 메모리 및 상기 기억 장소가 상기 버스에 결합되며, 상기 코프로세서가, 상기 프로그램 카운터에 기억된 어드레스에서 상기 메모리로부터 실행될 다음 명령어를 폐치시키는 단계, 상기 비디오 비임 위치 지시 수단으로부터 상기 비디오 비임의 위치의 지시를 수신하는 단계, 상기 비디오 비임 위치 지시를 정해진 비디오 비임 위치와 비교하는 단계, 다수의 명령어들중 하나 이상의 명령어를 실행할 때에 상기 정해진 비디오 비임 위치에 대응하는 상기 비디오 비임 위치 지시에 응답하여 상기 비디오 비임 위치 지시를 상기 정해진 비디오 비임 위치와 비교한 후, 정해진 프로그램 기능을 수행하는 단계 및 상기 다수의 명령어들중 하나 이상의 명령어를 실행할 때에 디스플레이 제어 데이타를 상기 기억 장소로 전송하는 단계를 실행하는 것을 특징으로 하는 방법.
  36. 제35항에 있어서, 상기 컴퓨터 시스템이 디스플레이 제어 데이타를 기억하는 다수의 기억 장소를 포함하고, 상기 다수의 기억 장소들중 한 장소를 선택하는 단계를 포함하며, 상기 디스플레이 제어 데이타가 상기 선택된 기억 장소로 전송되는 것을 특징으로 하는 방법.
  37. 제35항에 있어서, 상기 코프로세서가 MOVE 명령어를 실행할 때 기억 장소내로 디스플레이 제어 데이타를 전송하는 것을 특징으로 하는 방법.
  38. 제37항에 있어서, 상기 컴퓨터 시스템이 디스플레이 제어 데이타를 기억하기 위한 다수의 기억 장소를 포함하고, 상기 디스플레이 제어 데이타가 MOVE 명령어내의 데이타에 의해 정해진 선택된 기억 장소로 전송되는 것을 특징으로 하는 방법.
  39. 제38항에 있어서, 상기 기억 장치로 전송된 디스플레이 제어 데이타가 MOVE 명령어내의 데이타에 의해 정해진 것을 특징으로 하는 방법.
  40. 제37항에 있어서, 상기 기억 장치로 전송된 디스플레이 제어 데이타가 MOVE 명령어내의 데이타에 의해 정해지는 것을 특징으로 하는 방법.
  41. 제37항에 있어서, 상기 코프로세서가 WAIT 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 수행하는 기능을 행하는 것을 특징으로 하는 방법.
  42. 제41항에 있어서, 상기 코프로세서가 WAIT 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 수행하는 기능을 행하는 것을 특징으로 하는 방법.
  43. 제37항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  44. 제43항에 있어서, 상기 코프로세서가 SKIP 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  45. 제36 또는 38항에 있어서, 상기 코프로세서가 WAIT 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  46. 제45항에 있어서, 상기 코프로세서가 WAIT 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 수행하는 기능을 행하는 것을 특징으로 하는 방법.
  47. 제46항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  48. 제47항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  49. 제48항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 스킵하는 기능을 수해하는 것을 특징으로 하는 방법.
  50. 제49항에 있어서, 상기 코프로세서가 SKIP 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  51. 제36 또는 38항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  52. 제51항에 있어서, 상기 코프로세서가 SKIP 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  53. 제35항에 있어서, 상기 코프로세서가 WAIT 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어를 수행하는 기능을 행하는 것을 특징으로 하는 방법.
  54. 제53항에 있어서, 상기 코프로세서가 WAIT 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 수행하는 기능을 행하는 것을 특징으로 하는 방법.
  55. 제41,42,43 또는 54항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  56. 제55항에 있어서, 상기 코프로세서가 SKIP 명령어내의 데이타에 의해 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  57. 제35항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 상기 정해진 비디오 비임 위치에 대응하는 상기 비디오 비임 위치 지시에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  58. 제57항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 정해진 비디오 비임 위치에 대응하는 위치를 나타내는 비디오 비임 위치에 응답하여 다음 명령어만을 스킵하는 기능을 수행하는 것을 특징으로 하는 방법.
  59. 제58항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 프로그램 카운터내에 기억된 어드레스를 변경시키는 것을 특징으로 하는 방법.
  60. 제57항에 있어서, 상기 코프로세서가 SKIP 명령어를 실행할 때 프로그램 카운터내에 기억된 어드레스를 변경시키는 것을 특징으로 하는 방법.
  61. 제35항에 있어서, 상기 코프로세서가 소정의 명령어에 대응하는 점프 어드레스를 기억하는 장소 레지스터에 결합되고, 실행될 다음 명령어에 대응하는 어드레스로서 프로그램 카운터내에 점프 어드레스를 제어신호의 발생에 응답하여 기억하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  62. 제61항에 있어서, 상기 제어 신호가, 장소 레지스터에 대응하는 스트로브 어드레스가 억세스될 때 발생되는 것을 특징으로 하는 방법.
  63. 제35,37,38,41 도는 53항에 있어서, 상기 컴퓨터 시스템이 메인 프로세서를 포함하고, 메인 프로세서를 인터럽트시키지 않고서도 코프로세서에 의해 상기 단계가 실행되는 것을 특징으로 하는 방법.
  64. 제62항에 있어서, 상기 코프로세서가 다이렉트 메모리 억세스에 의해 메모리로부터의 다음 명령어를 폐치시키고, 수신 및 비교 단계가 데이타 버스를 억세스시키지 않고서도 상기 코프로세서에 의해 실행되는 것을 특징으로 하는 방법.
  65. 제35,37,38,41,43,53 또는 57항에 있어서, 스크린의 블랭킹 기간과 대응하지 않는 비디오 비임 위치를 규정하는 단계를 더 포함하고, 코프로세서가 기억 장소에 기억된 제어 데이타를 디스플레이하도록 미드스크린을 변경시키는 것을 특징으로 하는 방법.
  66. 제35,37,38,41,43,53 또는 57항에 있어서, 스크린의 블랭킹 기간과 대응하는 비디오 비임 위치를 정하는 단계를 더 포함하는 것을 특징으로 하는 방법.
KR1019880700303A 1986-07-18 1987-07-14 비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법 KR960012990B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US886,796 1986-07-18
US06/886,796 US4874164A (en) 1986-07-18 1986-07-18 Personal computer apparatus for block transfer of bit-mapped image data
PCT/US1987/001627 WO1988000490A1 (en) 1986-07-18 1987-07-14 Display generator circuitry for personal computer system

Publications (2)

Publication Number Publication Date
KR880701575A KR880701575A (ko) 1988-11-03
KR960012990B1 true KR960012990B1 (ko) 1996-09-25

Family

ID=25389792

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019880700303A KR960012990B1 (ko) 1986-07-18 1987-07-14 비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법

Country Status (11)

Country Link
US (1) US4874164A (ko)
EP (1) EP0318517B1 (ko)
JP (1) JP2961609B2 (ko)
KR (1) KR960012990B1 (ko)
AU (1) AU600759B2 (ko)
CA (1) CA1283980C (ko)
DE (1) DE3751720T2 (ko)
IL (1) IL83203A (ko)
IN (1) IN167924B (ko)
NO (1) NO301913B1 (ko)
WO (1) WO1988000490A1 (ko)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319786A (en) * 1987-05-20 1994-06-07 Hudson Soft Co., Ltd. Apparatus for controlling a scanning type video display to be divided into plural display regions
US5313227A (en) * 1988-04-15 1994-05-17 International Business Machines Corporation Graphic display system capable of cutting out partial images
US5016876A (en) * 1988-10-14 1991-05-21 Williams Electronics Games, Inc. Video display co-processor for use in a video game
US5218711A (en) * 1989-05-15 1993-06-08 Mitsubishi Denki Kabushiki Kaisha Microprocessor having program counter registers for its coprocessors
US5151997A (en) * 1989-08-10 1992-09-29 Apple Computer, Inc. Computer with adaptable video circuitry
US5347634A (en) * 1990-03-15 1994-09-13 Hewlett-Packard Company System and method for directly executing user DMA instruction from user controlled process by employing processor privileged work buffer pointers
US5428775A (en) * 1990-05-24 1995-06-27 Apple Computer, Inc. Apparatus for providing data dependent write operations
US5680151A (en) * 1990-06-12 1997-10-21 Radius Inc. Method and apparatus for transmitting video, data over a computer bus using block transfers
JP3056514B2 (ja) * 1990-08-27 2000-06-26 任天堂株式会社 画像表示装置およびそれに用いる外部記憶装置
JPH04182696A (ja) * 1990-11-17 1992-06-30 Nintendo Co Ltd 画像処理装置
US5533181A (en) * 1990-12-24 1996-07-02 Loral Corporation Image animation for visual training in a simulator
US5250940A (en) * 1991-01-18 1993-10-05 National Semiconductor Corporation Multi-mode home terminal system that utilizes a single embedded general purpose/DSP processor and a single random access memory
US5341466A (en) * 1991-05-09 1994-08-23 New York University Fractal computer user centerface with zooming capability
WO1993011500A1 (en) * 1991-11-27 1993-06-10 Seiko Epson Corporation Pixel modification unit
CN1111463A (zh) * 1993-06-30 1995-11-08 世嘉企业股份有限公司 图像处理装置及方法及有图像处理器的游戏机
KR0169541B1 (ko) * 1993-06-30 1999-03-20 이리마지리 쇼우이찌로 화상 처리 장치 및 그 방법 그리고 화상 처리 장치를 갖는 전자 장치
US5777618A (en) * 1993-07-29 1998-07-07 Digital Equipment Corporation Method and apparatus for graphical panning
JPH0822556A (ja) * 1994-07-08 1996-01-23 Ricoh Co Ltd テクスチャマッピング装置
US6008782A (en) * 1995-05-05 1999-12-28 Industrial Technology Research Institute Mapping apparatus for use with a cathode-ray tube controller for generating special screen effects
SE507410C2 (sv) * 1995-11-08 1998-05-25 Ericsson Telefon Ab L M Förfarande och anordning för rörelseestimering
JPH10211358A (ja) * 1997-01-28 1998-08-11 Sega Enterp Ltd ゲーム装置
US6229523B1 (en) * 1998-02-18 2001-05-08 Oak Technology, Inc. Digital versatile disc playback system with efficient modification of subpicture data
US6173393B1 (en) * 1998-03-31 2001-01-09 Intel Corporation System for writing select non-contiguous bytes of data with single instruction having operand identifying byte mask corresponding to respective blocks of packed data
US6557092B1 (en) 1999-03-29 2003-04-29 Greg S. Callen Programmable ALU
US6775414B1 (en) 1999-11-19 2004-08-10 Ati International Srl Variable-length code decoder
US20050280623A1 (en) * 2000-12-18 2005-12-22 Renesas Technology Corp. Display control device and mobile electronic apparatus
JP4132654B2 (ja) * 2000-12-18 2008-08-13 株式会社ルネサステクノロジ 表示制御装置および携帯用電子機器
US6864900B2 (en) * 2001-05-18 2005-03-08 Sun Microsystems, Inc. Panning while displaying a portion of the frame buffer image
US6652378B2 (en) 2001-06-01 2003-11-25 Igt Gaming machines and systems offering simultaneous play of multiple games and methods of gaming
US8267767B2 (en) 2001-08-09 2012-09-18 Igt 3-D reels and 3-D wheels in a gaming machine
US6943804B2 (en) * 2002-10-30 2005-09-13 Hewlett-Packard Development Company, L.P. System and method for performing BLTs
US7362333B2 (en) * 2004-02-03 2008-04-22 Kyocera Wireless Corp. Graphical manipulation in a mobile wireless device
WO2006043203A2 (en) * 2004-10-19 2006-04-27 Koninklijke Philips Electronics N.V. Animation judder compensation
US7768447B2 (en) * 2007-08-31 2010-08-03 Maxsea International S.A.S. Radar apparatus and the like
US8444473B2 (en) 2007-11-09 2013-05-21 Igt Gaming system, gaming device, and gaming method for shifting symbols from a staging area to a symbol matrix
US9588803B2 (en) * 2009-05-11 2017-03-07 Microsoft Technology Licensing, Llc Executing native-code applications in a browser
KR101633282B1 (ko) 2009-09-09 2016-06-24 삼성전자주식회사 이미지 센서와 상기 이미지 센서를 포함하는 이미지 픽업 장치
US9323921B2 (en) 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8903705B2 (en) 2010-12-17 2014-12-02 Microsoft Corporation Application compatibility shims for minimal client computers
US9495183B2 (en) 2011-05-16 2016-11-15 Microsoft Technology Licensing, Llc Instruction set emulation for guest operating systems
US9389933B2 (en) 2011-12-12 2016-07-12 Microsoft Technology Licensing, Llc Facilitating system service request interactions for hardware-protected applications
US9413538B2 (en) 2011-12-12 2016-08-09 Microsoft Technology Licensing, Llc Cryptographic certification of secure hosted execution environments
US9418518B2 (en) 2013-09-17 2016-08-16 Igt Gaming system and method for providing a cascading symbol game with interacting symbols
US9472065B2 (en) 2013-09-17 2016-10-18 Igt Gaming system and method for providing a cascading symbol game with interacting symbols
US9390587B2 (en) 2013-09-17 2016-07-12 Igt Gaming system and method for providing a cascading symbol game with multiple symbol display position symbols
US9460587B2 (en) 2013-09-17 2016-10-04 Igt Gaming system and method for providing a cascading symbol game with shifting symbols in different directions between multiple symbol display position matrices
US9355528B2 (en) 2013-09-17 2016-05-31 Igt Gaming system and method for providing a cascading symbol game with shifting symbols between multiple symbol display position matrices
US10068415B2 (en) 2014-04-08 2018-09-04 Igt Gaming system and method providing a multiplayer secondary game having an outcome determined based on play of a primary game of at least one, but not all, of the multiplayer secondary game players
US9875618B2 (en) 2014-07-24 2018-01-23 Igt Gaming system and method employing multi-directional interaction between multiple concurrently played games
US10055930B2 (en) 2015-08-11 2018-08-21 Igt Gaming system and method for placing and redeeming sports bets
US10970129B2 (en) 2015-09-22 2021-04-06 Intel Corporation Intelligent GPU scheduling in a virtualization environment
US10885883B2 (en) 2017-01-25 2021-01-05 Apple Inc. Electronic device with foveated display system
US11755224B2 (en) * 2017-07-27 2023-09-12 EMC IP Holding Company LLC Storing data in slices of different sizes within different storage tiers

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4085442A (en) * 1975-03-31 1978-04-18 Bunker Ramo Corporation Data display system designed as a microcontroller
US4070710A (en) * 1976-01-19 1978-01-24 Nugraphics, Inc. Raster scan display apparatus for dynamically viewing image elements stored in a random access memory array
US4126893A (en) * 1977-02-17 1978-11-21 Xerox Corporation Interrupt request controller for data processing system
US4296476A (en) * 1979-01-08 1981-10-20 Atari, Inc. Data processing system with programmable graphics generator
US4445187A (en) * 1979-02-05 1984-04-24 Best Robert M Video games with voice dialog
US4435776A (en) * 1981-01-27 1984-03-06 Syntrex Incorporated Word processing system
US4570217A (en) * 1982-03-29 1986-02-11 Allen Bruce S Man machine interface
US4509043A (en) * 1982-04-12 1985-04-02 Tektronix, Inc. Method and apparatus for displaying images
DE3380465D1 (en) * 1982-09-20 1989-09-28 Toshiba Kk Video ram write control apparatus
JPS60108974A (ja) * 1983-11-17 1985-06-14 Fujitsu Ltd 図形処理方式
JPS60172085A (ja) * 1984-02-17 1985-09-05 株式会社日立製作所 図形処理装置
JPS60140470A (ja) * 1983-12-28 1985-07-25 Hitachi Ltd 画像情報処理装置
JPS60214081A (ja) * 1984-04-09 1985-10-26 Fujitsu Ltd 図形ぬりつぶし制御方法
EP0158314B1 (en) * 1984-04-10 1993-07-21 Ascii Corporation Video display control system
EP0165665A3 (en) * 1984-04-16 1989-02-22 Texas Instruments Incorporated Sprite collision detector
EP0170977A3 (en) * 1984-08-06 1988-03-16 Honeywell Bull Inc. Display subsystem

Also Published As

Publication number Publication date
WO1988000490A1 (en) 1988-01-28
JP2961609B2 (ja) 1999-10-12
EP0318517B1 (en) 1996-02-28
DE3751720T2 (de) 1997-02-13
NO881207D0 (no) 1988-03-18
NO881207L (no) 1988-05-18
IL83203A0 (en) 1987-12-31
KR880701575A (ko) 1988-11-03
US4874164A (en) 1989-10-17
AU600759B2 (en) 1990-08-23
EP0318517A1 (en) 1989-06-07
IN167924B (ko) 1991-01-12
JPH02503238A (ja) 1990-10-04
AU7914087A (en) 1988-02-10
IL83203A (en) 1992-06-21
NO301913B1 (no) 1997-12-22
DE3751720D1 (de) 1996-04-04
EP0318517A4 (en) 1991-11-27
CA1283980C (en) 1991-05-07

Similar Documents

Publication Publication Date Title
KR960012990B1 (ko) 비트 맵 영상 데이타를 블럭 전송하기 위한 퍼스널 컴퓨터 시스템 및 그 사용 방법
US5594473A (en) Personal computer apparatus for holding and modifying video output signals
EP0266506B1 (en) Image display processor for graphics workstation
US5748174A (en) Video display system including graphic layers with sizable, positionable windows and programmable priority
EP0157912A1 (en) Graphics generator
US4471465A (en) Video display system with multicolor graphics selection
EP1847965A1 (en) Plotting device and plotting method
EP0133903B1 (en) Display control method and display control apparatus
JPS6336786B2 (ko)
US4471464A (en) Data processing system with programmable graphics generator
US5321805A (en) Raster graphics engine for producing graphics on a display
US4471463A (en) Data processing system with programmable graphics generator
EP0887768A2 (en) A graphic processor and a graphic processing method
US5870074A (en) Image display control device, method and computer program product
JPS60118890A (ja) プログラマブル・ビデオ・デスプレイ発生装置
US5309560A (en) Data selection device
EP0590968A2 (en) Image processing system
JP2898482B2 (ja) コンピュータゲーム装置
EP0159851B1 (en) Advanced video processor with hardware scrolling
US20010015727A1 (en) Image data display control method and an image display device thereof
AU3063792A (en) Method and apparatus for updating a clut during horizontal blanking
EP0121810B1 (en) Microprocessor
JP3514763B2 (ja) スクロール画面表示回路
EP0165665A2 (en) Sprite collision detector
Katsura et al. VLSI for high-performance graphic control utilizing multiprocessor architecture

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19990709

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee