image of READY prompt

Wang2200.org

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