100 ' G48 T.WAKAMATSU
110 DIM A(11),B(11),C(11),D(6145),E(6145)
120 FOR I=1 TO 11
130   A(I)=0:B(I)=0:C(I)=1
140 NEXT I
150 N=1:J=0:CLS
160 V=190:W=335:X=190:Y=330
170 D(0)=V:E(0)=W:D(1)=X:E(1)=Y
180 LINE (V,W)-(X,Y),PSET,1
190 P=1:GOSUB *LINE:P=-1:GOSUB *LINE
200 '-------------------------------
210 J=J+1:IF J=11 THEN 310
220 A(J)=A(J)+1
230 IF A(J)=2 THEN A(J)=0:GOTO 210
240 K=B(J)+C(J)
250 IF K=0 OR K=2 THEN C(J)=-C(J)
260 P=-C(J):B(J)=1:GOSUB *LINE
270 P=1:GOSUB *LINE:P=-1:GOSUB *LINE
280 J=1:GOTO 220
290 '-------------------------------
300 GOSUB *WAIT
310 C1=3:C2=2
320 FOR J=1 TO N
330  IF J=N/2+1   THEN C1=4:C2=5:GOSUB *WAIT
340  IF J=N/4*3+1 THEN C1=7:C2=6:GOSUB *WAIT
350  LINE (D(J-1),E(J-1))-(D(J),E(J)),PSET,C1
360  LINE (D(N-J+1),E(N-J+1))-(D(N-J),E(N-J)),PSET,C2
370 NEXT J
380 GOSUB *WAIT
390 FOR J=1 TO N/2
400  IF J=N/2+1   THEN C1=4:C2=5:GOSUB *WAIT
410  IF J=N/4*3+1 THEN C1=7:C2=1:GOSUB *WAIT
420  LINE (D(J-1),E(J-1))-(D(J),E(J)),PSET,0
430  LINE (D(N-J+1),E(N-J+1))-(D(N-J),E(N-J)),PSET,0
440 NEXT J
450 GOTO 560
460 '-------------------------------
470 *LINE
480    S=(Y-W)*P+X:T=(V-X)*P+Y
490    V=X:W=Y:X=S:Y=T:N=N+1:D(N)=X:E(N)=Y
500    LINE -(X,Y),PSET,1
510  RETURN
520 '-------------------------------
530 *WAIT
540    FOR D=1 TO 7800:NEXT D
550  RETURN
560 CLS
570 FOR D=1 TO 2000:NEXT D
580 CD PAUSE
