Raster afbrydelse - Raster interrupt
En rasterafbrydelse (også kaldet en vandret blank afbrydelse ) er et afbrydesignal i et computersystem, der bruges til displaytiming. Det genereres normalt, men ikke altid, af et systems grafikchip, da scanningslinjerne i en ramme gøres klar til at blive sendt til skærmen til visning.
En sådan afbrydelse tilvejebringer en mekanisme til at ændre grafikregistre midt i billedet, så de har forskellige værdier over og under afbrydelsespunktet. Dette gør det muligt for et enkeltfarvet objekt at have flere, vandrette farvebånd, for eksempel eller for at en sprite kan omplaceres for at give illusionen om, at der er flere sprites, end et system understøtter. Begrænsningen er, at ændringer kun påvirker den del af displayet, der ligger under afbrydelsen. De tillader ikke flere farver eller flere sprites på en enkelt scanningslinje.
Systemer, der understøtter rasterafbrydelser
Flere populære hjemmecomputere og videospilkonsoller inkluderede grafikchips, der understøtter rasterafbrydelser eller havde funktioner, der kunne kombineres til at fungere som rasterafbrydelser.
Bally Astrocade (1977)
Atari 8-bit familie (ANTIC-chip, 1979)
Den ANTIC chip bruges af Atari 8-bit familien omfatter display list interrupts (DLIS), som udløses som skærmen bliver trukket. ANTIC-chippen i sig selv er betydeligt kraftig og iboende i stand til mange funktioner, som andre systemer kræver rasterafbrydelser for at duplikere. ANTIC kan blande flere grafiktilstande på skærmen, vise vandret og lodret overscan-grafik og finrulle udvalgte vandrette områder. DLI'er på Atari bruges typisk til at tilføje ekstra farve til skærmen og genbruge Player / Missile grafikelementer.
Commodore 64 (MOS Technology VIC-II chip, 1982)
C64's VIC-II har et fleksibelt rasterafbrydelsessystem. Rasterafbrydelser og CPU-intervention er nødvendige for at genbruge sprites på skærmen, blande grafiktilstande og selektivt rulle skærmregioner.
Nintendo Entertainment System (PPU-chip, 1983)
Den Nintendo Entertainment System 's PPU grafikchip understøtter ikke sande raster interrupts - en afbryder kan indstilles til at udløse under den lodrette tomme interval, men ikke for enhver vilkårlig scanning linje - i stedet krævede polling af en 'hit flag', der blev angivet ved første sprite blev trukket. Selvom tidlige spil som Super Mario Bros. , Castlevania og The Legend of Zelda lykkedes at producere effektiv split-screen-rulning med denne metode, er det CPU-intensivt. Nogle senere patroner indarbejdede MMC- kredsløb (mest fremtrædende Nintendos MMC3-chip), der holdt styr på PPU's adresse og datalinjer og genererede rasterafbrydelser.
MSX2 (Yamaha V9938, 1985)
MSX2-computere har en dedikeret Yamaha V9938 Video Display Processor (VDP), der ligesom NES understøtter 'lodrette blanke afbrydelser', men kræver afstemning for 'vandrette blanke afbrydelser'. Det blev almindeligt anvendt til at oprette splitskærme, blande flere videotilstande sammen på en skærm og for at øge antallet af unikke farver på skærmen ud over den officielle specifikation. Fremtrædende forbrugseksempler er Aleste- serien og Konamis Space Manbow .
Commodore Amiga (Kobberchip, 1985)
Amiga-computere inkluderer en brugerdefineret coprocessor kaldet Copper, der er dedikeret til service af rasterafbrydelser. Kobber kører et program med enkle instruktioner, der styrer det til at vente på en bestemt lodret scanningslinje og vandret stråleposition og derefter opdatere indholdet af et brugerdefineret chiphardwareregister. Dette bruges typisk til at ændre displayparametre, såsom blanding af displaytilstande, genbrug af sprites eller ændring af farveregistre, men kan også bruges til at udløse en CPU-afbrydelse.
Nintendo Game Boy (PPU-chip, 1989)
Den Game Boy 's PPU har støtte til fire raster interrupts: Det kan indstilles til aftrækkeren i begyndelsen af en bestemt scanline, i slutningen af scanlines (under vandret blanking ), i begyndelsen af alle scanlines, eller i begyndelsen af lodret blanking . Dens største ulempe er, at den samme afbryderhåndterer bruges til de første tre, hvilket kræver brug af "afsendelse" -kode, hvis der bruges mere end en betingelse.