%%HP: T(3)A(R)F(.);
@ @ @  VYPOCTY HODNOT A VYKRESLENI GRAFU
@ void ENVPLOT(List args);
\<<
  ENVNORM		@	{args}
@ Je zmena v zadanych argumentech?
  IF
    ENVXCHG		@	1.	{args}	#4h
  THEN			@	{args}	#4h
@ Signal je generova vzdy
    CLLCD " Waveform generating"
    5.			@	5.	"Wavef	{args}	#4h
    DISP		@	{args}	#4h
    ENVGNRT		@	{wave}	#4h
    'WAVEFORM'		@	'WAVEF	{wave}	#4h
    STO			@	#4h
    WAVEFORM		@	{wave}	#4h
    ENVPPAR		@	#4h
@ Je pozadovan vypocet obalky?
    IF
      DUP		@	#4h	#4h
      # 8h		@	#8h	#4h	#4h
      AND		@	#0h	#4h
      B\->R 		@	0.	#4h
    THEN
      CLLCD " Envelope calculation"
      5.		@	5.	"Envel	#4h
      DISP		@	#4h
      WAVEFORM		@	{wave}	#4h
      ENVCALC		@	{envl}	#4h
      'RESULT'		@	'RESUL	{envl}	#4h
      STO		@	#4h
    END
  END
@ Podle pole bitovych priznaku options sestavit promennou EQ
  { }			@	{ }	#4h
@ Je treba kreslit vstupni signal?
  IF
    OVER		@	#4h	{ }	#4h
    # 4h		@	#4h	#4h	{ }	#4h
    AND			@	#4h	{ }	#4h
    B\->R			@	4.	{ }	#4h
  THEN			@	{ }	#4h
    \<< WAVEFORM X GET \>>	@	\<< \>>	{ }	#4h
    +			@	{w}	#4h
  END
@ Je treba kreslit obalku?
  IF
    SWAP		@	#4h	{w}
    # 8h		@	#8h	#4h	{w}
    AND			@	#0h	{w}
    B\->R			@	0.	{w}
  THEN			@	{w}
    \<< RESULT X GET \>>	@	\<< \>>	{w}
    +			@	{w e}
  END
  STEQ
@ Vykreslit...
  ERASE
  DRAX
  DRAW
@ ...pockat na klavesu...
  0			@	0
  IFERR
    WAIT		@	105.1
  THEN
  END
@ ...a je hotovo!
  DROP
\>>
