home *** CD-ROM | disk | FTP | other *** search
/ C64'er / C64'er.iso / 87xx / 8705.d64 / master-index (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  10KB  |  371 lines

  1. 10 REM **********************
  2. 20 REM **                  **
  3. 30 REM **    MASTER-INDEX  **
  4. 40 REM **                  **
  5. 50 REM **   BY R.MAETCHE   **
  6. 60 REM **                  **
  7. 70 REM **********************
  8. 80 REM
  9. 100 POKE53280,0:POKE53281,9:PRINT"[147][158]"+CHR$(14)
  10. 110 DIMC$(4),C(5),DS(3,300),D2(3,300),SP$(9),LP$(14)
  11. 120 OPEN15,8,15:FO=0
  12. 129 REM *** TITEL ***
  13. 130 PRINT;"[147]           [172][162][162][162][162][162][162][162][162][162][162][162][162][162][162][187]"
  14. 140 PRINT"           [161] [205][193][211][212][197][210]-[201][206][196][197][216] [161]"
  15. 150 PRINT"           [188][146][162][162][162][162][162][162][162][162][162][162][162][162][162][162][190]"
  16. 155 PRINT"           < [194]ITTE WARTEN >"
  17. 159 REM *** SUCH-PROGRAMM IN STRINGS
  18. 160 FORI=1TO9
  19. 170 A=(I-1)*32:H=INT(A/256):L=A-H*256
  20. 180 SP$(I)="M-W"+CHR$(L)+CHR$(H+5)+CHR$(32)
  21. 190 FORJ=1TO32:READA:SP$(I)=SP$(I)+CHR$(A):NEXT:NEXT:A=FRE(0)
  22. 199 REM *** LOESCH-PROGRAMM IN STRINGS
  23. 200 FORI=1TO14
  24. 210 A=(I-1)*32:H=INT(A/256):L=A-H*256
  25. 220 LP$(I)="M-W"+CHR$(L)+CHR$(H+5)+CHR$(32)
  26. 230 FORJ=1TO32:READA:LP$(I)=LP$(I)+CHR$(A):NEXT:NEXT:A=FRE(0)
  27. 239 REM *** LETZTEN TITEL HOLEN
  28. 240 NB=0
  29. 250 OPEN2,8,2,"TITEL,S,R"
  30. 260 GOSUB9300:IFE<>0THENCLOSE2:RETURN
  31. 270 INPUT#2,BN$:NB=NB+1
  32. 280 IFST=0THEN270
  33. 290 CLOSE2
  34. 599 REM **** MENUE *****
  35. 600 PRINT"[147]     [205]ENUE"
  36. 605 ED=0
  37. 610 PRINT" 1 = [218]EITSCHRIFT AUSWAEHLEN"
  38. 620 PRINT" 2 = ";BN$;"-[193]RTIKEL HINZUFUEGEN"
  39. 630 PRINT" 3 = [193]RTIKEL SUCHEN"
  40. 640 PRINT" 4 = [201]N GEFUNDENEN [193]RTIKELN SUCHEN"
  41. 650 PRINT" 5 = [199]EFUNDENE [193]RTIKEL ZEIGEN"
  42. 660 PRINT" 6 = [199]EFUNDENE [193]RTIKEL DRUCKEN"
  43. 670 PRINT" 7 = [199]EFUNDENE [193]RTIKEL LOESCHEN"
  44. 675 PRINT" 8 = [199]EFUNDENEN [193]RTIKEL AENDERN"
  45. 680 PRINT" 9 = [208]ROGRAMM BEENDEN"
  46. 690 PRINT" [194]ITTE WAEHLEN":A=FRE(0)
  47. 700 GETA$:IFA$=""THEN700
  48. 710 IFA$<>"2"THENCLOSE2:FO=0
  49. 720 IFA$="1"THEN1000
  50. 730 IFA$="2"THEN2000
  51. 740 IFA$="3"THENS2=0:GOTO3000
  52. 750 IFA$="4"THEN5000
  53. 760 IFA$="5"THENPR=0:GOTO4000
  54. 770 IFA$="7"THEN6000
  55. 780 IFA$="6"THENPR=1:GOTO4000
  56. 785 IFA$="8"THEN7000
  57. 790 IFA$="9"THENCLOSE2:CLOSE15:END
  58. 800 GOTO700
  59. 999 REM *** ZEITSCHRIFT WAEHLEN
  60. 1000 NB=0
  61. 1010 PRINT"[147]   [194]ITTE [218]EITSCHRIFT AUSWAEHLEN"
  62. 1020 AA$="":INPUT"  [218]EITSCHRIFT:";AA$
  63. 1030 NB=0:REMANZAHLZEITSCHRIFTEN
  64. 1040 OPEN2,8,2,"TITEL,S,R"
  65. 1050 GOSUB9300:IFE<>0THENCLOSE2:GOTO600
  66. 1060 INPUT#2,BN$
  67. 1070 NB=NB+1
  68. 1080 IFBN$=AA$THENCLOSE2:GOTO600
  69. 1090 IFST=0THEN1060
  70. 1100 REM *** DATEIENDE,TITEL NICHT GEF.
  71. 1110 CLOSE2
  72. 1120 PRINT"  [218]EITSCHRIFT NICHT GEFUNDEN"
  73. 1130 INPUT"  [206]EU ANLEGEN (J/N)";A$
  74. 1140 IF(A$<>"J")AND(A$<>"[202]")THEN600
  75. 1150 OPEN2,8,2,"TITEL,S,A"
  76. 1160 GOSUB9300:IFE<>0THENCLOSE2:GOTO600
  77. 1170 PRINT#2,AA$
  78. 1180 CLOSE2
  79. 1190 NB=NB+1
  80. 1200 PRINT" ";AA$;" NEU ANGELEGT ([218]EITSCHRIFT";NB;")"
  81. 1210 FORI=1TO2000:NEXT:GOTO600
  82. 1999 REM *** ARTIKEL ANFUEGEN
  83. 2000 IFFO=0THENOPEN2,8,2,"STEXT,S,A":FO=1
  84. 2010 GOSUB9300:IFE<>0THENCLOSE2:FO=0:GOTO600
  85. 2020 PRINT"[147]   [193]RTIKEL ANFUEGEN"
  86. 2029 REM *** TEXTEINGABE
  87. 2030 PRINT"   [212]ITEL EINGEBEN ,[197]NDE = <[210][197][212][213][210][206]>"
  88. 2040 AR$=""
  89. 2050 GETA$:IFA$=""THENPRINT"[175][157]";:GOTO2050
  90. 2060 IFA$=CHR$(20)THEN2130
  91. 2070 IFA$=CHR$(13)THEN2180
  92. 2080 IF(A$<" ")OR((A$>CHR$(127))AND(A$<CHR$(160)))OR(A$>CHR$(233))THEN2050
  93. 2090 IFA$=CHR$(34)THEN2050:REMSONSTFEHLER
  94. 2100 AR$=AR$+A$
  95. 2110 IFLEN(AR$)>239THENAR$=LEFT$(AR$,239):GOTO2050
  96. 2120 PRINTA$;:GOTO2050
  97. 2129 REM *** DELETE
  98. 2130 IFLEN(AR$)=0THEN2050
  99. 2140 AR$=LEFT$(AR$,LEN(AR$)-1)
  100. 2150 PRINT" [157][157] [157]";
  101. 2160 GOTO2050
  102. 2170 REM *** SUCHTEXTENDE
  103. 2180 PRINT" "
  104. 2190 PRINT#2,AR$;
  105. 2200 B=INT(NB/256):A=NB-B*256
  106. 2210 PRINT:PRINT"   ";BN$
  107. 2215 IFED=1THENPRINTTAB(16)AN:PRINT"[145]";
  108. 2220 INPUT"   [193]USGABE [206]R.";AN
  109. 2230 IF(AN<0)OR(AN>255)THEN2220
  110. 2235 IFED=1THENPRINTTAB(10)S:PRINT"[145]";
  111. 2240 INPUT"   [211]EITE";S
  112. 2250 IF(S<0)OR(S>32767)THEN2240
  113. 2260 D=INT(S/256):C=S-D*256
  114. 2270 PRINT#2,CHR$(0);CHR$(A);CHR$(B);CHR$(AN);CHR$(C);CHR$(D);
  115. 2280 IFED=1THENGOTO7070
  116. 2290 GOTO600
  117. 2998 REM *** ARTIKEL SUCHEN
  118. 2999 REM *** DATENFILE OEFFNEN
  119. 3000 OPEN2,8,2,"#0":REM$0300
  120. 3010 PRINT#15,"B-R"2;0;17;0
  121. 3020 GOSUB9300:IFE<>0THENCLOSE2:GOTO600
  122. 3030 REM *** RUECKMELDUNGS-BUFFER OEFFNEN
  123. 3040 OPEN3,8,3,"#1"
  124. 3050 GOSUB9300:IFE<>0THENCLOSE3:GOTO600
  125. 3060 PRINT"[147]   [193]RTIKEL SUCHEN"
  126. 3070 GOSUB9000:REMSUCH-PROGRAMM
  127. 3080 REM *** SUCHSTRING UEBERTRAGEN
  128. 3085 S$=""
  129. 3090 INPUT"  [211]TICHWORT:";S$:IFS$=""THENCLOSE3:GOTO600
  130. 3100 S1$=S$:S$="":FORI=1TOLEN(S1$)
  131. 3110 IFMID$(S1$,I,1)=CHR$(160)THENS$=S$+CHR$(32):GOTO3130
  132. 3120 S$=S$+MID$(S1$,I,1)
  133. 3130 NEXT:REM * SHIFT-SPACE->SPACE
  134. 3140 PRINT#15,"M-W";CHR$(160);CHR$(4);CHR$(LEN(S$)+1);S$;CHR$(0):REM$04A0
  135. 3150 REM *** PROGRAMM STARTEN
  136. 3160 PRINT#15,"M-W";CHR$(0);CHR$(4);CHR$(1);CHR$(0):REMINIT-COMMAND
  137. 3170 NF=0:REMANZAHLGEFUNDENERARTIKEL
  138. 3180 DP=1:REMDATENSATZ-POINTER
  139. 3190 PRINT#15,"UC"
  140. 3200 REM *** DATEN LESEN
  141. 3210 PRINT#15,"B-P";3,1
  142. 3220 GET#3,C$(1),C$(2),C$(3),C$(4)
  143. 3230 FORI=1TO4
  144. 3240 IFC$(I)=""THENC$(I)=CHR$(0)
  145. 3250 C(I)=ASC(C$(I))
  146. 3260 NEXT
  147. 3270 IFC(4)<>0THEN3400:REMENDEODERFEHLER
  148. 3280 FORI=1TO3:DS(I,DP)=C(I):NEXT
  149. 3290 DP=DP+1:NF=NF+1
  150. 3300 IFDP<3THEN3340
  151. 3310 REM *** DOPPELEINTRAEGE LOESCHEN
  152. 3320 IF(C(1)<>DS(1,DP-2))OR(C(2)<>DS(2,DP-2))OR(C(3)<>DS(3,DP-2))THEN3340
  153. 3330 DP=DP-1:NF=NF-1
  154. 3340 IFDP>200THEN3400
  155. 3350 REM *** WEITERE DATEN ANFORDERN
  156. 3360 PRINT#15,"M-W";CHR$(0);CHR$(4);CHR$(1);CHR$(1):REMWEITER-COMMAND
  157. 3370 PRINT#15,"UC"
  158. 3380 GOTO3210
  159. 3390 REM *** ENDE DER DATEI
  160. 3400 CLOSE3:CLOSE2
  161. 3410 IFC(4)<>99THENPRINT" [196][195]-[197]RRORCODE:";C(4):GOTO3470
  162. 3420 IFS2=1THEN5100
  163. 3430 PRINT"  '";S$;"'";
  164. 3440 IFNF=0THENPRINT" NICHT";
  165. 3450 IFNF<>0THENPRINTNF;"MAL";
  166. 3460 PRINT" GEFUNDEN"
  167. 3470 PRINT"  [212]ASTE DRUECKEN"
  168. 3480 POKE198,0:WAIT198,1:POKE198,0:GOTO600
  169. 3999 REM *** GEFUNDENE ARTIKEL ZEIGEN
  170. 4000 IFPR=0THENPRINT"[147]  [199]EFUNDENE [193]RTIKEL ZEIGEN"
  171. 4010 IFPR=1THENPRINT"[147]  [199]EFUNDENE [193]RTIKEL DRUCKEN"
  172. 4020 IFNF=0THENPRINT"  [203]EINE [193]RTIKEL":FORI=1TO2000:NEXT:GOTO600
  173. 4030 IFPR=0THENOPEN4,3
  174. 4040 IFPR=1THENOPEN4,4,7:PRINT#4
  175. 4050 FORI=1TONF
  176. 4055 OPEN3,8,3,"#0"
  177. 4060 GOSUB9300:IFE<>0THENCLOSE3:GOTO600
  178. 4070 PRINT#15,"B-R";3;0;DS(1,I);DS(2,I)
  179. 4080 CLOSE3
  180. 4090 PRINT#15,"M-W";CHR$(0);CHR$(4);CHR$(1);CHR$(DS(3,I))
  181. 4100 PRINT#15,"UC"
  182. 4110 OPEN3,8,3,"#1"
  183. 4120 GOSUB9300:IFE<>0THENCLOSE3:GOTO600
  184. 4130 PRINT#15,"B-P";3;0
  185. 4135 AR$=""
  186. 4140 GET#3,A$
  187. 4150 IFA$<>""THENAR$=AR$+A$:GOTO4140
  188. 4155 IFED<>1THENPRINT#4,AR$;
  189. 4160 REM *** ENDMARKE GEFUNDEN
  190. 4170 FORJ=1TO5
  191. 4180 GET#3,A$:IFA$=""THENA$=CHR$(0)
  192. 4190 C(J)=ASC(A$)
  193. 4200 NEXT
  194. 4210 CLOSE3
  195. 4220 NB=256*C(2)+C(1):S=256*C(5)+C(4):AN=C(3)
  196. 4225 IFED=1THEN7020
  197. 4230 OPEN3,8,3,"TITEL,S,R"
  198. 4240 GOSUB9300:IFE<>0THENCLOSE3:GOTO600
  199. 4250 GOSUB9000
  200. 4260 FORJ=1TONB
  201. 4270 INPUT#3,A$
  202. 4280 NEXT
  203. 4290 PRINT#4:PRINT#4:PRINT#4:PRINT#4," ";A$:PRINT#4," [193]USGABE";AN
  204. 4295 PRINT#4," [211]EITE";S
  205. 4300 PRINT#4:PRINT#4:IFPR=0THENPRINT"  [212]ASTE DRUECKEN"
  206. 4310 CLOSE3
  207. 4320 IFPR=0THENPOKE198,0:WAIT198,1:POKE198,0
  208. 4330 IFPR=0THENPRINT"[147]"
  209. 4340 NEXT:CLOSE4:GOTO600
  210. 4999 REM *** SUCHEN IN DATENSAETZEN
  211. 5000 PRINT"[147]  [201]N GEFUNDENEN [193]RTIKELN SUCHEN"
  212. 5010 IFNF=0THEN4020
  213. 5020 PRINT"  [194]EARBEITE [193]RTIKEL:"
  214. 5030 FORI=1TONF
  215. 5040 PRINTTAB(21)"[145]";I;"    "
  216. 5050 D2(1,I)=DS(1,I):D2(2,I)=DS(2,I):D2(3,I)=DS(3,I)
  217. 5060 NEXT
  218. 5070 N2=NF
  219. 5080 S2=1
  220. 5090 GOTO3000
  221. 5100 REM *** 2.SUCHEN BEENDET
  222. 5110 N1=NF:S2=0
  223. 5120 K=1:NF=0
  224. 5130 PRINT"  [214]ERGLEICHE [193]RTIKEL:"
  225. 5140 FORI=1TON2
  226. 5150 IFN1=0THEN5190
  227. 5160 IFD2(1,I)<>DS(1,K)THEN5210
  228. 5170 IFD2(2,I)<>DS(2,K)THEN5210
  229. 5180 IFD2(3,I)<>DS(3,K)THEN5210
  230. 5190 NF=NF+1
  231. 5200 DS(1,NF)=D2(1,I):DS(2,NF)=D2(2,I):DS(3,NF)=D2(3,I)
  232. 5210 NEXT
  233. 5220 K=K+1
  234. 5230 PRINTTAB(22)"[145]";K;"    "
  235. 5240 IFK<=N1THEN5140
  236. 5250 IFN1=0THENPRINT"  '";S$;"' NICHT GEFUNDEN":GOTO3470
  237. 5260 GOTO3430
  238. 5999 REM *** GEF.ARTIKEL LOESCHEN
  239. 6000 PRINT"[147]  [199]EFUNDENE [193]RTIKEL LOESCHEN"
  240. 6010 IFNF=0THENPRINT"  [203]EINE [193]RTIKEL":FORI=1TO2000:NEXT:GOTO600
  241. 6020 W$=" WERDEN "
  242. 6030 IFNF=1THENW$=" WIRD "
  243. 6040 PRINT" ";NF;"[193]RTIKEL";W$;"GELOESCHT"
  244. 6050 INPUT"  [211]ICHER (J/N)";A$
  245. 6060 IF(A$<>"J")AND(A$<>"[202]")THEN600
  246. 6070 GOSUB9100:REM LOESCHPROGRAMM
  247. 6080 PRINT"  [204]OESCHE [193]RTIKEL:"
  248. 6090 FORI=NFTO1STEP-1
  249. 6100