1. Changes

1.1 The anonymous put/get cells are now initialized to 0 at the start

of every filter run. Previously, they retained any values left

over from a previous run. This may affect the operation of some

filters that depended on such uninitialized values.

1.2 In Advanced Edit Mode, the symbol table dump is now displayed

only if the 'Dump SDL' checkbox is checked during the Codegen


2. Bug Fixes

2.1 rnd(a,b) can now return any value in the range a to b, inclusive.

Previously, it always returned a value in the range a to b-1. Also,

rnd(a,b) now returns a value in the range [b,a] if a > b.

3. New Features

3.1 The Filter Factory built-in function rst(n) is now implemented in FM.

Calling rst(n) sets the pseudo-random number generator to a new state

which is a function of both the value of 'n' and the previous state of

the pseudo-random number generator. The C run-time library routine

srand(1) is implicitly called at the start of each filter run to set

the pseudo-random number generator to a fixed known state, so the

result of each run with otherwise identical parameters will generally

produce exactly the same result. If you want the result to be different

on each run, then call rst(n) with some unpredictable value of 'n';

e.g., call rst(clock()) to seed the pseudo-random number generator from

the elapsed time clock; or call rst(ctl(k)) to seed the pseudo-random

number generator with the current value of control k; etc.

3.2 When importing a *.8bf file, FM now honors Michael Johannhanwahr's

"Protect" flag in the PARM resource, and will not import the filter

if this flag is set. (Plugin Manager 2.0 uses this flag to prevent

casual users from viewing the filter source code.)