0 MAXFILES=1:CLEARFRE(0)/2:DEFSTRA:AB=">>Think.It NEC1.0>> (C) 1985 L. GROEBE"'LARK SOFTWARE,6001 Skillman #362,DALLAS TX 75231 [Enhancements 6/13/88 by Dave Thomas] 1 DEFINTB-Z:U=0:X=0:V=0:Y=0:L=1 :M=1:B=FRE(0)/35:DIMP(B),N(B),A(B):E$=CHR$(27):R1$=E$+"p":R2$=E$+"q":ER$=E$+"K":IN$=E$+"L":U7$=E$+"U":P$="+":M$="-":AA=R1$+SPACE$(36):K=237 2 I=2:MT=0:D$="LPT:":ES=1:LS=1:TI=4:NU$="N":W0=80:S=6:NP$="1A1a11111" 3 AR="..":CC$="":CD$="?>@A#(6$349MTHENU=N(U):GOTO6 7 N=ASC(A(U)):IFNNTHENB$=P$ 10 LOCATE 0,T:PRINTSPACE$(Z)B$MID$(A(U),2,36-Z)ER$;:IFPOS(0)=37THENPRINTAR; 11 U=N(U) 12 NEXT:PRINTE$"J";:RETURN 13 KEY2,"View"+CHR$(49-MT):RETURN 14 IFMTTHENM=1 15 LT=1:U=1:GOSUB5:X=1:Y=0:Q=1 16 GOSUB132 17 A=INKEY$:IFA=""THEN17 19 ON INSTR("FVCCPEM+-",A)+1GOTO 20,75,146,59,59,81,142,142,67,74 20 B=INSTR(CC$,A):IF B=0THEN17 21 ONBGOSUB47,46,39,43,23,24,51,56,27,27,14 ,55,32,29,49,142,142,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:LOCATE0,0:PRINTIN$ELSEGOSUB134:LOCATE I*L-I,Y:PRINT"+";:L=L+1 31 Q=Q+1:Y0=1:IFL>LUTHENLU=L:M=L:GOTO33ELSE 33 32 GOSUB134:U=X:GOSUB120:X=V:Q=Q+QC:IFY+Y0>S+1THENU=X:Y1=Y:GOSUB127:U=V:GOSUB5:Y0=1 33 Y=Y+Y0:LOCATE 0,Y-1:PRINT:PRINTIN$;:IFY>STHENY=S 34 A=" ":H2=I*(L-1)+1:G=38-H2:H1=Y: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-1ELSELOCATE0,0:PRINTIN$ 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=YTOS-1 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 IF INKEY$="o" THEN DZ=-1 60 IF INKEY$<>"" THEN 60 ELSE CZ=0:CX=X:U=X:GOSUB120:CY=V:CQ=QC:IFDZ THEN SOUND500,5:CZ=-1:DZ=0:GOTO17 61 N(P(CX))=N(CY):P(N(CY))=P(CX):X=P(CX):P(CX)=-1:N(CY)=-1:IFMTTHENIFASC(A(X))<=L THENLT=ASC(A(X)):M=LT 62 L=ASC(A(X)):Q=Q-1:QT=QT-QC:U=X:GOSUB48:GOTO16 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 A(U)=CHR$(N+Z)+MID$(A(U),2) 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:GOTO16 74 U=X:Z=1:N=L:IFASC(A(P(X)))>=LTHEN68ELSEBEEP:GOTO17 75 IF INKEY$<>"" THEN 75 ELSESCREEN,0:LOCATE 1,7:PRINT,"Find?"SPACE$(33);:A=AZ+" ":E=1:F=1:G=31:H1=7:H2=7:GOSUB102:A=LEFT$(A,LEN(A)-1):IFA=AZTHENX=N(X) 76 AZ=A:LOCATE 0,0:SCREEN ,1 77 FORQ=QTO199:IFINSTR(A(X),AZ)>0THEN79 ELSEIFASC(A(X))>0THENX=N(X):NEXT 78 GOSUB13:GOSUB14:GOTO17 79 L=ASC(A(X)):IFL>MTHENM=L:IFMTTHENLT=L 80 GOSUB13:GOSUB48:GOTO16 81 IF INKEY$<>"" THEN 81 ELSE U=X:CLS:PRINTR2$"Print to "D$;:INPUTD$:PRINT"Indent"TI"spaces/leve l";:INPUTTI:PRINT"Line Spacing of"LS;:INPUTLS:PRINT"Lowest level for separation is"ES;:INPUTES 82 N$=NP$:PRINT"Numbering ("NU$")";:INPUTNU$:W0=-W0*(W0<256):PRINT "Line Width of"W0;:INPUTW0:IFW0=0THENW0=999 83 CLOSE:OPEND$FOROUTPUTAS1:CLS:LOCATE 10,3:PRINT"Writing to "D$ 84 N=ASC(A(U)):IFN>MTHENU=N(U):GOTO84 85 IFNASC(A(P(U)))THENN$=LEFT$(N$,NL-1)+MID$(NP$,NL)ELSEN$=LEFT$(N$,NL-1)+CHR$(ASC(MID$(N$,NL))+1)+MID$(N$,NL+1) 87 IFNU$="y"THEN A=MID$(N$,NL,1)+": ":IF MID$(NP$,NL,1)="1"THENA=STR$(ASC(A)-48):A=MID$(A,2)+": " 88 A=A+MID$(A(U),2):TS=TI*NL-TI:IFN<=ESOR(N" "THENNEXTW1ELSEW1=W1-1 91 PRINT#1,SPACE$(TS)LEFT$(A,W1);:IFLS>0THEN FORZ=1TOLS:PRINT#1,:NEXTZ 92 A=MID$(A,W1+1):IFA$>""THEN89 93 U=N(U):IFINKEY$<>E$THEN84ELSEU=P(1):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 A(U)=CHR$(N+Z)+MID$(A(U),2) 100 IFN=LUTHENLU=LU+1:M=LU 101 IFU=CYTHEN71ELSEU=N(U):N=ASC(A(U)):GOTO 99 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)THENA=LEFT$(A,E-1)+B$+MID$(A,E):ELSEGOSUB150 110 E=E+1:GOTO102 111 E=E-1:GOTO105 112 IFE>1THENA=LEFT$(A,E-2)+MID$(A,E):GOTO111ELSE106 113 IFE=G)+1:GOTO103 116 E=INSTR(E+1,A," "):IFE=0THENB=18:GOTO115ELSE103 117 A=LEFT$(A,E-1)+" ":LOCATE H2+E-F,H1:PRINTER$;:GOTO102 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 LOCATE Z,Y:PRINTR1$B$MID$(A(X),2+ZA,37-Z);:RETURN 134 Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$ 135 LOCATE Z,Y:PRINTR2$B$MID$(A(X),2,36-Z);:IFPOS(0)=37THENPRINTAR; 136 ZA=0:RETURN 137 CLS:LOCATE 0,0:PRINTAA:LOCATE 2,0:PRINTAB;R2$:FILES:LOCATE 2,7:PRINTAA;:LOCATE6,7:PRINT"File name? (or ENTER)";:E=1:F=1:G=12:H1=7:H2=27:A=" ":GOSUB102:IFA="Menu "THEN159 138 F$=A:IFF$=" "THEN141ELSEOPENF$FORINPUTAS1:INPUT#1,MT:LOCATE2,7:PRINT,AA;:LOCATE10,7:PRINT"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)+"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 142 IFINKEY$<>""THEN142ELSEIFA="M"THEN159ELSEX=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 145 GOTO159 146 IF INKEY$<>"" THEN 146 ELSE M=L:IFMT=0THENMT=-1:LT=LELSE MT=0:LT=1 147 GOSUB13:GOSUB48:GOTO16 150 BEEP:RETURN 155 SOUND10000!,20:IFERR=52ORERR=55ORERR=54OR(ERR=5AND(ERL=139ORERL=138))THENAB=" Sorry, not a THINK.IT file.":CLOSE:RESUME137 157 IFERL=151THENRESUME102 158 CLS:PRINT"Error"ERR"in line"ERL:END 159 POKE63912!,6:POKE63913!,95:EXEC24028:EXEC27895:EXEC9018:MENU