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:14JUN74
60  REM:C$ IS FILE BEING MODIFIED OR INITIALIZED
62  REM:C1 INDICATES FILE TYPE. NOW, C1=1, FOR RANDOM ACCESS, ONLY OPTION
70  REM:C2=MAX # OBS. ALLOWED, C3=MAX # VAR. ALLOWED, C4=MAX # RECORDS ALLOWED
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$[6],S$[12]
102  C2=1000
104  C3=128
106  C4=500
108  B$="                                                                        "
200  GOTO Q1 OF 7000
7000  REM:INITIALIZING C$ AS RANDOM ACCESS FILE
7010  PRINT "HOW MANY OBSERVATIONS, OR INTERVIEWS ";
7020  INPUT N1
7030  IF N1 <= C2 THEN 7060
7040  PRINT "LIMIT IS"C2"OBSERVATIONS."
7050  GOTO 9999
7060  PRINT TAB(16);"HOW MANY VARIABLES ";
7070  INPUT K1
7080  IF K1 <= C3 THEN 7110
7090  PRINT "LIMIT IS"C3"VARIABLES."
7100  GOTO 9998
7110  REM:COMPUTE # OF RECORDS NEEDED
7120  R4=3+N1+INT(.9999+K1/70)
7125  IF R4 <= C4 THEN 7170
7130  PRINT "YOU NEED"R4"RECORDS FOR"N1"OBSERVATIONS AND"K1"VARIABLES, BUT"
7140  PRINT "LIMIT IS"C4"RECORDS."
7150  GOTO 9998
7160  REM:SEE IF C$ HAS AT LEAST R4 RECORDS
7170  IF  END #1 THEN 7190
7180  READ #1,R4
7185  GOTO 7210
7190  PRINT "YOU NEED"R4"RECORDS. "C$" HAS LESS."
7200  GOTO 9998
7210  PRINT TAB(18);"ANY MISSING DATA ";
7220  INPUT D$
7230  IF D$="N" THEN 7290
7240  M1=1
7250  PRINT "GIVE AN INTEGER (+ OR -) DIFFERENT FROM ANY"
7260  PRINT "OF YOU DATA VALUES TO REPRESENT MISSING VALUES : ";
7270  INPUT M2
7280  GOTO 7300
7290  M1=M2=0
7300  PRINT "INITIALIZING '"C$"'...";
7310  Q=BRK(0)
7320  PRINT #1,1;N1,K1
7321  P[1]=1
7322  P[2]=1+P[1]+N1
7323  Z2=1
7325  IF K1 <= 70 THEN 7327
7326  Z2=2
7327  P[3]=P[2]+Z2
7328  P[4]=P[3]+1
7330  FOR I=2 TO N1+1
7340  PRINT #1,I;"EMPTY"
7350  NEXT I
7360  GOSUB 8000
7370  GOSUB 9000
7380  PRINT 
7390  Q=BRK(1)
7400  PRINT "'"C$"' IS INITIALIZED AND READY TO GO."
7402  IF Q9=3 THEN 7600
7403  PRINT 
7405  PRINT "YOU MAY FILL IN N1 =";N1;"OBSERVATIONS ON EACH OF"
7410  PRINT "K1 ="K1"VARIABLES AT YOUR CONVENIENCE,"
7415  PRINT "THE PROMPT"'10"* >>"
7420  PRINT "WILL INDICATE THAT 'CRFI'--A DAUGHTER OF 'IDA' AWAITS YOUR"
7425  PRINT "SUBCOMMAND. YOU MIGHT TRY:"
7430  PRINT 
7437  PRINT "SUBC  OR 'SUBCOMMAND', TO GET A LIST OF SUBCOMMANDS"
7439  PRINT "PNAM  OR 'PNAME', TO PRINTOUT CURRENT NAMES"
7440  PRINT "PTEX  OR 'PTEXT', TO PRINTOUT CURRENT DESCRIPTIVE TEXT."
7445  PRINT "QUIT  TO QUIT USING 'CRFI'."
7455  PRINT 
7600  Z=Q[7]
7610  GOTO 9900
8000  R=P[2]
8010  PRINT #1,R;"NAMES:"
8020  Z1=0
8030  A$="0123456789"
8040  Z2=1
8050  IF K1 <= 70 THEN 8070
8060  Z2=2
8070  FOR J0=1 TO Z2
8080  FOR J=1 TO 7
8090  D$=B$[1,60]
8100  FOR I=1 TO 10
8110  Z1=Z1+1
8120  IF Z1 <= K1 THEN 8150
8130  E$="      "
8140  GOTO 8310
8150  E$="VAR000"
8160  Z=INT(Z1/100)
8170  IF Z >= 1 THEN 8250
8180  Z=INT(Z1/10)
8190  IF Z >= 1 THEN 8220
8200  Z=Z1
8210  GOTO 8300
8220  E$[5,5]=A$[Z+1,Z+1]
8230  Z=Z1-10*Z
8240  GOTO 8300
8250  E$[4,4]=A$[Z+1,Z+1]
8260  D=Z1-100*Z
8270  Z=INT(D/10)
8280  E$[5,5]=A$[Z+1,Z+1]
8290  Z=D-Z*10
8300  E$[6,6]=A$[Z+1,Z+1]
8310  D$[6*I-5,6*I]=E$
8320  NEXT I
8330  PRINT #1;D$
8340  NEXT J
8350  R=R+1
8360  READ #1,R
8370  NEXT J0
8380  RETURN 
9000  PRINT #1,P[3];"TEXT"
9010  A$="'      ' HAS VALUES FOR N1 AND K1 IN RECORD #1."
9020  A$[2,7]=C$
9030  I$="IN RECORDS 2 TO N1+1, THE K1 DATA VALUES FOR OBSERVATIONS 1 TO N1."
9040  PRINT #1;A$,I$
9050  H$="IN REC.# N1+2, 'NAMES:', FOLLOWED BY STRINGS OF THE                "
9052  E$="IN RECORD N1+3, 'TEXT', FOLLOWED BY 7 LINES OF DESCRIPTIVE TEXT."
9054  G$="IN RECORD N1+4, THE VALUES OF M1 AND M2, WHERE:"
9056  D$="NO MISSING VALUES OR M1=1 AND M2=THE VALUE REPLACING MISSING ONES."
9057  IF M1#0 THEN 9060
9058  D$="M1=M2=0 SINCE THERE ARE NO MISSING VALUES."
9059  GOTO 9065
9060  D$="M1=1 AND M2=THE NUMBER REPLACING MISSING VALUES."
9065  IF K1>70 THEN 9120
9070  H$[53,67]="K1 NAMES."
9090  F$=B$[1,5]
9110  GOTO 9170
9120  H$[53,67]=" FIRST 70 NAMES"
9130  E$[14,14]="4"
9140  G$[14,14]="5"
9150  F$="IN RECORD N1+3, THE NAMES OF THE REMAINING VARIABLES."
9170  PRINT #1;H$,F$,E$,G$,D$
9180  R=P[4]
9190  PRINT #1,R;M1,M2
9200  RETURN 
9900  CHAIN "$IDA09",Z
9996  PRINT "WRONG FILE"
9997  CHAIN "$IDA",150
9998  CHAIN "$IDA09",600
9999  END 
