10:REM Christmas tree plot Dec 2024
   20:INPUT "Colour? (Y/N) ";C$
   30:IF C$<>"Y"AND C$<>"N"THEN 20
   40:C=C$="Y"
   50:WAIT 0:PRINT "Merry Christmas!":WAIT
  100:GRAPH
  110:CSIZE 7
  120:GLCURSOR (0,-42):SORGN :COLOR 3*C:LPRINT "M r y"
  130:GLCURSOR (0,0):COLOR 2*C:LPRINT " e r"
  140:CSIZE 4
  150:GLCURSOR (0,-42):SORGN :LPRINT "C r s m s"
  160:GLCURSOR (0,0):COLOR 3*C:LPRINT " h i t a"
  200:REM Tree
  210:GLCURSOR (108,-320):SORGN
  220:REM Pot
  230:COLOR 0*C
  240:LINE (-20,25)-(20,25)-(20,30)-(-20,30)-(-20,25)
  250:LINE -(-15,0)-(15,0)-(20,25)
  260:REM Main trunk
  270:X=0:Y=30:A=0:L=270:W=3:O=0
  280:GOSUB "BRANCH"
  290:REM Layered branches
  300:FOR I=0TO 6
  310:Y=52+I*34
  320:L=(7-I)*17
  330:W=L/50+2
  340:O=INT ((8-I)/2)
  350:FOR J=-1TO 1STEP 2
  360:A=65*J
  370:GOSUB "BRANCH"
  380:NEXT J
  390:NEXT I
  400:REM Message
  410:GLCURSOR (-108,-24):SORGN :TEXT :COLOR 0*C
  420:CSIZE 2:LPRINT " Best wishes from":LF 1
  430:CSIZE 4:LPRINT "Ben Ryves":LF 1
  440:END
 1000:"BRANCH"
 1010:REM Branch
 1020:COLOR 0*C
 1030:LINE (X,Y)-(X+SIN (A)*L,Y+COS (A)*L)
 1040:REM Leaves
 1050:COLOR 2*C
 1060:FOR B=0TO LSTEP 4
 1070:LB=((L-B)/L*2+1)*W
 1080:XB=X+SIN (A)*B
 1090:YB=Y+COS (A)*B
 1100:FOR S=-1TO 1STEP 2
 1110:LINE (XB,YB)-(XB+SIN (A+60*S)*LB,YB+COS (A+60*S)*LB)
 1120:NEXT S
 1130:NEXT B
 1140:REM Ornaments
 1150:IF O=0RETURN
 1160:FOR B=0TO O-1
 1170:V=(.9-(B/O)*.9)*L
 1180:XO=X+SIN (A)*V
 1190:YO=Y+COS (A)*V
 1200:GLCURSOR (XO,YO)
 1210:YO=YO-18
 1220:FOR BO=1TO 2
 1230:COLOR (BO*2-1)*C
 1240:FOR BA=0TO 360*BOSTEP 121.5*BO-99
 1250:LINE -(XO+SIN (BA)*7,YO+COS (BA)*7)
 1260:NEXT BA
 1270:NEXT BO
 1280:NEXT B
 1290:RETURN