{"install sensory component"} After BF(n,(4,addr);S==>c;) where 0 <= n <= 18 either:

- c=0 and S is sensory and the nth component of F is {now}
S and if n=17 then the starting address is {now} addr,

or c=2 and S is not sensory and F is unchanged.

We define the term (_sensory) key. A key is sensory iff the sensory version {(sensory-ver)} of it is itself.

- c=0 and RF is a requestor's key or fetcher key to any
factory

- and the nth component of F is {now} RF

and (RF's holes have been included in those of F and F was nascent {and still is} or all of RF's holes were {already} holes of F)

and if n=17 then the starting address is {now} addr

- c=2 and RF is not a requestor's key nor a fetcher key

or c=3 and F was complete and RF has holes beyond those of F

or c=4 and F's bank refused more pages

or c=5 and F's bank refused more nodes

or c=6 and F's hole count limit would have been reached.

F's bank is used here only for recording the set of .holes.

- c=0 and the nth .component of F is {now} S and (if n=17
then the starting address of F is addr) and either:

- F is nascent and S becomes a .hole of F, or

F is complete and S was already a .hole of F

c=3 and F is complete and S is not a .hole of F and F is unchanged.

{"assign ordinal"} BF(65,((4,x));==>0;) changes the ordinal of F to x.

{"complete factory"} BF(66;==>0;RF,FKF) produces a requestor's key RF to F and a fetcher key FKF to F and makes F complete if it wasn't already. If component 17 (_program) has never been installed then RF will also be a fetcher key {to support programs that were designed for an older factory design}.

{"create copy key"} BF(67;==>0;CF) produces a copy key CF to the factory {(cf)}.

{"get domain creator"}BF(69;==>0;DC) returns DC, BF's domain creator.

{"get miscellaneous"} After BF(96+n; ==>c,((4,sa), (4,at), (3,f), (1,f), (4,ord)) ;C) where 0 <= n <= 18

- "sa" is the starting address, "at" is the requestor-type,
ord is the ordinal, and C is the nth component of the factory.
Bit 6 of x is 1 if .program is not "fetcher".

- c=0 if successful and F is destroyed. c=1 if unsuccessful
{because the bank that the factory was made from has been
destroyed} and F is useless.

F's domain creator is destroyed iff it was created by FACTORYC.

Note that this operation destroys the components node to which the yields of this factory may still hold and use fetch keys.