      LOGICAL B1,B2,B3,B4,B5,B6,B7,B8,B9,B10
      DIMENSION PTS(6,50)
      DIMENSION FILE(2)
      COMMON/EYCEP/EYE(3),CEN(3),UP(3)
        COMMON/PULDAT/N
      COMMON/BULK/I3STRT,I3END,OBJ(6,75)
      COMMON/PAINT/I2STRT,I2END,PIC(4,75)
      COMMON/OIL/IVECT(300)
      COMMON/LIMITS/XMIN,XMAX,YMIN,YMAX
      DATA FILE(1),FILE(2)/4HCUBO,4H SRC/
      DATA ENFOR,EN2,EN3/5H(1X,2,5HHN=,I,2H4)/
      DATA IDS,IDL/2,1/
      CALL CLEAR(.TRUE.)
      CALL BUTTON(1)
      I3STRT=1
      I3END=33
      XMIN=-5.0
      XMAX=5.0
      YMIN=-5.0
      YMAX=5.0
      CALL SEEK (1,FILE)
      READ(1,501)((OBJ(I,J),I=1,6),J=1,33)
 501  FORMAT (6F5.1)
      EYE(1)=0.0
      EYE(2)=0.0
      EYE(3)=10.0
      CEN(1)=0.0
      CEN(2)=0.0
      CEN(3)=0.0
      UP(1)=0.0
      UP(2)=10.0
      UP(3)=0.0
      DIST=8.0
      I2STRT=1
      I2END=75
      MODE=1
      NN=0
      RD=3.1415926/192.0
      CALL ROTER
      CALL MAPPER(DIST)
      CALL VECTOR(1,PIC,I2STRT,I2END,IVECT,1,LAST,7,0,0)
      CALL DISPLY(6,IDL,IVECT,1,LAST)
      CALL DISPLY(6,IDS,IVECT,1,LAST)
      CALL DISPLY(3,IDL)
      IH=IDS
      IDS=IDL
      IDL=IH
10    CALL TEXT(0,0,0,0,0)
      CALL TEXT(800,800,7,1,ENFOR,NN)
      B1=.FALSE.
      B2=.FALSE.
      B3=.FALSE.
      B4=.FALSE.
      B5=.FALSE.
      B6=.FALSE.
      B7=.FALSE.
      B8=.FALSE.
      B9=.FALSE.
      B10=.FALSE.
      CALL BUTTON(3,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10)
194   CALL BUTTON(2,B1,B2,B3,B4,B5,B6,B7,B8,B9,B10)
      IF(B1) GO TO 111
      IF(B2) GO TO 222
      IF(B3) GO TO 330
      IF(B4) GO TO 440
      IF(B5) GO TO 555
      IF(B6) GO TO 666
      IF(B7) GO TO 777
      IF(B8) GO TO 888
      IF(B9) GO TO 990
      IF(B10) GO TO 1010
      GO TO 194
1010  DO 1001 J=1,24
      CALL PULSE(N,N)
1001  NN=NN+1
      GO TO 10
555   NN=0
      GO TO 10
111   IK=24
      IF(B6) GO TO 1600
      IF(B7) GO TO 1700
      IF(B8) GO TO 1800
      OBJ(1,32)=-0.1
      OBJ(1,33)=+0.1
      OBJ(4,31)=0.0
      OBJ(5,31)=1.3
      OBJ(2,32)=1.0
      OBJ(2,33)=1.0
      OBJ(4,33)=0.0
      OBJ(4,32)=0.0
      OBJ(5,32)=1.3
      OBJ(5,33)=1.3
      II=33
      CRO=COS(-4.0*RD)
      SRO=SIN(-4.0*RD)
      DO 112 K=1,IK,2
      I3STRT=31
      I3END=33
      CALL RORZ(CRO,SRO,CEN(1),CEN(2))
      I3STRT=1
      I3END=II
      CALL ROTMAP(IDS,IDL,DIST)
      CALL PULSE(N,N)
      NN=NN+1
      II=II+1
      OBJ(1,II)=OBJ(4,31)
      OBJ(2,II)=OBJ(5,31)
      I3STRT=31
      I3END=33
      CALL RORZ(CRO,SRO,CEN(1),CEN(2))
      I3STRT=1
      I3END=II
      OBJ(4,II)=OBJ(4,31)
      OBJ(5,II)=OBJ(5,31)
      CALL ROTMAP(IDS,IDL,DIST)
      DO 113 KK=1,3
      CALL PULSE(N,N)
