1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       GSPMG: STANFORD PORTFOLIO MANAGEMENT GAME
4  REM       GPMS4, PART 6 OF 7 (UPDATES SHARE PRICES IN FILE SPRDIV)
5  REM       36502 REV A
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
30  DIM B$[10]
40  X$="ABCDEFGHIJKLMNOPQRSTUVWXYZ "
50  DIM A$[10],V[500],X$[27]
60  DIM P[500],D[500],T[500]
65  DIM W[500]
100  FILES SPRDIV
200  REM -----------------
201  REM -- READ DATA
205  READ #1;T3,T2,T1,T0
210  READ #1;N
220  FOR I=1 TO N
225  READ #1;T[I],P[I],D[I],W[I]
230  NEXT I
250  PRINT LIN(1);"TICKER SYMBOL (OR 'ALL' OR 'DONE')";
251  INPUT A$
252  IF A$="DONE" THEN 560
253  IF A$="ALL" THEN 300
260  GOSUB 700
270  FOR I=1 TO N
272  IF T[I]=A9 THEN 280
274  NEXT I
276  PRINT "NOT THERE"
277  GOTO 250
280  PRINT "OLD PRICE";
281  PRINT P[I]
282  PRINT "NEW PRICE";
283  INPUT P[I]
285  GOTO 250
300  REM ------------------
301  REM -- GET NEW VALUES
310  FOR I=1 TO N
320  A9=T[I]
322  GOSUB 600
330  PRINT A$;P[I]
335  PRINT "PRICE";
336  INPUT P[I]
349  PRINT 
350  NEXT I
400  GOTO 250
560  REM --------------------
561  REM -- WRITE ON FILE
570  READ #1,1
571  PRINT #1;TIM(3),TIM(2),TIM(1),TIM(0)
572  PRINT #1;N
574  FOR I=1 TO N
576  PRINT #1;T[I],P[I],D[I],W[I]
578  NEXT I
590  STOP 
600  REM ------------------------
601  REM -- CONVERT SYMBOL IN A9 TO A$
610  A1=INT(A9/(30^3))
612  A8=A9-(30^3)*A1
614  A2=INT(A8/(30^2))
616  A8=A8-A2*(30^2)
618  A3=INT(A8/30)
620  A4=A8-A3*30
625  A$="    "
630  A$[1,1]=X$[A1,A1]
632  A$[2,2]=X$[A2,A2]
634  A$[3,3]=X$[A3,A3]
636  A$[4,4]=X$[A4,A4]
650  RETURN 
700  REM ------------------------
701  REM -- CONVERT SYMBOL IN A$ TO NUMBER IN A9
702  A$[LEN(A$)+1]="    "
703  A$=A$[1,4]
704  A9=0
705  FOR K=1 TO 4
706  FOR L=1 TO 27
707  IF A$[K,K]=X$[L,L] THEN 710
708  NEXT L
709  L=27
710  A9=(A9*30)+L
711  NEXT K
712  RETURN 
9999  END 
