home *** CD-ROM | disk | FTP | other *** search
/ ftp.whtech.com / ftp.whtech.com.tar / ftp.whtech.com / club100 / bus / think.ba < prev    next >
Text File  |  2006-10-19  |  8KB  |  154 lines

  1. 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
  2. 1 'CLUB 100 Library, 415/9391246 BBS,     937-5039 NEWSLETTER, 932-8856 VOICE
  3. 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)
  4. 3 I=2:MT=0:D$="LPT:":ES=1:LS=1:TI=4:NU$="n":W0=75:S=6
  5. 4 AR=CHR$(241)+CHR$(154):CC$="?>@A#(6$349</+B=*"+CHR$(161):FORZ=1TO18:MID$(CC$,Z,1)=CHR$(ASC(MID$(CC$,Z))-34):NEXT:SCREEN,0:CLS:AB=">THINK.IT>  (C)1985 L.Groebe  CV.1":ONERRORGOTO150
  6. 5 ONKEYGOSUB74,145,2,80,58,59,2,141:GOSUB136:CLS:GOSUB14:GOTO16
  7. 6 PRINT@0,R2$;:FORT=0TOS
  8. 7 IFASC(A(U))>MTHENU=N(U):GOTO7
  9. 8 N=ASC(A(U)):IFN<LTTHEN13
  10. 9 IFA(U)=A(X2)THENY0=T
  11. 10 Z=I*N-I:B$=M$:IFASC(A(N(U)))>NTHENB$=P$
  12. 11 PRINT@T*40,SPACE$(Z)B$MID$(A(U),2,36-Z)ER$;:IFPOS(0)=37THENPRINTAR;
  13. 12 U=N(U)
  14. 13 NEXT:PRINTE$"J";:RETURN
  15. 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
  16. 15 IF MT THEN M=1
  17. 16 LT=1:U=1:GOSUB6:X=1:Y=0:Q=1
  18. 17 GOSUB131
  19. 18 KEYON:A=INKEY$:IFA=""THEN18
  20. 19 KEYOFF:IFA=P$THENGOSUB66:GOTO17
  21. 20 IFA=M$THENGOSUB73:GOTO17
  22. 21 B=INSTR(CC$,A):IF B=0THEN18
  23. 22 ONBGOSUB46,45,38,42,24,25,50,55,26,26,15,54,31,28,48,27,27,62
  24. 23 GOTO17
  25. 24 LT=1:M=1:GOTO47
  26. 25 IFNOTMTTHENM=LU:GOTO47:ELSEBEEP:RETURN
  27. 26 ZB=ZA:ZA=ZA+(37-I*L)*SGN(B-9.5):IFZA>=0ANDZA<LEN(A(X))THENGOSUB131:PRINTER$;ELSEZA=ZB
  28. 27 RETURN
  29. 28 IFL>8THENBEEP:RETURN
  30. 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
  31. 30 Q=Q+1:Y0=1:IFL>LUTHENLU=L:M=L:GOTO32ELSE32
  32. 31 GOSUB133:U=X:GOSUB119:X=V:Q=Q+QC:IFY+Y0>STHENU=X:Y1=Y:GOSUB126:U=V:GOSUB6:Y0=1
  33. 32 Y=Y+Y0:PRINT@40*Y-1,"":PRINTIN$;:IFY>STHENY=S
  34. 33 A=" ":H=I*(L-1)+1:G=38-H:H=40*Y+H:E=1:F=1:
  35. 34 GOSUB101:IFA=CHR$(0)THEN93
  36. 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
  37. 36 U=X:GOSUB124:IFU<>XTHENU=X:Y=Y-1:Y1=Y:GOSUB126:U=V:GOSUB6
  38. 37 RETURN
  39. 38 IFASC(A(P(X)))<LTTHENRETURN
  40. 39 GOSUB133:FORQ=Q-1TO1STEP-1:X=P(X):IFASC(A(X))>MTHENNEXT
  41. 40 IFY>0THENY=Y-1ELSEPRINT@0,IN$
  42. 41 RETURN
  43. 42 OQ=Q:OX=X:GOSUB133:FORQ=Q+1TO200:X=N(X):IFASC(A(X))>MTHENNEXT
  44. 43 IFASC(A(X))<LTTHENX=OX:Q=OQ:RETURN
  45. 44 IFY<STHENY=Y+1:RETURNELSEPRINT:RETURN
  46. 45 IFM=LUTHENRETURNELSEM=M+1:IFNOTMTTHEN47ELSEIFASC(A(N(X)))=MTHENX=N(X):Q=Q+1:LT=M:GOTO47ELSEM=M-1:RETURN
  47. 46 IFM=1THENRETURNELSEM=M-1:IFMTTHENLT=M
  48. 47 GOSUB124:U=X:Y1=Y:GOSUB126:U=V:X2=X:GOSUB6:Y=Y0:RETURN
  49. 48 E=ZA+1:F=E:H=I*L-1:G=39-H:H=40*Y+H:A=MID$(A(X),2)+" ":PRINT@0,R2$:GOSUB 101:A(X)=LEFT$(A(X),1)+LEFT$(A,LEN(A)-1):ZA=0:RETURN
  50. 49 GOSUB124:U=X:GOSUB126:RETURN
  51. 50 GOSUB133:Y=Y-((S+1)*(Y=0)):FORT=1TOY
  52. 51 M1=ASC(A(P(X))):IFM1>=LTTHENX=P(X):Q=Q-1:IFM1>MTHEN51
  53. 52 NEXT:U=X:IFY>STHENGOSUB6
  54. 53 Y=0:RETURN
  55. 54 X=P(1):X=P(X):Y=S:L=ASC(A(X)):Q=QT-1:GOTO 47
  56. 55 GOSUB133:Y=Y+(S+1)*(Y=S):FORT=YTO5
  57. 56 M1=ASC(A(N(X))):IFM1>=LTTHENX=N(X):Q=Q+1:IFM1>MTHEN56
  58. 57 NEXT:L=ASC(A(X)):Y=S:GOTO47
  59. 58 DZ=-1
  60. 59 CZ=0:CX=X:U=X:GOSUB119:CY=V:CQ=QC:IFDZTHENSOUND500,5:CZ=-1:DZ=0:RETURN
  61. 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
  62. 61 L=ASC(A(X)):Q=Q-1:QT=QT-QC:U=X:GOSUB47:GOSUB131:RETURN
  63. 62 QT=QT-1:Q=Q-1:CX=X:CY=X:U=X:GOSUB119
  64. 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
  65. 64 IFU=VTHENL=ASC(A(X)):GOTO47
  66. 65 U=N(U):L=ASC(A(U))-1:A(U)=CHR$(L)+MID$(A(U),2):GOTO64
  67. 66 U=X:Z=-1:N=L:IFN=1THEN18
  68. 67 MID$(A(U),1,1)=CHR$(N+Z)
  69. 68 IFN=LUTHENLU=LU+1:M=M+1
  70. 69 U=N(U):N=ASC(A(U)):IFN=>LTHEN67
  71. 70 U=X:Y1=Y:L=ASC(A(X)):IFMTTHENLT=L:M=L
  72. 71 IFL>MTHENGOSUB124
  73. 72 GOSUB126:U=V:X2=X:GOSUB6:Y=Y0:RETURN
  74. 73 U=X:Z=1:N=L:IFASC(A(P(X)))>=LTHEN67ELSEBEEP:RETURN
  75. 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)
  76. 75 AZ=A
  77. 76 FORQ=QTO199:IFINSTR(A(X),AZ)>0THEN78 ELSEIFASC(A(X))>0THENX=N(X):NEXT
  78. 77 GOSUB14:GOTO15
  79. 78 L=ASC(A(X)):IFL>MTHENM=L:IFMTTHENLT=L
  80. 79 GOSUB14:GOSUB47:GOTO131
  81. 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
  82. 81 N$="":FORN=64TO74:N$=N$+CHR$(1):NEXT:PRINT"Numbering ("NU$")";:INPUTNU$:PRINT"Line Width of"W0;:INPUTW0:IFW=00THENW0=999
  83. 82 CLOSE:OPEND$FOROUTPUTAS1:CLS:PRINT@50,"Writing to "D$
  84. 83 N=ASC(A(U)):IFN>MTHENU=N(U):GOTO83
  85. 84 IFN<LTHENU=X:GOSUB47:GOTO131
  86. 85 NL=N-L+1:IFN>ASC(A(P(U)))THENMID$(N$,NL,1)=CHR$(1)ELSEMID$(N$,NL,1)=CHR$(ASC(MID$(N$,NL))+1)
  87. 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)+": "
  88. 87 A=A+MID$(A(U),2):TS=TI*NL:IFN<=ESOR(N<ASC(A(P(U)))AND N<M)THENPRINT#1,
  89. 88 IFLEN(A)<W0-TSTHENW1=LEN(A):GOTO90
  90. 89 FORW1=W0-TS+1TO1STEP-1:IFMID$(A,W1,1)<>" "THENNEXTW1ELSEW1=W1-1
  91. 90 PRINT#1,SPACE$(TS)LEFT$(A,W1);:IFLS>0THENFORZ=1TOLS:PRINT#1,:NEXTZ
  92. 91 A=MID$(A,W1+1):IFA$>""THEN88
  93. 92 U=N(U):GOTO83
  94. 93 IFCX=0THENBEEP:GOTO33
  95. 94 IFNOTCZTHEN97ELSEX2=IT
  96. 95 A(IT)=A(CX):P(IT)=IT-1:N(IT)=IT+1:IT=IT+1:IFCX<>CYTHENCX=N(CX):GOTO95
  97. 96 CY=IT-1:CX=X2:CZ=0
  98. 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
  99. 98 MID$(A(U),1,1)=CHR$(N+Z)
  100. 99 IFN=LUTHENLU=LU+1:M=LU
  101. 100 IFU=CYTHEN70ELSEU=N(U):N=ASC(A(U)):GOTO98
  102. 101 IFLEN(A)>250THENBEEP:A=LEFT$(A,250)
  103. 102 IFE>LEN(A)THENE=E-1
  104. 103 IFE-F=>GTHENF=E-G+1
  105. 104 IFE<FTHENF=E:IFE<1THENE=1:F=1
  106. 105 PRINT@H,MID$(A,F,G);:PRINT@H+E-F,;:B$=INPUT$(1)
  107. 106 ON INSTR(CC$,B$)+1GOTO107,110,109,27,27,117,115,27,27,113,114,27,27,27,105,108,116,111,112
  108. 107 IFB$=CHR$(0)THENA=B$:RETURN
  109. 108 IF B$<>CHR$(162)THENC$=RIGHT$(A,1):MID$(A,E)=B$+MID$(A,E):A=A+C$ELSEGOSUB147
  110. 109 E=E+1:GOTO101
  111. 110 E=E-1:GOTO104
  112. 111 IFE>1THENMID$(A,E-1)=MID$(A,E):A=LEFT$(A,LEN(A)-1):GOTO110ELSE105
  113. 112 IFE<LEN(A)THENMID$(A,E)=MID$(A,E+1):A=LEFT$(A,LEN(A)-1):GOTO102ELSE105
  114. 113 E=1:F=1:GOTO102
  115. 114 E=LEN(A):F=(E-G-1)*-(E>=G)+1:GOTO102
  116. 115 E=INSTR(E+1,A," "):IFE=0THENB=18:GOTO114ELSE102
  117. 116 A=" ":PRINT@H,ER$;:GOTO113
  118. 117 IFE>1THENFORE=E-1TO1STEP-1:IFMID$(A,E,1)<>" "THENNEXT
  119. 118 GOTO 102
  120. 119 Y0=0
  121. 120 FORQC=1TO199:T=ASC(A(N(U))):IFT<=MTHENY0=Y0+1
  122. 121 IFT=0THEN123
  123. 122 IFT>LTHENU=N(U):NEXT
  124. 123 V=U:RETURN
  125. 124 FORQ=QTO1STEP-1:IFL>MTHENX=P(X):L=ASC(A(X)):NEXT
  126. 125 RETURN
  127. 126 IFY1=0THEN130ELSEFORZ=1TOY1
  128. 127 M1=ASC(A(P(U))):IFM1>=LTTHENU=P(U) ELSE129
  129. 128 IFM1>MTHEN127
  130. 129 NEXT
  131. 130 V=U:RETURN
  132. 131 L=ASC(A(X)):Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$
  133. 132 PRINT@40*Y+Z,R1$B$MID$(A(X),2+ZA,37-Z);:RETURN
  134. 133 Z=I*L-I:B$=M$:IFASC(A(N(X)))>LTHENB$=P$
  135. 134 PRINT@40*Y+Z,R2$B$MID$(A(X),2,36-Z);:IFPOS(0)=37THENPRINTAR;
  136. 135 ZA=0:RETURN
  137. 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
  138. 137 F$=A:IFF$=" "THEN140ELSEOPENF$FORINPUTAS1:INPUT#1,MT:PRINT@282,AA;:PRINT@290,"Please Wait...";
  139. 138 FORQ=1TO199:P(Q)=Q-1:N(Q)=Q+1:LINEINPUT#1,A(Q):IFASC(A(Q))=LU+1THENLU=LU+1
  140. 139 IFA(Q)<>"end"THENNEXTELSECLOSE:A(Q)=CHR$(0)+A(Q):P(1)=Q:N(Q)=1:QT=Q-1:IT=Q+1:RETURN
  141. 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
  142. 141 IFPEEK(65442)=1THENMENUELSEX=1:CLS:PRINT"Saving your thoughts";:IFF$=" "THENINPUT" to what";F$
  143. 142 CLOSE:OPENF$FOROUTPUTAS1:PRINT#1,MT:FORY=1TOQT+1
  144. 143 PRINT#1,A(X):X=N(X):NEXT:CLOSE
  145. 144 MENU
  146. 145 M=L:IFMT=0THENMT=-1:LT=LELSE MT=0:LT=1
  147. 146 GOSUB14:GOSUB47:GOSUB131:RETURN
  148. 147 C$="z!="+MID$(A,E)+CHR$(0):C!=VARPTR(C$):C!=PEEK(C!+1)+PEEK(C!+2)*256
  149. 148 CALL 1606,0,C!:CALL2499,0,63105
  150. 149 A=LEFT$(A,E-1)+STR$(Z!)+" ":PRINT@H+F+E,ER$;:E=E-1:RETURN
  151. 150 SOUND1E4,20: IFERR=52ORERR=55ORERR=54OR(ERR=5AND(ERL=138ORERL=137))THENAB="SORRY, THATS NOT A THINK.IT FILE":CLOSE:RESUME136
  152. 151 IFERL=148THEN RESUME101
  153. 152 CLS:PRINT ERR"in line"ERL:END
  154.