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]
2000  REM
2010  PRINT '10"  UPD OPTION ";
2030  INPUT O$[1,6]
2040  PRINT 
2045  IF O$[1,3]="HEL" THEN 2100
2050  IF O$[1,3]="INC" THEN 2150
2060  IF O$[1,3]="RET" THEN 2950
2065  IF O$[1,3]="SIN" THEN 2250
2080  PRINT "INVALID"
2090  GOTO 2010
2100  PRINT "HELP:    OBTAIN LIST OF OPTIONS."
2105  PRINT "INCRE:   INCREMENT BY S.N."
2115  PRINT "RETURN:  RETURN TO COMMAND"
2120  PRINT "SINGLE:  ALLOW SINGLE ITEM UPDATE, S.N. = -1 RETURN, ";
2122  PRINT "S.N. = 0 TOTAL."
2125  PRINT 
2130  GOTO 2010
2150  GOSUB 9610
2155  IF K=7 OR K=8 THEN 2010
2160  PRINT '10" S.N.   ";B$[6*K-5,6*K]
2170  PRINT 
2180  FOR I=1 TO C[2]
2185  IF T[1,I]=-1 THEN 2200
2190  PRINT I+C[1];TAB(8);
2193  INPUT X
2195  LET T[K,I]=T[K,I]+X
2196  IF T[K,I] >= 0 THEN 2200
2197  LET T[K,I]=T[K,I]-X
2198  PRINT "STUDENT TOTAL < 0, RE-ENTER"
2199  GOTO 2190
2200  NEXT I
2205  PRINT "TOTAL   ";
2207  INPUT X
2210  LET T[K,N]=T[K,N]+X
2215  PRINT 
2220  GOTO 2150
2250  PRINT '10"ENTER:  S.N. ";
2255  INPUT I
2260  LET J=N
2265  IF I=0 THEN 2280
2270  IF I <= C[1] THEN 2010
2275  LET J=I-C[1]
2277  IF J >= N THEN 2010
2280  GOSUB 9610
2283  IF K>6 THEN 2010
2285  LET J2=0
2287  IF T[1,J]=-1 THEN 2250
2290  PRINT I,
2295  FOR J1=1 TO B
2300  LET Z=T[J1,J]
2305  GOSUB 9910
2310  NEXT J1
2315  PRINT 
2320  IF J2=1 THEN 2250
2325  PRINT "ENTER DATUM ";
2330  INPUT X
2335  LET T[K,J]=T[K,J]+X
2336  IF T[K,J] >= 0 THEN 2340
2337  LET T[K,J]=T[K,J]-X
2338  PRINT "STUDENT TOTAL < 0, RE-ENTER"
2339  GOTO 2325
2340  LET J2=1
2345  GOTO 2290
2950  REM
2952  LET D$=N$
2955  GOSUB 9410
2960  GOSUB 9510
2965  FOR I=1 TO C[2]
2967  IF T[1,I]=-1 THEN 2980
2970  LET T[7,I]=0
2972  FOR J=1 TO B
2974  LET T[7,I]=T[7,I]+T[J,I]*W[J]
2976  NEXT J
2978  LET T[7,I]=T[7,I]*F
2980  NEXT I
2990  CHAIN "$GPACC"
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]
9607  REM
9610  PRINT 
9611  PRINT "   KEY ";
9612  INPUT K$[1,6]
9613  PRINT 
9614  IF K$="HELP  " THEN 9625
9615  FOR K=1 TO B
9616  IF K$=B$[6*K-5,6*K] THEN 9640
9617  NEXT K
9620  LET K=7
9621  IF K$="SCORE " THEN 9640
9622  LET K=8
9623  IF K$="RETURN" THEN 9640
9624  PRINT "INVALID KEY,",
9625  PRINT "POSSIBLE KEYS ARE:"
9626  PRINT "  HELP";
9627  GOSUB 9710
9628  FOR Z1=1 TO 8-B
9629  PRINT " ";
9630  NEXT Z1
9631  PRINT "SCORE ";
9632  FOR Z1=1 TO 8-B
9633  PRINT " ";
9634  NEXT Z1
9635  PRINT "RETURN"
9636  PRINT 
9637  GOTO 9610
9640  RETURN 
9700  REM
9710  LET Z9=0
9725  FOR Z1=1 TO B
9726  FOR Z2=1 TO 8-B
9727  PRINT " ";
9728  NEXT Z2
9729  PRINT B$[6*Z1-5,6*Z1];
9730  NEXT Z1
9740  RETURN 
9900  REM
9905  DIM Z$[10]
9909  REM
9910  LET Z9=INT(Z+.5)
9926  LET Z$="0123456789"
9928  LET Z1=1
9929  IF Z9<10 THEN 9940
9930  LET Z1=2
9931  IF Z9<100 THEN 9940
9932  LET Z1=3
9933  IF Z9<1000 THEN 9940
9934  LET Z1=4
9940  FOR Z2=1 TO 14-B-Z1
9941  PRINT " ";
9942  NEXT Z2
9950  FOR Z2=Z1-1 TO 0 STEP -1
9951  LET Z4=10^Z2
9952  LET Z3=INT(Z9/Z4)+1
9953  PRINT Z$[Z3,Z3];
9955  LET Z9=Z9-Z3*Z4+Z4
9956  NEXT Z2
9970  RETURN 
9999  END 
