0 REM **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. Kyo: Phil Wheeler 1 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):B8=0 2 LM=8:I=1:MT=0:D$="LPT:":ES=1:LS=1:TI=3:NU$="y":W0=66:S=6 3 AR=CHR$(241)+CHR$(154):CC$="?>@A#(6$349THINK.IT> (C)1985 L.Groebe CV.1":ONERRORGOTO155 4 ONKEYGOSUB75,146,1,81,59,60,162,142:GOSUB137:CLS:GOSUB13:GOTO15 5 PRINT@0,R2$;:FORT=0TOS 6 IFASC(A(U))>MTHENU=N(U):GOTO6 7 N=ASC(A(U)):IFNNTHENB$=P$ 10 PRINT@T*40,SPACE$(Z)B$MID$(A(U),2,36-Z)ER$;:IFPOS(0)=37THENPRINTAR; 11 U=N(U) 12 NEXT:PRINTE$"J";:RETURN 13 PRINTU7$;:PRINT@280,R1$"Find View Prnt Copy Cut New Menu";:LINE(239,63)-(233,56),1,BF:PRINT@289,CHR$(49-MT)E$"H"L7$:RETURN 14 IF MT THEN M=1 15 LT=1:U=1:GOSUB5:X=1:Y=0:Q=1 16 GOSUB132 17 KEYON:A=INKEY$:IFA=""THEN17 18 KEYOFF:IFA=P$THENGOSUB67:GOTO16 19 IFA=M$THENGOSUB74:GOTO16 20 B=INSTR(CC$,A):IF B=0THEN17 21 ONBGOSUB47,46,39,43,23,24,51,56,27,27,14,55,32,29,49,28,28,63 22 GOTO16 23 LT=1:M=1:GOTO48 24 IFNOTMTTHENM=LU:GOTO48:ELSEBEEP:RETURN 27 ZB=ZA:ZA=ZA+(37-I*L)*SGN(B-9.5):IFZA>=0ANDZA8THENBEEP:RETURN 30 IFMTTHENY=0:L=L+1:LT=L:M=L:U=N(X):GOSUB5:PRINT@0,IN$ELSEGOSUB134:PRINT@40*Y+I*L-I,"+";:L=L+1 31 Q=Q+1:Y0=1:IFL>LUTHENLU=L:M=L:GOTO33ELSE33 32 GOSUB134:U=X:GOSUB120:X=V:Q=Q+QC:IFY+Y0>STHENU=X:Y1=Y:GOSUB127:U=V:GOSUB5:Y0=1 33 Y=Y+Y0:PRINT@40*Y-1,"":PRINTIN$;:IFY>STHENY=S 34 A=" ":H=I*(L-1)+1:G=38-H:H=40*Y+H:E=1:F=1: 35 GOSUB102:IFA=CHR$(0)THEN94 36 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 37 U=X:GOSUB125:IFU<>XTHENU=X:Y=Y-1:Y1=Y:GOSUB127:U=V:GOSUB5 38 RETURN 39 IFASC(A(P(X)))MTHENNEXT 41 IFY>0THENY=Y-1ELSEPRINT@0,IN$ 42 RETURN 43 OQ=Q:OX=X:GOSUB134:FORQ=Q+1TO200:X=N(X):IFASC(A(X))>MTHENNEXT 44 IFASC(A(X))=LTTHENX=P(X):Q=Q-1:IFM1>MTHEN52 53 NEXT:U=X:IFY>STHENGOSUB5 54 Y=0:RETURN 55 X=P(1):X=P(X):Y=S:L=ASC(A(X)):Q=QT-1:GOTO 48 56 GOSUB134:Y=Y+(S+1)*(Y=S):FORT=YTO5 57 M1=ASC(A(N(X))):IFM1>=LTTHENX=N(X):Q=Q+1:IFM1>MTHEN57 58 NEXT:L=ASC(A(X)):Y=S:GOTO48 59 DZ=-1 60 CZ=0:CX=X:U=X:GOSUB120:CY=V:CQ=QC:IFDZTHENSOUND500,5:CZ=-1:DZ=0:RETURN 61 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 62 L=ASC(A(X)):Q=Q-1:QT=QT-QC:U=X:GOSUB48:GOSUB132:RETURN 63 QT=QT-1:Q=Q-1:CX=X:CY=X:U=X:GOSUB120 64 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 65 IFU=VTHENL=ASC(A(X)):GOTO48 66 U=N(U):L=ASC(A(U))-1:A(U)=CHR$(L)+MID$(A(U),2):GOTO65 67 U=X:Z=-1:N=L:IFN=1THEN17 68 MID$(A(U),1,1)=CHR$(N+Z) 69 IFN=LUTHENLU=LU+1:M=M+1 70 U=N(U):N=ASC(A(U)):IFN=>LTHEN68 71 U=X:Y1=Y:L=ASC(A(X)):IFMTTHENLT=L:M=L 72 IFL>MTHENGOSUB125 73 GOSUB127:U=V:X2=X:GOSUB5:Y=Y0:RETURN 74 U=X:Z=1:N=L:IFASC(A(P(X)))>=LTHEN68ELSEBEEP:RETURN 75 PRINT@0,U7$:PRINT@280,R1$"Find?"SPACE$(34);:A=AZ+" ":E=1:F=1:G=31:H=287:GOSUB102:A=LEFT$(A,LEN(A)-1):IFA=AZTHENX=N(X) 76 AZ=A 77 FORQ=QTO199:IFINSTR(A(X),AZ)>0THEN79 ELSEIFASC(A(X))>0THENX=N(X):NEXT 78 GOSUB13:GOTO14 79 L=ASC(A(X)):IFL>MTHENM=L:IFMTTHENLT=L 80 GOSUB13:GOSUB48:GOTO132 81 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 82 N$="":FORN=64TO74:N$=N$+CHR$(1):NEXT:PRINT"Numbering ("NU$")";:INPUTNU$:PRINT"Print Left Margin of"LM;:INPUTLM:PRINT"Line Width of"W0;:INPUTW0:IFW0=0THENW0=999 83 CLOSE:OPEND$FOROUTPUTAS1:CLS:PRINT@50,"Writing to "D$ 84 N=ASC(A(U)):IFN>MTHEN93 85 IFNASC(A(P(U)))THENMID$(N$,NL,1)=CHR$(1)ELSEMID$(N$,NL,1)=CHR$(ASC(MID$(N$,NL))+1) 87 A="":IFNU$="y"ORNU$="Y"THENFORZ=1TONL:B=ASC(MID$(N$,Z)):A=A+RIGHT$(STR$(B),1-(B>9))+".":NEXT:A=LEFT$(A,LEN(A)-1)+": ":GOSUB159 88 A=A+MID$(A(U),2):TS=TI*NL-TI:IFN<=ESTHENPRINT#1, 89 IFLEN(A)" "THENNEXTW1ELSEW1=W1-1 91 IFLEFT$(A,1)="0"THENPRINT#1,SPACE$(LM)RIGHT$(A,W1-3)ELSEPRINT#1,SPACE$(TS+LM)LEFT$(A,W1);:IFLS>0THENFORZ=1TOLS:PRINT#1,:NEXTZ 92 A=MID$(A,W1+1):IFA$>""THEN89 93 U=N(U):GOTO84 94 IFCX=0THENBEEP:GOTO34 95 IFNOTCZTHEN98ELSEX2=IT 96 A(IT)=A(CX):P(IT)=IT-1:N(IT)=IT+1:IT=IT+1:IFCX<>CYTHENCX=N(CX):GOTO96 97 CY=IT-1:CX=X2:CZ=0 98 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=0THEN48 99 MID$(A(U),1,1)=CHR$(N+Z) 100 IFN=LUTHENLU=LU+1:M=LU 101 IFU=CYTHEN71ELSEU=N(U):N=ASC(A(U)):GOTO99 102 IFLEN(A)>250THENBEEP:A=LEFT$(A,250) 103 IFE>LEN(A)THENE=E-1 104 IFE-F=>GTHENF=E-G+1 105 IFECHR$(162)THENC$=RIGHT$(A,1):MID$(A,E)=B$+MID$(A,E):A=A+C$ELSEGOSUB150 110 E=E+1:GOTO102 111 E=E-1:GOTO105 112 IFE>1THENMID$(A,E-1)=MID$(A,E):A=LEFT$(A,LEN(A)-1):GOTO111ELSE106 113 IFE=G)+1:GOTO103 116 E=INSTR(E+1,A," "):IFE=0THENB=18:GOTO115ELSE103 117 A=" ":PRINT@H,ER$;:GOTO114 118 IFE>1THENFORE=E-1TO1STEP-1:IFMID$(A,E,1)<>" "THENNEXT 119 GOTO 103 120 Y0=0 121 FORQC=1TO199:T=ASC(A(N(U))):IFT<=MTHENY0=Y0+1 122 IFT=0THEN124 123 IFT>LTHENU=N(U):NEXT 124 V=U:RETURN 125 FORQ=QTO1STEP-1:IFL>MTHENX=P(X):L=ASC(A(X)):NEXT 126 RETURN 127 IFY1=0THEN131ELSEFORZ=1TOY1 128 M1=ASC(A(P(U))):IFM1>=LTTHENU=P(U) ELSE130 129 IFM1>MTHEN128 130 NEXT 131 V=U:RETURN 132 L=ASC(A(X)):Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$ 133 PRINT@40*Y+Z,R1$B$MID$(A(X),2+ZA,37-Z);:RETURN 134 Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$ 135 PRINT@40*Y+Z,R2$B$MID$(A(X),2,36-Z);:IFPOS(0)=37THENPRINTAR; 136 ZA=0:RETURN 137 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=" ":GOSUB102:IFA="Menu "THENMENU 138 F$=A:IFF$=" "THEN141ELSEOPENF$FORINPUTAS1:INPUT#1,MT:PRINT@282,AA;:PRINT@290,"Please Wait..."; 139 FORQ=1TO199:P(Q)=Q-1:N(Q)=Q+1:LINEINPUT#1,A(Q):IFASC(A(Q))=LU+1THENLU=LU+1 140 IFA(Q)<>"end"THENNEXTELSECLOSE:A(Q)=CHR$(0)+A(Q):P(1)=Q:N(Q)=1:QT=Q-1:IT=Q+1:RETURN 141 A(1)=CHR$(1)+"<>":P(1)=2:N(1)=2:A(2)=CHR$(0)+"end":P(2)=1:N(2)=1:IT=3:QT=1:LU=1:RETURN 142 IFPEEK(65379)=1THENMENUELSEX=1:CLS:PRINT"Saving your thoughts";:IFF$=" "THENINPUT" to what";F$ 143 CLOSE:OPENF$FOROUTPUTAS1:PRINT#1,MT:FORY=1TOQT+1 144 PRINT#1,A(X):X=N(X):NEXT:CLOSE:IFB8=1THEN0 145 MENU 146 M=L:IFMT=0THENMT=-1:LT=LELSE MT=0:LT=1 147 GOSUB13:GOSUB48:GOSUB132:RETURN 150 C$="z!="+MID$(A,E)+CHR$(0):C!=VARPTR(C$):C!=PEEK(C!+1)+PEEK(C!+2)*256 151 CALL 1613,0,C!:CALL2506,0,63112 152 A=LEFT$(A,E-1)+STR$(Z!)+" ":PRINT@H+F+E,ER$;:E=E-1:RETURN 155 SOUND1E4,20: IFERR=52ORERR=55ORERR=54OR(ERR=5AND(ERL=139ORERL=138))THENAB="SORRY, THATS NOT A THINK.IT FILE":CLOSE:RESUME137 157 IFERL=151THEN RESUME102 158 CLS:PRINT ERR"in line"ERL:END 159 IFASC(MID$(A$,2,1))=46ORASC(MID$(A$,2,1))=58THENB9=VAL(LEFT$(A,1)):A=RIGHT$(STR$(B9-1),1)+RIGHT$(A,LEN(A)-1):RETURN 160 B9=VAL(LEFT$(A,2)):IFB9=10THENA="9"+RIGHT$(A,LEN(A)-2):RETURN 161 A=RIGHT$(STR$(B9-1),2)+RIGHT$(A,LEN(A)-2):RETURN 162 B8=1:GOTO142