image of READY prompt

Wang2200.org

Listing of file='609.VAUR' on disk='vmedia/731-0067F-disk1.wvd.zip'

# Sector 2809, program filename = '609.VAUR'
0010 REM 609.VAUR 238-08/07/86
0012 DIM B2$80,C$2,C1$2,C2$2,C3$2,C5$2,C7$2,C8$2,C9$2,D0$2,D1$2,D2$2,D3$2,D4$2
     ,D7$2,D8$2,D9$2,J0$3,J2$1,J3$2,J4$2,J5$2,J9$90
   : DIM @P$4,@P,@D$(3)82,@D$3
0014 DIM C2$(256)1,D$(84)4,D3$(84)8,J1$(256)1,J4$(64)2,J5$(84)2
   : J9$="V o l u m e   R e c o v e r yVolume "&D5$&" on "&STR(D6$,1,3)&" VAU
     Map errors"&"     "&STR(R2$,,2)&"/"&STR(R2$,3,2)&"/"&STR(R2$,5,2)
   : I3,D2=0
   : GOSUB 1610
   : GOSUB 1910
   : IF D6$<>" "THEN 316
   : GOSUB 2440
0314 GOSUB 1685
   : GOTO 1412
0316 SELECT #5<D6$>
   : LIMITS T#5,D5$,J0,X,X,X
   : ERRORGOTO 314
0322 IF P=0AND Q=0THEN 878
   : GOSUB 2300
   : GOSUB 1685
   : A=1
   : J5=0
   : GOSUB 916
   : IF STR(C1$(),255)=HEX(0002)AND X=2THEN 370
   : A=3
   : L=1
0352 GOSUB 916
   : A=VAL(STR(C1$(),5+17),2)
   : L=L+1
   : IF L<4THEN 352
   : STR(C1$(),255,2)=HEX(0002)
   : A=1
   : GOSUB 956
0370 C0=VAL(STR(C1$(),32))
   : C9=VAL(STR(C1$(),28),2)
   : C1=INT(C9/C0)
   : C8=FIX(C1/127)+1
   : C7=1+FIX(C1/127/C0)
   : C3=MAX(1,FIX(8/C0))
   : J1=VAL(STR(C1$(),30),2)
   : IF Q=0THEN 435
0371 FOR N=1TO Q
   : GOSUB 2320
   : GOSUB 1685
   : D$(N)=STR(D2$(N),,4)
   : NEXT N
   : FOR H=1TO C5
   : IF STR(D9$(H),5,1)<>HEX(14)THEN 377
   : A=VAL(STR(D9$(H),,2),2)
   : GOSUB 916
   : MAT SEARCHSTR(D1$(),3),=STR(C1$(),34,2)TO J4$STEP 4
   : IF J4$=HEX(0000)THEN 377
   : D$(N)=STR(D9$(H),,2)&STR(C1$(),34,2)
   : N=N+1
0377 NEXT H
0435 P1=P
   : IF P<>0THEN GOSUB 3333
   : IF P<>P1THEN 371
0442 IF P=0THEN 574
   : P1=P
   : GOSUB 2340
   : GOSUB 1685
   : FOR J4=1TO P1
   : IF VAL(STR(D1$(J4),5,2),2)=3AND VAL(STR(D1$(J4),7,2),2)=3THEN 476
   : IF VAL(STR(D1$(J4),,2),2)<1OR VAL(STR(D1$(J4),,2),2)>C9THEN 476
   : IF VAL(STR(D1$(J4),5,2),2)<1OR VAL(STR(D1$(J4),5,2),2)>C9THEN 476
   : IF STR(D1$(J4),3,2)=HEX(0000)AND STR(D1$(J4),7,2)=HEX(0000)THEN 482
   : GOSUB 1266
   : GOTO 560
0476 IF STR(D1$(J4),5,2)=HEX(0003)OR STR(D1$(J4),7,2)=HEX(0003)THEN GOSUB 1012
   : ELSE GOTO 482
   : GOTO 560
0482 IF STR(D1$(J4),3,2)=HEX(0000)AND STR(D1$(J4),7,2)=HEX(0000)THEN GOSUB 104
     0
   : ELSE GOTO 486
   : GOTO 560
