home *** CD-ROM | disk | FTP | other *** search
- {
- Hello mindenkinek !
-
- Azt mondták, hogy kell valamiféle cikket írnom a RASTER-ról, na jó egye fene !
- Mi is a RASTERsugár (elektronsugár) ??
- Amikor TV-t nézünk akkor ugye mozgóképet látunk, ez azért van mert egy ún.
- elektronsugár mindíg frissíti a képernyôn látott képet, mégpedig olyan gyor-
- san, hogy a szemünk nem tudja azt képkockánként felfogni (ez 25 képkocka/
- másodperc körül következik be). A TV-nél ez általában 50 Hz vagyis 50 kép/mp.
- Ez a monitoroknál ua. vagy legtöbbször magasabb (Herc,CGA=50 Hz,VGA=60 Hz,
- SVGA=60-120 Hz).
- Ez az elektronsugár a képernyô bal felsô sarkából indul és vízszintesen soron-
- ként halad lefelé. Mindíg balról jobbra halad, tehát ha egy soron végigér,
- akkor "átmászik" a következô sor elejére, ilyenkor nem frissít. Ez van akkor
- is ha az egész képernyôvel végez, csak akkor a jobb alsó sarokból kell vissza-
- térnie a bal felsô sarokba (ez jóval hoszabb idô).
- Hogy ez az egész miért jó nekünk ? Hát sokmindenért :
- - A régebbi monitorkártyáknál ha akkor állítjuk a színek RGB értékeit
- (RGB érték=egy szín színösszetevôinek Red[=Vörös],Green[=Zöld],Blue[=Kék],
- alapszínek aránya) amikor az elektronsugár a képernyôt frissíti, akkor a
- képernyô havazik !
- - A PC kompatibilis gépek sebessége eléggé különbözik, a RASTER visszafutásá-
- hoz való idôzítés aránylag hasonló sebességet ad programjainkban.
- - A megírt rutinunk sebességét is tesztelhetjük a RASTER segítségével.
- ( pl. Pascalban:
- Repeat
- WaitVertReTrace;
- ColorRGB(0,63,0,63);
- MyRoutine;
- ColorRGB(0,0,0,0);
- Until KeyPressed;
- ReadKey; )
- Ha a rutinunk egy függôleges visszafutásnál lassabb, akkor villogást fogunk
- látni, különben pedig a lila rész mutatja azt az idôt, ameddig a RASTERsugár
- eljutott a képernyôn a rutin futása alatt.
- - Scroll írása esetén megszüntethetjük annak remegését !
- (A képernyômemóriába való írást kell szinkronizálni egy csomó rutinnál a
- RASTER-hez)
- - Ha RASTERsoronként állítjuk egy szín RGB-jét, akkor többszáz színt is meg
- tudunk jeleníteni egyszerre.
- - Stb.
- Itt közlök egy rövid kis PASCAL rutint, amelyben megtalálható a vízszintes és
- függôleges RASTERvisszafutás figyelése.
-
- }
- Program Raster_Demo;
- Uses Crt;
- Var
- I:Word;
-
- Procedure ColorRGB(Number,Red,Green,Blue:Byte);Assembler;
- ASM
- MOV DX,3C8h
- MOV AL,Number
- OUT DX,AL
- INC DX
- MOV AL,Red
- OUT DX,AL
- MOV AL,Green
- OUT DX,AL
- MOV AL,Blue
- OUT DX,AL
- END;
-
- Procedure WaitVertReTrace;Assembler;
- ASM
- MOV DX,3DAh
- @J1:IN AL,DX
- TEST AL,8
- JNE @J1
- @J2:IN AL,DX
- TEST AL,8
- JE @J2
- END;
-
- Procedure WaitHorizReTrace;Assembler;
- ASM
- MOV DX,3DAh
- @J1:IN AL,DX
- TEST AL,1
- JNE @J1
- @J2:IN AL,DX
- TEST AL,1
- JE @J2
- END;
-
- Begin
- ClrScr;
- Repeat
- WaitVertReTrace; { Függôleges visszafutás kivárása }
- ColorRGB(0,63,63,63); { Fehér szín beállítása }
- For I:=1 to 10 do WaitHorizReTrace; { 10 vízszintes visszafutás kivárása }
- ColorRGB(0,0,0,63); { Kék szín beállítása }
- For I:=1 to 190 do WaitHorizReTrace;{ 190 vízszintes visszafutás kivárása }
- ColorRGB(0,63,0,63); { Lila szín beállítása }
- For I:=1 to 190 do WaitHorizReTrace;{ 190 vízszintes visszafutás kivárása }
- ColorRGB(0,63,63,63); { Fehér szín beállítása }
- Until KeyPressed;
- ReadKey;
- ColorRGB(0,0,0,0);
- End.
-
- { NOR OF XεεD }
-