home *** CD-ROM | disk | FTP | other *** search
/ Rat's Nest 1 / ratsnest1.iso / incoming / pas_sors.arj / KRU$H01.PAS < prev    next >
Pascal/Delphi Source File  |  1996-12-22  |  15KB  |  466 lines

  1. program bullshit_graphics1;
  2.  
  3. {  This is version 0.01ß of BullShit_graphics1.       }
  4. {  It has been made by me to help all those trying    }
  5. {  to learn TP7. The code is pretty simple. Hope      }
  6. {  your computer supports SVGA at 800x600x256...      }
  7. {  Please do not distribute this program if you have  }
  8. {  altered it at all.                    -Kru$H 94    }
  9.  
  10.  
  11. uses crt, dos, graph;
  12. Var  size, limit1, heit, count2, count                       : Integer;
  13.      a, b, c,  gT, gM, diff, ally                            : Integer;
  14.      x1, y1, x2, y2, x3, y3, x4, y4                          : Word;
  15.      what                                                    : Char;
  16. Type DacPalette256 = array[0..255] of array[0..2] of Byte;
  17.  
  18. Const
  19.  
  20.   x = 400 ;
  21.   y = 300 ;
  22.  
  23.   car: Array[1..1028] Of Byte = (
  24.     31,0,31,0,
  25.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  26.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  27.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  28.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  29.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  30.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  31.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  32.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  33.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  34.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  35.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  36.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  37.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  38.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,43,0,0,
  39.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,43,0,0,0,0,
  40.     0,0,0,0,0,0,0,0,0,0,0,0,0,42,44,42,44,42,44,42,44,0,0,0,0,0,43,0,0,0,0,0,
  41.     0,0,0,0,0,0,0,0,0,0,0,0,42,44,42,44,42,43,42,43,42,43,0,0,0,43,0,0,0,0,0,0,
  42.     0,0,0,0,0,0,0,0,0,0,0,42,44,42,44,42,43,42,43,42,43,42,0,0,0,43,0,0,0,0,0,0,
  43.     0,0,0,0,0,0,0,0,0,0,42,44,42,44,42,43,42,43,42,43,42,43,42,0,42,0,0,0,0,0,0,0,
  44.     0,0,0,0,0,0,0,0,0,42,44,42,43,42,43,42,43,42,43,42,43,42,43,0,43,0,0,0,0,0,0,0,
  45.     0,0,0,0,0,44,43,14,43,44,42,43,42,43,42,43,42,43,42,43,42,43,42,43,42,43,0,0,0,0,0,0,
  46.     0,0,0,0,44,43,42,43,42,43,42,42,43,42,43,42,43,42,43,42,42,42,43,42,43,42,0,0,0,0,0,0,
  47.     0,0,0,42,43,42,42,12,12,12,42,42,42,43,42,43,42,42,42,42,12,12,12,43,42,43,42,0,0,0,0,0,
  48.     0,0,44,43,42,42,12,12,39,39,39,42,42,42,42,42,42,42,42,12,12,12,12,39,43,42,43,42,0,0,0,0,
  49.     0,42,43,42,42,12,12,12,39,41,39,39,42,42,42,42,42,42,12,12,12,39,41,41,39,43,42,43,0,0,0,0,
  50.     0,43,42,43,42,12,39,41,41,39,41,39,42,42,42,42,42,42,12,39,41,41,39,41,39,42,43,0,0,0,0,0,
  51.     0,0,0,0,0,39,41,39,41,41,41,39,0,0,0,0,0,0,39,41,39,41,41,39,39,0,0,0,0,0,0,0,
  52.     0,0,0,0,0,0,39,41,39,41,39,0,0,0,0,0,0,0,0,39,41,39,41,39,0,0,0,0,0,0,0,0,
  53.     0,0,0,0,0,0,0,39,39,39,0,0,0,0,0,0,0,0,0,0,39,39,39,0,0,0,0,0,0,0,0,0,
  54.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  55.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  56.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  57.   );
  58.  
  59.   Tank1: Array[1..1028] Of Byte = (
  60.     31,0,31,0,
  61.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  62.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  63.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  64.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  65.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  66.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  67.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  68.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  69.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  70.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  71.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  72.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  73.     0,0,0,0,0,0,0,0,0,0,29,29,29,29,28,28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  74.     0,0,0,0,0,0,0,0,0,29,29,28,28,28,28,25,25,26,26,26,26,26,26,26,26,26,26,26,26,0,0,0,
  75.     0,0,0,0,0,0,0,0,0,28,26,26,26,25,26,26,26,25,25,25,25,25,25,25,25,25,25,25,25,0,0,0,
  76.     0,0,0,0,0,0,0,0,26,28,26,27,26,25,26,27,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  77.     0,0,0,0,0,0,0,0,26,25,26,26,26,25,26,26,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  78.     0,0,0,29,29,29,29,28,28,25,25,25,25,27,27,27,27,27,27,28,28,29,29,29,29,29,29,28,28,0,0,0,
  79.     0,0,29,29,28,25,25,25,25,25,27,27,27,27,27,27,27,27,27,27,27,28,29,29,29,28,28,28,27,27,27,0,
  80.     0,28,28,28,25,27,27,27,27,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,0,
  81.     0,28,25,25,25,25,25,25,25,25,25,25,26,26,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0,
  82.     0,0,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,0,0,
  83.     0,0,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,0,0,0,
  84.     0,27,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,27,0,0,
  85.     0,0,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,23,27,0,0,0,
  86.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  87.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  88.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  89.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  90.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  91.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  92.     0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  93.   );
  94.  
  95.  
  96.   SVGA320x200x256       = 0;      { 320x200x256 Standard VGA }
  97.   SVGA640x400x256       = 1;      { 640x400x256 Svga         }
  98.   SVGA640x480x256       = 2;      { 640x480x256 Svga         }
  99.   SVGA800x600x256       = 3;      { 800x600x256 Svga         }
  100.   SVGA1024x768x256    = 4;    { 1024x768x256 Svga        }
  101.   TRANS_COPY_PIX       = 8;
  102.  
  103. procedure menu_system; forward;
  104.  
  105.  
  106. procedure SetVGAPalette256(PalBuf : DacPalette256);
  107. var
  108.   Reg : Registers;
  109. begin
  110.   reg.ax := $1012;
  111.   reg.bx := 0;
  112.   reg.cx := 256;
  113.   reg.es := Seg(PalBuf);
  114.   reg.dx := Ofs(PalBuf);
  115.   intr($10,reg);
  116. end;
  117.  
  118.  
  119.  
  120. procedure graphic_stuff;
  121. begin
  122. gM := detect;
  123. gT := 3;
  124. InitGraph (gM, GT, 'c:\kielet\tp70');
  125. setcolor(15);
  126. randomize;
  127. end;
  128.  
  129.  
  130. procedure moveA(startx,ally,endx,bkgr,txt : integer;letter : string);
  131. var curx:integer;
  132. begin
  133. setbkcolor(bkgr);
  134. setcolor(txt);
  135. if startx<endx then begin
  136.   for curx:=startx to endx do begin
  137.     outtextxy(curx,ally,letter);
  138.     if (curx>startx) and (curx<endx) then begin
  139.       setcolor(bkgr);
  140.       outtextxy(curx-1,ally,letter);
  141.       setcolor(txt);
  142.     end;
  143.   delay(0);
  144.   end;
  145. end;
  146.  
  147. if startx>endx then begin
  148.   for curx:=startx downto endx do begin
  149.     outtextxy(curx,ally,letter);
  150.     if (curx<startx) and (curx>endx) then begin
  151.       setcolor(bkgr);
  152.       outtextxy(curx+1,ally,letter);
  153.       setcolor(txt);
  154.     end;
  155.   delay(0);
  156.   end;
  157. end;
  158. end;
  159.  
  160.  
  161. procedure repeat_it(count, limit1, heit, diff : integer);
  162.  begin
  163.  count2:=0;
  164.  repeat
  165.    setcolor(count);
  166.    OutTextXY(diff+(count2*10+30), heit, '█');
  167.    count2:=count2+1;
  168.    count:=count+1;
  169.  until count=limit1;
  170.  end;
  171.  
  172.  
  173.  
  174. procedure SVGA_colorchart;
  175. begin
  176.  ClearViewPort;
  177.  count:=0;
  178.  setcolor(15);
  179.  settextjustify(lefttext,toptext);
  180.  OutTextXY ( 10, 20, 'SVGA 256 color chart');
  181.  OutTextXY ( 10, 40, 'Basic colors     [0-15]  :');
  182.  OutTextXY ( 10, 55, 'White to black  [16-31]  :');
  183.  OutTextXY ( 10, 70, 'SVGA colors    [32-256]  :');
  184.  repeat_it(count,  16,  40, 231); count:=16;
  185.  repeat_it(count,  32,  55, 220); count:=32;
  186.  repeat_it(count, 104,  85,   0); count:=104;
  187.  repeat_it(count, 176, 100,   0); count:=176;
  188.  repeat_it(count, 248, 115,   0); count:=248;
  189.  repeat_it(count, 257, 130,   0);
  190.  readkey;
  191. end;
  192.  
  193.  
  194. procedure glow_text;
  195.     procedure inout;
  196.     begin
  197.       setcolor(count);
  198.       OutTextXY(400,300,'This is only a test, please do not be alarmed.');
  199.       delay(50);
  200.     end;
  201. begin
  202.   ClearViewPort;
  203.   setTextJustify (centertext, centertext);
  204.   repeat
  205.     for count:=16 to 31 do inout;
  206.     for count:=31 downto 16 do inout;
  207.   until keypressed;
  208. end;
  209.  
  210.  
  211. procedure fades;
  212.  
  213.   procedure circle_it(count, a, b, limit1:integer);
  214.   begin
  215.   repeat
  216.    for count:=a to b do begin
  217.     setcolor(count);
  218.     circle(x,y,limit1);
  219.     limit1:=limit1-1;
  220.    end;
  221.    for count:=b downto a do begin
  222.     setcolor(count);
  223.     circle(x,y,limit1);
  224.     limit1:=limit1-1;
  225.    end;
  226.   until limit1<2;
  227.   end;
  228.  
  229.   procedure circle_fade;
  230.   begin
  231.   limit1:=500;
  232.   circle_it(count, 32, 65, limit1);
  233.   readkey;
  234.   end;
  235.  
  236.   procedure bw_circle_fade;
  237.   begin
  238.   limit1:=500;
  239.   Circle_It(count, 16, 31, limit1);
  240.   readkey;
  241.   end;
  242.  
  243.   procedure Wipe_fade;
  244.   var outX, outY     : Integer;
  245.   begin
  246.   Randomize;
  247.   setcolor(32+random(20));
  248.   X1      := 300+random(200);
  249.   Y1      := 200+random(200);
  250.   OutX    := 800;
  251.   OutY    := 0;
  252.    for OutY := OutY to 600 do Line ( X, Y, OutX, OutY);
  253.    for OutX := OutX downto 0 do Line ( X, Y, OutX, OutY);
  254.    for OutY := OutY downto 0 do Line ( X, Y, OutX, OutY);
  255.    for OutX := OutX to 800 do Line ( X, Y, OutX, OutY);
  256.   end;
  257.  
  258.  
  259.   procedure Wipe_fade2;
  260.   var  x2, y2  : Integer;
  261.   begin
  262.   ClearViewPort;
  263.   a:=31;
  264.   repeat
  265.   a:=a+1;
  266.   begin
  267.    x1:=100;  y1:=0;
  268.    x2:=700;  y2:=0;
  269.   repeat
  270.    y1:=y1+1; x2:=x2-1;
  271.    SetColor(a);  Line(x,y,x1,y1);
  272.    SetColor(0);  Line(x,y,x2,y2);
  273.   until y1=600;
  274.   repeat
  275.    x1:=x1+1; y2:=y2+1;
  276.    SetColor(a);  Line(x,y,x1,y1);
  277.    SetColor(0);  Line(x,y,x2,y2);
  278.   until x1=700;
  279.   repeat
  280.    y1:=y1-1; x2:=x2+1;
  281.    SetColor(a);  Line(x,y,x1,y1);
  282.    SetColor(0);  Line(x,y,x2,y2);
  283.   until y1=0;
  284.   repeat
  285.    x1:=x1-1; y2:=y2-1;
  286.    SetColor(a);  Line(x,y,x1,y1);
  287.    SetColor(0);  Line(x,y,x2,y2);
  288.   until x1=100;
  289.   end;
  290.   until keypressed;
  291.   end;
  292.  
  293.  
  294.   procedure dot_it;
  295.   begin
  296.    setcolor(count);
  297.    x1:= random(800);
  298.    y1:= random(600);
  299.    OutTextXY(x1,y1,'█');
  300.   end;
  301.  
  302.  
  303.  
  304.   procedure color_fade;
  305.   begin
  306.    repeat
  307.     for count:=32 to 60 do dot_it;
  308.     for count:=60 downto 32 do dot_it;
  309.    until keypressed;
  310.   end;
  311.  
  312.  
  313.   procedure bw_fade;
  314.   begin
  315.    repeat
  316.     for count:=16 to 31 do dot_it;
  317.     for count:=31 downto 16 do dot_it;
  318.    until keypressed;
  319.   end;
  320.  
  321.   procedure pixel_fade;
  322.   begin
  323.   repeat
  324.    PutPixel(random(800), random(600), 32+random(30));
  325.   until keypressed;
  326.   end;
  327.  
  328. begin
  329. ClearViewPort;
  330. setcolor(38);
  331. rectangle ( 97, 97,703,503);                  setcolor(36);
  332. rectangle (100,100,700,500);                  setcolor(42);
  333. OutTextXY (x,y-160,'Choose:');                setcolor(41);
  334. OutTextXY (x,y-120,'[A] : Color Fade');       setcolor(40);
  335. OutTextXY (x,y-100,'[B] : Gray Fade');        setcolor(39);
  336. OutTextXY  (x,y-80,'[C] : Wipe Fade');        setcolor(38);
  337. OutTextXY  (x,y-60,'[D] : Weird Wipe');       setcolor(37);
  338. OutTextXY  (x,y-40,'[E] : Circle Fade');      setcolor(36);
  339. OutTextXY  (x,y-20,'[F] : B/W Circle Fade');  setcolor(35);
  340. OutTextXY  (x,   y,'[G] : Pixel Fade');       setcolor(34);
  341. OutTextXY  (x,y+20,'[Q] : Quit to Main');     setcolor(33);
  342. OutTextXY (620,490,'Kru$H Productions');
  343. What := readkey;
  344. If (what='a') or (what='A') then color_fade;
  345. If (what='b') or (what='B') then bw_fade;
  346. If (what='c') or (what='C') then wipe_fade;
  347. If (what='d') or (what='D') then wipe_fade2;
  348. If (what='e') or (what='E') then circle_fade;
  349. If (what='f') or (what='F') then bw_circle_fade;
  350. If (what='g') or (what='G') then pixel_fade;
  351. if (what='q') or (what='Q') then menu_system else fades;
  352. end;
  353.  
  354.  
  355. procedure tiny_intro;
  356. begin
  357.   for count:= 0 to 20 do begin
  358.   ClearViewPort;
  359.   SetColor (32+(random(18)));
  360.   settextstyle(0,0,5);
  361.   OutTextXY ( x, y,'Kru$H Productions');
  362.   delay(10);
  363.   settextstyle(0,0,1);
  364.   end;
  365. for count:=5 downto 0 do begin
  366. setcolor(black);
  367. OutTextXY( x, y,'Kru$H Productions');
  368. settextstyle(0,0,count);
  369. setcolor(red);
  370. OutTextXY( x, y,'Kru$H Productions');
  371. delay(40);
  372. end;
  373. repeat
  374.   count:=count+1;
  375.   x1:=Random(800);
  376.   y1:=Random(600);
  377.   if getpixel(x1,y1)=black then putpixel(x1,y1,32+random(40));
  378. until count=3000;
  379. OutTextXY (x,y,'Kru$H Productions');
  380. readkey;
  381. end;
  382.  
  383.  
  384.  
  385. procedure move_it;
  386. begin
  387.      a:=800 ; b:=170 ; c:=470;
  388.      ClearViewPort;
  389.      moveA(a,b,172,0,33,'I');  moveA(0,c,428,0,62,'s');
  390.      moveA(a,b,180,0,34,'s');  moveA(0,c,420,0,60,'n');
  391.      moveA(a,b,196,0,35,'t');  moveA(0,c,412,0,58,'o');
  392.      moveA(a,b,204,0,36,'h');  moveA(0,c,404,0,56,'i');
  393.      moveA(a,b,212,0,37,'i');  moveA(0,c,396,0,54,'t');
  394.      moveA(a,b,220,0,38,'s');  moveA(0,c,388,0,52,'c');
  395.      moveA(a,b,236,0,39,'n');  moveA(0,c,380,0,50,'u');
  396.      moveA(a,b,244,0,40,'e');  moveA(0,c,372,0,48,'d');
  397.      moveA(a,b,252,0,41,'a');  moveA(0,c,364,0,46,'o');
  398.      moveA(a,b,260,0,42,'t');  moveA(0,c,356,0,44,'r');
  399.      moveA(a,b,276,0,43,'o');  moveA(0,c,348,0,42,'P');
  400.      moveA(a,b,284,0,44,'r');  moveA(0,c,332,0,40,'H');
  401.      moveA(a,b,300,0,45,'w');  moveA(0,c,324,0,38,'$');
  402.      moveA(a,b,308,0,46,'h');  moveA(0,c,316,0,36,'u');
  403.      moveA(a,b,316,0,47,'a');  moveA(0,c,308,0,34,'r');
  404.      moveA(a,b,324,0,48,'t');  moveA(0,c,300,0,32,'K');
  405.      moveA(a,b,340,0,49,'?');
  406.      readkey;
  407. end;
  408.  
  409.  
  410. procedure sprite_x2;
  411. begin
  412. ClearViewPort; y1:=800;
  413. for count:=0 to 1600 do begin
  414.   PutImage(y1, 350, car, 0);
  415.   PutImage(count div 2, 200, tank1, 0);
  416.   if x1<>1 then y1:=y1-1;
  417.   if y1=0 then x1:=1;
  418.   if x1=1 then y1:=y1+1;
  419. end;
  420. clearviewport;
  421. end;
  422.  
  423.  
  424.  
  425.  
  426.  
  427. procedure ending;
  428. begin
  429. ClearViewPort;
  430. SetTextStyle(0,0,2);
  431. OutTextXY(x,y,'The End');
  432. delay(250);
  433. end;
  434.  
  435.  
  436. procedure menu_system;
  437. begin
  438. clearviewport;
  439. settextjustify(1,1);                          setcolor(38);
  440. rectangle ( 97, 97,703,503);                  setcolor(36);
  441. rectangle (100,100,700,500);                  setcolor(42);
  442. OutTextXY (x,y-160,'Choose:');                setcolor(41);
  443. OutTextXY (x,y-120,'[A] : Tiny Intro');       setcolor(40);
  444. OutTextXY (x,y-100,'[B] : Svga Colorchart');  setcolor(39);
  445. OutTextXY  (x,y-80,'[C] : Text Glow');        setcolor(38);
  446. OutTextXY  (x,y-60,'[D] : Fades');            setcolor(37);
  447. OutTextXY  (x,y-40,'[E] : Sprite Movement');  setcolor(36);
  448. OutTextXY  (x,y-20,'[F] : Text Movement');    setcolor(35);
  449. OutTextXY  (x,y   ,'[Q] : Quit');             setcolor(34);
  450. OutTextXY (620,490,'Kru$H Productions');
  451. What := readkey;
  452. If (what='a') or (what='A') then tiny_intro;
  453. If (what='b') or (what='B') then SVGA_colorchart;
  454. If (what='c') or (what='C') then glow_text;
  455. If (what='d') or (what='D') then fades;
  456. if (what='e') or (what='E') then sprite_x2;
  457. if (what='f') or (what='F') then move_it;
  458. if (what='q') or (what='Q') then ending else menu_system;
  459. end;
  460.  
  461. begin
  462.   graphic_stuff;
  463.   menu_system;
  464.   closegraph;
  465. end.
  466.