{$A+,B-,D+,L+,N-,E-,O-,Q-,R-,S-,V-,G-,F-,I-,X-} {Borland Pascal 7.0} {$M 16384,0,655360} { File: HI_Worm.pas Version: 1.0 Date: 27-AUGUST-94 Author: John Howard jh ANIVGA v1.2 implementation of Wormhole from Bas van Gaalen. Demonstrates Pascal routines needed for 320x200x256x4. I have modified ANIVGA v1.2 to provide 320x240x256x4 (not shown here). The TeleGame (tm) software development kit (SDK) utilizes both modes. TeleGame SDK combines enhanced ANIVGA with a multi-user communication protocol and some utilities. The SDK provides a Turbo Pascal development system for VGA game developers. Release date is October 1. TeleGame (tm) products are available exclusively via: Howard International P.O. BOX 34633 North Kansas City, Missouri 64116 USA } program Hi_Worm; USES ANIVGA, {v1.2} CRT; const divd=128; astep=5; xst=3; yst=5; var sintab : array[0..449] of integer; stab,ctab : array[0..255] of integer; lstep : byte; procedure drawpolar(xo,yo,r,a : word; c : byte); var x,y : word; begin x:=160+xo+(r*sintab[90+a]) div (divd-20); y:=100+yo+(r*sintab[a]) div divd; PutPixel(x,y,c); { if (x<320) and (y<200) then mem[lvseg:320*y+x] := c; } end; VAR x,y,i,j : word; c : byte; ch : char; BEGIN {PROGRAM} InitGraph; Animate; {just to initialize pages, eventually placed sprites} for i:=0 to 255 do begin ctab[i]:=round(cos(pi*i/128)*60); stab[i]:=round(sin(pi*i/128)*45); end; for i:=0 to 449 do sintab[i]:=round(sin(2*pi*i/360)*divd); {clearscreen(page);} x:=30; y:=90; repeat c:=19; lstep:=2; j:=10; while j<220 do begin i:=0; while i<360 do begin drawpolar(ctab[(x+(200-j)) mod 255],stab[(y+(200-j)) mod 255],j,i,c); inc(i,astep); end; inc(j,lstep); if (j mod 3)=0 then begin inc(lstep); inc(c); if c>31 then c:=31; end; end; x:=xst+x mod 255; y:=yst+y mod 255; ANIMATE; until keypressed; while keypressed do ch:=readkey; CloseRoutines; END. {PROGRAM}