home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1985 June / Antic_Magazine_1985_06_Antic_Side_A.atr / misc1.act < prev    next >
Text File  |  2023-02-26  |  1KB  |  1 lines

  1. ; MISC1 (LISTING 2)¢¢MODULE:BYTE st:INT ARRAY ¢  jx=[1 1 1 1 1 2 2 2 1 0 0 0 1 1 1 1]¢  ,jy=[1 1 1 1 1 2 0 1 1 2 0 1 1 2 0 1]¢BYTE ARRAY b="                   "¢¢PROC Setjxjy(BYTE i)¢FOR i=0 TO 15 DO jx(i)==-1:jy(i)==-1 OD¢RETURN¢¢PROC Pb(BYTE i):b(0)=i:Print(b):RETURN¢¢PROC Wait(CARD w,j)¢FOR j=0 TO w DO w==+1:w==-1 OD RETURN¢¢; TRIG¢MODULE:BYTE ARRAY Si(91)¢¢PROC SetTrig(BYTE t INT y)¢FOR t=0 TO 90 DO y=(t*t)/45¢  y=(y*t)/5:y=100*t-y:y==/45:Si(t)=y¢OD RETURN¢¢INT FUNC sin(INT t,y):t==MOD 360¢IF t<91 THEN y=Si(t)¢ELSEIF t<181 THEN y=Si(180-t)¢ELSEIF t<271 THEN y=-Si(t-180)¢ELSE y=-Si(360-t) FI RETURN(y)¢¢INT FUNC cos(INT t,y):t==MOD 360¢IF t<91 THEN y=Si(90-t)¢ELSEIF t<181 THEN y=-Si(t-90)¢ELSEIF t<271 THEN y=-Si(270-t)¢ELSE y=Si(t-270) FI RETURN(y)¢¢; VECTOR ¢INT FUNC ABS(INT x)¢IF x<0 THEN x=-x FI RETURN(x)¢¢INT FUNC SQR(INT x):INT y¢IF x=0 THEN RETURN(0) FI:x=ABS(x):y=0¢DO y==+1:IF y*y+y>x THEN RETURN(y) FI OD¢¢INT FUNC Vdot(INT ARRAY v,w):INT x¢x=v(0)*w(0):x==+v(1)*w(1)¢x==+v(2)*w(2):RETURN(x)¢¢PROC Vprod(INT ARRAY v,w,u)¢u(0)=v(1)*w(2):u(0)==-v(2)*w(1)¢u(1)=v(2)*w(0):u(1)==-v(0)*w(2)¢u(2)=v(0)*w(1):u(2)==-v(1)*w(0)¢RETURN¢¢PROC Normize(INT ARRAY v):INT i,j,s¢i=ABS(v(0))¢j=ABS(v(1)):IF i<j THEN i=j FI¢j=ABS(v(2)):IF i<j THEN i=j FI¢IF i>100 THEN j=1+i/100¢  FOR i=0 TO 2 DO v(i)==/j OD¢FI¢FOR j=0 TO 1 DO s=Vdot(v,v):s=SQR(s)¢  FOR i=0 TO 2 DO v(i)=v(i)*128/s OD¢OD RETURN¢¢