Listing of file='REC.page' on disk='vmedia/731-0067F-disk1.wvd.zip'
# Sector 1316, program filename = 'REC.page' 0010 REM REC.page - Includes; REC.PRIM, REC.RD, REC.INS, REC.FREE, REC.DEL, R EC.REP 4508 DIM R1$1,V5$(160)1,V1$(3)82,V7$(256)1,U0(23),V9$2,V1$2,U0$3,U3$1,U7$(256) 1,U0$(128)2,U4$4,V4$1,V6(9),V9(9),U5(10),V5(7) 4902 DEFFN'242(U0$(),V8,U5(8)) : U5(10)=1 : IF V9>1THEN 4908 : V9(1)=VAL(U0$(1),2) : GOSUB 4986 : IF U5(7)<>0THEN 4904 : U5(7)=V9(1) : STR(V7$(),2*MOD(U5(8)-1,V5)+1,2)=BIN(0,2) : GOTO 4906 4904 STR(V7$(),2*MOD(V9(1)-1,V5)+1,2)=BIN(U5(8),2) 4906 U5(8)=V9(1) : V9$=U0$(1) : U0$()=STR(U0$(),3) : STR(U0$(),2*V8+1)=ALL(00) : V8=V8-1 4908 IF V8<1THEN 4922 : U0(6)=0 : FOR U=1TO V8+1 : GOSUB 4986 : V9(7)=1+2*MOD(V9(1)-1,V5) : IF U>1THEN 4912 : IF VAL(STR(V7$(),V9(7),2),2)=0THEN 4910 : U5(9)=VAL(STR(V7$(),V9(7),2),2) : STR(V7$(),V9(7),2)=U0$(1) : GOTO 4918 4910 U0(6)=1 : STR(V7$(),V9(7),2)=U0$(U) : GOTO 4918 4912 IF U<V8+1THEN 4916 : IF U0(6)=1THEN 4914 : IF V0=0THEN 4920 : STR(V7$(),V9(7),2)=BIN(U5(9),2) : GOTO 4920 4914 STR(V7$(),V9(7),2)=BIN(0,2) : U5(7)=V9(1) : GOTO 4920 4916 STR(V7$(),V9(7),2)=U0$(U) 4918 V9(1)=VAL(U0$(U),2) 4920 NEXT U 4922 IF V9<>1THEN 4926 : IF V8=0THEN 4924 : FOR U=0TO V8-1 : STR(U0$(),2*(V8-U+1)-1,2)=STR(U0$(),2*(V8-U)-1,2) : NEXT U 4924 V8=V8+1 : STR(U0$(),,2)=V9$ : IF U5(8)<>V6(2)THEN V6(3)=V6(3)+V8 4926 RETURN 4932 DEFFN'240(U5(8),V9(2),V6(2),V6(3)) : U0(21)=V9(2) : V9(1),U5(9)=U5(8) : IF V9(2)>0THEN 4934 : V6(3)=1 : V6(2)=U5(8) : RETURN 4934 IF V9(2)<V6(3)THEN 4936 : U0(21)=V9(2)-V6(3)+1 : U5(9)=V6(2) 4936 FOR U=1TO U0(21) : V9(1)=U5(9) : GOSUB 4986 : U5(9)=VAL(STR(V7$(),2*MOD(V9(1)-1,V5)+1,2),2) : IF V9(1)=0THEN 5004 : NEXT U : R1$=HEX(00) : V6(3)=V9(2) : V6(2)=V9(1) : RETURN 4938 DEFFN'241(V9(1)) : IF V9(1)<1THEN RETURN : GOSUB 4986 : U5(9)=VAL(STR(V7$(),2*MOD(V9(1)-1,V5)+1,2),2) : RETURN 4946 DEFFN'244(V9(1),V8) : U0(14)=V9(1) : U0$()=ALL(00) : GOSUB 4986 : GOSUB 5118 : IF V5(1)<>0THEN GOSUB 4972 : V9(1)=U0(14) : IF V5(1)<V8THEN 4962 : RETURN 4958 MAT SEARCHU0$(),=HEX(0000)TO V9$STEP 2 : V6(5)=(VAL(V9$,2)-1)/2 : IF V6(5)-V5(1)=0THEN RETURN : FOR I=V5(1)+1TO V6(5) : U0$(I)=BIN(V5*(V6(4)-U5(1))+(VAL(U0$(I),2)+1)/2,2) : NEXT I : V5(1)=V6(5) : RETURN 4962 V9(4)=U8/V2 : U0(17)=V5 : U0(22)=2*(MAX(INT(ABS(V9(1)-1)/V5),INT(ABS(V9(1)-V9(4))/V5))+1) : FOR U=1TO U0(22) : IF V5(1)>=V8THEN 4970 : V9(1)=V9(1)+V5*U*(-1)^U : IF INT((V9(1)-1)/V5)>INT((V9(4)-1)/V5)OR V9(1)<2THEN 4968 : IF V9(1)<V9(4)THEN 4966 : V9(1)=V9(4) : U0(17)=MOD(V9(1)-1,V5) 4966 GOSUB 4986 : MAT SEARCHV7$(),=HEX(FFFF)TO STR(U0$(),2*V5(1)+1,2*MIN((V8-V5(1)),U0(17)) )STEP 2 : GOSUB 4958 4968 NEXT U : IF U=U0(22)AND V5(1)<>V8THEN R1$=HEX(01) : ELSE R1$=HEX(00) 4970 V9(1)=U0(14) : RETURN 4972 U0(16)=1 : IF V5(1)<=V8THEN 4978 : U0(10)=66000 : FOR U=1TO V5(1)-V8+1 : U0(9)=ABS(MOD(V9(1),V5)-VAL(U0$(U),2)) : IF V8<=1THEN 4974 : U0(9)=U0(9)+VAL(U0$(U+V8-1),2)-VAL(U0$(U),2) 4974 IF U0(9)>=U0(10)THEN 4976 : U0(10)=U0(9) : U0(16)=U 4976 NEXT U : V5(1)=V8 4978 FOR U=1TO V5(1) : U0$(U)=BIN((V6(4)-U5(1))*V5+VAL(U0$(U+U0(16)-1),2),2) : NEXT U : STR(U0$(),2*V5(1)+1)=ALL(00) : RETURN 4984 GOSUB 4986 : RETURN 4986 V9(5)=U5(1)+INT((V9(1)-1)/V5) : IF U5(4)=U0AND U5(6)=V5(2)THEN 4988 : U5(4)=U0 : U5(6)=V5(2) : GOTO 4992 4988 IF V9(5)=V6(4)AND U3$=HEX(FF)AND V5(7)=0THEN RETURN : V5(7)=0 : IF U5(10)=0THEN 4992 : DATA SAVE BA T#U0,(V6(4)+V5(2))V7$() : ERRORGOTO 4996 4990 IF U6=1THEN DATA SAVE BA T#U0,(V6(4)+V5(2)+U5(3)*V2)V7$() : ERRORGOTO 4996 4992 DATA LOAD BA T#U0,(V9(5)+V5(2))V7$() : ERRORGOTO 4996 4994 V6(4)=V9(5) : RETURN 4996 RETURN CLEAR 4998 RETURN CLEAR 5000 RETURN CLEAR : $CLOSE#U0 5002 U0(18)=-1 : R1$=BIN(ERR) : RETURN 5004 RETURN CLEAR 5006 U0(18)=-1 : $CLOSE#U0 : RETURN CLEAR : RETURN 5012 DEFFN'220(V3,V6,V9,V8,U5(2)) : U0(19)=0 : GOSUB 5020 : RETURN 5016 DEFFN'221(V3,V6,V9,V8,U5(2)) : GOSUB 5018 : RETURN 5018 DEFFN'228(V3,V6,V9,V8,U5(2)) : U0(19)=1 5020 U7=V9 : V5(5)=0 : V9(6)=LEN(STR(V0$(),V6)) : GOSUB 5132 : GOSUB 5158 : GOSUB '240(U5(8),V9-1,V6(2),V6(3)) : FOR U=1TO V8 : GOSUB '241(U5(9)) : U0$(U)=BIN(V9(1),2) : IF V9(1)<>0THEN 5022 : R1$=HEX(20) : GOTO 5006 5022 IF U5(9)=0THEN R1$=HEX(28) : IF U0(19)=0THEN 5026 : IF U5(2)=2THEN V1$()=STR(V0$(),V9(9)*(U-1)+V6,V9(9)) : DATA SAVE DA T#U0,(V5(2)+1+V2*(V9(1)-1))V1$(),U0$ : ERRORGOTO 5000 5024 GOTO 5030 5026 DATA LOAD DA T#U0,(V5(2)+1+V2*(V9(1)-1))V1$(),U0$ : ERRORGOTO 5000 5028 IF U=1THEN V4$=U0$ : V5(5)=V5(5)+V9(9) : IF U5(2)<>2THEN 5030 : IF V5(5)>V9(6)THEN STR(V0$(),V9(9)*(U-1)+V6,V9(9))=STR(V1$(),,V9(9)-(V5(5 )-V9(6))) : ELSE STR(V0$(),V9(9)*(U-1)+V6,V9(9))=V1$() 5030 NEXT U : U0(11)=U0(23) : U0(23)=-1 : GOSUB 5148 : GOSUB 5138 : U0(23)=U0(11) : RETURN 5036 DEFFN'223(V3,V9,V8) : GOSUB '255(V3,V9,V8) : RETURN 5038 DEFFN'255(V3,V9,V8) : U1=V8 : FOR Z=1TO INT(U1/121)+1 : IF U1>=120THEN V8=120 : ELSE V8=MOD(U1,120) : GOSUB 5132 : GOSUB 5168 : GOSUB '240(U5(8),V9-1,V6(2),V6(3)) : U5(5)=V9(1) : FOR U=1TO V8 : GOSUB '241(U5(9)) : U0$(U)=BIN(V9(1),2) : DIM U4$(256)1 : GOTO 5044 5042 PRINT AT(22,0,79);HEX(07020402000E);"Call (617) 459-5000 ext.4532 (Brock) -WPFM ERROR.Urgent!!" : STOP : $CLOSE : END 5044 U4$()=ALL(00) : DATA SAVE BA T#U0,(V5(2)+1+V2*(V9(1)-1))U4$() : ERRORGOTO 5000 5046 IF U5(9)<>0THEN 5048 : IF U5(5)=U5(8)THEN U5(7)=0 : ELSE U5(7)=U5(5) : GOTO 5050 5048 NEXT U 5050 V8=U : IF V9<2THEN 5052 : V9(1)=U5(5) : GOSUB 4984 : STR(V7$(),2*MOD(U5(5)-1,V5)+1,2)=BIN(U5(9),2) : GOTO 5054 5052 V6(2),U5(8)=U5(9) : V6(3)=1 5054 U5(10)=1 : V0=V0-V8 : IF V0=0THEN V6(3)=0 : FOR U=1TO V8 : V9(1)=VAL(U0$(U),2) : IF V9(1)=0THEN 5042 : GOSUB 4984 : STR(V7$(),2*MOD(V9(1)-1,V5)+1,2)=HEX(FFFF) : NEXT U : GOSUB 5144 : GOSUB 5138 : IF V0<V9THEN Z=U1 : IF U1>120THEN U1=U1-120 : NEXT Z : RETURN 5060 DEFFN'222(V3,V6,V9,V8,U5(2)) : GOSUB '254(V3,V6,V9,V8,U5(2)) : RETURN 5062 DEFFN'254(V3,V6,V9,V8,U5(2)) : GOSUB 5132 : GOSUB 5164 : IF R1$<>HEX(00)THEN 5006 : IF V0<>0THEN 5066 : V9(1)=FIX(RND(1)*U8/V2) : GOSUB '244(V9(1),V8) : IF R1$<>HEX(00)THEN 5006 : U5(8),V6(2)=VAL(U0$(1),2) : V6(3)=1 : U5(7)=0 : GOTO 5068 5066 GOSUB '240(U5(8),V9-1,V6(2),V6(3)) : GOSUB '244(V9(1),V8) : IF R1$=HEX(01)THEN 5006 5068 FOR U=1TO V8 : IF U0$(U)=HEX(0000)THEN R1$=HEX(01) : NEXT U : IF R1$=HEX(01)THEN 5006 : IF V3=4THEN 5076 : FOR U=1TO V8 : IF U5(2)=2THEN V1$()=STR(V0$(),V9(9)*(U-1)+V6,V9(9)) : DIM U4$(256)1 : DATA LOAD BA T#U0,(V5(2)+1+V2*(VAL(U0$(U),2)-1))U4$() : ERRORGOTO 5000 5070 IF POS(U4$()>HEX(00))=0THEN 5072 : PRINT AT(22,0,);"Serious error occurred.";HEX(07) : $CLOSE : STOP "Call your WANG representative."# : END 5072 DATA SAVE DA T#U0,(V5(2)+1+V2*(VAL(U0$(U),2)-1))V1$(),U0$ : ERRORGOTO 5000 5074 NEXT U 5076 GOSUB '242(U0$(),V8,U5(8)) : R1$=HEX(00) : V0=V0+V8 : GOSUB 5144 : GOSUB 5138 : RETURN 5118 MAT SEARCHV7$(),=HEX(FFFF)TO U0$()STEP 2 : MAT SEARCHU0$(),=HEX(0000)TO V9$STEP 2 : V5(1)=(VAL(V9$,2)-1)/2 : IF V5(1)<0THEN V5(1)=V5 : IF V5(1)<=2*V8THEN 5126 : V9$=BIN(2*MOD(U0(14)-1,V5)+1,2) : MAT SEARCHU0$(),>V9$TO V1$STEP 2 : V6(5)=MAX((VAL(V1$,2)-1)/2,0) : IF V6(5)>=V8THEN 5122 : V5(1)=V8+V6(5) : GOTO 5124 5122 V5(1)=MIN(2*V8,V8+V5(1)-V6(5)) : U0$()=STR(U0$(),2*(V6(5)-V8)+1) 5124 STR(U0$(),2*V5(1)+1)=ALL(00) 5126 FOR U=1TO V5(1) : U0$(U)=BIN((VAL(U0$(U),2)+1)/2,2) : NEXT U : RETURN 5132 U5(10)=0 : V6(1)=V3*U0(5) : V5(7)=1 : GOSUB 5140 : STR(U0$,,1)=V4$ : IF V3=U4THEN RETURN : U4=V3 : IF V3<>4THEN U0=15-V3 5134 U5(8)=VAL(STR(V5$(),V6(1)+11,2),2) : U5(7)=VAL(STR(V5$(),V6(1)+17,2),2) : V6(2)=VAL(STR(V5$(),V6(1)+19,2),2) : V6(3)=VAL(STR(V5$(),V6(1)+21,2),2) : V2=VAL(STR(V5$(),V6(1)+29,1)) : MAT REDIM V1$(3*V2)82 : U5(1)=VAL(STR(V5$(),V6(1)+27,2),2) : U8=VAL(STR(V5$(),V6(1)+25,2),2) 5136 V0=VAL(STR(V5$(),V6(1)+2,2),2) : U0$=V4$&STR(V5$(),V6(1)+31,2) : U5(3)=VAL(STR(V5$(),V6(1)+13,2),2) : V9(9)=246*V2 : U6=VAL(STR(V5$(),V6(1)+30,1)) : RETURN 5138 IF U0(2)=-1THEN $CLOSE#U0 : RETURN 5140 V5(2)=VAL(STR(V5$(),V6(1)+23,2),2)-1 : U0(4)=VAL(STR(V5$(),V6(1)+15,2),2) : U3$=STR(V5$(),V6(1)+4,1) : IF U3$=HEX(FF)OR U0(18)=1THEN RETURN : IF V3<>4THEN U0=15-V3 : DATA LOAD BA T#U0,(U0(4)+V5(2)+1)U7$() : ERRORGOTO 5000 5142 STR(V5$(),V6(1)+1,U0(5))=STR(U7$(),4,U0(5)) : U4=-1 : RETURN 5144 DATA SAVE BA T#U0,(V6(4)+V5(2))V7$() : ERRORGOTO 4998 5146 IF U6=1THEN DATA SAVE BA T#U0,(V6(4)+V5(2)+U5(3)*V2)V7$() : ERRORGOTO 4998 5148 STR(V5$(),V6(1)+11,4)=BIN(U5(8),2)&BIN(U5(3),2) : STR(V5$(),V6(1)+17,6)=BIN(U5(7),2)&BIN(V6(2),2)&BIN(V6(3),2) : STR(V5$(),V6(1)+2,2)=BIN(V0,2) : IF U3$=HEX(FF)AND MOD(V9,U0(23))<>0OR U0(23)=-1THEN RETURN : IF U3$=HEX(FF)THEN DATA LOAD BA T#U0,(U0(4)+V5(2)+1)U7$() : ERRORGOTO 4998 5152 STR(U7$(),4,U0(5))=STR(V5$(),V6(1)+1,U0(5)) : DATA SAVE BA T#U0,(U0(4)+V5(2)+1)U7$() : ERRORGOTO 4998 5154 RETURN 5158 IF U7+V8<V0+2AND U7=INT(U7)AND U7>0THEN 5166 : ELSE GOTO 5162 : IF U7+V8<V0+2AND U7=INT(U7)AND U7>0THEN 5168 5162 R1$=HEX(25) : GOTO 5004 5164 IF V0=0THEN V9=1 5166 IF V3=4THEN 5170 : IF U5(2)=1THEN U0(1)=LEN(STR(V1$())) : ELSE U0(1)=LEN(STR(V0$())) : IF V8*V2*246<=U0(1)-V6+1+245-MOD(U0(1)-1,246)AND V6=INT(V6)AND V6>0THEN 5 170 : R1$=HEX(23) : GOTO 5004 5168 IF V0<>0THEN 5170 : R1$=HEX(24) : GOTO 5004 5170 IF V9<=V0AND V9=INT(V9)AND V9>0THEN 5174 : IF V9<>V0+1THEN 5172 : R1$=HEX(28) : GOTO 5176 5172 R1$=HEX(22) : GOTO 5004 5174 IF V3<5AND V3>=0AND V3=INT(V3)THEN 5176 : R1$=HEX(08) : GOTO 5004 5176 IF VAL(U3$)>0THEN 5178 : R1$=HEX(07) : GOTO 5004 5178 IF V8<>INT(V8)OR V8<1THEN 5162 : IF V8<129THEN 5180 : R1$=HEX(29) : GOTO 5004 5180 R1$=HEX(00) : IF V3<>4THEN U0=15-V3 : $OPEN #U0 : RETURN 5186 DEFFN'225(V3,V6,V8,U5(2)) : V6(1)=V3*U0(5) : GOSUB 5140 : U0(18)=1 : V0=VAL(STR(V5$(),V6(1)+2,2),2) : GOSUB '254(V3,V6,V0+1,V8,U5(2)) : U0(18)=-1 : RETURN 5192 DEFFN'227(V3,V6,V5(3),V5(4),U5(2)) : U0(2)=1 : GOSUB '220(V3,V6,V5(4),V5(3),U5(2)) : IF R1$<>HEX(00)THEN 5194 : GOSUB '255(V3,V5(4),V5(3)) 5194 $CLOSE#U0 : U0(2)=-1 : RETURN 5200 DEFFN'226(V3,V9(3),V5(3),V5(4)) : IF V9(3)>0AND V9(3)=INT(V9(3))THEN 5202 : R1$=HEX(27) : RETURN 5202 V6(1)=V3*U0(5) : GOSUB 5140 : V2=VAL(STR(V5$(),V6(1)+29,1)) : U0(18),U0(2)=1 : V9(9)=246*V2 : V4=FIX((V9(3)-1)/V9(9)) : IF V4+1>V5(3)THEN 5204 : IF V4>0THEN GOSUB '228(V3,1,V5(4),V4,2) : GOSUB 5208 : GOSUB '228(V3,1,V5(4)+V4,1,1) : IF V4+1=V5(3)THEN 5206 : GOSUB '255(V3,V5(4)+V4+1,V5(3)-V4-1) : GOTO 5206 5204 IF V5(3)>0THEN GOSUB '228(V3,1,V5(4),V5(3),2) : IF V4>V5(3)THEN GOSUB '222(V3,V5(3)*V9(9)+1,V5(3)+V5(4),V4-V5(3),2) : IF R1$<>HEX(00)AND R1$<>HEX(28)THEN 5206 : GOSUB 5208 : GOSUB '254(V3,1,V5(4)+V4,1,1) 5206 V4=V4+1 : $CLOSE#U0 : U0(18),U0(2)=-1 : RETURN 5208 V1$()=" " : V1$()=STR(V0$(),1+V4*V9(9),MOD(V9(3)-1,V9(9))+1) : RETURN