0 'DF-RPT.BA(c)1990,R.HESS 2 CLS:CLEAR3000:MAXFILES=2:GOSUB86:PRINT@(PP/2)-6,"DF-RPT.BA":PRINT@PP+1,"Source file on isk or in am? ";:W$=INPUT$(1) 4 CLS:IFINSTR("Rr",W$)THENFILESELSEIFINSTR("Dd",W$)THENDV$="0:":GOSUB96ELSEIFW$=CHR$(13)THENMENUELSERUN 6 PRINT@PP+5,"Source file: "DV$;:LINEINPUTF$:IFF$=""THENMENUELSEF$=DV$+MID$(F$,1,6):FD$=F$ 8 CLOSE:OPENF$FORINPUTAS1:INPUT#1,N:DIMA$(N),B$(N),S$(N),P(N),T(N),D(N),M(N),K(N),Q(N):FORA=1TON:LINEINPUT#1,A$(A):M(A)=LEN(A$(A)):INPUT#1,P(A):NEXT: 9 PRINT@PP+5,E$"KSort? Y/n ";:IFINSTR("Yy",INPUT$(1))=0THENSY=1:FORA=1TON:T(A)=A:NEXT:GOTO18 10 ST=1:GOSUB100:ST=0:FORA=1TON:IFD(A)=0THENK(CQ)=A:D(A)=CQ:CQ=CQ+1 12 NEXT:FORA=1TON:T(A)=K(A) 14 X$=MID$(STR$(D(A)),2,2):GOSUB118 16 NEXT:PRINT@39,;:IFINSTR("Yy",INPUT$(1))=0THEN10 18 CLS:OPENTF$FOROUTPUTAS2 20 FORA=1TON:IFEOF(1)THEN30ELSELINEINPUT#1,B$(A):BL=LEN(B$(A)):IFBL>M(A)THENM(A)=BL 24 NEXT:C=C+1:GOSUB84 26 FORA=1TON:PRINT#2,B$(T(A))CHR$(171);:NEXT 28 PRINT#2,:GOTO20 30 IFSYTHEN34ELSECLOSE:CLS:PRINT@135,"Sorting...":GOSUB90:CLEAR:GOSUB86:F$="ZIPSRT":LOADMF$:S$="SRT***"+CHR$(0):V=VARPTR(S$):K=PEEK(V+1)+256*PEEK(V+2):IFPEEK(1)=171THENCALL63590,1,KELSECALL64720,1,K 32 GOSUB86:GOSUB92 34 CLS:IFSYTHENPRINTQ$FD$Q$" NOT SORTED!"ELSEPRINT"tore sorted file" 35 PRINT:PRINT"

