%%HP: T(3)A(R)F(.); @ @ @ VSTUPNI BOD VYPOCTU A ZOBRAZENI \<< @ Event. smazani R0, R1, R2 0. @ znacka {R0 R1 R2 GdB} 1. \<< IF { 0. 28. } OVER VTYPE POS THEN @ je-li to typ REAL nebo INT... IF DUP RCL 0. > @ ...a je ve spravnem rozsahu... THEN @ ...nebude se mazat DUP RCL I\->R SWAP STO END END \>> DOLIST IF DUP TYPE 0. \=/ @ neni-li to znacka, ale LIST... THEN PURGE @ ...smazat END DROP @ znacka @ Typ potenciometru IF 'GdB' VTYPE 0. < @ neexistuje-li... THEN \<< \>> @ ...bude prubeh linearni { COEFB COEFA } PURGE ELSE \<< COEFB * 1. + LOG COEFA * \>> GdB 20. / DUP ALOG @ [dB] --> Gain 1. - 'COEFB' STO INV 'COEFA' STO END 'POS2VAL' STO @ Event. nastaveni R0 IF 'R0' VTYPE 0. < @ neexistuje-li... THEN 1. 'R0' STO @ ...nastavit na 1. END @ Spolecne hodnoty PPAR A TPAR (0., 0.) (1., 1.) PDIM {0. .05 0. 2. 0. TAB} 'TPAR' STO @ Smazat predchozi a vykreslit osy ERASE {0.1 0.2} ATICK DRAX @ Prubeh bez R1, R2 RCLF @ uschovat FLAGS # 5 RES @ vykreslovat jen kazdy 5. pixel -31 SF @ nespojovat krivku 'POS2VAL(X)' STEQ DRAW @ Prubeh s R1, R2 0. RES @ vykreslovat vse... -31 CF @ ...a spojite 'CALCVAL(X)' STEQ DRAW STOF @ obnovit FLAGS @ Hodnoty odporu {R0 R1 R2} 1. \<< IF DUP VTYPE 0. \>= @ existuje-li promenna THEN DUP @ 'R1' 'R1' \->STR 2. OVER SIZE 1. - SUB "=" + SWAP @ 'R1' "R1=" RCL @ 470. "R1=" \<-trim EVAL @ 470 "R1=" \->STR @ "470" "R1=" + @ "R1=470" \<-v2g EVAL ELSE DROP END \>> 78. @ \<-ypos @ @ @ Prevod text.retezce na GROB a pridani do PICT @ void \<-v2g(String text); \<< 80 FC? @ 0.|1. "R0=470." DUP @ 0.|1. 0.|1. "R0=470." NOT @ 1.|0. 0.|1. "R0=470." DUP @ 1.|0. 1.|0. 0.|1. "R0=470." + @ 2.|0. 0.|1. "R0=470." 8. @ 8. 2.|0. 0.|1. "R0=470." + @ 10.|8. 0.|1. "R0=470." '\<-ypos' SWAP @ 10.|8. '\<-ypos' 0.|1. "R0=470." STO- @ 0.|1. "R0=470." \->GROB @ grob PICT @ pict grob OVER SIZE DROP @ #width pict grob NEG #131d + @ #xpos pict grob \<-ypos R\->B 2. @ 2. #ypos #xpos pict grob \->LIST @ {#x #y} pict grob ROT @ grob {#x #y} pict GOR \>> @ @ @ Eventualni odstraneni koncoveho znaku '.' @ Integer \<-trim(Real); \<< IFERR R\->I THEN END \>> \-> \<-ypos \<-v2g \<-trim \<< DOLIST IF 'GdB' VTYPE 0. \>= THEN @ je to logaritmicky prubeh "G=" GdB @ 50. "G=" \<-trim EVAL @ 50 "G=" \->STR @ "50" "G=" + "dB" + @ "G=50dB" \<-v2g EVAL END \>> @ Pockat na klavesu 0 IFERR WAIT THEN END DROP \>>