10  COM X[103,22],M[19,19],U[19,19],Q[20],V[20],P[78]
30  COM M$[60],N$[72]
40  COM N,K,N8,K8,N9,K9,Q9,Q7,Q5,Q4,Q3,Q2,Q1
45  COM I3,I4,U9,X$[20]
46  COM C$[6],N1,K1,M1,M2
50  REM:26MAY74
60  REM:C$ IS FILE BEING MODIFIED
62  REM:Q1=1 FOR >>SUBC;=2 FOR>>REDEFINE;=3 FOR >>PNAME;=4 FOR >>MODNAME
64  REM:Q1=5 FOR >>PTEXT;=6 FOR >>MODTEXT
80  FILES *
90  ASSIGN C$,1,Q8
100  DIM A$[70],B$[72],D$[72],E$[70],F$[70],G$[70],H$[70],I$[70],J$[70],S$[12]
108  B$="                                                                        "
200  GOTO Q1 OF 400,1000,2000,3000,5000,6000
399  REM:>>SUBCOMMAND
400  Z1=0
405  IF Q9=3 THEN 490
410  PRINT "WANT EXPLANATIONS, TOO ";
415  INPUT D$
420  IF D$[1,1]="N" THEN 490
425  Z1=1
426  GOTO 490
430  DATA "POBS  PRINT OUT VALUES OF SPECIFIED OBSERVATION(S) IN FILE"
432  DATA "MODO  MODIFY VALUE(S) OF VARIABLES IN 1 OBSERVATION IN FILE"
434  DATA "PNAM  PRINT OUT CURRENT NAMES OF VARIABLES IN FILE"
436  DATA "MODN  MODIFY CURRENT NAME(S) IN FILE"
440  DATA "PTEX  PRINT OUT CURRENT TEXT DESCRIBING FILE"
450  DATA "MODT  MODIFY CURRENT TEXT IN FILE"
451  DATA "STAT  PRINT OUT CURRENT STATUS OF FILE."
452  DATA "SUBC  LIST SUBCOMMANDS"
453  DATA "QUIT  QUIT USING 'CRFI'"
460  DATA "REDE  REDEFINE NUMBER OF OBSERVATIONS, VARIABLES, OR MISSING VALUE"
490  RESTORE 
492  PRINT "'CRFI' SUBCOMMANDS:"
494  PRINT 
496  FOR I=1 TO 10
498  READ D$
500  IF Z1=0 THEN 550
510  PRINT D$
520  GOTO 600
550  PRINT  USING "#,4A3X";D$[1,4]
600  NEXT I
610  PRINT 
615  IF Q9=3 THEN 9998
620  PRINT "FURTHER EXPLANATION AVAILABLE BY RE-EXECUTING 'CRFI' AT PROMPT"
630  PRINT "LEVEL 1."
650  GOTO 9998
999  REM:>>REDEFINE
1000  PRINT "SORRY, REDEFINE NOT YET IMPLEMENTED."
1010  GOTO 9998
1999  REM:>>PNAME
2000  IF P[2]#0 THEN 2008
2001  GOTO 3001
2005  IMAGE "VARIABLES",4D,"-",4D
2008  READ #1,P[2]
2010  READ #1;D$
2015  PRINT 
2020  PRINT D$" FOR '"C$"'"
2030  PRINT 
2035  Z=K1
2040  Y=INT(.9999+Z/10)
2050  J0=1
2060  FOR I=1 TO Y
2070  READ #1;D$
2075  Z=K1 MIN (J0+9)
2080  PRINT  USING 2005;J0,Z
2082  J0=J0+10
2090  FOR J=1 TO 10
2092  PRINT  USING "#,6AX";D$[6*J-5,6*J]
2094  NEXT J
2096  PRINT 
2098  PRINT 
2100  NEXT I
2110  GOTO 9998
2999  REM:>>MODNAME
3000  IF P[2]#0 THEN 3005
3001  PRINT C$" HAS NO NAME RECORDS IN IT."
3002  REM:LATER WILL ALLOW PERSON TO ADD NAMES IF THERE IS ROOM
3003  GOTO 9998
3005  PRINT "NUMBER OF VARIABLE";
3010  INPUT Z
3015  IF Z=0 THEN 9998
3020  IF Z <= K1 THEN 3050
3030  PRINT "ONLY"K1"VARIABLES IN "C$".  TRY AGAIN!"
3040  GOTO 3000
3050  GOSUB 3600
3060  READ #1,R
3070  IF Z>70 THEN 3090
3080  READ #1;J$
3090  GOSUB 3560
3100  PRINT "NAME OF VAR.#"Z"IS  "D$[6*X-5,6*X]
3110  PRINT "WANT NEW NAME FOR VAR.#"Z;
3120  INPUT S$
3130  IF S$[1,1]="Y" THEN 3180
3140  PRINT "WANT ANOTHER VARIABLE";
3150  INPUT S$
3160  IF S$[1,1]="Y" THEN 3000
3170  GOTO 9998
3180  PRINT 
3190  S$="      "
3200  PRINT "NEW NAME FOR VAR.#"Z;
3210  INPUT S$[1,6]
3220  Q=BRK(0)
3230  D$[6*X-5,6*X]=S$
3240  READ #1,R
3250  IF Z>70 THEN 3290
3260  READ #1;J$
3270  GOSUB 3390
3280  READ #1,R
3290  IF Z>70 THEN 3310
3300  PRINT #1;"NAMES:"
3310  PRINT #1;A$,B$,H$,I$,E$,F$,G$
3320  PRINT "VARIABLE"Z"IS RENAMED."
3330  Q=BRK(1)
3340  PRINT 
3345  GOTO Q9 OF 3350,3350,3358
3350  PRINT " WANT TO LIST OR NAME MORE VARIABLES";
3352  GOTO 3360
3358  PRINT "MORE VAR(S). ";
3360  INPUT S$
3370  IF S$[1,1]="N" THEN 9998
3380  GOTO 3000
3390  READ #1;A$,B$,H$,I$,E$,F$,G$
3400  GOTO Y OF 3410,3430,3450,3470,3490,3510,3530
3410  A$=D$
3420  GOTO 3540
3430  B$=D$
3440  GOTO 3540
3450  H$=D$
3460  GOTO 3540
3470  I$=D$
3480  GOTO 3540
3490  E$=D$
3500  GOTO 3540
3510  F$=D$
3520  GOTO 3540
3530  G$=D$
3540  RETURN 
3560  FOR I=1 TO Y
3570  READ #1;D$
3580  NEXT I
3590  RETURN 
3600  Y=INT(.9999+Z/10)
3610  R=N1+2
3620  IF Y<8 THEN 3660
3630  R=R+1
3640  Y=Y-7
3650  GOTO 3680
3660  X=Z
3670  IF X<11 THEN 3720
3680  X=Z-10*INT(Z/10)
3690  IF X#0 THEN 3720
3700  X=10
3710  REM:NAME FOR VAR#Z IS NAME X IN STRING Y OF RECORD R OF C$
3720  RETURN 
4999  REM:>>PTEXT
5000  IF P[3]#0 THEN 5020
5010  PRINT C$" HAS NO DESCRIPTIVE TEXT."
5012  REM:LATER WILL ALLOW PERSON TO ADD IT IF THERE IS ROOM
5014  GOTO 9998
5020  READ #1,P[3];D$
5030  PRINT D$
5040  FOR I=1 TO 7
5050  READ #1;D$
5070  PRINT D$
5080  NEXT I
5090  GOTO 9998
5999  REM:>>MODTEXT
6000  IF P[3]#0 THEN 6020
6010  GOTO 5010
6020  READ #1,P[3];D$
6030  READ #1;A$,B$,H$,I$,E$,F$,G$
6035  PRINT #1,P[3];"TEXT"
6040  PRINT "LINE 1 IS:"
6042  PRINT A$
6044  D$=A$
6046  GOSUB 6500
6050  PRINT "LINE 2 IS:"
6052  PRINT B$
6054  D$=B$
6056  GOSUB 6500
6060  PRINT "LINE 3 IS:"
6062  PRINT H$
6064  D$=H$
6066  GOSUB 6500
6070  PRINT "LINE 4 IS:"
6072  PRINT I$
6074  D$=I$
6076  GOSUB 6500
6080  PRINT "LINE 5 IS:"
6082  PRINT E$
6084  D$=E$
6086  GOSUB 6500
6090  PRINT "LINE 6 IS:"
6091  PRINT F$
6092  D$=F$
6094  GOSUB 6500
6100  PRINT "LINE 7 IS:"
6102  PRINT G$
6104  D$=G$
6106  GOSUB 6500
6200  GOTO 9998
6500  PRINT "WANT TO CHANGE LINE ";
6510  INPUT S$
6520  IF S$[1,1]="N" THEN 6580
6530  PRINT "GIVE NEW LINE:"
6540  INPUT D$
6550  IF LEN(D$)<71 THEN 6580
6560  PRINT "NEW LINE TOO LONG--CAN'T BE > 70 CHARACTERS."
6570  GOTO 6530
6580  PRINT #1;D$
6590  RETURN 
6999  GOTO 9998
9900  CHAIN "$IDA09",Z
9996  CHAIN "$IDA09",9996
9998  CHAIN "$IDA09",600
9999  END 
