home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64Software / TELISTER-II (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  8.4 KB  |  319 lines

  1. 25 REM (C) 7/20/89   LAMBERT KLEIN
  2. 26 REM RELEASED TO THE PUBLIC DOMAIN
  3. 27 REM NOT TO BE SOLD FOR PROFIT.
  4. 30 DM=350:
  5. 70 DIMA$(DM):DIMB$(DM):
  6. 75 NF$="T.TELISTER FILE"
  7. 77 TT$="TELISTER II"
  8. 78 T2$="NO FILE IN MEMORY"
  9. 79 QS$=" SAVE THIS FILE TO DISK? [146] Y/N "
  10. 80 SS$="[160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160][160]":REM 20    SHIFT SPACE
  11. 85 BG$="[180] ":EN$="[167] "
  12. 90 S2$="                         ":
  13. 95 S3$=S2$+"              "
  14. 100 PL$=""
  15. 120 UN$=CHR$(27)+CHR$(45)+CHR$(1):UF$=CHR$(27)+CHR$(45)+CHR$(0)
  16. 130 FF$=CHR$(12)
  17. 140 PRINT"[147]":POKE53280,0:POKE53281,0
  18. 142 X1=3:X2=33:Y1=1:Y2=22:POKE646,6
  19. 145 POKE10434+1,29
  20. 148 GOSUB3460
  21. 149 POKE10434+1,32
  22. 150 T=0:C(0)=4:C(1)=08:C(2)=12
  23. 160 C$(0)=" TELISTER II"
  24. 170 C$(1)="(C) 1989"
  25. 180 C$(2)="LAMBERT  KLEIN
  26. 185 [129]T[178]0[164]2
  27. 190 X2[178][195](C$(T)):X1[178]20[171](X2[173]2):Y1[178]C(T):Y2[178]1
  28. 195 [151]646,15
  29. 200 [141]3460:[153][163]X1[170]1);C$(T)
  30. 210 [130]
  31. 220 [141]2820
  32. 230 [159]DV,DV,15:[139]SD[179][177]DV[167]  [159]SD,SD,15
  33. 240 X[178]1:N[178]0:C[178]0
  34. 245 [141]1130:[141]2180:[139]A[179][177]0[167] T2$[178]B$:N[178]0:[137]1310
  35. 246 T2$[178]"FILE IN MEMORY"
  36. 250 [137]1300
  37. 260 [153]"LOAD":X[178]N[170]1:N[178]X
  38. 270 [151]646,15:Y1[178]1:[141]3460:[153][163]X1[170]1)""A$(X[171]1):Y1[178]4:[141]3460:
  39. 275 [153][163]X1[170]1)""B$(X[171]1):
  40. 280 X1[178]10:X2[178]17:Y1[178]07:Y2[178]1:[153]"LIST":[141]3460
  41. 290 [153][163]X1[170]1)"   'E' TO END    ":[139]N[178]0[167]300
  42. 300 Y1[178]10:[141]3460
  43. 310 [151]646,15:Y1[178]13:[141]3460:[153][163]X1[170]1);
  44. 320 [153]"SYS  ENTER NAME ";X:[153]""
  45. 330 [133]A$(X)
  46. 340 [153]"ON"S2$
  47. 350 [139]A$(X)[178]"E"[167]N[178]N[171]1:[137]830
  48. 355 [139]A$(X)[178]""[167]N[178]N[171]1:[137]830
  49. 360 A$(X)[178][200](A$(X)[170]SS$,16)
  50. 370 Y1[178]10:[141]3460:[153][163]X1[170]1)"PRINT#"A$(X):Y1[178]13
  51. 380 [141]3460:[153]""[163]X1[170]1);
  52. 390 [153]"   ENTER NO. ";X:[153]""
  53. 400 [133]B$(X)
  54. 410 [153]"ON"S2$
  55. 420 [139][195](B$(X))[178]7[167]B$(X)[178][200](B$(X),3)[170]"-"[170][202](B$(X),4)
  56. 430 B$(X)[178][200](B$(X)[170]SS$,16)
  57. 440 X[178]X[170]1:N[178]X
  58. 450 [137]270
  59. 460 [143] PRINT-OUT
  60. 470 [139]N[179][177]0[167]510
  61. 480 [151]646,4
  62. 490 X2[178]16:X1[178]10:Y1[178]11:Y2[178]1:[151]646,10:[141]3460:[153][163]X1[170]1)"NOTHING TO PRINT
  63. 500 FORT=1TO500:NEXT:GOTO1350
  64. 510 OPEN4,4 :
  65. 515 POKE646,06:X1=10:X2=17:Y1=02:Y2=1:GOSUB3460
  66. 520 PRINTTAB(X1+1)"    WAIT..."
  67. 540 FORF=1TO4:A$(N+F)="                "
  68. 550 B$(N+F)="                "
  69. 555 NEXT
  70. 575 POKE646,06:X1=10:X2=17:Y1=02:Y2=1:GOSUB3460
  71. 577 PRINTTAB(X1+1)"   PRINTING..."
  72. 580 PRINT#4,CHR$(27)+CHR$(49);:REM 7/72 LINE SPACING
  73. 590 PRINT#4,CHR$(27)+CHR$(71);:REM       DOUBLE PRINTING
  74. 610 PRINT#4,CHR$(27)+CHR$(69);:REM      EMPHASIS
  75. 640 PRINT#4
  76. 660 :FORX=1TONSTEP4
  77. 670 PRINT#4,"[207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]";
  78. 680 PRINT#4," [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208] [207][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][183][208]"
  79. 690 PRINT#4,BG$;A$(X);EN$;BG$;A$(X+1);EN$;
  80. 700 PRINT#4,BG$;A$(X+2)EN$;BG$;A$(X+3)EN$;
  81. 710 PRINT#4,"[180]"SPC(17)"[167] [180]"SPC(17)"[167] [180]"SPC(17)"[167] [180]"SPC(17)"[170]"
  82. 720 PRINT#4,BG$;B$(X)EN$;BG$;B$(X+1)EN$;
  83. 730 PRINT#4,BG$;B$(X+2)EN$;BG$;B$(X+3)EN$;
  84. 740 PRINT#4,"[204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186] [204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]";
  85. 750 PRINT#4," [204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186] [204][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][164][186]"
  86. 760 PRINT#4:PRINT#4
  87. 770 IFX=57THENPRINT#4,FF$;
  88. 780 NEXT:
  89. 800 FORY=1TO3:SYS10030:NEXT
  90. 810 PRINT#4:CLOSE4:GOTO1300
  91. 820 X2=LEN(QS$)+2:Y1=21:Y2=1:X1=20-(X2/2):POKE646,2:GOSUB3460
  92. 821 PRINTTAB(X1+1);QS$
  93. 822 GETA$:IFA$="Y"THEN830
  94. 823 IFA$="N"THEN1300
  95. 824 GOTO822
  96. 830 REM  IFN=0THENN=X
  97. 840 X=0
  98. 850 IFN<>0THEN880
  99. 860 X2=15:X1=11:Y1=11:Y2=1:POKE646,10:GOSUB3460:PRINTTAB(X1+1)"NOTHING TO SAVE"
  100. 870 FORT=1TO500:NEXT:GOTO1300
  101. 880 A=0
  102. 890 POKE646,5:X1=1:X2=9:Y1=16:Y2=1:GOSUB3460:PRINTTAB(X1+1)" UNIT"DV
  103. 900 RF$=NF$
  104. 940 OPEN2,DV,2,RF$+",S,W":X=0
  105. 950 GOSUB2160:IFA=0THEN980
  106. 960 IFA=63THEN1040
  107. 970 GOTO1090
  108. 980 POKE646,1:X1=15:X2=13:Y1=20:Y2=3:GOSUB3460:PRINTTAB(X1+1)" SAVING FILE"
  109. 990 X=X+1:
  110. 1000 PRINT#2,A$(X):PRINT#2,B$(X):IFX=NTHEN1030
  111. 1010 IFX=>DM THEN1030
  112. 1020 GOTO990
  113. 1030 CLOSE2:A=0:GOTO1300
  114. 1040 X2=LEN(B$):X1=15:Y1=18:Y2=2:POKE646,2:GOSUB3460
  115. 1050 PRINTTAB(X1+1)""B$:PRINTTAB(X1+1)"REPLACE?"
  116. 1060 GETAN$:IFAN$=""THEN1060
  117. 1070 IFAN$<>"Y"THEN1030
  118. 1080 A=0:CLOSE2:RF$="@0:"+RF$:GOTO940
  119. 1090 X1=15:X2=LEN(B$)+2 :Y1=20:Y2=3:POKE646,2:GOSUB3460
  120. 1100 PRINTTAB(X1+1)""B$:
  121. 1110 FORT=1TO500:NEXT:GOTO1030
  122. 1120 PRINT"";
  123. 1130 REM LOAD FILE
  124. 1140 REM
  125. 1150 MG$=" LOAD":
  126. 1160 X=0:   :A=0
  127. 1170 X1=13:X2=12:Y1=20:Y2=1:POKE646,1:GOSUB3460
  128. 1180 PRINTTAB(X1+1)"[159]LOADING....."
  129. 1190 OPEN2,DV,2,NF$+",S,R"
  130. 1200 POKE646,06:X1=10:X2=17:Y1=02:Y2=1
  131. 1210 GOSUB2170:IFA<>0THENGOSUB3460:PRINTTAB(X1+1);B$:SYS10030:CLOSE2:GOTO1300
  132. 1215 N=0
  133. 1220 X=X+1:N=N+1:INPUT#2,A$(X):INPUT#2,B$(X)
  134. 1230 IFX=>DMTHENPRINT"OVERLOADED!":FORTT=1TO1800:NEXT:E=DM:GOTO1260
  135. 1240 IF64ANDSTTHEN1260
  136. 1250 GOTO1220
  137. 1260 REM
  138. 1280 CLOSE2:
  139. 1290 RETURN
  140. 1300 T2$="FILE IN MEMORY:":IF N=0THEN T2$="NO FILE IN MEMORY"
  141. 1305 IFA<>0THENT2$=B$:A=0
  142. 1310 SF$="(SORT FIRST)"
  143. 1320 IFN<0THENN=0
  144. 1330 PRINT"[147]"
  145. 1340 POKE53280,0:POKE53281,0
  146. 1350 SYS10030
  147. 1360 MG$=" LOAD"
  148. 1362 IFNT$="NOT"THEN1370
  149. 1364 POKE646,06:X1=10:X2=17:Y1=02:Y2=1:GOSUB3460
  150. 1365 PRINTTAB(X1+1)""TT$
  151. 1370 POKE646,14:X1=10:X2=17:Y1=5:Y2=10:GOSUB3460
  152. 1380 X=N
  153. 1390 PRINTTAB(X1+1)"ENTER/ADD"
  154. 1400 PRINTTAB(X1+1)"LOAD "LM$
  155. 1410 PRINTTAB(X1+1)"SAVE "SM$
  156. 1420 PRINTTAB(X1+1)"VIEW"
  157. 1430 PRINTTAB(X1+1)"PRINT
  158. 1440 [153][163]X1[170]1)"^SORT
  159. 1450 PRINTTAB(X1+1)"DELETE
  160. 1460 [153][163]X1[170]1)"RESTART
  161. 1470 PRINTTAB(X1+1)"FIND "SF$
  162. 1560 Y1=17:Y2=1:GOSUB3460:PRINTTAB(X1+1)""T2$
  163. 1570 GETA$:IFA$=""THEN1570
  164. 1580 IFA$<>"R"THEN1630
  165. 1590 PRINT"ARE YOU SURE?";
  166. 1600 GETG$:IFG$="Y"THENRUN
  167. 1610 IFG$=""THEN1600
  168. 1620 GOTO1300
  169. 1630 NT$=""
  170. 1640 IFA$="D"THEN2560
  171. 1650 IFA$="L"THEN DV=DV(1):POKE10550,DV   :GOSUB 1130:GOTO1300
  172. 1660 IFA$="[204]"THENDV=DV(2):POKE10550,DV:GOSUB1130:GOTO1300
  173. 1670 IFA$="^"THENY1=17:Y2=1: GOSUB3460:PRINTTAB(X1+5)" S[159]O[154]RT[158]ING ":GOTO2220
  174. 1680 IFA$="F"THEN2360
  175. 1690 IFA$="E"THEN260
  176. 1700 IFA$="S"THENDV=DV(1):GOTO830
  177. 1710 IFA$="[211]"THENDV=DV(2):GOTO830
  178. 1720 IFA$="P"THEN470
  179. 1730 IFA$="V"THEN1770
  180. 1740 IFA$="-"THEN3020
  181. 1750 IFA$="Q"THENCLOSEDV:CLOSESD:STOP
  182. 1760 GOTO1560
  183. 1770 REM *** VIEW SCREEN ***
  184. 1780 IFN<>0THEN1810
  185. 1790 X2=15:X1=11:Y1=11:Y2=1:POKE646,13:GOSUB3460:PRINTTAB(X1+1)"NOTHING TO VIEW"
  186. 1800 FORT=1TO500:NEXT:GOTO1350
  187. 1810 R$=""
  188. 1820 PRINT"[147]":X1=13:Y1=2:Y2=2:GOSUB2780
  189. 1830 PRINT"    "R$"PRESS SPACE BAR TO SCROLL ":FORT=1TO100:NEXT
  190. 1840 IFR$="[150]"THENR$="":GOTO1860
  191. 1850 IFR$=""THENR$="[150]"
  192. 1860 GETA$:IFA$=""THEN1830
  193. 1870 PRINT"      NAMES"SPC(12)"NUMBERS":X=0:PRINT:PRINT:
  194. 1880 FORX=1TO(N):X$=STR$(X)
  195. 1900 IFLEN(X$)<3THENX$=X$+" ":GOTO1900
  196. 1905 X$="#"+X$
  197. 1910 PRINT""X$;SPC(1);
  198. 1920 PRINT"[154] "A$(X);" "B$(X)
  199. 1930 GETA$:IFA$=""THEN1930
  200. 1940 IFA$="\"THENX=N:
  201. 1950 NEXT
  202. 1955 X1=1:X2=27:Y1=01:Y2=1:POKE646,3:GOSUB3460
  203. 1960 PRINTTAB(X1+1)" ARE ENTRIES CORRECT  (Y/N)"
  204. 1970 GETC$:IFC$=""THEN1970
  205. 1980 IFC$="Y"THEN2000
  206. 1990 IFC$="N"THEN 2025
  207. 2000 IFC$<>" "THEN1300
  208. 2010 POKE646,PEEK(646)+1:GOSUB3460:GOTO1955
  209. 2020 REM *** CHANGE/CORRECT ENTRY ***
  210. 2025 X1=1:X2=27:Y1=01:Y2=2:POKE646,14:GOSUB3460
  211. 2030 PRINTTAB(X1+1);:INPUT"CHANGE WHICH ENTRY";E$:E=VAL(LEFT$(E$,3))
  212. 2036 IFE>DMTHEN2025
  213. 2038 GOSUB3460
  214. 2050 PRINTS3$:PRINTS3$:PRINT"[145][145]";
  215. 2055 IFRIGHT$(B$(E),1)=CHR$(160)THENB$(E)=LEFT$(B$(E),LEN(B$(E))-1):GOTO2055
  216. 2060 X=E:PRINTTAB(X1+3);A$(E):PRINTTAB(X1+3);B$(E)"[152]":PRINT"[145][145]";
  217. 2070 PRINTTAB(X1+1)"";:INPUTN$:
  218. 2075 PRINTTAB(X1+1)"";:INPUTNO$
  219. 2077 IFLEN(NO$)=7THENNO$=LEFT$(NO$,3)+"-"+MID$(NO$,4)
  220. 2080 A$(X) =LEFT$(N$+SS$,16)
  221. 2090 B$(X) =LEFT$(NO$+SS$,16)
  222. 2095 GOSUB3460
  223. 2100 PRINTTAB(X1+1)"ANOTHER (Y/N)
  224. 2110 [151]19,0
  225. 2120 [161]AN$:[139]AN$[178]""[167]2120
  226. 2130 [139]AN$[178]"Y"[167]2025
  227. 2140 [139]AN$[178]"N"[167]2000
  228. 2150 [137]2095
  229. 2160 [143] *** READ DISK ERROR CHANNEL ***
  230. 2170 [143]
  231. 2180 [132]DV,A,B$,C,D
  232. 2190 [142]
  233. 2200 [143] *** SORTING ***
  234. 2210 [139]N[179]0[167]1300
  235. 2220 S1[178]N
  236. 2230 S2[178]S1
  237. 2240 S2[178][181](S2[173]2):[139]S2[178]0[167]2340
  238. 2250 S3[178]1:S4[178]S1[171]S2
  239. 2260 S5[178]S3
  240. 2270 S6[178]S5[170]S2:[139]A$(S5)[179]A$(S6)[167]2320
  241. 2280 [139]A$(S6)[178]A$(S5)[167][153]"DUPLICATE "A$(S6)"  "B$(S6)"  "B$(S5)
  242. 2290 S7$[178]A$(S5):Z$[178]B$(S5):A$(S5)[178]A$(S6):B$(S5)[178]B$(S6):A$(S6)[178]S7$:B$(S6)[178]Z$
  243. 2300 S5[178]S5[171]S2:[139]S5[179]1[167]2320
  244. 2310 [137]2270
  245. 2320 S3[178]S3[170]1:[139]S3[177]S4[167]2240
  246. 2330 [137]2260
  247. 2340 [137]1330
  248. 2350 [143] *** FIND NUMBER ***
  249. 2360 H[178]N:L[178]1:R[178]0
  250. 2370 [139]N[178]0[167]1300
  251. 2375 X2[178]23:X1[178]7:Y1[178]17:Y2[178]1:[141]3460
  252. 2380 [153][163]X1[170]1)"WHOSE TELEPHONE NUMBER:":[153]:[153]
  253. 2390 [133]N$:LE[178][195](N$)
  254. 2400 M[178][181]((H[170]1[171]L)[173]2)[170]L
  255. 2410 [139]H[171]L[179]5[167]2450
  256. 2420 [139]N$[178][200](A$(M),LE)[167]R[178]M:[137]2470
  257. 2430 [139]N$[177][200](A$(M),LE)[167]L[178]M[170]1:[137]2400
  258. 2440 [139]N$[179][200](A$(M),LE)[167]H[178]M[171]1:[137]2400
  259. 2450 [129]J[178]L[164]H:[139]N$[178][200](A$(J),LE)[167]R[178]J
  260. 2460 [130]
  261. 2470 X1[178]1:X2[178]35:Y1[178]19:Y2[178]1:[151]646,6: [141]3460
  262. 2480 [153][163]X1[170]1);
  263. 2490 [139]R[178]0[167][153]"NOT FOUND":[129]T[178]1[164]780:[130]:SF$[178]"CONT(WAITSORT FIRSTCONT)":[137]1330
  264. 2500 [153]"LIST";A$(R)"  "B$(R)
  265. 2510 X1[178]1:X2[178]35:Y1[178]22:Y2[178]1:[151]646,15: [141]3460
  266. 2520 [153][163]X1[170]11) "PRESS ANY KEY"
  267. 2530 [161]A$:[139]A$[178]""[167]2530
  268. 2540 [137]1330
  269. 2550 [143] *** DELETE *********
  270. 2560 [153]"LOAD";
  271. 2570 [139]N[179]1[167]1300
  272. 2580 X1[178]14:Y1[178]1:Y2[178]2: [141]2780:[153]""
  273. 2590 [129]X[178]1[164]N[169]2:X$[178][196](X):X$[178][201](SS$[170]X$,3):[153]""X$"CONT"A$(X);[163]20);
  274. 2600 [139]X[178][177]N[167]2660
  275. 2610 X$[178][196](X[170]1):X$[178][201](SS$[170]X$,3):[153]""X$"CONT"A$(X[170]1)
  276. 2620 [139]N[178]1[167][130]:[137]1300
  277. 2630 [161]Q$
  278. 2640 [139]Q$[178]"\"[167]X[178]N:[137]2660
  279. 2650 S[178][194](653):[139]S[178]1[176]S[178]2[176]S[178]4[167]2630
  280. 2660 [130]:[153]:[153]"SYS'0'FOR MENU":[153]"":
  281. 2670 [151]198,0:[129]T[178]1[164]100:[130]
  282. 2680 [133]"DELETE WHICH ENTRY    0CMDCMDCMD";E:[139]E[178]0[167]1300
  283. 2690 [139]E[177]N  [167]1300
  284. 2700 [153]"TO":[133]E2:[139]E2[178]0[167]E2[178]E
  285. 2705 [139]E2[177]N[167]E2[178]E
  286. 2710 [129]N2[178]E[164]E2
  287. 2720 [153]""A$(E),B$(E)
  288. 2730 A$(E)[178]"":B$(E)[178]"":[129]X[178]E[164]N:
  289. 2740 A$(X)[178]A$(X[170]1):B$(X)[178]B$(X[170]1):[130]:N[178]N[171]1
  290. 2750 [139]N[178][179]0[167]N[178]0
  291. 2760 [130]N2:E2[178]0
  292. 2770 [137]1300
  293. 2780 [151]646,13:X2[178]4:[141]3460
  294. 2790 [153][163]X1[170]1)"\ TO"
  295. 2800 [153][163]X1[170]1)"HALT"
  296. 2810 [142]
  297. 2820 [143] ****  CHECK FOR DEVICE PRESENT ****
  298. 2830 D[178]0:O[178]0:[129]C[178]8[164]11:[159]15,C,15:[160]15:[139]ST[179][177]0[167]2850
  299. 2840 D[178]D[170]1:DV(D)[178]C:O[178]O[170]1
  300. 2850 [130]:MM[178]D:D[178]0
  301. 2860 [129]C[178]1[164]O:[159]15,DV(C),15,"UI":[132]15,EN,EM$,A,B:DZ$[178][201](EM$,4)
  302. 2870 [139]DZ$[178]"1581"[167]DO$[178][201](DO$,12)
  303. 2880 :DO$[178][200](DO$,12)
  304. 2890 [139]C[178]1[167]Z1$[178]DZ$:ZO$[178]DO$
  305. 2900 [139]C[178]2[167]Z2$[178]DZ$:Z3$[178]DO$
  306. 2910 [139]O[178]1[167]Z2$[178]Z1$:Z3$[178]ZO$
  307. 2920 [139]C[177]2[167]Y1$[178]DZ$:Y2$[178]DO$
  308. 2930 [160]15: [130]:
  309. 2940 BK[178]1
  310. 2950 [139]DV(2)[178]0[167]BK[178]0:DV(2)[178]DV(1)
  311. 2960 DV[178]DV(1):SD[178]DV(2)
  312. 2970 [151]186,DV
  313. 2980 [139]MM[178]1[167]LM$[178]"":SM$[178]"":[142]
  314. 2990 LM$[178]"  SHFT/L"[170][196](DV(2))
  315. 3000 SM$[178]"  SHFT/S"[170][196](DV(2))
  316. 3010 [142]
  317. 3460 [143] WINDOW
  318. 3470 [151]10475,X1:[151]10477,X2:[151]10476,Y1:[151]10478,Y2:[158]10143:[142]
  319.