0 ' THINK.IT (C)1985 Larry Groebe Permission is granted to distribute if line 0 is included. If you like this, & want the complete package, send $20 to Larry Groebe, 6001 Skillman #362, Dallas TX 75231 1 'CLUB 100 Library, 415/9391246 BBS, 937-5039 NEWSLETTER, 932-8856 VOICE 2 MAXFILES=1:CLEAR0,HIMEM:CLEARFRE(0)/2:DEFSTRA:DEFINTB-Z:X=0:Y=0:L=1:M=1:V=0:U=0:T=0:DIMP(200),N(200),A(200):E$=CHR$(27):R1$=E$+"p":R2$=E$+"q":ER$=E$+"K":IN$=E$+"L":L7$=E$+"T":U7$=E$+"U":P$="+":M$="-":AA=R1$+SPACE$(36) 3 I=2:MT=0:D$="LPT:":ES=1:LS=1:TI=4:NU$="n":W0=75:S=6 4 AR=CHR$(241)+CHR$(154):CC$="?>@A#(6$349THINK.IT> (C)1985 L.Groebe CV.1":ONERRORGOTO150 5 ONKEYGOSUB74,145,2,80,58,59,2,141:GOSUB136:CLS:GOSUB14:GOTO16 6 PRINT@0,R2$;:FORT=0TOS 7 IFASC(A(U))>MTHENU=N(U):GOTO7 8 N=ASC(A(U)):IFNNTHENB$=P$ 11 PRINT@T*40,SPACE$(Z)B$MID$(A(U),2,36-Z)ER$;:IFPOS(0)=37THENPRINTAR; 12 U=N(U) 13 NEXT:PRINTE$"J";:RETURN 14 PRINTU7$;:PRINT@280,R1$"Find View Prnt Copy Cut Menu";:LINE(239,63)-(233,56),1,BF:PRINT@289,CHR$(49-MT)E$"H"L7$:RETURN 15 IF MT THEN M=1 16 LT=1:U=1:GOSUB6:X=1:Y=0:Q=1 17 GOSUB131 18 KEYON:A=INKEY$:IFA=""THEN18 19 KEYOFF:IFA=P$THENGOSUB66:GOTO17 20 IFA=M$THENGOSUB73:GOTO17 21 B=INSTR(CC$,A):IF B=0THEN18 22 ONBGOSUB46,45,38,42,24,25,50,55,26,26,15,54,31,28,48,27,27,62 23 GOTO17 24 LT=1:M=1:GOTO47 25 IFNOTMTTHENM=LU:GOTO47:ELSEBEEP:RETURN 26 ZB=ZA:ZA=ZA+(37-I*L)*SGN(B-9.5):IFZA>=0ANDZA8THENBEEP:RETURN 29 IFMTTHENY=0:L=L+1:LT=L:M=L:U=N(X):GOSUB6:PRINT@0,IN$ELSEGOSUB133:PRINT@40*Y+I*L-I,"+";:L=L+1 30 Q=Q+1:Y0=1:IFL>LUTHENLU=L:M=L:GOTO32ELSE32 31 GOSUB133:U=X:GOSUB119:X=V:Q=Q+QC:IFY+Y0>STHENU=X:Y1=Y:GOSUB126:U=V:GOSUB6:Y0=1 32 Y=Y+Y0:PRINT@40*Y-1,"":PRINTIN$;:IFY>STHENY=S 33 A=" ":H=I*(L-1)+1:G=38-H:H=40*Y+H:E=1:F=1: 34 GOSUB101:IFA=CHR$(0)THEN93 35 A(IT)=CHR$(L)+LEFT$(A,LEN(A)-1):P(N(X))=IT:N(IT)=N(X):P(IT)=X:N(X)=IT:X=IT:IT=IT+1:QT=QT+1 36 U=X:GOSUB124:IFU<>XTHENU=X:Y=Y-1:Y1=Y:GOSUB126:U=V:GOSUB6 37 RETURN 38 IFASC(A(P(X)))MTHENNEXT 40 IFY>0THENY=Y-1ELSEPRINT@0,IN$ 41 RETURN 42 OQ=Q:OX=X:GOSUB133:FORQ=Q+1TO200:X=N(X):IFASC(A(X))>MTHENNEXT 43 IFASC(A(X))=LTTHENX=P(X):Q=Q-1:IFM1>MTHEN51 52 NEXT:U=X:IFY>STHENGOSUB6 53 Y=0:RETURN 54 X=P(1):X=P(X):Y=S:L=ASC(A(X)):Q=QT-1:GOTO 47 55 GOSUB133:Y=Y+(S+1)*(Y=S):FORT=YTO5 56 M1=ASC(A(N(X))):IFM1>=LTTHENX=N(X):Q=Q+1:IFM1>MTHEN56 57 NEXT:L=ASC(A(X)):Y=S:GOTO47 58 DZ=-1 59 CZ=0:CX=X:U=X:GOSUB119:CY=V:CQ=QC:IFDZTHENSOUND500,5:CZ=-1:DZ=0:RETURN 60 N(P(CX))=N(CY):P(N(CY))=P(CX):X=P(CX):P(CX)=-1:N(CY)=-1:IFMTTHENIFASC(A(X))<=LTHENLT=ASC(A(X)):M=LT 61 L=ASC(A(X)):Q=Q-1:QT=QT-QC:U=X:GOSUB47:GOSUB131:RETURN 62 QT=QT-1:Q=Q-1:CX=X:CY=X:U=X:GOSUB119 63 N(P(CX))=N(CX):P(N(CX))=P(CX):X=P(CX):P(CX)=-1:U=CX:IFMTTHENIFASC(A(X))<=LTHENLT=ASC(A(X)):M=LT 64 IFU=VTHENL=ASC(A(X)):GOTO47 65 U=N(U):L=ASC(A(U))-1:A(U)=CHR$(L)+MID$(A(U),2):GOTO64 66 U=X:Z=-1:N=L:IFN=1THEN18 67 MID$(A(U),1,1)=CHR$(N+Z) 68 IFN=LUTHENLU=LU+1:M=M+1 69 U=N(U):N=ASC(A(U)):IFN=>LTHEN67 70 U=X:Y1=Y:L=ASC(A(X)):IFMTTHENLT=L:M=L 71 IFL>MTHENGOSUB124 72 GOSUB126:U=V:X2=X:GOSUB6:Y=Y0:RETURN 73 U=X:Z=1:N=L:IFASC(A(P(X)))>=LTHEN67ELSEBEEP:RETURN 74 PRINT@0,U7$:PRINT@280,R1$"Find?"SPACE$(34);:A=AZ+" ":E=1:F=1:G=31:H=287:GOSUB101:A=LEFT$(A,LEN(A)-1):IFA=AZTHENX=N(X) 75 AZ=A 76 FORQ=QTO199:IFINSTR(A(X),AZ)>0THEN78 ELSEIFASC(A(X))>0THENX=N(X):NEXT 77 GOSUB14:GOTO15 78 L=ASC(A(X)):IFL>MTHENM=L:IFMTTHENLT=L 79 GOSUB14:GOSUB47:GOTO131 80 U=X:CLS:PRINTR2$"Print to "D$;:INPUTD$:PRINT"Indent"TI"spaces/level";:INPUTTI:PRINT"Line Spacing of"LS;:INPUTLS:PRINT"Lowest level for separation is"ES;:INPUTES 81 N$="":FORN=64TO74:N$=N$+CHR$(1):NEXT:PRINT"Numbering ("NU$")";:INPUTNU$:PRINT"Line Width of"W0;:INPUTW0:IFW=00THENW0=999 82 CLOSE:OPEND$FOROUTPUTAS1:CLS:PRINT@50,"Writing to "D$ 83 N=ASC(A(U)):IFN>MTHENU=N(U):GOTO83 84 IFNASC(A(P(U)))THENMID$(N$,NL,1)=CHR$(1)ELSEMID$(N$,NL,1)=CHR$(ASC(MID$(N$,NL))+1) 86 A="":IFNU$="y"THENFORZ=1TONL:B=ASC(MID$(N$,Z)):A=A+RIGHT$(STR$(B),1-(B>9))+".":NEXT:A=LEFT$(A,LEN(A)-1)+": " 87 A=A+MID$(A(U),2):TS=TI*NL:IFN<=ESOR(N" "THENNEXTW1ELSEW1=W1-1 90 PRINT#1,SPACE$(TS)LEFT$(A,W1);:IFLS>0THENFORZ=1TOLS:PRINT#1,:NEXTZ 91 A=MID$(A,W1+1):IFA$>""THEN88 92 U=N(U):GOTO83 93 IFCX=0THENBEEP:GOTO33 94 IFNOTCZTHEN97ELSEX2=IT 95 A(IT)=A(CX):P(IT)=IT-1:N(IT)=IT+1:IT=IT+1:IFCX<>CYTHENCX=N(CX):GOTO95 96 CY=IT-1:CX=X2:CZ=0 97 P(N(X))=CY:N(CY)=N(X):P(CX)=X:N(X)=CX:X=CX:N=ASC(A(CX)):U=X:CX=0:Z=L-N:QT=QT+CQ:IFZ=0THEN47 98 MID$(A(U),1,1)=CHR$(N+Z) 99 IFN=LUTHENLU=LU+1:M=LU 100 IFU=CYTHEN70ELSEU=N(U):N=ASC(A(U)):GOTO98 101 IFLEN(A)>250THENBEEP:A=LEFT$(A,250) 102 IFE>LEN(A)THENE=E-1 103 IFE-F=>GTHENF=E-G+1 104 IFECHR$(162)THENC$=RIGHT$(A,1):MID$(A,E)=B$+MID$(A,E):A=A+C$ELSEGOSUB147 109 E=E+1:GOTO101 110 E=E-1:GOTO104 111 IFE>1THENMID$(A,E-1)=MID$(A,E):A=LEFT$(A,LEN(A)-1):GOTO110ELSE105 112 IFE=G)+1:GOTO102 115 E=INSTR(E+1,A," "):IFE=0THENB=18:GOTO114ELSE102 116 A=" ":PRINT@H,ER$;:GOTO113 117 IFE>1THENFORE=E-1TO1STEP-1:IFMID$(A,E,1)<>" "THENNEXT 118 GOTO 102 119 Y0=0 120 FORQC=1TO199:T=ASC(A(N(U))):IFT<=MTHENY0=Y0+1 121 IFT=0THEN123 122 IFT>LTHENU=N(U):NEXT 123 V=U:RETURN 124 FORQ=QTO1STEP-1:IFL>MTHENX=P(X):L=ASC(A(X)):NEXT 125 RETURN 126 IFY1=0THEN130ELSEFORZ=1TOY1 127 M1=ASC(A(P(U))):IFM1>=LTTHENU=P(U) ELSE129 128 IFM1>MTHEN127 129 NEXT 130 V=U:RETURN 131 L=ASC(A(X)):Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$ 132 PRINT@40*Y+Z,R1$B$MID$(A(X),2+ZA,37-Z);:RETURN 133 Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$ 134 PRINT@40*Y+Z,R2$B$MID$(A(X),2,36-Z);:IFPOS(0)=37THENPRINTAR; 135 ZA=0:RETURN 136 PRINT@2,AA:PRINT@3,AB:PRINTR2$:FILES:PRINT@282,AA;:PRINT@286,"Filename? (or ENTER)";:E=1:F=1:G=12:H=307:A=" ":GOSUB101:IFA="Menu "THENMENU 137 F$=A:IFF$=" "THEN140ELSEOPENF$FORINPUTAS1:INPUT#1,MT:PRINT@282,AA;:PRINT@290,"Please Wait..."; 138 FORQ=1TO199:P(Q)=Q-1:N(Q)=Q+1:LINEINPUT#1,A(Q):IFASC(A(Q))=LU+1THENLU=LU+1 139 IFA(Q)<>"end"THENNEXTELSECLOSE:A(Q)=CHR$(0)+A(Q):P(1)=Q:N(Q)=1:QT=Q-1:IT=Q+1:RETURN 140 A(1)=CHR$(1)+"Outline":P(1)=2:N(1)=2:A(2)=CHR$(0)+"end":P(2)=1:N(2)=1:IT=3:QT=1:LU=1:RETURN 141 IFPEEK(65442)=1THENMENUELSEX=1:CLS:PRINT"Saving your thoughts";:IFF$=" "THENINPUT" to what";F$ 142 CLOSE:OPENF$FOROUTPUTAS1:PRINT#1,MT:FORY=1TOQT+1 143 PRINT#1,A(X):X=N(X):NEXT:CLOSE 144 MENU 145 M=L:IFMT=0THENMT=-1:LT=LELSE MT=0:LT=1 146 GOSUB14:GOSUB47:GOSUB131:RETURN 147 C$="z!="+MID$(A,E)+CHR$(0):C!=VARPTR(C$):C!=PEEK(C!+1)+PEEK(C!+2)*256 148 CALL 1606,0,C!:CALL2499,0,63105 149 A=LEFT$(A,E-1)+STR$(Z!)+" ":PRINT@H+F+E,ER$;:E=E-1:RETURN 150 SOUND1E4,20: IFERR=52ORERR=55ORERR=54OR(ERR=5AND(ERL=138ORERL=137))THENAB="SORRY, THATS NOT A THINK.IT FILE":CLOSE:RESUME136 151 IFERL=148THEN RESUME101 152 CLS:PRINT ERR"in line"ERL:END