1  REM  ****  HP TIME-SHARED BASIC PROGRAM LIBRARY  *********************
2  REM
3  REM           REP: 36177  (A708)  REV A -- 1/72
4  REM           DATA CENTER INVENTORY REPORT GENERATOR
5  REM
6  REM  ****  CONTRIBUTED PROGRAM  ***************************************
10  FILES C1,C2,CSORT1,CSORT2
11  DIM M$[10],S$[9],U$[10],L$[4],P$[5],R$[8],H$[8],D$[8],C$[30]
12  DIM A$[30],B$[3]
13  DIM F$[24],G$[24],X$[16],Z$[72]
14  DIM Y$[16],X[17],Y[17]
15  DIM W$[17]
16  DIM E$[10],I$[9],J$[10],K$[5],N$[10],O$[8],Q$[8],T$[8],V$[30]
30  PRINT 
100  PRINT "---------------DATA CENTER INVENTORY---------------"
110  PRINT "               REPORT GENERATOR PROGRAM"
115  PRINT 
120  PRINT "PLEASE SELECT A REPORT OPTION"
121  PRINT " TO LIST FOR 1  MODEL # TYPE (1)---------"
122  PRINT " TO LIST FOR 1 STATUS   TYPE(2)----------"
123  PRINT " TO LIST FOR 1 OFFICE TYPE (3)-----------"
124  PRINT " TO LIST BY DATE RECEIVED TYPE (4)-------"
125  PRINT " TO LIST FOR 1 SALES DISCIPLINE TYPE (5)-"
130  PRINT "---------------";
140  INPUT A
150  GOTO A OF 1000,2000,3000,4000,5000
1000  REM LIST BY MODEL
1010  PRINT 
1015  PRINT "MODEL # (1 TO 10 CHARACTERS)--------------";
1020  INPUT X$
1030  GOSUB 7000
1035  PRINT 
1040  PRINT "STANDARD LIST IS BY SERIAL #. TO CHANGE THIS TYPE (NO)"
1050  PRINT "OTHERWISE (YES)";
1060  INPUT A$
1070  IF A$="YES" THEN 1100
1075  PRINT 
1080  PRINT "I'M NOT THAT SMART YET"
1085  PRINT 
1100  GOSUB 8000
1110  GOSUB 6500
1115  PRINT 
1116  PRINT "DO YOU WANT ANOTHER MODEL # (YES OR NO)";
1117  INPUT A$
1118  IF A$="YES" THEN 1015
1120  PRINT " DO YOU WANT ANOTHER REPORT (YES OR NO)---";
1130  INPUT A$
1140  IF A$="NO" THEN 1150
1142  PRINT "REPORT # (1 TO 5)------";
1144  INPUT A
1146  GOTO 150
1150  STOP 
2000  REM LIST BY STATUS
2005  PRINT 
2010  PRINT "STATUS DESIRED (USE ONE OF LIST)"
2020  PRINT "FACT. LOAN"
2030  PRINT "IN REPAIR"
2040  PRINT "RENTED"
2050  PRINT "SOLD"
2055  PRINT "OBS"
2060  PRINT "1 WK DEMO"
2070  PRINT "2 WK DEMO"
2080  PRINT "3 WK DEMO"
2090  PRINT "FOR SALE"
2100  PRINT "-----------------";
2110  INPUT X$
2120  GOSUB 7000
2122  GOSUB 2130
2124  GOTO 2360
2130  PRINT "STANDARD LIST IS FOR 1 MODEL#"
2131  PRINT "  FOR ALL MODEL #'S TYPE 'ALL'--"
2132  PRINT "  FOR 1 MODEL # TYPE (1 TO 10 CHARACTERS)--"
2133  PRINT "------------";
2160  INPUT A$
2162  LET Y$="0"
2170  PRINT "FOR SHORT FORM PRINTOUT TYPE (1) OTHERWISE (0)--";
2180  INPUT B
2190  GOSUB 8000
2200  PRINT 
2201  PRINT 
2202  PRINT 
2203  PRINT 
2204  PRINT 
2205  PRINT "ITEM #  MODEL #   SERIAL #   STATUS    LOC PRICE";
2206  PRINT "   RCDT     SHDT    MFDV"
2207  PRINT " ---  ---------- --------- ---------- ---- -----";
2208  PRINT " -------- -------- ----"
2220  FOR N1=3 TO 4
2230  FOR J1=1 TO 90
2240  IF  END #N1 THEN 2300
2250  READ #N1,J1;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
2255  IF A$="ALL" THEN 2270
2260  IF M$#A$ THEN 2280
2270  GOSUB 6590
2272  LET X$=P$
2274  GOSUB 9000
2276  LET Y$=W$
2280  NEXT J1
2290  NEXT N1
2300  PRINT 
2301  PRINT "                                           ------"
2303  PRINT "                                           ";Y$
2310  PRINT 
2311  PRINT 
2312  PRINT 
2313  PRINT 
2314  PRINT 
2315  IF A$="ALL" THEN 2359
2320  PRINT "DO YOU WANT ANOTHER MODEL # (TYPE MODEL # OR 'NO')";
2330  INPUT A$
2340  IF A$="NO" THEN 2359
2350  GOTO 2200
2359  RETURN 
2360  PRINT "DO YOU WANT ANOTHER STATUS (YES OR NO)---";
2370  INPUT A$
2380  IF A$="YES" THEN 2005
2390  PRINT 
2400  GOTO 1120
3000  REM ROUTINE TO LIST FOR AN OFFICE
3010  PRINT 
3020  PRINT "OFFICE NAME (USE STANDARD OFFICE CODE)---";
3030  INPUT X$
3040  GOSUB 7000
3050  GOSUB 2130
3060  PRINT "DO YOU WANT ANOTHER OFFICE (OFFICE NAME OR NO)--";
3070  INPUT X$
3080  IF X$#"NO" THEN 3040
3090  GOTO 1120
4000  REM ROUTINE TO LIST BY DATE RECEIVED
4010  PRINT 
4020  PRINT "STANDARD LIST IS FOR 1 MODEL"
4030  PRINT " TYPE MODEL # (1 TO 10 CHARACTERS)--";
4040  INPUT X$
4045  LET A=1
4050  GOSUB 7000
4080  REM ROUTINE TO SORT WORKING FILE BY DATE RECEIVED
4090  FOR N2=3 TO 4
4100  FOR J2=1 TO 90
4110  IF  END #N2 THEN 4400
4120  READ #N2,J2;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
4130  LET F$=R$
4140  FOR N3=3 TO 4
4150  FOR J3=1 TO 90
4160  IF  END #N3 THEN 4350
4170  READ #N3,J3;Q9,E$,I$,J$,K$,N$,O$,Q$,X$,T$,V$
4180  LET G$=O$
4190  IF F$ >= G$ THEN 4300
4200  GOSUB 8130
4300  NEXT J3
4310  NEXT N3
4350  NEXT J2
4360  NEXT N2
4400  PRINT 
4405  GOSUB 6500
4420  PRINT 
4430  PRINT "DO YOU WANT ANOTHER MODEL (YES OR NO)---";
4440  INPUT A$
4450  IF A$="YES" THEN 4010
4460  GOTO 1120
5000  REM ROUTINE TO LIST BY SALES DISCIPLINE
5010  PRINT 
5020  PRINT "ENTER SALES DISCIPLINE (1 TO 8 CHARACTERS)---";
5030  INPUT X$
5040  GOSUB 7000
5050  GOSUB 2130
5060  PRINT " DO YOU WANT ANOTHER SALES DISCIPLINE(YES OR NO)--";
5070  INPUT A$
5080  IF A$="YES" THEN 5010
5090  GOTO 1120
6500  REM ROUTINE TO PRINT WORKING FILE
6501  PRINT "FOR SHORT FORM PRINTOUT TYPE (1) OTHERWISE (0)--";
6502  INPUT B
6503  LET Y$="0"
6510  PRINT 
6511  PRINT 
6512  PRINT 
6513  PRINT 
6514  PRINT 
6520  PRINT "ITEM #  MODEL #   SERIAL #   STATUS    LOC PRICE";
6530  PRINT "   RCDT     SHDT    MFDV"
6540  PRINT " ---  ---------- --------- ---------- ---- -----";
6541  PRINT " -------- --------  ----"
6550  FOR N=3 TO 4
6560  FOR J=1 TO 90
6570  IF  END #N THEN 6710
6580  READ #N,J;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
6581  GOSUB 6590
6582  GOTO 6690
6590  LET Z$="                                                                  "
6600  LET Z$[11-LEN(M$),11]=M$
6610  LET Z$[21-LEN(S$),21]=S$
6620  LET Z$[32-LEN(U$),32]=U$
6630  LET Z$[37-LEN(L$),37]=L$
6640  LET Z$[43-LEN(P$),43]=P$
6650  LET Z$[52-LEN(R$),52]=R$
6660  LET Z$[61-LEN(H$),61]=H$
6665  LET Z$[66-LEN(B$),66]=B$
6670  PRINT Q;Z$
6672  IF B=1 THEN 6680
6675  PRINT "**SALES DISCIPLINE  ";D$;"  ";C$
6680  RETURN 
6690  LET X$=P$
6692  GOSUB 9000
6694  LET Y$=W$
6696  NEXT J
6700  NEXT N
6710  PRINT 
6720  PRINT "                                           ------"
6721  PRINT "                                           ";Y$
6722  PRINT 
6723  PRINT 
6724  PRINT 
6725  PRINT 
6730  RETURN 
7000  REM ROUTINE TO PULL REQUIRED DATA FROM MASTER FILE
7001  REM  AND STORE FOR SORT
7020  LET N1=3
7030  LET J1=1
7035  FOR N=1 TO 2
7038  FOR J=1 TO 90
7040  IF  END #N THEN 7270
7050  READ #N,J;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
7060  GOTO A OF 7070,7074,7078,7082,7086
7070  IF X$#M$ THEN 7250
7072  GOTO 7200
7074  IF X$#U$ THEN 7250
7076  GOTO 7200
7078  IF X$#L$ THEN 7250
7080  GOTO 7200
7082  IF X$#R$ THEN 7250
7084  GOTO 7200
7086  IF X$#D$ THEN 7250
7088  GOTO 7200
7200  PRINT #N1,J1;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
7210  LET J1=J1+1
7220  IF J1 <= 90 THEN 7250
7230  LET J1=1
7240  LET N1=4
7250  NEXT J
7260  NEXT N
7270  PRINT #N1,J1; END 
7280  RETURN 
8000  REM ROUTINE TO SORT WORKING FILE BY MODEL # AND SERIAL #
8020  FOR N2=3 TO 4
8030  FOR J2=1 TO 90
8040  IF  END #N2 THEN 8210
8050  READ #N2,J2;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
8060  LET F$[1,LEN(M$)]=M$
8062  LET F$[LEN(M$)+1,LEN(M$)+LEN(S$)]=S$
8066  FOR N3=3 TO 4
8070  FOR J3=1 TO 90
8080  IF  END #N3 THEN 8190
8090  READ #N3,J3;Q9,E$,I$,J$,K$,N$,O$,Q$,X$,T$,V$
8100  LET G$[1,LEN(E$)]=E$
8110  LET G$[LEN(E$)+1,LEN(E$)+LEN(I$)]=I$
8120  IF F$ >= G$ THEN 8170
8122  GOSUB 8130
8124  GOTO 8170
8130  PRINT #N2,J2;Q9,E$,I$,J$,K$,N$,O$,Q$,X$,T$,V$
8140  PRINT #N3,J3;Q,M$,S$,U$,L$,P$,R$,H$,B$,D$,C$
8150  LET Q=Q9
8151  LET M$=E$
8152  LET S$=I$
8153  LET U$=J$
8154  LET L$=K$
8155  LET P$=N$
8156  LET R$=O$
8157  LET H$=Q$
8158  LET B$=X$
8159  LET D$=T$
8160  LET C$=V$
8165  RETURN 
8170  NEXT J3
8180  NEXT N3
8190  NEXT J2
8200  NEXT N2
8210  RETURN 
9000  REM ROUTINE TO ADD 2 ASCII STRINGS
9005  W$="                 "
9010  N$="0123456789"
9015  L1=LEN(X$)
9020  L2=LEN(Y$)
9025  L=(L1 MAX L2)+1
9030  MAT X=ZER[L]
9035  MAT Y=ZER[L]
9040  FOR I=L1 TO 1 STEP -1
9045  D$=X$[I,I]
9050  GOSUB 9165
9055  X[L1-I+1]=D
9060  NEXT I
9065  FOR I=L2 TO 1 STEP -1
9070  D$=Y$[I,I]
9075  GOSUB 9165
9080  Y[L2-I+1]=D
9085  NEXT I
9090  MAT X=X+Y
9095  FOR I=1 TO L-1
9100  IF X[I] <= 9 THEN 9115
9105  X[I]=X[I]-10
9110  X[I+1]=X[I+1]+1
9115  NEXT I
9120  FOR I=L TO 1 STEP -1
9125  S=X[L-I+1]+1
9130  W$[I,I]=N$[S,S]
9135  NEXT I
9140  IF W$[1,1]#"0" THEN 9155
9145  W$=W$[2,L]
9150  RETURN 
9155  W$=W$[1,L]
9160  RETURN 
9165  D=0
9170  FOR K=1 TO 10
9175  IF D$=N$[K,K] THEN 9195
9180  D=D+1
9185  NEXT K
9190  D=0
9195  RETURN 
9999  END 
