420 CALL -3288:FC = FC +1:BL = FL(J):G = FL:FL = J:FL(J) = G:BC = BC -1:J = BL:NN = NN +1: ON BC >0 GOTO 330
430 TEXT : HOME : PRINT "ALL BRANCHES WERE PROCESSED":EX = 0
440 PRINT : PRINT "1. VIEW TREE": PRINT "2. SAVE TREE AND EXIT": PRINT "3. EXIT": IF EX THEN PRINT "4. RESUME DRAWING TREE."
450 VTAB (8): GET G$: ON G$ < >"1" AND G$ < >"2" AND G$ < >"3" AND NOT (G$ = "4" AND EX) GOTO 450: IF G$ = "1" THEN POKE -16304,0: POKE -16302,0: GET G$: TEXT : GOTO 450
460 ON G$ = "4" GOTO 870: ON G$ = "2" GOSUB 550: HOME : PRINT "FINISHED.": END
470 HOME : PRINT "DO YOU WISH THE TREE TO DRAW IN:"
480 PRINT : PRINT "1. FORWARD ORDER"
490 PRINT "2. REVERSE ORDER"
500 GET G$: ON G$ < >"1" AND G$ < >"2" GOTO 500
510 PRINT G$:RD = (G$ = "1"): RETURN
520 FOR J = V TO 23: HTAB 1: VTAB J: PRINT SPC( 40);: NEXT : HTAB 1: VTAB V: PRINT G$" ";: INVERSE : PRINT "("A"-"B")?";: NORMAL : PRINT
530 INPUT "ENTER VALUE->";R$:R = VAL(R$): ON R <A OR R >B OR LEFT$(R$,1) <"0" OR LEFT$(R$,1) >"9" GOTO 520
540 V = V +3: RETURN
550 ONERR GOTO 580
560 HOME : PRINT : PRINT "YOUR TREE WILL BE SAVED IN PICTURE": PRINT "FORMAT AS PIC.TREE": PRINT : PRINT "INSERT DISK TO SAVE ON AND PRESS RETURN."
580 POKE 216,0: CALL -3288: GOSUB 760: GOSUB 710: PRINT "PRESS (1) TO TRY AGAIN OR (2) TO EXIT"
590 CALL -3288: GET G$: ON G$ < >"1" AND G$ < >"2" GOTO 590: ON G$ = "1" GOTO 560: RETURN
600 G = FRE(0): RESTORE : HOME : PRINT "TREE SELECTION IS:": PRINT :M$ = "YOU SELECTED A TREE WITH A "
610 G = TK(0): GOSUB 690:M$ = M$ +F$ +" TREE TRUNK AND ": IF NOT CV THEN M$ = M$ +" COMPLETELY STRAIGHT BRANCHES"
620 G = CV: GOSUB 690: IF CV >0 THEN M$ = M$ +F$ +" BRANCHES"
630 G = GB: GOSUB 690: IF CV >0 THEN M$ = M$ +" WHICH CHANGE DIRECTION " +F$
640 G = NB: GOSUB 690:M$ = M$ +". BRANCHES ARE " +F$ +" AND GROW FOR A LENGTH OF " + STR$(LN) +" UNITS BEFORE STARTING A NEW ONE."
650 GOSUB 710
660 PRINT : PRINT "IS THIS TREE OKAY (Y/N)?";
670 GET G$:G = ASC(G$):G$ = CHR$(G -32 *(G >95)): ON G$ < >"Y" AND G$ < >"N" GOTO 670: PRINT G$
680 RETURN
690 F = 0: READ R: FOR J = 1 TO R: READ G$,A,B: IF G > = A AND G <B AND NOT F THEN F = J:F$ = G$
700 NEXT : RETURN
710 SK = 0:K = 39:EK = LEN(M$)
720 IF MID$ (M$,K,1) < >" " THEN K = K -1: GOTO 720
730 PRINT MID$ (M$,SK +1,K -SK):SK = K:K = K +39: IF K <EK THEN 720
740 PRINT MID$ (M$,SK +1,EK -SK)
750 RETURN
760 ER = PEEK(222): IF ER = 8 THEN M$ = "AN I/O ERROR OCCURRED. MAKE CERTAIN THAT YOUR DISK IS INSERTED IN THE DRIVE CORRECTLY AND THE DRIVE DOOR IS CLOSED.": GOTO 800
770 IF ER = 6 AND PEEK(48896) = 76 THEN PRINT CHR$(4)"PREFIX": INPUT PF$:M$ = "PATH NOT FOUND. PLEASE INSERT A DISK WITH THE PREFIX " +PF$: GOTO 800
780 IF ER = 9 THEN M$ = "YOUR DISK IS FULL. PLEASE INSERT A DISK THAT HAS ENOUGH ROOM TO SAVE A PICTURE FILE.": GOTO 800
790 HOME : TEXT : PRINT "UNEXPECTED ERROR NO. "ER" HAS OCCURRED": PRINT "IN LINE " PEEK(218) +256 * PEEK(219): END