NO301913B1 - Displaygeneratorkretser for personlig datamaskinsystem - Google Patents
Displaygeneratorkretser for personlig datamaskinsystem Download PDFInfo
- Publication number
- NO301913B1 NO301913B1 NO881207A NO881207A NO301913B1 NO 301913 B1 NO301913 B1 NO 301913B1 NO 881207 A NO881207 A NO 881207A NO 881207 A NO881207 A NO 881207A NO 301913 B1 NO301913 B1 NO 301913B1
- Authority
- NO
- Norway
- Prior art keywords
- address
- data
- computer system
- blitter
- image data
- Prior art date
Links
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/25—Output arrangements for video game devices
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/02—Control 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/024—Control 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
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/40—Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control 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/24—Generation of individual character patterns
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control 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/39—Control of the bit-mapped memory
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features 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/20—Features 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/203—Image generating hardware
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/12—Frame memory handling
- G09G2360/127—Updating a frame memory using a transfer of data from a source area to a destination area
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/34—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
- G09G5/346—Control 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)
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
Oppfinnelsen angår mikroprosessordrevne datamaskiner for videospill og personlige datamaskiner som innbefatter DMA-metoder, spesielt slike systemer som er implementert i MOS- eller LSI-kretser (metal-loksidhalvleder-storskalaintegrerte kretser) hvor kretsarealet er en faktor det tas hensyn til. Oppfinnelsen angår videre forbedrede systemer hvor hjelpe-kretser er blitt tilføyd til vertssystemet, hvor en display innretning av fjernsynstype benyttes og bitkartmode (1 bit med videoinformasjon lagres i hukommelsen for hvert elementsted (piksel) av det viste bilde) er likedan innbefattet.
Oppfinnelsen angår også videodisplaydrev for fargevideo-displaymonitorer hvor fargefantomer (som under tiden kalles bakgrunn) blir betjent i felles-skap.
Bitavbildning, enskjønt implementeringskrevende i rom og tid, har vist seg å være en likefrem og nøyaktig fremgangsmåte til videodisplaygenerering. Komplekse displayer som skaffes av videospill og personlige datamaskiner, krever overlagte presentasjoner av bevegelig og/eller foranderlig informasjon og av fast informasjon, samt av kollisjoner mellom bevegelige objekter. Bit-kartimplementering har vært siktemålet til forskjellige kjente kretser.
Kjente videospillkretser har gitt et kompleks display format til en fjernsynsmottager-displayenhet (et katodestrålerør) som genererer fremstillingen med en rekke horisontale skan eller rasterlinjer. En videospillkrets som er i stand til å vise faste objekter som bakgrunn, såvel som bevegelige objekter, er vist i US-PS 4 053 470 (Rosenthal).
Rosenthal har bygget en digitaldatamaskin for spesielle formål til å generere videospillinformasjon fra en rekke, på en gjensidig utelukkende basis utvalgte, programvaredefinerte programmer. Operatørkommandoer adskilles i en uavhengig beregningsseksjon og i en uavhengig displayseksjon av kretsen for behandling. US-PS 4 053 470 benytter aritmetisk logiske enheter for å drive akkumulatorer for å styre x- og y-registre og forbundne horisontale og vertikale stråleretningsdrivkretser for katodestrålerør-displayer.
Personlige datamaskiner, slik som Apple-datamaskinen, har benyttet en hovedmikroprosessor til å utføre beregningsoperasjoner og behandle
(gjenfinne) videodisplayinformasjon for å generere displayer på en mottager av fjernsynstype.
Apple-datamaskinen omfatter en mikroprosessor for generelt formål, MOS Technology Inc., Model 6502, for å utføre både beregningsoperasjoner og gjenfinning av videodisplayinformasjon. Slikt et en mikroprosessordrevet system har hastighetsbegrensninger, da de fleste mikroprosessorer, herunder 6502, har betydelig prosesseringsdødtid benyttet til oppfrisking av registre og tilbakestilling og igangsetting av operasjoner. Følgelig kan informasjons-behandlingen i slike systemer bli langsom.
For å forbedre behandlingshastighetene har disse små mikroprosessordrevne datamaskiner gitt avkall på displaykvalitet, dvs. "definisjon", "karakter" og "detalj".
En måte for å øke hastigheten til en slik personlig datamaskin består i å benytte to prosessorer, en Motorola Inc., 68000 og en 65202. I dette system er den første prosessor dedisert for beregningsoperasjoner og en annen mikroprosessor er dedisert for gjenfinning av videodisplayinformasjon.
Andre tidlige spillkretser såsom vist i US-PS 4 034 983 (Dash et al.) benytter kontrollkretser for spesielle formål til å generere signaler til antenne-tilslutningen på en kommersiell fargefjernsynsmottager. En slik kontrollkrets til spesielle formål omfatter analoge grensesnittkretser som for å behandle spillstikke-signaler omfatter grensesnittkretser med dekodingsfunksjoner og synkpuls-generering kunne benyttes til å generere horisontal synk- og raster-skan-informasjon.
Personlige datamaskin- og mikroprosessordrevne systemer slik som vist i US-PS 4 477 462, har benyttet displaygeneratorkretser drevet av en adressebuss, databuss og kontrollbuss, med innbefatning av rasterlinjegenerering og vertikale posisjonstellere.
På samme måte viser US-PS 4 070 710 (Sukonick et al.) bruk av video-kontrollkretser og rasterhukommelsesaksess i et system med data- og adressebussarkitektur. Sukonik et al. benytter en videokontrollkrets basert på en rekke vertikale og horisontale posisjonsregistre, en skipmønster- hukommelse og modulosammenligningskretser for "FIFO"-behandling av videoinformasjon.
Sukonik, US-PS 4 070 710, viser likeledes et toprosessorsystem. Sukonik har tilføyd et displaysystem 16 til sin programmerte vertsdatamaskin 10. Dette videodisplaysystem 16 omfatter en Intel Corporation 8088 mikroprosessor 76 i mikrokontrollenheten 22 til videodisplaysystemet.
I denne retning skaffer US-PS 4 180 505 (Burson) en videodisplaykrets som omfatter en mikroprosessor 15 til generelt formål, TMS 1100-mikro-datamaskinen, som vist i US-PS 3 398 604. En tegnhukommelse er anordnet adskilt fra et displayhukommelsesord som deles i to bytes, hvorav det første er en tegnhukommelse-adresse og den annen er en underadresse for å lokalisere et tegnord i et sett av tegnord i hukommelsen. Hvert tegn-hukommelsesord er likeens delt i to bytes hvor den første byte bestemmer fargen og den annen byte velger et bestemt tegn fra et forhåndslagret sett.
Bruken av en annen kommersielt tilgjengelig mikrodatamaskin for generelle formål for å behandle videodisplayinformasjon samtidig som system-hastigheten øker, vil også øke systemets fremstillingskostnad såvel som størrelsen på systemet, dvs. brikkearealet.
En mikrokontrollenhet blir også benyttet og er nødvendig for kretsene. Mikrokontrollenheten dekoder instruksjoner fra en vertsdatamaskin for å brukes av rasterhukommelsesenheten og generere (koder) kontroll-informasjon for å få rasterhukommelsen til å skrive displayinformasjon såvel som å styre videokontrollkretsen for å lese informasjon fra rasterhukommelsen og oversende den til videosignaler som kan benyttes av en CRT-drivkrets. US-PS 4 243 984 (Ackley et al.) viser en video-displayprosessor som omfatter generelle kretskomponenter for overlay-styring, prioritetsvalg, sekvensstyring og hukommelsesstyring av fantomposisjon og -farge.
US-PS 4 420 770 (Rahman) viser et videobakgrunns-genereringssystem som omfatter feltkorreksjonslogikk, prioritetskodekretser og horisontal og vertikal bitmaphukommelse.
Andre har utviklet displaykretser som har omfattet en adressebuss, databuss og kontrollsignallinjer for å danne grensesnitt med et mikroprosessorbasert datamaskinsystem. Noen displaykretser har innbefattet DMA-styring og spillefelt- og fantomgeneratorkomponenter som benytter en rekke kontrollregistre forbundet for å virke med en rekke hukommelser, herunder kollisjonsdeteksjon- og displayprioritetslogikk.
Videre har doble kommersielle mikroprosessorsystemer økt lednings-forbindelser utenfor brikken etter som hver kommersiell krets kommer som en separat dual-in-line-pakke (DIP). I LSI-(storskalaintegrasjon)-krets-konstruksjon øker dette hovedkort-og kretskortkostnadene og øker sann-synligheten for støyopptak som ofte nødvendiggjør ytterligere filtrering og økte signalnivåer, noe som vanligvis fører til større effektforbruk. Bortsett fra i meget kostbare doble mikroprosessorsystemer, med pris over det personlige datamaskinmarked, økes ikke displaykvaliteten i særlig grad med disse ekstra mikroprosessorene, da kompromisser på grunn av støyopptak og filtreringskostnader ofte nødvendiggjør en dårligere displayutgangskvalitet.
Andre har fulgt en avvikende og forskjellig fremgangsmåte såsom å bruke en displaygeneratorkrets utført som en rasterskanlinje-bufferstruktur. Ved en slik fremgangsmåte kan en generell mikroprosessor benyttes til å adressere display obj ektlagringens randomaksesshukommelse (RAM). Kretsene deler displayet i bevegelige objekter (fantomer) og i stasjonære objekter (spillefelter).
Mens denne fremgangsmåte er billigere å implementere enn fremgangsmåten med to mikroprosessorer diskutert ovenfor og benytter mindre brikke-geometri og viring mellom brikkene, gir den en dårligere systemytelse og displaymuligheter i forhold til tomikroprosessor-systemer.
Et forbedret mikroprosessorbasert system for displaygenerator er vist i US-PS 3 996 585 (Hogan et al.), hvor en displaygenerator implementeres med en rekke bufferregistre. Denne displaygenerator benyttes til å behandle bitmap-informasjon som fås fra random-aksesshukommelsen (RAM). En mønster-generator benyttes til å dekode data for hver rasterskanlinje. Dekodede rasterlinjedata lagres i et bufferregister for display. Mønstergeneratoren dekoder også kontrolldata for å finne kollisjoner. De dekodede kollisjons- kontrolldata lagres i et bufferregister. Denne krets er ment å skulle avlaste systemmikroprosessoren for enkel videodisplaydatagjenfinning og - manipulering. For å følge denne displaygeneratorkretsfremgangsmåte til Hogan et al. har andre bygget en dekoderbasert videodisplaygenerator. En slik krets ville ikke benytte en annen mikroprosessor for generelle formål for å drive en videogenerator, men kan benytte displayinstruksjonsdekoder-kretser for å skaffe informasjon om bevegelige objekter og stasjonære spillefeltobjekter til videodisplayet og redusere dermed belastningen på den eneste mikroprosessor (generelt formål) som forekommer uten å bruke en annen mikroprosessor. Alle disse kretsene, slik det også er tilfellet med den til Hogan et al., krever en økning i hukommelse eller lagringsplass, som til-fredsstilles av et stort antall registre. Noen videodisplaygeneratorer viser kretser som er delt i dekoder(e), RAM(er) og register(e) for å håndtere data for spillefelt og faste objekter og i dekoder-selektorer og registre for å håndtere data for bevegelige objekter.
US-PS 4 570 217 vedrører et system for implementering av et menneske-maskin grensesnitt. Systemet omfatter en CPU-modul, en video-CPU-modul og en video-RAM-modul koblet til en felles buss. Video-CPU-modulen er en mikroprosessor for generelle formål som kommuniserer med resten av video-stasjonen, inkludert video-RAM-modulen, via en privat buss. Systemet omfatter anordninger for utføring av logiske operasjoner på grafisk data lagret i video-RAM-modulen. Skifteoperasjoner på displayet i horisontal og vertikal retning utføres ved hjelp av skiftanordninger. Minnekontrollregistre mottar kommandoer fra video-CPU-modulen og angir styresignaler til de logiske anordninger, som i sin tur sender utgangsignaler til et punktmatrise-minne. Data som kommer fra video-CPU-modulen mot de logiske anordninger kan kombineres med data i punktmatriseminnet og den logisk kombinert informasjon kan lagres i minnet. I dette tilfelle mottar de logiske anordninger innkommende data fra video-CPU-modulen og fra punktmatriseminnet. Publikasjonen angir altså logiske anordninger ("bangers") som operer på inngangsdata fra video-CPU-modulen kombinert med data fra punktmatriseminnet.
US-PS 4.509.043 viser en prosessor for generelle formål koblet til en vert-datamaskin og til en prosessorbuss som også er tilknyttet et minne og et videofremvisningsminne. Publikasjonen angir et system som tillatter at en bruker velger hvor mange bitplaner som vil danne en overflate, antall over-flater som skal anvendes ved representasjon på en CRT, og overflatenes prioritet.
De ovennevnte problemer løses ved hjelp av et datamaskinsystem ifølge de foreliggende patentkrav.
Det er ønskelig å skaffe en hjelpekrets som er ment å skulle innbefattes i et mikroprosessorbasert personlig datamaskinsystem, og som har samme mikroprosessor-muligheter, herunder mulighet for bit-map-manipulering, men som ikke benytter plassen og kraften til en annen mikroprosessor og økningen i hukommelse som er nødvendig ved dekodermetoden og som kan implementeres hvor viringen mellom brikker og moderkort er minimert.
Den personlige datamaskin Amiga er en billig datamaskin med høy yteevne og avanserte grafikkegenskaper. Det er hensikten med oppfinnelsen å skaffe et fargedisplay med høy oppløsning, hurtig grafikk for simulering og animasjon, og betydelig databehandlingskraft med lav kostnad.
Fargedisplay med høy oppløsning er blitt stadig mer vanlig på grunn av de fortsatt dramatiske reduksjoner i hukommelseskostnaden. Imidlertid kan den resulterende store displaybufferhukommelse være smertelig langsom til å tegne eller til å bevege displaybilder rundt i, spesielt når det bare brukes en enkelt vanlig mikroprosessor. Denne situasjon forverres av andre store hukommelsesoverføringskanaler, slik som flerkanals stereolyd, høy-hastighets-linjebufferobjekter (slik som fantomer) og helspors floppyplate-buffere som konkurrerer med displayet om hukommelsesbusstid. Disse mot-stridende konstruksjonsmål, fargedisplayer med høy oppløsning og hurtighet og lave produksjonskostnader, har hovedsakelig blitt løst ved oppfinnelsens trekk. Maskinvareløsningene er blitt billigere ved å utføre dem på custom-silisiumbrikker.
Omfattende bruk gjøres av direkte hukommelsesaksess-kanaler for å avlaste hovedmikroprosessoren for det meste av dataoverføringene og stråle-posisjonkontroll som er særegent for samtids dynamiske displayer med vinduer. Motorola 68000 benyttes som hovedmikroprosessor. Ytelsen til 68000 forbedres ved en systemutførelse som gir den enhver alternativ bussykel og tillater den å kjøre med full nominell hastighet mesteparten av tiden. De spesielle funksjoner beskrevet nedenfor frembringes ved å benytte to custom-utrørte VLSI-kretser som arbeider sammen med 68000 ved bruk av den delte hukommelse på en fullstendig innflettet basis, da 68000 bare behøver å ha aksess til hukommelsesbussen under hver annen klokkesykel for å kjøre med full hastighet, er hukommelsesbussen resten av tiden fri til andre aktiviteter. En koprosessor og en databevegende DMA-kanal kalt blitter kan stjele tid fra 68000 for jobber de kan gjøre hurtigere enn 68000. Således er systemets DMA-kanaler utført med tanke på maksimal ytelse: oppgaven ut-føres av det mest effektive maskinvareelement som er tilgjengelig.
En custom-displaykoprosessor muliggjør forandringer i de fleste registre for spesialformål synkronisert med posisjonen av videostrålen. Dette tillater slike spesielle effekter som forandringer av fargepaletten midt på bildeflaten, oppsplitting av bildeflaten i flere horisontale snitt, hver med forskjellige videooppløsninger og fargedybder, og strålesynkronisert interrupt-generering for 68000. Koprosessoren kan trigge mange ganger pr. bildeflate, midt i linjene såvel som under slukkingsintervaller. Koprosessoren selv kan direkte påvirke de fleste av registrene til den spesielle maskinvare og frigjøre 68000 for generelle databehandlingsoppgaver.
Trettito systemfargeregistre skaffes, idet hver omfatter et 12-bits tall som fire biter rød, fire biter grønn og fire biter blå intensitetsinformasjon. Dette tillater en systemfargepalett på 4096 forskjellige fargevalg for hvert register. En bitmap-displayhukommelsesorganisasjon kalt bitplanadressering benyttes. Denne metode grupperer bitplan (istedenfor bildeelementer) sammen i hukommelsen og tillater variasjon i antallet og grupperingen av bitplanene til separate bilder, og tillater øket hastighet når det benyttes reduserte antall bitplan.
Åtte gjenbrukbare 16-bits brede fantomer er innbefattet i maskinvarer med opptil 15 fargevalg pr. fantombildeelement (når fantomene settes sammen). Et fantom er et lett flyttbar grafikkobjekt hvis display er fullstendig uavhengig av bakgrunnen (kalt spillefelt). Fantomene kan vises "over" eller "under" denne bakgrunn. Etter å ha frembragt den siste linje av et fantom på bildeflaten, kan et fantom DMA- (direkte hukommelsesaksess)kanal brukes
om igjen for å frembringe nok et fantombilde et annet sted på bildeflaten, med minst en horisontal linje mellom hvert gjenbruk av en fantomprosessor.
Ytterligere logikk tillater dynamisk styrbar interobjekt-prioritet med kollisjonsdeteksjon. Systemet kan dynamisk styre videoprioriteten mellom fantomobjekter og bitplan-bakgrunnene (spillefeltene), og system-maskinvaren kan benyttes til ådetektere kollisjoner mellom objekter, slik at et program kan reagere på slike kollisjoner.
Blitteren brukes til høyhastighetsdataflytting, egnet til bitplananimasjon. Blitteren gjenfinner effektivt data fra inntil tre kilder, kombinerer dataene i en av 256 forskjellige mulige måter og lagrer valgfritt de kombinerte data i et bestemmelsesområde. Blitteren kan tegne mønsterlinjer i rektangulært organiserte hukommelsesområder med en hastighet på omtrent 1 million prikker pr. sekund, og den kan effektivt håndtere flateutfylling.
Ytterligere hensikter og fordeler ved oppfinnelsen vil være innlysende for fagfolk ved lesning av den følgende beskrivelse.
Den foreliggende oppfinnelse vil forstås bedre ved lesning av den følgende detaljerte beskrivelse av den foretrukne utførelse i samband med den ledsagende tegning.
Fig. 1 viser et blokkdiagram av adressegeneratorbrikken (Agnus).
Fig. 2 viser et operasjonelt blokkdiagram av et bitmap-bildemanipulator-parti (blitter) av kretsen. Fig. 3 viser et blokkdiagram av lyspennregistrene og synk-tellerpartiet av kretsen. Fig. 4 viser et blokkdiagram av RAM- (random-aksesshukommelse) adresse-generatorpartiet av kretsen.
Fig. 5 viser et blokkdiagram av bitplan-DMA-kontrollogikken.
Fig. 6 viser et blokkdiagram av fantomets vertikale komparator-og posisjons-registerparti i kretsen.
Fig. 7 viser et blokkdiagram av koprosessoren (kobber).
Fig. 8 viser et blokkdiagram av Amiga-systemet.
Fig. 9 viser et blokkdiagram av display-enkoderbrikken (Denise).
Fig. 10 viser et blokkdiagram av bitplandataregistrene og serialisererne.
Fig. 11 viser et blokkdiagram av fantomdataregistrene og serialisererne.
Fig. 12 viser et diagram av kollisjonsdeteksjonslogikken.
Fig. 13 viser et diagram av displayprioritetskontrollogikken.
Den personlige datamaskin Amiga er billig, for høyytelsesgrafikk-og lyd-system for avanserte videospill og personlig datamaskinbruk. Systemet omfatter tre spesielle integrerte kretser styrt av en Motorola 68000 16/32 bits mikroprosesor. Disse brikker skaffer ekstraordinær fargegrafikk på en standard fjernsynsmottaker eller en RGB-fargemonitor, med oppløsning av spillehall-kvalitet og -dybde for å vise videospill, tegneserier, fotografier med lav oppløsning, eller inntil 80 tegn med tekst på bildeflaten. Lydkretsene kan duplisere komplekse bølgeformer på hver av fire kanaler og konkurrere med kommersielle syntetisatorer i kvalitet. Brikkekostnadene ble holdt lave ved å benytte konservative designregler, prosessspesifikasjoner og logikk-tetthet. Den valgte prosess er en vanlig silisiumport-NMOS som tilbys av nesten alle MOS-produsenter.
Amiga-systemblokkdiagrammet på fig. 8 viser de tre spesialbrikker, betegnet Agnus, Denise og Paula, og hvordan de er forbundet med adresse- og databussen i Amiga-systemet. Blokkdiagrammet viser systemdatabussen som forbinder RAM 401 til alle tre spesialbrikkene og 68000 mikroprosessoren 402 gjennom den toveis tretilstand buffer 403. Systemdatabussen 404 er 16 bits og toveis. Registeradressebussen 405 er toveis bare i forbindelse med Agnus-brikken. Adressene til RAM 401 leveres enten fra Motorola 68000 prosessoren 402 eller fra Agnus-brikken gjennom DRA-bussen 406 med valg av en av kildene under styring av multiplekser 407. Registeradressebussen 405 drives når det ikke forekommer noen DMA av de lave adressebitene på utgangslinjene 408 til 68000 gjennom tretilstandsbufferen 409. Dette tillater mikroprosessoren 402 å lese eller å skrive spesialbrikkene som om de var random aksesshukommelse. Når en DMA-sykel er nødvendig, informerer Agnus-brikken 410 mikroprosessoren 402 ved å aktivere databussanmodning- (DBR) linjen 411. Busskontrollogikken 412 leverer deretter signal DTACK på linje 413, som innstiller driften av 68000 mikroprosessoren 402 og svitsjer begge tretilstandsbufferne 403 og 409 slik at prosessor 402 ikke lenger har aksess til systemdatabussen 404 eller RGA-bussen 405. Når den er i denne DMA-mode, adresserer Agnus-brikken 410 RAM 401 med sin egen RAM-adressebuss, DRA-bussen 406 som velges av multiplekseren 407 for innmating til RAM 401 under styring av busskontrollogikken 412 som samtidig plasserer en bestemmelsesadresse for dataene på registeradresse- (RGA) bussen 405. Registeradressen på RGA-bussen 405 velger en av en rekke registre på en av de tre spesialbrikkene, herunder Agnus-brikken 410, som bestemmelsessted for dataene fra RAM 401.
Driften av Amiga-datamaskinsystemet som et hele med en mer detaljert beskrivelse av vekselvirkningen mellom mikroprosessoren 402 og spesialbrikkene, Agnus-brikken 410, Denise-brikken 420 og Paula-brikken 430, er beskrevet i søknaden innlevert 19. juli 1985, med tittelen "Video Game and Personal Computer", serienr. 756 910. Den foreliggende søknad angår hovedsakelig maskinvaren og trekk forbundet med Agnus-brikken 410 og Denise-brikken 420. Blokkdiagrammer av Agnus-brikken og Denise-brikken er vist henholdsvis på fig. 1 og 9. En beskrivelse av maskinvaren og trekkene forbundet med Paula-brikken 430 er beskrevet i søknaden innlevert 18. juli 1986, med tittelen "Peripheral Control Circuitry for Personal Computer", som det her skal henvises til.
Agnus-brikken 410 er adressegeneratorbrikken (fig. 19). Det er 208 x 281 mils og rommer ca. 21000 transistorer. Dens hovedfunksjon (i brikkeflaten) er RAM-adressegeneratoren 45 og registeradresseenkoderen 43 som skaffer alle register- og RAM-adresser under DMA-sykler. DMA (direkte hukommelsesaksess) er en fremgangsmåte for å overføre data mellom hukommelsen og en av spesialbrikkene uten at det er nødvendig å utføre en "avbrudds"-rutine med mikroprosessoren 402. Agnus-brikken rommer alle DMA-kanalkontrollerne for Amiga-systemet. Den rommer også en maskinvare-bitmap-bildemanipulator 67, kalt Blitter, og en display-synkronisert koprosessor 47, betegnet som Copper. Agnus-blokkdiagrammet viser DMA-kontrollogikken og driverne for registeradressebussen 405 og RAM-adressebussen 406. Utgangen fra hver av DMA-kontrollerkretsene er merket med to nummererte piler. Disse piler angir antallet DMA-kanaler fra hver av disse kontrollerne som driver registeradresseenkoderen 43 og RAM-adressegeneratoren 45.
Agnus-brikken 410 genererer to adresser, for kilden og bestemmelsesstedet, for alle DMA-dataoverføringene som involverer en av de tre brikker, herunder dataoverføringer som benytter registre på Agnus-brikken 410 selv. Kilden for DMA-dataoverføringene er nesten alltid den dynamiske RAM,
som adresseres av RAM-adressegeneratoren 45. Brikkeregistrene er nesten alltid bestemmelsesstedet for DMA-dataoverføringene og adresseres av registeradresseenkoderen 43.
Prioritetskontrollogikken 73 gir ut et bussanmodningssignal DBR på linjen 411 til busskontrollogikken 412 vist på fig. 8 hver gang en DMA-operasjon er nødvendig for å forhindre 68000 mikroprosessoren 402 fra å aksessere RAM 401 under en DMA-operasjon. Hver av DMA-kontrollerne 41, 47, 53, 57, 61 og 65 sender ut et prioritetsanmodningssignal og mottar et prioritets-klarsignal fra prioritetskontrollogikken 73. Den aktuelle logikk er lik en daisy chain som forbinder DMA-kontrollerne og gir forskjellig prioritet til forskjellige typer av DMA-anmodninger. Logikken 73 mottar videostråletellingen fra videostråletelleren 117, som er rommet i synk-tellerkretsene 31, og som kan påvirke prioriteten gitt visse DMA-kanaler. Hukommelsesaksess-sykler allokeres blant DMA-kontrollerne og prosessoren 402, slik det vil bli beskrevet i det følgende. Hvis f.eks. således videostråletelleren angir at strålen skanner displayet og ikke slukkes, vil DMA-kontrolleren for bitplan-displayet gis prioritet og et bussanmodningssignal vil bli gitt ut av logikken 73 hver gang bitplan-DMA-kontrolleren anmoder om aksess til databussen 404.
For å velge et register på en av de tre spesialbrikker som bestemmelsessted eller kilde for data til/fra RAM 401 på databussen 404 plasserer registeradresseenkoderen 43 en forhåndskoblet adresse på RGA-bussen 405 hver gang en av de 25 DMA-kanaler på Amiga-datamaskinen aktiveres. Alle adresser på registeradressebussen 405 leveres til registeradressedekoderen 27 på Agnus-brikken 410, som har en rekke utgangslinjer 29 til Blitter, Copper og alle de andre registrene som finnes på Agnus-brikken. Hvis en av registrene på Agnus-brikken 410 adresseres, plasserer dekoderen 27 et utgangssignal på en av dens utgangslinjer 29, som vil sette databussen 404 i stand til å aksesseres bare av det spesifikke register valgt av adressen på registeradressebussen 405. Registeradresseenkoderen 43 drives av DMA-kanalkontrollerne og driver registeradressen 405 med en entydig kode valgt av kontrollogikken for hver DMA-kanal. De 8 bitene på RGA-bussen 405 skaffer tilstrekkelig adresseinformasjon til at hvert register på de tre brikker kan ha sin egen entydige adresse og noen ganger separate slike for les/skriv, uten separate brikkevelgelinjer eller register-skriv/les-linjer. Hver gang Agnus-brikken 410 ikke utfører en DMA-operasjon, vil enkoderen 43 sette åtte l'ere på RGA-bussen 405, som angir default eller "ingen adresse"-adresse.
Mens et bestemmelsessted for data fra RAM 401 plasseres på registeradressebussen 405 avVegisteradresse-enkoderen 43, genererer RAM-adressegeneratoren 45 en adresse for å aksessere et hukommelsesord i RAM 401 og plasserer den på DRA-bussen 406. Når en DMA-operasjon således forekommer, aktiverer Agnus-brikken 410 databussanmodningslinjen 411 og adresserer et ord i RAM'en med RAM-adressebussen 406. RAM-adressegeneratoren 45 er vist mer detaljert på fig. 4.
Det personlige datamaskinsystem Amiga skaffer totalt 25 DMA-kanaler. Som vist på fig. 1 leveres kontrollsignaler for alle 25 DMA-kanalene til RAM-adressegeneratoren 45. RAM-adressegeneratoren 45 rommer et sett på 25 pekeregistre 138 (fig. 4). Hver av pekeregistrene rommer en 18 bits adresse som peker til hukommelsesstedet for data som skal hentes neste gang for den angjeldende DMA-kanal. Pekeregistrene 138 lastes med data (en adresse) fra databussen 404 av prosessoren 402 og koprosessoren 47 under program-kontroll. DMA-kanalene er forbundet med fantom-DMA-kontrollogikken 41 (åtte kanaler), Copper 47 (en kanal), audio-DMA-kontrollogikken 53 (fire kanaler), bitplan-DMA-kontrollogikken 57 (seks kanaler), plate- og oppfriskings-DMA-kontrollogikken 61 (2 kanaler) og Blitter-DMA-kontrollogikken 67 (fire kanaler). For hver av de 25 DMA-kanaler lagres en 18 bits RAM-adressepeker i et designert pekeregister 138 og blir deretter gitt ut på DRA-bussen 406 når kanalen er aktiv for å velge hukommelsesadressen til dataene i RAM 401 for aksessering av DMA. DRA-adresselinjene fra Agnus-brikken 410 er allerede forhånds-multiplekset i brikken til høy- og lavordens byter av multiplekseren 69, slik at 9 istedenfor 18 linjer gis ut fra Agnus-brikken 410 til RAM-adressebussen 406 på en gang, og sparer derved ni ben for andre formål. Multiplekseren 69 på fig. 1 og 4 omfatter et ut-gangsbufferregister 141 som er direkte forbundet med DRA-bussen 406.
RAM-adressebussen 406 er en ni-bens buss som fører 18 biter med multipleksede data for å adressere en av 256K ord (512 Kbytes) lagret i RAM 401. Bussen 406 drives alltid av brikken 410 og vil drive adressebena på RAM 401 når den velges eksternt og demultiplekses. Adresser på bussen blir generert en halv hukommelsessykel tidligere for å låses til RAM 401 før data faktisk overføres. De minst signifikante ni biter av RAM-adressen gis ut på bussen 406 under den siste halvpart av den foregående hukommelsessykel. De mest signifikante ni biter av RAM-adressen gis ut på buss 406 under den første halvpart av den foreliggende DMA-sykel. Under den annen halvpart av den foreliggende DMA-sykel blir data inneholdt i RAM'en overført til det valgte register i en av de tre spesialbrikker, og samtidig blir de minst signifikante ni biter av RAM-adressen for den neste (hvis nødvendig) DMA-sykel plassert på RAM-adressebussen.
Hvis RAM'en er bestemmelsesstedet under en dataoverføring, vil data også bli overført til RAM'en fra et register under den første halvpart av den foreliggende DMA-sykel, noe som kalles en tidlig lesning. Selv om mange registre virker som kilder for data når de leses av mikroprosessoren 402, er bare to brikkeregistre kilder for data til DMA-dataoverføringer til RAM 401. Disse er Blitter-bestemmelsesstedsregisteret 113 og et platedata-leseregister (ikke vist). Disse former av DMA-operasjoner benytter tidlige lesesykler, da data må leses meget tidlig fra brikkeregisteret for å ha dataene tilgjengelige på RAM 401 før slutten av den første halvpart av DMA-sykelen. Følgelig er det ikke tid til at en registeradresse kan plasseres av Agnus-brikken 410 på registeradressebussen 405. Derfor er de tidlige leseadresser satt på RGA-bussen 405 bare dummy-adresser for sykelidentifikasjon. Brikkeregisterdata blir automatisk gitt ut av Agnus-brikken 410 ved begynnelsen av den foreliggende DMA-sykel, fordi brikken på forhånd kan bestemme når en av disse to DMA-syklene kan ventes å forekomme.
RAM-adressegeneratoren 45 på fig. 4 består av en RAM-adressebuss 406, en gruppe av 25 pekeregistre 138, en gruppe av seks moduloregistre 131 og en gruppe på seks reserve- (eller steds) registre 129. De 25 DMA-kanaler beskrevet ovenfor benytter hver en adressepeker for å adressere den dynamiske RAM 401 når aksess til databussen fås. Registrene 138 er 18 bits registre som lastes med en startverdi av mikroprosessoren 402 eller Copper 47. Hver peker benyttes som en adresse på DRA-bussen 406 og blir typisk øket med en for å peke til den neste adresse i hukommelsen neste gang den benyttes. Når en DMA-kanal må startes på ny igjen og igjen på den samme adresse, lastes adressepekeren automatisk på ny fra et maskinvare-register. Dette gjøres ved å benytte reserve- eller steds-registrene 129. Det er seks reserveregistre 129, fire for de fire audiokanaler og to stedsregistre for Coppers to indirekte sprangregistre. I tilfelle av audio-DMA blir reserveverdien lastet på ny inn i pekeregisteret hver gang audiobølgeformen som gis ut, opphører. I tilfelle av koprosessoren eller Copper 47, blir reserveverdien lastet på ny (strobet) inn i pekeregisteret 138 (programteller) hver gang (strobe)adressen til en av Coppers to stedsregistre 129 skrives.
Bitplan-DMA-kontrollogikken 57 og Blitter 67 benyttes i visningen av bit-relaterte videobilder. Når vinduet, dvs. videobildet som skal vises på bildeflaten, er en del av et større bilde lagret i RAM 401, er det nødvendig å øke verdien av dataadressen lagret i bitplan-pekeregistrene 138 fra en adresse svarende til enden av en horisontal linje av bildeelementer til adressen svarende til begynnelsen av den neste linje av bildeelementer som skal skannes for dette bilde. For å utføre dette benyttes moduloregistre 131. Det er seks moduloregistre 131, fire for de fire Blitter-kanaler og to som benyttes separat av de tre like og de tre odde bitplankanaler. Moduloregistrene lastes på forhånd med en adressesprangverdi som er lik antallet ord i hukommelsen mellom det siste ord vist på skjermen på en horisontal linje og begynnelsen av det første ord på neste linje. Hver gang enden av en videoskan-linje nås, blir, istedenfor bare å øke adressen inneholdt i de tilsvarende pekeregistre 138 med en, adressesprangverdien lagret i moduloregisteret 131 tillagt adressepekeren for å aksessere dataene i RAM 401 svarende til begynnelsen av dataene som skal benyttes til å vise neste videoskan-linje. De seks bitplan har bare to moduloregistre, slik at ett register reserveres for like og ett for odde nummererte bitplan. For hver av to spillefelt kan således et større bilde lagres i hukommelsen enn det som vises på skjermen. Hver Blitter-kanal har sitt eget moduloregister. Derfor kan hver av de tre "kilde"-bilder og ett "bestemmelsessted"-bilde håndtert av Blitteren ha bilder med forskjellige størrelser lagret i hukommelsen, selv om skjermen naturligvis bare kan vise et vindu av en enkelt størrelse.
Det er en 18 bits adderer 137 i RAM-adressegeneratoren 45 som utfører enhver økning og minking av pekerne i pekeregistrene og som også adderer eller subtraherer moduloene lagret i moduloregistrene 131 for bitplan- og Blitter-DMA-kanalene når strålen som skanner skjermen, har nådd enden av en horisontal skannelinje (som definert ved sammenligning av videostråletellingen med verdien i et datainnlesnings-stoppregister). Addereren 137 kan også svitsjes for å "addere" (substituere) verdiene i de seks reserveregistrene 129 istedenfor verdiene i de tilsvarende pekeregistre 138 ved forekomst av de audio-DMA- eller Copper-DMA-eventer beskrevet ovenfor. Reserveregistrene 129 og moduloregistrene 131 har sine utganger til addereren 137 under kontroll av tillatelseslinjene 29 fra registeradressedekoderen 27 på fig.
1 og 4, slik at bare en modulo- eller reserveverdi av gangen gis til addereren 137. Som vist på fig. 4 styrer et portsperresignal på linje 133, som reagerer på Copper 47 og audio-DMA-kontroller 53, en port 135. Denne port 135 styrer reserveopplastingsoperasjonen, hvorunder porten 135 driver alle innganger til addereren 137 fra registrene 138 til null, og addereren 137 opererer i adderingsmoden, slik at verdien i reserveregistrene 129 erstatter den tidligere verdi i registeret 138. En inverteringsinstruksjon og en menteinstruksjon leveres også til addereren 137 fra DMA-kontrollerne. Fire operasjoner utføres av addereren 137 som respons på den tobits-inngang levert av mente- og inverteringsinstruksjonene. Inverteringsinstruksjonene gjør at addereren opererer i nedstigende mode, som nødvendig f.eks. under visse blitter-operasjoner som involverer overlappende hukommelse. Således, subtraksjon eller nedskrivning med en-operasjoner velges istedenfor adderings- eller oppskrivingsoperasjoner. Menteinstruksjonen får addereren til å addere eller subtrahere to innganger istedenfor bare å opp-skrive/nedskrive pekeren, noe som er nødvendig for å benytte modulo- og reserveverdiene. Addereren 137 leverer pekereturverdien som gis til multiplekser 139 for å plassere adressen som skal benyttes under den neste hukommelsesykel, i pekeregisteret 138. Multiplekseren 139 mottar også en inngang fra databussen 404. Mer enn 16 biter leveres av den 16 bits system databuss ved å gjenta flere av bitene på bussen som inndata til multiplekseren 139. Enten vil dataene på databussen 404 eller pekereturverdien fra addereren 137 bli valgt av multiplekseren 139 og lastes i det bestemte pekeregister 138 valgt av registeradressedekoderen 27.
Bitplankontrollregistrene 55 og bitplan-DMA-kontrolleren 57 er vist på fig. 5. Det er seks bitplan-kontrollregistre, vist som registre 143, som kan motta data fra databussen 404. Kontrollregisteret 143 for hvert bitplan lastes under styring av et tillatelsessignal fra registeradressedekoderen 27. Utgangsdataene fra registrene 143 gis i parallell til en tilstandssekvenser 145 sammen med tidsstyredata og et bitplankjøresignal. Sekvenseren 145 pulser en av seks utgangslinjer for hver av de seks bitplan-DMA-kanaler. Hver utgangslinje sendes både til RAM-adressegeneratoren 45 og registeradresseenkoderen 43. Utgangsdataene til RAM-adressegeneratoren 45 på fig. 4 benyttes til å velge en bestemt peker for utdata på RAM-adressebussen 406 for å aksessere bitplandata lagret på den adresse i RAM. Identiske utdata til registeradresse-enkoderen 43 får enkoderen til å velge den 8-bitskode som må leveres på registeradressebussen 405 for å velge et bestemmelsessted for bitplandataene fra hukommelsen. Bitplankjøresignalet på linjen 149 kommer fra prioritetskontrollogikken 73 og gir prioritet til bitplan-DMA-kontrolleren når den ber om hukommelsesaksess. Kjøresignalet leveres ut bare når videostråletellingen indikerer at displayet er på og må derfor gis prioritet. Dette skjer når bitplanstart/stopp-kontrollogikken angir at videostråletellingen befinner seg mellom grensene satt i displayvindustart- og stoppregistrene og datainnlesningsstart- og stoppregistrene inkludert blant kontrollregistrene. Kretsen vist på fig. 5 for å generere utganger på linjene til enkoderen 43 og pekeregistrene 138 er lik den som er benyttet i alle DMA-kontrollerne.
Synktellerne og lyspennregistrene 31 er vist på fig. 3. Kretsen har aksess til databussen 404 når den blir tillatt av en av linjene 29 fra registeradressedekoderen 27. Et lyspenn-inngangssignal 33 mates til lyspenn-registerkretsen 119, og et fjernsynssynksignal 35 gis ut av synkvideostråletelleren 117 til displayet for å synkronisere dets operasjon med prosessorens. Lyspennsignalet 33 mottas fra en lyspennport forbundet med kretsen og kan frembringe stråletellingen når strålen passerte lyspennen for å lastes på databussen 404 under styring av registeradressedekoderen 27. Utgangssignalet fra synkvideostråletelleren 117 gis til Copper 47, fantomets vertikale posisjons komparator 39 og inn i prioritetskontrollogikken 73. Stråletellingen er av betydning for å bestemme hva DMA-kontrollerne kan kreve den neste hukommelsessykel for å vise fantomer og for å forandre innholdet av registrene ved Copper 47 under et slukkingsintervall eller i midten av en visning.
Den vertikale posisjons- og sammenligningslogikk for fantomene er vist mer detaljert på fig. 6. Vertikale startstedregistre 153 og vertikale stoppsted-registre 155 lastes med data fra databussen 404 for inntil åtte mulige fantomer under styring av registeradressedekoderen 27. Hver fantomkanal sender to utgangslinjer 120'til en tilstandssekvenser i fantom-DMA-kontrolleren 41 for å starte og stoppe visningen av fantomet. Synkvideostråletelleren 117 gir ut en vertikal del av tellingen til en vertikal fantom-posisjonkomparator 39. De andre inngangssignaler til komparatoren 39 leveres av både de vertikale start- og stoppstedregistrene for hvert fantom. Når den vertikale telling overstiger eller er lik verdien i et av registrene 153 og 155, sendes utgangssignal på linjene 120 til fantom-DMA-kontrolleren 41. Fantom-DMA-kontrolleren har en tilstandssekvenser som mottar de vertikale posisjonskomparatorutgangssignaler for hver av de åtte fantomer, og som i sin tur driver registeradresseenkoderen 43 og pekeregistrene 138 i RAM-adressegeneratoren 45 med utgangslinjer for hver av de åtte fantomer.
Copper 47 er en koprosessor som benytter en DMA-kanal for innlesning av sine instruksjoner. Pekeren lagret i pekeregisteret 138 svarende til Copper 47 er instruksjons- eller programtelleren, og må forhåndslastes med startadressen i hukommelsen for programinstruksjonene for Copper. Copper kan styre nesten hele grafikksystemet og frigjør prosessoren 402 for eksekvering av programlogikk. Copper kan også direkte påvirke innholdet av de fleste registrene på brikkene. Copper tjener som et kraftig verktøy for å frembringe modifikasjoner midt på bildeflaten i grafiske displayer og for å frembringe forandringer i registerverdier som må forekomme under den vertikale slukkeperiode mellom visningene. Blant annet kan Copper styre register-oppdateringer, omplassere fantomer, forandre fargepaletten, oppdatere audio-kanalene og styre Blitteren. Copper 47 er en koprosessor og har sitt eget instruksjonssett som består av bare tre instruksjoner. Copper kan: WAIT på at strålen som skanner bildeflaten skal nå en bestemt skjermposisjon spesifisert som X- og Y-koordinater: MO VE en momentan dataverdi fra RAM til en av registrene for spesielle formål, og SKIP den neste instruksjon hvis videostrålen allerede har nådd en bestemt skjermposisjon. Alle disse instruksjoner består av to 16 bits ord i sekvensielle hukommelsesplasser. Copper leser begge ordene inn hver gang den leser inn en instruksjon. MOVE- og SKIP-instruksjonene krever to hukommelsessykler og to instruksjonsord, og WAIT-instruksjonen krever tre hukommelsessykler. I samsvar med DMA-tidsslissallokeringen benyttet i Amiga-systemet anmoder Copper 47 bare om odde hukommelsessykler, slik at fire hukommelsessykler er nødvendig for eksekvering av MOVE- og SKIP-instruksjoner og seks hukommelsessykler kreves for WAIT-instruksjonen.
MOVE-instruksjonen overfører data fra RAM 401 til et register-bestemmelsessted. Det første ord i MOVE-instruksjonen inneholder adressen til bestemmelsesstedregisteret, mens det andre ord i MOVE-instruksjonen er irrelevant (det inneholder dataene som skal overføres). WAIT-instruksjonen får Copper 47 til å vente inntil stråleposisjonstellingen er lik eller større enn koordinatene spesifisert i instruksjonen. Mens den venter, er Copper ute av systemdatabussen 404 og benytter ikke noen hukommelsessykler. Det første instruksjonsord inneholder de vertikale og horisontale koordinater for stråle-posisjonen. Det annet ord inneholder tillatelsesbiter som benyttes til å danne en maske som angir hvilke biter av stråleposisjonstellingen som skal benyttes ved sammenligningen. SKIP-instruksjonen får Copper til å hoppe over neste instruksjon hvis videostråleposisjonstellingen er lik eller større enn verdien gitt i instruksjonen.
Copper 47 er vist mer detaljert på fig. 7. Et første instruksjonsregister 173 lagrer innholdet av et første instruksjonsord mottatt fra databussen 404, mens et annet instruksjonsregister mottar innholdet av et annet instruksjonsord mottatt fra databussen 404. Lastingen av dataene fra bussen 404 til registrene 173 og 175 styres av tillatelsessignaler sendt på linjene 29 fra registeradressedekoderen 27. Den minst signifikante bit i det første instruksjonsord og i det annet instruksjonsord benyttes til å bestemme hvilke av de tre mulige instruksjoner som skal eksekveres. Således leverer enbitskontrollinjer 177 og 181 den minst signifikante bit av henholdsvis første og annet instruksjonsord til en instruksjonsoperasjonskode-dekoder 179. Operasjonskodedekoderen
179 benytter de to inndatabitene for å bestemme instruksjonen som skal eksekveres, og vil tillate enten MOVE-instruksjonslinjen, SKIP-instruksjons-
linjen 185 eller WAIT-instruksjonslinjen 187. Disse tre utgangslinjer som identifiserer den anmodede instruksjon, blir levert til en tilstandssekvenser 199.
De minst signifikante åtte biter lastet i det første instruksjonsregister leveres til forsinkelseslåser 191. Hvis og bare hvis en MOVE-instruksjon eksekveres av Copper 47, spesifiserer disse åtte bitene adressen til registeret, som er bestemmelsesstedet for data som befinner seg på databussen under innlesning av den annen ordinstruksjon. Hvis en MOVE-instruksjon blir eksekvert av Copper, vil de åtte biter fra forsinkelseslåsene 191 bli gitt ut på et senere tidspunkt til registeradresse-enkoderen 43 og til registeradressebussen 405 gjennom bufferkretsen 21. Plasseringen av de åtte biter på RGA-bussen 405 tillater det bestemte register som adresseres, å motta data som gis ut til databussen 404 fra RAM 401-adressen spesifisert i pekeregisteret.
Videostråleposisjonstelleren 117 som befinner seg i synktellerkretsen 31, leverer 15 databiter til en komparator 193 i Copper 47. Innholdet av videostråleposisjonstelleren 117 angir den bestemte posisjon som elektronstrålen som skanner displayet, har nådd på skjermen. Bitene 1-15 i det første instruksjonsordregister under en WAIT- eller en SKIP-instruksjon bestemmer den horisontale (bitene 1-7) og vertikale (bitene 8-15) stråleposisjon, og danner et sett av inndata til en OG-port 195. Verdien levert fra stråletelleren sammenlignes i komparatoren 193 med en verdi levert fra OG-porten 195. Det annet sett av inndata til OG-porten 195 skaffes av de minst signifikante biter som er inneholdt i det annet instruksjonsordregister 175. Disse biter er tillatelsesbiter som benyttes til å danne en maske, slik at komparatoren 193 vil ignorere visse biter ved sammenligningen under en WAIT- eller en SKIP-instruksjon. I komparatoren 193 blir stråleposisjonsbitene bestemt av det første instruksjonsord, og som ikke maskeres av tillatelsesbitene i det annet instruksjonsord testet mot tellingen til videostråleposisjonstelleren 117 før noe annet foretas. Utgangssignalet fra komparatoren 193 sendes til tilstandssekvenseren 199.
Tilstandssekvenseren 199 leverer tre utdata som respons på å motta resultatet av stråletellingssammenligningen og inndataene som identifiserer instruksjonen som eksekveres. Innlesnings-utdataene på linje 219 sendes til både registeradresseenkoderen 43 og pekeregisteret (programteller) i RAM- adresse-generatoren 45, slik at Copper 47 kan aksessere hukommelse hvis prioritetskontrollogikken 73 tillater det. Utgangslinjene 221 og 223 sendes til RAM-adressegeneratoren 45 vist på fig. 4. Portsperresignalet på linje 133 på fig. 4 skyldes at utgangslinjene 221 og 223 er inklusivt koblet, slik at begge utganger får addereren 137 til å substituere en verdi i reserve-(steds-) registeret 129 til programtelleren 138. De to utganger, Jump 1 og Jump 2, blir også sendt til to respektive stedsregistre 129 som inneholder adressen i RAM 401 for neste instruksjon som skal eksekveres av Copper 47. Et første stedsregister 129 og et annet stedsregister 129 inneholder de to indirekte sprangadresser benyttet av Copper 47. Copper 47 leser inn sine instruksjoner fra RAM 401 ved bruk av sin programteller (skriveregister 138) og opp-skriver programtelleren etter hver datainnlesning. Når en sprangadressestrobe skrives, blir adressen lagret i et tilsvarende stedsregister lastet inn i programtelleren til Copper 47. Dette får Copper 47 til å "hoppe" til et nytt sted i hukommelsen, hvorfra dens neste programinstruksjon blir lest inn. Program-instruksjonsinnlesningen fortsetter deretter sekvensielt inntil en annen sprangadressestrobe forekommer. Ved starten av hvert vertikalt slukkeintervall blir adressen i det første stedsregister 129 automatisk benyttet til å starte programtelleren, og Jump 1-utgangen aktiveres. Når slutten av et vertikalt slukkeintervall således forekommer, vil Copper 47 automatisk på ny starte sine operasjoner med instruksjonen i RAM 401 på adressen spesifisert i det første stedsregister 129.
Operasjonen til Blitter-DMA-kontrolleren 65 er tilstrekkelig beskrevet med
henvisning til fig. 4 og 5. Blitter-kontroll-registrene får hver tillatelse ved en linje 29 fra registeradressedekoderen 27 for å overføre data fra bussen 404 til en av registrene 63. Blitter-kontrollregistrene 63 har utganger til en tilstandssekvenser som har lignende struktur som tilstandssekvenseren 145 beskrevet med hensyn til bitplankontrolleren 57. Tilstandssekvenserutgangene, fire i alt for de fire Blitter-DMA-kanaler, blir gitt til register-adresse-enkoderen 43, som skaffer prioritetskontrollogikken 73 for ågenerere en databussanmodning på linje 411 til busskontrollogikken 412, og som også leverer koden som velger et bestemt register på registeradressebussen 405. De fire utganger sendes også til RAM-adressegeneratoren 45, hvor et av pekeregistrene velges og hvor det forekommer ekstra kretser for å generere en inverteringsinstruksjon og en menteinstruksjon som innganger til addereren 137.
Implementeringen av audio-DMA-kontrolleren 53 vist på fig. 1 er meget lik kretsene vist på fig. 4 og 5 for bitplan-DMA-kontroll. Der er et enkelt sett av registre 51 til å holde venstre og høyre audiokontrollinformasjon, og disse registre har utganger forbundet til en tilstandssekvenser med fire utganger lik tilstandssekvenseren 145 vist for bitplan-DMA-kanalene på fig. 5. Ytterligere utganger er imidlertid anordnet til reserveregistrene ved audio-DMA-kontrolleren fremfor til moduloregistrene, slik det var tilfelle ved bitplan- og Blitter-DMA-kontrollerne. Disse utganger er i likhet med Copper 47's sprangutganger inklusivt forbundet og mater linjen 133 som skaffer portsperresignalet til porten 135 for å frembringe substitusjon istedenfor addisjon ved addereren 137. I motsetning hertil blir for bitplan- og Blitter-kontrollregistrene 55 og 63 visse registre lastet med display-posisjons-telledata for å tillate sending av utgangssignaler til moduloregistrene 131 til riktig tid.
Maskinvaren for Blitter 67 er vist i et operasjonelt blokkdiagram på fig. 2. Databussen 404 går til A- og B-kildedataregistrene 77 og 79 ved styring av registeradressedekoderen 27. A- og B-kildedataregistrene 77 og 79 omfatter hver to 16 bits registre, med kilderegistre 77a og 79a som lagrer dataordet som forut ble gitt til registrene 77 og 79. A- og B-kildedataregistrene leverer hver to 16 bits ord til den 16 bits trommelskifter 81. Databussen 404 går også til første og annet ords A-maskeregistre 83 og 85. Utdataene fra disse maskeregistre leveres til lasting i A-kildemaskelogikken 90. A-maskelogikken 90 mottar kontrollsignaler fra Blitter-DMA-kontrolleren 65 på fig. 1 når ordet i registeret 77 er det første og/eller det siste i Blitter-vinduet for en horisontal linje.
Databussen 404 skaffer også en inngang til C-kildedataregisteret 89, som dessuten lastes under styring av registeradressedekoderen 27. C-dataregisteret 89 sender data til en logikkenhet 91, som er en logikkenhet som kan styres for å utføre hvilken som helst av 256 mulige logiske operasjoner på de tre inndataer den mottar fra A-, B- og C-registrene. Et A-skifttelleregister 93 og et B-skifttelleregister 95 lastes hver med fire biter data fra databussen 404. De 4 bits utdataene skaffes av skifttelleregistre 93 og 95 til trommelskifteren 81. Trommelskifteren 81 kan utføre inntil 15 bits skifting separat for A- og B-kildedataregistrene 77 og 79, idet skifteren inneholder 32 biter fra hver kilde. En 16 bits utdata fra trommelskifteren 81 leveres til A- og B-holderegistrene 101 og 102. Holderegistrene 101 og 102 har 16 bits utganger. Et Blitter-kontrollregister 63 mottar et dataord fra databussen 404. Åtte biter i dette Blitter-kontrollord inneholder multi-minterm-valgbiter som gis til logikkenheten 91 og som velger hvilke av de åtte tilgjengelige mintermer som skal kombineres for å velge en av 256 mulige logiske operasjoner som kan utføres på A-, B- og C-kildeinngangene.
Den logiske enhet 91 omfatter også fyllingslogikkretser. Fyllingslogikkretsen tjener til å legge inn biter mellom de horisontale omriss av et objekt som vises på skjermen. Det genererer dataene hvis Blitter-kontrollregistrene 63 er blitt lastet med bits som tillater fyllingsoperasjonen. Fyllingslogikken for hver bit og hvert ord har et fyllings-mente-ut-signal på linje 107 som gis til logikken for neste bit eller for den første bit av neste ord hvis Blitter-operasjonene på det foreliggende ord er ferdige. Den eksklusive ELLER-krets 108 vil straks en "1" for første gang er funnet på en horisontal linje, forandre alle etterfølgende null på linjen til "l"'ere inntil en annen "1" finnes på linjen. Den logiske enhet 91's utgangssignal gis til et D-holderegister 113. Utgangen fra D-holderegisteret kan sendes ut på databussen 404 og lagres i RAM 401.
Data føres med displayenkoder- (Denise) brikken 420 via databussen 404 (fig. 9). En toveis buffer 313 er forbundet med databussen, og en fortsettelse 315 av denne databuss fortsetter gjennom kretsene på Denise-brikken 420. Denne databuss 315 er 16 bit bred. Forskjellige registre mottar eller sender data på databussen 315. Disse registre styres av lastetillatelsessignaler 317 fra en registeradressedekoder 319, som benytter bestemmelsessteds-"instruksjoner" plassert i adressedekoderen 319 via registeradressebussen 405 og gjennom en bufferkrets 323 forbundet med et registeradressebuss-fortsettelsesparti 325 som er 8 bits bredt. Registeradressedekoderen 319 dekoder en bestemmelsessteds-"instruksjon" og skaffer et utgangssignal på en av linjene 317 for å tillate en dataoverføring inn eller ut av et bestemt bestemmelsesstedregister.
Blant registrene forbundet med databussen 315 er bitplankontrollregisteret 327. Disse registre 327 sender data til bitplan-valgserialiseringskretsen 329. Denne bitplan-valgserialiserer 329 virker som en serialiserer for bitplandata mottatt fra bitplandataregistrene 331, av hvilke det finnes seks. Hvert register 331 er forbundet for å sende data til serialisereren 329 når de velges av registeradressedekoderen 319. Utdataene fra bitplan-valgserialisereren 329 er seks biter som utgjør bitplanbussen 333. Bitplanbussen 333 er forbundet for å gi fargeregistervalgdata til både kollisjonsdeteksjonslogikken 335 og display-prioritetskontrollogikken 337.
En horisontal synkstråleteller 339 finnes på Denise-brikken, og synkroniseres med stråletelleren på Agnus-brikken 416. Utgangen er forbundet med bitplankontrollregistrene 327 og til sammenligningslogikken 341 for horisontal fantomposisjon.
Horisontal fantomposisjonsregistre 343 mottar data fra databussen 315. Utgangen fra de horisontale fantomposisjonsregistre 343 leveres til en annen inngang på sammenligningslogikkretsen 341 for den horisontale fantomposisjon. Denne sammenligningslogikk 341 for fantomposisjonen sammenligner et 8-bits ord fra den horisontale synkstråleteller 339 med et ord fra en av de horisontale fantomposisjonsregistre 343.
Det er to 8-bits fantomdataregistre 345 for hver av de åtte fantomer, og som mottar data fra databussen 315. Disse fantomdataregistre 345 leverer ut data til fantomvalg-serialisererkretsen 345 som virker som en serialiserer og gir ut åtte par av signallinjer for å danne en fantombuss 349. Fantombussen 349 er derfor 16 bits bred. Utgangen fra sammenligningslogikken 341 for den horisontale fantomposisjon leveres til fantom-valgserialisereren 347. Fantombussen 349 er forbundet med både kollisjonsdeteksjonslogikken 335 og displayprioritetskontrollogikken 337.
Et kollisjonskontrollregister 351 mottar data fra databussen 315. Utgangen fra kollisjonskontrollregisteret 351 leveres til kollisjonsdeteksjonslogikken 335. En 16-bits utgang fra kollisjonsdeteksjonslogikken 335 leveres til et kollisjonslagringsregister 353 som er forbundet for å sende data ut på databussen 315.
Bitplanprioritets- og kontrollregistrene 355 mottar data fra databussen 315. Utgangen er forbundet med displayprioritetskontrollogikken 337. Display-prioritetskontrollogikken 337 sender 5-bits data til en fargevalgdekoder 357. Fargevalgdekoderen 357 har 32 utgangslinjer som blir eksklusivt valgt for å tillate en av 32 fargeregistre 359 som virker for å skaffe videoen til displayet ved bruk av 12 bits koder som styrer de røde, grønne og blå kanoner benyttet til å generere en visning. De 32 fargeregistre 359 lastes med data fra databussen 315.
Videoutgangen sendes for å holde og modifisere logikken 362 som også mottar inndata fra bitplanbussen. Logikken 362 får tillatelse av en utgang fra bitplankontrollregistrene 355.
Ekstra periferikontrollere slik som mustellere 361 kan også forbindes til databussen 315. Slike mustellere 361 benyttes sammen med kommersielle markørposisjoneringsinnretninger. Slike mustellerkretser 361 mottar og dumper data på databussen 315.
Bitplandataregistrene 331, som det er seks av, er hvert 16 bits brede (fig. 10). Hvert av de seks bitplandataregistre 331 fører 16-bits informasjon til et av seks parallelle/serielle bitplanregistre 363, hvert forbundet til bare ett av registrene 331. Overføringen av dataene i bitplan-dataregistrene 331 til parallell/seriell-registrene 363 skjer etter at data for alle aktive bitplan er blitt overført til bitplan-dataregistrene 331 under DMA-kontroll. Hvert paral-lelt/serielt bitplanregister 363 fører bitplaninformasjon i seriell form på utgangslinjer som utgjør bitplanbussen 333. Dette finner sted etter at linjen 317 til bitplanregisteret 1 har ført til at et register er blitt lastet, og trigger den samtidige dumping av data fra alle bitplanregistre inn i serialisererne som respons på et tillatelsessignal for bitplan-kontrollregistrene på linjene 365 fra bitplan-kontrollregistrene 327.
Fantomvalg-serialiserer-delen av Denise-brikken (fig. 11) benytter parallell-til-seriell-omforming og serialisering som brikkens bitplan-parti beskrevet ovenfor. Fantomdataregisteret 345 for hver av de åtte fantomer består av to 16-bits fantomdataregistre 367. Totalt åtte par av 16-bits registre 367 mottar data fra databussen 315. Hvert enkelt fantomdataregister 367 er forbundet med tilsvarende parallelt/serielt-fantomregister 369, som det også totalt er åtte par av. Hver av de 16 parallelle/serielle fantomregistre 369 mater fantomdata serielt inn på de 16 utgangslinjer som utgjør fantombussen 333, med utdata fra hvert par av registrene 369 under kontroll av et signal fra en av 16 utgangslinjer 371 fra fantomposisjons-sammenligningslogikken 341 til hver av registrene 369.
Kollisjonsdeteksjonslogikken 335 er vist mer detaljert på fig. 12. Kollisjoner kan detekteres når to eller flere objekter som definert av hvilke som helst ikke-null-biter benyttes til å vise hvilke som helst av åtte fantomer eller to spillefelter, overlapper i den samme bildeelementposisjon. Et logisk matrisenettverk bestående av to trinn av NAND-porter 373 og 375 (porter 373 utgjør første trinn og portene 375 det annet trinn) danner kollisjonsdeteksjonslogikken. Det første trinn av NAND-portene 373 mottar inverterte data (ved bruk av inverterne 372) eller ikke-inverterte data fra hver linje på bitplan-bussen 333 og fantombussen 349, og fra hver utgangslinje fra kollisjonskontrollregisteret 351. Hver av de annet trinns NOG-porter 375 har som innganger koblet et bestemt antall av utganger fra det første trinns NOG-porter 373 for bestemte fantomer eller spillefelter for å danne en MINTERM. Bitene lastet i kollisjonskontrollregisteret 351 bestemmer hvorvidt odde-nummererte fantomer og bestemte bitplan vil benyttes av deteksjonslogikken 335 for å sette bitene i kollisjonslagringsregisteret 353. Avhengig av implementeringen valgt av bitene i kontrollregisteret 351 kan polariteten til bitene benyttet for å detektere en kollisjon, også spesifiseres.
Bitplan- og display-prioritetsdelen av kretsen er vist på fig. 13. Display - prioritetskontrollogikken 337 implementeres av et logisk matrisenettverk bestående av to trinn av NOG-porter 377 og 378. Det første trinn av NOG-porter 377 mottar inverterte data (gjennom invertere 376) eller ikke-inverterte data fra hver av seks linjer i bitplan-bussen 33 og 16 linjer fra fantombussen 349, og mottar også innganger fra bitplanprioritetskontrollregisteret 355 for å generere en matrise av MINTERMS. En valgt kombinasjon av utgangene til første trinn NOG 377 benyttes til å generere den 5 bits utdata sendt til fargevalgdekoderen 357. Fantomene har faste prioriteter med hensyn til hverandre, men prioritetene til de like eller odde bitplan med hensyn til fantomene og hverandre kan.styres med bitplankontrollregisteret.
Fargevalgdekoderen 357 skaffer 32 kontrollinjer til de 32 fargeregistre 359 for å velge de tre 4-bits fargekodeord for rød, grønn og blå video- fargeintensitet. Hvert fargeregister lastes med biter som definerer dets farge, fra databussen 315.
Der er to hoveddeler i ethvert display som kan sees på display skjermen ved bruk av den personlige datamaskin Amiga. Først er det objekter som lett kan flyttes, kalt fantomer. Dernest er det gjenstander som ikke kan bevege seg eller bare skal bevege seg langsomt, kalt spillefelt eller spillefeltobjekter. Spillefeltet er bakgrunnen mot hvilken fantomene og objektene kan vises eller som fantomene og objektene kan vekselvirke med. Et spillefeltobjekt er ganske enkelt et mindre underavsnitt av spillefeltet, men betraktes av programvaren i Amiga-systemet for å være et objekt av ett eller annet slag. Selv om spillefeltobjektene er klassifisert som ikke-flyttbare objekter, kan disse objekter synes å bevege seg ved å benytte en metode kalt spille-feltanimasjon. Således tillater Blitter at spillefeltobjekter hurtig kan tegnes om på skjermen, mens den bevarer og gjenoppretter bakgrunnen eller spillefeltet som de tegnes på for å gi illusjonen av bevegelse.
Det er to forskjellige operasjonsmoder for spillefeltvisningen: normal-oppløsning og høyoppløsning. I normaloppløsningsmoden er det 320 bildeelementer eller piksels som danner hver horisontal linje på skjermen. Dette er den oppløsning som generelt benyttes for standard hjemmefjernsyn. Høyopp-løsningsbilder fås normalt bare på en høyoppløsnings-monochrom- eller RGB-monitor. I høyoppløsningsmoden er det 640 bildeelementer som danner hver horisontale linje på skjermdisplayet. Det er normalt ca. 200 linjer pr. display skjerm i en vertikal retning. I linjesprangmoden er det imidlertid ca. 400 linjer pr. displayskjerm i vertikalretningen. I linjesprangmoden viser videoskankretsene et sett på 200 linjer i løpet av et totalbilde (som forekommer 60 ganger pr. sekund), men ved det umiddelbart påfølgende skjermbilde, linjeavsøker videoskankretsen 200 andre linjer på skjermen ved å plassere de 200 linjer i hvert totalbilde mellom hverandre. Dette frembringer den dobbelte vertikale oppløsning. Tellingen fra videostråletelleren 117 omfatter en langbildebit benyttet for linjesprangmoden for å skjelne de to totalbilder. Et bitplankontrollregister inneholder bitene som definerer både den horisontale bitoppløsning og linjesprangmoden for vertikal oppløsning. En bit velger høyoppløsningsmoden og en annen gir tillatelse til linjesprangmoden.
I Amiga-systemet kan brukeren definere en fargepalett som inneholder 32 av mulige 4096 tilgjengelige farger. I normaloppløsningsmoden kan hvilke som helst av de 32 fargene på paletten velges og settes sammen med hvilke som helst av bildeelementene som utgjør totalbilde som vises. En piksel (bildeelement) er det minste element i videodisplayet. I høyoppløsningsmoden kan hver piksel ha hvilke som helst av de 16 farger som finnes i fargepaletten. I den spesielle hold- og modifiser-driftsmode kan opptil 3616 farger samtidig skrives på skjermen til en standard fjernsynsmottager, eller inntil 4096 farger kan tegnes på skjermen til en RGB-monitor.
Hvert bildeelement vist på skjermen representeres av en eller flere biter i Amigas random-aksesshukommelse 401. Det er således for hvert individuelt bildeelement korresponderende sett av biter i datamaskinhukommelsen som bestemmer hvilke av de 32 fargeregistre 359 som inneholder fargeinforma-sjonen for dette bildeelement. Da bildeelementene er organisert i en to-dimensjonal (horisontal og vertikal) matrise, blir spillefeltet betegnet som et fargeplan. De tilsvarende avsnitt i RAM 401 som inneholder biter som bestemmer fargen til hvert av spillefelt-bildeelementene, kalles bitplan. Verdien av fargen som skal benyttes for hvert bildeelement, er ikke lagret direkte som del av bitplanet i hukommelsen, men isteden lagret i en farge-tabell, tidligere betegnet som fargepaletten. Trettito fargeregistre 359 finnes på display-enkoderbrikken 420 og består av et sett av 12-bits registre som hver kan velges av en av 32 linjer fra fargevalgdekoderen 357. Således kan et bestemt bildeelement på displayet ha hvilke som helst av 32 forskjellige farger. Innholdet av de trettito registre velges av brukeren. De 12 biter inneholdt i hvert register tillater valg fra et total på 4096 mulige farger for hvert fargeregister. COLORO-registeret reserveres alltid for bakgrunnsfargen på skjermen. Bakgrunnsfargen er fargen som vises i hvilket som helst område på displayet når ingen andre objekter forekommer, da alle andre objekter har høyere prioritet enn bakgrunnen.
For å velge fargen til et bestemt bildeelement fra en palett på mer enn to farger må det være mer enn én enkeltbit i RAM 401 som svarer til hvert bildeelement vist på skjermen slik at en av flere fargeregistre kan velges. Hvis således bare ett bitplan benyttes til å spesifisere fargene til et spillefelt, kan hvert bildeelement i det spillefelt bare ha fargen spesifisert i fargeregistrene COLOR0 og COLOR1. Ytterligere fargevalg for bildeelementene fås når en rekke bitplan kombineres for åspesifisere fargeregisteret for hvert bildeelement. Når en rekke bitplan kombineres for å spesifisere fargen til bildeelementet på skjermen, kombineres bitene fra hver til et lengre binærtall som kan velge ytterligere fargeregistre. For et enkelt spillefelt kan bare fem bitplan normalt være aktive i Amiga-systemet. Kombinasjonen av fem binære biter for hvert bildeelement tillater valg blant 32 forskjellige fargeregistre
359, som hver spesifiserer en farge. Hvert bitplan danner en separat blokk av biter lagret i RAM 401. Imidlertid tolker displayet bitplanene som om de var stablet slik at bitene i tilsvarende posisjoner i bitplan kombineres av display-maskinvaren for å danne et binærtall som svarer til et bestemt fargeregister benyttet til å skaffe fargen for det bildeelement. Et bitplan-kontrollregister inneholder tre biter som tillater brukeren å angi fra 0 til 6 bitplan for displayet.
Bitplankontrollregistrene rommer også en tillatelsesbit for et dobbelt spillefelt. I den doble spillefeltsmode blir alle odde nummererte bitplan gruppert sammen som spillefelt 1 og alle like nummererte bitplan grupperes sammen som spillefelt 2. Hvis f.eks. seks bitplan spesifiseres og den doble spillefeltmode velges, kan åtte forskjellige fargeregistre designeres for et bestemt bildeelement av tre biter kombinert for hvert spillefelt, og settet av åtte fargeregistre er fullstendig adskilt for hvert spillefelt.
Et spesielt tilfelle forekommer når bitplanene inneholder alle nullene for et bestemt bildeelement i enten spillefelt 1 eller spillefelt 2. Designeringen av alle nuller for et bildeelement betyr at spillefeltet er i gjennomsiktig mode.
(COLORO-registeret inneholder bakgrunnsfargen). Overalt hvor bit-kombinasjonen i et av spillefeltene oppstilles for gjennomsiktig mode, vil displayet vise fargen av alt som er "bak" (har lavere prioritet enn) det bestemte spillefelt (f.eks. det andre spillefelt, et fantom eller bakgrunnsfargen). Brukeren kan designere hvorvidt visse objekter skal plasseres foran eller bak hverandre ved å styre den relative visuelle prioritet for spillefeltene og fantomene ved bruk av bitplanprioritetskontrollregisteret 355.1 dobbelt spillefelt-mode kombineres de to spillefelt på skjermen for å danne et dobbelt spillefeltdisplay. Hvis spillefeltet 1 har en høyere prioritet enn spillefeltet 2, velges fargen for hvert bildeelement i display-prioritetskontrollogikken 337 ved å benytte fargeregistrene designert av de odde bitplan for spillefelt 1. Hvis imidlertid et av bildeelementene på skjermen plasseres i den gjennom-
siktige mode (alle biter er null) av de odde bitplan for spillefelt 1, så vil bildeelementene farges ved bruk av fargeregisteret designert av de like bitplan forbundet med spillefelt 2. Hvis bitplanene for begge spillefelt velger COLORO-registeret for samme bildeelement, vil dette bildeelement bli farget med den samme bakgrunnsfarge som finnes i COLORO-registeret.
For samtidig å vise flere farger enn de 32 mulige valg lagret i fargeregistrene 359, er det en spesiell hold-og-modifiser-mode. Denne mode velges ved bruk av en bit i bitplankontrollregistrene 355. I denne mode tolker systemet bitplandataene på en annen måte. Som tidligere beskrevet rommer hvert fargeregister 359 12 biter som angir en bestemt farge. En RGB-fargemonitor blir drevet direkte av et RGB (rødt, grønt, blått) fargeinngangssignal. Et RGB-fargesignal er i realiteten tre monochrome signaler som separat driver de røde, grønne og blå kanoner til et rasterdisplay. Ved bruk av normal opp-løsning tolkes de 12 biter til fargeregistrene slik at bitene 0-3 angir intensitetsnivået for den blå elektronkanon, bitene 4-7 svarer til den grønne elektronkanon, og bitene 8-11 svarer til den røde elektronkanon. I hold-og-modifiser-moden holdes verdien i fargeutgangskretsene for det tidligere viste bildeelement, og en av tre 4-bit parter av den verdi blir deretter modifisert av dataene i de første fire bildeplan for dette bildeelement. I hold-og-modifiser-moden benyttes bitkombinasjoner for et bildeelement fra bitplanene 5 og 6 til å modifisere den måte som biter fra bitplanene 1-4 tolkes på. Bitplanbussen 333 og de 12 videoutganger fra fargeregistrene 359 leveres til hold-og-modifiser-kretsen 360 som har 12 videoutganger. Hvis bitene i bitplanene 5 og 6 for et bildeelement settes lik null, vil de første fire bitplan bli benyttet til å velge et av 16 fargeregistre 359. For de tre andre mulige kombinasjoner av de to biter fra bitplanene 5 og 6 vil fargen til det tidligere viste bildeelement (til venstre for det nåværende bildeelement) bli duplisert, bortsett fra en 4-bits modifikasjon. Bitene inneholdt i bitplanene 5 og 6 bestemmer hvorvidt det rød, grønne eller blå parti av displayet vil bli modifisert. De fire bitene i bitplanene 1-4 vil deretter bli benyttet til å erstatte de fire (av 12) bitene benyttet for å drive enten den røde, grønne eller blå kanon til displayet. I denne mode holdes således to deler (f.eks. grønn og rød) av utgangen fra fargeregistrene igjen fra de tidligere bildeelement, og en del (f.eks. blå) modifiseres av dataene inneholdt i bitplanene.
Hver linje av bildeelementer som vises på en fjernsynsskjerm, formes fra overlappingen av et eller flere bitplan inneholdende biter forbundet med hvert bestemt bildeelement. Hvert bitplan blir etter tur dannet fra blokker på 16 bits dataord i påfølgende steder i random-aksesshukommelsen 401. Hver linje av et bitplan består av en sekvens av dataord, med den mest signifikante bit av hvert dataord knyttet til bildeelementet lengst til venstre som dukker opp på displayet av bildeelementer. Hvert hukommelsesord befinner seg på en sekvensielt økende hukommelsesadresse når man beveger seg fra venstre mot høyre over displayet. Hvis hele bitplanet svarer til bildeelementer som alle vil bli vist, så vil bildeelementet lengst til venstre vist på hvilken som helst horisontal linje, svare til en bit inneholdt i et hukommelsesord på en adresse én større enn adressen til ordet som svarer til det siste bildeelement til høyre for den horisontale linje vist like ovenfor. I hvert dataord representerer hver bit et enkelt bildeelement på skjermen. Settet av display-linjer definert av sekvensen av biter lagret i hukommelsen for hvert bitplan definerer en to-dimensjonal plan av biter som har en bit for hver x- og y-posisjon definert på displayet, kalt et bitplan. Bitplanet som et hele gir en bit for hver mulig x-y-koordinat på skjermen.
For å vise bakgrunnsfargen og en eller to spillefelter på skjermen må Amiga-systemet gis startadressen under den vertikale slukketid for datablokken for hver av bitplanene som skal benyttes. Starten på bitplandata spesifiseres ved bruk av pekere inneholdt i pekerregistrene 138 på fig. 4 med ett eksisterende register for hver av seks mulige bitplan. Bitplanpekerne er adressepekere som peker til startadressen i RAM 401 hvor dataene for et bestemt bitplan faktisk begynner. Pekerne i registrene 138 er 19 bit brede og dynamiske. Straks inn-lesingen av bitplandataene begynner under DMA-sykler, blir pekerne i registrene 138 kontinuerlig tellet opp ved bruk av addereren 137 for å peke på adressen til det neste ord i RAM 401 som skal leses inn. Adressen til dataene som aksesseres, plasseres deretter på DRA-bussen 406 av RAM-adressegeneratoren 45 i Agnus-brikken 410. Når elektronstrålen for fjern-synskjermen når siste bildeelement som skal vises på en horisontal linje, vil den ha lest inn det siste dataord for den linje. Hver peker for hver av bitplanene blir deretter justert av modulo-mengden inneholdt i moduloregistrene 131 som adderes til pekerverdien lagret i registrene 138 ved bruk av addereren 137. Addisjonen av modulomengden sikrer at det neste dataord lest inn vil være ordet i hukommelsen som svarer til bildeelementet lengst til venstre som skal vises på den neste linje på skjermen. En separat modulomengde kan benyttes for de like og odde bitplan og lagres i to av moduloregistrene 131.
Som tidligere beskrevet er det 320 bildeelementer i hver horisontal linje i normal oppløsningsmode. Hvert dataord består av 16 biter, slik at 20 dataord på i alt 320 biter er tilstrekkelig for at hvert bitplan skal inneholde alle data som svarer til en horisontal linje av bildeelementer som vises. Hvis størrelsen på bitplanet er nøyaktig den samme som størrelsen på displayvinduet, så blir null lastet inn i moduloregisteret 131. I dette tilfelle er antallet biter lagret i RAM 401 nøyaktig det samme som antallet bildeelementer som vil forekomme på skjermen. Etter som hvert dataord for bitplanet leses inn mens elektronstrålen beveger seg horisontalt langs skjermen, blir pekeren for dette bitplan skrevet opp med en av addereren 137. Etter at hver horisontal linje er skannet av strålen, vil således verdien (i ord) lagret i pekeregistrene 138 når datainnlesningen for neste linje begynnes, overstige pekeverdien når den foregående linje begynte ved 20. Hvis imidlertid bitplanet f.eks. har nøyaktig det dobbelte antall bit pr. horisontal linje som antallet bildeelementer som skal vises, må en modulo på 20 ord benyttes for å sikre at dataene benyttet til å generere fargene for neste linje av bildeelementer er bitene for den neste horisontale linje. Etter å ha vist det siste bildeelement på en horisontal linje, inneholder pekeren svarende til dette bitplan i et av de seks bitplan pekeregistre 138 en verdi svarende til start-hukommelsesadressen for denne linje pluss 20. En modulo på 20 ord må adderes til denne peker ved bruk av moduloregisteret 131 og addereren 137, slik at når datainnlesingen for neste horisontale linje begynner, vil de neste 20 ord i hukommelsen (svarende til den del av spillefeltbildet til høyre eller venstre for hva som kan vises på de 320 tilgjengelige bildeelementer ved dette bestemte tidspunkt) bli over-hoppet. På denne måte blir ikke adressen til ikke benyttede data i det foreliggende display plassert av generatoren 45 på RAM-adressebussen 406. Når høyoppløsningsmoden benyttes for å vise spillefeltene, må 40 dataord innleses for hver linje istedenfor 20, og modulo er 40 når bitplanet er dobbelt så stort som vinduet.
Systemet kan beordres til å vise et annet parti (f.eks. den høyre halvpart) av bildet definert av et bitplan som er større enn (f.eks. to ganger) størrelsen av det tillatelige displayvindu. I et slikt tilfelle lastes en forskjellig pekerverdi inn i pekeregisteret 138 for dette bitplan når den første bit innleses for displayet av det øvre venstre bildeelement på skjermen (under vertikal slukking). For å vise bare høyre halvpart av et bilde definert av bitplanene med 640-bits brede horisontale linjer må verdien av pekeren være 20 ord (320 bit) høyere enn startadressen når bare venstre halvpart av bildet blir vist. I dette tilfelle vil moduloen holde seg på 20 for å hindre adresseringen av data for venstre halvpart av bildet etter at hver linje er skannet.
Moduloen lagret i bitplanmodulo-registrene 131 benyttes også til å fremstille et bilde med linjesprang. En bildebit generert av videostråletelleren 177 kan lastes inn i et kontrollregister og leses under operativsystemets vertikale slukkerutiner. Avhengig av tilstanden til denne bit vil systemet danne enten et odde bilde eller et likt bilde. Basert på verdien av denne bit vil de vertikale slukkerutiner for odde bilder laste pekerregisteret 138 med en adresse svarende til linje en, mens det for like bilder lastes en adresse svarende til data for linje to. Skipinstruksjonen til Copper 47 kan benyttes til å oppnå dette. Visningen av alternerende linjer av et fullstendig bilde inneholdt i hukommelsen under alternerende bilder på displayet krever innstilling av modulotallet i registre 131 svarende til det totale antall ord i hukommelsen for en enkelt horisontal linje pluss den normale verdi av assosiert med moduloen (antall ord hvormed data i hukommelsen for definisjon av en bestemt linje overstiger antallet av bildeelementer som blir vist på skjermen til enhver tid). Hvis "bildet" lagret i hukommelsen defineres å være 400 linjer langt, blir de 200 odde nummererte linjer vist under et bilde, og de 200 like nummererte linjer er vist under det neste delbilde for å danne det fullstendige bilde. Avsøkingskretsen forskyver vertikalt starten av annet hvert felt med en halv skannelinje i linjesprangmoden. For odde rammer innstilles pekeren lastet i pekeregisteret 138 for et bitplan under det vertikale slukkeintervall på en eller annen hukommelsesadresse. For like rammer vil således verdien av pekeren lastet i pekeregisteret 13 8 ved begynnelsen av skannet av et like delbilde svare til den opprinnelige start-hukommelsesadresse pluss det totale antall ord i hukommelsen som inneholder biter for en enkelt horisontal linje.
For å frembringe et spillefelt som har samme størrelse som fjernsyns-skjermen, velges en bredde på enten 320 bildeelementer eller 640 bildeelementer (høy oppløsning). Høyden kan være enten 200 linjer eller 400 linjer (linjesprangmode). Den virkelige størrelse på skjermdisplayet kan imidlertid ytterligere justeres ved å definere en vindusstørrelse. Ingen ting vil bli vist utenfor det definerte displayvindu, innbefattet spillefelter og fantomer. Displayvindusstørrelsen blir definert ved å spesifisere de horisontale og vertikale posisjoner hvormed displayvinduet begynner og opphører. Oppløsningen av vertikal begynnelse og opphør er en skannelinje, oppløsningen av horisontal begynnelse og opphør er et bildeelement i lavoppløsningsmode. Displayvinduets startregister styrer displayvinduets startposisjon. Både horisontale og vertikale komponenter av displayvinduets startposisjoner lastes i dette register som er plassert blant bitplankontrollregistrene på Agnus-brikken 410, ved enten prosessoren 402 eller Copper 47. På samme måte finnes et displayvindu-stoppregister på Agnus-brikken 410 og lastes med de horisontale og vertikale komponenter av displayvinduets stopposisjon. Stopposisjonen blir i likhet med startposisjonen tolket i en lavoppløsnings ikke-linjesprang-mode, selv om høyoppløsnings- eller linje-sprangmoder velges.
Etter at størrelsen og posisjonen for displayvinduet er definert ved bruk av displayvinduets start- og stoppregistre, må bildeflatestedet for data lest inn fra hukommelsen bli identifisert. Dette gjøres ved å laste de horisontale posisjoner hvor hver linje starter og stopper til et datainnlesnings-startregister og et datainnlesnings-stoppregister plassert blant bitplan-kontrollregistrene. Til forskjell fra displayvinduregistrene som bare har ett bildeelement-oppløsning og lavoppløsningsmode, har datainnlesningsregistrene bare et 4 bildeelements oppløsning, fordi bare fem biter benyttes i hvert register for å spesifisere begynnelses-og opphørsposisjonen for datainnlesningssystemet. Maskinvaren trenger noen tid etter den første datainnlesning før den virkelig kan vise dataene. Følgelig er det en forskjell mellom verdien for vindusstart og datainnlesningsstart, og registrene kontrollerer den horisontale tidsstyring av bitplan-DMA-datainnlesningen. I lavoppløsningsmoden er forskjellen 8,5 klokkesykler, forskjellen er 4,5 klokkesykler i høyoppløsningsmoden. Som tidligere beskrevet benyttes bitplanadressepekerne lagret i pekeregistrene 138 til å hente data til skjermen. Straks datainnlesningen begynner, blir pekerne kontinuerlig skrevet opp til å peke til neste ord. Datainnlesnings-stopp-registeret definerer når enden av en horisontal linje nås, på hvilket punkt bitplan-kjøresignalet er av og modulo inneholdt i moduloregisteret 131 for dette bitplan adderes til pekeren for dette bitplan. Følgelig er pekeren justert slik at den inneholder adressen for det første dataord som skal leses inn for neste horisontale linje. Det er to moduloregistre, bitplanmoduloregisteret for odde nummererte bitplan (eller for spillefelt 1 når det arbeides i dobbelt spillefeltmode) og bitplan 2-moduloregisteret for like nummererte bitplan (eller for spillefelt 2 når det arbeides i den doble spillefeltmode).
For å starte visningen av spillefeltene må pekerne for bitplanene være innstilt og bitplan-DMA slått på. Bitplan-DMA slås på ved åsette en bit i DMA-kontrollregisteret. Hver gang spillefeltet vises på ny etter det vertikale slukkeintervall, må bitplanpekerne tilbakestilles. Tilbakestilling er nødvendig fordi verdiene i pekeregistrene er blitt skrevet opp for å peke til hvert suksessivt ord i hukommelsen for hvert sett av bitplan og må nå på ny rettes mot det første ord for neste visning. Programinstruksjoner for Copper 47 benyttes til å utføre denne operasjon som del av en vertikal slukkeoppgave.
En av trekkene ved Copper 47 er dens evne til å vente på en spesifikk video-strålestilling og deretter flytte data til et systemregister. Under denne vente-periode undersøker Copper 47 innholdet i videostråleposisjonstelleren 117 direkte. Mens Copper 47 således venter på at strålen skal nå en gitt posisjon, benytter den ikke databussen 404 i det hele tatt. Følgelig er databussen 404 fri til å benyttes av andre DMA-kanaler eller av mikroprosessoren 402. Når ventebetingelsene er blitt oppfylt, stjeler Copper 47 hukommelsessyklene fra Blitter 67 eller prosessoren 402 for å flytte de spesifiserte data til utvalgte registre for spesielle formål. Copper 47 er en to-syklers prosessor som anmoder om bussen bare under odde nummererte hukommelsessykler. Dette forhindrer kollisjoner med audio-, plate-, oppfriskings-, fantom- og mesteparten av lavoppløsningsvisnings-DMA-aksess, som samtlige benytter bare like nummererte hukommelsessykler. Copper 47 behøver derfor prioritet bare over prosessor 402 og Blitter 67.
Instruksjonslisten for Copper 47 er tilstrekkelig til å utføre all tilbakestilling av registeret under det vertikale slukkeintervall og registermodifikasjonene som er nødvendig for å utføre endringer midt på bildeflaten. F.eks. må pekerne for de odde og like bitplan benyttet i spillefeltvisningene og fantompekerne skrives på ny under det vertikale slukkeintervall, slik at data for øvre venstre del av bildeflaten vil bli gjenfunnet når visningen starter på ny. Dette kan gjøres med en Copper-instruksjonsliste som gjør det følgende: (1) vente inntil videostrålen når den første linje av displayet, (2) MOVE startadressen i RAM 401 for odde bitplan-data til det første bitplan-pekeregister, (3) MOVE startadressen for like bitplandata til annet bitplan-pekeregister, (4) MOVE data til første fantom-pekeregister etc. Som et annet eksempel kan fargeregistrene bli lastet på ny med biter som spesifiserer visningen av forskjellige farger midt på bildeflaten av en skjerm. Således vil programinstruksjonslisten for Copper 47 vente på den første linje av displayet og deretter flytte en serie på 12 bits koder til en rekke fargeregistre, vente på en påfølgende linje av displayet (slik som den første linje som svarer til gjenbruk av en bestemt fantomprosessor), og deretter flytte 12 biter data som spesifiserer et nytt sett farger til noen av fargeregistrene som tidligere ble lastet under den første linje av bildeflaten.
Copper 47 leser inn sine instruksjoner ved å benytte sin programteller og skriver programtelleren opp etter hver innlesning. Copper 47 har imidlertid to sprangstrobeadresser, sprang 1 og sprang 2. Når det gjøres et forsøk på å skrive enten strobeadressene for sprang 1 eller sprang 2, lastes programtelleren til Copper 47 med en ny adresse. Copper 47 har et første og et annet stedsregister 129 som inneholder RAM-adresser. Når en sprangadressestrobe skrives, blir adressen inneholdt i det tilsvarende stedsregister lastet inn i Copper-programtelleren (pekeregisteret) ved bruk av adderer 137 og portsperresignalet. Dette får Copper til å hoppe til adressen spesifisert i enten det første eller annet stedsregister 129, og eksekvere instruksjonen inneholdt på denne RAM-adresse. Instruksjonsinnlesningen fortsetter deretter sekvensielt inntil Copper 47 avbrytes av en annen sprangadressestrobe. Uansett hva Copper foretar seg, vil den ved begynnelsen av hvert vertikalt slukkeintervall automatisk bli tvunget til på ny å starte sine operasjoner ved adressen som er inneholdt i det første stedsregister. Copper kan også skrive på sine egne stedsregistre og deretter adressere strobe for å utføre programmerte sprang. Således kan Copper flytte en ny adresse til det annet stedsregister. Deretter får en av Copper eksekvert påfølgende flytte-instruksjon som adresserer sprangadresse 2 på den nye adressen i det annet stedsregister til å strobes inn i Coppers programteller. Ved påslåing eller tilbakestillingstidspunktet må Coppers første og andre stedsregister initialiseres og sprangstrobeadressen skrives slik at en kjent startadresse og en kjent tilstand has før Copper-DMA først slås på. Hvis innholdet i det første stedsregister ikke er forandret, vil Copper deretter starte på ny på samme sted hver gang vertikal slukking forekommer for hvert påfølgende videobilde. Det settes en bit i et DMA-kontrollregister for å tillate koprosessor-DMA-operasjoner.
For å få et bakgrunnsbilde som beveger seg, lagres et spillefelt større enn display-bildeflatevinduet i hukommelsen og rulles. Når det benyttes doble spillefelter, kan hvert spillefelt rulles separat. Ved horisontal rulling må ett ytterligere dataord leses inn for visningen av hver horisontal linje, og visningen av dette data må forsinkes. I vertikal rulling økes eller minskes startadressen lastet i bitplanpekerne av et like multiplum av mengden av ord som opptas av en horisontal linje i hukommelsen. Dette får en nedre eller øvre del av bildet til å bli vist etter hvert vertikalt slukkeintervall. For å oppnå vertikal rulling må Copper under hvert vertikalt slukkeintervall øke verdien av pekeren lagret i bitplanpekeregisteret 138 med en verdi stor nok til å sikre at visningen begynner minst én horisontal linje senere eller tidligere hver gang. For hver art av type kan Copper 47 benyttes under det vertikale slukkeintervall for å tilbakestille pekere og datainnlesningsregistre. For et lavoppløsningsdisplay hvor bare 20 dataord benyttes for hver horisontal linje, vil startadressen lastet inn i pekeregisteret 138 av Copper 47 bli forandret med et multiplum på 20 ord under hvert vertikale slukkeintervall.
Spillefeltene kan skrolles horisontalt fra venstre til høyre eller omvendt på skjermen. Horisontal skrolling styres ved å spesifisere graden av forsinkelse foruten for visningen av bildeelementene. Forsinkelsen forekommer når et ekstra dataord for en horisontal linje leses inn men ikke vises momentant. Det ekstra dataord plasseres til venstre for venstre kant av bildevinduet og gjenfinnes før normaldatainnlesning begynner. Etter som strålen skanner mot høyre, blir imidlertid bitene i dette ytterligere dataord benyttet til å definere fargen på bildeelementene som forekommer på skjermen på venstre side av vinduet, og dataene tidligere benyttet til å fargelegge bildeelementene på høyre side av skjermen forekommer ikke lenger under visningen. For hvert bildeelements forsinkelse spesifisert flytter dataene på skjermen et bilde til høyre etter hvert slukkeintervall. Jo større forsinkelse benyttet, jo større rullehastigheten for bildet. Inntil 15 bildeelementers forsinkelse kan spesifiseres ved å laste et bitplan-kontrollregister med fire databiter som spesifiserer forsinkelsen for bildefelt 1 og fire databiter som spesifiserer forsinkelsen for bildefelt 2.1 horisontal rulling må således datainnlesnings- startregisteret lastes med en begynnelsesposisjon for datainnlesningen som er 16 bildeelementer (et ekstra ord) før den urullede startposisjon for datainnlesningen, modulo for spillefeltet må økes med et ord, og antallet biter for forsinkelsen må lastes i et bitplan-kontrollregister.
Begrepet Blitter står for blokkbildeoverfører. Hovedformålet for Blitter 67 er
å kopiere (overføre) data i store blokker fra et hukommelsessted til et annet, med eller uten ytterligere behandling. Operasjonene det utfører etter at dets registre er satt opp, er betydelig hurtigere enn de utført av mikroprosessoren 402. Blitter 67 er meget effektiv til å kopiere datablokker fordi den behøver bare å underrettes om startadressen i RAM 401, bestemmelsesstedsadressen i RAM 401 og størrelsen på blokken. Den vil deretter automatisk flytte datablokken, ett ord av gangen, hver gang databussen 404 er tilgjengelig. Blitter vil signalere prosessoren 402 med et flagg og et avbrudd når overføringen er fullført.
Blitteren utfører sine forskjellige datainnlesnings-, modifiserings- og installasjonsoperasjoner via DMA-sekvenser, og den deler hukommelsesaksess med de andre innretninger i Amiga-systemet. Plate-DMA, audio-DMA, bitplan-DMA og fantom-DMA har alle høyeste prioritetsnivå. Hver av disse fire innretninger er allokert en gruppe av tidsslisser under hver horisontal skan av videostrålen. Hvis en innretning ikke anmoder om en av sine allokerte tidsslisser, er slissen åpen for annet bruk. Første prioritet er gitt til disse innretninger, da tapte DMA-sykler kan forårsake datatap, støy i lyd-utgangen eller avbrudd i bildet på skjermen. Copper 47 har neste prioritet fordi den må utføre sine operasjoner samtidig i løpet av hvert displaybilde for å være synkronisert med videostrålen som sveiper skjermen. De laveste prioriteter er tillagt Blitter 67 og mikroprosessoren 402, i den rekkefølge. Blitter 67 er gitt høyere prioritet, da den utfører datakopiering, modifisering-og linjetegneoperasjoner mye hurtigere enn mikroprosessoren 402. Under skan av en horisontal linje er der typisk 227,5 hukommelsesaksessykler, som hver har en varighet på ca. 280 nanosekunder. Av denne tid er 226 sykler tilgjengelige for å allokeres til de forskjellige innretninger som trenger hukommelsesaksess. Hukommelsessyklene allokeres som følger: fire sykler for hukommelses-oppfrisking (tillagt bare odde nummererte sykler), tre sykler for plate-DMA (tillagt bare odde nummererte sykler), fire sykler for audio-DMA (tillagt bare odde nummererte sykler, ett ord pr. kanal), 16 sykler for fantom-DMA (tillagt bare odde nummererte sykler, to ord pr. kanal) og 80 sykler for bitplan-DMA (kan bare tillegges odde nummererte sykler hvis displayet har lav oppløsning og inneholder fire eller færre bitplan). Mikroprosessoren 402 benytter bare like nummererte hukommelsesaksessykler. Under en fullstendig prosessorinstruksjonstid tilbringer prosessoren 402 normalt halvparten av tiden med å utføre interne operasjoner, og den andre halvpart med å aksessere hukommelse. Ved derfor å allokere annen hver hukommelsessykel til 68000-prosessoren, kan prosessoren 402 kjøre på full hastighet fordi det forekommer prosessoren at den har hukommelsesaksess hele tiden. Således kjører 68000 på full hastighet mesteparten av tiden om det ikke er noe Blitter-DMA-interferens. Hvis syklene går tapt for 68000, venter den til dens neste tilgjengelige hukommelsessykel før den fortsetter. Hvis det imidlertid er mer enn fire bitplan som vises eller benyttes et høyopp-løsningsbilde, vil bitplan-DMA begynne å stjele sykler fra 68000 under visningen. Hvis f.eks. fire høyoppløsnings-bitplan spesifiseres, trenger bitplan-DMA alle tilgjengelige hukommelsestidsslisser under visningstiden (bitplan-kjøresignalet er på) for å lese inn de 40 dataord som behøves for hver linje for hver av de fire bitplan. Dette stenger effektivt prosessoren 42 såvel som Blitter 67 og Copper 47 ute fra enhver hukommelsesaksess under visningen. Under visningstiden for et fire bitplans lavoppløsningsbilde reserveres 80 odde nummererte tidsslisser for bitplan-DMA og de 80 like nummererte tidsslisser er alle tilgjengelige for prosessoren 402. For en visning av et seks bitplans lavoppløsningsbilde stjeler bitplan-DMA halvparten av de 80 like nummererte slisser under visningen fordi 120 tidsslisser er nødvendig for å lese inn 20 dataord for seks bitplan. Ingen hukommelsestidsslisser er tilgjengelige under visningen av et fire bitplans høyoppløsningsbilde, da alle 160 tidsslisser er nødvendige for å lese inn 40 dataord for hvert av fire bitplan.
Blitter 67 har normalt en høyere prioritet enn prosessoren 402 for DMA-sykler. Hvis den gis sjansen, vil Blitter stjele hver tilgjengelig hukommelsessykel og blokkere prosessoren 402 fra bussaksess. Ved å sette en bit i et DMA-kontrollregister vil Blitter bli gitt prioritet over prosessoren 402 for hver tilgjengelig hukommelsessykel. Hvis imidlertid biten ikke settes, vil Blitter 67 bli tvunget til å slippe databussen 404 til prosessoren 402 for en sykel hvis prosessoren 402 ikke blir tilfredsstilt for tre påfølgende hukommelsessykler.
Blitter benytter inntil fire DMA-kanaler. Tre DMA-kanaler er reservert for å hente data fra RAM 401 til Blitter 67 og blir betegnet som kilde A, kilde B og kilde C. Den ene bestemmelsessted-DMA-kanal blir betegnet som bestemmelsessted D. Et Blitter-kontroll-register 63 lastes med data fra databussen 404 for å angi hvilke av fire DMA-kanaler som skal benyttes når fire biter totalt er nødvendig for uavhengig å gi tillatelse til hver av de fire kanaler. Hver av Blitterkilde- og destinasjonskanalene har sitt eget hukommelsespekeregister 138 og sitt eget moduloregister 131. Dette tillater Blitter å flytte data til og fra identiske rektangulære vinduer i større spille-feltbilder som kan ha forskjellige størrelser for hver av kildene og for destinasjonsblokkene i hukommelsen. Pekeregistrene 138 for Blitter-kanalene benyttes til å peke til adressen i RAM 401 hvor det neste kilde-eller destinasjonsdataord er plassert. Tilsvarende til bitplan-operasjonene tidligere beskrevet benytter Blitter 67 moduloer for å tillate manipulering av mindre vinduer i store bilder lagret i hukommelsen. Når moduloverdien lagret i det tilsvarende moduloregister 131 adderes til verdien i det riktige pekeregister 138, vil adressepekeren identifisere starten av den neste horisontale linje etter at det siste ord i vinduet på den foregående linje er blitt behandlet. Når det arbeides med dataord inneholdt i samme horisontale linje for et vindu med valgt størrelse, vil adressen inneholdt i pekeregisteret 138 skrives opp med ett ord hver gang. Det er mulig å spesifisere blokker av data for kilder og bestemmelsessted som overlapper. I et slikt tilfelle er det mulig at Blitter vil skrive til en bestemt hukommelsesadresse i destinasjonsblokken før dataene på den samme adresse blir lest av Blitter som kilden. For å forhindre slik datadestruksjon er det mulig enten å skrive opp eller skrive ned pekeverdiene etter hvert som dataene behandles ved bruk av et invertert instruksjonssignal. For eksempel bør verdien i pekeregistrene skrives ned og Blitter bør operere i nedstigende mode hvis det er en overlapping mellom kilde- og destinasjonsdatablokkene og det er ønskelig å flytte data til en høyere adresse i RAM 401. Den nedstigende eller oppstigende driftsmode velges ved å laste en bit inneholdt i Blitter-kontrollregisteret.
Et Blitter-størrelsesregister lastes med bredden og høyden på vinduet som Blitter arbeider med. Ti biter i dette register definerer høyden på Blitter-operasjonen inntil et maksimum på 1024 linjer. Seks biter i dette register definerer bredden på Blitter-operasjonen inntil et maksimum på 64 ord eller 1024 bildeelementer. Lasting av data i Blitter-størrelsesregisteret starter driften av Blitteren og utføres sist etter at alle peker-og kontrollregistre er blitt initialisert.
Istedenfor bare å hente data fra en enkelt kilde kan Blitter hente data fra inntil tre kilder etter hvert som den genererer et resultat for et mulig destinasjonsområde. Disse kilder er vanligvis et bitplan fra hver av tre separate grafikkbilder. Blitterens logiske operasjon defineres ved å beskrive hva som hender for alle de mulige kombinasjoner av én bit fra hver av de tre kilder. De åtte mulige datakombinasjoner av tre biter blir betegnet som MINTERMS. For hver av de åtte inngangsmuligheter må verdien av biten gitt ut til den tilsvarende destinasjon i RAM 401 spesifiseres. Et av Blitter-kontrollregistrene 63 lastes med åtte biter benyttes som logisk funksjon MINTERM-velg-linjer. Setting av disse åtte biter spesifiserer en av 256 mulige logiske operasjoner som skal utføres på data fra tre kilder under B litter-operasj onen.
Blitter 67 er uhyre effektiv for å utføre bitplananimasjon da den logisk kan kombinere databiter fra separate bildekilder under en dataflytting. For eksempel kan det være ønskelig å flytte et forhåndstegnet bilde av en bil foran et forhåndstegnet bilde av en bygning. For å animere (flytte) bilen er det første skritt å ta vare på et vindu som inneholder bakgrunnsbildet hvor bilen skal plasseres. Data som inneholder det fullstendige omriss (maske) for bilen, frembringes et eller annet sted i hukommelsen og kan betegnes som kilde A, dataene som inneholder et av bitplanene som definerer fargen på bilobjektet selv, kan betegnes som kilde B, og dataene som inneholder bakgrunnen (eller bygning), kan betegnes som kilde C. Deretter blir en midler-tidig plassering i RAM 401 designert destinasjonen for bakgrunnen til kilde C, hvor bilen skal plasseres. Den logiske operasjon AC velges, noe som vil ta vare på bakgrunnen ved å kopiere den til en ny destinasjon ved alle punkter hvor omrissmasken for bilen (A) og bakgrunnen (C) finnes på samme sted. Det neste trinn er å kopiere bilen på dens første sted. Destinasjonen valgt denne gang er den samme som datablokken som inneholder bakgrunnen (C). AB + AC-operasjonen benyttes for å angi at vinduet nå vil inneholde bil-dataene (B) overalt hvor bilomriss-masken (A) forekommer, men vil ta vare på den tidligere bakgrunnsdata (C) overalt hvor bilens omrissmaske ikke forekommer (A). Hvis bilen allerede var til stede ett eller annet sted på bildet, må det gamle bakgrunnsbilde som bilen dekket forut for flyttingen, gjenskapes på det sted hvorfra bilen ble flyttet før bakgrunnen som deretter vil ble dekket, kopieres. Bakgrunnen (C) er destinasjonen og operasjonen AT benyttes hvor kilden T er den midlertidige destinasjon som bakgrunnen hvor bilen tidligere var plassert, ble lagret under AC-operasjonen. Denne logiske operasjon AT erstatter bakgrunnen (C) med den bevarte bakgrunn alle steder hvor masken (A) for bilens omriss forekom. Hvis dataene og masken flyttes til et nytt sted og de logiske operasjoner ovenfor gjentas kontinuerlig av Blitter, vil bilen synes å bevege seg over bakgrunnen. Den logiske operasjon hvorved det nye bilde skapes ved bruk av en logisk operasjon AB + AC, blir kalt "cookie cut"-operasjonen.
I det nettopp beskrevne eksempel må bilbildet (B) og bilomrissmasken (A) flyttes til en ny posisjon hver gang før bakgrunnen tas vare på (AC) og bilen plasseres (AB + AC). Flyttingen av et bilde (B) over bakgrunnen (C) kan få kanten av bildet til å havne på enhver bitposisjon i et 16 bits ord. Dette skaper et behov for en høyhastighets-flyttekapasitet i Blitter 67. Følgelig inneholder Blitter en trommelskifter 81 som benyttes med både A- og B-data-kilderegistrene 77 og 79. Skifteren 81 kan flytte kilder A og B fra null til 15 biter. Den er en sann trommelskifter ved at større flyttinger ikke tar lenger tid enn små flyttinger, slik som de ville om de ble utført av mikroprosessor 402. Selv om 16 bildeelementer må adresseres samtidig etter som hvert ord i et bitplan leses inn, tillater således skifteren 81 flytting av bilder eller bilde-elementgrenser. Graden av skift for hver av kildene blir satt ved å laste fire biter i Blitter-kontrollregistrene 63 for A-kilden og fire biter for B-kilden.
Blitter 67 kan maske dataord lengst til venstre og lengst til høyre i det valgte vindu fra hver horisontal linje. Maskeregistre 83 og 85 er anordnet for de første og siste ord på hver horisontal linje av Blitter-dataene for kilde A. Dette tillater logiske operasjoner på bitgrenser fra både venstre og høyre kant av et rektangulært område. Bare når det er 1 bit lastet inn i den første ordmaske, vil denne bit fra det første ord til kilde A benyttes i de logiske operasjoner utført av Blitter. På lignende måte vil den siste ordmaske 85 maske ordet lengst til høyre i kilde A-dataene. Det er således mulig å utføre operasjoner på en rektangulær datablokk hvis venstre og høyre kanter forekommer mellom ordgrensene. Hvis vinduet bare er ett ord bredt, overlapper de første og siste ordmasker og biter fra kilde A-ordet vil benyttes bare i bit-posisjoner hvor begge masker inneholder enere.
Blitteren kan detektere hvorvidt noen "1 "-biter forekommer som resultat av en logisk operasjon på kildedata. Dette trekk kan benyttes til maskinvare-assistert deteksjon av en kollisjon mellom to bilder. Operasjonen AB kan ut-føres, og hvis bildene A og B ikke overlapper, vil det bli satt et null-flagg i et Blitter-DMA-statusregister. Når Blitter bare foretar null-deteksjon og ikke brukes til å generere et destinasjonsbilde, kan tids- og bussykler spares ved å forby destinasjonskanalen ved ikke å sette den korrekte bit i Blitter-kontroll-registrene 63.
I tillegg til å kopiere data kan Blitter 67 samtidig utføre en fyllingsoperasjon under kopiering. En restriksjon på fyllingsoperasjonen krever at fyllings-området skal være definert av første uteksturerte tegningslinjer som bare inneholder ett bildeelement pr. linje for å angi grenser for fyllingen. En spesiell linjetegningsmode eksekvert av Blitter kan utføre denne linje-tegneoperasjon. Blitter kan tegne ordinære linjer med enhver vinkel og kan også benytte et mønster til de linjer den tegner. En bit settes i Blitter-kontrollregistrene 63 for å angi at Blitter skal arbeide i linjetegnemoden. For å sikre at linjene som tegnes er ett bildeelement brede, slik det er nødvendig for en etterfølgende områdefyIling, må en annen bit settes i Blitter-kontrollregisteret,63 for å designere en enkelt bit pr. horisontal linje. Kilden A og kilden C benyttes i samband med Blitter-DMA-kanalene for destinasjonen D. Kilde-A-registeret 77 for Blitter blir under sin linjetegnemode forhåndslastet med et 16 bits ord som inneholder 15 nuller og en enkelt "1" som den mest signifikante bit. Dette er den ene bit som initialt vil bli skiftet til den korrekte posisjon av verdien i A-skiftregisteret 93, deretter av linjetegnemaskinvaren senere i prosessen. De 16 biter i B-dataregisteret 77 benyttes til å angi linjens tekstur og forhåndslastes med alle enere for å frembringe hele linjer nødvendige hvis fyllingsmoden skal eksekveres deretter. Fire biter i et Blitter-kontrollregister 63 lastes med bitposisjonen i ordet hvor startbiten for linjen forekommer. Tre biter i et Blitter-kontrollregister 63 lastes med en verdi som velger en av åtte oktanter benyttet for linjetegning. De åtte oktanter benyttes for å dele et todimensjonalt kartesisk plan i åtte områder for å definere retningen av linjen med formål linjetegning. Blitter-størrelses-registeret benyttes til å kontrollere linjelengden og starter linjetegningen når data skrives på det. Ti biter angir høyden og tillater linjene å strekke seg inntil 1024 bildeelementer, mens seks biter som angir antallet ord i bredden, må alltid settes til to. Helningen av linjen defineres ved å laste forskjellen i bitposisjonen mellom start- og endepunktene av linjen i A-moduloregisteret (horisontal forandring) og B-moduloregisteret (vertikal forandring). Blitter-pekeregisteret 138 for kilde A benyttes som en akkumulator når det er i linje-moden. Pekeregistrene for kilden C og destinasjonen D må forhåndslastes med startadressen for den første horisontale linje. Moduloregistrene for C-kilde og D-destinasjonen blir begge forhåndslastet med bredden av bildeflaten som linjen tegnes på.
Blitter-kontrollregisteret 63 blir under en linjetegnemode alltid lastet med samme logiske funksjon minterm-velg-biter. Den logiske funksjons valgte Blitter-operasjon under linjetegnemode er flyttingen til destinasjonen for AC + ABC. Kilde A-dataregisteret 77 blir som beskrevet ovenfor lastet med bare én enkelt bit i dataordet, en én. Følgelig vil denne operasjon på bildefeltet (C) la de fleste biter i bitplanene uforandret fordi for minst 15 av de 16 biter i hver ord vil destinasjonen lastes med de eksisterende bitverdier i C-kildedataregisteret 89 (AC). Hvis linjetegningen skal etterfølges av en område-fylling, er det nødvendig med uteksturerte linjer, slik at B-kildedataregisteret 79 inneholder bare enere. Derfor blir det for den ene bit pr. ord i A-kilde-registeret 77 som er en én, bitverdien inneholdt i C-kildedataregisteret 89 bli invertert (ABC). For hver etterfølgende horisontale linje flytter Blitter-maskinvaren automatisk "1" til den korrekte posisjon i dataordene som lagres i A-kildedataregisteret 77. Følgelig kan spesielle linjer med ett bildeelement på hver horisontal skannelinje tegnes av Blitter 67.
En fyllingsoperasjon kan utføres under andre Blitter-datakopierings-operasjoner. Forut for områdefyllingen blir først en Blitter-linjetegning utført for å skaffe to vertikale linjer, hver en bit bred, på skjermen. Fyllingsoperasjonen arbeider korrekt bare i den nedstigende mode (fra høyere hukommelsesadresser til lavere hukommelsesadresser). Bare én kilde og destinasjonen D er nødvendig. Pekerne for kilden og destinasjonen i pekeregistrene 138 bør settes til samme verdi som vil være adressen for det siste ord i det omgivende rektangel til vinduet i RAM 401, da operasjonen er utført i en nedstigende retning. Moduloregistrene for kilden og destinasjonen lastes med forskjellen mellom antallet ord i en horisontal linje av rektangelet som skal fylles og antallet ord pr. horisontal linje som tas opp i hukommelsen av bitplanene. Blitter-størrelsesregisteret blir deretter lastet med 10 biter som setter antallet vertikale linjer i bildevinduet og 6 biter som spesifiserer antallet ord i hver horisontal linje. Skriving til Blitter-størrelsesregisteret vil starte Blitterens operasjon. En fyllings-mente-inn-kontrollbit lastes inn i et Blitter-kontrollregister 63 for å angi startfyllingstilstanden som begynner ved kanten lengst til høyre (nedstigende mode) av hver linje. Hvis fyllings-mente-inn-biten settes lik en én, blir området i kildeområdet utenfor linjene fylt med enere og området innenfor linjene står tilbake med nuller. Hvis fyllings-mente-inn-biten er null, vil området mellom linjene fylles med enere. Blitter-kontrollregisteret 63 blir også fylt med biter som angir hvorvidt det skal benyttes en inklusiv fylling eller en eksklusiv fylling. Når den eksklusive fylling tillates, blir omrisset av forkanten til fyllingen (venstre side) utelukket fra det resulterende fylte område. Tillatelse av den eksklusive fyllingsmode benyttes til å frembringe skarpe, en-piksels vertekser.
Fantomobjekter er grafiske objekter som kan flyttes hurtig på skjermen uten å flytte deres bildeplassering i hukommelsen. Til sammenligning kan bittransformerte objekter ha en posisjon på bildeskjermen som er direkte forbundet med deres plassering i RAM 401, og for å flytte dem, må objektbildet lagret i hukommelsen slettes og skrives på ny på et annet sted. Dette kan ta lang tid. Fantomene benyttet i Amiga-systemet blir flyttet med ekstra maskinvare, slik som horisontale posisjonsregistre 343, vertikale posisjonsregistre 37, en horisontal posisjonskomparator 341, en vertikal posisjonskomparator 39 og fantomdatabufferregistre 345. For å flytte et fantom blir verdiene lagret i posisjonsregistre ganske enkelt forandret. De vertikale posisjonskretser er plassert på Agnus-brikken 410. Databufferne og de horisontale posisjonskretser er plassert på Denise-brikken 420.
Plasseringen av et fantom defineres ved å spesifisere koordinatene for dets øvre venstre bildeelement. I Amiga-systemet danner hvert fantom et rektangel på bildeflaten med en fast bredde på 16 bildeelementer (ett dataord) og en variabel høyde. Et fantom består derfor av en serie av 16 bits ord i et sammenhengende hukommelsesområde. For å frembringe en fantom-statusstruktur blir bitene i posisjonsregisteret for dette bestemte fantom (det står i alt åtte fantomer til rådighet) lastet med åtte biter som angir den vertikale startposisjon og åtte biter som spesifiserer den horisontale start posisjon for bildeelementet ved øvre venstre hjørne av fantomet. Deretter blir åtte biter i det vertikale stoppestedsregister 155 for dette bestemte fantom lastet med den vertikale stopposisjon for det bestemte fantom (også betegnet som et fantomkontrollregister). Det er en posisjon og et kontrollregister for hvert fantom eller i alt åtte for hele Amiga-systemet. Hvert fantom er også tilknyttet to dataregistre som inneholder bitene som definerer fargeregistrene benyttet for hver av 16 bildeelementer på en bestemt horisontal linje av fantomet. De to dataregistre for hvert fantom tillater bruk av to biter for å definere fargeregisteret forbundet med et bestemt bildeelement i fantomet. Følgelig has fire mulige registre. Når begge biter settes til null for et bestemt bildeelement, tolkes det som "gjennomsiktig" og fargen definert av data forbundet med et spillefantom eller fantom med lavere prioritet kan vises. Alle andre binærtallpunkter for ett av tre fargeregistre tilordnes denne bestemte fantom-DMA-kanal. De åtte fantomer benytter systemfargeregistre 17-19, 21-23, 25-27 og 29-31. For å velge farge organiseres de åtte fantomer i par, og hvert par benytter et av tre fargeregistre eller velger ellers den gjennomsiktige mode. For hver av de odde nummererte par inneholder det forbundne kontrollregister en bit som kan settes for å knytte et odde og et like nummerert fantom for å pare dataene for begge fantomene i farge-tolkningen. De to fantomer vil være i stand til uavhengig bevegelse. Hvis imidlertid kantene overlapper hverandre på et bestemt bildeelementsted, er et større fargeutvalg mulig, fordi alle fire bitene da benyttes til å velge et av 16 fargeregistre.
Hukommelsesadressen for dataene som definerer hvert fantom, må skrives
inn i de riktige pekeregistre 138 under det vertikale slukkeintervall før første visning av fantomet. Normalt lastes fantompekeregistrene under det vertikale slukkeintervall av Copper 47. Verdiene i fantompekeregistrene er dynamiske og skrives opp ved bruk av addereren 137 og peker først til hukommelsesadressen som inneholder startdataene som skal lastes inn i posisjonsregisteret, deretter den neste adresse som inneholder vertikale stoppedata som skal lastes inn i fantom-(vertikalt stopp-) register 155, deretter de følgende adresser som inneholder par av dataord som spesifiserer farge-valginformasjon som er nødvendig for hver horisontal linje av fantomet. Etter dataordene som beskriver fargevalget i siste horisontale linje i fantomet angir to dataord neste bruk av dette fantom og omfatter start- og stoppdata for gjenbruk av fantomet. Det siste ordpar inneholder alle nuller hvis den
bestemte fantomprosessor skal benyttes bare en gang vertikalt i det viste delbilde. Under det vertikale slukkeintervall må fantompekerne skrives på ny i pekeregistrene. Videostråletelleren 117 inneholder en telling som angir det nåværende sted for videostrålen som frembringer bildet. Den vertikale fantomposisjonskomparator 39 og den horisontale posisjonskomparator 341 sammenligner verdien for stråletelleren med verdien for startposisjonen i fantomposisjonsregistrene 153 og 343. Skriving i fantomposisjons- og kontrollregistrene forbyr den horisontale komparatorkrets 341. Dette hindrer dataregistrene 345 i å sende utdata til serialisererne 347 og til fantombussen 349. Hvis strålen har nådd den horisontale linje hvor det øverste bildeelement av fantomet skal forekomme, får den vertikale posisjonskomparator 39 fantom-DMA-kontrolleren 41 til å danne dataregistre 345 for dette lastede fantom, noe som tillater horisontalkomparatoren 341. Dette tillater utgang av serialisererne 369 for dette fantom til fantombussen når komparator 341 angir at den horisontale startposisjon er blitt nådd. Hver av de 16 bitene til et fantomdataord blir individuelt sendt til fargevalgkretsen på det tidspunkt da bildeelementet assosiert med denne bit vises på skjermen. Hver parallell-til-seriell-omformer 369 begynner å skifte bitene ut av omformeren, med den mest signifikante bit først. Skiftet skjer bare én gang i løpet av tidspunktet for hvert lavoppløsningspiksel og fortsetter inntil alle 16 bitene er blitt over-ført til fantombussen 349. Fantombussen går til prioritetskretsen 337 for å etablere prioriteten mellom fantomene og spillefeltene ved valg av et fargeregister. Fantom-DMA-kanalen undersøker innholdet til fantomposisjons- og kontrollregistrene for å bestemme hvor mange linjer av fantomdata som skal leses inn med to dataord innlest for hver horisontal skannelinje som forekommer under et horisontalt slukkeintervall. Innlesning og lagring av hver horisontal skannelinje skjer under et horisontalt slukkeintervall. Når dataordene leses inn og skrives i dataregistrene, aktiverer dette de horisontale fantomkomparatorer 341 og tillater dem å starte utleveringen av fantomdata til skjermen straks den horisontale stråletellingsverdi svarer til verdien lagret i det horisontale fantomposisjonsregister 343. Når den vertikale posisjon av stråletelleren er lik den vertikale stoppverdi inneholdt i fantom-kontrollregisteret, vil de to neste ord adressert av fantompekeregistrene og innlest fra hukommelsen, bli skrevet inn i fantomposisjons- og kontroll-registrene istedenfor å bli sendt til dataregistrene 345. Disse ord blir tolket av maskinvaren på nøyaktig den samme måte som de opprinnelige ord som først ble lastet i posisjons- og kontrollregistrene. Ved å laste posisjonsregisteret med en vertikal startposisjon som er høyere enn den nåværende stråleposisjon, kan fantomet brukes på ny under det samme bildefelt.
Et fantom generert på den ovenfor beskrevne måte kan flyttes ved ganske enkelt å forandre den vertikale og horisontale startposisjon og den vertikale stopposisjon lastet inn i fantomposisjons- og kontrollregistrene. Hvis disse posisjonsdata forandres før fantomet tegnes på ny, vil fantomet dukke opp i en ny posisjon og vil synes å være i bevegelse. Vanligvis er den vertikale slukkeperiode det beste tidspunkt for å forandre posisjonen av fantomet. Hver fantom-DMA-kanal kan brukes om igjen flere ganger i samme bildefelt. Den eneste restriksjon på gjenbruk av et fantom ved en lavere vertikal posisjon på bildeskjermen er at den siste linje for den foregående bruk av et fantom må være adskilt med minst én horisontal skannelinje fra topplinjen for den neste bruk av fantomet. Denne restriksjon er nødvendig fordi tiden for den horisontale skannelinje er nødvendig for å lese inn posisjons- og kontrollordene som definerer den neste bruk av fantomet. Etter som fantomene beveger seg på bildeskjermen, kan de kollidere med hverandre eller med ett av de to spillefelt. Amiga-systemet inneholder spesiell kollisjons-deteksjonslogikk 335 for å frembringe spesialeffekter eller for å holde et bevegelig objekt innenfor gitte grenser på skjermen. Innebygget fantom-videoprioritet sikrer at et fantom synes å være bak det andre når fantomene overlappes. Prioritetskretsen 337 gir det lavest nummererte fantom den høyeste prioritet og det høyest nummererte fantom den laveste prioritet. Når to fantomer overlapper, vil følgelig bildet definert av dataene for det lavest nummererte fantom vises, bortsett fra piksel-posisjoner som er designert som gjennomsiktige, i hvilket tilfelle de lavest prioriterte fantomdata kan benyttes til å generere et bilde.
Prioritetene til forskjellige objekter på skjermen kan styres for å gi illusjonen av tre dimensjoner. Bare for spillefeltprioritet og kollisjonsformål behandles fantomene som fire grupper på to fantomer hver. Den relative prioritet av fantomene til hverandre kan ikke endres. De vil alltid forekomme på skjermen med de lavest nummererte fantomer foran (idet de har høyere skjermprioritet enn) de høyere nummererte fantomer. Denne prioritet er viret i display-prioritetslogikken 337.1 bitplan-prioritetskontrollregistrene 355 kan syv biter lastes, som vil styre de relative videoprioriteter til spillefelt 1, spillefelt 2 og de fire par av fantomer. Tre biter benyttes til å bestemme den relative prioritet for spillefelt 1 med hensyn til fire par av fantomer. Tilsvarende benyttes ytterligere tre biter til å etablere prioritet mellom spillefelt 2 og fire par av fantomer. Imidlertid benyttes enda en bit for å bestemme hvilke av de to spillefelt som har høyere prioritet enn det annet. Dette tillater uvanlige visuelle effekter på skjermen. Det er således mulig å få fantomene til å dukke opp foran spillefelt 1, men å forsvinne bak spillefelt 2, mens spillefelt 2 i sin tur har lavere prioritet enn spillefelt 1 og ikke er synlig bak det.
Kollisjonskontrollregisteret 351 inneholder bitene som definerer visse karakteristikker for kollisjonsdeteksjon. Kollisjoner detekteres når to eller flere objekter prøver å overlappe i samme piksel-posisjon. Dette vil sette en bit i kollisjonsdatalagringsregisteret 353 hvis kollisjonskontrollregisteret angir at den spesielle overlapping vil forårsake en kollisjon. Femten biter i kollisjonslagringsregisteret benyttes til å angi hvorvidt noen av en rekke typer overlappinger har funnet sted: f.eks. fra ett fantom til et annet fantom, fra like bitplan til odde bitplan, fra like bitplan til et bestemt fantom eller fra odde bitplan til et bestemt fantom. Kollisjonskontrollregisteret rommer biter som spesifiserer hvorvidt de odde nummererte fantomer eller spesifikke bitplan skal inkluderes eller ekskluderes fra kollisjonsdeteksjon. Videre spesifiserer andre biter for bitene i hvert bitplan den sannhetsbetingelse som vil forårsake en kollisjon. Det er således mulig å registrere kollisjoner bare når et objekt kolliderer med noe som har en bestemt farge.
Den ovenstående beskrivelse av oppfinnelsen er ment å skulle illustrere en enkelt, foretrukket utførelse. Forandringer kan utføres på de heri beskrevne strukturer uten å avwike fra oppfinnelsens trekk og ramme.
Claims (32)
1. Personlig datamaskinsystem for å skaffe videoutgangssignaler til et rasterdisplay, hvor et bilde bestående av en rekke piksler samles på en skjerm i raster-displayet ved hjelp av en elektronstråle som skanner skjermen, hvor de visuelle karakteristikker for et piksel som skannes av elektronstrålen bestemmes av video-utgangssignalet skaffet av det personlige datamaskinsystem mens pikselet skannes, og hvor det personlige datamaskinsystem er,
karakterisert vedat det omfatter en sentralprosessoranordning (402) for å eksekvere programinstruksjoner,
en minneanordning (401) som innbefatter en rekke adresser for å lagre bitavbildede bildedata, idet de visuelle kjennetegn for et piksel defineres av bitavbildede bildedata lagret på minst en adresse svarende til pikselet,
en databussanordning (404) koblet til prosessoranordningen (402) og minneanordningen (401) for å overføre data,
en adressebussanordning (408) koblet til prosessoranordningen (402) og minneanordningen (401) for å overføre en adresse til minneanordningen (401),
en pekeranordning (138) koblet til adressebussanordningen (408) for å velge en rekke kildeadresser i minneanordningen (401) som en rekke kilder for ubehandlede, bitavbildede bildedata som skal overføres på databussanordningen (404), og for å velge en bestemmelsesstedsadresse i minneanordningen (401) som et bestemmelsessted for de behandlede, bitavbildede bildedata som skal overføres på databussanordningen (404),
en blitteranordning (67) eller blokkbildeoverføringsanordning koblet til databussanordningen (404) for å overføre en blokk av bitavbildede bildedata mellom blitteranordningen (67) og minneanordningen (401) og for å behandle blokken av bitavbildede bildedata, idet blitteranordningen (67) innbefatter en anordning for fra databussanordningen (404) å motta ubehandlede bitavbildede bildedata lagret i minneanordningen (401) på kildeadressene,
en logisk anordning (91) for å eksekvere en logisk operasjon på ubehandlede, bitavbildede bildedata som samtidig legges inn fra mottageranordningen (77,79,89) (77,79,89) for hver av kildeadressene, for å generere behandlede, bitavbildede bildedata og en anordning (93,113) for å skaffe de behandlede bitavbildede bildedata til databussanordningen (404) for lagring i minneanordningen (401) på bestemmelsesstedadressen, og en bildedisplayanordning for å motta bitavbildede bildedata lagret på minst en adresse svarende til et piksel og for å generere videoutgangssignaler som bestemmer de visuelle karakteristikker for pikselet.
2. Personlig datamaskinsystem i henhold til krav 1,
karakterisert vedat pekeradressen velger en første adresse, en annen adresse og en tredje adresse i minnet (401) som en første kilde, en annen kilde og en tredje kilde for ubehandlede, bitavbildede bildedata som skal overføres på databussanordningen (404).
3. Personlig datamaskinsystem i henhold til krav 2,
karakterisert vedat bildedisplayanordningen genererer videoutgangssignaler som omfatter RGB-fargesignaler.
4. Personlig datamaskinsystem i henhold til krav 2,
karakterisert vedat det dessuten omfatter en blitter-DMA-kontroll-anordning (69) for å generere en blitter-DMA-anmodning for å forhindre data fra å overføres mellom databussanordningen (404) og sentralprosessoranordningen (402) på tidspunkter da de bitavbildede bildedata overføres mellom blitteranordningen (67) og minneanordningen (401).
5. Personlig datamaskinsystem i henhold til krav 2, hvor bildet samles på skjermen av elektronstrålen som skanner en rekke horisontale linjer,karakterisert vedat det personlige datamaskinsystem dessuten omfatter en størrelsesanordning (63) for å angi bredden av et vindu av bitavbildede bildedata som behandles av blitteranordningen (67), idet vindusbredden er antallet adresser som svarer til hver horisontallinje i vinduet, en moduloregisteranordning (131) for å lagre en moduloverdi, idet moduloverdien svarer til forskjellen mellom vindusbreddetallet og antallet adresser svarende til hver horisontale linje i bildet for minst én av kildeadressene og bestemmelsesstedadressen, og hvor pekeranordningen (138) er innrettet til å velge en første adresse svarende til en horisontallinje av vinduet for minst én av kildeadressene og bestemmelsesstedsadressen, ved å addere moduloverdien til den siste adresse som svarer til en annen horisontallinje av vinduet.
6. Personlig datamaskinsystem i henhold til krav 5,
karakterisert vedat mottageranordningen (77,79,89) mottar et flerbits dataord av ubehandlede bitavbildede bildedata fra databussanordningen (404) for minst én av kildeadressene og at datamaskinsystemet dessuten omfatter en maskeanordning (83,85) koblet mellom mottageranordningen (77,79,89) og den logiske anordning (91), for å maskere et valgt antall av biter i det mottatte flerbits dataord for minst en av kildeadressene.
7. Personlig datamaskinsystem i henhold til krav 2,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekvere en skiftoperasjon på bitavbildede bildedata fra minst en av tre kildeadresser.
8. Personlig datamaskinsystem i henhold til krav 7,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skifttelleanordning (93,95) for å velge en skifttelling som bestemmer størrelsen av skiftet som skal eksekveres på bitavbildede bildedata fra minst en av tre kildeadresser, idet skiftanordningen (81) eksekverer den valgte skifttelling.
9.. Personlig datamaskinsystem i henhold til krav 2,
karakterisert vedat blitteranordningen (67) dessuten omfatter en anordning (93) for å velge en av en rekke logiske operasjoner, idet den logiske anordning (91) eksekverer den valgte logiske operasjon.
10. Personlig datamaskinsystem i henhold til krav 9,
karakterisert vedat anordningen (93) for å velge en av en rekke logiske operasjoner velger en av 256 mulige logiske operasjoner.
11. Personlig datamaskinsystem i henhold til krav 9,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekvere en skiftoperasjon på bitavbildede bildedata fra minst én av tre kildeadresser.
12. Personlig datamaskinsystem i henhold til krav 9,
hvor bildet innbefatter en bakgrunn og et objekt på bakgrunnen, hvor objektet har et omriss, og hvor objektet er animert med hensyn til bakgrunnen,karakterisert vedat minneanordningen (401) innbefatter minst én adresse A for å lagre data som definerer omrisset av objektet, minst én adresse C for å lagre bitavbildede bildedata som definerer de visuelle karakteristikker for bildet, minst én adresse B for å lagre bitavbildede bildedata som definerer de visuelle karakteristikker for objektet, og minst én adresse T for å lagre bitavbildede bildedata som
definerer de visuelle karakteristikker for minst ett parti av bakgrunnen dekket av objektet, idet
pekeranordningen (138) er innrettet til å velge adressen A som en første kilde, adressen C som den annen kilde og adressen T som et bestemmelsessted på et første tidspunkt, å velge adressen A som den første kilde, adressen B som den annen kilde, adressen C som den tredje kilde og adressen E som et bestemmelsessted på et annet tidspunkt og å velge adressen A som en første kilde, adressen T som en annen kilde og adressen C som et bestemmelsessted på et tredje tidspunkt, og velgeranordningen (93) er innrettet til å velge en logisk operasjon på det første tidspunkt og som på adressen T lagrer minst ett parti av bakgrunnen som skal dekkes av objektet, å velge en logisk operasjon på det annet tidspunkt som på adressen C lagrer bitavbildede bildedata som definerer de visuelle karakteristikker for objektet hvis omrisset av objektet foreligger på adressen C og som på adressen C lagrer bitavbildede bildedata som definerer de visuelle karakteristikker for bakgrunnen hvis omrisset av objektet foreligger på adressen C, og å velge en logisk operasjon på det tredje tidspunkt, og som på adressen C lagrer bitavbildede bildedata som definerer de visuelle karakteristikker for minst ett parti av bakgrunnen som skal dekkes av objektet.
13. Personlig datamaskinsystem i henhold til krav 12,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekvere en skiftoperasjon på bitavbildede bildedata fra minst én av en rekke kildeadresser.
14. Personlig datamaskinsystem i henhold til krav 1,
karakterisert vedat blitteranordningen (67) dessuten omfatter en anordning (93) for å velge en av en rekke logiske operasjoner, idet den logiske anordning (91) eksekverer den valgte logiske operasjon.
15. Personlig datamaskinsystem i henhold til krav 14,
karakterisert vedat det dessuten omfatter en blitter-DMA-kontroll-anordning (69) for å generere blitter-DMA-anmodning for å forhindre data fra å overføres mellom databussanordningen (404) og sentralprosessoranordningen (402) på tidspunkter da bitavbildede bildedata overføres mellom blitteranordningen (67) og minneanordningen (401).
16. Personlig datamaskinsystem i henhold til krav 14,
hvor bildet samles på skjermen av elektronstrålen som scanner en rekke horisontale linjer, og hvor det personlige datamaskinsystem dessuten er,
karakterisert vedat datamaskinsystemet omfatter
en størrelsesanordning (63) for å angi bredden av et vindu av bitavbildede bildedata som behandles av blitteranordningen (67), idet vindusbredden er antallet adresser som svarer til hver horisontal linje av vinduet, og
en moduloregisteranordning (131) koblet til pekeranordningen (138) for å lagre en moduloverdi, idet moduloverdien svarer til forskjellen mellom vindusbreddetallet og antall adresser som svarer til hver horisontal linje av bildet for minst én av en rekke kildeadresser og bestemmelsesstedsadressen, og
hvor pekeranordningen (138) er innrettet til å velge første adresse svarende til en horisontal linje av vinduet for minst én av en rekke kildeadresser og bestemmelsesstedsadressen ved å addere moduloverdien til en siste adresse svarende til en annen horisontal linje av vinduet.
17. Personlig datamaskinsystem i henhold til krav 14,
karakterisert vedat mottageranordningen (77,79,89) mottar et flerbitsdataord av ubehandlede, bitavbildede data fra databussanordningen (404) for minst én av en rekke kildeadresser, og at datamaskinsystemet dessuten omfatter en maskeanordning (83,85) koblet mellom mottageranordningen (77,79,89) og den logiske anordning (91) for å maskere valgt antall biter i det mottatte flerbitsdataord for minst én av en rekke kildeadresser.
18. Personlig datamaskinsystem i henhold til krav 14,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekevere en skiftoperasjon på bitavbildede bildedata fra minst én av en rekke kildeadresser.
19. Personlig datamaskinsystem i henhold til krav 13,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skifttelleanordning (93,95) for å velge en skifttelling som bestemmer størrelsen på skiftene som skal eksekveres på de bitavbildede bildedata fra minst én av en rekke kildeadresser, idet skiftanordningen (81) eksekverer den valgte skifttelling.
20. Personlig datamaskinsystem i henhold til krav 1,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekvere en skiftoperasjon på bitavbildede bildedata fra minst én av en rekke kildeadresser.
21. Personlig datamaskinsystem i henhold til krav 20,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skifttelleanordning (93,95) for å velge en skifttelling som bestemmer størrelsen av skiftet som skal eksekveres på bitavbildede bildedata fra minst én av en rekke kildeadresser, idet skiftanordningen (81) eksekverer den valgte skifttelling.
22. Personlig datamaskinsystem i henhold til krav 20,
karakterisert vedat det dessuten omfatter en blitter-DMA-kontroll-anordning (69) for å generere en blitter-DMA-anmodning for å forhindre data fra å overføres mellom databussanordningen (404) og sentralprosessoranordningen (402) på tidspunkter da bitavbildede bildedata overføres mellom blitteranordningen (67) og minneanordningen (401).
23. Personlig datamaskinsystem i henhold til krav 20,
karakterisert vedat mottageranordningen (77,79,89) mottar et flerbits dataord med ubehandlede bitavbildede bildedata fra databussanordningen (404) for minst en av en rekke kildeadresser og at datamaskinsystemet
omfatter en maskeanordning (83,85) koblet mellom mottageranordningen (77,79,89) og den logiske anordning (91) for å maskere et valgt antall biter i det mottatte multibits dataord for minst én av en rekke kildeadresser.
24. Personlig datamaskinsystem i henhold til krav 1,
karakterisert vedat det dessuten omfatter en blitter-DMA-kontroll-anordning (69) for å generere en blitter-DMA-anmodning for å forhindre data fra å overføres mellom databussanordningen (404) og sentralprosessoranordningen (402) på tidspunkter når de bitavbildede bildedata overføres mellom blitteranordningen (67) og minneanordningen (401).
25. Personlig datamaskinsystem i henhold til krav 24,
hvor bildet samles på skjermen av en elektronstråle som skanner en rekke horisontale linjer,karakterisert vedat datamaskinsystemet dessuten omfatter
en størrelsesanordning (63) for å angi bredden av et vindu av bitavbildede bildedata som behandles av blitteranordningen (67), idet vindusbredden er antallet adresser som svarer til hver horisontal linje i vinduet,
en moduloregisteranordning (131) koblet til pekeranordningen (138) for å lagre en moduloverdi, idet moduloverdien svarer til forskjellen mellom vindusbreddetallet og antallet adresser som svarer til hver horisontal linje av bildet for minst én av en rekke kildeadresser og bestemmelsesstedsadressen, og
hvor pekeranordningen (138) er innrettet til å velge en første adresse svarende til en horisontal linje av vinduet for minst én av en rekke kildeadresser og bestemmelses-stedsadresser ved å addere moduloverdien til en siste adresse svarende til en annen horisontal linje av vinduet.
26. Personlig datamaskinsystem i henhold til krav 24,
karakterisert vedat mottageranordningen (77,79,89) mottar et fierbits-dataord av ubehandlede bitavbildede data fra databussanordningen (404) for minst én av en rekke kildeadresser, og at datamaskinsystemet dessuten omfatter en maskeanordning (83,85) koblet mellom mottageranordningen (77,79,89) og den logiske anordning (91) for å maskere et valgt antall av biter i det mottatte flerbitsdataord for minst én av en rekke kildeadresser.
27. Personlig datamaskinsystem i henhold til krav 1,
karakterisert vedat bildedisplayanordningen genererer videoutgangssignaler som omfatter RGB-fargesignaler.
28. Personlig datamaskinsystem i henhold til krav 1,
hvor bildet samles på skjermen av en elektronstråle som skanner en rekke horisontale linjer,
karakterisert vedat datamaskinsystemet dessuten omfatter en størrelsesanordning (63) for å angi bredden av et vindu av bitavbildede bildedata som behandles av blitteranordningen (67), idet vindusbredden er antallet adresser som svarer til hver horisontale linje av vinduet,
en moduloregisteranordning (131) koblet til pekeranordningen (138) for å lagre en moduloverdi, idet moduloverdien svarer til forskjellen mellom vindusbreddetallet og antallet adresser som svarer til hver horisontale linje av bildet for minst én av en rekke kildeadresser og bestemmelsesstedadressen, og
at pekeranordningen (138) er innrettet til å velge en første adresse svarende til en horisontal linje i vinduet for minst én av en rekke kildeadresser og
bestemmelsesstedadressen, ved å addere moduloverdien til en siste adresse svarende til en annen horisontal linje av vinduet.
29. Personlig datamaskinsystem i henhold til krav 28,
karakterisert vedat mottageranordningen (77,79,89) mottar et flerbits dataord av ubehandlede, bitavbildede bildedata fra databussanordningen (404) fra minst én av en rekke kildeadresser, og at datamaskinsystemet dessuten omfatter en maskeanordning (83,85) koblet mellom mottageranordningen (77,79,89) og den logiske anordning (91) for å maskere et valgt antall biter i det mottatte flerbits dataord for minst én av en rekke kildeadresser.
30. Personlig datamaskinsystem i henhold til krav 1, hvor bildet innbefatter et område begrenset av to vertikale linjer,
karakterisert vedat pekeranordningen (13 8) er koblet til adressebussanordningen (408) for å velge en kildeadresse i minneanordningen (401) som en kilde for ubehandlede, bitavbildede data som skal overføres på databussanordningen (404), idet den i blitteranordningen (67) innbefattende anordning mottar ubehandlede, bitavbildede bildedata lagret i minneanordningen (401) på nevnte kildeadresse, og
en logisk anordning (91) for å eksekvere en logisk operasjon på ubehandlede, bitavbildede bildedata for å generere behandlede bitavbildede bildedata, idet den logiske anordning (91) innbefatter en logisk innfyllingsanordning for å detektere bitavbildede bildedata svarende til hver av to vertikale linjer ved behandling av bitavbildede bildedata svarende til en horisontal linje av bildet, og for å forandre bitavbildede bildedata svarende til området av den ene horisontale linje begrenset av to vertikale linjer for å fylle de begrensede område, og
en anordning for å skaffe de behandlede bitavbildede bildedata til databussanordningen (404) for lagring i minneanordningen (401) på bestemmelsesstedsadressen.
31. Personlig datamaskinsystem i henhold til krav 30,
karakterisert vedat blitteranordningen (67) dessuten omfatter en skift-anordning (81) for å eksekvere en skiftoperasjon på bitavbildede bildedata fra kilde-adressen.
32. Personlig datamaskinsystem i henhold til krav 30,
karakterisert vedat det dessuten omfatter en blitter-DMA-kontroll-anordning (69) for å generere en blitter-DMA-anmodning for å forhindre data fra å overføres mellom databussanordningen (404) og sentralprosessoranordningen (402) på tidspunkter da de bitavbildede bildedata overføres mellom blitteranordningen (67) og minneanordningen (401).
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
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 (3)
Publication Number | Publication Date |
---|---|
NO881207D0 NO881207D0 (no) | 1988-03-18 |
NO881207L NO881207L (no) | 1988-05-18 |
NO301913B1 true NO301913B1 (no) | 1997-12-22 |
Family
ID=25389792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NO881207A NO301913B1 (no) | 1986-07-18 | 1988-03-18 | Displaygeneratorkretser for personlig datamaskinsystem |
Country Status (11)
Country | Link |
---|---|
US (1) | US4874164A (no) |
EP (1) | EP0318517B1 (no) |
JP (1) | JP2961609B2 (no) |
KR (1) | KR960012990B1 (no) |
AU (1) | AU600759B2 (no) |
CA (1) | CA1283980C (no) |
DE (1) | DE3751720T2 (no) |
IL (1) | IL83203A (no) |
IN (1) | IN167924B (no) |
NO (1) | NO301913B1 (no) |
WO (1) | WO1988000490A1 (no) |
Families Citing this family (53)
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 |
KR950703188A (ko) * | 1993-06-30 | 1995-08-23 | 이리마지리 쇼우이찌로 | 화상 처리 장치 및 방법 및 화상 처리부를 갖고 있는 게임기(Image Processing Device and Method Therefor, and Game Machine Having Image Processing Part) |
CN1111464A (zh) * | 1993-06-30 | 1995-11-08 | 世嘉企业股份有限公司 | 图像处理装置及其方法和带图像处理装置的电子装置 |
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 |
JP2008517343A (ja) * | 2004-10-19 | 2008-05-22 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | アニメーション・ジャダー補償 |
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 |
CN110214349B (zh) * | 2017-01-25 | 2022-10-04 | 苹果公司 | 具有中心凹形显示系统的电子设备 |
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)
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 | 図形ぬりつぶし制御方法 |
DE3587458T2 (de) * | 1984-04-10 | 1994-03-24 | Ascii Corp | Videoanzeigesteuersystem. |
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 |
-
1986
- 1986-07-18 US US06/886,796 patent/US4874164A/en not_active Expired - Lifetime
-
1987
- 1987-07-14 AU AU79140/87A patent/AU600759B2/en not_active Ceased
- 1987-07-14 WO PCT/US1987/001627 patent/WO1988000490A1/en active IP Right Grant
- 1987-07-14 DE DE3751720T patent/DE3751720T2/de not_active Expired - Fee Related
- 1987-07-14 KR KR1019880700303A patent/KR960012990B1/ko not_active IP Right Cessation
- 1987-07-14 EP EP87905969A patent/EP0318517B1/en not_active Expired - Lifetime
- 1987-07-14 JP JP62505422A patent/JP2961609B2/ja not_active Expired - Fee Related
- 1987-07-15 IL IL83203A patent/IL83203A/xx unknown
- 1987-07-17 CA CA000542371A patent/CA1283980C/en not_active Expired - Lifetime
- 1987-07-17 IN IN556/CAL/87A patent/IN167924B/en unknown
-
1988
- 1988-03-18 NO NO881207A patent/NO301913B1/no unknown
Also Published As
Publication number | Publication date |
---|---|
AU7914087A (en) | 1988-02-10 |
IL83203A0 (en) | 1987-12-31 |
WO1988000490A1 (en) | 1988-01-28 |
NO881207L (no) | 1988-05-18 |
NO881207D0 (no) | 1988-03-18 |
JP2961609B2 (ja) | 1999-10-12 |
IL83203A (en) | 1992-06-21 |
DE3751720D1 (de) | 1996-04-04 |
KR960012990B1 (ko) | 1996-09-25 |
AU600759B2 (en) | 1990-08-23 |
KR880701575A (ko) | 1988-11-03 |
IN167924B (no) | 1991-01-12 |
JPH02503238A (ja) | 1990-10-04 |
DE3751720T2 (de) | 1997-02-13 |
EP0318517A1 (en) | 1989-06-07 |
US4874164A (en) | 1989-10-17 |
EP0318517B1 (en) | 1996-02-28 |
CA1283980C (en) | 1991-05-07 |
EP0318517A4 (en) | 1991-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NO301913B1 (no) | Displaygeneratorkretser for personlig datamaskinsystem | |
US5103499A (en) | Beam synchronized coprocessor | |
EP0023217B1 (en) | Data processing system for color graphics display | |
KR100417123B1 (ko) | 종방향-지향의디스플레이를위해화상을회전시키는하드웨어 | |
US4542376A (en) | System for electronically displaying portions of several different images on a CRT screen through respective prioritized viewports | |
US4725831A (en) | High-speed video graphics system and method for generating solid polygons on a raster display | |
US6181353B1 (en) | On-screen display device using horizontal scan line memories | |
EP0197412B1 (en) | Variable access frame buffer memory | |
EP0279229B1 (en) | A graphics display system | |
US4903217A (en) | Frame buffer architecture capable of accessing a pixel aligned M by N array of pixels on the screen of an attached monitor | |
JP2517123Y2 (ja) | メモリ装置 | |
EP0279225B1 (en) | Reconfigurable counters for addressing in graphics display systems | |
JP2001195230A (ja) | 描画処理システム、及び描画演算を行う半導体集積回路 | |
US4616220A (en) | Graphics display comparator for multiple bit plane graphics controller | |
US5086295A (en) | Apparatus for increasing color and spatial resolutions of a raster graphics system | |
US5321805A (en) | Raster graphics engine for producing graphics on a display | |
US4626839A (en) | Programmable video display generator | |
US5309552A (en) | Programmable multi-format display controller | |
WO1985002049A1 (en) | Method of electronically moving portions of several different images on a crt screen | |
EP0216886B1 (en) | Video display apparatus | |
US5699498A (en) | Technique and apparatus for color expansion into a non-aligned 24 bit RGB color-space format | |
KR960003072B1 (ko) | 폰트 데이타 처리장치 | |
US4623147A (en) | Process for displaying a plurality of objects on a video screen | |
EP0279231B1 (en) | A graphics function controller for a high performance video display system | |
JPH03164872A (ja) | 図形処理システム |