0005 ! LIST 30-6-94 !
0010 SUB LIST(#1,#4)
0011 USER OFF
0015 DIM A$[80] @ A$="desc off"
0016 READ #1,1;Z
0017 X=-999999
0019 LINPUT "1st,last Pt> ";Q$
0020 IF Q$="" THEN 280
0021 IF Q$[1,1]="S" THEN GOTO 90
0022 Q=POS(Q$,",")
0023 IF NOT Q THEN A=VAL(Q$) @ B=VAL(Q$) @ GOTO 30
0024 A=VAL(Q$[1,Q-1]) @ B=VAL(Q$[Q+1])
0030 FOR I=A TO B
0035 ON ERROR GOTO 19
0040 READ #1,I+4;N,E,H
0044 OFF ERROR
0045 IF I>Z THEN A$="" @ GOTO 70
0046 IF N=X AND E=X THEN 80
0050 IF NOT FLAG(2) THEN GOTO 70
0060 READ #4,I;A$
0070 OUTPUT :1 USING 75;I;N;E;H;A$
0075 IMAGE 4D,2(X,6DZ.9D),X,6DZ.4D,XX,K
0080 NEXT I
0085 GOTO 19
0090 IF FLAG(2) THEN 120
0100 BEEP @ DISP "no D-file"
0110 WAIT 2 @ GOTO 280
0120 INPUT "search word >";W$
0130 W=LEN(W$)
0140 LINPUT "search 1st,last Pt >";Q$
0150 IF Q$="" THEN 280
0151 Q=POS(Q$,",")
0152 IF NOT Q THEN A=VAL(Q$) @ B=VAL(Q$) @ GOTO 155
0153 A=VAL(Q$[1,Q-1]) @ B=VAL(Q$[Q+1])
0155 FOR I=A TO B
0160 IF I>Z THEN 280
0170 READ #4,I;A$
0171 L=LEN(A$)
0172 IF L<W THEN 270
0173 FOR J=1 TO L-W+1
0180 IF A$[J,J+W-1]#W$ THEN 265
0190 READ #1,I+4;N,E,H
0200 IF N=X AND E=X THEN 270
0210 IF NOT FLAG(4) THEN 240
0220 OUTPUT :1 USING 75;I;N;E;H;A$
0230 GOTO 270
0240 DISP "#"&STR$(I)&"  "&A$;
0250 INPUT Y$
0260 IF Y$[1,1]="Q" THEN 280
0262 GOTO 270
0265 NEXT J
0270 NEXT I
0280 END SUB 
