STRE Prototype SGLB Misc/Class Reference CLAS 354438 ESBR SORD 2 data PVAL 0.500015 /o,-100,100,0,100;Value (0 - 100%) PORD 4095 /o,0,4095;Scaler PORD 1 /t,Disabled,Enabled;Exponent ESBR SORD 3 timer TIME 20.000 /o;Invalid Delay Time (ms) LITO 1 state: 0=waiting on valid, 1=not timing, 2=waiting on invalid ESBR SORD 4 TIME 40.000 /o;Valid Delay Time (ms) ESBR SGLB Output/#1 exp 0 LCON /*+;Exp 0 ESBR SGLB Output/#2 exp 1 LCON /*+;Exp 1 ESBR SGLB Output/#3 exp 2 LCON /*+;Exp 2 ESBR SGLB Output/#4 bit 0 LCON /*+;Bit 0 ESBR SGLB Output/#5 LCON /*+;Bit 1 ESBR SGLB Output/#6 LCON /*+;Bit 2 ESBR SGLB Output/#7 LCON /*+;Bit 3 ESBR SGLB Output/#8 LCON /*+;Bit 4 ESBR SGLB Output/#9 LCON /*+;Bit 5 ESBR SGLB Output/#10 LCON /*+;Bit 6 ESBR SGLB Output/#11 LCON /*+;Bit 7 ESBR SGLB Output/#12 LCON /*+;Bit 8 ESBR SGLB Output/#13 LCON /*+;Bit 9 ESBR SGLB Output/#14 LCON /*+;Bit 10 ESBR SGLB Output/#15 bit 11 LCON /*+;Bit 11 ESBR SGLB Output/#16 data valid LCON /*+;Data Valid ESBR ESTR STRE SGLB Misc/Superclass Reference CLAS 354008 ESBR SGLB General/Initialize LITO 0 É ¥ data invalid/inst/É GSYM Output/#16 É ¥ out16/data invalid/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ESBR SGLB SignalP/Invalid internal timer msg CMNT on input: É ¥ inst/time/É CMNT we have timed out after sending a data valid FALSE message CMNT it is now time to calculate new output and start timer for data valid PRIM Stack/Xdrop inst/É LITO 2 PRIM S_tree/Entry to stack exp/scale/value/inst/É GSYM Output/#3 É ¥ out3/exp/scale/value/inst/É PRIM Stack/Pop to aux É/out3 ¥ exp/scale/value/inst/É BRFL branch if ignoring exponent PRIM Misc/Value to ordinal É/out3 ¥ output/inst/É PRIM Stack/Swap É/out3 ¥ inst/output/É LCAL Mantissa É ¥ É BRTR LITO 7 É/out3 ¥ 7/scale/value/inst/É PRIM Stack/Pop to aux É/out3/7 ¥ scale/value/inst/É LCAL Normalize É/out3/exp ¥ rslt/scale/value/inst/É PRIM Stack/Xdrop É/out3/exp ¥ rslt/value/inst/É PRIM Stack/Xdrop É/out3/exp ¥ rslt/inst/É PRIM Stack/Swap É/out3/exp ¥ inst/rslt/É GSYM Output/#1 É/out3/exp ¥ out#/inst/rslt/É LCAL Exponent É/out3 ¥ inst/rslt/É LCAL Mantissa É ¥ É ESBR SGLB SignalP/Valid internal timer msg CMNT on input: É ¥ inst/time/É CMNT we have timed out after sending new data messages CMNT it it now time to send a new data VALID message PRIM Stack/Xdrop inst/É LITO 1 not timing LITO 2 LITO 3 PRIM S_tree/Replace É ¥ inst/É LITO 1 É ¥ data valid/inst/É GSYM Output/#16 É ¥ out16/data valid/inst/É PRIM Misc/Send entry É ¥ inst/É PRIM Heap/Store self É ¥ É ESBR SGLB SignalP/Value /3v8,-100,100,0,100;Enter Value (0 - 100%)... PRIM Stack/Swap value/inst/É LITO 1 LCAL Timer É ESBR SGLB SignalP/Scaler /3u;Enter Scaler (0 - 4095)... PRIM Stack/Swap scaler/inst/É LITO 4095 max/scaler/inst/É LCAL Minimum clamped scaler/inst/É LITO 2 offset/data/inst/É LCAL Timer É ESBR SGLB SignalP/Exponent /3t12,Disabled,Enabled;Set Exponent as... LITO 3 CALL 354073 É ¥ É ESBR SGLB SignalP/Get Value /2v6,-100,100;%1.2f%% LITO 1 CALL 354072 ESBR SGLB SignalP/Get Scaler /2u LITO 2 CALL 354072 ESBR SGLB SignalP/Get Exponent /2t11,Disabled,Enabled LITO 3 CALL 354072 ESBR ESTR LDEF Minimum x/y/É CMNT output: min(x,y)/É PRIM Stack/Over y/x/y/É PRIM Ordinal/Compare y= x PRIM Stack/Xdrop x/É BRTR PRIM Stack/Drop y/É EDEF LDEF Timer offset/data/inst/É CMNT and set timer to process this data PRIM Stack/Rotate down inst/offset/data/É LITO 3 3/inst/offset/data/É PRIM S_tree/Entry to stack state/Æt/inst/offset/data/É STRE SORD 0 waiting on valid (ignore value) PRIM Stack/Drop É ¥ inst/offset/data/É PRIM Stack/Xdrop inst/data/É PRIM Stack/Xdrop inst/É PRIM Heap/Store self É ESBR SORD 1 not timing PRIM Timer/Get PAT É ¥ time/Æt/inst/offset/data/É GSYM SignalP/Invalid É ¥ method/time/Æt/inst/offset/data/É CALL 354057 É ¥ inst/offset/data/É LITO 0 É ¥ data invalid/inst/offset/data/É GSYM Output/#16 É ¥ out16/data invalid/inst/offset/data/É PRIM Misc/Send entry É ¥ inst/offset/data/É LITO 2 waiting on invalid LITO 2 LITO 3 PRIM S_tree/Replace É ¥ inst/offset/data/É PRIM Stack/Swap É ¥ offset/inst/data/É CALL 354073 É ¥ É ESBR SORD 2 waiting on invalid PRIM Stack/Drop É ¥ inst/offset/data/É PRIM Stack/Swap É ¥ offset/inst/data/É CALL 354073 É ¥ É ESBR ESTR EDEF LDEF Exponent É/exp ¥ out#/inst/É CMNT Output: É ¥ inst/É GSYM Output/#4 É/exp ¥ out4/out#/inst/É PRIM Ordinal/Test equal É/exp ¥ out4=out#/out#/inst/É BRFL branch if still processing PRIM Stack/Duplicate É/exp ¥ out#/out#/inst/É PRIM Ordinal/Increment É/exp ¥ out#+1/out#/inst/É PRIM Stack/Rotate up É/exp ¥ out#/inst/out#+1/É PRIM Stack/Push from aux É ¥ exp/out#/inst/out#+1/É PRIM Stack/Duplicate É ¥ exp/exp/out#/inst/out#+1/É PRIM Ordinal/Right É ¥ exp>>1/exp/out#/inst/out#+1/É PRIM Stack/Pop to aux É/exp>>1 ¥ exp/out#/inst/out#+1/É LITO 1 É/exp>>1 ¥ 1/exp/out#/inst/out#+1/É PRIM Ordinal/And É/exp>>1 ¥ bit/out#/inst/out#+1/É PRIM Stack/Swap É/exp>>1 ¥ out#/bit/inst/out#+1/É PRIM Misc/Send entry É/exp>>1 ¥ inst/out#+1/É PRIM Stack/Swap É/exp>>1 ¥ out#+1/inst/É LCAL Exponent BRTR PRIM Stack/Drop É/exp ¥ inst/É PRIM Stack/Drop from aux É ¥ inst/É EDEF LDEF Mantissa É/out# ¥ inst/output/É PRIM Stack/Over É/out# ¥ output/inst/output/É PRIM Ordinal/Right É/out# ¥ output>>1/inst/output/É PRIM Stack/Switch É/out# ¥ output/inst/output>>1/É LITO 1 É/out# ¥ 1/output/inst/output>>1/É PRIM Ordinal/And É/out# ¥ bit/inst/output>>1/É PRIM Stack/Push from aux É ¥ out#/bit/inst/output>>1/É GSYM Output/#15 É ¥ out15/out#/bit/inst/output>>1/É PRIM Ordinal/Test equal É ¥ done?/out#/bit/inst/output>>1/É BRFL not done PRIM Ordinal/Increment É ¥ out#+1/bit/inst/output>>1/É PRIM Stack/Dup to aux É/out#+1 ¥ out#+1/bit/inst/output>>1/É PRIM Misc/Send entry É/out#+1 ¥ inst/output>>1/É LCAL Mantissa BRTR PRIM Stack/Drop É ¥ bit/inst/output>>1/É PRIM Stack/Drop É ¥ inst/output>>1/É PRIM Stack/Xdrop É ¥ inst/É LITO 4 PRIM S_tree/Entry to stack Æt/inst/É PRIM Timer/Get PAT PAT/Æt/inst/É GSYM SignalP/Valid method/PAT/Æt/inst/É CALL 354057 inst/É LITO 0 waiting on valid LITO 2 LITO 3 PRIM S_tree/Replace É ¥ inst/É PRIM Heap/Store self É ¥ É EDEF LDEF Normalize É/exp ¥ scale/value/inst/É CMNT Output: É/exp ¥ rslt/scale/value/inst/É PRIM Stack/Over É/exp ¥ value/scale/value/inst/É PRIM Stack/Over É/exp ¥ scale/value/scale/value/inst/É PRIM Misc/Value to ordinal É/exp ¥ rslt/scale/value/inst/É LITO 2048 É/exp ¥ 2048/rslt/scale/value/inst/É PRIM Ordinal/Compare É/exp ¥ 2048<=rslt/rslt/scale/value/inst/É BRFL branch if 2048 > rslt (rslt < 2048, need to normalize) PRIM Stack/Push from aux É ¥ exp/rslt/scale/value/inst/É PRIM Stack/Duplicate É ¥ exp/exp/rslt/scale/value/inst/É BRFL exp zero, can't do any more PRIM Stack/Pop to aux É/exp ¥ rslt/scale/value/inst/É BRTR PRIM Ordinal/Decrement É ¥ exp-1/rslt/scale/value/inst/É PRIM Stack/Pop to aux É/exp-1 ¥ rslt/scale/value/inst/É PRIM Stack/Drop É/exp ¥ scale/value/inst/É LITO 32767 É/exp ¥ 32767/scale/value/inst/É PRIM Ordinal/Compare É/exp ¥ 32767= scale (scale <= 32767, can shift) PRIM Ordinal/Left É/exp ¥ scale<<1/value/inst/É LCAL Normalize BRTR PRIM Stack/Swap É/exp ¥ value/scale/inst/É LVAL 0.500015 É/exp ¥ .5/value/scale/inst/É PRIM Value/Divide É/exp ¥ value*2/scale/inst/É PRIM Stack/Swap É/exp ¥ scale/value*2/inst/É LCAL Normalize BRTR CMNT just return, nothing to do EDEF