10  COM Z8,J$[7],V7,J9,X$[72],Y$[72],G[4],C2,W[7],I8,Z[7]
20  COM I,R7,N9,Q[24,8],N4,P$[72],Q$[72],D[24,4],M[4],F7,T[4,2],R[16]
21  GOTO 30
22  CHAIN "$ANAL-3"
23  CHAIN "$ANAL-1"
30  FILES SLITS1
40  DIM A[4,30],B$[3],O$[10],O[7]
50  MAT Q=ZER
60  N4=N8=C8=J8=P9=I
70  N9=N5=C5=C6=D8=P8=I-I
80  MAT  READ #I;A
90  READ #I,I
100  FOR N3=I TO 24
110  C6=N4-I
120  D3=I
130  FOR N1=D3 TO I8+2
140  IF  NOT D8 THEN 170
150  D8=I-I
160  GOTO 180
170  D5=I
180  FOR J1=D5 TO 7
190  IF J9#2 THEN 210
200  GOTO 820
210  IF N3#N8 THEN 400
220  IF N4=I THEN 300
230  FOR N5=I TO N4-I
240  FOR X9=I TO 6
250  IF  NOT W[X9] THEN 280
260  IF Q[N5,X9]=A[N1,J1*(V7+I)-V7+W[X9]] THEN 280
270  GOTO 520
280  NEXT X9
290  GOTO 560
300  FOR X8=I TO 6
310  IF  NOT W[X8] THEN 330
320  Q[N4,X8]=A[N1,J1*(V7+I)-V7+W[X8]]
330  NEXT X8
340  Q[N4,7]=I
350  N9=N9+I
360  N8=N8+I
370  N4=N4+I
380  IF N9=24 OR N4=25 THEN 770
390  GOTO 560
400  FOR X8=I TO 6
410  IF  NOT W[X8] THEN 470
420  IF Q[N4-I,X8]#A[N1,J1*(V7+I)-V7+W[X8]] THEN 440
430  GOTO 470
440  IF X8<3 THEN 560
450  IF C8=I THEN 1120
460  GOTO 560
470  NEXT X8
480  IF J1=6 AND N1=I8+I THEN 770
490  Q[N4-I,7]=Q[N4-I,7]+I
500  N9=N9+I
510  GOTO 380
520  NEXT N5
530  IF  NOT P8 THEN 300
540  P8=I-I
550  GOTO 1140
560  IF J1=6 THEN 580
570  NEXT J1
580  IF N1=I8+I THEN 600
590  NEXT N1
600  IF J9=2 THEN 790
610  IF N9=24 OR N4=25 THEN 1300
620  IF C8=2 THEN 640
630  GOTO 770
640  FOR X9=I TO 6
650  IF  NOT W[X9] THEN 670
660  Q[N4,X9]=B[X9]
670  NEXT X9
680  Q[N4,7]=I
690  N9=N9+I
700  N4=N4+I
710  IF N9=24 OR N4=25 THEN 770
720  C8=I
730  D3=M[I]
740  D5=M[3]
750  D8=I
760  GOTO 130
770  Q[N4-I,8]=N4-C6-I
780  IF N9=24 OR N4=25 THEN 1300
790  NEXT N3
800  IF J9=2 THEN 1010
810  GOTO 1300
820  X=11
830  IF P9=2 THEN 1030
840  FOR P6=I TO V7
850  IF P#I THEN 880
860  PRINT '10"DATA"TAB(X);J$[2*P6-I,2*P6-I]
870  GOTO 890
880  PRINT TAB(X);J$[2*P6-I,2*P6-I];
890  X=X+12
900  NEXT P6
910  PRINT '13"SET"'10
920  PRINT 
930  J8=J8+I
940  GOTO 1030
950  P9=2
960  IF N1=I8+I THEN 1000
970  IF J1#6 THEN 560
980  PRINT 
990  GOTO 560
1000  IF J1#6 THEN 560
1010  J9=3
1020  GOTO 1320
1030  P8=V7
1040  X=11
1050  FOR P6=I TO V7+I
1060  PRINT A[N1,J1*(V7+I)-P8];TAB(X);
1070  P8=P8-I
1080  X=X+12
1090  NEXT P6
1100  PRINT 
1110  GOTO 950
1120  P8=I
1130  GOTO 230
1140  FOR X9=I TO 6
1150  IF  NOT W[X9] THEN 1170
1160  B[X9]=A[N1,J1*(V7+I)-V7+W[X9]]
1170  NEXT X9
1180  C8=2
1190  IF J1=6 THEN 1230
1200  M[3]=J1+I
1210  M[I]=N1
1220  GOTO 560
1230  IF N1=I8+I THEN 1270
1240  M[I]=N1+I
1250  M[3]=I
1260  GOTO 560
1270  M[I]=N1
1280  M[3]=J1
1290  GOTO 640
1300  PRINT 
1310  GOTO 22
1320  GOTO 23
1330  END 