0486 MAT SEARCHSTR(D$(),3),=STR(D1$(J4),3,2)TO J4$STEP 4
   : A=VAL(STR(D1$(J4),,2),2)
   : GOSUB 916
   : IF STR(D1$(J4),3,2)<>HEX(0000)THEN 510
   : A=VAL(STR(D1$(J4),5,2),2)
   : GOTO 516
0510 IF STR(D1$(J4),5,2)=HEX(FFFF)OR STR(D1$(J4),7,2)=HEX(0000)THEN 514
   : GOTO 564
0514 A=VAL(STR(D1$(J4),,2),2)
0516 GOSUB 916
   : D2=256
   : J4$,J4$()=ALL(00)
   : MAT SEARCHC1$(),>HEX(2F)TO J4$()
   : MAT MOVE C1$(),J4$(),D2TO C2$()
   : MAT SEARCHSTR(C2$(),,D2),<HEX(7B)TO J4$
   : IF VAL(J4$,2)=0THEN 548
   : J4$=HEX(0000)
   : IF J4<>1THEN MAT SEARCHSTR(D1$(),3,(J4-1)*8-2),=STR(D1$(J4),3,2)TO J4$STE
     P 4
   : MAT SEARCHSTR(D1$(),8*J4+3),=STR(D1$(J4),3,2)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 564
0538 GOSUB 984
   : STR(J1$(),A1,2)=HEX(0000)
   : GOSUB 970
   : GOTO 564
0548 C4$()=C1$()
   : GOSUB 1705
   : C1$()=ALL(00)
   : GOSUB 956
0560 GOSUB 1060
   : IF D9=1THEN J4=65
0564 NEXT J4
   : IF P1=0THEN 854
0574 IF P1=0AND N=0THEN 878
   : IF P1>0AND N=0THEN 854
   : FOR J2=1TO N
   : GOSUB 2360
   : GOSUB 1685
   : D=VAL(STR(D$(J2),3,2),2)
   : D0=VAL(STR(D$(J2),1,2),2)
   : A=D0
   : GOSUB 916
   : GOSUB 1086
   : IF J4$=HEX(0000)THEN J5=2
   : J5$=STR(C1$(),5,2)
   : C7$=STR(C1$(),14,2)
   : C8$=STR(C1$(),20,2)
   : C9$=STR(C1$(),34,2)
   : C3$=HEX(0000)
   : D7$,D8$=HEX(0000)
   : J6=1
   : J5=0
   : A=VAL(C7$,2)
   : IF A>1OR A<C9THEN 646
0636 J4$=HEX(0000)
   : MAT SEARCHSTR(D1$(),3),=STR(C9$)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 646
   : GOTO 850
0646 GOSUB 916
   : D9$=C7$
   : GOTO 664
0654 D7=D7+SGN(VAL(STR(J1$(),A1,2),2)+J0-1-A)*J6^2
   : D7$=BIN(MIN(VAL(D7$,2),VAL(STR(J1$(),A1,2),2)),2)
   : D8$=BIN(MAX(VAL(D8$,2),VAL(STR(J1$(),A1,2),2)),2)
   : D9$=STR(J1$(),A1,2)
0664 IF STR(J0$,,2)=C9$THEN 682
   : IF C3$<>STR(J0$,,2)OR C3$=HEX(00)THEN 676
   : IF J5=0THEN J5=3
   : GOTO 682
0676 IF J5<>4THEN J5=2
   : C3$=STR(J0$,,2)
0682 GOSUB 984
   : IF J5=0THEN J5=1
   : IF VAL(STR(J1$(),A1,2),2)=0OR STR(J1$(),A1,2)=HEX(FFFF)THEN 698
   : J6=J6+1
   : GOSUB 1000
   : GOTO 654
0698 IF C9$<HEX(0005)THEN J5=3
   : ON J5GOSUB ,1098,1126
   : IF D9=0THEN 720
   : IF VAL(STR(J1$(),A1,2),2)=0THEN 850
   : STR(J1$(),A1,2)=HEX(0000)
   : GOSUB 970
   : D9=0
   : GOTO 720
