Listing of file='IDS2PU89' on disk='vmedia/701-2715B.wvd.zip'
# Sector 719, program filename = 'IDS2PU89'
1000 REM "IDS2PU89" -- Release 2.1 -- KEY FILE RECOVERY D22
1020 R3$(1)="IDEAS2"
: IF F6$(53)="Y"THEN R3$(1)=STR(F4$,4,8)
: F9=0
: DIM C$1
: IF F6$(17)<"^"THEN SELECT @PART"IDS2SUBM"
: F1=U+1
: GOSUB '32("IDS2sU89")
: IF Z=0THEN Z=1
: E2$=STR(E0$(),,8)
: E3$=E2$OR ALL(20)
: GOSUB '39(E3$,5)
: MAT REDIM E$(6)83
: DATA LOAD DA T#P,(A)E$()
: FOR N=1TO 16
1130 PRINT AT(9+N-8*INT((N-1)/8),32+38*INT((N-1)/8));STR(E$(),275+8*(N-1),8)
: NEXT N
: MAT SEARCHE1$(),=STR(E2$,,8)TO F9$STEP 56
: Q,V,C9=INT((VAL(F9$,2)+55)/56)
: GOSUB '47
: D5=D
: C5=B
: F5=S
: D9=VAL(STR(E1$(V),45))
: E5=E
: C6=H
: J5=P
: C7=1+VAL(STR(E1$(V),13,2),2)
: GOSUB '39(E2$,D5)
: D5=P
: C1=A
: IF Q=2THEN 1210
: GOSUB '38(107," ")
: END
1210 PRINT AT(3,32);E2$
: PRINT AT(5,35);C5
: PRINT AT(6,35);Z
: PRINT AT(8,32);E2$
: D7=D9/8
: R1=0
: FOR J1=1TO C5
: IF F1>C5THEN F1=1
: PRINT AT(5,70);J1
: FOR D6=1TO D7
: E2$()=ALL(00)
: MAT REDIM E2$(24)83
: DATA LOAD DA T#D5,(C1+F5*(F1-1)+8*(D6-1))E2$()
: R5=1+(VAL(STR(E2$(),4),2)-VAL(STR(E2$(),3)))/E5
: E2$()=STR(E2$(),C6+VAL(STR(E2$(),3)))
1360 MAT REDIM E2$(R5)E5
: FOR R7=R5TO 1STEP -1
: P=J5
: GOSUB '67(C9,STR(E2$(R7),,J5),0)
: X=5
: J=0
: GOSUB '79
: IF POS(STR(F$(),1,C7-1)>HEX(20))=0THEN 1490
: F$()=STR(F$(),1,C7-1)
: F6$(14)="N"
: GOSUB '42(E2$,0)
: IF H<>0THEN 1480
: GOSUB '69(V)
: GOSUB '41(E2$,E$,0)
: IF Q<>0THEN 1470
: GOSUB 2000
1470 GOSUB '67(C9,STR(E2$(R7),,J5),0)
: STR(E3$(),C-1,C7)=HEX(FF)&ALL(20)
: DATA SAVE DA T#D,(U)E3$()
1480 R1=R1+1
: PRINT AT(6,70);R1
1490 PRINT AT(3,59);ROUND((100*((R5*((J1-1)*D7+D6)-R7)/(C5*D7*R5)),2)
: NEXT R7
: NEXT D6
: F1=F1+1
: NEXT J1
1540 COM CLEAR E()
: $CLOSE#1
: P=2
: IF F6$(53)="Y"THEN P=4
: LOAD T#P,R3$(1),1000
1560 END
: STOP
2000 IF F9=9THEN 2100
: GOSUB '38(112," ")
: PRINT AT(18,4);"To prevent the loss of records you must examine your alte
rnate keys and"
: PRINT AT(19,4);" change the key fields. You must then re-run this utilit
y to recover the keys."
: PRINT AT(20,4);"Do you wish to continue?"
2033 KEYIN C$
: IF C$="Y"OR C$="y"THEN 2080
: IF C$="N"OR C$="n"THEN 1540
: GOTO 2033
2080 PRINT AT(21,4);"Do you wish to print out records being erased?"
: KEYIN C$
: IF C$="N"OR C$="n"THEN RETURN
: IF C$<>"Y"AND C$<>"y"THEN 2080
: F0$=HEX(0C)
: E0$()=BIN(LEN(F0$)+1)&F0$
: GOSUB '49(0)
: F0$="RECORDS DELETED DURING KEY FILE RECOVERY"&HEX(0D)
: GOSUB '48(1,F0$,45)
: GOSUB '49(45)
2100 F9=9
: $OPEN #1
: F9=9
: $OPEN #1
: GOSUB '48(1,F$(),C7-1)
: GOSUB '49(C7-1)
: GOSUB '38(113," ")
: RETURN
2199 GOTO 2199
3699 ON ERRORE1$,E2$GOTO 3700
3700 DEFFN'31
: E$="IDS2PU89"
: IF E5$<"Y"THEN LOAD T#2,"IDS2PER1"1000,
: STOP "ERROR"
9000 DEFFN'0"LIST S HEX(03020400000E) D 10,";HEX(0D)
9060 DEFFN'126"LIST S HEX(03020400000E) D 2000,";HEX(0D)
9070 DEFFN'127"J9$=";HEX(22);"IDS2PU89";HEX(22);":SCRATCH T J9$:SAVE T () J9$:
LIST S HEX(03020400000E) D 10,";HEX(0D)