; SPLASH 3›;------------------------------------›; Gr8›; Paul Chabot›;›MODULE›BYTE ARRAY mask=[128 64 32 16 8 4 2 1]›CARD ARRAY adrow(160)››PROC Clor(BYTE c)›BYTE i›FOR i=0 TO 7 DO › mask(7-i)=c:c==LSH 1›OD›RETURN››PROC Dot(CARD x,BYTE y)›BYTE xb,xr›BYTE ARRAY row› ,premask=[127 191 223 239 247 251 253 254]›xb=x RSH 3:xr=x AND 7:row=adrow(y)›row(xb)==& premask(xr) % mask(xr)›RETURN››PROC BLine(CARD x1,BYTE y1,CARD x2,BYTE y2)›BYTE y,xf,yf,j›CARD x,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 j=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 Gr8()›BYTE bor=710,i›CARD sa=88›Graphics(8):bor=18:adrow(0)=sa›FOR i=1 TO 159 DO› adrow(i)=adrow(i-1)+40›OD›RETURN›;------------------------------------›; Variant of SPLASH›;›MODULE›BYTE c1=709,c2=710,bor=712,cur=752› ,key=764,trow=656,tcol=657,y,s›CARD x››PROC Setup()›Gr8():c2=0:c1=14:cur=1:x=120:y=60:s=7›bor=16*Rand(16)+2›PrintE("  ÇÒ®¸        Ó Ð Ì Á Ó È          ")›PrintE("CENTER 120 , 60 STEP 7 ")›PrintE(" [joystick] [S] ")›RETURN››PROC Splash()›CARD i›bor=16*Rand(16)+2›FOR i=0 TO 319 STEP s DO› BLine(x,y,i,0):BLine(x,y,i,159)›OD›FOR i=0 TO 159 STEP s DO› BLine(x,y,0,i):BLine(x,y,319,i)›OD›RETURN››PROC IncStep()›s==+1:bor=16*Rand(16)+2›IF s>16 THEN s=1 FI›trow=1:tcol=25:PrintB(s):Print(" ")›RETURN››PROC Joystick()›BYTE st›trow=3:tcol=2›Print("[trigger] - SPLASH ")›DO trow=1:tcol=9:st=Stick(0)› PrintC(x):Print(" , "):PrintB(y):Print(" ")› WHILE Stick(0)=15 DO› IF Strig(0)=0 THEN RETURN FI› IF key<255 THEN key=255:IncStep() FI› OD st=Stick(0)› IF st=7 AND x<319 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 Main()›DO key=255:Setup()› DO Joystick():Splash()› trow=3:tcol=2› Print("[A]-Another [C]-Clear")› WHILE key=255 DO OD› IF key=18 THEN EXIT FI› key=255› OD›OD›RETURN››