113   NN=NN+1
112   CONTINUE
      OBJ(4,31)=0.0
      OBJ(5,31)=0.0
      OBJ(5,32)=0.0
      OBJ(4,32)=0.0
      OBJ(4,32)=0.0
      OBJ(4,33)=0.0
      OBJ(5,33)=0.0
      OBJ(1,33)=0.0
      OBJ(2,33)=0.0
      OBJ(2,32)=0.0
      OBJ(1,32)=0.0
      CALL ROTMAP(IDS,IDL,DIST)
      DO 114 K=1,48
      CALL PULSE(N,N)
114   NN=NN+1
      GO TO 10
1600  DO 161 I=22,30
      DO 162 J=1,6
      PTS(J,I)=OBJ(J,I)
162   OBJ(J,I)=0.0
161   CONTINUE
      I3END=21
      CALL ROTMAP(IDS,IDL,DIST)
      I3END=70
      GO TO 1010
1700  DO 171 I=22,23
      DO172 J=1,6
172   OBJ(J,I)=PTS(J,I)
      I3END=I
      CALL ROTMAP(IDS,IDL,DIST)
      DO 173 K=1,12
      CALL PULSE(N,N)
173   NN=NN+1
171   I3END=70
      GO TO 1010
1800  DO 181 I=24,26
      DO 182 J=1,6
182   OBJ(J,I)=PTS(J,I)
      CALL ROTMAP(IDS,IDL,DIST)
      DO 183 K=1,10
      CALL PULSE(N,N)
183   NN=NN+1
181   CONTINUE
      DO 184 K=1,48
      CALL PULSE(N,N)
184   NN=NN+1
      DO 185 I=27,30
      DO 186 J=1,6
186   OBJ(J,I)=PTS(J,I)
      CALL ROTMAP(IDS,IDL,DIST)
      DO 187 K=1,6
      CALL PULSE(N,N)
187   NN=NN+1
185   CONTINUE
      GO TO 1010
666   DO 665 K=1,12
      I=46-K
      OBJ(1,I)=0.0
      OBJ(2,I)=0.0
      OBJ(4,I)=0.0
      OBJ(5,I)=0.0
      CALL ROTMAP(IDS,IDL,DIST)
      DO 664 KK=1,4
      CALL PULSE(N,N)
664   NN=NN+1
665   CONTINUE
      GO TO 1010
777   DO 776 K=1,7
      I=54-K
      OBJ(5,I)=0.0
      OBJ(4,I)=0.0
      OBJ(2,I)=0.0
      OBJ(1,I)=0.0
      CALL ROTMAP(IDS,IDL,DIST)
      DO 775 KK=1,10
      CALL PULSE(N,N)
775   NN=NN+1
776   CONTINUE
      DO 774 J=1,26
      CALL PULSE(N,N)
774   NN=NN+1
      GO TO 1010
222   OBJ(1,46)=-0.1
      OBJ(2,46)= 1.4
      OBJ(3,46)= 0.0
      OBJ(4,46)= 0.0
      OBJ(5,46)= 1.3
      OBJ(6,46)=0.0
      DO 223 I=47,53
      K=I-1
      OBJ(1,I)=OBJ(1,K)+0.2
      OBJ(2,I)=OBJ(2,K)-0.2
      OBJ(5,I)=OBJ(5,K)-0.2
      OBJ(4,I)=OBJ(4,K)+0.2
      OBJ(3,I)=0.0
      OBJ(6,I)=0.0
      I3END=I
      CALL ROTMAP(IDS,IDL,DIST)
      DO 224 KK=1,10
      CALL PULSE(N,N)
224   NN=NN+1
223   CONTINUE
      GO TO 1010