0720 D3$()=ALL(00)
   : J=0
   : GOSUB 1144
   : IF POS(D3$()>HEX(00))>0AND J6+J>=VAL(J5$,2)THEN 750
   : D7$=D7$SUBCHEX(01)
   : D8$=D8$ADDCHEX(01)
   : GOSUB 1144
   : IF POS(D3$()>HEX(00))>0AND J6+J>=VAL(J5$,2)THEN 750
   : D7$=D7$SUBCHEX(01)
   : D8$=D8$ADDCHEX(01)
   : GOSUB 1144
   : IF POS(D3$()>HEX(00))>0AND J6+J>=VAL(J5$,2)THEN 750
0750 FOR I=1TO J
   : IF STR(D1$(VAL(J5$(J),2)),3,2)<>C9$OR STR(D1$(VAL(J5$(J),2)),7,2)<>C9$THE
     N 756
   : GOTO 774
0756 MAT SEARCHSTR(D$(),J2*4+1,(N-J2)*4),=STR(D1$(VAL(J5$(J),2)),3,2)TO J4$STE
     P 4
   : IF J4$<>HEX(0000)THEN 766
   : MAT SEARCHSTR(D$(),J2*4+1,(N-J2)*4),=STR(D1$(VAL(J5$(J),2)),7,2)TO J4$STE
     P 4
   : IF J4$<>HEX(0000)THEN 766
   : GOTO 774
0766 IF J6+J<=VAL(J5$,2)THEN 774
   : STR(D3$(),(J-1)*8+1)=STR(D3$(),J*8+1)
   : STR(J5$(),(J-1)*2+1)=STR(J5$(),J*2+1)
   : J=J-1
0774 NEXT I
   : J4$=HEX(0000)
   : FOR H1=1TO J
   : D3$,D4$=HEX(0000)
   : D8,D9=0
   : FOR I=1TO J
   : MAT SEARCHSTR(D3$(),5,J*8),=STR(D3$(I),,2)TO J4$STEP 8
   : IF J4$<>HEX(0000)THEN 796
   : IF STR(D3$(I),,2)=HEX(0000)THEN GOSUB 1196
   : ELSE GOSUB 1182
0796 NEXT I
   : IF D4$<>HEX(0000)THEN 810
   : FOR I=1TO J
   : MAT SEARCHSTR(D3$(),5,J*8),=STR(D3$(I),,2)TO J4$STEP 8
   : IF J4$<>HEX(0000)THEN 808
   : IF STR(D3$(I),,2)=HEX(0000)THEN GOSUB 1222
   : ELSE GOSUB 1208
0808 NEXT I
0810 GOSUB 1234
   : GOSUB 984
   : STR(J1$(),A1,2)=D4$
   : GOSUB 970
   : D9$=D4$
   : STR(D3$(K),1,8)=D4$&C9$&STR(D3$(K),5,2)&C9$
   : A=VAL(D4$,2)
   : GOSUB 940
   : STR(C1$(),254,2)=C9$
   : GOSUB 956
   : NEXT H1
   : FOR I=1TO J
   : J4=VAL(J5$(I),2)
   : GOSUB 1060
   : NEXT I
   : IF D9=1THEN J2=N
0850 NEXT J2
0854 IF P1=0THEN 878
   : FOR I=1TO P1
   : A=VAL(STR(D1$(I),,2),2)
   : GOSUB 916
   : C4$()=C1$()
   : GOSUB 1705
   : C1$()=ALL(00)
   : GOSUB 956
   : NEXT I
0878 $CLOSE#5
   : COM CLEAR C5
   : SELECT PRINT 005(80)
   : D8$()="609@VER Prime 62"
   : LOAD DC T<2>D8$()
0892 PRINT AT(22,3);B2$;P
   : PRINT HEX(020404000E)
   : PRINT AT(23,3);B2$;HEX(0F)
0916 D0$=HEX(00)
   : DATA LOAD BA T#5,(J0+A-1)C1$()
   : ERRORD0$=BIN(ERR)
   : GOSUB 2400
   : I3=1
   : GOSUB 1685
   : GOTO 1412
