1000  COM T$[30],B,B$[42],M,P[6],C[3],D$[9],N,T[7,141]
1001  COM C$[6],O$[6],K,W[6],F,N$[9]
4300  REM
4310  DIM S$[7]
4320  LET S$="       "
4330  LET K9=0
4410  PRINT '10"   ITEM ";
4420  INPUT C$[1,6]
4425  PRINT 
4430  IF C$[1,3]="FAC" THEN 4630
4435  IF C$[1,3]="HEL" THEN 4480
4440  IF C$[1,3]="KIL" THEN 4800
4445  IF C$[1,3]="MOD" THEN 4570
4450  IF C$[1,3]="NAM" THEN 4670
4455  IF C$[1,3]="NEW" THEN 4710
4460  IF C$[1,3]="RET" THEN 5000
4462  IF C$[1,3]="SWI" THEN 4850
4465  IF C$[1,3]="TIT" THEN 4550
4470  PRINT "WHAT?"'10
4480  PRINT "FACTOR:  WEIGHTS OR P. FACTORS"
4485  PRINT "HELP:    LIST OF ITEMS"
4490  PRINT "KILL:    REMOVE A BIN"
4495  PRINT "MODE:    CHANGE MODE"
4500  PRINT "NAME:    CHANGE BIN NAMES"
4505  PRINT "NEW:     ADD A NEW BIN"
4510  PRINT "RETURN:  RETURN TO COMMAND"
4515  PRINT "SWITCH:  EXCHANGE TWO BINS"
4517  PRINT "TITLE:   CHANGE TITLE"
4520  PRINT 
4525  GOTO 4410
4550  PRINT "PRESENT TITLE: ";T$
4555  PRINT "NEW TITLE:    ";
4560  INPUT T$
4565  GOTO 4410
4570  PRINT "PRESENT MODE:  CONSTANT ";
4575  IF M=2 THEN 4590
4580  PRINT "WEIGHTS, M = 1"
4585  GOTO 4600
4590  PRINT "PROP. FACTORS, M = 2"
4600  PRINT '10"NEW MODE: M = ";
4610  INPUT M1
4615  IF M1=M THEN 4410
4620  LET M=INT(M1)
4625  PRINT 
4630  PRINT " BIN    OLD F    NEW F"'10
4640  FOR J=1 TO B
4645  PRINT B$[6*J-5,6*J];TAB(10);P[J];TAB(19);
4650  INPUT P[J]
4655  NEXT J
4660  PRINT 
4665  GOTO 4410
4670  PRINT "OLD BIN      NEW"'10
4680  FOR J=1 TO B
4685  PRINT "  ";B$[6*J-5,6*J];TAB(12);
4690  INPUT B$[6*J-5,6*J]
4695  NEXT J
4700  PRINT 
4705  GOTO 4410
4710  IF B<6 THEN 4730
4715  PRINT "ALL 6 BINS IN USE"
4720  GOTO 4410
4730  LET B=B+1
4735  PRINT "BIN TITLE: ";
4740  INPUT B$[6*B-5,6*B]
4745  IF M=2 THEN 4760
4750  PRINT "WEIGHT: ";
4755  GOTO 4765
4760  PRINT "P. FACTOR: ";
4765  INPUT P[B]
4770  FOR I=1 TO C[2]
4775  IF T[1,I]=-1 THEN 4785
4780  LET T[B,I]=0
4785  NEXT I
4790  LET T[B,N]=0
4795  GOTO 4410
4800  IF B>1 THEN 4815
4805  PRINT "ONLY 1 BIN IN USE"
4810  GOTO 4410
4815  LET K9=1
4820  GOSUB 9610
4830  LET K9=0
4840  GOTO 4900
4850  PRINT "#1";
4857  GOSUB 9610
4858  IF K>6 THEN 4410
4860  LET K1=K
4861  PRINT "#2";
4862  GOSUB 9610
4865  IF K>6 OR K=K1 THEN 4410
4867  FOR I=1 TO C[2]
4870  LET X=T[K,I]
4871  LET T[K,I]=T[K1,I]
4872  LET T[K1,I]=X
4875  NEXT I
4877  LET X=T[K,N]
4878  LET T[K,N]=T[K1,N]
4879  LET T[K1,N]=X
4880  LET C$[1,6]=B$[6*K-5,6*K]
4881  LET B$[6*K-5,6*K]=B$[6*K1-5,6*K1]
4882  LET B$[6*K1-5,6*K1]=C$[1,6]
4885  LET X=P[K]
4886  LET P[K]=P[K1]
4887  LET P[K1]=X
4890  GOTO 4410
4895  REM
4900  IF T[K,N]=0 THEN 4965
4910  PRINT "NON-ZER0 CONTENTS, DISPOSITION??"
4920  LET K1=K
4925  GOSUB 9610
4930  IF K=8 OR K=K1 THEN 4410
4933  IF K=7 THEN 4960
4935  FOR I=1 TO C[2]
4940  IF T[1,I]=-1 THEN 4950
4945  LET T[K,I]=T[K,I]+T[K1,I]
4950  NEXT I
4955  LET T[K,N]=T[K,N]+T[K1,N]
4960  LET K=K1
4965  IF K=B THEN 4990
4967  FOR J=K TO B-1
4970  LET J1=J+1
4973  FOR I=1 TO C[2]
4975  LET T[J,I]=T[J1,I]
4978  NEXT I
4980  LET T[J,N]=T[J1,N]
4983  LET B$[6*J-5,6*J]=B$[6*J1-5,6*J1]
4985  LET P[J]=P[J1]
4987  NEXT J
4990  FOR I=1 TO C[2]
4991  LET T[B,I]=-1
4992  NEXT I
4994  LET T[B,N]=-1
4995  LET B$[6*B-5,6*B]=S$[2]
4996  LET P[B]=0
4997  LET B=B-1
4999  GOTO 4410
5000  LET D$=N$
5010  GOSUB 9410
5020  GOSUB 9510
5030  FOR I=1 TO C[2]
5040  IF T[1,I]=-1 THEN 5100
5050  LET T[7,I]=0
5060  FOR J=1 TO B
5070  LET T[7,I]=T[7,I]+T[J,I]*W[J]
5080  NEXT J
5090  LET T[7,I]=T[7,I]*F
5100  NEXT I
5110  CHAIN "$GPACS"
9400  REM
9405  FILES CLSFIL
9407  REM
9410  READ #1,1
9411  PRINT #1;T$,B,B$,M
9412  MAT  PRINT #1;P,C
9413  PRINT #1;D$,N
9414  FOR Z1=1 TO 6
9415  FOR Z2=1 TO N
9416  PRINT #1;T[Z1,Z2]
9417  NEXT Z2
9418  NEXT Z1
9420  READ #1,1
9421  RETURN 
9500  REM
9510  LET F=0
9511  IF M=2 THEN 9530
9512  FOR Z1=1 TO B
9513  LET W[Z1]=P[Z1]
9514  LET F=F+T[Z1,N]*W[Z1]
9515  NEXT Z1
9520  IF F=0 THEN 9525
9521  LET F=100/F
9525  RETURN 
9527  REM
9530  FOR Z1=1 TO B
9531  LET W[Z1]=0
9532  IF T[Z1,N]=0 THEN 9535
9533  LET W[Z1]=P[Z1]/T[Z1,N]
9534  LET F=F+P[Z1]
9535  NEXT Z1
9537  GOTO 9520
9600  REM
9606  DIM K$[6]
9609  REM
9610  PRINT '10"    BIN ";
9612  INPUT K$[1,6]
9613  PRINT 
9614  IF K$="HELP  " THEN 9627
9615  FOR K=1 TO B
9616  IF K$=B$[6*K-5,6*K] THEN 9640
9617  NEXT K
9618  IF K9 THEN 9624
9620  LET K=7
9621  IF K$="DUMP  " THEN 9640
9622  LET K=8
9623  IF K$="RETURN" THEN 9640
9624  PRINT "????",
9627  GOSUB 9710
9628  IF K9 THEN 9636
9630  PRINT S$[B];
9631  PRINT "DUMP  ";
9633  PRINT S$[B];
9635  PRINT "RETURN"
9636  PRINT 
9637  GOTO 9610
9638  REM
9640  RETURN 
9700  REM
9710  PRINT "BINS ARE:"
9720  PRINT "  HELP";
9725  FOR Z1=1 TO B
9727  PRINT S$[B];
9729  PRINT B$[6*Z1-5,6*Z1];
9730  NEXT Z1
9740  RETURN 
9999  END 
