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:13JUN74
52  REM:Q1=1 FOR >>POBSERVATION;=2 FOR >>MODOBSERVATION;=3 FOR >>STATUS
60  REM:C$ IS FILE BEING CREATED OR MODIIFIED
80  FILES *
90  ASSIGN C$,1,Q8
100  DIM D$[72],R$[20],U$[4]
110  DIM L[128],A[10]
120  GOTO Q1 OF 1000,1000,3000
999  REM:>>POBS AND >>MODO
1000  MAT L=ZER[K1]
1003  PRINT 
1009  PRINT "* ";
1010  GOTO Q9 OF 1012,1016,1016
1012  PRINT "OBSERVATION #  ? ";
1014  GOTO 1018
1016  PRINT "OBS.#  ? ";
1018  ENTER 30,Q8,X
1019  PRINT 
1020  IF Q8>0 THEN 1028
1021  PRINT "THERE ARE"N1"OBSERVATIONS.  INPUT INTEGER 1 TO"N1
1022  IF Q1=2 THEN 1003
1023  PRINT "OR, '0' IF YOU DON'T WANT TO PRINT ANOTHER OBSERVATION."
1024  GOTO 1016
1028  IF X=0 THEN 9998
1030  PRINT 
1035  IF X=INT(X) AND X >= 1 AND X <= N1 THEN 1050
1040  PRINT C$" HAS BEEN DEFINED AS HAVING"N1"OBSERVATIONS, OR INTERVIEWS."
1045  GOTO 1162
1050  READ #1,(X+P[1])
1055  GOTO TYP(1) OF 1085,1060
1060  READ #1;D$
1065  IF D$[1,1]#"E" THEN 9996
1070  PRINT "OBS. #"X"HAS NOT BEEN FILLED IN YET."
1075  IF Q1=1 THEN 1162
1080  GOTO 1300
1085  MAT  READ #1;L
1090  IF Q1=2 THEN 1200
1092  IMAGE #,3D,"-",3D7X
1094  C=INT(.9999+K1/10)
1096  T=INT(.9999+C/5)
1098  C0=0
1100  PRINT "VALUES FOR OBS. #"X
1102  PRINT 
1104  FOR I0=1 TO T
1106  Z1=1+50*(I0-1)
1108  Z2=5 MIN (C-C0)
1110  Z3=Z1
1112  PRINT "VARIABLE #'S:"
1114  FOR J0=1 TO Z2
1116  PRINT  USING 1092;Z3,K1 MIN (Z3+9)
1118  Z3=Z3+10
1120  NEXT J0
1122  PRINT 
1124  PRINT 
1126  FOR J=1 TO 10
1128  FOR J0=1 TO Z2
1130  Z=Z1+10*(J0-1)
1132  IF Z>K1 THEN 1144
1134  IF M1=0 THEN 1140
1136  IF L[Z]#M2 THEN 1140
1138  PRINT "MISSING",
1139  GOTO 1142
1140  PRINT L[Z],
1142  NEXT J0
1144  Z1=Z1+1
1146  PRINT 
1148  NEXT J
1154  C0=C0+5
1156  PRINT 
1158  NEXT I0
1160  PRINT 
1162  PRINT 
1164  GOTO 1009
1200  IF Q9=3 THEN 1208
1202  PRINT "WHEN YOU ARE DONE MODIFYING OBS.#"X", GIVE '0' IN ANSWER TO"
1204  PRINT "THE FOLLOWING PROMPT:"
1206  PRINT 
1208  PRINT "  *  ";
1210  GOTO Q9 OF 1212,1214,1214
1212  PRINT "VARIABLE #  ? ";
1213  GOTO 1216
1214  PRINT "VAR. #  ? ";
1216  ENTER 30,Q8,V
1218  PRINT 
1220  IF Q8>0 THEN 1226
1222  PRINT "TRY AGAIN!"'7
1223  PRINT "'"C$"' HAS BEEN DEFINED FOR"K1"OBSERVATIONS."
1224  GOTO 1202
1226  IF V=0 THEN 2100
1227  IF V=INT(V) AND V >= 1 AND V <= K1 THEN 1230
1228  GOTO 1222
1230  PRINT "  *  NEW VALUE ? ";
1232  ENTER 30,Q8,L[V]
1234  PRINT 
1236  PRINT 
1238  IF Q8>0 THEN 1248
1240  PRINT "THE OLD VALUE OF VAR#"V"IN OBS.#"X"IS"L[V]
1242  IF M1=0 THEN 1230
1244  PRINT "MISSING VALUES IN '"C$"' ARE REPLACED BY"M2
1246  GOTO 1230
1248  GOTO 1208
1300  IF M1=0 THEN 1322
1305  IMAGE 3D," TO ",3D
1310  PRINT "FOR ALL MISSING VALUES, INPUT  "M2
1322  PRINT 
1325  PRINT "INPUT VALUES FOR VARIABLE #'S :"
1330  Z1=0
1332  N0=1
1335  Z2=10 MIN (K1-Z1)
1340  MAT A=ZER[Z2]
1345  PRINT 
1350  PRINT  USING 1305;Z1+1,Z1+Z2
1355  MAT  INPUT A
1360  FOR I=1 TO Z2
1365  Z=Z1+I
1370  L[Z]=A[I]
1375  NEXT I
1380  IF Z=K1 THEN 2100
1390  Z1=N0*10
1392  N0=N0+1
1400  GOTO 1335
2000  IF M1=0 THEN 2040
2010  IF L[I]#M2 THEN 2040
2020  PRINT "MISSING",
2030  GOTO 2050
2040  PRINT L[I],
2050  RETURN 
2099  REM:PRINTING ON FILE
2100  READ #1,(X+P[1])
2110  PRINT "MODIFYING OBS.#"X"...";
2115  Q=BRK(0)
2120  MAT  PRINT #1;L
2125  Q=BRK(1)
2130  PRINT 
2140  PRINT "TO PROOFREAD VALUES, EXECUTE 'POBS'."
2150  GOTO 9998
3000  IF P[1]#0 THEN 3020
3010  REM:DOESN'T HANDLE P(1)=0 YET
3012  GOTO 9998
3020  PRINT "'"C$"' HAS BEEN DEFINED FOR:"
3030  PRINT "N1 = "N1"OBSERVATIONS, OR INTERVIEWS"
3040  PRINT "K1 = "K1"VARIABLES PER OBSERVATION"
3050  PRINT "OBSERVATION #'S"
3062  N0=0
3070  FOR I=1 TO N1
3075  READ #1,(I+P[1])
3080  GOTO TYP(1) OF 3150,3100
3100  READ #1;D$
3110  IF D$="EMPTY" THEN 3120
3112  GOTO 9996
3120  PRINT I;
3130  N0=N0+1
3150  NEXT I
3160  IF N0=0 THEN 3170
3162  PRINT 
3164  PRINT "ARE NOT FILLED IN YET."
3166  GOTO 3180
3170  PRINT "ARE ALL FILLED IN."
3180  IF P[4]#0 THEN 3190
3182  REM:NO PROVISION FOR P(4)=0 YET
3184  GOTO 9998
3190  IF M1=0 THEN 3200
3192  PRINT "MISSING VALUES ARE REPLACED BY M2 = "M2
3194  PRINT 
3196  GOTO 9998
3200  PRINT "THERE ARE NO MISSING VALUES."
3210  GOTO 9998
9996  CHAIN "$IDA09",9996
9998  CHAIN "$IDA09",600
9999  END 
