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]
50  REM:13JUN74
52  REM:Q1=3 FOR>MISS;=4 FOR>MEAN;=5 FOR>FILE
150  DIM C$[7],D$[12],A$[72],E$[4]
155  GOTO (Q1-2) OF 1000,200,160
160  FILES *
165  DIM A[384]
167  C2=384
170  GOTO 4000
200  IF Q[1]=0 THEN 9990
201  GOTO (Q1-2) OF 1000,3690
1000  E$="MISS"
1010  PRINT 
1020  PRINT "CURRENT STATUS:"
1030  IF P[61]#0 THEN 1060
1040  PRINT "NO NUMBER HAS BEEN"
1050  GOTO 1070
1060  PRINT P[62];"IS NUMBER ";
1070  PRINT "DESIGNATED AS REPRESENTING MISSING VALUES IN DATA."
1080  PRINT 
1090  PRINT "WANT TO CHANGE ";
1100  INPUT D$
1110  IF D$[1,1]="N" THEN 9998
1120  IF P[61]=1 THEN 1140
1130  GOTO 1210
1140  PRINT 
1150  PRINT "WANT TO DECLARE NEW NUMBER TO REPRESENT MISSING VALUES ";
1160  INPUT D$
1170  IF D$[1,1]#"N" THEN 1210
1180  P[61]=P[62]=0
1190  PRINT "THERE IS NOW NO NUMBER TO REPRESENT MISSING VALUES."
1200  GOTO 9998
1210  P[61]=1
1220  PRINT 
1230  PRINT "NUMBER TO REPRESENT MISSING VALUES IS ";
1240  INPUT P[62]
1250  GOTO 9998
3689  REM:>MEAN
3690  GOSUB 6600
3700  PRINT LIN(1),"VARIABLE     MEAN        STD. DEV."
3705  PRINT 
3710  FOR I=1 TO K
3720  IF Q3=1 THEN 3760
3730  PRINT  USING 3740;I,X[N9+1,I],X[N9+2,I]
3740  IMAGE 3X,2D,2X,2(3X,D.5DE)
3750  GOTO 3810
3760  IF I>10 THEN 3800
3770  PRINT  USING 3780;M$[6*I-5,6*I],X[N9+1,I],X[N9+2,I]
3780  IMAGE X,6A,2(3X,D.5DE)
3790  GOTO 3810
3800  PRINT  USING 3780;N$[6*(I-10)-5,6*(I-10)],X[N9+1,I],X[N9+2,I]
3810  NEXT I
3820  PRINT 
3830  PRINT "BASED ON"N0"ACTIVE ROWS."
3840  GOTO 9998
4000  E$="FILE"
4002  GOTO Q9 OF 4008,4004,4004
4004  PRINT "FILE NAME IS ";
4006  GOTO 4040
4008  PRINT "NAME OF FILE TO PRINT IS ";
4040  INPUT C$
4050  GOTO 4526
4052  IF  END #1 THEN 4058
4054  READ #1,1
4056  GOTO 4060
4058  PRINT "'"C$"' IS EMPTY."
4059  GOTO 9996
4060  GOTO TYP(1) OF 4062,4070
4062  READ #1;N1
4064  PRINT "FIRST ELEMENT OF '"C$"' IS"N1
4065  IF N1#INT(N1) THEN 4090
4066  IF N1#INT(N1) THEN 4090
4068  IF N1>563 THEN 4090
4069  GOTO 4076
4070  READ #1;A$
4072  PRINT "FIRST ELEMENT IN '"C$"' IS THE STRING:"
4073  PRINT A$
4074  GOTO 4090
4076  GOTO TYP(1) OF 4078,4087,4592
4078  READ #1;K1
4080  PRINT "SECOND ELEMENT IN '"C$"' IS"K1
4082  IF K1#INT(K1) THEN 4090
4083  Z1=(N1+3)*(K1+3)
4084  IF Z1<2266.1 AND K1<19.1 THEN 4100
4086  GOTO 4090
4087  READ #1;A$
4088  PRINT "SECOND ELEMENT IN '"C$"' IS THE STRING:"
4089  PRINT A$
4090  PRINT "'"C$"' DOES NOT HAVE STANDARD IDA FORMAT."
4094  Z1=0
4096  GOTO 4500
4100  PRINT "'"C$"' PROBABLY HAS DATA MATRIX OF"N1"ROWS AND"K1"COLUMNS."
4130  PRINT "HOW MANY ROWS DO YOU WANT TO PRINT ";
4140  INPUT N2
4142  IF N2=0 THEN 4205
4143  N2=N2 MIN N1
4144  IF  END #1 THEN 4090
4145  PRINT 
4150  FOR I=1 TO N2
4160  PRINT  USING 4170;I
4170  IMAGE #,"ROW",3D," : "
4180  MAT  READ #1;A[K1]
4190  FOR J=1 TO K1
4192  PRINT A[J];
4194  NEXT J
4196  PRINT 
4200  NEXT I
4205  PRINT 
4210  GOTO Q9 OF 4220,4240,4240
4220  PRINT "* WANT TO CHECK NAMES OR TEXT IN '"C$"' ? ";
4232  GOTO 4250
4240  PRINT "*CHECK NAMES, TEXT ?";
4250  ENTER 30,Q8,D$
4252  PRINT 
4254  IF Q8>0 THEN 4270
4256  PRINT "FILES SAVED WITH 'SAVF' IN IDA MAY HAVE NAMES AND DESCRIP-"
4258  PRINT "TIVE TEXT SAVED AFTER THE VALUES OF THE DATA MATRIX."
4260  GOTO 4220
4270  IF D$[1,1]="?" THEN 4256
4272  IF D$[1,1]="N" THEN 9998
4280  Z1=N1*K1
4282  Z1=Z1+2
4284  R=INT(Z1/128)
4286  R=1 MAX R
4288  PRINT 
4290  GOTO 4560
4500  PRINT 
4504  IF Q9=3 THEN 4510
4506  PRINT "WANT TO LIST CONTENTS OF '"C$"' ";
4508  GOTO 4512
4510  PRINT "LIST '"C$"' ";
4512  INPUT D$
4514  IF D$[1,1]="N" THEN 9998
4516  PRINT "WANT TO START LISTING FROM BEGINNING OF FILE ";
4518  INPUT D$
4520  IF D$[1,1]="N" THEN 4540
4522  R=1
4524  GOTO 4558
4526  ASSIGN C$,1,Q8
4528  IF Q8 <= 2 THEN 4052
4530  PRINT "'"C$"' CANNOT BE FOUND OR IS PROTECTED."
4532  IF Q9=3 THEN 4538
4534  PRINT "NOTE: FILE NAMES MUST BE PRECEDED BY:"
4536  PRINT "$  IF A SYSTEM FILE "'10'13"*  IF A GROUP FILE"
4538  GOTO 9996
4540  IF Q9=3 THEN 4546
4542  PRINT "WHAT NUMBER RECORD DO YOU WANT TO LIST: ";
4544  GOTO 4548
4546  PRINT "RECORD NUMBER ";
4548  IF  END #1 THEN 4554
4550  INPUT R
4552  IF R>0 AND R=INT(R) THEN 4558
4554  PRINT "INVALID RECORD NUMBER. TRY AGAIN!"
4556  GOTO 4542
4558  READ #1,R
4560  GOTO TYP(-1) OF 4562,4570,4592,4584
4562  READ #1;A
4564  IF Z1>0 THEN 4560
4566  PRINT A,
4568  GOTO 4560
4570  READ #1;A$
4572  IF Z1>0 THEN 4576
4574  PRINT 
4576  PRINT A$
4578  GOTO 4560
4580  PRINT "FILE RECORD LIST COMPLETED"
4582  GOTO 4506
4584  REM:EOR
4586  IF Z1=0 THEN 4596
4588  R=R+1
4590  GOTO 4558
4592  PRINT "END OF FILE CONTENTS."
4594  GOTO 9998
4596  PRINT 
4598  PRINT "END OF RECORD"R
4600  PRINT "LIST ANOTHER RECORD ";
4602  INPUT D$
4604  IF D$[1,1]="N" THEN 9998
4606  PRINT "RECORD NUMBER ";
4608  GOTO 4548
6600  REM:#OBS. IN COL.
6610  N0=0
6615  Z=K9+2
6620  FOR J0=Q4 TO N
6630  N0=N0+X[J0,Z]
6640  NEXT J0
6650  RETURN 
9990  CHAIN "$IDA",9990
9996  PRINT "'"E$"' NOT EXECUTED."
9998  CHAIN "$IDA",150
9999  END 