0922 IF STR(C1$(),256)=HEX(FD)OR STR(C1$(),256)>HEX(04)THEN J0$=STR(C1$(),254,
     3)
   : ELSE J0$=STR(C1$(),255)&HEX(00)
   : RETURN
0940 D0$=HEX(00)
   : DATA LOAD BA T#5,(J0+A-1)J1$()
   : ERRORD0$=BIN(ERR)
   : GOSUB 2400
   : I3=1
   : GOSUB 1685
   : GOTO 1412
0946 IF STR(J1$(),256)=HEX(FD)THEN J0$=STR(J1$(),254,3)
   : ELSE J0$=STR(J1$(),255)&HEX(00)
   : RETURN
0956 D0$=HEX(00)
   : DATA SAVE BA T#5,(J0+A-1)C1$()
   : ERRORD0$=BIN(ERR)
   : GOSUB 2400
   : I3=1
   : GOSUB 1685
   : GOTO 1412
0962 RETURN
0970 D0$=HEX(00)
   : DATA SAVE BA T#5,(J0+A-1)J1$()
   : ERRORD0$=BIN(ERR)
   : GOSUB 2400
   : I3=1
   : GOSUB 1685
   : GOTO 1412
0976 RETURN
0984 A1=MOD(A-1,127)*2+1
   : A=INT(((A)/127)+J1)
   : GOSUB 940
   : C$=STR(J1$(),A1,2)
   : RETURN
1000 A=VAL(STR(J1$(),A1,2),2)
   : GOSUB 916
   : RETURN
1012 A=2
   : GOSUB 916
   : C5$=STR(D1$(J4),1,2)SUBCHEX(01)
   : MAT SEARCHC1$(),=STR(C5$)TO J4$STEP 2
   : J3=VAL(J4$,2)
   : IF J3<=4THEN RETURN
   : STR(C1$(),J3,255-J3)=STR(C1$(),J3+2,253-J3)&ALL(00)
   : STR(C1$(),3,2)=STR(C1$(),3,2)SUBCHEX(01)
   : GOSUB 956
   : RETURN
1040 A=VAL(STR(D1$(J4),1,2),2)
   : GOSUB 984
   : STR(J1$(),A1,2)=HEX(FFFF)
   : GOSUB 970
   : RETURN
1060 STR(D1$(),(J4-1)*8+1)=STR(D1$(),(J4)*8+1)
   : P1=P1-1
   : J4=J4-1
   : IF P1>0THEN D9=0
   : IF P1<=0THEN D9=1
   : RETURN
1086 J4$=HEX(0000)
   : MAT SEARCHSTR(D2$(),1,2),=STR(C9$)TO J4$STEP 20
   : RETURN
1098 A=VAL(C7$,2)
   : GOSUB 916
   : H=1
1104 IF STR(C1$(),256)=HEX(FD)THEN STR(C1$(),254,2)=C9$
   : ELSE STR(C1$(),255)=C9$
   : GOSUB 956
   : GOSUB 984
   : IF VAL(STR(J1$(),A1,2),2)=0THEN RETURN
   : H=H+1
   : IF H>J6THEN RETURN
   : GOSUB 1000
   : GOTO 1104
1126 A=D0
   : GOSUB 916
   : STR(C1$(),34,2)=C3$
   : IF J6>VAL(J5$,2)THEN STR(C1$(),5,2)=BIN(J6,2)
   : GOSUB 956
   : RETURN
1144 FOR I=1TO P
   : J3$=BIN(I,2)
   : J4$=HEX(0000)
   : MAT SEARCHJ5$(),=STR(J3$)TO J4$STEP 2
   : IF J4$<>HEX(0000)THEN 1172
   : IF STR(D1$(I),,2)>=D7$AND STR(D1$(I),,2)<=D8$THEN 1166
   : IF STR(D1$(I),5,2)>=D7$AND STR(D1$(I),5,2)<=D8$THEN 1166
   : IF STR(D1$(I),3,2)=C9$OR STR(D1$(I),7,2)=C9$THEN 1166
   : GOTO 1172
1166 STR(D3$(),J*8+1,8)=D1$(I)
   : J=J+1
   : J5$(J)=BIN(I,2)
