0 ' CRDFIL.PR4 Cardfile File Manager 1 ' Program for the Model 100/102 and 3 ' Tandy 200. It extracts data from 4 ' Cardfiles and outputs them to any 5 ' device in various formats (labels, 6 ' cards, Cardfiles, and more). 7 ' 8 ' For operating instructions see 9 ' CRDFIL.DO3 in addition to 10 ' CRDFIL.DOC and CRDFIL.DO2 11 ' Developed as a revision of 12 ' CRDFIL.PR1 (V1 -1/3/88, Copyright 13 ' 1988 by Tony B. Anderson, All 14 ' Rights Reserved) 15 ' 16 ' Revisions Copyright 1988 by 17 ' Bob Craft - All Rights Reserved. 18 ' 19 ' V1 - 1/23/88 20 ' 100 MAXFILES=2:CLEARFRE(0)-1000 101 CM$="78E1E":MD$="8E1E":' COM & Modem Parameters 102 T$="":' Tag Symbol: T$ = `GRAPH-m' 103 CLS:PRINT"******** CARDFILE FILE MANAGER ********" 106 FILES:PRINT@7*40+6,"File to input";:INPUTF$:IFF$=""THENMENU 108 ONERRORGOTO110:OPENF$FORINPUTAS1:ONERRORGOTO3000:GOTO112 110 BEEP:PRINT" File does not exist. Press ENTER to continue. ";:Q$=INPUT$(1):RUN 112 IFEOF(1)THEN290 114 IFPEEK(1)<>171THENCLS 116 PRINT"Choose one:":PRINT:PRINT" Output ll cards earch for specific words "; 118 Q2$=INPUT$(1):PRINTQ2$:Q2$=CHR$(ASC(Q2$)AND223):IFINSTR("EM",Q2$)THENMENU 120 CLS:IFINSTR("AS",Q2$)THEN122ELSEBEEP:CLS:PRINT:GOTO116 122 PRINT"Choose one:":PRINT:PRINT" Output in hronological order orted order "; 124 Q3$=INPUT$(1):PRINTQ3$:Q3$=CHR$(ASC(Q3$)AND223):IFINSTR("EM",Q3$)THENMENU 126 GOSUB290:IFQ3$="S"THENGOSUB270 128 IFINSTR("CS",Q3$)THEN129ELSEBEEP:CLS:GOTO122 129 CLS:PRINT:PRINT:PRINT" Write header to file? (Y/N) ";:H$=INPUT$(1):PRINTH$:H$=CHR$(ASC(H$)AND223) 130 IFINSTR("YN",H$)THEN135ELSEBEEP:PRINT:GOTO129 135 PRINT:PRINT" Include prompts in output? (Y/N) ";:P$=INPUT$(1):PRINTP$:P$=CHR$(ASC(P$)AND223) 136 IFINSTR("YN",P$)THEN138ELSEBEEP:PRINT:GOTO135 138 CLS:PRINT:GOSUB950: IFQ$="N"THEN150: 140 PRINT@6*40,"Change a prompt? Enter # (0=None)";:INPUTX:IFX=0THEN150 144 PRINT@7*40,"#"X;"- Change to: ";:LINEINPUTA$(X):A$(X)=A$(X)+" " 146 PRINT@6*40+27,"Another Y/N ";:Q$="":Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223):GOTO138 147 IFINSTR("YN",Q$)THEN148ELSEBEEP:PRINT:GOTO147 148 CLS:GOSUB950 149 PRINT@6*40," Data Prompts Restored";:FORT=1TO500:NEXT:F=0 150 PRINT@6*40," Output all data fields? (Y/N) ";:Q$="":Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223):PRINT 151 IFINSTR("YN",Q$)THEN152ELSEBEEP:PRINT:GOTO150 152 IFQ$="Y"THEN160 156 PRINT@6*40,"Field # to delete (`0'=`END') ";:INPUTXP:IFXP>NTHEN2500ELSEIFXP=0THEN160ELSEGOSUB1000 158 F(XP)=1:GOTO156 160 CLS:PRINT" Remaining fields:" 162 FORA=1TON:IFF(A)THEN 165 163 PRINTA;A$(A); 165 NEXT 167 PRINT@7*40+11,"Correct? (Y/N) ";:Q$="":Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223) 169 IFINSTR("YN",Q$)THEN170ELSEBEEP:PRINT:GOTO167 170 IFQ$="N"THENFORA=1TON:F(A)=0:NEXT:F=1:GOTO148 171 CLS:PRINT@2*40+3," Tag file for merging? (Y/N) ";:Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223):IFQ$="Y"THENGOSUB2100 172 IFINSTR("YN",Q$)THEN173ELSEBEEP:PRINT:GOTO171 173 CLS:PRINT:PRINT" Number of lines in output "; 174 INPUTL1 176 PRINT:PRINT" Top margin ";:INPUTL2 178 PRINT" Left margin ";:INPUTL3:PRINT 179 PRINT" Suppress blank lines? (Y/N) ";:SB$=INPUT$(1): PRINTSB$;:SB$=CHR$(ASC(SB$)AND223) 180 IFINSTR("YN",SB$)THEN181ELSEBEEP:PRINT:GOTO180 181 IFQ2$="A"THEN190 182 CLS:PRINT:GOSUB950 184 SL=0:PRINT@7*40," Field number to search ";:INPUTSL:IFSL>NTHEN184 185 PRINT@6*40,SPACE$(39);:PRINT@6*40," Search term? ";:LINEINPUTS$ 186 FORA=1TOLEN(S$): IFASC(MID$(S$,A,1))>64THENMID$(S$,A,1)= CHR$(ASC(MID$(S$,A,1))AND223) 188 NEXTA:CLS:PRINT 190 GOSUB500:IFH$="Y"THENGOSUB800 192 CLS:PRINT:IFSETHENPRINT:PRINT" Now Search-Sorting for character "CHR$(34);:P=CSRLIN*40+POS(0):GOTO195 194 C2=1:IFQ2$="S"THENPRINT" Now Searching for matching entries."ELSEPRINT@3*40+10,"WRITING FILE #" 195 FORA=1TON:IFF(A)THENNEXTELSEC=C+1:NEXT 198 L1=L1-L2-C:IFSETHEN216 200 IFEOF(1)THEN230 202 PRINT@3*40+24,C2:C2=C2+1:GOSUB302:IFQ2$="A"THEN206 204 IFINSTR(C$,S$)THEN206ELSE200 206 FORA=1TOL2:IFL2<=OTHENNEXTELSE:FORA=1TOL2:PRINT#2,"":NEXTA 208 FORA=1TON:IFF(A)THEN212 210 IFL3THENFORB=1TOL3:PRINT#2," ";:NEXTB 211 GOSUB 990:GOSUB1300:IFSB$="Y"THENGOSUB1100ELSEGOSUB1200 212 NEXT 214 L1=L1+C1:FORA=1TOL1:IFL1<=0THENNEXTELSEPRINT#2,"":NEXTA 215 L1=L1-C1:C1=0:GOTO200 216 X=2*N+1:CLOSE1 218 IFSN$="Y"THENFORS=48TO57:S1=S:GOSUB232:NEXTS 220 IFSU$="Y"THENFORS=65TO90:S1=S:GOSUB232ELSE228 222 IFSL$="Y"THENS1=S1+32:GOSUB232:F1=1 224 NEXTS 226 IFF1THEN230 228 IFSL$="Y"THENFORS=97TO122:S1=S:GOSUB 232:NEXTS 230 CLOSE:CLS:PRINT:PRINT" Output completed.":PRINT:PRINT" un again ":PRINT" ENU ";:Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223) 231 IFQ$="M"THENMENUELSERUN 232 OPENF$FORINPUTAS1:FORA=1TOX:LINEINPUT#1,A$(0):NEXTA 233 PRINT@P,CHR$(S)CHR$(34); 236 IFEOF(1)THEN244 238 GOSUB302 240 IFASC(B$(SE))=S1THENGOSUB246 242 GOTO236 244 CLOSE1:RETURN 246 IFQ2$="S"THENIFINSTR(C$,S$)THEN248ELSE258 248 FORA=1TOL:IFL1<=OTHENNEXTELSE:FORA=1TOL2:PRINT#2,"":NEXTA 250 FORA=1TON:IFF(A)THEN256 252 IFL3THENFORB=1TOL3:PRINT#2," ";:NEXTB 254 GOSUB990:GOSUB1300:IFSB$="Y"THENGOSUB1100ELSEGOSUB1200 256 NEXT 257 L1=L1+C1:FORA=1TOL1:IFL1<=OTHENNEXTELSEPRINT#2,"":NEXTA 258 L1=L1-C1:C1=0:RETURN 260 DIMA$(N),B$(N),F(N),F1(N),P(N):RETURN 270 IFPEEK(1)<>171THENCLS 272 GOSUB950:PRINT@7*40+8,"Field number to sort";:INPUTSE 273 IFPEEK(1)<>171THENCLS:PRINT"Sort on:" 274 PRINT:PRINT" Upper-case letters? (Y/N)? ";:SU$=INPUT$(1):PRINTSU$:SU$=CHR$(ASC(SU$)AND223) 276 IFINSTR("YN",SU$)THEN278ELSEBEEP:PRINT:GOTO274 278 PRINT:PRINT" Lower-case letters? (Y/N) ";:SL$=INPUT$(1):PRINTSL$:SL$=CHR$(ASC(SL$)AND223) 280 IFINSTR("YN",SL$)THEN282ELSEBEEP:PRINT:GOTO278 282 PRINT:PRINT" Numbers? (Y/N) "; 284 SN$=INPUT$(1): PRINTSN$: SN$=CHR$(ASC(SN$)AND223): IFINSTR("YN",SN$)THENRETURNELSEBEEP:PRINT:GOTO282 286 PRINT" Press ENTER to continue. ";:Q$=INPUT$(1):RETURN 288 PRINT@39,"";:Q$=INPUT$(1):CLS:RETURN 290 IFEOF(1)THENBEEP:PRINT" Data file is empty.":PRINT:CLOSE:STOP 292 INPUT#1,N:N1=N:GOSUB260 294 FORA=1TON:IFEOF(1)THEN300 296 LINEINPUT#1,A$(A):INPUT#1,P(A):NEXT 298 RETURN 300 BEEP:PRINT" Data file error":CLOSE:STOP 302 FORA=1TON:IFEOF(1)THEN300 304 LINEINPUT#1,B$(A):NEXT 306 C$=B$(SL):IFC$=""THEN314 308 FORA=1TOLEN(C$) 310 IFASC(MID$(C$,A,1))>64THENMID$(C$,A,1)=CHR$(ASC(MID$(C$,A,1))AND223) 312 NEXTA 314 RETURN 316 FORA=1TON:B$(A)=" ":NEXT:RETURN 500 CLS:OD$="":PRINT"******** OUTPUT DEVICE OPTIONS ********" 505 PRINTTAB(8);"Output to (Choose one:)" 510 PRINTTAB(8);"AM isk" 511 PRINTTAB(8);"

