1  REM  ****  HP BASIC PROGRAM LIBRARY  *******************************
2  REM
3  REM        SLAB:   SYSTEM LIBRARY ABSTRACTS
4  REM
5  REM        36647 REV  A   1 OF 2    10/73
6  REM
7  REM  ****  CONTRIBUTED PROGRAM  ************************************
1000  REM    PROGRAM SLAB
1010  REM
1020  DIM A$[72],B$[7],C$[6],D$[26],U$[6]
1030  REM
1040  FILES IF1,IF2,IF3,IF4
1050  REM
1060  LET U$="------"
1070  LET D$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
1080  REM
1100  PRINT 
1110  PRINT " ","SYSTEM LIBRARY ABSTRACTS"
1120  PRINT 
1130  PRINT "INSTRUCTIONS ";
1140  INPUT A$
1150  PRINT 
1160  IF A$[1,1]="N" THEN 1500
1200  PRINT 
1210  PRINT "INFORMATION IS CONTAINED IN FILES CONCERNING PROGRAMS IN"
1220  PRINT "THE SYSTEM LIBRARY.  THIS INFORMATION IS AVAILABLE VIA THE"
1230  PRINT "PROGRAM SLAB."
1240  PRINT 
1250  PRINT "THIS MAY BE ACCESSED IN THREE WAYS:"
1260  PRINT "    1.  BY THE NAME OF THE PROGRAM, E.G.  SLAB OR $SLAB"
1270  PRINT "    2.  BY THE LETTER OF THE LIBRARY, E.G.  P, M, OR C"
1280  PRINT "    3.  A LISTING OF ALL PROGRAMS BY USING:  A"
1290  PRINT 
1500  PRINT 
1510  PRINT "ENTER:  NAME ";
1520  INPUT B$
1530  PRINT 
1540  LET M=N=0
1550  IF B$[1,1]#"$" THEN 2000
1560  LET B$=B$[2]
1970  REM
1980  REM    LOOP OVER FILES
1990  REM
2000  FOR F=1 TO 4
2010  IF  END #F THEN 3000
2070  REM
2080  REM    LOOP OVER RECORDS
2090  REM
2100  FOR R=1 TO 999
2110  READ #F,R;S
2112  LET L=INT(S/100)
2113  LET S=S-L*100
2115  LET P=0
2120  IF S=0 THEN 3100
2130  READ #F;A$
2140  LET N=N+1
2150  IF B$=A$ THEN 2500
2160  IF B$="A" THEN 2500
2170  IF L=0 THEN 2200
2180  IF B$=D$[L,L] THEN 2500
2200  FOR I=2 TO S
2210  READ #F;C$
2220  IF C$[1,1]#" " THEN 2250
2225  LET C$[LEN(C$)+1,6]="    "
2230  LET C$[LEN(A$)+1]=C$[2,7-LEN(A$)]
2240  LET C$[1,LEN(A$)]=A$
2250  IF C$=B$ THEN 2500
2280  NEXT I
2290  GOTO 2950
2470  REM
2480  REM    PRINT CONTENTS OF RECORD
2490  REM
2500  READ #F,R;S,A$
2503  LET L=INT(S/100)
2505  LET S=S-L*100
2510  PRINT 
2520  PRINT A$
2530  PRINT U$[1,LEN(A$)]
2540  PRINT 
2550  IF S=1 THEN 2702
2560  PRINT "SUBPROGRAMS:  ";
2565  LET C=14
2570  FOR I=2 TO S
2572  IF C<64 THEN 2580
2573  LET C=0
2575  PRINT 
2580  READ #F;C$
2590  IF C$[1,1]=" " THEN 2620
2600  PRINT C$;"  ";
2605  LET C=C+LEN(C$)+2
2610  GOTO 2650
2620  PRINT A$;C$[2];"  ";
2630  LET C=C+LEN(A$)+LEN(C$)+1
2650  NEXT I
2660  PRINT 
2700  PRINT 
2702  IF L=0 THEN 2710
2703  PRINT "LIBRARY:  ";D$[L,L]
2705  PRINT 
2710  READ #F;A$
2720  PRINT "SOURCE:  ";A$
2730  PRINT 
2750  LET M=M+1
2800  FOR I=1 TO 999
2810  IF TYP(-F)=4 OR TYP(F)=3 THEN 2850
2820  READ #F;A$
2830  PRINT A$
2840  NEXT I
2850  PRINT 
2950  NEXT R
3000  NEXT F
3100  IF M>0 THEN 1500
3110  PRINT "NO INFORMATION EXISTS FOR ";B$;",";N;"RECORDS SEARCHED"
3120  GOTO 1500
9999  END 