rinted report":PRINT:PRINT"AM report":PRINT:PRINT"enu" 36 G$=INKEY$:IFG$=""THEN36ELSEG=ASC(G$)AND95:IFG=83THEN68ELSEIFG=80THENF$="LPT:"ELSEIFG=82THENCLS:FILES:PRINT@PP," Name "Q$FD$Q$" RAM rpt: ";:LINEINPUTH$:IFH$=""THEN34ELSEF$=MID$(H$,1,6)ELSEIFG=77THENCLOSE:KILLTF$:MAXFILES=1:MENUELSE36 38 CLOSE:GOSUB64:IFNPTHEN34ELSERP=1:GOSUB100:CLS:RP=0:C=0:CK=0:CQ=CQ-1:IFCQ=0THENBEEP:GOTO38ELSEFORA=1TOCQ:CK=CK+M(K(A)):NEXT:CK=CK-2+2*CQ 40 T$=F$:F$="LCD:":GOSUB120:CLOSE1:F$=T$:PRINT@PP,Q$F$Q$" rpt width:"CK"columns. Y/n?";:IFINSTR("Yy",INPUT$(1))=0THEN38ELSEPRINT@PP,E$"KSet field conditions? Y/n";:IFINSTR("Yy",INPUT$(1))THENSC=1:C1=CQ:GOSUB100:SC=0:CQ=C1 42 CLS:PRINT@134,"Working...":GOSUB120:GOSUB98 44 FORA=1TON:GOSUB76:IFEOF(2)THENGOSUB128:CLOSE:GOTO34ELSENEXT:C=C+1:GOSUB84 46 FORA=1TON:IFS$(A)=""THEN58ELSES$=LEFT$(S$(A),1):SV$=MID$(S$(A),2,M(A)) 48 IFS$=">"ANDVAL(B$(A))<=VAL(SV$)THEN44 50 IFS$="<"ANDVAL(B$(A))=>VAL(SV$)THEN44 52 IFS$="="ANDVAL(SV$)<>VAL(B$(A))THEN44 54 IFS$="$"ANDINSTR(B$(A),SV$)=0THEN44 56 IFS$="+"THENQ(A)=Q(A)+VAL(B$(A)) 58 S$="":SV$="":NEXT:FORA=1TOCQ:I$=" ":IFA=CQTHENI$="" 60 B1$=B$(K(A)):M1=M(K(A)):IFINSTR(S$(K(A)),"+")THENPRINT#1,SPACE$(M1-LEN(B1$))B1$I$;ELSEPRINT#1,B1$SPACE$(M1-LEN(B1$))I$; 62 NEXT:PRINT#1,:GOTO44 64 NP=0:IFG=80THENIF(INP(187)AND6)-2THENBEEP:CLS:PRINT@125,"No Printer!":FORX=1TO1000:NEXT:NP=1 66 RETURN 68 IFSYTHEN34ELSECLS:IFINSTR(FD$,"0:")THENDV$="0:":GOSUB96ELSEFILES 70 PRINT@PP,"Store sorted "Q$FD$Q$" as: "DV$;:LINEINPUTNF$:IFLEN(NF$)THENF$=DV$+NF$ 72 CLS:OPENF$FOROUTPUTAS1:PRINT#1,N:FORA=1TON:PRINT#1,A$(A):PRINT#1,P(A):NEXT:GOSUB98:C=1:GOSUB84 74 FORA=1TON:GOSUB76:IFEOF(2)THENCLOSE:GOTO34ELSENEXT:FORA=1TON:PRINT#1,B$(A):NEXT:GOSUB84:C=C+1:GOTO74 76 IFEOF(2)THENRETURNELSEI$=INPUT$(1,2) 78 IFI$<" "THEN76 80 IFI$<>CHR$(171)THENB$=B$+I$:GOTO76 82 B$(T(A))=B$:B$="":RETURN 84 PRINT@131,"Reading record #";C:RETURN 86 ONERRORGOTO94:E$=CHR$(27):Q$=CHR$(34):TF$="SRT***.DO":TV$="SRT###.DO":IFPEEK(1)=171THENPP=600ELSEPP=280 88 PRINTE$"V":RETURN 90 CLOSE:OPENTV$FOROUTPUTAS1:PRINT#1,F$:PRINT#1,N:FORA=1TON:PRINT#1,A$(A):PRINT#1,P(A):PRINT#1,T(A):PRINT#1,M(A):NEXT:CLOSE:RETURN 92 CLOSE:OPENTV$FORINPUTAS1:LINEINPUT#1,F$:FD$=F$:INPUT#1,N:DIMA$(N),B$(N),S$(N),D(N),P(N),M(N),T(N),K(N),Q(N):FORA=1TON:LINEINPUT#1,A$(A):INPUT#1,P(A):INPUT#1,T(A):INPUT#1,M(A):NEXT:CLOSE:KILLTV$:RETURN 94 CLOSE:CLS:BEEP:IFERR=52THENPRINT"NO "Q$F$Q$:ENDELSEPRINT"Er";ERR;"Ln";ERL:END 96 PRINTE$"W":LFILES:PRINT:PRINTE$"V":RETURN 98 OPENTF$FORINPUTAS2:RETURN 100 CLS:CQ=1:CR=0:X$="":FORA=1TON:D(A)=0:S$(A)="":GOSUB118:NEXT:A=1:PRINT@39,"Y":PRINT@PP+39,"N":GOSUB124:IFST=1THENFORB=1TON:K(B)=0:NEXT 102 X$="":GOSUB118:X$=INPUT$(1):X=VAL(X$):V=ASC(X$):IFV=29ORV=30THEN114ELSEIFV=28ORV=31ORV=13THEN110 104 IFINSTR("Yy",X$)THENRETURNELSEIFINSTR("Nn",X$)THEN100 106 IFSCTHENIFINSTR("><$=+",X$)=0THENBEEP:GOTO102ELSEXT$=X$:X$=SPACE$(LEN(S$(A))):GOSUB118:X$=XT$:GOSUB118:LINEINPUTS$(A):S$(A)=X$+S$(A):GOTO102 108 IFX-CQORX>NTHENBEEP:GOTO102ELSED(A)=X:K(CQ)=A:CQ=CQ+1:GOSUB118 110 A=A+1:IFA>NTHENA=1 112 IFD(A)=0ORD(A)=NTHEN102ELSE110 114 A=A-1:IFA<1THENA=N 116 IFD(A)=0ORD(A)=NTHEN102ELSE114 118 PRINT@P(A),A$(A)X$;:RETURN 120 OPENF$FOROUTPUTAS1:FORA=1TOCQ:I$=" ":IFA=CQTHENI$="" 122 PRINT#1,A$(K(A))SPACE$(M(K(A))-LEN(A$(K(A))))I$;:NEXT:PRINT#1,:PRINT#1,STRING$(CK,45):RETURN 124 IFSTTHENPO$="sort"ELSEIFRPTHENPO$="rpt"ELSEPO$="><=$+" 126 PRINTE$"p":FORZ=1TOLEN(PO$):PRINT@79+40*Z,MID$(PO$,Z,1):NEXT:PRINTE$"q":RETURN 128 QT=0:FORA=1TOCQ:QT=QT+Q(K(A)):NEXT:IFQT=0THENRETURNELSEQT=0:PRINT#1,STRING$(CK,45):FORA=1TOCQ:I$=" ":IFA=CQTHENI$="" 130 Q1$=STR$(Q(K(A))):Q1=M(K(A)):IFVAL(Q1$)THENQ1$=MID$(Q1$,2,LEN(Q1$)-1)ELSEQ1$=" " 132 PRINT#1,SPACE$(Q1-LEN(Q1$))Q1$I$;:NEXT:PRINT#1,:RETURN