home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / commodore-scene-files / Geos / GEOS128 / GeosD81 / cs19.d81 / pmmain (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  14.2 KB  |  451 lines

  1. 0 SYS50116
  2. 1 GOSUB549:GOTO209
  3. 3 PRINT"[147]":SO=2:ZZ=0:FORRE=ZLTOZH:H=INT(RE/BY):L=RE-BY*H
  4. 5 PRINT#15,"P"CHR$(8)CHR$(L)CHR$(H)CHR$(PT(A)):INPUT#8,I$
  5. 7 RE$=STR$(RE):RE$=RIGHT$(RE$,LEN(RE$)-1):GOSUB11:GETA$:IFA$="Q"THEN641
  6. 9 NEXT:GOTO641
  7. 11 IFX=.THENFG=1:GOTO23
  8. 13 FI=.:FG=.:FH=.:L3=LEN(I$):FORZG=1TOX:ZD=LEN(N$(ZG)):L2=(L3-ZD)+1:FORY=1TOL2
  9. 14 IFL2<1THEN21
  10. 15 ONEOGOTO17,19
  11. 16 IFMID$(I$,Y,ZD)=N$(ZG)THENFG=1:GOTO21
  12. 17 IFMID$(I$,Y,ZD)=N$(ZG)THENFH=1:GOTO21
  13. 19 IFMID$(I$,Y,ZD)=N$(ZG)THENFI=FI+1
  14. 21 NEXT:NEXT
  15. 23 IF(EO<2)ANDFG OR((FH<>1)ANDEO=1)THENZZ=ZZ+1:S$(ZZ)=I$+RIGHT$("000",3-LEN(RE$))+RE$
  16. 25 IFFI=XANDEO=2THENZZ=ZZ+1:S$(ZZ)=I$+RIGHT$("000",3-LEN(RE$))+RE$
  17. 27 PRINT"SEARCHING REC#"RE-1"MATCHES="ZZ
  18. 29 RETURN
  19. 31 GOSUB545:IFR>800THEN259
  20. 33 IFR=.THEN209
  21. 35 PRINTCHR$(8)CHR$(142):GOSUB155
  22. 37 PRINT"[144]RECORD #";RE-1""
  23. 39 IFPSTHENPRINT"":FORL=1TO9:N=L:GOSUB135:PRINTN$(L):NEXT
  24. 41 N=1:GOSUB135
  25. 43 H$=" [146][157]":J=0:GOSUB103
  26. 45 GETA$:IFA$=""GOTO45
  27. 47 J$="":L$="":Y$=N$(N):ON-((A$="")*1+(A$="[147]")*2+(A$=DE$)*3)GOTO107,113,183
  28. 49 ON-((A$="[157]")*1+(A$="")*2+(A$="[145]")*3+(A$=R$ORA$=D$)*4)GOTO71,79,117,97
  29. 51 B=ASC(A$):ON-((B=148)*1+(B=34)*2+(B=137)*3+(B=136)*4)GOTO123,45,209,485
  30. 53 ON-((B<32ORB>95ORB=58ORB=44)*1)GOTO45
  31. 55 C$=H$:IFJ=LM(N)THEN C$="[221]"
  32. 57 L$=MID$(Y$,J+2,1):IFL$=""THENL$="[146]"+C$:IFJ>LM(N)THENFL=1:GOTO45
  33. 59 PRINT"[146]"A$;""L$"[146]";:J=J+1:IFJ<LEN(Y$)THENPRINT"[157]";
  34. 61 IFJ>LEN(N$(N))THEN67
  35. 63 IFJ>1THENN$(N)=LEFT$(N$(N),J-1)+A$+RIGHT$(N$(N),LEN(N$(N))-J):GOTO45
  36. 65 IFJ=1THENN$(N)=A$+RIGHT$(N$(N),LEN(N$(N))-1):GOTO45
  37. 67 N$(N)=N$(N)+A$
  38. 69 GOTO45
  39. 71 IFJ=0THEN45
  40. 73 C$=" ":FL=.:IFJ>LM(N)THENC$="[146][221]":FL=1
  41. 75 L$=MID$(Y$,J+1,1):IFL$=""THENL$=C$:IFJ>LM(N)THENPRINT"[157]";
  42. 77 PRINT"[157]"MID$(Y$,J,1)"[146]"L$"[157][157]";:J=J-1:GOTO45
  43. 79 IFJ>LM(N)THEN45
  44. 81 L$="":L1$="":L$=MID$(Y$,J+1,1):L1$=MID$(Y$,J+2,1)
  45. 83 IFJ<LM(N)ANDL1$=""THENL1$=H$+""
  46. 85 :
  47. 87 IFL$=""THENL$=" ":L1$=H$+"":N$(N)=N$(N)+" ":Y$=N$(N)
  48. 89 IFJ>=LM(N)THENFL=1:PRINT"[146]"RIGHT$(Y$,1)"[221]";:J=J+1:GOTO45
  49. 91 PRINT"[146]"L$;""L1$"[146][157]";
  50. 93 J=J+1
  51. 95 GOTO45
  52. 97 IFJ>LM(N)THENPRINT"[146][157][221]":N=FNA(X):GOSUB135:GOSUB103:GOTO45
  53. 99 FL=0:ZX$=MID$(N$(N),J+1,1):IFZX$=""THENZX$=" "
  54. 101 PRINT"[146]"ZX$;:N=FNA(X):GOSUB135:GOSUB103:GOTO45
  55. 103 ZX$=LEFT$(N$(N),1):IFZX$=""THENZX$=H$+""
  56. 105 PRINT""ZX$"[157][146]";:RETURN
  57. 107 IFJ>LM(N)THENPRINT"[146][157][221]":GOTO115
  58. 109 ZX$=MID$(N$(N),J+1,1):IFZX$=""THENZX$=" "
  59. 111 PRINT"[146]"ZX$;:GOTO115
  60. 113 GOSUB114:PRINT"[147]":POKE198,0:GOTO31
  61. 114 FORX=1TO9:N$(X)="":NEXT:S2=FRE(0):RETURN
  62. 115 N=1: GOSUB135:GOTO43
  63. 117 IFJ>LM(N)THENPRINT"[146][157][221]":N=FNB(X):GOSUB135:GOSUB 103:GOTO45
  64. 119 ZX$=MID$(N$(N),J+1,1):IFZX$=""THENZX$=" "
  65. 121 PRINT"[146]"ZX$;:N=FNB(X):GOSUB135:GOSUB103:GOTO45
  66. 123 Y$=N$(N):L1$=RIGHT$(N$(N),LEN(N$(N))-J)
  67. 125 IFJ=LM(N)+1THEN45
  68. 127 IFJ=LM(N)THENL1$=RIGHT$(Y$,1)
  69. 129 L$=LEFT$(Y$,J):N$(N)=L$+" "+L1$:Y$=N$(N)
  70. 131 IFLEN(Y$)>LM(N)+1THENN$(N)=LEFT$(Y$,LEN(Y$)-1):L1$=LEFT$(L1$,LEN(L1$)-1)
  71. 133 PRINT" [146]"L1$;:Y$=L1$+" ":GOSUB193:GOTO45
  72. 135 FL=.:J=.:ONNGOTO137,139,141,143,145,147,149,151,153
  73. 137 PRINT""AC$;:RETURN
  74. 139 PRINT""AC$;:RETURN
  75. 141 PRINT""AC$;:RETURN
  76. 143 PRINT""AC$;:RETURN
  77. 145 PRINT""AC$;:RETURN
  78. 147 PRINT""AC$;:RETURN
  79. 149 GOSUB147:PRINT"";:RETURN
  80. 151 GOSUB149:PRINTAC$;:RETURN
  81. 153 PRINT""AC$;:RETURN
  82. 155 POKE53280,3:POKE53281,3
  83. 157 PRINT"[147]"SPC(13)"'*'=DELETE[144] F2=MENU F7=ENTER[146]"
  84. 159 PRINT"[152]1ST NM..[145]";:N=25:PRINTB1$;:GOSUB181:PRINTB3$
  85. 161 PRINT"LAST NM.[145]";
  86. 163 N=18:PRINTB1$;:GOSUB181:PRINTB3$
  87. 165 PRINT"ORGANIZ.":PRINT"[_=MASK][145][145]";:PRINTB1$;:N=29:GOSUB181:PRINTB3$
  88. 167 PRINT"STREET..[145]";:PRINTB1$;:N=29:GOSUB181:PRINTB3$
  89. 169 PRINT"CITY....[145]";:N=18:PRINTB1$;:GOSUB181:PRINTB3$""
  90. 171 PRINT"STATE...[145]";:N=2:PRINTB1$;:GOSUB181:PRINTB3$;:PRINT"ZIP[145]";:N=5
  91. 173 PRINTB1$;:GOSUB181:PRINTB3$;
  92. 175 PRINT"PH[145]";:N=12:PRINTB1$;:GOSUB181:PRINTB3$
  93. 177 PRINT"KEY.....[145]";:N=20:PRINTB1$;:GOSUB181:PRINTB3$;
  94. 179 RETURN
  95. 181 FORZG=1TON:PRINTX$;:NEXT:RETURN
  96. 183 FL=0
  97. 185 IFJ+1>LEN(N$(N))THENGOSUB197:ON-((J=0)*1+(J<>0)*2)GOTO43,45
  98. 187 Y$=RIGHT$(N$(N),LEN(N$(N))-(J+1))+" "
  99. 189 PRINTY$;
  100. 191 N$(N)=LEFT$(N$(N),J)+LEFT$(Y$,LEN(Y$)-1):GOSUB193:GOTO195
  101. 193 FORX=1TOLEN(Y$):PRINT"[157]";:NEXT:RETURN
  102. 195 PRINT""LEFT$(Y$,1)"[157][146]";:GOTO45
  103. 197 IFJ>LM(N)THENPRINT"[157][146][221][157][157]"H$"[146]";:J=J-1:N$(N)=LEFT$(N$(N),LEN(N$(N))-1):RETURN
  104. 199 IFJ=.THENN$(N)="":RETURN
  105. 201 L2$=" [157][157]"+H$:L1$="[146] [157]"
  106. 203 IFJ<>0THENPRINTL1$L2$;:N$(N)=LEFT$(N$(N),LEN(N$(N))-1):J=J-1:RETURN
  107. 205 PRINTL1$L2$;:J=J-1:RETURN
  108. 207 DATA1,24,27,17,46,28,76,28,106,17,125,1,128,4,134,11,147,19
  109. 209 IFSCTHEN263
  110. 211 PRINT"[147]"CHR$(9)CHR$(14):POKE53280,14:POKE53281,1
  111. 213 IFR=0ANDA$<>"M"THENPO=1:RE=1:GOSUB463:PRINT"[147]"
  112. 215 PRINT"[155][162]";SPC(32)"[162]"
  113. 217 FORX=1TO17:PRINT"";:PRINT"[182]"SPC(32)"[181]":NEXT
  114. 219 PRINT"[185]";:FORX=1TO32:PRINT"[185]";:NEXT:PRINT"[185]"
  115. 221 PRINT"[155][166][166][166][166][166][166][166][166][166][166][166][166][166][154] [205][197][206][213] [155][166][166][166][166][166][166][166][166][166][166][166][166][166]"
  116. 223 PRINT"[151](1) [197]NTER [206]EW [196]ATA":PRINT
  117. 225 PRINT"(2) [214]IEW/[197]DIT [196]ATA":PRINT
  118. 227 PRINT"(3) [208]RINT [196]ATA/[204]ABELS":PRINT
  119. 229 PRINT"(4) [211]EARCH/[211]ORT [196]ATA":PRINT
  120. 233 PRINT"(5) [198]ORMAT [206]EW [196]ATA [196]ISK":PRINT
  121. 235 PRINT"(6) [214]IEW/[197]DIT [203]EY [210]EFERENCE [198]ILE":PRINT
  122. 237 PRINT"(7) [197]XIT [208]ROGRAM":PRINT
  123. 239 PRINTSPC(13)""TY$
  124. 241 TX$=TY$:W=13
  125. 243 GETA$:IFA$=""THENGOSUB447
  126. 245 IFA$=""THEN243
  127. 247 A=VAL(A$):IFA<1ORA>8THEN243
  128. 249 PRINT"[145]"SPC(13)"      [157]"A"[157] [146]     ":GOSUB543
  129. 251 ONAGOTO255,263,701,561,307,361
  130. 253 PRINTCHR$(142)"[147]END?"YS$:GOSUB389:IFA$="N"THEN209
  131. 254 POKE53281,6:POKE53280,14:POKE646,14:PRINT"[147]":GOTO 3000
  132. 255 PS=0:IFR=0THEN31
  133. 257 RE=R+1
  134. 259 IFR>800THENPRINT"[147]DISK FULL...":GOSUB543:GOTO209
  135. 261 GOTO113
  136. 263 POKE53281,1:POKE53280,14:IFR<=1THENRE=1:PO=1:GOSUB461:GOSUB463
  137. 265 IFR=<1THENSC=0:GOTO209
  138. 267 PRINT"[147]"CHR$(14)SPC(9)"*** [214]IEW/[197]DIT [196]ATA ***[146]"
  139. 269 IFSCTHEN285
  140. 271 PRINT"[211]CAN [210]ANGE OF [210]ECORDS?"YS$;:POKE198,0:WAIT197,64:WAIT197,64,64
  141. 273 GETA$:IFA$<>"Y"THENPRINT"[157][157][157][157][157][157][157][206]O[146]     ":SC=1:GOTO285
  142. 275 PRINT:L=0:INPUT"[204]OW LIMIT OF [210]ANGE [[195][210]=1]";L:IFL<1ORL>=RTHENL=1
  143. 277 H=0:INPUT"[200]IGH LIMIT OF [210]ANGE [[195][210]=[197][207][198]]";H:IFH>=800ORH<1ORH>=RTHENH=R-1
  144. 279 PRINT"[147]"CHR$(142):FORRE=L+1TOH+1:GOSUB525:GOSUB535
  145. 281 WAIT653,1,1:GETA$:IFA$="Q"THEN263
  146. 283 NEXT:WAIT653,1,1:PRINT"HIT A KEY...":WAIT197,64,64:WAIT197,32,32:GOTO263
  147. 285 XR=0:PRINT:INPUT"[210]EC [206]UMBER [[195][210]/0=[205]ENU; (-#)=[211]CAN]";XR:IFXR=0THENSC=0:GOTO209
  148. 287 IFXR<0THENSC=0:GOTO275
  149. 289 IFXR>800THENPRINT"800 [210]ECORDS [205]AXIMUM":GOSUB543:GOTO263
  150. 291 IFXR>=RTHENPRINT"[206][207] [210][197][195][207][210][196] [208][210][197][211][197][206][212]":GOSUB543:GOTO263
  151. 293 MR=R:RE=XR+1:PS=2:GOSUB525
  152. 295 R=MR:PRINT"[147]":GOTO31
  153. 297 PRINT"[147]...[206]O [197]NTRIES [208]RESENT":GOSUB543:GOSUB543:GOTO209
  154. 299 OPEN15,8,15,"I0":CLOSE15:RETURN
  155. 307 POKE53280,0:POKE53281,0:PRINT"[147]      *** [198][207][210][205][193][212] [206][197][215] [196][193][212][193] [196][201][211][203] ***"
  156. 309 PRINT"[158][215][193][210][206][201][206][199]: [212]HIS PROCEDURE ERASES ALL DATA AND CREATES A NEW DATA DISK."
  157. 311 PRINT"   [193]RE YOU SURE YOU WANT TO DO THIS?":PRINT""
  158. 313 TX$="[159][212][217][208][197] ([217])ES OR ([206])O":W=6
  159. 315 GETA$:IFA$=""THENGOSUB447
  160. 317 IFA$<>"Y"ANDA$<>"N"THEN315
  161. 319 IFA$="N"THEN209
  162. 321 PRINT:PRINT:PRINTSPC(18)"[217]ES...":GOSUB543
  163. 323 PRINT"[147][198]ORMATTING [206]EW [196]ATA [196]ISK...[208]LEASE [215]AIT":GOSUB325:GOTO327
  164. 325 PRINT"[158]"SPC(14)"[201][206] [208][210][207][199][210][197][211][211]":RETURN
  165. 327 OPEN15,8,15,"I0":GOSUB455:IFE<>21THEN331
  166. 329 PRINT#15,"N0:MAILDATA,RD":GOSUB455:GOTO343
  167. 331 OPEN8,8,8,"#":PRINT#15,"B-R:"8;0;18;0
  168. 333 PRINT#15,"B-P:"8;162
  169. 335 GET#8,A$,B$:TX$=A$+B$:CLOSE8
  170. 337 IFTX$<>"PM"THEN343
  171. 339 PRINT:PRINT"[196][201][211][203] [201][196]=[208][210][207][199] [196][201][211][203]; [201][206][211][197][210][212] [193][206][207][212][200][197][210] [196][201][211][203]":GOSUB543
  172. 341 CLOSE8:CLOSE15:GOTO209
  173. 343 CLOSE8:PRINT#15,"N0:MAILDATA"
  174. 345 CLOSE15:OPEN15,8,15:OPEN8,8,8,"0:DATA,L,"+CHR$(167)
  175. 347 PRINT#15,"P"CHR$(8)CHR$(33)CHR$(3)CHR$(1)
  176. 349 PRINT#8,"END"R$;:GOSUB455:IFE<>50ANDE>19THENEND
  177. 351 PRINT#15,"P"CHR$(8)CHR$(1)CHR$(0)CHR$(1)
  178. 353 PRINT#8,1;R$;:GOSUB455
  179. 357 CLOSE8:OPEN8,8,8,"0:KEYDAT,S,W":PRINT#8,"-"R$"-"R$;:CLOSE8
  180. 359 R=1:CLOSE15:GOTO209
  181. 361 IFR=0THENGOSUB463
  182. 363 PRINT"[147]"SPC(5)CHR$(8)CHR$(142)"***VIEW/MODIFY KEY REFERENCE***":PRINT:PRINT
  183. 365 OPEN15,8,15,"I0":GOSUB455:IFE=21THENPRINT"DISK ERROR":END
  184. 367 OPEN8,8,8,"0:KEYDAT,S,R":GOSUB455:X=1
  185. 369 INPUT#8,K$(X):IFST<>0THEN373
  186. 371 IFK$(X)<>"-"THENINPUT#8,D$(X):X=X+1:GOTO369
  187. 373 IFK$(1)="-"THENCLOSE8:CLOSE15:TE=0:GOTO415
  188. 375 TE=X-1:X=0:CLOSE8:CLOSE15:FL=0:GOTO383
  189. 377 PRINT"[147]";:IFK$(1)="*"THENRETURN
  190. 379 FORZG=1TOTE:PRINT""ZG"[146]"K$(ZG)"="D$(ZG):NEXT
  191. 381 RETURN
  192. 383 GOSUB377:IFK$(1)="*"THEN415
  193. 385 PRINT"EDIT"YS$:GOSUB389:IFA$="Y"THEN393
  194. 387 GOTO415
  195. 389 GETA$:IFA$=""THEN389
  196. 391 RETURN
  197. 393 X=0:INPUT"[145]EDIT WHICH ITEM (CR/0=CANCEL)";X
  198. 395 IFX<1THEN415
  199. 397 IFX>TETHENPRINT"[145]INPUT TOO HIGH..."BK$:GOSUB543:GOTO393
  200. 399 TG=TE:TE=X:GOSUB405:IFK$="*"ANDTG>1THENGOSUB441:GOTO383
  201. 401 IFK$="*"ANDTG=1THENK$(1)="-":D$(1)="-":TE=TG:PRINT"WRITING FILE...":GOTO431
  202. 403 TE=TG:GOTO383
  203. 405 DX$="":K$="":FL=1:PRINT"[147]"SPC(5)"***('*'= DELETE; CR= CANCEL)***"
  204. 407 PRINT"#"TE;:INPUT"[157] KEY: [146]";K$
  205. 409 IFK$="*"ORK$=""THENRETURN
  206. 411 INPUT"DESCRIPTION: [146]";DX$
  207. 413 K$(X)=K$:D$(X)=DX$:RETURN
  208. 415 IFTE>19THENPRINT"FILE FULL...":GOSUB543:IFFLTHEN425
  209. 417 PRINT"[145]ADD A RECORD"YS$BK$:GOSUB389:IFA$<>"Y"THEN425
  210. 419 TE=TE+1:X=TE:GOSUB405
  211. 421 IFK$="*"ORK$=""ORDX$=""THENTE=TE-1
  212. 423 GOTO383
  213. 425 PRINT"[145]CONTINUE EDIT?"YS$BK$:GOSUB389:IFA$="Y"THEN383
  214. 427 IFFL=0THEN209
  215. 429 PRINT"[145]WRITING FILE..."BK$
  216. 431 OPEN15,8,15,"S0:KEYDAT":GOSUB455
  217. 433 OPEN8,8,8,"0:KEYDAT,S,W":GOSUB455
  218. 435 FORX=1TOTE:PRINT#8,K$(X);R$;D$(X):NEXT:TE=0:FL=0
  219. 437 GOSUB455:CLOSE8:CLOSE15
  220. 439 GOTO209
  221. 441 IFX=TEANDX=TGTHENTE=TE-1:RETURN
  222. 443 FORZG=XTOTG:K$(ZG)=K$(ZG+1):D$(ZG)=D$(ZG+1):NEXT
  223. 445 TE=TG-1:RETURN
  224. 447 X=-((X<2)*1)+1:ONXGOSUB451,453:FORL=1TO90:NEXT
  225. 449 RETURN
  226. 451 PRINT"[145][146]"SPC(W)TX$:RETURN
  227. 453 PRINT"[145]"SPC(W)TX$:RETURN
  228. 455 INPUT#15,E,E$,TR,SE:IFE=21ORE=50THENRETURN
  229. 457 IFE>20THENPRINT:PRINT""E;E$;" [212]RACK="TR;"[211]ECTOR="SE:END
  230. 459 RETURN
  231. 461 HI=INT(RE/BY):LO=RE-BY*HI:RETURN
  232. 463 IFR=1THEN483
  233. 465 PRINT"[147]"SPC(11)"[201][206][211][197][210][212] [196][193][212][193] [196][201][211][203]":PRINTSPC(8)"[200]IT [193]NY [203]EY [215]HEN [210]EADY"
  234. 467 PRINTSPC(11)"[OR [205] FOR [205]ENU]"
  235. 469 POKE198,0:WAIT197,64,64:GETA$:IFA$="M"THENSC=0:RETURN
  236. 471 PRINT"[147][207]NE [205]OMENT...":OPEN15,8,15:OPEN8,8,8,"DATA":GOSUB455
  237. 473 IFE>20THEN457
  238. 474 GOSUB477:GOTO479
  239. 475 REM *** VARS TO CHANGE:PRNTR-DE=DEVICE#:LW=LINE SKIP ON LABELS:SH=SHOW REC#
  240. 477 SH=1:DE=4:LW=4:RETURN:REM DEFAULTS SH=0 (NO SHOW)/LW=4 FOR SPC BETWN LABELS
  241. 478 :
  242. 479 PRINT#15,"P"CHR$(8)CHR$(LO)CHR$(HI)CHR$(PO)
  243. 481 INPUT#8,R:CLOSE8:CLOSE15:RE=R+1:IFR>1THENPRINT"[147]":RETURN
  244. 483 PRINTCHR$(14)"[147][206]O [197]NTRIES [208]RESENT...":GOSUB543:GOSUB543:RETURN
  245. 485 IFR>801THEN259
  246. 487 GOTO491
  247. 489 GOSUB461:OPEN15,8,15:OPEN8,8,8,"DATA":RETURN
  248. 491 IFLEFT$(N$(1),1)<>"*"THEN509
  249. 493 IFRE=R+1THENN$(1)="?"+RIGHT$(N$(1),LEN(N$(1))-1):GOTO509
  250. 495 PRINT"[147]DO YOU WISH TO DELETE RECORD? (N=NO)":GOSUB389:IFA$="N"THEN209
  251. 497 PRINT"[147]RECORD #"RE-1"DELETED"
  252. 499 IFRE>=RTHENR=R-2:GOSUB489:GOTO517
  253. 501 PRINT"RECORD #"R-1"[157] REPLACES #"RE-1"[146]"
  254. 503 TE=RE:RE=R:GOSUB461:GOSUB525:RE=TE
  255. 505 GOSUB489:FORX=1TO9:PRINT#15,"P"CHR$(8)CHR$(LO)CHR$(HI)CHR$(PT(X))
  256. 507 PRINT#8,N$(X)R$;:NEXT:R=R-2:GOTO517
  257. 509 GOSUB489:FORX=1TO9:PRINT#15,"P"CHR$(8)CHR$(LO)CHR$(HI)CHR$(PT(X))
  258. 511 LX=LEN(N$(X)):IFLX>1ANDRIGHT$(N$(X),1)=" "THENN$(X)=LEFT$(N$(X),LX-1):GOTO511
  259. 513 IFN$(X)=""THENN$(X)="-"
  260. 515 PRINT#8,N$(X);R$;:NEXT:IFPSTHENZF=1:GOTO521
  261. 517 PRINT#15,"P"CHR$(8)CHR$(1)CHR$(0)CHR$(1)
  262. 519 PRINT#8,R+1;R$;:R=R+1:RE=R+1:GOSUB114
  263. 521 CLOSE8:CLOSE15:IFPSTHENTN=PS:ZF=0:PS=0:ONTNGOTO209,263
  264. 523 GOTO259
  265. 525 OPEN15,8,15:OPEN8,8,8,"DATA":GOSUB461:GOSUB455
  266. 527 FORX=1TO9
  267. 529 PRINT#15,"P"CHR$(8)CHR$(LO)CHR$(HI)CHR$(PT(X))
  268. 531 INPUT#8,N$(X):NEXT
  269. 533 CLOSE8:CLOSE15:RETURN
  270. 535 PRINT"RECORD #"RE-1"[157]:[146]"
  271. 537 PRINT"[146]"N$(1)" ";N$(2):PRINTN$(3)
  272. 539 PRINTN$(4):PRINTN$(5)", "N$(6)" "N$(7):PRINT"PHONE:[146] "N$(8)
  273. 541 IFN$(9)<>""THENPRINT"KEYS:[146] "N$(9):PRINT:PRINT:RETURN
  274. 543 FORZG=1TO400:NEXT:RETURN
  275. 545 IFR=0THENRE=1:PO=1:GOSUB461:GOSUB463
  276. 547 RETURN
  277. 549 ZG=.:X=.:RE=.:ZL=.:ZH=.:M=207
  278. 550 DEFFNA(X)=N*(-(N<9))+1*(-(N<10)):DIMS$(800),N$(9),K$(21),D$(21)
  279. 551 DEFFNB(X)=N-(-(N>0))*1+(-(N<=1))*9:BK$="                ":BY=256
  280. 553 B1$="[213][157][221][157][202][145][145]":B2$="[192][157][192][145][145]":B3$="[201][157][221][157][203][145][145][152]":X$=B2$:V$=CHR$(10)
  281. 555 FORX=1TO9:READPT(X),LM(X):NEXT:TY$="[212][217][208][197] [193] [206][213][205][194][197][210]":LL=204
  282. 557 AC$="":R$=CHR$(13):D$="":UP$="[145]":NU$=CHR$(0):DE$=CHR$(20)
  283. 559 AX$=" (-(#)=ABORT)":YS$=" (Y=YES)":RETURN
  284. 561 IFR=0THENGOSUB463:IFA$="M"THEN209
  285. 563 IFR=1THEN297
  286. 565 RE=R:GOSUB461:POKE251,LO:POKE252,HI:CLR:GOSUB549:OPEN15,8,15:GOSUB475
  287. 567 CLOSE15:R=PEEK(251)+256*PEEK(252):GOSUB569:ONFLGOTO585,643,631
  288. 569 PRINT"[147]";:POKE53281,6:POKE53280,6:PRINTSPC(9)CHR$(8)CHR$(142);
  289. 571 PRINT"***SEARCH/SORT DATA***":IFFLTHEN577
  290. 573 PRINT:PRINT"RETRIEVE ALL?"YS$"[145][145]":GOSUB389:IFA$<>"Y"THEN577
  291. 575 ZL=1:ZH=R-1:FL=2:X=0:A=2:GOTO625
  292. 577 PRINT"INPUT UP TO 9 STRINGS; ENTER [RETURN] ONA BLANK LINE TO QUIT."
  293. 579 PRINT:X=.
  294. 581 X=X+1:PRINT"STRING#";X;:N$(X)="":INPUTN$(X):IFX<9ANDN$(X)<>""THEN581
  295. 583 IFX=1ANDN$(X)=""THENFL=2:X=.:RETURN
  296. 585 GOSUB587:GOTO595
  297. 587 EO=.:PRINT"EXCLUSIVE/OR SEARCH?"YS$:GOSUB389:IFA$="Y"THENEO=1:RETURN
  298. 589 IFX-1=1THENRETURN
  299. 591 PRINT"LOGICAL AND SEARCH?"YS$:GOSUB389:IFA$="Y"THENEO=2
  300. 593 RETURN
  301. 595 B=A:GOSUB677:IFA=9THEN209
  302. 597 IFA<>BTHEN605
  303. 599 ZQ=ZZ:ZZ=.:PRINT"[147]":FORXX=1TOZQ:I$=LEFT$(S$(XX),LEN(S$(XX))-3)
  304. 601 RE$=RIGHT$(S$(XX),3):RE=VAL(RE$)-1:GOSUB11:GETA$:IFA$="Q"THEN641
  305. 603 NEXT:GOTO641
  306. 605 IFA>7THENA=A+1
  307. 607 IFFL=3THEN631
  308. 609 GOSUB611:GOTO625
  309. 611 ZL=.
  310. 613 PRINT"[147]SYSTEM CONTAINS"R-1"RECORDS.":PRINT"FROM SCAN RANGE (CR=ALL)"TE$;
  311. 614 TE$="":INPUTZL:IFZL<0THENRETURN
  312. 615 IFZL=0THENZL=1:ZH=R-1:RETURN
  313. 617 IFZL>R-1THENZL=R-1
  314. 619 INPUT"TO SCAN RANGE";ZH:IFZH<ZLTHENZH=ZL
  315. 621 IFZH>R-1THENZH=R-1
  316. 623 RETURN
  317. 625 OPEN15,8,15:OPEN8,8,8,"DATA":GOSUB455:ZH=ZH+1:ZL=ZL+1:GOTO3
  318. 627 GOSUB691:PRINT:PRINT"[147]SUBSEARCH?"YS$:GOSUB389:IFA$<>"Y"THEN649
  319. 629 FL=3:GOTO567
  320. 631 PRINT"[147]":OPEN15,8,15:OPEN8,8,8,"DATA":GOSUB455
  321. 633 ZQ=ZZ:ZZ=.:FORXX=1TOZQ:RE=VAL(RIGHT$(S$(XX),3)):GOSUB461
  322. 635 PRINT#15,"P"CHR$(8)CHR$(LO)CHR$(HI)CHR$(PT(A)):INPUT#8,I$
  323. 637 GETA$:IFA$="Q"THEN641
  324. 639 RE$=STR$(RE):RE$=RIGHT$(RE$,LEN(RE$)-1):GOSUB11:NEXT:CLOSE8:CLOSE15
  325. 641 CLOSE8:CLOSE15:IFZZ=0THENPRINT"...NO MATCHES FOUND":GOSUB543:GOTO209
  326. 643 WAIT197,64:IFX<>0THEN627
  327. 645 IFZZ=0THEN209
  328. 647 GOSUB691
  329. 649 PRINT"SORT BY:":PRINT"1)SEARCH FIELD":PRINT"2)DIFFERENT FIELD"
  330. 651 PRINT"3)NONE: MENU":PRINT"?..."
  331. 653 GOSUB389:IFA$<"1"ORA$>"3"THEN653
  332. 655 ON-((A$="1")*1+(A$="2")*2+(A$="3")*3)GOTO673,659,209
  333. 659 B=A:GOSUB677:IFA=BTHEN673
  334. 661 IFA=9THEN209
  335. 663 IFA>7THENA=A+1
  336. 665 OPEN15,8,15:OPEN8,8,8,"DATA":GOSUB455:IFE=21THENEND
  337. 667 PRINT"[147]PLEASE WAIT.":FORX=1TOZZ:PRINTZZ-X"[157]   [145]":RE$=RIGHT$(S$(X),3)
  338. 669 RE=VAL(RE$):H=INT(RE/BY):L=RE-BY*H:PRINT#15,"P"CHR$(8)CHR$(L)CHR$(H)CHR$(PT(A))
  339. 671 INPUT#8,I$:S$(X)=I$+RE$:NEXT:CLOSE8:CLOSE15
  340. 673 PRINT"[147]SORTING...":SYS49152,ZZ,S$(1)
  341. 675 PRINT"DONE!!!":GOSUB543:GOSUB691:GOTO209
  342. 677 Y=X:PRINT"[147]"R$AC$"SEARCH/SORT BY FIELD:":PRINT
  343. 679 PRINTAC$"1) FIRST NAME":PRINTAC$"2) LAST NAME":PRINTAC$"3) ORGANIZATION"
  344. 681 PRINTAC$"4) STREET"
  345. 683 PRINTAC$"5) CITY":PRINTAC$"6) STATE":PRINTAC$"7) ZIP CODE"
  346. 685 PRINTAC$"8) KEY CODE":PRINTAC$"9) [158]RETURN TO MENU":PRINT:PRINTAC$"?";
  347. 687 GOSUB389:A=VAL(A$):IFA>9ORA<1THEN687
  348. 689 PRINTA:X=X-1:GOSUB543:RETURN
  349. 691 PRINT"[147]"ZZ"RECORDS FOUND"
  350. 693 PRINT"VIEW?"YS$:WAIT197,64:POKE198,0:GOSUB389:IFA$<>"Y"THENRETURN
  351. 695 FORZG=1TOZZ:RE=VAL(RIGHT$(S$(ZG),3))-1
  352. 697 SH$=LEFT$(S$(ZG),LEN(S$(ZG))-3)
  353. 699 PRINT"#"RE,SH$:WAIT653,1,1:NEXT:GOTO693
  354. 701 IFR=0THENRE=1:PO=1:GOSUB461:GOSUB463
  355. 703 IFR=1THEN297
  356. 705 PRINTCHR$(142)
  357. 707 PRINT"[147][144]";:POKE53281,15:POKE53280,15:PRINTSPC(10)"***PRINT OPTIONS***"
  358. 709 PRINT""AC$" 1) MAILING LABELS":PRINTAC$" 2) PRINT REPORT/LIST"
  359. 711 PRINTAC$" 3) MENU"
  360. 713 GOSUB389:IFA$<"1"ORA$>"3"THEN713
  361. 715 IFA$="2"THEN783
  362. 717 IFA$="3"THEN209
  363. 719 PRINT"INDIVIDUAL LABEL?"YS$:GOSUB389:IFA$<>"Y"THEN765
  364. 722 PRINT:PRINT"[157]"R-1"RECORDS PRESENT...":RE=0:INPUT"RECORD # (CR=QUIT)";RE
  365. 723 IFRE<1THEN707
  366. 725 IFRE>R-1THENPRINT"--INPUT TOO HIGH...":GOTO722
  367. 727 RE=RE+1:GOSUB525
  368. 729 PRINT:GOSUB733
  369. 731 PRINT"HIT A KEY":WAIT197,64,64:GOTO707
  370. 733 GOSUB859
  371. 735 LI=LW-1:NM$=N$(1)+" "+N$(2):CY$=N$(5)+", "+N$(6)+" "+N$(7):TE=TE+1
  372. 737 PRINT"";:IFSHTHENPRINT"#"RE-1
  373. 739 PRINTNM$:GG$=N$(3):TE$=LEFT$(GG$,1):IFGG$=""ORTE$="_"THEN745
  374. 741 IFTE$="_"THENGG$=RIGHT$(GG$,LEN(GG$)-1)
  375. 743 PRINTGG$
  376. 745 PRINTN$(4):PRINTCY$:PRINT"[144]"
  377. 747 GOSUB749:RETURN
  378. 749 OPEN4,DE:IFSHTHENPRINT#4,SPC(SW)"[#"RE-1"]":LI=LI-1
  379. 751 PRINT#4,SPC(SW)NM$
  380. 755 IFGG$=""ORTE$="_"THEN761
  381. 757 IFTE$="_"THENGG$=RIGHT$(GG$,LEN(GG$)-1)
  382. 759 PRINT#4,SPC(SW)GG$:LI=LI-1
  383. 761 PRINT#4,SPC(SW)N$(4):PRINT#4,SPC(SW)CY$:FORX=1TOLI:PRINT#4:NEXT:C9=C9+1
  384. 762 IFC9=20THENTF=-4:C9=.:TE=0
  385. 763 IFTE=5THENTE=-7:PRINT#4:TF=TF+1:IFTF>2THENTF=.
  386. 764 CLOSE4:WAIT653,1,1:RETURN
  387. 765 IFSOANDZZ<>0THENPRINT"LAST SORT?"YS$:GOSUB389:IFA$="Y"THEN769
  388. 767 GOTO775
  389. 769 TE=.:TF=1:FORZG=1TOZZ:RE=VAL(RIGHT$(S$(ZG),3)):GOSUB525:GOSUB733
  390. 771 GETA$:IFA$="Q"THENCLOSE4:GOTO707
  391. 773 NEXT:GOTO707
  392. 775 TE$=AX$:GOSUB611:IFZL<0THEN707
  393. 776 FORZG=ZLTOZH:RE=ZG+1
  394. 777 GOSUB525:GOSUB733
  395. 779 GETA$:IFA$="Q"THENCLOSE4:GOTO707
  396. 781 NEXT:GOTO707
  397. 783 TE$=AX$:IFSOANDZZ<>0THENPRINT"LAST SEARCH/SORT?"YS$:GOSUB389:IFA$="Y"THEN809
  398. 784 PRINT"LIST?"YS$:GOSUB389:IFA$="Y"THENSO=.:GOTO809
  399. 785 ZL=1:ZH=R-1
  400. 786 PRINT"DUMP ALL DATA?"YS$:GOSUB389:IFA$<>"Y"THEN801
  401. 787 ZL=1:ZH=R-1:GOSUB789:GOTO707
  402. 789 OPEN4,DE:FORZG=ZLTOZH:RE=ZG+1:GOSUB525
  403. 791 PRINT#4,"#:"RE-1":";:FORX=1TO9STEP3:FORXX=0TO2
  404. 793 PRINTN$(X+XX):PRINT#4,N$(X+XX)" :";:IFX+XX=6ORX+XX=3THENPRINT#4
  405. 795 NEXT:NEXT:PRINT#4
  406. 797 GETA$:IFA$<>"Q"THENPRINT#4:NEXT
  407. 799 PRINT#4:CLOSE4:RETURN
  408. 801 PRINT"DUMP SELECTED DATA?"YS$:GOSUB389:IFA$<>"Y"THEN707
  409. 803 TE$="(-(#)=ABORT)":GOSUB611:IFZL=0THEN707
  410. 804 IFZL<0THEN707
  411. 805 GOSUB789:GOTO707
  412. 809 PRINT"[147]REPORT GENERATOR...":PRINT
  413. 811 TG$="":PRINT"INPUT TITLE LINE (CR=NONE; '*'=ABORT)":INPUTTG$:IFTG$=""THEN815
  414. 812 IFTG$="*"THEN707
  415. 815 IFSOTHENZL=1:ZH=ZZ:GOTO819
  416. 817 GOSUB611
  417. 819 OPEN4,DE:PRINT#4:PRINT#4:PRINT#4
  418. 821 IFTG$=""THEN831
  419. 827 CT=40-INT(LEN(TG$)/2)
  420. 829 LU=.:PU=1:PRINT#4,SPC(CT)TG$:PRINT#4:PRINT#4
  421. 831 LU=6:FORZG=ZLTOZH:GOSUB855:IFSOTHENRE$=RIGHT$(S$(ZG),3):RE=VAL(RE$):GOTO835
  422. 833 RE=ZG+1
  423. 835 GOSUB525
  424. 837 RE$=RIGHT$(STR$(RE-1),LEN(STR$(RE-1))-1)
  425. 839 ZM=6:GOSUB855:IFSHTHENPRINT#4,"#"LEFT$("000",3-LEN(RE$))RE$": ";:ZM=.
  426. 841 X1=LEN(N$(1))+LEN(N$(2))+2
  427. 843 X2=LEN(N$(8)):PRINT#4,SPC(ZM)N$(2)", "N$(1);:LU=LU+1
  428. 845 FORX=1TO52-X1-6:PRINT#4,".";:NEXT
  429. 847 TE$=LEFT$(N$(3),1):IFTE$="_"ORTE$=""ORTE$="-"THEN851
  430. 849 PRINT#4,N$(3):LU=LU+1:PRINT#4,SPC(52);
  431. 851 PRINT#4,N$(4):PRINT#4,SPC(52-X2-1)N$(8)" "N$(5)", "N$(6)" "N$(7)
  432. 853 LU=LU+1:GETA$:IFA$<>"Q"THENNEXT
  433. 854 GOTO857
  434. 855 IFLU>60THENFORXH=LUTO63:PRINT#4,V$;:NEXT:PRINT#4,SPC(35)"-PG"PU"-":PRINT#4,V$:LU=1:PU=PU+1
  435. 856 RETURN
  436. 857 FORZG=LUTO63:PRINT#4,CHR$(10);:NEXT:IFPU>1THENPRINT#4,SPC(35)"-PG"PU"-"
  437. 858 CLOSE4:GOTO707
  438. 859 FORX=1TO9:IFN$(X)="-"THENN$(X)=""
  439. 860 NEXT:RETURN
  440. 3000 PRINT"[147]":POKE53280,5:POKE53281,6:POKE646,3:PRINT CHR$(14)
  441. 3001 PRINT"  [208]LEASE INSERT GEOS BOOT DISKETTE,"
  442. 3002 PRINT"   THEN PRESS '[210][197][212][213][210][206]'"
  443. 3003 GETC$:IFC$<>CHR$(13)THEN3003
  444. 3004 PRINT"          WORKING...        "
  445. 3005 OPEN15,8,15:PRINT#15,"I":CLOSE15:OPEN1,8,2,"$"
  446. 3006 FORI=1TO143:GET#1,A$:NEXT
  447. 3007 GET#1,B$:A$=A$+B$:CLOSE1
  448. 3008 IFA$="GE"THEN3010
  449. 3009 PRINT"[145]          [201]NCORRECT [196]ISKETTE":GOTO3001
  450. 3010 LOAD"GEOS",8,1
  451.