10 POKE 65497,0:HSCREEN2::HCLS2:HCOLOR 020 REM MOVE LINE 5010 TO THE BEGINNING OF THE PROGRAM IF THIS IS ONLY A SUBRUTINE30 REM AND USE A SMALLER NUMBER TO SAVE MEMORY IF YOU ARE NOT GOING  TO HAVE 900 "BRANCHES"5000 PI=6.285010 DIM H(900),V(900),A(900),L(900)5020 H(1)=16:V(1)=120:REM ROOT OF THE TREE5030 A(2)=.12:A(3)=.06:REM ANGLES OF BRANCHES5040 L(2)=60:L(3)=50:REM LENGTH OF BRANCHES5050 DL=.82:REM DELTA LENGHT OF BRANCH LEVELS5060 ML=6:REM HIGHEST BRANCH LEVEL5070 GOSUB 100005080 A$=INKEY$:IF A$="" GOTO 5080 ELSE CO=VAL(A$)5090 IF CO<5 THEN PALETTE 0,CO*10+RND(9) ELSE PALETTE 2,(CO-5)*10+RND(9)5100 GOTO 50809990 REM HERE STARTS THE ACTUAL SUBRUTINE10000 FOR C=2 TO 310010 H(C)=H(1)+L(C)*SIN(PI*A(C))10020 V(C)=V(1)-L(C)*COS(PI*A(C))10030 IF H(C)>319 OR H(C)<0 THEN 1006010040 IF V(C)>191 OR V(C)<0 THEN 1006010050 HLINE(H(1),V(1))-(H(C),V(C)),PSET10060 NEXT C10070 P=310080 CL=CL+110090 FOR C=P+1 TO P*2+1 STEP 210100 FOR CC=0 TO 110110 B=C+CC10120 PN=INT(B/2):REM ID OF PARENT BRANCH10130 L(B)=L(PN)*DL10140 A(B)=A(PN)+A(2+CC)10150 H(B)=H(PN)+L(B)*SIN(PI*A(B))10160 V(B)=V(PN)-L(B)*COS(PI*A(B))10170 HLINE(H(PN),V(PN))-(H(B),V(B)),PSET10180 NEXT CC10190 NEXT C10200 IF CL=ML THEN RETURN10210 P=P*2+110220 GOTO 10080