1172 NEXT I
   : RETURN
1182 IF D7<0THEN IF STR(D3$(I),,2)<=D9$THEN D4$=BIN(MAX(VAL(D4$,2),VAL(STR(D3$
     (I),,2),2)),2)
   : IF D7>=0THEN IF STR(D3$(I),,2)>=D9$THEN D4$=BIN(MIN(VAL(D4$,2),VAL(STR(D3
     $(I),,2),2)),2)
   : D8=1
   : RETURN
1196 IF D7<0THEN IF STR(D3$(I),,2)<=D9$THEN D4$=BIN(MAX(VAL(D4$,2),VAL(STR(D3$
     (I),5,2),2)+1),2)
   : IF D7>=0THEN IF STR(D3$(I),,2)>=D9$THEN D4$=BIN(MIN(VAL(D4$,2),VAL(STR(D3
     $(I),5,2),2)-1),2)
   : RETURN
1208 IF D7<0THEN D4$=BIN(MIN(VAL(D4$,2),VAL(STR(D3$(I),,2),2)),2)
   : IF D7>=0THEN D4$=BIN(MAX(VAL(D4$,2),VAL(STR(D3$(I),,2),2)),2)
   : D8=2
   : RETURN
1222 IF D7<0THEN D4$=BIN(MIN(VAL(D4$,2),VAL(STR(D3$(I),,2),2)-1),2)
   : IF D7>=0THEN D4$=BIN(MAX(VAL(D4$,2),VAL(STR(D3$(I),,2),2)+1),2)
   : RETURN
1234 MAT SEARCHSTR(D3$(),,J*8),=STR(D4$)TO J4$STEP 8
   : IF J4$<>HEX(0000)THEN 1256
   : D3$=D4$SUBCHEX(01)
   : IF D7<0AND D8=1THEN MAT SEARCHSTR(D3$(),,J*8),=STR(D3$)TO J4$STEP 8
   : IF J4$<>HEX(0000)THEN 1256
   : IF D7>0AND D8=2THEN MAT SEARCHSTR(D3$(),,J*8),=STR(D3$)TO J4$STEP 8
   : IF J4$<>HEX(0000)THEN 1256
   : D3$=D4$ADDCHEX(01)
   : IF D7>0AND D8=1THEN MAT SEARCHSTR(D3$(),,J*8),=STR(D3$)TO J4$STEP 8
1252 IF J4$<>HEX(0000)THEN 1256
   : IF D7<0AND D8=2THEN MAT SEARCHSTR(D3$(),,J*8),=STR(D3$)TO J4$STEP 8
1256 K=FIX(VAL(J4$,2)/8)+1
   : RETURN
1266 J3$=STR(D1$(J4),,2)
1268 GOSUB 1336
   : IF J4$=HEX(0000)THEN 1304
   : J4$=HEX(0000)
   : MAT SEARCHSTR(D1$(),,P1*8),=STR(C$)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 1326
   : MAT SEARCHSTR(D1$(),5,P1*8),=STR(C$)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 1326
1282 A=VAL(C$,2)
   : GOSUB 916
   : J3$=STR(J0$,,2)
   : IF J3$=STR(D1$(J4),7,2)THEN 1296
   : A=VAL(STR(D1$(J4),5,2),2)
   : GOSUB 1380
   : IF J3$=STR(D1$(J4),7,2)THEN 1300
1296 A=VAL(STR(D1$(J4),,2),2)
   : GOSUB 1380
1300 RETURN
1304 C$=STR(D1$(J4),5,2)
1306 A=VAL(C$,2)
   : IF A<1OR A>C9THEN 1300
   : GOSUB 984
   : A=VAL(C$,2)
   : J4$=HEX(0000)
   : MAT SEARCHSTR(D1$(),,P1*8),=STR(C$)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 1306
   : MAT SEARCHSTR(D1$(),5,P1*8),=STR(C$)TO J4$STEP 4
   : IF J4$<>HEX(0000)THEN 1306
   : GOTO 1282
1326 J3$=C$
   : GOTO 1268
