Listing of file='IDS2PR52' on disk='vmedia/701-2716B.wvd.zip'
# Sector 573, program filename = 'IDS2PR52' 1000 REM "IDS2PR52" - Release 2.1 - ARCHIVE REPORTS 1005 E6$=F6$(17)AND HEX(02) : IF E6$=HEX(00)THEN LOAD T#2,"IDS2SUB8"3701,3899BEG 1010 1010 IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM" : DIM F2$(32)8,J3$4 : IF C5$="R"THEN J3$=HEX(8201D3F2) : ELSE J3$=HEX(8201D3E2) : GOSUB '43(1) : J1=Q : GOSUB '43(5) : E1$=E$ : GOSUB '43(6) : E2$=E$ : DATA LOAD BA T#3,(0)F2$() : J2=VAL(STR(F2$(),2))-1 : FOR I=0TO J2 : PRINT HEX(06020402000E);AT(19,15);"Scanning disk catalog for files in sec tor";I; 1050 DATA LOAD BA T#3,(I)F2$() : FOR J3=2TO 32STEP 2 : IF VAL(F2$(J3))=0THEN 2500 : IF STR(F2$(J3-1),,2)<>HEX(1080)THEN 2500 : IF VER(F2$(J3),"IDS2wS##")=8THEN 2500 : IF F2$(J3)<E1$THEN 2500 : IF E2$<>" "AND F2$(J3)>E2$THEN 2500 : E$=F2$(J3)OR ALL(20) : LIMITS T#3,E$,A,B,C,D : IF D=0OR E$=F2$(J3)THEN 2500 : IF C>135THEN 1229 : DATA LOAD BA T#3,(A)E4$() : IF STR(E4$(),,4)<>J3$THEN 2500 1160 IF E$(29)<>" "AND E$(29)<>STR(E4$(),65,1)THEN 2500 : IF J1$<>" "AND J1$<>STR(E4$(),66,3)THEN 2500 : IF J2$<>" "AND J2$<>STR(E4$(),69,4)THEN 2500 : IF STR(E$(),37,3)<>" "AND STR(E$(),37,3)<>STR(E4$(),62,3)THEN 2500 : IF STR(E4$(),74,3)<>" "AND STR(E4$(),74,3)<>R4$THEN 2500 : F8=A : MAT REDIM F$(18)83 : DATA LOAD DA T#3,(F8)F$() : E$=STR(F$(),18,32) 1220 MAT REDIM F$(E9)1 : PRINT AT(19,0,80);"Processing file: ";HEX(22);STR(F2$(J3),,8);HEX(22);" Description: ";HEX(22);STR(E$,,32);HEX(22) : E1=0 : CONVERT STR(F$(),152,3)TO J : CONVERT STR(F$(),155,2)TO N : CONVERT STR(F$(),157,3)TO O : CONVERT STR(F$(),845,3)TO M : Z=ABS(INT(-9*J/249)) : J=ABS(INT(-8*J/249)) : O=MAX(1,ABS(INT(-9*O/249))) 1228 M=INT(256/(M+5)) : N=MAX(1,ABS(INT(-N/M))) : IF C5$="B"THEN N=0 : E3,E4=8+Z+J+O+N : IF E3<=B-F8+1THEN 1230 1229 F0$="Error in control file for report "&F2$(J3)&" EXEC to bypass" : GOSUB '35(F0$) : F6$(11)="N" : GOSUB '34(250) : IF Q=31THEN 1575 : GOTO 2500 1230 GOSUB '60(E1$(2),F2$(J3)) 1240 PRINT AT(20,63); : PRINTUSING 1250,E1 1250 %#### edit records 1260 F6$(14)="N" : GOSUB '62(E1$(2),1,0) : F6$(14)="Y" : IF Q=0OR STR(F$(),7,8)<>STR(F2$(J3),,8)THEN 1500 : STR(E2$(),E1*2+250,2)=STR(F3$,,2) : E1=E1+1 : E3=E3+1 : GOTO 1240 1500 IF J1>2THEN 2110 : LIMITS T#D1,F2$(J3),A,B,C,D : IF D=2AND B-A+1>=E3THEN 2000 : IF D=0THEN 1800 : E$="Output file is too small - EXEC=Create new file, FN'0=Bypass file, FN '31=Cancel" : GOSUB '63(STR(E$,,16),STR(E$,17),"!") : GOSUB '34(250) : IF Q<>31THEN 1580 1575 F6$(14)="Y" : COM CLEAR D1 : LOAD T#2,R3$(1)1000, 1580 IF Q=0THEN 2410 : SCRATCH T#D1,F2$(J3) : LIMITS T#D1,F2$(J3),A,B,C,D : IF B-A+1>=E3THEN 1690 : F5$="JUNK" : Z=-1 1630 Z=Z+1 : CONVERT ZTO STR(F5$,5,4),(####) : LIMITS T#D1,F5$,A,B,C,D : IF D<>0THEN 1630 : DATA SAVE DC OPEN T#D1,(F2$(J3))F5$ : DATA SAVE DC #D1,END : SCRATCH T#D1,F5$ : GOTO 1500 1690 DATA SAVE DC OPEN T#D1,(F2$(J3)),F2$(J3) : DSKIP #D1,E3-2S : DATA SAVE DC #D1,END : GOTO 1500 1800 DATA SAVE DC OPEN T#D1,(E3)F2$(J3) : ERRORF6$(14)="Y" : GOSUB '63("Not enough room ","on archive disk - mount new disk or select FN '31 to cancel","!") : GOSUB '34(250) : IF Q<>31THEN 1800 : COM CLEAR D1 : LOAD T#2,R3$(1)1000, 1810 DSKIP #D1,E3-2S : DATA SAVE DC #D1,END : GOTO 1500 2000 LIMITS T#D1,F2$(J3),C2,B,C,D : GOSUB 3020 : E$=F2$(J3)OR ALL(20) : LIMITS T#3,E$,F8,J7,C1,Z : COPY T#3,(F8,F8+E4-2)TO T#D1,(C2) : MAT REDIM F$(256)1 : DATA LOAD BA T#D1,(C2)F$() : STR(F$(),4,1)=AND HEX(DF) : DATA SAVE BA T#D1,(C2)F$() : MAT REDIM F$(E9)1 : C2=C2+E4-2 : F$()=" " 2040 IF E1=0OR J1>2THEN 2090 : FOR J8=1TO E1 : GOSUB 3000 : MAT REDIM F$(E9)1 : PRINT AT(20,0); : PRINTUSING 2400,"Archiving",J8,STR(F$(),14) : STR(F$(),,1)=" " : MAT REDIM E4$(3)83 : E4$()=F$() : DATA SAVE DA T#D1,(C2,C2)E4$() : MAT REDIM E4$(16)16,F$(E9)1 : NEXT J8 2090 DATA SAVE DA T#D1,(C2)END 2110 IF E1=0OR J1=2THEN 2150 : FOR J8=1TO E1 : GOSUB 3000 : PRINT AT(20,0); : PRINTUSING 2400,"Deleting",J8,STR(F$(),14) : E6$=STR(F$(),3)AND HEX(3F)ADDHEX(20) : HEXUNPACKSTR(F$(),2,1)TO F9$ : $TRAN(F9$," 0$1+2,3-4.5061728394A5B6C7D8E9F")R : E$=STR(F$(),6,16)&E6$&F9$ 2120 GOSUB '41("IDS2fs00",E$,0.5) : IF Q>0THEN 2130 : IF Q=0THEN GOSUB '38(15," ") : ELSE GOSUB '35("Record is in use") : GOTO 2140 2130 F$()=" " : GOSUB '42("IDS2fs00",0) 2140 NEXT J8 2150 GOSUB 3010 : IF J1=5THEN SCRATCH T#3,F2$(J3) : IF E1$<E2$OR E2$=" "THEN 2410 : J3=32 : I=J2 2400 %######### edit number ##### Operation = "########" 2410 PRINT AT(19,0,80);AT(20,0,80) 2500 NEXT J3,I : F6$(14)="Y" : LOAD T#2,"IDS2PS51"1000, 3000 T=0 : GOSUB '67(2,STR(E2$(),J8*2+248,2),0) : MAT REDIM F$(3)83 : DATA LOAD DA T#2,(U)F$() : MAT REDIM F$(E9)1 : RETURN 3010 X=VAL(STR(E1$(2),48),2)*VAL(STR(E1$(2),43),2) : Y=0 : FOR J8=0TO VAL(STR(E1$(2),43),2)-1 : DATA LOAD BA T#2,(VAL(STR(E1$(2),55),2)+J8*VAL(STR(E1$(2),46),2))E4$() : Y=Y+VAL(STR(E4$(),9),2) : NEXT J8 : GOSUB '55(3,Y*100/X) : GOSUB '55(4,X-Y) : RETURN 3020 MAT REDIM E4$(256)1 : E4$()=HEX(A0)&BIN(E3,2)&ALL(00) : IF B>0THEN DATA SAVE BA T#D1,(B)E4$() : RETURN 3699 ON ERRORE1$,E2$GOTO 3700 3700 DEFFN'31 : E$="IDS2PR52" : IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000, : STOP "ERROR"