1  REM ****  HP BASIC PROGRAM LIBRARY  ******************************
2  REM
3  REM       GSPMG: STANFORD PORTFOLIO MANAGEMENT GAME
4  REM       GPMS3, PART 5 OF 7 (UPDATES DIVIDENDS ON FILE SPRDIV)
5  REM       36502 REV A
6  REM
7  REM ****  CONTRIBUTED PROGRAM  ***********************************
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
310  PRINT "SYMBOL OR 'DONE'";
320  INPUT A$
321  IF A$="DONE" THEN 900
322  GOSUB 500
324  FOR I=1 TO N
325  IF T[I]=A9 THEN 330
326  NEXT I
327  PRINT "NOT THERE"
328  GOTO 310
330  PRINT "@IVIDEND";
331  INPUT D[I]
332  W[I]=((TIM(3)-71)*365)+TIM(2)+(TIM(1)/24)+(TIM(0)/(24*60))
340  GOTO 310
500  REM ------------------------
501  REM -- CONVERT SYMBOL IN A$ TO NUMBER IN A9
510  A$[LEN(A$)+1]="    "
512  A$=A$[1,4]
520  A9=0
530  FOR K=1 TO 4
540  FOR L=1 TO 27
542  IF A$[K,K]=X$[L,L] THEN 550
544  NEXT L
546  L=27
550  A9=(A9*30)+L
560  NEXT K
570  RETURN 
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 
900  REM -- WRITE ON FILE
910  READ #1,1
920  PRINT #1;TIM(3),TIM(2),TIM(1),TIM(0)
930  PRINT #1;N
940  FOR I=1 TO N
945  PRINT #1;T[I],P[I],D[I],W[I]
950  NEXT I
9999  END 
