Listing of file='SLD.PLIN' on disk='vmedia/701-2721C.wvd.zip'
# Sector 758, program filename = 'SLD.PLIN'
0010 REM % "SLD.PLIN"
0025 DIM M$(620)1
: IF G$()=" "THEN 70
: IF STR(G8$(),269,2)=HEX(0000)THEN S=LEN(G$())-1
: ELSE S=VAL(STR(G8$(),269),2)-1
: G1=MAX(POS(-STR(G$(),1,S)="\C1"),POS(-STR(G$(),1,S)="\CF"),1)
: IF G1>1THEN G1=G1+1
: GOSUB '97(G1,3,4)
0070 LOAD TSTR(G8$(),260,8)
0080 DEFFN'0
: SCRATCH T"SLD.PLIN"
: SAVE T()"SLD.PLIN"
: PRINT "'SLD.PLIN' SAVED"
: LIST DT
: RETURN
3020 DEFFN'97(G1,R,C)
: G0=G1-1
: GOSUB '98(G1)
: GOSUB '99(R,C)
: PRINT AT(R-1,C-2);BOX(3,0);AT(R-1,2+G);BOX(3,0);
: IF G0=0OR G$(G0)="\CF"THEN PRINT AT(R-1,C-2);BOX(0,G);
: IF G$(G2)<>"\C1"THEN PRINT AT(R+2,C-2);BOX(0,G);
: MAT SEARCHG$(),="\CF"TO M$()STEP 1
: J=1
3150 IF VAL(STR(M$(),J,2),2)>=G2OR VAL(STR(M$(),J,2),2)=0THEN 3180
: J=J+2
: GOTO 3150
3180 B=(J-1)/2+1
: PRINT AT(R,C-2);BOX(0,INT(LGT(B))+2);AT(R-1,C+INT(LGT(B)));BOX(1,0);AT(R-
1,C-2);B;
: RETURN
3210 % SCRATCH T "SLD.97 ": SAVE T() "SLD.97 "3000,3999 : PRINT "'SLD.97
' SAVED": LIST DT
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"