rinter assette" 512 PRINTTAB(8);"creen EIT to MENU" 520 PRINTTAB(7);"CM port (COM:";CM$;")" 522 PRINTTAB(8);"odem (MDM:";MD$;")" 530 O$=INPUT$(1):O$=CHR$(ASC(O$)AND223):IFO$="X"THENMENU:IFINSTR("PSOM",O$)THEN610 540 IFO$="R"THENOD$="RAM:"ELSEIFO$="D"THENOD$="0:"ELSEIFO$="C"THENOD$="CAS:" 600 CLS:PRINT@3*40+9,"Output filename ";:INPUTFO$ 610 IFO$="P"THENOD$="LPT:" ELSEIFO$="S"THENOD$="LCD: "ELSEIFO$="O"THENOD$="COM:"+CM$ ELSEIFO$="M"THENOD$="MDM:"+MD$ 620 FO$=OD$+FO$:OPENFO$FOROUTPUTAS2 630 CLS:PRINT:PRINT:PRINT@87,"Prepare device for output.":PRINT:INPUT" Press ENTER to begin. ";EN$:RETURN 800 CLS:PRINT@4*40+10,"WRITING HEADER...." 805 PRINT#2,N1 810 Y=1 820 IFFL(Y)=1THENGOTO835 830 PRINT#2,A$(Y):PRINT#2,P(Y) 835 Y=Y+1 840 IFY<=NTHEN820 850 RETURN 950 FORA=1TON:PRINTA;A$(A);:NEXT:RETURN 960 FORA=1TON:IFF(A)=1THEN964 962 PRINTA;A$(A); 964 NEXT 970 RETURN 990 I$=INKEY$:IFI$=CHR$(27)THENRUNELSERETURN 1000 N1=N1-1:RETURN 1100 IFB$(A)=" "THENB$(A)=" " 1105 IFP$="N"ANDB$(A)=" "THEN1120 ELSEIFP$="N"ANDB$(A)<>" "THENPRINT#2,B$(A) ELSEIFP$="Y"ANDB$(A)=" "THENPRINT#2,A$(A) ELSEIFP$="Y"ANDB$(A)<>" "THENPRINT#2,A$(A);B$(A) 1110 RETURN 1120 C1=C1+1:RETURN 1200 IFP$="N"THENPRINT#2,B$(A)ELSEPRINT#2,A$(A);B$(A):RETURN 1300 IFTM$="A"THENB$(A)=B$(A)+T$ 1320 IFF1(A)=1THENB$(A)=B$(A)+T$ 1330 RETURN 2100 CLS:PRINT:GOSUB960 2110 PRINT@6*40,"Place tag `";T$;"' at the end of:" 2120 PRINT@7*40," ll fields elected fields. "; 2150 TM$=INPUT$(1):PRINTTM$:TM$=CHR$(ASC(TM$)AND223) 2154 IFTM$="A"THENFORA=1TON:A$(A)=A$(A)+T$:NEXT:GOTO2160 2155 CLS:GOSUB960: 2156 PRINT@7*40,"Field # to tag (`0'=`END') ";:INPUTZ:CLS:GOSUB960:IFZ=0THEN2160 2158 F1(Z)=1:GOTO2156 2160 CLS:PRINT" Tagged fields:" 2162 FORA=1TON:IFF1(A)=0THEN2164 2163 A$(A)=A$(A)+T$ 2164 NEXT 2165 GOSUB960 2168 PRINT@7*40+11,"Correct? (Y/N) ";:Q$=INPUT$(1):PRINTQ$;:Q$=CHR$(ASC(Q$)AND223) 2169 IFINSTR("YN",Q$)THEN2170ELSEBEEP:PRINT:GOTO2169 2170 IFQ$="Y"THENRETURNELSEIFQ$="N"THENFORA=1TON:F1(A)=0:NEXT:F1=1:GOTO2100 2500 BEEP:GOTO156 3000 PRINT" Error";ERR;"in Line";ERL;:STOP