Listing of file='609Escm0' on disk='vmedia/701-2736G.wvd.zip'
# Sector 787, program filename = '609Escm0' 0010 REM 609Escm0 RWL 11/30/84------------------------------------------------ - 0020 DIM J6(4),D9$(123)2,D8$(246)1,J8$5 : IF C5$=" "THEN 50 : V1$()="609Elolt609Eline609Espln609Eprnt" : IF D7$="H"THEN V1$()="609ELOLT609Eline609ESPLN609EPRNT609EPOS 609EFRMT" : LOAD T<INT((LEN(V1$())+7)/8)>V1$() 0050 REM J3$() = V0$() : DIM I2$1,I1$2,I0$5,I4$6,I3$,I5$,I5$(1)5,U1$(8)16,U2$(8)4 : J6(3)=A1 : J8$=B4$ : J6(4)=V0 : D9$()=J1$() : $PACK(F=HEX(A019A0066006A002A001))STR(D8$(),,242)FROMA6$(),A7$(),A0(),A8$ (),A9$() : J6(1)=J1 : J3=J3-1 : J6(2)=C3 : PRINT AT(23,48,32); 0145 $OPEN #0 : LIMITS T#0,"609EDATA",I,I,I,I0 : IF I0<>2THEN 197 : IF I<>2THEN 185 : DATA LOAD DC OPEN T#0,"609EDATA" : MAT REDIM V0$(J8/82)82 : DATA SAVE DC #0,D8$(),D9$(),V0$(),J6(),J8$,B9$ : MAT REDIM V0$(J8)1 : DATA SAVE DC #0,END : DATA SAVE DC CLOSE#0 : $CLOSE#0 : GOTO 902 0185 GOSUB 2340 : IF D1$=HEX(50)OR D1$=HEX(F0)THEN 193 : IF D1$=HEX(82)OR D1$=HEX(A1)THEN 145 : GOTO 976 0193 PRINT AT(23,0,79); : GOTO 976 0197 GOSUB 2327 : GOTO 976 0205 GOSUB '110(I5$(1),"D") : IF B2$<>" "THEN 940 : IF C1$<>"Glossary"THEN R5$=I0$ : B0$=I5$ : B9$=I3$ : GOSUB '111(I5$,I3$,B4$,HEX(FF)) : IF B2$<>" "THEN 940 : B9$=I3$ : A1=V3 : GOSUB '220(A1,1,1,1,1) : IF R1$<>HEX(00)THEN 1010 : J1$()=V1$() : IF J8=4182THEN 1540 0285 GOSUB '220(A1,1,2,1,1) : IF R1$<>HEX(00)THEN 1030 : $UNPACK(F=HEX(A019A0066006A002A001))STR(V1$(),,242)TO A6$(),A7$(),A0(),A8 $(),A9$() : GOSUB '217(1,1,B0$,B9$) : IF R1$<>HEX(00)THEN 1050 : C4=8 : IF STR(U1$(),106,1)<>HEX(00)THEN 1100 : V0$()=" " : J1=0 : GOSUB 2080 : IF STR(U1$(),108,1)<>HEX(00)THEN 375 : C5=0 : J7(2)=2 0365 V1$()="609FpageREC.page" : LOAD T<2>V1$() 0375 J7(2)=2 : A5$()="609FpageREC.page" : J1$()="609EbildRECMGR" : LOAD T<2>J1$() 0390 GOSUB '212(A1) : $UNPACK(F=HEX(A019A0066006A002A001))STR(D8$(),,242)TO A6$(),A7$(),A0(),A8 $(),A9$() : J1$()=D9$() : V3,A1=J6(3) : V0=J6(4) : GOTO 975 0510 DEFFN'48 : I=1 : B4$=" " : GOSUB 2390 : PRINT AT(23,LEN(B2$)+1);HEX(20858585858585);HEX(05); 0590 PRINT AT(23,LEN(B2$)+1+I); : KEYIN D1$,,740 : ON POS(HEX(82A108)=D1$)GOTO 685,685,710 0650 STR(B4$,I,1)=D1$ : I=I+1 : IF I<7THEN 590 0685 IF C5$="E"THEN 2025 : ELSE IF V0$(J2(C2))=HEX(8F)THEN 2135 : RETURN 0710 I=MAX(1,I-1) : GOTO 590 0740 IF POS(HEX(50F0)=D1$)=0THEN 650 : B4$=J8$ : GOTO 685 0810 GOSUB 2170 0820 KEYIN D1$ : ON POS(HEX(50F02A)=D1$)GOTO 908,908,860 : GOSUB 2360 : GOTO 820 0860 GOSUB '48 : GOTO 908 0902 MAT REDIM D6$(5)1 : E=1 0908 GOSUB 2020 : PRINT HEX(06);AT(0,73);D6$(); 0910 PRINT HEX(06);AT(0,E+72);HEX(02050F); : KEYIN D1$,,966 : IF D1$<>HEX(08)THEN 922 0916 IF E=1THEN 910 : E=E-1 : GOTO 910 0922 IF D1$=HEX(82)OR D1$=HEX(A1)THEN 926 : IF E<6THEN 950 0926 IF VER(D6$(),"####A")<>5THEN 932 : I5$(1)=D6$() : GOTO 205 0932 GOSUB 2310 : GOTO 946 0936 GOSUB 2270 : GOTO 946 0940 C3$=B2$ : R1$=HEX(00) : GOSUB 2410 0946 E=1 : GOTO 910 0950 IF I6$=" "THEN 954 : GOSUB '37(" ") 0954 PRINT AT(0,E+72); : D6$(E)=D1$ : E=E+1 : PRINT D1$ : GOTO 910 0966 IF D1$=HEX(F0)OR D1$=HEX(50)THEN 975 : IF D1$=HEX(4D)THEN 916 : IF D1$=HEX(0C)OR D1$=HEX(1C)THEN 810 : IF D1$<>HEX(4C)THEN 936 : IF E<>5THEN E=E+1 : GOTO 910 0975 DATA LOAD DC OPEN T#0,"609EDATA" : DATA SAVE DC #0,END : DATA SAVE DC CLOSE#0 0976 $CLOSE#0 : V3=J6(3) : R5$=A7$(1) : B4$=J8$ : COM CLEAR J6() : PRINT AT(0,63,17);AT(23,40,40); : J7(1)=0 : J7(3)=5 : LOAD DA T(D7$(1)) 1010 GOSUB 2260 : GOTO 1110 1030 GOSUB 2255 : GOTO 1110 1050 GOSUB 2245 : GOSUB 2400 : C3$=C3$&I1$ : GOSUB 2430 1100 GOSUB 2275 1110 KEYIN S2$,,1140 : GOSUB 2430 : GOTO 1110 1140 IF POS(HEX(F050)=S2$)>0THEN GOTO 390 : GOSUB 2430 : GOTO 1110 1540 I2=0 : FOR I=1TO A0(3) : I1=0 : I0=V0+1 1610 I1=I1+1 : IF I+I1<123AND J1$(I+I1)=HEX(0000)THEN 1610 : IF I<123THEN 1700 : I0=V0+1 : GOTO 1720 1700 IF J1$(I+I1)<>HEX(FFFF)THEN I0=VAL(J1$(I+I1),2) 1720 IF I0-VAL(J1$(I),2)>17THEN I2=1 : IF I0-VAL(J1$(I),2)<>17THEN 1770 : GOSUB '220(A1,1,I0-1,1,1) : IF R1$<>HEX(00)AND R1$<>HEX(28)THEN 2050 : IF STR(V1$(),246,1)<>" "THEN I2=1 1770 IF I2=1THEN I=999 : NEXT I : IF I2=0OR D7$<>" "THEN 285 : IF MIN(V0,VAL(J1$(9),2))-VAL(J1$(8),2)+1<17THEN 285 : GOSUB 2328 : J7(2)=13 : J7(1)=99 : LOAD T"609Escm2" 2020 C3$="Document:" : GOTO 2445 2025 C3$="(Document End)" : GOTO 2450 2050 GOSUB 2400 : B2$="Error in text read" : GOSUB 2345 : GOSUB '31 2080 C3$="Loading Document" : GOTO 2445 2085 B2$,C3$="Loading Editor" : GOTO 2445 2135 C3$="(Page End)" : GOTO 2450 2170 C3$="Which Command?" : GOTO 2445 2180 REM ********************** Error Messages *************************** 2190 B2$="Cannot Access "&C1$ : RETURN 2240 GOSUB 2400 : B2$="Error in Open File = "&I1$ : RETURN 2245 C3$="Error in query node" : RETURN 2250 GOSUB 2400 : B2$="Error in Query Volume = "&I1$ : RETURN 2255 C3$="Error in reading Admin block" : GOTO 2430 2260 C3$="Error in reading Page Table" : GOTO 2430 2270 B2$,C3$="Execute or Cancel" : GOTO 2410 2275 C3$="File damaged" : GOTO 2430 2305 B2$="Incorrect Password" : RETURN 2310 B2$,C3$="Invalid Document ID" : GOTO 2410 2315 B2$="Invalid "&C1$&" Id" : RETURN 2325 B2$="Library '"&STR(I0$,5,1)&"' not established" : RETURN 2327 C3$="Work file does not exist" : GOTO 2430 2328 B2$="Page too large for standard page size option. Please Cancel"&HEX(07 ) 2329 GOSUB 2440 : D1$=" " : KEYIN D1$,,2330 : GOTO 2329 2330 IF POS(HEX(F050)=D1$)=0THEN 2329 : RETURN 2340 B2$="Work file in use. Execute to try again, or Cancel."&HEX(07) : $CLOSE 2345 GOSUB 2440 : D1$=" " : KEYIN D1$,,2355 : IF POS(HEX(82A1)=D1$)>0THEN RETURN : GOTO 2345 2355 IF POS(HEX(F050)=D1$)=0THEN 2345 : RETURN 2360 C3$="Unknown Command" : GOTO 2410 2370 B2$="Unknown "&C1$ : RETURN 2375 B2$="Volume not in master file" : RETURN 2390 B2$="Enter Password" : GOTO 2440 2400 IF R1$>HEX(29)THEN CONVERT VAL(R1$)TO I1$,(##) : ELSE HEXUNPACKR1$TO I1$ : RETURN 2405 DEFFN'37(C3$) 2410 IF C3$=" "AND I6$=" "THEN 2420 : IF C3$<>" "THEN PRINT HEX(07); : PRINT HEX(06);AT(23,48,32);B5$(2);C3$;B5$(1); 2420 I6$=C3$ : C3$=" " : RETURN 2430 PRINT AT(23,0,80);HEX(0706);B5$(2);C3$;" - please Cancel";B5$(1); : RETURN 2440 PRINT AT(23,0,80);B5$(2);B2$; : RETURN 2445 PRINT HEX(06);AT(0,63,17);B5$(2);C3$;B5$(1); : RETURN 2450 PRINT HEX(06);AT(23,0,39);B5$(2);C3$;B5$(1); : RETURN 3000 DEFFN'31 : A5=0 : A5$()="609CloseJCATSMAL" : A5$=R3$() : R3$()=STR(R3$(),10) : IF A1>-1OR A2>-1THEN LOAD T<2>A5$() : COM CLEAR C : LOAD TA5$ 3500 DIM I2$1,I1$2,I0$5,I4$6,I3$,I5$ 3520 DEFFN'110(I0$,I2$) : IF VER(I0$,"####A")<>5THEN 2315 : B=POS(" ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"=STR(I0$,5)) -1 : DATA LOAD DA T(B3+B)A0$() : I3$=STR(A0$(),2,8) : A=1 : IF I3$=" "THEN 2325 3525 GOSUB '236(8,A) : IF R1$<>HEX(00)THEN 2250 : IF V1=0THEN 2375 : MAT SEARCHSTR(U1$(),,V1*16),=STR(I3$,,8)TO I1$STEP 16 : IF I1$>HEX(0000)THEN 3530 : IF V1<8THEN 2375 : A=A+8 : GOTO 3525 3530 I3$=STR(U1$(),VAL(I1$,2)) : IF I2$="G"THEN I5$="GLOSSARY." : ELSE I5$="DOCUMENT." : I5$=I5$&STR(I0$,5,1)&"."&STR(I0$,,4) : B2$=" " : RETURN 3535 DEFFN'111(I5$,I3$,I4$,I2$) : GOSUB '211(I5$,I3$,I4$,I2$) : ON VAL(R1$)+1GOTO 3540,,,2370,,2305,2190 : GOTO 2180 3540 B2$=" " : RETURN 4502 DIM V2$(256)1,V5$(160)1,V2$67,V3$16,U3$(10)2,U2$85,U2(6),R1$1,V8$4,V7$2,U 7$68,V6$1,U1$2,V0$8,U0$(128)2,V7(10),U3(9),U5(10) : 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) 4524 DEFFN'211(U7$,U8$,U9$,V6$) : M=0 : IF V6$=HEX(01)OR V6$=HEX(FF)THEN 4526 : R1$=BIN(6) : RETURN 4526 V3$=U8$ : GOSUB 4788 : GOSUB 4610 : IF V7(4)>0THEN 4530 4528 R1$=BIN(3) : GOTO 4542 4530 U3(1)=V7(4) : GOSUB 4710 : V7(8)=3 : IF VAL(STR(V2$(),3,1))<>1THEN 4528 : IF STR(V2$(),V7(8)+5,6)=U9$OR STR(V2$(),V7(8)+5,6)=" "THEN 4532 : R1$=BIN(5) : GOTO 4542 4532 IF STR(V2$(),V7(8)+4,1)<>HEX(FF)THEN 4536 4534 R1$=BIN(6) : GOTO 4542 4536 IF STR(V2$(),V7(8)+4,1)<>HEX(00)THEN 4538 : STR(V2$(),V7(8)+4,1)=V6$ : GOTO 4540 4538 IF V6$=HEX(01)THEN STR(V2$(),V7(8)+4,1)=BIN(VAL(STR(V2$(),V7(8)+4,1))+1) : ELSE GOTO 4534 4540 STR(V2$(),V7(8)+23,2)=BIN(U9,2) : GOSUB 4714 : STR(V5$(),V3*32+1,32)=STR(V2$(),4,32) : V2=VAL(STR(V5$(),V3*32+29,1)) : U1$()=STR(V2$(),129,128) : GOTO 4544 4542 STR(U4$,V3+1,1)="0" 4544 $CLOSE#U0 : $CLOSE#0 : RETURN 4546 DEFFN'212(V3) : M=0 : GOSUB 4726 : U3(1)=VAL(STR(V5$(),V7(8)+15,2),2) : GOSUB 4710 : IF STR(V5$(),V7(8)+4,1)=HEX(FF)THEN STR(V5$(),V7(8)+4,1)=BIN(0) : ELSE STR(V5$(),V7(8)+4,1)=BIN(VAL(STR(V5$(),V7(8)+4,1))-1) : STR(V2$(),4,32)=STR(V5$(),V7(8)+1,32) : GOSUB 4714 : IF U4=V3THEN U4=-1 : STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4582 DEFFN'217(U3,V7(6),U7$,U8$) : M=0 : U1$()=" " : R1$=BIN(0) : V3$=U8$ : GOSUB 4788 : GOSUB 4642 : IF V7(4)=0THEN R1$=BIN(3) : STR(U4$,V3+1,1)="0" : $CLOSE#U0 : $CLOSE#0 : RETURN 4610 M=M+1 : GOSUB 4724 : V7(4)=0 : V7(4)=U3(4) : U3(9)=0 : STR(U7$,LEN(U7$)+1,1)="." 4612 GOSUB 4722 : U3(9)=U3(9)+1 : U2(U3(9)),U3(1)=V7(4) : GOSUB 4616 : IF U3(2)<>0THEN 4614 : V7(4)=0 : GOTO 4838 4614 V7(4)=VAL(STR(V2$(),U3(2)+16,2),2) : V7(3)=V7(3)-1 : IF V7(3)=0THEN 4838 : GOTO 4612 4616 M=M+1 : U3(6)=0 4618 GOSUB 4710 : IF V7(9)<>0THEN 4620 : U3(2)=0 : GOTO 4622 4620 MAT SEARCHSTR(V2$(),6,V7(9)*18),=STR(V3$)TO U3$()STEP 18 : U3(2)=VAL(U3$(),2) : IF U3(2)=0THEN 4622 : U3(2)=U3(2)+5 : GOTO 4838 4622 U3(6)=U3(1) : U3(1)=VAL(STR(V2$(),4,2),2) : IF U3(1)<>0THEN 4618 : GOTO 4838 4642 M=M+1 : V1=0 : IF U7$<>" "THEN 4644 : U3(1)=U3(4) : GOTO 4646 4644 GOSUB 4610 : IF V7(4)=0THEN 4838 : U3(1)=V7(4) 4646 U3(2)=0 : V1=0 : IF U3=0OR V7(6)=0THEN 4838 4648 IF U3(1)<>0THEN 4650 : V1=0 : GOTO 4838 4650 GOSUB 4710 : V7(6)=V7(6)-V7(9) : U3(1)=VAL(STR(V2$(),4,2),2) : IF VAL(STR(V2$(),3,1))=0THEN 4652 : STR(U1$(),,128)=STR(V2$(),129,128) : GOTO 4838 4652 IF V7(6)>0THEN 4648 : V7(6)=V7(6)+V7(9)-1 4654 IF V7(6)>=V7(9)THEN 4656 : STR(U1$(),1+U3(2)*16,16)=STR(V2$(),6+V7(6)*18,16) : HEXUNPACKSTR(V2$(),V7(6)*18+22,2)TO STR(U2$(),1+U3(2)*4,4) : U3(2)=U3(2)+1 : V7(6)=V7(6)+1 : V1=V1+1 4656 IF V1=U3THEN 4838 : IF V7(6)<V7(9)THEN 4654 : IF U3(1)=0THEN 4838 : GOSUB 4710 : U3(1)=VAL(STR(V2$(),4,2),2) : V7(6)=0 : GOTO 4654 4698 $OPEN #U0 : ERRORGOTO 4830 4700 DATA LOAD DC OPEN T#U0,V0$ : ERRORIF V0$<>"WPSYSTEM"THEN STR(U4$,POS(U4$="0")-1,1)="0" : GOTO 4830 4702 LIMITS T#U0,U3(1),U3(2),U3(3) : ERRORGOTO 4830 4704 U9=U3(1) : U3(3)=1 : GOSUB 4706 : U3(4)=VAL(STR(V2$(),,2),2) : U3(1)=U3(4) : RETURN 4706 DATA LOAD BA T#U0,(U3(3)+U9)V2$() : ERRORGOTO 4830 4708 RETURN 4710 DATA LOAD BA T#U0,(U3(1)+U9)V2$() : ERRORGOTO 4830 4712 V7(9)=VAL(STR(V2$(),,2),2) : RETURN 4714 IF U3(1)>0THEN STR(V2$(),255,2)=BIN(4,2) : DATA SAVE BA T#U0,(U3(1)+U9)V2$() : ERRORGOTO 4830 4716 RETURN 4718 STR(V2$(),255,2)=BIN(3,2) : DATA SAVE BA T#U0,(U3(3)+U9)V2$() : ERRORGOTO 4830 4720 RETURN 4722 V3$=STR(U7$,,(POS(U7$=".")-1)) : U7$=STR(U7$,POS(U7$=".")+1) : RETURN 4724 MAT SEARCHU7$,="."TO U3$() : MAT SEARCHU3$(),=HEX(0000)TO U3$()STEP 2 : V7(3)=(1+VAL(U3$(),2))/2 : RETURN 4726 IF V3>=0AND V3<4THEN 4728 : R1$=BIN(8) : GOTO 4832 4728 V7(8)=V3*32 : R1$=BIN(0) : IF VAL(STR(V5$(),V7(8)+4,1))>0THEN 4730 : R1$=BIN(7) : GOTO 4832 4730 U0=15-V3 : U9=VAL(STR(V5$(),V7(8)+23,2),2) : RETURN 4756 R1$=BIN(0) : U0=0 : V0$="WPSYSTEM" : GOTO 4698 4788 M=M+1 : GOSUB 4756 : GOSUB 4616 : IF U3(2)<>0THEN 4790 : R1$=BIN(3) : GOTO 4834 4790 HEXUNPACKSTR(V2$(),U3(2)+16,2)TO V8$ : V8$=STR(V8$,,3) : V3=POS(U4$="0") : IF V3>0THEN 4792 : R1$=BIN(4) : GOTO 4834 4792 U0=16-V3 : STR(U4$,V3,1)="1" : V3=V3-1 : V0$=V3$ : SELECT #U0<V8$> : GOSUB 4698 : $CLOSE#0 : GOTO 4838 4806 DEFFN'236(U3,V7(6)) : M=0 : GOSUB 4756 : U7$=" " : GOSUB 4642 : GOTO 4836 4830 R1$=BIN(ERR) 4832 RETURN CLEAR 4834 IF M=0THEN 4836 : M=M-1 : GOTO 4832 4836 $CLOSE#U0 : $CLOSE#0 : RETURN 4838 M=M-1 : 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 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 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