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 E$[4]
50  REM:12JUN74
52  REM:Q1=1 FOR>ENTE;=2 FOR>STAR
100  DIM A$[10],C$[7],D$[10],A[19]
102  Q[6]=23
103  GOTO Q1 OF 104,106
104  E$="ENTE"
105  GOTO 110
106  E$="STAR"
110  IF Q9>1 THEN 130
120  PRINT "WANT EXPLANATION ";
122  INPUT A$
124  IF A$[1,1]="N" THEN 130
126  GOTO 9947
130  GOTO Q1 OF 160,200
160  FILES *
200  IF Q[1]=0 THEN 251
210  IF Q9>1 THEN 240
220  PRINT 
222  PRINT "FURTHER USE OF '"E$"' WILL ERASE"
224  PRINT "DATA NOW IN FIRST"N"ROWS,"K"COLUMNS."
226  PRINT "WANT TO CONTINUE WITH  "E$;
227  INPUT A$
228  IF A$[1,1]="N" THEN 9996
230  REM:ZERO DATA MATRIX,ETC., BUT LET SCRATCH COL.VALUES AND ALL P MAT
232  REM:VALUES EXECPT P(65), THE CRSP MONTH INDICATOR, REMAIN
240  IF P[63]=0 THEN 250
241  FOR I=1 TO N9+3
242  FOR J=1 TO K9+2
244  X[I,J]=0
246  NEXT J
248  NEXT I
249  GOTO 251
250  MAT X=ZER[N9+3,K9+2]
251  P[65]=Q3=0
252  MAT Q=ZER
253  MAT M=ZER
260  GOTO Q1 OF 270,4000
270  PRINT 
275  GOTO Q9 OF 300,280,290
280  PRINT "* MODE OF INPUT IS ";
285  GOTO 310
290  PRINT "* MODE = ";
295  GOTO 310
300  PRINT "* MODE OF INPUT : FROM 'FILE' OR 'TERMINAL' ?";
310  ENTER 30,Q8,D$
315  PRINT 
320  IF Q8>0 THEN 350
330  PRINT "RESPOND 'F' FOR FILE OR 'T' FOR TERMINAL : ";
340  GOTO 310
350  IF D$[1,1]="F" THEN 390
360  IF D$[1,1]="T" THEN 700
370  PRINT "INVALID RESPONSE"
380  GOTO 330
390  PRINT 
392  GOTO Q9 OF 400,395,395
395  PRINT "NAME IS ";
396  GOTO 402
400  PRINT "NAME OF INPUT FILE IS ";
402  INPUT C$
404  ASSIGN C$,1,Q8
406  IF Q8 <= 2 THEN 421
410  PRINT C$" CANNOT BE FOUND."
412  PRINT "CHECK YOUR SPELLING!"
420  GOTO 400
421  PRINT 
422  IF  END #1 THEN 8000
423  GOTO 3000
430  READ #1,1;N,K
432  IF N=INT(N) AND K=INT(K) THEN 435
433  GOTO 436
435  IF N <= N9 AND K<K9 THEN 442
436  PRINT "PRESENT DIMENSIONS OF DATA MATRIX ARE"N9"ROWS BY"K9-1"COLUMN(S)"
437  PRINT "BUT FIRST TWO ELEMENTS OF "C$" ARE"N","K
438  PRINT "DATA NOT ENTERED."
439  GOTO 9998
442  FOR I=1 TO N
443  X[I,K9+2]=1
444  FOR J=1 TO K
446  READ #1;X[I,J]
448  NEXT J
450  NEXT I
452  GOTO 500
454  FOR I=1 TO N
455  X[I,K9+2]=1
456  PRINT "ROW"I": ";
458  MAT  INPUT A[K]
460  FOR J=1 TO K
462  X[I,J]=A[J]
464  NEXT J
466  NEXT I
468  GOTO 9912
500  GOTO TYP(1) OF 9912,510,9912
510  READ #1;A$
520  IF A$#"NAMES:" THEN 9912
530  FOR J=1 TO K
540  GOTO TYP(1) OF 9912,550,9912
550  READ #1;A$
560  IF LEN(A$)>6 THEN 9912
570  IF J>10 THEN 600
580  M$[6*J-5,6*J]=A$
590  GOTO 620
600  Z=J-10
610  N$[6*Z-5,6*Z]=A$
620  NEXT J
630  Q3=1
640  GOTO 9912
700  PRINT 
702  GOTO Q9 OF 710,710,880
710  PRINT "* SAMPLE SIZE (N) = ";
720  ENTER 30,Q8,N
725  PRINT 
730  IF Q8>0 THEN 760
740  PRINT "N IS THE NUMBER OF ROWS IN DATA MATRIX"
750  GOTO 710
760  IF N <= N9 AND N=INT(N) THEN 800
770  PRINT "N MUST BE AN INTEGER LESS THAN"N9+1
780  GOTO 710
800  PRINT "* NO. OF VARIABLES (K) = ";
810  ENTER 30,Q8,K
815  PRINT 
820  IF Q8>0 THEN 850
830  PRINT "K IS THE NUMBER OF COLUMNS IN DATA MATRIX"
840  GOTO 800
850  IF K<K9 AND K=INT(K) THEN 900
860  PRINT "K MUST BE AN INTEGER LESS THAN "K9
870  GOTO 800
880  PRINT "N,K = ";
890  INPUT N,K
892  IF N <= N9 AND N=INT(N) THEN 896
894  GOTO 770
896  IF K<K9 AND K=INT(K) THEN 900
898  GOTO 770
900  IF D$[1,1]="F" THEN 442
902  PRINT 
905  GOTO Q9 OF 910,910,930
910  PRINT "ENTER ELEMENTS OF MATRIX BY ROWS BELOW :"
920  GOTO 454
930  PRINT "DATA :"
940  GOTO 454
3000  GOTO Q9 OF 3010,3010,3040
3010  PRINT "* ARE THE FIRST TWO ELEMENTS OF YOUR DATA FILE"
3020  PRINT "  VALUES FOR N AND K (SIZE OF DATA MATRIX)? ";
3030  GOTO 3050
3040  PRINT "* N,K GIVEN IN FILE? ";
3050  ENTER 30,Q8,A$
3060  PRINT 
3070  IF Q8>0 THEN 3160
3080  READ #1,1;X,Y
3085  PRINT X","Y"ARE THE FIRST TWO ELEMENTS OF YOUR DATA FILE."
3087  READ #1,1
3090  IF X=INT(X) AND Y=INT(Y) THEN 3040
3095  PRINT "BOTH"X"AND"Y"ARE NOT INTEGERS."
3100  GOTO 700
3160  IF A$[1,1]="N" THEN 700
3170  IF A$[1,1]="Y" THEN 430
3180  PRINT "NEED HELP ";
3182  INPUT A$
3184  IF A$[1,1]#"N" THEN 3080
3186  PRINT "PLEASE ANSWER "'10"YES"'10"OR"'10"NO."
3190  GOTO 3040
4000  PRINT 
4002  GOTO Q9 OF 4010,4020,4030
4010  PRINT "FOR DEFINING INITIAL ZERO DATA MATRIX,"
4020  PRINT "GIVE TWO NUMBERS, SEPARATED BY A COMMA, FOR:"
4022  PRINT '10"N AND K, OR # OF ROWS, # OF COL(S). = ";
4024  GOTO 4040
4030  PRINT "N,K = ";
4040  INPUT N1,K1
4050  IF N1<N9+.1 AND K1<K9 THEN 4060
4052  PRINT "CURRENT IDA DIM.ARE"N9"X"K9
4054  GOTO 9996
4060  N=N1
4070  K=K1
4072  FOR I=1 TO N
4074  X[I,K9+2]=1
4076  NEXT I
4080  Q[1]=Q[3]=Q4=1
4085  PRINT 
4090  PRINT "PLEASE GIVE NAMES FOR:"
4100  FOR I=1 TO K
4110  GOSUB 6900
4120  NEXT I
4125  Q3=1
4130  PRINT 
4140  IF Q9=3 THEN 9998
4150  PRINT N"X"K"DATA MATRIX OF ZEROES NOW DEFINED."
4160  GOTO 9998
6900  PRINT  USING 6910;I
6910  IMAGE #,"VAR.",XDD,X
6920  INPUT D$
6930  IF I>10 THEN 6960
6940  M$[6*I-5,6*I]=D$[1,6]
6950  GOTO 6970
6960  N$[6*I-65,6*I-60]=D$[1,6]
6970  RETURN 
8000  PRINT "NOT ENOUGH OR NO DATA IN "C$
8001  PRINT "USE COMMAND 'FILE' TO CHECK CONTENTS."
8002  GOTO 9996
9912  Q[8]=Q[6]=23
9913  I4=K
9914  I3=1
9915  CHAIN "$IDA912"
9947  CHAIN "$IDAE08"
9996  PRINT E$" NOT EXECUTED."
9998  CHAIN "$IDA",150
9999  END 