1336 A=INT((VAL(J3$,2)/127)+J1)
   : GOSUB 1364
   : IF J4$<>HEX(0000)THEN 1354
   : FOR I=1TO C8
   : A=J1+I-1
   : GOSUB 1364
   : IF J4$<>HEX(0000)THEN I=C8
   : NEXT I
   : IF J4$=HEX(0000)THEN RETURN
1354 C$=BIN((((A-J1)*127)+(VAL(J4$,2)+1)/2),2)
   : RETURN
1364 GOSUB 940
   : J4$=HEX(0000)
   : IF STR(J1$(),255)<>HEX(0001)THEN RETURN
   : MAT SEARCHJ1$(),=STR(J3$)TO J4$STEP 2
   : RETURN
1380 GOSUB 916
   : C4$()=C1$()
   : GOSUB 1705
   : IF STR(C1$(),256)=HEX(FD)OR STR(C1$(),256)>HEX(04)THEN STR(C1$(),254,2)=J
     3$
   : ELSE STR(C1$(),255)=J3$
   : GOSUB 956
   : RETURN
1396 PRINT AT(23,3);B2$;
   : GOSUB 2420
1400 PRINT HEX(0601);AT(23,59);B2$;HEX(07);
1402 KEYIN J2$,1406,1406
   : GOTO 1402
1406 IF J2$=HEX(F0)THEN 878
   : ELSE GOTO 1400
1410 % DO NOT RENUMBER THE FOLLOWING
1412 GOSUB 2420
   : PRINT AT(23,3);B2$;HEXOF(D0$)
   : GOTO 1400
2300 B2$="Checking for damaged FCB"
   : RETURN
2320 B2$="Creating error array D$()"
   : RETURN
2340 B2$="Compressing error array D1$(), irreparable VAU types 1,2,3,4,6a,6b,7
     "
   : RETURN
2360 B2$="Resolving intra-file conflicts for file ID"
   : RETURN
2380 B2$="Matching orphan VAU's to surrogate parents"
   : RETURN
2400 B2$="Disk I/O error "&D0$&" has occurred"
   : RETURN
2420 B2$="Please Cancel"
   : RETURN
2440 B2$="Disk address has not been brought from 609.VER2"
   : RETURN
3333 FOR I=1TO P
   : @P$=STR(D1$(I),5,4)
   : IF @P$=HEX(FFFFFFFF)THEN 3377
   : MAT SEARCHD1$(),=STR(@P$)TO J4$()STEP 8
   : @P=INT((7+VAL(J4$(1),2))/8)
   : IF @P<1OR @P>PTHEN 3377
   : IF @P$<>STR(D1$(@P),1,4)THEN 3377
   : GOSUB 3395
   : IF STR(@D$,2,2)<>STR(D1$(@P),7,2)THEN 3371
   : D1$(@P)=ALL(FF)
   : P=P-1
   : GOTO 3377
3371 STR(D1$(@P),3,2)=STR(@D$,2,2)
3377 NEXT I
   : FOR I=1TO P1
   : @P$=STR(D1$(I),5,4)
   : IF STR(@P$,3,2)<>HEX(0001)THEN 3385
   : GOSUB 3395
3385 NEXT I
   : IF P=P1THEN 3394
   : FOR I=1TO P1
3392 IF POS(HEX(FF)<>D1$(I))>0THEN 3393
   : FOR I1=1TO 8
   : ROTATEC(STR(D1$(),1+(I-1)*8),8)
   : NEXT I1
   : STR(D1$(),LEN(D1$())-8)=ALL(00)
   : GOTO 3392
3393 NEXT I
3394 RETURN
3395 @D$()=ALL(80)
   : STR(@D$(),1,1)=HEX(8F)
   : STR(@D$(),80,1)=HEX(83)
   : STR(@D$(),82)="...Note...Set.by.Verify.and.Recovery.program!.@@@"
   : STR(@D$(),1+LEN(@D$()),1)=HEX(8F)
   : @D$="T"
   : STR(@D$,2,2)=STR(D1$(I),3,2)
   : A=VAL(STR(D1$(I),1,2),2)
   : DATA SAVE DA T#5,(J0+A)@D$(),@D$
   : D1$(I)=ALL(FF)
   : P=P-1
   : RETURN