C ACH JA, DAS AUCH C C INTEGER X,Y C C C 1000 CALL PL$INI CALL PL$SCL(2.54) C CALL GITTER CALL PL$PU C CALL PL$MV(0,0) CALL DOWN DO 3000 X=0,600 XR=X PHI=(3.141/180.0)*XR Y=SIN(PHI)*90.0 CALL DODOT(X,Y) 3000 CONTINUE CALL UP C CALL PL$MV(0,0) DO 4001 X=0,600 XR=X PHI=(3.141/180.0)*XR Y=COS(PHI)*55.0+SIN(PHI*12.0)*40.0 CALL DODOT(X,Y) 4001 CONTINUE CALL UP C C CALL PL$MV(0,0) C CALL REBOOT CALL PL$MV (0,-250) PAUSE 7 GO TO 1000 END C C C SUBROUTINE DODOT(X,Y) INTEGER X,Y IF (Y.LE.100) GO TO 444 CALL UP GO TO 3001 444 IF (Y.GE.-100) GO TO 555 CALL UP GO TO 3001 555 CALL PL$MV(X,Y) CALL DOWN 3001 RETURN END C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C SUBROUTINE GITTER INTEGER X,Y,STAK(400) CALL S$INIT(STAK,400) DO 2000 X=0,600,50 CALL LINE(X,-100,X,100) 2000 CONTINUE 1500 DO 1600 Y=0,200,50 CALL LINE(0,Y-100,600,Y-100) 1600 CONTINUE 1300 DO 1400 Y=0,150,50 DO 222 X=0,580,20 CALL LINE(X,Y-75,X+10,Y-75) 222 CONTINUE 1400 CONTINUE C CALL LINE (0,1,600,1) CALL LINE (0,-1,600,-1) CALL LINE (-1,-100,-1,100) CALL LINE (1,-100,1,100) CALL PL$PU CALL PL$MV(0,110) CALL PL$TXT(STAK,37HSinus-Demo, 08.11.2008, Ph. Hachtmann,37) C RETURN END C C C SUBROUTINE LINE(X1,Y1,X2,Y2) C CALL PL$MV(X1,Y1) C CALL PL$PD C CALL PL$MV(X2,Y2) C CALL PL$PU C RETURN C END CCCCCCCCCC C SUBROUTINE DOWN INTEGER PEN,PENX COMMON /PENSTA/PEN,PENX IF (PEN.EQ.0) CALL PL$PD PEN=1 PENX=PENX+1 RETURN END C SUBROUTINE UP INTEGER PEN,PENX COMMON /PENSTA/PEN,PENX IF (PEN.EQ.1) CALL PL$PU PEN=0 PENX=PENX+1 RETURN END CCCCCCCCCC $0