{ Here is something that you can play with ... Shine FX - by Christopher J. C. inspired by lotsa product out there that use this kind of FX This code is public domain. Do whatever you want with it. A credit line for me would be nice ;^p } uses crt; const MaxRow=25;MaxColumn=80; var Buffer:array[1..MaxRow] of byte; XTable:array[1..MaxRow] of shortint; procedure Init_XTable; var cnt:byte; begin for cnt:=0 to MaxRow-1 do XTable[cnt+1]:=-cnt; end; procedure Shine(sx,sy,ex,ey:integer;c:byte); var x,y:integer; num,cnt:word; begin cnt:=0; for x:=sx to ex+ey-sy do begin for y:=sy to ey do if (XTable[y-sy+1]+x > sx-1) and (XTable[y-sy+1]+x < ex+1) then begin num:=(y-1)*160+(XTable[y-sy+1]+(x-1))*2+1; Buffer[y]:=mem[$b800:num]; {save background attr.} mem[$b800:num]:=c+Buffer[y] and 240; {highlight the spot} end; asm {retrace} mov dx,3dah; @r1: in al,dx; test al,8; jnz @r1 @r2: in al,dx; test al,8; jz @r2 end; for y:=sy to ey do if (XTable[y-sy+1]+x > sx-1) and (XTable[y-sy+1]+x < ex+1) then begin {restore background attr.} mem[$b800:(y-1)*160+(XTable[y-sy+1]+(x-1))*2+1]:=Buffer[y]; end; end; end; procedure ShowImage; var cnt:word; begin textbackground(0);window(25,7,55,18);clrscr;inc(windmax); for cnt:=1 to 7 do begin gotoxy(1,cnt+1);textcolor(11);write('Û'); gotoxy(31,cnt+4);textcolor(9);write('Û'); end; textcolor(11); gotoxy(1,1);write('ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ'); textcolor(3);write('Ü'); gotoxy(1,12);write('ß'); textcolor(9);write('ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß'); textbackground(3);gotoxy(1,9);textcolor(11);write('²'); gotoxy(1,10);write('±');gotoxy(1,11);write('°'); gotoxy(31,4);textcolor(9);write('²'); gotoxy(31,3);write('±');gotoxy(31,2);write('°'); window(26,8,54,17);clrscr; textcolor(11);gotoxy(9,2);write('Shine FX Test'); textcolor(8);gotoxy(6,3);write('ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ'); textcolor(12);gotoxy(12,4);write('Code by'); textcolor(1);gotoxy(7,5);write('Christopher J. C.'); textcolor(8);gotoxy(6,6);write('ÄÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÄ'); textcolor(11);gotoxy(3,7);write('Add a little shine to the'); gotoxy(5,8);write('usually boring screen'); textcolor(12);gotoxy(12,9);write('Enjoy!!'); window(1,1,80,25); end; begin Init_XTable; ShowImage; Shine(25,7,55,18,15); repeat until keypressed; end.