home *** CD-ROM | disk | FTP | other *** search
/ Antic Magazine 1985 April / Antic_Magazine_1985_04_Antic.atr / splash4.act < prev   
Text File  |  2023-02-26  |  3KB  |  1 lines

  1. ;  SPLASH4¢;------------------------------------¢;  Gr7plus ¢; Paul Chabot  ¢;¢MODULE¢BYTE ARRAY mask=[64 16 4 1]¢CARD ARRAY adrow(160)¢¢PROC Clor(BYTE c)¢mask(3)=c:mask(2)=c LSH 2¢mask(1)=c LSH 4:mask(0)=c LSH 6¢RETURN¢¢PROC Dot(BYTE x,y)¢BYTE xb,xr¢BYTE ARRAY row¢  ,premask=[63 207 243 252]¢xb=x RSH 2:xr=x AND 3:row=adrow(y)¢row(xb)==& premask(xr) % mask(xr)¢RETURN¢¢PROC BLine(BYTE x1,y1,x2,y2)¢BYTE x,y,xf,yf,i¢INT a,b,t,dx,dy¢Dot(x1,y1):Dot(x2,y2)    ¢IF x2>x1 THEN dx=x2-x1:xf=0¢ELSE dx=x1-x2:xf=1 FI¢IF y2>y1 THEN dy=y2-y1:yf=0¢ELSE dy=y1-y2:yf=1 FI¢IF dx<2 AND dy<2 THEN RETURN FI¢x=x1:y=y1¢IF dx>dy THEN a=dy+dy:t=a-dx:b=t-dx¢  FOR i=2 TO dx DO ¢    IF xf=0 THEN x==+1 ELSE x==-1 FI¢    IF t<0 THEN t==+a¢    ELSE t==+b¢      IF yf=0 THEN y==+1 ELSE y==-1 FI¢    FI Dot(x,y)¢  OD¢ELSE a=dx+dx:t=a-dy:b=t-dy¢  FOR i=2 TO dy DO¢    IF yf=0 THEN y==+1 ELSE y==-1 FI¢    IF t<0 THEN t==+a¢    ELSE t==+b¢      IF xf=0 THEN x==+1 ELSE x==-1 FI¢    FI Dot(x,y)¢  OD ¢FI¢RETURN¢¢PROC Gr7plus()¢BYTE i¢BYTE ARRAY dl¢CARD sa=88,dlist=560¢Graphics(8):adrow(0)=sa¢FOR i=1 TO 159 DO¢  adrow(i)=adrow(i-1)+40¢OD¢dl=dlist:dl(3)=78:dl(99)=78¢FOR i=6 TO 98 DO dl(i)=14 OD¢FOR i=102 TO 166 DO dl(i)=14 OD¢RETURN¢;------------------------------------¢; COLOR SPLASH¢;¢MODULE¢BYTE cur=752,key=764,trow=656,tcol=657¢  ,x,y,s,c,i,j¢BYTE ARRAY creg=708¢  ,dfault=[54 26 194 0 80]¢¢PROC Splash()¢FOR i=0 TO 159 STEP s DO¢  BLine(x,y,i,0):BLine(x,y,i,159)¢  BLine(x,y,0,i):BLine(x,y,159,i)¢OD¢RETURN¢¢PROC IncStep()¢s==+1:IF s>16 THEN s=1 FI¢trow=1:tcol=26:PrintB(s):Print(" ")¢RETURN¢¢PROC IncColor()¢i=c:c==+1¢IF c>3 THEN c=0:i=4 FI¢Clor(c):i=creg(i) ¢trow=1:tcol=37:PrintB(c):Print(" ")¢trow=2:tcol=36:PrintB(i RSH 4):Print(" ")¢trow=3:tcol=36:PrintB(i & 14):Print(" ")¢RETURN¢¢PROC IncHue()¢IF c=0 THEN i=4 ELSE i=c-1 FI¢j=creg(i) RSH 4:j==+1¢IF j>15 THEN j=0 FI¢trow=2:tcol=36:PrintB(j):Print(" ")¢creg(i)=(j LSH 4)+(creg(i) & 14)¢RETURN¢¢PROC IncLum()¢IF c=0 THEN i=4 ELSE i=c-1 FI¢j=creg(i) & 14:j==+2¢IF j>15 THEN j=0 FI¢trow=3:tcol=36:PrintB(j):Print(" ")¢creg(i)=(creg(i) & 240)+j¢RETURN¢¢PROC Joystick()¢BYTE st,k¢DO trow=1:tcol=9¢  PrintC(x):Print(" , "):PrintB(y):Print(" ")¢  WHILE Stick(0)=15 DO¢    IF Strig(0)=0 THEN Splash() FI¢    IF key<255 THEN k=key:key=255¢      IF k=62 THEN IncStep()       ;S¢      ELSEIF k=18 THEN IncColor()  ;C¢      ELSEIF k=57 THEN IncHue()    ;H¢      ELSEIF k=0 THEN IncLum()     ;L¢      ELSEIF k=35 THEN RETURN      ;N¢      FI¢    FI¢  OD st=Stick(0)¢  IF st=7 AND x<159 THEN x==+1¢  ELSEIF st=11 AND x>0 THEN x==-1¢  ELSEIF st=13 AND y<159 THEN y==+1¢  ELSEIF st=14 AND y>0 THEN y==-1¢  FI¢OD¢RETURN¢¢PROC Setup()¢Gr7plus():cur=1¢FOR i=0 TO 4 DO creg(i)=dfault(i) OD¢PrintE("ááו≥Ã≡∮⌡≤áááááááצáסáכáIJáצáזááááááááá")¢PrintE("CENTER 80 , 60   [S]tep 7  [C]OLOR")¢PrintE("    [joystick]              [H]ue")¢Print("[trig]-SPLASH  [N]ew Screen [L]um")¢x=80:y=60:s=7:c=0:IncColor()¢RETURN¢¢PROC OpenScene()¢Setup():x=20:y=20:s=9:Splash()¢IncColor():x=50:y=110:s=7:Splash()¢IncColor():x=120:y=60:s=9:Splash()¢IncColor():x=80:y=130:s=9:Splash()¢IncColor():x=140:y=130:s=7:Splash()¢RETURN¢¢PROC Main()¢OpenScene():Joystick()¢DO Setup():Joystick() OD¢RETURN¢¢