C64 Software  <  SCA: The C64 Software Collection / SUGAIIS/ALT.BAS

  Run
1000 REMd2 BdYK
1010 PRINT""
1020 IFPEEK(16384)<>169THENPOKE56,64:CLR:LOAD"",8,1
1030 DIMX%(99,1),Y%(99,1),Y1%(99):YM=199
1040 F=1.005
1050 DZ=−360:Y=100:S=25:LC=2
1060 :
1070 I=0
1080 FORX=−450TO450STEPS
1090 : Z= DZ
1100 : X1=X*F↑Z:Y1=Y*F↑Z
1110 : Z= 0
1120 : X2=X*F↑Z:Y2=Y*F↑Z
1130 : d3 CUT
1140 : d3 UMR
1150 : X%(I,0)=X1:X%(I,1)=X2
1160 : Y%(I,0)=Y1:Y%(I,1)=Y2
1170 : I=I+1
1180 NEXT
1190 XA=I−1
1200 :
1210 :
1220 I=0:X=0
1230 FORZ=DZTO0STEPS*1.4
1240 : Y1=Y*F↑Z
1250 : d3 UMR
1260 : Y1%(I)=Y1
1270 : I=I+1
1280 NEXT
1290 YA=I−1
1300 :
1310 :
1320 :
1330 d1 d

1340 d0,0:d0,0:d1,12,7
1350 FORI=0TOXA
1360 : X1=X%(I,0):X2=X%(I,1)
1370 : Y1=Y%(I,0):Y2=Y%(I,1)
1380 : dX1,Y1,X2,Y2,LC
1390 : dX1,YM−Y1,X2,YM−Y2,LC
1400 NEXT
1410 :
1420 :
1430 FORI=0TOYA
1440 : d0,Y1%(I),159,Y1%(I),LC
1450 : d0,YM−Y1%(I),159,YM−Y1%(I),LC
1460 NEXT
1470 :
1480 :
1490 REMdo40,64,"",1,10,36
1500 :
1510 F=3:X=80:Y=100:A=dX(X,Y)
1520 d 
1530 GETA$:IFVAL(A$)THENF=VAL(A$)−1
1540 I=dQ:dX,Y,A
1550 IFI=1ANDY>0  THENY=Y−1
1560 IFI=3ANDX<159THENX=X+1
1570 IFI=5ANDY<199THENY=Y+1
1580 IFI=7ANDX>0  THENX=X−1
1590 IFI=128THENduX,Y,F
1600 IFA$=""THENd3 SAV
1610 IFA$=""THENd2 d

1620 A=dX(X,Y):dX,Y,1
1630 d) 1=2
1640 :
1650 :
1660 d1 CUT
1670 IFX1=X2THENd4
1680 M=(Y2−Y1)/(X2−X1)
1690 Q=−M*X1+Y1
1700 :
1710 IFX1>80THENX1=80:Y1=M*X1+Q
1720 IFX1<−79THENX1=−79:Y1=M*X1+Q
1730 IFX2>80THENX2=80:Y2=M*X2+Q
1740 IFX2<−79THENX2=−79:Y2=M*X2+Q
1750 IFY1>100THENY1=100:X1=(Y1−Q)/M
1760 IFY2>100THENY2=100:X2=(Y2−Q)/M
1770 d4
1780 :
1790 :
1800 d1 UMR
1810 X1=INT(X1+79.5):X2=INT(X2+79.5)
1820 Y1=INT(Y1+99.5):Y2=INT(Y2+99.5)
1830 d4
1840 :
1850 :
1860 d1 SAV
1870 LO=LO+1:OPEN1,8,2,""+CHR$(LO+64)+"":CMD1,"";:SYS16384
1880 PRINT#1,"";:CLOSE1
1890 d4
1900 ;
1910 ;
1920 d1 BdYK
1930 d0,0:dp2
1940 d 
1950 : READY:IFY=−1THENRESTORE:d)1=2
1960 : d1,11,Y:df2
1970 d)1=2
1980 :
1990 DATA14,6,4,2,10,7,5,13,3,-1
READY.