Listing of file='SLD.RDEF' on disk='vmedia/701-2721C.wvd.zip'
# Sector 771, program filename = 'SLD.RDEF'
0010 % LINPUT STR(G$(),1,255)
0050 DIM D$(14)6,M$(620)1,S$(150)2,B$(4,3)1,P$(3)3,P$1
: PRINT HEX(06);AT(0,39,);"Review Definition";
: G1=1
: IF STR(G8$(),269,2)=HEX(0000)THEN P=1
: ELSE P=VAL(STR(G8$(),271))
: STR(G8$(),269)=ALL(00)
: GOSUB '94
: IF STR(G8$(),252,8)="SLD.LOPR"THEN P$="S"
: IF P$="S"THEN P=Z
0210 PRINT AT(23,37);" CANCEL/EDIT - Return to definition";AT(22,40,39);
: IF P$<>"S"THEN PRINT AT(21,45);" '1 - Delete condition line(s)";AT(22,
45);" '2 - Add condition line to box ";
0240 G0=G1
: GOSUB '96(P)
: IF S$(2)<>HEX(FFFF)THEN PRINT AT(18,49);"'5 - Previous conditions";AT(19,
49);"'6 - Next conditions";
0290 KEYIN A$,,320
: GOTO 290
0320 IF S$(2)=HEX(FFFF)THEN 390
: IF A$=HEX(05)OR A$=HEX(42)THEN P=MOD(P+Z-2,Z)+1
: IF A$=HEX(06)OR A$=HEX(43)THEN P=MOD(P,Z)+1
: IF POS(HEX(05064342)=A$)>0THEN 240
0390 IF A$=HEX(F0)THEN 460
: IF P$="S"THEN 290
: IF A$=HEX(01)THEN 490
: IF A$=HEX(02)THEN 1250
: GOTO 290
0460 IF B$()<>" "THEN GOSUB '93
0470 LOAD TSTR(G8$(),252,8)
0490 FOR I=1TO Q
: PRINT AT(VAL(D$(I)),0);".";
: NEXT I
: PRINT AT(18,0,5*80);AT(17,0);HEX(0E);"Please Select the Condition Lines Y
ou Wish to Delete";HEX(0F);
0530 PRINT AT(23,54);"Terminate operation ";AT(22,43);"EXEC/RUN - Execute
operation";AT(20,45);"INSERT - Select condition line";AT(21,45);"DELETE
- Deselect condition line ";
: I=1
0550 PRINT AT(VAL(D$(I)),0);HEX(05);
0570 KEYIN A$,,610
: IF POS(HEX(2082)=A$)>0THEN 610
: IF A$=HEX(08)THEN 840
: GOTO 570
0610 PRINT HEX(06);
: IF A$=HEX(08)THEN 550
: IF A$<>HEX(4A)AND A$<>HEX(0A)THEN 700
: PRINT AT(VAL(D$(I)),0);HEX(0202020E960202000F);
: STR(D$(I),6,1)="T"
: GOTO 810
0700 IF A$<>HEX(49)AND A$<>HEX(09)THEN 750
: PRINT AT(VAL(D$(I)),0);".";
: STR(D$(I),6,1)=HEX(00)
: GOTO 810
0750 IF A$<>HEX(F0)THEN 800
0760 PRINT AT(17,0,);
: G1=G0
: GOTO 210
0800 IF POS(HEX(4520)=A$)=0THEN 840
0810 I=MOD(I,Q)+1
: GOTO 550
0840 IF POS(HEX(4608)=A$)=0THEN 880
: I=MOD(I+Q-2,Q)+1
: GOTO 550
0880 IF A$<>HEX(82)THEN 550
: FOR I=1TO 14
: IF STR(D$(I),6,1)="T"THEN PRINT AT(VAL(D$(I)),2,77);
: NEXT I
: PRINT AT(17,0,80);HEX(0E);"Are you sure?";HEX(0F);AT(23,0,30);AT(21,40,39
);AT(20,40,39);
0930 KEYIN A$
: IF A$=HEX(F0)THEN 760
: IF A$<>HEX(82)THEN 930
: I=15
0980 I=I-1
: IF I=0THEN 1100
: IF STR(D$(I),6,1)<>"T"THEN 980
: G7=VAL(STR(D$(I),2),2)
: G8=VAL(STR(D$(I),4),2)
: IF G7=1THEN 1070
: IF G$(G8)="\C1"AND G8<LEN(G$())THEN 1070
: G7=G7-1
: GOTO 1080
1070 G8=G8+1
1080 STR(G$(),G7)=STR(G$(),G8)
: GOTO 980
1100 PRINT AT(22,0,20);
: IF G$()=" "THEN 1140
: GOTO 1200
1140 GOSUB '93
: PRINT AT(11,10,);HEX(0E);"There are no condition lines -- Press CANCEL/ED
IT";HEX(0F);
1160 KEYIN A$
: IF A$<>HEX(F0)THEN 1160
: GOTO 470
1200 GOSUB '94
: IF S$(P)=HEX(FFFF)THEN P=P-1
: PRINT AT(17,0,80);
: GOTO 210
1250 J=0
: PRINT AT(17,0,);HEX(0E);"Please position the arrow to the desired locatio
n for the new condition line";HEX(0F);
: PRINT AT(22,40);"EXEC/RUN - Select location for insertion";AT(23,37);"CAN
CEL/EDIT - Return to display mode";
: FOR I=1TO Q
: IF I=QOR VAL(D$(I+1))>VAL(D$(I))+1THEN J=J+1
: ELSE GOTO 1320
1300 P$(J)=BIN(VAL(D$(I))+1)&BIN(VAL(STR(D$(I),4),2),2)
: PRINT AT(VAL(P$(J)),0);"-";
1320 NEXT I
: I=1
1340 PRINT AT(VAL(P$(I)),0);HEX(0E840F);
: KEYIN A$
: PRINT HEX(06);
: PRINT AT(VAL(P$(I)),0);"-";
: IF POS(HEX(2046)=A$)>0THEN I=MOD(I,J)+1
: ELSE IF POS(HEX(0845)=A$)>0THEN I=MOD(I+J-2,J)+1
: ELSE IF A$=HEX(82)THEN 1420
: ELSE IF A$=HEX(F0)THEN 1400
: GOTO 1340
1400 PRINT AT(17,0,80);
: GOTO 210
1420 STR(G8$(),269)=STR(P$(I),2,2)&BIN(P)
: GOSUB '93
: LOAD T"SLD.FNAM"
2010 DEFFN'94
: S$()=ALL(FF)
: G4=1
: Z=0
2120 Z=Z+1
: S$(Z)=BIN(G4,2)
: L=0
2150 G6=POS(STR(G$(),G4)>="\C1")
: IF G6=0THEN 2220
: G4=G4+G6
: IF G$(G4-1)="\EF"THEN 2150
: IF G$(G4-1)="\C1"THEN L=L+1
: ELSE L=L+5
: IF L<12THEN 2150
: IF G4<LEN(G$())THEN 2120
2220 RETURN
3020 DEFFN'96(P)
: IF B$()<>" "THEN GOSUB '93
: G1=VAL(S$(P),2)
: IF G1>1THEN B$=G$(G1-1)
: ELSE B$="\CF"
: W=0
: N=3
: X=0
: E=0
: B$()=ALL(00)
: D$()=ALL(00)
: Q=0
3104 Q=Q+1
: D$(Q)=BIN(N+X)&BIN(G1,2)
: GOSUB '98(G1)
: D$(Q)=D$(Q)&BIN(G2,2)
: GOSUB '99(N+X,4)
: X=X+1
: W=MAX(W,G)
: IF G$(G2)="\C1"AND G1<VAL(S$(P+1),2)AND G1<LEN(G$())THEN 3104
: PRINT AT(N-1,2);
: IF B$="\CF"THEN PRINT BOX(0,W);
: PRINT BOX(X+2,0);AT(N-1,2+W);BOX(X+2,0);
: IF G$(G2)<>"\C1"OR G2=LEN(G$())THEN PRINT AT(N+X+1,2);BOX(0,W);
3230 MAT SEARCHG$(),="\CF"TO M$()STEP 1
: J=1
3250 IF VAL(STR(M$(),J,2),2)>=G2OR VAL(STR(M$(),J,2),2)=0THEN 3280
: J=J+2
: GOTO 3250
3280 B=(J-1)/2+1
: PRINT AT(N,2);BOX(0,INT(LGT(B))+2);AT(N-1,4+INT(LGT(B)));BOX(1,0);AT(N-1,
2);B;
: E=E+1
: STR(B$(),(E-1)*3+1,3)=BIN(N-1)&BIN(X+2)&BIN(W)
: IF G1>=VAL(S$(P+1),2)OR G1>=LEN(G$())THEN RETURN
: N=N+X+4
: X=0
: W=0
: B$=G$(G2)
: GOTO 3104
3370 % SCRATCH T "SLD.96 ": SAVE T() "SLD.96 " 3000,3499: PRINT "'SLD.96 '
SAVED"
3510 DEFFN'93
: PRINT AT(2,0,14*80);
: FOR I=1TO E
: PRINT AT(VAL(B$(I,1)),2);BOX(-1,-2);BOX(-1,-3);BOX(-1,-4);BOX(-VAL(B$(I,2
)),-VAL(B$(I,3)));
: NEXT I
: RETURN
4120 DEFFN'98(G1)
: DIM F$20,O$28,O$(7)28,I$(3)64,T$(3)1,L(3),L$1
: G2=POS(STR(G$(),G1)=HEX(00))
: IF G2>0THEN 4180
: RETURN
4180 F$=STR(G$(),G1,G2-1)
: G1=G1+G2
: MAT SEARCH"=#<>\BC\BE@",=STR(G$(),G1,1)TO O$STEP 1
: O$(1)="IS EQUAL TO"
: O$(2)="IS NOT EQUAL TO"
: O$(3)="IS LESS THAN"
: O$(4)="IS GREATER THAN"
: O$(5)="IS LESS THAN OR EQUAL TO"
: O$(6)="IS GREATER THAN OR EQUAL TO"
: O$(7)="IS BETWEEN"
: O=VAL(O$,2)
4240 O$=O$(O)
: G1=G1+1
: G9=0
: MAT L=ZER
: T$(),I$()=" "
4280 G9=G9+1
: T$(G9)=STR(G$(),G1,1)
: G1=G1+1
: IF T$(G9)="F"THEN G2=POS(STR(G$(),G1)=HEX(00))
: ELSE G2=POS(STR(G$(),G1)>="\C1")
: IF G2=0THEN G2=LEN(G$())-G1+2
: I$(G9)=STR(G$(),G1,G2-1)
: G2=G1+G2-1
: L(G9)=LEN(I$(G9))
: IF T$(G9)="F"THEN G2=G2+1
: G1=G2+1
: IF STR(G$(),G2,1)="\EF"THEN 4280
: L$=G$(G2)
: RETURN
4410 % SCRATCH T "SLD.98 ": SAVE T() "SLD.98 " 4000,4500 : PRINT "'SLD
.98 ' SAVED"
5010 DEFFN'99(R,C)
: DIM G2(3)
: MAT G2=ZER
: PRINT AT(R,C);F$;" ";O$;" ";
: A=0
: D=0
: IF L(3)>0THEN L=3
: ELSE IF L(2)>0THEN L=2
: ELSE L=1
: FOR I=1TO L
: IF T$(I)="C"THEN D=D+1
: NEXT I
: M=INT((69-LEN(F$)-LEN(O$)-2*D-6*(L-1)-INT(O/7))/L)
: FOR I=1TO L
: IF L(I)>MTHEN A=A+1
: NEXT I
: M=INT((69-LEN(F$)-LEN(O$)-2*D-6*(L-1)-A-INT(O/7))/L)
: G=0
5350 FOR I=1TO L
: IF L(I)<MTHEN G=G+M-L(I)
: NEXT I
: IF A>0THEN M=M+INT(G/A)
: A=0
: FOR I=1TO L
: IF L(I)>MTHEN A=A+1
: NEXT I
: FOR I=1TO L
: IF L(I)>MTHEN G2(I)=M
: ELSE G2(I)=L(I)
: PRINT HEX(020402000E0202020F);
: IF T$(I)="C"THEN PRINT HEX(22);STR(I$(I),1,G2(I));HEX(22);
: ELSE PRINT STR(I$(I),1,G2(I));
: IF G2(I)<>L(I)THEN PRINT "*";
: PRINT HEX(0F);
: IF I<LAND O<>7THEN PRINT " OR ";
5510 IF I<LAND O=7THEN PRINT " AND ";
: NEXT I
: G=6+LEN(F$)+LEN(O$)+6*(L-1)+INT(O/7)+2*D+G2(1)+G2(2)+G2(3)+A+1
: PRINT HEX(0202000F020402000F);
: RETURN
5570 % SCRATCH T "SLD.99 ": SAVE T() "SLD.99 " 5000,5999 : PRINT "'SLD.9
9 ' SAVED"
9997 DEFFN'2"DIM A$,A,B,C,D";HEX(0D);
9998 DEFFN'16"RENUMBER 0-1999";HEX(0D);
9999 DEFFN'3
: A$="SLD.RDEF"
: SCRATCH TA$
: SAVE T()A$
: PRINT HEX(03060E22);A$;HEX(22);" saved ";HEX(0F);
: LIMITS TA$,A,B,C,D
: PRINT C;" Sectors used, ";B-A-C+1;" available"
: LIST DT
: PRINT AT(2,0,3*80);AT(5,0);"On device:";AT(6,0,1);AT(6,4,)
: RETURN