330   OBJ(1,54)=-0.1
      OBJ(2,54)=-0.1
      OBJ(3,54)= 0.0
      OBJ(4,54)= 0.1
      OBJ(5,54)= 0.1
      OBJ(6,54)= 0.0
      DXY=0.1
      I3END=54
      DO 3301 K=1,20
      OBJ(4,54)=OBJ(4,54)+DXY
      OBJ(5,54)=OBJ(5,54)+DXY
      CALL ROTMAP(IDS,IDL,DIST)
      DO 3302 J=1,3
      CALL PULSE(N,N)
3302  NN=NN+1
3301  CONTINUE
      DO 3303 J=1,36
      CALL PULSE(N,N)
3303  NN=NN+1
      OBJ(1,55)=0.05
      OBJ(2,55)=1.3
      OBJ(4,55)=0.15
      OBJ(5,55)=1.3
      DO 3311  I=56,62
      KK=I-1
      OBJ(1,I)=OBJ(1,KK)+0.2
      OBJ(4,I)=OBJ(4,KK)+0.2
      OBJ(2,I)=1.3
      OBJ(3,I)=0.0
      OBJ(5,I)=1.3
      OBJ(6,I)=0.0
      I3END=I
      CALL ROTMAP(IDS,IDL,DIST)
      DO 3312 J=1,10
      CALL PULSE(N,N)
3312  NN=NN+1
3311  CONTINUE
      DO 3313 J=1,26
      CALL PULSE(N,N)
3313  NN=NN+1
      DO 332 I=63,70
      OBJ(1,I)=1.3
      OBJ(3,I)=0.0
      OBJ(4,I)=1.3
332   OBJ(6,I)=0.0
      OBJ(2,63)=1.55
      OBJ(5,63)=1.45
      DO 3321 I=64,70
      KK=I-1
      OBJ(2,I)=OBJ(2,KK)-0.2
      OBJ(5,I)=OBJ(5,KK)-0.2
      I3END=I
      CALL ROTMAP(IDS,IDL,DIST)
      DO 3322 J=1,10
      CALL PULSE(N,N)
3322  NN=NN+1
3321  CONTINUE
      DO 3323 J=1,26
      CALL PULSE(N,N)
3323  NN=NN+1
      GO TO 10
888   DO 887 K=1,17
      I=71-K
      OBJ(1,I)=0.0
      OBJ(2,I)=0.0
      OBJ(4,I)=0.0
      OBJ(5,I)=0.0
      I3END=I
      CALL ROTMAP(IDS,IDL,DIST)
      DO 886 J=1,4
      CALL PULSE(N,N)
886   NN=NN+1
887   CONTINUE
      GO TO 1010
440   DO 444 I=31,33
      OBJ(1,I)=0.0
      OBJ(2,I)=0.0
      OBJ(4,I)=0.0
444   OBJ(5,I)=0.0
      DO 441 I=1,14
      I3STRT=I+1
      CALL ROTMAP(IDS,IDL,DIST)
      DO 442 K=1,5
      CALL PULSE(N,N)
442   NN=NN+1
441   CONTINUE
      I3STRT=1
      DO 443 K=1,26
      CALL PULSE(N,N)
443   NN=NN+1
      GO TO 1010
990   DO 991 I=1,14
      OBJ(1,I)=OBJ(1,I)+1.0
      OBJ(2,I)=OBJ(2,I)+1.0
      OBJ(4,I)=OBJ(4,I)+1.0
991   OBJ(5,I)=OBJ(5,I)+1.0
      I3STRT=1
      CALL ROTMAP(IDS,IDL,DIST)
      DO 995 K=1,34
      CALL PULSE(N,N)
995   NN=NN+1
      DO 993 K=1,10
      DO 992 I=1,14
      OBJ(1,I)=OBJ(1,I)-0.1
      OBJ(2,I)=OBJ(2,I)-0.1
      OBJ(4,I)=OBJ(4,I)-0.1
992   OBJ(5,I)=OBJ(5,I)-0.1
      CALL ROTMAP(IDS,IDL,DIST)
      DO 994 KK=1,18
      CALL PULSE(N,N)
994   NN=NN+1
993   CONTINUE
      GO TO 1010
      END
